@payload-onpage/react 0.2.1 → 0.3.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/dist/OnPageClient.d.ts.map +1 -1
- package/dist/OnPageClient.js +9 -5
- package/dist/OnPageClient.js.map +1 -1
- package/dist/annotations.d.ts +1 -1
- package/dist/annotations.d.ts.map +1 -1
- package/dist/context.d.ts +19 -5
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +31 -7
- package/dist/context.js.map +1 -1
- package/dist/dom.d.ts +16 -12
- package/dist/dom.d.ts.map +1 -1
- package/dist/dom.js +16 -16
- package/dist/dom.js.map +1 -1
- package/dist/editor/FieldHost.d.ts.map +1 -1
- package/dist/editor/FieldHost.js +18 -11
- package/dist/editor/FieldHost.js.map +1 -1
- package/dist/editor/OnPageEditor.d.ts +15 -8
- package/dist/editor/OnPageEditor.d.ts.map +1 -1
- package/dist/editor/OnPageEditor.js +73 -103
- package/dist/editor/OnPageEditor.js.map +1 -1
- package/dist/editor/editTarget.d.ts +28 -0
- package/dist/editor/editTarget.d.ts.map +1 -0
- package/dist/editor/editTarget.js +20 -0
- package/dist/editor/editTarget.js.map +1 -0
- package/dist/editor/useClientDocs.d.ts +4 -0
- package/dist/editor/useClientDocs.d.ts.map +1 -0
- package/dist/editor/useClientDocs.js +16 -0
- package/dist/editor/useClientDocs.js.map +1 -0
- package/dist/editor/useEditorSession.d.ts +13 -0
- package/dist/editor/useEditorSession.d.ts.map +1 -0
- package/dist/editor/useEditorSession.js +30 -0
- package/dist/editor/useEditorSession.js.map +1 -0
- package/dist/editor/useFlash.d.ts +4 -0
- package/dist/editor/useFlash.d.ts.map +1 -0
- package/dist/editor/useFlash.js +16 -0
- package/dist/editor/useFlash.js.map +1 -0
- package/dist/editor/useGhosts.d.ts +5 -7
- package/dist/editor/useGhosts.d.ts.map +1 -1
- package/dist/editor/useGhosts.js.map +1 -1
- package/dist/editor/usePageEvents.d.ts.map +1 -1
- package/dist/editor/usePageEvents.js +16 -16
- package/dist/editor/usePageEvents.js.map +1 -1
- package/dist/editor-kit.d.ts +10 -6
- package/dist/editor-kit.d.ts.map +1 -1
- package/dist/editor-kit.js +8 -5
- package/dist/editor-kit.js.map +1 -1
- package/dist/editors/CheckboxEditor.d.ts +6 -1
- package/dist/editors/CheckboxEditor.d.ts.map +1 -1
- package/dist/editors/CheckboxEditor.js +6 -3
- package/dist/editors/CheckboxEditor.js.map +1 -1
- package/dist/editors/ColorEditor.d.ts +3 -1
- package/dist/editors/ColorEditor.d.ts.map +1 -1
- package/dist/editors/ColorEditor.js +9 -15
- package/dist/editors/ColorEditor.js.map +1 -1
- package/dist/editors/DateEditor.d.ts +3 -1
- package/dist/editors/DateEditor.d.ts.map +1 -1
- package/dist/editors/DateEditor.js +10 -12
- package/dist/editors/DateEditor.js.map +1 -1
- package/dist/editors/InlineText.d.ts +2 -2
- package/dist/editors/InlineText.d.ts.map +1 -1
- package/dist/editors/InlineText.js +2 -3
- package/dist/editors/InlineText.js.map +1 -1
- package/dist/editors/NumberEditor.d.ts +3 -1
- package/dist/editors/NumberEditor.d.ts.map +1 -1
- package/dist/editors/NumberEditor.js +9 -17
- package/dist/editors/NumberEditor.js.map +1 -1
- package/dist/editors/RelationshipEditor.d.ts +7 -1
- package/dist/editors/RelationshipEditor.d.ts.map +1 -1
- package/dist/editors/RelationshipEditor.js +10 -18
- package/dist/editors/RelationshipEditor.js.map +1 -1
- package/dist/editors/SelectEditor.d.ts +4 -1
- package/dist/editors/SelectEditor.d.ts.map +1 -1
- package/dist/editors/SelectEditor.js +8 -13
- package/dist/editors/SelectEditor.js.map +1 -1
- package/dist/editors/UploadEditor.d.ts +7 -1
- package/dist/editors/UploadEditor.d.ts.map +1 -1
- package/dist/editors/UploadEditor.js +5 -5
- package/dist/editors/UploadEditor.js.map +1 -1
- package/dist/editors/index.d.ts +0 -1
- package/dist/editors/index.d.ts.map +1 -1
- package/dist/editors/index.js +56 -16
- package/dist/editors/index.js.map +1 -1
- package/dist/editors/kit.d.ts +39 -0
- package/dist/editors/kit.d.ts.map +1 -0
- package/dist/editors/kit.js +44 -0
- package/dist/editors/kit.js.map +1 -0
- package/dist/editors/useDebouncedSearch.d.ts +10 -6
- package/dist/editors/useDebouncedSearch.d.ts.map +1 -1
- package/dist/editors/useDebouncedSearch.js +11 -7
- package/dist/editors/useDebouncedSearch.js.map +1 -1
- package/dist/geometry.d.ts +49 -0
- package/dist/geometry.d.ts.map +1 -0
- package/dist/geometry.js +48 -0
- package/dist/geometry.js.map +1 -0
- package/dist/hub.d.ts +4 -4
- package/dist/hub.d.ts.map +1 -1
- package/dist/hub.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +4 -2
- package/dist/layout.js.map +1 -1
- package/dist/locators.d.ts +0 -2
- package/dist/locators.d.ts.map +1 -1
- package/dist/locators.js +10 -16
- package/dist/locators.js.map +1 -1
- package/dist/messages.d.ts +15 -2
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +5 -0
- package/dist/messages.js.map +1 -1
- package/dist/registry.d.ts +21 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +31 -6
- package/dist/registry.js.map +1 -1
- package/dist/rowOps.d.ts +20 -0
- package/dist/rowOps.d.ts.map +1 -0
- package/dist/rowOps.js +48 -0
- package/dist/rowOps.js.map +1 -0
- package/dist/sanitize.d.ts +2 -0
- package/dist/sanitize.d.ts.map +1 -1
- package/dist/sanitize.js +3 -0
- package/dist/sanitize.js.map +1 -1
- package/dist/settings.d.ts +10 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +30 -0
- package/dist/settings.js.map +1 -0
- package/dist/styles.d.ts +0 -4
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +2 -1
- package/dist/styles.js.map +1 -1
- package/dist/targets.d.ts +1 -1
- package/dist/targets.d.ts.map +1 -1
- package/dist/types.d.ts +71 -46
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/BlockPicker.d.ts.map +1 -1
- package/dist/ui/BlockPicker.js +6 -5
- package/dist/ui/BlockPicker.js.map +1 -1
- package/dist/ui/Dialog.d.ts +0 -5
- package/dist/ui/Dialog.d.ts.map +1 -1
- package/dist/ui/Dialog.js +10 -6
- package/dist/ui/Dialog.js.map +1 -1
- package/dist/ui/Dock.d.ts +1 -6
- package/dist/ui/Dock.d.ts.map +1 -1
- package/dist/ui/Dock.js +46 -28
- package/dist/ui/Dock.js.map +1 -1
- package/dist/ui/Overlay.d.ts.map +1 -1
- package/dist/ui/Overlay.js +39 -37
- package/dist/ui/Overlay.js.map +1 -1
- package/dist/ui/PreviewToolbar.d.ts +3 -3
- package/dist/ui/PreviewToolbar.d.ts.map +1 -1
- package/dist/ui/PreviewToolbar.js +4 -6
- package/dist/ui/PreviewToolbar.js.map +1 -1
- package/dist/ui/SettingsPanel.d.ts +0 -9
- package/dist/ui/SettingsPanel.d.ts.map +1 -1
- package/dist/ui/SettingsPanel.js +36 -41
- package/dist/ui/SettingsPanel.js.map +1 -1
- package/dist/ui/ToolbarButton.d.ts +12 -0
- package/dist/ui/ToolbarButton.d.ts.map +1 -0
- package/dist/ui/ToolbarButton.js +7 -0
- package/dist/ui/ToolbarButton.js.map +1 -0
- package/dist/useEvent.d.ts +1 -1
- package/dist/useEvent.d.ts.map +1 -1
- package/dist/useEvent.js +3 -1
- package/dist/useEvent.js.map +1 -1
- package/dist/useIsClient.d.ts +5 -0
- package/dist/useIsClient.d.ts.map +1 -0
- package/dist/useIsClient.js +8 -0
- package/dist/useIsClient.js.map +1 -0
- package/package.json +2 -2
- package/src/OnPageClient.tsx +9 -5
- package/src/annotations.ts +1 -1
- package/src/context.tsx +53 -10
- package/src/dom.ts +17 -18
- package/src/editor/FieldHost.tsx +26 -11
- package/src/editor/OnPageEditor.tsx +103 -160
- package/src/editor/editTarget.ts +41 -0
- package/src/editor/useClientDocs.ts +19 -0
- package/src/editor/useEditorSession.ts +36 -0
- package/src/editor/useFlash.ts +18 -0
- package/src/editor/useGhosts.ts +5 -7
- package/src/editor/usePageEvents.ts +13 -14
- package/src/editor-kit.ts +10 -6
- package/src/editors/CheckboxEditor.tsx +11 -12
- package/src/editors/ColorEditor.tsx +15 -35
- package/src/editors/DateEditor.tsx +18 -37
- package/src/editors/InlineText.tsx +4 -5
- package/src/editors/NumberEditor.tsx +15 -36
- package/src/editors/RelationshipEditor.tsx +18 -36
- package/src/editors/SelectEditor.tsx +14 -22
- package/src/editors/UploadEditor.tsx +6 -6
- package/src/editors/index.ts +56 -16
- package/src/editors/kit.tsx +97 -0
- package/src/editors/useDebouncedSearch.ts +18 -10
- package/src/geometry.ts +62 -0
- package/src/hub.ts +5 -5
- package/src/index.ts +5 -2
- package/src/layout.ts +5 -2
- package/src/locators.ts +11 -14
- package/src/messages.ts +26 -5
- package/src/registry.ts +42 -8
- package/src/rowOps.ts +64 -0
- package/src/sanitize.ts +6 -0
- package/src/settings.ts +49 -0
- package/src/styles.ts +2 -1
- package/src/targets.ts +1 -1
- package/src/types.ts +78 -45
- package/src/ui/BlockPicker.tsx +6 -7
- package/src/ui/Dialog.tsx +9 -5
- package/src/ui/Dock.tsx +67 -50
- package/src/ui/Overlay.tsx +75 -102
- package/src/ui/PreviewToolbar.tsx +7 -15
- package/src/ui/SettingsPanel.tsx +84 -81
- package/src/ui/ToolbarButton.tsx +36 -0
- package/src/useEvent.ts +4 -2
- package/src/useIsClient.ts +15 -0
package/dist/locators.d.ts
CHANGED
|
@@ -9,8 +9,6 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { type Locator } from '@payload-onpage/core';
|
|
11
11
|
export declare function annotations(): Locator;
|
|
12
|
-
/** "layout.2.items.0.title" → ["layout.2", "layout.2.items.0"] (row paths, outermost first). */
|
|
13
|
-
export declare function rowPrefixes(path: string): string[];
|
|
14
12
|
export declare function stega(opts?: {
|
|
15
13
|
inferRows?: boolean;
|
|
16
14
|
}): Locator;
|
package/dist/locators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locators.d.ts","sourceRoot":"","sources":["../src/locators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"locators.d.ts","sourceRoot":"","sources":["../src/locators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAQL,KAAK,OAAO,EAGb,MAAM,sBAAsB,CAAA;AAI7B,wBAAgB,WAAW,IAAI,OAAO,CA6BrC;AAeD,wBAAgB,KAAK,CAAC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CA2GjE;AAED,4HAA4H;AAC5H,wBAAgB,SAAS,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CA4BzD"}
|
package/dist/locators.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* inferred rows and lists for array/blocks content
|
|
8
8
|
* composite() merge several; earlier locators win for the same element+path
|
|
9
9
|
*/
|
|
10
|
-
import { parseRefKey, targetKey, stegaDecode, } from '@payload-onpage/core';
|
|
10
|
+
import { hasStegaMarker, isTargetKind, parseRefKey, rowPrefixes, targetKey, stegaDecode, } from '@payload-onpage/core';
|
|
11
11
|
import { ATTR } from "./annotations.js";
|
|
12
12
|
import { UI } from "./dom.js";
|
|
13
13
|
export function annotations() {
|
|
@@ -21,12 +21,14 @@ export function annotations() {
|
|
|
21
21
|
return;
|
|
22
22
|
const label = el.getAttribute(ATTR.label) ?? undefined;
|
|
23
23
|
const field = el.getAttribute(ATTR.field);
|
|
24
|
+
const kind = el.getAttribute(ATTR.kind);
|
|
24
25
|
if (field)
|
|
25
26
|
out.push({
|
|
26
27
|
el,
|
|
27
28
|
ref,
|
|
28
29
|
path: field,
|
|
29
|
-
|
|
30
|
+
// Page markup is input: an unknown kind is treated as a plain field.
|
|
31
|
+
kind: isTargetKind(kind) ? kind : 'field',
|
|
30
32
|
label,
|
|
31
33
|
source: 'annotation',
|
|
32
34
|
});
|
|
@@ -46,7 +48,7 @@ const SKIP_TAGS = new Set(['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEMPLATE', 'TEXTAREA'
|
|
|
46
48
|
function commonAncestor(els) {
|
|
47
49
|
if (!els.length)
|
|
48
50
|
return null;
|
|
49
|
-
let anc = els[0];
|
|
51
|
+
let anc = els[0] ?? null;
|
|
50
52
|
for (const el of els.slice(1)) {
|
|
51
53
|
while (anc && !anc.contains(el))
|
|
52
54
|
anc = anc.parentElement;
|
|
@@ -55,15 +57,6 @@ function commonAncestor(els) {
|
|
|
55
57
|
}
|
|
56
58
|
return anc;
|
|
57
59
|
}
|
|
58
|
-
/** "layout.2.items.0.title" → ["layout.2", "layout.2.items.0"] (row paths, outermost first). */
|
|
59
|
-
export function rowPrefixes(path) {
|
|
60
|
-
const segs = path.split('.');
|
|
61
|
-
const out = [];
|
|
62
|
-
for (let i = 1; i < segs.length; i++)
|
|
63
|
-
if (/^\d+$/.test(segs[i]) && i < segs.length - 1)
|
|
64
|
-
out.push(segs.slice(0, i + 1).join('.'));
|
|
65
|
-
return out;
|
|
66
|
-
}
|
|
67
60
|
export function stega(opts = {}) {
|
|
68
61
|
const inferRows = opts.inferRows ?? true;
|
|
69
62
|
return {
|
|
@@ -87,7 +80,7 @@ export function stega(opts = {}) {
|
|
|
87
80
|
const walker = doc.createTreeWalker(root, 4 /* NodeFilter.SHOW_TEXT */);
|
|
88
81
|
for (let n = walker.nextNode(); n; n = walker.nextNode()) {
|
|
89
82
|
const text = n.nodeValue;
|
|
90
|
-
if (!text || !text
|
|
83
|
+
if (!text || !hasStegaMarker(text))
|
|
91
84
|
continue;
|
|
92
85
|
const parent = n.parentElement;
|
|
93
86
|
if (!parent || SKIP_TAGS.has(parent.tagName) || parent.closest(`[${UI}]`))
|
|
@@ -119,9 +112,10 @@ export function stega(opts = {}) {
|
|
|
119
112
|
rich.set(k, [...(rich.get(k) ?? []), t]);
|
|
120
113
|
}
|
|
121
114
|
for (const group of rich.values()) {
|
|
115
|
+
const [first] = group;
|
|
122
116
|
const el = commonAncestor(group.map((t) => t.el));
|
|
123
|
-
if (el)
|
|
124
|
-
out.push({ ...
|
|
117
|
+
if (first && el)
|
|
118
|
+
out.push({ ...first, el });
|
|
125
119
|
}
|
|
126
120
|
if (!inferRows)
|
|
127
121
|
return out;
|
|
@@ -171,7 +165,7 @@ export function stega(opts = {}) {
|
|
|
171
165
|
byList.set(k, entry);
|
|
172
166
|
}
|
|
173
167
|
for (const { ref, path, els } of byList.values()) {
|
|
174
|
-
const anc = els.length > 1 ? commonAncestor(els) : els[0]
|
|
168
|
+
const anc = els.length > 1 ? commonAncestor(els) : (els[0]?.parentElement ?? null);
|
|
175
169
|
if (anc && anc !== root)
|
|
176
170
|
rows.push({ el: anc, ref, path, kind: 'list', source: 'stega' });
|
|
177
171
|
}
|
package/dist/locators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locators.js","sourceRoot":"","sources":["../src/locators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,GAKZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAE7B,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,IAAI,CAAC,IAAI;YACP,MAAM,GAAG,GAAa,EAAE,CAAA;YACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACpD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;gBACxD,IAAI,CAAC,GAAG;oBAAE,OAAM;gBAChB,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAA;gBACtD,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACzC,IAAI,KAAK;oBACP,GAAG,CAAC,IAAI,CAAC;wBACP,EAAE;wBACF,GAAG;wBACH,IAAI,EAAE,KAAK;wBACX,IAAI,
|
|
1
|
+
{"version":3,"file":"locators.js","sourceRoot":"","sources":["../src/locators.ts"],"names":[],"mappings":"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"}
|
package/dist/messages.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare const defaultMessages: {
|
|
|
7
7
|
readonly 'dock.label': "Page editor";
|
|
8
8
|
readonly 'dock.loading': "Loading editor…";
|
|
9
9
|
readonly 'dock.unavailable': "{doc}: {error}";
|
|
10
|
+
readonly 'dock.saveFailed': "{doc}: {message}";
|
|
10
11
|
readonly 'dock.nothing': "Nothing editable on this page";
|
|
11
12
|
readonly 'dock.conflict': "{doc}: changed by someone else";
|
|
12
13
|
readonly 'dock.saving': "Saving draft…";
|
|
@@ -44,6 +45,8 @@ export declare const defaultMessages: {
|
|
|
44
45
|
readonly 'row.settings': "Settings";
|
|
45
46
|
readonly 'row.delete': "Delete (undo with ⌘Z)";
|
|
46
47
|
readonly 'row.addSection': "Add section";
|
|
48
|
+
readonly 'row.addSectionAbove': "Add section above";
|
|
49
|
+
readonly 'row.addSectionBelow': "Add section below";
|
|
47
50
|
readonly 'row.addFirstSection': "Add a section";
|
|
48
51
|
readonly 'row.addItem': "Add {item}";
|
|
49
52
|
readonly 'row.toolbar': "{label} actions";
|
|
@@ -56,6 +59,7 @@ export declare const defaultMessages: {
|
|
|
56
59
|
readonly 'common.apply': "Apply";
|
|
57
60
|
readonly 'common.clear': "Clear";
|
|
58
61
|
readonly 'common.remove': "Remove";
|
|
62
|
+
readonly 'common.removeItem': "Remove {item}";
|
|
59
63
|
readonly 'common.none': "—";
|
|
60
64
|
readonly 'common.selected': "{count} selected";
|
|
61
65
|
readonly 'search.placeholder': "Search…";
|
|
@@ -81,6 +85,7 @@ export declare const defaultMessages: {
|
|
|
81
85
|
readonly 'rt.italic': "Italic";
|
|
82
86
|
readonly 'rt.underline': "Underline";
|
|
83
87
|
readonly 'rt.link': "Link";
|
|
88
|
+
readonly 'rt.linkApply': "Apply";
|
|
84
89
|
readonly 'rt.h2': "Heading 2";
|
|
85
90
|
readonly 'rt.h3': "Heading 3";
|
|
86
91
|
readonly 'rt.ul': "Bulleted list";
|
|
@@ -92,8 +97,16 @@ export declare const defaultMessages: {
|
|
|
92
97
|
};
|
|
93
98
|
export type MessageKey = keyof typeof defaultMessages;
|
|
94
99
|
export type Messages = Partial<Record<MessageKey, string>>;
|
|
95
|
-
/**
|
|
96
|
-
export type
|
|
100
|
+
/** The {placeholders} of a message: `Placeholders<'Saved {when}'>` is `'when'`. */
|
|
101
|
+
export type Placeholders<S extends string> = S extends `${string}{${infer Name}}${infer Rest}` ? Name | Placeholders<Rest> : never;
|
|
102
|
+
/** The variables a message needs, by key. */
|
|
103
|
+
export type MessageVars<K extends MessageKey> = Record<Placeholders<(typeof defaultMessages)[K]>, string | number>;
|
|
104
|
+
/**
|
|
105
|
+
* Translate a message key. A message with placeholders requires exactly those
|
|
106
|
+
* variables (`t('dock.saved', { ago })`); one without takes none. Unknown keys
|
|
107
|
+
* don't compile: show raw text without `t`.
|
|
108
|
+
*/
|
|
109
|
+
export type Translate = <K extends MessageKey>(key: K, ...vars: [Placeholders<(typeof defaultMessages)[K]>] extends [never] ? [] : [vars: MessageVars<K>]) => string;
|
|
97
110
|
export declare function createTranslate(overrides?: Messages): Translate;
|
|
98
111
|
/** "5 seconds ago", "2 minutes ago", in the browser's language. */
|
|
99
112
|
export declare function relativeTime(ts: number, now?: number, locale?: string): string;
|
package/dist/messages.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FlB,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,eAAe,CAAA;AACrD,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;AAE1D,mFAAmF;AACnF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GAC1F,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,GACzB,KAAK,CAAA;AAET,6CAA6C;AAC7C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,MAAM,CACpD,YAAY,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EACzC,MAAM,GAAG,MAAM,CAChB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,UAAU,EAC3C,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAC/F,MAAM,CAAA;AAEX,wBAAgB,eAAe,CAAC,SAAS,GAAE,QAAa,GAAG,SAAS,CAQnE;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,SAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlF"}
|
package/dist/messages.js
CHANGED
|
@@ -7,6 +7,7 @@ export const defaultMessages = {
|
|
|
7
7
|
'dock.label': 'Page editor',
|
|
8
8
|
'dock.loading': 'Loading editor…',
|
|
9
9
|
'dock.unavailable': '{doc}: {error}',
|
|
10
|
+
'dock.saveFailed': '{doc}: {message}',
|
|
10
11
|
'dock.nothing': 'Nothing editable on this page',
|
|
11
12
|
'dock.conflict': '{doc}: changed by someone else',
|
|
12
13
|
'dock.saving': 'Saving draft…',
|
|
@@ -44,6 +45,8 @@ export const defaultMessages = {
|
|
|
44
45
|
'row.settings': 'Settings',
|
|
45
46
|
'row.delete': 'Delete (undo with ⌘Z)',
|
|
46
47
|
'row.addSection': 'Add section',
|
|
48
|
+
'row.addSectionAbove': 'Add section above',
|
|
49
|
+
'row.addSectionBelow': 'Add section below',
|
|
47
50
|
'row.addFirstSection': 'Add a section',
|
|
48
51
|
'row.addItem': 'Add {item}',
|
|
49
52
|
'row.toolbar': '{label} actions',
|
|
@@ -56,6 +59,7 @@ export const defaultMessages = {
|
|
|
56
59
|
'common.apply': 'Apply',
|
|
57
60
|
'common.clear': 'Clear',
|
|
58
61
|
'common.remove': 'Remove',
|
|
62
|
+
'common.removeItem': 'Remove {item}',
|
|
59
63
|
'common.none': '—',
|
|
60
64
|
'common.selected': '{count} selected',
|
|
61
65
|
'search.placeholder': 'Search…',
|
|
@@ -81,6 +85,7 @@ export const defaultMessages = {
|
|
|
81
85
|
'rt.italic': 'Italic',
|
|
82
86
|
'rt.underline': 'Underline',
|
|
83
87
|
'rt.link': 'Link',
|
|
88
|
+
'rt.linkApply': 'Apply',
|
|
84
89
|
'rt.h2': 'Heading 2',
|
|
85
90
|
'rt.h3': 'Heading 3',
|
|
86
91
|
'rt.ul': 'Bulleted list',
|
package/dist/messages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,aAAa;IAC3B,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,gBAAgB;IACpC,cAAc,EAAE,+BAA+B;IAC/C,eAAe,EAAE,gCAAgC;IACjD,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,gBAAgB;IACjC,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,eAAe;IAC/B,gBAAgB,EAAE,mBAAmB;IACrC,mBAAmB,EACjB,yHAAyH;IAC3H,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,cAAc,EAAE,SAAS;IACzB,kBAAkB,EAAE,qCAAqC;IACzD,YAAY,EAAE,OAAO;IACrB,gBAAgB,EAAE,qCAAqC;IACvD,cAAc,EAAE,SAAS;IACzB,qBAAqB,EAAE,kBAAkB;IACzC,kBAAkB,EAAE,8DAA8D;IAClF,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,aAAa;IAChC,kBAAkB,EAAE,aAAa;IACjC,yBAAyB,EAAE,oBAAoB;IAC/C,sBAAsB,EAAE,2BAA2B;IACnD,kBAAkB,EAAE,sCAAsC;IAC1D,mBAAmB,EAAE,0CAA0C;IAC/D,mBAAmB,EAAE,2CAA2C;IAChE,gBAAgB,EAAE,qBAAqB;IACvC,iBAAiB,EAAE,uBAAuB;IAC1C,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,WAAW;IAC5B,cAAc,EAAE,UAAU;IAC1B,YAAY,EAAE,uBAAuB;IACrC,gBAAgB,EAAE,aAAa;IAC/B,qBAAqB,EAAE,eAAe;IACtC,aAAa,EAAE,YAAY;IAC3B,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,gBAAgB;IAClC,sBAAsB,EAAE,eAAe;IACvC,sBAAsB,EAAE,eAAe;IACvC,cAAc,EAAE,aAAa;IAC7B,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,OAAO;IACvB,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE,GAAG;IAClB,iBAAiB,EAAE,kBAAkB;IACrC,oBAAoB,EAAE,SAAS;IAC/B,oBAAoB,EAAE,0CAA0C;IAChE,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,kBAAkB;IACjC,YAAY,EAAE,WAAW;IACzB,eAAe,EAAE,UAAU;IAC3B,cAAc,EAAE,cAAc;IAC9B,eAAe,EAAE,eAAe;IAChC,eAAe,EAAE,OAAO;IACxB,gBAAgB,EAAE,oCAAoC;IACtD,aAAa,EAAE,sBAAsB;IACrC,eAAe,EAAE,OAAO;IACxB,gBAAgB,EAAE,QAAQ;IAC1B,iBAAiB,EAAE,SAAS;IAC5B,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,MAAM;IACtB,uBAAuB,EAAE,gBAAgB;IACzC,YAAY,EAAE,iBAAiB;IAC/B,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,WAAW;IAC3B,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,MAAM;IACjB,oBAAoB,EAAE,6CAA6C;IACnE,gBAAgB,EAAE,iDAAiD;CAC3D,CAAA;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -7,9 +7,28 @@
|
|
|
7
7
|
* No match: the field isn't edited in place (it may still be in the row's
|
|
8
8
|
* settings panel).
|
|
9
9
|
*/
|
|
10
|
-
import type { SchemaField, TargetKind } from '@payload-onpage/core';
|
|
11
|
-
import type { EditorRegistry } from './types.ts';
|
|
10
|
+
import type { FieldOf, SchemaField, SchemaFieldType, TargetKind } from '@payload-onpage/core';
|
|
11
|
+
import type { EditorRegistry, FieldEditorDef, FieldEditorProps } from './types.ts';
|
|
12
|
+
import type { ComponentType } from 'react';
|
|
13
|
+
/** Can this editor take this field? Its declared kinds, and never a list of values in place. */
|
|
14
|
+
export declare function canEdit(def: FieldEditorDef | undefined, field: SchemaField): def is FieldEditorDef;
|
|
12
15
|
export declare function resolveEditor(editors: EditorRegistry, field: SchemaField, kind?: TargetKind): string | null;
|
|
13
16
|
/** Merge registries left to right; `null` removes a default. */
|
|
14
17
|
export declare function mergeEditors(...regs: Array<Record<string, EditorRegistry[string] | null> | undefined>): EditorRegistry;
|
|
18
|
+
/**
|
|
19
|
+
* Define a field editor typed by the field kinds it accepts:
|
|
20
|
+
*
|
|
21
|
+
* defineEditor({
|
|
22
|
+
* mode: 'popover',
|
|
23
|
+
* accepts: ['number'],
|
|
24
|
+
* normalize: (raw) => (typeof raw === 'number' ? raw : null),
|
|
25
|
+
* component: ({ field, value }) => … // field: NumberField, value: number | null
|
|
26
|
+
* })
|
|
27
|
+
*/
|
|
28
|
+
export declare function defineEditor<T extends SchemaFieldType, V = unknown>(def: {
|
|
29
|
+
mode: FieldEditorDef['mode'];
|
|
30
|
+
accepts: readonly T[];
|
|
31
|
+
normalize?: (raw: unknown, field: FieldOf<T>) => V;
|
|
32
|
+
component: ComponentType<FieldEditorProps<FieldOf<T>, V>>;
|
|
33
|
+
}): FieldEditorDef;
|
|
15
34
|
//# sourceMappingURL=registry.d.ts.map
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAM1C,gGAAgG;AAChG,wBAAgB,OAAO,CACrB,GAAG,EAAE,cAAc,GAAG,SAAS,EAC/B,KAAK,EAAE,WAAW,GACjB,GAAG,IAAI,cAAc,CAIvB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,WAAW,EAClB,IAAI,CAAC,EAAE,UAAU,GAChB,MAAM,GAAG,IAAI,CASf;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAC1B,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,GACxE,cAAc,CAUhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE;IACxE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,OAAO,EAAE,SAAS,CAAC,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAClD,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAC1D,GAAG,cAAc,CAIjB"}
|
package/dist/registry.js
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
const KIND_EDITOR = { richtext: 'richText', media: 'upload' };
|
|
2
|
-
|
|
2
|
+
/** Field types a "text" marker or annotation keeps as their own editor (email stays email). */
|
|
3
|
+
const TEXT_TYPES = new Set(['text', 'textarea', 'email']);
|
|
4
|
+
/** Can this editor take this field? Its declared kinds, and never a list of values in place. */
|
|
5
|
+
export function canEdit(def, field) {
|
|
6
|
+
if (!def)
|
|
7
|
+
return false;
|
|
8
|
+
if (def.accepts && !def.accepts.includes(field.type))
|
|
9
|
+
return false;
|
|
10
|
+
return !(def.mode === 'inline' && 'hasMany' in field && field.hasMany);
|
|
11
|
+
}
|
|
3
12
|
export function resolveEditor(editors, field, kind) {
|
|
4
|
-
|
|
13
|
+
const ok = (id) => !!id && canEdit(editors[id], field);
|
|
14
|
+
if (ok(field.editor))
|
|
5
15
|
return field.editor;
|
|
6
|
-
|
|
7
|
-
if ((kind === 'text' || kind === 'textarea') && TEXTUAL.has(field.type) && editors[field.type])
|
|
16
|
+
if ((kind === 'text' || kind === 'textarea') && TEXT_TYPES.has(field.type) && ok(field.type))
|
|
8
17
|
return field.type;
|
|
9
18
|
const byKind = kind ? KIND_EDITOR[kind] : undefined;
|
|
10
|
-
|
|
19
|
+
// A "media" marker means the image picker only for upload fields (an <img alt> can show a text field).
|
|
20
|
+
if (ok(byKind) && (byKind !== 'upload' || field.type === 'upload'))
|
|
11
21
|
return byKind;
|
|
12
|
-
return
|
|
22
|
+
return ok(field.type) ? field.type : null;
|
|
13
23
|
}
|
|
14
24
|
/** Merge registries left to right; `null` removes a default. */
|
|
15
25
|
export function mergeEditors(...regs) {
|
|
@@ -26,4 +36,19 @@ export function mergeEditors(...regs) {
|
|
|
26
36
|
}
|
|
27
37
|
return out;
|
|
28
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Define a field editor typed by the field kinds it accepts:
|
|
41
|
+
*
|
|
42
|
+
* defineEditor({
|
|
43
|
+
* mode: 'popover',
|
|
44
|
+
* accepts: ['number'],
|
|
45
|
+
* normalize: (raw) => (typeof raw === 'number' ? raw : null),
|
|
46
|
+
* component: ({ field, value }) => … // field: NumberField, value: number | null
|
|
47
|
+
* })
|
|
48
|
+
*/
|
|
49
|
+
export function defineEditor(def) {
|
|
50
|
+
// Widened once, here: resolveEditor only hands it fields whose type is in `accepts`,
|
|
51
|
+
// and FieldHost runs `normalize` before rendering.
|
|
52
|
+
return def;
|
|
53
|
+
}
|
|
29
54
|
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,GAAwC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AAClG,+FAA+F;AAC/F,MAAM,UAAU,GAAiC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;AAEvF,gGAAgG;AAChG,MAAM,UAAU,OAAO,CACrB,GAA+B,EAC/B,KAAkB;IAElB,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IACtB,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAClE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAuB,EACvB,KAAkB,EAClB,IAAiB;IAEjB,MAAM,EAAE,GAAG,CAAC,EAAsB,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IACxF,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAA;IACzC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1F,OAAO,KAAK,CAAC,IAAI,CAAA;IACnB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACnD,uGAAuG;IACvG,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAA;IACjF,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3C,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAC1B,GAAG,IAAsE;IAEzE,MAAM,GAAG,GAAmB,EAAE,CAAA;IAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC;YAAE,SAAQ;QAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;;gBACZ,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAyC,GAKpE;IACC,qFAAqF;IACrF,mDAAmD;IACnD,OAAO,GAAgC,CAAA;AACzC,CAAC"}
|
package/dist/rowOps.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Row operations on array and blocks fields, with one set of rules (bounds,
|
|
3
|
+
* `minRows`, `maxRows`) for the toolbar, the keyboard shortcuts, the block
|
|
4
|
+
* picker and "+ Add". Each returns where the selection should go, or null when
|
|
5
|
+
* the operation isn't allowed (nothing changes).
|
|
6
|
+
*/
|
|
7
|
+
import { type EditorSession, type RowInfo, type RefKey } from '@payload-onpage/core';
|
|
8
|
+
import type { Selection } from './types.ts';
|
|
9
|
+
/** Insert a row into the list at `listPath`; returns the new row's selection. */
|
|
10
|
+
export declare function insertRow(session: EditorSession, key: RefKey, listPath: string, index: number, row: unknown): Selection;
|
|
11
|
+
export declare function rowOps(session: EditorSession, key: RefKey, info: RowInfo): {
|
|
12
|
+
canMove: (dir: -1 | 1) => boolean;
|
|
13
|
+
canDuplicate: boolean;
|
|
14
|
+
canRemove: boolean;
|
|
15
|
+
move(dir: -1 | 1): Selection | null;
|
|
16
|
+
duplicate(): Selection | null;
|
|
17
|
+
/** Removes the row; true when it did. */
|
|
18
|
+
remove(): boolean;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=rowOps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rowOps.d.ts","sourceRoot":"","sources":["../src/rowOps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,MAAM,EACZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAO3C,iFAAiF;AACjF,wBAAgB,SAAS,CACvB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,GACX,SAAS,CAGX;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;mBAIjD,CAAC,CAAC,GAAG,CAAC;;;cAOhB,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI;iBAKtB,SAAS,GAAG,IAAI;IAK7B,yCAAyC;cAC/B,OAAO;EAMpB"}
|
package/dist/rowOps.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Row operations on array and blocks fields, with one set of rules (bounds,
|
|
3
|
+
* `minRows`, `maxRows`) for the toolbar, the keyboard shortcuts, the block
|
|
4
|
+
* picker and "+ Add". Each returns where the selection should go, or null when
|
|
5
|
+
* the operation isn't allowed (nothing changes).
|
|
6
|
+
*/
|
|
7
|
+
import { cloneRow, insertItem, moveItem, removeItem, updateArray, } from '@payload-onpage/core';
|
|
8
|
+
const rowAt = (key, listPath, index) => ({
|
|
9
|
+
key,
|
|
10
|
+
path: `${listPath}.${index}`,
|
|
11
|
+
});
|
|
12
|
+
/** Insert a row into the list at `listPath`; returns the new row's selection. */
|
|
13
|
+
export function insertRow(session, key, listPath, index, row) {
|
|
14
|
+
session.apply(key, (d) => updateArray(d, listPath, (a) => insertItem(a, index, row)));
|
|
15
|
+
return rowAt(key, listPath, index);
|
|
16
|
+
}
|
|
17
|
+
export function rowOps(session, key, info) {
|
|
18
|
+
const { listPath, index, length, rowFields, listField } = info;
|
|
19
|
+
const apply = (fn) => session.apply(key, (d) => updateArray(d, listPath, fn));
|
|
20
|
+
const canMove = (dir) => index + dir >= 0 && index + dir < length;
|
|
21
|
+
const canDuplicate = listField.maxRows === undefined || length < listField.maxRows;
|
|
22
|
+
const canRemove = length > (listField.minRows ?? 0);
|
|
23
|
+
return {
|
|
24
|
+
canMove,
|
|
25
|
+
canDuplicate,
|
|
26
|
+
canRemove,
|
|
27
|
+
move(dir) {
|
|
28
|
+
if (!canMove(dir))
|
|
29
|
+
return null;
|
|
30
|
+
apply((a) => moveItem(a, index, index + dir));
|
|
31
|
+
return rowAt(key, listPath, index + dir);
|
|
32
|
+
},
|
|
33
|
+
duplicate() {
|
|
34
|
+
if (!canDuplicate)
|
|
35
|
+
return null;
|
|
36
|
+
apply((a) => insertItem(a, index + 1, cloneRow(a[index], rowFields)));
|
|
37
|
+
return rowAt(key, listPath, index + 1);
|
|
38
|
+
},
|
|
39
|
+
/** Removes the row; true when it did. */
|
|
40
|
+
remove() {
|
|
41
|
+
if (!canRemove)
|
|
42
|
+
return false;
|
|
43
|
+
apply((a) => removeItem(a, index));
|
|
44
|
+
return true;
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=rowOps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rowOps.js","sourceRoot":"","sources":["../src/rowOps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,GAIZ,MAAM,sBAAsB,CAAA;AAG7B,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,KAAa,EAAa,EAAE,CAAC,CAAC;IAC1E,GAAG;IACH,IAAI,EAAE,GAAG,QAAQ,IAAI,KAAK,EAAE;CAC7B,CAAC,CAAA;AAEF,iFAAiF;AACjF,MAAM,UAAU,SAAS,CACvB,OAAsB,EACtB,GAAW,EACX,QAAgB,EAChB,KAAa,EACb,GAAY;IAEZ,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACrF,OAAO,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAsB,EAAE,GAAW,EAAE,IAAa;IACvE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC9D,MAAM,KAAK,GAAG,CAAC,EAAkC,EAAE,EAAE,CACnD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAA;IACzD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG,GAAG,MAAM,CAAA;IACzE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,CAAA;IAClF,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC,CAAA;IACnD,OAAO;QACL,OAAO;QACP,YAAY;QACZ,SAAS;QACT,IAAI,CAAC,GAAW;YACd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC9B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,CAAA;YAC7C,OAAO,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAG,GAAG,CAAC,CAAA;QAC1C,CAAC;QACD,SAAS;YACP,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAA;YAC9B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;YACrE,OAAO,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QACxC,CAAC;QACD,yCAAyC;QACzC,MAAM;YACJ,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAA;YAC5B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/sanitize.d.ts
CHANGED
package/dist/sanitize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AA2BA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBjD"}
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AA2BA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBjD;AAED,qCAAqC;AACrC,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,MAC0B,CAAA"}
|
package/dist/sanitize.js
CHANGED
|
@@ -46,4 +46,7 @@ export function sanitizeHtml(html) {
|
|
|
46
46
|
walk(tpl.content);
|
|
47
47
|
return tpl.innerHTML;
|
|
48
48
|
}
|
|
49
|
+
/** Text made safe to put in HTML. */
|
|
50
|
+
export const escapeHtml = (s) => s.replace(/[&<>"]/g, (c) => ESCAPES[c]);
|
|
51
|
+
const ESCAPES = { '&': '&', '<': '<', '>': '>', '"': '"' };
|
|
49
52
|
//# sourceMappingURL=sanitize.js.map
|
package/dist/sanitize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;IACnB,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,KAAK;IACL,MAAM;CACP,CAAC,CAAA;AACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEpG,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IAC9C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;IACpB,MAAM,IAAI,GAAG,CAAC,IAAgB,EAAE,EAAE;QAChC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACvC,EAAE,CAAC,MAAM,EAAE,CAAA;gBACX,SAAQ;YACV,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;gBACpC,IACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACrB,IAAI,KAAK,OAAO;oBAChB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACjD,CAAC;oBACD,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAA;QACV,CAAC;IACH,CAAC,CAAA;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACjB,OAAO,GAAG,CAAC,SAAS,CAAA;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;IACnB,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,KAAK;IACL,MAAM;CACP,CAAC,CAAA;AACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEpG,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;IAC9C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;IACpB,MAAM,IAAI,GAAG,CAAC,IAAgB,EAAE,EAAE;QAChC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACvC,EAAE,CAAC,MAAM,EAAE,CAAA;gBACX,SAAQ;YACV,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;gBACpC,IACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACrB,IAAI,KAAK,OAAO;oBAChB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACjD,CAAC;oBACD,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAA;QACV,CAAC;IACH,CAAC,CAAA;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACjB,OAAO,GAAG,CAAC,SAAS,CAAA;AACtB,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAC9C,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAyB,CAAC,CAAC,CAAA;AAEjE,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAW,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which fields of a row appear in its settings panel: values that aren't edited
|
|
3
|
+
* on the page itself (layout selects, toggles, numbers, links, images that
|
|
4
|
+
* aren't shown…). Fields shown on the page are edited there instead.
|
|
5
|
+
*/
|
|
6
|
+
import type { SchemaField, RefKey } from '@payload-onpage/core';
|
|
7
|
+
import type { TargetIndex } from './types.ts';
|
|
8
|
+
export declare function settable(field: SchemaField, path: string, key: RefKey, targets: TargetIndex): boolean;
|
|
9
|
+
export declare const hasSettings: (fields: SchemaField[], path: string, key: RefKey, targets: TargetIndex) => boolean;
|
|
10
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAgB7C,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,GACnB,OAAO,CAcT;AAED,eAAO,MAAM,WAAW,GACtB,QAAQ,WAAW,EAAE,EACrB,MAAM,MAAM,EACZ,KAAK,MAAM,EACX,SAAS,WAAW,KACnB,OAA8D,CAAA"}
|
package/dist/settings.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Row bookkeeping, never a setting. */
|
|
2
|
+
const SKIP = new Set(['id', 'blockType', 'blockName']);
|
|
3
|
+
/** Types shown in the panel when the page doesn't show them (choices and toggles always are). */
|
|
4
|
+
const PANEL_FIELD_TYPES = new Set([
|
|
5
|
+
'text',
|
|
6
|
+
'textarea',
|
|
7
|
+
'email',
|
|
8
|
+
'number',
|
|
9
|
+
'date',
|
|
10
|
+
'relationship',
|
|
11
|
+
'upload',
|
|
12
|
+
]);
|
|
13
|
+
export function settable(field, path, key, targets) {
|
|
14
|
+
if (SKIP.has(field.name))
|
|
15
|
+
return false;
|
|
16
|
+
const full = `${path}.${field.name}`;
|
|
17
|
+
switch (field.type) {
|
|
18
|
+
case 'select':
|
|
19
|
+
case 'radio':
|
|
20
|
+
case 'checkbox':
|
|
21
|
+
return true;
|
|
22
|
+
case 'group':
|
|
23
|
+
return field.fields.some((f) => settable(f, full, key, targets));
|
|
24
|
+
default:
|
|
25
|
+
// Shown on the page? Edit it there.
|
|
26
|
+
return PANEL_FIELD_TYPES.has(field.type) && !targets.find(key, full);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export const hasSettings = (fields, path, key, targets) => fields.some((f) => settable(f, path, key, targets));
|
|
30
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAQA,wCAAwC;AACxC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;AAEtD,iGAAiG;AACjG,MAAM,iBAAiB,GAAiC,IAAI,GAAG,CAAC;IAC9D,MAAM;IACN,UAAU;IACV,OAAO;IACP,QAAQ;IACR,MAAM;IACN,cAAc;IACd,QAAQ;CACT,CAAC,CAAA;AAEF,MAAM,UAAU,QAAQ,CACtB,KAAkB,EAClB,IAAY,EACZ,GAAW,EACX,OAAoB;IAEpB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;IACpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACb,OAAO,IAAI,CAAA;QACb,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;QAClE;YACE,oCAAoC;YACpC,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,MAAqB,EACrB,IAAY,EACZ,GAAW,EACX,OAAoB,EACX,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA"}
|
package/dist/styles.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The editor's own styles, injected once. Everything is prefixed `po-` and set
|
|
3
|
-
* explicitly, so the host site's CSS (and its absence) doesn't matter.
|
|
4
|
-
*/
|
|
5
1
|
export declare const PO_Z = 2147483000;
|
|
6
2
|
export declare const PO_CSS = "\n.po-layer{position:fixed;inset:0;pointer-events:none;z-index:2147483000;font:13px/1.35 system-ui,-apple-system,\"Segoe UI\",sans-serif;color:#0f172a}\n.po-layer *{box-sizing:border-box}\n.po-outline{position:fixed;border:2px solid #4f7cff;border-radius:4px;pointer-events:none;transition:all .06s ease-out}\n.po-outline.is-block{border-style:dashed;border-color:#4f7cff99}\n.po-outline.is-item{border-color:#22a06b}\n.po-chip{position:fixed;transform:translateY(-100%);background:#3b63e0;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px 4px 0 0;white-space:nowrap;pointer-events:none}\n.po-chip.is-item{background:#167a45}\n.po-bar{position:fixed;display:flex;gap:2px;padding:3px;background:#0f172a;border-radius:8px;box-shadow:0 6px 24px #0f172a40;pointer-events:auto}\n.po-bar.is-item{background:#14532d}\n.po-btn{all:unset;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:28px;height:28px;padding:0 8px;border-radius:6px;color:#fff;font:600 12px/1 system-ui,-apple-system,sans-serif;cursor:pointer;white-space:nowrap}\n.po-btn:hover{background:#ffffff1f}\n.po-btn:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}\n.po-btn[disabled]{opacity:.35;cursor:default;background:none}\n.po-btn.is-danger:hover{background:#ef444455}\n.po-add{position:fixed;transform:translate(-50%,-50%);pointer-events:auto}\n.po-add .po-btn{background:#3b63e0;box-shadow:0 2px 10px #4f7cff66;height:24px;font-size:11px}\n.po-add .po-btn:hover{background:#2f5bd9}\n.po-add.is-item .po-btn{background:#167a45;box-shadow:0 2px 10px #167a4555}\n.po-panel{position:fixed;width:320px;max-height:min(70vh,560px);overflow:auto;background:#fff;color:#0f172a;border-radius:12px;box-shadow:0 20px 60px #0f172a40,0 0 0 1px #0f172a14;pointer-events:auto;padding:14px}\n.po-panel .po-h3{margin:0 0 10px;font:700 13px/1.2 system-ui,sans-serif}\n.po-panel .po-h4{margin:14px 0 6px;font:600 11px/1.2 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:#64748b}\n.po-row{display:flex;flex-direction:column;gap:4px;margin:0 0 10px}\n.po-row label{font-weight:600;font-size:12px}\n.po-row small{color:#64748b;font-size:11px}\n.po-input,.po-select{all:unset;box-sizing:border-box;width:100%;height:32px;padding:0 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font:13px system-ui,sans-serif;color:#0f172a}\n.po-select{appearance:auto;-webkit-appearance:auto}\n.po-input:focus,.po-select:focus{border-color:#4f7cff;box-shadow:0 0 0 3px #4f7cff33}\n.po-check{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}\n.po-seg{display:flex;flex-wrap:wrap;gap:4px}\n.po-seg button{all:unset;padding:5px 9px;border:1px solid #cbd5e1;border-radius:7px;font:12px system-ui,sans-serif;cursor:pointer;background:#fff}\n.po-seg button[aria-pressed=\"true\"]{background:#0f172a;color:#fff;border-color:#0f172a}\n.po-modal-bg{position:fixed;inset:0;background:#0f172a66;pointer-events:auto;display:flex;align-items:center;justify-content:center;padding:24px}\n.po-modal{width:min(880px,100%);max-height:85vh;display:flex;flex-direction:column;background:#fff;border-radius:14px;box-shadow:0 30px 80px #0f172a55;overflow:hidden}\n.po-modal header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #e2e8f0}\n.po-modal header .po-h3{margin:0;flex:1;font:700 14px system-ui,sans-serif}\n.po-modal .po-body{padding:14px 16px;overflow:auto}\n.po-modal .po-btn{color:#0f172a}\n.po-modal .po-btn:hover{background:#f1f5f9}\n.po-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}\n.po-tile{all:unset;display:flex;flex-direction:column;gap:6px;cursor:pointer;border-radius:10px;padding:6px;border:2px solid transparent}\n.po-tile:hover,.po-tile:focus-visible{border-color:#4f7cff;background:#f8fafc}\n.po-tile img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:#f1f5f9}\n.po-tile span{font-size:11px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.po-blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}\n.po-blocks button{all:unset;padding:14px;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;font:600 13px system-ui,sans-serif}\n.po-blocks button:hover,.po-blocks button:focus-visible{border-color:#4f7cff;background:#f5f8ff}\n.po-dock{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}\n.po-dock .po-status{padding:0 10px;font-size:12px;opacity:.85;white-space:nowrap}\n.po-dock .po-status.is-bad{color:#fca5a5;opacity:1}\n.po-dock .po-sep{width:1px;height:20px;background:#ffffff26;margin:0 4px}\n.po-dock .po-primary{background:#3b63e0}\n.po-dock .po-primary:hover{background:#2f5bd9}\n.po-chip-locale{padding:2px 7px;border-radius:999px;background:#ffffff1f;font-size:11px;font-weight:700;text-transform:uppercase}\n.po-notice{position:fixed;left:50%;bottom:72px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));padding:8px 12px;border-radius:10px;background:#fffbeb;color:#78350f;border:1px solid #fcd34d;font-size:12px;pointer-events:auto}\n.po-doc-layer{position:absolute;top:0;left:0;width:0;height:0;overflow:visible;z-index:2147483000;pointer-events:none;font:13px/1.35 system-ui,-apple-system,\"Segoe UI\",sans-serif}\n.po-inline{position:absolute;pointer-events:auto;outline:2px solid #4f7cff;outline-offset:2px;border-radius:2px;background:transparent;white-space:pre-wrap;word-break:break-word;caret-color:currentColor;cursor:text}\n.po-inline:focus{outline-color:#4f7cff}\n.po-rt{position:absolute;pointer-events:auto}\n.po-rt-surface{outline:2px solid #4f7cff;outline-offset:6px;border-radius:2px;min-height:1.5em}\n.po-rt-surface:focus{outline:2px solid #4f7cff}\n.po-rt-toolbar{position:absolute;left:0;top:-48px;display:flex;gap:2px;padding:3px;background:#0f172a;border-radius:8px;box-shadow:0 6px 24px #0f172a40}\n.po-rt-toolbar .po-btn[aria-pressed=\"true\"]{background:#ffffff2e}\n.po-pop{position:fixed;min-width:220px;max-width:340px;background:#fff;color:#0f172a;border-radius:10px;box-shadow:0 14px 40px #0f172a40,0 0 0 1px #0f172a14;pointer-events:auto;padding:10px}\n.po-pop .po-row{margin-bottom:8px}\n.po-pop-list{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow:auto}\n.po-pop-list button{all:unset;padding:7px 9px;border-radius:7px;cursor:pointer;font:13px system-ui,sans-serif}\n.po-pop-list button:hover,.po-pop-list button:focus-visible,.po-pop-list button[aria-selected=\"true\"]{background:#eef2ff}\n.po-ghost{position:absolute;pointer-events:none;white-space:pre-wrap;word-break:break-word}\n.po-docs{font-size:11px;padding:2px 7px;border-radius:999px;background:#ffffff1f}\n.po-frame-bg{position:fixed;inset:0;background:#0f172acc;pointer-events:auto;display:flex;flex-direction:column;align-items:center;padding:56px 16px 16px}\n.po-frame-bg iframe{background:#fff;border:0;border-radius:12px;box-shadow:0 30px 80px #0008;height:100%;max-width:100%}\n.po-badge{padding:2px 8px;border-radius:999px;background:#f59e0b;color:#111;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}\n.po-b{font-weight:700}.po-i{font-style:italic}.po-u{text-decoration:underline}\n.po-opaque{display:inline-flex;align-items:center;gap:6px;margin:6px 0;padding:6px 10px;border:1px dashed #94a3b8;border-radius:8px;background:#f8fafc;color:#475569;font:12px system-ui,sans-serif;user-select:none}\nhtml[data-onpage-editing] [data-onpage-field]{cursor:pointer}\n[data-onpage-hidden=\"true\"]{visibility:hidden!important}\n.po-preview{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}\n.po-preview .po-status{padding:0 8px;font-size:12px;opacity:.85}\n.po-rel-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;background:#f1f5f9;font-size:12px;margin:0 0 4px}\n.po-rel-item button{all:unset;cursor:pointer;margin-left:auto;padding:0 4px;color:#64748b}\n\n.po-dialog-head{display:flex;align-items:center;gap:8px;margin:0 0 10px}\n.po-modal .po-dialog-head{margin:0;padding:14px 16px;border-bottom:1px solid #e2e8f0}\n.po-dialog-head .po-h3{flex:1;margin:0;font:700 14px/1.2 system-ui,sans-serif}\n.po-close{color:#0f172a;min-width:24px;height:24px}\n.po-close:hover{background:#f1f5f9}\n.po-bar-label{cursor:default;opacity:.8}\n.po-muted{color:#64748b;margin:6px 0}\n.po-error{color:#b91c1c;margin:6px 0}\n.po-center{text-align:center;margin-top:12px}\n.po-actions{display:flex;gap:6px}\n.po-inline-row{flex-direction:row;align-items:center}\n.po-search{width:240px}\n.po-picker{cursor:pointer;display:flex;align-items:center}\n.po-group{border:0;margin:0;padding:0}\n.po-primary,.po-pop .po-primary,.po-panel .po-primary{background:#3b63e0;color:#fff}\n.po-primary:hover{background:#2f5bd9}\n.po-pop .po-btn,.po-panel .po-btn{color:#0f172a}\n.po-pop .po-btn.po-primary,.po-panel .po-btn.po-primary{color:#fff}\n.po-frame-close{all:unset;position:absolute;inset:0;cursor:pointer}\n.po-frame-bg iframe{position:relative}\n.po-input[aria-invalid=\"true\"]{border-color:#dc2626}\nhtml[data-onpage-editing] [data-onpage-focusable]:focus-visible{outline:2px solid #4f7cff;outline-offset:2px}\n@media (prefers-reduced-motion:reduce){.po-outline{transition:none}}\n";
|
|
7
3
|
export declare function injectStyles(): void;
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,aAAa,CAAA;AAE9B,eAAO,MAAM,MAAM,s5SAyGlB,CAAA;AAGD,wBAAgB,YAAY,SAO3B"}
|
package/dist/styles.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* The editor's own styles, injected once. Everything is prefixed `po-` and set
|
|
3
3
|
* explicitly, so the host site's CSS (and its absence) doesn't matter.
|
|
4
4
|
*/
|
|
5
|
+
import { DOM_ATTR } from "./dom.js";
|
|
5
6
|
export const PO_Z = 2147483000;
|
|
6
7
|
export const PO_CSS = `
|
|
7
8
|
.po-layer{position:fixed;inset:0;pointer-events:none;z-index:${PO_Z};font:13px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;color:#0f172a}
|
|
@@ -115,7 +116,7 @@ export function injectStyles() {
|
|
|
115
116
|
return;
|
|
116
117
|
injected = true;
|
|
117
118
|
const el = document.createElement('style');
|
|
118
|
-
el.setAttribute(
|
|
119
|
+
el.setAttribute(DOM_ATTR.styles, '');
|
|
119
120
|
el.textContent = PO_CSS;
|
|
120
121
|
document.head.appendChild(el);
|
|
121
122
|
}
|
package/dist/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAA;AAE9B,MAAM,CAAC,MAAM,MAAM,GAAG;+DACyC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFAsDsB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD5F,CAAA;AAED,IAAI,QAAQ,GAAG,KAAK,CAAA;AACpB,MAAM,UAAU,YAAY;IAC1B,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IACvD,QAAQ,GAAG,IAAI,CAAA;IACf,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC1C,EAAE,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAA;AAE9B,MAAM,CAAC,MAAM,MAAM,GAAG;+DACyC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFAsDsB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD5F,CAAA;AAED,IAAI,QAAQ,GAAG,KAAK,CAAA;AACpB,MAAM,UAAU,YAAY;IAC1B,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IACvD,QAAQ,GAAG,IAAI,CAAA;IACf,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC1C,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACpC,EAAE,CAAC,WAAW,GAAG,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC"}
|
package/dist/targets.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare const isRowTarget: (t: Target) => boolean;
|
|
|
11
11
|
export declare function buildIndex(all: Target[]): TargetIndex;
|
|
12
12
|
/** The innermost field target and all row targets (innermost first) at or above `el`. */
|
|
13
13
|
export declare function targetsAt(index: TargetIndex, el: Element | null): {
|
|
14
|
-
field?: Target;
|
|
14
|
+
field?: Target | undefined;
|
|
15
15
|
rows: Target[];
|
|
16
16
|
};
|
|
17
17
|
export declare function useTargets(locator: Locator, root: () => ParentNode | null): TargetIndex;
|
package/dist/targets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,EAAa,KAAK,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,sBAAsB,CAAA;AAI5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7C,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,OAAkC,CAAA;AAC5E,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,OAA4B,CAAA;AAEpE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,CAoBrD;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,OAAO,GAAG,IAAI,GACjB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,EAAa,KAAK,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,sBAAsB,CAAA;AAI5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7C,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,OAAkC,CAAA;AAC5E,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,OAA4B,CAAA;AAEpE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,CAoBrD;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,OAAO,GAAG,IAAI,GACjB;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAUhD;AAYD,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,GAAG,IAAI,GAAG,WAAW,CAkCvF"}
|