editor-shell 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -72,12 +72,18 @@ var iconMeanings = {
72
72
  "logo": "a brand mark \u2014 the Header panel's Logo tab",
73
73
  "align-right": "align right",
74
74
  "align-separate": "align separate \u2014 the rows pushed apart to both edges",
75
- "accent": 'the site\'s ONE emphasis \u2014 the accent phrase inside a heading, and the colour that paints it. `Brand colour` on the Theme tab and `Accent` on the Text tab are the same idea seen twice and both store the key `accent`, so they share this ONE drawing: card 66310, 2026-09-01. Not "a star" \u2014 a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under',
75
+ "accent": "the ACCENT \u2014 the site's one emphasis, the phrase picked out inside a heading. Worn by `Accent` on the Text tab and by `Brand colour` on the Theme tab. ONE drawing for both, for two reasons that hold each other up. (1) `accent` is a NAMED ROLE on this site, not a coincidence of spelling: it is declared as a font role (`FONT_ROLES`) and as a colour role (`WORD_STYLE_COLOURS`). The Text tab's `Accent` sets that role's TYPEFACE; the Theme tab's `Brand colour` sets the colour it is painted in. One role, two halves \u2014 which is why one drawing serves both. (2) the Site styles Theme tab names every colour row by the ELEMENT it colours and never by a glyph meaning \"colour\" \u2014 `Text colour` wears `type`, `Label colour` wears `text-small`, `Page background` wears `page` (ThemeField ROW_ICON, card 66205). The glyph names the element; the row says what it sets. Card 66310, 2026-09-01. \u26A0\uFE0F THIS CORRECTS TWO EARLIER GOES AT THIS SENTENCE, and the RULING survived both \u2014 one drawing still serves both rows and the drawing has not moved. 66310's own first entry said the two rows keep the key `accent` in one place, which is not so. es#36 replaced that with a NUMBER, and a number is the wrong shape here: counting what `accent` IS gives the role declarations above, while counting where an accent VALUE lives gives the typeface, the preset colour and \u2014 since card 66307 \u2014 the site brand colour. Both counts are true, of different things, so a figure that needs its counting rule carried beside it will be misread in a one-line entry. The structure is what does not move. Corrected on card 66315, 2026-09-01. Not \"a star\" \u2014 a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under",
76
76
  "shadow": "the depth a card sits at \u2014 the `Card shadow` row on the storefront's Site styles \u25B8 Basics tab, beside `Corners`",
77
77
  "gap": "the air between two cards \u2014 the `Card gap` row on the storefront's Site styles \u25B8 Basics tab, beside `Corners`",
78
78
  "hover": "the pointer resting on a card \u2014 the `Hover effect` row on the storefront's Site styles \u25B8 Basics tab, beside `Corners`",
79
79
  "product-field": "the words come from the catalogue record \u2014 the `From product` segment of the Card text control",
80
- "own-text": "the words are the merchant's own, not the product's \u2014 the `My own text` segment of the Card text control"
80
+ "own-text": "the words are the merchant's own, not the product's \u2014 the `My own text` segment of the Card text control",
81
+ "theme": "one whole palette a section can be painted in \u2014 paper, ink, borders and accent together, not one colour. Worn by the `Theme` row of the section panel's `Colour` group (card 66313), the dropdown that says which of the site's themes this one section is on. NOT `contrast`, which names the Site styles Theme TAB \u2014 that is a PLACE, not the idea \u201Ca palette\u201D. NOT `accent`, which is the site's ONE emphasis colour, one colour rather than a whole set. Card 66315, 2026-09-01",
82
+ "background": "where a section's band sits on the page \u2014 the `Background` row of the section panel's `Colour` group (card 66313), whose choices are Page / Dark / Accent. The card is the page and the filled band is the section's own colour lying across it. Card 66315, 2026-09-01",
83
+ "copy": 'put this block on the clipboard so it can be pasted somewhere else \u2014 the `Copy` row (\u2318C) of the block right-click menu the owner approved 2026-08-31. NOT `copy-to-page`, whose meaning is already "Copy to another page" and which names a DESTINATION rather than the clipboard. NOT `duplicate`, which sits two rows below this one in the same menu and makes a second block in place at once without ever touching the clipboard. Card 66400.a, 2026-09-02',
84
+ "paste": "drop whatever is on the clipboard into here \u2014 the `Paste` row (\u2318V) of the block right-click menu the owner approved 2026-08-31. The other half of `copy`, and the only entry in the set that means the clipboard's CONTENTS coming back out. NOT `add`, which opens a chooser for a new block rather than placing one already taken. Card 66400.a, 2026-09-02",
85
+ "move-up": "send this block one step earlier in its parent's order \u2014 the `Move up` row of the block right-click menu the owner approved 2026-08-31. It REORDERS: it does not scroll a view, sort a list or raise a number. NOT `chevron`, which is disclosure \u2014 a section opening, not a block moving \u2014 and is the first arrow-shaped thing a borrower meets in this set. Card 66400.a, 2026-09-02",
86
+ "move-down": "send this block one step later in its parent's order \u2014 the `Move down` row of the block right-click menu the owner approved 2026-08-31. The mirror of `move-up` and it reorders the same way: it does not scroll a view, sort a list or lower a number. NOT `chevron`, which is disclosure rather than movement. Card 66400.a, 2026-09-02"
81
87
  };
82
88
  function TrashIcon({ size = 18, ...rest }) {
83
89
  return /* @__PURE__ */ jsxs(
@@ -1623,7 +1629,135 @@ function OwnTextIcon({ size = 18, ...rest }) {
1623
1629
  }
1624
1630
  );
1625
1631
  }
1632
+ function ThemeIcon({ size = 18, ...rest }) {
1633
+ return /* @__PURE__ */ jsxs(
1634
+ "svg",
1635
+ {
1636
+ width: size,
1637
+ height: size,
1638
+ viewBox: "0 0 24 24",
1639
+ fill: "none",
1640
+ stroke: "currentColor",
1641
+ strokeWidth: 1.7,
1642
+ strokeLinecap: "round",
1643
+ strokeLinejoin: "round",
1644
+ "aria-hidden": "true",
1645
+ ...rest,
1646
+ children: [
1647
+ /* @__PURE__ */ jsx("rect", { x: "3.5", y: "3.5", width: "17", height: "17", rx: "2.5" }),
1648
+ /* @__PURE__ */ jsx("path", { d: "M12 3.5h6a2.5 2.5 0 0 1 2.5 2.5v12a2.5 2.5 0 0 1-2.5 2.5h-6z", fill: "currentColor", stroke: "none" })
1649
+ ]
1650
+ }
1651
+ );
1652
+ }
1653
+ function BackgroundIcon({ size = 18, ...rest }) {
1654
+ return /* @__PURE__ */ jsxs(
1655
+ "svg",
1656
+ {
1657
+ width: size,
1658
+ height: size,
1659
+ viewBox: "0 0 24 24",
1660
+ fill: "none",
1661
+ stroke: "currentColor",
1662
+ strokeWidth: 1.7,
1663
+ strokeLinecap: "round",
1664
+ strokeLinejoin: "round",
1665
+ "aria-hidden": "true",
1666
+ ...rest,
1667
+ children: [
1668
+ /* @__PURE__ */ jsx("rect", { x: "3.5", y: "4.5", width: "17", height: "15", rx: "2" }),
1669
+ /* @__PURE__ */ jsx("path", { d: "M3.5 10.5h17v4h-17z", fill: "currentColor", stroke: "none" })
1670
+ ]
1671
+ }
1672
+ );
1673
+ }
1674
+ function CopyIcon({ size = 18, ...rest }) {
1675
+ return /* @__PURE__ */ jsxs(
1676
+ "svg",
1677
+ {
1678
+ width: size,
1679
+ height: size,
1680
+ viewBox: "0 0 24 24",
1681
+ fill: "none",
1682
+ stroke: "currentColor",
1683
+ strokeWidth: 1.7,
1684
+ strokeLinecap: "round",
1685
+ strokeLinejoin: "round",
1686
+ "aria-hidden": "true",
1687
+ ...rest,
1688
+ children: [
1689
+ /* @__PURE__ */ jsx("rect", { x: "10", y: "10", width: "10", height: "10", rx: "2" }),
1690
+ /* @__PURE__ */ jsx("path", { d: "M7 14H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1" })
1691
+ ]
1692
+ }
1693
+ );
1694
+ }
1695
+ function PasteIcon({ size = 18, ...rest }) {
1696
+ return /* @__PURE__ */ jsxs(
1697
+ "svg",
1698
+ {
1699
+ width: size,
1700
+ height: size,
1701
+ viewBox: "0 0 24 24",
1702
+ fill: "none",
1703
+ stroke: "currentColor",
1704
+ strokeWidth: 1.7,
1705
+ strokeLinecap: "round",
1706
+ strokeLinejoin: "round",
1707
+ "aria-hidden": "true",
1708
+ ...rest,
1709
+ children: [
1710
+ /* @__PURE__ */ jsx("rect", { x: "9", y: "4", width: "6", height: "4", rx: "1" }),
1711
+ /* @__PURE__ */ jsx("path", { d: "M15 6h2a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2" }),
1712
+ /* @__PURE__ */ jsx("path", { d: "M9 12.5h6" }),
1713
+ /* @__PURE__ */ jsx("path", { d: "M9 16.5h4" })
1714
+ ]
1715
+ }
1716
+ );
1717
+ }
1718
+ function MoveUpIcon({ size = 18, ...rest }) {
1719
+ return /* @__PURE__ */ jsxs(
1720
+ "svg",
1721
+ {
1722
+ width: size,
1723
+ height: size,
1724
+ viewBox: "0 0 24 24",
1725
+ fill: "none",
1726
+ stroke: "currentColor",
1727
+ strokeWidth: 1.7,
1728
+ strokeLinecap: "round",
1729
+ strokeLinejoin: "round",
1730
+ "aria-hidden": "true",
1731
+ ...rest,
1732
+ children: [
1733
+ /* @__PURE__ */ jsx("path", { d: "M12 19V5" }),
1734
+ /* @__PURE__ */ jsx("path", { d: "M5 12l7-7 7 7" })
1735
+ ]
1736
+ }
1737
+ );
1738
+ }
1739
+ function MoveDownIcon({ size = 18, ...rest }) {
1740
+ return /* @__PURE__ */ jsxs(
1741
+ "svg",
1742
+ {
1743
+ width: size,
1744
+ height: size,
1745
+ viewBox: "0 0 24 24",
1746
+ fill: "none",
1747
+ stroke: "currentColor",
1748
+ strokeWidth: 1.7,
1749
+ strokeLinecap: "round",
1750
+ strokeLinejoin: "round",
1751
+ "aria-hidden": "true",
1752
+ ...rest,
1753
+ children: [
1754
+ /* @__PURE__ */ jsx("path", { d: "M12 5V19" }),
1755
+ /* @__PURE__ */ jsx("path", { d: "M19 12l-7 7-7-7" })
1756
+ ]
1757
+ }
1758
+ );
1759
+ }
1626
1760
 
