efficient-shell 5.1.0 → 5.6.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.
Files changed (87) hide show
  1. package/README.md +229 -31
  2. package/THIRD_PARTY_NOTICES.md +32 -0
  3. package/dist/{Browser-WUVL7ZSM.js → Browser-6QB2QTO7.js} +18 -18
  4. package/dist/Calculator-KOWRV2VK.js +29 -0
  5. package/dist/ConfirmDialog-32NLLK4K.js +1 -0
  6. package/dist/{CurrencyConverter-LF2WHJW4.js → CurrencyConverter-YJ47A3L5.js} +7 -7
  7. package/dist/{Documents-MB4TJGNY.js → Documents-TGGI2QBV.js} +26 -26
  8. package/dist/Files-KSDK3EO4.js +87 -0
  9. package/dist/{Notepad-UQSG5BE3.js → Notepad-EKB6FJPR.js} +11 -11
  10. package/dist/PdfViewer-KW5B44AX.js +1 -0
  11. package/dist/{PomodoroTimer-XARF7DO3.js → PomodoroTimer-RD5GRRA5.js} +20 -20
  12. package/dist/{Preview-LETK6AJS.js → Preview-AQVXKT2I.js} +32 -32
  13. package/dist/Sidebar-VYXN5YIJ.js +44 -0
  14. package/dist/{Spreadsheet-RCHOM2RE.js → Spreadsheet-INXG5UMI.js} +8 -8
  15. package/dist/{Stock-25FQMI2G.js → Stock-CBQN2IJF.js} +3 -3
  16. package/dist/{Weather-KLQ55R64.js → Weather-2EVUTIXX.js} +16 -16
  17. package/dist/{WorldClock-RMPU7D2M.js → WorldClock-TZUF7MOB.js} +6 -6
  18. package/dist/apps/index.js +1 -1
  19. package/dist/bin/ui-check.js +1 -1
  20. package/dist/brand.css +1 -1
  21. package/dist/{chunk-LTGIQ7HO.js → chunk-3GPU3JOW.js} +14 -14
  22. package/dist/{chunk-DBB4DB7J.js → chunk-3HJTOINK.js} +1 -1
  23. package/dist/{chunk-MDI265RK.js → chunk-4SWPNARR.js} +4 -4
  24. package/dist/{chunk-XUF7VW4U.js → chunk-6LTDJKIL.js} +72 -70
  25. package/dist/chunk-AP2QEJXQ.js +1 -0
  26. package/dist/{chunk-FA6E75W5.js → chunk-CLPJDJH4.js} +1 -1
  27. package/dist/{chunk-2TP4GK53.js → chunk-FROOMUJ7.js} +6 -6
  28. package/dist/{chunk-H5NEXQTX.js → chunk-GG7AE6OC.js} +1 -1
  29. package/dist/{chunk-6TCHOT4R.js → chunk-HRLPFUPB.js} +1 -1
  30. package/dist/{chunk-N3W6PH55.js → chunk-JEM73E4C.js} +11 -11
  31. package/dist/{chunk-P4SGJTK3.js → chunk-JXAAZGLJ.js} +1 -1
  32. package/dist/{chunk-4KLBITSY.js → chunk-KXAUDC3A.js} +28 -28
  33. package/dist/{chunk-TMZVVRTA.js → chunk-L5XA5MLK.js} +43 -43
  34. package/dist/{chunk-5LCZFVE4.js → chunk-MLYC5VQI.js} +2 -2
  35. package/dist/{chunk-HKLW5KTW.js → chunk-N3A3GWJI.js} +8 -8
  36. package/dist/{chunk-LY2G6LHW.js → chunk-PKEQ7XOH.js} +1 -1
  37. package/dist/{chunk-2KTBZE5F.js → chunk-R4XSSHDI.js} +1 -1
  38. package/dist/{chunk-XNHYCOPO.js → chunk-RCHCT7AO.js} +1 -1
  39. package/dist/chunk-RDQ7OXUA.js +1026 -0
  40. package/dist/{chunk-LMIQV3NB.js → chunk-RL626E7Q.js} +2 -2
  41. package/dist/{chunk-ZDF5AR5W.js → chunk-RMJZOKHY.js} +9 -9
  42. package/dist/{chunk-DXNCJBGY.js → chunk-SKB6L53D.js} +11 -11
  43. package/dist/{chunk-JK2KQ4PF.js → chunk-TFETN2GI.js} +1 -1
  44. package/dist/chunk-TNBCUZVE.js +1 -0
  45. package/dist/chunk-WOEFPBQF.js +1 -0
  46. package/dist/chunk-WRBXEZFN.js +1 -0
  47. package/dist/chunk-XWSWYMGM.js +2 -0
  48. package/dist/{chunk-GPNNQIRY.js → chunk-Z2353HNE.js} +5 -5
  49. package/dist/{chunk-VOY6TCS2.js → chunk-ZUCYJAQH.js} +18 -18
  50. package/dist/file-intake/index.js +1 -1
  51. package/dist/format/index.d.ts +1 -1
  52. package/dist/format/index.js +1 -1
  53. package/dist/i18n/index.d.ts +1 -1
  54. package/dist/icons/efficient-looks.d.ts +28 -0
  55. package/dist/icons/efficient-looks.js +920 -0
  56. package/dist/icons/efficient.d.ts +746 -298
  57. package/dist/icons/efficient.js +336 -470
  58. package/dist/icons/heroicons.d.ts +1 -1
  59. package/dist/icons/index.d.ts +10 -4
  60. package/dist/icons/index.js +1 -1
  61. package/dist/icons/lucide.d.ts +1 -1
  62. package/dist/{index-CzMz_Y9A.d.ts → index-BgM75MC6.d.ts} +617 -68
  63. package/dist/{index-DpUDK9zG.d.ts → index-CHufemKB.d.ts} +69 -1
  64. package/dist/index.d.ts +5 -5
  65. package/dist/index.js +504 -504
  66. package/dist/locales/zh-Hans.d.ts +1 -1
  67. package/dist/locales/zh-Hans.js +1 -1
  68. package/dist/map/index.js +5 -5
  69. package/dist/markdown/index.js +1 -1
  70. package/dist/page-tabs/index.js +5 -5
  71. package/dist/pdf/index.js +1 -1
  72. package/dist/{registry-FHdUeVww.d.ts → registry-J-TU7zKx.d.ts} +14 -4
  73. package/dist/{strings-BEuOOURI.d.ts → strings-BVB64Nck.d.ts} +61 -0
  74. package/dist/ui/index.d.ts +4 -4
  75. package/dist/ui/index.js +1 -1
  76. package/dist/ui.css +124 -1
  77. package/package.json +8 -2
  78. package/dist/Calculator-E2CBADVF.js +0 -29
  79. package/dist/ConfirmDialog-ZM364NPI.js +0 -1
  80. package/dist/Files-JQYIBZEP.js +0 -87
  81. package/dist/PdfViewer-4VGNBBED.js +0 -1
  82. package/dist/Sidebar-VR4QYFQU.js +0 -44
  83. package/dist/chunk-3JK2LSFU.js +0 -1
  84. package/dist/chunk-FWOPZB6I.js +0 -1
  85. package/dist/chunk-LOXV3J6X.js +0 -1005
  86. package/dist/chunk-OBMR6BEP.js +0 -1
  87. package/dist/chunk-YKZHOXI4.js +0 -2
@@ -1,355 +1,803 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { SVGProps } from 'react';
3
- import { I as IconSet } from '../registry-FHdUeVww.js';
3
+ import { I as IconSet } from '../registry-J-TU7zKx.js';
4
4
 
5
5
  /**
6
- * The house glyph set (the editors' set, moved here from efficient-easel).
6
+ * The one icon set (Lewis 2026-10-12: one set; the meanings and drawings he picked).
7
7
  *
8
- * The standard every drawing follows: a 24 by 24 viewBox, stroke on
9
- * currentColor at width 1.7 with round caps and joins, a transparent
10
- * background, and no size beyond the `size` default, so the caller owns size
11
- * and colour. One meaning, one SVG. No icon package is imported.
8
+ * The standard every default drawing follows is heroicons outline: a 24 by 24
9
+ * viewBox, stroke on currentColor at width 1.5 with round caps and joins, a
10
+ * transparent background. Where heroicons has the meaning, its drawing is used;
11
+ * where it has not, ours is drawn to the same standard. One meaning, one SVG: a
12
+ * name that means the same as another is that other's drawing. The caller owns
13
+ * size and colour. No icon package is imported.
12
14
  *
13
- * It draws the catalogue meanings it shares a name with, and many of its own
14
- * (a block type, a settings row) that only an editor asks for.
15
+ * The other looks of each meaning (solid, mini, and the ones Lewis kept) are in
16
+ * `efficient-shell/icons/efficient-looks`, so a host that draws only the
17
+ * default does not bundle them.
18
+ *
19
+ * Heroicons drawings: Copyright (c) Tailwind Labs, Inc., MIT licence; see
20
+ * THIRD_PARTY_NOTICES.md in this package.
15
21
  */
16
22
  type EfficientIconProps = Omit<SVGProps<SVGSVGElement>, 'children'> & {
17
23
  size?: number | string;
18
24
  };
