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,43 @@
1
+ import { P as Place } from './types-41704JE4.js';
2
+
3
+ /**
4
+ * The one drag in flight, shared by every surface of an editor — the Layers
5
+ * tree, the canvas and the Add list (blueprint step 3.2).
6
+ *
7
+ * Native drag-and-drop does not let a drop target read what is being dragged
8
+ * until the drop itself (the data is sealed during `dragover`), and a tree that
9
+ * only knows about drags it started cannot take a block from the Add list. So
10
+ * the surface that starts a drag writes it here and every surface reads it: a
11
+ * block picked up on the canvas can land in the tree, a tile from the Add list
12
+ * on either.
13
+ *
14
+ * `from` is where the thing sits now — absent for something new (an Add tile),
15
+ * which is also why a new thing can never be a no-op drop.
16
+ */
17
+
18
+ type DragHeld<I> = {
19
+ /** The identity `keyOf` gave it — which row or box is the one being dragged. */
20
+ key: string;
21
+ item: I;
22
+ /** Where it sits now. Absent: it is new, from the Add list. */
23
+ from?: Place;
24
+ };
25
+ type DragSession<I> = {
26
+ /** The drag in flight, current at once (for event handlers). */
27
+ get: () => DragHeld<I> | null;
28
+ /** The drag as last TOLD to subscribers (for rendering — see below). */
29
+ shown: () => DragHeld<I> | null;
30
+ start: (held: DragHeld<I>) => void;
31
+ end: () => void;
32
+ subscribe: (listener: () => void) => () => void;
33
+ };
34
+ /**
35
+ * `get()` is current the moment a drag starts — the drop targets read it on
36
+ * their first `dragover`. SUBSCRIBERS hear about a start one tick later: the
37
+ * browser takes the drag picture when the `dragstart` handlers return, and a
38
+ * render in between (a row dimming, the handle hiding) would be in the picture.
39
+ * An end is told at once.
40
+ */
41
+ declare function createDragSession<I>(): DragSession<I>;
42
+
43
+ export { type DragSession as D, type DragHeld as a, createDragSession as c };
@@ -1,4 +1,4 @@
1
- import { S as SaveWords } from '../words-BMzV04b1.js';
1
+ import { S as SaveWords } from '../words-D_Lnw1Gr.js';
2
2
  import { N as NoticeWords, C as ChromeWords } from '../words-AHHfiaRY.js';
3
3
  import { C as CopyWords } from '../words-XH0TvZPg.js';
4
4
  import { D as DragWords } from '../words-BDignMl_.js';
@@ -10,10 +10,12 @@ import { P as PickWords } from '../words-is_Vy6hn.js';
10
10
  import { S as StyleClipboardWords } from '../words-CnnHb9jo.js';
11
11
  import { T as TextStylesWords } from '../words-CRYvAiHX.js';
12
12
  import { T as TreeWords } from '../words-DgHcY5qB.js';
13
- import '../types-DGcCsxs8.js';
13
+ import '../types-CqY85foL.js';
14
14
  import '../types-DWS-s9z-.js';
15
15
  import '../wordFit-D4S36PvB.js';
16
16
  import 'react';
17
+ import '../panelWidths-D9hTLR25.js';
18
+ import '../engine-DBxp_v6B.js';
17
19
  import '../markup/index.js';
18
20
  import '../buckets-CuLM47h9.js';
19
21
 
@@ -1 +1 @@
1
- export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-IG3U5NWJ.js";import"../chunk-M6F6LS3H.js";import"../chunk-6WY6ZXJG.js";import"../chunk-AELNNAFM.js";import"../chunk-3EDSDPIP.js";import"../chunk-QTLAVDJE.js";import"../chunk-WK3AFPXY.js";import"../chunk-H6DDIBQ4.js";import"../chunk-ZJEBF4NB.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-UH7IGZKF.js";import"../chunk-ZAOM6PFH.js";import"../chunk-FPOKPNO4.js";import"../chunk-546BBOPE.js";import"../chunk-O2NLQBFX.js";
1
+ export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-UH7TGWHR.js";import"../chunk-M6F6LS3H.js";import"../chunk-6WY6ZXJG.js";import"../chunk-AELNNAFM.js";import"../chunk-3EDSDPIP.js";import"../chunk-QTLAVDJE.js";import"../chunk-WK3AFPXY.js";import"../chunk-H6DDIBQ4.js";import"../chunk-UH7IGZKF.js";import"../chunk-ZAOM6PFH.js";import"../chunk-FPOKPNO4.js";import"../chunk-546BBOPE.js";import"../chunk-ZJEBF4NB.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-O2NLQBFX.js";
@@ -10,15 +10,17 @@ export { LockWords } from '../edit-lock/index.js';
10
10
  export { N as NodeMenuWords } from '../words-DMG4dYq2.js';
11
11
  export { P as PanelWords } from '../words-BGrHZAJJ.js';
12
12
  export { P as PickWords } from '../words-is_Vy6hn.js';
13
- export { S as SaveWords } from '../words-BMzV04b1.js';
13
+ export { S as SaveWords } from '../words-D_Lnw1Gr.js';
14
14
  export { S as StyleClipboardWords } from '../words-CnnHb9jo.js';
15
15
  export { T as TextStylesWords } from '../words-CRYvAiHX.js';
16
16
  export { T as TreeWords } from '../words-DgHcY5qB.js';
17
17
  import '../markup/index.js';
18
18
  import '../buckets-CuLM47h9.js';
19
- import '../types-DGcCsxs8.js';
19
+ import '../types-CqY85foL.js';
20
20
  import '../types-DWS-s9z-.js';
21
21
  import '../wordFit-D4S36PvB.js';
22
+ import '../panelWidths-D9hTLR25.js';
23
+ import '../engine-DBxp_v6B.js';
22
24
 
