efficient-easel 0.106.0 → 1.0.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 (168) hide show
  1. package/README.md +70 -29
  2. package/dist/{LinkPicker-W2Rtxetz.d.ts → LinkPicker-hPEr1MJx.d.ts} +6 -4
  3. package/dist/autosave/index.d.ts +5 -5
  4. package/dist/chrome/chrome.css +50 -273
  5. package/dist/chrome/index.d.ts +61 -56
  6. package/dist/chrome/index.js +1 -1
  7. package/dist/chunk-4GNPKHV4.js +64 -0
  8. package/dist/chunk-5545A3PC.js +4 -0
  9. package/dist/chunk-7SQF6LZL.js +1 -0
  10. package/dist/chunk-BXMXTO36.js +1 -0
  11. package/dist/{chunk-JWMNPRTT.js → chunk-CKEPQNSQ.js} +1 -1
  12. package/dist/{chunk-LY4K2ECT.js → chunk-DJMMTWFP.js} +1 -1
  13. package/dist/chunk-EA2HTX37.js +5 -0
  14. package/dist/{chunk-VINYARYJ.js → chunk-FEK3S6HN.js} +1 -1
  15. package/dist/chunk-FPAVNX3Y.js +6 -0
  16. package/dist/chunk-HMJS344F.js +1 -0
  17. package/dist/chunk-JLTZQ4US.js +1 -0
  18. package/dist/chunk-JMGPPXNQ.js +24 -0
  19. package/dist/chunk-K56YDHYQ.js +1 -0
  20. package/dist/chunk-LOMEH6DG.js +1 -0
  21. package/dist/{chunk-FS5BLARH.js → chunk-MAEXP3KE.js} +1 -1
  22. package/dist/chunk-MJM6SFD3.js +3 -0
  23. package/dist/chunk-NLRW4BGG.js +8 -0
  24. package/dist/chunk-OJAJVH7S.js +5 -0
  25. package/dist/chunk-ONRYLR2D.js +2 -0
  26. package/dist/{chunk-WTMHT7BI.js → chunk-ORR3Q4WV.js} +1 -1
  27. package/dist/chunk-OTEXGJDU.js +5 -0
  28. package/dist/chunk-P2VEMZH5.js +1 -0
  29. package/dist/{chunk-MHKBLPQ2.js → chunk-PT6V53OO.js} +1 -1
  30. package/dist/{chunk-6WH7FA2M.js → chunk-PYCLHOSA.js} +2 -2
  31. package/dist/chunk-Q27BB5ZC.js +14 -0
  32. package/dist/chunk-QLD57GBB.js +6 -0
  33. package/dist/{chunk-PBSEUZD6.js → chunk-QMNML7XH.js} +1 -1
  34. package/dist/chunk-QR4DLZ3P.js +5 -0
  35. package/dist/chunk-TJ7YIRWQ.js +21 -0
  36. package/dist/{chunk-3P6AMTOS.js → chunk-VPFNZ7TB.js} +1 -1
  37. package/dist/chunk-W3XX2CNW.js +16 -0
  38. package/dist/chunk-X6DQWK2C.js +1 -0
  39. package/dist/chunk-XWR5YVA7.js +9 -0
  40. package/dist/chunk-YABL4EWX.js +7 -0
  41. package/dist/chunk-ZNNATBDC.js +1 -0
  42. package/dist/chunk-ZP4G3X44.js +4 -0
  43. package/dist/copy/copy.css +66 -177
  44. package/dist/copy/index.d.ts +0 -2
  45. package/dist/copy/index.js +31 -32
  46. package/dist/drag/drag.css +31 -11
  47. package/dist/drag/index.js +1 -1
  48. package/dist/easel/index.js +1 -1
  49. package/dist/fields/fields.css +35 -304
  50. package/dist/fields/index.d.ts +87 -95
  51. package/dist/fields/index.js +1 -1
  52. package/dist/gold/gold.css +3 -3
  53. package/dist/gold/index.d.ts +6 -5
  54. package/dist/gold/index.js +1 -1
  55. package/dist/index.d.ts +3 -3
  56. package/dist/index.js +1 -1
  57. package/dist/menu/index.d.ts +49 -93
  58. package/dist/menu/index.js +1 -1
  59. package/dist/menu/menu.css +37 -246
  60. package/dist/node-ops/index.d.ts +1 -1
  61. package/dist/panel/index.d.ts +46 -72
  62. package/dist/panel/index.js +17 -18
  63. package/dist/panel/panel.css +143 -372
  64. package/dist/pick/index.d.ts +52 -33
  65. package/dist/pick/index.js +7 -7
  66. package/dist/pick/pick.css +19 -150
  67. package/dist/rail/index.d.ts +48 -90
  68. package/dist/rail/index.js +1 -1
  69. package/dist/rail/rail.css +21 -108
  70. package/dist/screen/components/AddBlockRow.d.ts +8 -2
  71. package/dist/screen/components/AddBlockRow.js +1 -1
  72. package/dist/screen/components/AddChildRow.d.ts +4 -3
  73. package/dist/screen/components/AddChildRow.js +1 -1
  74. package/dist/screen/components/AddSidePanel.js +1 -1
  75. package/dist/screen/components/MediaSidePanel.d.ts +1 -1
  76. package/dist/screen/components/MediaSidePanel.js +1 -1
  77. package/dist/screen/components/NodeContextMenu.d.ts +12 -8
  78. package/dist/screen/components/NodeContextMenu.js +1 -1
  79. package/dist/screen/components/PageEditGuardNotices.js +1 -1
  80. package/dist/screen/components/ScreenChrome.js +1 -1
  81. package/dist/screen/components/ScreenDocumentContext.d.ts +1 -1
  82. package/dist/screen/components/ScreenDocumentContext.js +1 -1
  83. package/dist/screen/components/ScreenMount.d.ts +7 -7
  84. package/dist/screen/components/ScreenMount.js +1 -1
  85. package/dist/screen/components/ScreenStoreProvider.d.ts +7 -7
  86. package/dist/screen/components/ScreenStoreProvider.js +1 -1
  87. package/dist/screen/components/SectionScreenShell.js +16 -16
  88. package/dist/screen/components/SidePanelHead.d.ts +4 -2
  89. package/dist/screen/components/SidePanelHead.js +1 -1
  90. package/dist/screen/components/UiIcon.d.ts +10 -26
  91. package/dist/screen/components/UiIcon.js +2 -1
  92. package/dist/screen/components/panel-widths.js +1 -1
  93. package/dist/screen/components/usePartBridge.d.ts +7 -7
  94. package/dist/screen/components/usePartBridge.js +1 -1
  95. package/dist/screen/index.d.ts +7 -7
  96. package/dist/screen/index.js +1 -1
  97. package/dist/screen/lib/admin-bridge.d.ts +1 -1
  98. package/dist/screen/lib/admin-bridge.js +1 -1
  99. package/dist/screen/lib/chrome-theme.d.ts +20 -12
  100. package/dist/screen/lib/chrome-theme.js +1 -1
  101. package/dist/screen/lib/document-addressing.d.ts +1 -1
  102. package/dist/screen/lib/host-chrome.d.ts +1 -1
  103. package/dist/screen/lib/host.d.ts +1 -1
  104. package/dist/screen/lib/key-scope.js +1 -1
  105. package/dist/screen/lib/links/link-filters.d.ts +1 -1
  106. package/dist/screen/lib/media-panel.d.ts +1 -1
  107. package/dist/screen/lib/media-picker.d.ts +1 -1
  108. package/dist/screen/lib/page-lock.d.ts +1 -1
  109. package/dist/screen/lib/puck/style-clipboard.d.ts +7 -7
  110. package/dist/screen/lib/puck/use-section-ops.js +1 -1
  111. package/dist/screen/lib/screen-parts.d.ts +9 -8
  112. package/dist/screen/lib/screen-parts.js +1 -1
  113. package/dist/screen/lib/section-templates.d.ts +1 -1
  114. package/dist/screen/lib/session-context.d.ts +1 -1
  115. package/dist/screen/lib/session.d.ts +1 -1
  116. package/dist/screen/screen.css +33 -206
  117. package/dist/shell/index.d.ts +134 -118
  118. package/dist/shell/index.js +1 -1
  119. package/dist/shell/shell.css +130 -88
  120. package/dist/strings/catalogue.d.ts +5 -5
  121. package/dist/strings/catalogue.js +1 -1
  122. package/dist/strings/index.d.ts +5 -5
  123. package/dist/strings/index.js +1 -1
  124. package/dist/style-clipboard/index.d.ts +1 -1
  125. package/dist/text-styles/index.d.ts +12 -3
  126. package/dist/text-styles/index.js +33 -38
  127. package/dist/text-styles/text-styles.css +39 -71
  128. package/dist/tree/index.d.ts +49 -44
  129. package/dist/tree/index.js +1 -1
  130. package/dist/tree/tree.css +31 -653
  131. package/dist/{types-DJDBtdB2.d.ts → types-BqGnUVX5.d.ts} +32 -32
  132. package/dist/types-BsyPh6EW.d.ts +99 -0
  133. package/dist/{types-DWS-s9z-.d.ts → types-CsgMwHHa.d.ts} +14 -11
  134. package/dist/{types-CqY85foL.d.ts → types-Dt1CFR1S.d.ts} +4 -2
  135. package/dist/{wordFit-D4S36PvB.d.ts → wordFit-7XpmhcaW.d.ts} +3 -5
  136. package/dist/words-Cl9xMUYY.d.ts +41 -0
  137. package/dist/{words-D_Lnw1Gr.d.ts → words-CvFnwGSr.d.ts} +1 -1
  138. package/package.json +5 -1
  139. package/dist/chunk-2UX75JDP.js +0 -1
  140. package/dist/chunk-37OCQYNX.js +0 -65
  141. package/dist/chunk-3EDSDPIP.js +0 -1
  142. package/dist/chunk-3QVB4AG2.js +0 -3
  143. package/dist/chunk-3WSPDAK2.js +0 -1
  144. package/dist/chunk-5MZ3RNQQ.js +0 -13
  145. package/dist/chunk-5ZBBXZPV.js +0 -6
  146. package/dist/chunk-BZ5ASXOL.js +0 -1
  147. package/dist/chunk-C6BJB5AC.js +0 -2
  148. package/dist/chunk-DX4XELD6.js +0 -18
  149. package/dist/chunk-EOJNJCMJ.js +0 -16
  150. package/dist/chunk-EWVJSRRY.js +0 -6
  151. package/dist/chunk-H24N5TMZ.js +0 -11
  152. package/dist/chunk-I6T4TZ5Q.js +0 -8
  153. package/dist/chunk-KTVH2ZRL.js +0 -15
  154. package/dist/chunk-M7N2V4TG.js +0 -2
  155. package/dist/chunk-MS4QRBJ6.js +0 -5
  156. package/dist/chunk-ND55LTCA.js +0 -5
  157. package/dist/chunk-OWBO4WKA.js +0 -0
  158. package/dist/chunk-P6O363EE.js +0 -6
  159. package/dist/chunk-RW4XBUUW.js +0 -1
  160. package/dist/chunk-UEVTQBM7.js +0 -10
  161. package/dist/chunk-VCQVNPTG.js +0 -22
  162. package/dist/chunk-WZ7TGAAT.js +0 -3
  163. package/dist/chunk-YC4TB3CJ.js +0 -25
  164. package/dist/chunk-Z6SOLDWV.js +0 -1
  165. package/dist/chunk-ZFDCDJNZ.js +0 -16
  166. package/dist/chunk-ZNS7727Y.js +0 -12
  167. package/dist/types-Djdq6Xkd.d.ts +0 -138
  168. package/dist/words-DgHcY5qB.d.ts +0 -33
