@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":"SelectEditor.js","sourceRoot":"","sources":["../../src/editors/SelectEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SelectEditor.js","sourceRoot":"","sources":["../../src/editors/SelectEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,EAAoB,MAAM,sBAAsB,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAW,CAAA;AAEzC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,KAAkB,EAAY,EAAE,CAC3E,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACvE,CAAA;AAEH,qEAAqE;AACrE,MAAM,UAAU,YAAY,CAAC,KAA8C;IACzE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IACzD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAgB,EAAE,EAAE;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,CAAC,CAAC,CAAA;YACT,KAAK,EAAE,CAAA;YACP,OAAM;QACR,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,KAAK,EAAE,CAAA;aACtB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;;YAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACf,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC,CAAA;IACD,OAAO,CACL,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,eAAe,YACjD,eACE,SAAS,EAAC,aAAa,EACvB,IAAI,EAAC,SAAS,0BACQ,IAAI,gBACd,KAAK,CAAC,KAAK,aAEtB,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAC3B,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,mBACE,CAAC,OAAO,CAAC,MAAM,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAExB,CAAC,CAAC,aAAa,CAAC,GACV,CACV,EACA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;oBAC1C,OAAO,CACL,kBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,mBACE,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,iBACf,iBAAiB,CAAC,CAAC,KAAK,EAAE,aAEtC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EACpC,CAAC,CAAC,KAAK,KARH,CAAC,CAAC,KAAK,CASL,CACV,CAAA;gBACH,CAAC,CAAC,IACE,GACQ,CACjB,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Image editor: pick from the upload collection (search, pages) or upload a
|
|
3
|
+
* new file, through the MediaLibrary port. The chosen document goes into state
|
|
4
|
+
* populated, so a client-rendered page shows it at once; saving sends its id.
|
|
5
|
+
*/
|
|
6
|
+
import { type RelationField } from '@payload-onpage/core';
|
|
1
7
|
import type { FieldEditorProps } from '../types.ts';
|
|
2
|
-
export declare function UploadEditor({ field, value, commit, close, t }: FieldEditorProps): import("react").JSX.Element;
|
|
8
|
+
export declare function UploadEditor({ field, value, commit, close, t }: FieldEditorProps<RelationField>): import("react").JSX.Element;
|
|
3
9
|
//# sourceMappingURL=UploadEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadEditor.d.ts","sourceRoot":"","sources":["../../src/editors/UploadEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UploadEditor.d.ts","sourceRoot":"","sources":["../../src/editors/UploadEditor.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAInD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,CAAC,aAAa,CAAC,+BAmH/F"}
|
|
@@ -5,7 +5,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
5
5
|
* new file, through the MediaLibrary port. The chosen document goes into state
|
|
6
6
|
* populated, so a client-rendered page shows it at once; saving sends its id.
|
|
7
7
|
*/
|
|
8
|
-
import { relationId } from '@payload-onpage/core';
|
|
8
|
+
import { errorText, relationId } from '@payload-onpage/core';
|
|
9
9
|
import { useCallback, useRef, useState } from 'react';
|
|
10
10
|
import { useOnPage } from "../context.js";
|
|
11
11
|
import { Dialog } from "../ui/Dialog.js";
|
|
@@ -16,10 +16,10 @@ export function UploadEditor({ field, value, commit, close, t }) {
|
|
|
16
16
|
const [uploading, setUploading] = useState(false);
|
|
17
17
|
const [uploadError, setUploadError] = useState(null);
|
|
18
18
|
const fileRef = useRef(null);
|
|
19
|
-
const search = useCallback((query, page) => media
|
|
20
|
-
? media.search({ query, page, relationTo })
|
|
19
|
+
const search = useCallback((query, page, signal) => media
|
|
20
|
+
? media.search({ query, page, relationTo, signal })
|
|
21
21
|
: Promise.resolve({ items: [], hasMore: false }), [media, relationTo]);
|
|
22
|
-
const results = useDebouncedSearch(media ? search : null
|
|
22
|
+
const results = useDebouncedSearch(media ? search : null);
|
|
23
23
|
const currentId = relationId(value);
|
|
24
24
|
const choose = (m) => {
|
|
25
25
|
commit(m.doc);
|
|
@@ -33,7 +33,7 @@ export function UploadEditor({ field, value, commit, close, t }) {
|
|
|
33
33
|
choose(await media.upload(file, { relationTo }));
|
|
34
34
|
}
|
|
35
35
|
catch (e) {
|
|
36
|
-
setUploadError(e
|
|
36
|
+
setUploadError(errorText(e));
|
|
37
37
|
}
|
|
38
38
|
finally {
|
|
39
39
|
setUploading(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadEditor.js","sourceRoot":"","sources":["../../src/editors/UploadEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AACH,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"UploadEditor.js","sourceRoot":"","sources":["../../src/editors/UploadEditor.tsx"],"names":[],"mappings":"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"}
|
package/dist/editors/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAY,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAejD,eAAO,MAAM,cAAc,EAAE,cAqC5B,CAAA;AAED,OAAO,EACL,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,CAAA"}
|
package/dist/editors/index.js
CHANGED
|
@@ -1,23 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
/** The default field editors. Spread, override or remove (`null`) entries via the `editors` option. */
|
|
2
|
+
import { toText } from '@payload-onpage/core';
|
|
3
|
+
import { defineEditor } from "../registry.js";
|
|
4
|
+
import { checkedOf, CheckboxEditor } from "./CheckboxEditor.js";
|
|
5
|
+
import { ColorEditor, toColor } from "./ColorEditor.js";
|
|
6
|
+
import { DateEditor, toIsoDate } from "./DateEditor.js";
|
|
4
7
|
import { InlineText } from "./InlineText.js";
|
|
5
|
-
import { NumberEditor } from "./NumberEditor.js";
|
|
8
|
+
import { NumberEditor, toNumber } from "./NumberEditor.js";
|
|
6
9
|
import { RelationshipEditor } from "./RelationshipEditor.js";
|
|
7
|
-
import { SelectEditor } from "./SelectEditor.js";
|
|
10
|
+
import { SelectEditor, selectedValues } from "./SelectEditor.js";
|
|
8
11
|
import { UploadEditor } from "./UploadEditor.js";
|
|
12
|
+
const text = defineEditor({
|
|
13
|
+
mode: 'inline',
|
|
14
|
+
accepts: ['text', 'textarea', 'email'],
|
|
15
|
+
normalize: (raw) => toText(raw),
|
|
16
|
+
component: InlineText,
|
|
17
|
+
});
|
|
18
|
+
const select = defineEditor({
|
|
19
|
+
mode: 'popover',
|
|
20
|
+
accepts: ['select', 'radio'],
|
|
21
|
+
normalize: selectedValues,
|
|
22
|
+
component: SelectEditor,
|
|
23
|
+
});
|
|
9
24
|
export const defaultEditors = {
|
|
10
|
-
text
|
|
11
|
-
textarea:
|
|
12
|
-
email:
|
|
13
|
-
select
|
|
14
|
-
radio:
|
|
15
|
-
checkbox: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
25
|
+
text,
|
|
26
|
+
textarea: text,
|
|
27
|
+
email: text,
|
|
28
|
+
select,
|
|
29
|
+
radio: select,
|
|
30
|
+
checkbox: defineEditor({
|
|
31
|
+
mode: 'popover',
|
|
32
|
+
accepts: ['checkbox'],
|
|
33
|
+
normalize: checkedOf,
|
|
34
|
+
component: CheckboxEditor,
|
|
35
|
+
}),
|
|
36
|
+
number: defineEditor({
|
|
37
|
+
mode: 'popover',
|
|
38
|
+
accepts: ['number'],
|
|
39
|
+
normalize: toNumber,
|
|
40
|
+
component: NumberEditor,
|
|
41
|
+
}),
|
|
42
|
+
date: defineEditor({
|
|
43
|
+
mode: 'popover',
|
|
44
|
+
accepts: ['date'],
|
|
45
|
+
normalize: toIsoDate,
|
|
46
|
+
component: DateEditor,
|
|
47
|
+
}),
|
|
48
|
+
relationship: defineEditor({
|
|
49
|
+
mode: 'popover',
|
|
50
|
+
accepts: ['relationship'],
|
|
51
|
+
component: RelationshipEditor,
|
|
52
|
+
}),
|
|
53
|
+
upload: defineEditor({ mode: 'popover', accepts: ['upload'], component: UploadEditor }),
|
|
54
|
+
// A text field holding a hex color: `admin.custom.onpage.editor: 'color'`.
|
|
55
|
+
color: defineEditor({
|
|
56
|
+
mode: 'popover',
|
|
57
|
+
accepts: ['text'],
|
|
58
|
+
normalize: toColor,
|
|
59
|
+
component: ColorEditor,
|
|
60
|
+
}),
|
|
21
61
|
};
|
|
22
62
|
export { CheckboxEditor, ColorEditor, DateEditor, InlineText, NumberEditor, RelationshipEditor, SelectEditor, UploadEditor, };
|
|
23
63
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,kBAAmB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAkB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAoB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAA0B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAoB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAEjD,MAAM,IAAI,GAAG,YAAY,CAAC;IACxB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;IACtC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;IAC/B,SAAS,EAAE,UAAU;CACtB,CAAC,CAAA;AACF,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,YAAY;CACxB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI;IACJ,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,IAAI;IACX,MAAM;IACN,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,YAAY,CAAC;QACrB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,cAAc;KAC1B,CAAC;IACF,MAAM,EAAE,YAAY,CAAC;QACnB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,YAAY;KACxB,CAAC;IACF,IAAI,EAAE,YAAY,CAAC;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,UAAU;KACtB,CAAC;IACF,YAAY,EAAE,YAAY,CAAC;QACzB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,cAAc,CAAC;QACzB,SAAS,EAAE,kBAAkB;KAC9B,CAAC;IACF,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IACvF,2EAA2E;IAC3E,KAAK,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,WAAW;KACvB,CAAC;CACH,CAAA;AAED,OAAO,EACL,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The parts every popover editor shares: the anchored dialog, the Apply/Clear
|
|
3
|
+
* bar, and a draft that previews live and commits once. Exported from
|
|
4
|
+
* `@payload-onpage/react/editor-kit` for custom editors.
|
|
5
|
+
*/
|
|
6
|
+
import { type ReactNode } from 'react';
|
|
7
|
+
import type { Translate } from '../messages.ts';
|
|
8
|
+
import type { FieldEditorProps } from '../types.ts';
|
|
9
|
+
/** The popover a field editor opens beside its element, titled with the field's label. */
|
|
10
|
+
export declare function EditorPopover({ props, testId, width, children, }: {
|
|
11
|
+
props: Pick<FieldEditorProps, 'element' | 'field' | 'close' | 't'>;
|
|
12
|
+
testId: string;
|
|
13
|
+
width?: number;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}): import("react").JSX.Element;
|
|
16
|
+
/** Apply, plus Clear when the field may be empty. */
|
|
17
|
+
export declare function ApplyBar({ onApply, onClear, t, }: {
|
|
18
|
+
onApply: () => void;
|
|
19
|
+
onClear?: (() => void) | undefined;
|
|
20
|
+
t: Translate;
|
|
21
|
+
}): import("react").JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* A text draft for a value: `parse` turns the draft into a value (undefined =
|
|
24
|
+
* not valid yet). Valid drafts preview live when the page renders from editor
|
|
25
|
+
* state; `save` commits only a changed, valid value, then closes.
|
|
26
|
+
*/
|
|
27
|
+
export declare function useDraft<V>(props: Pick<FieldEditorProps<never, V>, 'value' | 'commit' | 'preview' | 'close' | 'live'>, { format, parse, }: {
|
|
28
|
+
format: (value: V) => string;
|
|
29
|
+
parse: (draft: string) => V | null | undefined;
|
|
30
|
+
}): {
|
|
31
|
+
draft: string;
|
|
32
|
+
change: (next: string) => void;
|
|
33
|
+
save: () => void;
|
|
34
|
+
onKeyDown: (e: {
|
|
35
|
+
key: string;
|
|
36
|
+
}) => void;
|
|
37
|
+
clear: () => void;
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=kit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../../src/editors/kit.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,GAAG,CAAC,CAAA;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,SAAS,CAAA;CACpB,+BAcA;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,OAAO,EACP,CAAC,GACF,EAAE;IACD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAClC,CAAC,EAAE,SAAS,CAAA;CACb,+BAkBA;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC,EAC1F,EACE,MAAM,EACN,KAAK,GACN,EAAE;IAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE;;mBAG7D,MAAM;;mBAWN;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;;EAItC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* The parts every popover editor shares: the anchored dialog, the Apply/Clear
|
|
5
|
+
* bar, and a draft that previews live and commits once. Exported from
|
|
6
|
+
* `@payload-onpage/react/editor-kit` for custom editors.
|
|
7
|
+
*/
|
|
8
|
+
import { useState } from 'react';
|
|
9
|
+
import { Dialog } from "../ui/Dialog.js";
|
|
10
|
+
/** The popover a field editor opens beside its element, titled with the field's label. */
|
|
11
|
+
export function EditorPopover({ props, testId, width, children, }) {
|
|
12
|
+
return (_jsx(Dialog, { variant: "popover", anchor: props.element, title: props.field.label, onClose: props.close, t: props.t, testId: testId, ...(width ? { width } : {}), children: children }));
|
|
13
|
+
}
|
|
14
|
+
/** Apply, plus Clear when the field may be empty. */
|
|
15
|
+
export function ApplyBar({ onApply, onClear, t, }) {
|
|
16
|
+
return (_jsxs("div", { className: "po-actions", children: [_jsx("button", { type: "button", className: "po-btn po-primary", onClick: onApply, "data-testid": "onpage-apply", children: t('common.apply') }), onClear && (_jsx("button", { type: "button", className: "po-btn", onClick: onClear, "data-testid": "onpage-clear", children: t('common.clear') }))] }));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A text draft for a value: `parse` turns the draft into a value (undefined =
|
|
20
|
+
* not valid yet). Valid drafts preview live when the page renders from editor
|
|
21
|
+
* state; `save` commits only a changed, valid value, then closes.
|
|
22
|
+
*/
|
|
23
|
+
export function useDraft(props, { format, parse, }) {
|
|
24
|
+
const [draft, setDraft] = useState(() => format(props.value));
|
|
25
|
+
const change = (next) => {
|
|
26
|
+
setDraft(next);
|
|
27
|
+
const value = parse(next);
|
|
28
|
+
if (props.live && value !== undefined && value !== null)
|
|
29
|
+
props.preview(value);
|
|
30
|
+
};
|
|
31
|
+
const save = () => {
|
|
32
|
+
const value = parse(draft);
|
|
33
|
+
if (value !== undefined && value !== props.value)
|
|
34
|
+
props.commit(value);
|
|
35
|
+
props.close();
|
|
36
|
+
};
|
|
37
|
+
/** Enter applies. */
|
|
38
|
+
const onKeyDown = (e) => {
|
|
39
|
+
if (e.key === 'Enter')
|
|
40
|
+
save();
|
|
41
|
+
};
|
|
42
|
+
return { draft, change, save, onKeyDown, clear: () => change('') };
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=kit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/editors/kit.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAkB,CAAA;AAEzC,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,GAMT;IACC,OAAO,CACL,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,MAAM,EAAE,KAAK,CAAC,OAAO,EACrB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EACxB,OAAO,EAAE,KAAK,CAAC,KAAK,EACpB,CAAC,EAAE,KAAK,CAAC,CAAC,EACV,MAAM,EAAE,MAAM,KACV,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAE3B,QAAQ,GACF,CACV,CAAA;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,QAAQ,CAAC,EACvB,OAAO,EACP,OAAO,EACP,CAAC,GAKF;IACC,OAAO,CACL,eAAK,SAAS,EAAC,YAAY,aACzB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mBAAmB,EAC7B,OAAO,EAAE,OAAO,iBACJ,cAAc,YAEzB,CAAC,CAAC,cAAc,CAAC,GACX,EACR,OAAO,IAAI,CACV,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,iBAAc,cAAc,YAClF,CAAC,CAAC,cAAc,CAAC,GACX,CACV,IACG,CACP,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,KAA0F,EAC1F,EACE,MAAM,EACN,KAAK,GAC4E;IAEnF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/E,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK;YAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACrE,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC,CAAA;IACD,qBAAqB;IACrB,MAAM,SAAS,GAAG,CAAC,CAAkB,EAAE,EAAE;QACvC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,IAAI,EAAE,CAAA;IAC/B,CAAC,CAAA;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAA;AACpE,CAAC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
* across pages and reset when the query changes. Stale responses are ignored.
|
|
4
|
-
*/
|
|
5
|
-
export declare function useDebouncedSearch<T>(search: ((query: string, page: number) => Promise<{
|
|
1
|
+
/** A search the hook runs: it should stop when `signal` aborts. */
|
|
2
|
+
export type SearchFn<T> = (query: string, page: number, signal: AbortSignal) => Promise<{
|
|
6
3
|
items: T[];
|
|
7
4
|
hasMore: boolean;
|
|
8
|
-
}
|
|
5
|
+
}>;
|
|
6
|
+
/**
|
|
7
|
+
* Run `search(query, page, signal)` 250ms after the inputs settle; results
|
|
8
|
+
* accumulate across pages and reset when the query changes. A superseded search
|
|
9
|
+
* is aborted, and its response ignored. Re-runs when `search` changes, so keep
|
|
10
|
+
* it stable (`useCallback`) with its inputs as dependencies.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useDebouncedSearch<T>(search: SearchFn<T> | null): {
|
|
9
13
|
query: string;
|
|
10
14
|
setQuery: (q: string) => void;
|
|
11
15
|
items: T[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDebouncedSearch.d.ts","sourceRoot":"","sources":["../../src/editors/useDebouncedSearch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDebouncedSearch.d.ts","sourceRoot":"","sources":["../../src/editors/useDebouncedSearch.ts"],"names":[],"mappings":"AAKA,mEAAmE;AACnE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAE9C;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;;kBAiC9C,MAAM;;;;;;EAUvB"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
|
+
import { errorText } from '@payload-onpage/core';
|
|
2
3
|
import { useEffect, useState } from 'react';
|
|
3
4
|
/**
|
|
4
|
-
* Run `search(query, page)` 250ms after the inputs settle; results
|
|
5
|
-
* across pages and reset when the query changes.
|
|
5
|
+
* Run `search(query, page, signal)` 250ms after the inputs settle; results
|
|
6
|
+
* accumulate across pages and reset when the query changes. A superseded search
|
|
7
|
+
* is aborted, and its response ignored. Re-runs when `search` changes, so keep
|
|
8
|
+
* it stable (`useCallback`) with its inputs as dependencies.
|
|
6
9
|
*/
|
|
7
|
-
export function useDebouncedSearch(search
|
|
10
|
+
export function useDebouncedSearch(search) {
|
|
8
11
|
const [query, setQuery] = useState('');
|
|
9
12
|
const [page, setPage] = useState(1);
|
|
10
13
|
const [items, setItems] = useState([]);
|
|
@@ -15,9 +18,10 @@ export function useDebouncedSearch(search, deps) {
|
|
|
15
18
|
if (!search)
|
|
16
19
|
return;
|
|
17
20
|
let live = true;
|
|
21
|
+
const aborter = new AbortController();
|
|
18
22
|
const timer = setTimeout(() => {
|
|
19
23
|
setBusy(true);
|
|
20
|
-
search(query, page)
|
|
24
|
+
search(query, page, aborter.signal)
|
|
21
25
|
.then((res) => {
|
|
22
26
|
if (!live)
|
|
23
27
|
return;
|
|
@@ -25,15 +29,15 @@ export function useDebouncedSearch(search, deps) {
|
|
|
25
29
|
setHasMore(res.hasMore);
|
|
26
30
|
setError(null);
|
|
27
31
|
})
|
|
28
|
-
.catch((e) => live &&
|
|
32
|
+
.catch((e) => live && !aborter.signal.aborted && setError(errorText(e)))
|
|
29
33
|
.finally(() => live && setBusy(false));
|
|
30
34
|
}, 250);
|
|
31
35
|
return () => {
|
|
32
36
|
live = false;
|
|
33
37
|
clearTimeout(timer);
|
|
38
|
+
aborter.abort();
|
|
34
39
|
};
|
|
35
|
-
|
|
36
|
-
}, [search, query, page, ...deps]);
|
|
40
|
+
}, [search, query, page]);
|
|
37
41
|
return {
|
|
38
42
|
query,
|
|
39
43
|
setQuery: (q) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDebouncedSearch.js","sourceRoot":"","sources":["../../src/editors/useDebouncedSearch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useDebouncedSearch.js","sourceRoot":"","sources":["../../src/editors/useDebouncedSearch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAS3C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAI,MAA0B;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAM,EAAE,CAAC,CAAA;IAC3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,IAAI,GAAG,IAAI,CAAA;QACf,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAA;YACb,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;iBAChC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,IAAI,CAAC,IAAI;oBAAE,OAAM;gBACjB,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACtE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;YAChB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChF,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1C,CAAC,EAAE,GAAG,CAAC,CAAA;QACP,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,KAAK,CAAA;YACZ,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAEzB,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE;YACtB,QAAQ,CAAC,CAAC,CAAC,CAAA;YACX,OAAO,CAAC,CAAC,CAAC,CAAA;QACZ,CAAC;QACD,KAAK;QACL,OAAO;QACP,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI;QACJ,KAAK;KACN,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the editor's floating UI goes: named distances (px) and the positioning
|
|
3
|
+
* rules shared by the overlay, toolbars and popovers.
|
|
4
|
+
*/
|
|
5
|
+
type Rect = Pick<DOMRect, 'top' | 'bottom' | 'left' | 'right' | 'width' | 'height'>;
|
|
6
|
+
export declare const GEOMETRY: {
|
|
7
|
+
/** Gap kept between floating UI and the viewport edge or its element. */
|
|
8
|
+
readonly margin: 8;
|
|
9
|
+
/** How far an outline sits outside its element. */
|
|
10
|
+
readonly outline: 2;
|
|
11
|
+
/** Height of a row toolbar. */
|
|
12
|
+
readonly toolbar: 40;
|
|
13
|
+
/** Toolbars never ride higher than this (the site header usually lives there). */
|
|
14
|
+
readonly toolbarMinTop: 60;
|
|
15
|
+
/** Field label chips never go above this. */
|
|
16
|
+
readonly chipMinTop: 22;
|
|
17
|
+
/** Gap between a list and its "+ Add" button. */
|
|
18
|
+
readonly addGap: 14;
|
|
19
|
+
/** Room left at the bottom for the dock. */
|
|
20
|
+
readonly dock: 84;
|
|
21
|
+
/** "+ Add first section" sits at most this far down an empty list. */
|
|
22
|
+
readonly emptyListOffset: 160;
|
|
23
|
+
};
|
|
24
|
+
/** Is any of the element on screen, `inset` px inside the top and bottom? */
|
|
25
|
+
export declare const inViewport: (r: Rect, inset?: number) => boolean;
|
|
26
|
+
/** An outline box around an element. */
|
|
27
|
+
export declare const outlineBox: (r: Rect) => {
|
|
28
|
+
top: number;
|
|
29
|
+
left: number;
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
};
|
|
33
|
+
/** A row toolbar: top-right inside the row, kept below the header and above the row's end. */
|
|
34
|
+
export declare const toolbarPosition: (r: Rect) => {
|
|
35
|
+
top: number;
|
|
36
|
+
right: number;
|
|
37
|
+
};
|
|
38
|
+
/** "+ Add" below a list, or pinned above the dock while the list runs past the viewport. */
|
|
39
|
+
export declare const belowList: (r: Rect) => number;
|
|
40
|
+
/** A fixed popover below (or, without room, above) an element, kept inside the viewport. */
|
|
41
|
+
export declare function popoverPosition(el: Element | null, size?: {
|
|
42
|
+
width: number;
|
|
43
|
+
height: number;
|
|
44
|
+
}): {
|
|
45
|
+
top: number;
|
|
46
|
+
left: number;
|
|
47
|
+
};
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;AAEnF,eAAO,MAAM,QAAQ;IACnB,yEAAyE;;IAEzE,mDAAmD;;IAEnD,+BAA+B;;IAE/B,kFAAkF;;IAElF,6CAA6C;;IAE7C,iDAAiD;;IAEjD,4CAA4C;;IAE5C,sEAAsE;;CAE9D,CAAA;AAIV,6EAA6E;AAC7E,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,EAAE,cAAS,KAAG,OACU,CAAA;AAE1D,wCAAwC;AACxC,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI;;;;;CAKhC,CAAA;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,GAAI,GAAG,IAAI;;;CAGrC,CAAA;AAEF,4FAA4F;AAC5F,eAAO,MAAM,SAAS,GAAI,GAAG,IAAI,KAAG,MAAgE,CAAA;AAEpG,4FAA4F;AAC5F,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,GAAG,IAAI,EAClB,IAAI;;;CAA8B,GACjC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAS/B"}
|
package/dist/geometry.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export const GEOMETRY = {
|
|
2
|
+
/** Gap kept between floating UI and the viewport edge or its element. */
|
|
3
|
+
margin: 8,
|
|
4
|
+
/** How far an outline sits outside its element. */
|
|
5
|
+
outline: 2,
|
|
6
|
+
/** Height of a row toolbar. */
|
|
7
|
+
toolbar: 40,
|
|
8
|
+
/** Toolbars never ride higher than this (the site header usually lives there). */
|
|
9
|
+
toolbarMinTop: 60,
|
|
10
|
+
/** Field label chips never go above this. */
|
|
11
|
+
chipMinTop: 22,
|
|
12
|
+
/** Gap between a list and its "+ Add" button. */
|
|
13
|
+
addGap: 14,
|
|
14
|
+
/** Room left at the bottom for the dock. */
|
|
15
|
+
dock: 84,
|
|
16
|
+
/** "+ Add first section" sits at most this far down an empty list. */
|
|
17
|
+
emptyListOffset: 160,
|
|
18
|
+
};
|
|
19
|
+
const { margin, outline, toolbar, toolbarMinTop, addGap, dock } = GEOMETRY;
|
|
20
|
+
/** Is any of the element on screen, `inset` px inside the top and bottom? */
|
|
21
|
+
export const inViewport = (r, inset = 0) => r.bottom >= inset && r.top <= window.innerHeight - inset;
|
|
22
|
+
/** An outline box around an element. */
|
|
23
|
+
export const outlineBox = (r) => ({
|
|
24
|
+
top: r.top - outline,
|
|
25
|
+
left: r.left - outline,
|
|
26
|
+
width: r.width + 2 * outline,
|
|
27
|
+
height: r.height + 2 * outline,
|
|
28
|
+
});
|
|
29
|
+
/** A row toolbar: top-right inside the row, kept below the header and above the row's end. */
|
|
30
|
+
export const toolbarPosition = (r) => ({
|
|
31
|
+
top: Math.min(Math.max(r.top + margin, toolbarMinTop), r.bottom - toolbar),
|
|
32
|
+
right: Math.max(window.innerWidth - r.right + margin, margin),
|
|
33
|
+
});
|
|
34
|
+
/** "+ Add" below a list, or pinned above the dock while the list runs past the viewport. */
|
|
35
|
+
export const belowList = (r) => Math.min(r.bottom + addGap, window.innerHeight - dock);
|
|
36
|
+
/** A fixed popover below (or, without room, above) an element, kept inside the viewport. */
|
|
37
|
+
export function popoverPosition(el, size = { width: 300, height: 320 }) {
|
|
38
|
+
const vw = window.innerWidth;
|
|
39
|
+
const vh = window.innerHeight;
|
|
40
|
+
if (!el)
|
|
41
|
+
return { top: 80, left: Math.max(margin, vw / 2 - size.width / 2) };
|
|
42
|
+
const r = el.getBoundingClientRect();
|
|
43
|
+
const below = r.bottom + margin;
|
|
44
|
+
const top = below + size.height < vh ? below : Math.max(margin, r.top - margin - size.height);
|
|
45
|
+
const left = Math.min(Math.max(margin, r.left), vw - size.width - margin);
|
|
46
|
+
return { top, left };
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"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"}
|
package/dist/hub.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The editor hub: a module-level store holding the mounted editor, so
|
|
2
|
+
* The editor hub: a module-level store holding the mounted editor's API, so
|
|
3
3
|
* components anywhere on the page (client-mode documents, custom UI) can reach
|
|
4
4
|
* it without being rendered inside it. That keeps `<OnPage />` a sibling in the
|
|
5
5
|
* layout, not a wrapper. Kept on `globalThis` so two copies of the package
|
|
6
6
|
* (a bundling mistake) still share one editor.
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
8
|
+
import type { OnPageApi } from './types.ts';
|
|
9
9
|
export declare const hub: {
|
|
10
|
-
get: () =>
|
|
11
|
-
set: (value:
|
|
10
|
+
get: () => OnPageApi | null;
|
|
11
|
+
set: (value: OnPageApi | null) => void;
|
|
12
12
|
subscribe: (fn: () => void) => (() => void);
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=hub.d.ts.map
|
package/dist/hub.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAa3C,eAAO,MAAM,GAAG;eACL,SAAS,GAAG,IAAI;iBACZ,SAAS,GAAG,IAAI,KAAG,IAAI;oBAKpB,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;CAI1C,CAAA"}
|
package/dist/hub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"AAcA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAC5C,MAAM,KAAK,GAAQ,CAAE,UAA8C,CAAC,GAAG,CAAC,KAAK;IAC3E,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI,GAAG,EAAE;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"AAcA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAC5C,MAAM,KAAK,GAAQ,CAAE,UAA8C,CAAC,GAAG,CAAC,KAAK;IAC3E,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI,GAAG,EAAE;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,GAAG,EAAE,GAAqB,EAAE,CAAC,KAAK,CAAC,OAAO;IAC1C,GAAG,EAAE,CAAC,KAAuB,EAAQ,EAAE;QACrC,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO;YAAE,OAAM;QACnC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;QACrB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS;YAAE,EAAE,EAAE,CAAA;IACxC,CAAC;IACD,SAAS,EAAE,CAAC,EAAc,EAAgB,EAAE;QAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvB,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACzC,CAAC;CACF,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
export { OnPageEditor, type OnPageEditorProps } from './editor/OnPageEditor.tsx';
|
|
10
10
|
export { OnPageClient, type OnPageClientProps } from './OnPageClient.tsx';
|
|
11
11
|
export { PreviewToolbar, inPreviewFrame, FRAME_PARAM, type PreviewToolbarProps, } from './ui/PreviewToolbar.tsx';
|
|
12
|
-
export { useOnPage, useOnPageOptional } from './context.tsx';
|
|
13
|
-
export type { EditorRegistry, FieldEditorDef, FieldEditorProps, Links, OnPageContextValue, TargetIndex, } from './types.ts';
|
|
12
|
+
export { useOnPage, useOnPageApi, useOnPageOptional, useSessionSnapshot } from './context.tsx';
|
|
13
|
+
export type { EditorRegistry, FieldEditorDef, FieldEditorProps, Links, OnPageApi, OnPageContextValue, OnPageState, PanelKind, TargetIndex, } from './types.ts';
|
|
14
14
|
export { defaultEditors, CheckboxEditor, ColorEditor, DateEditor, InlineText, NumberEditor, RelationshipEditor, SelectEditor, UploadEditor, } from './editors/index.ts';
|
|
15
15
|
export { resolveEditor, mergeEditors } from './registry.ts';
|
|
16
|
-
export { annotations, stega, composite
|
|
16
|
+
export { annotations, stega, composite } from './locators.ts';
|
|
17
17
|
export { editable, editableOff, p, ATTR, type Editable, type EditableTarget, type FieldKind, } from './annotations.ts';
|
|
18
18
|
export { clientState, fullReload } from './renderers.ts';
|
|
19
19
|
export { defaultMessages, createTranslate, type Messages, type MessageKey, type Translate, } from './messages.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAC9F,YAAY,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EACL,QAAQ,EACR,WAAW,EACX,CAAC,EACD,IAAI,EACJ,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EACL,eAAe,EACf,eAAe,EACf,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,eAAe,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
export { OnPageEditor } from "./editor/OnPageEditor.js";
|
|
10
10
|
export { OnPageClient } from "./OnPageClient.js";
|
|
11
11
|
export { PreviewToolbar, inPreviewFrame, FRAME_PARAM, } from "./ui/PreviewToolbar.js";
|
|
12
|
-
export { useOnPage, useOnPageOptional } from "./context.js";
|
|
12
|
+
export { useOnPage, useOnPageApi, useOnPageOptional, useSessionSnapshot } from "./context.js";
|
|
13
13
|
export { defaultEditors, CheckboxEditor, ColorEditor, DateEditor, InlineText, NumberEditor, RelationshipEditor, SelectEditor, UploadEditor, } from "./editors/index.js";
|
|
14
14
|
export { resolveEditor, mergeEditors } from "./registry.js";
|
|
15
|
-
export { annotations, stega, composite
|
|
15
|
+
export { annotations, stega, composite } from "./locators.js";
|
|
16
16
|
export { editable, editableOff, p, ATTR, } from "./annotations.js";
|
|
17
17
|
export { clientState, fullReload } from "./renderers.js";
|
|
18
18
|
export { defaultMessages, createTranslate, } from "./messages.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAA0B,MAAM,0BAA2B,CAAA;AAChF,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAoB,CAAA;AACzE,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,GAEZ,MAAM,wBAAyB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAA0B,MAAM,0BAA2B,CAAA;AAChF,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAoB,CAAA;AACzE,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,GAEZ,MAAM,wBAAyB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAe,CAAA;AAY9F,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EACL,QAAQ,EACR,WAAW,EACX,CAAC,EACD,IAAI,GAIL,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EACL,eAAe,EACf,eAAe,GAIhB,MAAM,eAAe,CAAA"}
|
package/dist/layout.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAsCA,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAOzD;AAED,8EAA8E;AAC9E,eAAO,MAAM,YAAY,QAAO,IAE/B,CAAA;AAED,mCAAmC;AACnC,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,OAAO,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAsCA,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAOzD;AAED,8EAA8E;AAC9E,eAAO,MAAM,YAAY,QAAO,IAE/B,CAAA;AAED,mCAAmC;AACnC,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,OAAO,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAqBjG"}
|
package/dist/layout.js
CHANGED
|
@@ -69,9 +69,11 @@ export function useTrackElement(getElement, fn) {
|
|
|
69
69
|
run();
|
|
70
70
|
const off = onLayoutChange(run);
|
|
71
71
|
const el = getElement();
|
|
72
|
-
|
|
73
|
-
if (el)
|
|
72
|
+
let ro;
|
|
73
|
+
if (el) {
|
|
74
|
+
ro = new ResizeObserver(() => run());
|
|
74
75
|
ro.observe(el);
|
|
76
|
+
}
|
|
75
77
|
return () => {
|
|
76
78
|
off();
|
|
77
79
|
ro?.disconnect();
|
package/dist/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAA;AACvC,IAAI,KAAK,GAAG,CAAC,CAAA;AACb,IAAI,QAAoC,CAAA;AAExC,SAAS,IAAI;IACX,IAAI,KAAK;QAAE,OAAM;IACjB,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;QACjC,KAAK,GAAG,CAAC,CAAA;QACT,KAAK,MAAM,EAAE,IAAI,SAAS;YAAE,EAAE,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,OAAO;IACd,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACzE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;IACnC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7D,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1C,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,QAAQ,GAAG,SAAS,CAAA;IACpB,IAAI,KAAK;QAAE,oBAAoB,CAAC,KAAK,CAAC,CAAA;IACtC,KAAK,GAAG,CAAC,CAAA;AACX,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,EAAc;IAC3C,IAAI,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAC9B,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACpB,IAAI,CAAC,SAAS,CAAC,IAAI;YAAE,SAAS,EAAE,CAAA;IAClC,CAAC,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,GAAS,EAAE;IACrC,IAAI,SAAS,CAAC,IAAI;QAAE,IAAI,EAAE,CAAA;AAC5B,CAAC,CAAA;AAED,mCAAmC;AACnC,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACnC,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAChE,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,UAAgC,EAAE,EAAyB;IACzF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE;QACxB,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;QACvB,IAAI,EAAE;YAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IACF,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,EAAE,CAAA;QACL,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;QACvB,
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
|