efficient-easel 16.0.0 → 17.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 +23 -64
- package/dist/autosave/index.d.ts +4 -4
- package/dist/blocks/index.d.ts +2 -2
- package/dist/chrome/index.d.ts +3 -3
- package/dist/chrome/index.js +1 -1
- package/dist/{chunk-UVQR7W6I.js → chunk-3ERZNZ5S.js} +1 -1
- package/dist/{chunk-3Z2MVLCD.js → chunk-4ES5JGGX.js} +1 -1
- package/dist/{chunk-2H3W5OLQ.js → chunk-4UBYPRAS.js} +1 -1
- package/dist/chunk-7TOQCTHV.js +4 -0
- package/dist/chunk-BU2YSTLJ.js +14 -0
- package/dist/{chunk-VVPZMWJE.js → chunk-EL4F3IN7.js} +1 -1
- package/dist/chunk-EXCIHRAE.js +4 -0
- package/dist/{chunk-NBDMTIU2.js → chunk-FJL3MYPA.js} +2 -2
- package/dist/{chunk-IE55HNMA.js → chunk-GWIVPLOX.js} +11 -11
- package/dist/chunk-INIPQLPR.js +1 -0
- package/dist/{chunk-HM7S7H5H.js → chunk-JSH3XKEF.js} +1 -1
- package/dist/chunk-M2Z775ZC.js +1 -0
- package/dist/chunk-MI54XTWD.js +5 -0
- package/dist/chunk-MTNBJPXX.js +2 -0
- package/dist/{chunk-N2BVA6TS.js → chunk-NFLO4I2N.js} +1 -1
- package/dist/{chunk-P3XVBLZ6.js → chunk-OLRLHE5K.js} +4 -4
- package/dist/chunk-SHS6WCLL.js +1 -0
- package/dist/{chunk-PQRYAW2G.js → chunk-SPQOPWCL.js} +3 -3
- package/dist/{chunk-TZIIRGVY.js → chunk-U277UX5I.js} +1 -1
- package/dist/{chunk-63ZDVAVE.js → chunk-V63ERBLW.js} +1 -1
- package/dist/chunk-WR3EVON3.js +57 -0
- package/dist/{chunk-62VPYC7F.js → chunk-XDZHKYQX.js} +1 -1
- package/dist/chunk-XLUVTPKK.js +1 -0
- package/dist/{chunk-KFPCMMRK.js → chunk-Z72CYM3L.js} +1 -1
- package/dist/copy/index.js +23 -11
- package/dist/draw/client.js +1 -1
- package/dist/draw/index.js +1 -1
- package/dist/easel/index.d.ts +35 -6
- package/dist/easel/index.js +1 -1
- package/dist/fields/index.js +1 -1
- package/dist/gold/gold.css +1 -1
- package/dist/{host-DGmdCaNL.d.ts → host-Cxbhp0zg.d.ts} +0 -4
- package/dist/icons/index.d.ts +0 -2
- package/dist/node-ops/index.d.ts +2 -2
- package/dist/node-ops/index.js +1 -1
- package/dist/{plan-CGREINRO.d.ts → plan-2BLk7pWs.d.ts} +19 -1
- package/dist/rail/index.d.ts +2 -2
- package/dist/screen/components/AddBlockRow.js +1 -1
- package/dist/screen/components/AddSidePanel.js +1 -1
- package/dist/screen/components/MediaSidePanel.d.ts +3 -3
- package/dist/screen/components/MediaSidePanel.js +1 -1
- package/dist/screen/components/NodeContextMenu.d.ts +6 -6
- package/dist/screen/components/NodeContextMenu.js +1 -1
- package/dist/screen/components/PageEditGuardNotices.js +1 -1
- package/dist/screen/components/SaveControls.d.ts +7 -5
- package/dist/screen/components/SaveControls.js +1 -1
- package/dist/screen/components/ScreenChrome.js +1 -1
- package/dist/screen/components/ScreenDocumentContext.d.ts +3 -3
- package/dist/screen/components/ScreenDocumentContext.js +1 -1
- package/dist/screen/components/ScreenMount.d.ts +5 -5
- package/dist/screen/components/ScreenMount.js +1 -1
- package/dist/screen/components/ScreenStoreProvider.d.ts +5 -5
- package/dist/screen/components/ScreenStoreProvider.js +1 -1
- package/dist/screen/components/SectionScreenShell.js +15 -15
- package/dist/screen/components/SidePanelHead.js +1 -1
- package/dist/screen/components/panel-widths.js +1 -1
- package/dist/screen/components/usePartBridge.d.ts +5 -5
- package/dist/screen/components/usePartBridge.js +1 -1
- package/dist/screen/index.d.ts +6 -6
- package/dist/screen/index.js +1 -1
- package/dist/screen/lib/admin-bridge.d.ts +2 -2
- package/dist/screen/lib/document-addressing.d.ts +3 -3
- package/dist/screen/lib/document-hooks.d.ts +2 -2
- package/dist/screen/lib/host-chrome.d.ts +0 -10
- package/dist/screen/lib/host.d.ts +3 -3
- package/dist/screen/lib/key-scope.js +1 -1
- package/dist/screen/lib/media-panel.d.ts +3 -3
- package/dist/screen/lib/media-picker.d.ts +3 -3
- package/dist/screen/lib/page-lock.d.ts +2 -2
- package/dist/screen/lib/puck/block-choice.d.ts +13 -1
- package/dist/screen/lib/puck/block-choice.js +1 -1
- package/dist/screen/lib/puck/device-fields.js +1 -1
- package/dist/screen/lib/puck/palette-sections.d.ts +2 -2
- package/dist/screen/lib/puck/preview-dom.js +1 -1
- package/dist/screen/lib/puck/section-doc.d.ts +2 -2
- package/dist/screen/lib/puck/style-clipboard.d.ts +5 -5
- package/dist/screen/lib/puck/style-clipboard.js +1 -1
- package/dist/screen/lib/puck/use-section-ops.d.ts +2 -2
- 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 +26 -28
- package/dist/screen/lib/screen-parts.js +1 -1
- package/dist/screen/lib/section-templates.d.ts +2 -2
- package/dist/screen/lib/session-context.d.ts +2 -2
- package/dist/screen/lib/session.d.ts +2 -2
- package/dist/screen/words.d.ts +0 -2
- package/dist/screen/words.js +1 -1
- package/dist/shell/shell.css +6 -1
- package/dist/strings/index.d.ts +134 -20
- package/dist/strings/index.js +2 -2
- package/dist/text-styles/index.js +20 -20
- package/dist/{types-CsgMwHHa.d.ts → types-Cy7rdmXt.d.ts} +1 -1
- package/dist/{types-DGyDHiJV.d.ts → types-DT8ywrFQ.d.ts} +1 -1
- package/dist/{types-NQozKWEz.d.ts → types-kR_4wYBw.d.ts} +1 -1
- package/dist/{useNodeOps-BHRkUFfG.d.ts → useNodeOps-B0XZ8Bl8.d.ts} +1 -1
- package/dist/{words-pgIK0I6g.d.ts → words-DkWcK1rh.d.ts} +2 -2
- package/package.json +2 -41
- package/dist/chunk-ECM5F6JJ.js +0 -1
- package/dist/chunk-GGC72GS4.js +0 -1
- package/dist/chunk-H4UMY7QF.js +0 -13
- package/dist/chunk-HMXIAMCU.js +0 -1
- package/dist/chunk-HQ4VVRIC.js +0 -1
- package/dist/chunk-JD5HXBEX.js +0 -1
- package/dist/chunk-N2B32EZB.js +0 -5
- package/dist/chunk-OK7OH2ZN.js +0 -4
- package/dist/chunk-RQBIFINA.js +0 -57
- package/dist/chunk-RSKHAHPJ.js +0 -4
- package/dist/chunk-SMM3ST7A.js +0 -13
- package/dist/chunk-XT6DOSHO.js +0 -1
- package/dist/chunk-ZZ64CEC2.js +0 -2
- package/dist/gold/index.d.ts +0 -283
- package/dist/gold/index.js +0 -1
- package/dist/icons/meanings.d.ts +0 -1
- package/dist/icons/meanings.js +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.js +0 -1
- package/dist/markup/index.d.ts +0 -1
- package/dist/markup/index.js +0 -1
- package/dist/shell/index.d.ts +0 -195
- package/dist/shell/index.js +0 -1
- package/dist/strings/catalogue.d.ts +0 -139
- package/dist/strings/catalogue.js +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
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-Cxbhp0zg.js';
|
|
2
2
|
import './document-contract.js';
|
|
3
3
|
import './session.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
import '../../blocks/index.js';
|
|
6
|
-
import '../../types-
|
|
6
|
+
import '../../types-kR_4wYBw.js';
|
|
7
7
|
import '../../data/index.js';
|
|
8
8
|
import '../../types-41704JE4.js';
|
|
9
9
|
import '../../resolve-D68pb3Bx.js';
|
|
10
|
-
import '../../plan-
|
|
10
|
+
import '../../plan-2BLk7pWs.js';
|
|
11
11
|
import './document-switch.js';
|
|
12
12
|
import '../../engine-CvXpFE86.js';
|
|
13
13
|
import '../../edit-lock/index.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Data } from '../../blocks/index.js';
|
|
2
2
|
import { EaselCapabilities } from './document-contract.js';
|
|
3
3
|
import 'react';
|
|
4
|
-
import '../../types-
|
|
4
|
+
import '../../types-kR_4wYBw.js';
|
|
5
5
|
import '../../data/index.js';
|
|
6
6
|
import '../../types-41704JE4.js';
|
|
7
7
|
import '../../resolve-D68pb3Bx.js';
|
|
8
|
-
import '../../plan-
|
|
8
|
+
import '../../plan-2BLk7pWs.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* WHAT A HOST DOES TO A DOCUMENT AS IT OPENS AND AS IT IS STORED.
|
|
@@ -109,19 +109,9 @@ interface EaselChrome {
|
|
|
109
109
|
* header the settings of the host's pinned header, opened by selecting
|
|
110
110
|
* the header in the canvas or its row in the tree. Without it the
|
|
111
111
|
* inspector has no such panel.
|
|
112
|
-
*
|
|
113
|
-
* …and one the host adds to a panel of the editor's:
|
|
114
|
-
*
|
|
115
|
-
* chromePage drawn under the page settings of the page that STORES the
|
|
116
|
-
* site's chrome (its footer page), on a document with a website
|
|
117
|
-
* behind it. The storefront's is "Switch to Box header", which
|
|
118
|
-
* builds the header group there from the shop's header row. It
|
|
119
|
-
* takes no props: it reads the open document like any other part
|
|
120
|
-
* of the editor (`useScreenDocument`, `useEasel`).
|
|
121
112
|
*/
|
|
122
113
|
panels?: {
|
|
123
114
|
header?: ComponentType<HostPanelProps>;
|
|
124
|
-
chromePage?: ComponentType;
|
|
125
115
|
};
|
|
126
116
|
/**
|
|
127
117
|
* A group of the host's own rows in the Pages panel, under the host's own
|
|
@@ -1,11 +1,11 @@
|
|
|
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, j as useHostEscape } 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-Cxbhp0zg.js';
|
|
3
3
|
import '../../blocks/index.js';
|
|
4
|
-
import '../../types-
|
|
4
|
+
import '../../types-kR_4wYBw.js';
|
|
5
5
|
import '../../data/index.js';
|
|
6
6
|
import '../../types-41704JE4.js';
|
|
7
7
|
import '../../resolve-D68pb3Bx.js';
|
|
8
|
-
import '../../plan-
|
|
8
|
+
import '../../plan-2BLk7pWs.js';
|
|
9
9
|
import './document-contract.js';
|
|
10
10
|
import './session.js';
|
|
11
11
|
import './backend-error.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{editorRootFocus,isSaveShortcut,useEaselKeyTarget,useEaselSaveKey,useEaselUndoKeys}from"../../chunk-
|
|
1
|
+
export{editorRootFocus,isSaveShortcut,useEaselKeyTarget,useEaselSaveKey,useEaselUndoKeys}from"../../chunk-JSH3XKEF.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-BU2YSTLJ.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-SHS6WCLL.js";import"../../chunk-23VM4PMV.js";import"../../chunk-B4JN227A.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-X4T6JT3M.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ComponentType, ReactNode } from 'react';
|
|
3
|
-
import { H as HostPickedMedia, E as EaselHost } from '../../host-
|
|
3
|
+
import { H as HostPickedMedia, E as EaselHost } from '../../host-Cxbhp0zg.js';
|
|
4
4
|
import '../../blocks/index.js';
|
|
5
|
-
import '../../types-
|
|
5
|
+
import '../../types-kR_4wYBw.js';
|
|
6
6
|
import '../../data/index.js';
|
|
7
7
|
import '../../types-41704JE4.js';
|
|
8
8
|
import '../../resolve-D68pb3Bx.js';
|
|
9
|
-
import '../../plan-
|
|
9
|
+
import '../../plan-2BLk7pWs.js';
|
|
10
10
|
import './document-contract.js';
|
|
11
11
|
import './session.js';
|
|
12
12
|
import './backend-error.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { E as EaselHost } from '../../host-
|
|
1
|
+
import { E as EaselHost } from '../../host-Cxbhp0zg.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import '../../blocks/index.js';
|
|
4
|
-
import '../../types-
|
|
4
|
+
import '../../types-kR_4wYBw.js';
|
|
5
5
|
import '../../data/index.js';
|
|
6
6
|
import '../../types-41704JE4.js';
|
|
7
7
|
import '../../resolve-D68pb3Bx.js';
|
|
8
|
-
import '../../plan-
|
|
8
|
+
import '../../plan-2BLk7pWs.js';
|
|
9
9
|
import './document-contract.js';
|
|
10
10
|
import './session.js';
|
|
11
11
|
import './backend-error.js';
|
|
@@ -2,11 +2,11 @@ import { EditLock } from '../../edit-lock/index.js';
|
|
|
2
2
|
import { EaselSession } from './session.js';
|
|
3
3
|
import '../../blocks/index.js';
|
|
4
4
|
import 'react';
|
|
5
|
-
import '../../types-
|
|
5
|
+
import '../../types-kR_4wYBw.js';
|
|
6
6
|
import '../../data/index.js';
|
|
7
7
|
import '../../types-41704JE4.js';
|
|
8
8
|
import '../../resolve-D68pb3Bx.js';
|
|
9
|
-
import '../../plan-
|
|
9
|
+
import '../../plan-2BLk7pWs.js';
|
|
10
10
|
import './backend-error.js';
|
|
11
11
|
import './host-chrome.js';
|
|
12
12
|
import './links/link-filters.js';
|
|
@@ -15,7 +15,19 @@ type BlockChoice = {
|
|
|
15
15
|
type: string;
|
|
16
16
|
label: string;
|
|
17
17
|
group?: string;
|
|
18
|
+
/**
|
|
19
|
+
* RETIRED: Add does not offer it, and a node of it already in a slot still
|
|
20
|
+
* belongs there (card [MERGE] One Text Block And Click Through Parts). The
|
|
21
|
+
* website's Heading and Eyebrow blocks: the Text block took their job, so
|
|
22
|
+
* nobody starts a new one, and every stored one still draws, edits, moves
|
|
23
|
+
* and pastes. Read through {@link offeredChoices} wherever a list is shown
|
|
24
|
+
* to ADD from; the whole list is still the slot's answer to "does this slot
|
|
25
|
+
* take it?", so a move or a paste reads it unfiltered.
|
|
26
|
+
*/
|
|
27
|
+
retired?: boolean;
|
|
18
28
|
};
|
|
29
|
+
/** The choices Add offers: every one that is not {@link BlockChoice.retired}, in order. */
|
|
30
|
+
declare function offeredChoices<C extends BlockChoice>(choices: readonly C[]): C[];
|
|
19
31
|
/**
|
|
20
32
|
* One run of consecutive choices sharing a `group` — what a menu draws under one
|
|
21
33
|
* heading.
|
|
@@ -49,4 +61,4 @@ type BlockChoiceRun = {
|
|
|
49
61
|
};
|
|
50
62
|
declare function blockRuns(choices: BlockChoice[]): BlockChoiceRun[];
|
|
51
63
|
|
|
52
|
-
export { type BlockChoice, type BlockChoiceRun, blockRuns };
|
|
64
|
+
export { type BlockChoice, type BlockChoiceRun, blockRuns, offeredChoices };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{blockRuns}from"../../../chunk-
|
|
1
|
+
export{blockRuns,offeredChoices}from"../../../chunk-M2Z775ZC.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-FJL3MYPA.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-EL4F3IN7.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-BSPCSC45.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Config } from '../../../blocks/index.js';
|
|
2
2
|
import 'react';
|
|
3
|
-
import '../../../types-
|
|
3
|
+
import '../../../types-kR_4wYBw.js';
|
|
4
4
|
import '../../../data/index.js';
|
|
5
5
|
import '../../../types-41704JE4.js';
|
|
6
6
|
import '../../../resolve-D68pb3Bx.js';
|
|
7
|
-
import '../../../plan-
|
|
7
|
+
import '../../../plan-2BLk7pWs.js';
|
|
8
8
|
|
|
9
9
|
/** One offerable section, with the category it is grouped under. */
|
|
10
10
|
type PaletteSection = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{gotoPreviewSlide,pinPreviewToBottom,pinPreviewToSection,previewFrame,scrollPreviewToSection,scrollPreviewToTop}from"../../../chunk-
|
|
1
|
+
export{gotoPreviewSlide,pinPreviewToBottom,pinPreviewToSection,previewFrame,scrollPreviewToSection,scrollPreviewToTop}from"../../../chunk-4ES5JGGX.js";import"../../../chunk-IQ5TA7AM.js";import"../../../chunk-R5L2E7JX.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Data } from '../../../blocks/index.js';
|
|
2
2
|
import { TreeItem } from './content-tree.js';
|
|
3
3
|
import 'react';
|
|
4
|
-
import '../../../types-
|
|
4
|
+
import '../../../types-kR_4wYBw.js';
|
|
5
5
|
import '../../../data/index.js';
|
|
6
6
|
import '../../../types-41704JE4.js';
|
|
7
7
|
import '../../../resolve-D68pb3Bx.js';
|
|
8
|
-
import '../../../plan-
|
|
8
|
+
import '../../../plan-2BLk7pWs.js';
|
|
9
9
|
|
|
10
10
|
declare function nodeToDoc(node: TreeItem): Data;
|
|
11
11
|
declare function docToNode(data: Data): TreeItem | null;
|
|
@@ -5,14 +5,14 @@ import { panelFieldsOf } from './panel-fields.js';
|
|
|
5
5
|
import '../../../types-BsyPh6EW.js';
|
|
6
6
|
import 'react';
|
|
7
7
|
import '../../../blocks/index.js';
|
|
8
|
-
import '../../../types-
|
|
8
|
+
import '../../../types-kR_4wYBw.js';
|
|
9
9
|
import '../../../data/index.js';
|
|
10
10
|
import '../../../types-41704JE4.js';
|
|
11
11
|
import '../../../resolve-D68pb3Bx.js';
|
|
12
|
-
import '../../../plan-
|
|
12
|
+
import '../../../plan-2BLk7pWs.js';
|
|
13
13
|
import '../../../watch-BTYOJpQU.js';
|
|
14
|
-
import '../../../types-
|
|
15
|
-
import '../../../types-
|
|
14
|
+
import '../../../types-DT8ywrFQ.js';
|
|
15
|
+
import '../../../types-Cy7rdmXt.js';
|
|
16
16
|
import '../../../wordFit-7XpmhcaW.js';
|
|
17
17
|
import '../../../edit-lock/index.js';
|
|
18
18
|
import '../../../panelWidths-D9hTLR25.js';
|
|
@@ -26,7 +26,7 @@ import '../../components/AddSidePanel.js';
|
|
|
26
26
|
import '../section-template-types.js';
|
|
27
27
|
import './content-tree.js';
|
|
28
28
|
import './block-choice.js';
|
|
29
|
-
import '../../../host-
|
|
29
|
+
import '../../../host-Cxbhp0zg.js';
|
|
30
30
|
import '../document-contract.js';
|
|
31
31
|
import '../session.js';
|
|
32
32
|
import '../backend-error.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-
|
|
1
|
+
export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-XLUVTPKK.js";import"../../../chunk-LER7RKTO.js";import"../../../chunk-FJL3MYPA.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-MQNBD6AB.js";import"../../../chunk-EL4F3IN7.js";import"../../../chunk-V7U33NF2.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-BPXEFVSQ.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-BSPCSC45.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { N as NodeSelection } from '../../../plan-
|
|
1
|
+
import { N as NodeSelection } from '../../../plan-2BLk7pWs.js';
|
|
2
2
|
import { Data } from '../../../blocks/index.js';
|
|
3
3
|
import { TreeItem } from './content-tree.js';
|
|
4
4
|
import '../../../types-41704JE4.js';
|
|
5
5
|
import 'react';
|
|
6
|
-
import '../../../types-
|
|
6
|
+
import '../../../types-kR_4wYBw.js';
|
|
7
7
|
import '../../../data/index.js';
|
|
8
8
|
import '../../../resolve-D68pb3Bx.js';
|
|
9
9
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{useSectionOps}from"../../../chunk-
|
|
1
|
+
export{useSectionOps}from"../../../chunk-NFLO4I2N.js";import"../../../chunk-SPQOPWCL.js";import"../../../chunk-R6WTQWAC.js";import"../../../chunk-U3JP4VGF.js";import"../../../chunk-PLVEGYK6.js";import"../../../chunk-BU2YSTLJ.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-N3LYD2LK.js";import"../../../chunk-BPXEFVSQ.js";import"../../../chunk-4JSBIW5H.js";import"../../../chunk-K56YDHYQ.js";import"../../../chunk-XWFH2NHZ.js";import"../../../chunk-YRLPFZW3.js";import"../../../chunk-BALFHI3G.js";import"../../../chunk-SHS6WCLL.js";import"../../../chunk-RC25EGHD.js";import"../../../chunk-KFV7N2DJ.js";import"../../../chunk-23VM4PMV.js";import"../../../chunk-B4JN227A.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,7 +1,7 @@
|
|
|
1
1
|
import { A as AutosaveSnapshot } from '../../engine-CvXpFE86.js';
|
|
2
|
-
import { a as SaveIconState } from '../../types-
|
|
2
|
+
import { a as SaveIconState } from '../../types-DT8ywrFQ.js';
|
|
3
3
|
import { ScreenSaveStatusWords } from '../words.js';
|
|
4
|
-
import '../../types-
|
|
4
|
+
import '../../types-Cy7rdmXt.js';
|
|
5
5
|
import '../../wordFit-7XpmhcaW.js';
|
|
6
6
|
import 'react';
|
|
7
7
|
import '../../edit-lock/index.js';
|
|
@@ -2,23 +2,23 @@ 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-DT8ywrFQ.js';
|
|
6
6
|
import { P as Place } from '../../types-41704JE4.js';
|
|
7
7
|
import { M as MeasuredCanvas, C as CanvasDragModel } from '../../CanvasDragLayer-dZCPbQCP.js';
|
|
8
8
|
import { E as EaselContextMenuItem } from '../../types-BsyPh6EW.js';
|
|
9
|
-
import {
|
|
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-D8P9q-BG.js';
|
|
12
12
|
import { AddKey } from '../components/AddSidePanel.js';
|
|
13
|
-
import { k as AnyScreenTarget } from '../../host-
|
|
13
|
+
import { k as AnyScreenTarget } from '../../host-Cxbhp0zg.js';
|
|
14
14
|
import { HostProduct } from './host-chrome.js';
|
|
15
15
|
import { EaselSession } from './session.js';
|
|
16
16
|
import { AddTarget } from './puck/add-target-types.js';
|
|
17
17
|
import { SlotConfigView } from './puck/content-tree.js';
|
|
18
|
-
import '../../types-
|
|
18
|
+
import '../../types-kR_4wYBw.js';
|
|
19
19
|
import '../../data/index.js';
|
|
20
20
|
import '../../resolve-D68pb3Bx.js';
|
|
21
|
-
import '../../plan-
|
|
21
|
+
import '../../plan-2BLk7pWs.js';
|
|
22
22
|
import '../../edit-lock/index.js';
|
|
23
23
|
import '../../panelWidths-D9hTLR25.js';
|
|
24
24
|
import '../../session-DSQFmIvx.js';
|
|
@@ -394,9 +394,29 @@ interface ScreenMainAction {
|
|
|
394
394
|
* empty: no list.
|
|
395
395
|
*/
|
|
396
396
|
goingLive?: readonly string[];
|
|
397
|
+
/**
|
|
398
|
+
* The layer's own rows of the ▾ menu ("Version history"): drawn last, under
|
|
399
|
+
* Save now and one divider, as the shell's menu items. A press closes the
|
|
400
|
+
* menu, then runs `onSelect`. Absent or empty: the menu is as before, with
|
|
401
|
+
* no divider of their own.
|
|
402
|
+
*/
|
|
403
|
+
menuItems?: readonly ScreenMenuItem[];
|
|
397
404
|
/** The action is running: the main half shows the shell's spinner. */
|
|
398
405
|
busy?: boolean;
|
|
399
406
|
}
|
|
407
|
+
/** One of the layer's rows in the ▾ menu ({@link ScreenMainAction.menuItems}). */
|
|
408
|
+
interface ScreenMenuItem {
|
|
409
|
+
/** Unique among the layer's rows. */
|
|
410
|
+
key: string;
|
|
411
|
+
/** The row's words, in the layer's language ("Version history"). */
|
|
412
|
+
label: string;
|
|
413
|
+
/** The shell glyph before the words. */
|
|
414
|
+
icon?: ReactNode;
|
|
415
|
+
/** What a press does, after the menu has closed. */
|
|
416
|
+
onSelect: () => void;
|
|
417
|
+
/** Turns the row off. */
|
|
418
|
+
disabled?: boolean;
|
|
419
|
+
}
|
|
400
420
|
/** What a layer's bridges give back for the screen to place. */
|
|
401
421
|
interface ScreenBridges {
|
|
402
422
|
/** A row under the Add panel's tiles, for something that is not a block.
|
|
@@ -498,28 +518,6 @@ interface ScreenBridges {
|
|
|
498
518
|
* from that part's own panel. A layer with nowhere to keep them hands none,
|
|
499
519
|
* and the panel draws no door. */
|
|
500
520
|
openStyles?: () => void;
|
|
501
|
-
/**
|
|
502
|
-
* The open document is the one that STORES what the layer pins: the node
|
|
503
|
-
* every other document shows pinned and does not hold (the website's: the
|
|
504
|
-
* page that keeps the site's one footer). It is edited there in place, so
|
|
505
|
-
* the screen draws that document's tree without the rows an ordinary one has
|
|
506
|
-
* round its own sections, and without the row that leads to it. Absent, the
|
|
507
|
-
* document is an ordinary one.
|
|
508
|
-
*/
|
|
509
|
-
pinnedSource?: boolean;
|
|
510
|
-
/** …and the way to edit what is pinned from a document that only shows it:
|
|
511
|
-
* what a press on its row in the tree does. Where it leads is the layer's
|
|
512
|
-
* (the website opens its footer's editor over the page). */
|
|
513
|
-
editPinnedSource?: () => void;
|
|
514
|
-
/**
|
|
515
|
-
* The layer's own way to bring the canvas to a node the screen has selected,
|
|
516
|
-
* for a document where the screen's plain scroll does not hold: one the
|
|
517
|
-
* layer draws something above, which reflows and takes the scroll back (the
|
|
518
|
-
* website's footer, edited under the page it was opened from). Handed back
|
|
519
|
-
* only for such a document, and the screen then calls it in place of its
|
|
520
|
-
* scroll; absent, the screen scrolls.
|
|
521
|
-
*/
|
|
522
|
-
holdCanvasOn?: (id: string) => void;
|
|
523
521
|
/**
|
|
524
522
|
* THE LAYER'S OWN ROWS IN A NODE'S RIGHT-CLICK MENU (0.105.0), by the group
|
|
525
523
|
* each joins (`ScreenMenuRows`): the campaign designer's "Check this image
|
|
@@ -1453,4 +1451,4 @@ declare function useScreenCanvasTarget(): CanvasTarget | null;
|
|
|
1453
1451
|
* engine's plain rows for the selection. */
|
|
1454
1452
|
declare function useScreenInspectorPanel(): ComponentType<ScreenInspectorPanelProps>;
|
|
1455
1453
|
|
|
1456
|
-
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 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 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 };
|
|
1454
|
+
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 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-SPQOPWCL.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-BU2YSTLJ.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-N3LYD2LK.js";import"../../chunk-BPXEFVSQ.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-XWFH2NHZ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-BALFHI3G.js";import"../../chunk-SHS6WCLL.js";import"../../chunk-RC25EGHD.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-23VM4PMV.js";import"../../chunk-B4JN227A.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";
|
|
@@ -3,11 +3,11 @@ import { EaselSession } from './session.js';
|
|
|
3
3
|
import './puck/content-tree.js';
|
|
4
4
|
import '../../blocks/index.js';
|
|
5
5
|
import 'react';
|
|
6
|
-
import '../../types-
|
|
6
|
+
import '../../types-kR_4wYBw.js';
|
|
7
7
|
import '../../data/index.js';
|
|
8
8
|
import '../../types-41704JE4.js';
|
|
9
9
|
import '../../resolve-D68pb3Bx.js';
|
|
10
|
-
import '../../plan-
|
|
10
|
+
import '../../plan-2BLk7pWs.js';
|
|
11
11
|
import './backend-error.js';
|
|
12
12
|
import '../../edit-lock/index.js';
|
|
13
13
|
import './host-chrome.js';
|
|
@@ -2,11 +2,11 @@ import * as react from 'react';
|
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { EaselSession } from './session.js';
|
|
4
4
|
import '../../blocks/index.js';
|
|
5
|
-
import '../../types-
|
|
5
|
+
import '../../types-kR_4wYBw.js';
|
|
6
6
|
import '../../data/index.js';
|
|
7
7
|
import '../../types-41704JE4.js';
|
|
8
8
|
import '../../resolve-D68pb3Bx.js';
|
|
9
|
-
import '../../plan-
|
|
9
|
+
import '../../plan-2BLk7pWs.js';
|
|
10
10
|
import './backend-error.js';
|
|
11
11
|
import '../../edit-lock/index.js';
|
|
12
12
|
import './host-chrome.js';
|
|
@@ -5,11 +5,11 @@ import { WebsiteEditLock } from './document-contract.js';
|
|
|
5
5
|
import { EaselDocumentHooks } from './document-hooks.js';
|
|
6
6
|
import { SectionTemplateStore } from './section-template-types.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import '../../types-
|
|
8
|
+
import '../../types-kR_4wYBw.js';
|
|
9
9
|
import '../../data/index.js';
|
|
10
10
|
import '../../types-41704JE4.js';
|
|
11
11
|
import '../../resolve-D68pb3Bx.js';
|
|
12
|
-
import '../../plan-
|
|
12
|
+
import '../../plan-2BLk7pWs.js';
|
|
13
13
|
import '../../edit-lock/index.js';
|
|
14
14
|
import './links/link-filters.js';
|
|
15
15
|
import 'efficient-shell/ui';
|
package/dist/screen/words.d.ts
CHANGED
|
@@ -274,8 +274,6 @@ type ScreenWords = {
|
|
|
274
274
|
collapseAll: string;
|
|
275
275
|
/** …its tooltip while the page has nothing to fold, and the button is off. */
|
|
276
276
|
nothingToFold: string;
|
|
277
|
-
/** The pinned Footer's row where the page has no footer of its own: its tooltip. */
|
|
278
|
-
editFooter: string;
|
|
279
277
|
/** The box a row's name is typed in: its accessible name. */
|
|
280
278
|
rename: string;
|
|
281
279
|
/** A row's trash and eye, naming the row. */
|
package/dist/screen/words.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DEFAULT_SCREEN_ADD_WORDS,DEFAULT_SCREEN_SAVE_STATUS_WORDS,DEFAULT_SCREEN_WORDS}from"../chunk-
|
|
1
|
+
export{DEFAULT_SCREEN_ADD_WORDS,DEFAULT_SCREEN_SAVE_STATUS_WORDS,DEFAULT_SCREEN_WORDS}from"../chunk-EL4F3IN7.js";
|
package/dist/shell/shell.css
CHANGED
|
@@ -60,7 +60,12 @@
|
|
|
60
60
|
*/
|
|
61
61
|
|
|
62
62
|
.es-editor {
|
|
63
|
-
/* — accent: the shell's (custom accent, else the themed primary fill) —
|
|
63
|
+
/* — accent: the shell's (custom accent, else the themed primary fill) —
|
|
64
|
+
SHELL GAP (#199): the shell has no token yet for an accent wash
|
|
65
|
+
(tint, tint-strong), an accent hairline (line), accent words (text), an
|
|
66
|
+
accent shadow, or ink on a solid fill (on-accent: its nearest is the status
|
|
67
|
+
tier's `--status-on-solid`). Each is MIXED from shell tokens until the
|
|
68
|
+
shell has one; none is a value of our own. */
|
|
64
69
|
--es-accent: var(--accent-600, var(--submit-bg));
|
|
65
70
|
--es-accent-tint: color-mix(in srgb, var(--es-accent) 10%, var(--surface));
|
|
66
71
|
--es-accent-tint-strong: color-mix(in srgb, var(--es-accent) 18%, var(--surface));
|
package/dist/strings/index.d.ts
CHANGED
|
@@ -1,27 +1,141 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { a as SaveWords } from '../words-DkWcK1rh.js';
|
|
2
|
+
import { N as NoticeWords, C as ChromeWords } from '../words-BpiVrsW5.js';
|
|
3
|
+
import { C as CopyWords } from '../words-D-yhjdOg.js';
|
|
4
|
+
import { D as DragWords } from '../words-CvwYvkJm.js';
|
|
5
|
+
import { LockWords } from '../edit-lock/index.js';
|
|
6
|
+
import { F as FieldsWords } from '../words-vhnV8sM7.js';
|
|
7
|
+
import { N as NodeMenuWords } from '../words-DMG4dYq2.js';
|
|
8
|
+
import { P as PanelWords } from '../words-zH1H0WFw.js';
|
|
9
|
+
import { P as PickWords } from '../words-DWvCJXwR.js';
|
|
10
|
+
import { ScreenWords } from '../screen/words.js';
|
|
11
|
+
export { ScreenAddWords } from '../screen/words.js';
|
|
12
|
+
import { S as StyleClipboardWords } from '../words-CnnHb9jo.js';
|
|
13
|
+
import { T as TextStylesWords } from '../words-gIDCeRv3.js';
|
|
14
|
+
import { T as TreeWords } from '../words-Cl9xMUYY.js';
|
|
3
15
|
import * as react from 'react';
|
|
4
16
|
import { ReactNode } from 'react';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export { D as DragWords } from '../words-CvwYvkJm.js';
|
|
8
|
-
export { F as FieldsWords } from '../words-vhnV8sM7.js';
|
|
9
|
-
export { LockWords } from '../edit-lock/index.js';
|
|
10
|
-
export { N as NodeMenuWords } from '../words-DMG4dYq2.js';
|
|
11
|
-
export { P as PanelWords } from '../words-zH1H0WFw.js';
|
|
12
|
-
export { P as PickWords } from '../words-DWvCJXwR.js';
|
|
13
|
-
export { S as SaveWords } from '../words-pgIK0I6g.js';
|
|
14
|
-
export { ScreenAddWords, ScreenWords } from '../screen/words.js';
|
|
15
|
-
export { S as StyleClipboardWords } from '../words-CnnHb9jo.js';
|
|
16
|
-
export { T as TextStylesWords } from '../words-gIDCeRv3.js';
|
|
17
|
-
export { T as TreeWords } from '../words-Cl9xMUYY.js';
|
|
18
|
-
import 'efficient-shell/markup';
|
|
19
|
-
import '../buckets-Tj-nkBpg.js';
|
|
20
|
-
import '../types-DGyDHiJV.js';
|
|
21
|
-
import '../types-CsgMwHHa.js';
|
|
17
|
+
import '../types-DT8ywrFQ.js';
|
|
18
|
+
import '../types-Cy7rdmXt.js';
|
|
22
19
|
import '../wordFit-7XpmhcaW.js';
|
|
23
20
|
import '../panelWidths-D9hTLR25.js';
|
|
24
21
|
import '../engine-CvXpFE86.js';
|
|
22
|
+
import 'efficient-shell/markup';
|
|
23
|
+
import '../buckets-Tj-nkBpg.js';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The easel canvas's own words (`efficient-easel/strings`, 0.95.0): what the
|
|
27
|
+
* frame is called when the host does not name it (`title`), and the name of
|
|
28
|
+
* the bar of text tools that floats above words typed on the canvas.
|
|
29
|
+
*
|
|
30
|
+
* A plain module with no import.
|
|
31
|
+
*/
|
|
32
|
+
type CanvasWords = {
|
|
33
|
+
/** The canvas frame's accessible name. */
|
|
34
|
+
frame: string;
|
|
35
|
+
/** The floating bar of text tools over the words being typed (its group's name). */
|
|
36
|
+
textTools: string;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The rail's own words. There is one: what the toolbar is called when the host
|
|
41
|
+
* does not name it (`ariaLabel`). Every other word on the rail is an item's
|
|
42
|
+
* `label`, and those are the host's.
|
|
43
|
+
*
|
|
44
|
+
* A plain module with no import, so the rail stays the leaf it is
|
|
45
|
+
* (`tests/rail-leaf-safety.test.tsx`). It is NOT exported from `./index`: the
|
|
46
|
+
* rail's runtime exports are pinned (`tests/rail-public-shape.test.tsx`), and a
|
|
47
|
+
* host reads these through `efficient-easel/strings`.
|
|
48
|
+
*/
|
|
49
|
+
type RailWords = {
|
|
50
|
+
/** The toolbar's accessible name. */
|
|
51
|
+
label: string;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* THE ENGINE'S OWN WORDS, as one catalogue a host can translate (0.95.0).
|
|
56
|
+
*
|
|
57
|
+
* Every word and sentence this package itself draws or returns — visible text,
|
|
58
|
+
* `aria-label`s, tooltips, placeholders — is an entry here, grouped by the
|
|
59
|
+
* module that says it. What a HOST supplies (a block's name, a field's label, a
|
|
60
|
+
* tile's caption, the document's noun) was never the engine's and is not here —
|
|
61
|
+
* with one exception: the assembled screen (`efficient-easel/screen`) draws the
|
|
62
|
+
* edit notice itself, so the noun it says it with is a word of its own group,
|
|
63
|
+
* the website's "page" until a host says another.
|
|
64
|
+
*
|
|
65
|
+
* - A plain word is a `string`.
|
|
66
|
+
* - Anything with a value in it, or a count that can be one or many, is a
|
|
67
|
+
* function: the host puts the value where its language wants it and does
|
|
68
|
+
* its own plural.
|
|
69
|
+
*
|
|
70
|
+
* ── Where the English lives ───────────────────────────────────────────────
|
|
71
|
+
* In each module's own `words.ts`, NOT here. A leaf may only import its own
|
|
72
|
+
* lane (`tests/*-leaf-safety`), and several are held to a bundle that never
|
|
73
|
+
* spells a browser global — while one sentence below does ("another tab or
|
|
74
|
+
* window"). So a module owns its group and its defaults, and this file only
|
|
75
|
+
* puts the groups side by side. `DEFAULT_EASEL_STRINGS.pick` IS the pickers'
|
|
76
|
+
* own default object, not a copy of it.
|
|
77
|
+
*
|
|
78
|
+
* ── Framework-free ────────────────────────────────────────────────────────
|
|
79
|
+
* No React, no browser global, nothing run at import but object literals
|
|
80
|
+
* (`tests/strings-leaf-safety.test.ts`), so `efficient-easel/strings`, which
|
|
81
|
+
* re-exports it beside the provider, creates nothing at import. A host's
|
|
82
|
+
* server-side test reads `DEFAULT_EASEL_STRINGS` from there. The provider and
|
|
83
|
+
* the hooks are in ./provider.
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
/** Every word the engine says, by the module that says it. */
|
|
87
|
+
interface EaselStrings {
|
|
88
|
+
/** `efficient-easel/chrome` — `EditNotice`: who holds the document, a refused save. */
|
|
89
|
+
notice: NoticeWords;
|
|
90
|
+
/** `efficient-easel/edit-lock` — "2 minutes ago", "Someone else". */
|
|
91
|
+
lock: LockWords;
|
|
92
|
+
/** `efficient-easel/autosave` — the save pill. */
|
|
93
|
+
save: SaveWords;
|
|
94
|
+
/** `efficient-easel/chrome` — the device switch, "up one level", the panel grip. */
|
|
95
|
+
chrome: ChromeWords;
|
|
96
|
+
/** `efficient-easel/rail` — the toolbar's name. */
|
|
97
|
+
rail: RailWords;
|
|
98
|
+
/** `efficient-easel/tree` — the drag hint and the caret. */
|
|
99
|
+
tree: TreeWords;
|
|
100
|
+
/** `efficient-easel/panel` — the tab strip's name and each tab's word. */
|
|
101
|
+
panel: PanelWords;
|
|
102
|
+
/** `efficient-easel/fields` — the number box, the dropdown, the list field. */
|
|
103
|
+
fields: FieldsWords;
|
|
104
|
+
/** `efficient-easel/pick` — the colour row and the image box. */
|
|
105
|
+
pick: PickWords;
|
|
106
|
+
/** `efficient-easel/drag` — the Add panel and the canvas layer. */
|
|
107
|
+
drag: DragWords;
|
|
108
|
+
/** `efficient-easel/node-ops` — the right-click rows. */
|
|
109
|
+
menu: NodeMenuWords;
|
|
110
|
+
/** `efficient-easel/style-clipboard` — Copy style, Paste style and what a paste says. */
|
|
111
|
+
styleClipboard: StyleClipboardWords;
|
|
112
|
+
/** `efficient-easel/copy` — the formatting bar, alignment, the link window, each mark. */
|
|
113
|
+
copy: CopyWords;
|
|
114
|
+
/** `efficient-easel/easel` — the canvas frame's name. */
|
|
115
|
+
canvas: CanvasWords;
|
|
116
|
+
/** `efficient-easel/text-styles` — the Email styles / Site styles list (E6). */
|
|
117
|
+
textStyles: TextStylesWords;
|
|
118
|
+
/** `efficient-easel/screen` — a document opening, one that will not, the
|
|
119
|
+
* notice's word for the document, the Layers tree's frame, the Add panel,
|
|
120
|
+
* the main button and the block keys. */
|
|
121
|
+
screen: ScreenWords;
|
|
122
|
+
}
|
|
123
|
+
/** Today's English, word for word. */
|
|
124
|
+
declare const DEFAULT_EASEL_STRINGS: EaselStrings;
|
|
125
|
+
/**
|
|
126
|
+
* A catalogue with any part left out. A function entry is taken whole or not
|
|
127
|
+
* at all: it has no "part" to leave out.
|
|
128
|
+
*/
|
|
129
|
+
type DeepPartial<T> = T extends (...args: never[]) => unknown ? T : T extends object ? {
|
|
130
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
131
|
+
} : T;
|
|
132
|
+
/**
|
|
133
|
+
* `defaults` with every entry `partial` gives laid over it. Whatever `partial`
|
|
134
|
+
* leaves out (or gives as `undefined` / `null`) keeps the default, so a host
|
|
135
|
+
* that has translated half the catalogue shows the other half in English
|
|
136
|
+
* rather than as nothing. Neither argument is changed.
|
|
137
|
+
*/
|
|
138
|
+
declare function mergeEaselStrings(defaults: EaselStrings, partial?: DeepPartial<EaselStrings> | null): EaselStrings;
|
|
25
139
|
|
|
26
140
|
interface EaselStringsProviderProps {
|
|
27
141
|
/**
|
|
@@ -58,4 +172,4 @@ declare function useEaselStrings(): EaselStrings;
|
|
|
58
172
|
/** The nearest provider's locale, or `'en'`. */
|
|
59
173
|
declare function useEaselLocale(): string;
|
|
60
174
|
|
|
61
|
-
export { DeepPartial, EaselStrings, EaselStringsProvider, type EaselStringsProviderProps, useEaselLocale, useEaselStrings };
|
|
175
|
+
export { type CanvasWords, ChromeWords, CopyWords, DEFAULT_EASEL_STRINGS, type DeepPartial, DragWords, type EaselStrings, EaselStringsProvider, type EaselStringsProviderProps, FieldsWords, LockWords, NodeMenuWords, NoticeWords, PanelWords, PickWords, type RailWords, SaveWords, ScreenWords, StyleClipboardWords, TextStylesWords, TreeWords, mergeEaselStrings, useEaselLocale, useEaselStrings };
|