efficient-easel 18.2.0 → 19.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.
- package/README.md +26 -1
- package/dist/{CanvasDragLayer-dZCPbQCP.d.ts → CanvasDragLayer-ARfaivCu.d.ts} +21 -3
- package/dist/{host-epHo7r8P.d.ts → ScreenDocumentContext-D55vIrG3.d.ts} +208 -208
- package/dist/autosave/index.d.ts +4 -4
- package/dist/{canvas-typing-BsNigaCa.d.ts → canvas-typing-Be4FO4q7.d.ts} +5 -5
- package/dist/chrome/chrome.css +2 -18
- package/dist/chrome/index.d.ts +5 -39
- package/dist/chrome/index.js +1 -1
- package/dist/{chunk-C2RHV42O.js → chunk-23DYNW6S.js} +1 -1
- package/dist/chunk-324PHMLC.js +8 -0
- package/dist/{chunk-HGV3FWOB.js → chunk-5DPIGWUL.js} +1 -1
- package/dist/{chunk-YLQYEDUQ.js → chunk-6DNDTEF6.js} +1 -1
- package/dist/chunk-AJSDWWJW.js +1 -0
- package/dist/chunk-C56MPJBH.js +1 -0
- package/dist/{chunk-N5AN2RF2.js → chunk-CM732ENS.js} +1 -1
- package/dist/{chunk-QEAUF632.js → chunk-CPFDJMFD.js} +12 -12
- package/dist/{chunk-S4AWJX4Q.js → chunk-EZG3TGQ7.js} +1 -1
- package/dist/chunk-EZKUTVQP.js +62 -0
- package/dist/{chunk-XHHVMAGM.js → chunk-FGYJ5DJY.js} +1 -1
- package/dist/chunk-J4MHNAED.js +5 -0
- package/dist/{chunk-VEZPDGDQ.js → chunk-JBOSEHIX.js} +1 -1
- package/dist/chunk-JC34NH4G.js +1 -0
- package/dist/chunk-KRL3IUV3.js +1 -0
- package/dist/chunk-LNHT2KPX.js +2 -0
- package/dist/{chunk-SNB4LQMK.js → chunk-LUBJKUVV.js} +1 -1
- package/dist/chunk-M62P4IQK.js +2 -0
- package/dist/chunk-MS2U6MV5.js +1 -0
- package/dist/{chunk-7TOQCTHV.js → chunk-PY7OOQEZ.js} +3 -3
- package/dist/{chunk-KG7RJWOK.js → chunk-RYNBSKE7.js} +1 -1
- package/dist/{chunk-XDZHKYQX.js → chunk-SINAM2IT.js} +1 -1
- package/dist/{chunk-DXROGLB5.js → chunk-SP3TRDKA.js} +1 -1
- package/dist/{chunk-X52NFKUS.js → chunk-T5WDR5IE.js} +1 -1
- package/dist/chunk-WMQKV3DK.js +7 -0
- package/dist/chunk-Z2V3TTAR.js +18 -0
- package/dist/chunk-ZG6PVMC3.js +19 -0
- package/dist/copy/index.d.ts +7 -7
- package/dist/copy/index.js +29 -29
- package/dist/drag/drag.css +23 -0
- package/dist/drag/index.d.ts +1 -1
- package/dist/drag/index.js +1 -1
- package/dist/easel/index.d.ts +2 -2
- package/dist/easel/index.js +1 -1
- package/dist/fields/fields.css +3 -3
- package/dist/fields/index.d.ts +1 -1
- package/dist/panel/index.d.ts +17 -84
- package/dist/panel/index.js +13 -19
- package/dist/panel/panel.css +41 -137
- package/dist/{panelWidths-D9hTLR25.d.ts → panelWidths-DgQXiPXU.d.ts} +34 -6
- package/dist/screen/components/AddBlockRow.js +1 -1
- package/dist/screen/components/AddSidePanel.js +1 -1
- package/dist/screen/components/MediaPopup.d.ts +21 -0
- package/dist/screen/components/MediaPopup.js +1 -0
- package/dist/screen/components/NodeContextMenu.d.ts +4 -4
- package/dist/screen/components/NodeContextMenu.js +1 -1
- package/dist/screen/components/PageEditGuardNotices.js +1 -1
- package/dist/screen/components/SaveControls.d.ts +6 -6
- package/dist/screen/components/SaveControls.js +1 -1
- package/dist/screen/components/ScreenChrome.js +1 -1
- package/dist/screen/components/ScreenDocumentContext.d.ts +1 -1
- package/dist/screen/components/ScreenDocumentContext.js +1 -1
- package/dist/screen/components/ScreenMount.d.ts +8 -8
- package/dist/screen/components/ScreenMount.js +1 -1
- package/dist/screen/components/ScreenStoreProvider.d.ts +7 -7
- package/dist/screen/components/ScreenStoreProvider.js +1 -1
- package/dist/screen/components/SectionScreenShell.js +17 -16
- package/dist/screen/components/SidePanelHead.js +1 -1
- package/dist/screen/components/panel-widths.d.ts +7 -6
- package/dist/screen/components/panel-widths.js +1 -1
- package/dist/screen/components/usePartBridge.d.ts +7 -7
- package/dist/screen/components/usePartBridge.js +1 -1
- package/dist/screen/index.d.ts +5 -5
- package/dist/screen/index.js +1 -1
- package/dist/screen/lib/document-addressing.d.ts +1 -1
- package/dist/screen/lib/host-inbound.js +1 -1
- package/dist/screen/lib/host.d.ts +5 -5
- package/dist/screen/lib/key-scope.js +1 -1
- package/dist/screen/lib/media-panel.d.ts +74 -37
- package/dist/screen/lib/media-panel.js +1 -1
- package/dist/screen/lib/media-picker.d.ts +5 -5
- package/dist/screen/lib/media-picker.js +1 -1
- package/dist/screen/lib/puck/device-fields.js +1 -1
- package/dist/screen/lib/puck/style-clipboard.d.ts +7 -7
- package/dist/screen/lib/puck/style-clipboard.js +1 -1
- package/dist/screen/lib/puck/use-section-ops.js +1 -1
- package/dist/screen/lib/save-status.d.ts +2 -2
- package/dist/screen/lib/screen-parts.d.ts +52 -11
- package/dist/screen/lib/screen-parts.js +1 -1
- package/dist/screen/screen.css +5 -4
- package/dist/screen/words.d.ts +3 -0
- package/dist/screen/words.js +1 -1
- package/dist/strings/index.d.ts +6 -6
- package/dist/strings/index.js +2 -2
- package/dist/{types-DT8ywrFQ.d.ts → types-B3iSHX-w.d.ts} +2 -22
- package/dist/{words-zH1H0WFw.d.ts → words-BeX5eGq7.d.ts} +2 -2
- package/dist/words-BpTjCfqO.d.ts +89 -0
- package/dist/{words-DkWcK1rh.d.ts → words-Cm8PMYn0.d.ts} +1 -1
- package/dist/{words-BpiVrsW5.d.ts → words-DYu4iBrR.d.ts} +1 -21
- package/package.json +8 -8
- package/dist/chunk-2ZWA6ARJ.js +0 -8
- package/dist/chunk-5EZ5Z3K7.js +0 -7
- package/dist/chunk-B4JN227A.js +0 -1
- package/dist/chunk-GWIVPLOX.js +0 -23
- package/dist/chunk-LIRNQXAY.js +0 -1
- package/dist/chunk-LLDHIBYG.js +0 -18
- package/dist/chunk-OBIL7BZO.js +0 -4
- package/dist/chunk-R6WTQWAC.js +0 -2
- package/dist/chunk-SEVGZP36.js +0 -62
- package/dist/chunk-STWSCR25.js +0 -2
- package/dist/chunk-U277UX5I.js +0 -1
- package/dist/chunk-W6SDWCOL.js +0 -5
- package/dist/chunk-Z6PVRXVY.js +0 -1
- package/dist/screen/components/MediaSidePanel.d.ts +0 -49
- package/dist/screen/components/MediaSidePanel.js +0 -1
- package/dist/words-D-yhjdOg.d.ts +0 -183
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ComponentType, ReactNode } from 'react';
|
|
3
|
-
import { H as HostPickedMedia, E as EaselHost } from '../../
|
|
3
|
+
import { H as HostPickedMedia, E as EaselHost } from '../../ScreenDocumentContext-D55vIrG3.js';
|
|
4
4
|
import '../../blocks/index.js';
|
|
5
5
|
import '../../types-Cq53lL8d.js';
|
|
6
6
|
import '../../data/index.js';
|
|
@@ -8,9 +8,12 @@ import '../../types-41704JE4.js';
|
|
|
8
8
|
import '../../resolve-D68pb3Bx.js';
|
|
9
9
|
import '../../plan-CZS902DV.js';
|
|
10
10
|
import './document-contract.js';
|
|
11
|
+
import './document-switch.js';
|
|
12
|
+
import '../../engine-CvXpFE86.js';
|
|
13
|
+
import '../../edit-lock/index.js';
|
|
14
|
+
import './admin-bridge.js';
|
|
11
15
|
import './session.js';
|
|
12
16
|
import './backend-error.js';
|
|
13
|
-
import '../../edit-lock/index.js';
|
|
14
17
|
import './host-chrome.js';
|
|
15
18
|
import './links/link-filters.js';
|
|
16
19
|
import 'efficient-shell/ui';
|
|
@@ -18,42 +21,41 @@ import './document-hooks.js';
|
|
|
18
21
|
import './section-template-types.js';
|
|
19
22
|
import './puck/content-tree.js';
|
|
20
23
|
import './shared-section-types.js';
|
|
21
|
-
import './document-switch.js';
|
|
22
|
-
import '../../engine-CvXpFE86.js';
|
|
23
|
-
import './admin-bridge.js';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* The editor's MEDIA
|
|
27
|
-
*
|
|
26
|
+
* The editor's MEDIA POPUP — the host's media library, opened from the editor
|
|
27
|
+
* as one large popup (harness UI-20, owner decision Lewis 2026-10-23).
|
|
28
28
|
*
|
|
29
29
|
* The editor owns no media library and never will: the library is the host's
|
|
30
30
|
* (the admin portal's Media Library, one component wherever it is shown). What
|
|
31
|
-
* the editor owns is
|
|
32
|
-
*
|
|
31
|
+
* the editor owns is WHEN it shows and for whom: the request that turns it into
|
|
32
|
+
* a chooser for one field, and the rail's browse. `components/MediaPopup`
|
|
33
|
+
* draws the host's component ONCE, at the screen's root, and the host draws it
|
|
34
|
+
* as its popup (the shell's `Dialog`). The names here still say "panel": the
|
|
35
|
+
* library sat in the editor's left panel until 2026-10-23, and the hosts import
|
|
36
|
+
* these names.
|
|
33
37
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* (
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
38
|
+
* • BROWSING — the rail's Media opens it with no field (`browsing`): look,
|
|
39
|
+
* upload, tidy, drag a file onto the canvas. `onClose` ends it.
|
|
40
|
+
* • PICKING — a field calls `requestMediaPick` (lib/media-picker). With a
|
|
41
|
+
* popup here, that becomes a request to THIS provider's pick store: the
|
|
42
|
+
* popup opens for that field (`pick`), the host calls `onPick`, and the
|
|
43
|
+
* field gets the media. `onClose` settles it `null`. A field asking while
|
|
44
|
+
* the merchant browses turns the popup into its chooser, and its answer
|
|
45
|
+
* ends the browse with it.
|
|
41
46
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* calls `onPick`, and the field gets the media. Leaving pick mode any other
|
|
48
|
-
* way (the panel's Cancel, a rail button, closing the panel) settles it
|
|
49
|
-
* `null`.
|
|
47
|
+
* It replaced a window, and then a panel. The rail button and every image
|
|
48
|
+
* field once asked the host to open a separate "Media library" window over the
|
|
49
|
+
* editor (`storefront-editor:open-media-picker`, harness UI-20, UI-21); a host
|
|
50
|
+
* that supplies no popup still gets that message, so nothing it relies on
|
|
51
|
+
* changes underneath it.
|
|
50
52
|
*
|
|
51
53
|
* ONE PENDING PICK PER PROVIDER (0.103.0). Until then the pending pick was
|
|
52
54
|
* module state, one for the page — right while one editor is mounted, and
|
|
53
55
|
* wrong the moment two are (the admin's website editor and campaign designer):
|
|
54
|
-
* a field in one
|
|
55
|
-
*
|
|
56
|
-
* {@link MediaPickStore}; the
|
|
56
|
+
* a field in one opened the other's library too, and a Cancel in either
|
|
57
|
+
* settled the other's field. Each provider now keeps its own
|
|
58
|
+
* {@link MediaPickStore}; the screen under it reads that one, and a field's
|
|
57
59
|
* request finds it by the HOST the field asks through (`requestMediaPick(host,
|
|
58
60
|
* …)` — one host per mounted editor, lib/host), so no prop or context has to
|
|
59
61
|
* reach the field's click handler. A request whose host no provider sits under
|
|
@@ -78,15 +80,36 @@ interface MediaPickRequest {
|
|
|
78
80
|
*/
|
|
79
81
|
options?: Record<string, unknown>;
|
|
80
82
|
}
|
|
81
|
-
/** The props the host's
|
|
83
|
+
/** The props the host's popup component is drawn with. It is drawn always; it
|
|
84
|
+
* is OPEN while `pick` or `browsing` is set. */
|
|
82
85
|
interface MediaPanelProps {
|
|
83
|
-
/** The field choosing right now, or null
|
|
86
|
+
/** The field choosing right now, or null. Wins over `browsing`. */
|
|
84
87
|
pick: MediaPickRequest | null;
|
|
85
|
-
/**
|
|
88
|
+
/** The rail opened the library with no field. */
|
|
89
|
+
browsing: boolean;
|
|
90
|
+
/** Answer the field. Ignored while only browsing. */
|
|
86
91
|
onPick: (media: HostPickedMedia) => void;
|
|
92
|
+
/** Close it: the field (if any) gets no choice, and the browse ends. */
|
|
93
|
+
onClose: () => void;
|
|
87
94
|
}
|
|
88
|
-
/** The host's media library, as
|
|
95
|
+
/** The host's media library, as the component the editor draws as its popup. */
|
|
89
96
|
type MediaPanelComponent = ComponentType<MediaPanelProps>;
|
|
97
|
+
/** A file dragged out of the host's popup onto the canvas, as the shell's
|
|
98
|
+
* `readMediaFileDrag` reads it. */
|
|
99
|
+
interface MediaPlacedFile {
|
|
100
|
+
id: string;
|
|
101
|
+
url: string;
|
|
102
|
+
kind: "image" | "video";
|
|
103
|
+
name: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* What a file dropped on the canvas becomes in this host, before the layer
|
|
107
|
+
* places it: the host's pick path, the same answer a pick of that file gives
|
|
108
|
+
* (a website takes a file another website holds by copying it in, as it always
|
|
109
|
+
* has; owner 2026-10-23, the files may be copied per website). Null: the file
|
|
110
|
+
* cannot be used here, and nothing is placed. Absent: the file as it came.
|
|
111
|
+
*/
|
|
112
|
+
type MediaPlace = (file: MediaPlacedFile) => Promise<HostPickedMedia | null>;
|
|
90
113
|
/**
|
|
91
114
|
* One editor's pending pick (0.103.0): what its panel is choosing for, and who
|
|
92
115
|
* waits on the answer. A {@link MediaPanelProvider} makes one for itself.
|
|
@@ -105,6 +128,12 @@ interface MediaPickStore {
|
|
|
105
128
|
settle(requestId: string, media: HostPickedMedia | null): void;
|
|
106
129
|
/** Leave pick mode without a choice, whatever is being chosen. */
|
|
107
130
|
cancel(): void;
|
|
131
|
+
/** Whether the rail opened the library with no field. */
|
|
132
|
+
browsing(): boolean;
|
|
133
|
+
/** Open the library with no field (the rail's Media). */
|
|
134
|
+
browse(): void;
|
|
135
|
+
/** Close it: cancel the pick, end the browse. */
|
|
136
|
+
close(): void;
|
|
108
137
|
subscribe(listener: () => void): () => void;
|
|
109
138
|
}
|
|
110
139
|
declare function createMediaPickStore(): MediaPickStore;
|
|
@@ -112,10 +141,15 @@ declare function createMediaPickStore(): MediaPickStore;
|
|
|
112
141
|
* window: fields ask the host with `open-media-picker`. Sit it under the
|
|
113
142
|
* editor's `EaselHostProvider`, as the website's frame does: that host is
|
|
114
143
|
* how a field's request finds this provider among several. */
|
|
115
|
-
declare function MediaPanelProvider({ panel, children }: {
|
|
144
|
+
declare function MediaPanelProvider({ panel, place, children, }: {
|
|
116
145
|
panel: MediaPanelComponent | null;
|
|
146
|
+
/** What a file dropped from the popup becomes in this host (`MediaPlace`). */
|
|
147
|
+
place?: MediaPlace | null;
|
|
117
148
|
children: ReactNode;
|
|
118
149
|
}): react.JSX.Element;
|
|
150
|
+
/** What a file dropped from the popup becomes in this editor's host, or null
|
|
151
|
+
* (the file as it came). */
|
|
152
|
+
declare function useMediaPlace(): MediaPlace | null;
|
|
119
153
|
/** The host's panel for the editor this renders in, or null. */
|
|
120
154
|
declare function useMediaPanel(): MediaPanelComponent | null;
|
|
121
155
|
/**
|
|
@@ -139,14 +173,17 @@ declare function requestPanelPick(request: MediaPickRequest): Promise<HostPicked
|
|
|
139
173
|
* stale id — an answer for a request already superseded — does nothing. */
|
|
140
174
|
declare function settlePanelPick(requestId: string, media: HostPickedMedia | null): void;
|
|
141
175
|
/** Leave the page's pick mode without a choice, whatever is being chosen.
|
|
142
|
-
* Under a provider, `
|
|
176
|
+
* Under a provider, `useCloseMediaPopup` closes that editor's. */
|
|
143
177
|
declare function cancelPanelPick(): void;
|
|
144
178
|
/** The field the panel is choosing for, or null while nothing is — in the
|
|
145
179
|
* editor this renders in. */
|
|
146
180
|
declare function usePanelPick(): MediaPickRequest | null;
|
|
147
|
-
/**
|
|
148
|
-
|
|
149
|
-
|
|
181
|
+
/** Whether THIS editor's library is open with no field (the rail's browse). */
|
|
182
|
+
declare function useMediaBrowsing(): boolean;
|
|
183
|
+
/** Open THIS editor's library with no field: the rail's Media. A stable function. */
|
|
184
|
+
declare function useOpenMediaBrowse(): () => void;
|
|
185
|
+
/** Close THIS editor's library: the field gets no choice, the browse ends. */
|
|
186
|
+
declare function useCloseMediaPopup(): () => void;
|
|
150
187
|
/**
|
|
151
188
|
* A change of selection leaves pick mode (0.103.0, `ScreenParts
|
|
152
189
|
* .pickFollowsSelection`): with `follows`, the field still waiting when
|
|
@@ -156,4 +193,4 @@ declare function useCancelPanelPick(): () => void;
|
|
|
156
193
|
*/
|
|
157
194
|
declare function usePickFollowsSelection(follows: boolean, selection: unknown): void;
|
|
158
195
|
|
|
159
|
-
export { type MediaPanelComponent, type MediaPanelProps, MediaPanelProvider, type MediaPickRequest, type MediaPickStore, cancelPanelPick, createMediaPickStore, hasMediaPanel, mediaPickStoreFor, requestPanelPick, settlePanelPick,
|
|
196
|
+
export { type MediaPanelComponent, type MediaPanelProps, MediaPanelProvider, type MediaPickRequest, type MediaPickStore, type MediaPlace, type MediaPlacedFile, cancelPanelPick, createMediaPickStore, hasMediaPanel, mediaPickStoreFor, requestPanelPick, settlePanelPick, useCloseMediaPopup, useMediaBrowsing, useMediaPanel, useMediaPlace, useOpenMediaBrowse, usePanelPick, usePickFollowsSelection };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{MediaPanelProvider,cancelPanelPick,createMediaPickStore,hasMediaPanel,mediaPickStoreFor,requestPanelPick,settlePanelPick,
|
|
1
|
+
export{MediaPanelProvider,cancelPanelPick,createMediaPickStore,hasMediaPanel,mediaPickStoreFor,requestPanelPick,settlePanelPick,useCloseMediaPopup,useMediaBrowsing,useMediaPanel,useMediaPlace,useOpenMediaBrowse,usePanelPick,usePickFollowsSelection}from"../../chunk-LNHT2KPX.js";import"../../chunk-U3JP4VGF.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { H as HostPickedMedia, E as EaselHost } from '../../
|
|
1
|
+
import { H as HostPickedMedia, E as EaselHost } from '../../ScreenDocumentContext-D55vIrG3.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import '../../blocks/index.js';
|
|
4
4
|
import '../../types-Cq53lL8d.js';
|
|
@@ -7,9 +7,12 @@ import '../../types-41704JE4.js';
|
|
|
7
7
|
import '../../resolve-D68pb3Bx.js';
|
|
8
8
|
import '../../plan-CZS902DV.js';
|
|
9
9
|
import './document-contract.js';
|
|
10
|
+
import './document-switch.js';
|
|
11
|
+
import '../../engine-CvXpFE86.js';
|
|
12
|
+
import '../../edit-lock/index.js';
|
|
13
|
+
import './admin-bridge.js';
|
|
10
14
|
import './session.js';
|
|
11
15
|
import './backend-error.js';
|
|
12
|
-
import '../../edit-lock/index.js';
|
|
13
16
|
import './host-chrome.js';
|
|
14
17
|
import './links/link-filters.js';
|
|
15
18
|
import 'efficient-shell/ui';
|
|
@@ -17,9 +20,6 @@ import './document-hooks.js';
|
|
|
17
20
|
import './section-template-types.js';
|
|
18
21
|
import './puck/content-tree.js';
|
|
19
22
|
import './shared-section-types.js';
|
|
20
|
-
import './document-switch.js';
|
|
21
|
-
import '../../engine-CvXpFE86.js';
|
|
22
|
-
import './admin-bridge.js';
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Editor media-picker bridge — the one call every media slot makes to choose an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{requestMediaPick,resolveMediaPick}from"../../chunk-
|
|
1
|
+
export{requestMediaPick,resolveMediaPick}from"../../chunk-RYNBSKE7.js";import"../../chunk-LNHT2KPX.js";import"../../chunk-U3JP4VGF.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DEVICE_FIELD_MARKER,DEVICE_HIDDEN_ATTR,DEVICE_NOTE,deviceField,deviceMetaOf,deviceNote,shownTier,withoutDeviceGate}from"../../../chunk-
|
|
1
|
+
export{DEVICE_FIELD_MARKER,DEVICE_HIDDEN_ATTR,DEVICE_NOTE,deviceField,deviceMetaOf,deviceNote,shownTier,withoutDeviceGate}from"../../../chunk-FGYJ5DJY.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-23DYNW6S.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-BSPCSC45.js";
|
|
@@ -11,12 +11,12 @@ import '../../../types-41704JE4.js';
|
|
|
11
11
|
import '../../../resolve-D68pb3Bx.js';
|
|
12
12
|
import '../../../plan-CZS902DV.js';
|
|
13
13
|
import '../../../watch-BTYOJpQU.js';
|
|
14
|
-
import '../../../types-
|
|
14
|
+
import '../../../types-B3iSHX-w.js';
|
|
15
15
|
import '../../../types-Cy7rdmXt.js';
|
|
16
16
|
import '../../../wordFit-7XpmhcaW.js';
|
|
17
17
|
import '../../../edit-lock/index.js';
|
|
18
|
-
import '../../../panelWidths-
|
|
19
|
-
import '../../../CanvasDragLayer-
|
|
18
|
+
import '../../../panelWidths-DgQXiPXU.js';
|
|
19
|
+
import '../../../CanvasDragLayer-ARfaivCu.js';
|
|
20
20
|
import '../../../session-DSQFmIvx.js';
|
|
21
21
|
import '../../../words-CvwYvkJm.js';
|
|
22
22
|
import '../../../types-Bqq6ya0y.js';
|
|
@@ -27,16 +27,16 @@ import '../section-template-types.js';
|
|
|
27
27
|
import './content-tree.js';
|
|
28
28
|
import '../shared-section-types.js';
|
|
29
29
|
import './block-choice.js';
|
|
30
|
-
import '../../../
|
|
30
|
+
import '../../../ScreenDocumentContext-D55vIrG3.js';
|
|
31
31
|
import '../document-contract.js';
|
|
32
|
+
import '../document-switch.js';
|
|
33
|
+
import '../../../engine-CvXpFE86.js';
|
|
34
|
+
import '../admin-bridge.js';
|
|
32
35
|
import '../session.js';
|
|
33
36
|
import '../backend-error.js';
|
|
34
37
|
import '../host-chrome.js';
|
|
35
38
|
import '../links/link-filters.js';
|
|
36
39
|
import '../document-hooks.js';
|
|
37
|
-
import '../document-switch.js';
|
|
38
|
-
import '../../../engine-CvXpFE86.js';
|
|
39
|
-
import '../admin-bridge.js';
|
|
40
40
|
import './add-target-types.js';
|
|
41
41
|
import './slot-section-spec.js';
|
|
42
42
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-
|
|
1
|
+
export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-JBOSEHIX.js";import"../../../chunk-LER7RKTO.js";import"../../../chunk-FGYJ5DJY.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-MQNBD6AB.js";import"../../../chunk-V7U33NF2.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-23DYNW6S.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-BPXEFVSQ.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-BSPCSC45.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{useSectionOps}from"../../../chunk-
|
|
1
|
+
export{useSectionOps}from"../../../chunk-LUBJKUVV.js";import"../../../chunk-J4MHNAED.js";import"../../../chunk-LNHT2KPX.js";import"../../../chunk-U3JP4VGF.js";import"../../../chunk-PLVEGYK6.js";import"../../../chunk-CPFDJMFD.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-5ZBV5RA6.js";import"../../../chunk-BPXEFVSQ.js";import"../../../chunk-A6Z4SD3I.js";import"../../../chunk-K56YDHYQ.js";import"../../../chunk-XWFH2NHZ.js";import"../../../chunk-YRLPFZW3.js";import"../../../chunk-BALFHI3G.js";import"../../../chunk-X3TYRF5V.js";import"../../../chunk-RC25EGHD.js";import"../../../chunk-KFV7N2DJ.js";import"../../../chunk-23VM4PMV.js";import"../../../chunk-KRL3IUV3.js";import"../../../chunk-2XMHLXMA.js";import"../../../chunk-G3GWAP5R.js";import"../../../chunk-WRFD4EXD.js";import"../../../chunk-36LVP5WD.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-67GNT6PF.js";import"../../../chunk-P2VEMZH5.js";import"../../../chunk-X4T6JT3M.js";import"../../../chunk-KRXQM65X.js";import"../../../chunk-NKB3KVAB.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { A as AutosaveSnapshot } from '../../engine-CvXpFE86.js';
|
|
2
|
-
import { a as SaveIconState } from '../../types-
|
|
2
|
+
import { a as SaveIconState } from '../../types-B3iSHX-w.js';
|
|
3
3
|
import { ScreenSaveStatusWords } from '../words.js';
|
|
4
4
|
import '../../types-Cy7rdmXt.js';
|
|
5
5
|
import '../../wordFit-7XpmhcaW.js';
|
|
6
6
|
import 'react';
|
|
7
7
|
import '../../edit-lock/index.js';
|
|
8
|
-
import '../../panelWidths-
|
|
8
|
+
import '../../panelWidths-DgQXiPXU.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* WHAT THE SAVE IS DOING, AS ONE ANSWER (8.0.0, card [DESIGN] A Clearer Save
|
|
@@ -2,15 +2,15 @@ import * as react from 'react';
|
|
|
2
2
|
import { ReactNode, MouseEvent, ComponentType } from 'react';
|
|
3
3
|
import { Data } from '../../blocks/index.js';
|
|
4
4
|
import { C as CanvasTarget } from '../../watch-BTYOJpQU.js';
|
|
5
|
-
import { D as DeviceOption } from '../../types-
|
|
5
|
+
import { D as DeviceOption } from '../../types-B3iSHX-w.js';
|
|
6
6
|
import { P as Place } from '../../types-41704JE4.js';
|
|
7
|
-
import { M as MeasuredCanvas, C as CanvasDragModel } from '../../CanvasDragLayer-
|
|
7
|
+
import { M as MeasuredCanvas, C as CanvasDragModel } from '../../CanvasDragLayer-ARfaivCu.js';
|
|
8
8
|
import { E as EaselContextMenuItem } from '../../types-BsyPh6EW.js';
|
|
9
9
|
import { E as EaselRailItem } from '../../types-Cy7rdmXt.js';
|
|
10
10
|
import { StyleRow } from '../../style-clipboard/index.js';
|
|
11
11
|
import { T as TreeRowMark } from '../../types-Bqq6ya0y.js';
|
|
12
12
|
import { AddKey } from '../components/AddSidePanel.js';
|
|
13
|
-
import { k as AnyScreenTarget } from '../../
|
|
13
|
+
import { k as AnyScreenTarget } from '../../ScreenDocumentContext-D55vIrG3.js';
|
|
14
14
|
import { HostProduct } from './host-chrome.js';
|
|
15
15
|
import { EaselSession } from './session.js';
|
|
16
16
|
import { SharedSectionUse, SharedSection } from './shared-section-types.js';
|
|
@@ -21,7 +21,7 @@ import '../../data/index.js';
|
|
|
21
21
|
import '../../resolve-D68pb3Bx.js';
|
|
22
22
|
import '../../plan-CZS902DV.js';
|
|
23
23
|
import '../../edit-lock/index.js';
|
|
24
|
-
import '../../panelWidths-
|
|
24
|
+
import '../../panelWidths-DgQXiPXU.js';
|
|
25
25
|
import '../../session-DSQFmIvx.js';
|
|
26
26
|
import '../../words-CvwYvkJm.js';
|
|
27
27
|
import '../../wordFit-7XpmhcaW.js';
|
|
@@ -34,8 +34,8 @@ import './document-contract.js';
|
|
|
34
34
|
import './document-switch.js';
|
|
35
35
|
import '../../engine-CvXpFE86.js';
|
|
36
36
|
import './admin-bridge.js';
|
|
37
|
-
import './backend-error.js';
|
|
38
37
|
import './links/link-filters.js';
|
|
38
|
+
import './backend-error.js';
|
|
39
39
|
import './document-hooks.js';
|
|
40
40
|
import './puck/slot-section-spec.js';
|
|
41
41
|
|
|
@@ -496,10 +496,11 @@ interface ScreenBridges {
|
|
|
496
496
|
* view kept from another document may be one this document does not have,
|
|
497
497
|
* and the panel then shows the screen's Layers. The layer answers, because
|
|
498
498
|
* some of the views are its own and which of them a document has is its to
|
|
499
|
-
* know
|
|
500
|
-
*
|
|
499
|
+
* know. The screen has no media view (the media library is a popup,
|
|
500
|
+
* harness UI-20): a stored "media" view resolves to Layers like any other
|
|
501
|
+
* view this document does not have.
|
|
501
502
|
*/
|
|
502
|
-
resolveLeftView?: (view: string
|
|
503
|
+
resolveLeftView?: (view: string) => string;
|
|
503
504
|
/**
|
|
504
505
|
* A tool of the layer's own at the foot of the Layers tree, under the last
|
|
505
506
|
* row: something that reads the whole document and is not a row of it.
|
|
@@ -947,6 +948,44 @@ interface ScreenDragItem {
|
|
|
947
948
|
nodeId: string;
|
|
948
949
|
slot: string;
|
|
949
950
|
};
|
|
951
|
+
/** A file carried out of the host's media popup (`ScreenCanvasDrag.media`):
|
|
952
|
+
* `add` is what it becomes between things, and a drop on a thing that
|
|
953
|
+
* takes it puts it there instead. */
|
|
954
|
+
media?: true;
|
|
955
|
+
}
|
|
956
|
+
/** A file from the host's media library, dropped on the canvas (harness
|
|
957
|
+
* UI-20, 2026-10-23), as the host's pick path gave it back (`MediaPlace`):
|
|
958
|
+
* `url` is what draws. */
|
|
959
|
+
interface ScreenMediaFile {
|
|
960
|
+
id: string;
|
|
961
|
+
url: string;
|
|
962
|
+
kind: "image" | "video";
|
|
963
|
+
name: string;
|
|
964
|
+
}
|
|
965
|
+
/**
|
|
966
|
+
* A FILE FROM THE MEDIA POPUP, DROPPED ON THE CANVAS (`ScreenCanvasDrag.media`,
|
|
967
|
+
* harness UI-20, owner decision Lewis 2026-10-23). The drag is the screen's:
|
|
968
|
+
* it hears a file carried out of the host's popup, offers the places a new
|
|
969
|
+
* picture may go — the lines Add's tiles get — and outlines a thing the file
|
|
970
|
+
* may land ON. What a picture IS in this document is the layer's; what the
|
|
971
|
+
* file becomes in the host first is the host's (`MediaPanelProvider` `place`,
|
|
972
|
+
* its pick path: a website copies in a file another website holds).
|
|
973
|
+
*/
|
|
974
|
+
interface ScreenMediaDrop {
|
|
975
|
+
/** What a file dropped BETWEEN things becomes: Add's entry for the layer's
|
|
976
|
+
* picture block, offered at exactly the places Add would offer it. */
|
|
977
|
+
adds: {
|
|
978
|
+
kind: "section" | "block";
|
|
979
|
+
type: string;
|
|
980
|
+
};
|
|
981
|
+
/** May a file land ON this node, its picture replaced by it? */
|
|
982
|
+
takes: (node: ScreenNode) => boolean;
|
|
983
|
+
/** The node's props with the file as its picture. */
|
|
984
|
+
replace: (node: ScreenNode, file: ScreenMediaFile) => Record<string, unknown>;
|
|
985
|
+
/** A new node of `adds` holding the file, for a drop between things, made
|
|
986
|
+
* with what the screen lends a rule that builds a node (its defaults, its
|
|
987
|
+
* ids). */
|
|
988
|
+
create: (file: ScreenMediaFile, maker: ScreenNodeMaker) => ScreenNode;
|
|
950
989
|
}
|
|
951
990
|
/**
|
|
952
991
|
* What the screen tells a layer's canvas drag each time it asks
|
|
@@ -1014,6 +1053,9 @@ interface ScreenCanvasDrag {
|
|
|
1014
1053
|
/** A handle CLICKED, not dragged: select what it names. Handed the screen's
|
|
1015
1054
|
* own (`base`: the node, as a press on its row selects it). Absent: `base`. */
|
|
1016
1055
|
pick?: (item: ScreenDragItem, base: (item: ScreenDragItem) => void, context: ScreenCanvasDragContext) => void;
|
|
1056
|
+
/** A file carried out of the host's media popup lands on the canvas
|
|
1057
|
+
* (`ScreenMediaDrop`). Absent: the canvas takes no such file. */
|
|
1058
|
+
media?: ScreenMediaDrop;
|
|
1017
1059
|
}
|
|
1018
1060
|
/** What a layer's head over the canvas is handed (`ScreenParts.CanvasHead`,
|
|
1019
1061
|
* 0.105.0): the device the canvas is drawn as, so it can say what is the
|
|
@@ -1280,8 +1322,7 @@ interface ScreenStyleClipboard {
|
|
|
1280
1322
|
interface ScreenParts {
|
|
1281
1323
|
/**
|
|
1282
1324
|
* The name a panel's head gives what is being edited — the website's name,
|
|
1283
|
-
* a campaign's — as the hook the head calls
|
|
1284
|
-
* reads it (components/MediaSidePanel), through `useScreenOwnerName`.
|
|
1325
|
+
* a campaign's — as the hook the head calls, through `useScreenOwnerName`.
|
|
1285
1326
|
*/
|
|
1286
1327
|
useOwnerName?: () => string;
|
|
1287
1328
|
/**
|
|
@@ -1519,4 +1560,4 @@ declare function useScreenCanvasTarget(): CanvasTarget | null;
|
|
|
1519
1560
|
* engine's plain rows for the selection. */
|
|
1520
1561
|
declare function useScreenInspectorPanel(): ComponentType<ScreenInspectorPanelProps>;
|
|
1521
1562
|
|
|
1522
|
-
export { type NodeDefaults, SELECTION_MODE, type ScreenBlockLook, type ScreenBlockRules, type ScreenBridges, type ScreenCanvas, type ScreenCanvasDrag, type ScreenCanvasDragContext, type ScreenCanvasHeadProps, ScreenCanvasTargetProvider, type ScreenDevices, type ScreenDocumentOps, type ScreenDragItem, type ScreenInspector, type ScreenInspectorMode, type ScreenInspectorPanelProps, type ScreenLeftPanel, type ScreenLeftView, type ScreenLeftViewFrame, type ScreenLeftViewRules, type ScreenMainAction, type ScreenMenuItem, type ScreenMenuRows, type ScreenNewNode, type ScreenNode, type ScreenNodeActions, type ScreenNodeLevel, type ScreenNodeMaker, type ScreenPartMode, type ScreenParts, ScreenPartsProvider, type ScreenPinnedBand, type ScreenPinnedNodes, type ScreenRailItem, type ScreenSelector, type ScreenSharedSections, type ScreenSlot, type ScreenSlotAction, type ScreenSlotMode, type ScreenStyleClipboard, type ScreenStyleDocument, type ScreenStylePastePlan, type ScreenToastExtra, type ScreenTree, type ScreenTreeFolds, type ScreenTreeRows, isPinnedFirst, isPinnedLast, isSlotMode, sameInspectorMode, screenSlotsOf, useScreenBlockLook, useScreenBlockRules, useScreenBridges, useScreenCanvasDrag, useScreenCanvasFrame, useScreenCanvasHead, useScreenCanvasTarget, useScreenDevices, useScreenDocumentLabel, useScreenDocumentPass, useScreenInspectorPanel, useScreenLeftView, useScreenNodeKeys, useScreenNotify, useScreenOwnerName, useScreenParts, useScreenPickFollowsSelection, useScreenPinned, useScreenSaveSwitch, useScreenStorageNamespace, useScreenStyleClipboard, useStandaloneScreenBridges };
|
|
1563
|
+
export { type NodeDefaults, SELECTION_MODE, type ScreenBlockLook, type ScreenBlockRules, type ScreenBridges, type ScreenCanvas, type ScreenCanvasDrag, type ScreenCanvasDragContext, type ScreenCanvasHeadProps, ScreenCanvasTargetProvider, type ScreenDevices, type ScreenDocumentOps, type ScreenDragItem, type ScreenInspector, type ScreenInspectorMode, type ScreenInspectorPanelProps, type ScreenLeftPanel, type ScreenLeftView, type ScreenLeftViewFrame, type ScreenLeftViewRules, type ScreenMainAction, type ScreenMediaDrop, type ScreenMediaFile, type ScreenMenuItem, type ScreenMenuRows, type ScreenNewNode, type ScreenNode, type ScreenNodeActions, type ScreenNodeLevel, type ScreenNodeMaker, type ScreenPartMode, type ScreenParts, ScreenPartsProvider, type ScreenPinnedBand, type ScreenPinnedNodes, type ScreenRailItem, type ScreenSelector, type ScreenSharedSections, type ScreenSlot, type ScreenSlotAction, type ScreenSlotMode, type ScreenStyleClipboard, type ScreenStyleDocument, type ScreenStylePastePlan, type ScreenToastExtra, type ScreenTree, type ScreenTreeFolds, type ScreenTreeRows, isPinnedFirst, isPinnedLast, isSlotMode, sameInspectorMode, screenSlotsOf, useScreenBlockLook, useScreenBlockRules, useScreenBridges, useScreenCanvasDrag, useScreenCanvasFrame, useScreenCanvasHead, useScreenCanvasTarget, useScreenDevices, useScreenDocumentLabel, useScreenDocumentPass, useScreenInspectorPanel, useScreenLeftView, useScreenNodeKeys, useScreenNotify, useScreenOwnerName, useScreenParts, useScreenPickFollowsSelection, useScreenPinned, useScreenSaveSwitch, useScreenStorageNamespace, useScreenStyleClipboard, useStandaloneScreenBridges };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{SELECTION_MODE,ScreenCanvasTargetProvider,ScreenPartsProvider,isPinnedFirst,isPinnedLast,isSlotMode,sameInspectorMode,screenSlotsOf,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasDrag,useScreenCanvasFrame,useScreenCanvasHead,useScreenCanvasTarget,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenNodeKeys,useScreenNotify,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useScreenStorageNamespace,useScreenStyleClipboard,useStandaloneScreenBridges}from"../../chunk-
|
|
1
|
+
export{SELECTION_MODE,ScreenCanvasTargetProvider,ScreenPartsProvider,isPinnedFirst,isPinnedLast,isSlotMode,sameInspectorMode,screenSlotsOf,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasDrag,useScreenCanvasFrame,useScreenCanvasHead,useScreenCanvasTarget,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenNodeKeys,useScreenNotify,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useScreenStorageNamespace,useScreenStyleClipboard,useStandaloneScreenBridges}from"../../chunk-J4MHNAED.js";import"../../chunk-LNHT2KPX.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-CPFDJMFD.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-5ZBV5RA6.js";import"../../chunk-BPXEFVSQ.js";import"../../chunk-A6Z4SD3I.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-XWFH2NHZ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-BALFHI3G.js";import"../../chunk-X3TYRF5V.js";import"../../chunk-RC25EGHD.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-23VM4PMV.js";import"../../chunk-KRL3IUV3.js";import"../../chunk-2XMHLXMA.js";import"../../chunk-G3GWAP5R.js";import"../../chunk-WRFD4EXD.js";import"../../chunk-36LVP5WD.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-X4T6JT3M.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
package/dist/screen/screen.css
CHANGED
|
@@ -678,10 +678,11 @@
|
|
|
678
678
|
carrying its hairline up through the bar, the buttons spread across it (his
|
|
679
679
|
option A, spread evenly), and the arrow under the open panel's icon — is editor-shell's
|
|
680
680
|
`.es-cluster--rail` (efficient-easel/chrome.css), lifted from this sheet with its
|
|
681
|
-
`flex: none` and its clip-path triangle (redesign 2a). ⚠️
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
681
|
+
`flex: none` and its clip-path triangle (redesign 2a). ⚠️ The LEFT panel's
|
|
682
|
+
floor (`MIN_PANEL_W_BY_SIDE.left`, 240 since ruling A4g; it was the shared
|
|
683
|
+
220) is still load-bearing on it: six 34px buttons fill 204, and a SEVENTH
|
|
684
|
+
(238) only just fits at 240. `scripts/test-editor-rail-in-topbar.ts` (in
|
|
685
|
+
efficient-web-builder) holds that arithmetic. */
|
|
685
686
|
/* The rail's "+" (`.sf-rail-plus`) went in 11.0.0: Add opens from the Layers
|
|
686
687
|
head's "+" and a canvas ➕ (owner ruling A1, amended 2026-10-14). */
|
|
687
688
|
|
package/dist/screen/words.d.ts
CHANGED
|
@@ -296,6 +296,9 @@ type ScreenWords = {
|
|
|
296
296
|
/** The cell over an EMPTY slot on the canvas, after its "+" (0.106.0): the
|
|
297
297
|
* campaign designer's "Add a block". */
|
|
298
298
|
canvasAddBlock: string;
|
|
299
|
+
/** What a picture from the media popup does when it is held over an image
|
|
300
|
+
* on the canvas (harness UI-20, 2026-10-23). */
|
|
301
|
+
canvasReplaceImage: string;
|
|
299
302
|
/** The rail's button to the media library (0.106.0). Owner ruling R21
|
|
300
303
|
* (Victor Mau, 2026-10-09): the campaign designer's rail reads Add,
|
|
301
304
|
* Layers, Email styles, Media. The panel's own head keeps its word
|
package/dist/screen/words.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DEFAULT_SCREEN_ADD_WORDS,DEFAULT_SCREEN_SAVE_STATUS_WORDS,DEFAULT_SCREEN_SHARED_WORDS,DEFAULT_SCREEN_WORDS}from"../chunk-
|
|
1
|
+
export{DEFAULT_SCREEN_ADD_WORDS,DEFAULT_SCREEN_SAVE_STATUS_WORDS,DEFAULT_SCREEN_SHARED_WORDS,DEFAULT_SCREEN_WORDS}from"../chunk-23DYNW6S.js";
|
package/dist/strings/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { a as SaveWords } from '../words-
|
|
2
|
-
import { N as NoticeWords, C as ChromeWords } from '../words-
|
|
3
|
-
import { C as CopyWords } from '../words-
|
|
1
|
+
import { a as SaveWords } from '../words-Cm8PMYn0.js';
|
|
2
|
+
import { N as NoticeWords, C as ChromeWords } from '../words-DYu4iBrR.js';
|
|
3
|
+
import { C as CopyWords } from '../words-BpTjCfqO.js';
|
|
4
4
|
import { D as DragWords } from '../words-CvwYvkJm.js';
|
|
5
5
|
import { LockWords } from '../edit-lock/index.js';
|
|
6
6
|
import { F as FieldsWords } from '../words-vhnV8sM7.js';
|
|
7
7
|
import { N as NodeMenuWords } from '../words-DMG4dYq2.js';
|
|
8
|
-
import { P as PanelWords } from '../words-
|
|
8
|
+
import { P as PanelWords } from '../words-BeX5eGq7.js';
|
|
9
9
|
import { P as PickWords } from '../words-DWvCJXwR.js';
|
|
10
10
|
import { ScreenWords } from '../screen/words.js';
|
|
11
11
|
export { ScreenAddWords, ScreenSharedWords } from '../screen/words.js';
|
|
@@ -14,10 +14,10 @@ import { T as TextStylesWords } from '../words-gIDCeRv3.js';
|
|
|
14
14
|
import { T as TreeWords } from '../words-Cl9xMUYY.js';
|
|
15
15
|
import * as react from 'react';
|
|
16
16
|
import { ReactNode } from 'react';
|
|
17
|
-
import '../types-
|
|
17
|
+
import '../types-B3iSHX-w.js';
|
|
18
18
|
import '../types-Cy7rdmXt.js';
|
|
19
19
|
import '../wordFit-7XpmhcaW.js';
|
|
20
|
-
import '../panelWidths-
|
|
20
|
+
import '../panelWidths-DgQXiPXU.js';
|
|
21
21
|
import '../engine-CvXpFE86.js';
|
|
22
22
|
import 'efficient-shell/markup';
|
|
23
23
|
import '../buckets-Tj-nkBpg.js';
|
package/dist/strings/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
return
|
|
1
|
+
import{DEFAULT_STYLE_CLIPBOARD_WORDS as r}from"../chunk-6WY6ZXJG.js";import{DEFAULT_SCREEN_WORDS as o}from"../chunk-23DYNW6S.js";import{DEFAULT_TEXT_STYLES_WORDS as n}from"../chunk-OGH6CC3E.js";import{DEFAULT_PICK_WORDS as t}from"../chunk-OFBZOI6W.js";import{DEFAULT_CANVAS_WORDS as c}from"../chunk-TBY3DFKS.js";import{DEFAULT_TREE_WORDS as e}from"../chunk-K56YDHYQ.js";import{DEFAULT_NODE_MENU_WORDS as m}from"../chunk-WK3AFPXY.js";import{DEFAULT_PANEL_WORDS as i}from"../chunk-KFV7N2DJ.js";import{DEFAULT_SAVE_WORDS as s}from"../chunk-H6DDIBQ4.js";import{DEFAULT_CHROME_WORDS as u,DEFAULT_NOTICE_WORDS as f}from"../chunk-AJSDWWJW.js";import{DEFAULT_RAIL_WORDS as p}from"../chunk-2OAZYSWJ.js";import{DEFAULT_LOCK_WORDS as l}from"../chunk-RE4LP46F.js";import{DEFAULT_COPY_WORDS as h}from"../chunk-KRL3IUV3.js";import{DEFAULT_FIELDS_WORDS as j}from"../chunk-WRFD4EXD.js";import{stringsContext as k}from"../chunk-MFIRYGHW.js";import{DEFAULT_DRAG_WORDS as a}from"../chunk-KAML3KQH.js";import{useContext as W,useMemo as D}from"react";import{jsx as Y}from"react/jsx-runtime";var y={notice:f,lock:l,save:s,chrome:u,rail:p,tree:e,panel:i,fields:j,pick:t,drag:a,menu:m,styleClipboard:r,copy:h,canvas:c,textStyles:n,screen:o},F=r=>"object"==typeof r&&null!==r;function K(r,o){const n={};for(const t of Object.keys(r)){const c=r[t],e=o[t];null==e?n[t]=c:F(c)?n[t]=F(e)?K(c,e):c:n[t]=typeof e==typeof c?e:c}return n}function d(r,o){return o?K(r,o):r}function v({value:r,locale:o,children:n}){const t=k(),c=W(t),e=c?.strings??y,m=o??c?.locale??"en",i=D(()=>({strings:d(e,r),locale:m}),[e,r,m]);/* @__PURE__ */
|
|
2
|
+
return Y(t.Provider,{value:i,children:n})}function H(){return W(k())?.strings??y}function J(){return W(k())?.locale??"en"}export{y as DEFAULT_EASEL_STRINGS,v as EaselStringsProvider,d as mergeEaselStrings,J as useEaselLocale,H as useEaselStrings};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { E as EaselRailItem } from './types-Cy7rdmXt.js';
|
|
2
2
|
import { ReactNode, Ref, CSSProperties } from 'react';
|
|
3
3
|
import { EditAccess, SaveConflict } from './edit-lock/index.js';
|
|
4
|
-
import { P as PanelSide } from './panelWidths-
|
|
4
|
+
import { P as PanelSide } from './panelWidths-DgQXiPXU.js';
|
|
5
5
|
|
|
6
6
|
type TopBarProps = {
|
|
7
7
|
children?: ReactNode;
|
|
@@ -110,26 +110,6 @@ type InspectorHeadProps = {
|
|
|
110
110
|
/** `InspectorIconButton`s, right-aligned. Omit when the thing has no actions. */
|
|
111
111
|
actions?: ReactNode;
|
|
112
112
|
};
|
|
113
|
-
/** What a field can hold, as `MediaPanelHead` says it (`ChromeWords.mediaKinds`). */
|
|
114
|
-
type MediaPickKind = 'image' | 'video' | 'svg';
|
|
115
|
-
type MediaPanelHeadProps = {
|
|
116
|
-
/** The line under "Media library": which website or campaign the panel is
|
|
117
|
-
* open in. Also the line under "Choose …" when the field has no name. */
|
|
118
|
-
context: ReactNode;
|
|
119
|
-
/** The field choosing right now, or null while browsing. `field` is the
|
|
120
|
-
* host's label for it ("Background image"). */
|
|
121
|
-
pick: {
|
|
122
|
-
kind: MediaPickKind;
|
|
123
|
-
field?: string;
|
|
124
|
-
} | null;
|
|
125
|
-
/** Leave choosing: the field keeps what it had. */
|
|
126
|
-
onCancel: () => void;
|
|
127
|
-
/** Hide the panel. Omitted where the panel cannot be hidden, and then no
|
|
128
|
-
* Hide button is drawn. */
|
|
129
|
-
onHide?: () => void;
|
|
130
|
-
/** Which side panel the head is on; picks the Hide glyph and its name. */
|
|
131
|
-
side?: 'left' | 'right';
|
|
132
|
-
};
|
|
133
113
|
type InspectorUpLevelProps = {
|
|
134
114
|
/** What the level above is called — the section, the column, the group. The link's words. */
|
|
135
115
|
name: string;
|
|
@@ -220,4 +200,4 @@ type SaveIconProps = {
|
|
|
220
200
|
label: string;
|
|
221
201
|
};
|
|
222
202
|
|
|
223
|
-
export type { DeviceOption as D, EaselIconButtonProps as E, InspectorHeadProps as I,
|
|
203
|
+
export type { DeviceOption as D, EaselIconButtonProps as E, InspectorHeadProps as I, PanelResizeHandleProps as P, RailWordsShown as R, SaveTone as S, TopBarProps as T, SaveIconState as a, TopBarClusterProps as b, TopBarRailProps as c, DeviceSwitchProps as d, SaveStateProps as e, SaveStateToggleProps as f, SaveIconProps as g, SaveIconTone as h, InspectorIconButtonProps as i, InspectorUpLevelProps as j, EditNoticeProps as k };
|
|
@@ -10,8 +10,8 @@ import { S as SettingsBucket, D as DesignGroup } from './buckets-Tj-nkBpg.js';
|
|
|
10
10
|
* group's key (`DESIGN_GROUPS`) is the same: `designGroups` is its word.
|
|
11
11
|
*
|
|
12
12
|
* The panel is hook-free, so nothing here is read from the strings provider:
|
|
13
|
-
* `
|
|
14
|
-
*
|
|
13
|
+
* `Inspector` (which has hooks) reads them and hands the shell's `Tabs` the
|
|
14
|
+
* strip's name and each tab's word.
|
|
15
15
|
* `SettingsDefaultReset` takes `words`, and a host passes the four from
|
|
16
16
|
* `useWords('panel', …)`.
|
|
17
17
|
*/
|