19
- /** Every glyph in the set, with what it means. */
25
+ /** Every name in the set, with what it means. */
20
26
  declare const efficientIconMeanings: {
21
- readonly trash: "Delete";
22
- readonly duplicate: "Duplicate — owner pick 08-20, two-pages form";
23
- readonly "copy-to-page": "Copy to another page";
24
- readonly close: "Close / dismiss";
27
+ readonly "academic-cap": "academic-cap";
28
+ readonly accent: "the ACCENT — the site's one emphasis, the phrase picked out inside a heading. Worn by `Accent` on the Text tab and by `Brand colour` on the Theme tab. ONE drawing for both, for two reasons that hold each other up. (1) `accent` is a NAMED ROLE on this site, not a coincidence of spelling: it is declared as a font role (`FONT_ROLES`) and as a colour role (`WORD_STYLE_COLOURS`). The Text tab's `Accent` sets that role's TYPEFACE; the Theme tab's `Brand colour` sets the colour it is painted in. One role, two halves — which is why one drawing serves both. (2) the Site styles Theme tab names every colour row by the ELEMENT it colours and never by a glyph meaning \"colour\" — `Text colour` wears `type`, `Label colour` wears `text-small`, `Page background` wears `page` (ThemeField ROW_ICON, card 66205). The glyph names the element; the row says what it sets. Card 66310, 2026-09-01. ⚠️ THIS CORRECTS TWO EARLIER GOES AT THIS SENTENCE, and the RULING survived both — one drawing still serves both rows and the drawing has not moved. 66310's own first entry said the two rows keep the key `accent` in one place, which is not so. es#36 replaced that with a NUMBER, and a number is the wrong shape here: counting what `accent` IS gives the role declarations above, while counting where an accent VALUE lives gives the typeface, the preset colour and — since card 66307 — the site brand colour. Both counts are true, of different things, so a figure that needs its counting rule carried beside it will be misread in a one-line entry. The structure is what does not move. Corrected on card 66315, 2026-09-01. Not \"a star\" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under";
29
+ readonly account: "a person — the account / sign-in row and the header's account icon";
30
+ readonly "account-circle": "account-circle";
25
31
  readonly add: "Add / plus";
26
- readonly check: "Checkmark / success";
27
- readonly undo: "Undo";
28
- readonly redo: "Redo";
29
- readonly rename: "Rename / edit";
30
- readonly search: "Search";
31
- readonly eye: "Show";
32
- readonly "eye-off": "Hide";
33
- readonly external: "Leaves this surface";
34
- readonly drag: "Drag handle";
35
- readonly lock: "Locked";
36
- readonly revert: "Revert to inherited";
37
- readonly chevron: "Disclosure — rotate for direction";
38
- readonly send: "Send";
39
- readonly page: "Page AND the Pages rail — owner ruling 08-20, one meaning";
40
- readonly layers: "Layers";
41
- readonly styles: "Styles";
42
- readonly media: "Media";
43
- readonly sitemap: "Sitemap";
44
- readonly image: "Image / photo";
45
- readonly grid: "Grid";
46
- readonly cart: "Cart";
47
- readonly desktop: "Desktop";
48
- readonly tablet: "Tablet";
49
- readonly phone: "Phone";
50
- readonly warning: "Warning";
51
- readonly type: "Text marker — the T";
52
- readonly wheel: "Wheel";
53
- readonly chat: "Chat";
54
- readonly bell: "Notification bell";
55
- readonly template: "Template / bookmark";
56
- readonly clock: "clock";
57
- readonly play: "play";
58
- readonly "align-left": "WHICH WAY content is aligned — worn by the `Alignment` row of the campaign editor's Text, Button, Badge, Divider and Social blocks, and by the storefront part panel's `align` row (efficient-shop PartSettingsPanel FIELD_ICONS). The row's own segments draw each answer; this names the question.";
32
+ readonly "add-circle": "Used in shell src/apps/PomodoroTimer.tsx:412";
33
+ readonly "add-person": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
34
+ readonly adjust: "adjust";
59
35
  readonly "align-center": "align center";
60
- readonly opacity: "opacity";
61
- readonly "padding-top": "padding top";
62
- readonly "padding-bottom": "padding bottom";
63
- readonly "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";
64
- readonly width: "width";
65
- readonly anchor: "anchor";
66
- readonly hash: "a NUMBER or its unit — worn by the `Measure length in` row (px / %) of the campaign editor's Divider, which picks what the length beside it is counted in.";
67
- readonly columns: "columns";
68
- readonly list: "a list of entries a merchant orders — worn by the `Phone order` row of the campaign editor's Section settings and by the `Links` row of its Social block. …AND THE `Bulleted list` toolbar button of the campaign editor's Text block, and the `Bulleted list` item of its No list / Bulleted list / Numbered list menu (final design, 2026-10-06): lines set as a list. `numbered-list` is its pair, with figures in place of the dots.";
69
- readonly "text-lines": "text lines";
70
- readonly "text-size": "text size";
71
- readonly "text-small": "SMALL TYPE — an eyebrow, a caption, a label run. Worn by the `Eyebrow` row of the campaign editor's Text block and by the `Tagline` row of its Logo. The set's `text-size` is the SIZE control; this is the small-type kind itself.";
72
- readonly 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";
73
- readonly link: "link";
74
- readonly tag: "tag";
75
- readonly rotate: "rotate";
76
- readonly square: "square";
77
- readonly corner: "the `Which corners` row in a section's Style > Shape group, on the storefront editor";
78
- readonly drop: "a COLOUR, where the row is named for the colour itself rather than for the element it paints — worn by the `Divider` colour row of the campaign editor's Email styles and by its Divider block's `Color`. The set names a colour by its ELEMENT wherever it can (`text-color`, `ground`, `link`); this is the answer where there is no element to name.";
79
- readonly "plus-minus": "plus minus";
80
- readonly dollar: "dollar";
81
- readonly note: "a short note ABOUT a thing rather than the thing — worn by the `Alt text` row of the campaign editor's Image block, the words a reader gets when the picture does not load.";
82
- readonly weight: "HOW HEAVY A STROKE IS — a font's weight, and a rule's thickness. It was written as “font weight” alone until the storefront's `Thickness` row (a footer divider, 1-8px) needed it: both settings make a mark heavier, and that is what the drawing shows. ⚠️ NOT `line-style`, which is WHICH DASH a rule is drawn with — solid, dashed, dotted — a different question about the same rule. Extended on card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
83
- readonly "letter-spacing": "letter spacing";
84
- readonly case: "letter case";
85
- readonly layout: "page layout — the Layout settings bucket, not columns. …AND THE ROWS THAT ASK IT DIRECTLY: the `Layout`, `Arrangement` and `Card layout` rows of the storefront editor, which pick which arrangement a section draws. The bucket and the row are one idea at two scales — the bucket holds the questions about how a section is laid out, and these rows are that question asked directly. ⚠️ STILL NOT `columns`, which is a COUNT of them, and still not `grid`, which is equal cells: the distinction the sentence above draws is unchanged. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
86
- readonly settings: "site settings — a gear; heads the Basics tab of the Site styles panel";
87
- readonly 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";
88
- readonly account: "a person — the account / sign-in row and the header's account icon";
89
- readonly globe: "a globe — the country / region selector row";
90
- readonly logo: "a brand mark — the Header panel's Logo tab";
36
+ readonly "align-justify": "JUSTIFY — text whose rows run edge to edge. Worn by the Justify button on the final text box's second toolbar row, beside Left, Center and Right, and by the Justify chip of the alignment strip. Three full-width rows on the same three heights the other alignment glyphs use. Decided 2026-10-06 (the design was made final that day).";
37
+ readonly "align-left": "WHICH WAY content is aligned — worn by the `Alignment` row of the campaign editor's Text, Button, Badge, Divider and Social blocks, and by the storefront part panel's `align` row (efficient-shop PartSettingsPanel FIELD_ICONS). The row's own segments draw each answer; this names the question.";
91
38
  readonly "align-right": "align right";
92
39
  readonly "align-separate": "align separate — the rows pushed apart to both edges";
93
- readonly accent: "the ACCENT — the site's one emphasis, the phrase picked out inside a heading. Worn by `Accent` on the Text tab and by `Brand colour` on the Theme tab. ONE drawing for both, for two reasons that hold each other up. (1) `accent` is a NAMED ROLE on this site, not a coincidence of spelling: it is declared as a font role (`FONT_ROLES`) and as a colour role (`WORD_STYLE_COLOURS`). The Text tab's `Accent` sets that role's TYPEFACE; the Theme tab's `Brand colour` sets the colour it is painted in. One role, two halves — which is why one drawing serves both. (2) the Site styles Theme tab names every colour row by the ELEMENT it colours and never by a glyph meaning \"colour\" — `Text colour` wears `type`, `Label colour` wears `text-small`, `Page background` wears `page` (ThemeField ROW_ICON, card 66205). The glyph names the element; the row says what it sets. Card 66310, 2026-09-01. ⚠️ THIS CORRECTS TWO EARLIER GOES AT THIS SENTENCE, and the RULING survived both — one drawing still serves both rows and the drawing has not moved. 66310's own first entry said the two rows keep the key `accent` in one place, which is not so. es#36 replaced that with a NUMBER, and a number is the wrong shape here: counting what `accent` IS gives the role declarations above, while counting where an accent VALUE lives gives the typeface, the preset colour and — since card 66307 — the site brand colour. Both counts are true, of different things, so a figure that needs its counting rule carried beside it will be misread in a one-line entry. The structure is what does not move. Corrected on card 66315, 2026-09-01. Not \"a star\" — a star borrowed for any other row would be a second meaning on one SVG, which is the rule this set is written under";
94
- readonly shadow: "the depth a card sits at — the `Card shadow` row on the storefront's Site styles ▸ Basics tab, beside `Corners`";
95
- readonly gap: "the air between two cards — the `Card gap` row on the storefront's Site styles ▸ Basics tab, beside `Corners`. …and the Box's block-spacing row, which is the same air one tier down: the room between the BLOCKS a merchant stacks inside a box rather than between two cards in a grid. One idea — the space between siblings — at two scales, which is why one drawing serves both rather than the shop drawing a second. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23 …AND THE TICKER'S `Join` ROW, which makes THREE SCALES for one idea: between two cards, between the blocks inside a box, and between a section and the one above or below it. ⚠️ AND `Join` SETS THE SAME THING BY CLOSING IT. `Nothing` / `Section above` / `Section below` picks which seam disappears, which reads at first glance like a different question — it is not. The space between siblings is what is being set either way, and zero is one of its answers. Written down because somebody will otherwise read `Join` as adjacency or as a border and reach for another drawing. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
96
- readonly hover: "the pointer resting on a card — the `Hover effect` row on the storefront's Site styles ▸ Basics tab, beside `Corners`";
97
- readonly "product-field": "the words come from the catalogue record — the `From product` segment of the Card text control";
98
- readonly "own-text": "the words are the merchant's own, not the product's — the `My own text` segment of the Card text control";
99
- readonly theme: "one whole palette a section can be painted in — paper, ink, borders and accent together, not one colour. Worn by the `Theme` row of the section panel's `Colour` group (card 66313), the dropdown that says which of the site's themes this one section is on. NOT `contrast`, which names the Site styles Theme TAB — that is a PLACE, not the idea “a palette”. NOT `accent`, which is the site's ONE emphasis colour, one colour rather than a whole set. Card 66315, 2026-09-01";
100
- readonly background: "the BAND A SECTION LAYS DOWN — the section's own background, the thing other boxes sit on top of. Worn by `Section background` and `Backdrop` in the admin portal's email editor (src/components/email/puckConfig.tsx:784 and :2398), both of which inherit from the theme and reset with 'Back to the theme color', and by the four section-band `Background` rows in efficient-shop's `backgroundField`. ⚠️ ITS ORIGINAL REASON IS DEAD AND IS KEPT HERE ONLY SO NOBODY REVIVES IT. This entry used to read \"the `Background` row of the section panel's `Colour` group (card 66313), whose choices are Page / Dark / Accent\". That picker is gone: card 66510 removed the choice, `ss.section-theme-picker` stopped the renderer reading the stored value, and the last 62 stored keys were cleared on 2026-09-03. A glyph outliving its stated reason is the `contrast` case — right on screen, dead why — and here it cost a real decision: PR #1456 ruled against this glyph because of that sentence and put `ground` on the four shop rows instead. ⚠️ NOT `ground`, which is the fill of the BOX the content sits in and covers this band — the two sit one line apart in the email editor's section panel, and that pair is the definition. The test is not what colour is set but WHAT SURFACE: a section's own band is `background`; a box drawn on top of it, at any level, is `ground`. Card 66315, 2026-09-01; reason replaced with a live one 2026-09-23";
101
- readonly copy: "put this block on the clipboard so it can be pasted somewhere else — the `Copy` row (⌘C) of the block right-click menu the owner approved 2026-08-31. NOT `copy-to-page`, whose meaning is already \"Copy to another page\" and which names a DESTINATION rather than the clipboard. NOT `duplicate`, which sits two rows below this one in the same menu and makes a second block in place at once without ever touching the clipboard. Card 66400.a, 2026-09-02";
102
- readonly paste: "drop whatever is on the clipboard into here — the `Paste` row (⌘V) of the block right-click menu the owner approved 2026-08-31. The other half of `copy`, and the only entry in the set that means the clipboard's CONTENTS coming back out. NOT `add`, which opens a chooser for a new block rather than placing one already taken. Card 66400.a, 2026-09-02";
103
- 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";
104
- 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";
105
- readonly ground: "the fill of the BOX THE CONTENT SITS IN — the ground under the content, at whatever level the box is. Worn at every level today, and they are one idea, not several: 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); in the admin portal's email editor, `Card color` (puckConfig.tsx:684), `Content background` (:790, hinted \"Covers the section color, but not its image.\"), `Email body` (:2404), a button's `Fill color` and `Zebra rows`, and `Column background` (ColumnLookControls.tsx:193, a SwatchRow); and in the shop, `Image background`, the fill of the well behind a product card's picture — a box inside a card inside a section. `Card color` is the closest precedent for that last one: a CARD's own fill already wears this glyph in shipped code. Level is not meaning: a new glyph per level would name WHERE the box is rather than WHAT the row sets, which is the `drop` / `styles` fault in this file's own rule. ⚠️ NOT `background`, AND THE REASON PRINTED HERE UNTIL 2026-09-23 WAS A GHOST. It said `background` meant the section panel's Page / Dark / Accent picker — but card 66510 removed that choice, `ss.section-theme-picker` stopped the renderer reading it, and [FIX] Section Theme Colours cleared the last 62 stored keys on 2026-09-03. Nothing had worn that meaning for three weeks. Ruling against a control that no longer exists is how the same wrong decision gets made twice, and it was: PR #1456 read that sentence and put THIS glyph on the four section-band `Background` rows. The live distinction is in efficient-admin-portal's email editor, one line apart under a comment citing this file (src/components/email/puckConfig.tsx:781): `Section background` wears `background`, `Content background` wears `ground`, and the hint says why — \"Covers the section color, but not its image.\" `background` is the band a section lays down; `ground` is the fill of the box that covers it. 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 `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; wearers and the ghost corrected 2026-09-23";
106
- 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";
107
- readonly direction: "which way this thing travels — the heading a merchant picks for a section's own motion. ⚠️ DRAWN FOR the `Scroll direction` row on the Scrolling Bar section AND NOT WORN BY IT. efficient-shop's `doc/naming.md` N10.1 gives the `Direction` idea a DASH in its Glyph column, and names `Direction` itself as one of the two reasons a row gets that dash: it is a MODIFIER, not a thing, and a modifier takes no leading glyph. So that row ships with no mark beside its label, and that is CORRECT rather than an omission — which is the whole reason this sentence is here, so the next reader does not file a bug against a row that is drawn the way it was decided. The marks a merchant actually presses are `direction-left`, `direction-right`, `direction-up` and `direction-down`, inside the control, and those four ARE worn. This glyph therefore has the same standing as `button`: drawn, correct, and not wired to a row. SS seat, 2026-09-11, recording that its own canvas drew a leading glyph in the field head and the naming table is what governs. ⚠️ AND IT NEVER HEADED THE HERO'S OVERLAY ROW, though it was briefed as if it did. The SS seat settled that row as a PLACEMENT on 2026-09-11: a lit cell there means where the DARK SITS, which is one of nine positions, which is what this shell's 3×3 grid already means at every one of its call sites — so that row draws the ordinary dots and wants nothing from this set. Both withdrawn claims are recorded rather than deleted, because a glyph that was once said to head a row is the first thing a later reader puts back. NOT `move-up` and NOT `move-down`, which REORDER a block inside its parent's list — card 66400.a's entries already say in writing that they do not scroll a view, which is exactly the thing this idea DOES say, so those are the first two glyphs a borrower will reach for and the two that must be refused hardest. NOT `chevron`, which is disclosure: its own meaning reads \"rotate for direction\", and that sentence is the one a borrower will read as permission — a chevron is turned to point AT the thing it opens, it never says which way anything travels. NOT `width`, which is a SPAN — how wide the content column may grow — and is double-headed for exactly that reason; a span names an extent, this names a heading. Owner, 2026-09-11";
108
- readonly "direction-right": "the direction a marquee travels — the bar runs rightwards, so its content walks towards the right edge. Worn by the RIGHT cell of the `Scroll direction` control on the Scrolling Bar section, which is the shell's 3×3 placement grid with four live cells, each drawing an arrow in place of the grid's dot. One of a family of four, and the family is one drawing turned: `direction-right` rotated a quarter turn at a time. ⚠️ NOT `move-up` and NOT `move-down`, and that refusal is the reason this entry is long. Those two are arrows, they are already in this set, and they mean the one thing these four must never be read as — REORDERING a block inside its parent's list, which their own entries say does not scroll a view. An arrow here that did not refuse them by name would be borrowed by one within a release. NOT `chevron`, which is disclosure and is turned to point AT the thing it opens. NOT `direction`, which is the row's LEADING glyph — the mark beside the label saying the row is about travel at all — where these four are the ANSWERS inside the control. Owner, 2026-09-11";
109
- readonly "direction-down": "the direction a marquee travels — the bar runs downwards, so its content walks towards the bottom edge. Worn by the BOTTOM cell of the `Scroll direction` control on the Scrolling Bar section, which is the shell's 3×3 placement grid with four live cells, each drawing an arrow in place of the grid's dot. One of a family of four, and the family is one drawing turned: `direction-right` rotated a quarter turn at a time. ⚠️ NOT `move-up` and NOT `move-down`, and that refusal is the reason this entry is long. Those two are arrows, they are already in this set, and they mean the one thing these four must never be read as — REORDERING a block inside its parent's list, which their own entries say does not scroll a view. An arrow here that did not refuse them by name would be borrowed by one within a release. NOT `chevron`, which is disclosure and is turned to point AT the thing it opens. NOT `direction`, which is the row's LEADING glyph — the mark beside the label saying the row is about travel at all — where these four are the ANSWERS inside the control. Owner, 2026-09-11";
110
- readonly "direction-left": "the direction a marquee travels — the bar runs leftwards, so its content walks towards the left edge. Worn by the LEFT cell of the `Scroll direction` control on the Scrolling Bar section, which is the shell's 3×3 placement grid with four live cells, each drawing an arrow in place of the grid's dot. One of a family of four, and the family is one drawing turned: `direction-right` rotated a quarter turn at a time. ⚠️ NOT `move-up` and NOT `move-down`, and that refusal is the reason this entry is long. Those two are arrows, they are already in this set, and they mean the one thing these four must never be read as — REORDERING a block inside its parent's list, which their own entries say does not scroll a view. An arrow here that did not refuse them by name would be borrowed by one within a release. NOT `chevron`, which is disclosure and is turned to point AT the thing it opens. NOT `direction`, which is the row's LEADING glyph — the mark beside the label saying the row is about travel at all — where these four are the ANSWERS inside the control. Owner, 2026-09-11";
111
- readonly "direction-up": "the direction a marquee travels — the bar runs upwards, so its content walks towards the top edge. Worn by the TOP cell of the `Scroll direction` control on the Scrolling Bar section, which is the shell's 3×3 placement grid with four live cells, each drawing an arrow in place of the grid's dot. One of a family of four, and the family is one drawing turned: `direction-right` rotated a quarter turn at a time. ⚠️ NOT `move-up` and NOT `move-down`, and that refusal is the reason this entry is long. Those two are arrows, they are already in this set, and they mean the one thing these four must never be read as — REORDERING a block inside its parent's list, which their own entries say does not scroll a view. An arrow here that did not refuse them by name would be borrowed by one within a release. NOT `chevron`, which is disclosure and is turned to point AT the thing it opens. NOT `direction`, which is the row's LEADING glyph — the mark beside the label saying the row is about travel at all — where these four are the ANSWERS inside the control. Owner, 2026-09-11";
40
+ readonly anchor: "anchor";
112
41
  readonly animation: "how a thing MOVES — the `Animation` settings bucket, the fourth and last tab of every section panel (`Content · Style · Layout · Animation`). Owner, 2026-09-11, asked for it himself: a FOURTH tab, like Wix's, so that every element can have a motion. He had considered it for a while before saying so, which is why it arrived as a decision rather than a question. The drawing is an object at the head of the path it has travelled, so it names MOVEMENT ITSELF rather than any one motion — the tab holds `Entrance` today (None / Fade / Rise / Scale) and the later moments are rows under it. NOT `play`, whose entry says only \"play\": a triangle is video PLAYBACK, which is the picture idea this tab was folded away from — `Media` merged into `Style` in the same breath as this tab arriving, so a tab drawn with a playback mark would point at the one bucket that had just stopped existing. NOT `rotate`, whose entry says only \"rotate\": it is the nearest curved drawing in the set and it means turning a thing in place, which is one motion out of many and not the idea of motion. NOT `direction`, which says WHICH WAY a thing travels — two same-way arrows heading a `Scroll direction` row (2026-09-11). A heading is a property OF a movement; this names that there is one at all. NOT `hover`, the pointer resting on a card: that is one MOMENT which can start a motion, never the motion. ⚠️ `play` and `rotate` are the standing trap here and the reason this entry is long: both were drawn for the 2026-08-20 settings-panel design, both are worn by NOTHING today, and both name their own shape — so nothing in either entry refuses a borrower looking for a motion mark.";
113
- readonly "block-section": "the SECTION block - one full-width band of an email that holds one to four columns of blocks. Worn by a Section row in the Layers tree and the Section tile. Decided 2026-09-17. NOT `layout` (the Layout settings tab) and NOT `columns` (three bars, a count of columns).";
42
+ readonly apps: "Used in shell src/shell/Desktop.tsx:1232";
43
+ readonly "archive-box": "archive-box";
44
+ readonly arrow: "One meaning; heroicons ships each direction as its own file.";
45
+ readonly "arrow-down": "arrow-down";
46
+ readonly "arrow-left": "arrow-left";
47
+ readonly "arrow-left-end-on-rectangle": "arrow-left-end-on-rectangle";
48
+ readonly "arrow-long-right": "arrow-long-right";
49
+ readonly "arrow-right": "arrow-right";
50
+ readonly "arrow-trending-down": "arrow-trending-down";
51
+ readonly "arrow-trending-up": "arrow-trending-up";
52
+ readonly "arrow-up": "arrow-up";
53
+ readonly "arrow-up-right": "arrow-up-right";
54
+ readonly "at-symbol": "at-symbol";
55
+ readonly attach: "attach";
56
+ readonly background: "the BAND A SECTION LAYS DOWN — the section's own background, the thing other boxes sit on top of. Worn by `Section background` and `Backdrop` in the admin portal's email editor (src/components/email/puckConfig.tsx:784 and :2398), both of which inherit from the theme and reset with 'Back to the theme color', and by the four section-band `Background` rows in efficient-shop's `backgroundField`. ⚠️ ITS ORIGINAL REASON IS DEAD AND IS KEPT HERE ONLY SO NOBODY REVIVES IT. This entry used to read \"the `Background` row of the section panel's `Colour` group (card 66313), whose choices are Page / Dark / Accent\". That picker is gone: card 66510 removed the choice, `ss.section-theme-picker` stopped the renderer reading the stored value, and the last 62 stored keys were cleared on 2026-09-03. A glyph outliving its stated reason is the `contrast` case — right on screen, dead why — and here it cost a real decision: PR #1456 ruled against this glyph because of that sentence and put `ground` on the four shop rows instead. ⚠️ NOT `ground`, which is the fill of the BOX the content sits in and covers this band — the two sit one line apart in the email editor's section panel, and that pair is the definition. The test is not what colour is set but WHAT SURFACE: a section's own band is `background`; a box drawn on top of it, at any level, is `ground`. Card 66315, 2026-09-01; reason replaced with a live one 2026-09-23";
57
+ readonly bag: "bag";
58
+ readonly bank: "Used in admin-portal src/pages/integrations/providerIcons.tsx:32";
59
+ readonly "bars-3-bottom-left": "bars-3-bottom-left";
60
+ readonly battery: "Used in shell src/shell/Desktop.tsx:1254";
61
+ readonly beaker: "beaker";
62
+ readonly bell: "Notification bell";
63
+ readonly "bell-alert": "bell-alert";
64
+ readonly "bell-plus": "bell-plus";
65
+ readonly billing: "Used in admin-portal src/shell-config/nav.tsx:108";
66
+ readonly "black-and-white": "colour taken out of a picture on purpose — the `Black and white` row of the three storefront photography sections and `Black and white logos` on the Logos strip. `doc/naming.md` N10.1 fixes those words and forbids `Grayscale` (owner ruling 2026-08-28), so the glyph is named for the idea the shop says out loud. ⚠️ A HALF-FILLED CIRCLE WAS DRAWN FIRST AND REJECTED: that is what `contrast` already is, and `contrast` heads the Theme tab. This is a PICTURE with one half ruled out, which is the thing the row does. Hatched rather than filled, because the house standard for this set is stroke on currentColor and no baked plate. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
67
+ readonly "block-badge": "the BADGE block - a small word pinned on a product, like NEW. Worn by a Badge row in the Layers tree and the Badge tile. Decided 2026-09-17. NOT `tag`, which the owner ruled is the `label` field row (2026-09-05), not a badge.";
68
+ readonly "block-banner": "the BANNER block - words laid over an image. Worn by a Banner row in the Layers tree and the Banner tile, in both editors. Decided 2026-09-17. NOT `image` (a picture alone) and NOT `button`.";
69
+ readonly "block-box": "the BOX block - a container that holds blocks (N8.1: `Box`). The campaign editor called it Group until Lewis renamed it Box, 2026-09-17. Worn by a Box row in the Layers tree and the Box tile, in both editors. NOT `direction`, whose arrows say which way a thing travels.";
70
+ readonly "block-button": "the BUTTON block - one call to action in an email. Worn by a Button row in the Layers tree and the Button tile. Decided 2026-09-17. NOT `button`, whose entry is the settings ROW for a button's own look - the row and the block are two ideas.";
114
71
  readonly "block-column": "one COLUMN of a Section block - the slot its blocks stand in. Worn by the `Column 1` / `Column 2` rows of the Layers tree. Decided 2026-09-17. NOT `columns`, which is three bars and answers HOW MANY columns, not which one.";
115
- readonly "block-text": "the TEXT block - a run of words a person types into an email. Worn by a Text row in the Layers tree and the Text tile. Decided 2026-09-17. NOT `text-lines`, which is WORN already by the body-text field row and the Content tab (efficient-shop FieldGlyph.tsx) - a block row wearing it would be one drawing with two meanings.";
72
+ readonly "block-coupon": "the COUPON CODE block - a ticket with the code each person gets. Worn by its Layers row and the Coupon code tile. Decided 2026-09-17. The dashed line is the tear line where the code sits.";
73
+ readonly "block-divider": "the DIVIDER block - a rule between things, in an email and on a website page. Worn by a Divider row in the Layers tree and the Divider tile, in both editors. Decided 2026-09-17. NOT `plus-minus` or any settings row: it is the block itself.";
74
+ readonly "block-footer": "the FOOTER block - the bottom of an email or of a website page, pinned last. Worn by the Footer row in the Layers tree, in both editors. Decided 2026-09-17. NOT `page` and NOT `layout`: it is the block, not the page or its settings.";
116
75
  readonly "block-heading": "the HEADING block - the legacy heading kind older campaigns still hold (GTS-8 has six). Worn by its Layers row. Decided 2026-09-17. NOT `type`, the T that marks text settings, and NOT `text-size`.";
117
- readonly "block-button": "the BUTTON block - one call to action in an email. Worn by a Button row in the Layers tree and the Button tile. Decided 2026-09-17. NOT `button`, whose entry is the settings ROW for a button's own look - the row and the block are two ideas.";
118
- readonly "block-badge": "the BADGE block - a small word pinned on a product, like NEW. Worn by a Badge row in the Layers tree and the Badge tile. Decided 2026-09-17. NOT `tag`, which the owner ruled is the `label` field row (2026-09-05), not a badge.";
76
+ readonly "block-image": "Image / photo";
119
77
  readonly "block-included-list": "the INCLUDED LIST block - model names on the left, prices on the right, row by row. Worn by its Layers row and the Included list tile. Decided 2026-09-17. NOT `list`, which is worn by the Header panel's menu item.";
120
78
  readonly "block-layered-images": "the LAYERED IMAGES block - one picture laid over another. Worn by its Layers row and the Layered images tile. Decided 2026-09-17. NOT `image` (one picture) and NOT `copy` (two pages, a clipboard action).";
121
- readonly "block-video": "the VIDEO block - a video shown in an email as a poster with a play mark. Worn by its Layers row and the Video tile. Decided 2026-09-17. NOT `play`: a bare triangle is playback, and this is the block that holds a video.";
122
79
  readonly "block-product": "the PRODUCT block - one catalogue product quoted in an email, its price and its buttons (the Add tile that said `Price` becomes `Product`, Lewis 2026-09-17). Drawn as a PACKAGE: the thing sold. Worn by its Layers row and tile. NOT `dollar`, worn by the price field row, NOT `tag`, the label row, and NOT `cart`, which is buying.. ⚠️ AND IT IS ALREADY WORN IN THE SHOP, which this entry did not say until now. `GalleryProductBinding`, `GalleryShowcaseSource`, `ProductPicker` and `SpecTableSource` each draw a `Product` row with this glyph, and the storefront config's own `Product` picker joins them. One catalogue product, whether it is quoted in an email or picked in a panel. Recorded on card [FIX] The 176 Settings Rows With No Picture, 2026-09-23, because pre-existing silent reuse is still silent reuse and is worse undocumented than documented";
123
- readonly "block-coupon": "the COUPON CODE block - a ticket with the code each person gets. Worn by its Layers row and the Coupon code tile. Decided 2026-09-17. The dashed line is the tear line where the code sits.";
124
- readonly "block-divider": "the DIVIDER block - a rule between things, in an email and on a website page. Worn by a Divider row in the Layers tree and the Divider tile, in both editors. Decided 2026-09-17. NOT `plus-minus` or any settings row: it is the block itself.";
125
- readonly "block-spacer": "the SPACER block - empty room between blocks, in an email and on a website page. Worn by a Spacer row in the Layers tree and the Spacer tile, in both editors. Decided 2026-09-17. NOT `gap` (the air between cards, a settings row) and NOT `padding-top`.";
126
- readonly "block-footer": "the FOOTER block - the bottom of an email or of a website page, pinned last. Worn by the Footer row in the Layers tree, in both editors. Decided 2026-09-17. NOT `page` and NOT `layout`: it is the block, not the page or its settings.";
127
- readonly "block-banner": "the BANNER block - words laid over an image. Worn by a Banner row in the Layers tree and the Banner tile, in both editors. Decided 2026-09-17. NOT `image` (a picture alone) and NOT `button`.";
80
+ readonly "block-product-title": "Used in admin-portal src/components/email/emailBlockIcons.tsx:145";
81
+ readonly "block-section": "the SECTION block - one full-width band of an email that holds one to four columns of blocks. Worn by a Section row in the Layers tree and the Section tile. Decided 2026-09-17. NOT `layout` (the Layout settings tab) and NOT `columns` (three bars, a count of columns).";
128
82
  readonly "block-social": "the SOCIAL block - links to whichever social platforms the business has, never one platform's mark. Worn by a Social row in the Layers tree and the Social tile, in both editors. Decided 2026-09-17. NOT `link` (one link) and NOT `share` actions.";
129
- readonly "block-box": "the BOX block - a container that holds blocks (N8.1: `Box`). The campaign editor called it Group until Lewis renamed it Box, 2026-09-17. Worn by a Box row in the Layers tree and the Box tile, in both editors. NOT `direction`, whose arrows say which way a thing travels.";
130
- readonly radius: "how ROUND a box's corners are — the `Corner radius` row of the campaign editor's Section and Column settings, and the image `Corner radius` row of Email styles. Decided 2026-09-17. A box with ONE strongly rounded corner. NOT `corner`, which is the storefront's `Which corners` row, and NOT `square`, which is the Borders row one line above.";
131
- readonly "column-widths": "how the width is SHARED between a section's columns — the `Column widths` row of the campaign editor's Section settings (a ratio at two columns, shares at three). Decided 2026-09-17. NOT `columns`, which answers HOW MANY, and NOT `block-column`, a block kind that never wears a settings row.. …and the storefront's `Positions` row, where a block in a grid says how many CELLS it spans (`Auto`, `1 position`, `2 positions`, …). A share and a span are two answers to ONE question — how much of a multi-column row this thing takes — and the arrow across the bars draws the question rather than either answer. ⚠️ NOT `columns`, which is a COUNT of them; the two are told apart at 16px by that arrow. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
132
- readonly "line-between": "a rule drawn BETWEEN two columns of content — the `Line between columns` row of the campaign editor's Section settings. Decided 2026-09-17. An upright rule with words on both sides. NOT `block-divider`, the Divider block kind, which is a flat line across.. …and the storefront's `Separator` row, which draws the same rule between ITEMS in a run rather than between columns. The picture is the rule itself, so what it divides is the row's business and not the glyph's. ⚠️ NOT `block-divider`, the divider BLOCK kind, which never heads a settings row — the refusal above stands. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
133
- readonly "column-gap": "the air between columns SIDE BY SIDE — the `Gap between columns` row of the campaign editor's Section settings. Decided 2026-09-17. The GAP is the subject: two short upright bars with an arrowed space between them, drawn like `width`'s arrows. NOT `gap`, which is the air between STACKED things (the `Space between items` row wears that), and NOT `block-column`, whose two boxes the first draft read as at 16px (GG, 2026-09-17).";
134
- readonly "v-align": "where content sits UP AND DOWN inside its box — the `Content position` row (top / middle / bottom) of the campaign editor's Column settings. Decided 2026-09-17. A block between a top and a bottom rule. NOT `padding-top`, which has one rule and says how much room is above.";
135
- readonly height: "how TALL a thing is — the `Min height` row of the campaign editor's Column settings. Decided 2026-09-17. `width` stood upright, so the pair reads as one family. NOT `width`, which is side to side.";
136
- readonly underline: "whether links are UNDERLINED — the `Underline links` row of the campaign editor's Email styles. Decided 2026-09-17. A U over a rule, the mark every word processor uses. NOT `type`, which is the text marker, the T. …AND THE `Underline` toolbar button of the campaign editor's Text block (final design, 2026-10-06): the mark that underlines the selected words. One idea, words with a rule under them, so the button wears this drawing rather than a second copy of it.";
137
- readonly "line-style": "WHICH DASH a rule is drawn with — the `Line style` row (Solid / Dashed / Dotted) of the campaign editor's Divider, and of every Border row. Decided 2026-09-17. Three rules stacked: solid, dashed, dotted, so the row's own choices are the drawing. NOT `block-divider`, the Divider BLOCK kind, which is one plain line and never wears a settings row.";
138
- readonly "full-width": "how far a picture REACHES — the `Width` row (Default / Full width) of the campaign editor's Image block. Decided 2026-09-17. A band running edge to edge between two end walls. NOT `width`, a plain measure with two arrowheads, which says how wide rather than how far it reaches.";
139
- readonly "copy-style": "take a component's LOOK so it can be put on another one — the `Copy style` row (⌥⌘C) of the right-click menu in both editors, the campaign editor's block menu and the website editor's node menu. Decided 2026-09-19 (card [ADD] Copy Style And Paste Style; GG: one meaning per glyph, so it is not `copy`). The brush is the style; the back sheet is `copy`'s own, so the pair reads as \"copy, but the look\". NOT `copy`, which takes the whole block, and NOT `styles`, which opens the site's Styles panel.";
140
- readonly "paste-style": "put a held look onto this component — the `Paste style from …` row (⌥⌘V) of the right-click menu in both editors. Decided 2026-09-19 (card [ADD] Copy Style And Paste Style). The other half of `copy-style`: the same brush, beside `paste`'s clipboard. NOT `paste`, which drops a whole block, and NOT `copy-style`, which takes the look rather than putting it down.";
141
- readonly finish: "THE FINISHES A PRODUCT IS OFFERED IN — the swatch row a shopper picks a colour from. Worn by the `Finishes` row of the `Show on a card` group, on the storefront editor's Product Listing and Product Grid sections, which says whether a card draws that row at all (card [ADD] Choose What A Product Card Shows, 2026-09-21). Three swatches, because the idea is a CHOICE between finishes and a single swatch is just a colour. ⚠️ IT IS NOT `drop`, which is one colour where the row is named for the colour itself; not `accent`, which is the site's ONE emphasis rather than a set to pick from; not `contrast`, which is the tone of a whole palette; and not `theme`. Those four all answer \"what colour is this thing\"; this answers \"which of these does the shopper choose\".. …and the Spec Table's `Finish` row, where a MERCHANT picks which of a linked product's finishes the table should describe. Same subject — the finishes a product is offered in — seen from the other side of the editor. ⚠️ AND DELIBERATELY NOT THE `Opening filter`'s `Finish`, one line away in the same vocabulary, which carries NO glyph at all by the owner's facet ruling of 2026-08-29: a facet's options grow out of the merchant's catalogue, so an icon-per-facet queue never empties. Two rows, one drawn and one bare, written here where somebody is standing rather than left to be discovered. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
142
- readonly "product-size": "THE SIZES A PRODUCT IS SOLD IN — the row of size chips on a product card, each one an orderable variant. Worn by the `Sizes` row of the `Show on a card` group, on the storefront editor's Product Listing and Product Grid sections, which says whether a card draws those chips (card [ADD] Choose What A Product Card Shows, 2026-09-21). Two upright boxes on one baseline, one plainly bigger, because the idea is SEVERAL sizes of one product; one box would be a shape and would claim nothing. The pair is drawn SIDE BY SIDE and never overlapping: overlapping rounded boxes are already `copy`, and the difference a reader must see here is the SIZE, which an overlap turns into \"two of them\" instead. Three ascending boxes were drawn and rejected the same way — beside `columns` they read as a bar chart. ⚠️ IT CARRIES THE `product-` QUALIFIER FOR A REASON, and `product-field` is the precedent. Bare `size` is a word three rows of this set already want: `text-size` is how big type is set, `width` and `height` are how big a section is. None of them is a product's own catalogue of sizes, and a bare name is what lets the next borrower attach a second meaning to one drawing. It is also not `square`, which is one box and a shape.";
83
+ readonly "block-spacer": "the SPACER block - empty room between blocks, in an email and on a website page. Worn by a Spacer row in the Layers tree and the Spacer tile, in both editors. Decided 2026-09-17. NOT `gap` (the air between cards, a settings row) and NOT `padding-top`.";
84
+ readonly "block-text": "the TEXT block - a run of words a person types into an email. Worn by a Text row in the Layers tree and the Text tile. Decided 2026-09-17. NOT `text-lines`, which is WORN already by the body-text field row and the Content tab (efficient-shop FieldGlyph.tsx) - a block row wearing it would be one drawing with two meanings.";
85
+ readonly "block-video": "the VIDEO block - a video shown in an email as a poster with a play mark. Worn by its Layers row and the Video tile. Decided 2026-09-17. NOT `play`: a bare triangle is playback, and this is the block that holds a video.";
86
+ readonly "blog-post": "one written article of a series — the `Blog posts` and `Blog post source` rows of the storefront's blog panels. An article laid out: a picture block, its headline beside it, the body beneath. ⚠️ NOT `page`, and that is the whole reason this drawing exists: `page` means a PAGE of the site and the Pages rail, one meaning by the owner's ruling of 2026-08-20, so a blog row wearing it would say a post is a page. NOT `note`, which is a short note ABOUT a thing rather than the thing, and NOT `text-lines`, which is body copy with no article around it. ⚠️ IT IS THE DENSEST DRAWING IN THE SET AND THAT IS DELIBERATE: the block-beside-lines arrangement is what separates it from `page` at 16px, and a simpler page-with-a-heading was drawn first and thrown away because it WAS `page` with an extra stroke. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22";
87
+ readonly bold: "the BOLD mark — the toolbar button that writes `**words**` (Strong, ⌘B) over the selection in the copy box's formatting bar. A capital B, the letter every word processor puts on this button. One idea: the mark, not a weight setting. Decided 2026-10-02.";
88
+ readonly bolt: "bolt";
89
+ readonly "book-open": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
90
+ readonly bookmark: "Used in admin-portal src/pages/Notepad.tsx:480";
91
+ readonly "bookmark-square": "bookmark-square";
92
+ readonly braces: "INSERT A MERGE TAG — a word that fills in for each reader ({{first_name}}, a coupon code). Worn by the Insert button the campaign designer puts in the 9th cell of the final text box's first toolbar row (`CopyBox` `lastTool`), which opens its list of tags. Two curly braces, the shape a merge tag is written in. Decided 2026-10-07. ⛔ NOT `code` or a pair of angle brackets: nothing here is code, and the braces are the tag's own spelling.";
143
93
  readonly breadcrumb: "the trail back up to where a shopper came from — the `Breadcrumb` row of the storefront Gallery panel's `Show / hide elements` group. NOT `sitemap`, which is the whole structure of a site rather than one path through it, and NOT `chevron`, which is a disclosure. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
144
- readonly tabs: "one strip of choices where only one panel shows at a time — the `Tab switcher` row of the storefront Gallery panel. TWO tabs with the selected one drawn TALLER is what makes it a switcher — a single raised tab over a panel is a folder, which is what the first drawing read as and why it was thrown away rather than a `layout` or a plain panel; nothing else in this set draws a selected-of-several. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
145
- readonly sort: "the order a SHOPPER puts a list in — the `Sort control` row of the Gallery panel and the `Sort + Clear all` row of the storefront's Catalog filter bar. ⚠️ NOT `list`, which is a list of entries the MERCHANT orders by hand (the campaign editor's `Phone order` and `Links` rows). The difference is who does the ordering, so the arrow is the whole point of this drawing. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
146
- readonly "spec-table": "the table of a product's measured facts on its own page — the `Spec table` row of the storefront Product hero's `Show in the buy box` group. A header band over two name/value columns. NOT `grid`, which is a layout of equal cells, and NOT `line-between`, which is one rule drawn between two columns of CONTENT. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
94
+ readonly briefcase: "Used in admin-portal src/pages/integrations/providerIcons.tsx:48";
95
+ readonly bug: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
96
+ readonly "bug-ant": "bug-ant";
97
+ readonly "building-library": "building-library";
98
+ readonly "building-office-2": "building-office-2";
99
+ readonly 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";
100
+ readonly "button-arrow": "the arrow a button carries after its words — the `Arrow` row of the storefront Button block. ⚠️ IT IS NEITHER OF THE TWO GLYPHS IT SITS BETWEEN. `button` is the settings row for a button's own look, and this row is one detail inside that; `direction-right` is which way a thing SCROLLS. Here the button and its arrow are drawn together because the row is about the pair. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
101
+ readonly calculator: "calculator";
102
+ readonly calendar: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
103
+ readonly "calendar-check": "calendar-check";
104
+ readonly camera: "camera";
105
+ readonly caption: "Used in storefront packages/web-builder/src/components/FieldGlyph.tsx:140";
147
106
  readonly car: "the shopper's own vehicle, which a product either fits or does not — the `Ask for the car first` row of the storefront Alloy wheels listing and the `Vehicle fitment` row of the Product hero. ⚠️ NOT `wheel`, which is the PRODUCT this shop sells; this is the thing the product has to fit, and a panel that drew both rows with `wheel` would say the two questions are the same question. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
107
+ readonly "card-payment": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
108
+ readonly caret: "Used in storefront packages/web-builder/src/components/storefront-editor.css:964";
109
+ readonly cart: "Cart";
110
+ readonly case: "letter case";
111
+ readonly "case-lower": "letter case ALL SMALL LETTERS — `aa`, the `Lowercase` option of the Letter case buttons on the campaign editor's Text block, and of the storefront part panel's Case strip. Two one-storey a's. Decided 2026-10-06.";
112
+ readonly "case-normal": "letter case LEFT AS TYPED — `Aa`, the `Normal` option of the Letter case buttons (Normal / Uppercase / Lowercase) on the campaign editor's Text block, and of the storefront part panel's Case strip. The plan calls it sentence case; it changes nothing the merchant typed. A capital A beside a one-storey a. Decided 2026-10-06.";
113
+ readonly "case-upper": "letter case ALL CAPITALS — `AA`, the `Uppercase` option of the Letter case buttons on the campaign editor's Text block, and of the storefront part panel's Case strip. Two capital A's. Decided 2026-10-06.";
114
+ readonly category: "the group of products a merchant files a thing under — the `Category` row of the storefront's Product picker, Gallery showcase, Spec table and Product hero source panels. A FOLDER: the drawer several products live in. ⚠️ NOT `tag`, which is the shell's luggage tag and already draws a storefront `Label` row — a tag is one name pinned on one thing, a category is the drawer it is filed in, and a panel that drew both with one picture would say those are the same question. NOT `layers`, which is the Layers panel and means stacking order, and NOT `grid`, which is a layout of equal cells. ALSO WORN BY THE `Collection` ROW, ON PURPOSE — see the note in that row's own panel: a collection is a curated group of products and a category is the catalogue's own, but both are \"the group this is filed under\", and four separate drawings for a collection were made and thrown away because none could be told from `grid`, `layers` or this folder at 16px. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22. …and the `Product type` row of a dynamic page template, which says which KIND of product (`alloy-wheel`, `tyre`) the template is written for. A category is a grouping the merchant invents and a product type is one the catalogue already has, but both answer “which drawer does this belong in”, which is what the folder draws. ⚠️ NOT `product-field`, whose sentence is “the words come from the catalogue record” — that names where a VALUE is read from, never which KIND a thing is. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
115
+ readonly chart: "chart";
116
+ readonly "chart-bar": "Used in admin-portal src/shell-config/nav.tsx:308";
117
+ readonly "chart-bar-square": "chart-bar-square";
118
+ readonly "chart-line": "Used in shell src/apps/Preview.tsx:1811";
119
+ readonly chat: "Chat";
120
+ readonly "chat-bubble-left-right": "chat-bubble-left-right";
121
+ readonly "chat-bubble-oval-left-ellipsis": "chat-bubble-oval-left-ellipsis";
122
+ readonly check: "Checkmark / success";
123
+ readonly "check-circle": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
124
+ readonly checkbox: "Used in shell src/apps/PomodoroTimer.tsx:642";
125
+ readonly chevron: "Disclosure — rotate for direction";
126
+ readonly "chevron-double": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
127
+ readonly "chevron-double-left": "chevron-double-left";
128
+ readonly "chevron-double-right": "chevron-double-right";
129
+ readonly "chevron-down": "chevron-down";
130
+ readonly "chevron-left": "chevron-left";
131
+ readonly "chevron-right": "chevron-right";
132
+ readonly "chevron-up": "chevron-up";
133
+ readonly "chevron-up-down": "Used in shell src/forms/Select.tsx:519";
134
+ readonly "circle-stack": "circle-stack";
135
+ readonly "clear-marks": "CLEAR MARKS — the toolbar button that takes every mark off the selection in the copy box's formatting bar (⌘⇧X), keeping the words and any link. A T with a small × at its foot: the text, with its marks crossed out. Decided 2026-10-02.";
136
+ readonly clipboard: "clipboard";
137
+ readonly "clipboard-check": "Used in admin-portal src/pages/todo/TodoList.tsx:949";
138
+ readonly "clipboard-document-list": "clipboard-document-list";
139
+ readonly "clipboard-list": "Used in admin-portal src/pages/Dashboard.tsx:135";
140
+ readonly clock: "clock";
141
+ readonly close: "Close / dismiss";
142
+ readonly "close-circle": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
143
+ readonly cloud: "cloud";
144
+ readonly "cloud-download": "cloud-download";
145
+ readonly code: "Used in shell src/shell/DevIndicator.tsx:17";
146
+ readonly "code-bracket": "code-bracket";
147
+ readonly collapse: "collapse";
148
+ readonly "collapse-all": "Used in easel src/screen/components/ScreenChrome.tsx:257";
149
+ readonly "column-gap": "the air between columns SIDE BY SIDE — the `Gap between columns` row of the campaign editor's Section settings. Decided 2026-09-17. The GAP is the subject: two short upright bars with an arrowed space between them, drawn like `width`'s arrows. NOT `gap`, which is the air between STACKED things (the `Space between items` row wears that), and NOT `block-column`, whose two boxes the first draft read as at 16px (GG, 2026-09-17).";
150
+ readonly "column-widths": "how the width is SHARED between a section's columns — the `Column widths` row of the campaign editor's Section settings (a ratio at two columns, shares at three). Decided 2026-09-17. NOT `columns`, which answers HOW MANY, and NOT `block-column`, a block kind that never wears a settings row.. …and the storefront's `Positions` row, where a block in a grid says how many CELLS it spans (`Auto`, `1 position`, `2 positions`, …). A share and a span are two answers to ONE question — how much of a multi-column row this thing takes — and the arrow across the bars draws the question rather than either answer. ⚠️ NOT `columns`, which is a COUNT of them; the two are told apart at 16px by that arrow. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
151
+ readonly columns: "columns";
152
+ readonly company: "company";
153
+ readonly compose: "compose";
154
+ readonly 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";
155
+ readonly cookie: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
156
+ readonly copied: "copied";
157
+ readonly copy: "put this block on the clipboard so it can be pasted somewhere else — the `Copy` row (⌘C) of the block right-click menu the owner approved 2026-08-31. NOT `copy-to-page`, whose meaning is already \"Copy to another page\" and which names a DESTINATION rather than the clipboard. NOT `duplicate`, which sits two rows below this one in the same menu and makes a second block in place at once without ever touching the clipboard. Card 66400.a, 2026-09-02";
158
+ readonly "copy-style": "take a component's LOOK so it can be put on another one — the `Copy style` row (⌥⌘C) of the right-click menu in both editors, the campaign editor's block menu and the website editor's node menu. Decided 2026-09-19 (card [ADD] Copy Style And Paste Style; GG: one meaning per glyph, so it is not `copy`). The brush is the style; the back sheet is `copy`'s own, so the pair reads as \"copy, but the look\". NOT `copy`, which takes the whole block, and NOT `styles`, which opens the site's Styles panel.";
159
+ readonly "copy-to-page": "Copy to another page";
160
+ readonly corner: "the `Which corners` row in a section's Style > Shape group, on the storefront editor";
161
+ readonly crop: "Used in shell src/apps/ImageAnnotator.tsx:573";
162
+ readonly "cube-transparent": "cube-transparent";
163
+ readonly cursor: "Used in shell src/apps/ImageAnnotator.tsx:11";
164
+ readonly "cursor-arrow-rays": "cursor-arrow-rays";
165
+ readonly "cursor-click": "Used in shell src/apps/Preview.tsx:1953";
166
+ readonly dashboard: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
167
+ readonly date: "Used in storefront packages/web-builder/src/components/FieldGlyph.tsx:129";
168
+ readonly desktop: "Desktop";
148
169
  readonly diagram: "a measured drawing of a product rather than a photograph of it — the `Dimension diagram` row of the storefront Spec table. The object ruled on two sides. ⚠️ A CIRCLE OVER A DIMENSION LINE WAS DRAWN FIRST AND THROWN AWAY: at 16px a circle above a wide horizontal line is a head and shoulders, and the glyph read as a person. NOT `image`, which is a photograph, and NOT `width` or `height`, which are single settings a merchant TYPES; this is a picture the shopper is shown. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
170
+ readonly direction: "which way this thing travels — the heading a merchant picks for a section's own motion. ⚠️ DRAWN FOR the `Scroll direction` row on the Scrolling Bar section AND NOT WORN BY IT. efficient-shop's `doc/naming.md` N10.1 gives the `Direction` idea a DASH in its Glyph column, and names `Direction` itself as one of the two reasons a row gets that dash: it is a MODIFIER, not a thing, and a modifier takes no leading glyph. So that row ships with no mark beside its label, and that is CORRECT rather than an omission — which is the whole reason this sentence is here, so the next reader does not file a bug against a row that is drawn the way it was decided. The marks a merchant actually presses are `direction-left`, `direction-right`, `direction-up` and `direction-down`, inside the control, and those four ARE worn. This glyph therefore has the same standing as `button`: drawn, correct, and not wired to a row. SS seat, 2026-09-11, recording that its own canvas drew a leading glyph in the field head and the naming table is what governs. ⚠️ AND IT NEVER HEADED THE HERO'S OVERLAY ROW, though it was briefed as if it did. The SS seat settled that row as a PLACEMENT on 2026-09-11: a lit cell there means where the DARK SITS, which is one of nine positions, which is what this shell's 3×3 grid already means at every one of its call sites — so that row draws the ordinary dots and wants nothing from this set. Both withdrawn claims are recorded rather than deleted, because a glyph that was once said to head a row is the first thing a later reader puts back. NOT `move-up` and NOT `move-down`, which REORDER a block inside its parent's list — card 66400.a's entries already say in writing that they do not scroll a view, which is exactly the thing this idea DOES say, so those are the first two glyphs a borrower will reach for and the two that must be refused hardest. NOT `chevron`, which is disclosure: its own meaning reads \"rotate for direction\", and that sentence is the one a borrower will read as permission — a chevron is turned to point AT the thing it opens, it never says which way anything travels. NOT `width`, which is a SPAN — how wide the content column may grow — and is double-headed for exactly that reason; a span names an extent, this names a heading. Owner, 2026-09-11";
171
+ readonly "direction-down": "the direction a marquee travels — the bar runs downwards, so its content walks towards the bottom edge. Worn by the BOTTOM cell of the `Scroll direction` control on the Scrolling Bar section, which is the shell's 3×3 placement grid with four live cells, each drawing an arrow in place of the grid's dot. One of a family of four, and the family is one drawing turned: `direction-right` rotated a quarter turn at a time. ⚠️ NOT `move-up` and NOT `move-down`, and that refusal is the reason this entry is long. Those two are arrows, they are already in this set, and they mean the one thing these four must never be read as — REORDERING a block inside its parent's list, which their own entries say does not scroll a view. An arrow here that did not refuse them by name would be borrowed by one within a release. NOT `chevron`, which is disclosure and is turned to point AT the thing it opens. NOT `direction`, which is the row's LEADING glyph — the mark beside the label saying the row is about travel at all — where these four are the ANSWERS inside the control. Owner, 2026-09-11";
172
+ readonly "direction-left": "the direction a marquee travels — the bar runs leftwards, so its content walks towards the left edge. Worn by the LEFT cell of the `Scroll direction` control on the Scrolling Bar section, which is the shell's 3×3 placement grid with four live cells, each drawing an arrow in place of the grid's dot. One of a family of four, and the family is one drawing turned: `direction-right` rotated a quarter turn at a time. ⚠️ NOT `move-up` and NOT `move-down`, and that refusal is the reason this entry is long. Those two are arrows, they are already in this set, and they mean the one thing these four must never be read as — REORDERING a block inside its parent's list, which their own entries say does not scroll a view. An arrow here that did not refuse them by name would be borrowed by one within a release. NOT `chevron`, which is disclosure and is turned to point AT the thing it opens. NOT `direction`, which is the row's LEADING glyph — the mark beside the label saying the row is about travel at all — where these four are the ANSWERS inside the control. Owner, 2026-09-11";
173
+ readonly "direction-right": "the direction a marquee travels — the bar runs rightwards, so its content walks towards the right edge. Worn by the RIGHT cell of the `Scroll direction` control on the Scrolling Bar section, which is the shell's 3×3 placement grid with four live cells, each drawing an arrow in place of the grid's dot. One of a family of four, and the family is one drawing turned: `direction-right` rotated a quarter turn at a time. ⚠️ NOT `move-up` and NOT `move-down`, and that refusal is the reason this entry is long. Those two are arrows, they are already in this set, and they mean the one thing these four must never be read as — REORDERING a block inside its parent's list, which their own entries say does not scroll a view. An arrow here that did not refuse them by name would be borrowed by one within a release. NOT `chevron`, which is disclosure and is turned to point AT the thing it opens. NOT `direction`, which is the row's LEADING glyph — the mark beside the label saying the row is about travel at all — where these four are the ANSWERS inside the control. Owner, 2026-09-11";
174
+ readonly "direction-up": "the direction a marquee travels — the bar runs upwards, so its content walks towards the top edge. Worn by the TOP cell of the `Scroll direction` control on the Scrolling Bar section, which is the shell's 3×3 placement grid with four live cells, each drawing an arrow in place of the grid's dot. One of a family of four, and the family is one drawing turned: `direction-right` rotated a quarter turn at a time. ⚠️ NOT `move-up` and NOT `move-down`, and that refusal is the reason this entry is long. Those two are arrows, they are already in this set, and they mean the one thing these four must never be read as — REORDERING a block inside its parent's list, which their own entries say does not scroll a view. An arrow here that did not refuse them by name would be borrowed by one within a release. NOT `chevron`, which is disclosure and is turned to point AT the thing it opens. NOT `direction`, which is the row's LEADING glyph — the mark beside the label saying the row is about travel at all — where these four are the ANSWERS inside the control. Owner, 2026-09-11";
175
+ readonly document: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
176
+ readonly "document-check": "document-check";
177
+ readonly "document-magnifying-glass": "document-magnifying-glass";
178
+ readonly dollar: "dollar";
179
+ readonly dot: "Used in admin-portal src/shell-config/nav.tsx:37";
180
+ readonly download: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
181
+ readonly drag: "Drag handle";
182
+ readonly drop: "a COLOUR, where the row is named for the colour itself rather than for the element it paints — worn by the `Divider` colour row of the campaign editor's Email styles and by its Divider block's `Color`. The set names a colour by its ELEMENT wherever it can (`text-color`, `ground`, `link`); this is the answer where there is no element to name.";
183
+ readonly duplicate: "Duplicate — owner pick 08-20, two-pages form";
184
+ readonly edit: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
185
+ readonly email: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
186
+ readonly emphasis: "the EMPHASIS mark — the toolbar button that writes `==words==` over the selection in the copy box's formatting bar: the phrase painted in the brand accent colour. A diamond, the ◆ the bar has shown for this mark since the campaign designer first drew it. Decided 2026-10-02. (retired by Lewis 2026-10-10; goes when nothing draws it)";
187
+ readonly eraser: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
188
+ readonly error: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
189
+ readonly expand: "expand";
190
+ readonly external: "Leaves this surface";
191
+ readonly eye: "Show";
192
+ readonly "eye-off": "Hide";
193
+ readonly "face-smile": "face-smile";
194
+ readonly filter: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
195
+ readonly finish: "THE FINISHES A PRODUCT IS OFFERED IN — the swatch row a shopper picks a colour from. Worn by the `Finishes` row of the `Show on a card` group, on the storefront editor's Product Listing and Product Grid sections, which says whether a card draws that row at all (card [ADD] Choose What A Product Card Shows, 2026-09-21). Three swatches, because the idea is a CHOICE between finishes and a single swatch is just a colour. ⚠️ IT IS NOT `drop`, which is one colour where the row is named for the colour itself; not `accent`, which is the site's ONE emphasis rather than a set to pick from; not `contrast`, which is the tone of a whole palette; and not `theme`. Those four all answer \"what colour is this thing\"; this answers \"which of these does the shopper choose\".. …and the Spec Table's `Finish` row, where a MERCHANT picks which of a linked product's finishes the table should describe. Same subject — the finishes a product is offered in — seen from the other side of the editor. ⚠️ AND DELIBERATELY NOT THE `Opening filter`'s `Finish`, one line away in the same vocabulary, which carries NO glyph at all by the owner's facet ruling of 2026-08-29: a facet's options grow out of the merchant's catalogue, so an icon-per-facet queue never empties. Two rows, one drawn and one bare, written here where somebody is standing rather than left to be discovered. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
196
+ readonly fire: "fire";
197
+ readonly flag: "flag";
198
+ readonly folder: "folder";
199
+ readonly "folder-open": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
200
+ readonly "folder-plus": "folder-plus";
201
+ readonly forward: "Used in admin-portal src/pages/mail/MessageCard.tsx:182";
202
+ readonly "full-width": "how far a picture REACHES — the `Width` row (Default / Full width) of the campaign editor's Image block. Decided 2026-09-17. A band running edge to edge between two end walls. NOT `width`, a plain measure with two arrowheads, which says how wide rather than how far it reaches.";
203
+ readonly gap: "the air between two cards — the `Card gap` row on the storefront's Site styles ▸ Basics tab, beside `Corners`. …and the Box's block-spacing row, which is the same air one tier down: the room between the BLOCKS a merchant stacks inside a box rather than between two cards in a grid. One idea — the space between siblings — at two scales, which is why one drawing serves both rather than the shop drawing a second. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23 …AND THE TICKER'S `Join` ROW, which makes THREE SCALES for one idea: between two cards, between the blocks inside a box, and between a section and the one above or below it. ⚠️ AND `Join` SETS THE SAME THING BY CLOSING IT. `Nothing` / `Section above` / `Section below` picks which seam disappears, which reads at first glance like a different question — it is not. The space between siblings is what is being set either way, and zero is one of its answers. Written down because somebody will otherwise read `Join` as adjacency or as a border and reach for another drawing. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
204
+ readonly gem: "Used in admin-portal src/take/ConsentGate.tsx:297";
205
+ readonly gift: "gift";
206
+ readonly globe: "a globe — the country / region selector row";
207
+ readonly grid: "Grid";
208
+ readonly ground: "the fill of the BOX THE CONTENT SITS IN — the ground under the content, at whatever level the box is. Worn at every level today, and they are one idea, not several: 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); in the admin portal's email editor, `Card color` (puckConfig.tsx:684), `Content background` (:790, hinted \"Covers the section color, but not its image.\"), `Email body` (:2404), a button's `Fill color` and `Zebra rows`, and `Column background` (ColumnLookControls.tsx:193, a SwatchRow); and in the shop, `Image background`, the fill of the well behind a product card's picture — a box inside a card inside a section. `Card color` is the closest precedent for that last one: a CARD's own fill already wears this glyph in shipped code. Level is not meaning: a new glyph per level would name WHERE the box is rather than WHAT the row sets, which is the `drop` / `styles` fault in this file's own rule. ⚠️ NOT `background`, AND THE REASON PRINTED HERE UNTIL 2026-09-23 WAS A GHOST. It said `background` meant the section panel's Page / Dark / Accent picker — but card 66510 removed that choice, `ss.section-theme-picker` stopped the renderer reading it, and [FIX] Section Theme Colours cleared the last 62 stored keys on 2026-09-03. Nothing had worn that meaning for three weeks. Ruling against a control that no longer exists is how the same wrong decision gets made twice, and it was: PR #1456 read that sentence and put THIS glyph on the four section-band `Background` rows. The live distinction is in efficient-admin-portal's email editor, one line apart under a comment citing this file (src/components/email/puckConfig.tsx:781): `Section background` wears `background`, `Content background` wears `ground`, and the hint says why — \"Covers the section color, but not its image.\" `background` is the band a section lays down; `ground` is the fill of the box that covers it. 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 `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; wearers and the ghost corrected 2026-09-23";
209
+ readonly hand: "Used in admin-portal src/pages/todo/TodoList.tsx:956";
210
+ readonly "hand-thumb-up": "hand-thumb-up";
211
+ readonly hash: "a NUMBER or its unit — worn by the `Measure length in` row (px / %) of the campaign editor's Divider, which picks what the length beside it is counted in.";
149
212
  readonly headquarters: "the one office of several that is the main one — the `HQ` row of each office in the storefront Footprint section. The star is what separates it from a plain building: this glyph never means \"an office\", it means \"THE office\". NOT `globe`, which is the country / region selector. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
150
- readonly "black-and-white": "colour taken out of a picture on purpose — the `Black and white` row of the three storefront photography sections and `Black and white logos` on the Logos strip. `doc/naming.md` N10.1 fixes those words and forbids `Grayscale` (owner ruling 2026-08-28), so the glyph is named for the idea the shop says out loud. ⚠️ A HALF-FILLED CIRCLE WAS DRAWN FIRST AND REJECTED: that is what `contrast` already is, and `contrast` heads the Theme tab. This is a PICTURE with one half ruled out, which is the thing the row does. Hatched rather than filled, because the house standard for this set is stroke on currentColor and no baked plate. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
151
- readonly "button-arrow": "the arrow a button carries after its words — the `Arrow` row of the storefront Button block. ⚠️ IT IS NEITHER OF THE TWO GLYPHS IT SITS BETWEEN. `button` is the settings row for a button's own look, and this row is one detail inside that; `direction-right` is which way a thing SCROLLS. Here the button and its arrow are drawn together because the row is about the pair. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
152
- readonly sticky: "a thing that stays put while the page scrolls under it — the `Stick under header` row of the storefront Category bar and the `Scroll-over` row of Intro bleed. The bar is pinned and the content moves away from it, which is why the arrow points DOWN and away rather than up. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
153
- readonly category: "the group of products a merchant files a thing under — the `Category` row of the storefront's Product picker, Gallery showcase, Spec table and Product hero source panels. A FOLDER: the drawer several products live in. ⚠️ NOT `tag`, which is the shell's luggage tag and already draws a storefront `Label` row — a tag is one name pinned on one thing, a category is the drawer it is filed in, and a panel that drew both with one picture would say those are the same question. NOT `layers`, which is the Layers panel and means stacking order, and NOT `grid`, which is a layout of equal cells. ALSO WORN BY THE `Collection` ROW, ON PURPOSE — see the note in that row's own panel: a collection is a curated group of products and a category is the catalogue's own, but both are \"the group this is filed under\", and four separate drawings for a collection were made and thrown away because none could be told from `grid`, `layers` or this folder at 16px. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22. …and the `Product type` row of a dynamic page template, which says which KIND of product (`alloy-wheel`, `tyre`) the template is written for. A category is a grouping the merchant invents and a product type is one the catalogue already has, but both answer “which drawer does this belong in”, which is what the folder draws. ⚠️ NOT `product-field`, whose sentence is “the words come from the catalogue record” — that names where a VALUE is read from, never which KIND a thing is. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
154
- readonly "blog-post": "one written article of a series — the `Blog posts` and `Blog post source` rows of the storefront's blog panels. An article laid out: a picture block, its headline beside it, the body beneath. ⚠️ NOT `page`, and that is the whole reason this drawing exists: `page` means a PAGE of the site and the Pages rail, one meaning by the owner's ruling of 2026-08-20, so a blog row wearing it would say a post is a page. NOT `note`, which is a short note ABOUT a thing rather than the thing, and NOT `text-lines`, which is body copy with no article around it. ⚠️ IT IS THE DENSEST DRAWING IN THE SET AND THAT IS DELIBERATE: the block-beside-lines arrangement is what separates it from `page` at 16px, and a simpler page-with-a-heading was drawn first and thrown away because it WAS `page` with an extra stroke. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22";
155
- readonly menu: "a navigation menu the merchant builds — the `Menu` row of the storefront's Menu picker. The bar a shopper reads along, with the menu dropped open beneath it. ⚠️ NOT `list`, which is a list of entries a merchant orders by hand (the campaign editor's `Phone order` row): every menu is a list, but not every list is the thing a shopper navigates by, and the bar is what says which one this is. NOT `sitemap`, which is the whole structure of a site rather than one menu in it, and NOT `tabs`, which is one strip where only one panel shows at a time. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22";
156
- readonly placement: "WHERE A THING SITS inside its box, in two dimensions — the `Placement`, `Content position` and `Text position` rows of the storefront editor, and the Hero's `Overlay position`. Each is a 3×3 pad, and the drawing is one square resting in a corner of a frame. ⚠️ NOT `v-align`, and this is the whole reason the drawing exists: that entry says it means \"where content sits UP AND DOWN inside its box\" — one dimension, top / middle / bottom. A 3×3 pad is two, and borrowing a one-dimensional picture for it would be a second meaning on one drawing. NOT `grid`, which is a layout of equal cells, and NOT `columns`. ⚠️ `layout` IS THE CLOSE ONE, and the distinction is that `layout`'s inner marks TOUCH the frame — a header band across it, a divider down it — while this square FLOATS in a corner, because floating is what says it could sit somewhere else. They can appear in one panel, since a `Placement` row lives inside the Layout bucket. If this square is ever redrawn touching an edge it becomes `layout` and should go. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22";
213
+ readonly heart: "heart";
214
+ readonly height: "how TALL a thing is — the `Min height` row of the campaign editor's Column settings. Decided 2026-09-17. `width` stood upright, so the pair reads as one family. NOT `width`, which is side to side.";
215
+ readonly help: "help";
216
+ readonly "help-off": "Used in shell src/apps/Browser.tsx:450";
217
+ readonly hexagon: "Used in shell .design-sync/previews/PageHeader.tsx:8";
218
+ readonly home: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
219
+ readonly hover: "the pointer resting on a card — the `Hover effect` row on the storefront's Site styles ▸ Basics tab, beside `Corners`";
220
+ readonly identification: "identification";
221
+ readonly image: "Image / photo";
222
+ readonly "image-off": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
223
+ readonly images: "images";
224
+ readonly inbox: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
225
+ readonly info: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
226
+ readonly italic: "the ITALIC mark — the toolbar button that writes `_words_` (⌘I) over the selection in the copy box's formatting bar. A slanted capital I with its two serifs, the button every word processor draws. Decided 2026-10-02.";
227
+ readonly key: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
228
+ readonly layers: "Layers";
229
+ readonly layout: "page layout — the Layout settings bucket, not columns. …AND THE ROWS THAT ASK IT DIRECTLY: the `Layout`, `Arrangement` and `Card layout` rows of the storefront editor, which pick which arrangement a section draws. The bucket and the row are one idea at two scales — the bucket holds the questions about how a section is laid out, and these rows are that question asked directly. ⚠️ STILL NOT `columns`, which is a COUNT of them, and still not `grid`, which is equal cells: the distinction the sentence above draws is unchanged. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
230
+ readonly "letter-spacing": "letter spacing";
231
+ readonly lightbulb: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
232
+ readonly "line-between": "a rule drawn BETWEEN two columns of content — the `Line between columns` row of the campaign editor's Section settings. Decided 2026-09-17. An upright rule with words on both sides. NOT `block-divider`, the Divider block kind, which is a flat line across.. …and the storefront's `Separator` row, which draws the same rule between ITEMS in a run rather than between columns. The picture is the rule itself, so what it divides is the row's business and not the glyph's. ⚠️ NOT `block-divider`, the divider BLOCK kind, which never heads a settings row — the refusal above stands. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
233
+ readonly "line-style": "WHICH DASH a rule is drawn with — the `Line style` row (Solid / Dashed / Dotted) of the campaign editor's Divider, and of every Border row. Decided 2026-09-17. Three rules stacked: solid, dashed, dotted, so the row's own choices are the drawing. NOT `block-divider`, the Divider BLOCK kind, which is one plain line and never wears a settings row.";
234
+ readonly link: "link";
235
+ readonly "link-slash": "link-slash";
236
+ readonly list: "a list of entries a merchant orders — worn by the `Phone order` row of the campaign editor's Section settings and by the `Links` row of its Social block. …AND THE `Bulleted list` toolbar button of the campaign editor's Text block, and the `Bulleted list` item of its No list / Bulleted list / Numbered list menu (final design, 2026-10-06): lines set as a list. `numbered-list` is its pair, with figures in place of the dots.";
157
237
  readonly location: "A POINT ON THE EARTH, given as numbers — the `Coordinates`, `Latitude` and `Longitude` rows of the storefront's location editor, where a merchant types or fetches a place's figures. A map pin. ⚠️ NOT `drop`, which is the nearest shape in the set and means A COLOUR: that droplet's point is at the TOP and it is solid, this pin's point is at the BOTTOM and it is pierced. Rendered side by side at 16px before this was kept, because a teardrop beside a teardrop was the obvious way to lose. NOT `globe`, which is the country / region selector — a globe is which MARKET, a pin is which SPOT. NOT `headquarters`, which is one office of several and is a building with a star. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22";
158
- readonly trigger: "WHAT MAKES THIS HAPPEN — the event a merchant picks to start something, not the thing that is started. Drawn for the `Trigger` row of the storefront's Subscribe popup, whose three answers are `Delay`, `Scroll` and `Exit`: a wait, a scroll position and a pointer leaving the page. Nothing they share is a picture, which is exactly why none of the five shipped candidates could take the row. ⚠️ NOT `clock`, and this is the drawing this one exists to replace: a clock face says TIME, which is true of `Delay` and FALSE of the other two — it shipped on that row in efficient-shop #1468 and is corrected in the card that adds this. ⚠️ NOT `hover`, a pointer resting on a card: that names the MOUSE specifically, and neither a scroll position nor an exit is a hover. ⚠️ NOT `animation`, an object at the head of the path it has travelled: that names MOVEMENT, and a trigger is not a motion — it is the moment one starts. ⚠️ NOT `sticky`, a bar with content moving away beneath it, which names a thing that STAYS PUT while the page scrolls; `Scroll` here is when the reader reaches a point, never what the bar does. ⚠️ NOT `play`, a triangle, which is video playback. The bolt is the one shape in this set that means a thing FIRING rather than a thing being or moving, and it is the only zigzag in 138 drawings, so it cannot be misread for a neighbour at 16px. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
159
- readonly wrap: "WHETHER A ROW'S ITEMS FLOW ONTO A NEW LINE when they run out of room — the `Wrap` row of a Box's layout (`Wrap` / `No wrap`). The drawing is the RESULT rather than the motion: three items on the first line and one that has fallen to the second, because an uneven second row is the only thing that says wrapping happened. ⚠️ NOT `revert`, and this is the drawing this one was nearly drawn as. A line running right, turning down and coming back left with an arrowhead is the obvious picture for `wrap` and it is ALREADY `revert` — the two would have been the same drawing at 16px. Caught on the sheet before it was drawn, which is what the sheet is for. ⚠️ NOT `direction`, two same-way arrows, which names WHICH WAY a container's children run — and which is itself ruled to head no row (doc/naming.md N10.1 calls it a modifier). Wrapping is not a heading. ⚠️ NOT `columns`, three upright bars, which is a COUNT of columns, and NOT `grid`, which is equal cells: both draw an even arrangement, and unevenness is the whole of what this one says. ⚠️ NOT `line-between`, an upright rule with content either side, which divides two columns rather than describing how one row behaves. ⚠️ `grid` IS THE CLOSE ONE, AND THIS IS WHY IT IS ALLOWED TO LIVE. Both are a cluster of small squares, and at 16px what separates them is SILHOUETTE: this drawing is ASYMMETRIC — three across the top, one at the bottom LEFT, so it is wider on top and visibly short on the bottom right — against `grid`'s even 2×2. That difference survives the size; it was checked at 16px and again at 6× before it was kept, and it was handed up as a coin-flip rather than decided quietly. GG looked at both sheets and approved it, 2026-09-23. ⚠️ ITS KILL CONDITION, in the shape the bolt carries: if `grid` is ever redrawn asymmetric, or if a SECOND cluster-of-squares drawing is added to this set, THIS is the one to question first. Counting squares is a weaker way to be told apart than a shape nothing else has, and this drawing knows it. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
160
- readonly state: "WHICH OF SEVERAL STATES a thing is in, where no one of them is the good one — the `State` row of a Mockup's result rows (`Match / done`, `In progress`, `No match`). A ring with its centre filled: one position chosen out of several, which is the idea, rather than any particular verdict. ⚠️ NOT `check`, and refusing it is the whole reason this entry exists. `check` means “checkmark / success”, which is TRUE OF ONE ANSWER IN THREE and false of the other two — a row wearing it would say `done` while a merchant is looking at `No match`. That is the same defect `clock` had on the `Trigger` row, found the same way and written here so the next person does not reach for `check` again. ⚠️ NOT `warning`, a triangle, which is wrong for the success case for the mirror-image reason. ⚠️ NOT `hash`, which is a NUMBER or its unit. ⚠️ NOT `contrast`, a circle with one HALF filled: that is a tone, and its hard straight edge is what tells the two apart at 16px — this one's fill is a centred dot. NOT `eye`, whose pupil sits inside a lens rather than a circle, and NOT `drag`, which is six dots in two columns. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
238
+ readonly lock: "Locked";
239
+ readonly logo: "a brand mark — the Header panel's Logo tab";
240
+ readonly logout: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
241
+ readonly map: "map";
242
+ readonly media: "Media";
243
+ readonly megaphone: "megaphone";
244
+ readonly menu: "a navigation menu the merchant builds — the `Menu` row of the storefront's Menu picker. The bar a shopper reads along, with the menu dropped open beneath it. ⚠️ NOT `list`, which is a list of entries a merchant orders by hand (the campaign editor's `Phone order` row): every menu is a list, but not every list is the thing a shopper navigates by, and the bar is what says which one this is. NOT `sitemap`, which is the whole structure of a site rather than one menu in it, and NOT `tabs`, which is one strip where only one panel shows at a time. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22";
245
+ readonly meta: "THE SMALL LINE OF FACTS ALONG THE BOTTOM of an item — a date, a code, a deadline, run together on one line. Worn by a settings row that holds that line. One full rule with three SHORT runs under it: the gaps are the drawing, because the gaps are what make it read as several facts instead of a paragraph. Decided 2026-09-25.";
246
+ readonly microphone: "microphone";
247
+ readonly money: "money";
248
+ readonly moon: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
249
+ readonly more: "more";
250
+ readonly "more-vertical": "Used in shell .design-sync/previews/IconButton.tsx:8";
251
+ 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";
252
+ 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";
253
+ readonly newspaper: "newspaper";
254
+ readonly "no-symbol": "no-symbol";
255
+ readonly note: "a short note ABOUT a thing rather than the thing — worn by the `Alt text` row of the campaign editor's Image block, the words a reader gets when the picture does not load.";
256
+ readonly nudge: "A FINE ADJUSTMENT FROM WHERE A THING ALREADY SITS — the storefront hero group's `Sideways` and `Up and down` rows, each a ±px offset. ⚠️ ONE DRAWING FOR BOTH ROWS, deliberately. They are one idea on two axes, and the ROW'S OWN LABEL says which axis — `Sideways` and `Up and down` are as plain as the panel gets. The padding family splits by side because WHICH EDGE changes what the setting means; an axis does not change what a nudge is. ⚠️ NOT `placement`, and refusing it is the point: that entry is WHERE A THING SITS among NINE POSITIONS in a 3×3 pad, and a nudge is not one of nine — it is a small move from wherever the thing already is. ⚠️ NOT `width` or `height`, which are a line with arrowheads at both ends: those MEASURE an extent, this MOVES a thing. NOT `direction-up`/`-down`/`-left`/`-right`, single arrows that say which way a marquee TRAVELS. NOT `drag`, six dots, which is a handle a person grabs. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
257
+ readonly "numbered-list": "a NUMBERED LIST — the lines the caret is on, written as 1. 2. 3. Worn by the `Numbered list` toolbar button of the campaign editor's Text block and the `Numbered list` item of its No list / Bulleted list / Numbered list menu. Three rules with 1, 2, 3 down the left. Decided 2026-10-06.";
258
+ readonly opacity: "opacity";
259
+ readonly "own-text": "the words are the merchant's own, not the product's — the `My own text` segment of the Card text control";
260
+ readonly package: "package";
261
+ readonly "package-open": "package-open";
262
+ readonly "padding-bottom": "padding bottom";
161
263
  readonly "padding-left": "THE ROOM ON ONE SIDE — THE LEFT — of a box, worn by the storefront's `Padding left` row and by the folded `Left` row of a section's padding group. Drawn in `padding-top`'s grammar exactly: a rule at that edge, and the box held off it. ⚠️ IT EXISTS BECAUSE THE FAMILY WAS ASYMMETRIC, which is the whole finding. The set drew top and bottom as SINGLE sides and left/right only as a PAIR, so a row about one horizontal side had nothing true to wear and the obvious reach was `padding-x`. ⚠️ NOT `padding-x`, and bending that entry was refused on purpose: its sentence is “the room a PAGE leaves at its left and right edge — the `Side space` row”, which is a different thing at a different scale, and it refuses other uses by name. An entry that has been stretched twice stops meaning anything. GG, 2026-09-23. Card [FIX] The 176 Settings Rows With No Picture";
162
264
  readonly "padding-right": "THE ROOM ON ONE SIDE — THE RIGHT — of a box. The mirror of `padding-left`, and it lands with it so the four sides are finally one family: top, bottom, left, right, each a rule at its own edge with the box held off it. ⚠️ NOT `padding-x`, which is the PAGE's side space — see `padding-left` for why that entry was not stretched. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
265
+ readonly "padding-top": "padding top";
266
+ readonly "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";
163
267
  readonly "padding-y": "THE ROOM ABOVE AND BELOW a box, as ONE setting — the storefront's `Space above and below` row. ⚠️ IT RETIRES A WORKAROUND THAT WAS ALREADY SHIPPING, KNOWINGLY. `efficient-shop`'s `components/PartSettingsPanel.tsx` FIELD_ICONS carries this comment against its own padding row: “The set draws `padding-top` and `padding-bottom` and has no glyph for the PAIR, which is what this one row moves. `PaddingTopIcon` is the nearer of the two … Flagged to the seat rather than solved quietly.” That flag is what this drawing answers; that row should move to this glyph. ⚠️ NOT `v-align`, AND THE PROPORTIONS ARE THE WHOLE REASON IT CAN LIVE. `v-align` is ALREADY two full-width rules with a narrow box between them — the obvious drawing for this idea is already taken, and drawing it again would have been a duplicate. This one INVERTS that: SHORT ticks and a WIDE box. `v-align` says which of three positions the content sits in; this says how much room is left. ⚠️ ITS KILL CONDITION follows from that: if `v-align` is ever redrawn with a wide box, or a second short-tick-and-wide-box drawing is added, THIS is the one to question first — it survives on proportion rather than on a shape nothing else has. ⚠️ NOT `gap`, which is the space BETWEEN siblings at three scales; this is room INSIDE one box. NOT `layout`, a frame with a band across it. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
164
- readonly nudge: "A FINE ADJUSTMENT FROM WHERE A THING ALREADY SITS — the storefront hero group's `Sideways` and `Up and down` rows, each a ±px offset. ⚠️ ONE DRAWING FOR BOTH ROWS, deliberately. They are one idea on two axes, and the ROW'S OWN LABEL says which axis — `Sideways` and `Up and down` are as plain as the panel gets. The padding family splits by side because WHICH EDGE changes what the setting means; an axis does not change what a nudge is. ⚠️ NOT `placement`, and refusing it is the point: that entry is WHERE A THING SITS among NINE POSITIONS in a 3×3 pad, and a nudge is not one of nine — it is a small move from wherever the thing already is. ⚠️ NOT `width` or `height`, which are a line with arrowheads at both ends: those MEASURE an extent, this MOVES a thing. NOT `direction-up`/`-down`/`-left`/`-right`, single arrows that say which way a marquee TRAVELS. NOT `drag`, six dots, which is a handle a person grabs. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
268
+ readonly page: "Page AND the Pages rail — owner ruling 08-20, one meaning";
269
+ readonly "paint-brush": "paint-brush";
270
+ readonly "panel-left": "the LEFT SIDE PANEL itself — worn by the Hide panel button at the end of a left panel's head (`MediaPanelHead`, both editors' SidePanelHeads) and by the Show panel button in the strip a hidden left panel leaves. One control, so one drawing: hiding and showing the panel wear the same glyph. A frame with its left column ruled off. ⛔ NOT an ✕: an ✕ closes a dialog, and a panel head has none (owner, 2026-10-04).";
271
+ readonly "panel-right": "the RIGHT SIDE PANEL itself — the twin of `panel-left` for the settings panel: its head's Hide panel button and the strip a hidden right panel leaves. A frame with its right column ruled off.";
272
+ readonly "paragraph-spacing": "PARAGRAPH SPACING — the room between one paragraph and the next, in px. Worn by the fourth value of the campaign editor's Text block number row (`Paragraph spacing`, beside Font size, Line spacing and Letter spacing). Two short paragraphs with a small upright mark in the room between them. Decided 2026-10-06.";
273
+ readonly parcel: "package";
274
+ readonly paste: "drop whatever is on the clipboard into here — the `Paste` row (⌘V) of the block right-click menu the owner approved 2026-08-31. The other half of `copy`, and the only entry in the set that means the clipboard's CONTENTS coming back out. NOT `add`, which opens a chooser for a new block rather than placing one already taken. Card 66400.a, 2026-09-02";
275
+ readonly "paste-style": "put a held look onto this component — the `Paste style from …` row (⌥⌘V) of the right-click menu in both editors. Decided 2026-09-19 (card [ADD] Copy Style And Paste Style). The other half of `copy-style`: the same brush, beside `paste`'s clipboard. NOT `paste`, which drops a whole block, and NOT `copy-style`, which takes the look rather than putting it down.";
276
+ readonly pause: "pause";
277
+ readonly pen: "Used in shell src/apps/ImageAnnotator.tsx:567";
278
+ readonly people: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
279
+ readonly percent: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
280
+ readonly phone: "Phone";
281
+ readonly "phone-hidden": "Used in admin-portal src/components/email/emailPhoneMarks.tsx:22";
282
+ readonly placement: "WHERE A THING SITS inside its box, in two dimensions — the `Placement`, `Content position` and `Text position` rows of the storefront editor, and the Hero's `Overlay position`. Each is a 3×3 pad, and the drawing is one square resting in a corner of a frame. ⚠️ NOT `v-align`, and this is the whole reason the drawing exists: that entry says it means \"where content sits UP AND DOWN inside its box\" — one dimension, top / middle / bottom. A 3×3 pad is two, and borrowing a one-dimensional picture for it would be a second meaning on one drawing. NOT `grid`, which is a layout of equal cells, and NOT `columns`. ⚠️ `layout` IS THE CLOSE ONE, and the distinction is that `layout`'s inner marks TOUCH the frame — a header band across it, a divider down it — while this square FLOATS in a corner, because floating is what says it could sit somewhere else. They can appear in one panel, since a `Placement` row lives inside the Layout bucket. If this square is ever redrawn touching an edge it becomes `layout` and should go. Card [FIX] The 28 Hand-Rolled Settings Rows, 2026-09-22";
283
+ readonly play: "play";
284
+ readonly "plus-minus": "plus minus";
285
+ readonly power: "power";
286
+ readonly "presentation-chart-bar": "presentation-chart-bar";
287
+ readonly print: "print";
288
+ readonly product: "product";
289
+ readonly "product-field": "the words come from the catalogue record — the `From product` segment of the Card text control";
290
+ readonly "product-size": "THE SIZES A PRODUCT IS SOLD IN — the row of size chips on a product card, each one an orderable variant. Worn by the `Sizes` row of the `Show on a card` group, on the storefront editor's Product Listing and Product Grid sections, which says whether a card draws those chips (card [ADD] Choose What A Product Card Shows, 2026-09-21). Two upright boxes on one baseline, one plainly bigger, because the idea is SEVERAL sizes of one product; one box would be a shape and would claim nothing. The pair is drawn SIDE BY SIDE and never overlapping: overlapping rounded boxes are already `copy`, and the difference a reader must see here is the SIZE, which an overlap turns into \"two of them\" instead. Three ascending boxes were drawn and rejected the same way — beside `columns` they read as a bar chart. ⚠️ IT CARRIES THE `product-` QUALIFIER FOR A REASON, and `product-field` is the precedent. Bare `size` is a word three rows of this set already want: `text-size` is how big type is set, `width` and `height` are how big a section is. None of them is a product's own catalogue of sizes, and a bare name is what lets the next borrower attach a second meaning to one drawing. It is also not `square`, which is one box and a shape.";
291
+ readonly progress: "Used in shell src/shell/timelineGlyphs.tsx:95";
292
+ readonly quiet: "the QUIET mark — the toolbar button that writes `^^words^^` over the selection in the copy box's formatting bar: smaller, softer words, like the fine print under a price. A small one-storey a. It is drawn SMALL on purpose, under the set's 14–17.5 box: smaller is what the mark does, and the design (v5) draws this button's a smaller than the B beside it. Decided 2026-10-02. (retired by Lewis 2026-10-10; goes when nothing draws it)";
293
+ readonly "radio-dot": "Used in storefront lib/site-icon.ts:31";
294
+ readonly radius: "how ROUND a box's corners are — the `Corner radius` row of the campaign editor's Section and Column settings, and the image `Corner radius` row of Email styles. Decided 2026-09-17. A box with ONE strongly rounded corner. NOT `corner`, which is the storefront's `Which corners` row, and NOT `square`, which is the Borders row one line above.";
295
+ readonly receipt: "Used in admin-portal src/shell-config/search.ts:66";
296
+ readonly "receipt-percent": "receipt-percent";
297
+ readonly "receipt-refund": "receipt-refund";
298
+ readonly "rectangle-group": "rectangle-group";
299
+ readonly redo: "Redo";
300
+ readonly refresh: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
301
+ readonly remove: "Used in shell src/shell/Desktop.tsx:1199";
302
+ readonly "remove-circle": "remove-circle";
303
+ readonly rename: "Rename / edit";
304
+ readonly reply: "Used in admin-portal src/pages/crm/NotesTimeline.tsx:269";
305
+ readonly "reply-all": "Used in admin-portal src/pages/mail/MessageCard.tsx:178";
306
+ readonly revert: "Revert to inherited";
307
+ readonly robot: "Used in admin-portal src/shell-config/nav.tsx:303";
308
+ readonly rotate: "rotate";
309
+ readonly scale: "scale";
165
310
  readonly "scroll-point": "HOW FAR DOWN a reader has got before something happens — the Subscribe popup's `Scroll` row, a percentage of the page. An arrow travelling down to the line it must reach. ⚠️ ITS SIBLING ROW IS WHY IT HAD TO EXIST. One row up, `Delay` wears `clock`, honestly: a delay IS a time. This row is a POSITION, and wearing a clock beside it would make two different questions look like one. Same defect `clock` had on the `Trigger` row (corrected in 0.56.0), one row along. ⚠️ NOT `sticky`, which is the close one at 16px: both are a bar and a down arrow, and what separates them is WHICH END THE MASS IS AT — `sticky` is a thick pinned bar at the TOP with content moving away beneath it, this is a thin line at the BOTTOM with an arrow arriving at it. ⚠️ ITS KILL CONDITION: if `sticky` is ever redrawn with its bar at the bottom, these two collide and this is the one to question first. ⚠️ NOT `direction-down`, a plain arrow with nothing to arrive at — the line is the whole idea. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
166
- readonly "words-from": "WHICH SIDE A ROW'S WORDS COME FROM, as the question rather than either answer — worn by a settings row that asks it, where the merchant picks between their own copy and copy the catalogue already holds. Drawn for the storefront Feature Rows block's `Rows from` row (`Product story` | `Detail shots`).";
167
- readonly title: "THE HEADING OF ONE ITEM, not of the band around it — worn by a settings row that holds the loudest line on a single card. An H drawn INSIDE the item's frame, and the containment is the whole distinction. Drawn for the campaign editor's Coupon card, where every layout carries exactly one `title` place. Decided 2026-09-25.";
168
- readonly meta: "THE SMALL LINE OF FACTS ALONG THE BOTTOM of an item — a date, a code, a deadline, run together on one line. Worn by a settings row that holds that line. One full rule with three SHORT runs under it: the gaps are the drawing, because the gaps are what make it read as several facts instead of a paragraph. Decided 2026-09-25.";
169
- readonly bold: "the BOLD mark — the toolbar button that writes `**words**` (Strong, ⌘B) over the selection in the copy box's formatting bar. A capital B, the letter every word processor puts on this button. One idea: the mark, not a weight setting. Decided 2026-10-02.";
170
- readonly italic: "the ITALIC mark — the toolbar button that writes `_words_` (⌘I) over the selection in the copy box's formatting bar. A slanted capital I with its two serifs, the button every word processor draws. Decided 2026-10-02.";
311
+ readonly "scroll-text": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
312
+ readonly search: "Search";
313
+ readonly "select-all": "Used in admin-portal src/pages/mail/MessageList.tsx:66";
314
+ readonly send: "Send";
315
+ readonly server: "server";
316
+ readonly settings: "site settings — a gear; heads the Basics tab of the Site styles panel";
317
+ readonly shadow: "the depth a card sits at — the `Card shadow` row on the storefront's Site styles ▸ Basics tab, beside `Corners`";
318
+ readonly "shape-ellipse": "Used in shell src/apps/ImageAnnotator.tsx:569";
319
+ readonly "shape-rect": "Used in shell src/apps/ImageAnnotator.tsx:568";
320
+ readonly share: "share";
321
+ readonly "shield-check": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
322
+ readonly "shield-exclamation": "shield-exclamation";
323
+ readonly signal: "Used in shell src/shell/Desktop.tsx:1278";
324
+ readonly "signal-slash": "signal-slash";
325
+ readonly sitemap: "Sitemap";
326
+ readonly sort: "the order a SHOPPER puts a list in — the `Sort control` row of the Gallery panel and the `Sort + Clear all` row of the storefront's Catalog filter bar. ⚠️ NOT `list`, which is a list of entries the MERCHANT orders by hand (the campaign editor's `Phone order` and `Links` rows). The difference is who does the ordering, so the arrow is the whole point of this drawing. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
327
+ readonly sparkles: "sparkles";
328
+ readonly speaker: "Used in shell src/apps/PomodoroTimer.tsx:651";
329
+ readonly "speaker-wave": "speaker-wave";
330
+ readonly "spec-table": "the table of a product's measured facts on its own page — the `Spec table` row of the storefront Product hero's `Show in the buy box` group. A header band over two name/value columns. NOT `grid`, which is a layout of equal cells, and NOT `line-between`, which is one rule drawn between two columns of CONTENT. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
331
+ readonly spinner: "Used in admin-portal src/components/map/MapListView.tsx:98";
332
+ readonly split: "Used in admin-portal src/shell-config/nav.tsx:135";
333
+ readonly square: "square";
334
+ readonly star: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
335
+ readonly state: "WHICH OF SEVERAL STATES a thing is in, where no one of them is the good one — the `State` row of a Mockup's result rows (`Match / done`, `In progress`, `No match`). A ring with its centre filled: one position chosen out of several, which is the idea, rather than any particular verdict. ⚠️ NOT `check`, and refusing it is the whole reason this entry exists. `check` means “checkmark / success”, which is TRUE OF ONE ANSWER IN THREE and false of the other two — a row wearing it would say `done` while a merchant is looking at `No match`. That is the same defect `clock` had on the `Trigger` row, found the same way and written here so the next person does not reach for `check` again. ⚠️ NOT `warning`, a triangle, which is wrong for the success case for the mirror-image reason. ⚠️ NOT `hash`, which is a NUMBER or its unit. ⚠️ NOT `contrast`, a circle with one HALF filled: that is a tone, and its hard straight edge is what tells the two apart at 16px — this one's fill is a centred dot. NOT `eye`, whose pupil sits inside a lens rather than a circle, and NOT `drag`, which is six dots in two columns. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
336
+ readonly "status-circle": "Used in shell src/apps/PomodoroTimer.tsx:376";
337
+ readonly "status-dot": "Used in shell src/shell/ServerStatusIndicator.tsx:287";
338
+ readonly sticky: "a thing that stays put while the page scrolls under it — the `Stick under header` row of the storefront Category bar and the `Scroll-over` row of Intro bleed. The bar is pinned and the content moves away from it, which is why the arrow points DOWN and away rather than up. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
339
+ readonly "stop-circle": "Used in admin-portal src/shell-config/nav.tsx:276";
340
+ readonly store: "store";
171
341
  readonly strike: "the STRIKETHROUGH mark — the toolbar button that writes `~~words~~` over the selection in the copy box's formatting bar (a was-price beside a now-price). An S with a rule through its middle. Decided 2026-10-02.";
172
- readonly emphasis: "the EMPHASIS mark — the toolbar button that writes `==words==` over the selection in the copy box's formatting bar: the phrase painted in the brand accent colour. A diamond, the ◆ the bar has shown for this mark since the campaign designer first drew it. Decided 2026-10-02.";
173
- readonly quiet: "the QUIET mark — the toolbar button that writes `^^words^^` over the selection in the copy box's formatting bar: smaller, softer words, like the fine print under a price. A small one-storey a. It is drawn SMALL on purpose, under the set's 14–17.5 box: smaller is what the mark does, and the design (v5) draws this button's a smaller than the B beside it. Decided 2026-10-02.";
174
- readonly "clear-marks": "CLEAR MARKS — the toolbar button that takes every mark off the selection in the copy box's formatting bar (⌘⇧X), keeping the words and any link. A T with a small × at its foot: the text, with its marks crossed out. Decided 2026-10-02.";
175
- readonly superscript: "the SUPERSCRIPT mark — raised small text (®, ™, a footnote¹). Worn by the `Superscript` toolbar button of the campaign editor's Text block and the `Superscript` item of its Normal / Superscript / Subscript menu. A capital A with a small 2 at its top right (Lewis, 2026-10-06: the design's x, then a T, then, after seeing the T: use A for all). Decided 2026-10-06.";
342
+ readonly styles: "Styles";
176
343
  readonly subscript: "the SUBSCRIPT mark — lowered small text (H₂O). Worn by the `Subscript` toolbar button of the campaign editor's Text block and the `Subscript` item of its Normal / Superscript / Subscript menu. The same capital A as `superscript`, with the small 2 at its foot (Lewis, 2026-10-06: after seeing the T: use A for all). Decided 2026-10-06.";
177
- readonly "numbered-list": "a NUMBERED LIST — the lines the caret is on, written as 1. 2. 3. Worn by the `Numbered list` toolbar button of the campaign editor's Text block and the `Numbered list` item of its No list / Bulleted list / Numbered list menu. Three rules with 1, 2, 3 down the left. Decided 2026-10-06.";
178
- readonly "paragraph-spacing": "PARAGRAPH SPACING — the room between one paragraph and the next, in px. Worn by the fourth value of the campaign editor's Text block number row (`Paragraph spacing`, beside Font size, Line spacing and Letter spacing). Two short paragraphs with a small upright mark in the room between them. Decided 2026-10-06.";
179
- readonly "case-normal": "letter case LEFT AS TYPED — `Aa`, the `Normal` option of the Letter case buttons (Normal / Uppercase / Lowercase) on the campaign editor's Text block, and of the storefront part panel's Case strip. The plan calls it sentence case; it changes nothing the merchant typed. A capital A beside a one-storey a. Decided 2026-10-06.";
180
- readonly "case-upper": "letter case ALL CAPITALS — `AA`, the `Uppercase` option of the Letter case buttons on the campaign editor's Text block, and of the storefront part panel's Case strip. Two capital A's. Decided 2026-10-06.";
181
- readonly "case-lower": "letter case ALL SMALL LETTERS — `aa`, the `Lowercase` option of the Letter case buttons on the campaign editor's Text block, and of the storefront part panel's Case strip. Two one-storey a's. Decided 2026-10-06.";
182
- readonly "align-justify": "JUSTIFY — text whose rows run edge to edge. Worn by the Justify button on the final text box's second toolbar row, beside Left, Center and Right, and by the Justify chip of the alignment strip. Three full-width rows on the same three heights the other alignment glyphs use. Decided 2026-10-06 (the design was made final that day).";
183
- readonly "panel-left": "the LEFT SIDE PANEL itself — worn by the Hide panel button at the end of a left panel's head (`MediaPanelHead`, both editors' SidePanelHeads) and by the Show panel button in the strip a hidden left panel leaves. One control, so one drawing: hiding and showing the panel wear the same glyph. A frame with its left column ruled off. ⛔ NOT an ✕: an ✕ closes a dialog, and a panel head has none (owner, 2026-10-04).";
184
- readonly "panel-right": "the RIGHT SIDE PANEL itself — the twin of `panel-left` for the settings panel: its head's Hide panel button and the strip a hidden right panel leaves. A frame with its right column ruled off.";
185
- readonly braces: "INSERT A MERGE TAG — a word that fills in for each reader ({{first_name}}, a coupon code). Worn by the Insert button the campaign designer puts in the 9th cell of the final text box's first toolbar row (`CopyBox` `lastTool`), which opens its list of tags. Two curly braces, the shape a merge tag is written in. Decided 2026-10-07. ⛔ NOT `code` or a pair of angle brackets: nothing here is code, and the braces are the tag's own spelling.";
344
+ readonly "success-burst": "Used in admin-portal src/take/Submitted.tsx:3";
345
+ readonly sun: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
346
+ readonly superscript: "the SUPERSCRIPT mark — raised small text (®, ™, a footnote¹). Worn by the `Superscript` toolbar button of the campaign editor's Text block and the `Superscript` item of its Normal / Superscript / Subscript menu. A capital A with a small 2 at its top right (Lewis, 2026-10-06: the design's x, then a T, then, after seeing the T: use A for all). Decided 2026-10-06.";
347
+ readonly swap: "swap";
348
+ readonly swatch: "swatch";
349
+ readonly table: "table";
350
+ readonly tablet: "Tablet";
351
+ readonly tabs: "one strip of choices where only one panel shows at a time — the `Tab switcher` row of the storefront Gallery panel. TWO tabs with the selected one drawn TALLER is what makes it a switcher — a single raised tab over a panel is a folder, which is what the first drawing read as and why it was thrown away rather than a `layout` or a plain panel; nothing else in this set draws a selected-of-several. Card [FIX] Panel Rows That Draw No Picture, 2026-09-22";
352
+ readonly tag: "tag";
353
+ readonly target: "target";
354
+ readonly team: "team";
355
+ readonly telephone: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
356
+ readonly template: "Template / bookmark";
357
+ 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";
358
+ readonly "text-lines": "text lines";
359
+ readonly "text-size": "text size";
360
+ readonly "text-small": "SMALL TYPE — an eyebrow, a caption, a label run. Worn by the `Eyebrow` row of the campaign editor's Text block and by the `Tagline` row of its Logo. The set's `text-size` is the SIZE control; this is the small-type kind itself.";
361
+ readonly "text-value": "Used in storefront packages/web-builder/src/components/FieldGlyph.tsx:111";
362
+ readonly theme: "one whole palette a section can be painted in — paper, ink, borders and accent together, not one colour. Worn by the `Theme` row of the section panel's `Colour` group (card 66313), the dropdown that says which of the site's themes this one section is on. NOT `contrast`, which names the Site styles Theme TAB — that is a PLACE, not the idea “a palette”. NOT `accent`, which is the site's ONE emphasis colour, one colour rather than a whole set. Card 66315, 2026-09-01";
363
+ readonly ticket: "ticket";
364
+ readonly title: "THE HEADING OF ONE ITEM, not of the band around it — worn by a settings row that holds the loudest line on a single card. An H drawn INSIDE the item's frame, and the containment is the whole distinction. Drawn for the campaign editor's Coupon card, where every layout carries exactly one `title` place. Decided 2026-09-25.";
365
+ readonly trash: "Delete";
366
+ readonly trigger: "WHAT MAKES THIS HAPPEN — the event a merchant picks to start something, not the thing that is started. Drawn for the `Trigger` row of the storefront's Subscribe popup, whose three answers are `Delay`, `Scroll` and `Exit`: a wait, a scroll position and a pointer leaving the page. Nothing they share is a picture, which is exactly why none of the five shipped candidates could take the row. ⚠️ NOT `clock`, and this is the drawing this one exists to replace: a clock face says TIME, which is true of `Delay` and FALSE of the other two — it shipped on that row in efficient-shop #1468 and is corrected in the card that adds this. ⚠️ NOT `hover`, a pointer resting on a card: that names the MOUSE specifically, and neither a scroll position nor an exit is a hover. ⚠️ NOT `animation`, an object at the head of the path it has travelled: that names MOVEMENT, and a trigger is not a motion — it is the moment one starts. ⚠️ NOT `sticky`, a bar with content moving away beneath it, which names a thing that STAYS PUT while the page scrolls; `Scroll` here is when the reader reaches a point, never what the bar does. ⚠️ NOT `play`, a triangle, which is video playback. The bolt is the one shape in this set that means a thing FIRING rather than a thing being or moving, and it is the only zigzag in 138 drawings, so it cannot be misread for a neighbour at 16px. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
367
+ readonly truck: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
368
+ readonly tv: "tv";
369
+ readonly type: "Text marker — the T";
370
+ readonly tyre: "Used in admin-portal src/shell-config/nav.tsx:290";
371
+ readonly underline: "whether links are UNDERLINED — the `Underline links` row of the campaign editor's Email styles. Decided 2026-09-17. A U over a rule, the mark every word processor uses. NOT `type`, which is the text marker, the T. …AND THE `Underline` toolbar button of the campaign editor's Text block (final design, 2026-10-06): the mark that underlines the selected words. One idea, words with a rule under them, so the button wears this drawing rather than a second copy of it.";
372
+ readonly undo: "Undo";
373
+ readonly upload: "upload";
374
+ readonly "v-align": "where content sits UP AND DOWN inside its box — the `Content position` row (top / middle / bottom) of the campaign editor's Column settings. Decided 2026-09-17. A block between a top and a bottom rule. NOT `padding-top`, which has one rule and says how much room is above.";
375
+ readonly verified: "verified";
376
+ readonly "video-off": "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
377
+ readonly "view-columns": "view-columns";
378
+ readonly wallet: "wallet";
379
+ readonly warning: "Warning";
380
+ readonly weight: "HOW HEAVY A STROKE IS — a font's weight, and a rule's thickness. It was written as “font weight” alone until the storefront's `Thickness` row (a footer divider, 1-8px) needed it: both settings make a mark heavier, and that is what the drawing shows. ⚠️ NOT `line-style`, which is WHICH DASH a rule is drawn with — solid, dashed, dotted — a different question about the same rule. Extended on card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
381
+ readonly wheel: "Wheel";
382
+ readonly width: "width";
383
+ readonly window: "window";
384
+ readonly windows: "Used in shell src/shell/WindowManager.tsx:1051";
385
+ readonly "words-from": "WHICH SIDE A ROW'S WORDS COME FROM, as the question rather than either answer — worn by a settings row that asks it, where the merchant picks between their own copy and copy the catalogue already holds. Drawn for the storefront Feature Rows block's `Rows from` row (`Product story` | `Detail shots`).";
386
+ readonly wrap: "WHETHER A ROW'S ITEMS FLOW ONTO A NEW LINE when they run out of room — the `Wrap` row of a Box's layout (`Wrap` / `No wrap`). The drawing is the RESULT rather than the motion: three items on the first line and one that has fallen to the second, because an uneven second row is the only thing that says wrapping happened. ⚠️ NOT `revert`, and this is the drawing this one was nearly drawn as. A line running right, turning down and coming back left with an arrowhead is the obvious picture for `wrap` and it is ALREADY `revert` — the two would have been the same drawing at 16px. Caught on the sheet before it was drawn, which is what the sheet is for. ⚠️ NOT `direction`, two same-way arrows, which names WHICH WAY a container's children run — and which is itself ruled to head no row (doc/naming.md N10.1 calls it a modifier). Wrapping is not a heading. ⚠️ NOT `columns`, three upright bars, which is a COUNT of columns, and NOT `grid`, which is equal cells: both draw an even arrangement, and unevenness is the whole of what this one says. ⚠️ NOT `line-between`, an upright rule with content either side, which divides two columns rather than describing how one row behaves. ⚠️ `grid` IS THE CLOSE ONE, AND THIS IS WHY IT IS ALLOWED TO LIVE. Both are a cluster of small squares, and at 16px what separates them is SILHOUETTE: this drawing is ASYMMETRIC — three across the top, one at the bottom LEFT, so it is wider on top and visibly short on the bottom right — against `grid`'s even 2×2. That difference survives the size; it was checked at 16px and again at 6× before it was kept, and it was handed up as a coin-flip rather than decided quietly. GG looked at both sheets and approved it, 2026-09-23. ⚠️ ITS KILL CONDITION, in the shape the bolt carries: if `grid` is ever redrawn asymmetric, or if a SECOND cluster-of-squares drawing is added to this set, THIS is the one to question first. Counting squares is a weaker way to be told apart than a shape nothing else has, and this drawing knows it. Card [FIX] The 176 Settings Rows With No Picture, 2026-09-23";
387
+ readonly wrench: "The dealer portal draws with lucide (stroke 2). Its drawings are not on this Mac, so they show as named tiles.";
388
+ readonly "wrench-screwdriver": "wrench-screwdriver";
389
+ readonly "zoom-in": "zoom-in";
186
390
  };