23
25
  interface EaselStringsProviderProps {
24
26
  /**
@@ -1,2 +1,2 @@
1
- import{DEFAULT_EASEL_STRINGS as r,mergeEaselStrings as n}from"../chunk-IG3U5NWJ.js";export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-IG3U5NWJ.js";import"../chunk-M6F6LS3H.js";import"../chunk-6WY6ZXJG.js";import"../chunk-AELNNAFM.js";import"../chunk-3EDSDPIP.js";import"../chunk-QTLAVDJE.js";import"../chunk-WK3AFPXY.js";import"../chunk-H6DDIBQ4.js";import"../chunk-ZJEBF4NB.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-UH7IGZKF.js";import"../chunk-ZAOM6PFH.js";import"../chunk-FPOKPNO4.js";import"../chunk-546BBOPE.js";import{stringsContext as o}from"../chunk-MFIRYGHW.js";import"../chunk-O2NLQBFX.js";import{useContext as t,useMemo as c}from"react";import{jsx as i}from"react/jsx-runtime";function s({value:s,locale:u,children:m}){const e=o(),p=t(e),h=p?.strings??r,j=u??p?.locale??"en",k=c(()=>({strings:n(h,s),locale:j}),[h,s,j]);/* @__PURE__ */
1
+ import{DEFAULT_EASEL_STRINGS as r,mergeEaselStrings as n}from"../chunk-UH7TGWHR.js";export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-UH7TGWHR.js";import"../chunk-M6F6LS3H.js";import"../chunk-6WY6ZXJG.js";import"../chunk-AELNNAFM.js";import"../chunk-3EDSDPIP.js";import"../chunk-QTLAVDJE.js";import"../chunk-WK3AFPXY.js";import"../chunk-H6DDIBQ4.js";import"../chunk-UH7IGZKF.js";import"../chunk-ZAOM6PFH.js";import"../chunk-FPOKPNO4.js";import"../chunk-546BBOPE.js";import"../chunk-ZJEBF4NB.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import{stringsContext as o}from"../chunk-MFIRYGHW.js";import"../chunk-O2NLQBFX.js";import{useContext as t,useMemo as c}from"react";import{jsx as i}from"react/jsx-runtime";function s({value:s,locale:u,children:m}){const e=o(),p=t(e),h=p?.strings??r,j=u??p?.locale??"en",k=c(()=>({strings:n(h,s),locale:j}),[h,s,j]);/* @__PURE__ */
2
2
  return i(e.Provider,{value:k,children:m})}function u(){return t(o())?.strings??r}function m(){return t(o())?.locale??"en"}export{s as EaselStringsProvider,m as useEaselLocale,u as useEaselStrings};
@@ -1 +1 @@
1
- import{DEFAULT_STYLE_CLIPBOARD_WORDS as t}from"../chunk-6WY6ZXJG.js";import{CopyStyleIcon as e,PasteStyleIcon as n}from"../chunk-L5KW4HG5.js";import{jsx as o}from"react/jsx-runtime";var r="__styleKind";function u(t,e){return t[r]=e,t}function c(t,e){return`${t}:${e.map(t=>String(t)).sort().join("|")}`}function i(t){if(!t)return null;const e=t.indexOf(":");if(e<0)return null;const n=t.slice(0,e);return s.has(n)?{control:n,values:t.slice(e+1).split("|")}:null}var s=/* @__PURE__ */new Set(["choice","select","radio"]);function l(t){if(!t||"object"!=typeof t)return null;const e=t;return"string"==typeof e[r]?e[r]:"text"===e.type||"textarea"===e.type||"number"===e.type?e.type:"select"!==e.type&&"radio"!==e.type||!Array.isArray(e.options)?null:c(e.type,e.options.map(t=>t?.value))}function a(t){return null!=t&&""!==t}function p(t,e){let n=t;for(const t of e){if(!n||"object"!=typeof n)return;n=n[t]}return n}function f(t){return void 0===t?t:JSON.parse(JSON.stringify(t))}function d(t,e,n){const[o,...r]=e,u={...t};if(0===r.length)return void 0===n?delete u[o]:u[o]=n,u;const c=u[o],i=d(c&&"object"==typeof c?c:{},r,n);return 0===Object.keys(i).length?delete u[o]:u[o]=i,u}var y=t=>t.join("."),h="editor-shell:style-clipboard",g=null,m=!1,v=/* @__PURE__ */new Set;function S(){try{return"undefined"==typeof sessionStorage?null:sessionStorage}catch{return null}}function b(){if(!m){m=!0;try{const t=S()?.getItem(h);t&&(g=JSON.parse(t))}catch{g=null}}}function k(t){b(),g={scope:t.scope,sourceType:t.type,sourceLabel:t.label,rows:t.rows.map(e=>{const n=p(t.props,e.path);return{path:[...e.path],kind:e.kind,counted:!1!==e.counted,value:a(n)?f(n):void 0}})};try{S()?.setItem(h,JSON.stringify(g))}catch{}return v.forEach(t=>t()),g}function N(t){return b(),g&&g.scope===t?g:null}function j(t){return v.add(t),()=>{v.delete(t)}}function C(){g=null,m=!0;try{S()?.removeItem(h)}catch{}v.forEach(t=>t())}function w(t,e,n){if(t.kind===e.kind)return null!==e.kind||n;const o=i(t.kind),r=i(e.kind);return!(!o||!r||o.control!==r.control)&&(!a(t.value)||r.values.includes(String(t.value)))}function K(t,e){const n=t.sourceType===e.type,o=new Map(t.rows.map(t=>[y(t.path),t]));let r=e.props,u=0,c=!1;for(const t of e.rows){const e=o.get(y(t.path));if(!e)continue;if(!w(e,t,n))continue;const i=p(r,t.path),s=void 0===e.value?void 0:f(e.value);JSON.stringify(a(i)?i:void 0)!==JSON.stringify(s)&&(r=d(r,t.path,s),c=!0),!1!==t.counted&&(u+=1)}return{props:r,pasted:u,changed:c}}function O(e,n,o,r=t){return 0===e.pasted?r.nothing({source:n,target:o}):r.pasted({count:e.pasted,source:n})}var E="⌥⌘C",J="⌥⌘V";function T(r){const u=r.words??t,c=[];return r.canCopy&&c.push({label:u.copy,icon:/* @__PURE__ */o(e,{}),shortcut:"⌥⌘C",onClick:r.onCopy}),r.held&&c.push({label:u.paste({source:r.held.sourceLabel}),icon:/* @__PURE__ */o(n,{}),shortcut:"⌥⌘V",onClick:r.onPaste}),c}function x(t){if(!t.altKey||t.shiftKey||!t.metaKey&&!t.ctrlKey)return null;const e=t.target;return e&&(e.isContentEditable||"INPUT"===e.tagName||"TEXTAREA"===e.tagName||"SELECT"===e.tagName)?null:"KeyC"===t.code?"copy":"KeyV"===t.code?"paste":null}export{E as COPY_STYLE_SHORTCUT,J as PASTE_STYLE_SHORTCUT,r as STYLE_KIND,c as choiceKind,C as clearStyle,k as copyStyle,l as fieldKind,N as heldStyle,O as pasteMessage,K as planPaste,T as styleMenuItems,x as styleShortcut,j as subscribeStyle,u as withStyleKind};
1
+ export{COPY_STYLE_SHORTCUT,PASTE_STYLE_SHORTCUT,STYLE_KIND,choiceKind,clearStyle,copyStyle,fieldKind,heldStyle,pasteMessage,planPaste,styleMenuItems,styleShortcut,subscribeStyle,withStyleKind}from"../chunk-57DJOKXT.js";import"../chunk-6WY6ZXJG.js";import"../chunk-L5KW4HG5.js";
@@ -1,69 +1,7 @@
1
1
  import { a as EaselRailItem } from './types-DWS-s9z-.js';
2
- import { CSSProperties, ReactNode, Ref } from 'react';
2
+ import { ReactNode, Ref, CSSProperties } from 'react';
3
3
  import { EditAccess, SaveConflict } from './edit-lock/index.js';
4
-
5
- /**
6
- * The side-panel widths every editor opens on and drags between (px).
7
- *
8
- * Lifted from `efficient-storefront/components/panel-widths.ts`, where the website
9
- * editor measured them:
10
- *
11
- * RIGHT is 320, not 308 (card 8810). At 308 the settings tab strip was left
12
- * 269px once the inspector's 14px sides and its 11px scrollbar were off it —
13
- * one pixel under the 270 the strip's widest tier needs, so the tab words
14
- * turned into glyphs at the width every merchant opens on.
15
- *
16
- * MIN_PANEL_W is load-bearing on the top bar: six 34px rail buttons are 204px,
17
- * and at 220 the rail column spreads them with nothing to spare.
18
- *
19
- * The campaign designer opened at 288 / 288 with a 520 ceiling until the
20
- * 2026-09-17 redesign. One set of numbers now, here.
21
- */
22
- declare const DEFAULT_PANEL_W: {
23
- readonly left: 288;
24
- readonly right: 320;
25
- };
26
- declare const MIN_PANEL_W = 220;
27
- declare const MAX_PANEL_W = 560;
28
- /** Which side 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 panel band and round to a whole pixel. */
35
- declare function clampPanelWidth(width: number): number;
36
- /**
37
- * The inline style that carries the widths, as `--es-left-w` / `--es-right-w`.
38
- *
39
- * ⚠️ PUT IT ON THE EDITOR ROOT, the nearest ancestor of EVERYTHING that reads
40
- * it. The website editor learned this on 2026-09-04: the vars sat on the panel
41
- * row, the top bar is that row's SIBLING, and the rail column read a width with
42
- * no declaration in scope — which is not an error, it silently falls back to
43
- * `auto` and the column shrinks to its buttons. (Since 2026-10-06 chrome.css
44
- * falls back to `DEFAULT_PANEL_W` instead: the column keeps its width and
45
- * simply stops following the grip.)
46
- *
47
- * ⚠️ A SERVER RENDERS THIS AS A `style=""` ATTRIBUTE, and a
48
- * Content-Security-Policy without `'unsafe-inline'` for styles refuses those.
49
- * A client render is not affected: React writes a `style` prop through the
50
- * CSSOM. A server-rendered editor under such a policy uses
51
- * {@link setPanelWidthVars} instead.
52
- */
53
- declare function panelWidthVars(widths: PanelWidths): CSSProperties;
54
- /**
55
- * The same two variables, written onto the editor root through the CSSOM
56
- * (second host, 2026-10-06) — so the server's HTML carries no `style` attribute for a strict
57
- * Content-Security-Policy to refuse:
58
- *
59
- * <div className="es-editor" ref={(el) => { if (el) setPanelWidthVars(el, widths); }}>
60
- *
61
- * A ref runs on the client only, before the browser paints, and again on each
62
- * render — so it follows the widths as a grip is dragged. Until it runs (the
63
- * server's HTML, before hydration) chrome.css draws the panels at
64
- * `DEFAULT_PANEL_W`. Touches nothing but the element it is handed.
65
- */
66
- declare function setPanelWidthVars(el: HTMLElement, widths: PanelWidths): void;
4
+ import { P as PanelSide } from './panelWidths-D9hTLR25.js';
67
5
 
68
6
  type TopBarProps = {
69
7
  children?: ReactNode;
@@ -268,4 +206,4 @@ type EditNoticeProps = {
268
206
  onReload: () => void;
269
207
  };
270
208
 
271
- export { type DeviceSwitchProps as D, type EaselIconButtonProps as E, type InspectorHeadProps as I, type MediaPanelHeadProps as M, type PanelResizeHandleProps as P, type RailWordsShown as R, type SaveTone as S, type TopBarProps as T, type TopBarClusterProps as a, type TopBarRailProps as b, type SaveStateProps as c, type SaveStateToggleProps as d, type InspectorIconButtonProps as e, type InspectorUpLevelProps as f, type MediaPickKind as g, type EditNoticeProps as h, DEFAULT_PANEL_W as i, type DeviceOption as j, MAX_PANEL_W as k, MIN_PANEL_W as l, type PanelSide as m, type PanelWidths as n, clampPanelWidth as o, panelWidthVars as p, setPanelWidthVars as s };
209
+ export type { DeviceOption as D, EaselIconButtonProps as E, InspectorHeadProps as I, MediaPanelHeadProps as M, PanelResizeHandleProps as P, RailWordsShown as R, SaveTone as S, TopBarProps as T, TopBarClusterProps as a, TopBarRailProps as b, DeviceSwitchProps as c, SaveStateProps as d, SaveStateToggleProps as e, InspectorIconButtonProps as f, InspectorUpLevelProps as g, MediaPickKind as h, EditNoticeProps as i };
@@ -0,0 +1,59 @@
1
+ import { S as SaveTone } from './types-CqY85foL.js';
2
+ import { A as AutosaveSnapshot } from './engine-DBxp_v6B.js';
3
+
4
+ /**
5
+ * What the save pill says, for both editors — ONE copy.
6
+ *
7
+ * There were three: the campaign designer's `saveStatusLabel`
8
+ * (efficient-admin-portal `src/components/email/autosaveStatus.ts`), the
9
+ * website editor's `autosaveStatusLabel` (efficient-storefront
10
+ * `lib/editor/autosave-status.ts`, which said of the first "a MIRRORED copy …
11
+ * whether that pair should collapse into `efficient-easel` is called out
12
+ * rather than decided here") and the website chrome's own words for its
13
+ * autosave switch. This decides it.
14
+ *
15
+ * The rule they all kept, and keep here (card 66103): **the pill speaks only
16
+ * when it has something to say.** A save that lands is silence — the dot goes
17
+ * green, no word. An edit younger than five seconds is silence too: with a
18
+ * one-second save it is about to land, and saying "unsaved" at every keystroke
19
+ * would blink the bar once a second. What is left is worth a word each:
20
+ *
21
+ * - the work has been off the server for five seconds — "Unsaved changes";
22
+ * - a save failed and is being retried — "Save failed" (with "Retry now");
23
+ * - the operator paused autosave — "Auto-save off", and whether that is
24
+ * holding anything;
25
+ * - a save was refused — "Auto-save stopped", which must never read as a
26
+ * switch somebody flicked themselves.
27
+ *
28
+ * The tones are `efficient-easel/chrome`'s `SaveState` tones, so the result
29
+ * goes straight onto the pill: `<SaveState {...saveIndicator(state)} />`.
30
+ */
31
+
32
+ type SaveIndicator = {
33
+ tone: SaveTone;
34
+ label: string;
35
+ };
36
+ /**
37
+ * The pill's five things to say (`efficient-easel/strings`, 0.95.0). Kept in
38
+ * autosave's own folder, with no import: autosave may reach nothing else
39
+ * (`tests/autosave-leaf-safety.test.ts`).
40
+ */
41
+ type SaveWords = {
42
+ /** A save was refused: nothing will be written. */
43
+ stopped: string;
44
+ /** The operator paused autosave, and an edit is waiting. */
45
+ pausedUnsaved: string;
46
+ /** The operator paused autosave. */
47
+ paused: string;
48
+ /** A save failed and is being retried. */
49
+ failed: string;
50
+ /** The work has been off the server for five seconds. */
51
+ unsaved: string;
52
+ };
53
+ /**
54
+ * `words` is the host's language (`useEaselStrings().save`); left out, the
55
+ * pill speaks English as it always has.
56
+ */
57
+ declare function saveIndicator(state: AutosaveSnapshot, words?: SaveWords): SaveIndicator;
58
+
59
+ export { type SaveWords as S, type SaveIndicator as a, saveIndicator as s };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-easel",
3
- "version": "0.101.1",
3
+ "version": "0.102.0",
4
4
  "description": "Efficient Easel: the EFFICIENT editors' shared engine and chrome: the saved document as pure functions, the published renderer, and the editor frame, panels, Layers tree, text grammar and type-in-place box. Published as editor-shell up to 0.66.0 and as efficient-editor up to 0.95.0.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",
@@ -109,6 +109,7 @@
109
109
  "default": "./dist/easel/index.js"
110
110
  },
111
111
  "./easel.css": "./dist/easel/easel.css",
112
+ "./screen.css": "./dist/screen/screen.css",
112
113
  "./autosave": {
113
114
  "types": "./dist/autosave/index.d.ts",
114
115
  "import": "./dist/autosave/index.js",
@@ -165,6 +166,346 @@
165
166
  "types": "./dist/strings/catalogue.d.ts",
166
167
  "import": "./dist/strings/catalogue.js",
167
168
  "default": "./dist/strings/catalogue.js"
169
+ },
170
+ "./screen/components/AddBlockRow": {
171
+ "types": "./dist/screen/components/AddBlockRow.d.ts",
172
+ "import": "./dist/screen/components/AddBlockRow.js",
173
+ "default": "./dist/screen/components/AddBlockRow.js"
174
+ },
175
+ "./screen/components/AddChildRow": {
176
+ "types": "./dist/screen/components/AddChildRow.d.ts",
177
+ "import": "./dist/screen/components/AddChildRow.js",
178
+ "default": "./dist/screen/components/AddChildRow.js"
179
+ },
180
+ "./screen/components/AddSidePanel": {
181
+ "types": "./dist/screen/components/AddSidePanel.d.ts",
182
+ "import": "./dist/screen/components/AddSidePanel.js",
183
+ "default": "./dist/screen/components/AddSidePanel.js"
184
+ },
185
+ "./screen/components/MediaSidePanel": {
186
+ "types": "./dist/screen/components/MediaSidePanel.d.ts",
187
+ "import": "./dist/screen/components/MediaSidePanel.js",
188
+ "default": "./dist/screen/components/MediaSidePanel.js"
189
+ },
190
+ "./screen/components/NodeContextMenu": {
191
+ "types": "./dist/screen/components/NodeContextMenu.d.ts",
192
+ "import": "./dist/screen/components/NodeContextMenu.js",
193
+ "default": "./dist/screen/components/NodeContextMenu.js"
194
+ },
195
+ "./screen/components/PageEditGuardNotices": {
196
+ "types": "./dist/screen/components/PageEditGuardNotices.d.ts",
197
+ "import": "./dist/screen/components/PageEditGuardNotices.js",
198
+ "default": "./dist/screen/components/PageEditGuardNotices.js"
199
+ },
200
+ "./screen/components/PanelToggleIcon": {
201
+ "types": "./dist/screen/components/PanelToggleIcon.d.ts",
202
+ "import": "./dist/screen/components/PanelToggleIcon.js",
203
+ "default": "./dist/screen/components/PanelToggleIcon.js"
204
+ },
205
+ "./screen/components/PreviewDeviceContext": {
206
+ "types": "./dist/screen/components/PreviewDeviceContext.d.ts",
207
+ "import": "./dist/screen/components/PreviewDeviceContext.js",
208
+ "default": "./dist/screen/components/PreviewDeviceContext.js"
209
+ },
210
+ "./screen/components/PreviewPartsContext": {
211
+ "types": "./dist/screen/components/PreviewPartsContext.d.ts",
212
+ "import": "./dist/screen/components/PreviewPartsContext.js",
213
+ "default": "./dist/screen/components/PreviewPartsContext.js"
214
+ },
215
+ "./screen/components/ScreenChrome": {
216
+ "types": "./dist/screen/components/ScreenChrome.d.ts",
217
+ "import": "./dist/screen/components/ScreenChrome.js",
218
+ "default": "./dist/screen/components/ScreenChrome.js"
219
+ },
220
+ "./screen/components/ScreenDocumentContext": {
221
+ "types": "./dist/screen/components/ScreenDocumentContext.d.ts",
222
+ "import": "./dist/screen/components/ScreenDocumentContext.js",
223
+ "default": "./dist/screen/components/ScreenDocumentContext.js"
224
+ },
225
+ "./screen/components/ScreenMount": {
226
+ "types": "./dist/screen/components/ScreenMount.d.ts",
227
+ "import": "./dist/screen/components/ScreenMount.js",
228
+ "default": "./dist/screen/components/ScreenMount.js"
229
+ },
230
+ "./screen/components/ScreenStoreProvider": {
231
+ "types": "./dist/screen/components/ScreenStoreProvider.d.ts",
232
+ "import": "./dist/screen/components/ScreenStoreProvider.js",
233
+ "default": "./dist/screen/components/ScreenStoreProvider.js"
234
+ },
235
+ "./screen/components/SectionScreenShell": {
236
+ "types": "./dist/screen/components/SectionScreenShell.d.ts",
237
+ "import": "./dist/screen/components/SectionScreenShell.js",
238
+ "default": "./dist/screen/components/SectionScreenShell.js"
239
+ },
240
+ "./screen/components/SidePanelHead": {
241
+ "types": "./dist/screen/components/SidePanelHead.d.ts",
242
+ "import": "./dist/screen/components/SidePanelHead.js",
243
+ "default": "./dist/screen/components/SidePanelHead.js"
244
+ },
245
+ "./screen/components/SlotChildActionsContext": {
246
+ "types": "./dist/screen/components/SlotChildActionsContext.d.ts",
247
+ "import": "./dist/screen/components/SlotChildActionsContext.js",
248
+ "default": "./dist/screen/components/SlotChildActionsContext.js"
249
+ },
250
+ "./screen/components/UiIcon": {
251
+ "types": "./dist/screen/components/UiIcon.d.ts",
252
+ "import": "./dist/screen/components/UiIcon.js",
253
+ "default": "./dist/screen/components/UiIcon.js"
254
+ },
255
+ "./screen/components/panel-widths": {
256
+ "types": "./dist/screen/components/panel-widths.d.ts",
257
+ "import": "./dist/screen/components/panel-widths.js",
258
+ "default": "./dist/screen/components/panel-widths.js"
259
+ },
260
+ "./screen/components/usePartBridge": {
261
+ "types": "./dist/screen/components/usePartBridge.d.ts",
262
+ "import": "./dist/screen/components/usePartBridge.js",
263
+ "default": "./dist/screen/components/usePartBridge.js"
264
+ },
265
+ "./screen": {
266
+ "types": "./dist/screen/index.d.ts",
267
+ "import": "./dist/screen/index.js",
268
+ "default": "./dist/screen/index.js"
269
+ },
270
+ "./screen/lib/admin-bridge": {
271
+ "types": "./dist/screen/lib/admin-bridge.d.ts",
272
+ "import": "./dist/screen/lib/admin-bridge.js",
273
+ "default": "./dist/screen/lib/admin-bridge.js"
274
+ },
275
+ "./screen/lib/backend-error": {
276
+ "types": "./dist/screen/lib/backend-error.d.ts",
277
+ "import": "./dist/screen/lib/backend-error.js",
278
+ "default": "./dist/screen/lib/backend-error.js"
279
+ },
280
+ "./screen/lib/chrome-theme": {
281
+ "types": "./dist/screen/lib/chrome-theme.d.ts",
282
+ "import": "./dist/screen/lib/chrome-theme.js",
283
+ "default": "./dist/screen/lib/chrome-theme.js"
284
+ },
285
+ "./screen/lib/client-only": {
286
+ "types": "./dist/screen/lib/client-only.d.ts",
287
+ "import": "./dist/screen/lib/client-only.js",
288
+ "default": "./dist/screen/lib/client-only.js"
289
+ },
290
+ "./screen/lib/content/view-tiers": {
291
+ "types": "./dist/screen/lib/content/view-tiers.d.ts",
292
+ "import": "./dist/screen/lib/content/view-tiers.js",
293
+ "default": "./dist/screen/lib/content/view-tiers.js"
294
+ },
295
+ "./screen/lib/document-addressing": {
296
+ "types": "./dist/screen/lib/document-addressing.d.ts",
297
+ "import": "./dist/screen/lib/document-addressing.js",
298
+ "default": "./dist/screen/lib/document-addressing.js"
299
+ },
300
+ "./screen/lib/document-contract": {
301
+ "types": "./dist/screen/lib/document-contract.d.ts",
302
+ "import": "./dist/screen/lib/document-contract.js",
303
+ "default": "./dist/screen/lib/document-contract.js"
304
+ },
305
+ "./screen/lib/document-hooks": {
306
+ "types": "./dist/screen/lib/document-hooks.d.ts",
307
+ "import": "./dist/screen/lib/document-hooks.js",
308
+ "default": "./dist/screen/lib/document-hooks.js"
309
+ },
310
+ "./screen/lib/document-switch": {
311
+ "types": "./dist/screen/lib/document-switch.d.ts",
312
+ "import": "./dist/screen/lib/document-switch.js",
313
+ "default": "./dist/screen/lib/document-switch.js"
314
+ },
315
+ "./screen/lib/failure": {
316
+ "types": "./dist/screen/lib/failure.d.ts",
317
+ "import": "./dist/screen/lib/failure.js",
318
+ "default": "./dist/screen/lib/failure.js"
319
+ },
320
+ "./screen/lib/host": {
321
+ "types": "./dist/screen/lib/host.d.ts",
322
+ "import": "./dist/screen/lib/host.js",
323
+ "default": "./dist/screen/lib/host.js"
324
+ },
325
+ "./screen/lib/host-chrome": {
326
+ "types": "./dist/screen/lib/host-chrome.d.ts",
327
+ "import": "./dist/screen/lib/host-chrome.js",
328
+ "default": "./dist/screen/lib/host-chrome.js"
329
+ },
330
+ "./screen/lib/host-inbound": {
331
+ "types": "./dist/screen/lib/host-inbound.d.ts",
332
+ "import": "./dist/screen/lib/host-inbound.js",
333
+ "default": "./dist/screen/lib/host-inbound.js"
334
+ },
335
+ "./screen/lib/key-scope": {
336
+ "types": "./dist/screen/lib/key-scope.d.ts",
337
+ "import": "./dist/screen/lib/key-scope.js",
338
+ "default": "./dist/screen/lib/key-scope.js"
339
+ },
340
+ "./screen/lib/links/link-filters": {
341
+ "types": "./dist/screen/lib/links/link-filters.d.ts",
342
+ "import": "./dist/screen/lib/links/link-filters.js",
343
+ "default": "./dist/screen/lib/links/link-filters.js"
344
+ },
345
+ "./screen/lib/load-error": {
346
+ "types": "./dist/screen/lib/load-error.d.ts",
347
+ "import": "./dist/screen/lib/load-error.js",
348
+ "default": "./dist/screen/lib/load-error.js"
349
+ },
350
+ "./screen/lib/media-panel": {
351
+ "types": "./dist/screen/lib/media-panel.d.ts",
352
+ "import": "./dist/screen/lib/media-panel.js",
353
+ "default": "./dist/screen/lib/media-panel.js"
354
+ },
355
+ "./screen/lib/media-picker": {
356
+ "types": "./dist/screen/lib/media-picker.d.ts",
357
+ "import": "./dist/screen/lib/media-picker.js",
358
+ "default": "./dist/screen/lib/media-picker.js"
359
+ },
360
+ "./screen/lib/page-lock": {
361
+ "types": "./dist/screen/lib/page-lock.d.ts",
362
+ "import": "./dist/screen/lib/page-lock.js",
363
+ "default": "./dist/screen/lib/page-lock.js"
364
+ },
365
+ "./screen/lib/puck/add-target-types": {
366
+ "types": "./dist/screen/lib/puck/add-target-types.d.ts",
367
+ "import": "./dist/screen/lib/puck/add-target-types.js",
368
+ "default": "./dist/screen/lib/puck/add-target-types.js"
369
+ },
370
+ "./screen/lib/puck/block-choice": {
371
+ "types": "./dist/screen/lib/puck/block-choice.d.ts",
372
+ "import": "./dist/screen/lib/puck/block-choice.js",
373
+ "default": "./dist/screen/lib/puck/block-choice.js"
374
+ },
375
+ "./screen/lib/puck/block-types-in": {
376
+ "types": "./dist/screen/lib/puck/block-types-in.d.ts",
377
+ "import": "./dist/screen/lib/puck/block-types-in.js",
378
+ "default": "./dist/screen/lib/puck/block-types-in.js"
379
+ },
380
+ "./screen/lib/puck/content-tree": {
381
+ "types": "./dist/screen/lib/puck/content-tree.d.ts",
382
+ "import": "./dist/screen/lib/puck/content-tree.js",
383
+ "default": "./dist/screen/lib/puck/content-tree.js"
384
+ },
385
+ "./screen/lib/puck/device-fields": {
386
+ "types": "./dist/screen/lib/puck/device-fields.d.ts",
387
+ "import": "./dist/screen/lib/puck/device-fields.js",
388
+ "default": "./dist/screen/lib/puck/device-fields.js"
389
+ },
390
+ "./screen/lib/puck/field-buckets": {
391
+ "types": "./dist/screen/lib/puck/field-buckets.d.ts",
392
+ "import": "./dist/screen/lib/puck/field-buckets.js",
393
+ "default": "./dist/screen/lib/puck/field-buckets.js"
394
+ },
395
+ "./screen/lib/puck/field-markers": {
396
+ "types": "./dist/screen/lib/puck/field-markers.d.ts",
397
+ "import": "./dist/screen/lib/puck/field-markers.js",
398
+ "default": "./dist/screen/lib/puck/field-markers.js"
399
+ },
400
+ "./screen/lib/puck/hidable": {
401
+ "types": "./dist/screen/lib/puck/hidable.d.ts",
402
+ "import": "./dist/screen/lib/puck/hidable.js",
403
+ "default": "./dist/screen/lib/puck/hidable.js"
404
+ },
405
+ "./screen/lib/puck/palette-sections": {
406
+ "types": "./dist/screen/lib/puck/palette-sections.d.ts",
407
+ "import": "./dist/screen/lib/puck/palette-sections.js",
408
+ "default": "./dist/screen/lib/puck/palette-sections.js"
409
+ },
410
+ "./screen/lib/puck/panel-fields": {
411
+ "types": "./dist/screen/lib/puck/panel-fields.d.ts",
412
+ "import": "./dist/screen/lib/puck/panel-fields.js",
413
+ "default": "./dist/screen/lib/puck/panel-fields.js"
414
+ },
415
+ "./screen/lib/puck/panel-no-control-mark": {
416
+ "types": "./dist/screen/lib/puck/panel-no-control-mark.d.ts",
417
+ "import": "./dist/screen/lib/puck/panel-no-control-mark.js",
418
+ "default": "./dist/screen/lib/puck/panel-no-control-mark.js"
419
+ },
420
+ "./screen/lib/puck/part-id": {
421
+ "types": "./dist/screen/lib/puck/part-id.d.ts",
422
+ "import": "./dist/screen/lib/puck/part-id.js",
423
+ "default": "./dist/screen/lib/puck/part-id.js"
424
+ },
425
+ "./screen/lib/puck/preview-click": {
426
+ "types": "./dist/screen/lib/puck/preview-click.d.ts",
427
+ "import": "./dist/screen/lib/puck/preview-click.js",
428
+ "default": "./dist/screen/lib/puck/preview-click.js"
429
+ },
430
+ "./screen/lib/puck/preview-dom": {
431
+ "types": "./dist/screen/lib/puck/preview-dom.d.ts",
432
+ "import": "./dist/screen/lib/puck/preview-dom.js",
433
+ "default": "./dist/screen/lib/puck/preview-dom.js"
434
+ },
435
+ "./screen/lib/puck/preview-events": {
436
+ "types": "./dist/screen/lib/puck/preview-events.d.ts",
437
+ "import": "./dist/screen/lib/puck/preview-events.js",
438
+ "default": "./dist/screen/lib/puck/preview-events.js"
439
+ },
440
+ "./screen/lib/puck/preview-selection-context": {
441
+ "types": "./dist/screen/lib/puck/preview-selection-context.d.ts",
442
+ "import": "./dist/screen/lib/puck/preview-selection-context.js",
443
+ "default": "./dist/screen/lib/puck/preview-selection-context.js"
444
+ },
445
+ "./screen/lib/puck/section-doc": {
446
+ "types": "./dist/screen/lib/puck/section-doc.d.ts",
447
+ "import": "./dist/screen/lib/puck/section-doc.js",
448
+ "default": "./dist/screen/lib/puck/section-doc.js"
449
+ },
450
+ "./screen/lib/puck/slot-child-name": {
451
+ "types": "./dist/screen/lib/puck/slot-child-name.d.ts",
452
+ "import": "./dist/screen/lib/puck/slot-child-name.js",
453
+ "default": "./dist/screen/lib/puck/slot-child-name.js"
454
+ },
455
+ "./screen/lib/puck/slot-heal": {
456
+ "types": "./dist/screen/lib/puck/slot-heal.d.ts",
457
+ "import": "./dist/screen/lib/puck/slot-heal.js",
458
+ "default": "./dist/screen/lib/puck/slot-heal.js"
459
+ },
460
+ "./screen/lib/puck/slot-section-spec": {
461
+ "types": "./dist/screen/lib/puck/slot-section-spec.d.ts",
462
+ "import": "./dist/screen/lib/puck/slot-section-spec.js",
463
+ "default": "./dist/screen/lib/puck/slot-section-spec.js"
464
+ },
465
+ "./screen/lib/puck/style-clipboard": {
466
+ "types": "./dist/screen/lib/puck/style-clipboard.d.ts",
467
+ "import": "./dist/screen/lib/puck/style-clipboard.js",
468
+ "default": "./dist/screen/lib/puck/style-clipboard.js"
469
+ },
470
+ "./screen/lib/puck/text-control-kinds": {
471
+ "types": "./dist/screen/lib/puck/text-control-kinds.d.ts",
472
+ "import": "./dist/screen/lib/puck/text-control-kinds.js",
473
+ "default": "./dist/screen/lib/puck/text-control-kinds.js"
474
+ },
475
+ "./screen/lib/puck/tree-reveal": {
476
+ "types": "./dist/screen/lib/puck/tree-reveal.d.ts",
477
+ "import": "./dist/screen/lib/puck/tree-reveal.js",
478
+ "default": "./dist/screen/lib/puck/tree-reveal.js"
479
+ },
480
+ "./screen/lib/puck/use-section-ops": {
481
+ "types": "./dist/screen/lib/puck/use-section-ops.d.ts",
482
+ "import": "./dist/screen/lib/puck/use-section-ops.js",
483
+ "default": "./dist/screen/lib/puck/use-section-ops.js"
484
+ },
485
+ "./screen/lib/screen-parts": {
486
+ "types": "./dist/screen/lib/screen-parts.d.ts",
487
+ "import": "./dist/screen/lib/screen-parts.js",
488
+ "default": "./dist/screen/lib/screen-parts.js"
489
+ },
490
+ "./screen/lib/section-template-types": {
491
+ "types": "./dist/screen/lib/section-template-types.d.ts",
492
+ "import": "./dist/screen/lib/section-template-types.js",
493
+ "default": "./dist/screen/lib/section-template-types.js"
494
+ },
495
+ "./screen/lib/section-templates": {
496
+ "types": "./dist/screen/lib/section-templates.d.ts",
497
+ "import": "./dist/screen/lib/section-templates.js",
498
+ "default": "./dist/screen/lib/section-templates.js"
499
+ },
500
+ "./screen/lib/session": {
501
+ "types": "./dist/screen/lib/session.d.ts",
502
+ "import": "./dist/screen/lib/session.js",
503
+ "default": "./dist/screen/lib/session.js"
504
+ },
505
+ "./screen/lib/session-context": {
506
+ "types": "./dist/screen/lib/session-context.d.ts",
507
+ "import": "./dist/screen/lib/session-context.js",
508
+ "default": "./dist/screen/lib/session-context.js"
168
509
  }
169
510
  },