1627
- export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyToPageIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, HashIcon, HoverIcon, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PageIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings };
1628
- //# sourceMappingURL=chunk-T3IHELBO.js.map
1629
- //# sourceMappingURL=chunk-T3IHELBO.js.map
1761
+ export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BackgroundIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyIcon, CopyToPageIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, HashIcon, HoverIcon, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PageIcon, PasteIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, ThemeIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings };
1762
+ //# sourceMappingURL=chunk-N7I3A4DC.js.map
1763
+ //# sourceMappingURL=chunk-N7I3A4DC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons/index.tsx"],"names":[],"mappings":"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","file":"chunk-N7I3A4DC.js","sourcesContent":["/**\n * GENERATED FILE — do not edit by hand.\n * Source of truth: ./icons.json (the owner's approved icon set, 2026-08-20).\n * Regenerate: docker run --rm -v \"$PWD\":/w -w /w node:26-slim node scripts/generate-icons.mjs\n *\n * The standard every icon here follows: 24×24 viewBox, stroke on currentColor\n * at width 1.7 with round caps and joins (brand-style fills documented per\n * icon), TRANSPARENT background — never a baked-in plate — and no width/height\n * beyond the `size` default, so the caller owns size and colour.\n */\nimport type { SVGProps } from 'react';\n\nexport type IconProps = Omit<SVGProps<SVGSVGElement>, 'children'> & { size?: number };\n\n/** Every icon name in the set, with what it means. One meaning, one SVG. */\nexport const iconMeanings = {\n \"trash\": \"Delete\",\n \"duplicate\": \"Duplicate — owner pick 08-20, two-pages form\",\n \"copy-to-page\": \"Copy to another page\",\n \"close\": \"Close / dismiss\",\n \"add\": \"Add / plus\",\n \"check\": \"Checkmark / success\",\n \"undo\": \"Undo\",\n \"redo\": \"Redo\",\n \"rename\": \"Rename / edit\",\n \"search\": \"Search\",\n \"eye\": \"Show\",\n \"eye-off\": \"Hide\",\n \"external\": \"Leaves this surface\",\n \"drag\": \"Drag handle\",\n \"lock\": \"Locked\",\n \"revert\": \"Revert to inherited\",\n \"chevron\": \"Disclosure — rotate for direction\",\n \"send\": \"Send\",\n \"page\": \"Page AND the Pages rail — owner ruling 08-20, one meaning\",\n \"layers\": \"Layers\",\n \"styles\": \"Styles\",\n \"media\": \"Media\",\n \"sitemap\": \"Sitemap\",\n \"image\": \"Image / photo\",\n \"grid\": \"Grid\",\n \"cart\": \"Cart\",\n \"desktop\": \"Desktop\",\n \"tablet\": \"Tablet\",\n \"phone\": \"Phone\",\n \"warning\": \"Warning\",\n \"type\": \"Text marker — the T\",\n \"wheel\": \"Wheel\",\n \"chat\": \"Chat\",\n \"bell\": \"Notification bell\",\n \"template\": \"Template / bookmark\",\n \"clock\": \"clock\",\n \"play\": \"play\",\n \"align-left\": \"align left\",\n \"align-center\": \"align center\",\n \"opacity\": \"opacity\",\n \"padding-top\": \"padding top\",\n \"padding-bottom\": \"padding bottom\",\n \"width\": \"width\",\n \"anchor\": \"anchor\",\n \"hash\": \"hash\",\n \"columns\": \"columns\",\n \"list\": \"list\",\n \"text-lines\": \"text lines\",\n \"text-size\": \"text size\",\n \"text-small\": \"text small\",\n \"button\": \"a call-to-action on the page — the settings row for a button's own look. ⚠️ NAMED BY CARD 66310, 2026-09-01; it used to read \\\"button\\\", which is a SHAPE, and a shape claims nothing, so nothing stopped a second meaning attaching to this drawing. Measured the same day: `ButtonIcon` has no call site in efficient-shop, in efficient-admin, or in this repo — it is drawn and not yet wired to a row\",\n \"link\": \"link\",\n \"tag\": \"tag\",\n \"rotate\": \"rotate\",\n \"square\": \"square\",\n \"drop\": \"drop\",\n \"plus-minus\": \"plus minus\",\n \"dollar\": \"dollar\",\n \"note\": \"note\",\n \"weight\": \"font weight\",\n \"letter-spacing\": \"letter spacing\",\n \"case\": \"letter case\",\n \"layout\": \"page layout — the Layout settings bucket, not columns\",\n \"settings\": \"site settings — a gear; heads the Basics tab of the Site styles panel\",\n \"contrast\": \"the Theme tab of the Site styles panel — where a site's one palette is set. ⚠️ THIS MEANING WAS REWRITTEN BY CARD 66310, 2026-09-01: it used to say the tab held light/dark pairs, and cards 66238/66239 deleted that — a theme is ONE FLAT palette now. The drawing did not move and does not need to; the filled half disc reads as TONE, which is what a palette sets. The fill is justified in `from` below and stays\",\n \"account\": \"a person — the account / sign-in row and the header's account icon\",\n \"globe\": \"a globe — the country / region selector row\",\n \"logo\": \"a brand mark — the Header panel's Logo tab\",\n \"align-right\": \"align right\",\n \"align-separate\": \"align separate — the rows pushed apart to both edges\",\n \"accent\": \"the ACCENT — the site's one emphasis, the phrase picked out inside a heading. Worn by `Accent` on the Text tab and by `Brand colour` on the Theme tab. ONE drawing for both, for two reasons that hold each other up. (1) `accent` is a NAMED ROLE on this site, not a coincidence of spelling: it is declared as a font role (`FONT_ROLES`) and as a colour role (`WORD_STYLE_COLOURS`). The Text tab's `Accent` sets that role's TYPEFACE; the Theme tab's `Brand colour` sets the colour it is painted in. One role, two halves — which is why one drawing serves both. (2) the Site styles Theme tab names every colour row by the ELEMENT it colours and never by a glyph meaning \\\"colour\\\" — `Text colour` wears `type`, `Label colour` wears `text-small`, `Page background` wears `page` (ThemeField ROW_ICON, card 66205). The glyph names the element; the row says what it sets. Card 66310, 2026-09-01. ⚠️ THIS CORRECTS TWO EARLIER GOES AT THIS SENTENCE, and the RULING survived both — one drawing still serves both rows and the drawing has not moved. 66310's own first entry said the two rows keep the key `accent` in one place, which is not so. es#36 replaced that with a NUMBER, and a number is the wrong shape here: counting what `accent` IS gives the role declarations above, while counting where an accent VALUE lives gives the typeface, the preset colour and — since card 66307 — the site brand colour. Both counts are true, of different things, so a figure that needs its counting rule carried beside it will be misread in a one-line entry. The structure is what does not move. Corrected on card 66315, 2026-09-01. Not \\\"a star\\\" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under\",\n \"shadow\": \"the depth a card sits at — the `Card shadow` row on the storefront's Site styles ▸ Basics tab, beside `Corners`\",\n \"gap\": \"the air between two cards — the `Card gap` row on the storefront's Site styles ▸ Basics tab, beside `Corners`\",\n \"hover\": \"the pointer resting on a card — the `Hover effect` row on the storefront's Site styles ▸ Basics tab, beside `Corners`\",\n \"product-field\": \"the words come from the catalogue record — the `From product` segment of the Card text control\",\n \"own-text\": \"the words are the merchant's own, not the product's — the `My own text` segment of the Card text control\",\n \"theme\": \"one whole palette a section can be painted in — paper, ink, borders and accent together, not one colour. Worn by the `Theme` row of the section panel's `Colour` group (card 66313), the dropdown that says which of the site's themes this one section is on. NOT `contrast`, which names the Site styles Theme TAB — that is a PLACE, not the idea “a palette”. NOT `accent`, which is the site's ONE emphasis colour, one colour rather than a whole set. Card 66315, 2026-09-01\",\n \"background\": \"where a section's band sits on the page — the `Background` row of the section panel's `Colour` group (card 66313), whose choices are Page / Dark / Accent. The card is the page and the filled band is the section's own colour lying across it. Card 66315, 2026-09-01\",\n \"copy\": \"put this block on the clipboard so it can be pasted somewhere else — the `Copy` row (⌘C) of the block right-click menu the owner approved 2026-08-31. NOT `copy-to-page`, whose meaning is already \\\"Copy to another page\\\" and which names a DESTINATION rather than the clipboard. NOT `duplicate`, which sits two rows below this one in the same menu and makes a second block in place at once without ever touching the clipboard. Card 66400.a, 2026-09-02\",\n \"paste\": \"drop whatever is on the clipboard into here — the `Paste` row (⌘V) of the block right-click menu the owner approved 2026-08-31. The other half of `copy`, and the only entry in the set that means the clipboard's CONTENTS coming back out. NOT `add`, which opens a chooser for a new block rather than placing one already taken. Card 66400.a, 2026-09-02\",\n \"move-up\": \"send this block one step earlier in its parent's order — the `Move up` row of the block right-click menu the owner approved 2026-08-31. It REORDERS: it does not scroll a view, sort a list or raise a number. NOT `chevron`, which is disclosure — a section opening, not a block moving — and is the first arrow-shaped thing a borrower meets in this set. Card 66400.a, 2026-09-02\",\n \"move-down\": \"send this block one step later in its parent's order — the `Move down` row of the block right-click menu the owner approved 2026-08-31. The mirror of `move-up` and it reorders the same way: it does not scroll a view, sort a list or lower a number. NOT `chevron`, which is disclosure rather than movement. Card 66400.a, 2026-09-02\",\n} as const;\n\nexport type IconName = keyof typeof iconMeanings;\n\n/** Delete · keep · efficient-shop · components/UiIcon.tsx:99 */\nexport function TrashIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m2 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M10 11v6M14 11v6\" />\n </svg>\n );\n}\n\n/** Duplicate — owner pick 08-20, two-pages form · picked · efficient-admin-portal · src/components/SalesOrderDetail.tsx:628 */\nexport function DuplicateIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.5a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75\" />\n </svg>\n );\n}\n\n/** Copy to another page · keep · efficient-shop · components/DuplicateToPageMenu.tsx:56 */\nexport function CopyToPageIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M13 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3\" />\n <path d=\"M14 12h8\" />\n <path d=\"m18 8 4 4-4 4\" />\n </svg>\n );\n}\n\n/** Close / dismiss · pick · efficient-shop · components/AddSectionPanel.tsx:212 */\nexport function CloseIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M6 6l12 12M18 6L6 18\" />\n </svg>\n );\n}\n\n/** Add / plus · keep · editor-shell · src/rail/icons.tsx:92 */\nexport function AddIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 5v14M5 12h14\" />\n </svg>\n );\n}\n\n/** Checkmark / success · pick · efficient-shop · components/wheels-plp/PlpNotifyMeDialog.tsx:143 */\nexport function CheckIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\n/** Undo · keep · efficient-admin-portal · src/components/email/CampaignDesigner.tsx:195 */\nexport function UndoIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9 14L4 9l5-5\" />\n <path d=\"M4 9h11a5 5 0 015 5v0a5 5 0 01-5 5H9\" />\n </svg>\n );\n}\n\n/** Redo · keep · efficient-admin-portal · src/components/email/CampaignDesigner.tsx:208 */\nexport function RedoIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M15 14l5-5-5-5\" />\n <path d=\"M20 9H9a5 5 0 00-5 5v0a5 5 0 005 5h6\" />\n </svg>\n );\n}\n\n/** Rename / edit · keep · efficient-shop · components/UiIcon.tsx:90 */\nexport function RenameIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 20h9\" />\n <path d=\"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z\" />\n </svg>\n );\n}\n\n/** Search · keep · efficient-shop · components/UiIcon.tsx:74 */\nexport function SearchIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <path d=\"M21 21l-3.8-3.8\" />\n </svg>\n );\n}\n\n/** Show · keep · efficient-shop · components/UiIcon.tsx:63 */\nexport function EyeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7S2 12 2 12z\" />\n <circle cx=\"12\" cy=\"12\" r=\"2.6\" />\n </svg>\n );\n}\n\n/** Hide · keep · efficient-shop · components/UiIcon.tsx:69 */\nexport function EyeOffIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M3 3l18 18M10.6 10.6a2 2 0 002.8 2.8M9.4 5.2A9.7 9.7 0 0112 5c7 0 10 7 10 7a16 16 0 01-3.6 4.4M6.1 6.1A16 16 0 002 12s3 7 10 7a9.6 9.6 0 004.1-.9\" />\n </svg>\n );\n}\n\n/** Leaves this surface · keep · efficient-shop · components/UiIcon.tsx:82 */\nexport function ExternalIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M14 4h6v6\" />\n <path d=\"M20 4l-9 9\" />\n <path d=\"M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5\" />\n </svg>\n );\n}\n\n/** Drag handle · keep · efficient-admin-portal · src/components/email/designerIcons.tsx:78 */\nexport function DragIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"9\" cy=\"6\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"6\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"18\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"18\" r=\"1.5\" />\n </svg>\n );\n}\n\n/** Locked · keep · efficient-admin-portal · src/components/email/designerIcons.tsx:8 */\nexport function LockIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"5\" y=\"11\" width=\"14\" height=\"9\" rx=\"2\" />\n <path d=\"M8 11V7a4 4 0 018 0v4\" />\n </svg>\n );\n}\n\n/** Revert to inherited · keep · efficient-admin-portal · src/components/email/designerIcons.tsx:31 */\nexport function RevertIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 9h11a5 5 0 010 10h-6\" />\n <path d=\"M8 5L4 9l4 4\" />\n </svg>\n );\n}\n\n/** Disclosure — rotate for direction · keep · efficient-shop · components/UiIcon.tsx:107 */\nexport function ChevronIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9 6l6 6-6 6\" />\n </svg>\n );\n}\n\n/** Send · keep · efficient-shop · components/wheels-plp/PlpNotifyMeDialog.tsx:293 */\nexport function SendIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m22 2-7 20-4-9-9-4Z\" />\n <path d=\"M22 2 11 13\" />\n </svg>\n );\n}\n\n/** Page AND the Pages rail — owner ruling 08-20, one meaning · picked · editor-shell · src/rail/icons.tsx:36 */\nexport function PageIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z\" />\n <path d=\"M14 3v5h5\" />\n <path d=\"M9 13h6M9 17h6\" />\n </svg>\n );\n}\n\n/** Layers · keep · editor-shell · src/rail/icons.tsx:47 */\nexport function LayersIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 3l9 5-9 5-9-5 9-5z\" />\n <path d=\"M3 13l9 5 9-5\" />\n </svg>\n );\n}\n\n/** Styles · keep · editor-shell · src/rail/icons.tsx:57 */\nexport function StylesIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 3c-4.5 0-8 3.4-8 7.6 0 3 2.2 4.9 4.8 4.9 1 0 1.6.7 1.6 1.5 0 .5-.3.9-.3 1.4 0 .9.8 1.6 1.9 1.6 4.4 0 8-3.6 8-8C20 6.4 16.5 3 12 3z\" />\n <circle cx=\"8.5\" cy=\"10\" r=\"0.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"7.8\" r=\"0.6\" fill=\"currentColor\" />\n <circle cx=\"15.5\" cy=\"10\" r=\"0.6\" fill=\"currentColor\" />\n </svg>\n );\n}\n\n/** Media · keep · editor-shell · src/rail/icons.tsx:69 */\nexport function MediaIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" />\n <circle cx=\"8.5\" cy=\"9.5\" r=\"1.5\" />\n <path d=\"M21 16l-5-5-6 6\" />\n </svg>\n );\n}\n\n/** Sitemap · keep · editor-shell · src/rail/icons.tsx:80 */\nexport function SitemapIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"9\" y=\"3\" width=\"6\" height=\"4.5\" rx=\"1\" />\n <rect x=\"3\" y=\"16.5\" width=\"6\" height=\"4.5\" rx=\"1\" />\n <rect x=\"15\" y=\"16.5\" width=\"6\" height=\"4.5\" rx=\"1\" />\n <path d=\"M12 7.5v4M6 16.5v-2.5h12v2.5M18 16.5v-2.5\" />\n </svg>\n );\n}\n\n/** Image / photo · pick · efficient-shop · components/AddSectionPanel.tsx:151 */\nexport function ImageIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" />\n <path d=\"M21 15l-5-5L5 21\" />\n </svg>\n );\n}\n\n/** Grid · pick · efficient-shop · components/SearchDialog.tsx:504 */\nexport function GridIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" />\n </svg>\n );\n}\n\n/** Cart · pick · efficient-shop · components/Header.tsx:69 */\nexport function CartIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"9\" cy=\"20\" r=\"1.3\" />\n <circle cx=\"18\" cy=\"20\" r=\"1.3\" />\n <path d=\"M2.5 3.5h3l2.3 11.3a1.6 1.6 0 0 0 1.6 1.3h8.1a1.6 1.6 0 0 0 1.6-1.2L21 7H6\" />\n </svg>\n );\n}\n\n/** Desktop · keep · efficient-shop · components/DeviceSwitch.tsx:18 */\nexport function DesktopIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"13\" rx=\"2\" />\n <path d=\"M8 21h8M12 17v4\" />\n </svg>\n );\n}\n\n/** Tablet · keep · efficient-shop · components/DeviceSwitch.tsx:24 */\nexport function TabletIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" />\n <path d=\"M11 18.5h2\" />\n </svg>\n );\n}\n\n/** Phone · pick · efficient-shop · components/DeviceSwitch.tsx:30 */\nexport function PhoneIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"2.5\" />\n <path d=\"M11 18.5h2\" />\n </svg>\n );\n}\n\n/** Warning · pick · efficient-admin-portal · src/components/CustomerDetail.tsx:235 */\nexport function WarningIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\" />\n </svg>\n );\n}\n\n/** Text marker — the T · pick · efficient-shop · lib/puck/controls.tsx:269 */\nexport function TypeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <polyline points=\"4 7 4 4 20 4 20 7\" />\n <line x1=\"9\" x2=\"15\" y1=\"20\" y2=\"20\" />\n <line x1=\"12\" x2=\"12\" y1=\"4\" y2=\"20\" />\n </svg>\n );\n}\n\n/** Wheel · pick · efficient-shop · components/SearchDialog.tsx:485 */\nexport function WheelIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n <path d=\"M12 3v4M12 17v4M3 12h4M17 12h4\" />\n </svg>\n );\n}\n\n/** Chat · pick · efficient-shop · components/ChatWidget.tsx:108 */\nexport function ChatIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8.25 12h7.5M8.25 8.25h7.5M3 12c0 4.556 4.03 8.25 9 8.25a9.76 9.76 0 002.555-.337l3.945 1.087-1.087-3.945A8.19 8.19 0 0021 12c0-4.556-4.03-8.25-9-8.25S3 7.444 3 12z\" />\n </svg>\n );\n}\n\n/** Notification bell · keep · efficient-shop · components/wheels-plp/PlpNotifyMeDialog.tsx:183 */\nexport function BellIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9\" />\n <path d=\"M13.7 21a2 2 0 0 1-3.4 0\" />\n </svg>\n );\n}\n\n/** Template / bookmark · keep · efficient-shop · components/TemplateGlyph.tsx:20 */\nexport function TemplateIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M6 3h12a1 1 0 0 1 1 1v17l-7-4-7 4V4a1 1 0 0 1 1-1z\" />\n </svg>\n );\n}\n\n/** clock · new · drawn for the settings-panel design, 2026-08-20 */\nexport function ClockIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"8.5\"/>\n <path d=\"M12 7.5V12l3 2\"/>\n </svg>\n );\n}\n\n/** play · new · drawn for the settings-panel design, 2026-08-20 */\nexport function PlayIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M8 5.5v13l11-6.5z\"/>\n </svg>\n );\n}\n\n/** align left · new · drawn for the settings-panel design, 2026-08-20 */\nexport function AlignLeftIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 6.5h12M4 12h16M4 17.5h9\"/>\n </svg>\n );\n}\n\n/** align center · new · drawn for the settings-panel design, 2026-08-20 */\nexport function AlignCenterIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M6 6.5h12M4 12h16M7.5 17.5h9\"/>\n </svg>\n );\n}\n\n/** opacity · new · drawn for the settings-panel design, 2026-08-20 */\nexport function OpacityIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"4.5\" y=\"4.5\" width=\"10\" height=\"10\" rx=\"2\"/>\n <rect x=\"9.5\" y=\"9.5\" width=\"10\" height=\"10\" rx=\"2\"/>\n </svg>\n );\n}\n\n/** padding top · new · drawn for the settings-panel design, 2026-08-20 */\nexport function PaddingTopIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 4.5h16\"/>\n <rect x=\"7\" y=\"9.5\" width=\"10\" height=\"10\" rx=\"1.5\"/>\n </svg>\n );\n}\n\n/** padding bottom · new · drawn for the settings-panel design, 2026-08-20 */\nexport function PaddingBottomIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 19.5h16\"/>\n <rect x=\"7\" y=\"4\" width=\"10\" height=\"10\" rx=\"1.5\"/>\n </svg>\n );\n}\n\n/** width · new · drawn for the settings-panel design, 2026-08-20 */\nexport function WidthIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 12h16M7.5 8.5L4 12l3.5 3.5M16.5 8.5L20 12l-3.5 3.5\"/>\n </svg>\n );\n}\n\n/** anchor · new · drawn for the settings-panel design, 2026-08-20 */\nexport function AnchorIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"6\" r=\"2.5\"/>\n <path d=\"M12 8.5V21M4.5 13a7.5 7.5 0 0 0 15 0M4.5 13H7M17 13h2.5\"/>\n </svg>\n );\n}\n\n/** hash · new · drawn for the settings-panel design, 2026-08-20 */\nexport function HashIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9 4L7.5 20M16.5 4L15 20M5 9.5h15M4.5 15h15\"/>\n </svg>\n );\n}\n\n/** columns · new · drawn for the settings-panel design, 2026-08-20 */\nexport function ColumnsIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\"/>\n <rect x=\"10\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\"/>\n <rect x=\"17\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\"/>\n </svg>\n );\n}\n\n/** list · new · drawn for the settings-panel design, 2026-08-20 */\nexport function ListIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9 6h11M9 12h11M9 18h11\"/>\n <circle cx=\"5\" cy=\"6\" r=\"1\"/>\n <circle cx=\"5\" cy=\"12\" r=\"1\"/>\n <circle cx=\"5\" cy=\"18\" r=\"1\"/>\n </svg>\n );\n}\n\n/** text lines · new · drawn for the settings-panel design, 2026-08-20 */\nexport function TextLinesIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 7h16M4 12h16M4 17h10\"/>\n </svg>\n );\n}\n\n/** text size · new · drawn for the settings-panel design, 2026-08-20 */\nexport function TextSizeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 7h9M8.5 7v12M15 13h6M18 13v6\"/>\n </svg>\n );\n}\n\n/** text small · new · drawn for the settings-panel design, 2026-08-20 */\nexport function TextSmallIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M8 9h8M12 9v10\"/>\n </svg>\n );\n}\n\n/** a call-to-action on the page — the settings row for a button's own look. ⚠️ NAMED BY CARD 66310, 2026-09-01; it used to read \"button\", which is a SHAPE, and a shape claims nothing, so nothing stopped a second meaning attaching to this drawing. Measured the same day: `ButtonIcon` has no call site in efficient-shop, in efficient-admin, or in this repo — it is drawn and not yet wired to a row · new · drawn for the settings-panel design, 2026-08-20 */\nexport function ButtonIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3.5\" y=\"8\" width=\"17\" height=\"8\" rx=\"2.5\"/>\n <path d=\"M9 12h6\"/>\n </svg>\n );\n}\n\n/** link · new · drawn for the settings-panel design, 2026-08-20 */\nexport function LinkIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"/>\n <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"/>\n </svg>\n );\n}\n\n/** tag · new · drawn for the settings-panel design, 2026-08-20 */\nexport function TagIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 4h6.5L20 13.5a1.5 1.5 0 0 1 0 2.1l-4.4 4.4a1.5 1.5 0 0 1-2.1 0L4 10.5z\"/>\n <circle cx=\"8\" cy=\"8\" r=\"1.2\"/>\n </svg>\n );\n}\n\n/** rotate · new · drawn for the settings-panel design, 2026-08-20 */\nexport function RotateIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M20 12a8 8 0 1 1-2.34-5.66\"/>\n <polyline points=\"20 3.5 20 7 16.5 7\"/>\n </svg>\n );\n}\n\n/** square · new · drawn for the settings-panel design, 2026-08-20 */\nexport function SquareIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"14\" rx=\"2\"/>\n </svg>\n );\n}\n\n/** drop · new · drawn for the settings-panel design, 2026-08-20 */\nexport function DropIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 3.5s6.5 7.2 6.5 11a6.5 6.5 0 0 1-13 0c0-3.8 6.5-11 6.5-11z\"/>\n </svg>\n );\n}\n\n/** plus minus · new · drawn for the settings-panel design, 2026-08-20 */\nexport function PlusMinusIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M7.5 5v6M4.5 8h6M13.5 16.5h6\"/>\n </svg>\n );\n}\n\n/** dollar · new · drawn for the settings-panel design, 2026-08-20 */\nexport function DollarIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 3.5v17M16 7c-.8-1.2-2.2-1.8-4-1.8-2.2 0-4 1.1-4 2.9 0 4 8 2.2 8 6.2 0 1.8-1.8 2.9-4 2.9-1.8 0-3.2-.6-4-1.8\"/>\n </svg>\n );\n}\n\n/** note · new · drawn for the settings-panel design, 2026-08-20 */\nexport function NoteIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M5.5 4.5h13V14l-4.5 4.5h-8.5z\"/>\n <path d=\"M13.5 18.5V14H18\"/>\n </svg>\n );\n}\n\n/** font weight · new · approved by Lewis from mockups/8802d-three-missing-icons-mockup.html */\nexport function WeightIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M3 7h8M7 7v11M14 7h8M17.3 7v11M18.7 7v11\"/>\n </svg>\n );\n}\n\n/** letter spacing · new · approved by Lewis from mockups/8802d-three-missing-icons-mockup.html */\nexport function LetterSpacingIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 5v14M20 5v14M8 12h8M10 9.6 8 12l2 2.4M14 9.6l2 2.4-2 2.4\"/>\n </svg>\n );\n}\n\n/** letter case · new · approved by Lewis from mockups/8802d-three-missing-icons-mockup.html */\nexport function CaseIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M3 6h9M7.5 6v13\"/>\n <circle cx=\"17\" cy=\"14.5\" r=\"3.5\"/>\n <path d=\"M20.5 11v8\"/>\n </svg>\n );\n}\n\n/** page layout — the Layout settings bucket, not columns · new · drawn by Lewis for card 8806, 2026-08-22 */\nexport function LayoutIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/>\n <path d=\"M4 8.5h16\"/>\n <path d=\"M10 8.5V20\"/>\n </svg>\n );\n}\n\n/** site settings — a gear; heads the Basics tab of the Site styles panel · new · drawn by Lewis, his own pick for card 66166, 2026-08-28 — nothing else in the set is a gear, so no collision */\nexport function SettingsIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M17.97 9.71 L20.47 10.51 L20.47 13.49 L17.97 14.29 L17.85 14.60 L19.04 16.93 L16.93 19.04 L14.60 17.85 L14.29 17.97 L13.49 20.47 L10.51 20.47 L9.71 17.97 L9.40 17.85 L7.07 19.04 L4.96 16.93 L6.15 14.60 L6.03 14.29 L3.53 13.49 L3.53 10.51 L6.03 9.71 L6.15 9.40 L4.96 7.07 L7.07 4.96 L9.40 6.15 L9.71 6.03 L10.51 3.53 L13.49 3.53 L14.29 6.03 L14.60 6.15 L16.93 4.96 L19.04 7.07 L17.85 9.40 Z\"/>\n <circle cx=\"12\" cy=\"12\" r=\"3.2\"/>\n </svg>\n );\n}\n\n/** the Theme tab of the Site styles panel — where a site's one palette is set. ⚠️ THIS MEANING WAS REWRITTEN BY CARD 66310, 2026-09-01: it used to say the tab held light/dark pairs, and cards 66238/66239 deleted that — a theme is ONE FLAT palette now. The drawing did not move and does not need to; the filled half disc reads as TONE, which is what a palette sets. The fill is justified in `from` below and stays · new · drawn by Lewis, his own pick for card 66166, 2026-08-28 — the half disc is FILLED on purpose and stays filled: an outline can only draw a circle with a line down it, which reads as a divided circle, not as one light half beside one dark half. The fill IS the meaning here, not decoration ⚠️ Card 66310, 2026-09-01: cards 66238/66239 removed light/dark from the storefront, so the sentence above is kept as the RECORD OF WHY THE FILL EXISTS, not as a live description of what the tab holds. Do not outline it on the strength of that. */\nexport function ContrastIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"8\"/>\n <path d=\"M12 4a8 8 0 0 0 0 16z\" fill=\"currentColor\" stroke=\"none\"/>\n </svg>\n );\n}\n\n/** a person — the account / sign-in row and the header's account icon · new · drawn by SS for card 66190, 2026-08-28, approved by Lewis for card 66191 — the set had no person glyph. The shoulder is an OPEN arc, not a closed half-disc: closed, it silts up into a black lump at 16px. Head radius 3.6 to shoulder radius 7.2 is exactly 1:2, the same handling as the cart wheels */\nexport function AccountIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"8.4\" r=\"3.6\"/>\n <path d=\"M4.8 20a7.2 7.2 0 0 1 14.4 0\"/>\n </svg>\n );\n}\n\n/** a globe — the country / region selector row · new · drawn by SS for card 66190, 2026-08-28, approved by Lewis for card 66191 — the set had no globe or flag glyph. Three strokes only: ring, equator, one upright meridian. Latitude lines silt up at 16px, the same reason `search` is only two strokes */\nexport function GlobeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"8\"/>\n <path d=\"M4 12h16\"/>\n <path d=\"M12 4a12.5 12.5 0 0 1 0 16a12.5 12.5 0 0 1 0-16z\"/>\n </svg>\n );\n}\n\n/** a brand mark — the Header panel's Logo tab · new · supplied by Lewis for card 66191, 2026-08-28, after he rejected `image` (picture frame + mountain) for the Logo tab — `image` means a picture you upload, the Logo tab means the brand mark, and the set had no glyph that said brand. Two overlapping circles with a pen drawn across them. The small circle is an ARC WITH A GAP, not a closed circle, so the pen crosses a break instead of a line; keep the gap */\nexport function LogoIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"9.8\" cy=\"13.4\" r=\"7.1\"/>\n <path d=\"M19.7 11.6A4.6 4.6 0 1 1 11.9 13\"/>\n <path d=\"M13.2 12L13.52 10.2 18.68 5.04a1.06 1.06 0 0 1 1.48 1.48L15 11.68Z\"/>\n </svg>\n );\n}\n\n/** align right · new · drawn for card 66241, 2026-08-31, for the header Alignment control (card 66242) — the set shipped `align-left` and `align-center` on 2026-08-20 and stopped there. Checked by SHAPE across all 68 icons before drawing: nothing in the set is a right-flush row stack (`text-lines` is left-flush, `list` is three equal rows from x9, `columns` is rects). This is `align-left` mirrored about x=12, so the pair reads as one drawing seen both ways round */\nexport function AlignRightIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M8 6.5h12M4 12h16M11 17.5h9\"/>\n </svg>\n );\n}\n\n/** align separate — the rows pushed apart to both edges · new · drawn for card 66241, 2026-08-31, for the header Alignment control (card 66242). NOT `justify`: justify runs its rows edge to edge, this opens a channel down the middle. An ARROW version was drawn and dropped the same day — it was the shipped `width` glyph turned 90 degrees, and two glyphs that differ only by rotation misread inside one control. The channel is x9 -> x15 on ALL THREE rows, 6 units = 4.0px at 16px: the first draft opened 4 units on rows 1 and 3 and 6 on row 2, which is three unequal gaps and 2.7px of nothing. Lewis approved this even channel looking at mockups/separate-icon-gap.html — keep the three gaps equal */\nexport function AlignSeparateIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 6.5h5M15 6.5h5M4 12h5M15 12h5M4 17.5h5M15 17.5h5\"/>\n </svg>\n );\n}\n\n/** the ACCENT — the site's one emphasis, the phrase picked out inside a heading. Worn by `Accent` on the Text tab and by `Brand colour` on the Theme tab. ONE drawing for both, for two reasons that hold each other up. (1) `accent` is a NAMED ROLE on this site, not a coincidence of spelling: it is declared as a font role (`FONT_ROLES`) and as a colour role (`WORD_STYLE_COLOURS`). The Text tab's `Accent` sets that role's TYPEFACE; the Theme tab's `Brand colour` sets the colour it is painted in. One role, two halves — which is why one drawing serves both. (2) the Site styles Theme tab names every colour row by the ELEMENT it colours and never by a glyph meaning \"colour\" — `Text colour` wears `type`, `Label colour` wears `text-small`, `Page background` wears `page` (ThemeField ROW_ICON, card 66205). The glyph names the element; the row says what it sets. Card 66310, 2026-09-01. ⚠️ THIS CORRECTS TWO EARLIER GOES AT THIS SENTENCE, and the RULING survived both — one drawing still serves both rows and the drawing has not moved. 66310's own first entry said the two rows keep the key `accent` in one place, which is not so. es#36 replaced that with a NUMBER, and a number is the wrong shape here: counting what `accent` IS gives the role declarations above, while counting where an accent VALUE lives gives the typeface, the preset colour and — since card 66307 — the site brand colour. Both counts are true, of different things, so a figure that needs its counting rule carried beside it will be misread in a one-line entry. The structure is what does not move. Corrected on card 66315, 2026-09-01. Not \"a star\" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under · new · drawn for card 66310, 2026-09-01, after the shortlist of existing glyphs came up empty — `contrast` heads the Theme tab this row sits on, `drop` is the Photography row one tab across, `styles` is the rail item that OPENS this panel, and `layers` means the Layers panel. A four-point spark ON A LINE OF TYPE, and the LINE IS LOAD-BEARING: a bare spark reads as AI in most products today, and the line under it moves the reading to \"this part of the text is picked out\", which is what an accent is. Keep the line. Every point is an explicit M/L so the optical box can be measured without a browser */\nexport function AccentIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 4L13.3 8.7L18 10L13.3 11.3L12 16L10.7 11.3L6 10L10.7 8.7Z\"/>\n <path d=\"M4 20L20 20\"/>\n </svg>\n );\n}\n\n/** the depth a card sits at — the `Card shadow` row on the storefront's Site styles ▸ Basics tab, beside `Corners` · new · drawn for card 66331, 2026-09-01, for the `Card shadow` row (card 66332). Checked by SHAPE across all 71 before drawing, and the check found a trap: the set's one offset pair is `opacity`, which is TWO CLOSED same-size rounded rects overlapping — the naive shadow drawing is that same picture. This is ONE closed card plus an OPEN L behind it, bottom and right arms only, so the two can never collapse into each other: one rect and one open path, never two rects. Leaving the back shape open is the set's own habit for the same reason `account`'s shoulder and `logo`'s small circle are open. The offset is 5 units, 2.9px at 14px, and it was checked at 14px on light AND dark before it was committed ⚠️ CORRECTED on card 66371: this entry said the row sits inside a `Card appearance` GROUP. The design Lewis approved has these three rows FLAT on Site styles ▸ Basics beside `Corners`, with no group at all. An icon entry is what the next person reads when deciding where a glyph belongs, so a stated home that contradicts the shipped design is a false claim living in a shared library — the same shape as the `accent` entry corrected on 2026-09-01, where the ruling was right and its written reason was false. The DRAWING is unchanged and still correct */\nexport function ShadowIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"4\" y=\"4\" width=\"11\" height=\"11\" rx=\"2\"/>\n <path d=\"M20 9L20 20L9 20\"/>\n </svg>\n );\n}\n\n/** the air between two cards — the `Card gap` row on the storefront's Site styles ▸ Basics tab, beside `Corners` · new · drawn for card 66331, 2026-09-01, for the `Card gap` row (card 66332). The FIRST draft was two upright bars side by side and 14px killed it: two upright bars beside the three of `columns` is the same drawing with one bar taken away, and the channel came to 1.75px. Turned on its side instead — two wide cards STACKED, with a 7-unit channel, 4.1px at 14px and wider than the 6-unit channel Lewis approved for `align-separate` on 2026-08-31. Nothing else in the set is two stacked rounded bars: `columns` and `grid` are upright, `align-separate` and `text-lines` are hairlines. Nothing is drawn inside the channel on purpose — the air is the subject, and a tick or an arrow in there silts it up at 14px ⚠️ CORRECTED on card 66371: this entry said the row sits inside a `Card appearance` GROUP. The design Lewis approved has these three rows FLAT on Site styles ▸ Basics beside `Corners`, with no group at all. An icon entry is what the next person reads when deciding where a glyph belongs, so a stated home that contradicts the shipped design is a false claim living in a shared library — the same shape as the `accent` entry corrected on 2026-09-01, where the ruling was right and its written reason was false. The DRAWING is unchanged and still correct */\nexport function GapIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3.5\" y=\"3.5\" width=\"17\" height=\"5\" rx=\"2\"/>\n <rect x=\"3.5\" y=\"15.5\" width=\"17\" height=\"5\" rx=\"2\"/>\n </svg>\n );\n}\n\n/** the pointer resting on a card — the `Hover effect` row on the storefront's Site styles ▸ Basics tab, beside `Corners` · new · drawn for card 66331, 2026-09-01, for the `Hover effect` row (card 66332). The brief offered two readings, a shape lifting or a pointer over a shape, and the pointer was picked because a lift IS a shadow: `shadow` sits three rows above this one on the same tab, with `Shadow colour` and `Card gap` between them, and two glyphs that misread inside one control is exactly what card 66241 rejected an arrow for. The set had no pointer and no cursor at all (measured 2026-09-01). The arrow is TAIL-LESS on purpose — the classic seven-point cursor was drawn first and silts into a blob at 14px; four points survive. The residual read is click-versus-hover, which no motion-free glyph can fully settle ⚠️ CORRECTED on card 66371: this entry said the row sits inside a `Card appearance` GROUP. The design Lewis approved has these three rows FLAT on Site styles ▸ Basics beside `Corners`, with no group at all. An icon entry is what the next person reads when deciding where a glyph belongs, so a stated home that contradicts the shipped design is a false claim living in a shared library — the same shape as the `accent` entry corrected on 2026-09-01, where the ruling was right and its written reason was false. The DRAWING is unchanged and still correct */\nexport function HoverIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" rx=\"2\"/>\n <path d=\"M11.5 9L11.5 20.5L14.8 17.2L20.5 16.6Z\"/>\n </svg>\n );\n}\n\n/** the words come from the catalogue record — the `From product` segment of the Card text control · new · drawn for card 66331, 2026-09-01, for the Card text segmented control (card 66333). A cylinder, the convention for stored data; nothing in the set said data before this — no `database`, no `data`, no `field`, measured 2026-09-01. The bottom is an OPEN arc, not a second full ellipse: closed, it reads as a drum or a can, and the open form is what makes it a database. This is the only glyph in the set whose body is an elliptical arc, which is why spec (ad) reads arcs properly instead of refusing them the way (n) and (y) do — refused, the box would come back 3.4 units short, because the arc bulges below its own endpoints */\nexport function ProductFieldIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <ellipse cx=\"12\" cy=\"7.4\" rx=\"7.5\" ry=\"3.4\"/>\n <path d=\"M4.5 7.4v9.2a7.5 3.4 0 0 0 15 0V7.4\"/>\n </svg>\n );\n}\n\n/** the words are the merchant's own, not the product's — the `My own text` segment of the Card text control · new · drawn for card 66331 and REDRAWN for card 66371, 2026-09-01, for the Card text segmented control (card 66333). Lewis approved Q1 — two curved quotation marks — after seeing four candidates rendered at 16px on light and dark grounds. The obvious drawings are all spoken for, and this is the record so nobody pays for them twice: a PENCIL is the shipped `rename`, and 66331's first draft came out byte-for-byte that drawing; an I-BEAM is `type` with one bar removed, and `type` heads the Text tab of this same panel; a PEN NIB reads as a MAP PIN at 16px, because the slit and the vent are what make a nib a nib and they are exactly what silts at that size — drawn three ways, the same read three times. The 0.27.0 SCRAWL over a baseline shipped and had to go: it reads as a chart line, and 66331 had already tried making the zigzag irregular, which reduced the misread without removing it. A quotation mark survives because nothing else in the 76 is one, and because beside `product-field` it makes the pair the row is actually about: a machine record versus words a person chose. Q3 — the same quotes with a baseline ruled under them — was drawn and is WORSE: the line drags the weight down and off centre, and it is not to come back. The two marks are ONE mark twice, the right at a fixed +8.5 in x. The box is 14 × 11, short and wide and outside the set's usual 14–17.5, on the `align-` family's precedent (16 × 11, deliberate, card 66241) — measured in `tests/fixtures/icons-66331-optical-size.html` because Q1 is cubic and spec (ad) refuses curve commands on purpose. THE NAME `own-text` DID NOT CHANGE — two consumer cards already reference it */\nexport function OwnTextIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9.5 6.5C6.5 6.5 5 8.5 5 11.5L5 17.5L10.5 17.5L10.5 11.5L7.6 11.5C7.6 9.5 8.2 8.6 9.5 8.5Z\"/>\n <path d=\"M18 6.5C15 6.5 13.5 8.5 13.5 11.5L13.5 17.5L19 17.5L19 11.5L16.1 11.5C16.1 9.5 16.7 8.6 18 8.5Z\"/>\n </svg>\n );\n}\n\n/** one whole palette a section can be painted in — paper, ink, borders and accent together, not one colour. Worn by the `Theme` row of the section panel's `Colour` group (card 66313), the dropdown that says which of the site's themes this one section is on. NOT `contrast`, which names the Site styles Theme TAB — that is a PLACE, not the idea “a palette”. NOT `accent`, which is the site's ONE emphasis colour, one colour rather than a whole set. Card 66315, 2026-09-01 · new · drawn for card 66315, 2026-09-01, and picked by the owner at 16px in a real settings row — the size `.es-field-icon svg` actually renders — from a shortlist of four. A rounded square with its RIGHT HALF FILLED: paper and ink in one square, which is what a palette is. The fill IS the drawing and an outline cannot replace it — two empty boxes is the shipped `opacity`, and a stroke cannot show a tone at all. The filled half uses the square's OWN corner radius, so it is half of that square and not a rectangle laid over one. Rejected at 16px on the same sheet: three circles in a row read as radio buttons, a meaning already spoken for; a triangle of circles went muddy; a painter's palette survived the size but is a skeuomorphic object among 76 geometric ones and was louder than everything beside it in the row */\nexport function ThemeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3.5\" y=\"3.5\" width=\"17\" height=\"17\" rx=\"2.5\"/>\n <path d=\"M12 3.5h6a2.5 2.5 0 0 1 2.5 2.5v12a2.5 2.5 0 0 1-2.5 2.5h-6z\" fill=\"currentColor\" stroke=\"none\"/>\n </svg>\n );\n}\n\n/** where a section's band sits on the page — the `Background` row of the section panel's `Colour` group (card 66313), whose choices are Page / Dark / Accent. The card is the page and the filled band is the section's own colour lying across it. Card 66315, 2026-09-01 · new · drawn for card 66315, 2026-09-01, beside `theme` and picked by the owner at 16px in a real settings row. A rounded rect with ONE FILLED horizontal band edge to edge across its middle. Filled and full-width on purpose: a band is a solid area of colour, and an outlined strip at 16px reads as one more rule between two others — which is `list` and `text-lines`, both already in the set. It is wider than it is tall so it cannot be read as a column, which is `columns`, and it crosses the card edge to edge so it is a band rather than a bar floating inside one */\nexport function BackgroundIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3.5\" y=\"4.5\" width=\"17\" height=\"15\" rx=\"2\"/>\n <path d=\"M3.5 10.5h17v4h-17z\" fill=\"currentColor\" stroke=\"none\"/>\n </svg>\n );\n}\n\n/** put this block on the clipboard so it can be pasted somewhere else — the `Copy` row (⌘C) of the block right-click menu the owner approved 2026-08-31. NOT `copy-to-page`, whose meaning is already \"Copy to another page\" and which names a DESTINATION rather than the clipboard. NOT `duplicate`, which sits two rows below this one in the same menu and makes a second block in place at once without ever touching the clipboard. Card 66400.a, 2026-09-02 · new · drawn for card 66400.a, 2026-09-02, for the block right-click menu Lewis approved on 2026-08-31 (`mockups/editor-add-and-context-v1.html`). Checked by SHAPE across all 78 entries before drawing, and the check found the trap this card was warned about: `copy-to-page` is a page with an arrow leaving it, and `duplicate` is the heroicons two-DOCUMENT pair — so the copy drawing may be neither. It is two overlapping PLAIN rounded squares, no page notch and no inner rule, which is the one silhouette in the copy family the set does not already own: beside `duplicate` at 16px one reads as two tiles and the other as two sheets of paper. The back square is an OPEN L, top and left arms only, on the same habit `shadow` gives for itself — one closed rect plus one open path can never collapse into two rects, which is what `opacity` already is. The 3-unit air between each stub and the front square is what makes the two read as separate at 14px */\nexport function CopyIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"10\" y=\"10\" width=\"10\" height=\"10\" rx=\"2\"/>\n <path d=\"M7 14H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1\"/>\n </svg>\n );\n}\n\n/** drop whatever is on the clipboard into here — the `Paste` row (⌘V) of the block right-click menu the owner approved 2026-08-31. The other half of `copy`, and the only entry in the set that means the clipboard's CONTENTS coming back out. NOT `add`, which opens a chooser for a new block rather than placing one already taken. Card 66400.a, 2026-09-02 · new · drawn for card 66400.a, 2026-09-02, beside `copy` for the block right-click menu Lewis approved on 2026-08-31. A clipboard: board, clip and two content rules. The clipboard is what makes the pair legible — `copy` and `paste` are one mechanism read in both directions, and drawing paste as the OBJECT both actions pass through is what stops it being read as a third kind of duplicate. The board's top is left OPEN where the clip crosses it rather than drawing two rects through each other. The two content rules are not decoration: a bare board plus a tab is `lock` upside down — same 14-wide body, same small shape riding the edge — and the rules are what separate them at 14px. They are 4 units apart and the lower one is short, so the pair reads as text on a board and not as `text-lines` or `list`, both already in the set */\nexport function PasteIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"9\" y=\"4\" width=\"6\" height=\"4\" rx=\"1\"/>\n <path d=\"M15 6h2a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2\"/>\n <path d=\"M9 12.5h6\"/>\n <path d=\"M9 16.5h4\"/>\n </svg>\n );\n}\n\n/** send this block one step earlier in its parent's order — the `Move up` row of the block right-click menu the owner approved 2026-08-31. It REORDERS: it does not scroll a view, sort a list or raise a number. NOT `chevron`, which is disclosure — a section opening, not a block moving — and is the first arrow-shaped thing a borrower meets in this set. Card 66400.a, 2026-09-02 · new · drawn for card 66400.a, 2026-09-02, for the block right-click menu Lewis approved on 2026-08-31, whose own row reads ↑. Measured 2026-09-02: the set had no plain arrow at all — every arrowhead in it is attached to something else (`undo`, `redo`, `revert` are curved returns, `send` is a paper plane, `external` leaves a frame, `chevron` is a single disclosure stroke). So a straight vertical arrow is free, and it is what the approved menu already shows. Feather's proportions: a full-height shaft with a 90° head, 14 × 14 and centred on 12,12, which puts it in the middle of the set's box beside `square` at 14 and `type` at 16. Nothing is drawn around it — a bar above the head would read as \"move to top\", which is a different row the menu does not have */\nexport function MoveUpIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 19V5\"/>\n <path d=\"M5 12l7-7 7 7\"/>\n </svg>\n );\n}\n\n/** send this block one step later in its parent's order — the `Move down` row of the block right-click menu the owner approved 2026-08-31. The mirror of `move-up` and it reorders the same way: it does not scroll a view, sort a list or lower a number. NOT `chevron`, which is disclosure rather than movement. Card 66400.a, 2026-09-02 · new · drawn for card 66400.a, 2026-09-02, beside `move-up` and mirrored about the canvas's horizontal centre line, on the precedent card 66241 set for `align-right` being `align-left` mirrored: two rows that are one idea read in two directions get one drawing turned round, not two drawings. Same 14 × 14 box, same 90° head, same centre. The two are a matched pair on purpose — they sit directly above and below each other in the menu, and a head that changed weight between them is the thing a reviewer notices and cannot name */\nexport function MoveDownIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 5V19\"/>\n <path d=\"M19 12l-7 7-7-7\"/>\n </svg>\n );\n}\n"]}
@@ -76,12 +76,18 @@ declare const iconMeanings: {
76
76
  readonly logo: "a brand mark — the Header panel's Logo tab";
77
77
  readonly "align-right": "align right";
78
78
  readonly "align-separate": "align separate — the rows pushed apart to both edges";
79
- readonly accent: "the site's ONE emphasis the accent phrase inside a heading, and the colour that paints it. `Brand colour` on the Theme tab and `Accent` on the Text tab are the same idea seen twice and both store the key `accent`, so they share this ONE drawing: card 66310, 2026-09-01. Not \"a star\" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under";
79
+ readonly accent: "the ACCENT — the site's one emphasis, the phrase picked out inside a heading. Worn by `Accent` on the Text tab and by `Brand colour` on the Theme tab. ONE drawing for both, for two reasons that hold each other up. (1) `accent` is a NAMED ROLE on this site, not a coincidence of spelling: it is declared as a font role (`FONT_ROLES`) and as a colour role (`WORD_STYLE_COLOURS`). The Text tab's `Accent` sets that role's TYPEFACE; the Theme tab's `Brand colour` sets the colour it is painted in. One role, two halves — which is why one drawing serves both. (2) the Site styles Theme tab names every colour row by the ELEMENT it colours and never by a glyph meaning \"colour\" — `Text colour` wears `type`, `Label colour` wears `text-small`, `Page background` wears `page` (ThemeField ROW_ICON, card 66205). The glyph names the element; the row says what it sets. Card 66310, 2026-09-01. ⚠️ THIS CORRECTS TWO EARLIER GOES AT THIS SENTENCE, and the RULING survived both one drawing still serves both rows and the drawing has not moved. 66310's own first entry said the two rows keep the key `accent` in one place, which is not so. es#36 replaced that with a NUMBER, and a number is the wrong shape here: counting what `accent` IS gives the role declarations above, while counting where an accent VALUE lives gives the typeface, the preset colour and — since card 66307 — the site brand colour. Both counts are true, of different things, so a figure that needs its counting rule carried beside it will be misread in a one-line entry. The structure is what does not move. Corrected on card 66315, 2026-09-01. Not \"a star\" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under";
80
80
  readonly shadow: "the depth a card sits at — the `Card shadow` row on the storefront's Site styles ▸ Basics tab, beside `Corners`";
81
81
  readonly gap: "the air between two cards — the `Card gap` row on the storefront's Site styles ▸ Basics tab, beside `Corners`";
82
82
  readonly hover: "the pointer resting on a card — the `Hover effect` row on the storefront's Site styles ▸ Basics tab, beside `Corners`";
83
83
  readonly "product-field": "the words come from the catalogue record — the `From product` segment of the Card text control";
84
84
  readonly "own-text": "the words are the merchant's own, not the product's — the `My own text` segment of the Card text control";
85
+ readonly theme: "one whole palette a section can be painted in — paper, ink, borders and accent together, not one colour. Worn by the `Theme` row of the section panel's `Colour` group (card 66313), the dropdown that says which of the site's themes this one section is on. NOT `contrast`, which names the Site styles Theme TAB — that is a PLACE, not the idea “a palette”. NOT `accent`, which is the site's ONE emphasis colour, one colour rather than a whole set. Card 66315, 2026-09-01";
86
+ readonly background: "where a section's band sits on the page — the `Background` row of the section panel's `Colour` group (card 66313), whose choices are Page / Dark / Accent. The card is the page and the filled band is the section's own colour lying across it. Card 66315, 2026-09-01";
87
+ readonly copy: "put this block on the clipboard so it can be pasted somewhere else — the `Copy` row (⌘C) of the block right-click menu the owner approved 2026-08-31. NOT `copy-to-page`, whose meaning is already \"Copy to another page\" and which names a DESTINATION rather than the clipboard. NOT `duplicate`, which sits two rows below this one in the same menu and makes a second block in place at once without ever touching the clipboard. Card 66400.a, 2026-09-02";
88
+ readonly paste: "drop whatever is on the clipboard into here — the `Paste` row (⌘V) of the block right-click menu the owner approved 2026-08-31. The other half of `copy`, and the only entry in the set that means the clipboard's CONTENTS coming back out. NOT `add`, which opens a chooser for a new block rather than placing one already taken. Card 66400.a, 2026-09-02";
89
+ readonly "move-up": "send this block one step earlier in its parent's order — the `Move up` row of the block right-click menu the owner approved 2026-08-31. It REORDERS: it does not scroll a view, sort a list or raise a number. NOT `chevron`, which is disclosure — a section opening, not a block moving — and is the first arrow-shaped thing a borrower meets in this set. Card 66400.a, 2026-09-02";
90
+ readonly "move-down": "send this block one step later in its parent's order — the `Move down` row of the block right-click menu the owner approved 2026-08-31. The mirror of `move-up` and it reorders the same way: it does not scroll a view, sort a list or lower a number. NOT `chevron`, which is disclosure rather than movement. Card 66400.a, 2026-09-02";
85
91
  };
