efficient-easel 0.102.0 → 0.104.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 +45 -4
- package/dist/chunk-4EUWOGZF.js +1 -0
- package/dist/chunk-5D2XAZKH.js +62 -0
- package/dist/chunk-7755VWRT.js +4 -0
- package/dist/chunk-7GVLSNFW.js +1 -0
- package/dist/chunk-A2LFBOUF.js +1 -0
- package/dist/chunk-BBRY7KI4.js +10 -0
- package/dist/chunk-BVN33R76.js +1 -0
- package/dist/chunk-D6324C3E.js +5 -0
- package/dist/chunk-ERR437B5.js +1 -0
- package/dist/chunk-HMWJB3HF.js +1 -0
- package/dist/{chunk-KDYIMJTZ.js → chunk-KCOBHPN6.js} +1 -1
- package/dist/chunk-KVNRNDUC.js +1 -0
- package/dist/chunk-LEGAPYPC.js +1 -0
- package/dist/chunk-LRTIMWZG.js +2 -0
- package/dist/chunk-LXEOVUAV.js +1 -0
- package/dist/{chunk-D7M6IRPJ.js → chunk-NEQIEYYO.js} +1 -1
- package/dist/{chunk-6TZTKAB5.js → chunk-O7Q4DDJT.js} +1 -1
- package/dist/chunk-PYNQRX56.js +4 -0
- package/dist/chunk-Q2HPBMG5.js +1 -0
- package/dist/chunk-QCBWT2XE.js +1 -0
- package/dist/{chunk-7MU3RJ6S.js → chunk-QDEZQ5A6.js} +1 -1
- package/dist/chunk-QOPY2LQM.js +1 -0
- package/dist/{chunk-AKFJK65Z.js → chunk-R2MUSGPS.js} +1 -1
- package/dist/chunk-RSCMJIWS.js +1 -0
- package/dist/{chunk-E7GGVILG.js → chunk-TTENU2HX.js} +1 -1
- package/dist/chunk-UB7JVPK4.js +1 -0
- package/dist/{chunk-VLSTGOVD.js → chunk-YODRYAZX.js} +2 -2
- package/dist/chunk-Z6BAZFSW.js +2 -0
- package/dist/chunk-ZOJEFIP4.js +1 -0
- package/dist/{host-B-byaQxg.d.ts → host-DJ8Gzsx7.d.ts} +93 -21
- package/dist/screen/components/AddBlockRow.js +1 -1
- package/dist/screen/components/AddSidePanel.js +1 -1
- package/dist/screen/components/MediaSidePanel.d.ts +3 -2
- package/dist/screen/components/MediaSidePanel.js +1 -1
- package/dist/screen/components/NodeContextMenu.d.ts +47 -2
- package/dist/screen/components/NodeContextMenu.js +1 -1
- package/dist/screen/components/PageEditGuardNotices.js +1 -1
- package/dist/screen/components/ScreenChrome.js +1 -1
- package/dist/screen/components/ScreenDocumentContext.d.ts +2 -1
- package/dist/screen/components/ScreenDocumentContext.js +1 -1
- package/dist/screen/components/ScreenMount.d.ts +9 -5
- package/dist/screen/components/ScreenMount.js +1 -1
- package/dist/screen/components/ScreenStoreProvider.d.ts +3 -0
- package/dist/screen/components/ScreenStoreProvider.js +1 -1
- package/dist/screen/components/SectionScreenShell.js +16 -16
- package/dist/screen/components/usePartBridge.d.ts +3 -0
- package/dist/screen/components/usePartBridge.js +1 -1
- package/dist/screen/index.d.ts +6 -3
- package/dist/screen/index.js +1 -1
- package/dist/screen/lib/admin-bridge.d.ts +2 -0
- package/dist/screen/lib/admin-bridge.js +1 -1
- package/dist/screen/lib/backend-error.d.ts +20 -5
- package/dist/screen/lib/backend-error.js +1 -1
- package/dist/screen/lib/document-addressing.d.ts +2 -1
- package/dist/screen/lib/document-contract.d.ts +7 -0
- package/dist/screen/lib/failure.d.ts +6 -2
- package/dist/screen/lib/failure.js +1 -1
- package/dist/screen/lib/host-inbound.js +1 -1
- package/dist/screen/lib/host.d.ts +3 -2
- package/dist/screen/lib/load-error.d.ts +9 -3
- package/dist/screen/lib/load-error.js +1 -1
- package/dist/screen/lib/media-panel.d.ts +81 -17
- package/dist/screen/lib/media-panel.js +1 -1
- package/dist/screen/lib/media-picker.d.ts +14 -2
- package/dist/screen/lib/media-picker.js +1 -1
- package/dist/screen/lib/page-lock.d.ts +45 -1
- package/dist/screen/lib/page-lock.js +1 -1
- package/dist/screen/lib/puck/content-tree.d.ts +20 -1
- package/dist/screen/lib/puck/content-tree.js +1 -1
- package/dist/screen/lib/puck/device-fields.d.ts +4 -2
- package/dist/screen/lib/puck/section-doc.js +1 -1
- package/dist/screen/lib/puck/slot-child-name.d.ts +18 -3
- package/dist/screen/lib/puck/slot-child-name.js +1 -1
- package/dist/screen/lib/puck/style-clipboard.js +1 -1
- package/dist/screen/lib/puck/use-section-ops.d.ts +6 -0
- package/dist/screen/lib/puck/use-section-ops.js +1 -1
- package/dist/screen/lib/screen-parts.d.ts +171 -4
- package/dist/screen/lib/screen-parts.js +1 -1
- package/dist/screen/lib/section-templates.d.ts +25 -1
- package/dist/screen/lib/section-templates.js +1 -1
- package/dist/screen/lib/session-context.d.ts +5 -1
- package/dist/screen/lib/session-context.js +1 -1
- package/dist/screen/lib/session.d.ts +58 -5
- package/dist/screen/lib/session.js +1 -1
- package/dist/screen/screen.css +14 -0
- package/dist/screen/words.d.ts +65 -0
- package/dist/screen/words.js +1 -0
- package/dist/strings/catalogue.d.ts +9 -2
- package/dist/strings/catalogue.js +1 -1
- package/dist/strings/index.d.ts +1 -0
- package/dist/strings/index.js +1 -1
- package/dist/tree/index.d.ts +4 -142
- package/dist/types-DJDBtdB2.d.ts +143 -0
- package/package.json +6 -1
- package/dist/chunk-3U4GP5VA.js +0 -10
- package/dist/chunk-5464H65G.js +0 -4
- package/dist/chunk-6FY3PZS3.js +0 -1
- package/dist/chunk-7RNTMJER.js +0 -5
- package/dist/chunk-A7ZJII7O.js +0 -1
- package/dist/chunk-AJBJ74ME.js +0 -1
- package/dist/chunk-AKZWUV5Z.js +0 -1
- package/dist/chunk-F2FPZIZV.js +0 -62
- package/dist/chunk-F6CCTEIX.js +0 -1
- package/dist/chunk-FT35FX7D.js +0 -2
- package/dist/chunk-FUDHI5I4.js +0 -1
- package/dist/chunk-HMX55DYT.js +0 -1
- package/dist/chunk-HWW4XJOH.js +0 -1
- package/dist/chunk-J4RAY75C.js +0 -1
- package/dist/chunk-PP44LCJM.js +0 -1
- package/dist/chunk-Q3SQBNJB.js +0 -1
- package/dist/chunk-TEZ6V6PA.js +0 -4
- package/dist/chunk-UH7TGWHR.js +0 -1
- package/dist/chunk-UVWVYMMZ.js +0 -1
- package/dist/chunk-VV5ADNBR.js +0 -1
- package/dist/chunk-ZZ7VLIHQ.js +0 -1
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
import { EditLock } from '../../edit-lock/index.js';
|
|
2
|
+
import { EaselSession } from './session.js';
|
|
3
|
+
import '../../blocks/index.js';
|
|
4
|
+
import 'react';
|
|
5
|
+
import '../../types-E3HrTPg2.js';
|
|
6
|
+
import '../../data/index.js';
|
|
7
|
+
import '../../types-41704JE4.js';
|
|
8
|
+
import '../../resolve-D68pb3Bx.js';
|
|
9
|
+
import '../../plan-DChbUXdS.js';
|
|
10
|
+
import './backend-error.js';
|
|
11
|
+
import './host-chrome.js';
|
|
12
|
+
import './links/link-filters.js';
|
|
13
|
+
import '../../LinkPicker-W2Rtxetz.js';
|
|
14
|
+
import './document-contract.js';
|
|
15
|
+
import './document-hooks.js';
|
|
16
|
+
import './section-template-types.js';
|
|
17
|
+
import './puck/content-tree.js';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The storefront editor's binding of the SHARED edit lock.
|
|
21
|
+
*
|
|
22
|
+
* The rules themselves — who may write the open document, what a failed claim /
|
|
23
|
+
* take-over / heartbeat means, how to read a refused save, and the claim driver
|
|
24
|
+
* that keeps a held write from being lost — live in `efficient-easel/edit-lock` and
|
|
25
|
+
* are imported straight from there by the code that needs them. This file used
|
|
26
|
+
* to be a 334-line copy of them; the campaign designer in efficient-admin-portal
|
|
27
|
+
* carried a second, drifted copy of the same rules. Card 11161 merged the two
|
|
28
|
+
* into the shared package, and this is all that is left here: the TWO facts that
|
|
29
|
+
* are genuinely this repo's.
|
|
30
|
+
*
|
|
31
|
+
* 1. what a failure looks like HERE (lib/failure: this repo's
|
|
32
|
+
* `ApiError`, or the editor backend's `WebsiteBackendError`), and
|
|
33
|
+
* 2. the `code` this backend puts in a refused-save body for a PAGE.
|
|
34
|
+
*
|
|
35
|
+
* Nothing else belongs in this file. A rule a second editor would also need goes
|
|
36
|
+
* in the shared module, or the copy starts growing back.
|
|
37
|
+
*/
|
|
2
38
|
|
|
3
39
|
declare const pageEditLock: EditLock;
|
|
40
|
+
/**
|
|
41
|
+
* The lock's rules for one editor's session (0.103.0): {@link pageEditLock}
|
|
42
|
+
* itself for a session that reads its host's errors as the page does — every
|
|
43
|
+
* session before 0.103.0, and the website's still — and, for a session that
|
|
44
|
+
* brought its own reading (`hostFailures`), the same rules reading a failure
|
|
45
|
+
* that session's way. Made once per session.
|
|
46
|
+
*/
|
|
47
|
+
declare function editLockOf(session: EaselSession): EditLock;
|
|
4
48
|
|
|
5
|
-
export { pageEditLock };
|
|
49
|
+
export { editLockOf, pageEditLock };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{pageEditLock}from"../../chunk-
|
|
1
|
+
export{editLockOf,pageEditLock}from"../../chunk-ZOJEFIP4.js";import"../../chunk-4EUWOGZF.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-JUQ6YJCG.js";import"../../chunk-RE4LP46F.js";
|
|
@@ -27,6 +27,25 @@ type SlotConfigView = {
|
|
|
27
27
|
* not know has no slots — and cannot render either, so there is nothing to walk.
|
|
28
28
|
*/
|
|
29
29
|
declare function slotFieldsOf(config: SlotConfigView, type: string): string[];
|
|
30
|
+
/**
|
|
31
|
+
* What a component type's config ALLOWS of the two actions that make another
|
|
32
|
+
* node or take one away (0.103.0): its `permissions.duplicate` and
|
|
33
|
+
* `permissions.delete`, each true unless the config says false — the reading
|
|
34
|
+
* Puck gave a config that carried none. The campaign designer's Product keeps
|
|
35
|
+
* its Price line this way (`{ delete: false, duplicate: false }`).
|
|
36
|
+
*
|
|
37
|
+
* The screen's tree rows, its menu and the inspector head it hands this to
|
|
38
|
+
* (`ScreenInspectorPanelProps.nodeActions`) all ask HERE, so the three cannot
|
|
39
|
+
* come to disagree about one block. Only the config's own, never the
|
|
40
|
+
* easel-wide permissions the edit lock sets: a document somebody else holds is
|
|
41
|
+
* refused at the writes, as it always was, and draws the rows it drew.
|
|
42
|
+
*
|
|
43
|
+
* A type the config does not know allows both, as one with no `permissions`.
|
|
44
|
+
*/
|
|
45
|
+
declare function blockNodeActions(config: SlotConfigView, type: string): {
|
|
46
|
+
duplicate: boolean;
|
|
47
|
+
delete: boolean;
|
|
48
|
+
};
|
|
30
49
|
/**
|
|
31
50
|
* A slot child, addressed the way the Layers tree selects it: the node, the
|
|
32
51
|
* compound zone key "<parentId>:<slotName>" Puck's ops take, and its index in
|
|
@@ -193,4 +212,4 @@ declare function missingPinnedTypes(live: ReadonlyArray<{
|
|
|
193
212
|
type?: string;
|
|
194
213
|
}>): string[];
|
|
195
214
|
|
|
196
|
-
export { FOOTER_TYPE, HEADER_TYPE, type NodeLocation, ROOT_ZONE, type SlotChild, type SlotConfigView, TREE_MAX_DEPTH, type TreeItem, childSlotsOf, locateNode, missingPinnedTypes, nestsInTree, newNodeId, pinnedDuplicateIds, pinnedDuplicateIndices, slotFieldsOf };
|
|
215
|
+
export { FOOTER_TYPE, HEADER_TYPE, type NodeLocation, ROOT_ZONE, type SlotChild, type SlotConfigView, TREE_MAX_DEPTH, type TreeItem, blockNodeActions, childSlotsOf, locateNode, missingPinnedTypes, nestsInTree, newNodeId, pinnedDuplicateIds, pinnedDuplicateIndices, slotFieldsOf };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{FOOTER_TYPE,HEADER_TYPE,ROOT_ZONE,TREE_MAX_DEPTH,childSlotsOf,locateNode,missingPinnedTypes,nestsInTree,newNodeId,pinnedDuplicateIds,pinnedDuplicateIndices,slotFieldsOf}from"../../../chunk-
|
|
1
|
+
export{FOOTER_TYPE,HEADER_TYPE,ROOT_ZONE,TREE_MAX_DEPTH,blockNodeActions,childSlotsOf,locateNode,missingPinnedTypes,nestsInTree,newNodeId,pinnedDuplicateIds,pinnedDuplicateIndices,slotFieldsOf}from"../../../chunk-7GVLSNFW.js";
|
|
@@ -38,7 +38,7 @@ import '../content/view-tiers.js';
|
|
|
38
38
|
* WHY THE HIDDEN FIELD LEAVES NO GAP. Puck wraps every top-level field in its
|
|
39
39
|
* own padded `_PuckFields-field_` box before it calls `render`, so a field that
|
|
40
40
|
* renders nothing would still cost ~37px of empty panel. The gate instead paints
|
|
41
|
-
* a zero-size marker and `
|
|
41
|
+
* a zero-size marker and this package's `screen.css` collapses the
|
|
42
42
|
* wrapper that contains one — the same "reach the wrapper Puck owns" trick the
|
|
43
43
|
* fold reflow in `controls.tsx` already relies on, expressed as one CSS rule
|
|
44
44
|
* instead of a second DOM pass (so it cannot race the fold's).
|
|
@@ -64,7 +64,9 @@ declare function shownTier(device: PreviewDevice): DeviceTier;
|
|
|
64
64
|
*/
|
|
65
65
|
declare const DEVICE_NOTE: Readonly<Record<PreviewDevice, string | null>>;
|
|
66
66
|
/** The attribute the stylesheet looks for to collapse a gated-off field's Puck
|
|
67
|
-
* wrapper. Declared here, matched once in `
|
|
67
|
+
* wrapper. Declared here, matched once in this package's `screen.css`, which
|
|
68
|
+
* every host that mounts the screen loads (it sat in the website's sheet until
|
|
69
|
+
* 0.103.0, so a second host's hidden rows kept their space). */
|
|
68
70
|
declare const DEVICE_HIDDEN_ATTR = "data-sf-device-hidden";
|
|
69
71
|
/** A house control's render, seen from outside: the builders in `controls.tsx`
|
|
70
72
|
* each type their own props, so the gate takes the widest shape that can be
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{cloneNodeWithFreshIds,docToNode,nodeToDoc}from"../../../chunk-
|
|
1
|
+
export{cloneNodeWithFreshIds,docToNode,nodeToDoc}from"../../../chunk-R2MUSGPS.js";import"../../../chunk-7GVLSNFW.js";
|
|
@@ -126,7 +126,19 @@ declare function slotChildName(child: SlotChild, wheelName?: (code: string) => s
|
|
|
126
126
|
* needs at least one character between a pair, so a name that is non-empty
|
|
127
127
|
* cannot strip to nothing and be renamed into its component's label.
|
|
128
128
|
*/
|
|
129
|
-
declare function slotChildRowName(child:
|
|
129
|
+
declare function slotChildRowName<N extends SlotChild>(child: N, compLabel: (type: string) => string, plainText: (copy: string) => string, wheelName?: (code: string) => string | undefined, rowName?: RowNameRule<N>): string;
|
|
130
|
+
/**
|
|
131
|
+
* THE LAYER'S LAST WORD (0.103.0) — `ScreenBlockLook.rowName`
|
|
132
|
+
* (lib/screen-parts), the rung a layer may stand above the whole precedence:
|
|
133
|
+
* handed the node, the level it is named at and what the rule here answered,
|
|
134
|
+
* it answers the row's name. The campaign designer names its rows by its own
|
|
135
|
+
* labels, and needs none of the website's rungs.
|
|
136
|
+
*
|
|
137
|
+
* An argument and not a rung written here, for the reason the grammar and the
|
|
138
|
+
* catalog are: this module has no layer. Absent, the rule here is the name, as
|
|
139
|
+
* it was before the member existed.
|
|
140
|
+
*/
|
|
141
|
+
type RowNameRule<N extends SlotChild = SlotChild> = (node: N, level: "section" | "block", fallback: string) => string;
|
|
130
142
|
/**
|
|
131
143
|
* WHICH PROP A RENAME WRITES — the write side of the rule above, and here for
|
|
132
144
|
* the reason the read side is: naming a slot child has ONE home (card 66194).
|
|
@@ -180,7 +192,10 @@ declare function slotChildRenameProp(fields: Record<string, unknown> | undefined
|
|
|
180
192
|
*
|
|
181
193
|
* `fallback` is the caller's type-level label (`sectionLabel(type)`), which is
|
|
182
194
|
* what every published page reads today and what an unnamed node keeps reading.
|
|
195
|
+
*
|
|
196
|
+
* `rowName` is the layer's last word ({@link RowNameRule}), asked at the
|
|
197
|
+
* SECTION level with what this rung answered.
|
|
183
198
|
*/
|
|
184
|
-
declare function rootRowName(node:
|
|
199
|
+
declare function rootRowName<N extends SlotChild>(node: N, fallback: string, rowName?: RowNameRule<N>): string;
|
|
185
200
|
|
|
186
|
-
export { type SlotChild, rootRowName, slotChildName, slotChildRenameProp, slotChildRowName };
|
|
201
|
+
export { type RowNameRule, type SlotChild, rootRowName, slotChildName, slotChildRenameProp, slotChildRowName };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{rootRowName,slotChildName,slotChildRenameProp,slotChildRowName}from"../../../chunk-
|
|
1
|
+
export{rootRowName,slotChildName,slotChildRenameProp,slotChildRowName}from"../../../chunk-QOPY2LQM.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-6W7WLPZH.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope}from"../../../chunk-
|
|
1
|
+
export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope}from"../../../chunk-Q2HPBMG5.js";import"../../../chunk-ZE7I3PLX.js";import"../../../chunk-PWZOS45R.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-R2HLPNQF.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-BSPCSC45.js";import"../../../chunk-57DJOKXT.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-L5KW4HG5.js";
|
|
@@ -80,6 +80,12 @@ type SectionOpsOptions = {
|
|
|
80
80
|
* un-fix that card.
|
|
81
81
|
*/
|
|
82
82
|
readOnly?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Resolve each node an op puts in (`easel.resolveNode`, trigger `"insert"`).
|
|
85
|
+
* Default: the layer's rule (`ScreenBlockRules.resolveOnInsert`), else
|
|
86
|
+
* false — no op resolves anything, as before 0.103.0.
|
|
87
|
+
*/
|
|
88
|
+
resolveOnInsert?: boolean;
|
|
83
89
|
};
|
|
84
90
|
declare function useSectionOps(options?: SectionOpsOptions): SectionOps;
|
|
85
91
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{useSectionOps}from"../../../chunk-
|
|
1
|
+
export{useSectionOps}from"../../../chunk-A2LFBOUF.js";import"../../../chunk-7GVLSNFW.js";import"../../../chunk-7755VWRT.js";import"../../../chunk-Z6BAZFSW.js";import"../../../chunk-R5ZVNJLJ.js";import"../../../chunk-P67FP7PG.js";import"../../../chunk-AELNNAFM.js";import"../../../chunk-BXZ6WLHC.js";import"../../../chunk-EOJNJCMJ.js";import"../../../chunk-ZFDCDJNZ.js";import"../../../chunk-ZNS7727Y.js";import"../../../chunk-3EDSDPIP.js";import"../../../chunk-QTLAVDJE.js";import"../../../chunk-YRLPFZW3.js";import"../../../chunk-KTVH2ZRL.js";import"../../../chunk-D2BCHTQR.js";import"../../../chunk-EWVJSRRY.js";import"../../../chunk-P6O363EE.js";import"../../../chunk-FPOKPNO4.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-BZ5ASXOL.js";import"../../../chunk-67GNT6PF.js";import"../../../chunk-ZNCEOSXO.js";import"../../../chunk-L5KW4HG5.js";import"../../../chunk-KRXQM65X.js";import"../../../chunk-NKB3KVAB.js";
|
|
@@ -3,6 +3,7 @@ import { ReactNode, MouseEvent, ComponentType } from 'react';
|
|
|
3
3
|
import { Data } from '../../blocks/index.js';
|
|
4
4
|
import { D as DeviceOption } from '../../types-CqY85foL.js';
|
|
5
5
|
import { a as EaselRailItem } from '../../types-DWS-s9z-.js';
|
|
6
|
+
import { T as TreeRowMark } from '../../types-DJDBtdB2.js';
|
|
6
7
|
import { HostProduct } from './host-chrome.js';
|
|
7
8
|
import { EaselSession } from './session.js';
|
|
8
9
|
import { AddTarget } from './puck/add-target-types.js';
|
|
@@ -14,8 +15,10 @@ import '../../plan-DChbUXdS.js';
|
|
|
14
15
|
import '../../edit-lock/index.js';
|
|
15
16
|
import '../../panelWidths-D9hTLR25.js';
|
|
16
17
|
import '../../wordFit-D4S36PvB.js';
|
|
18
|
+
import '../../words-DgHcY5qB.js';
|
|
17
19
|
import './links/link-filters.js';
|
|
18
20
|
import '../../LinkPicker-W2Rtxetz.js';
|
|
21
|
+
import './backend-error.js';
|
|
19
22
|
import './document-contract.js';
|
|
20
23
|
import './document-hooks.js';
|
|
21
24
|
import './section-template-types.js';
|
|
@@ -143,6 +146,23 @@ interface ScreenInspectorPanelProps {
|
|
|
143
146
|
/** Hide the panel: the last button of its head. Omitted by a screen whose
|
|
144
147
|
* inspector is always in view. */
|
|
145
148
|
onHidePanel?: () => void;
|
|
149
|
+
/**
|
|
150
|
+
* Which of the head's two node actions the selected node's BLOCK allows
|
|
151
|
+
* (0.103.0): its config's `permissions.duplicate` and `permissions.delete`,
|
|
152
|
+
* each true unless the config says false — the answer the screen's own tree
|
|
153
|
+
* rows and menu honour, handed on so the head the layer draws honours it
|
|
154
|
+
* too, hiding or greying a refused one. With nothing selected both are true.
|
|
155
|
+
* Handed by the page screen; a layer that never reads it draws its head as
|
|
156
|
+
* it did.
|
|
157
|
+
*/
|
|
158
|
+
nodeActions?: ScreenNodeActions;
|
|
159
|
+
}
|
|
160
|
+
/** What a block's config allows of the two actions that make another node or
|
|
161
|
+
* take one away (`ComponentConfig.permissions`): `false` only where the config
|
|
162
|
+
* says so (lib/puck/content-tree `blockNodeActions`). */
|
|
163
|
+
interface ScreenNodeActions {
|
|
164
|
+
duplicate: boolean;
|
|
165
|
+
delete: boolean;
|
|
146
166
|
}
|
|
147
167
|
/**
|
|
148
168
|
* The document and its tree of rows, as far as a layer needs them to wire and
|
|
@@ -305,6 +325,15 @@ interface ScreenBridges {
|
|
|
305
325
|
/** …and `barTrail` stands between Refresh and the main button: a way out to
|
|
306
326
|
* where the document is read. */
|
|
307
327
|
barTrail?: () => ReactNode;
|
|
328
|
+
/**
|
|
329
|
+
* …and `barMain` IS the main button, in its place at the end of the cluster
|
|
330
|
+
* (0.103.0): the layer's own way to finish with the document — the campaign
|
|
331
|
+
* designer's Done — where the screen draws Publish (a document that
|
|
332
|
+
* publishes) or Save. What comes back is placed as it is, nothing round it,
|
|
333
|
+
* and returning nothing leaves the place empty. Absent, the screen draws its
|
|
334
|
+
* own button, as it always has.
|
|
335
|
+
*/
|
|
336
|
+
barMain?: () => ReactNode;
|
|
308
337
|
/**
|
|
309
338
|
* The layer's own buttons in the rail. The screen draws the rail as Add, its
|
|
310
339
|
* own Layers and the host's Media library; a layer has two places in it.
|
|
@@ -441,6 +470,17 @@ interface ScreenBlockRules {
|
|
|
441
470
|
* no host chose its blocks, every type is.
|
|
442
471
|
*/
|
|
443
472
|
blockIsOffered: (type: string, session?: EaselSession) => boolean;
|
|
473
|
+
/**
|
|
474
|
+
* Is a new block RESOLVED as it goes in (0.103.0)? With true, every insert
|
|
475
|
+
* the screen makes — a section, a block into a slot, a saved template, a
|
|
476
|
+
* seeded slot child — is followed by `easel.resolveNode(id, { trigger:
|
|
477
|
+
* 'insert' })`, as the campaign designer's own inserts are: the block's
|
|
478
|
+
* `resolveData` runs the moment it arrives (seeding its children, stamping a
|
|
479
|
+
* default), in the insert's own undo step, not at its first edit or the next
|
|
480
|
+
* time the document opens. Absent, false: an insert runs no resolver, as
|
|
481
|
+
* the website's never has.
|
|
482
|
+
*/
|
|
483
|
+
resolveOnInsert?: boolean;
|
|
444
484
|
}
|
|
445
485
|
/** The tier a node is NAMED at: a node at the top of the document is a section,
|
|
446
486
|
* a node inside another is a block. */
|
|
@@ -507,6 +547,41 @@ interface ScreenBlockLook {
|
|
|
507
547
|
* the screen read the products itself, so its effect keeps its place.
|
|
508
548
|
*/
|
|
509
549
|
useProducts: () => readonly HostProduct[] | null;
|
|
550
|
+
/**
|
|
551
|
+
* THE LAYER'S LAST WORD ON WHAT A LAYERS ROW SAYS (0.103.0): handed a node,
|
|
552
|
+
* the level it is named at and `fallback` — what the screen's own naming
|
|
553
|
+
* rule answered (lib/puck/slot-child-name: a name the node carries, else its
|
|
554
|
+
* type's label; a pinned row's word) — it answers the row's name. Asked of
|
|
555
|
+
* every node row the page screen's Layers tree draws, and of the menu's
|
|
556
|
+
* Select layer flyout, a block's canvas handle and a section's own list of
|
|
557
|
+
* its children in the inspector, which say the same words. The campaign
|
|
558
|
+
* designer's rows read its own labels ("Section 2", "Header"). Absent: the
|
|
559
|
+
* screen's rule, as it named every row.
|
|
560
|
+
*/
|
|
561
|
+
rowName?: (node: ScreenNode, level: ScreenNodeLevel, fallback: string) => string;
|
|
562
|
+
/**
|
|
563
|
+
* The quieter words a node row draws after its name (`TreeRow`'s
|
|
564
|
+
* `preview`): a node's own first words, so a tree of rows all called
|
|
565
|
+
* "Section" can be told apart by eye. The layer chooses and shortens them;
|
|
566
|
+
* nothing (null, undefined, "") draws nothing. Absent: no row has any.
|
|
567
|
+
*/
|
|
568
|
+
rowPreview?: (node: ScreenNode) => string | null | undefined;
|
|
569
|
+
/**
|
|
570
|
+
* The small marks a node row draws right after its name (`TreeRow`'s
|
|
571
|
+
* `marks`): a state the row only SHOWS, such as "Shown on phones only".
|
|
572
|
+
* Absent, or nothing handed back: no marks.
|
|
573
|
+
*/
|
|
574
|
+
rowMarks?: (node: ScreenNode) => ReadonlyArray<TreeRowMark> | null | undefined;
|
|
575
|
+
/**
|
|
576
|
+
* The layer's own buttons on a node row, by the node and where it sits:
|
|
577
|
+
* `TreeRowAction`s (efficient-easel/tree), placed between the screen's trash
|
|
578
|
+
* and its eye — the campaign designer's phone switch. Asked of every node
|
|
579
|
+
* row, a locked one and a pinned one too, so the layer decides; what comes
|
|
580
|
+
* back is placed as it is, and nothing draws nothing. A button that writes
|
|
581
|
+
* renders a component of the layer's that reaches the document itself.
|
|
582
|
+
* Absent: the screen's two, as it drew them.
|
|
583
|
+
*/
|
|
584
|
+
rowActions?: (node: ScreenNode, zone: string, index: number) => ReactNode;
|
|
510
585
|
}
|
|
511
586
|
/**
|
|
512
587
|
* THE DEVICES the canvas can be looked at on. That the top bar has a switch,
|
|
@@ -557,9 +632,15 @@ interface ScreenDevices {
|
|
|
557
632
|
* selected and where a pinned node's row is pressed, and shows what it is
|
|
558
633
|
* handed.
|
|
559
634
|
*
|
|
560
|
-
*
|
|
561
|
-
*
|
|
562
|
-
*
|
|
635
|
+
* And HOW THE LAYERS TREE FRAMES THEM (0.103.0): which node is pinned where it
|
|
636
|
+
* is not one type (`isFirst`, `isLast` — the campaign designer's Header and
|
|
637
|
+
* Footer are both sections, told apart by a prop), how the first one's row is
|
|
638
|
+
* drawn (`firstRow`) and what the band of sections between them looks like
|
|
639
|
+
* (`band`). Each is optional, and its default is the tree the website has.
|
|
640
|
+
*
|
|
641
|
+
* The same object for the life of a mount, its functions plain functions of
|
|
642
|
+
* what they are passed: the screen reads it anywhere, inside the callbacks and
|
|
643
|
+
* effects it does not rebuild for it.
|
|
563
644
|
*/
|
|
564
645
|
interface ScreenPinnedNodes {
|
|
565
646
|
/** The type of the node pinned FIRST: the band starts after it. Null when
|
|
@@ -567,6 +648,32 @@ interface ScreenPinnedNodes {
|
|
|
567
648
|
first: string | null;
|
|
568
649
|
/** The type of the node pinned LAST: the band ends at it. */
|
|
569
650
|
last: string | null;
|
|
651
|
+
/**
|
|
652
|
+
* Is this top-level node the one pinned first (0.103.0)? Where every node
|
|
653
|
+
* of the pinned type is not pinned — the campaign designer's Header is an
|
|
654
|
+
* `EmailSection` with `_region: "header"`, beside body sections of the same
|
|
655
|
+
* type — the layer says which. The page screen asks it wherever it tested
|
|
656
|
+
* a node against `first`: the band, the tree, the canvas handles, the menu.
|
|
657
|
+
* (The section screen, which holds one node, still asks the type.) The
|
|
658
|
+
* first node that answers yes is the one. Absent: a node of type `first`.
|
|
659
|
+
*/
|
|
660
|
+
isFirst?: (node: ScreenNode) => boolean;
|
|
661
|
+
/** …and the one pinned last (the Footer). Absent: a node of type `last`. */
|
|
662
|
+
isLast?: (node: ScreenNode) => boolean;
|
|
663
|
+
/**
|
|
664
|
+
* How the Layers tree draws the node pinned first (0.103.0). `"panel"`: a
|
|
665
|
+
* row of its own that opens the layer's panel for it (`panelOf`), drawn
|
|
666
|
+
* whether or not the document holds the node, and none of its children —
|
|
667
|
+
* the website's Header, whose settings are a panel. `"node"`: the node
|
|
668
|
+
* itself, selected by its row and folding open into its children, exactly
|
|
669
|
+
* as the node pinned last is drawn — the campaign designer's Header, a
|
|
670
|
+
* section with blocks in it. Absent: `"panel"`.
|
|
671
|
+
*/
|
|
672
|
+
firstRow?: "panel" | "node";
|
|
673
|
+
/** What the band of sections between the two pins looks like in the tree
|
|
674
|
+
* (0.103.0). Absent: a group label in the screen's words, the sections at
|
|
675
|
+
* the tree's own depth, and no row after them. */
|
|
676
|
+
band?: ScreenPinnedBand;
|
|
570
677
|
/** The type of the group of sections pinned first, ahead of everything. */
|
|
571
678
|
firstGroup: string | null;
|
|
572
679
|
/** …and of the one pinned last. */
|
|
@@ -584,6 +691,31 @@ interface ScreenPinnedNodes {
|
|
|
584
691
|
*/
|
|
585
692
|
panelOf: (type: string | null | undefined) => ScreenInspectorMode | null;
|
|
586
693
|
}
|
|
694
|
+
/**
|
|
695
|
+
* THE BAND, AS THE LAYERS TREE FRAMES IT (`ScreenPinnedNodes.band`, 0.103.0):
|
|
696
|
+
* the sections between the two pins. Where the band starts and ends is the
|
|
697
|
+
* screen's arithmetic either way; this is only how it is drawn.
|
|
698
|
+
*/
|
|
699
|
+
interface ScreenPinnedBand {
|
|
700
|
+
/** What the band is called. Absent: the screen's words, `screen.pageSections`
|
|
701
|
+
* ("Template · Home page") on a document with the edit guard and
|
|
702
|
+
* `screen.templateSections` ("Template · Template") on one without. */
|
|
703
|
+
label?: string;
|
|
704
|
+
/** The band is a ROW that folds, its sections under it — the campaign
|
|
705
|
+
* designer's Body. Absent or false: a group label over the sections, which
|
|
706
|
+
* sit at the tree's own depth. */
|
|
707
|
+
foldable?: boolean;
|
|
708
|
+
/** The band ends with an "Add section" row (`screen.addSection`) that opens
|
|
709
|
+
* Add at the end of the band, where the band's last "+" does. Hidden while
|
|
710
|
+
* the document is read-only, as every "+" is. Absent or false: the band ends
|
|
711
|
+
* at its last gap. */
|
|
712
|
+
addAtEnd?: boolean;
|
|
713
|
+
}
|
|
714
|
+
/** Is `node` the one the layer pins FIRST — its own test (`isFirst`), else a
|
|
715
|
+
* node of the `first` type, the test the screen has always made. */
|
|
716
|
+
declare function isPinnedFirst(pinned: ScreenPinnedNodes, node: ScreenNode): boolean;
|
|
717
|
+
/** …and LAST (`isLast`, else a node of the `last` type). */
|
|
718
|
+
declare function isPinnedLast(pinned: ScreenPinnedNodes, node: ScreenNode): boolean;
|
|
587
719
|
/**
|
|
588
720
|
* THE VIEW THE LEFT PANEL IS ON, from one mount to the next. That the panel
|
|
589
721
|
* has views, that one of them is current and that the choice is kept is the
|
|
@@ -613,6 +745,13 @@ interface ScreenParts {
|
|
|
613
745
|
* reads it (components/MediaSidePanel), through `useScreenOwnerName`.
|
|
614
746
|
*/
|
|
615
747
|
useOwnerName?: () => string;
|
|
748
|
+
/**
|
|
749
|
+
* The Layers head's context line — what the open document is, under the
|
|
750
|
+
* word "Layers" — as the hook the head calls (0.103.0). The campaign
|
|
751
|
+
* designer's names the campaign and its variant. Absent: the document's
|
|
752
|
+
* address, `/${slug}`, as the website's head has always said it.
|
|
753
|
+
*/
|
|
754
|
+
useDocumentLabel?: () => string;
|
|
616
755
|
/**
|
|
617
756
|
* The layer's wiring between the inspector and what the layer draws in the
|
|
618
757
|
* canvas, as ONE hook the screen calls where it used to hold that wiring: a
|
|
@@ -662,6 +801,24 @@ interface ScreenParts {
|
|
|
662
801
|
* sections, and which are edited in a panel of the layer's. Data and three
|
|
663
802
|
* plain functions, and handed here for the reason the rules are. */
|
|
664
803
|
pinned?: ScreenPinnedNodes;
|
|
804
|
+
/**
|
|
805
|
+
* Is the save pill also the autosave's on / off switch (0.103.0)? The screen
|
|
806
|
+
* draws the pill as a button that pauses the autosave and resumes it; a
|
|
807
|
+
* layer whose editor always saves (the campaign designer) says false, and the
|
|
808
|
+
* pill is the same words and the same dot with nothing to press. "Retry now"
|
|
809
|
+
* stays beside a failed save either way. Absent, true: the switch, as the
|
|
810
|
+
* website has it.
|
|
811
|
+
*/
|
|
812
|
+
saveSwitch?: boolean;
|
|
813
|
+
/**
|
|
814
|
+
* Does a field's media pick give way to a change of selection (0.103.0)? A
|
|
815
|
+
* field of the selected block asks the host's panel to choose (lib/
|
|
816
|
+
* media-panel); with true, selecting another block, or none, while it waits
|
|
817
|
+
* leaves pick mode and settles the field with null, as Cancel would — the
|
|
818
|
+
* campaign designer's picker belongs to the block it was opened for. Absent,
|
|
819
|
+
* false: a pick outlives a change of selection, as the website's does.
|
|
820
|
+
*/
|
|
821
|
+
pickFollowsSelection?: boolean;
|
|
665
822
|
/**
|
|
666
823
|
* THE CANVAS the screen frames: the engine's, as the layer dresses it — the
|
|
667
824
|
* layer's own sheet and theme in the frame, its own say over the outline
|
|
@@ -695,6 +852,9 @@ declare function useScreenParts(): ScreenParts;
|
|
|
695
852
|
/** The layer's bridges, run in the screen. With no layer, nothing runs. */
|
|
696
853
|
/** The name a panel's head gives what is being edited (`useOwnerName`). */
|
|
697
854
|
declare function useScreenOwnerName(): string;
|
|
855
|
+
/** The Layers head's context line (`useDocumentLabel`), or null with no
|
|
856
|
+
* layer's, and the screen says the document's address. */
|
|
857
|
+
declare function useScreenDocumentLabel(): string | null;
|
|
698
858
|
declare function useScreenBridges(inspector: ScreenInspector, tree: ScreenTree, canvas: ScreenCanvas, left: ScreenLeftPanel): ScreenBridges;
|
|
699
859
|
/** The layer's bridges for the screen that holds one node by itself. With no
|
|
700
860
|
* layer, nothing runs. */
|
|
@@ -717,6 +877,13 @@ declare function useScreenLeftView(): ScreenLeftViewRules;
|
|
|
717
877
|
/** Which node types the layer pins in the top-level list, and which are its
|
|
718
878
|
* groups of sections. With no layer, none. */
|
|
719
879
|
declare function useScreenPinned(): ScreenPinnedNodes;
|
|
880
|
+
/** Whether the save pill is the autosave's switch. With no layer, it is, as
|
|
881
|
+
* the screen has always drawn it. */
|
|
882
|
+
declare function useScreenSaveSwitch(): boolean;
|
|
883
|
+
/** Leave a field's pick when `selection` changes, if the layer says a pick
|
|
884
|
+
* follows the selection (`pickFollowsSelection`). With no layer, a pick
|
|
885
|
+
* outlives a change of selection, as it always has. */
|
|
886
|
+
declare function useScreenPickFollowsSelection(selection: unknown): void;
|
|
720
887
|
/** The canvas the layer dresses for the screen to frame. With no layer, the
|
|
721
888
|
* engine's plain one. */
|
|
722
889
|
declare function useScreenCanvasFrame(): ComponentType;
|
|
@@ -724,4 +891,4 @@ declare function useScreenCanvasFrame(): ComponentType;
|
|
|
724
891
|
* engine's plain rows for the selection. */
|
|
725
892
|
declare function useScreenInspectorPanel(): ComponentType<ScreenInspectorPanelProps>;
|
|
726
893
|
|
|
727
|
-
export { type NodeDefaults, SELECTION_MODE, type ScreenBlockLook, type ScreenBlockRules, type ScreenBridges, type ScreenCanvas, type ScreenDevices, type ScreenDocumentOps, type ScreenInspector, type ScreenInspectorMode, type ScreenInspectorPanelProps, type ScreenLeftPanel, type ScreenLeftView, type ScreenLeftViewFrame, type ScreenLeftViewRules, type ScreenNewNode, type ScreenNode, type ScreenNodeLevel, type ScreenNodeMaker, type ScreenPartMode, type ScreenParts, ScreenPartsProvider, type ScreenPinnedNodes, type ScreenRailItem, type ScreenTree, type ScreenTreeFolds, type ScreenTreeRows, sameInspectorMode, useScreenBlockLook, useScreenBlockRules, useScreenBridges, useScreenCanvasFrame, useScreenDevices, useScreenDocumentPass, useScreenInspectorPanel, useScreenLeftView, useScreenOwnerName, useScreenParts, useScreenPinned, useStandaloneScreenBridges };
|
|
894
|
+
export { type NodeDefaults, SELECTION_MODE, type ScreenBlockLook, type ScreenBlockRules, type ScreenBridges, type ScreenCanvas, type ScreenDevices, type ScreenDocumentOps, type ScreenInspector, type ScreenInspectorMode, type ScreenInspectorPanelProps, type ScreenLeftPanel, type ScreenLeftView, type ScreenLeftViewFrame, type ScreenLeftViewRules, type ScreenNewNode, type ScreenNode, type ScreenNodeActions, type ScreenNodeLevel, type ScreenNodeMaker, type ScreenPartMode, type ScreenParts, ScreenPartsProvider, type ScreenPinnedBand, type ScreenPinnedNodes, type ScreenRailItem, type ScreenTree, type ScreenTreeFolds, type ScreenTreeRows, isPinnedFirst, isPinnedLast, sameInspectorMode, useScreenBlockLook, useScreenBlockRules, useScreenBridges, useScreenCanvasFrame, useScreenDevices, useScreenDocumentLabel, useScreenDocumentPass, useScreenInspectorPanel, useScreenLeftView, useScreenOwnerName, useScreenParts, useScreenPickFollowsSelection, useScreenPinned, useScreenSaveSwitch, useStandaloneScreenBridges };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{SELECTION_MODE,ScreenPartsProvider,sameInspectorMode,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasFrame,useScreenDevices,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenOwnerName,useScreenParts,useScreenPinned,useStandaloneScreenBridges}from"../../chunk-
|
|
1
|
+
export{SELECTION_MODE,ScreenPartsProvider,isPinnedFirst,isPinnedLast,sameInspectorMode,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasFrame,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useStandaloneScreenBridges}from"../../chunk-7755VWRT.js";import"../../chunk-Z6BAZFSW.js";import"../../chunk-R5ZVNJLJ.js";import"../../chunk-P67FP7PG.js";import"../../chunk-AELNNAFM.js";import"../../chunk-BXZ6WLHC.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-P6O363EE.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import { SectionTemplateStore } from './section-template-types.js';
|
|
2
|
+
import { EaselSession } from './session.js';
|
|
2
3
|
import './puck/content-tree.js';
|
|
4
|
+
import '../../blocks/index.js';
|
|
5
|
+
import 'react';
|
|
6
|
+
import '../../types-E3HrTPg2.js';
|
|
7
|
+
import '../../data/index.js';
|
|
8
|
+
import '../../types-41704JE4.js';
|
|
9
|
+
import '../../resolve-D68pb3Bx.js';
|
|
10
|
+
import '../../plan-DChbUXdS.js';
|
|
11
|
+
import './backend-error.js';
|
|
12
|
+
import '../../edit-lock/index.js';
|
|
13
|
+
import './host-chrome.js';
|
|
14
|
+
import './links/link-filters.js';
|
|
15
|
+
import '../../LinkPicker-W2Rtxetz.js';
|
|
16
|
+
import './document-contract.js';
|
|
17
|
+
import './document-hooks.js';
|
|
3
18
|
|
|
4
19
|
/**
|
|
5
20
|
* The section templates of the editor on this page — whichever store its
|
|
@@ -18,6 +33,15 @@ import './puck/content-tree.js';
|
|
|
18
33
|
* website's sections into the other's.
|
|
19
34
|
*/
|
|
20
35
|
|
|
36
|
+
/** The section templates of the editor on this page (`currentEaselSession`). */
|
|
21
37
|
declare const sectionTemplates: SectionTemplateStore;
|
|
38
|
+
/**
|
|
39
|
+
* The section templates of ONE editor's session (0.103.0): what the screen's
|
|
40
|
+
* own Add panel lists, so an editor mounted beside the page's (a session made
|
|
41
|
+
* with `claimsPage: false`) lists its own backend's templates, never the page
|
|
42
|
+
* editor's. For the page's own editor it is the same store as
|
|
43
|
+
* {@link sectionTemplates}.
|
|
44
|
+
*/
|
|
45
|
+
declare function sectionTemplatesOf(session: EaselSession): SectionTemplateStore;
|
|
22
46
|
|
|
23
|
-
export { sectionTemplates };
|
|
47
|
+
export { sectionTemplates, sectionTemplatesOf };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{sectionTemplates}from"../../chunk-
|
|
1
|
+
export{sectionTemplates,sectionTemplatesOf}from"../../chunk-BVN33R76.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-RSCMJIWS.js";
|
|
@@ -7,6 +7,8 @@ import '../../data/index.js';
|
|
|
7
7
|
import '../../types-41704JE4.js';
|
|
8
8
|
import '../../resolve-D68pb3Bx.js';
|
|
9
9
|
import '../../plan-DChbUXdS.js';
|
|
10
|
+
import './backend-error.js';
|
|
11
|
+
import '../../edit-lock/index.js';
|
|
10
12
|
import './host-chrome.js';
|
|
11
13
|
import './links/link-filters.js';
|
|
12
14
|
import '../../LinkPicker-W2Rtxetz.js';
|
|
@@ -18,7 +20,9 @@ import './puck/content-tree.js';
|
|
|
18
20
|
/**
|
|
19
21
|
* Hand `session` to the editor below, and make it the page's current one for
|
|
20
22
|
* as long as this is mounted (see `activateEaselSession` for why it happens in
|
|
21
|
-
* render AND in an effect)
|
|
23
|
+
* render AND in an effect) — unless it was made not to claim the page
|
|
24
|
+
* (`claimsPage: false`, 0.103.0): an editor mounted beside the page's is
|
|
25
|
+
* handed its session here and nowhere else.
|
|
22
26
|
*/
|
|
23
27
|
declare function EaselSessionProvider({ session, children }: {
|
|
24
28
|
session: EaselSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{EaselSessionProvider,useEaselSession}from"../../chunk-
|
|
1
|
+
export{EaselSessionProvider,useEaselSession}from"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";
|