(filled = false, size = 24)
| 1665 | const RECYCLE_BIN_ID = 'recycleBinRow'; |
| 1666 | |
| 1667 | export function recycleBinSVG(filled = false, size = 24) { |
| 1668 | const uid = makeUid('rb'); |
| 1669 | |
| 1670 | const level1Inside = filled ? ` |
| 1671 | <!-- Level 1: inside the mouth (subtle) --> |
| 1672 | <g clip-path="url(#${uid}-openingClip)" opacity="0.92"> |
| 1673 | ${paperBall(7.6, 6.95, 1.35)} |
| 1674 | ${paperBall(10.4, 6.85, 1.25)} |
| 1675 | ${paperBall(12.9, 7.05, 1.35)} |
| 1676 | ${paperBall(15.2, 7.15, 1.15)} |
| 1677 | </g> |
| 1678 | ` : ''; |
| 1679 | |
| 1680 | const level2BehindBar = filled ? ` |
| 1681 | <!-- Level 2: packed at rim, behind gray bar --> |
| 1682 | <g clip-path="url(#${uid}-mouthOverflowClip)" opacity="0.97"> |
| 1683 | ${paperBall(6.6, 5.15, 1.70, true)} |
| 1684 | ${paperBall(9.2, 4.90, 1.65, true)} |
| 1685 | ${paperBall(11.8, 5.10, 1.80, true)} |
| 1686 | ${paperBall(14.4, 4.85, 1.55, true)} |
| 1687 | ${paperBall(16.6, 5.15, 1.45, true)} |
| 1688 | </g> |
| 1689 | ` : ''; |
| 1690 | |
| 1691 | const level3BehindBarButVisibleAbove = filled ? ` |
| 1692 | <!-- Level 3: overflow, STILL behind gray bar. |
| 1693 | Positioned higher so tops are visible above the bar. --> |
| 1694 | <g clip-path="url(#${uid}-mouthOverflowClip)" opacity="0.99"> |
| 1695 | ${paperBall(7.0, 2.15, 2.05, true)} |
| 1696 | ${paperBall(10.0, 1.98, 1.95, true)} |
| 1697 | ${paperBall(12.9, 2.12, 2.15, true)} |
| 1698 | ${paperBall(15.7, 2.20, 1.85, true)} |
| 1699 | </g> |
| 1700 | ` : ''; |
| 1701 | |
| 1702 | return ` |
| 1703 | <svg width="${size}" height="${size}" viewBox="0 0 24 24" aria-hidden="true" focusable="false" |
| 1704 | shape-rendering="geometricPrecision"> |
| 1705 | <defs> |
| 1706 | <linearGradient id="${uid}-body" x1="0" y1="5" x2="0" y2="22"> |
| 1707 | <stop offset="0%" stop-color="#eaf6ff"/> |
| 1708 | <stop offset="100%" stop-color="#cde6ff"/> |
| 1709 | </linearGradient> |
| 1710 | |
| 1711 | <linearGradient id="${uid}-side" x1="0" y1="6" x2="0" y2="20"> |
| 1712 | <stop offset="0%" stop-color="#cfe8ff"/> |
| 1713 | <stop offset="100%" stop-color="#b9dcff"/> |
| 1714 | </linearGradient> |
| 1715 | |
| 1716 | <linearGradient id="${uid}-rim" x1="0" y1="3" x2="0" y2="6"> |
| 1717 | <stop offset="0%" stop-color="#8b9aa2"/> |
| 1718 | <stop offset="100%" stop-color="#6f8089"/> |
| 1719 | </linearGradient> |
| 1720 | |
| 1721 | <linearGradient id="${uid}-base" x1="0" y1="19" x2="0" y2="22"> |
| 1722 | <stop offset="0%" stop-color="#8b9aa2"/> |
| 1723 | <stop offset="100%" stop-color="#6f8089"/> |
| 1724 | </linearGradient> |
no test coverage detected