86
92
  type IconName = keyof typeof iconMeanings;
87
93
  /** Delete · keep · efficient-shop · components/UiIcon.tsx:99 */
@@ -224,7 +230,7 @@ declare function LogoIcon({ size, ...rest }: IconProps): react.JSX.Element;
224
230
  declare function AlignRightIcon({ size, ...rest }: IconProps): react.JSX.Element;
225
231
  /** align separate — the rows pushed apart to both edges · new · drawn for card 66241, 2026-08-31, for the header Alignment control (card 66242). NOT `justify`: justify runs its rows edge to edge, this opens a channel down the middle. An ARROW version was drawn and dropped the same day — it was the shipped `width` glyph turned 90 degrees, and two glyphs that differ only by rotation misread inside one control. The channel is x9 -> x15 on ALL THREE rows, 6 units = 4.0px at 16px: the first draft opened 4 units on rows 1 and 3 and 6 on row 2, which is three unequal gaps and 2.7px of nothing. Lewis approved this even channel looking at mockups/separate-icon-gap.html — keep the three gaps equal */
226
232
  declare function AlignSeparateIcon({ size, ...rest }: IconProps): react.JSX.Element;
227
- /** the site's ONE emphasis the accent phrase inside a heading, and the colour that paints it. `Brand colour` on the Theme tab and `Accent` on the Text tab are the same idea seen twice and both store the key `accent`, so they share this ONE drawing: card 66310, 2026-09-01. Not "a star" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under · new · drawn for card 66310, 2026-09-01, after the shortlist of existing glyphs came up empty — `contrast` heads the Theme tab this row sits on, `drop` is the Photography row one tab across, `styles` is the rail item that OPENS this panel, and `layers` means the Layers panel. A four-point spark ON A LINE OF TYPE, and the LINE IS LOAD-BEARING: a bare spark reads as AI in most products today, and the line under it moves the reading to "this part of the text is picked out", which is what an accent is. Keep the line. Every point is an explicit M/L so the optical box can be measured without a browser */
233
+ /** the ACCENT — the site's one emphasis, the phrase picked out inside a heading. Worn by `Accent` on the Text tab and by `Brand colour` on the Theme tab. ONE drawing for both, for two reasons that hold each other up. (1) `accent` is a NAMED ROLE on this site, not a coincidence of spelling: it is declared as a font role (`FONT_ROLES`) and as a colour role (`WORD_STYLE_COLOURS`). The Text tab's `Accent` sets that role's TYPEFACE; the Theme tab's `Brand colour` sets the colour it is painted in. One role, two halves — which is why one drawing serves both. (2) the Site styles Theme tab names every colour row by the ELEMENT it colours and never by a glyph meaning "colour" — `Text colour` wears `type`, `Label colour` wears `text-small`, `Page background` wears `page` (ThemeField ROW_ICON, card 66205). The glyph names the element; the row says what it sets. Card 66310, 2026-09-01. ⚠️ THIS CORRECTS TWO EARLIER GOES AT THIS SENTENCE, and the RULING survived both one drawing still serves both rows and the drawing has not moved. 66310's own first entry said the two rows keep the key `accent` in one place, which is not so. es#36 replaced that with a NUMBER, and a number is the wrong shape here: counting what `accent` IS gives the role declarations above, while counting where an accent VALUE lives gives the typeface, the preset colour and — since card 66307 — the site brand colour. Both counts are true, of different things, so a figure that needs its counting rule carried beside it will be misread in a one-line entry. The structure is what does not move. Corrected on card 66315, 2026-09-01. Not "a star" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under · new · drawn for card 66310, 2026-09-01, after the shortlist of existing glyphs came up empty — `contrast` heads the Theme tab this row sits on, `drop` is the Photography row one tab across, `styles` is the rail item that OPENS this panel, and `layers` means the Layers panel. A four-point spark ON A LINE OF TYPE, and the LINE IS LOAD-BEARING: a bare spark reads as AI in most products today, and the line under it moves the reading to "this part of the text is picked out", which is what an accent is. Keep the line. Every point is an explicit M/L so the optical box can be measured without a browser */
228
234
  declare function AccentIcon({ size, ...rest }: IconProps): react.JSX.Element;
