efficient-easel 0.103.0 → 0.105.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 (137) hide show
  1. package/README.md +92 -7
  2. package/dist/CanvasDragLayer-zgYT1xwY.d.ts +168 -0
  3. package/dist/chrome/index.js +1 -1
  4. package/dist/chunk-3P6AMTOS.js +1 -0
  5. package/dist/chunk-4XQUWGIV.js +65 -0
  6. package/dist/{chunk-6UJ3Y6FC.js → chunk-53G47SWO.js} +1 -1
  7. package/dist/{chunk-IWAPPEL4.js → chunk-5ZBBXZPV.js} +1 -1
  8. package/dist/chunk-7FBDZTUD.js +2 -0
  9. package/dist/chunk-7V5WZ46F.js +2 -0
  10. package/dist/chunk-BVN33R76.js +1 -0
  11. package/dist/chunk-CLOS6SSX.js +1 -0
  12. package/dist/chunk-ERR437B5.js +1 -0
  13. package/dist/chunk-GMCZXMOV.js +1 -0
  14. package/dist/{chunk-OYX47SL7.js → chunk-HNKB2ZYR.js} +1 -1
  15. package/dist/{chunk-AKFJK65Z.js → chunk-IE4GFYKO.js} +1 -1
  16. package/dist/{chunk-KDYIMJTZ.js → chunk-KCOBHPN6.js} +1 -1
  17. package/dist/chunk-KG7RJWOK.js +1 -0
  18. package/dist/chunk-N7VRF7PR.js +5 -0
  19. package/dist/chunk-NYKIQJT2.js +4 -0
  20. package/dist/{chunk-6TZTKAB5.js → chunk-O7Q4DDJT.js} +1 -1
  21. package/dist/chunk-PA3PNTVV.js +1 -0
  22. package/dist/chunk-PLVEGYK6.js +1 -0
  23. package/dist/chunk-PQXIFBDY.js +1 -0
  24. package/dist/{chunk-66ICOE3I.js → chunk-QH6LCNOX.js} +1 -1
  25. package/dist/chunk-R6WTQWAC.js +2 -0
  26. package/dist/{chunk-Z3KBLIEH.js → chunk-RQHC4TD6.js} +3 -3
  27. package/dist/chunk-RSCMJIWS.js +1 -0
  28. package/dist/{chunk-7MU3RJ6S.js → chunk-S4AWJX4Q.js} +1 -1
  29. package/dist/{chunk-MSBF7IW3.js → chunk-SARZN4M7.js} +2 -2
  30. package/dist/chunk-SQTY6CJD.js +1 -0
  31. package/dist/chunk-TBF5CVPA.js +1 -0
  32. package/dist/chunk-THWO5YVZ.js +1 -0
  33. package/dist/chunk-TLZG2FCF.js +1 -0
  34. package/dist/chunk-U3JP4VGF.js +2 -0
  35. package/dist/{chunk-LG436UTD.js → chunk-V4LF7D4F.js} +1 -1
  36. package/dist/chunk-VSHV6KJQ.js +5 -0
  37. package/dist/{chunk-OM67AJQC.js → chunk-VSOP4GUM.js} +1 -1
  38. package/dist/{chunk-6DJHRLCU.js → chunk-YC4TB3CJ.js} +9 -9
  39. package/dist/{chunk-GXN65JMA.js → chunk-YN4KND5F.js} +1 -1
  40. package/dist/chunk-ZTTWFAAC.js +1 -0
  41. package/dist/drag/index.d.ts +4 -164
  42. package/dist/edit-lock/index.d.ts +55 -1
  43. package/dist/edit-lock/index.js +1 -1
  44. package/dist/{host-DJ8Gzsx7.d.ts → host-BQ_b9Qzk.d.ts} +27 -1
  45. package/dist/screen/components/AddBlockRow.js +1 -1
  46. package/dist/screen/components/AddSidePanel.js +1 -1
  47. package/dist/screen/components/MediaSidePanel.d.ts +3 -2
  48. package/dist/screen/components/MediaSidePanel.js +1 -1
  49. package/dist/screen/components/NodeContextMenu.d.ts +208 -5
  50. package/dist/screen/components/NodeContextMenu.js +1 -1
  51. package/dist/screen/components/PageEditGuardNotices.js +1 -1
  52. package/dist/screen/components/ScreenChrome.js +1 -1
  53. package/dist/screen/components/ScreenDocumentContext.d.ts +2 -1
  54. package/dist/screen/components/ScreenDocumentContext.js +1 -1
  55. package/dist/screen/components/ScreenMount.d.ts +14 -3
  56. package/dist/screen/components/ScreenMount.js +1 -1
  57. package/dist/screen/components/ScreenStoreProvider.d.ts +20 -5
  58. package/dist/screen/components/ScreenStoreProvider.js +1 -1
  59. package/dist/screen/components/SectionScreenShell.js +16 -16
  60. package/dist/screen/components/SidePanelHead.js +1 -1
  61. package/dist/screen/components/panel-widths.js +1 -1
  62. package/dist/screen/components/usePartBridge.d.ts +20 -5
  63. package/dist/screen/components/usePartBridge.js +1 -1
  64. package/dist/screen/index.d.ts +17 -6
  65. package/dist/screen/index.js +1 -1
  66. package/dist/screen/lib/admin-bridge.d.ts +2 -0
  67. package/dist/screen/lib/admin-bridge.js +1 -1
  68. package/dist/screen/lib/backend-error.d.ts +20 -5
  69. package/dist/screen/lib/backend-error.js +1 -1
  70. package/dist/screen/lib/document-addressing.d.ts +2 -1
  71. package/dist/screen/lib/document-switch.js +1 -1
  72. package/dist/screen/lib/failure.d.ts +6 -2
  73. package/dist/screen/lib/failure.js +1 -1
  74. package/dist/screen/lib/host-inbound.js +1 -1
  75. package/dist/screen/lib/host.d.ts +3 -2
  76. package/dist/screen/lib/host.js +1 -1
  77. package/dist/screen/lib/key-scope.js +1 -1
  78. package/dist/screen/lib/load-error.d.ts +9 -3
  79. package/dist/screen/lib/load-error.js +1 -1
  80. package/dist/screen/lib/media-panel.d.ts +81 -17
  81. package/dist/screen/lib/media-panel.js +1 -1
  82. package/dist/screen/lib/media-picker.d.ts +14 -2
  83. package/dist/screen/lib/media-picker.js +1 -1
  84. package/dist/screen/lib/page-lock.d.ts +45 -1
  85. package/dist/screen/lib/page-lock.js +1 -1
  86. package/dist/screen/lib/puck/content-tree.d.ts +27 -1
  87. package/dist/screen/lib/puck/content-tree.js +1 -1
  88. package/dist/screen/lib/puck/palette-sections.d.ts +7 -0
  89. package/dist/screen/lib/puck/palette-sections.js +1 -1
  90. package/dist/screen/lib/puck/section-doc.js +1 -1
  91. package/dist/screen/lib/puck/slot-child-name.d.ts +42 -3
  92. package/dist/screen/lib/puck/slot-child-name.js +1 -1
  93. package/dist/screen/lib/puck/style-clipboard.d.ts +53 -1
  94. package/dist/screen/lib/puck/style-clipboard.js +1 -1
  95. package/dist/screen/lib/puck/use-section-ops.d.ts +6 -0
  96. package/dist/screen/lib/puck/use-section-ops.js +1 -1
  97. package/dist/screen/lib/screen-parts.d.ts +619 -10
  98. package/dist/screen/lib/screen-parts.js +1 -1
  99. package/dist/screen/lib/section-templates.d.ts +25 -1
  100. package/dist/screen/lib/section-templates.js +1 -1
  101. package/dist/screen/lib/session-context.d.ts +5 -1
  102. package/dist/screen/lib/session-context.js +1 -1
  103. package/dist/screen/lib/session.d.ts +58 -5
  104. package/dist/screen/lib/session.js +1 -1
  105. package/dist/screen/screen.css +18 -0
  106. package/dist/screen/words.d.ts +96 -2
  107. package/dist/screen/words.js +1 -1
  108. package/dist/strings/catalogue.d.ts +4 -2
  109. package/dist/strings/catalogue.js +1 -1
  110. package/dist/strings/index.d.ts +1 -1
  111. package/dist/strings/index.js +1 -1
  112. package/dist/tree/index.d.ts +4 -142
  113. package/dist/types-DJDBtdB2.d.ts +143 -0
  114. package/package.json +1 -1
  115. package/dist/chunk-3M3A3DN2.js +0 -4
  116. package/dist/chunk-4MXFKJUY.js +0 -1
  117. package/dist/chunk-6FY3PZS3.js +0 -1
  118. package/dist/chunk-A7ZJII7O.js +0 -1
  119. package/dist/chunk-AJBJ74ME.js +0 -1
  120. package/dist/chunk-AKZWUV5Z.js +0 -1
  121. package/dist/chunk-F6CCTEIX.js +0 -1
  122. package/dist/chunk-FUDHI5I4.js +0 -1
  123. package/dist/chunk-GENAF3P6.js +0 -1
  124. package/dist/chunk-HDKTR5TZ.js +0 -62
  125. package/dist/chunk-HMX55DYT.js +0 -1
  126. package/dist/chunk-HWW4XJOH.js +0 -1
  127. package/dist/chunk-JUQ6YJCG.js +0 -1
  128. package/dist/chunk-NBJ2YY6Y.js +0 -4
  129. package/dist/chunk-OORDMLL4.js +0 -5
  130. package/dist/chunk-Q2HPBMG5.js +0 -1
  131. package/dist/chunk-Q3SQBNJB.js +0 -1
  132. package/dist/chunk-R5ZVNJLJ.js +0 -2
  133. package/dist/chunk-SERF2FAU.js +0 -1
  134. package/dist/chunk-VV5ADNBR.js +0 -1
  135. package/dist/chunk-YJXEHK6I.js +0 -2
  136. package/dist/chunk-ZWK3CBRU.js +0 -1
  137. package/dist/chunk-ZZ7VLIHQ.js +0 -1