187
391
  type EfficientIconName = keyof typeof efficientIconMeanings;
188
- declare function TrashIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
189
- declare function DuplicateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
190
- declare function CopyToPageIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
191
- declare function CloseIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
392
+ declare function AcademicCapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
393
+ declare function AccentIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
394
+ declare function AccountIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
395
+ declare function AccountCircleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
192
396
  declare function AddIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
193
- declare function CheckIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
194
- declare function UndoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
195
- declare function RedoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
196
- declare function RenameIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
197
- declare function SearchIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
198
- declare function EyeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
199
- declare function EyeOffIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
200
- declare function ExternalIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
201
- declare function DragIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
202
- declare function LockIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
203
- declare function RevertIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
204
- declare function ChevronIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
205
- declare function SendIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
206
- declare function PageIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
207
- declare function LayersIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
208
- declare function StylesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
209
- declare function MediaIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
210
- declare function SitemapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
211
- declare function ImageIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
212
- declare function GridIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
213
- declare function CartIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
214
- declare function DesktopIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
215
- declare function TabletIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
216
- declare function PhoneIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
217
- declare function WarningIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
218
- declare function TypeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
219
- declare function WheelIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
220
- declare function ChatIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
221
- declare function BellIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
222
- declare function TemplateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
223
- declare function ClockIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
224
- declare function PlayIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
225
- declare function AlignLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
397
+ declare function AddCircleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
398
+ declare function AddPersonIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
399
+ declare function AdjustIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
226
400
  declare function AlignCenterIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