229
235
  /** the depth a card sits at — the `Card shadow` row on the storefront's Site styles ▸ Basics tab, beside `Corners` · new · drawn for card 66331, 2026-09-01, for the `Card shadow` row (card 66332). Checked by SHAPE across all 71 before drawing, and the check found a trap: the set's one offset pair is `opacity`, which is TWO CLOSED same-size rounded rects overlapping — the naive shadow drawing is that same picture. This is ONE closed card plus an OPEN L behind it, bottom and right arms only, so the two can never collapse into each other: one rect and one open path, never two rects. Leaving the back shape open is the set's own habit for the same reason `account`'s shoulder and `logo`'s small circle are open. The offset is 5 units, 2.9px at 14px, and it was checked at 14px on light AND dark before it was committed ⚠️ CORRECTED on card 66371: this entry said the row sits inside a `Card appearance` GROUP. The design Lewis approved has these three rows FLAT on Site styles ▸ Basics beside `Corners`, with no group at all. An icon entry is what the next person reads when deciding where a glyph belongs, so a stated home that contradicts the shipped design is a false claim living in a shared library — the same shape as the `accent` entry corrected on 2026-09-01, where the ruling was right and its written reason was false. The DRAWING is unchanged and still correct */
230
236
  declare function ShadowIcon({ size, ...rest }: IconProps): react.JSX.Element;