@@ -1,13 +1,19 @@
1
1
  /*
2
2
  * efficient-easel — rail styles.
3
3
  *
4
- * The values here mirror `railTokens` in tokens.ts one-for-one (both trace back
5
- * to the storefront editor's `.sf-rail` rules — the visual reference). They are
6
- * declared as custom properties ON `.es-rail`, not on `:root`, so importing this
7
- * stylesheet themes ONLY the rail and never leaks variables into the host page.
8
- * Re-theme by overriding any `--es-rail-*` var on or above the rail element.
4
+ * The rail and its buttons are efficient-shell's `IconRail` and
5
+ * `IconRailButton` since 1.0.0 (efficient-easel#199, harness UI-24): their
6
+ * look, hover, active and focus are the shell's, and so — since efficient-shell
7
+ * 4.165.0 — are a row rail's measured words (`IconRail` `labelsFit`). What
8
+ * this sheet keeps is the rail's CONTAINER: the column's card, the row's lack
9
+ * of one.
9
10
  *
10
- * Import once from a client entry / global stylesheet:
11
+ * The values mirror `railTokens` in tokens.ts one-for-one and resolve to the
12
+ * shell's tokens. They are declared as custom properties ON `.es-rail`, not on
13
+ * `:root`, so importing this stylesheet names nothing in the host page.
14
+ *
15
+ * Import once from a client entry / global stylesheet, after the shell's:
16
+ * import 'efficient-shell/ui.css';
11
17
  * import 'efficient-easel/rail.css';
12
18
  */
13
19
 
@@ -16,21 +22,11 @@
16
22
  --es-rail-w: 46px;
17
23
  --es-rail-pad-y: 8px;
18
24
  --es-rail-gap: 4px;
19
- --es-rail-radius: 12px;
20
- --es-rail-btn-size: 34px;
21
- --es-rail-btn-radius: 9px;
25
+ --es-rail-radius: var(--radius-xl);
26
+ --es-rail-btn-size: 36px;
22
27
  --es-rail-icon-size: 18px;
23
- --es-rail-word-pad-x: 8px;
24
- --es-rail-word-gap: 8px;
25
- --es-rail-word-size: 12px;
26
- --es-rail-word-weight: 500;
27
- --es-rail-bg: #ffffff;
28
+ --es-rail-bg: var(--surface);
28
29
  --es-rail-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 10px 30px rgba(0, 0, 0, 0.06);
29
- --es-rail-fg: #6b7280;
30
- --es-rail-hover-bg: #f3f4f6;
31
- --es-rail-hover-fg: #111827;
32
- --es-rail-accent: #2563eb;
33
- --es-rail-accent-tint: #eff6ff;
34
30
 
35
31
  flex: none;
36
32
  width: var(--es-rail-w);
@@ -59,10 +55,9 @@
59
55
  * card look stays declared in exactly one place, and a host re-theming the rail
60
56
  * still only has the `--es-rail-*` names to learn.
61
57
  *
62
- * WHAT DELIBERATELY DOES NOT CHANGE: the button size, the button radius, the
63
- * icon size, the gap and every colour. The icons must not resize when they move
64
- * into the bar, so no `--es-rail-btn-*`, `--es-rail-icon-size` or colour token
65
- * appears below, and there is no `.es-rail-row .es-rail-btn` rule anywhere.
58
+ * WHAT DELIBERATELY DOES NOT CHANGE: the buttons, which are the shell's in
59
+ * both directions, and the gap. There is no `.es-rail-row .es-rail-btn` rule
60
+ * anywhere.
66
61
  * `align-items: center` is inherited from the base rule and does the right
67
62
  * thing here too — in a row it centres the buttons vertically.
68
63
  */
@@ -78,98 +73,16 @@
78
73
  /* The column pads `--es-rail-pad-y 0`: the one step goes on the MAIN axis —
79
74
  the run of buttons — and the cross axis is handled by the fixed width.
80
75
  Rotate the axes and the same step goes on the ENDS of the row. The cross
81
- axis is 0 on purpose, so the row is exactly one button tall (34px) and the
76
+ axis is 0 on purpose, so the row is exactly one button tall (36px) and the
82
77
  52px bar centres it, instead of the rail imposing a height on the bar. */
83
78
  padding: 0 var(--es-rail-pad-y);
84
79
  }
85
80
 