227
- declare function OpacityIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
228
- declare function PaddingTopIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
229
- declare function PaddingBottomIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
230
- declare function PaddingXIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
231
- declare function WidthIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
232
- declare function AnchorIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
233
- declare function HashIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
234
- declare function ColumnsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
235
- declare function ListIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
236
- declare function TextLinesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
237
- declare function TextSizeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
238
- declare function TextSmallIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
239
- declare function ButtonIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
240
- declare function LinkIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
241
- declare function TagIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
242
- declare function RotateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
243
- declare function SquareIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
244
- declare function CornerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
245
- declare function DropIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
246
- declare function PlusMinusIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
247
- declare function DollarIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
248
- declare function NoteIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
249
- declare function WeightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
250
- declare function LetterSpacingIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
251
- declare function CaseIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
252
- declare function LayoutIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
253
- declare function SettingsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
254
- declare function ContrastIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
255
- declare function AccountIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
256
- declare function GlobeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
257
- declare function LogoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
401
+ declare function AlignJustifyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
402
+ declare function AlignLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
258
403
  declare function AlignRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
259
404
  declare function AlignSeparateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
260
- declare function AccentIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
261
- declare function ShadowIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
262
- declare function GapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
263
- declare function HoverIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
264
- declare function ProductFieldIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
265
- declare function OwnTextIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
266
- declare function ThemeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
267
- declare function BackgroundIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
268
- declare function CopyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
269
- declare function PasteIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
270
- declare function MoveUpIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
271
- declare function MoveDownIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
272
- declare function GroundIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
273
- declare function TextColorIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
274
- declare function DirectionIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
275
- declare function DirectionRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
276
- declare function DirectionDownIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
277
- declare function DirectionLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
278
- declare function DirectionUpIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
405
+ declare function AnchorIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
279
406
  declare function AnimationIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