@@ -236,5 +242,17 @@ declare function HoverIcon({ size, ...rest }: IconProps): react.JSX.Element;
236
242
  declare function ProductFieldIcon({ size, ...rest }: IconProps): react.JSX.Element;
237
243
  /** the words are the merchant's own, not the product's — the `My own text` segment of the Card text control · new · drawn for card 66331 and REDRAWN for card 66371, 2026-09-01, for the Card text segmented control (card 66333). Lewis approved Q1 — two curved quotation marks — after seeing four candidates rendered at 16px on light and dark grounds. The obvious drawings are all spoken for, and this is the record so nobody pays for them twice: a PENCIL is the shipped `rename`, and 66331's first draft came out byte-for-byte that drawing; an I-BEAM is `type` with one bar removed, and `type` heads the Text tab of this same panel; a PEN NIB reads as a MAP PIN at 16px, because the slit and the vent are what make a nib a nib and they are exactly what silts at that size — drawn three ways, the same read three times. The 0.27.0 SCRAWL over a baseline shipped and had to go: it reads as a chart line, and 66331 had already tried making the zigzag irregular, which reduced the misread without removing it. A quotation mark survives because nothing else in the 76 is one, and because beside `product-field` it makes the pair the row is actually about: a machine record versus words a person chose. Q3 — the same quotes with a baseline ruled under them — was drawn and is WORSE: the line drags the weight down and off centre, and it is not to come back. The two marks are ONE mark twice, the right at a fixed +8.5 in x. The box is 14 × 11, short and wide and outside the set's usual 14–17.5, on the `align-` family's precedent (16 × 11, deliberate, card 66241) — measured in `tests/fixtures/icons-66331-optical-size.html` because Q1 is cubic and spec (ad) refuses curve commands on purpose. THE NAME `own-text` DID NOT CHANGE — two consumer cards already reference it */
238
244
  declare function OwnTextIcon({ size, ...rest }: IconProps): react.JSX.Element;
245
+ /** one whole palette a section can be painted in — paper, ink, borders and accent together, not one colour. Worn by the `Theme` row of the section panel's `Colour` group (card 66313), the dropdown that says which of the site's themes this one section is on. NOT `contrast`, which names the Site styles Theme TAB — that is a PLACE, not the idea “a palette”. NOT `accent`, which is the site's ONE emphasis colour, one colour rather than a whole set. Card 66315, 2026-09-01 · new · drawn for card 66315, 2026-09-01, and picked by the owner at 16px in a real settings row — the size `.es-field-icon svg` actually renders — from a shortlist of four. A rounded square with its RIGHT HALF FILLED: paper and ink in one square, which is what a palette is. The fill IS the drawing and an outline cannot replace it — two empty boxes is the shipped `opacity`, and a stroke cannot show a tone at all. The filled half uses the square's OWN corner radius, so it is half of that square and not a rectangle laid over one. Rejected at 16px on the same sheet: three circles in a row read as radio buttons, a meaning already spoken for; a triangle of circles went muddy; a painter's palette survived the size but is a skeuomorphic object among 76 geometric ones and was louder than everything beside it in the row */
246
+ declare function ThemeIcon({ size, ...rest }: IconProps): react.JSX.Element;
247
+ /** where a section's band sits on the page — the `Background` row of the section panel's `Colour` group (card 66313), whose choices are Page / Dark / Accent. The card is the page and the filled band is the section's own colour lying across it. Card 66315, 2026-09-01 · new · drawn for card 66315, 2026-09-01, beside `theme` and picked by the owner at 16px in a real settings row. A rounded rect with ONE FILLED horizontal band edge to edge across its middle. Filled and full-width on purpose: a band is a solid area of colour, and an outlined strip at 16px reads as one more rule between two others — which is `list` and `text-lines`, both already in the set. It is wider than it is tall so it cannot be read as a column, which is `columns`, and it crosses the card edge to edge so it is a band rather than a bar floating inside one */
248
+ declare function BackgroundIcon({ size, ...rest }: IconProps): react.JSX.Element;
249
+ /** put this block on the clipboard so it can be pasted somewhere else — the `Copy` row (⌘C) of the block right-click menu the owner approved 2026-08-31. NOT `copy-to-page`, whose meaning is already "Copy to another page" and which names a DESTINATION rather than the clipboard. NOT `duplicate`, which sits two rows below this one in the same menu and makes a second block in place at once without ever touching the clipboard. Card 66400.a, 2026-09-02 · new · drawn for card 66400.a, 2026-09-02, for the block right-click menu Lewis approved on 2026-08-31 (`mockups/editor-add-and-context-v1.html`). Checked by SHAPE across all 78 entries before drawing, and the check found the trap this card was warned about: `copy-to-page` is a page with an arrow leaving it, and `duplicate` is the heroicons two-DOCUMENT pair — so the copy drawing may be neither. It is two overlapping PLAIN rounded squares, no page notch and no inner rule, which is the one silhouette in the copy family the set does not already own: beside `duplicate` at 16px one reads as two tiles and the other as two sheets of paper. The back square is an OPEN L, top and left arms only, on the same habit `shadow` gives for itself — one closed rect plus one open path can never collapse into two rects, which is what `opacity` already is. The 3-unit air between each stub and the front square is what makes the two read as separate at 14px */
250
+ declare function CopyIcon({ size, ...rest }: IconProps): react.JSX.Element;
251
+ /** drop whatever is on the clipboard into here — the `Paste` row (⌘V) of the block right-click menu the owner approved 2026-08-31. The other half of `copy`, and the only entry in the set that means the clipboard's CONTENTS coming back out. NOT `add`, which opens a chooser for a new block rather than placing one already taken. Card 66400.a, 2026-09-02 · new · drawn for card 66400.a, 2026-09-02, beside `copy` for the block right-click menu Lewis approved on 2026-08-31. A clipboard: board, clip and two content rules. The clipboard is what makes the pair legible — `copy` and `paste` are one mechanism read in both directions, and drawing paste as the OBJECT both actions pass through is what stops it being read as a third kind of duplicate. The board's top is left OPEN where the clip crosses it rather than drawing two rects through each other. The two content rules are not decoration: a bare board plus a tab is `lock` upside down — same 14-wide body, same small shape riding the edge — and the rules are what separate them at 14px. They are 4 units apart and the lower one is short, so the pair reads as text on a board and not as `text-lines` or `list`, both already in the set */
252
+ declare function PasteIcon({ size, ...rest }: IconProps): react.JSX.Element;
253
+ /** send this block one step earlier in its parent's order — the `Move up` row of the block right-click menu the owner approved 2026-08-31. It REORDERS: it does not scroll a view, sort a list or raise a number. NOT `chevron`, which is disclosure — a section opening, not a block moving — and is the first arrow-shaped thing a borrower meets in this set. Card 66400.a, 2026-09-02 · new · drawn for card 66400.a, 2026-09-02, for the block right-click menu Lewis approved on 2026-08-31, whose own row reads ↑. Measured 2026-09-02: the set had no plain arrow at all — every arrowhead in it is attached to something else (`undo`, `redo`, `revert` are curved returns, `send` is a paper plane, `external` leaves a frame, `chevron` is a single disclosure stroke). So a straight vertical arrow is free, and it is what the approved menu already shows. Feather's proportions: a full-height shaft with a 90° head, 14 × 14 and centred on 12,12, which puts it in the middle of the set's box beside `square` at 14 and `type` at 16. Nothing is drawn around it — a bar above the head would read as "move to top", which is a different row the menu does not have */
254
+ declare function MoveUpIcon({ size, ...rest }: IconProps): react.JSX.Element;
255
+ /** send this block one step later in its parent's order — the `Move down` row of the block right-click menu the owner approved 2026-08-31. The mirror of `move-up` and it reorders the same way: it does not scroll a view, sort a list or lower a number. NOT `chevron`, which is disclosure rather than movement. Card 66400.a, 2026-09-02 · new · drawn for card 66400.a, 2026-09-02, beside `move-up` and mirrored about the canvas's horizontal centre line, on the precedent card 66241 set for `align-right` being `align-left` mirrored: two rows that are one idea read in two directions get one drawing turned round, not two drawings. Same 14 × 14 box, same 90° head, same centre. The two are a matched pair on purpose — they sit directly above and below each other in the menu, and a head that changed weight between them is the thing a reviewer notices and cannot name */
256
+ declare function MoveDownIcon({ size, ...rest }: IconProps): react.JSX.Element;
239
257
 
