efficient-easel 0.101.1 → 0.102.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 (231) hide show
  1. package/README.md +37 -0
  2. package/dist/LinkPicker-W2Rtxetz.d.ts +111 -0
  3. package/dist/autosave/index.d.ts +6 -3
  4. package/dist/autosave/index.js +1 -1
  5. package/dist/chrome/index.d.ts +3 -2
  6. package/dist/chrome/index.js +1 -25
  7. package/dist/chunk-26OOWIJJ.js +1 -0
  8. package/dist/chunk-2LK54I4E.js +1 -0
  9. package/dist/chunk-3QVB4AG2.js +3 -0
  10. package/dist/chunk-3U4GP5VA.js +10 -0
  11. package/dist/chunk-3WSPDAK2.js +1 -0
  12. package/dist/chunk-4ES5JGGX.js +1 -0
  13. package/dist/chunk-5464H65G.js +4 -0
  14. package/dist/chunk-57DJOKXT.js +1 -0
  15. package/dist/chunk-5MZ3RNQQ.js +13 -0
  16. package/dist/chunk-5ZBY24K7.js +1 -0
  17. package/dist/chunk-6DJHRLCU.js +25 -0
  18. package/dist/chunk-6FY3PZS3.js +1 -0
  19. package/dist/chunk-6TZTKAB5.js +1 -0
  20. package/dist/chunk-6W7WLPZH.js +1 -0
  21. package/dist/chunk-7F52SZOI.js +2 -0
  22. package/dist/chunk-7MU3RJ6S.js +1 -0
  23. package/dist/chunk-7RNTMJER.js +5 -0
  24. package/dist/chunk-A7ZJII7O.js +1 -0
  25. package/dist/chunk-AJBJ74ME.js +1 -0
  26. package/dist/chunk-AKFJK65Z.js +1 -0
  27. package/dist/chunk-AKZWUV5Z.js +1 -0
  28. package/dist/chunk-BDTITTMW.js +1 -0
  29. package/dist/chunk-BSPCSC45.js +1 -0
  30. package/dist/chunk-BXZ6WLHC.js +22 -0
  31. package/dist/chunk-D7M6IRPJ.js +8 -0
  32. package/dist/chunk-DUVRZ456.js +1 -0
  33. package/dist/chunk-E7GGVILG.js +1 -0
  34. package/dist/chunk-F2FPZIZV.js +62 -0
  35. package/dist/chunk-F6CCTEIX.js +1 -0
  36. package/dist/chunk-FGNR22NY.js +1 -0
  37. package/dist/chunk-FT35FX7D.js +2 -0
  38. package/dist/chunk-FUDHI5I4.js +1 -0
  39. package/dist/chunk-GENAF3P6.js +1 -0
  40. package/dist/chunk-GOTN2KY4.js +2 -0
  41. package/dist/chunk-GXQCZJOP.js +1 -0
  42. package/dist/chunk-GZO72N3Q.js +0 -0
  43. package/dist/chunk-HMX55DYT.js +1 -0
  44. package/dist/chunk-HQ4VVRIC.js +1 -0
  45. package/dist/chunk-HWW4XJOH.js +1 -0
  46. package/dist/chunk-I54UCYOU.js +1 -0
  47. package/dist/chunk-IQ5TA7AM.js +1 -0
  48. package/dist/chunk-IWAPPEL4.js +6 -0
  49. package/dist/chunk-IYT6NN2J.js +1 -0
  50. package/dist/chunk-J4RAY75C.js +1 -0
  51. package/dist/chunk-KCBEE2MC.js +2 -0
  52. package/dist/chunk-KDYIMJTZ.js +1 -0
  53. package/dist/chunk-KQMML6JM.js +4 -0
  54. package/dist/chunk-OM67AJQC.js +1 -0
  55. package/dist/chunk-OYX47SL7.js +1 -0
  56. package/dist/chunk-P67FP7PG.js +9 -0
  57. package/dist/chunk-PP44LCJM.js +1 -0
  58. package/dist/chunk-PWZOS45R.js +2 -0
  59. package/dist/chunk-Q3SQBNJB.js +1 -0
  60. package/dist/chunk-R2HLPNQF.js +1 -0
  61. package/dist/chunk-R5L2E7JX.js +1 -0
  62. package/dist/chunk-R5ZVNJLJ.js +2 -0
  63. package/dist/chunk-RLBXE4EU.js +1 -0
  64. package/dist/chunk-RW4XBUUW.js +1 -0
  65. package/dist/chunk-SERF2FAU.js +1 -0
  66. package/dist/chunk-TEZ6V6PA.js +4 -0
  67. package/dist/chunk-TTJ54QGG.js +18 -0
  68. package/dist/chunk-UH7TGWHR.js +1 -0
  69. package/dist/chunk-UVWVYMMZ.js +1 -0
  70. package/dist/chunk-VLSTGOVD.js +2 -0
  71. package/dist/chunk-VV5ADNBR.js +1 -0
  72. package/dist/chunk-ZE7I3PLX.js +1 -0
  73. package/dist/chunk-ZZ7VLIHQ.js +1 -0
  74. package/dist/drag/index.d.ts +3 -41
  75. package/dist/drag/index.js +1 -18
  76. package/dist/easel/index.js +1 -9
  77. package/dist/{words-BMzV04b1.d.ts → engine-DBxp_v6B.d.ts} +1 -58
  78. package/dist/fields/index.d.ts +2 -109
  79. package/dist/fields/index.js +1 -22
  80. package/dist/gold/index.d.ts +4 -2
  81. package/dist/host-B-byaQxg.d.ts +480 -0
  82. package/dist/menu/index.js +1 -1
  83. package/dist/node-ops/index.js +1 -1
  84. package/dist/panelWidths-D9hTLR25.d.ts +66 -0
  85. package/dist/screen/components/AddBlockRow.d.ts +14 -0
  86. package/dist/screen/components/AddBlockRow.js +1 -0
  87. package/dist/screen/components/AddChildRow.d.ts +39 -0
  88. package/dist/screen/components/AddChildRow.js +1 -0
  89. package/dist/screen/components/AddSidePanel.d.ts +54 -0
  90. package/dist/screen/components/AddSidePanel.js +1 -0
  91. package/dist/screen/components/MediaSidePanel.d.ts +47 -0
  92. package/dist/screen/components/MediaSidePanel.js +1 -0
  93. package/dist/screen/components/NodeContextMenu.d.ts +364 -0
  94. package/dist/screen/components/NodeContextMenu.js +1 -0
  95. package/dist/screen/components/PageEditGuardNotices.d.ts +5 -0
  96. package/dist/screen/components/PageEditGuardNotices.js +1 -0
  97. package/dist/screen/components/PanelToggleIcon.d.ts +14 -0
  98. package/dist/screen/components/PanelToggleIcon.js +1 -0
  99. package/dist/screen/components/PreviewDeviceContext.d.ts +28 -0
  100. package/dist/screen/components/PreviewDeviceContext.js +1 -0
  101. package/dist/screen/components/PreviewPartsContext.d.ts +33 -0
  102. package/dist/screen/components/PreviewPartsContext.js +1 -0
  103. package/dist/screen/components/ScreenChrome.d.ts +5 -0
  104. package/dist/screen/components/ScreenChrome.js +1 -0
  105. package/dist/screen/components/ScreenDocumentContext.d.ts +20 -0
  106. package/dist/screen/components/ScreenDocumentContext.js +1 -0
  107. package/dist/screen/components/ScreenMount.d.ts +75 -0
  108. package/dist/screen/components/ScreenMount.js +1 -0
  109. package/dist/screen/components/ScreenStoreProvider.d.ts +63 -0
  110. package/dist/screen/components/ScreenStoreProvider.js +1 -0
  111. package/dist/screen/components/SectionScreenShell.d.ts +5 -0
  112. package/dist/screen/components/SectionScreenShell.js +16 -0
  113. package/dist/screen/components/SidePanelHead.d.ts +81 -0
  114. package/dist/screen/components/SidePanelHead.js +1 -0
  115. package/dist/screen/components/SlotChildActionsContext.d.ts +41 -0
  116. package/dist/screen/components/SlotChildActionsContext.js +1 -0
  117. package/dist/screen/components/UiIcon.d.ts +52 -0
  118. package/dist/screen/components/UiIcon.js +1 -0
  119. package/dist/screen/components/panel-widths.d.ts +37 -0
  120. package/dist/screen/components/panel-widths.js +1 -0
  121. package/dist/screen/components/usePartBridge.d.ts +66 -0
  122. package/dist/screen/components/usePartBridge.js +1 -0
  123. package/dist/screen/index.d.ts +31 -0
  124. package/dist/screen/index.js +1 -0
  125. package/dist/screen/lib/admin-bridge.d.ts +105 -0
  126. package/dist/screen/lib/admin-bridge.js +1 -0
  127. package/dist/screen/lib/backend-error.d.ts +106 -0
  128. package/dist/screen/lib/backend-error.js +1 -0
  129. package/dist/screen/lib/chrome-theme.d.ts +21 -0
  130. package/dist/screen/lib/chrome-theme.js +1 -0
  131. package/dist/screen/lib/client-only.d.ts +24 -0
  132. package/dist/screen/lib/client-only.js +1 -0
  133. package/dist/screen/lib/content/view-tiers.d.ts +25 -0
  134. package/dist/screen/lib/content/view-tiers.js +1 -0
  135. package/dist/screen/lib/document-addressing.d.ts +20 -0
  136. package/dist/screen/lib/document-addressing.js +1 -0
  137. package/dist/screen/lib/document-contract.d.ts +230 -0
  138. package/dist/screen/lib/document-contract.js +1 -0
  139. package/dist/screen/lib/document-hooks.d.ts +71 -0
  140. package/dist/screen/lib/document-hooks.js +0 -0
  141. package/dist/screen/lib/document-switch.d.ts +74 -0
  142. package/dist/screen/lib/document-switch.js +1 -0
  143. package/dist/screen/lib/failure.d.ts +54 -0
  144. package/dist/screen/lib/failure.js +1 -0
  145. package/dist/screen/lib/host-chrome.d.ts +181 -0
  146. package/dist/screen/lib/host-chrome.js +1 -0
  147. package/dist/screen/lib/host-inbound.d.ts +20 -0
  148. package/dist/screen/lib/host-inbound.js +1 -0
  149. package/dist/screen/lib/host.d.ts +20 -0
  150. package/dist/screen/lib/host.js +1 -0
  151. package/dist/screen/lib/key-scope.d.ts +23 -0
  152. package/dist/screen/lib/key-scope.js +1 -0
  153. package/dist/screen/lib/links/link-filters.d.ts +41 -0
  154. package/dist/screen/lib/links/link-filters.js +0 -0
  155. package/dist/screen/lib/load-error.d.ts +29 -0
  156. package/dist/screen/lib/load-error.js +1 -0
  157. package/dist/screen/lib/media-panel.d.ts +94 -0
  158. package/dist/screen/lib/media-panel.js +1 -0
  159. package/dist/screen/lib/media-picker.d.ts +68 -0
  160. package/dist/screen/lib/media-picker.js +1 -0
  161. package/dist/screen/lib/page-lock.d.ts +5 -0
  162. package/dist/screen/lib/page-lock.js +1 -0
  163. package/dist/screen/lib/puck/add-target-types.d.ts +55 -0
  164. package/dist/screen/lib/puck/add-target-types.js +0 -0
  165. package/dist/screen/lib/puck/block-choice.d.ts +52 -0
  166. package/dist/screen/lib/puck/block-choice.js +1 -0
  167. package/dist/screen/lib/puck/block-types-in.d.ts +39 -0
  168. package/dist/screen/lib/puck/block-types-in.js +1 -0
  169. package/dist/screen/lib/puck/content-tree.d.ts +196 -0
  170. package/dist/screen/lib/puck/content-tree.js +1 -0
  171. package/dist/screen/lib/puck/device-fields.d.ts +126 -0
  172. package/dist/screen/lib/puck/device-fields.js +1 -0
  173. package/dist/screen/lib/puck/field-buckets.d.ts +22 -0
  174. package/dist/screen/lib/puck/field-buckets.js +1 -0
  175. package/dist/screen/lib/puck/field-markers.d.ts +205 -0
  176. package/dist/screen/lib/puck/field-markers.js +1 -0
  177. package/dist/screen/lib/puck/hidable.d.ts +44 -0
  178. package/dist/screen/lib/puck/hidable.js +1 -0
  179. package/dist/screen/lib/puck/palette-sections.d.ts +96 -0
  180. package/dist/screen/lib/puck/palette-sections.js +1 -0
  181. package/dist/screen/lib/puck/panel-fields.d.ts +47 -0
  182. package/dist/screen/lib/puck/panel-fields.js +1 -0
  183. package/dist/screen/lib/puck/panel-no-control-mark.d.ts +74 -0
  184. package/dist/screen/lib/puck/panel-no-control-mark.js +1 -0
  185. package/dist/screen/lib/puck/part-id.d.ts +23 -0
  186. package/dist/screen/lib/puck/part-id.js +1 -0
  187. package/dist/screen/lib/puck/preview-click.d.ts +49 -0
  188. package/dist/screen/lib/puck/preview-click.js +1 -0
  189. package/dist/screen/lib/puck/preview-dom.d.ts +8 -0
  190. package/dist/screen/lib/puck/preview-dom.js +1 -0
  191. package/dist/screen/lib/puck/preview-events.d.ts +25 -0
  192. package/dist/screen/lib/puck/preview-events.js +1 -0
  193. package/dist/screen/lib/puck/preview-selection-context.d.ts +72 -0
  194. package/dist/screen/lib/puck/preview-selection-context.js +1 -0
  195. package/dist/screen/lib/puck/section-doc.d.ts +20 -0
  196. package/dist/screen/lib/puck/section-doc.js +1 -0
  197. package/dist/screen/lib/puck/slot-child-name.d.ts +186 -0
  198. package/dist/screen/lib/puck/slot-child-name.js +1 -0
  199. package/dist/screen/lib/puck/slot-heal.d.ts +5 -0
  200. package/dist/screen/lib/puck/slot-heal.js +1 -0
  201. package/dist/screen/lib/puck/slot-section-spec.d.ts +96 -0
  202. package/dist/screen/lib/puck/slot-section-spec.js +0 -0
  203. package/dist/screen/lib/puck/style-clipboard.d.ts +78 -0
  204. package/dist/screen/lib/puck/style-clipboard.js +1 -0
  205. package/dist/screen/lib/puck/text-control-kinds.d.ts +71 -0
  206. package/dist/screen/lib/puck/text-control-kinds.js +1 -0
  207. package/dist/screen/lib/puck/tree-reveal.d.ts +62 -0
  208. package/dist/screen/lib/puck/tree-reveal.js +1 -0
  209. package/dist/screen/lib/puck/use-section-ops.d.ts +86 -0
  210. package/dist/screen/lib/puck/use-section-ops.js +1 -0
  211. package/dist/screen/lib/screen-parts.d.ts +727 -0
  212. package/dist/screen/lib/screen-parts.js +1 -0
  213. package/dist/screen/lib/section-template-types.d.ts +49 -0
  214. package/dist/screen/lib/section-template-types.js +0 -0
  215. package/dist/screen/lib/section-templates.d.ts +23 -0
  216. package/dist/screen/lib/section-templates.js +1 -0
  217. package/dist/screen/lib/session-context.d.ts +30 -0
  218. package/dist/screen/lib/session-context.js +1 -0
  219. package/dist/screen/lib/session.d.ts +255 -0
  220. package/dist/screen/lib/session.js +1 -0
  221. package/dist/screen/screen.css +1088 -0
  222. package/dist/session-DSQFmIvx.d.ts +43 -0
  223. package/dist/strings/catalogue.d.ts +4 -2
  224. package/dist/strings/catalogue.js +1 -1
  225. package/dist/strings/index.d.ts +4 -2
  226. package/dist/strings/index.js +1 -1
  227. package/dist/style-clipboard/index.js +1 -1
  228. package/dist/{types-DGcCsxs8.d.ts → types-CqY85foL.d.ts} +3 -65
  229. package/dist/words-D_Lnw1Gr.d.ts +59 -0
  230. package/package.json +343 -2
  231. package/dist/chunk-IG3U5NWJ.js +0 -1