280
- declare function BlockSectionIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
281
- declare function BlockColumnIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
282
- declare function BlockTextIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
283
- declare function BlockHeadingIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
284
- declare function BlockButtonIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
407
+ declare function AppsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
408
+ declare function ArchiveBoxIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
409
+ declare function ArrowDownIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
410
+ declare function ArrowLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
411
+ declare function ArrowLeftEndOnRectangleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
412
+ declare function ArrowLongRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
413
+ declare function ArrowRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
414
+ declare function ArrowTrendingDownIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
415
+ declare function ArrowTrendingUpIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
416
+ declare function ArrowUpIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
417
+ declare function ArrowUpRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
418
+ declare function AtSymbolIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
419
+ declare function AttachIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
420
+ declare function BackgroundIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
421
+ declare function BagIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
422
+ declare function Bars3BottomLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
423
+ declare function BatteryIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
424
+ declare function BeakerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
425
+ declare function BellIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
426
+ declare function BellAlertIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
427
+ declare function BellPlusIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
428
+ declare function BillingIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
429
+ declare function BlackAndWhiteIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
285
430
  declare function BlockBadgeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
286
- declare function BlockIncludedListIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
287
- declare function BlockLayeredImagesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
288
- declare function BlockVideoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
289
- declare function BlockProductIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
431
+ declare function BlockBannerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
432
+ declare function BlockBoxIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
290
433
  declare function BlockCouponIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