86
- .es-rail-btn {
87
- width: var(--es-rail-btn-size);
88
- height: var(--es-rail-btn-size);
89
- border: none;
90
- background: transparent;
91
- border-radius: var(--es-rail-btn-radius);
92
- color: var(--es-rail-fg);
93
- display: flex;
94
- align-items: center;
95
- justify-content: center;
96
- cursor: pointer;
97
- transition: background 0.12s, color 0.12s;
98
- }
99
-
81
+ /* The glyph's size: an item may hand any 18×18 drawing, and the shell's
82
+ button sizes none. */
100
83
  .es-rail-btn svg {
101
84
  width: var(--es-rail-icon-size);
102
85
  height: var(--es-rail-icon-size);
103
86
  display: block;
104
87
  }
105
88
 
106
- .es-rail-btn:hover:not(:disabled) {
107
- background: var(--es-rail-hover-bg);
108
- color: var(--es-rail-hover-fg);
109
- }
110
-
111
- .es-rail-btn.is-active {
112
- background: var(--es-rail-accent-tint);
113
- color: var(--es-rail-accent);
114
- }
115
-
116
- .es-rail-btn:disabled {
117
- opacity: 0.35;
118
- cursor: default;
119
- }
120
-
121
- /* ── Words beside the icons (a row rail only) ────────────────────────────────
122
- THE SETTINGS TABS' RULE (owner, 2026-09-18: "the rule must be the same as the
123
- top tabs of the right settings panel"). Three states, picked by the width of
124
- the rail's column and nothing else:
125
-
126
- every word when every button fits with its word;
127
- chosen word otherwise the glyphs, plus the word of the button whose
128
- panel is open;
129
- glyphs only when even that does not fit.
130
-
131
- BOTH parts are always in the markup once the words are measured; the widths
132
- decide which are drawn, in CSS, against the column's own width (`100cqi`) —
133
- the tab strip's way, not a script's. The thresholds come from ONE rule, the
134
- "word fit" block in `panel.css`, which the segmented control reads too. This
135
- sheet only names the rail's chrome for it — the four inputs below — so a
136
- re-padded rail button moves its thresholds with it.
137
-
138
- `is-measured` is set by `EaselRail` when it was handed the words' widths
139
- (`TopBarRail` measures them). Without it, and without `panel.css`, the word
140
- stays clipped to nothing: an icon-only rail always fits. */
141
- .es-rail.es-rail-row.is-measured {
142
- --es-fit-chip: var(--es-rail-btn-size);
143
- --es-fit-word-gap: var(--es-rail-word-gap);
144
- --es-fit-gap: var(--es-rail-gap);
145
- --es-fit-ends: var(--es-rail-pad-y);
146
- }
147
- /* The button keeps its 34px height, its radius and its idle / hover / active
148
- colours; only its width follows the word. Wordless it is 34px wide exactly
149
- as before — the padding plus the 18px glyph is 34. The icon-to-word gap is
150
- the WORD's margin (see `panel.css`), so the button's own `gap` stays 0 and
151
- goes with the word.
152
-
153
- `min-width: 0` KEEPS THE ICON-ONLY RAIL'S GIVE. Six glyph buttons need 240px
154
- and the 220px panel floor gives the column 219: the icon-only rail has
155
- always shrunk its buttons a few px there rather than run past the column,
156
- and padding would otherwise make the button's own content its floor.
157
- The glyph keeps its square instead (the rule after), which is also what
158
- holds a narrower glyph — the shop's text "+" — to a 34px button. */
159
- .es-rail.es-rail-row.is-measured .es-rail-btn {
160
- width: auto;
161
- min-width: 0;
162
- padding: 0 var(--es-rail-word-pad-x);
163
- }
164
- .es-rail.es-rail-row.is-measured .es-rail-btn > :first-child {
165
- min-width: var(--es-rail-icon-size);
166
- text-align: center;
167
- }
168
- .es-rail-word {
169
- font-size: var(--es-rail-word-size);
170
- font-weight: var(--es-rail-word-weight);
171
- line-height: 1;
172
- white-space: nowrap;
173
- overflow: hidden;
174
- max-width: 0;
175
- }
@@ -1,13 +1,19 @@
1
1
  import * as react from 'react';
2
2
  import { BlockChoice } from '../lib/puck/block-choice.js';
3
3
 