240
- export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyToPageIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, HashIcon, HoverIcon, type IconName, type IconProps, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PageIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings };
258
+ export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BackgroundIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyIcon, CopyToPageIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, HashIcon, HoverIcon, type IconName, type IconProps, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PageIcon, PasteIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, ThemeIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings };
@@ -1,3 +1,3 @@
1
- export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyToPageIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, HashIcon, HoverIcon, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PageIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings } from '../chunk-T3IHELBO.js';
1
+ export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BackgroundIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyIcon, CopyToPageIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, HashIcon, HoverIcon, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PageIcon, PasteIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, ThemeIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings } from '../chunk-N7I3A4DC.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { EditorRail, EditorRailButton, railCssVars, railTokens } from './chunk-HYOACICE.js';
2
- export { AddIcon, LayersIcon, MediaIcon, PageIcon as PagesIcon, SitemapIcon, StylesIcon } from './chunk-T3IHELBO.js';
2
+ export { AddIcon, LayersIcon, MediaIcon, PageIcon as PagesIcon, SitemapIcon, StylesIcon } from './chunk-N7I3A4DC.js';
3
3
  export { puckAzureRamp, shellCssVars, shellTokens } from './chunk-VEXTYAMU.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -897,11 +897,20 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
897
897
  a level to that part's own editor.
898
898
 
899
899
  A FULL-WIDTH LIST ROW, not the raised pill a group's head is. These stack into
900
- a list at the bottom of the section panel, and a list reads as a list: flat
901
- rows with a hairline between them, a quiet hover tint, no chip elevation. The
902
- separator is drawn BETWEEN rows (`.es-drill + .es-drill`) rather than as a
903
- bottom border on each, so the last row needs no `:last-child` exception and a
904
- lone row outside a list carries no dangling rule.
900
+ a list at the bottom of the section panel: flat rows, a quiet hover tint, no
901
+ chip elevation.
902
+
903
+ ⚠️ THEY ARE SEPARATED BY AIR, NOT BY INK (card 66350). Up to 0.29.0 a hairline
904
+ was drawn between adjacent rows, `.es-drill + .es-drill`. The owner asked for
905
+ the settings panel's divider lines to go, repeatedly; card 66334 removed every
906
+ one the storefront itself draws, and this was the largest source left that the
907
+ shop could not reach, because it lives here. Sixteen painted lines in one
908
+ editor, measured. The shop overrode it locally in the meantime, which made
909
+ this package and its consumer two sources of truth for one line — this
910
+ deletion is what lets that override go.
911
+
912
+ The air between rows does not change with it. It was never the hairline's; it
913
+ is each row's own padding, on its own side of the seam.
905
914
 
906
915
  `box-sizing` for the same reason the switch and the group head set it: this
907
916
  file assumes no reset of the host's, and `width: 100%` plus the padding would
@@ -917,12 +926,16 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
917
926
  font: inherit;
918
927
  background: transparent;
919
928
  /* THE DRILL LIST SPENDS ITS ROW GAP HERE, AS PADDING, AND THAT IS DELIBERATE
920
- (card 66203). The rows' boxes touch `.es-drill + .es-drill` below draws a
921
- hairline between them and adds no margin so the air a merchant sees is
922
- each row's own vertical padding, on its own side of the line. MEASURED in
929
+ (card 66203). The rows' boxes touch and nothing between them adds a margin,
930
+ so the air a merchant sees is each row's own vertical padding, on its own
931
+ side of the seam. That was true when a hairline sat on the seam and it is
932
+ true now that none does — card 66350 removed the INK and moved no spacing,
933
+ so every number below still stands as its card recorded it. MEASURED in
923
934
  Chromium against these stylesheets (`tests/fixtures/panel-row-spacing.html`):
924
935
 
925
- token above the rule below it word to word recorded by
936
+ token above the seam below it word to word recorded by
937
+ (each row taken while the
938
+ hairline was still drawn)
926
939
  10px 11.40px 12.00px 23.40px card 66203
927
940
  16px 17.40px 18.00px 35.40px card 66206
928
941
  16px 17.39px 17.00px 34.39px card 66301
@@ -941,10 +954,10 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
941
954
  rhythm — which is why it is the row Lewis was looking at when he asked for
942
955
  card 66206. Card 66301 moves the rhythms too, so it is no longer alone.
943
956
 
944
- A MARGIN WOULD BE THE WRONG FIX. A border-top with space above it detaches
945
- from the row it belongs to and reads as a line floating in the panel rather
946
- than as a separator, and the list stops reading as a list. So the gap stays
947
- padding — it just reads the token now, which is the whole point: before
957
+ A MARGIN WOULD STILL BE THE WRONG FIX, and the reason outlived the line it
958
+ was first written about. Adjacent vertical margins COLLAPSE, so spending the
959
+ gap that way makes the floor something two rows negotiate rather than
960
+ something each row owns on its own side. So the gap stays padding — it just reads the token now, which is the whole point: before
948
961
  this, raising the panel's rhythm moved every other row and left the drill
949
962
  list exactly where it was. */
950
963
  padding: var(--es-row-gap) 11px;
@@ -952,12 +965,6 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
952
965
  transition: background 0.12s;
953
966
  }
954
967
 
955
- /* The separator is drawn BETWEEN rows, not as a bottom border on each, so the
956
- last row needs no `:last-child` exception and a lone row carries no dangling
957
- rule. It is INK, not air: the floor is met on each side of it by the padding
958
- above, never by a margin here. */
959
- .es-drill + .es-drill { border-top: 1px solid var(--es-line); }
960
-
961
968
  .es-drill:hover { background: var(--es-hover); }
962
969
 