291
434
  declare function BlockDividerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
292
- declare function BlockSpacerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
293
435
  declare function BlockFooterIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
294
- declare function BlockBannerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
295
- declare function BlockSocialIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
296
- declare function BlockBoxIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
297
- declare function RadiusIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
298
- declare function ColumnWidthsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
299
- declare function LineBetweenIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
300
- declare function ColumnGapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
301
- declare function VAlignIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
302
- declare function HeightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
303
- declare function UnderlineIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
304
- declare function LineStyleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
305
- declare function FullWidthIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
306
- declare function CopyStyleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
307
- declare function PasteStyleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
308
- declare function FinishIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
309
- declare function ProductSizeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
436
+ declare function BlockHeadingIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
437
+ declare function BlockLayeredImagesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
438
+ declare function BlockProductTitleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
439
+ declare function BlockSectionIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
440
+ declare function BlockSpacerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
441
+ declare function BlockTextIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
442
+ declare function BlockVideoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
443
+ declare function BlogPostIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
444
+ declare function BoldIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
445
+ declare function BoltIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
446
+ declare function BookOpenIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
447
+ declare function BookmarkIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
448
+ declare function BookmarkSquareIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
449
+ declare function BracesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
310
450
  declare function BreadcrumbIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
311
- declare function TabsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
312
- declare function SortIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
313
- declare function SpecTableIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
451
+ declare function BriefcaseIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
452
+ declare function BugIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
453
+ declare function BuildingLibraryIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
454
+ declare function BuildingOffice2Icon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
455
+ declare function ButtonIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
456
+ declare function CalculatorIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
457
+ declare function CalendarIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
458
+ declare function CameraIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
459
+ declare function CaptionIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
314
460
  declare function CarIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
