@payload-onpage/react 0.2.0 → 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePageEvents.js","sourceRoot":"","sources":["../../src/editor/usePageEvents.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"usePageEvents.js","sourceRoot":"","sources":["../../src/editor/usePageEvents.ts"],"names":[],"mappings":"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"}
|
package/dist/editor-kit.d.ts
CHANGED
|
@@ -2,18 +2,22 @@
|
|
|
2
2
|
* @payload-onpage/react/editor-kit — building blocks for custom field editors
|
|
3
3
|
* (the default editors and @payload-onpage/lexical use exactly these).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* const json = defineEditor({
|
|
6
|
+
* mode: 'popover',
|
|
7
|
+
* accepts: ['json'],
|
|
8
|
+
* component: (props) => <EditorPopover props={props} testId="my-json">…</EditorPopover>,
|
|
9
|
+
* })
|
|
8
10
|
*/
|
|
9
11
|
export { Dialog, type DialogProps } from './ui/Dialog.tsx';
|
|
10
12
|
export { useOnPage } from './context.tsx';
|
|
11
13
|
export { useDebouncedSearch } from './editors/useDebouncedSearch.ts';
|
|
12
|
-
export {
|
|
14
|
+
export { ApplyBar, EditorPopover, useDraft } from './editors/kit.tsx';
|
|
15
|
+
export { canEdit, defineEditor } from './registry.ts';
|
|
13
16
|
export { HIDDEN, UI, caretAt, copyTypography, placeCaret, placeOver, typographyOf, popoverPosition, } from './dom.ts';
|
|
14
17
|
export { useTrackElement, useLayoutTick, notifyLayout } from './layout.ts';
|
|
15
18
|
export { useEvent } from './useEvent.ts';
|
|
16
|
-
export { sanitizeHtml } from './sanitize.ts';
|
|
17
|
-
export type { EditorRegistry, FieldEditorDef, FieldEditorProps } from './types.ts';
|
|
19
|
+
export { escapeHtml, sanitizeHtml } from './sanitize.ts';
|
|
20
|
+
export type { EditorRegistry, FieldEditorDef, FieldEditorProps, GhostInput } from './types.ts';
|
|
21
|
+
export type { FieldOf } from '@payload-onpage/core';
|
|
18
22
|
export type { Translate } from './messages.ts';
|
|
19
23
|
//# sourceMappingURL=editor-kit.d.ts.map
|
package/dist/editor-kit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-kit.d.ts","sourceRoot":"","sources":["../src/editor-kit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"editor-kit.d.ts","sourceRoot":"","sources":["../src/editor-kit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EACL,MAAM,EACN,EAAE,EACF,OAAO,EACP,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC9F,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/editor-kit.js
CHANGED
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
* @payload-onpage/react/editor-kit — building blocks for custom field editors
|
|
3
3
|
* (the default editors and @payload-onpage/lexical use exactly these).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* const json = defineEditor({
|
|
6
|
+
* mode: 'popover',
|
|
7
|
+
* accepts: ['json'],
|
|
8
|
+
* component: (props) => <EditorPopover props={props} testId="my-json">…</EditorPopover>,
|
|
9
|
+
* })
|
|
8
10
|
*/
|
|
9
11
|
export { Dialog } from "./ui/Dialog.js";
|
|
10
12
|
export { useOnPage } from "./context.js";
|
|
11
13
|
export { useDebouncedSearch } from "./editors/useDebouncedSearch.js";
|
|
12
|
-
export {
|
|
14
|
+
export { ApplyBar, EditorPopover, useDraft } from "./editors/kit.js";
|
|
15
|
+
export { canEdit, defineEditor } from "./registry.js";
|
|
13
16
|
export { HIDDEN, UI, caretAt, copyTypography, placeCaret, placeOver, typographyOf, popoverPosition, } from "./dom.js";
|
|
14
17
|
export { useTrackElement, useLayoutTick, notifyLayout } from "./layout.js";
|
|
15
18
|
export { useEvent } from "./useEvent.js";
|
|
16
|
-
export { sanitizeHtml } from "./sanitize.js";
|
|
19
|
+
export { escapeHtml, sanitizeHtml } from "./sanitize.js";
|
|
17
20
|
//# sourceMappingURL=editor-kit.js.map
|
package/dist/editor-kit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-kit.js","sourceRoot":"","sources":["../src/editor-kit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"editor-kit.js","sourceRoot":"","sources":["../src/editor-kit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,EAAoB,MAAM,gBAAiB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAe,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAmB,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EACL,MAAM,EACN,EAAE,EACF,OAAO,EACP,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import type { ScalarField } from '@payload-onpage/core';
|
|
1
2
|
import type { FieldEditorProps } from '../types.ts';
|
|
2
|
-
|
|
3
|
+
/** A checkbox value (unset falls back to the field's default). */
|
|
4
|
+
export declare const checkedOf: (raw: unknown, field: {
|
|
5
|
+
defaultValue?: unknown;
|
|
6
|
+
}) => boolean;
|
|
7
|
+
export declare function CheckboxEditor(props: FieldEditorProps<ScalarField, boolean>): import("react").JSX.Element;
|
|
3
8
|
//# sourceMappingURL=CheckboxEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxEditor.d.ts","sourceRoot":"","sources":["../../src/editors/CheckboxEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,
|
|
1
|
+
{"version":3,"file":"CheckboxEditor.d.ts","sourceRoot":"","sources":["../../src/editors/CheckboxEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,kEAAkE;AAClE,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,EAAE,OAAO;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,OACxC,CAAA;AAEpC,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,+BAmB3E"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { EditorPopover } from "./kit.js";
|
|
4
|
+
/** A checkbox value (unset falls back to the field's default). */
|
|
5
|
+
export const checkedOf = (raw, field) => Boolean(raw ?? field.defaultValue);
|
|
6
|
+
export function CheckboxEditor(props) {
|
|
7
|
+
const { field, value, commit, close } = props;
|
|
8
|
+
return (_jsx(EditorPopover, { props: props, testId: "onpage-checkbox", children: _jsxs("label", { className: "po-check", children: [_jsx("input", { type: "checkbox", "data-autofocus": true, checked: value, onChange: (e) => {
|
|
6
9
|
commit(e.target.checked);
|
|
7
10
|
close();
|
|
8
11
|
}, "data-testid": "onpage-checkbox-input" }), field.label] }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxEditor.js","sourceRoot":"","sources":["../../src/editors/CheckboxEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"CheckboxEditor.js","sourceRoot":"","sources":["../../src/editors/CheckboxEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,aAAa,EAAE,MAAM,UAAW,CAAA;AAEzC,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,KAAiC,EAAW,EAAE,CACpF,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;AAEpC,MAAM,UAAU,cAAc,CAAC,KAA6C;IAC1E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAC7C,OAAO,CACL,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,iBAAiB,YACnD,iBAAO,SAAS,EAAC,UAAU,aACzB,gBACE,IAAI,EAAC,UAAU,0BAEf,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;wBACxB,KAAK,EAAE,CAAA;oBACT,CAAC,iBACW,uBAAuB,GACnC,EACD,KAAK,CAAC,KAAK,IACN,GACM,CACjB,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { ScalarField } from '@payload-onpage/core';
|
|
1
2
|
import type { FieldEditorProps } from '../types.ts';
|
|
3
|
+
export declare const toColor: (raw: unknown) => string | null;
|
|
2
4
|
/** Hex color with a native picker. Use it from a text field: `admin.custom.onpage.editor: 'color'`. */
|
|
3
|
-
export declare function ColorEditor(
|
|
5
|
+
export declare function ColorEditor(props: FieldEditorProps<ScalarField, string | null>): import("react").JSX.Element;
|
|
4
6
|
//# sourceMappingURL=ColorEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorEditor.d.ts","sourceRoot":"","sources":["../../src/editors/ColorEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ColorEditor.d.ts","sourceRoot":"","sources":["../../src/editors/ColorEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKnD,eAAO,MAAM,OAAO,GAAI,KAAK,OAAO,KAAG,MAAM,GAAG,IACH,CAAA;AAE7C,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,+BA+B9E"}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import { Dialog } from "../ui/Dialog.js";
|
|
3
|
+
import { ApplyBar, EditorPopover, useDraft } from "./kit.js";
|
|
5
4
|
const HEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
|
|
5
|
+
export const toColor = (raw) => typeof raw === 'string' && raw ? raw : null;
|
|
6
6
|
/** Hex color with a native picker. Use it from a text field: `admin.custom.onpage.editor: 'color'`. */
|
|
7
|
-
export function ColorEditor(
|
|
8
|
-
const
|
|
9
|
-
const change = (
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
const save = () => {
|
|
15
|
-
if (draft !== (value ?? '') && (draft === '' || HEX.test(draft)))
|
|
16
|
-
commit(draft || null);
|
|
17
|
-
close();
|
|
18
|
-
};
|
|
19
|
-
return (_jsxs(Dialog, { variant: "popover", anchor: element, title: field.label, onClose: close, t: t, width: 260, testId: "onpage-color", children: [_jsxs("div", { className: "po-row po-inline-row", children: [_jsx("input", { type: "color", "aria-label": field.label, value: HEX.test(draft) && draft.length === 7 ? draft : '#000000', onChange: (e) => change(e.target.value), "data-testid": "onpage-color-picker" }), _jsx("input", { className: "po-input", "aria-label": field.label, "data-autofocus": true, value: draft, placeholder: "#1e40af", "aria-invalid": draft !== '' && !HEX.test(draft), onChange: (e) => change(e.target.value), onKeyDown: (e) => e.key === 'Enter' && save(), "data-testid": "onpage-color-input" })] }), _jsx("button", { type: "button", className: "po-btn po-primary", onClick: save, "data-testid": "onpage-apply", children: t('common.apply') })] }));
|
|
7
|
+
export function ColorEditor(props) {
|
|
8
|
+
const { field, t } = props;
|
|
9
|
+
const { draft, change, save, onKeyDown } = useDraft(props, {
|
|
10
|
+
format: (v) => v ?? '',
|
|
11
|
+
parse: (d) => (d === '' ? null : HEX.test(d) ? d : undefined),
|
|
12
|
+
});
|
|
13
|
+
return (_jsxs(EditorPopover, { props: props, testId: "onpage-color", width: 260, children: [_jsxs("div", { className: "po-row po-inline-row", children: [_jsx("input", { type: "color", "aria-label": field.label, value: HEX.test(draft) && draft.length === 7 ? draft : '#000000', onChange: (e) => change(e.target.value), "data-testid": "onpage-color-picker" }), _jsx("input", { className: "po-input", "aria-label": field.label, "data-autofocus": true, value: draft, placeholder: "#1e40af", "aria-invalid": draft !== '' && !HEX.test(draft), onChange: (e) => change(e.target.value), onKeyDown: onKeyDown, "data-testid": "onpage-color-input" })] }), _jsx(ApplyBar, { onApply: save, t: t })] }));
|
|
20
14
|
}
|
|
21
15
|
//# sourceMappingURL=ColorEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorEditor.js","sourceRoot":"","sources":["../../src/editors/ColorEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"ColorEditor.js","sourceRoot":"","sources":["../../src/editors/ColorEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAW,CAAA;AAE7D,MAAM,GAAG,GAAG,iCAAiC,CAAA;AAE7C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAY,EAAiB,EAAE,CACrD,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAE7C,uGAAuG;AACvG,MAAM,UAAU,WAAW,CAAC,KAAmD;IAC7E,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE;QACzD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACtB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAC9D,CAAC,CAAA;IACF,OAAO,CACL,MAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,cAAc,EAAC,KAAK,EAAE,GAAG,aAC3D,eAAK,SAAS,EAAC,sBAAsB,aACnC,gBACE,IAAI,EAAC,OAAO,gBACA,KAAK,CAAC,KAAK,EACvB,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAChE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,iBAC3B,qBAAqB,GACjC,EACF,gBACE,SAAS,EAAC,UAAU,gBACR,KAAK,CAAC,KAAK,0BAEvB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAC,SAAS,kBACP,KAAK,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAC9C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,SAAS,EAAE,SAAS,iBACR,oBAAoB,GAChC,IACE,EACN,KAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAI,IACnB,CACjB,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { DateField } from '@payload-onpage/core';
|
|
1
2
|
import type { FieldEditorProps } from '../types.ts';
|
|
2
|
-
export declare
|
|
3
|
+
export declare const toIsoDate: (raw: unknown) => string | null;
|
|
4
|
+
export declare function DateEditor(props: FieldEditorProps<DateField, string | null>): import("react").JSX.Element;
|
|
3
5
|
//# sourceMappingURL=DateEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateEditor.d.ts","sourceRoot":"","sources":["../../src/editors/DateEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateEditor.d.ts","sourceRoot":"","sources":["../../src/editors/DateEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAanD,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,MAAM,GAAG,IACL,CAAA;AAE7C,wBAAgB,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,+BAyB3E"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import { Dialog } from "../ui/Dialog.js";
|
|
3
|
+
import { ApplyBar, EditorPopover, useDraft } from "./kit.js";
|
|
5
4
|
/** Payload stores dates as ISO strings; the input works in local time. */
|
|
6
5
|
const toLocalInput = (iso, withTime) => {
|
|
7
|
-
if (
|
|
6
|
+
if (!iso)
|
|
8
7
|
return '';
|
|
9
8
|
const d = new Date(iso);
|
|
10
9
|
if (Number.isNaN(d.getTime()))
|
|
@@ -13,16 +12,15 @@ const toLocalInput = (iso, withTime) => {
|
|
|
13
12
|
const date = `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
|
|
14
13
|
return withTime ? `${date}T${pad(d.getHours())}:${pad(d.getMinutes())}` : date;
|
|
15
14
|
};
|
|
16
|
-
export
|
|
15
|
+
export const toIsoDate = (raw) => typeof raw === 'string' && raw ? raw : null;
|
|
16
|
+
export function DateEditor(props) {
|
|
17
|
+
const { field, t } = props;
|
|
17
18
|
const withTime = field.pickerAppearance === 'dayAndTime' || field.pickerAppearance === 'timeOnly';
|
|
18
|
-
const
|
|
19
|
-
|
|
19
|
+
const { draft, change, save, onKeyDown, clear } = useDraft(props, {
|
|
20
|
+
format: (v) => toLocalInput(v, withTime),
|
|
20
21
|
// Date-only values are stored at local noon, which survives any timezone shift (as Payload's picker does).
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
close();
|
|
25
|
-
};
|
|
26
|
-
return (_jsxs(Dialog, { variant: "popover", anchor: element, title: field.label, onClose: close, t: t, testId: "onpage-date", children: [_jsx("div", { className: "po-row", children: _jsx("input", { className: "po-input", type: withTime ? 'datetime-local' : 'date', "aria-label": field.label, "data-autofocus": true, value: draft, onChange: (e) => setDraft(e.target.value), onKeyDown: (e) => e.key === 'Enter' && save(), "data-testid": "onpage-date-input" }) }), _jsxs("div", { className: "po-actions", children: [_jsx("button", { type: "button", className: "po-btn po-primary", onClick: save, "data-testid": "onpage-apply", children: t('common.apply') }), !field.required && (_jsx("button", { type: "button", className: "po-btn", onClick: () => setDraft(''), children: t('common.clear') }))] })] }));
|
|
22
|
+
parse: (d) => (d ? new Date(withTime ? d : `${d}T12:00:00`).toISOString() : null),
|
|
23
|
+
});
|
|
24
|
+
return (_jsxs(EditorPopover, { props: props, testId: "onpage-date", children: [_jsx("div", { className: "po-row", children: _jsx("input", { className: "po-input", type: withTime ? 'datetime-local' : 'date', "aria-label": field.label, "data-autofocus": true, value: draft, onChange: (e) => change(e.target.value), onKeyDown: onKeyDown, "data-testid": "onpage-date-input" }) }), _jsx(ApplyBar, { onApply: save, onClear: field.required ? undefined : clear, t: t })] }));
|
|
27
25
|
}
|
|
28
26
|
//# sourceMappingURL=DateEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateEditor.js","sourceRoot":"","sources":["../../src/editors/DateEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"DateEditor.js","sourceRoot":"","sources":["../../src/editors/DateEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAW,CAAA;AAE7D,0EAA0E;AAC1E,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAE,QAAiB,EAAU,EAAE;IACrE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,CAAA;IACxC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAA;IAC9E,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAChF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAY,EAAiB,EAAE,CACvD,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAE7C,MAAM,UAAU,UAAU,CAAC,KAAiD;IAC1E,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,KAAK,YAAY,IAAI,KAAK,CAAC,gBAAgB,KAAK,UAAU,CAAA;IACjG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE;QAChE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC;QACxC,2GAA2G;QAC3G,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KAClF,CAAC,CAAA;IACF,OAAO,CACL,MAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,aAAa,aAC/C,cAAK,SAAS,EAAC,QAAQ,YACrB,gBACE,SAAS,EAAC,UAAU,EACpB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,gBAC9B,KAAK,CAAC,KAAK,0BAEvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,SAAS,EAAE,SAAS,iBACR,mBAAmB,GAC/B,GACE,EACN,KAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAI,IAChE,CACjB,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
+
import type { ScalarField } from '@payload-onpage/core';
|
|
1
2
|
import type { FieldEditorProps } from '../types.ts';
|
|
2
|
-
export declare
|
|
3
|
-
export declare function InlineText({ field, value, element, commit, preview, close, ghost, live, point, t, }: FieldEditorProps): import("react").JSX.Element;
|
|
3
|
+
export declare function InlineText({ field, value, element, commit, preview, close, ghost, live, point, t, }: FieldEditorProps<ScalarField, string>): import("react").JSX.Element;
|
|
4
4
|
//# sourceMappingURL=InlineText.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineText.d.ts","sourceRoot":"","sources":["../../src/editors/InlineText.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InlineText.d.ts","sourceRoot":"","sources":["../../src/editors/InlineText.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAInD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,CAAC,GACF,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,+BAyEvC"}
|
|
@@ -11,14 +11,13 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
11
11
|
* cancels.
|
|
12
12
|
*/
|
|
13
13
|
import { useLayoutEffect, useRef } from 'react';
|
|
14
|
-
import { toText } from '@payload-onpage/core';
|
|
15
14
|
import { copyTypography, HIDDEN, placeCaret, placeOver, typographyOf } from "../dom.js";
|
|
16
15
|
import { useTrackElement } from "../layout.js";
|
|
17
|
-
|
|
16
|
+
import { escapeHtml } from "../sanitize.js";
|
|
18
17
|
export function InlineText({ field, value, element, commit, preview, close, ghost, live, point, t, }) {
|
|
19
18
|
const multiline = field.type === 'textarea';
|
|
20
19
|
const ref = useRef(null);
|
|
21
|
-
const initial = useRef(
|
|
20
|
+
const initial = useRef(value);
|
|
22
21
|
const done = useRef(false);
|
|
23
22
|
useLayoutEffect(() => {
|
|
24
23
|
const el = element();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineText.js","sourceRoot":"","sources":["../../src/editors/InlineText.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"InlineText.js","sourceRoot":"","sources":["../../src/editors/InlineText.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { NumberField } from '@payload-onpage/core';
|
|
1
2
|
import type { FieldEditorProps } from '../types.ts';
|
|
3
|
+
export declare const toNumber: (raw: unknown) => number | null;
|
|
2
4
|
/** Number input, with a slider when the field has min and max. */
|
|
3
|
-
export declare function NumberEditor(
|
|
5
|
+
export declare function NumberEditor(props: FieldEditorProps<NumberField, number | null>): import("react").JSX.Element;
|
|
4
6
|
//# sourceMappingURL=NumberEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberEditor.d.ts","sourceRoot":"","sources":["../../src/editors/NumberEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NumberEditor.d.ts","sourceRoot":"","sources":["../../src/editors/NumberEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,KAAG,MAAM,GAAG,IACa,CAAA;AAE9D,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,+BAqC/E"}
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import { Dialog } from "../ui/Dialog.js";
|
|
3
|
+
import { ApplyBar, EditorPopover, useDraft } from "./kit.js";
|
|
4
|
+
export const toNumber = (raw) => typeof raw === 'number' && Number.isFinite(raw) ? raw : null;
|
|
6
5
|
/** Number input, with a slider when the field has min and max. */
|
|
7
|
-
export function NumberEditor(
|
|
8
|
-
const
|
|
6
|
+
export function NumberEditor(props) {
|
|
7
|
+
const { field, t } = props;
|
|
8
|
+
const { draft, change, save, onKeyDown } = useDraft(props, {
|
|
9
|
+
format: (v) => (v === null ? '' : String(v)),
|
|
10
|
+
parse: (d) => (d === '' ? null : Number.isNaN(Number(d)) ? undefined : Number(d)),
|
|
11
|
+
});
|
|
9
12
|
const slider = field.min !== undefined && field.max !== undefined;
|
|
10
|
-
|
|
11
|
-
const next = draft === '' ? null : Number(draft);
|
|
12
|
-
if (next !== value && (next === null || !Number.isNaN(next)))
|
|
13
|
-
commit(next);
|
|
14
|
-
close();
|
|
15
|
-
};
|
|
16
|
-
const change = (v) => {
|
|
17
|
-
setDraft(v);
|
|
18
|
-
if (live && v !== '' && !Number.isNaN(Number(v)))
|
|
19
|
-
preview(Number(v));
|
|
20
|
-
};
|
|
21
|
-
return (_jsxs(Dialog, { variant: "popover", anchor: element, title: field.label, onClose: close, t: t, testId: "onpage-number", children: [_jsxs("div", { className: "po-row", children: [slider && (_jsx("input", { type: "range", "aria-label": field.label, min: field.min, max: field.max, value: draft || field.min, onChange: (e) => change(e.target.value), "data-testid": "onpage-number-slider" })), _jsx("input", { className: "po-input", type: "number", "aria-label": field.label, "data-autofocus": true, min: field.min, max: field.max, value: draft, onChange: (e) => change(e.target.value), onKeyDown: (e) => e.key === 'Enter' && save(), "data-testid": "onpage-number-input" })] }), _jsx("button", { type: "button", className: "po-btn po-primary", onClick: save, "data-testid": "onpage-apply", children: t('common.apply') })] }));
|
|
13
|
+
return (_jsxs(EditorPopover, { props: props, testId: "onpage-number", children: [_jsxs("div", { className: "po-row", children: [slider && (_jsx("input", { type: "range", "aria-label": field.label, min: field.min, max: field.max, value: draft || field.min, onChange: (e) => change(e.target.value), "data-testid": "onpage-number-slider" })), _jsx("input", { className: "po-input", type: "number", "aria-label": field.label, "data-autofocus": true, min: field.min, max: field.max, value: draft, onChange: (e) => change(e.target.value), onKeyDown: onKeyDown, "data-testid": "onpage-number-input" })] }), _jsx(ApplyBar, { onApply: save, t: t })] }));
|
|
22
14
|
}
|
|
23
15
|
//# sourceMappingURL=NumberEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberEditor.js","sourceRoot":"","sources":["../../src/editors/NumberEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"NumberEditor.js","sourceRoot":"","sources":["../../src/editors/NumberEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAW,CAAA;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAiB,EAAE,CACtD,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAE9D,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,KAAmD;IAC9E,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE;QACzD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5C,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAClF,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,CAAA;IACjE,OAAO,CACL,MAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,eAAe,aACjD,eAAK,SAAS,EAAC,QAAQ,aACpB,MAAM,IAAI,CACT,gBACE,IAAI,EAAC,OAAO,gBACA,KAAK,CAAC,KAAK,EACvB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,GAAG,EACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,iBAC3B,sBAAsB,GAClC,CACH,EACD,gBACE,SAAS,EAAC,UAAU,EACpB,IAAI,EAAC,QAAQ,gBACD,KAAK,CAAC,KAAK,0BAEvB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,SAAS,EAAE,SAAS,iBACR,qBAAqB,GACjC,IACE,EACN,KAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAI,IACnB,CACjB,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relationship editor: search the related collection(s) by their title field
|
|
3
|
+
* (Payload REST, so access control applies) and pick one, or several for
|
|
4
|
+
* hasMany. Polymorphic fields get a collection switch and store `{ relationTo, value }`.
|
|
5
|
+
*/
|
|
6
|
+
import { type RelationField } from '@payload-onpage/core';
|
|
1
7
|
import type { FieldEditorProps } from '../types.ts';
|
|
2
|
-
export declare function RelationshipEditor(
|
|
8
|
+
export declare function RelationshipEditor(props: FieldEditorProps<RelationField>): import("react").JSX.Element;
|
|
3
9
|
//# sourceMappingURL=RelationshipEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipEditor.d.ts","sourceRoot":"","sources":["../../src/editors/RelationshipEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RelationshipEditor.d.ts","sourceRoot":"","sources":["../../src/editors/RelationshipEditor.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAInD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC,+BAkHxE"}
|
|
@@ -5,43 +5,35 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
5
5
|
* (Payload REST, so access control applies) and pick one, or several for
|
|
6
6
|
* hasMany. Polymorphic fields get a collection switch and store `{ relationTo, value }`.
|
|
7
7
|
*/
|
|
8
|
-
import { relationId, relationTitle } from '@payload-onpage/core';
|
|
8
|
+
import { asList, relationId, relationTitle, } from '@payload-onpage/core';
|
|
9
9
|
import { useCallback, useState } from 'react';
|
|
10
10
|
import { useOnPage } from "../context.js";
|
|
11
|
-
import {
|
|
11
|
+
import { EditorPopover } from "./kit.js";
|
|
12
12
|
import { useDebouncedSearch } from "./useDebouncedSearch.js";
|
|
13
|
-
export function RelationshipEditor(
|
|
13
|
+
export function RelationshipEditor(props) {
|
|
14
|
+
const { docKey, field, value, commit, close, t } = props;
|
|
14
15
|
const { session, snap } = useOnPage();
|
|
15
|
-
const targets = Array.isArray(field.relationTo)
|
|
16
|
-
? field.relationTo
|
|
17
|
-
: field.relationTo
|
|
18
|
-
? [field.relationTo]
|
|
19
|
-
: [];
|
|
16
|
+
const targets = Array.isArray(field.relationTo) ? field.relationTo : [field.relationTo];
|
|
20
17
|
const poly = Array.isArray(field.relationTo);
|
|
21
18
|
const [collection, setCollection] = useState(targets[0] ?? '');
|
|
22
19
|
const relations = snap.docs[docKey]?.schema?.relations ?? {};
|
|
23
20
|
const titleField = relations[collection]?.titleField;
|
|
24
21
|
const many = !!field.hasMany;
|
|
25
|
-
const current = many
|
|
26
|
-
? Array.isArray(value)
|
|
27
|
-
? value
|
|
28
|
-
: []
|
|
29
|
-
: value == null
|
|
30
|
-
? []
|
|
31
|
-
: [value];
|
|
22
|
+
const current = asList(value, many);
|
|
32
23
|
const ds = session.dataSource;
|
|
33
|
-
const search = useCallback(async (query) => ds.search
|
|
24
|
+
const search = useCallback(async (query, _page, signal) => ds.search
|
|
34
25
|
? {
|
|
35
26
|
items: await ds.search(collection, {
|
|
36
27
|
query,
|
|
37
28
|
titleField,
|
|
38
29
|
locale: session.locale,
|
|
39
30
|
limit: 12,
|
|
31
|
+
signal,
|
|
40
32
|
}),
|
|
41
33
|
hasMore: false,
|
|
42
34
|
}
|
|
43
35
|
: { items: [], hasMore: false }, [ds, collection, titleField, session.locale]);
|
|
44
|
-
const results = useDebouncedSearch(ds.search ? search : null
|
|
36
|
+
const results = useDebouncedSearch(ds.search ? search : null);
|
|
45
37
|
const wrap = (hit) => poly ? { relationTo: collection, value: hit.doc } : hit.doc;
|
|
46
38
|
const same = (v, id) => String(relationId(v)) === String(id);
|
|
47
39
|
const pick = (hit) => {
|
|
@@ -55,6 +47,6 @@ export function RelationshipEditor({ docKey, field, value, element, commit, clos
|
|
|
55
47
|
: [...current, wrap(hit)]);
|
|
56
48
|
};
|
|
57
49
|
const remove = (i) => commit(many ? current.filter((_, j) => j !== i) : null);
|
|
58
|
-
return (_jsxs(
|
|
50
|
+
return (_jsxs(EditorPopover, { props: props, testId: "onpage-relationship", width: 320, children: [current.map((v, i) => (_jsxs("div", { className: "po-rel-item", children: [relationTitle(v, titleField), (!field.required || many) && (_jsx("button", { type: "button", onClick: () => remove(i), "aria-label": t('common.removeItem', { item: relationTitle(v, titleField) }), children: "\u2715" }))] }, `${String(relationId(v))}-${i}`))), poly && (_jsx("div", { className: "po-seg", role: "radiogroup", "aria-label": field.label, children: targets.map((c) => (_jsx("button", { type: "button", role: "radio", "aria-checked": c === collection, onClick: () => setCollection(c), children: relations[c]?.label ?? c }, c))) })), !ds.search ? (_jsx("p", { className: "po-muted", children: t('search.unsupported') })) : (_jsxs(_Fragment, { children: [_jsx("input", { className: "po-input", "aria-label": t('search.placeholder'), placeholder: t('search.placeholder'), value: results.query, "data-autofocus": true, onChange: (e) => results.setQuery(e.target.value), "data-testid": "onpage-relationship-search" }), results.error && _jsx("p", { className: "po-error", children: results.error }), _jsx("div", { className: "po-pop-list", role: "listbox", "aria-multiselectable": many, "aria-label": field.label, children: results.items.map((h) => (_jsx("button", { type: "button", role: "option", "aria-selected": current.some((v) => same(v, h.id)), onClick: () => pick(h), "data-testid": `onpage-relationship-${h.id}`, children: h.title }, String(h.id)))) })] }))] }));
|
|
59
51
|
}
|
|
60
52
|
//# sourceMappingURL=RelationshipEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipEditor.js","sourceRoot":"","sources":["../../src/editors/RelationshipEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"RelationshipEditor.js","sourceRoot":"","sources":["../../src/editors/RelationshipEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { type ChoiceField } from '@payload-onpage/core';
|
|
1
2
|
import type { FieldEditorProps } from '../types.ts';
|
|
3
|
+
/** A select/radio value as the selected option values. */
|
|
4
|
+
export declare const selectedValues: (raw: unknown, field: ChoiceField) => string[];
|
|
2
5
|
/** Select / radio: pick one (closes) or toggle several (hasMany). */
|
|
3
|
-
export declare function SelectEditor(
|
|
6
|
+
export declare function SelectEditor(props: FieldEditorProps<ChoiceField, string[]>): import("react").JSX.Element;
|
|
4
7
|
//# sourceMappingURL=SelectEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectEditor.d.ts","sourceRoot":"","sources":["../../src/editors/SelectEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectEditor.d.ts","sourceRoot":"","sources":["../../src/editors/SelectEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,0DAA0D;AAC1D,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,EAAE,OAAO,WAAW,KAAG,MAAM,EAGrE,CAAA;AAEH,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,+BAoD1E"}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { asList } from '@payload-onpage/core';
|
|
4
|
+
import { EditorPopover } from "./kit.js";
|
|
5
|
+
/** A select/radio value as the selected option values. */
|
|
6
|
+
export const selectedValues = (raw, field) => asList(raw, field.hasMany, (v) => typeof v === 'string' || typeof v === 'number' ? String(v) : undefined);
|
|
5
7
|
/** Select / radio: pick one (closes) or toggle several (hasMany). */
|
|
6
|
-
export function SelectEditor(
|
|
7
|
-
const
|
|
8
|
+
export function SelectEditor(props) {
|
|
9
|
+
const { field, value: current, commit, close, t } = props;
|
|
8
10
|
const many = !!field.hasMany;
|
|
9
|
-
const current = many
|
|
10
|
-
? Array.isArray(value)
|
|
11
|
-
? value
|
|
12
|
-
: []
|
|
13
|
-
: value == null
|
|
14
|
-
? []
|
|
15
|
-
: [toText(value)];
|
|
16
11
|
const pick = (v) => {
|
|
17
12
|
if (!many) {
|
|
18
13
|
commit(v);
|
|
@@ -26,9 +21,9 @@ export function SelectEditor({ field, value, element, commit, close, t }) {
|
|
|
26
21
|
set.delete(v);
|
|
27
22
|
else
|
|
28
23
|
set.add(v);
|
|
29
|
-
commit(options.map((o) => o.value).filter((o) => set.has(o)));
|
|
24
|
+
commit(field.options.map((o) => o.value).filter((o) => set.has(o)));
|
|
30
25
|
};
|
|
31
|
-
return (_jsx(
|
|
26
|
+
return (_jsx(EditorPopover, { props: props, testId: "onpage-select", children: _jsxs("div", { className: "po-pop-list", role: "listbox", "aria-multiselectable": many, "aria-label": field.label, children: [!field.required && !many && (_jsx("button", { type: "button", role: "option", "aria-selected": !current.length, onClick: () => pick(null), children: t('common.none') })), field.options.map((o) => {
|
|
32
27
|
const selected = current.includes(o.value);
|
|
33
28
|
return (_jsxs("button", { type: "button", role: "option", "aria-selected": selected, onClick: () => pick(o.value), "data-testid": `onpage-option-${o.value}`, children: [many ? (selected ? '☑ ' : '☐ ') : '', o.label] }, o.value));
|
|
34
29
|
})] }) }));
|