4
- declare function AddBlockRow({ choices, onPick, open, onToggle, }: {
4
+ declare function AddBlockRow({ choices, onPick, }: {
5
5
  /** The block types this slot accepts, from `canAddTo(parentType)?.choices`. */
6
6
  choices: BlockChoice[];
7
7
  /** Insert the chosen type. The caller knows the zone and the index. */
8
8
  onPick: (type: string) => void;
9
- /** Host-owned open state — omitted where the caller draws only one row. */
9
+ /**
10
+ * @deprecated Ignored since efficient-easel 1.0 (#199 step 4): the menu is
11
+ * the shell's `DropdownMenu`, which owns its open state and closes on a
12
+ * press outside it — so only one stands open with no bookkeeping. Kept so a
13
+ * caller that passes it compiles; drop it.
14
+ */
10
15
  open?: boolean;
16
+ /** @deprecated Ignored, with `open`. */
11
17
  onToggle?: () => void;
12
18
  }): react.JSX.Element;
13
19
 
@@ -1 +1 @@
1
- export{AddBlockRow as default}from"../../chunk-I6T4TZ5Q.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.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";
1
+ export{AddBlockRow as default}from"../../chunk-ZP4G3X44.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-OJAJVH7S.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-PYCLHOSA.js";import"../../chunk-AELNNAFM.js";import"../../chunk-JMGPPXNQ.js";import"../../chunk-NLRW4BGG.js";import"../../chunk-XWR5YVA7.js";import"../../chunk-Q27BB5ZC.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-7SQF6LZL.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -22,9 +22,10 @@ import * as react from 'react';
22
22
  * draws it. A surface that forgets to ask is then visibly a surface that passes
23
23
  * `blocked={null}`, rather than a surface with its own quietly missing check.
24
24
  *
25
- * `disabled` rather than hidden, for the same reason as the Placement grid's
26
- * closed square: an affordance that vanishes reads as a broken editor, while one
27
- * that dims and explains itself reads as an answer.
25
+ * Off rather than hidden, for the same reason as the Placement grid's closed
26
+ * square: an affordance that vanishes reads as a broken editor, while one that
27
+ * dims and explains itself reads as an answer — to the pointer, the keyboard
28
+ * and a screen reader alike (`aria-disabled` and `aria-describedby`).
28
29
  */
29
30
  declare function AddChildRow({ label, blocked, onAdd, small, }: {
30
31
  /** The registry's own "Add …" words — never composed here. */
@@ -1 +1 @@
1
- export{AddChildRow as default}from"../../chunk-3QVB4AG2.js";
1
+ export{AddChildRow as default}from"../../chunk-5545A3PC.js";
@@ -1 +1 @@
1
- export{blockKey,AddSidePanel as default,sectionKey,templateKey}from"../../chunk-MS4QRBJ6.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-5ZBBXZPV.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-DX4XELD6.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";
1
+ export{blockKey,AddSidePanel as default,sectionKey,templateKey}from"../../chunk-OTEXGJDU.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-QR4DLZ3P.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-OJAJVH7S.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-PYCLHOSA.js";import"../../chunk-AELNNAFM.js";import"../../chunk-JMGPPXNQ.js";import"../../chunk-NLRW4BGG.js";import"../../chunk-XWR5YVA7.js";import"../../chunk-Q27BB5ZC.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-TJ7YIRWQ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-7SQF6LZL.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-W3XX2CNW.js";import"../../chunk-O2NLQBFX.js";import"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -13,7 +13,7 @@ import '../lib/backend-error.js';
13
13
  import '../../edit-lock/index.js';
14
14
  import '../lib/host-chrome.js';
15
15
  import '../lib/links/link-filters.js';
16
- import '../../LinkPicker-W2Rtxetz.js';
16
+ import '../../LinkPicker-hPEr1MJx.js';
17
17
  import '../lib/document-hooks.js';
18
18
  import '../lib/section-template-types.js';
19
19
  import '../lib/puck/content-tree.js';
@@ -1 +1 @@
1
- export{MediaSidePanel as default}from"../../chunk-JWMNPRTT.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.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";
1
+ export{MediaSidePanel as default}from"../../chunk-CKEPQNSQ.js";import"../../chunk-OJAJVH7S.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-PYCLHOSA.js";import"../../chunk-AELNNAFM.js";import"../../chunk-JMGPPXNQ.js";import"../../chunk-NLRW4BGG.js";import"../../chunk-XWR5YVA7.js";import"../../chunk-Q27BB5ZC.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-TJ7YIRWQ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-7SQF6LZL.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { E as EaselContextMenuItem } from '../../types-Djdq6Xkd.js';
2
+ import { E as EaselContextMenuItem } from '../../types-BsyPh6EW.js';
3
3
  import { P as Place } from '../../types-41704JE4.js';
4
4
  import { N as NodeClipboard, C as ClipboardEntry, a as NodeOps } from '../../useNodeOps-BF0fQsif.js';
5
5
  import { StyleSnapshot } from '../../style-clipboard/index.js';
@@ -15,16 +15,16 @@ import '../../blocks/index.js';
15
15
  import '../../types-E3HrTPg2.js';
16
16
  import '../../data/index.js';
17
17
  import '../../resolve-D68pb3Bx.js';
18
- import '../../types-CqY85foL.js';
19
- import '../../types-DWS-s9z-.js';
20
- import '../../wordFit-D4S36PvB.js';
18
+ import '../../types-Dt1CFR1S.js';
19
+ import '../../types-CsgMwHHa.js';
20
+ import '../../wordFit-7XpmhcaW.js';
21
21
  import '../../edit-lock/index.js';
22
22
  import '../../panelWidths-D9hTLR25.js';
23
23
  import '../../CanvasDragLayer-zgYT1xwY.js';
24
24
  import '../../session-DSQFmIvx.js';
25
25
  import '../../words-BDignMl_.js';
26
- import '../../types-DJDBtdB2.js';
27
- import '../../words-DgHcY5qB.js';
26
+ import '../../types-BqGnUVX5.js';
27
+ import '../../words-Cl9xMUYY.js';
28
28
  import './AddSidePanel.js';
29
29
  import '../lib/section-template-types.js';
30
30
  import '../lib/puck/content-tree.js';
@@ -35,7 +35,7 @@ import '../../engine-DBxp_v6B.js';
35
35
  import '../lib/admin-bridge.js';
36
36
  import '../lib/host-chrome.js';
37
37
  import '../lib/links/link-filters.js';
38
- import '../../LinkPicker-W2Rtxetz.js';
38
+ import '../../LinkPicker-hPEr1MJx.js';
39
39
  import '../lib/backend-error.js';
40
40
  import '../lib/document-hooks.js';
41
41
 
@@ -46,7 +46,7 @@ import '../lib/document-hooks.js';
46
46
  * and one menu for all of them would be mostly greyed rows. The kind is decided
47
47
  * once, at the event, by what is under the pointer — never guessed later.
48
48
  */
49
- type NodeMenuTarget =
49
+ type NodeMenuTarget = (
50
50
  /** On a node: a Layers row, or its box on the canvas. */
51
51
  {
52
52
  kind: "node";
@@ -68,6 +68,10 @@ type NodeMenuTarget =
68
68
  x: number;
69
69
  y: number;
70
70
  el: TextEl;
71
+ }) & {
72
+ /** What was right-clicked (the canvas's frame, for a press inside it): the
73
+ * shell's menu stays inside the window that holds it (UI-11). */
74
+ owner?: Element | null;
71
75
  };
72
76
  /** As much of an input as the text actions use. */
73
77
  type TextEl = {
@@ -1 +1 @@
1
- export{EASEL_NODE_CLIPBOARD,ancestorChain,nodeClipboardOf,nodeClipboardRules,nodeMenuItems,nodeShortcut,pageMenuItems,pastePlace,runNodeShortcut,textMenuItems,useNodeClipboard,useNodeContextMenu}from"../../chunk-M7N2V4TG.js";import"../../chunk-57DJOKXT.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-2LK54I4E.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-RW4XBUUW.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
1
+ export{EASEL_NODE_CLIPBOARD,ancestorChain,nodeClipboardOf,nodeClipboardRules,nodeMenuItems,nodeShortcut,pageMenuItems,pastePlace,runNodeShortcut,textMenuItems,useNodeClipboard,useNodeContextMenu}from"../../chunk-JLTZQ4US.js";import"../../chunk-57DJOKXT.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-BXMXTO36.js";import"../../chunk-EA2HTX37.js";import"../../chunk-2LK54I4E.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -1 +1 @@
1
- export{PageEditGuardNotices as default}from"../../chunk-FS5BLARH.js";import"../../chunk-C6BJB5AC.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-3P6AMTOS.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.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";
1
+ export{PageEditGuardNotices as default}from"../../chunk-MAEXP3KE.js";import"../../chunk-ONRYLR2D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-TJ7YIRWQ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-L5KW4HG5.js";
@@ -1 +1 @@
1
- export{ScreenChrome as default}from"../../chunk-37OCQYNX.js";import"../../chunk-26OOWIJJ.js";import"../../chunk-SQTY6CJD.js";import"../../chunk-FGNR22NY.js";import"../../chunk-ZE7I3PLX.js";import"../../chunk-2GVCAIPX.js";import"../../chunk-PWZOS45R.js";import"../../chunk-7F52SZOI.js";import"../../chunk-R2HLPNQF.js";import"../../chunk-TBF5CVPA.js";import"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import"../../chunk-MHKBLPQ2.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-5MZ3RNQQ.js";import"../../chunk-WTMHT7BI.js";import"../../chunk-LY4K2ECT.js";import"../../chunk-PBSEUZD6.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-M7N2V4TG.js";import"../../chunk-FS5BLARH.js";import"../../chunk-BSPCSC45.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-C6BJB5AC.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-3P6AMTOS.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-57DJOKXT.js";import"../../chunk-3QVB4AG2.js";import"../../chunk-MS4QRBJ6.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-5ZBBXZPV.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-JWMNPRTT.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-2LK54I4E.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-RW4XBUUW.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-OWBO4WKA.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-DX4XELD6.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";
1
+ export{ScreenChrome as default}from"../../chunk-4GNPKHV4.js";import"../../chunk-26OOWIJJ.js";import"../../chunk-SQTY6CJD.js";import"../../chunk-FGNR22NY.js";import"../../chunk-ZE7I3PLX.js";import"../../chunk-2GVCAIPX.js";import"../../chunk-PWZOS45R.js";import"../../chunk-7F52SZOI.js";import"../../chunk-R2HLPNQF.js";import"../../chunk-TBF5CVPA.js";import"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import"../../chunk-PT6V53OO.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-ORR3Q4WV.js";import"../../chunk-DJMMTWFP.js";import"../../chunk-QMNML7XH.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-JLTZQ4US.js";import"../../chunk-MAEXP3KE.js";import"../../chunk-BSPCSC45.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-ONRYLR2D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-57DJOKXT.js";import"../../chunk-5545A3PC.js";import"../../chunk-OTEXGJDU.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-QR4DLZ3P.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-CKEPQNSQ.js";import"../../chunk-OJAJVH7S.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-PYCLHOSA.js";import"../../chunk-AELNNAFM.js";import"../../chunk-JMGPPXNQ.js";import"../../chunk-NLRW4BGG.js";import"../../chunk-XWR5YVA7.js";import"../../chunk-Q27BB5ZC.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-BXMXTO36.js";import"../../chunk-EA2HTX37.js";import"../../chunk-2LK54I4E.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-X6DQWK2C.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-TJ7YIRWQ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-7SQF6LZL.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-W3XX2CNW.js";import"../../chunk-O2NLQBFX.js";import"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -15,7 +15,7 @@ import '../lib/session.js';
15
15
  import '../lib/backend-error.js';
16
16
  import '../lib/host-chrome.js';
17
17
  import '../lib/links/link-filters.js';
18
- import '../../LinkPicker-W2Rtxetz.js';
18
+ import '../../LinkPicker-hPEr1MJx.js';
19
19
  import '../lib/document-hooks.js';
20
20
  import '../lib/section-template-types.js';
21
21
  import '../lib/puck/content-tree.js';
@@ -1 +1 @@
1
- export{ScreenDocumentContext,ScreenDocumentProvider,useScreenDocument}from"../../chunk-C6BJB5AC.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-3P6AMTOS.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MFIRYGHW.js";
1
+ export{ScreenDocumentContext,ScreenDocumentProvider,useScreenDocument}from"../../chunk-ONRYLR2D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MFIRYGHW.js";
@@ -14,7 +14,7 @@ import '../lib/backend-error.js';
14
14
  import '../../edit-lock/index.js';
15
15
  import '../lib/host-chrome.js';
16
16
  import '../lib/links/link-filters.js';
17
- import '../../LinkPicker-W2Rtxetz.js';
17
+ import '../../LinkPicker-hPEr1MJx.js';
18
18
  import '../lib/document-hooks.js';
19
19
  import '../lib/section-template-types.js';
20
20
  import '../lib/puck/content-tree.js';
@@ -22,18 +22,18 @@ import '../lib/document-switch.js';
22
22
  import '../../engine-DBxp_v6B.js';
23
23
  import '../lib/admin-bridge.js';
24
24
  import '../../watch-BTYOJpQU.js';
25
- import '../../types-CqY85foL.js';
26
- import '../../types-DWS-s9z-.js';
27
- import '../../wordFit-D4S36PvB.js';
25
+ import '../../types-Dt1CFR1S.js';
26
+ import '../../types-CsgMwHHa.js';
27
+ import '../../wordFit-7XpmhcaW.js';
28
28
  import '../../panelWidths-D9hTLR25.js';
29
29
  import '../../CanvasDragLayer-zgYT1xwY.js';
30
30
  import '../../session-DSQFmIvx.js';
31
31
  import '../../words-BDignMl_.js';
32
- import '../../types-Djdq6Xkd.js';
32
+ import '../../types-BsyPh6EW.js';
33
33
  import '../../style-clipboard/index.js';
34
34
  import '../../words-CnnHb9jo.js';
35
- import '../../types-DJDBtdB2.js';
36
- import '../../words-DgHcY5qB.js';
35
+ import '../../types-BqGnUVX5.js';
36
+ import '../../words-Cl9xMUYY.js';
37
37
  import './AddSidePanel.js';
38
38
  import '../lib/puck/block-choice.js';
39
39
  import '../lib/puck/add-target-types.js';
@@ -1 +1 @@
1
- export{DocumentScreen,ScreenMount as default}from"../../chunk-UEVTQBM7.js";import"../../chunk-GXQCZJOP.js";import"../../chunk-VINYARYJ.js";import"../../chunk-37OCQYNX.js";import"../../chunk-26OOWIJJ.js";import"../../chunk-SQTY6CJD.js";import"../../chunk-FGNR22NY.js";import"../../chunk-ZE7I3PLX.js";import"../../chunk-2GVCAIPX.js";import"../../chunk-PWZOS45R.js";import"../../chunk-7F52SZOI.js";import"../../chunk-R2HLPNQF.js";import"../../chunk-TBF5CVPA.js";import"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import"../../chunk-MHKBLPQ2.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-5MZ3RNQQ.js";import"../../chunk-WTMHT7BI.js";import"../../chunk-LY4K2ECT.js";import"../../chunk-PBSEUZD6.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-M7N2V4TG.js";import"../../chunk-FS5BLARH.js";import"../../chunk-BSPCSC45.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-C6BJB5AC.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-3P6AMTOS.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-57DJOKXT.js";import"../../chunk-3QVB4AG2.js";import"../../chunk-MS4QRBJ6.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-5ZBBXZPV.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-JWMNPRTT.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-2LK54I4E.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-RW4XBUUW.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-OWBO4WKA.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-DX4XELD6.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";
1
+ export{DocumentScreen,ScreenMount as default}from"../../chunk-YABL4EWX.js";import"../../chunk-GXQCZJOP.js";import"../../chunk-FEK3S6HN.js";import"../../chunk-4GNPKHV4.js";import"../../chunk-26OOWIJJ.js";import"../../chunk-SQTY6CJD.js";import"../../chunk-FGNR22NY.js";import"../../chunk-ZE7I3PLX.js";import"../../chunk-2GVCAIPX.js";import"../../chunk-PWZOS45R.js";import"../../chunk-7F52SZOI.js";import"../../chunk-R2HLPNQF.js";import"../../chunk-TBF5CVPA.js";import"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import"../../chunk-PT6V53OO.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-ORR3Q4WV.js";import"../../chunk-DJMMTWFP.js";import"../../chunk-QMNML7XH.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-JLTZQ4US.js";import"../../chunk-MAEXP3KE.js";import"../../chunk-BSPCSC45.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-ONRYLR2D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-57DJOKXT.js";import"../../chunk-5545A3PC.js";import"../../chunk-OTEXGJDU.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-QR4DLZ3P.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-CKEPQNSQ.js";import"../../chunk-OJAJVH7S.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-PYCLHOSA.js";import"../../chunk-AELNNAFM.js";import"../../chunk-JMGPPXNQ.js";import"../../chunk-NLRW4BGG.js";import"../../chunk-XWR5YVA7.js";import"../../chunk-Q27BB5ZC.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-BXMXTO36.js";import"../../chunk-EA2HTX37.js";import"../../chunk-2LK54I4E.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-X6DQWK2C.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-TJ7YIRWQ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-7SQF6LZL.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-W3XX2CNW.js";import"../../chunk-O2NLQBFX.js";import"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -8,19 +8,19 @@ import '../../types-41704JE4.js';
8
8
  import '../../resolve-D68pb3Bx.js';
9
9
  import '../../plan-DChbUXdS.js';
10
10
  import '../../watch-BTYOJpQU.js';
11
- import '../../types-CqY85foL.js';
12
- import '../../types-DWS-s9z-.js';
13
- import '../../wordFit-D4S36PvB.js';
11
+ import '../../types-Dt1CFR1S.js';
12
+ import '../../types-CsgMwHHa.js';
13
+ import '../../wordFit-7XpmhcaW.js';
14
14
  import '../../edit-lock/index.js';
15
15
  import '../../panelWidths-D9hTLR25.js';
16
16
  import '../../CanvasDragLayer-zgYT1xwY.js';
17
17
  import '../../session-DSQFmIvx.js';
18
18
  import '../../words-BDignMl_.js';
19
- import '../../types-Djdq6Xkd.js';
19
+ import '../../types-BsyPh6EW.js';
20
20
  import '../../style-clipboard/index.js';
21
21
  import '../../words-CnnHb9jo.js';
22
- import '../../types-DJDBtdB2.js';
23
- import '../../words-DgHcY5qB.js';
22
+ import '../../types-BqGnUVX5.js';
23
+ import '../../words-Cl9xMUYY.js';
24
24
  import './AddSidePanel.js';
25
25
  import '../lib/section-template-types.js';
26
26
  import '../lib/puck/content-tree.js';
@@ -31,7 +31,7 @@ import '../lib/session.js';
31
31
  import '../lib/backend-error.js';
32
32
  import '../lib/host-chrome.js';
33
33
  import '../lib/links/link-filters.js';
34
- import '../../LinkPicker-W2Rtxetz.js';
34
+ import '../../LinkPicker-hPEr1MJx.js';
35
35
  import '../lib/document-hooks.js';
36
36
  import '../lib/document-switch.js';
37
37
  import '../../engine-DBxp_v6B.js';
@@ -1 +1 @@
1
- export{ScreenStoreProvider as default}from"../../chunk-VINYARYJ.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.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";
1
+ export{ScreenStoreProvider as default}from"../../chunk-FEK3S6HN.js";import"../../chunk-OJAJVH7S.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-PYCLHOSA.js";import"../../chunk-AELNNAFM.js";import"../../chunk-JMGPPXNQ.js";import"../../chunk-NLRW4BGG.js";import"../../chunk-XWR5YVA7.js";import"../../chunk-Q27BB5ZC.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-7SQF6LZL.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -1,16 +1,16 @@
1
- import{AddBlockRow as e}from"../../chunk-I6T4TZ5Q.js";import{slotChildRowName as n}from"../../chunk-TBF5CVPA.js";import{scrollPreviewToSection as o,gotoPreviewSlide as r}from"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import{useEaselUndoKeys as t}from"../../chunk-MHKBLPQ2.js";import{SlotChildActionsProvider as s}from"../../chunk-KCBEE2MC.js";import{DEFAULT_PANEL_W as i}from"../../chunk-WTMHT7BI.js";import{usePartBridge as c}from"../../chunk-LY4K2ECT.js";import{useSectionOps as p}from"../../chunk-PBSEUZD6.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import{useScreenDocument as l}from"../../chunk-C6BJB5AC.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-3P6AMTOS.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import{MediaSidePanel as d}from"../../chunk-JWMNPRTT.js";import{SELECTION_MODE as m,useScreenPinned as a,useScreenCanvasFrame as u,useScreenInspectorPanel as h,useScreenPickFollowsSelection as k,sameInspectorMode as j,useStandaloneScreenBridges as f,useScreenBlockLook as N,useScreenBlockRules as C}from"../../chunk-ND55LTCA.js";import{nestsInTree as y,slotFieldsOf as S}from"../../chunk-PLVEGYK6.js";import{useMediaPanel as A,usePanelPick as T,useCancelPanelPick as P}from"../../chunk-R6WTQWAC.js";import{useHostEscape as x}from"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import{useEasel as E}from"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import{LayersTree as O,Subtree as R,TreeRow as B,TreeRowAction as g,TreeSeam as v}from"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-BDTITTMW.js";import{saveIndicator as D}from"../../chunk-H6DDIBQ4.js";import{SaveState as L,panelWidthVars as z}from"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-DX4XELD6.js";import"../../chunk-O2NLQBFX.js";import{useTreeDrag as M}from"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import{TrashIcon as W}from"../../chunk-L5KW4HG5.js";import{zoneKey as J,parseZoneKey as Z}from"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";import{useState as b,useRef as w,useEffect as H,useCallback as K,Fragment as Y}from"react";import{jsxs as $,jsx as F,Fragment as I}from"react/jsx-runtime";var V=e=>n=>{n.target.closest(".es-tree-select, button")||e()},Q={rowClick:V};function X(){const{saveState:X,readOnly:G,readOnlyReason:U=null}=l(),q=p(),{appState:_,selectedItem:ee,config:ne}=E(e=>e),[oe,re]=b(m),[te,se]=b(null),{first:ie,last:ce,panelOf:pe}=a(),le=pe(ie),de=u(),me=h(),ae=_.data.content?.[0]??null,ue=ae?.props.id??null,he=ae?.type===ie,ke=ae?.type===ce,je=w(null),fe=w(null);t(fe);const Ne=A(),Ce=T(),ye=P();k(ee?.props.id),H(()=>{const e=fe.current;if(!Ce||!e)return;const n=e=>{"Escape"===e.key&&ye()};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)},[Ce]),x(null!==Ce,()=>ye()),H(()=>{ue&&je.current!==ue&&(je.current=ue,he?re(le??m):ee||q.select({index:0}))},[ue,ee,q,he]);const Se=K(e=>re(n=>j(n,e)?n:e),[]),Ae=f({kind:oe.kind,mode:oe,open:Se,show:e=>re(e),reveal:()=>{},select:(e,n)=>{re(e=>j(e,n)?e:n),q.select(e)}}),{selectNode:Te}=c({mode:oe,setMode:re,onOpenPart:o}),Pe=N(),{labelAtLevel:xe,Icon:Ee}=Pe,{canAddTo:Oe}=C(),Re=e=>ne.components[e]?.label??e,Be=e=>xe(e,"section",Re(e)),ge=!he&&"puck"===oe.kind&&ee?.props.id===ue,ve=ae?Oe(ae.type)?.spec??null:null,De=ae&&ve?`${ae.props.id}:${ve.slot}`:null,Le=ae&&ve&&Array.isArray(ae.props[ve.slot])?ae.props[ve.slot]:[],ze=e=>n(e,Re,Pe.plainText),Me=(e,n)=>{ae&&ve&&De&&(re(m),ve.slider?(r(String(ae.props.id),e),q.select({index:e,zone:De}),o(String(ae.props.id))):(q.select({index:e,zone:De}),o(n)))},We=()=>{if(!ae||!ve||!De)return;const e=Le.length;q.insertComponent(De,ve.childType,e),re(m),ve.slider?requestAnimationFrame(()=>{r(String(ae.props.id),e),q.select({index:e,zone:De})}):q.select({index:e,zone:De})},Je=e=>S(ne,e),Ze=e=>{const{parentId:n,slot:o}=Z(e),r=e=>{if(!e)return null;if(String(e.props.id)===n)return e;for(const n of Je(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(ae)?.props[o];return Array.isArray(t)?t.length:0},be=(e,n,o)=>{const r=Math.min(Math.max(o,0),Ze(e)),t=n<r?r-1:r;t!==n&&(q.reorderComponent(e,n,t),re(m),q.select({index:t,zone:e}))},we=M({keyOf:e=>e.id,readOnly:Boolean(G),canDrop:(e,n)=>J(n)===e.zone&&n.index>=0&&n.index<=Ze(e.zone),onDrop:(e,n)=>be(e.zone,e.index,n.index),onStep:(e,n)=>be(e.zone,e.index,n<0?e.index-1:e.index+2)}),He=(e,n)=>/* @__PURE__ */F(v,{...G?{}:we.seam({place:{...Z(e),index:n}})},`seam:${e}:${n}`),Ke=e=>Pe.blockRowName(e,Re),Ye=(e,n,r)=>{re(m),q.select({index:n,zone:e}),o(r)},$e=(e,n,o)=>{q.insertComponent(e,n,o),re(m),q.select({index:o,zone:e}),se(null)},Fe=(n,o,r)=>/* @__PURE__ */F(e,{choices:r,open:te===n,onToggle:()=>se(te===n?null:n),onPick:e=>$e(n,e,o)}),Ie=(e,n)=>{const o=Je((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=Oe(e.type),s=t?.choices??null,i="footer"===t?.source?Ke:ze;/* @__PURE__ */
2
- return $(I,{children:[o.map(({child:e,zone:o,index:r})=>{const t=ee?.props.id===e.props.id,s=y(ne,e.type,n),c=i(e),p=String(e.props.id),l=()=>Ye(o,r,p),{rowProps:d,...a}=we.row({item:{id:p,zone:o,index:r},place:{...Z(o),index:r}},{onClick:V(l)});/* @__PURE__ */
3
- return $(Y,{children:[0===r&&He(o,0),
4
- /* @__PURE__ */F(B,{icon:/* @__PURE__ */F(Ee,{type:e.type,size:13}),name:c,selected:t,onSelect:l,...a,actions:/* @__PURE__ */F(g,{kind:"delete",label:`Delete ${c}`,onClick:()=>{return e=o,n=r,q.removeComponent(e,n),re(m),void q.select(null);var e,n},children:/* @__PURE__ */F(W,{size:13})}),rowProps:d}),s&&/* @__PURE__ */F(R,{children:Ie(e,n+1)}),He(o,r+1)]},String(e.props.id??`${o}-${r}`))}),t&&s?Fe(`${e.props.id}:${t.slot}`,o.length,s):null]})},Ve="HeroSingle"===ae?.type,Qe=Boolean(ae)&&(Boolean(ve)||ke||he||Ve);/* @__PURE__ */
5
- return $("div",{ref:fe,className:"sf-editor es-editor",style:z(i),children:[
6
- /* @__PURE__ */F("div",{className:"sf-section-bar",children:/* @__PURE__ */F(L,null!==U?{tone:"off",label:U,role:"status"}:{...D(X),role:"status"})}),
7
- /* @__PURE__ */$("div",{className:"sf-body",children:[Ce&&Ne?/* @__PURE__ */F("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:/* @__PURE__ */F(d,{panel:Ne,pick:Ce})}):Qe&&ae&&/* @__PURE__ */$("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:[
8
- /* @__PURE__ */F("div",{className:"sf-panel-head",children:/* @__PURE__ */F("button",{type:"button",className:"sf-panel-title sf-panel-title--btn "+(ge?"is-selected":""),"aria-pressed":ge,title:he?"Header settings":`${Be(ae.type)} settings`,onClick:()=>{he?re(le??m):(re(m),q.select({index:0}))},children:Be(ae.type)})}),
9
- /* @__PURE__ */F(O,{className:"sf-tree sf-scroll",rootProps:we.rootProps(),children:/* @__PURE__ */F(R,{children:he?
10
- /* @__PURE__ */F(B,{icon:/* @__PURE__ */F(Ee,{type:"header",size:13}),name:"Header settings",selected:oe.kind===le?.kind,onSelect:()=>re(le??m),rowProps:{onClick:V(()=>re(le??m))}}):ve?/* @__PURE__ */$(I,{children:[Le.map((e,n)=>{const o=ee?.props.id===e.props.id,r=ze(e),t=String(e.props.id),s=()=>Me(n,t),{rowProps:i,...c}=we.row({item:{id:t,zone:De,index:n},place:{...Z(De),index:n}},{onClick:V(s)});/* @__PURE__ */
11
- return $(Y,{children:[0===n&&He(De,0),
12
- /* @__PURE__ */F(B,{icon:/* @__PURE__ */F(Ee,{type:e.type,size:13}),name:r,selected:o,onSelect:s,...c,actions:/* @__PURE__ */F(g,{kind:"delete",label:`Delete ${r}`,onClick:()=>{return e=n,void(De&&(q.removeComponent(De,e),re(m),q.select(null)));var e},children:/* @__PURE__ */F(W,{size:13})}),rowProps:i}),He(De,n+1)]},String(e.props.id??n))}),
13
- /* @__PURE__ */$("button",{type:"button",className:"sf-add-card",onClick:We,children:[
14
- /* @__PURE__ */F("span",{className:"sf-plus sf-plus--sm",children:"+"}),ve.addLabel]}),ue?Ae.partRows?.(ae,Q):null]}):Ie(ae,1)})})]}),
15
- /* @__PURE__ */F("div",{className:"sf-center",children:/* @__PURE__ */F("div",{className:"sf-preview-host",children:/* @__PURE__ */F(de,{})})}),
16
- /* @__PURE__ */F(s,{value:{selectChild:(e,n,o,r)=>"section"===Oe(r)?.source?Me(n,o):Ye(e,n,o),addChild:(e,n,o,r,t)=>"section"===Oe(t)?.source?We():$e(`${e}:${n}`,o,r),childRowName:ze,blockRowName:Ke},children:/* @__PURE__ */F(me,{mode:oe,onOpenWebsiteSettings:Ae.openSettings??(()=>{}),onSelectNode:Te,hideNodeActions:!0})})]})]})}export{X as default};
1
+ import{AddBlockRow as e}from"../../chunk-ZP4G3X44.js";import{slotChildRowName as n}from"../../chunk-TBF5CVPA.js";import{scrollPreviewToSection as o,gotoPreviewSlide as r}from"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import{useEaselUndoKeys as t}from"../../chunk-PT6V53OO.js";import{SlotChildActionsProvider as s}from"../../chunk-KCBEE2MC.js";import{DEFAULT_PANEL_W as i}from"../../chunk-ORR3Q4WV.js";import{usePartBridge as c}from"../../chunk-DJMMTWFP.js";import{useSectionOps as p}from"../../chunk-QMNML7XH.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import{useScreenDocument as l}from"../../chunk-ONRYLR2D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import{MediaSidePanel as m}from"../../chunk-CKEPQNSQ.js";import{SELECTION_MODE as d,useScreenPinned as a,useScreenCanvasFrame as u,useScreenInspectorPanel as h,useScreenPickFollowsSelection as k,sameInspectorMode as j,useStandaloneScreenBridges as f,useScreenBlockLook as N,useScreenBlockRules as y}from"../../chunk-OJAJVH7S.js";import{nestsInTree as S,slotFieldsOf as C}from"../../chunk-PLVEGYK6.js";import{useMediaPanel as O,usePanelPick as P,useCancelPanelPick as R}from"../../chunk-R6WTQWAC.js";import{useHostEscape as x}from"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import{useEasel as A}from"../../chunk-PYCLHOSA.js";import"../../chunk-AELNNAFM.js";import"../../chunk-JMGPPXNQ.js";import"../../chunk-NLRW4BGG.js";import{LayersTree as L,Subtree as B,TreeRow as M,TreeRowAction as v,TreeSeam as E}from"../../chunk-XWR5YVA7.js";import"../../chunk-Q27BB5ZC.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-BDTITTMW.js";import{saveIndicator as T}from"../../chunk-H6DDIBQ4.js";import{SaveState as W,panelWidthVars as g}from"../../chunk-TJ7YIRWQ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-7SQF6LZL.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-W3XX2CNW.js";import"../../chunk-O2NLQBFX.js";import{useTreeDrag as z}from"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import{TrashIcon as Q}from"../../chunk-L5KW4HG5.js";import{zoneKey as D,parseZoneKey as H}from"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";import{useState as b,useRef as J,useEffect as X,useCallback as Y,Fragment as w}from"react";import{Tooltip as F}from"efficient-shell/ui";import{jsxs as G,jsx as V,Fragment as Z}from"react/jsx-runtime";var $=e=>n=>{n.target.closest("button, input")||e()},K={rowClick:$};function I(){const{saveState:I,readOnly:U,readOnlyReason:q=null}=l(),_=p(),{appState:ee,selectedItem:ne,config:oe}=A(e=>e),[re,te]=b(d),{first:se,last:ie,panelOf:ce}=a(),pe=ce(se),le=u(),me=h(),de=ee.data.content?.[0]??null,ae=de?.props.id??null,ue=de?.type===se,he=de?.type===ie,ke=J(null),je=J(null);t(je);const fe=O(),Ne=P(),ye=R();k(ne?.props.id),X(()=>{const e=je.current;if(!Ne||!e)return;const n=e=>{"Escape"===e.key&&ye()};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)},[Ne]),x(null!==Ne,()=>ye()),X(()=>{ae&&ke.current!==ae&&(ke.current=ae,ue?te(pe??d):ne||_.select({index:0}))},[ae,ne,_,ue]);const Se=Y(e=>te(n=>j(n,e)?n:e),[]),Ce=f({kind:re.kind,mode:re,open:Se,show:e=>te(e),reveal:()=>{},select:(e,n)=>{te(e=>j(e,n)?e:n),_.select(e)}}),{selectNode:Oe}=c({mode:re,setMode:te,onOpenPart:o}),Pe=N(),{labelAtLevel:Re,Icon:xe}=Pe,{canAddTo:Ae}=y(),Le=e=>oe.components[e]?.label??e,Be=e=>Re(e,"section",Le(e)),Me=!ue&&"puck"===re.kind&&ne?.props.id===ae,ve=de?Ae(de.type)?.spec??null:null,Ee=de&&ve?`${de.props.id}:${ve.slot}`:null,Te=de&&ve&&Array.isArray(de.props[ve.slot])?de.props[ve.slot]:[],We=e=>n(e,Le,Pe.plainText),ge=(e,n)=>{de&&ve&&Ee&&(te(d),ve.slider?(r(String(de.props.id),e),_.select({index:e,zone:Ee}),o(String(de.props.id))):(_.select({index:e,zone:Ee}),o(n)))},ze=()=>{if(!de||!ve||!Ee)return;const e=Te.length;_.insertComponent(Ee,ve.childType,e),te(d),ve.slider?requestAnimationFrame(()=>{r(String(de.props.id),e),_.select({index:e,zone:Ee})}):_.select({index:e,zone:Ee})},Qe=e=>C(oe,e),De=e=>{const{parentId:n,slot:o}=H(e),r=e=>{if(!e)return null;if(String(e.props.id)===n)return e;for(const n of Qe(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(de)?.props[o];return Array.isArray(t)?t.length:0},He=(e,n,o)=>{const r=Math.min(Math.max(o,0),De(e)),t=n<r?r-1:r;t!==n&&(_.reorderComponent(e,n,t),te(d),_.select({index:t,zone:e}))},be=z({keyOf:e=>e.id,readOnly:Boolean(U),canDrop:(e,n)=>D(n)===e.zone&&n.index>=0&&n.index<=De(e.zone),onDrop:(e,n)=>He(e.zone,e.index,n.index),onStep:(e,n)=>He(e.zone,e.index,n<0?e.index-1:e.index+2)}),Je=(e,n)=>/* @__PURE__ */V(E,{...U?{}:be.seam({place:{...H(e),index:n}})},`seam:${e}:${n}`),Xe=e=>Pe.blockRowName(e,Le),Ye=(e,n,r)=>{te(d),_.select({index:n,zone:e}),o(r)},we=(e,n,o)=>{_.insertComponent(e,n,o),te(d),_.select({index:o,zone:e})},Fe=(n,o,r)=>/* @__PURE__ */V(e,{choices:r,onPick:e=>we(n,e,o)}),Ge=(e,n)=>{const o=Qe((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=Ae(e.type),s=t?.choices??null,i="footer"===t?.source?Xe:We;/* @__PURE__ */
2
+ return G(Z,{children:[o.map(({child:e,zone:o,index:r})=>{const t=ne?.props.id===e.props.id,s=S(oe,e.type,n),c=i(e),p=String(e.props.id),l=()=>Ye(o,r,p),{rowProps:m,...a}=be.row({item:{id:p,zone:o,index:r},place:{...H(o),index:r}},{onClick:$(l)});/* @__PURE__ */
3
+ return G(w,{children:[0===r&&Je(o,0),
4
+ /* @__PURE__ */V(M,{icon:/* @__PURE__ */V(xe,{type:e.type,size:13}),name:c,selected:t,onSelect:l,...a,actions:/* @__PURE__ */V(v,{kind:"delete",label:`Delete ${c}`,onClick:()=>{return e=o,n=r,_.removeComponent(e,n),te(d),void _.select(null);var e,n},children:/* @__PURE__ */V(Q,{size:13})}),rowProps:m}),s&&/* @__PURE__ */V(B,{children:Ge(e,n+1)}),Je(o,r+1)]},String(e.props.id??`${o}-${r}`))}),t&&s?Fe(`${e.props.id}:${t.slot}`,o.length,s):null]})},Ve="HeroSingle"===de?.type,Ze=Boolean(de)&&(Boolean(ve)||he||ue||Ve);/* @__PURE__ */
5
+ return G("div",{ref:je,className:"sf-editor es-editor",style:g(i),children:[
6
+ /* @__PURE__ */V("div",{className:"sf-section-bar",children:/* @__PURE__ */V(W,null!==q?{tone:"off",label:q,role:"status"}:{...T(I),role:"status"})}),
7
+ /* @__PURE__ */G("div",{className:"sf-body",children:[Ne&&fe?/* @__PURE__ */V("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:/* @__PURE__ */V(m,{panel:fe,pick:Ne})}):Ze&&de&&/* @__PURE__ */G("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:[
8
+ /* @__PURE__ */V("div",{className:"sf-panel-head",children:/* @__PURE__ */V(F,{content:ue?"Header settings":`${Be(de.type)} settings`,side:"bottom",children:/* @__PURE__ */V("button",{type:"button",className:"sf-panel-title sf-panel-title--btn "+(Me?"is-selected":""),"aria-pressed":Me,onClick:()=>{ue?te(pe??d):(te(d),_.select({index:0}))},children:Be(de.type)})})}),
9
+ /* @__PURE__ */V(L,{className:"sf-tree sf-scroll",rootProps:be.rootProps(),children:/* @__PURE__ */V(B,{children:ue?
10
+ /* @__PURE__ */V(M,{icon:/* @__PURE__ */V(xe,{type:"header",size:13}),name:"Header settings",selected:re.kind===pe?.kind,onSelect:()=>te(pe??d),rowProps:{onClick:$(()=>te(pe??d))}}):ve?/* @__PURE__ */G(Z,{children:[Te.map((e,n)=>{const o=ne?.props.id===e.props.id,r=We(e),t=String(e.props.id),s=()=>ge(n,t),{rowProps:i,...c}=be.row({item:{id:t,zone:Ee,index:n},place:{...H(Ee),index:n}},{onClick:$(s)});/* @__PURE__ */
11
+ return G(w,{children:[0===n&&Je(Ee,0),
12
+ /* @__PURE__ */V(M,{icon:/* @__PURE__ */V(xe,{type:e.type,size:13}),name:r,selected:o,onSelect:s,...c,actions:/* @__PURE__ */V(v,{kind:"delete",label:`Delete ${r}`,onClick:()=>{return e=n,void(Ee&&(_.removeComponent(Ee,e),te(d),_.select(null)));var e},children:/* @__PURE__ */V(Q,{size:13})}),rowProps:i}),Je(Ee,n+1)]},String(e.props.id??n))}),
13
+ /* @__PURE__ */G("button",{type:"button",className:"sf-add-card",onClick:ze,children:[
14
+ /* @__PURE__ */V("span",{className:"sf-plus sf-plus--sm",children:"+"}),ve.addLabel]}),ae?Ce.partRows?.(de,K):null]}):Ge(de,1)})})]}),
15
+ /* @__PURE__ */V("div",{className:"sf-center",children:/* @__PURE__ */V("div",{className:"sf-preview-host",children:/* @__PURE__ */V(le,{})})}),
16
+ /* @__PURE__ */V(s,{value:{selectChild:(e,n,o,r)=>"section"===Ae(r)?.source?ge(n,o):Ye(e,n,o),addChild:(e,n,o,r,t)=>"section"===Ae(t)?.source?ze():we(`${e}:${n}`,o,r),childRowName:We,blockRowName:Xe},children:/* @__PURE__ */V(me,{mode:re,onOpenWebsiteSettings:Ce.openSettings??(()=>{}),onSelectNode:Oe,hideNodeActions:!0})})]})]})}export{I as default};
@@ -25,7 +25,8 @@ import { ReactNode } from 'react';
25
25
  * • the chip is the glyph of what the panel shows (a rail item's own glyph on
26
26
  * the left, the selected thing's type on the right);
27
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;
28
+ * • actions are the panel's own tools, all the shell's `IconButton`s
29
+ * (UI-24, efficient-easel#199 step 4), explained by its `Tooltip`;
29
30
  * • a MODE laid over a panel (Add, choosing an image) names its way out in a
30
31
  * WORD — "Done", "Cancel" — never a glyph;
31
32
  * • the HIDE button is always last, on both panels; a hidden panel leaves a
@@ -49,7 +50,8 @@ declare function SidePanelHead({ icon, title, context, actions, side, onHide, }:
49
50
  onHide?: () => void;
50
51
  }): react.JSX.Element;
51
52
  /**
52
- * Hide a side panel — the last button of its head, after a hairline when the
53
+ * Hide a side panel — the shell's `IconButton` in its `Tooltip` (UI-24) —
54
+ * the last button of its head, after a hairline when the
53
55
  * panel has tools of its own. Exported for the right panel, whose head is
54
56
  * `InspectorHead` drawn by SectionEditor around the selected node.
55
57
  */
@@ -1 +1 @@
1
- export{PanelHideButton,PanelModeExit,PanelShowStrip,SidePanelHead as default}from"../../chunk-5ZBBXZPV.js";import"../../chunk-KQMML6JM.js";import"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.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";
1
+ export{PanelHideButton,PanelModeExit,PanelShowStrip,SidePanelHead as default}from"../../chunk-QR4DLZ3P.js";import"../../chunk-KQMML6JM.js";import"../../chunk-TJ7YIRWQ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-L5KW4HG5.js";