461
+ declare function CardPaymentIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
462
+ declare function CartIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
463
+ declare function CaseIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
464
+ declare function CaseLowerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
465
+ declare function CaseNormalIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
466
+ declare function CaseUpperIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
467
+ declare function ChartIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
468
+ declare function ChartBarIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
469
+ declare function ChartBarSquareIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
470
+ declare function ChartLineIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
471
+ declare function ChatIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
472
+ declare function ChatBubbleLeftRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
473
+ declare function ChatBubbleOvalLeftEllipsisIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
474
+ declare function CheckIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
475
+ declare function CheckCircleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
476
+ declare function CheckboxIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
477
+ declare function ChevronDoubleLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
478
+ declare function ChevronDoubleRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
479
+ declare function ChevronDownIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
480
+ declare function ChevronLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
481
+ declare function ChevronRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
482
+ declare function ChevronUpIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
483
+ declare function ChevronUpDownIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
484
+ declare function CircleStackIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
485
+ declare function ClearMarksIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
486
+ declare function ClipboardIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
487
+ declare function ClipboardDocumentListIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
488
+ declare function ClockIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
489
+ declare function CloseIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
490
+ declare function CloseCircleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
491
+ declare function CloudIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
492
+ declare function CloudDownloadIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
493
+ declare function CodeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
494
+ declare function CollapseIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
495
+ declare function ColumnGapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
496
+ declare function ColumnWidthsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
497
+ declare function ColumnsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
498
+ declare function CompanyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
499
+ declare function ComposeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
500
+ declare function ContrastIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
501
+ declare function CopiedIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
502
+ declare function CopyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
503
+ declare function CopyStyleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
504
+ declare function CopyToPageIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
505
+ declare function CornerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
506
+ declare function CropIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
507
+ declare function CubeTransparentIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
508
+ declare function CursorIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
509
+ declare function CursorClickIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
510
+ declare function DateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
511
+ declare function DesktopIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
315
512
  declare function DiagramIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
513
+ declare function DirectionIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
514
+ declare function DocumentIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
515
+ declare function DocumentCheckIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
516
+ declare function DocumentMagnifyingGlassIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
517
+ declare function DollarIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
518
+ declare function DotIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
519
+ declare function DownloadIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
520
+ declare function DragIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
521
+ declare function DropIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
522
+ declare function DuplicateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
523
+ declare function EditIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
524
+ declare function EmailIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
525
+ declare function EmphasisIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
526
+ declare function EraserIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
527
+ declare function ErrorIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
528
+ declare function ExpandIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
529
+ declare function ExternalIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
530
+ declare function EyeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
531
+ declare function EyeOffIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
532
+ declare function FaceSmileIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
533
+ declare function FilterIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
534
+ declare function FinishIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
535
+ declare function FireIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
536
+ declare function FlagIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
537
+ declare function FolderIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
538
+ declare function FolderOpenIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
539
+ declare function FolderPlusIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
540
+ declare function ForwardIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
541
+ declare function FullWidthIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
542
+ declare function GapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
543
+ declare function GemIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
544
+ declare function GiftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
545
+ declare function GlobeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
546
+ declare function GridIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
547
+ declare function GroundIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
548
+ declare function HandIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
549
+ declare function HandThumbUpIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
550
+ declare function HashIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
316
551
  declare function HeadquartersIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
317
- declare function BlackAndWhiteIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
318
- declare function ButtonArrowIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
319
- declare function StickyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
320
- declare function CategoryIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
321
- declare function BlogPostIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
322
- declare function MenuIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
323
- declare function PlacementIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
552
+ declare function HeartIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
553
+ declare function HeightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
554
+ declare function HelpIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
555
+ declare function HelpOffIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
556
+ declare function HexagonIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
557
+ declare function HomeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
558
+ declare function HoverIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
559
+ declare function IdentificationIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
560
+ declare function ImageIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
561
+ declare function ImageOffIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
562
+ declare function ImagesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
563
+ declare function InboxIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
564
+ declare function InfoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
565
+ declare function ItalicIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
566
+ declare function KeyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
567
+ declare function LayersIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
568
+ declare function LayoutIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
569
+ declare function LetterSpacingIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
570
+ declare function LightbulbIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
571
+ declare function LineBetweenIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
572
+ declare function LineStyleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
573
+ declare function LinkIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
574
+ declare function LinkSlashIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
575
+ declare function ListIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
324
576
  declare function LocationIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
325
- declare function TriggerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
326
- declare function WrapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
327
- declare function StateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
577
+ declare function LockIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
578
+ declare function LogoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
579
+ declare function LogoutIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
580
+ declare function MapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
581
+ declare function MediaIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
582
+ declare function MegaphoneIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
583
+ declare function MenuIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
584
+ declare function MetaIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
585
+ declare function MicrophoneIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
586
+ declare function MoneyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
587
+ declare function MoonIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
588
+ declare function MoreIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
589
+ declare function MoreVerticalIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
590
+ declare function NoSymbolIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
591
+ declare function NoteIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
592
+ declare function NudgeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
593
+ declare function NumberedListIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
594
+ declare function OpacityIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
595
+ declare function OwnTextIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
596
+ declare function PackageIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
597
+ declare function PackageOpenIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
598
+ declare function PaddingBottomIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
328
599
  declare function PaddingLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
329
600
  declare function PaddingRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
601
+ declare function PaddingTopIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
602
+ declare function PaddingXIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
330
603
  declare function PaddingYIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
331
- declare function NudgeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
604
+ declare function PageIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
605
+ declare function PanelLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
606
+ declare function PanelRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
607
+ declare function ParagraphSpacingIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
608
+ declare function PasteStyleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
609
+ declare function PauseIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
610
+ declare function PenIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
611
+ declare function PeopleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
612
+ declare function PercentIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
613
+ declare function PhoneIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
614
+ declare function PhoneHiddenIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
615
+ declare function PlacementIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
616
+ declare function PlayIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
617
+ declare function PlusMinusIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
618
+ declare function PowerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
619
+ declare function PresentationChartBarIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
620
+ declare function PrintIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
621
+ declare function ProductIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
622
+ declare function ProductFieldIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
623
+ declare function ProductSizeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
624
+ declare function ProgressIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
625
+ declare function QuietIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
626
+ declare function RadioDotIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
627
+ declare function RadiusIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
628
+ declare function ReceiptIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
629
+ declare function ReceiptPercentIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
630
+ declare function ReceiptRefundIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
631
+ declare function RedoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
632
+ declare function RefreshIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
633
+ declare function RemoveIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
634
+ declare function ReplyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
635
+ declare function ReplyAllIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
636
+ declare function RevertIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
637
+ declare function RobotIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
638
+ declare function RotateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
639
+ declare function ScaleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
332
640
  declare function ScrollPointIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
333
- declare function WordsFromIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
334
- declare function TitleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
335
- declare function MetaIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
336
- declare function BoldIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
337
- declare function ItalicIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
641
+ declare function SearchIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
642
+ declare function SelectAllIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
643
+ declare function SendIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
644
+ declare function ServerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
645
+ declare function SettingsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
646
+ declare function ShadowIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
647
+ declare function ShapeEllipseIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
648
+ declare function ShapeRectIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
649
+ declare function ShareIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
650
+ declare function ShieldCheckIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
651
+ declare function ShieldExclamationIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
652
+ declare function SignalIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
653
+ declare function SignalSlashIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
654
+ declare function SitemapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
655
+ declare function SortIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
656
+ declare function SparklesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
657
+ declare function SpeakerWaveIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
658
+ declare function SpecTableIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
659
+ declare function SpinnerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
660
+ declare function SplitIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
661
+ declare function SquareIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
662
+ declare function StarIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
663
+ declare function StateIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
664
+ declare function StatusCircleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
665
+ declare function StatusDotIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
666
+ declare function StickyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
667
+ declare function StopCircleIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
668
+ declare function StoreIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
338
669
  declare function StrikeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
339
- declare function EmphasisIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
340
- declare function QuietIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
341
- declare function ClearMarksIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
342
- declare function SuperscriptIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
670
+ declare function StylesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
343
671
  declare function SubscriptIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