170
511
  "files": [
@@ -188,7 +529,7 @@
188
529
  "typescript": "^5.3.0"
189
530
  },
190
531
  "scripts": {
191
- "build": "tsup && cp src/rail/rail.css dist/rail/rail.css && cp src/shell/shell.css dist/shell/shell.css && cp src/gold/gold.css dist/gold/gold.css && cp src/copy/copy.css dist/copy/copy.css && cp src/panel/panel.css dist/panel/panel.css && cp src/menu/menu.css dist/menu/menu.css && cp src/chrome/chrome.css dist/chrome/chrome.css && cp src/tree/tree.css dist/tree/tree.css && cp src/drag/drag.css dist/drag/drag.css && cp src/pick/pick.css dist/pick/pick.css && cp src/fields/fields.css dist/fields/fields.css && cp src/text-styles/text-styles.css dist/text-styles/text-styles.css && cp src/easel/easel.css dist/easel/easel.css",
532
+ "build": "NODE_OPTIONS=--max-old-space-size=6144 tsup && cp src/rail/rail.css dist/rail/rail.css && cp src/shell/shell.css dist/shell/shell.css && cp src/gold/gold.css dist/gold/gold.css && cp src/copy/copy.css dist/copy/copy.css && cp src/panel/panel.css dist/panel/panel.css && cp src/menu/menu.css dist/menu/menu.css && cp src/chrome/chrome.css dist/chrome/chrome.css && cp src/tree/tree.css dist/tree/tree.css && cp src/drag/drag.css dist/drag/drag.css && cp src/pick/pick.css dist/pick/pick.css && cp src/fields/fields.css dist/fields/fields.css && cp src/text-styles/text-styles.css dist/text-styles/text-styles.css && cp src/easel/easel.css dist/easel/easel.css && cp src/screen/screen.css dist/screen/screen.css",
192
533
  "dev": "tsup --watch",
193
534
  "typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
194
535
  "test": "node scripts/test.mjs",
@@ -1 +0,0 @@
1
- import{DEFAULT_TEXT_STYLES_WORDS as o}from"./chunk-M6F6LS3H.js";import{DEFAULT_STYLE_CLIPBOARD_WORDS as r}from"./chunk-6WY6ZXJG.js";import{DEFAULT_CANVAS_WORDS as t}from"./chunk-AELNNAFM.js";import{DEFAULT_TREE_WORDS as m}from"./chunk-3EDSDPIP.js";import{DEFAULT_PANEL_WORDS as n}from"./chunk-QTLAVDJE.js";import{DEFAULT_NODE_MENU_WORDS as c}from"./chunk-WK3AFPXY.js";import{DEFAULT_SAVE_WORDS as s}from"./chunk-H6DDIBQ4.js";import{DEFAULT_CHROME_WORDS as f,DEFAULT_NOTICE_WORDS as p}from"./chunk-ZJEBF4NB.js";import{DEFAULT_LOCK_WORDS as i}from"./chunk-RE4LP46F.js";import{DEFAULT_RAIL_WORDS as u}from"./chunk-2OAZYSWJ.js";import{DEFAULT_COPY_WORDS as e}from"./chunk-UH7IGZKF.js";import{DEFAULT_PICK_WORDS as k}from"./chunk-ZAOM6PFH.js";import{DEFAULT_FIELDS_WORDS as j}from"./chunk-FPOKPNO4.js";import{DEFAULT_DRAG_WORDS as h}from"./chunk-O2NLQBFX.js";var l={notice:p,lock:i,save:s,chrome:f,rail:u,tree:m,panel:n,fields:j,pick:k,drag:h,menu:c,styleClipboard:r,copy:e,canvas:t,textStyles:o},F=o=>"object"==typeof o&&null!==o;function a(o,r){const t={};for(const m of Object.keys(o)){const n=o[m],c=r[m];null==c?t[m]=n:F(n)?t[m]=F(c)?a(n,c):n:t[m]=typeof c==typeof n?c:n}return t}function y(o,r){return r?a(o,r):o}export{l as DEFAULT_EASEL_STRINGS,y as mergeEaselStrings};