963
970
  /* An INSET ring, unlike the switch's and the tab's outset one: a full-width row
@@ -1,4 +1,4 @@
1
1
  export { EditorRail, EditorRailButton, railCssVars, railTokens } from '../chunk-HYOACICE.js';
2
- export { AddIcon, LayersIcon, MediaIcon, PageIcon as PagesIcon, SitemapIcon, StylesIcon } from '../chunk-T3IHELBO.js';
2
+ export { AddIcon, LayersIcon, MediaIcon, PageIcon as PagesIcon, SitemapIcon, StylesIcon } from '../chunk-N7I3A4DC.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "editor-shell",
3
- "version": "0.28.0",
3
+ "version": "0.30.0",
4
4
  "description": "Shared editor-chrome primitives for the EFFICIENT editors: EditorRail (a Next-16-safe left icon-rail leaf), the shell token layer, and GoldTextInput \u2014 type in place and watch the markup formatting appear as you type.",
5
5
  "license": "MIT",
6
6
  "author": "Lewis Liu",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/icons/index.tsx"],"names":[],"mappings":"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","file":"chunk-T3IHELBO.js","sourcesContent":["/**\n * GENERATED FILE — do not edit by hand.\n * Source of truth: ./icons.json (the owner's approved icon set, 2026-08-20).\n * Regenerate: docker run --rm -v \"$PWD\":/w -w /w node:26-slim node scripts/generate-icons.mjs\n *\n * The standard every icon here follows: 24×24 viewBox, stroke on currentColor\n * at width 1.7 with round caps and joins (brand-style fills documented per\n * icon), TRANSPARENT background — never a baked-in plate — and no width/height\n * beyond the `size` default, so the caller owns size and colour.\n */\nimport type { SVGProps } from 'react';\n\nexport type IconProps = Omit<SVGProps<SVGSVGElement>, 'children'> & { size?: number };\n\n/** Every icon name in the set, with what it means. One meaning, one SVG. */\nexport const iconMeanings = {\n \"trash\": \"Delete\",\n \"duplicate\": \"Duplicate — owner pick 08-20, two-pages form\",\n \"copy-to-page\": \"Copy to another page\",\n \"close\": \"Close / dismiss\",\n \"add\": \"Add / plus\",\n \"check\": \"Checkmark / success\",\n \"undo\": \"Undo\",\n \"redo\": \"Redo\",\n \"rename\": \"Rename / edit\",\n \"search\": \"Search\",\n \"eye\": \"Show\",\n \"eye-off\": \"Hide\",\n \"external\": \"Leaves this surface\",\n \"drag\": \"Drag handle\",\n \"lock\": \"Locked\",\n \"revert\": \"Revert to inherited\",\n \"chevron\": \"Disclosure — rotate for direction\",\n \"send\": \"Send\",\n \"page\": \"Page AND the Pages rail — owner ruling 08-20, one meaning\",\n \"layers\": \"Layers\",\n \"styles\": \"Styles\",\n \"media\": \"Media\",\n \"sitemap\": \"Sitemap\",\n \"image\": \"Image / photo\",\n \"grid\": \"Grid\",\n \"cart\": \"Cart\",\n \"desktop\": \"Desktop\",\n \"tablet\": \"Tablet\",\n \"phone\": \"Phone\",\n \"warning\": \"Warning\",\n \"type\": \"Text marker — the T\",\n \"wheel\": \"Wheel\",\n \"chat\": \"Chat\",\n \"bell\": \"Notification bell\",\n \"template\": \"Template / bookmark\",\n \"clock\": \"clock\",\n \"play\": \"play\",\n \"align-left\": \"align left\",\n \"align-center\": \"align center\",\n \"opacity\": \"opacity\",\n \"padding-top\": \"padding top\",\n \"padding-bottom\": \"padding bottom\",\n \"width\": \"width\",\n \"anchor\": \"anchor\",\n \"hash\": \"hash\",\n \"columns\": \"columns\",\n \"list\": \"list\",\n \"text-lines\": \"text lines\",\n \"text-size\": \"text size\",\n \"text-small\": \"text small\",\n \"button\": \"a call-to-action on the page — the settings row for a button's own look. ⚠️ NAMED BY CARD 66310, 2026-09-01; it used to read \\\"button\\\", which is a SHAPE, and a shape claims nothing, so nothing stopped a second meaning attaching to this drawing. Measured the same day: `ButtonIcon` has no call site in efficient-shop, in efficient-admin, or in this repo — it is drawn and not yet wired to a row\",\n \"link\": \"link\",\n \"tag\": \"tag\",\n \"rotate\": \"rotate\",\n \"square\": \"square\",\n \"drop\": \"drop\",\n \"plus-minus\": \"plus minus\",\n \"dollar\": \"dollar\",\n \"note\": \"note\",\n \"weight\": \"font weight\",\n \"letter-spacing\": \"letter spacing\",\n \"case\": \"letter case\",\n \"layout\": \"page layout — the Layout settings bucket, not columns\",\n \"settings\": \"site settings — a gear; heads the Basics tab of the Site styles panel\",\n \"contrast\": \"the Theme tab of the Site styles panel — where a site's one palette is set. ⚠️ THIS MEANING WAS REWRITTEN BY CARD 66310, 2026-09-01: it used to say the tab held light/dark pairs, and cards 66238/66239 deleted that — a theme is ONE FLAT palette now. The drawing did not move and does not need to; the filled half disc reads as TONE, which is what a palette sets. The fill is justified in `from` below and stays\",\n \"account\": \"a person — the account / sign-in row and the header's account icon\",\n \"globe\": \"a globe — the country / region selector row\",\n \"logo\": \"a brand mark — the Header panel's Logo tab\",\n \"align-right\": \"align right\",\n \"align-separate\": \"align separate — the rows pushed apart to both edges\",\n \"accent\": \"the site's ONE emphasis — the accent phrase inside a heading, and the colour that paints it. `Brand colour` on the Theme tab and `Accent` on the Text tab are the same idea seen twice and both store the key `accent`, so they share this ONE drawing: card 66310, 2026-09-01. Not \\\"a star\\\" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under\",\n \"shadow\": \"the depth a card sits at — the `Card shadow` row on the storefront's Site styles ▸ Basics tab, beside `Corners`\",\n \"gap\": \"the air between two cards — the `Card gap` row on the storefront's Site styles ▸ Basics tab, beside `Corners`\",\n \"hover\": \"the pointer resting on a card — the `Hover effect` row on the storefront's Site styles ▸ Basics tab, beside `Corners`\",\n \"product-field\": \"the words come from the catalogue record — the `From product` segment of the Card text control\",\n \"own-text\": \"the words are the merchant's own, not the product's — the `My own text` segment of the Card text control\",\n} as const;\n\nexport type IconName = keyof typeof iconMeanings;\n\n/** Delete · keep · efficient-shop · components/UiIcon.tsx:99 */\nexport function TrashIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m2 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M10 11v6M14 11v6\" />\n </svg>\n );\n}\n\n/** Duplicate — owner pick 08-20, two-pages form · picked · efficient-admin-portal · src/components/SalesOrderDetail.tsx:628 */\nexport function DuplicateIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.5a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5a3.375 3.375 0 00-3.375-3.375H9.75\" />\n </svg>\n );\n}\n\n/** Copy to another page · keep · efficient-shop · components/DuplicateToPageMenu.tsx:56 */\nexport function CopyToPageIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M13 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3\" />\n <path d=\"M14 12h8\" />\n <path d=\"m18 8 4 4-4 4\" />\n </svg>\n );\n}\n\n/** Close / dismiss · pick · efficient-shop · components/AddSectionPanel.tsx:212 */\nexport function CloseIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M6 6l12 12M18 6L6 18\" />\n </svg>\n );\n}\n\n/** Add / plus · keep · editor-shell · src/rail/icons.tsx:92 */\nexport function AddIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 5v14M5 12h14\" />\n </svg>\n );\n}\n\n/** Checkmark / success · pick · efficient-shop · components/wheels-plp/PlpNotifyMeDialog.tsx:143 */\nexport function CheckIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\n/** Undo · keep · efficient-admin-portal · src/components/email/CampaignDesigner.tsx:195 */\nexport function UndoIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9 14L4 9l5-5\" />\n <path d=\"M4 9h11a5 5 0 015 5v0a5 5 0 01-5 5H9\" />\n </svg>\n );\n}\n\n/** Redo · keep · efficient-admin-portal · src/components/email/CampaignDesigner.tsx:208 */\nexport function RedoIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M15 14l5-5-5-5\" />\n <path d=\"M20 9H9a5 5 0 00-5 5v0a5 5 0 005 5h6\" />\n </svg>\n );\n}\n\n/** Rename / edit · keep · efficient-shop · components/UiIcon.tsx:90 */\nexport function RenameIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 20h9\" />\n <path d=\"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z\" />\n </svg>\n );\n}\n\n/** Search · keep · efficient-shop · components/UiIcon.tsx:74 */\nexport function SearchIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <path d=\"M21 21l-3.8-3.8\" />\n </svg>\n );\n}\n\n/** Show · keep · efficient-shop · components/UiIcon.tsx:63 */\nexport function EyeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7S2 12 2 12z\" />\n <circle cx=\"12\" cy=\"12\" r=\"2.6\" />\n </svg>\n );\n}\n\n/** Hide · keep · efficient-shop · components/UiIcon.tsx:69 */\nexport function EyeOffIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M3 3l18 18M10.6 10.6a2 2 0 002.8 2.8M9.4 5.2A9.7 9.7 0 0112 5c7 0 10 7 10 7a16 16 0 01-3.6 4.4M6.1 6.1A16 16 0 002 12s3 7 10 7a9.6 9.6 0 004.1-.9\" />\n </svg>\n );\n}\n\n/** Leaves this surface · keep · efficient-shop · components/UiIcon.tsx:82 */\nexport function ExternalIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M14 4h6v6\" />\n <path d=\"M20 4l-9 9\" />\n <path d=\"M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5\" />\n </svg>\n );\n}\n\n/** Drag handle · keep · efficient-admin-portal · src/components/email/designerIcons.tsx:78 */\nexport function DragIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"9\" cy=\"6\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"6\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"18\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"18\" r=\"1.5\" />\n </svg>\n );\n}\n\n/** Locked · keep · efficient-admin-portal · src/components/email/designerIcons.tsx:8 */\nexport function LockIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"5\" y=\"11\" width=\"14\" height=\"9\" rx=\"2\" />\n <path d=\"M8 11V7a4 4 0 018 0v4\" />\n </svg>\n );\n}\n\n/** Revert to inherited · keep · efficient-admin-portal · src/components/email/designerIcons.tsx:31 */\nexport function RevertIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 9h11a5 5 0 010 10h-6\" />\n <path d=\"M8 5L4 9l4 4\" />\n </svg>\n );\n}\n\n/** Disclosure — rotate for direction · keep · efficient-shop · components/UiIcon.tsx:107 */\nexport function ChevronIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9 6l6 6-6 6\" />\n </svg>\n );\n}\n\n/** Send · keep · efficient-shop · components/wheels-plp/PlpNotifyMeDialog.tsx:293 */\nexport function SendIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m22 2-7 20-4-9-9-4Z\" />\n <path d=\"M22 2 11 13\" />\n </svg>\n );\n}\n\n/** Page AND the Pages rail — owner ruling 08-20, one meaning · picked · editor-shell · src/rail/icons.tsx:36 */\nexport function PageIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z\" />\n <path d=\"M14 3v5h5\" />\n <path d=\"M9 13h6M9 17h6\" />\n </svg>\n );\n}\n\n/** Layers · keep · editor-shell · src/rail/icons.tsx:47 */\nexport function LayersIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 3l9 5-9 5-9-5 9-5z\" />\n <path d=\"M3 13l9 5 9-5\" />\n </svg>\n );\n}\n\n/** Styles · keep · editor-shell · src/rail/icons.tsx:57 */\nexport function StylesIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 3c-4.5 0-8 3.4-8 7.6 0 3 2.2 4.9 4.8 4.9 1 0 1.6.7 1.6 1.5 0 .5-.3.9-.3 1.4 0 .9.8 1.6 1.9 1.6 4.4 0 8-3.6 8-8C20 6.4 16.5 3 12 3z\" />\n <circle cx=\"8.5\" cy=\"10\" r=\"0.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"7.8\" r=\"0.6\" fill=\"currentColor\" />\n <circle cx=\"15.5\" cy=\"10\" r=\"0.6\" fill=\"currentColor\" />\n </svg>\n );\n}\n\n/** Media · keep · editor-shell · src/rail/icons.tsx:69 */\nexport function MediaIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" />\n <circle cx=\"8.5\" cy=\"9.5\" r=\"1.5\" />\n <path d=\"M21 16l-5-5-6 6\" />\n </svg>\n );\n}\n\n/** Sitemap · keep · editor-shell · src/rail/icons.tsx:80 */\nexport function SitemapIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"9\" y=\"3\" width=\"6\" height=\"4.5\" rx=\"1\" />\n <rect x=\"3\" y=\"16.5\" width=\"6\" height=\"4.5\" rx=\"1\" />\n <rect x=\"15\" y=\"16.5\" width=\"6\" height=\"4.5\" rx=\"1\" />\n <path d=\"M12 7.5v4M6 16.5v-2.5h12v2.5M18 16.5v-2.5\" />\n </svg>\n );\n}\n\n/** Image / photo · pick · efficient-shop · components/AddSectionPanel.tsx:151 */\nexport function ImageIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" />\n <path d=\"M21 15l-5-5L5 21\" />\n </svg>\n );\n}\n\n/** Grid · pick · efficient-shop · components/SearchDialog.tsx:504 */\nexport function GridIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" />\n </svg>\n );\n}\n\n/** Cart · pick · efficient-shop · components/Header.tsx:69 */\nexport function CartIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"9\" cy=\"20\" r=\"1.3\" />\n <circle cx=\"18\" cy=\"20\" r=\"1.3\" />\n <path d=\"M2.5 3.5h3l2.3 11.3a1.6 1.6 0 0 0 1.6 1.3h8.1a1.6 1.6 0 0 0 1.6-1.2L21 7H6\" />\n </svg>\n );\n}\n\n/** Desktop · keep · efficient-shop · components/DeviceSwitch.tsx:18 */\nexport function DesktopIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"13\" rx=\"2\" />\n <path d=\"M8 21h8M12 17v4\" />\n </svg>\n );\n}\n\n/** Tablet · keep · efficient-shop · components/DeviceSwitch.tsx:24 */\nexport function TabletIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" />\n <path d=\"M11 18.5h2\" />\n </svg>\n );\n}\n\n/** Phone · pick · efficient-shop · components/DeviceSwitch.tsx:30 */\nexport function PhoneIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"2.5\" />\n <path d=\"M11 18.5h2\" />\n </svg>\n );\n}\n\n/** Warning · pick · efficient-admin-portal · src/components/CustomerDetail.tsx:235 */\nexport function WarningIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\" />\n </svg>\n );\n}\n\n/** Text marker — the T · pick · efficient-shop · lib/puck/controls.tsx:269 */\nexport function TypeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <polyline points=\"4 7 4 4 20 4 20 7\" />\n <line x1=\"9\" x2=\"15\" y1=\"20\" y2=\"20\" />\n <line x1=\"12\" x2=\"12\" y1=\"4\" y2=\"20\" />\n </svg>\n );\n}\n\n/** Wheel · pick · efficient-shop · components/SearchDialog.tsx:485 */\nexport function WheelIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n <path d=\"M12 3v4M12 17v4M3 12h4M17 12h4\" />\n </svg>\n );\n}\n\n/** Chat · pick · efficient-shop · components/ChatWidget.tsx:108 */\nexport function ChatIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8.25 12h7.5M8.25 8.25h7.5M3 12c0 4.556 4.03 8.25 9 8.25a9.76 9.76 0 002.555-.337l3.945 1.087-1.087-3.945A8.19 8.19 0 0021 12c0-4.556-4.03-8.25-9-8.25S3 7.444 3 12z\" />\n </svg>\n );\n}\n\n/** Notification bell · keep · efficient-shop · components/wheels-plp/PlpNotifyMeDialog.tsx:183 */\nexport function BellIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9\" />\n <path d=\"M13.7 21a2 2 0 0 1-3.4 0\" />\n </svg>\n );\n}\n\n/** Template / bookmark · keep · efficient-shop · components/TemplateGlyph.tsx:20 */\nexport function TemplateIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M6 3h12a1 1 0 0 1 1 1v17l-7-4-7 4V4a1 1 0 0 1 1-1z\" />\n </svg>\n );\n}\n\n/** clock · new · drawn for the settings-panel design, 2026-08-20 */\nexport function ClockIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"8.5\"/>\n <path d=\"M12 7.5V12l3 2\"/>\n </svg>\n );\n}\n\n/** play · new · drawn for the settings-panel design, 2026-08-20 */\nexport function PlayIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M8 5.5v13l11-6.5z\"/>\n </svg>\n );\n}\n\n/** align left · new · drawn for the settings-panel design, 2026-08-20 */\nexport function AlignLeftIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 6.5h12M4 12h16M4 17.5h9\"/>\n </svg>\n );\n}\n\n/** align center · new · drawn for the settings-panel design, 2026-08-20 */\nexport function AlignCenterIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M6 6.5h12M4 12h16M7.5 17.5h9\"/>\n </svg>\n );\n}\n\n/** opacity · new · drawn for the settings-panel design, 2026-08-20 */\nexport function OpacityIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"4.5\" y=\"4.5\" width=\"10\" height=\"10\" rx=\"2\"/>\n <rect x=\"9.5\" y=\"9.5\" width=\"10\" height=\"10\" rx=\"2\"/>\n </svg>\n );\n}\n\n/** padding top · new · drawn for the settings-panel design, 2026-08-20 */\nexport function PaddingTopIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 4.5h16\"/>\n <rect x=\"7\" y=\"9.5\" width=\"10\" height=\"10\" rx=\"1.5\"/>\n </svg>\n );\n}\n\n/** padding bottom · new · drawn for the settings-panel design, 2026-08-20 */\nexport function PaddingBottomIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 19.5h16\"/>\n <rect x=\"7\" y=\"4\" width=\"10\" height=\"10\" rx=\"1.5\"/>\n </svg>\n );\n}\n\n/** width · new · drawn for the settings-panel design, 2026-08-20 */\nexport function WidthIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 12h16M7.5 8.5L4 12l3.5 3.5M16.5 8.5L20 12l-3.5 3.5\"/>\n </svg>\n );\n}\n\n/** anchor · new · drawn for the settings-panel design, 2026-08-20 */\nexport function AnchorIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"6\" r=\"2.5\"/>\n <path d=\"M12 8.5V21M4.5 13a7.5 7.5 0 0 0 15 0M4.5 13H7M17 13h2.5\"/>\n </svg>\n );\n}\n\n/** hash · new · drawn for the settings-panel design, 2026-08-20 */\nexport function HashIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9 4L7.5 20M16.5 4L15 20M5 9.5h15M4.5 15h15\"/>\n </svg>\n );\n}\n\n/** columns · new · drawn for the settings-panel design, 2026-08-20 */\nexport function ColumnsIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\"/>\n <rect x=\"10\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\"/>\n <rect x=\"17\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\"/>\n </svg>\n );\n}\n\n/** list · new · drawn for the settings-panel design, 2026-08-20 */\nexport function ListIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9 6h11M9 12h11M9 18h11\"/>\n <circle cx=\"5\" cy=\"6\" r=\"1\"/>\n <circle cx=\"5\" cy=\"12\" r=\"1\"/>\n <circle cx=\"5\" cy=\"18\" r=\"1\"/>\n </svg>\n );\n}\n\n/** text lines · new · drawn for the settings-panel design, 2026-08-20 */\nexport function TextLinesIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 7h16M4 12h16M4 17h10\"/>\n </svg>\n );\n}\n\n/** text size · new · drawn for the settings-panel design, 2026-08-20 */\nexport function TextSizeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 7h9M8.5 7v12M15 13h6M18 13v6\"/>\n </svg>\n );\n}\n\n/** text small · new · drawn for the settings-panel design, 2026-08-20 */\nexport function TextSmallIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M8 9h8M12 9v10\"/>\n </svg>\n );\n}\n\n/** a call-to-action on the page — the settings row for a button's own look. ⚠️ NAMED BY CARD 66310, 2026-09-01; it used to read \"button\", which is a SHAPE, and a shape claims nothing, so nothing stopped a second meaning attaching to this drawing. Measured the same day: `ButtonIcon` has no call site in efficient-shop, in efficient-admin, or in this repo — it is drawn and not yet wired to a row · new · drawn for the settings-panel design, 2026-08-20 */\nexport function ButtonIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3.5\" y=\"8\" width=\"17\" height=\"8\" rx=\"2.5\"/>\n <path d=\"M9 12h6\"/>\n </svg>\n );\n}\n\n/** link · new · drawn for the settings-panel design, 2026-08-20 */\nexport function LinkIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"/>\n <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"/>\n </svg>\n );\n}\n\n/** tag · new · drawn for the settings-panel design, 2026-08-20 */\nexport function TagIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 4h6.5L20 13.5a1.5 1.5 0 0 1 0 2.1l-4.4 4.4a1.5 1.5 0 0 1-2.1 0L4 10.5z\"/>\n <circle cx=\"8\" cy=\"8\" r=\"1.2\"/>\n </svg>\n );\n}\n\n/** rotate · new · drawn for the settings-panel design, 2026-08-20 */\nexport function RotateIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M20 12a8 8 0 1 1-2.34-5.66\"/>\n <polyline points=\"20 3.5 20 7 16.5 7\"/>\n </svg>\n );\n}\n\n/** square · new · drawn for the settings-panel design, 2026-08-20 */\nexport function SquareIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"14\" rx=\"2\"/>\n </svg>\n );\n}\n\n/** drop · new · drawn for the settings-panel design, 2026-08-20 */\nexport function DropIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 3.5s6.5 7.2 6.5 11a6.5 6.5 0 0 1-13 0c0-3.8 6.5-11 6.5-11z\"/>\n </svg>\n );\n}\n\n/** plus minus · new · drawn for the settings-panel design, 2026-08-20 */\nexport function PlusMinusIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M7.5 5v6M4.5 8h6M13.5 16.5h6\"/>\n </svg>\n );\n}\n\n/** dollar · new · drawn for the settings-panel design, 2026-08-20 */\nexport function DollarIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 3.5v17M16 7c-.8-1.2-2.2-1.8-4-1.8-2.2 0-4 1.1-4 2.9 0 4 8 2.2 8 6.2 0 1.8-1.8 2.9-4 2.9-1.8 0-3.2-.6-4-1.8\"/>\n </svg>\n );\n}\n\n/** note · new · drawn for the settings-panel design, 2026-08-20 */\nexport function NoteIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M5.5 4.5h13V14l-4.5 4.5h-8.5z\"/>\n <path d=\"M13.5 18.5V14H18\"/>\n </svg>\n );\n}\n\n/** font weight · new · approved by Lewis from mockups/8802d-three-missing-icons-mockup.html */\nexport function WeightIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M3 7h8M7 7v11M14 7h8M17.3 7v11M18.7 7v11\"/>\n </svg>\n );\n}\n\n/** letter spacing · new · approved by Lewis from mockups/8802d-three-missing-icons-mockup.html */\nexport function LetterSpacingIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 5v14M20 5v14M8 12h8M10 9.6 8 12l2 2.4M14 9.6l2 2.4-2 2.4\"/>\n </svg>\n );\n}\n\n/** letter case · new · approved by Lewis from mockups/8802d-three-missing-icons-mockup.html */\nexport function CaseIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M3 6h9M7.5 6v13\"/>\n <circle cx=\"17\" cy=\"14.5\" r=\"3.5\"/>\n <path d=\"M20.5 11v8\"/>\n </svg>\n );\n}\n\n/** page layout — the Layout settings bucket, not columns · new · drawn by Lewis for card 8806, 2026-08-22 */\nexport function LayoutIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/>\n <path d=\"M4 8.5h16\"/>\n <path d=\"M10 8.5V20\"/>\n </svg>\n );\n}\n\n/** site settings — a gear; heads the Basics tab of the Site styles panel · new · drawn by Lewis, his own pick for card 66166, 2026-08-28 — nothing else in the set is a gear, so no collision */\nexport function SettingsIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M17.97 9.71 L20.47 10.51 L20.47 13.49 L17.97 14.29 L17.85 14.60 L19.04 16.93 L16.93 19.04 L14.60 17.85 L14.29 17.97 L13.49 20.47 L10.51 20.47 L9.71 17.97 L9.40 17.85 L7.07 19.04 L4.96 16.93 L6.15 14.60 L6.03 14.29 L3.53 13.49 L3.53 10.51 L6.03 9.71 L6.15 9.40 L4.96 7.07 L7.07 4.96 L9.40 6.15 L9.71 6.03 L10.51 3.53 L13.49 3.53 L14.29 6.03 L14.60 6.15 L16.93 4.96 L19.04 7.07 L17.85 9.40 Z\"/>\n <circle cx=\"12\" cy=\"12\" r=\"3.2\"/>\n </svg>\n );\n}\n\n/** the Theme tab of the Site styles panel — where a site's one palette is set. ⚠️ THIS MEANING WAS REWRITTEN BY CARD 66310, 2026-09-01: it used to say the tab held light/dark pairs, and cards 66238/66239 deleted that — a theme is ONE FLAT palette now. The drawing did not move and does not need to; the filled half disc reads as TONE, which is what a palette sets. The fill is justified in `from` below and stays · new · drawn by Lewis, his own pick for card 66166, 2026-08-28 — the half disc is FILLED on purpose and stays filled: an outline can only draw a circle with a line down it, which reads as a divided circle, not as one light half beside one dark half. The fill IS the meaning here, not decoration ⚠️ Card 66310, 2026-09-01: cards 66238/66239 removed light/dark from the storefront, so the sentence above is kept as the RECORD OF WHY THE FILL EXISTS, not as a live description of what the tab holds. Do not outline it on the strength of that. */\nexport function ContrastIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"8\"/>\n <path d=\"M12 4a8 8 0 0 0 0 16z\" fill=\"currentColor\" stroke=\"none\"/>\n </svg>\n );\n}\n\n/** a person — the account / sign-in row and the header's account icon · new · drawn by SS for card 66190, 2026-08-28, approved by Lewis for card 66191 — the set had no person glyph. The shoulder is an OPEN arc, not a closed half-disc: closed, it silts up into a black lump at 16px. Head radius 3.6 to shoulder radius 7.2 is exactly 1:2, the same handling as the cart wheels */\nexport function AccountIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"8.4\" r=\"3.6\"/>\n <path d=\"M4.8 20a7.2 7.2 0 0 1 14.4 0\"/>\n </svg>\n );\n}\n\n/** a globe — the country / region selector row · new · drawn by SS for card 66190, 2026-08-28, approved by Lewis for card 66191 — the set had no globe or flag glyph. Three strokes only: ring, equator, one upright meridian. Latitude lines silt up at 16px, the same reason `search` is only two strokes */\nexport function GlobeIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"8\"/>\n <path d=\"M4 12h16\"/>\n <path d=\"M12 4a12.5 12.5 0 0 1 0 16a12.5 12.5 0 0 1 0-16z\"/>\n </svg>\n );\n}\n\n/** a brand mark — the Header panel's Logo tab · new · supplied by Lewis for card 66191, 2026-08-28, after he rejected `image` (picture frame + mountain) for the Logo tab — `image` means a picture you upload, the Logo tab means the brand mark, and the set had no glyph that said brand. Two overlapping circles with a pen drawn across them. The small circle is an ARC WITH A GAP, not a closed circle, so the pen crosses a break instead of a line; keep the gap */\nexport function LogoIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"9.8\" cy=\"13.4\" r=\"7.1\"/>\n <path d=\"M19.7 11.6A4.6 4.6 0 1 1 11.9 13\"/>\n <path d=\"M13.2 12L13.52 10.2 18.68 5.04a1.06 1.06 0 0 1 1.48 1.48L15 11.68Z\"/>\n </svg>\n );\n}\n\n/** align right · new · drawn for card 66241, 2026-08-31, for the header Alignment control (card 66242) — the set shipped `align-left` and `align-center` on 2026-08-20 and stopped there. Checked by SHAPE across all 68 icons before drawing: nothing in the set is a right-flush row stack (`text-lines` is left-flush, `list` is three equal rows from x9, `columns` is rects). This is `align-left` mirrored about x=12, so the pair reads as one drawing seen both ways round */\nexport function AlignRightIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M8 6.5h12M4 12h16M11 17.5h9\"/>\n </svg>\n );\n}\n\n/** align separate — the rows pushed apart to both edges · new · drawn for card 66241, 2026-08-31, for the header Alignment control (card 66242). NOT `justify`: justify runs its rows edge to edge, this opens a channel down the middle. An ARROW version was drawn and dropped the same day — it was the shipped `width` glyph turned 90 degrees, and two glyphs that differ only by rotation misread inside one control. The channel is x9 -> x15 on ALL THREE rows, 6 units = 4.0px at 16px: the first draft opened 4 units on rows 1 and 3 and 6 on row 2, which is three unequal gaps and 2.7px of nothing. Lewis approved this even channel looking at mockups/separate-icon-gap.html — keep the three gaps equal */\nexport function AlignSeparateIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M4 6.5h5M15 6.5h5M4 12h5M15 12h5M4 17.5h5M15 17.5h5\"/>\n </svg>\n );\n}\n\n/** the site's ONE emphasis — the accent phrase inside a heading, and the colour that paints it. `Brand colour` on the Theme tab and `Accent` on the Text tab are the same idea seen twice and both store the key `accent`, so they share this ONE drawing: card 66310, 2026-09-01. Not \"a star\" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under · new · drawn for card 66310, 2026-09-01, after the shortlist of existing glyphs came up empty — `contrast` heads the Theme tab this row sits on, `drop` is the Photography row one tab across, `styles` is the rail item that OPENS this panel, and `layers` means the Layers panel. A four-point spark ON A LINE OF TYPE, and the LINE IS LOAD-BEARING: a bare spark reads as AI in most products today, and the line under it moves the reading to \"this part of the text is picked out\", which is what an accent is. Keep the line. Every point is an explicit M/L so the optical box can be measured without a browser */\nexport function AccentIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M12 4L13.3 8.7L18 10L13.3 11.3L12 16L10.7 11.3L6 10L10.7 8.7Z\"/>\n <path d=\"M4 20L20 20\"/>\n </svg>\n );\n}\n\n/** the depth a card sits at — the `Card shadow` row on the storefront's Site styles ▸ Basics tab, beside `Corners` · new · drawn for card 66331, 2026-09-01, for the `Card shadow` row (card 66332). Checked by SHAPE across all 71 before drawing, and the check found a trap: the set's one offset pair is `opacity`, which is TWO CLOSED same-size rounded rects overlapping — the naive shadow drawing is that same picture. This is ONE closed card plus an OPEN L behind it, bottom and right arms only, so the two can never collapse into each other: one rect and one open path, never two rects. Leaving the back shape open is the set's own habit for the same reason `account`'s shoulder and `logo`'s small circle are open. The offset is 5 units, 2.9px at 14px, and it was checked at 14px on light AND dark before it was committed ⚠️ CORRECTED on card 66371: this entry said the row sits inside a `Card appearance` GROUP. The design Lewis approved has these three rows FLAT on Site styles ▸ Basics beside `Corners`, with no group at all. An icon entry is what the next person reads when deciding where a glyph belongs, so a stated home that contradicts the shipped design is a false claim living in a shared library — the same shape as the `accent` entry corrected on 2026-09-01, where the ruling was right and its written reason was false. The DRAWING is unchanged and still correct */\nexport function ShadowIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"4\" y=\"4\" width=\"11\" height=\"11\" rx=\"2\"/>\n <path d=\"M20 9L20 20L9 20\"/>\n </svg>\n );\n}\n\n/** the air between two cards — the `Card gap` row on the storefront's Site styles ▸ Basics tab, beside `Corners` · new · drawn for card 66331, 2026-09-01, for the `Card gap` row (card 66332). The FIRST draft was two upright bars side by side and 14px killed it: two upright bars beside the three of `columns` is the same drawing with one bar taken away, and the channel came to 1.75px. Turned on its side instead — two wide cards STACKED, with a 7-unit channel, 4.1px at 14px and wider than the 6-unit channel Lewis approved for `align-separate` on 2026-08-31. Nothing else in the set is two stacked rounded bars: `columns` and `grid` are upright, `align-separate` and `text-lines` are hairlines. Nothing is drawn inside the channel on purpose — the air is the subject, and a tick or an arrow in there silts it up at 14px ⚠️ CORRECTED on card 66371: this entry said the row sits inside a `Card appearance` GROUP. The design Lewis approved has these three rows FLAT on Site styles ▸ Basics beside `Corners`, with no group at all. An icon entry is what the next person reads when deciding where a glyph belongs, so a stated home that contradicts the shipped design is a false claim living in a shared library — the same shape as the `accent` entry corrected on 2026-09-01, where the ruling was right and its written reason was false. The DRAWING is unchanged and still correct */\nexport function GapIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3.5\" y=\"3.5\" width=\"17\" height=\"5\" rx=\"2\"/>\n <rect x=\"3.5\" y=\"15.5\" width=\"17\" height=\"5\" rx=\"2\"/>\n </svg>\n );\n}\n\n/** the pointer resting on a card — the `Hover effect` row on the storefront's Site styles ▸ Basics tab, beside `Corners` · new · drawn for card 66331, 2026-09-01, for the `Hover effect` row (card 66332). The brief offered two readings, a shape lifting or a pointer over a shape, and the pointer was picked because a lift IS a shadow: `shadow` sits three rows above this one on the same tab, with `Shadow colour` and `Card gap` between them, and two glyphs that misread inside one control is exactly what card 66241 rejected an arrow for. The set had no pointer and no cursor at all (measured 2026-09-01). The arrow is TAIL-LESS on purpose — the classic seven-point cursor was drawn first and silts into a blob at 14px; four points survive. The residual read is click-versus-hover, which no motion-free glyph can fully settle ⚠️ CORRECTED on card 66371: this entry said the row sits inside a `Card appearance` GROUP. The design Lewis approved has these three rows FLAT on Site styles ▸ Basics beside `Corners`, with no group at all. An icon entry is what the next person reads when deciding where a glyph belongs, so a stated home that contradicts the shipped design is a false claim living in a shared library — the same shape as the `accent` entry corrected on 2026-09-01, where the ruling was right and its written reason was false. The DRAWING is unchanged and still correct */\nexport function HoverIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" rx=\"2\"/>\n <path d=\"M11.5 9L11.5 20.5L14.8 17.2L20.5 16.6Z\"/>\n </svg>\n );\n}\n\n/** the words come from the catalogue record — the `From product` segment of the Card text control · new · drawn for card 66331, 2026-09-01, for the Card text segmented control (card 66333). A cylinder, the convention for stored data; nothing in the set said data before this — no `database`, no `data`, no `field`, measured 2026-09-01. The bottom is an OPEN arc, not a second full ellipse: closed, it reads as a drum or a can, and the open form is what makes it a database. This is the only glyph in the set whose body is an elliptical arc, which is why spec (ad) reads arcs properly instead of refusing them the way (n) and (y) do — refused, the box would come back 3.4 units short, because the arc bulges below its own endpoints */\nexport function ProductFieldIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <ellipse cx=\"12\" cy=\"7.4\" rx=\"7.5\" ry=\"3.4\"/>\n <path d=\"M4.5 7.4v9.2a7.5 3.4 0 0 0 15 0V7.4\"/>\n </svg>\n );\n}\n\n/** the words are the merchant's own, not the product's — the `My own text` segment of the Card text control · new · drawn for card 66331 and REDRAWN for card 66371, 2026-09-01, for the Card text segmented control (card 66333). Lewis approved Q1 — two curved quotation marks — after seeing four candidates rendered at 16px on light and dark grounds. The obvious drawings are all spoken for, and this is the record so nobody pays for them twice: a PENCIL is the shipped `rename`, and 66331's first draft came out byte-for-byte that drawing; an I-BEAM is `type` with one bar removed, and `type` heads the Text tab of this same panel; a PEN NIB reads as a MAP PIN at 16px, because the slit and the vent are what make a nib a nib and they are exactly what silts at that size — drawn three ways, the same read three times. The 0.27.0 SCRAWL over a baseline shipped and had to go: it reads as a chart line, and 66331 had already tried making the zigzag irregular, which reduced the misread without removing it. A quotation mark survives because nothing else in the 76 is one, and because beside `product-field` it makes the pair the row is actually about: a machine record versus words a person chose. Q3 — the same quotes with a baseline ruled under them — was drawn and is WORSE: the line drags the weight down and off centre, and it is not to come back. The two marks are ONE mark twice, the right at a fixed +8.5 in x. The box is 14 × 11, short and wide and outside the set's usual 14–17.5, on the `align-` family's precedent (16 × 11, deliberate, card 66241) — measured in `tests/fixtures/icons-66331-optical-size.html` because Q1 is cubic and spec (ad) refuses curve commands on purpose. THE NAME `own-text` DID NOT CHANGE — two consumer cards already reference it */\nexport function OwnTextIcon({ size = 18, ...rest }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.7}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9.5 6.5C6.5 6.5 5 8.5 5 11.5L5 17.5L10.5 17.5L10.5 11.5L7.6 11.5C7.6 9.5 8.2 8.6 9.5 8.5Z\"/>\n <path d=\"M18 6.5C15 6.5 13.5 8.5 13.5 11.5L13.5 17.5L19 17.5L19 11.5L16.1 11.5C16.1 9.5 16.7 8.6 18 8.5Z\"/>\n </svg>\n );\n}\n"]}