344
- declare function NumberedListIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
345
- declare function ParagraphSpacingIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
346
- declare function CaseNormalIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
347
- declare function CaseUpperIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
348
- declare function CaseLowerIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
349
- declare function AlignJustifyIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
350
- declare function PanelLeftIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
351
- declare function PanelRightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
352
- declare function BracesIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
672
+ declare function SunIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
673
+ declare function SuperscriptIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
674
+ declare function SwapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
675
+ declare function TableIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
676
+ declare function TabletIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
677
+ declare function TabsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
678
+ declare function TagIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
679
+ declare function TargetIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
680
+ declare function TeamIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
681
+ declare function TelephoneIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
682
+ declare function TextColorIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
683
+ declare function TextSizeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
684
+ declare function TextSmallIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
685
+ declare function TextValueIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
686
+ declare function TrashIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
687
+ declare function TruckIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
688
+ declare function TvIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
689
+ declare function TypeIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
690
+ declare function TyreIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
691
+ declare function UnderlineIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
692
+ declare function UndoIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
693
+ declare function UploadIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
694
+ declare function VAlignIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
695
+ declare function VerifiedIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
696
+ declare function VideoOffIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
697
+ declare function ViewColumnsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
698
+ declare function WalletIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
699
+ declare function WarningIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
700
+ declare function WeightIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
701
+ declare function WidthIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
702
+ declare function WindowIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
703
+ declare function WindowsIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
704
+ declare function WordsFromIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
705
+ declare function WrapIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
706
+ declare function WrenchIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
707
+ declare function WrenchScrewdriverIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
708
+ declare function ZoomInIcon({ size, ...rest }: EfficientIconProps): react_jsx_runtime.JSX.Element;
709
+ /** The same meaning as `arrow-right`, so the same drawing. */
710
+ declare const ArrowIcon: typeof ArrowRightIcon;
711
+ /** The same meaning as `building-library`, so the same drawing. */
712
+ declare const BankIcon: typeof BuildingLibraryIcon;
713
+ /** The same meaning as `button`, so the same drawing. */
714
+ declare const BlockButtonIcon: typeof ButtonIcon;
715
+ /** The same meaning as `columns`, so the same drawing. */
716
+ declare const BlockColumnIcon: typeof ColumnsIcon;
717
+ /** The same meaning as `image`, so the same drawing. */
718
+ declare const BlockImageIcon: typeof ImageIcon;
719
+ /** The same meaning as `list`, so the same drawing. */
720
+ declare const BlockIncludedListIcon: typeof ListIcon;
721
+ /** The same meaning as `product`, so the same drawing. */
722
+ declare const BlockProductIcon: typeof ProductIcon;
723
+ /** The same meaning as `share`, so the same drawing. */
724
+ declare const BlockSocialIcon: typeof ShareIcon;
725
+ /** The same meaning as `bug`, so the same drawing. */
726
+ declare const BugAntIcon: typeof BugIcon;
727
+ /** The same meaning as `arrow-right`, so the same drawing. */
728
+ declare const ButtonArrowIcon: typeof ArrowRightIcon;
729
+ /** The same meaning as `calendar`, so the same drawing. */
730
+ declare const CalendarCheckIcon: typeof CalendarIcon;
731
+ /** The same meaning as `chevron-down`, so the same drawing. */
732
+ declare const CaretIcon: typeof ChevronDownIcon;
733
+ /** The same meaning as `folder`, so the same drawing. */
734
+ declare const CategoryIcon: typeof FolderIcon;
735
+ /** The same meaning as `chevron-down`, so the same drawing. */
736
+ declare const ChevronIcon: typeof ChevronDownIcon;
737
+ /** The same meaning as `chevron-double-right`, so the same drawing. */
738
+ declare const ChevronDoubleIcon: typeof ChevronDoubleRightIcon;
739
+ /** The same meaning as `copied`, so the same drawing. */
740
+ declare const ClipboardCheckIcon: typeof CopiedIcon;
741
+ /** The same meaning as `clipboard-document-list`, so the same drawing. */
742
+ declare const ClipboardListIcon: typeof ClipboardDocumentListIcon;
743
+ /** The same meaning as `code`, so the same drawing. */
744
+ declare const CodeBracketIcon: typeof CodeIcon;
745
+ /** The same meaning as `collapse`, so the same drawing. */
746
+ declare const CollapseAllIcon: typeof CollapseIcon;
747
+ /** The same meaning as `circle-stack`, so the same drawing. */
748
+ declare const CookieIcon: typeof CircleStackIcon;
749
+ /** The same meaning as `cursor-click`, so the same drawing. */
750
+ declare const CursorArrowRaysIcon: typeof CursorClickIcon;
751
+ /** The same meaning as `grid`, so the same drawing. */
752
+ declare const DashboardIcon: typeof GridIcon;
753
+ /** The same meaning as `arrow-down`, so the same drawing. */
754
+ declare const DirectionDownIcon: typeof ArrowDownIcon;
755
+ /** The same meaning as `arrow-left`, so the same drawing. */
756
+ declare const DirectionLeftIcon: typeof ArrowLeftIcon;
757
+ /** The same meaning as `arrow-right`, so the same drawing. */
758
+ declare const DirectionRightIcon: typeof ArrowRightIcon;
759
+ /** The same meaning as `arrow-up`, so the same drawing. */
760
+ declare const DirectionUpIcon: typeof ArrowUpIcon;
761
+ /** The same meaning as `arrow-down`, so the same drawing. */
762
+ declare const MoveDownIcon: typeof ArrowDownIcon;
763
+ /** The same meaning as `arrow-up`, so the same drawing. */
764
+ declare const MoveUpIcon: typeof ArrowUpIcon;
765
+ /** The same meaning as `blog-post`, so the same drawing. */
766
+ declare const NewspaperIcon: typeof BlogPostIcon;
767
+ /** The same meaning as `styles`, so the same drawing. */
768
+ declare const PaintBrushIcon: typeof StylesIcon;
769
+ /** The same meaning as `package`, so the same drawing. */
770
+ declare const ParcelIcon: typeof PackageIcon;
771
+ /** The same meaning as `clipboard`, so the same drawing. */
772
+ declare const PasteIcon: typeof ClipboardIcon;
773
+ /** The same meaning as `layout`, so the same drawing. */
774
+ declare const RectangleGroupIcon: typeof LayoutIcon;
775
+ /** The same meaning as `remove`, so the same drawing. */
776
+ declare const RemoveCircleIcon: typeof RemoveIcon;
777
+ /** The same meaning as `edit`, so the same drawing. */
778
+ declare const RenameIcon: typeof EditIcon;
779
+ /** The same meaning as `document`, so the same drawing. */
780
+ declare const ScrollTextIcon: typeof DocumentIcon;
781
+ /** The same meaning as `speaker-wave`, so the same drawing. */
782
+ declare const SpeakerIcon: typeof SpeakerWaveIcon;
783
+ /** The same meaning as `verified`, so the same drawing. */
784
+ declare const SuccessBurstIcon: typeof VerifiedIcon;
785
+ /** The same meaning as `finish`, so the same drawing. */
786
+ declare const SwatchIcon: typeof FinishIcon;
787
+ /** The same meaning as `bookmark`, so the same drawing. */
788
+ declare const TemplateIcon: typeof BookmarkIcon;
789
+ /** The same meaning as `bars-3-bottom-left`, so the same drawing. */
790
+ declare const TextLinesIcon: typeof Bars3BottomLeftIcon;
791
+ /** The same meaning as `finish`, so the same drawing. */
792
+ declare const ThemeIcon: typeof FinishIcon;
793
+ /** The same meaning as `block-coupon`, so the same drawing. */
794
+ declare const TicketIcon: typeof BlockCouponIcon;
795
+ /** The same meaning as `flag`, so the same drawing. */
796
+ declare const TitleIcon: typeof FlagIcon;
797
+ /** The same meaning as `bolt`, so the same drawing. */
798
+ declare const TriggerIcon: typeof BoltIcon;
799
+ /** The same meaning as `target`, so the same drawing. */
800
+ declare const WheelIcon: typeof TargetIcon;
353
801
  declare const efficient: IconSet;
354
802
 
355
- export { AccentIcon, AccountIcon, AddIcon, AlignCenterIcon, AlignJustifyIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, AnimationIcon, BackgroundIcon, BellIcon, BlackAndWhiteIcon, BlockBadgeIcon, BlockBannerIcon, BlockBoxIcon, BlockButtonIcon, BlockColumnIcon, BlockCouponIcon, BlockDividerIcon, BlockFooterIcon, BlockHeadingIcon, BlockIncludedListIcon, BlockLayeredImagesIcon, BlockProductIcon, BlockSectionIcon, BlockSocialIcon, BlockSpacerIcon, BlockTextIcon, BlockVideoIcon, BlogPostIcon, BoldIcon, BracesIcon, BreadcrumbIcon, ButtonArrowIcon, ButtonIcon, CarIcon, CartIcon, CaseIcon, CaseLowerIcon, CaseNormalIcon, CaseUpperIcon, CategoryIcon, ChatIcon, CheckIcon, ChevronIcon, ClearMarksIcon, ClockIcon, CloseIcon, ColumnGapIcon, ColumnWidthsIcon, ColumnsIcon, ContrastIcon, CopyIcon, CopyStyleIcon, CopyToPageIcon, CornerIcon, DesktopIcon, DiagramIcon, DirectionDownIcon, DirectionIcon, DirectionLeftIcon, DirectionRightIcon, DirectionUpIcon, DollarIcon, DragIcon, DropIcon, DuplicateIcon, type EfficientIconName, type EfficientIconProps, EmphasisIcon, ExternalIcon, EyeIcon, EyeOffIcon, FinishIcon, FullWidthIcon, GapIcon, GlobeIcon, GridIcon, GroundIcon, HashIcon, HeadquartersIcon, HeightIcon, HoverIcon, ImageIcon, ItalicIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LineBetweenIcon, LineStyleIcon, LinkIcon, ListIcon, LocationIcon, LockIcon, LogoIcon, MediaIcon, MenuIcon, MetaIcon, MoveDownIcon, MoveUpIcon, NoteIcon, NudgeIcon, NumberedListIcon, OpacityIcon, OwnTextIcon, PaddingBottomIcon, PaddingLeftIcon, PaddingRightIcon, PaddingTopIcon, PaddingXIcon, PaddingYIcon, PageIcon, PanelLeftIcon, PanelRightIcon, ParagraphSpacingIcon, PasteIcon, PasteStyleIcon, PhoneIcon, PlacementIcon, PlayIcon, PlusMinusIcon, ProductFieldIcon, ProductSizeIcon, QuietIcon, RadiusIcon, RedoIcon, RenameIcon, RevertIcon, RotateIcon, ScrollPointIcon, SearchIcon, SendIcon, SettingsIcon, ShadowIcon, SitemapIcon, SortIcon, SpecTableIcon, SquareIcon, StateIcon, StickyIcon, StrikeIcon, StylesIcon, SubscriptIcon, SuperscriptIcon, TabletIcon, TabsIcon, TagIcon, TemplateIcon, TextColorIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, ThemeIcon, TitleIcon, TrashIcon, TriggerIcon, TypeIcon, UnderlineIcon, UndoIcon, VAlignIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, WordsFromIcon, WrapIcon, efficient, efficientIconMeanings };
803
+ export { AcademicCapIcon, AccentIcon, AccountCircleIcon, AccountIcon, AddCircleIcon, AddIcon, AddPersonIcon, AdjustIcon, AlignCenterIcon, AlignJustifyIcon, AlignLeftIcon, AlignRightIcon, AlignSeparateIcon, AnchorIcon, AnimationIcon, AppsIcon, ArchiveBoxIcon, ArrowDownIcon, ArrowIcon, ArrowLeftEndOnRectangleIcon, ArrowLeftIcon, ArrowLongRightIcon, ArrowRightIcon, ArrowTrendingDownIcon, ArrowTrendingUpIcon, ArrowUpIcon, ArrowUpRightIcon, AtSymbolIcon, AttachIcon, BackgroundIcon, BagIcon, BankIcon, Bars3BottomLeftIcon, BatteryIcon, BeakerIcon, BellAlertIcon, BellIcon, BellPlusIcon, BillingIcon, BlackAndWhiteIcon, BlockBadgeIcon, BlockBannerIcon, BlockBoxIcon, BlockButtonIcon, BlockColumnIcon, BlockCouponIcon, BlockDividerIcon, BlockFooterIcon, BlockHeadingIcon, BlockImageIcon, BlockIncludedListIcon, BlockLayeredImagesIcon, BlockProductIcon, BlockProductTitleIcon, BlockSectionIcon, BlockSocialIcon, BlockSpacerIcon, BlockTextIcon, BlockVideoIcon, BlogPostIcon, BoldIcon, BoltIcon, BookOpenIcon, BookmarkIcon, BookmarkSquareIcon, BracesIcon, BreadcrumbIcon, BriefcaseIcon, BugAntIcon, BugIcon, BuildingLibraryIcon, BuildingOffice2Icon, ButtonArrowIcon, ButtonIcon, CalculatorIcon, CalendarCheckIcon, CalendarIcon, CameraIcon, CaptionIcon, CarIcon, CardPaymentIcon, CaretIcon, CartIcon, CaseIcon, CaseLowerIcon, CaseNormalIcon, CaseUpperIcon, CategoryIcon, ChartBarIcon, ChartBarSquareIcon, ChartIcon, ChartLineIcon, ChatBubbleLeftRightIcon, ChatBubbleOvalLeftEllipsisIcon, ChatIcon, CheckCircleIcon, CheckIcon, CheckboxIcon, ChevronDoubleIcon, ChevronDoubleLeftIcon, ChevronDoubleRightIcon, ChevronDownIcon, ChevronIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpDownIcon, ChevronUpIcon, CircleStackIcon, ClearMarksIcon, ClipboardCheckIcon, ClipboardDocumentListIcon, ClipboardIcon, ClipboardListIcon, ClockIcon, CloseCircleIcon, CloseIcon, CloudDownloadIcon, CloudIcon, CodeBracketIcon, CodeIcon, CollapseAllIcon, CollapseIcon, ColumnGapIcon, ColumnWidthsIcon, ColumnsIcon, CompanyIcon, ComposeIcon, ContrastIcon, CookieIcon, CopiedIcon, CopyIcon, CopyStyleIcon, CopyToPageIcon, CornerIcon, CropIcon, CubeTransparentIcon, CursorArrowRaysIcon, CursorClickIcon, CursorIcon, DashboardIcon, DateIcon, DesktopIcon, DiagramIcon, DirectionDownIcon, DirectionIcon, DirectionLeftIcon, DirectionRightIcon, DirectionUpIcon, DocumentCheckIcon, DocumentIcon, DocumentMagnifyingGlassIcon, DollarIcon, DotIcon, DownloadIcon, DragIcon, DropIcon, DuplicateIcon, EditIcon, type EfficientIconName, type EfficientIconProps, EmailIcon, EmphasisIcon, EraserIcon, ErrorIcon, ExpandIcon, ExternalIcon, EyeIcon, EyeOffIcon, FaceSmileIcon, FilterIcon, FinishIcon, FireIcon, FlagIcon, FolderIcon, FolderOpenIcon, FolderPlusIcon, ForwardIcon, FullWidthIcon, GapIcon, GemIcon, GiftIcon, GlobeIcon, GridIcon, GroundIcon, HandIcon, HandThumbUpIcon, HashIcon, HeadquartersIcon, HeartIcon, HeightIcon, HelpIcon, HelpOffIcon, HexagonIcon, HomeIcon, HoverIcon, IdentificationIcon, ImageIcon, ImageOffIcon, ImagesIcon, InboxIcon, InfoIcon, ItalicIcon, KeyIcon, LayersIcon, LayoutIcon, LetterSpacingIcon, LightbulbIcon, LineBetweenIcon, LineStyleIcon, LinkIcon, LinkSlashIcon, ListIcon, LocationIcon, LockIcon, LogoIcon, LogoutIcon, MapIcon, MediaIcon, MegaphoneIcon, MenuIcon, MetaIcon, MicrophoneIcon, MoneyIcon, MoonIcon, MoreIcon, MoreVerticalIcon, MoveDownIcon, MoveUpIcon, NewspaperIcon, NoSymbolIcon, NoteIcon, NudgeIcon, NumberedListIcon, OpacityIcon, OwnTextIcon, PackageIcon, PackageOpenIcon, PaddingBottomIcon, PaddingLeftIcon, PaddingRightIcon, PaddingTopIcon, PaddingXIcon, PaddingYIcon, PageIcon, PaintBrushIcon, PanelLeftIcon, PanelRightIcon, ParagraphSpacingIcon, ParcelIcon, PasteIcon, PasteStyleIcon, PauseIcon, PenIcon, PeopleIcon, PercentIcon, PhoneHiddenIcon, PhoneIcon, PlacementIcon, PlayIcon, PlusMinusIcon, PowerIcon, PresentationChartBarIcon, PrintIcon, ProductFieldIcon, ProductIcon, ProductSizeIcon, ProgressIcon, QuietIcon, RadioDotIcon, RadiusIcon, ReceiptIcon, ReceiptPercentIcon, ReceiptRefundIcon, RectangleGroupIcon, RedoIcon, RefreshIcon, RemoveCircleIcon, RemoveIcon, RenameIcon, ReplyAllIcon, ReplyIcon, RevertIcon, RobotIcon, RotateIcon, ScaleIcon, ScrollPointIcon, ScrollTextIcon, SearchIcon, SelectAllIcon, SendIcon, ServerIcon, SettingsIcon, ShadowIcon, ShapeEllipseIcon, ShapeRectIcon, ShareIcon, ShieldCheckIcon, ShieldExclamationIcon, SignalIcon, SignalSlashIcon, SitemapIcon, SortIcon, SparklesIcon, SpeakerIcon, SpeakerWaveIcon, SpecTableIcon, SpinnerIcon, SplitIcon, SquareIcon, StarIcon, StateIcon, StatusCircleIcon, StatusDotIcon, StickyIcon, StopCircleIcon, StoreIcon, StrikeIcon, StylesIcon, SubscriptIcon, SuccessBurstIcon, SunIcon, SuperscriptIcon, SwapIcon, SwatchIcon, TableIcon, TabletIcon, TabsIcon, TagIcon, TargetIcon, TeamIcon, TelephoneIcon, TemplateIcon, TextColorIcon, TextLinesIcon, TextSizeIcon, TextSmallIcon, TextValueIcon, ThemeIcon, TicketIcon, TitleIcon, TrashIcon, TriggerIcon, TruckIcon, TvIcon, TypeIcon, TyreIcon, UnderlineIcon, UndoIcon, UploadIcon, VAlignIcon, VerifiedIcon, VideoOffIcon, ViewColumnsIcon, WalletIcon, WarningIcon, WeightIcon, WheelIcon, WidthIcon, WindowIcon, WindowsIcon, WordsFromIcon, WrapIcon, WrenchIcon, WrenchScrewdriverIcon, ZoomInIcon, efficient, efficientIconMeanings };