efficient-easel 0.0.0 → 0.96.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/LICENSE +10 -0
- package/README.md +723 -4
- package/dist/autosave/index.d.ts +101 -0
- package/dist/autosave/index.js +1 -0
- package/dist/blocks/index.d.ts +295 -0
- package/dist/blocks/index.js +0 -0
- package/dist/buckets-1vRlQceY.d.ts +13 -0
- package/dist/canvas/index.d.ts +194 -0
- package/dist/canvas/index.js +1 -0
- package/dist/chrome/chrome.css +570 -0
- package/dist/chrome/index.d.ts +219 -0
- package/dist/chrome/index.js +21 -0
- package/dist/chunk-2LUSK32B.js +1 -0
- package/dist/chunk-2OAZYSWJ.js +1 -0
- package/dist/chunk-67VZRQLG.js +13 -0
- package/dist/chunk-6JDII7N3.js +1 -0
- package/dist/chunk-6OPSJGAI.js +1 -0
- package/dist/chunk-6WY6ZXJG.js +1 -0
- package/dist/chunk-7A7O2JWQ.js +1 -0
- package/dist/chunk-BZ5ASXOL.js +1 -0
- package/dist/chunk-CERTFXCV.js +13 -0
- package/dist/chunk-EFTTSIMK.js +1 -0
- package/dist/chunk-FI23ALVJ.js +1 -0
- package/dist/chunk-FJE4IDBQ.js +1 -0
- package/dist/chunk-GGTPNGFJ.js +1 -0
- package/dist/chunk-H4B72XCJ.js +1 -0
- package/dist/chunk-H6DDIBQ4.js +1 -0
- package/dist/chunk-KDIVA6WD.js +1 -0
- package/dist/chunk-LPRQDDQO.js +1 -0
- package/dist/chunk-MCLBHENY.js +1 -0
- package/dist/chunk-MFIRYGHW.js +1 -0
- package/dist/chunk-NKB3KVAB.js +1 -0
- package/dist/chunk-O2NLQBFX.js +1 -0
- package/dist/chunk-OGZFDJ6G.js +1 -0
- package/dist/chunk-OWBO4WKA.js +0 -0
- package/dist/chunk-QB3BZIRA.js +5 -0
- package/dist/chunk-RE4LP46F.js +1 -0
- package/dist/chunk-STFMZJKU.js +14 -0
- package/dist/chunk-SUO5627P.js +1 -0
- package/dist/chunk-TDA4HH54.js +1 -0
- package/dist/chunk-WK3AFPXY.js +1 -0
- package/dist/chunk-YIMRTIBN.js +3 -0
- package/dist/chunk-YNZZYHA4.js +450 -0
- package/dist/chunk-ZAOM6PFH.js +1 -0
- package/dist/chunk-ZNCEOSXO.js +1 -0
- package/dist/copy/copy.css +282 -0
- package/dist/copy/index.d.ts +336 -0
- package/dist/copy/index.js +10 -0
- package/dist/data/index.d.ts +208 -0
- package/dist/data/index.js +1 -0
- package/dist/drag/drag.css +360 -0
- package/dist/drag/index.d.ts +379 -0
- package/dist/drag/index.js +18 -0
- package/dist/edit-lock/index.d.ts +354 -0
- package/dist/edit-lock/index.js +1 -0
- package/dist/editor/editor.css +58 -0
- package/dist/editor/index.d.ts +361 -0
- package/dist/editor/index.js +9 -0
- package/dist/fields/fields.css +207 -0
- package/dist/fields/index.d.ts +273 -0
- package/dist/fields/index.js +46 -0
- package/dist/gold/gold.css +196 -0
- package/dist/gold/index.d.ts +280 -0
- package/dist/gold/index.js +1 -0
- package/dist/icons/index.d.ts +474 -0
- package/dist/icons/index.js +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1 -0
- package/dist/markup/index.d.ts +452 -0
- package/dist/markup/index.js +1 -0
- package/dist/menu/index.d.ts +49 -0
- package/dist/menu/index.js +15 -0
- package/dist/menu/menu.css +254 -0
- package/dist/node-ops/index.d.ts +91 -0
- package/dist/node-ops/index.js +1 -0
- package/dist/panel/index.d.ts +1088 -0
- package/dist/panel/index.js +16 -0
- package/dist/panel/panel.css +1460 -0
- package/dist/pick/index.d.ts +153 -0
- package/dist/pick/index.js +14 -0
- package/dist/pick/pick.css +235 -0
- package/dist/plan-DtNw2VuI.d.ts +88 -0
- package/dist/rail/index.d.ts +145 -0
- package/dist/rail/index.js +1 -0
- package/dist/rail/rail.css +175 -0
- package/dist/render/index.d.ts +117 -0
- package/dist/render/index.js +5 -0
- package/dist/resolve-DpH8YQOA.d.ts +57 -0
- package/dist/shell/index.d.ts +159 -0
- package/dist/shell/index.js +1 -0
- package/dist/shell/shell.css +122 -0
- package/dist/strings/catalogue.d.ts +141 -0
- package/dist/strings/catalogue.js +1 -0
- package/dist/strings/index.d.ts +56 -0
- package/dist/strings/index.js +2 -0
- package/dist/style-clipboard/index.d.ts +184 -0
- package/dist/style-clipboard/index.js +1 -0
- package/dist/tree/index.d.ts +173 -0
- package/dist/tree/index.js +1 -0
- package/dist/tree/tree.css +618 -0
- package/dist/types-CEqUFH2j.d.ts +129 -0
- package/dist/types-CuNiSnX6.d.ts +204 -0
- package/dist/types-DNrn_w4V.d.ts +88 -0
- package/dist/types-DziKCwsN.d.ts +105 -0
- package/dist/types-_Vayx8ov.d.ts +153 -0
- package/dist/types-pGBXevBU.d.ts +131 -0
- package/dist/useNodeOps-6IAej9jy.d.ts +68 -0
- package/dist/watch-DmasQA61.d.ts +60 -0
- package/dist/wordFit-9B9nqyf3.d.ts +35 -0
- package/dist/words-B2YLaKEr.d.ts +30 -0
- package/dist/words-B87GIFWH.d.ts +86 -0
- package/dist/words-BK-npta-.d.ts +27 -0
- package/dist/words-CD3WADyb.d.ts +51 -0
- package/dist/words-CsRWXkY4.d.ts +129 -0
- package/dist/words-D9ChvbNC.d.ts +52 -0
- package/dist/words-DOhF-4D4.d.ts +35 -0
- package/dist/words-DagJdwIA.d.ts +78 -0
- package/dist/words-DfxEp_RH.d.ts +142 -0
- package/package.json +202 -3
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The right-click rows' own words (`efficient-easel/strings`, 0.95.0), one per
|
|
3
|
+
* row of `nodeMenuItems`. The menu's caption, the pinned line and what is on
|
|
4
|
+
* the clipboard are the host's.
|
|
5
|
+
*
|
|
6
|
+
* A plain module with no import, in node-ops' own folder (its lane:
|
|
7
|
+
* `tests/node-ops-leaf-safety.test.ts`). `nodeMenuItems` is a plain function,
|
|
8
|
+
* so it takes these as `options.words`; a host passes
|
|
9
|
+
* `useEditorStrings().menu`. A row's `rows` override still wins over them.
|
|
10
|
+
*
|
|
11
|
+
* The shortcuts drawn beside Copy, Cut and Paste (⌘C, ⌘X, ⌘V) are key names,
|
|
12
|
+
* not words, and stay as they are; `rows` changes one.
|
|
13
|
+
*/
|
|
14
|
+
type NodeMenuWords = {
|
|
15
|
+
layer: string;
|
|
16
|
+
addInside: string;
|
|
17
|
+
duplicate: string;
|
|
18
|
+
moveUp: string;
|
|
19
|
+
moveDown: string;
|
|
20
|
+
copy: string;
|
|
21
|
+
cut: string;
|
|
22
|
+
paste: string;
|
|
23
|
+
rename: string;
|
|
24
|
+
hide: string;
|
|
25
|
+
show: string;
|
|
26
|
+
upLevel: string;
|
|
27
|
+
delete: string;
|
|
28
|
+
/** The Paste row, naming what is held. `paste` is the row's own word, `label` what was copied. */
|
|
29
|
+
pasteNamed: (v: {
|
|
30
|
+
paste: string;
|
|
31
|
+
label: string;
|
|
32
|
+
}) => string;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type { NodeMenuWords as N };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The editor frame's own words (`efficient-easel/strings`, 0.95.0), in two
|
|
3
|
+
* groups: what `EditNotice` says (`NoticeWords`) and the few words the rest of
|
|
4
|
+
* the chrome carries when the host gives none (`ChromeWords`).
|
|
5
|
+
*
|
|
6
|
+
* A plain module with no import. Anything with a value in it is a function, so
|
|
7
|
+
* a host puts the name, the noun and the time where its language wants them.
|
|
8
|
+
*
|
|
9
|
+
* `noun` is always the HOST's word for the document (`'email'`, `'page'`), and
|
|
10
|
+
* `when` / `seen` are `LockWords`' answers (`describeAge`).
|
|
11
|
+
*/
|
|
12
|
+
type NoticeWords = {
|
|
13
|
+
/** The button that loads what is saved — the only one that throws work away. */
|
|
14
|
+
reload: string;
|
|
15
|
+
/** The button that takes the document. */
|
|
16
|
+
takeOver: string;
|
|
17
|
+
/** The same button after somebody took it from you. */
|
|
18
|
+
takeBack: string;
|
|
19
|
+
/** The button that looks without touching. */
|
|
20
|
+
viewReadOnly: string;
|
|
21
|
+
/** A refused save, and it was you: the bold sentence. */
|
|
22
|
+
savedByYou: (v: {
|
|
23
|
+
noun: string;
|
|
24
|
+
when: string;
|
|
25
|
+
}) => string;
|
|
26
|
+
/** A refused save, by somebody else: the bold sentence. */
|
|
27
|
+
savedByOther: (v: {
|
|
28
|
+
name: string;
|
|
29
|
+
noun: string;
|
|
30
|
+
when: string;
|
|
31
|
+
}) => string;
|
|
32
|
+
/** A refused save: what it means for the work on screen. */
|
|
33
|
+
conflictBody: string;
|
|
34
|
+
/** A refused save: the tooltip on "Take over editing". */
|
|
35
|
+
takeOverWhileDeciding: string;
|
|
36
|
+
/** Somebody took the document from you: the bold sentence. */
|
|
37
|
+
tookOver: (v: {
|
|
38
|
+
name: string;
|
|
39
|
+
noun: string;
|
|
40
|
+
when: string;
|
|
41
|
+
}) => string;
|
|
42
|
+
/** Somebody took the document from you: what it means. */
|
|
43
|
+
tookOverBody: string;
|
|
44
|
+
/** You chose to look without touching: the bold sentence. */
|
|
45
|
+
viewingOnly: string;
|
|
46
|
+
/** You chose to look without touching: who has it. */
|
|
47
|
+
viewingOnlyBody: (v: {
|
|
48
|
+
name: string;
|
|
49
|
+
noun: string;
|
|
50
|
+
seen: string;
|
|
51
|
+
}) => string;
|
|
52
|
+
/** Somebody else is in the document: the bold START of the sentence. */
|
|
53
|
+
editing: (v: {
|
|
54
|
+
name: string;
|
|
55
|
+
noun: string;
|
|
56
|
+
}) => string;
|
|
57
|
+
/** Somebody else is in the document: the rest of that sentence, and the next. */
|
|
58
|
+
editingBody: (v: {
|
|
59
|
+
seen: string;
|
|
60
|
+
}) => string;
|
|
61
|
+
/** Somebody else is in the document: the tooltip on "Take over editing". */
|
|
62
|
+
takeOverTold: string;
|
|
63
|
+
};
|
|
64
|
+
type ChromeWords = {
|
|
65
|
+
/** `DeviceSwitch`: the strip's accessible name. */
|
|
66
|
+
device: string;
|
|
67
|
+
/** `InspectorUpLevel`: the tooltip. */
|
|
68
|
+
upLevel: string;
|
|
69
|
+
/** `InspectorUpLevel`: the accessible name. `label` is the tooltip, `name` the level above. */
|
|
70
|
+
upLevelTo: (v: {
|
|
71
|
+
label: string;
|
|
72
|
+
name: string;
|
|
73
|
+
}) => string;
|
|
74
|
+
/** `PanelResizeHandle`: the tooltip. */
|
|
75
|
+
resize: string;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export type { ChromeWords as C, NoticeWords as N };
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { MarkStyle, MarkPlaceholders } from './markup/index.js';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* WHICH WAY the text is pointed — the closed vocabulary, in the shell, once.
|
|
6
|
+
*
|
|
7
|
+
* The owner's words on 2026-09-26, and they are the specification rather than
|
|
8
|
+
* the motivation: "I am really fed up that these features are scattered with no
|
|
9
|
+
* fixed format."
|
|
10
|
+
*
|
|
11
|
+
* ── What was measured before this existed ────────────────────────────────────
|
|
12
|
+
* The campaign designer had ONE builder (`alignmentField`) and FIVE option
|
|
13
|
+
* tables behind it. The storefront had SIXTEEN alignment rows written THREE
|
|
14
|
+
* ways: a house `alignField()` (5 rows), four hand-written `segmented(
|
|
15
|
+
* "Alignment", …)` that bypassed it, and one `select`. They did not agree on the
|
|
16
|
+
* words — Left / Center / Right in fourteen rows, Start / Center / End in two —
|
|
17
|
+
* and they did not agree on the STORED value either: one row stores
|
|
18
|
+
* `start` / `center` / `end` where every other stores `left` / `center` /
|
|
19
|
+
* `right`.
|
|
20
|
+
*
|
|
21
|
+
* Two vocabularies on screen and two in storage, for one question.
|
|
22
|
+
*
|
|
23
|
+
* ── The two rules ────────────────────────────────────────────────────────────
|
|
24
|
+
* 1. ONE WORD SET: Left / Center / Right, plus Justify where a host can honour
|
|
25
|
+
* it. Not Start/End. It is what fourteen of the sixteen rows already show and
|
|
26
|
+
* what the campaign already uses.
|
|
27
|
+
* 2. ONE STORED VOCABULARY: `left` / `center` / `right` / `justify`. A host with
|
|
28
|
+
* a different stored spelling migrates to this one; it does not teach this
|
|
29
|
+
* module a second name for the same direction.
|
|
30
|
+
*
|
|
31
|
+
* ── Why the host still picks a SUBSET ────────────────────────────────────────
|
|
32
|
+
* A closed vocabulary is not the same as a fixed strip. `justify` reads as
|
|
33
|
+
* ragged, word-gapped nonsense in a ~320px email column, and a block whose
|
|
34
|
+
* renderer cannot honour a direction must not offer it. So the host names which
|
|
35
|
+
* of these four apply — and cannot name a fifth, which is the part that was
|
|
36
|
+
* missing.
|
|
37
|
+
*
|
|
38
|
+
* Deliberately NOT here: `inherit`. It is not a direction, it is the absence of
|
|
39
|
+
* an answer, and it is a property of the row a host draws (an empty value
|
|
40
|
+
* presses nothing — see `SettingsSegmented`'s `value`) rather than a segment
|
|
41
|
+
* with a glyph. A strip that drew it would be offering "no answer" as an answer.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
/** Every direction this package knows, in reading order. */
|
|
45
|
+
declare const COPY_ALIGNS: readonly ["left", "center", "right", "justify"];
|
|
46
|
+
type CopyAlign = (typeof COPY_ALIGNS)[number];
|
|
47
|
+
/** The word each direction is called. American spelling, per the product's own
|
|
48
|
+
* rule (British is for client-facing design work, not the product). The words
|
|
49
|
+
* themselves are ./words' (`EditorStrings.copy.align`); this is their English. */
|
|
50
|
+
declare const COPY_ALIGN_LABELS: Record<CopyAlign, string>;
|
|
51
|
+
/** The mark each direction draws. `justify` is `align-separate` — the icon
|
|
52
|
+
* set's own "rows pushed apart to both edges", which is what justified text
|
|
53
|
+
* is. The campaign designer already made this choice; it moves here rather
|
|
54
|
+
* than being made a second time. */
|
|
55
|
+
declare const COPY_ALIGN_GLYPHS: Record<CopyAlign, ReactNode>;
|
|
56
|
+
/**
|
|
57
|
+
* How wide this strip's WORDS are, for the drop-to-glyphs threshold.
|
|
58
|
+
*
|
|
59
|
+
* The number is the measurement `SettingsSegmented` asks for and nothing else:
|
|
60
|
+
* the chip's padding, glyph and gaps are the shell's, and `panel.css` adds them.
|
|
61
|
+
* An over-estimate is safe (the words drop a little early); an under-estimate
|
|
62
|
+
* draws a button past the strip's edge.
|
|
63
|
+
*
|
|
64
|
+
* THREE is measured, not guessed — `efficient-shop/components/PartSettingsPanel`
|
|
65
|
+
* had this exact pair as its own `ALIGN_FIT`, produced by
|
|
66
|
+
* `tests/fixtures/segmented-fit.html`. It moves here so the one alignment strip
|
|
67
|
+
* carries its own measurement, and that constant is deleted when the panel
|
|
68
|
+
* adopts this control.
|
|
69
|
+
*
|
|
70
|
+
* FOUR is an over-estimate, deliberately: "Justify" has never been drawn in a
|
|
71
|
+
* strip on this desk, so there is no measurement to move. Re-run the fixture and
|
|
72
|
+
* replace this pair with the real numbers the first time a host offers it.
|
|
73
|
+
*/
|
|
74
|
+
declare const COPY_ALIGN_FIT: {
|
|
75
|
+
readonly three: {
|
|
76
|
+
readonly labelsPx: 94.5;
|
|
77
|
+
readonly widestLabelPx: 39.94;
|
|
78
|
+
};
|
|
79
|
+
readonly four: {
|
|
80
|
+
readonly labelsPx: 140;
|
|
81
|
+
readonly widestLabelPx: 44;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
/** The strip's options, for the subset a host can honour. Order is always this
|
|
85
|
+
* module's, never the caller's array order — so two hosts offering the same
|
|
86
|
+
* three directions cannot draw them in two orders. `labels` is the words in
|
|
87
|
+
* the host's language (`useEditorStrings().copy.align`, 0.95.0); left out,
|
|
88
|
+
* English. */
|
|
89
|
+
declare function copyAlignOptions(allow: readonly CopyAlign[], labels?: Record<CopyAlign, string>): {
|
|
90
|
+
id: "left" | "right" | "center" | "justify";
|
|
91
|
+
label: string;
|
|
92
|
+
icon: ReactNode;
|
|
93
|
+
title: string;
|
|
94
|
+
}[];
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The copy box's own words (`efficient-easel/strings`, 0.95.0): the bar's and
|
|
98
|
+
* the alignment strip's names, the four directions, the link window, each mark
|
|
99
|
+
* button's name and tooltip, and the words a mark writes when nothing is
|
|
100
|
+
* selected.
|
|
101
|
+
*
|
|
102
|
+
* NO REACT here, and no import but the grammar: the marks' names, tooltips and
|
|
103
|
+
* placeholders are READ from `efficient-easel/markup` (`MARKUP_TOOLS`,
|
|
104
|
+
* `MARK_PLACEHOLDERS`) rather than typed a second time, so the English lives
|
|
105
|
+
* once, in the grammar, where the campaign designer's own toolbar reads it too.
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
type CopyWords = {
|
|
109
|
+
/** The formatting bar's accessible name. */
|
|
110
|
+
formatting: string;
|
|
111
|
+
/** The alignment strip's accessible name. */
|
|
112
|
+
alignment: string;
|
|
113
|
+
/** The word each direction is called. */
|
|
114
|
+
align: Record<CopyAlign, string>;
|
|
115
|
+
/** The link button's window. */
|
|
116
|
+
link: {
|
|
117
|
+
/** Its accessible name. */
|
|
118
|
+
title: string;
|
|
119
|
+
/** The label over the address box. */
|
|
120
|
+
label: string;
|
|
121
|
+
/** The address box's placeholder. */
|
|
122
|
+
placeholder: string;
|
|
123
|
+
/** Why an address was refused. */
|
|
124
|
+
refused: string;
|
|
125
|
+
remove: string;
|
|
126
|
+
apply: string;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Each mark button, for a bar handed STYLES (`tools={['bold', 'link']}`).
|
|
130
|
+
* `name` is what the button is called; `title` its tooltip, which also says
|
|
131
|
+
* what the mark writes and its shortcut. A host's own descriptors
|
|
132
|
+
* (`MarkupTool[]`) are used as given and never read these.
|
|
133
|
+
*/
|
|
134
|
+
marks: Record<MarkStyle, {
|
|
135
|
+
name: string;
|
|
136
|
+
title: string;
|
|
137
|
+
}>;
|
|
138
|
+
/** What a mark writes when nothing is selected — typed over at once. */
|
|
139
|
+
placeholders: MarkPlaceholders;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export { type CopyWords as C, type CopyAlign as a, COPY_ALIGNS as b, COPY_ALIGN_FIT as c, COPY_ALIGN_GLYPHS as d, COPY_ALIGN_LABELS as e, copyAlignOptions as f };
|
package/package.json
CHANGED
|
@@ -1,8 +1,207 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "efficient-easel",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.96.0",
|
|
4
|
+
"description": "Efficient Easel: the EFFICIENT editors' shared engine and chrome: the saved document as pure functions, the published renderer, and the editor frame, panels, Layers tree, text grammar and type-in-place box. Published as editor-shell up to 0.66.0 and as efficient-editor up to 0.95.0.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Efficient Pty Ltd",
|
|
7
|
-
"
|
|
7
|
+
"homepage": "https://github.com/Efficient-Pty-Ltd/efficient-easel#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/Efficient-Pty-Ltd/efficient-easel.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/Efficient-Pty-Ltd/efficient-easel/issues"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"type": "module",
|
|
19
|
+
"sideEffects": [
|
|
20
|
+
"**/*.css"
|
|
21
|
+
],
|
|
22
|
+
"main": "./dist/index.js",
|
|
23
|
+
"module": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"import": "./dist/index.js",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./rail": {
|
|
32
|
+
"types": "./dist/rail/index.d.ts",
|
|
33
|
+
"import": "./dist/rail/index.js",
|
|
34
|
+
"default": "./dist/rail/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./icons": {
|
|
37
|
+
"types": "./dist/icons/index.d.ts",
|
|
38
|
+
"import": "./dist/icons/index.js",
|
|
39
|
+
"default": "./dist/icons/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./menu": {
|
|
42
|
+
"types": "./dist/menu/index.d.ts",
|
|
43
|
+
"import": "./dist/menu/index.js",
|
|
44
|
+
"default": "./dist/menu/index.js"
|
|
45
|
+
},
|
|
46
|
+
"./menu.css": "./dist/menu/menu.css",
|
|
47
|
+
"./panel": {
|
|
48
|
+
"types": "./dist/panel/index.d.ts",
|
|
49
|
+
"import": "./dist/panel/index.js",
|
|
50
|
+
"default": "./dist/panel/index.js"
|
|
51
|
+
},
|
|
52
|
+
"./panel.css": "./dist/panel/panel.css",
|
|
53
|
+
"./rail.css": "./dist/rail/rail.css",
|
|
54
|
+
"./shell": {
|
|
55
|
+
"types": "./dist/shell/index.d.ts",
|
|
56
|
+
"import": "./dist/shell/index.js",
|
|
57
|
+
"default": "./dist/shell/index.js"
|
|
58
|
+
},
|
|
59
|
+
"./shell.css": "./dist/shell/shell.css",
|
|
60
|
+
"./chrome": {
|
|
61
|
+
"types": "./dist/chrome/index.d.ts",
|
|
62
|
+
"import": "./dist/chrome/index.js",
|
|
63
|
+
"default": "./dist/chrome/index.js"
|
|
64
|
+
},
|
|
65
|
+
"./chrome.css": "./dist/chrome/chrome.css",
|
|
66
|
+
"./tree": {
|
|
67
|
+
"types": "./dist/tree/index.d.ts",
|
|
68
|
+
"import": "./dist/tree/index.js",
|
|
69
|
+
"default": "./dist/tree/index.js"
|
|
70
|
+
},
|
|
71
|
+
"./tree.css": "./dist/tree/tree.css",
|
|
72
|
+
"./data": {
|
|
73
|
+
"types": "./dist/data/index.d.ts",
|
|
74
|
+
"import": "./dist/data/index.js",
|
|
75
|
+
"default": "./dist/data/index.js"
|
|
76
|
+
},
|
|
77
|
+
"./node-ops": {
|
|
78
|
+
"types": "./dist/node-ops/index.d.ts",
|
|
79
|
+
"import": "./dist/node-ops/index.js",
|
|
80
|
+
"default": "./dist/node-ops/index.js"
|
|
81
|
+
},
|
|
82
|
+
"./drag": {
|
|
83
|
+
"types": "./dist/drag/index.d.ts",
|
|
84
|
+
"import": "./dist/drag/index.js",
|
|
85
|
+
"default": "./dist/drag/index.js"
|
|
86
|
+
},
|
|
87
|
+
"./drag.css": "./dist/drag/drag.css",
|
|
88
|
+
"./pick": {
|
|
89
|
+
"types": "./dist/pick/index.d.ts",
|
|
90
|
+
"import": "./dist/pick/index.js",
|
|
91
|
+
"default": "./dist/pick/index.js"
|
|
92
|
+
},
|
|
93
|
+
"./pick.css": "./dist/pick/pick.css",
|
|
94
|
+
"./fields": {
|
|
95
|
+
"types": "./dist/fields/index.d.ts",
|
|
96
|
+
"import": "./dist/fields/index.js",
|
|
97
|
+
"default": "./dist/fields/index.js"
|
|
98
|
+
},
|
|
99
|
+
"./fields.css": "./dist/fields/fields.css",
|
|
100
|
+
"./editor": {
|
|
101
|
+
"types": "./dist/editor/index.d.ts",
|
|
102
|
+
"import": "./dist/editor/index.js",
|
|
103
|
+
"default": "./dist/editor/index.js"
|
|
104
|
+
},
|
|
105
|
+
"./editor.css": "./dist/editor/editor.css",
|
|
106
|
+
"./autosave": {
|
|
107
|
+
"types": "./dist/autosave/index.d.ts",
|
|
108
|
+
"import": "./dist/autosave/index.js",
|
|
109
|
+
"default": "./dist/autosave/index.js"
|
|
110
|
+
},
|
|
111
|
+
"./canvas": {
|
|
112
|
+
"types": "./dist/canvas/index.d.ts",
|
|
113
|
+
"import": "./dist/canvas/index.js",
|
|
114
|
+
"default": "./dist/canvas/index.js"
|
|
115
|
+
},
|
|
116
|
+
"./blocks": {
|
|
117
|
+
"types": "./dist/blocks/index.d.ts",
|
|
118
|
+
"import": "./dist/blocks/index.js",
|
|
119
|
+
"default": "./dist/blocks/index.js"
|
|
120
|
+
},
|
|
121
|
+
"./render": {
|
|
122
|
+
"types": "./dist/render/index.d.ts",
|
|
123
|
+
"import": "./dist/render/index.js",
|
|
124
|
+
"default": "./dist/render/index.js"
|
|
125
|
+
},
|
|
126
|
+
"./edit-lock": {
|
|
127
|
+
"types": "./dist/edit-lock/index.d.ts",
|
|
128
|
+
"import": "./dist/edit-lock/index.js",
|
|
129
|
+
"default": "./dist/edit-lock/index.js"
|
|
130
|
+
},
|
|
131
|
+
"./copy": {
|
|
132
|
+
"types": "./dist/copy/index.d.ts",
|
|
133
|
+
"import": "./dist/copy/index.js",
|
|
134
|
+
"default": "./dist/copy/index.js"
|
|
135
|
+
},
|
|
136
|
+
"./copy.css": "./dist/copy/copy.css",
|
|
137
|
+
"./gold": {
|
|
138
|
+
"types": "./dist/gold/index.d.ts",
|
|
139
|
+
"import": "./dist/gold/index.js",
|
|
140
|
+
"default": "./dist/gold/index.js"
|
|
141
|
+
},
|
|
142
|
+
"./gold.css": "./dist/gold/gold.css",
|
|
143
|
+
"./markup": {
|
|
144
|
+
"types": "./dist/markup/index.d.ts",
|
|
145
|
+
"import": "./dist/markup/index.js",
|
|
146
|
+
"default": "./dist/markup/index.js"
|
|
147
|
+
},
|
|
148
|
+
"./style-clipboard": {
|
|
149
|
+
"types": "./dist/style-clipboard/index.d.ts",
|
|
150
|
+
"import": "./dist/style-clipboard/index.js",
|
|
151
|
+
"default": "./dist/style-clipboard/index.js"
|
|
152
|
+
},
|
|
153
|
+
"./strings": {
|
|
154
|
+
"types": "./dist/strings/index.d.ts",
|
|
155
|
+
"import": "./dist/strings/index.js",
|
|
156
|
+
"default": "./dist/strings/index.js"
|
|
157
|
+
},
|
|
158
|
+
"./strings/catalogue": {
|
|
159
|
+
"types": "./dist/strings/catalogue.d.ts",
|
|
160
|
+
"import": "./dist/strings/catalogue.js",
|
|
161
|
+
"default": "./dist/strings/catalogue.js"
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"files": [
|
|
165
|
+
"dist"
|
|
166
|
+
],
|
|
167
|
+
"peerDependencies": {
|
|
168
|
+
"react": ">=18",
|
|
169
|
+
"react-dom": ">=18"
|
|
170
|
+
},
|
|
171
|
+
"devDependencies": {
|
|
172
|
+
"@types/jsdom": "^28.0.3",
|
|
173
|
+
"@types/node": "^22.0.0",
|
|
174
|
+
"@types/react": "^18.2.0",
|
|
175
|
+
"@types/react-dom": "^18.2.0",
|
|
176
|
+
"esbuild": "^0.27.0",
|
|
177
|
+
"jsdom": "^26.1.0",
|
|
178
|
+
"react": "^18.2.0",
|
|
179
|
+
"react-dom": "^18.2.0",
|
|
180
|
+
"terser": "^5.51.2",
|
|
181
|
+
"tsup": "^8.0.0",
|
|
182
|
+
"typescript": "^5.3.0"
|
|
183
|
+
},
|
|
184
|
+
"scripts": {
|
|
185
|
+
"build": "tsup && cp src/rail/rail.css dist/rail/rail.css && cp src/shell/shell.css dist/shell/shell.css && cp src/gold/gold.css dist/gold/gold.css && cp src/copy/copy.css dist/copy/copy.css && cp src/panel/panel.css dist/panel/panel.css && cp src/menu/menu.css dist/menu/menu.css && cp src/chrome/chrome.css dist/chrome/chrome.css && cp src/tree/tree.css dist/tree/tree.css && cp src/drag/drag.css dist/drag/drag.css && cp src/pick/pick.css dist/pick/pick.css && cp src/fields/fields.css dist/fields/fields.css && cp src/editor/editor.css dist/editor/editor.css",
|
|
186
|
+
"dev": "tsup --watch",
|
|
187
|
+
"typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
|
|
188
|
+
"test": "node scripts/test.mjs",
|
|
189
|
+
"verify:exports": "node scripts/verify-exports-resolve.mjs",
|
|
190
|
+
"clean": "rm -rf dist"
|
|
191
|
+
},
|
|
192
|
+
"keywords": [
|
|
193
|
+
"react",
|
|
194
|
+
"editor",
|
|
195
|
+
"ui-shell",
|
|
196
|
+
"rail",
|
|
197
|
+
"menu",
|
|
198
|
+
"toolbar",
|
|
199
|
+
"next",
|
|
200
|
+
"rsc",
|
|
201
|
+
"leaf"
|
|
202
|
+
],
|
|
203
|
+
"engines": {
|
|
204
|
+
"node": ">=20"
|
|
205
|
+
},
|
|
206
|
+
"packageManager": "npm@11.19.0"
|
|
8
207
|
}
|