editor-shell 0.35.0 → 0.37.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.
- package/dist/{chunk-S5DKZ5VK.js → chunk-ENLK7SSS.js} +45 -4
- package/dist/chunk-ENLK7SSS.js.map +1 -0
- package/dist/icons/index.d.ts +7 -1
- package/dist/icons/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/panel/index.d.ts +96 -1
- package/dist/panel/index.js +41 -1
- package/dist/panel/index.js.map +1 -1
- package/dist/panel/panel.css +83 -0
- package/dist/rail/index.js +1 -1
- package/package.json +3 -2
- package/dist/chunk-S5DKZ5VK.js.map +0 -1
|
@@ -58,6 +58,7 @@ var iconMeanings = {
|
|
|
58
58
|
"tag": "tag",
|
|
59
59
|
"rotate": "rotate",
|
|
60
60
|
"square": "square",
|
|
61
|
+
"corner": "the `Which corners` row in a section's Style > Shape group, on the storefront editor",
|
|
61
62
|
"drop": "drop",
|
|
62
63
|
"plus-minus": "plus minus",
|
|
63
64
|
"dollar": "dollar",
|
|
@@ -85,7 +86,8 @@ var iconMeanings = {
|
|
|
85
86
|
"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",
|
|
86
87
|
"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",
|
|
87
88
|
"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",
|
|
88
|
-
"ground": "the surface a theme paints \u2014 the ground the content sits on, whichever panel the theme's colour sheet was opened from. Worn by the `Background` row under `Surfaces` in a theme's colour sheet, the row card 66510 renamed from `Page background` when a theme stopped colouring a page and started colouring a SECTION. NOT `page`, which carries an owner ruling (2026-08-20) pinning it to the page and the Pages rail \u2014 the meaning this row stopped having, which is the whole reason this glyph exists. NOT `background`, which is the section panel's own `Background` row (card 66313), a Page / Dark / Accent picker saying WHERE a section's band sits rather than what colour a theme paints with. NOT `layout` and NOT `square`, its two siblings in the same `Surfaces` group \u2014 `Panels & cards` and `Borders`. \u26A0\uFE0F AND IT IS NOT CALLED `surface`, which is the obvious name and the wrong one: `surface` is already the shop's stored colour KEY for `Panels & cards`, the row directly below this one, so a glyph of that name would sit on the one row in the group it does not name \u2014 the same fault as `page` on this row, committed again one line down. Card 66511, 2026-09-02"
|
|
89
|
+
"ground": "the surface a theme paints \u2014 the ground the content sits on, whichever panel the theme's colour sheet was opened from. Worn by the `Background` row under `Surfaces` in a theme's colour sheet, the row card 66510 renamed from `Page background` when a theme stopped colouring a page and started colouring a SECTION. NOT `page`, which carries an owner ruling (2026-08-20) pinning it to the page and the Pages rail \u2014 the meaning this row stopped having, which is the whole reason this glyph exists. NOT `background`, which is the section panel's own `Background` row (card 66313), a Page / Dark / Accent picker saying WHERE a section's band sits rather than what colour a theme paints with. NOT `layout` and NOT `square`, its two siblings in the same `Surfaces` group \u2014 `Panels & cards` and `Borders`. \u26A0\uFE0F AND IT IS NOT CALLED `surface`, which is the obvious name and the wrong one: `surface` is already the shop's stored colour KEY for `Panels & cards`, the row directly below this one, so a glyph of that name would sit on the one row in the group it does not name \u2014 the same fault as `page` on this row, committed again one line down. Card 66511, 2026-09-02",
|
|
90
|
+
"text-color": "the COLOUR one run of text is painted in \u2014 worn by the `Color` row of the storefront part panel's `Appearance` fold, the row that lets a merchant override the theme's ink on a single heading or paragraph. NOT `type`, which is the Site styles Theme tab's `Text colour` row AND the part panel's own `Font` row \u2014 that panel forbids two rows sharing a drawing (`scripts/test-part-field-icons.tsx` \xA74), so the element glyph the Theme tab's grammar would ask for is already spent one row up. NOT `accent`, which is one drawing already serving `Accent` (the type) and `Brand colour` (the colour) and may not take a third meaning. NOT `text-small`, which is `Label colour` on that same Theme tab. This is the one place in the set where a glyph names a COLOUR rather than the element it colours, and it does so because the element \u2014 a run of text \u2014 already has two drawings pointing at it. The letter says what is painted; the solid bar under it says a colour is being chosen, which is the swatch every design tool puts there. Card [ADD] A Run Of Text Can Take Its Own Color, 2026-09-09"
|
|
89
91
|
};
|
|
90
92
|
function TrashIcon({ size = 18, ...rest }) {
|
|
91
93
|
return /* @__PURE__ */ jsxs(
|
|
@@ -1228,6 +1230,24 @@ function SquareIcon({ size = 18, ...rest }) {
|
|
|
1228
1230
|
}
|
|
1229
1231
|
);
|
|
1230
1232
|
}
|
|
1233
|
+
function CornerIcon({ size = 18, ...rest }) {
|
|
1234
|
+
return /* @__PURE__ */ jsx(
|
|
1235
|
+
"svg",
|
|
1236
|
+
{
|
|
1237
|
+
width: size,
|
|
1238
|
+
height: size,
|
|
1239
|
+
viewBox: "0 0 24 24",
|
|
1240
|
+
fill: "none",
|
|
1241
|
+
stroke: "currentColor",
|
|
1242
|
+
strokeWidth: 1.7,
|
|
1243
|
+
strokeLinecap: "round",
|
|
1244
|
+
strokeLinejoin: "round",
|
|
1245
|
+
"aria-hidden": "true",
|
|
1246
|
+
...rest,
|
|
1247
|
+
children: /* @__PURE__ */ jsx("path", { d: "M5 19V11a6 6 0 0 1 6-6h8" })
|
|
1248
|
+
}
|
|
1249
|
+
);
|
|
1250
|
+
}
|
|
1231
1251
|
function DropIcon({ size = 18, ...rest }) {
|
|
1232
1252
|
return /* @__PURE__ */ jsx(
|
|
1233
1253
|
"svg",
|
|
@@ -1798,7 +1818,28 @@ function GroundIcon({ size = 18, ...rest }) {
|
|
|
1798
1818
|
}
|
|
1799
1819
|
);
|
|
1800
1820
|
}
|
|
1821
|
+
function TextColorIcon({ size = 18, ...rest }) {
|
|
1822
|
+
return /* @__PURE__ */ jsxs(
|
|
1823
|
+
"svg",
|
|
1824
|
+
{
|
|
1825
|
+
width: size,
|
|
1826
|
+
height: size,
|
|
1827
|
+
viewBox: "0 0 24 24",
|
|
1828
|
+
fill: "none",
|
|
1829
|
+
stroke: "currentColor",
|
|
1830
|
+
strokeWidth: 1.7,
|
|
1831
|
+
strokeLinecap: "round",
|
|
1832
|
+
strokeLinejoin: "round",
|
|
1833
|
+
"aria-hidden": "true",
|
|
1834
|
+
...rest,
|
|
1835
|
+
children: [
|
|
1836
|
+
/* @__PURE__ */ jsx("path", { d: "M7.2 15.5 12 5.5l4.8 10M9.1 11.9h5.8" }),
|
|
1837
|
+
/* @__PURE__ */ jsx("rect", { x: "4", y: "18", width: "16", height: "2.6", rx: "1.3", fill: "currentColor", stroke: "none" })
|
|
1838
|
+
]
|
|
1839
|
+
}
|
|
1840
|
+
);
|
|
1841
|
+
}
|
|
1801
1842
|
|
|
1802
|
-
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, GroundIcon, HashIcon, HoverIcon, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PaddingXIcon, 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 };
|
|
1803
|
-
//# sourceMappingURL=chunk-
|
|
1804
|
-
//# sourceMappingURL=chunk-
|
|
1843
|
+
export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BackgroundIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyIcon, CopyToPageIcon, CornerIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, GroundIcon, HashIcon, HoverIcon, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PaddingXIcon, PageIcon, PasteIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextColorIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, ThemeIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings };
|
|
1844
|
+
//# sourceMappingURL=chunk-ENLK7SSS.js.map
|
|
1845
|
+
//# sourceMappingURL=chunk-ENLK7SSS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/index.tsx"],"names":[],"mappings":"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","file":"chunk-ENLK7SSS.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 \"padding-x\": \"the room a page leaves at its left and right edge — the `Side space` row on the storefront's Site styles ▸ Basics tab, beside `Content width`. NOT the air between two cards, which is `gap` on that same tab, and NOT `width`, which is how wide the content column itself may grow\",\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 \"corner\": \"the `Which corners` row in a section's Style > Shape group, on the storefront editor\",\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 \"ground\": \"the surface a theme paints — the ground the content sits on, whichever panel the theme's colour sheet was opened from. Worn by the `Background` row under `Surfaces` in a theme's colour sheet, the row card 66510 renamed from `Page background` when a theme stopped colouring a page and started colouring a SECTION. NOT `page`, which carries an owner ruling (2026-08-20) pinning it to the page and the Pages rail — the meaning this row stopped having, which is the whole reason this glyph exists. NOT `background`, which is the section panel's own `Background` row (card 66313), a Page / Dark / Accent picker saying WHERE a section's band sits rather than what colour a theme paints with. NOT `layout` and NOT `square`, its two siblings in the same `Surfaces` group — `Panels & cards` and `Borders`. ⚠️ AND IT IS NOT CALLED `surface`, which is the obvious name and the wrong one: `surface` is already the shop's stored colour KEY for `Panels & cards`, the row directly below this one, so a glyph of that name would sit on the one row in the group it does not name — the same fault as `page` on this row, committed again one line down. Card 66511, 2026-09-02\",\n \"text-color\": \"the COLOUR one run of text is painted in — worn by the `Color` row of the storefront part panel's `Appearance` fold, the row that lets a merchant override the theme's ink on a single heading or paragraph. NOT `type`, which is the Site styles Theme tab's `Text colour` row AND the part panel's own `Font` row — that panel forbids two rows sharing a drawing (`scripts/test-part-field-icons.tsx` §4), so the element glyph the Theme tab's grammar would ask for is already spent one row up. NOT `accent`, which is one drawing already serving `Accent` (the type) and `Brand colour` (the colour) and may not take a third meaning. NOT `text-small`, which is `Label colour` on that same Theme tab. This is the one place in the set where a glyph names a COLOUR rather than the element it colours, and it does so because the element — a run of text — already has two drawings pointing at it. The letter says what is painted; the solid bar under it says a colour is being chosen, which is the swatch every design tool puts there. Card [ADD] A Run Of Text Can Take Its Own Color, 2026-09-09\",\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/** the room a page leaves at its left and right edge — the `Side space` row on the storefront's Site styles ▸ Basics tab, beside `Content width`. NOT the air between two cards, which is `gap` on that same tab, and NOT `width`, which is how wide the content column itself may grow · new · drawn for ss.side-space.a, 2026-09-03, for the storefront's `Side space` row (owner approved the mockup that day). The HORIZONTAL member of a family that had only a vertical pair: `padding-top` / `padding-bottom` (2026-08-20) are one edge line plus an offset block, so this is that same drawing turned on its side — two edge lines with the content standing between them. TWO lines and not one, because a single line reads as an alignment rather than as a pair of margins */\nexport function PaddingXIcon({ 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.5 4v16M19.5 4v16\"/>\n <rect x=\"9\" y=\"7\" width=\"6\" 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/** the `Which corners` row in a section's Style > Shape group, on the storefront editor · new · drawn for the `Which corners` row, 2026-09-04. NOT the square: reused on that row at 12-18px an outlined rounded rect reads as an unchecked checkbox, and Lewis pressed it expecting it to tick. This draws ONE corner - an L turning through a radius - which is the thing the row edits and a shape no checkbox has. Open at both ends on purpose: a closed shape is a box, and the box is what `square` means. */\nexport function CornerIcon({ 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 19V11a6 6 0 0 1 6-6h8\"/>\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\n/** the surface a theme paints — the ground the content sits on, whichever panel the theme's colour sheet was opened from. Worn by the `Background` row under `Surfaces` in a theme's colour sheet, the row card 66510 renamed from `Page background` when a theme stopped colouring a page and started colouring a SECTION. NOT `page`, which carries an owner ruling (2026-08-20) pinning it to the page and the Pages rail — the meaning this row stopped having, which is the whole reason this glyph exists. NOT `background`, which is the section panel's own `Background` row (card 66313), a Page / Dark / Accent picker saying WHERE a section's band sits rather than what colour a theme paints with. NOT `layout` and NOT `square`, its two siblings in the same `Surfaces` group — `Panels & cards` and `Borders`. ⚠️ AND IT IS NOT CALLED `surface`, which is the obvious name and the wrong one: `surface` is already the shop's stored colour KEY for `Panels & cards`, the row directly below this one, so a glyph of that name would sit on the one row in the group it does not name — the same fault as `page` on this row, committed again one line down. Card 66511, 2026-09-02 · new · drawn for card 66511, 2026-09-02, for the row card 66510 left wearing `page`. Named `ground` and not `surface` after reading the row list it joins: `THEME_COLOUR_ROWS` keys `Panels & cards` as `surface`, one row below this one, and the group heading above them both is `Surfaces`. ONE path with `fill-rule=\"evenodd\"`: a FILLED rounded square with two content bars cut clean THROUGH it. The fill is the meaning and an outline cannot replace it — this row sets a COLOUR, and the set already accepts that argument for `theme` and `background`, both of which sit in colour rows and are filled for the same reason. The knockout is what makes it the GROUND rather than one more object: the content is not drawn on top of the surface, it is the hole the surface shows through, which is the only way one drawing says \"behind\" without a second offset shape — and a second offset shape is the shipped `shadow`. Checked by SHAPE against all 82 before drawing: `square` (Borders) is a bare outline and this is a solid; `layout` (Panels & cards) is an outline cut by two rules; `background` is the exact INVERSE — an outlined card with one filled band lying across it — and the inversion is the meaning, because there the band is the section lying on the page and here the whole surface is the colour; `theme` is one square half filled; `opacity` is two outlined rects offset. Sized 15 × 15 on the 24 canvas, centred on 12,12, so it sits inside the set's 14–17.5 optical box between `square` at 14 and `type` at 16 — it is deliberately NOT full bleed, because a solid at the set's top width would out-weigh the two outlines it stands directly beside. The two slots are 2 units tall with 1.8 between them — NOT the set's 1.7 stroke weight, which is what they were drawn at first. At the 16px `.es-field-icon svg` actually renders, 1.7 units is 1.13px of slot and 1.55px of gap, and the drawing goes back to being a blob; at 2 / 1.8 it is 1.33px and 1.2px and the two bars stay open. This is spec (h)'s precedent exactly — the owner widened the `columns` gap for the same reason, and that test pins the GAP and not the bar positions, as this note does */\nexport function GroundIcon({ 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 fillRule=\"evenodd\" fill=\"currentColor\" stroke=\"none\" d=\"M7 4.5H17A2.5 2.5 0 0 1 19.5 7V17A2.5 2.5 0 0 1 17 19.5H7A2.5 2.5 0 0 1 4.5 17V7A2.5 2.5 0 0 1 7 4.5ZM8 9.1H16V11.1H8ZM8 12.9H13.5V14.9H8Z\"/>\n </svg>\n );\n}\n\n/** the COLOUR one run of text is painted in — worn by the `Color` row of the storefront part panel's `Appearance` fold, the row that lets a merchant override the theme's ink on a single heading or paragraph. NOT `type`, which is the Site styles Theme tab's `Text colour` row AND the part panel's own `Font` row — that panel forbids two rows sharing a drawing (`scripts/test-part-field-icons.tsx` §4), so the element glyph the Theme tab's grammar would ask for is already spent one row up. NOT `accent`, which is one drawing already serving `Accent` (the type) and `Brand colour` (the colour) and may not take a third meaning. NOT `text-small`, which is `Label colour` on that same Theme tab. This is the one place in the set where a glyph names a COLOUR rather than the element it colours, and it does so because the element — a run of text — already has two drawings pointing at it. The letter says what is painted; the solid bar under it says a colour is being chosen, which is the swatch every design tool puts there. Card [ADD] A Run Of Text Can Take Its Own Color, 2026-09-09 · new · drawn for the storefront part panel's `Color` row, 2026-09-09. An `A` because every letterform already in the set is a `T` — `type` (serif T), `text-size` and `text-small` (a T twice at two sizes), `case` (T beside a lowercase o), `weight` (T beside a heavier T) — so a fifth T would have been the fourth drawing of one shape, sitting at 16px directly under the `Font` row that wears the first of them. Nothing in the 85 is an A, checked by shape before drawing. THE BAR IS FILLED, NOT STROKED, and that is the decision worth keeping: `accent` is a star over a 1.7 stroke line at y=20, so a stroked rule under a letter would have been that composition with the mark swapped — two glyphs differing only in their mark is what this set is written against. A solid 2.6-unit bar reads as a swatch rather than a baseline, which is also the truth of it: the bar IS the colour. At the 16px `.es-field-icon svg` actually renders, 2.6 units is 1.73px of solid, above the 1.2px the `ground` entry measured as the floor for a bar that has to stay open. Optical box 16 x 15.1, inside the set's 14–17.5 */\nexport function TextColorIcon({ 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.2 15.5 12 5.5l4.8 10M9.1 11.9h5.8\"/>\n <rect x=\"4\" y=\"18\" width=\"16\" height=\"2.6\" rx=\"1.3\" fill=\"currentColor\" stroke=\"none\"/>\n </svg>\n );\n}\n"]}
|
package/dist/icons/index.d.ts
CHANGED
|
@@ -62,6 +62,7 @@ declare const iconMeanings: {
|
|
|
62
62
|
readonly tag: "tag";
|
|
63
63
|
readonly rotate: "rotate";
|
|
64
64
|
readonly square: "square";
|
|
65
|
+
readonly corner: "the `Which corners` row in a section's Style > Shape group, on the storefront editor";
|
|
65
66
|
readonly drop: "drop";
|
|
66
67
|
readonly "plus-minus": "plus minus";
|
|
67
68
|
readonly dollar: "dollar";
|
|
@@ -90,6 +91,7 @@ declare const iconMeanings: {
|
|
|
90
91
|
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";
|
|
91
92
|
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";
|
|
92
93
|
readonly ground: "the surface a theme paints — the ground the content sits on, whichever panel the theme's colour sheet was opened from. Worn by the `Background` row under `Surfaces` in a theme's colour sheet, the row card 66510 renamed from `Page background` when a theme stopped colouring a page and started colouring a SECTION. NOT `page`, which carries an owner ruling (2026-08-20) pinning it to the page and the Pages rail — the meaning this row stopped having, which is the whole reason this glyph exists. NOT `background`, which is the section panel's own `Background` row (card 66313), a Page / Dark / Accent picker saying WHERE a section's band sits rather than what colour a theme paints with. NOT `layout` and NOT `square`, its two siblings in the same `Surfaces` group — `Panels & cards` and `Borders`. ⚠️ AND IT IS NOT CALLED `surface`, which is the obvious name and the wrong one: `surface` is already the shop's stored colour KEY for `Panels & cards`, the row directly below this one, so a glyph of that name would sit on the one row in the group it does not name — the same fault as `page` on this row, committed again one line down. Card 66511, 2026-09-02";
|
|
94
|
+
readonly "text-color": "the COLOUR one run of text is painted in — worn by the `Color` row of the storefront part panel's `Appearance` fold, the row that lets a merchant override the theme's ink on a single heading or paragraph. NOT `type`, which is the Site styles Theme tab's `Text colour` row AND the part panel's own `Font` row — that panel forbids two rows sharing a drawing (`scripts/test-part-field-icons.tsx` §4), so the element glyph the Theme tab's grammar would ask for is already spent one row up. NOT `accent`, which is one drawing already serving `Accent` (the type) and `Brand colour` (the colour) and may not take a third meaning. NOT `text-small`, which is `Label colour` on that same Theme tab. This is the one place in the set where a glyph names a COLOUR rather than the element it colours, and it does so because the element — a run of text — already has two drawings pointing at it. The letter says what is painted; the solid bar under it says a colour is being chosen, which is the swatch every design tool puts there. Card [ADD] A Run Of Text Can Take Its Own Color, 2026-09-09";
|
|
93
95
|
};
|
|
94
96
|
type IconName = keyof typeof iconMeanings;
|
|
95
97
|
/** Delete · keep · efficient-shop · components/UiIcon.tsx:99 */
|
|
@@ -204,6 +206,8 @@ declare function TagIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
|
204
206
|
declare function RotateIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
205
207
|
/** square · new · drawn for the settings-panel design, 2026-08-20 */
|
|
206
208
|
declare function SquareIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
209
|
+
/** the `Which corners` row in a section's Style > Shape group, on the storefront editor · new · drawn for the `Which corners` row, 2026-09-04. NOT the square: reused on that row at 12-18px an outlined rounded rect reads as an unchecked checkbox, and Lewis pressed it expecting it to tick. This draws ONE corner - an L turning through a radius - which is the thing the row edits and a shape no checkbox has. Open at both ends on purpose: a closed shape is a box, and the box is what `square` means. */
|
|
210
|
+
declare function CornerIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
207
211
|
/** drop · new · drawn for the settings-panel design, 2026-08-20 */
|
|
208
212
|
declare function DropIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
209
213
|
/** plus minus · new · drawn for the settings-panel design, 2026-08-20 */
|
|
@@ -260,5 +264,7 @@ declare function MoveUpIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
|
260
264
|
declare function MoveDownIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
261
265
|
/** the surface a theme paints — the ground the content sits on, whichever panel the theme's colour sheet was opened from. Worn by the `Background` row under `Surfaces` in a theme's colour sheet, the row card 66510 renamed from `Page background` when a theme stopped colouring a page and started colouring a SECTION. NOT `page`, which carries an owner ruling (2026-08-20) pinning it to the page and the Pages rail — the meaning this row stopped having, which is the whole reason this glyph exists. NOT `background`, which is the section panel's own `Background` row (card 66313), a Page / Dark / Accent picker saying WHERE a section's band sits rather than what colour a theme paints with. NOT `layout` and NOT `square`, its two siblings in the same `Surfaces` group — `Panels & cards` and `Borders`. ⚠️ AND IT IS NOT CALLED `surface`, which is the obvious name and the wrong one: `surface` is already the shop's stored colour KEY for `Panels & cards`, the row directly below this one, so a glyph of that name would sit on the one row in the group it does not name — the same fault as `page` on this row, committed again one line down. Card 66511, 2026-09-02 · new · drawn for card 66511, 2026-09-02, for the row card 66510 left wearing `page`. Named `ground` and not `surface` after reading the row list it joins: `THEME_COLOUR_ROWS` keys `Panels & cards` as `surface`, one row below this one, and the group heading above them both is `Surfaces`. ONE path with `fill-rule="evenodd"`: a FILLED rounded square with two content bars cut clean THROUGH it. The fill is the meaning and an outline cannot replace it — this row sets a COLOUR, and the set already accepts that argument for `theme` and `background`, both of which sit in colour rows and are filled for the same reason. The knockout is what makes it the GROUND rather than one more object: the content is not drawn on top of the surface, it is the hole the surface shows through, which is the only way one drawing says "behind" without a second offset shape — and a second offset shape is the shipped `shadow`. Checked by SHAPE against all 82 before drawing: `square` (Borders) is a bare outline and this is a solid; `layout` (Panels & cards) is an outline cut by two rules; `background` is the exact INVERSE — an outlined card with one filled band lying across it — and the inversion is the meaning, because there the band is the section lying on the page and here the whole surface is the colour; `theme` is one square half filled; `opacity` is two outlined rects offset. Sized 15 × 15 on the 24 canvas, centred on 12,12, so it sits inside the set's 14–17.5 optical box between `square` at 14 and `type` at 16 — it is deliberately NOT full bleed, because a solid at the set's top width would out-weigh the two outlines it stands directly beside. The two slots are 2 units tall with 1.8 between them — NOT the set's 1.7 stroke weight, which is what they were drawn at first. At the 16px `.es-field-icon svg` actually renders, 1.7 units is 1.13px of slot and 1.55px of gap, and the drawing goes back to being a blob; at 2 / 1.8 it is 1.33px and 1.2px and the two bars stay open. This is spec (h)'s precedent exactly — the owner widened the `columns` gap for the same reason, and that test pins the GAP and not the bar positions, as this note does */
|
|
262
266
|
declare function GroundIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
267
|
+
/** the COLOUR one run of text is painted in — worn by the `Color` row of the storefront part panel's `Appearance` fold, the row that lets a merchant override the theme's ink on a single heading or paragraph. NOT `type`, which is the Site styles Theme tab's `Text colour` row AND the part panel's own `Font` row — that panel forbids two rows sharing a drawing (`scripts/test-part-field-icons.tsx` §4), so the element glyph the Theme tab's grammar would ask for is already spent one row up. NOT `accent`, which is one drawing already serving `Accent` (the type) and `Brand colour` (the colour) and may not take a third meaning. NOT `text-small`, which is `Label colour` on that same Theme tab. This is the one place in the set where a glyph names a COLOUR rather than the element it colours, and it does so because the element — a run of text — already has two drawings pointing at it. The letter says what is painted; the solid bar under it says a colour is being chosen, which is the swatch every design tool puts there. Card [ADD] A Run Of Text Can Take Its Own Color, 2026-09-09 · new · drawn for the storefront part panel's `Color` row, 2026-09-09. An `A` because every letterform already in the set is a `T` — `type` (serif T), `text-size` and `text-small` (a T twice at two sizes), `case` (T beside a lowercase o), `weight` (T beside a heavier T) — so a fifth T would have been the fourth drawing of one shape, sitting at 16px directly under the `Font` row that wears the first of them. Nothing in the 85 is an A, checked by shape before drawing. THE BAR IS FILLED, NOT STROKED, and that is the decision worth keeping: `accent` is a star over a 1.7 stroke line at y=20, so a stroked rule under a letter would have been that composition with the mark swapped — two glyphs differing only in their mark is what this set is written against. A solid 2.6-unit bar reads as a swatch rather than a baseline, which is also the truth of it: the bar IS the colour. At the 16px `.es-field-icon svg` actually renders, 2.6 units is 1.73px of solid, above the 1.2px the `ground` entry measured as the floor for a bar that has to stay open. Optical box 16 x 15.1, inside the set's 14–17.5 */
|
|
268
|
+
declare function TextColorIcon({ size, ...rest }: IconProps): react.JSX.Element;
|
|
263
269
|
|
|
264
|
-
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, GroundIcon, HashIcon, HoverIcon, type IconName, type IconProps, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PaddingXIcon, 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 };
|
|
270
|
+
export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BackgroundIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyIcon, CopyToPageIcon, CornerIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, GroundIcon, HashIcon, HoverIcon, type IconName, type IconProps, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PaddingXIcon, PageIcon, PasteIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextColorIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, ThemeIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings };
|
package/dist/icons/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
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, GroundIcon, HashIcon, HoverIcon, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PaddingXIcon, 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-
|
|
1
|
+
export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, BackgroundIcon, BellIcon, ButtonIcon, CartIcon, CaseIcon, ChatIcon, CheckIcon, ChevronIcon, ClockIcon, CloseIcon, ColumnsIcon, ContrastIcon, CopyIcon, CopyToPageIcon, CornerIcon, DesktopIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, ExternalIcon, EyeIcon, EyeOffIcon, GapIcon, GlobeIcon, GridIcon, GroundIcon, HashIcon, HoverIcon, ImageIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LinkIcon, ListIcon, LockIcon, LogoIcon, MediaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingTopIcon, PaddingXIcon, PageIcon, PasteIcon, PhoneIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SquareIcon, StylesIcon, TabletIcon, TagIcon, TemplateIcon, TextColorIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, ThemeIcon, TrashIcon, TypeIcon, UndoIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, iconMeanings } from '../chunk-ENLK7SSS.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-
|
|
2
|
+
export { AddIcon, LayersIcon, MediaIcon, PageIcon as PagesIcon, SitemapIcon, StylesIcon } from './chunk-ENLK7SSS.js';
|
|
3
3
|
export { puckAzureRamp, shellCssVars, shellTokens } from './chunk-VEXTYAMU.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|