@@ -126,7 +126,19 @@ declare function slotChildName(child: SlotChild, wheelName?: (code: string) => s
126
126
  * needs at least one character between a pair, so a name that is non-empty
127
127
  * cannot strip to nothing and be renamed into its component's label.
128
128
  */
129
- declare function slotChildRowName(child: SlotChild, compLabel: (type: string) => string, plainText: (copy: string) => string, wheelName?: (code: string) => string | undefined): string;
129
+ declare function slotChildRowName<N extends SlotChild>(child: N, compLabel: (type: string) => string, plainText: (copy: string) => string, wheelName?: (code: string) => string | undefined, rowName?: RowNameRule<N>): string;
130
+ /**
131
+ * THE LAYER'S LAST WORD (0.103.0) — `ScreenBlockLook.rowName`
132
+ * (lib/screen-parts), the rung a layer may stand above the whole precedence:
133
+ * handed the node, the level it is named at and what the rule here answered,
134
+ * it answers the row's name. The campaign designer names its rows by its own
135
+ * labels, and needs none of the website's rungs.
136
+ *
137
+ * An argument and not a rung written here, for the reason the grammar and the
138
+ * catalog are: this module has no layer. Absent, the rule here is the name, as
139
+ * it was before the member existed.
140
+ */
141
+ type RowNameRule<N extends SlotChild = SlotChild> = (node: N, level: "section" | "block", fallback: string) => string;
130
142
  /**
131
143
  * WHICH PROP A RENAME WRITES — the write side of the rule above, and here for
132
144
  * the reason the read side is: naming a slot child has ONE home (card 66194).
@@ -156,6 +168,30 @@ declare function slotChildRowName(child: SlotChild, compLabel: (type: string) =>
156
168
  * anyway so the answer does not depend on that staying true.
157
169
  */
158
170
  declare function slotChildRenameProp(fields: Record<string, unknown> | undefined): "name" | "altName" | null;
171
+ /**
172
+ * WHICH PROP A SECTION'S RENAME WRITES (0.105.0) — the write side of
173
+ * {@link rootRowName} below, as {@link slotChildRenameProp} is the write side of
174
+ * a slot child's name, and here for the same reason: one home for what a node
175
+ * is called.
176
+ *
177
+ * Owner ruling R11 (Victor Mau, 2026-10-09): Rename works on top-level sections
178
+ * in both editors. A section's row reads rung 1 and nothing below it — its own
179
+ * `name`, else its type's label — so `name` is what a rename writes, and the row
180
+ * then reads it back. Until the ruling a root node had no Rename at all: its row
181
+ * was taken to say only its type, which stopped being true the day the row
182
+ * started reading the `name` the presets seed ("Brand Text", a split's
183
+ * "<Section> section"), and that name had no way to be changed.
184
+ *
185
+ * ── `name` IS WRITTEN UNLESS IT IS COPY — the slot child's trap, at the root ──
186
+ * A section whose fields do not declare `name` carries it only as the editor's
187
+ * label for it: the presets write it, the Layers row reads it, and no page draws
188
+ * it. One that declares it an identifier (`withIdentifier`) is the same. But a
189
+ * field keyed `name` that is ordinary copy — `GalleryItem.name` is a Heading
190
+ * printed on the page — is not a name, and a menu item called "Rename" must not
191
+ * rewrite it: null, and the section gets no Rename. No section of the website's
192
+ * registry declares `name` at all today, so every one of them is renamed.
193
+ */
194
+ declare function sectionRenameProp(fields: Record<string, unknown> | undefined): "name" | null;
159
195
  /**
160
196
  * What a ROOT-level node is called in the trees — rung 1 of the same precedence
161
197
  * above, and nothing below it.
@@ -180,7 +216,10 @@ declare function slotChildRenameProp(fields: Record<string, unknown> | undefined
180
216
  *
181
217
  * `fallback` is the caller's type-level label (`sectionLabel(type)`), which is
182
218
  * what every published page reads today and what an unnamed node keeps reading.
219
+ *
220
+ * `rowName` is the layer's last word ({@link RowNameRule}), asked at the
221
+ * SECTION level with what this rung answered.
183
222
  */
184
- declare function rootRowName(node: SlotChild, fallback: string): string;
223
+ declare function rootRowName<N extends SlotChild>(node: N, fallback: string, rowName?: RowNameRule<N>): string;
185
224
 
186
- export { type SlotChild, rootRowName, slotChildName, slotChildRenameProp, slotChildRowName };
225
+ export { type RowNameRule, type SlotChild, rootRowName, sectionRenameProp, slotChildName, slotChildRenameProp, slotChildRowName };
@@ -1 +1 @@
1
- export{rootRowName,slotChildName,slotChildRenameProp,slotChildRowName}from"../../../chunk-HWW4XJOH.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-6W7WLPZH.js";
1
+ export{rootRowName,sectionRenameProp,slotChildName,slotChildRenameProp,slotChildRowName}from"../../../chunk-TBF5CVPA.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-6W7WLPZH.js";
@@ -1,8 +1,43 @@
1
1
  import { StyleRow } from '../../../style-clipboard/index.js';
2
+ import { ScreenStyleDocument, ScreenNode, ScreenStylePastePlan, ScreenStyleClipboard } from '../screen-parts.js';
2
3
  import { panelFieldsOf } from './panel-fields.js';
3
4
  import '../../../types-Djdq6Xkd.js';
4
5
  import 'react';
5
6
  import '../../../words-CnnHb9jo.js';
7
+ import '../../../blocks/index.js';
8
+ import '../../../types-E3HrTPg2.js';
9
+ import '../../../data/index.js';
10
+ import '../../../types-41704JE4.js';
11
+ import '../../../resolve-D68pb3Bx.js';
12
+ import '../../../plan-DChbUXdS.js';
13
+ import '../../../watch-BTYOJpQU.js';
14
+ import '../../../types-CqY85foL.js';
15
+ import '../../../types-DWS-s9z-.js';
16
+ import '../../../wordFit-D4S36PvB.js';
17
+ import '../../../edit-lock/index.js';
18
+ import '../../../panelWidths-D9hTLR25.js';
19
+ import '../../../CanvasDragLayer-zgYT1xwY.js';
20
+ import '../../../session-DSQFmIvx.js';
21
+ import '../../../words-BDignMl_.js';
22
+ import '../../../types-DJDBtdB2.js';
23
+ import '../../../words-DgHcY5qB.js';
24
+ import '../../components/AddSidePanel.js';
25
+ import '../section-template-types.js';
26
+ import './content-tree.js';
27
+ import './block-choice.js';
28
+ import '../../../host-BQ_b9Qzk.js';
29
+ import '../document-contract.js';
30
+ import '../session.js';
31
+ import '../backend-error.js';
32
+ import '../host-chrome.js';
33
+ import '../links/link-filters.js';
34
+ import '../../../LinkPicker-W2Rtxetz.js';
35
+ import '../document-hooks.js';
36
+ import '../document-switch.js';
37
+ import '../../../engine-DBxp_v6B.js';
38
+ import '../admin-bridge.js';
39
+ import './add-target-types.js';
40
+ import './slot-section-spec.js';
6
41
 
7
42
  /**
8
43
  * lib/puck/style-clipboard.ts — COPY STYLE / PASTE STYLE in the website editor
@@ -74,5 +109,22 @@ declare function planNodePaste(config: ConfigLike, scope: string, node: NodeLike
74
109
  pasted: number;
75
110
  message: string;
76
111
  } | null;
112
+ /** A style clipboard with every member answered: the screen's reading of a
113
+ * layer's {@link ScreenStyleClipboard}. */
114
+ interface ResolvedStyleClipboard {
115
+ scope: (doc: ScreenStyleDocument) => string;
116
+ rows: (config: unknown, node: ScreenNode) => StyleRow[];
117
+ copy: (scope: string, node: ScreenNode, label: string, config: unknown) => void;
118
+ plan: (scope: string, node: ScreenNode, label: string, config: unknown) => ScreenStylePastePlan | null;
119
+ }
120
+ /**
121
+ * COPY STYLE / PASTE STYLE AS THE SCREEN RUNS THEM (0.105.0): a layer's
122
+ * clipboard (lib/screen-parts `styleClipboard`) with every member it left out
123
+ * answered the website's way. A layer's `copy` and `plan`, where it hands none,
124
+ * read the rows it handed (`rows`), so a layer with its own look and nothing
125
+ * else still copies and pastes. With no layer's: exactly the website's —
126
+ * `siteStyleScope(siteId)`, `nodeStyleRows`, `copyNodeStyle`, `planNodePaste`.
127
+ */
128
+ declare function styleClipboardOf(part: ScreenStyleClipboard | null | undefined): ResolvedStyleClipboard;
77
129
 
78
- export { copyNodeStyle, nodeStyleRows, planNodePaste, shopFieldKind, siteStyleScope };
130
+ export { type ResolvedStyleClipboard, copyNodeStyle, nodeStyleRows, planNodePaste, shopFieldKind, siteStyleScope, styleClipboardOf };
@@ -1 +1 @@
1
- export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope}from"../../../chunk-Q2HPBMG5.js";import"../../../chunk-ZE7I3PLX.js";import"../../../chunk-PWZOS45R.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-R2HLPNQF.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-BSPCSC45.js";import"../../../chunk-57DJOKXT.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-L5KW4HG5.js";
1
+ export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-SQTY6CJD.js";import"../../../chunk-ZE7I3PLX.js";import"../../../chunk-PWZOS45R.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-R2HLPNQF.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-BSPCSC45.js";import"../../../chunk-57DJOKXT.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-L5KW4HG5.js";
@@ -80,6 +80,12 @@ type SectionOpsOptions = {
80
80
  * un-fix that card.
81
81
  */
82
82
  readOnly?: boolean;
83
+ /**
84
+ * Resolve each node an op puts in (`easel.resolveNode`, trigger `"insert"`).
85
+ * Default: the layer's rule (`ScreenBlockRules.resolveOnInsert`), else
86
+ * false — no op resolves anything, as before 0.103.0.
87
+ */
88
+ resolveOnInsert?: boolean;
83
89
  };
84
90
  declare function useSectionOps(options?: SectionOpsOptions): SectionOps;
85
91
 
@@ -1 +1 @@
1
- export{useSectionOps}from"../../../chunk-VV5ADNBR.js";import"../../../chunk-FUDHI5I4.js";import"../../../chunk-P67FP7PG.js";import"../../../chunk-AELNNAFM.js";import"../../../chunk-YRLPFZW3.js";import"../../../chunk-D2BCHTQR.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-ZNCEOSXO.js";import"../../../chunk-KRXQM65X.js";import"../../../chunk-NKB3KVAB.js";
1
+ export{useSectionOps}from"../../../chunk-TLZG2FCF.js";import"../../../chunk-VSHV6KJQ.js";import"../../../chunk-PLVEGYK6.js";import"../../../chunk-R6WTQWAC.js";import"../../../chunk-U3JP4VGF.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";