@@ -0,0 +1,75 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { j as ScreenTarget, a as DocumentAddressing } from '../../host-B-byaQxg.js';
4
+ import { ScreenParts } from '../lib/screen-parts.js';
5
+ import '../../blocks/index.js';
6
+ import '../../types-E3HrTPg2.js';
7
+ import '../../data/index.js';
8
+ import '../../types-41704JE4.js';
9
+ import '../../resolve-D68pb3Bx.js';
10
+ import '../../plan-DChbUXdS.js';
11
+ import '../lib/document-contract.js';
12
+ import '../lib/session.js';
13
+ import '../lib/host-chrome.js';
14
+ import '../lib/links/link-filters.js';
15
+ import '../../LinkPicker-W2Rtxetz.js';
16
+ import '../lib/document-hooks.js';
17
+ import '../lib/section-template-types.js';
18
+ import '../lib/puck/content-tree.js';
19
+ import '../lib/document-switch.js';
20
+ import '../../engine-DBxp_v6B.js';
21
+ import '../../edit-lock/index.js';
22
+ import '../lib/admin-bridge.js';
23
+ import '../../types-CqY85foL.js';
24
+ import '../../types-DWS-s9z-.js';
25
+ import '../../wordFit-D4S36PvB.js';
26
+ import '../../panelWidths-D9hTLR25.js';
27
+ import '../lib/puck/add-target-types.js';
28
+ import '../lib/puck/block-choice.js';
29
+ import '../lib/puck/slot-section-spec.js';
30
+
31
+ /**
32
+ * The document's provider, round whatever a layer stands under it. The layer's
33
+ * body is the provider's one child, as it has always been: it stays mounted
34
+ * across every document the editor opens, and `DocumentScreen` is what it ends
35
+ * in.
36
+ *
37
+ * How the layer's documents are ADDRESSED goes to the provider from here
38
+ * (lib/document-addressing): the provider stands above the store, where
39
+ * the screen's other parts are handed over, so this one is a prop. Without it
40
+ * the provider holds one document that nothing stores.
41
+ */
42
+ declare function ScreenMount({ target, addressing, onHostMessage, children, }: {
43
+ target: ScreenTarget;
44
+ /** ONE object for the life of the mount. */
45
+ addressing?: DocumentAddressing;
46
+ /** The layer's own host messages (the website's: lib/website-host-inbound). */
47
+ onHostMessage?: (raw: unknown) => boolean;
48
+ children?: ReactNode;
49
+ }): react.JSX.Element;
50
+ /**
51
+ * THE SCREEN OVER THE OPEN DOCUMENT: it waits until there is a document to
52
+ * draw, then mounts the store on it and the chrome under the store.
53
+ *
54
+ * A layer's own context has to stand round the store and UNDER the waits — it
55
+ * is unmounted with the store when the editor moves to another document, and
56
+ * built again for the next. So the layer is not handed a place to put this
57
+ * component among its providers; it hands its providers in (`wrap`), and they
58
+ * are called for only once there is a document. What `wrap` is handed it must
59
+ * place, both: the screen, and the prompt, which is null until a switch of
60
+ * document is held back.
61
+ */
62
+ declare function DocumentScreen({ config, parts, wrap, }: {
63
+ /** The layer's parts of the screen (lib/screen-parts): handed in, so the
64
+ * screen names no layer's (the website's are WEBSITE_SCREEN). */
65
+ parts: ScreenParts;
66
+ /** The blocks this editor has, as the store takes them. Followed live: a
67
+ * layer may rebuild it while the editor stays open. */
68
+ config: unknown;
69
+ /** The layer's own context, stood round the store. A plain function called
70
+ * where the screen is drawn, and not a component: what it returns is mounted
71
+ * in this component's place, with nothing between. */
72
+ wrap?: (screen: ReactNode, leavePrompt: ReactNode) => ReactNode;
73
+ }): string | number | boolean | Iterable<ReactNode> | react.JSX.Element | null | undefined;
74
+
75
+ export { DocumentScreen, ScreenMount as default };
@@ -0,0 +1 @@
1
+ export{DocumentScreen,ScreenMount as default}from"../../chunk-3U4GP5VA.js";import"../../chunk-GXQCZJOP.js";import"../../chunk-F2FPZIZV.js";import"../../chunk-26OOWIJJ.js";import"../../chunk-PP44LCJM.js";import"../../chunk-FGNR22NY.js";import"../../chunk-AKFJK65Z.js";import"../../chunk-PWZOS45R.js";import"../../chunk-7F52SZOI.js";import"../../chunk-R2HLPNQF.js";import"../../chunk-ZE7I3PLX.js";import"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-HWW4XJOH.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import"../../chunk-OM67AJQC.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-5MZ3RNQQ.js";import"../../chunk-SERF2FAU.js";import"../../chunk-E7GGVILG.js";import"../../chunk-VV5ADNBR.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-UVWVYMMZ.js";import"../../chunk-BSPCSC45.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-FT35FX7D.js";import"../../chunk-7MU3RJ6S.js";import"../../chunk-A7ZJII7O.js";import"../../chunk-6FY3PZS3.js";import"../../chunk-AKZWUV5Z.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-OYX47SL7.js";import"../../chunk-HMX55DYT.js";import"../../chunk-Q3SQBNJB.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-VLSTGOVD.js";import"../../chunk-R5ZVNJLJ.js";import"../../chunk-3QVB4AG2.js";import"../../chunk-7RNTMJER.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-GENAF3P6.js";import"../../chunk-J4RAY75C.js";import"../../chunk-IWAPPEL4.js";import"../../chunk-KQMML6JM.js";import"../../chunk-6TZTKAB5.js";import"../../chunk-AJBJ74ME.js";import"../../chunk-KDYIMJTZ.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-TEZ6V6PA.js";import"../../chunk-ZZ7VLIHQ.js";import"../../chunk-5464H65G.js";import"../../chunk-F6CCTEIX.js";import"../../chunk-FUDHI5I4.js";import"../../chunk-57DJOKXT.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-P67FP7PG.js";import"../../chunk-AELNNAFM.js";import"../../chunk-BXZ6WLHC.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-RW4XBUUW.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-2LK54I4E.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-OWBO4WKA.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-P6O363EE.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-6DJHRLCU.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-JUQ6YJCG.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-TTJ54QGG.js";import"../../chunk-O2NLQBFX.js";import"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -0,0 +1,63 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { Data } from '../../blocks/index.js';
4
+ import { P as Permissions } from '../../types-E3HrTPg2.js';
5
+ import { ScreenParts } from '../lib/screen-parts.js';
6
+ import '../../data/index.js';
7
+ import '../../types-41704JE4.js';
8
+ import '../../resolve-D68pb3Bx.js';
9
+ import '../../plan-DChbUXdS.js';
10
+ import '../../types-CqY85foL.js';
11
+ import '../../types-DWS-s9z-.js';
12
+ import '../../wordFit-D4S36PvB.js';
13
+ import '../../edit-lock/index.js';
14
+ import '../../panelWidths-D9hTLR25.js';
15
+ import '../lib/host-chrome.js';
16
+ import '../lib/links/link-filters.js';
17
+ import '../../LinkPicker-W2Rtxetz.js';
18
+ import '../lib/session.js';
19
+ import '../lib/document-contract.js';
20
+ import '../lib/document-hooks.js';
21
+ import '../lib/section-template-types.js';
22
+ import '../lib/puck/content-tree.js';
23
+ import '../lib/puck/add-target-types.js';
24
+ import '../lib/puck/block-choice.js';
25
+ import '../lib/puck/slot-section-spec.js';
26
+
27
+ /**
28
+ * THE EDITOR'S STORE, and the screen's parts under it: the engine's store over
29
+ * one document, its undo keys, and `ScreenPartsProvider` with the parts the
30
+ * mounting layer hands in. It names no layer, so it moves into efficient-easel
31
+ * with the screen (doc/adr/0004); the website's mount with the website's parts
32
+ * is components/SiteEditorProvider.
33
+ *
34
+ * What follows is the store's own reasoning, from where it was written:
35
+ *
36
+ * THE WEBSITE EDITOR'S STORE — efficient-easel's engine in place of `<Puck>`
37
+ * (blueprint step 5.5), taking the props `<Puck>` took here:
38
+ *
39
+ * - `data` is read ONCE, when the editor mounts — as `<Puck>` read it. A
40
+ * different page is a new mount: the document context drops to "Loading…"
41
+ * on a retarget, and the standalone Section editor keys this by section.
42
+ * - `config` is followed LIVE (`setConfig`): the Site styles gap row rebuilds
43
+ * seven container blocks' fields while the editor stays open.
44
+ * - `onChange` hears every change to the document — once per change, once per
45
+ * batch, once per undo — through a subscription, so the newest callback is
46
+ * the one called.
47
+ * - `permissions` follow the edit lock (`documentPermissions`, every key
48
+ * named).
49
+ *
50
+ * `<Puck>`'s `overrides` are the canvas's business now — see `SiteCanvas`.
51
+ */
52
+ declare function ScreenStoreProvider({ config, data, onChange, permissions, parts, children, }: {
53
+ /** The screen's parts, from the layer that owns the document (the website's
54
+ * are components/WebsiteScreenParts `WEBSITE_SCREEN`). */
55
+ parts: ScreenParts;
56
+ config: unknown;
57
+ data: Data;
58
+ onChange?: (data: Data) => void;
59
+ permissions?: Partial<Permissions>;
60
+ children?: ReactNode;
61
+ }): react.JSX.Element;
62
+
63
+ export { ScreenStoreProvider as default };
@@ -0,0 +1 @@
1
+ export{ScreenStoreProvider as default}from"../../chunk-VLSTGOVD.js";import"../../chunk-R5ZVNJLJ.js";import"../../chunk-5464H65G.js";import"../../chunk-P67FP7PG.js";import"../../chunk-AELNNAFM.js";import"../../chunk-BXZ6WLHC.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-P6O363EE.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -0,0 +1,5 @@
1
+ import * as react from 'react';
2
+
3
+ declare function SectionScreenShell(): react.JSX.Element;
4
+
5
+ export { SectionScreenShell as default };
@@ -0,0 +1,16 @@
1
+ import{AddBlockRow as e}from"../../chunk-D7M6IRPJ.js";import{scrollPreviewToSection as n,gotoPreviewSlide as o}from"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import{slotChildRowName as r}from"../../chunk-HWW4XJOH.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import{useEaselUndoKeys as t}from"../../chunk-OM67AJQC.js";import{SlotChildActionsProvider as s}from"../../chunk-KCBEE2MC.js";import{DEFAULT_PANEL_W as i}from"../../chunk-SERF2FAU.js";import{usePartBridge as c}from"../../chunk-E7GGVILG.js";import{useSectionOps as p}from"../../chunk-VV5ADNBR.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import{useScreenDocument as l}from"../../chunk-FT35FX7D.js";import"../../chunk-7MU3RJ6S.js";import"../../chunk-A7ZJII7O.js";import"../../chunk-6FY3PZS3.js";import"../../chunk-AKZWUV5Z.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-OYX47SL7.js";import"../../chunk-HMX55DYT.js";import"../../chunk-Q3SQBNJB.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-R5ZVNJLJ.js";import"../../chunk-6TZTKAB5.js";import"../../chunk-AJBJ74ME.js";import"../../chunk-KDYIMJTZ.js";import"../../chunk-HQ4VVRIC.js";import{MediaSidePanel as d}from"../../chunk-TEZ6V6PA.js";import{useMediaPanel as m,usePanelPick as a,cancelPanelPick as u}from"../../chunk-ZZ7VLIHQ.js";import{SELECTION_MODE as h,useScreenPinned as k,useScreenCanvasFrame as j,useScreenInspectorPanel as f,sameInspectorMode as N,useStandaloneScreenBridges as y,useScreenBlockLook as A,useScreenBlockRules as S}from"../../chunk-5464H65G.js";import{nestsInTree as x,slotFieldsOf as C}from"../../chunk-FUDHI5I4.js";import{useEasel as J}from"../../chunk-P67FP7PG.js";import"../../chunk-AELNNAFM.js";import"../../chunk-BXZ6WLHC.js";import"../../chunk-EOJNJCMJ.js";import{LayersTree as P,Subtree as E,TreeRow as T,TreeRowAction as D,TreeSeam as Z}from"../../chunk-ZFDCDJNZ.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-BDTITTMW.js";import{saveIndicator as g}from"../../chunk-H6DDIBQ4.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-P6O363EE.js";import"../../chunk-FPOKPNO4.js";import{SaveState as v,panelWidthVars as L}from"../../chunk-6DJHRLCU.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-JUQ6YJCG.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-TTJ54QGG.js";import"../../chunk-O2NLQBFX.js";import{useTreeDrag as R}from"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import{TrashIcon as O}from"../../chunk-L5KW4HG5.js";import{zoneKey as z,parseZoneKey as B}from"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";import{useState as I,useRef as F,useEffect as H,useCallback as M,Fragment as b}from"react";import{jsxs as w,jsx as G,Fragment as W}from"react/jsx-runtime";var Y=e=>n=>{n.target.closest(".es-tree-select, button")||e()},$={rowClick:Y};function V(){const{saveState:V,readOnly:Q}=l(),X=p(),{appState:K,selectedItem:U,config:q}=J(e=>e),[_,ee]=I(h),[ne,oe]=I(null),{first:re,last:te,panelOf:se}=k(),ie=se(re),ce=j(),pe=f(),le=K.data.content?.[0]??null,de=le?.props.id??null,me=le?.type===re,ae=le?.type===te,ue=F(null),he=F(null);t(he);const ke=m(),je=a();H(()=>{const e=he.current;if(!je||!e)return;const n=e=>{"Escape"===e.key&&u()};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)},[je]),H(()=>{de&&ue.current!==de&&(ue.current=de,me?ee(ie??h):U||X.select({index:0}))},[de,U,X,me]);const fe=M(e=>ee(n=>N(n,e)?n:e),[]),Ne=y({kind:_.kind,mode:_,open:fe,show:e=>ee(e),reveal:()=>{}}),{selectNode:ye}=c({mode:_,setMode:ee,onOpenPart:n}),Ae=A(),{labelAtLevel:Se,Icon:xe}=Ae,{canAddTo:Ce}=S(),Je=e=>q.components[e]?.label??e,Pe=e=>Se(e,"section",Je(e)),Ee=!me&&"puck"===_.kind&&U?.props.id===de,Te=le?Ce(le.type)?.spec??null:null,De=le&&Te?`${le.props.id}:${Te.slot}`:null,Ze=le&&Te&&Array.isArray(le.props[Te.slot])?le.props[Te.slot]:[],ge=e=>r(e,Je,Ae.plainText),ve=(e,r)=>{le&&Te&&De&&(ee(h),Te.slider?(o(String(le.props.id),e),X.select({index:e,zone:De}),n(String(le.props.id))):(X.select({index:e,zone:De}),n(r)))},Le=()=>{if(!le||!Te||!De)return;const e=Ze.length;X.insertComponent(De,Te.childType,e),ee(h),Te.slider?requestAnimationFrame(()=>{o(String(le.props.id),e),X.select({index:e,zone:De})}):X.select({index:e,zone:De})},Re=e=>C(q,e),Oe=e=>{const{parentId:n,slot:o}=B(e),r=e=>{if(!e)return null;if(String(e.props.id)===n)return e;for(const n of Re(e.type)){const o=Array.isArray(e.props[n])?e.props[n]:[];for(const e of o){const n=r(e);if(n)return n}}return null},t=r(le)?.props[o];return Array.isArray(t)?t.length:0},ze=(e,n,o)=>{const r=Math.min(Math.max(o,0),Oe(e)),t=n<r?r-1:r;t!==n&&(X.reorderComponent(e,n,t),ee(h),X.select({index:t,zone:e}))},Be=R({keyOf:e=>e.id,readOnly:Boolean(Q),canDrop:(e,n)=>z(n)===e.zone&&n.index>=0&&n.index<=Oe(e.zone),onDrop:(e,n)=>ze(e.zone,e.index,n.index),onStep:(e,n)=>ze(e.zone,e.index,n<0?e.index-1:e.index+2)}),Ie=(e,n)=>/* @__PURE__ */G(Z,{...Q?{}:Be.seam({place:{...B(e),index:n}})},`seam:${e}:${n}`),Fe=e=>Ae.blockRowName(e,Je),He=(e,o,r)=>{ee(h),X.select({index:o,zone:e}),n(r)},Me=(e,n,o)=>{X.insertComponent(e,n,o),ee(h),X.select({index:o,zone:e}),oe(null)},be=(n,o,r)=>/* @__PURE__ */G(e,{choices:r,open:ne===n,onToggle:()=>oe(ne===n?null:n),onPick:e=>Me(n,e,o)}),we=(e,n)=>{const o=Re((r=e).type).flatMap(e=>(Array.isArray(r.props[e])?r.props[e]:[]).map((n,o)=>({child:n,zone:`${r.props.id}:${e}`,index:o})));var r;const t=Ce(e.type),s=t?.choices??null,i="footer"===t?.source?Fe:ge;/* @__PURE__ */
2
+ return w(W,{children:[o.map(({child:e,zone:o,index:r})=>{const t=U?.props.id===e.props.id,s=x(q,e.type,n),c=i(e),p=String(e.props.id),l=()=>He(o,r,p),{rowProps:d,...m}=Be.row({item:{id:p,zone:o,index:r},place:{...B(o),index:r}},{onClick:Y(l)});/* @__PURE__ */
3
+ return w(b,{children:[0===r&&Ie(o,0),
4
+ /* @__PURE__ */G(T,{icon:/* @__PURE__ */G(xe,{type:e.type,size:13}),name:c,selected:t,onSelect:l,...m,actions:/* @__PURE__ */G(D,{kind:"delete",label:`Delete ${c}`,onClick:()=>{return e=o,n=r,X.removeComponent(e,n),ee(h),void X.select(null);var e,n},children:/* @__PURE__ */G(O,{size:13})}),rowProps:d}),s&&/* @__PURE__ */G(E,{children:we(e,n+1)}),Ie(o,r+1)]},String(e.props.id??`${o}-${r}`))}),t&&s?be(`${e.props.id}:${t.slot}`,o.length,s):null]})},Ge="HeroSingle"===le?.type,We=Boolean(le)&&(Boolean(Te)||ae||me||Ge);/* @__PURE__ */
5
+ return w("div",{ref:he,className:"sf-editor es-editor",style:L(i),children:[
6
+ /* @__PURE__ */G("div",{className:"sf-section-bar",children:/* @__PURE__ */G(v,{...g(V),role:"status"})}),
7
+ /* @__PURE__ */w("div",{className:"sf-body",children:[je&&ke?/* @__PURE__ */G("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:/* @__PURE__ */G(d,{panel:ke,pick:je})}):We&&le&&/* @__PURE__ */w("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:[
8
+ /* @__PURE__ */G("div",{className:"sf-panel-head",children:/* @__PURE__ */G("button",{type:"button",className:"sf-panel-title sf-panel-title--btn "+(Ee?"is-selected":""),"aria-pressed":Ee,title:me?"Header settings":`${Pe(le.type)} settings`,onClick:()=>{me?ee(ie??h):(ee(h),X.select({index:0}))},children:Pe(le.type)})}),
9
+ /* @__PURE__ */G(P,{className:"sf-tree sf-scroll",rootProps:Be.rootProps(),children:/* @__PURE__ */G(E,{children:me?
10
+ /* @__PURE__ */G(T,{icon:/* @__PURE__ */G(xe,{type:"header",size:13}),name:"Header settings",selected:_.kind===ie?.kind,onSelect:()=>ee(ie??h),rowProps:{onClick:Y(()=>ee(ie??h))}}):Te?/* @__PURE__ */w(W,{children:[Ze.map((e,n)=>{const o=U?.props.id===e.props.id,r=ge(e),t=String(e.props.id),s=()=>ve(n,t),{rowProps:i,...c}=Be.row({item:{id:t,zone:De,index:n},place:{...B(De),index:n}},{onClick:Y(s)});/* @__PURE__ */
11
+ return w(b,{children:[0===n&&Ie(De,0),
12
+ /* @__PURE__ */G(T,{icon:/* @__PURE__ */G(xe,{type:e.type,size:13}),name:r,selected:o,onSelect:s,...c,actions:/* @__PURE__ */G(D,{kind:"delete",label:`Delete ${r}`,onClick:()=>{return e=n,void(De&&(X.removeComponent(De,e),ee(h),X.select(null)));var e},children:/* @__PURE__ */G(O,{size:13})}),rowProps:i}),Ie(De,n+1)]},String(e.props.id??n))}),
13
+ /* @__PURE__ */w("button",{type:"button",className:"sf-add-card",onClick:Le,children:[
14
+ /* @__PURE__ */G("span",{className:"sf-plus sf-plus--sm",children:"+"}),Te.addLabel]}),de?Ne.partRows?.(le,$):null]}):we(le,1)})})]}),
15
+ /* @__PURE__ */G("div",{className:"sf-center",children:/* @__PURE__ */G("div",{className:"sf-preview-host",children:/* @__PURE__ */G(ce,{})})}),
16
+ /* @__PURE__ */G(s,{value:{selectChild:(e,n,o,r)=>"section"===Ce(r)?.source?ve(n,o):He(e,n,o),addChild:(e,n,o,r,t)=>"section"===Ce(t)?.source?Le():Me(`${e}:${n}`,o,r),childRowName:ge,blockRowName:Fe},children:/* @__PURE__ */G(pe,{mode:_,onOpenWebsiteSettings:Ne.openSettings??(()=>{}),onSelectNode:ye,hideNodeActions:!0})})]})]})}export{V as default};
@@ -0,0 +1,81 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ /**
5
+ * THE HEAD OF EVERY SIDE PANEL, ON BOTH SIDES (owner, 2026-10-04).
6
+ *
7
+ * The owner, with a screenshot: the left panel has an ✕ that collapses it and
8
+ * the right panel has nothing — redesign it, make it consistent and easier to
9
+ * understand. It was worse than one missing button:
10
+ *
11
+ * • the left heads were six hand-written copies of `.sf-panel-head` (one
12
+ * line, 24px buttons) while the right head was efficient-easel's
13
+ * `InspectorHead` (a glyph chip, a name over a kind line, 28px buttons), so
14
+ * the two panels did not even share a height;
15
+ * • the same ✕ meant THREE things on the left — hide the panel (Pages,
16
+ * Layers, Site styles, Media library), close Add, cancel choosing an image
17
+ * — and Layers drew it beside a collapse-all glyph that also read as an ✕.
18
+ *
19
+ * So every head is now ONE shape, the engine's `InspectorHead`, and every
20
+ * control in it means one thing everywhere:
21
+ *
22
+ * [chip] Title [actions] │ [hide]
23
+ * context line
24
+ *
25
+ * • the chip is the glyph of what the panel shows (a rail item's own glyph on
26
+ * the left, the selected thing's type on the right);
27
+ * • the context line says which page, website or field the panel is about;
28
+ * • actions are the panel's own tools, all 28px `InspectorIconButton`s;
29
+ * • a MODE laid over a panel (Add, choosing an image) names its way out in a
30
+ * WORD — "Done", "Cancel" — never a glyph;
31
+ * • the HIDE button is always last, on both panels; a hidden panel leaves a
32
+ * strip at its edge with SHOW in it ({@link PanelShowStrip}), drawn with
33
+ * the same picture ({@link PanelToggleIcon}), so hiding and showing are one
34
+ * control in one place. (The top bar's two toggles said the same thing a
35
+ * second time, and went.) There is no ✕ in a panel head: ✕ closes windows.
36
+ */
37
+ declare function SidePanelHead({ icon, title, context, actions, side, onHide, }: {
38
+ /** A 15px glyph for what the panel shows. */
39
+ icon: ReactNode;
40
+ /** The panel's name — the panel's `h2`. */
41
+ title: ReactNode;
42
+ /** Which page, website or field it is about. */
43
+ context: ReactNode;
44
+ /** The panel's own tools, or a mode's way out ({@link PanelModeExit}). */
45
+ actions?: ReactNode;
46
+ side?: "left" | "right";
47
+ /** Hide this panel. Omitted where the panel cannot be hidden (the standalone
48
+ * section editor has no panel toggles), and then no button is drawn. */
49
+ onHide?: () => void;
50
+ }): react.JSX.Element;
51
+ /**
52
+ * Hide a side panel — the last button of its head, after a hairline when the
53
+ * panel has tools of its own. Exported for the right panel, whose head is
54
+ * `InspectorHead` drawn by SectionEditor around the selected node.
55
+ */
56
+ declare function PanelHideButton({ side, onHide, divider, }: {
57
+ side: "left" | "right";
58
+ onHide: () => void;
59
+ divider?: boolean;
60
+ }): react.JSX.Element;
61
+ /**
62
+ * What a HIDDEN side panel leaves behind: a strip at its edge holding one
63
+ * button, Show panel, drawn with the same picture as the Hide panel button
64
+ * that put it there. It is the only way back since the top bar's two panel
65
+ * toggles were removed (owner, 2026-10-04: they duplicated the heads' Hide
66
+ * button). The left panel also comes back from any rail item; the right panel
67
+ * otherwise only for a few canvas clicks (the header, a ticker, a text part),
68
+ * so without this strip a hidden settings panel could be stranded.
69
+ */
70
+ declare function PanelShowStrip({ side, onShow }: {
71
+ side: "left" | "right";
72
+ onShow: () => void;
73
+ }): react.JSX.Element;
74
+ /** A mode's way out, in a word ("Done", "Cancel") — see the head's rules above. */
75
+ declare function PanelModeExit({ label, onClick, description }: {
76
+ label: string;
77
+ onClick: () => void;
78
+ description?: string;
79
+ }): react.JSX.Element;
80
+
81
+ export { PanelHideButton, PanelModeExit, PanelShowStrip, SidePanelHead as default };
@@ -0,0 +1 @@
1
+ export{PanelHideButton,PanelModeExit,PanelShowStrip,SidePanelHead as default}from"../../chunk-IWAPPEL4.js";import"../../chunk-KQMML6JM.js";import"../../chunk-6DJHRLCU.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-JUQ6YJCG.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-L5KW4HG5.js";
@@ -0,0 +1,41 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { TreeItem } from '../lib/puck/content-tree.js';
4
+
5
+ type SlotChildActions = {
6
+ /**
7
+ * Select a child of a slot — the host's own, with the four arguments a tree row
8
+ * passes: the compound `"<parentId>:<slot>"` zone, the child's index in it, the
9
+ * child's id, and the PARENT's type (which is what tells the host whether this
10
+ * slot is a slider that has to be advanced first).
11
+ */
12
+ selectChild: (zone: string, index: number, id: string, parentType: string) => void;
13
+ /** Append a child to a slot and select it — the host's own, same ordering. */
14
+ addChild: (parentId: string, slot: string, childType: string, atIndex: number, parentType: string) => void;
15
+ /** What the host calls this child in a row. One rule, two places that draw it. */
16
+ childRowName: (child: TreeItem) => string;
17
+ /**
18
+ * …and what it calls a FOOTER BLOCK, which has always been a second rule
19
+ * (`blockRowName` in both hosts): a Menu shows its heading or the menu it is
20
+ * bound to, a Text its first words, an Email signup its heading. Card 66200
21
+ * gave the Footer and its Groups the same panel list, and the two rules are
22
+ * not interchangeable — a FooterText carries none of the keys the slot-section
23
+ * rule reads, so it would fall through to the component label and three
24
+ * different blocks would all read "Text".
25
+ *
26
+ * It travels the same way and for the same reason as `childRowName`: the host
27
+ * owns the word, and a list that named its rows itself would be a rule that
28
+ * looks right until the day the tree and the panel disagree.
29
+ * `rowNamerFor` (components/SlotChildRows) is the one place that picks between
30
+ * the two.
31
+ */
32
+ blockRowName: (child: TreeItem) => string;
33
+ };
34
+ declare function SlotChildActionsProvider({ value, children, }: {
35
+ value: SlotChildActions;
36
+ children: ReactNode;
37
+ }): react.JSX.Element;
38
+ /** The host's slot-child actions, or null where no host registered any. */
39
+ declare function useSlotChildActions(): SlotChildActions | null;
40
+
41
+ export { type SlotChildActions, SlotChildActionsProvider, useSlotChildActions };
@@ -0,0 +1 @@
1
+ export{SlotChildActionsProvider,useSlotChildActions}from"../../chunk-KCBEE2MC.js";
@@ -0,0 +1,52 @@
1
+ import * as react from 'react';
2
+ import { CSSProperties } from 'react';
3
+
4
+ /**
5
+ * UiIcon — the single source of truth for the small line-icons that stand for an
6
+ * ACTION or a STATE: show, hide, search, open elsewhere, rename, delete, unfold.
7
+ *
8
+ * The sibling of {@link SectionIcon}, and the split between them is the question
9
+ * each one answers. `SectionIcon` answers *"what kind of section is this?"* — its
10
+ * 37 glyphs are keyed by Puck component type (Hero, ProductGrid, Footer…).
11
+ * `UiIcon` answers *"what will this control do to it?"* — its keys are verbs, not
12
+ * nouns. Neither is a place to put the other's glyphs.
13
+ *
14
+ * Card 66058 built it. Before it, seven of these drawings existed twice or more —
15
+ * the eye in FOUR files — and one had already drifted: the magnifier was two
16
+ * different pictures (`l-4.3-4.3` in the editor's two search fields,
17
+ * `l-3.8-3.8` in the shopper's header and command palette). That is the failure
18
+ * `doc/editor-ui.md` E2 exists to prevent, so the drawings live here now and the
19
+ * call sites reference them. `scripts/test-glyph-single-home.mjs` keeps it that
20
+ * way: any geometry that reappears in a second file fails `just check`.
21
+ *
22
+ * NOT `efficient-easel`, deliberately. That package is ours and E2 sends shared
23
+ * editor chrome to it, but two of these seven are drawn on the STOREFRONT —
24
+ * `Header` and `SearchDialog` — and an editor package can never be their home.
25
+ * A set split across two repos by which surface happens to use it is a second
26
+ * vocabulary with extra steps. `QUESTIONS-66048.md` reached the same answer from
27
+ * the other direction (draw them in the shop first; move a whole coherent set
28
+ * later, as one card, not one glyph at a time across two release cycles).
29
+ *
30
+ * WRAPPER ATTRIBUTES ARE THE CALLER'S. Size, stroke weight and cap style are
31
+ * passed in rather than fixed, because they legitimately differ — a 10px caret
32
+ * in the dense page tree, an 18px magnifier in the storefront header. Only the
33
+ * GEOMETRY is owned here. That is also what let this card move every glyph with
34
+ * its drawn output unchanged; see `scripts/test-glyph-parity.tsx`.
35
+ */
36
+ /** What the icon means, named by the action — never by the picture. */
37
+ type UiIconName = "eye" | "eye-off" | "search" | "external-link" | "pencil" | "trash" | "chevron-right";
38
+ declare function UiIcon({ name, size, strokeWidth, rounded, className, style, }: {
39
+ name: UiIconName;
40
+ /** Rendered width AND height in px. Required — there is no house default: the
41
+ * call sites run from a 10px caret to an 18px header magnifier, and a silent
42
+ * default is how one of them would quietly change size. */
43
+ size: number;
44
+ strokeWidth?: number;
45
+ /** Round line ends and joins. Off matches the older inspector glyphs, whose
46
+ * butt caps this card preserved rather than restyled. */
47
+ rounded?: boolean;
48
+ className?: string;
49
+ style?: CSSProperties;
50
+ }): react.JSX.Element;
51
+
52
+ export { type UiIconName, UiIcon as default };
@@ -0,0 +1 @@
1
+ export{UiIcon as default}from"../../chunk-5MZ3RNQQ.js";
@@ -0,0 +1,37 @@
1
+ export { M as MAX_PANEL_W, a as MIN_PANEL_W, p as panelWidthVars } from '../../panelWidths-D9hTLR25.js';
2
+ import 'react';
3
+
4
+ /**
5
+ * The storefront editor's side-panel widths (px).
6
+ *
7
+ * THE TWO SIDE PANELS ARE THE SHELL'S (efficient-easel/chrome, lifted from this
8
+ * file): 288 left, 320 right, dragged between 220 and 560, written to the editor
9
+ * ROOT as `--es-left-w` / `--es-right-w` by the shell's `panelWidthVars`. The
10
+ * campaign editor opens on the same numbers. Card 8810's measurement of why the
11
+ * right panel is 320 lives with the constant, in the shell.
12
+ *
13
+ * What is the WEBSITE's alone is the key the merchant's choice is kept under.
14
+ * The page chrome (ScreenChrome) makes both drag-resizable and
15
+ * persists them; the standalone section editor (SectionScreenShell) pins the
16
+ * defaults.
17
+ *
18
+ * There was a third band, the Add dialog's category nav. It went with the
19
+ * dialog (blueprint step 3.7): Add is the left panel now, at the left panel's
20
+ * width, and a width saved under the old `addCats` key is simply ignored.
21
+ */
22
+
23
+ declare const PANEL_WIDTHS_KEY = "sf-editor-panel-widths";
24
+ declare const DEFAULT_PANEL_W: {
25
+ readonly left: 288;
26
+ readonly right: 320;
27
+ };
28
+ /** Which resizable panel a width belongs to. */
29
+ type PanelSide = "left" | "right";
30
+ type PanelWidths = {
31
+ left: number;
32
+ right: number;
33
+ };
34
+ /** Clamp a width into the panels' resizable band and round to a whole pixel. */
35
+ declare const clampPanelWidth: (w: number) => number;
36
+
37
+ export { DEFAULT_PANEL_W, PANEL_WIDTHS_KEY, type PanelSide, type PanelWidths, clampPanelWidth };
@@ -0,0 +1 @@
1
+ export{DEFAULT_PANEL_W,PANEL_WIDTHS_KEY,clampPanelWidth}from"../../chunk-SERF2FAU.js";export{MAX_PANEL_W,MIN_PANEL_W,panelWidthVars}from"../../chunk-6DJHRLCU.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-JUQ6YJCG.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-L5KW4HG5.js";
@@ -0,0 +1,66 @@
1
+ import { ScreenInspectorMode } from '../lib/screen-parts.js';
2
+ import 'react';
3
+ import '../../blocks/index.js';
4
+ import '../../types-E3HrTPg2.js';
5
+ import '../../data/index.js';
6
+ import '../../types-41704JE4.js';
7
+ import '../../resolve-D68pb3Bx.js';
8
+ import '../../plan-DChbUXdS.js';
9
+ import '../../types-CqY85foL.js';
10
+ import '../../types-DWS-s9z-.js';
11
+ import '../../wordFit-D4S36PvB.js';
12
+ import '../../edit-lock/index.js';
13
+ import '../../panelWidths-D9hTLR25.js';
14
+ import '../lib/host-chrome.js';
15
+ import '../lib/links/link-filters.js';
16
+ import '../../LinkPicker-W2Rtxetz.js';
17
+ import '../lib/session.js';
18
+ import '../lib/document-contract.js';
19
+ import '../lib/document-hooks.js';
20
+ import '../lib/section-template-types.js';
21
+ import '../lib/puck/content-tree.js';
22
+ import '../lib/puck/add-target-types.js';
23
+ import '../lib/puck/block-choice.js';
24
+ import '../lib/puck/slot-section-spec.js';
25
+
26
+ /**
27
+ * The editor-chrome half of the click→part bridge, in ONE place because both
28
+ * shells need exactly the same behaviour: the page chrome
29
+ * (ScreenChrome) and the standalone section editor
30
+ * (SectionScreenShell). The three older sub-block bridges are wired twice, once
31
+ * per shell, and the second copy is where they drift.
32
+ *
33
+ * Three wires, all of them symmetrical:
34
+ *
35
+ * - a click in the preview on an anchored part opens that part's panel;
36
+ * - a click in the preview on anything ELSE inside a section reports the
37
+ * SECTION, which closes an open part panel. That matters because Puck's own
38
+ * selection may not change on such a click (the section was already
39
+ * selected), so nothing else would tell the chrome to drop back;
40
+ * - the open panel is mirrored back into the preview, so the part it is editing
41
+ * draws its selected outline.
42
+ *
43
+ * It deliberately does NOT move the Puck selection when a part opens — exactly
44
+ * like the ticker / Background / Text bridges it joins. The Layers tree, undo,
45
+ * redo and autosave therefore see nothing at all, which is the cheapest possible
46
+ * proof that they behave as they did before.
47
+ */
48
+ declare function usePartBridge({ mode, setMode, onOpenPart, }: {
49
+ mode: ScreenInspectorMode;
50
+ setMode: (update: (current: ScreenInspectorMode) => ScreenInspectorMode) => void;
51
+ /** Chrome reaction when a part panel opens — reveal the right panel, scroll
52
+ * the canvas. Differs per shell, so it is passed in rather than assumed. */
53
+ onOpenPart?: (nodeId: string) => void;
54
+ }): {
55
+ /** Show `nodeId`'s OWN settings — the way back out of a part panel. */
56
+ selectNode: (nodeId: string) => void;
57
+ /**
58
+ * The part panel that is open, as `"<nodeId>::<propKey>"`, or null — the
59
+ * value this hook already mirrors into the preview so the open part draws its
60
+ * outline. Returned so the LAYERS TREE can mark the same row selected (card
61
+ * 66268) without a second spelling of the id: one expression, two readers.
62
+ */
63
+ openPartId: string | null;
64
+ };
65
+
66
+ export { usePartBridge };
@@ -0,0 +1 @@
1
+ export{usePartBridge}from"../../chunk-E7GGVILG.js";import"../../chunk-VV5ADNBR.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-5464H65G.js";import"../../chunk-FUDHI5I4.js";import"../../chunk-P67FP7PG.js";import"../../chunk-AELNNAFM.js";import"../../chunk-BXZ6WLHC.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-P6O363EE.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -0,0 +1,31 @@
1
+ export { DocumentScreen, default as ScreenMount } from './components/ScreenMount.js';
2
+ export { default as ScreenStoreProvider } from './components/ScreenStoreProvider.js';
3
+ export { NodeDefaults, SELECTION_MODE, ScreenBlockLook, ScreenBlockRules, ScreenBridges, ScreenCanvas, ScreenDevices, ScreenDocumentOps, ScreenInspector, ScreenInspectorMode, ScreenInspectorPanelProps, ScreenLeftPanel, ScreenLeftView, ScreenLeftViewFrame, ScreenLeftViewRules, ScreenNewNode, ScreenNode, ScreenNodeLevel, ScreenNodeMaker, ScreenPartMode, ScreenParts, ScreenPartsProvider, ScreenPinnedNodes, ScreenRailItem, ScreenTree, ScreenTreeFolds, ScreenTreeRows, sameInspectorMode, useScreenBlockLook, useScreenBlockRules, useScreenBridges, useScreenCanvasFrame, useScreenDevices, useScreenDocumentPass, useScreenInspectorPanel, useScreenLeftView, useScreenOwnerName, useScreenParts, useScreenPinned, useStandaloneScreenBridges } from './lib/screen-parts.js';
4
+ export { EFFICIENT_BACKEND, EaselSession, SessionBackend, SessionBlocks, activateEaselSession, backendOf, createEaselSession, currentEaselSession, deactivateEaselSession, efficientClientOpen, isEfficientBackend, provideDefaultBackend, resetAmbientEaselSession, sessionRegistry, setSessionBridgedSite, setSessionDocumentSite } from './lib/session.js';
5
+ export { EaselSessionProvider, useEaselSession } from './lib/session-context.js';
6
+ export { D as DETACHED_EASEL_HOST, a as DocumentAddressing, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, N as NO_DOCUMENT_ADDRESSING, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost } from '../host-B-byaQxg.js';
7
+ export { EaselCapabilities, EaselDocument, EaselDocumentAdapter, EaselPageRow, SiteRecord, SiteRecordPatch, WebsiteEditLock } from './lib/document-contract.js';
8
+ import 'react';
9
+ import '../blocks/index.js';
10
+ import '../types-E3HrTPg2.js';
11
+ import '../data/index.js';
12
+ import '../types-41704JE4.js';
13
+ import '../resolve-D68pb3Bx.js';
14
+ import '../plan-DChbUXdS.js';
15
+ import '../types-CqY85foL.js';
16
+ import '../types-DWS-s9z-.js';
17
+ import '../wordFit-D4S36PvB.js';
18
+ import '../edit-lock/index.js';
19
+ import '../panelWidths-D9hTLR25.js';
20
+ import './lib/host-chrome.js';
21
+ import './lib/links/link-filters.js';
22
+ import '../LinkPicker-W2Rtxetz.js';
23
+ import './lib/puck/add-target-types.js';
24
+ import './lib/puck/block-choice.js';
25
+ import './lib/puck/slot-section-spec.js';
26
+ import './lib/document-hooks.js';
27
+ import './lib/section-template-types.js';
28
+ import './lib/puck/content-tree.js';
29
+ import './lib/document-switch.js';
30
+ import '../engine-DBxp_v6B.js';
31
+ import './lib/admin-bridge.js';
@@ -0,0 +1 @@
1
+ import"../chunk-GZO72N3Q.js";export{DocumentScreen,ScreenMount}from"../chunk-3U4GP5VA.js";import"../chunk-GXQCZJOP.js";import"../chunk-F2FPZIZV.js";import"../chunk-26OOWIJJ.js";import"../chunk-PP44LCJM.js";import"../chunk-FGNR22NY.js";import"../chunk-AKFJK65Z.js";import"../chunk-PWZOS45R.js";import"../chunk-7F52SZOI.js";import"../chunk-R2HLPNQF.js";import"../chunk-ZE7I3PLX.js";import"../chunk-4ES5JGGX.js";import"../chunk-IQ5TA7AM.js";import"../chunk-HWW4XJOH.js";import"../chunk-DUVRZ456.js";import"../chunk-6W7WLPZH.js";import"../chunk-OM67AJQC.js";import"../chunk-KCBEE2MC.js";import"../chunk-5MZ3RNQQ.js";import"../chunk-SERF2FAU.js";import"../chunk-E7GGVILG.js";import"../chunk-VV5ADNBR.js";import"../chunk-IYT6NN2J.js";import"../chunk-UVWVYMMZ.js";import"../chunk-BSPCSC45.js";import"../chunk-I54UCYOU.js";import"../chunk-GOTN2KY4.js";import"../chunk-R5L2E7JX.js";import"../chunk-FT35FX7D.js";import"../chunk-7MU3RJ6S.js";import"../chunk-A7ZJII7O.js";import"../chunk-6FY3PZS3.js";import"../chunk-AKZWUV5Z.js";export{NO_DOCUMENT_ADDRESSING}from"../chunk-RLBXE4EU.js";import"../chunk-OYX47SL7.js";import"../chunk-HMX55DYT.js";import"../chunk-Q3SQBNJB.js";import"../chunk-3WSPDAK2.js";export{ScreenStoreProvider}from"../chunk-VLSTGOVD.js";export{DETACHED_EASEL_HOST,EaselHostContext,EaselHostProvider,createEaselHost,useEaselHost}from"../chunk-R5ZVNJLJ.js";import"../chunk-3QVB4AG2.js";import"../chunk-7RNTMJER.js";import"../chunk-5ZBY24K7.js";import"../chunk-GENAF3P6.js";import"../chunk-J4RAY75C.js";import"../chunk-IWAPPEL4.js";import"../chunk-KQMML6JM.js";export{EaselSessionProvider,useEaselSession}from"../chunk-6TZTKAB5.js";export{EFFICIENT_BACKEND,activateEaselSession,backendOf,createEaselSession,currentEaselSession,deactivateEaselSession,efficientClientOpen,isEfficientBackend,provideDefaultBackend,resetAmbientEaselSession,sessionRegistry,setSessionBridgedSite,setSessionDocumentSite}from"../chunk-AJBJ74ME.js";import"../chunk-KDYIMJTZ.js";import"../chunk-HQ4VVRIC.js";import"../chunk-TEZ6V6PA.js";import"../chunk-ZZ7VLIHQ.js";export{SELECTION_MODE,ScreenPartsProvider,sameInspectorMode,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasFrame,useScreenDevices,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenOwnerName,useScreenParts,useScreenPinned,useStandaloneScreenBridges}from"../chunk-5464H65G.js";import"../chunk-F6CCTEIX.js";import"../chunk-FUDHI5I4.js";import"../chunk-57DJOKXT.js";import"../chunk-6WY6ZXJG.js";import"../chunk-P67FP7PG.js";import"../chunk-AELNNAFM.js";import"../chunk-BXZ6WLHC.js";import"../chunk-EOJNJCMJ.js";import"../chunk-ZFDCDJNZ.js";import"../chunk-ZNS7727Y.js";import"../chunk-3EDSDPIP.js";import"../chunk-QTLAVDJE.js";import"../chunk-YRLPFZW3.js";import"../chunk-RW4XBUUW.js";import"../chunk-KTVH2ZRL.js";import"../chunk-2LK54I4E.js";import"../chunk-WK3AFPXY.js";import"../chunk-D2BCHTQR.js";import"../chunk-OWBO4WKA.js";import"../chunk-BDTITTMW.js";import"../chunk-H6DDIBQ4.js";import"../chunk-EWVJSRRY.js";import"../chunk-P6O363EE.js";import"../chunk-FPOKPNO4.js";import"../chunk-6DJHRLCU.js";import"../chunk-ZJEBF4NB.js";import"../chunk-JUQ6YJCG.js";import"../chunk-RE4LP46F.js";import"../chunk-WZ7TGAAT.js";import"../chunk-2OAZYSWJ.js";import"../chunk-MFIRYGHW.js";import"../chunk-BZ5ASXOL.js";import"../chunk-TTJ54QGG.js";import"../chunk-O2NLQBFX.js";import"../chunk-67GNT6PF.js";import"../chunk-PAELDYYS.js";import"../chunk-ZNCEOSXO.js";import"../chunk-L5KW4HG5.js";import"../chunk-KRXQM65X.js";import"../chunk-NKB3KVAB.js";