efficient-easel 0.103.0 → 0.105.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -7
- package/dist/CanvasDragLayer-zgYT1xwY.d.ts +168 -0
- package/dist/chrome/index.js +1 -1
- package/dist/chunk-3P6AMTOS.js +1 -0
- package/dist/chunk-4XQUWGIV.js +65 -0
- package/dist/{chunk-6UJ3Y6FC.js → chunk-53G47SWO.js} +1 -1
- package/dist/{chunk-IWAPPEL4.js → chunk-5ZBBXZPV.js} +1 -1
- package/dist/chunk-7FBDZTUD.js +2 -0
- package/dist/chunk-7V5WZ46F.js +2 -0
- package/dist/chunk-BVN33R76.js +1 -0
- package/dist/chunk-CLOS6SSX.js +1 -0
- package/dist/chunk-ERR437B5.js +1 -0
- package/dist/chunk-GMCZXMOV.js +1 -0
- package/dist/{chunk-OYX47SL7.js → chunk-HNKB2ZYR.js} +1 -1
- package/dist/{chunk-AKFJK65Z.js → chunk-IE4GFYKO.js} +1 -1
- package/dist/{chunk-KDYIMJTZ.js → chunk-KCOBHPN6.js} +1 -1
- package/dist/chunk-KG7RJWOK.js +1 -0
- package/dist/chunk-N7VRF7PR.js +5 -0
- package/dist/chunk-NYKIQJT2.js +4 -0
- package/dist/{chunk-6TZTKAB5.js → chunk-O7Q4DDJT.js} +1 -1
- package/dist/chunk-PA3PNTVV.js +1 -0
- package/dist/chunk-PLVEGYK6.js +1 -0
- package/dist/chunk-PQXIFBDY.js +1 -0
- package/dist/{chunk-66ICOE3I.js → chunk-QH6LCNOX.js} +1 -1
- package/dist/chunk-R6WTQWAC.js +2 -0
- package/dist/{chunk-Z3KBLIEH.js → chunk-RQHC4TD6.js} +3 -3
- package/dist/chunk-RSCMJIWS.js +1 -0
- package/dist/{chunk-7MU3RJ6S.js → chunk-S4AWJX4Q.js} +1 -1
- package/dist/{chunk-MSBF7IW3.js → chunk-SARZN4M7.js} +2 -2
- package/dist/chunk-SQTY6CJD.js +1 -0
- package/dist/chunk-TBF5CVPA.js +1 -0
- package/dist/chunk-THWO5YVZ.js +1 -0
- package/dist/chunk-TLZG2FCF.js +1 -0
- package/dist/chunk-U3JP4VGF.js +2 -0
- package/dist/{chunk-LG436UTD.js → chunk-V4LF7D4F.js} +1 -1
- package/dist/chunk-VSHV6KJQ.js +5 -0
- package/dist/{chunk-OM67AJQC.js → chunk-VSOP4GUM.js} +1 -1
- package/dist/{chunk-6DJHRLCU.js → chunk-YC4TB3CJ.js} +9 -9
- package/dist/{chunk-GXN65JMA.js → chunk-YN4KND5F.js} +1 -1
- package/dist/chunk-ZTTWFAAC.js +1 -0
- package/dist/drag/index.d.ts +4 -164
- package/dist/edit-lock/index.d.ts +55 -1
- package/dist/edit-lock/index.js +1 -1
- package/dist/{host-DJ8Gzsx7.d.ts → host-BQ_b9Qzk.d.ts} +27 -1
- 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 +208 -5
- 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 +14 -3
- package/dist/screen/components/ScreenMount.js +1 -1
- package/dist/screen/components/ScreenStoreProvider.d.ts +20 -5
- package/dist/screen/components/ScreenStoreProvider.js +1 -1
- package/dist/screen/components/SectionScreenShell.js +16 -16
- package/dist/screen/components/SidePanelHead.js +1 -1
- package/dist/screen/components/panel-widths.js +1 -1
- package/dist/screen/components/usePartBridge.d.ts +20 -5
- package/dist/screen/components/usePartBridge.js +1 -1
- package/dist/screen/index.d.ts +17 -6
- 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-switch.js +1 -1
- 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/host.js +1 -1
- package/dist/screen/lib/key-scope.js +1 -1
- 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 +27 -1
- package/dist/screen/lib/puck/content-tree.js +1 -1
- package/dist/screen/lib/puck/palette-sections.d.ts +7 -0
- package/dist/screen/lib/puck/palette-sections.js +1 -1
- package/dist/screen/lib/puck/section-doc.js +1 -1
- package/dist/screen/lib/puck/slot-child-name.d.ts +42 -3
- package/dist/screen/lib/puck/slot-child-name.js +1 -1
- package/dist/screen/lib/puck/style-clipboard.d.ts +53 -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 +619 -10
- 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 +18 -0
- package/dist/screen/words.d.ts +96 -2
- package/dist/screen/words.js +1 -1
- package/dist/strings/catalogue.d.ts +4 -2
- package/dist/strings/catalogue.js +1 -1
- package/dist/strings/index.d.ts +1 -1
- 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 +1 -1
- package/dist/chunk-3M3A3DN2.js +0 -4
- package/dist/chunk-4MXFKJUY.js +0 -1
- package/dist/chunk-6FY3PZS3.js +0 -1
- package/dist/chunk-A7ZJII7O.js +0 -1
- package/dist/chunk-AJBJ74ME.js +0 -1
- package/dist/chunk-AKZWUV5Z.js +0 -1
- package/dist/chunk-F6CCTEIX.js +0 -1
- package/dist/chunk-FUDHI5I4.js +0 -1
- package/dist/chunk-GENAF3P6.js +0 -1
- package/dist/chunk-HDKTR5TZ.js +0 -62
- package/dist/chunk-HMX55DYT.js +0 -1
- package/dist/chunk-HWW4XJOH.js +0 -1
- package/dist/chunk-JUQ6YJCG.js +0 -1
- package/dist/chunk-NBJ2YY6Y.js +0 -4
- package/dist/chunk-OORDMLL4.js +0 -5
- package/dist/chunk-Q2HPBMG5.js +0 -1
- package/dist/chunk-Q3SQBNJB.js +0 -1
- package/dist/chunk-R5ZVNJLJ.js +0 -2
- package/dist/chunk-SERF2FAU.js +0 -1
- package/dist/chunk-VV5ADNBR.js +0 -1
- package/dist/chunk-YJXEHK6I.js +0 -2
- package/dist/chunk-ZWK3CBRU.js +0 -1
- package/dist/chunk-ZZ7VLIHQ.js +0 -1
package/dist/screen/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { DocumentScreen, default as ScreenMount } from './components/ScreenMount.js';
|
|
2
2
|
export { default as ScreenStoreProvider } from './components/ScreenStoreProvider.js';
|
|
3
|
-
export { NodeDefaults, SELECTION_MODE, ScreenBlockLook, ScreenBlockRules, ScreenBridges, ScreenCanvas, ScreenDevices, ScreenDocumentOps, ScreenInspector, ScreenInspectorMode, ScreenInspectorPanelProps, ScreenLeftPanel, ScreenLeftView, ScreenLeftViewFrame, ScreenLeftViewRules, ScreenNewNode, ScreenNode, ScreenNodeLevel, ScreenNodeMaker, ScreenPartMode, ScreenParts, ScreenPartsProvider, ScreenPinnedNodes, ScreenRailItem, ScreenTree, ScreenTreeFolds, ScreenTreeRows, sameInspectorMode, useScreenBlockLook, useScreenBlockRules, useScreenBridges, useScreenCanvasFrame, useScreenDevices, useScreenDocumentPass, useScreenInspectorPanel, useScreenLeftView, useScreenOwnerName, useScreenParts, useScreenPinned, useScreenSaveSwitch, useStandaloneScreenBridges } from './lib/screen-parts.js';
|
|
4
|
-
export { EFFICIENT_BACKEND, EaselSession, SessionBackend, SessionBlocks, activateEaselSession, backendOf, createEaselSession, currentEaselSession, deactivateEaselSession, efficientClientOpen, isEfficientBackend, provideDefaultBackend, resetAmbientEaselSession, sessionRegistry, setSessionBridgedSite, setSessionDocumentSite } from './lib/session.js';
|
|
3
|
+
export { NodeDefaults, SELECTION_MODE, ScreenAdd, ScreenBlockLook, ScreenBlockRules, ScreenBridges, ScreenCanvas, ScreenCanvasDrag, ScreenCanvasDragContext, ScreenCanvasHeadProps, ScreenCanvasTargetProvider, ScreenDevices, ScreenDocumentOps, ScreenDragItem, ScreenInspector, ScreenInspectorMode, ScreenInspectorPanelProps, ScreenLeftPanel, ScreenLeftView, ScreenLeftViewFrame, ScreenLeftViewRules, ScreenMenuRows, ScreenNewNode, ScreenNode, ScreenNodeActions, ScreenNodeLevel, ScreenNodeMaker, ScreenPartMode, ScreenParts, ScreenPartsProvider, ScreenPinnedBand, ScreenPinnedNodes, ScreenRailItem, ScreenSelection, ScreenSelector, ScreenSlot, ScreenSlotAction, ScreenSlotMode, ScreenStyleClipboard, ScreenStyleDocument, ScreenStylePastePlan, ScreenTree, ScreenTreeFolds, ScreenTreeRows, isPinnedFirst, isPinnedLast, isSlotMode, sameInspectorMode, screenSlotsOf, useScreenAdd, useScreenBlockLook, useScreenBlockRules, useScreenBridges, useScreenCanvasDrag, useScreenCanvasFrame, useScreenCanvasHead, useScreenCanvasTarget, useScreenDevices, useScreenDocumentLabel, useScreenDocumentPass, useScreenInspectorPanel, useScreenLeftView, useScreenNodeKeys, useScreenNotify, useScreenOwnerName, useScreenParts, useScreenPickFollowsSelection, useScreenPinned, useScreenSaveSwitch, useScreenStyleClipboard, useStandaloneScreenBridges } from './lib/screen-parts.js';
|
|
4
|
+
export { DefaultBackend, EFFICIENT_BACKEND, EaselSession, SessionBackend, SessionBlocks, activateEaselSession, backendOf, createEaselSession, currentEaselSession, deactivateEaselSession, efficientClientOpen, isEfficientBackend, provideDefaultBackend, resetAmbientEaselSession, sessionRegistry, setSessionBridgedSite, setSessionDocumentSite } from './lib/session.js';
|
|
5
5
|
export { EaselSessionProvider, useEaselSession } from './lib/session-context.js';
|
|
6
|
-
export { A as AnyDocumentAddressing, D as DETACHED_EASEL_HOST, a as DocumentAddressing, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, N as NO_DOCUMENT_ADDRESSING, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost } from '../host-
|
|
6
|
+
export { A as AnyDocumentAddressing, D as DETACHED_EASEL_HOST, a as DocumentAddressing, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, N as NO_DOCUMENT_ADDRESSING, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost, j as useHostEscape } from '../host-BQ_b9Qzk.js';
|
|
7
7
|
export { EaselCapabilities, EaselDocument, EaselDocumentAdapter, EaselPageRow, SiteRecord, SiteRecordPatch, WebsiteEditLock } from './lib/document-contract.js';
|
|
8
8
|
import 'react';
|
|
9
9
|
import '../blocks/index.js';
|
|
@@ -12,20 +12,31 @@ import '../data/index.js';
|
|
|
12
12
|
import '../types-41704JE4.js';
|
|
13
13
|
import '../resolve-D68pb3Bx.js';
|
|
14
14
|
import '../plan-DChbUXdS.js';
|
|
15
|
+
import '../watch-BTYOJpQU.js';
|
|
15
16
|
import '../types-CqY85foL.js';
|
|
16
17
|
import '../types-DWS-s9z-.js';
|
|
17
18
|
import '../wordFit-D4S36PvB.js';
|
|
18
19
|
import '../edit-lock/index.js';
|
|
19
20
|
import '../panelWidths-D9hTLR25.js';
|
|
21
|
+
import '../CanvasDragLayer-zgYT1xwY.js';
|
|
22
|
+
import '../session-DSQFmIvx.js';
|
|
23
|
+
import '../words-BDignMl_.js';
|
|
24
|
+
import '../types-Djdq6Xkd.js';
|
|
25
|
+
import '../style-clipboard/index.js';
|
|
26
|
+
import '../words-CnnHb9jo.js';
|
|
27
|
+
import '../types-DJDBtdB2.js';
|
|
28
|
+
import '../words-DgHcY5qB.js';
|
|
29
|
+
import './components/AddSidePanel.js';
|
|
30
|
+
import './lib/section-template-types.js';
|
|
31
|
+
import './lib/puck/content-tree.js';
|
|
32
|
+
import './lib/puck/block-choice.js';
|
|
20
33
|
import './lib/host-chrome.js';
|
|
21
34
|
import './lib/links/link-filters.js';
|
|
22
35
|
import '../LinkPicker-W2Rtxetz.js';
|
|
23
36
|
import './lib/puck/add-target-types.js';
|
|
24
|
-
import './lib/puck/block-choice.js';
|
|
25
37
|
import './lib/puck/slot-section-spec.js';
|
|
38
|
+
import './lib/backend-error.js';
|
|
26
39
|
import './lib/document-hooks.js';
|
|
27
|
-
import './lib/section-template-types.js';
|
|
28
|
-
import './lib/puck/content-tree.js';
|
|
29
40
|
import './lib/document-switch.js';
|
|
30
41
|
import '../engine-DBxp_v6B.js';
|
|
31
42
|
import './lib/admin-bridge.js';
|
package/dist/screen/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunk-GZO72N3Q.js";export{DocumentScreen,ScreenMount}from"../chunk-
|
|
1
|
+
import"../chunk-GZO72N3Q.js";export{DocumentScreen,ScreenMount}from"../chunk-RQHC4TD6.js";import"../chunk-GXQCZJOP.js";export{ScreenStoreProvider}from"../chunk-SARZN4M7.js";import"../chunk-4XQUWGIV.js";import"../chunk-26OOWIJJ.js";import"../chunk-SQTY6CJD.js";import"../chunk-FGNR22NY.js";import"../chunk-ZE7I3PLX.js";import"../chunk-IE4GFYKO.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-VSOP4GUM.js";import"../chunk-KCBEE2MC.js";import"../chunk-5MZ3RNQQ.js";import"../chunk-ZTTWFAAC.js";import"../chunk-YN4KND5F.js";import"../chunk-TLZG2FCF.js";import"../chunk-IYT6NN2J.js";import"../chunk-7FBDZTUD.js";import"../chunk-V4LF7D4F.js";import"../chunk-BSPCSC45.js";import"../chunk-I54UCYOU.js";import"../chunk-GOTN2KY4.js";import"../chunk-R5L2E7JX.js";import"../chunk-7V5WZ46F.js";import"../chunk-S4AWJX4Q.js";import"../chunk-ERR437B5.js";import"../chunk-KG7RJWOK.js";import"../chunk-GMCZXMOV.js";export{NO_DOCUMENT_ADDRESSING}from"../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-N7VRF7PR.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";export{EaselSessionProvider,useEaselSession}from"../chunk-O7Q4DDJT.js";export{EFFICIENT_BACKEND,activateEaselSession,backendOf,createEaselSession,currentEaselSession,deactivateEaselSession,efficientClientOpen,isEfficientBackend,provideDefaultBackend,resetAmbientEaselSession,sessionRegistry,setSessionBridgedSite,setSessionDocumentSite}from"../chunk-RSCMJIWS.js";import"../chunk-HQ4VVRIC.js";import"../chunk-NYKIQJT2.js";export{SELECTION_MODE,ScreenCanvasTargetProvider,ScreenPartsProvider,isPinnedFirst,isPinnedLast,isSlotMode,sameInspectorMode,screenSlotsOf,useScreenAdd,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasDrag,useScreenCanvasFrame,useScreenCanvasHead,useScreenCanvasTarget,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenNodeKeys,useScreenNotify,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useScreenStyleClipboard,useStandaloneScreenBridges}from"../chunk-VSHV6KJQ.js";import"../chunk-PLVEGYK6.js";import"../chunk-R6WTQWAC.js";export{DETACHED_EASEL_HOST,EaselHostContext,EaselHostProvider,createEaselHost,useEaselHost,useHostEscape}from"../chunk-U3JP4VGF.js";import"../chunk-6WY6ZXJG.js";import"../chunk-PQXIFBDY.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-RW4XBUUW.js";import"../chunk-KTVH2ZRL.js";import"../chunk-2LK54I4E.js";import"../chunk-WK3AFPXY.js";import"../chunk-D2BCHTQR.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-P6O363EE.js";import"../chunk-FPOKPNO4.js";import"../chunk-MFIRYGHW.js";import"../chunk-BZ5ASXOL.js";import"../chunk-TTJ54QGG.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";
|
|
@@ -6,6 +6,8 @@ import '../../data/index.js';
|
|
|
6
6
|
import '../../types-41704JE4.js';
|
|
7
7
|
import '../../resolve-D68pb3Bx.js';
|
|
8
8
|
import '../../plan-DChbUXdS.js';
|
|
9
|
+
import './backend-error.js';
|
|
10
|
+
import '../../edit-lock/index.js';
|
|
9
11
|
import './host-chrome.js';
|
|
10
12
|
import './links/link-filters.js';
|
|
11
13
|
import '../../LinkPicker-W2Rtxetz.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{NO_BRIDGED_CAPABILITIES,applyAuthGrant,useAdminBridge}from"../../chunk-
|
|
1
|
+
export{NO_BRIDGED_CAPABILITIES,applyAuthGrant,useAdminBridge}from"../../chunk-3P6AMTOS.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-U3JP4VGF.js";
|
|
@@ -79,6 +79,8 @@ interface HostFailure {
|
|
|
79
79
|
data: unknown;
|
|
80
80
|
message: string;
|
|
81
81
|
}
|
|
82
|
+
/** How a host's client errors read: the page's (`provideHostFailures`), or
|
|
83
|
+
* one session's own (`createEaselSession({ hostFailures })`, 0.103.0). */
|
|
82
84
|
interface HostFailures {
|
|
83
85
|
/** A host client error as a {@link HostFailure}; null for anything else. */
|
|
84
86
|
read(err: unknown): HostFailure | null;
|
|
@@ -90,17 +92,30 @@ interface HostFailures {
|
|
|
90
92
|
slug: string;
|
|
91
93
|
}): string | null;
|
|
92
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* WHOSE READING a failure gets (0.103.0): the editor's session it happened in,
|
|
97
|
+
* when that session brought its own (`EaselSession.hostFailures`), else the
|
|
98
|
+
* page's. Every reader below takes one, optionally: two hosts mounted in one
|
|
99
|
+
* page (the website editor and the campaign designer in the admin) each read
|
|
100
|
+
* their own client's errors, and neither has to replace the other's page-wide
|
|
101
|
+
* registration to do it. Left out, or a session that brought none, it is the
|
|
102
|
+
* page's, as it always was.
|
|
103
|
+
*/
|
|
104
|
+
type FailureScope = {
|
|
105
|
+
readonly hostFailures?: HostFailures | null;
|
|
106
|
+
} | null | undefined;
|
|
93
107
|
/** Tell the editor how to read the host client's own errors. Called once, by
|
|
94
|
-
* the host's backend module as it loads (EFFICIENT's: `lib/efficient-backend`).
|
|
108
|
+
* the host's backend module as it loads (EFFICIENT's: `lib/efficient-backend`).
|
|
109
|
+
* It is the page's: a session's own (`hostFailures`) is read in its place. */
|
|
95
110
|
declare function provideHostFailures(failures: HostFailures): void;
|
|
96
111
|
/** `err` as the host's client failure it is, or null when it is not one (or no
|
|
97
112
|
* host has said how to read its errors). */
|
|
98
|
-
declare function readHostFailure(err: unknown): HostFailure | null;
|
|
113
|
+
declare function readHostFailure(err: unknown, scope?: FailureScope): HostFailure | null;
|
|
99
114
|
/** The host's sentence for a document it refused to open, or null. */
|
|
100
115
|
declare function hostLoadRefusalOf(err: unknown, document: {
|
|
101
116
|
slug: string;
|
|
102
|
-
}): string | null;
|
|
117
|
+
}, scope?: FailureScope): string | null;
|
|
103
118
|
/** The host's own "server cannot be reached" sentence, or a plain one. */
|
|
104
|
-
declare function hostUnreachableMessage(): string;
|
|
119
|
+
declare function hostUnreachableMessage(scope?: FailureScope): string;
|
|
105
120
|
|
|
106
|
-
export { type HostFailure, STATUS_UNREACHABLE, WebsiteBackendError, type WebsiteBackendErrorKind, hostLoadRefusalOf, hostUnreachableMessage, isBackendError, provideHostFailures, readHostFailure };
|
|
121
|
+
export { type FailureScope, type HostFailure, type HostFailures, STATUS_UNREACHABLE, WebsiteBackendError, type WebsiteBackendErrorKind, hostLoadRefusalOf, hostUnreachableMessage, isBackendError, provideHostFailures, readHostFailure };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{STATUS_UNREACHABLE,WebsiteBackendError,hostLoadRefusalOf,hostUnreachableMessage,isBackendError,provideHostFailures,readHostFailure}from"../../chunk-
|
|
1
|
+
export{STATUS_UNREACHABLE,WebsiteBackendError,hostLoadRefusalOf,hostUnreachableMessage,isBackendError,provideHostFailures,readHostFailure}from"../../chunk-KCOBHPN6.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AnyDocumentAddressing, a as DocumentAddressing, N as NO_DOCUMENT_ADDRESSING } from '../../host-
|
|
1
|
+
export { A as AnyDocumentAddressing, a as DocumentAddressing, N as NO_DOCUMENT_ADDRESSING } from '../../host-BQ_b9Qzk.js';
|
|
2
2
|
import './document-contract.js';
|
|
3
3
|
import './session.js';
|
|
4
4
|
import 'react';
|
|
@@ -12,6 +12,7 @@ import './document-switch.js';
|
|
|
12
12
|
import '../../engine-DBxp_v6B.js';
|
|
13
13
|
import '../../edit-lock/index.js';
|
|
14
14
|
import './admin-bridge.js';
|
|
15
|
+
import './backend-error.js';
|
|
15
16
|
import './host-chrome.js';
|
|
16
17
|
import './links/link-filters.js';
|
|
17
18
|
import '../../LinkPicker-W2Rtxetz.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{resetForDocumentSwitch,saveStatusForNewDocument,saveStatusOf}from"../../chunk-
|
|
1
|
+
export{resetForDocumentSwitch,saveStatusForNewDocument,saveStatusOf}from"../../chunk-HNKB2ZYR.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EditLockFailure } from '../../edit-lock/index.js';
|
|
2
|
+
import { FailureScope } from './backend-error.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* What a failed editor call WAS, as `{ status, data }` — the shape the shared
|
|
@@ -40,7 +41,10 @@ import { EditLockFailure } from '../../edit-lock/index.js';
|
|
|
40
41
|
* (lib/efficient-backend), so a raw body and a translated kind read alike.
|
|
41
42
|
*/
|
|
42
43
|
declare const PAGE_CONFLICT_CODE = "page_changed_elsewhere";
|
|
43
|
-
|
|
44
|
+
/** `scope`: whose reading of a host's client error it is — the editor's
|
|
45
|
+
* session when it brought its own (lib/backend-error `FailureScope`), else
|
|
46
|
+
* the page's. */
|
|
47
|
+
declare function readEaselFailure(err: unknown, scope?: FailureScope): EditLockFailure | null;
|
|
44
48
|
/**
|
|
45
49
|
* A call was refused because the SESSION is no longer authorised — the one
|
|
46
50
|
* failure the editor answers by asking its host for a fresh sign-in.
|
|
@@ -49,6 +53,6 @@ declare function readEaselFailure(err: unknown): EditLockFailure | null;
|
|
|
49
53
|
* `unauthorized` too, and a 403 has never been a reason to re-authenticate. A
|
|
50
54
|
* backend that speaks only in kinds says `unauthorized`.
|
|
51
55
|
*/
|
|
52
|
-
declare function isExpiredSession(err: unknown): boolean;
|
|
56
|
+
declare function isExpiredSession(err: unknown, scope?: FailureScope): boolean;
|
|
53
57
|
|
|
54
58
|
export { PAGE_CONFLICT_CODE, isExpiredSession, readEaselFailure };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{PAGE_CONFLICT_CODE,isExpiredSession,readEaselFailure}from"../../chunk-
|
|
1
|
+
export{PAGE_CONFLICT_CODE,isExpiredSession,readEaselFailure}from"../../chunk-CLOS6SSX.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{routeSharedHostMessage}from"../../chunk-
|
|
1
|
+
export{routeSharedHostMessage}from"../../chunk-S4AWJX4Q.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'react';
|
|
2
|
-
export { D as DETACHED_EASEL_HOST, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost } from '../../host-
|
|
2
|
+
export { D as DETACHED_EASEL_HOST, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost, j as useHostEscape } from '../../host-BQ_b9Qzk.js';
|
|
3
3
|
import '../../blocks/index.js';
|
|
4
4
|
import '../../types-E3HrTPg2.js';
|
|
5
5
|
import '../../data/index.js';
|
|
@@ -8,6 +8,8 @@ import '../../resolve-D68pb3Bx.js';
|
|
|
8
8
|
import '../../plan-DChbUXdS.js';
|
|
9
9
|
import './document-contract.js';
|
|
10
10
|
import './session.js';
|
|
11
|
+
import './backend-error.js';
|
|
12
|
+
import '../../edit-lock/index.js';
|
|
11
13
|
import './host-chrome.js';
|
|
12
14
|
import './links/link-filters.js';
|
|
13
15
|
import '../../LinkPicker-W2Rtxetz.js';
|
|
@@ -16,5 +18,4 @@ import './section-template-types.js';
|
|
|
16
18
|
import './puck/content-tree.js';
|
|
17
19
|
import './document-switch.js';
|
|
18
20
|
import '../../engine-DBxp_v6B.js';
|
|
19
|
-
import '../../edit-lock/index.js';
|
|
20
21
|
import './admin-bridge.js';
|
package/dist/screen/lib/host.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DETACHED_EASEL_HOST,EaselHostContext,EaselHostProvider,createEaselHost,useEaselHost}from"../../chunk-
|
|
1
|
+
export{DETACHED_EASEL_HOST,EaselHostContext,EaselHostProvider,createEaselHost,useEaselHost,useHostEscape}from"../../chunk-U3JP4VGF.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{useEaselKeyTarget,useEaselUndoKeys}from"../../chunk-
|
|
1
|
+
export{useEaselKeyTarget,useEaselUndoKeys}from"../../chunk-VSOP4GUM.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-P67FP7PG.js";import"../../chunk-AELNNAFM.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { FailureScope } from './backend-error.js';
|
|
2
|
+
import '../../edit-lock/index.js';
|
|
3
|
+
|
|
1
4
|
/** Say what stopped the editor loading a document, in words an operator can
|
|
2
5
|
* hand to a developer.
|
|
3
6
|
*
|
|
@@ -13,8 +16,11 @@
|
|
|
13
16
|
* mismatch — and the one thing anybody could report was the one thing that
|
|
14
17
|
* narrowed nothing down. It lives in its own module, apart from the React
|
|
15
18
|
* provider that shows it, so the wording is pinned by a test rather than
|
|
16
|
-
* re-derived by whoever next reads the catch block.
|
|
17
|
-
|
|
19
|
+
* re-derived by whoever next reads the catch block.
|
|
20
|
+
*
|
|
21
|
+
* `scope` is whose reading of a host's client error it is (lib/backend-error
|
|
22
|
+
* `FailureScope`): the editor's session, when it brought its own. */
|
|
23
|
+
declare function describeLoadFailure(e: unknown, scope?: FailureScope): string;
|
|
18
24
|
/**
|
|
19
25
|
* The host's own sentence for a load it REFUSED, or null when this failure is
|
|
20
26
|
* not one of those. EFFICIENT has one: a slug that more than one website owns,
|
|
@@ -24,6 +30,6 @@ declare function describeLoadFailure(e: unknown): string;
|
|
|
24
30
|
*/
|
|
25
31
|
declare function hostLoadRefusal(e: unknown, document: {
|
|
26
32
|
slug: string;
|
|
27
|
-
}): string | null;
|
|
33
|
+
}, scope?: FailureScope): string | null;
|
|
28
34
|
|
|
29
35
|
export { describeLoadFailure, hostLoadRefusal };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{describeLoadFailure,hostLoadRefusal}from"../../chunk-
|
|
1
|
+
export{describeLoadFailure,hostLoadRefusal}from"../../chunk-ERR437B5.js";import"../../chunk-KCOBHPN6.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ComponentType, ReactNode } from 'react';
|
|
3
|
-
import { H as HostPickedMedia } from '../../host-
|
|
3
|
+
import { H as HostPickedMedia, E as EaselHost } from '../../host-BQ_b9Qzk.js';
|
|
4
4
|
import '../../blocks/index.js';
|
|
5
5
|
import '../../types-E3HrTPg2.js';
|
|
6
6
|
import '../../data/index.js';
|
|
@@ -9,6 +9,8 @@ import '../../resolve-D68pb3Bx.js';
|
|
|
9
9
|
import '../../plan-DChbUXdS.js';
|
|
10
10
|
import './document-contract.js';
|
|
11
11
|
import './session.js';
|
|
12
|
+
import './backend-error.js';
|
|
13
|
+
import '../../edit-lock/index.js';
|
|
12
14
|
import './host-chrome.js';
|
|
13
15
|
import './links/link-filters.js';
|
|
14
16
|
import '../../LinkPicker-W2Rtxetz.js';
|
|
@@ -17,7 +19,6 @@ import './section-template-types.js';
|
|
|
17
19
|
import './puck/content-tree.js';
|
|
18
20
|
import './document-switch.js';
|
|
19
21
|
import '../../engine-DBxp_v6B.js';
|
|
20
|
-
import '../../edit-lock/index.js';
|
|
21
22
|
import './admin-bridge.js';
|
|
22
23
|
|
|
23
24
|
/**
|
|
@@ -40,13 +41,23 @@ import './admin-bridge.js';
|
|
|
40
41
|
* • BROWSING — the rail opens the "media" left view. The host's panel shows
|
|
41
42
|
* the library to look through, upload to, tidy. `pick` is null.
|
|
42
43
|
* • PICKING — a field calls `requestMediaPick` (lib/media-picker). With
|
|
43
|
-
* a panel here, that becomes
|
|
44
|
-
* panel over the left panel in pick mode, the host's panel
|
|
45
|
-
* and the field gets the media. Leaving pick mode any other
|
|
46
|
-
* panel's Cancel, a rail button, closing the panel) settles it
|
|
44
|
+
* a panel here, that becomes a request to THIS provider's pick store: the
|
|
45
|
+
* chrome lays the panel over the left panel in pick mode, the host's panel
|
|
46
|
+
* calls `onPick`, and the field gets the media. Leaving pick mode any other
|
|
47
|
+
* way (the panel's Cancel, a rail button, closing the panel) settles it
|
|
48
|
+
* `null`.
|
|
47
49
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
+
* ONE PENDING PICK PER PROVIDER (0.103.0). Until then the pending pick was
|
|
51
|
+
* module state, one for the page — right while one editor is mounted, and
|
|
52
|
+
* wrong the moment two are (the admin's website editor and campaign designer):
|
|
53
|
+
* a field in one laid the other's panel over its own left panel too, and a
|
|
54
|
+
* Cancel in either settled the other's field. Each provider now keeps its own
|
|
55
|
+
* {@link MediaPickStore}; the chrome under it reads that one, and a field's
|
|
56
|
+
* request finds it by the HOST the field asks through (`requestMediaPick(host,
|
|
57
|
+
* …)` — one host per mounted editor, lib/host), so no prop or context has to
|
|
58
|
+
* reach the field's click handler. A request whose host no provider sits under
|
|
59
|
+
* goes to the provider mounted last, which is exactly what the module state
|
|
60
|
+
* answered, so one mounted editor behaves as it always did.
|
|
50
61
|
*/
|
|
51
62
|
/** What a field asked the panel for. `file` is a file dropped straight on the
|
|
52
63
|
* field: the host uploads it and picks it without waiting for a click. */
|
|
@@ -57,6 +68,14 @@ interface MediaPickRequest {
|
|
|
57
68
|
/** The field's label, e.g. "Background image". */
|
|
58
69
|
title: string;
|
|
59
70
|
file?: File | null;
|
|
71
|
+
/**
|
|
72
|
+
* The field's own terms for its host's panel (0.103.0), handed to it
|
|
73
|
+
* untouched — the campaign designer's logo field asks for `{ bakeableOnly:
|
|
74
|
+
* true }`. The screen reads none of it. Absent when the field gave none;
|
|
75
|
+
* the window's `open-media-picker` message never carries it (its shape is
|
|
76
|
+
* the website's protocol).
|
|
77
|
+
*/
|
|
78
|
+
options?: Record<string, unknown>;
|
|
60
79
|
}
|
|
61
80
|
/** The props the host's panel component is drawn with. */
|
|
62
81
|
interface MediaPanelProps {
|
|
@@ -67,28 +86,73 @@ interface MediaPanelProps {
|
|
|
67
86
|
}
|
|
68
87
|
/** The host's media library, as a component the editor draws in its panel. */
|
|
69
88
|
type MediaPanelComponent = ComponentType<MediaPanelProps>;
|
|
89
|
+
/**
|
|
90
|
+
* One editor's pending pick (0.103.0): what its panel is choosing for, and who
|
|
91
|
+
* waits on the answer. A {@link MediaPanelProvider} makes one for itself.
|
|
92
|
+
*/
|
|
93
|
+
interface MediaPickStore {
|
|
94
|
+
/** The field the panel is choosing for, or null while nothing is. */
|
|
95
|
+
current(): MediaPickRequest | null;
|
|
96
|
+
/**
|
|
97
|
+
* Open pick mode for one field; resolves with the media chosen, or null. A
|
|
98
|
+
* second field asking before the first is answered takes the panel over,
|
|
99
|
+
* and the first resolves null — one panel answers one field.
|
|
100
|
+
*/
|
|
101
|
+
request(request: MediaPickRequest): Promise<HostPickedMedia | null>;
|
|
102
|
+
/** Answer the field the panel is choosing for (`media` null: no choice). A
|
|
103
|
+
* stale id — an answer for a request already superseded — does nothing. */
|
|
104
|
+
settle(requestId: string, media: HostPickedMedia | null): void;
|
|
105
|
+
/** Leave pick mode without a choice, whatever is being chosen. */
|
|
106
|
+
cancel(): void;
|
|
107
|
+
subscribe(listener: () => void): () => void;
|
|
108
|
+
}
|
|
109
|
+
declare function createMediaPickStore(): MediaPickStore;
|
|
70
110
|
/** Supply the host's panel to the editor below. `panel` null keeps the old
|
|
71
|
-
* window: fields ask the host with `open-media-picker`.
|
|
111
|
+
* window: fields ask the host with `open-media-picker`. Sit it under the
|
|
112
|
+
* editor's `EaselHostProvider`, as the website's frame does: that host is
|
|
113
|
+
* how a field's request finds this provider among several. */
|
|
72
114
|
declare function MediaPanelProvider({ panel, children }: {
|
|
73
115
|
panel: MediaPanelComponent | null;
|
|
74
116
|
children: ReactNode;
|
|
75
117
|
}): react.JSX.Element;
|
|
76
118
|
/** The host's panel for the editor this renders in, or null. */
|
|
77
119
|
declare function useMediaPanel(): MediaPanelComponent | null;
|
|
78
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* The pick store a field's request through `host` goes to, or null when that
|
|
122
|
+
* editor has no panel and the host is asked with the window's message: the
|
|
123
|
+
* provider under that host (the last one, if two share it), else the page's
|
|
124
|
+
* provider, as the one module-wide store answered before 0.103.0.
|
|
125
|
+
*/
|
|
126
|
+
declare function mediaPickStoreFor(host: EaselHost): MediaPickStore | null;
|
|
127
|
+
/** Whether a field's request goes to the panel rather than to the host — of
|
|
128
|
+
* the page's provider, the one mounted last. */
|
|
79
129
|
declare function hasMediaPanel(): boolean;
|
|
80
130
|
/**
|
|
81
|
-
* Open the panel in pick mode for one
|
|
82
|
-
*
|
|
83
|
-
*
|
|
131
|
+
* Open the page's panel (the provider mounted last) in pick mode for one
|
|
132
|
+
* field; resolves with the media chosen, or null. A field asks through
|
|
133
|
+
* `requestMediaPick`, which finds the panel of ITS editor instead.
|
|
84
134
|
*/
|
|
85
135
|
declare function requestPanelPick(request: MediaPickRequest): Promise<HostPickedMedia | null>;
|
|
86
|
-
/** Answer the field
|
|
136
|
+
/** Answer the field a panel is choosing for (`media` null: no choice), in
|
|
137
|
+
* whichever editor asked: a request id names one field of one editor. A
|
|
87
138
|
* stale id — an answer for a request already superseded — does nothing. */
|
|
88
139
|
declare function settlePanelPick(requestId: string, media: HostPickedMedia | null): void;
|
|
89
|
-
/** Leave pick mode without a choice, whatever is being chosen.
|
|
140
|
+
/** Leave the page's pick mode without a choice, whatever is being chosen.
|
|
141
|
+
* Under a provider, `useCancelPanelPick` leaves that editor's. */
|
|
90
142
|
declare function cancelPanelPick(): void;
|
|
91
|
-
/** The field the panel is choosing for, or null while nothing is
|
|
143
|
+
/** The field the panel is choosing for, or null while nothing is — in the
|
|
144
|
+
* editor this renders in. */
|
|
92
145
|
declare function usePanelPick(): MediaPickRequest | null;
|
|
146
|
+
/** Leave THIS editor's pick mode without a choice (0.103.0): a stable
|
|
147
|
+
* function, for the chrome's Escape, rail and panel-closed paths. */
|
|
148
|
+
declare function useCancelPanelPick(): () => void;
|
|
149
|
+
/**
|
|
150
|
+
* A change of selection leaves pick mode (0.103.0, `ScreenParts
|
|
151
|
+
* .pickFollowsSelection`): with `follows`, the field still waiting when
|
|
152
|
+
* `selection` moves is settled with null, as a Cancel would — the field that
|
|
153
|
+
* asked belongs to the block that is no longer selected. Without it, nothing:
|
|
154
|
+
* a pick outlives a selection, as it always has.
|
|
155
|
+
*/
|
|
156
|
+
declare function usePickFollowsSelection(follows: boolean, selection: unknown): void;
|
|
93
157
|
|
|
94
|
-
export { type MediaPanelComponent, type MediaPanelProps, MediaPanelProvider, type MediaPickRequest, cancelPanelPick, hasMediaPanel, requestPanelPick, settlePanelPick, useMediaPanel, usePanelPick };
|
|
158
|
+
export { type MediaPanelComponent, type MediaPanelProps, MediaPanelProvider, type MediaPickRequest, type MediaPickStore, cancelPanelPick, createMediaPickStore, hasMediaPanel, mediaPickStoreFor, requestPanelPick, settlePanelPick, useCancelPanelPick, useMediaPanel, usePanelPick, usePickFollowsSelection };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{MediaPanelProvider,cancelPanelPick,hasMediaPanel,requestPanelPick,settlePanelPick,useMediaPanel,usePanelPick}from"../../chunk-
|
|
1
|
+
export{MediaPanelProvider,cancelPanelPick,createMediaPickStore,hasMediaPanel,mediaPickStoreFor,requestPanelPick,settlePanelPick,useCancelPanelPick,useMediaPanel,usePanelPick,usePickFollowsSelection}from"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EaselHost } from '../../host-
|
|
1
|
+
import { E as EaselHost } from '../../host-BQ_b9Qzk.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import '../../blocks/index.js';
|
|
4
4
|
import '../../types-E3HrTPg2.js';
|
|
@@ -8,6 +8,8 @@ import '../../resolve-D68pb3Bx.js';
|
|
|
8
8
|
import '../../plan-DChbUXdS.js';
|
|
9
9
|
import './document-contract.js';
|
|
10
10
|
import './session.js';
|
|
11
|
+
import './backend-error.js';
|
|
12
|
+
import '../../edit-lock/index.js';
|
|
11
13
|
import './host-chrome.js';
|
|
12
14
|
import './links/link-filters.js';
|
|
13
15
|
import '../../LinkPicker-W2Rtxetz.js';
|
|
@@ -16,7 +18,6 @@ import './section-template-types.js';
|
|
|
16
18
|
import './puck/content-tree.js';
|
|
17
19
|
import './document-switch.js';
|
|
18
20
|
import '../../engine-DBxp_v6B.js';
|
|
19
|
-
import '../../edit-lock/index.js';
|
|
20
21
|
import './admin-bridge.js';
|
|
21
22
|
|
|
22
23
|
/**
|
|
@@ -28,6 +29,10 @@ import './admin-bridge.js';
|
|
|
28
29
|
* • A host that supplies a MEDIA PANEL (lib/media-panel — the admin
|
|
29
30
|
* portal, from efficient-web 0.2.0) answers in the editor's own left panel:
|
|
30
31
|
* the request opens that panel in pick mode, and nothing leaves the editor.
|
|
32
|
+
* The panel is the one of the editor the field asks through: `host` is
|
|
33
|
+
* that editor's (one per mounted editor), and the provider under it keeps
|
|
34
|
+
* its own pending pick (0.103.0), so two editors mounted in one page never
|
|
35
|
+
* answer each other's fields.
|
|
31
36
|
* • Any other host is asked to open its picker window, over the
|
|
32
37
|
* request/response protocol below. The picker UI lives in the host, so
|
|
33
38
|
* this module owns the EDITOR half:
|
|
@@ -54,11 +59,18 @@ interface PickedMedia {
|
|
|
54
59
|
* Choose media for a slot; resolves with the chosen media, or null if the user
|
|
55
60
|
* cancelled (or there's no host to ask). `file` is a file dropped straight on
|
|
56
61
|
* the slot — the host uploads it and picks it immediately.
|
|
62
|
+
*
|
|
63
|
+
* `options` (0.103.0) are the field's own terms for its host's PANEL, handed to
|
|
64
|
+
* it untouched on the request (`MediaPickRequest.options`) — the campaign
|
|
65
|
+
* designer's logo field asks for `{ bakeableOnly: true }`. The window's
|
|
66
|
+
* `open-media-picker` message carries none: its shape is the website's
|
|
67
|
+
* protocol, mirrored by the storefront.
|
|
57
68
|
*/
|
|
58
69
|
declare function requestMediaPick(host: EaselHost, opts: {
|
|
59
70
|
accept: string;
|
|
60
71
|
title: string;
|
|
61
72
|
file?: File | null;
|
|
73
|
+
options?: Record<string, unknown>;
|
|
62
74
|
}): Promise<PickedMedia | null>;
|
|
63
75
|
/** Settle a pending pick (called by the central message listener on the admin's
|
|
64
76
|
* reply). Unknown ids — a stale reply, or a pick meant for another editor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{requestMediaPick,resolveMediaPick}from"../../chunk-
|
|
1
|
+
export{requestMediaPick,resolveMediaPick}from"../../chunk-KG7RJWOK.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";
|
|
@@ -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-GMCZXMOV.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-THWO5YVZ.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
|
|
@@ -46,6 +65,13 @@ type SlotChild = {
|
|
|
46
65
|
* arrays rather than `data.zones` (which stays empty for slots).
|
|
47
66
|
*/
|
|
48
67
|
declare function childSlotsOf(config: SlotConfigView, item: TreeItem): SlotChild[];
|
|
68
|
+
/**
|
|
69
|
+
* The children of ONE slot of `item`, addressed as {@link childSlotsOf}
|
|
70
|
+
* addresses them (0.105.0): what the Layers tree draws under a slot it draws
|
|
71
|
+
* as a row of its own (`ScreenBlockRules.slotsOf`). A slot the node holds
|
|
72
|
+
* nothing in, or no array in, has none.
|
|
73
|
+
*/
|
|
74
|
+
declare function slotChildrenIn(item: TreeItem, slot: string): SlotChild[];
|
|
49
75
|
/**
|
|
50
76
|
* WHERE a node sits in the document — the node itself, the zone key its own
|
|
51
77
|
* array is addressed by, and its index in that array. Exactly the three
|
|
@@ -193,4 +219,4 @@ declare function missingPinnedTypes(live: ReadonlyArray<{
|
|
|
193
219
|
type?: string;
|
|
194
220
|
}>): string[];
|
|
195
221
|
|
|
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 };
|
|
222
|
+
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, slotChildrenIn, 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,slotChildrenIn,slotFieldsOf}from"../../../chunk-PLVEGYK6.js";
|
|
@@ -68,6 +68,13 @@ interface PaletteLook {
|
|
|
68
68
|
* generic primitives (Heading / Text / ImageBlock / ButtonBlock) sit in NO
|
|
69
69
|
* category on purpose, so they never appear here — they are added from their
|
|
70
70
|
* parent's slot instead. See the note above `categories:` in lib/puck/config.tsx.
|
|
71
|
+
*
|
|
72
|
+
* A category the config marks `visible: false` is NOT offered (0.105.0, seam
|
|
73
|
+
* E9): it is a registry's way of keeping blocks it has out of the picker — the
|
|
74
|
+
* campaign designer's Product parts, its retired blocks, its Sections — and a
|
|
75
|
+
* palette that listed them would offer things that may not be put on a page.
|
|
76
|
+
* Puck's own palette read the flag the same way. No website category carries
|
|
77
|
+
* it, so the website's palette is the list it was.
|
|
71
78
|
*/
|
|
72
79
|
declare function buildPaletteSections(config: Config, look: PaletteLook): PaletteSection[];
|
|
73
80
|
/** A category's display label — the layer's short one where there is one, else the config's title. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{buildPaletteSections,categoryLabel,matchesQuery,paletteWithoutPinned,pinnedSection}from"../../../chunk-
|
|
1
|
+
export{buildPaletteSections,categoryLabel,matchesQuery,paletteWithoutPinned,pinnedSection}from"../../../chunk-PA3PNTVV.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{cloneNodeWithFreshIds,docToNode,nodeToDoc}from"../../../chunk-
|
|
1
|
+
export{cloneNodeWithFreshIds,docToNode,nodeToDoc}from"../../../chunk-IE4GFYKO.js";import"../../../chunk-PLVEGYK6.js";
|