@payload-onpage/react 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/dist/OnPageClient.d.ts.map +1 -1
  2. package/dist/OnPageClient.js +9 -5
  3. package/dist/OnPageClient.js.map +1 -1
  4. package/dist/annotations.d.ts +1 -1
  5. package/dist/annotations.d.ts.map +1 -1
  6. package/dist/context.d.ts +19 -5
  7. package/dist/context.d.ts.map +1 -1
  8. package/dist/context.js +31 -7
  9. package/dist/context.js.map +1 -1
  10. package/dist/dom.d.ts +16 -12
  11. package/dist/dom.d.ts.map +1 -1
  12. package/dist/dom.js +16 -16
  13. package/dist/dom.js.map +1 -1
  14. package/dist/editor/FieldHost.d.ts.map +1 -1
  15. package/dist/editor/FieldHost.js +18 -11
  16. package/dist/editor/FieldHost.js.map +1 -1
  17. package/dist/editor/OnPageEditor.d.ts +15 -8
  18. package/dist/editor/OnPageEditor.d.ts.map +1 -1
  19. package/dist/editor/OnPageEditor.js +73 -103
  20. package/dist/editor/OnPageEditor.js.map +1 -1
  21. package/dist/editor/editTarget.d.ts +28 -0
  22. package/dist/editor/editTarget.d.ts.map +1 -0
  23. package/dist/editor/editTarget.js +20 -0
  24. package/dist/editor/editTarget.js.map +1 -0
  25. package/dist/editor/useClientDocs.d.ts +4 -0
  26. package/dist/editor/useClientDocs.d.ts.map +1 -0
  27. package/dist/editor/useClientDocs.js +16 -0
  28. package/dist/editor/useClientDocs.js.map +1 -0
  29. package/dist/editor/useEditorSession.d.ts +13 -0
  30. package/dist/editor/useEditorSession.d.ts.map +1 -0
  31. package/dist/editor/useEditorSession.js +30 -0
  32. package/dist/editor/useEditorSession.js.map +1 -0
  33. package/dist/editor/useFlash.d.ts +4 -0
  34. package/dist/editor/useFlash.d.ts.map +1 -0
  35. package/dist/editor/useFlash.js +16 -0
  36. package/dist/editor/useFlash.js.map +1 -0
  37. package/dist/editor/useGhosts.d.ts +5 -7
  38. package/dist/editor/useGhosts.d.ts.map +1 -1
  39. package/dist/editor/useGhosts.js.map +1 -1
  40. package/dist/editor/usePageEvents.d.ts.map +1 -1
  41. package/dist/editor/usePageEvents.js +16 -16
  42. package/dist/editor/usePageEvents.js.map +1 -1
  43. package/dist/editor-kit.d.ts +10 -6
  44. package/dist/editor-kit.d.ts.map +1 -1
  45. package/dist/editor-kit.js +8 -5
  46. package/dist/editor-kit.js.map +1 -1
  47. package/dist/editors/CheckboxEditor.d.ts +6 -1
  48. package/dist/editors/CheckboxEditor.d.ts.map +1 -1
  49. package/dist/editors/CheckboxEditor.js +6 -3
  50. package/dist/editors/CheckboxEditor.js.map +1 -1
  51. package/dist/editors/ColorEditor.d.ts +3 -1
  52. package/dist/editors/ColorEditor.d.ts.map +1 -1
  53. package/dist/editors/ColorEditor.js +9 -15
  54. package/dist/editors/ColorEditor.js.map +1 -1
  55. package/dist/editors/DateEditor.d.ts +3 -1
  56. package/dist/editors/DateEditor.d.ts.map +1 -1
  57. package/dist/editors/DateEditor.js +10 -12
  58. package/dist/editors/DateEditor.js.map +1 -1
  59. package/dist/editors/InlineText.d.ts +2 -2
  60. package/dist/editors/InlineText.d.ts.map +1 -1
  61. package/dist/editors/InlineText.js +2 -3
  62. package/dist/editors/InlineText.js.map +1 -1
  63. package/dist/editors/NumberEditor.d.ts +3 -1
  64. package/dist/editors/NumberEditor.d.ts.map +1 -1
  65. package/dist/editors/NumberEditor.js +9 -17
  66. package/dist/editors/NumberEditor.js.map +1 -1
  67. package/dist/editors/RelationshipEditor.d.ts +7 -1
  68. package/dist/editors/RelationshipEditor.d.ts.map +1 -1
  69. package/dist/editors/RelationshipEditor.js +10 -18
  70. package/dist/editors/RelationshipEditor.js.map +1 -1
  71. package/dist/editors/SelectEditor.d.ts +4 -1
  72. package/dist/editors/SelectEditor.d.ts.map +1 -1
  73. package/dist/editors/SelectEditor.js +8 -13
  74. package/dist/editors/SelectEditor.js.map +1 -1
  75. package/dist/editors/UploadEditor.d.ts +7 -1
  76. package/dist/editors/UploadEditor.d.ts.map +1 -1
  77. package/dist/editors/UploadEditor.js +5 -5
  78. package/dist/editors/UploadEditor.js.map +1 -1
  79. package/dist/editors/index.d.ts +0 -1
  80. package/dist/editors/index.d.ts.map +1 -1
  81. package/dist/editors/index.js +56 -16
  82. package/dist/editors/index.js.map +1 -1
  83. package/dist/editors/kit.d.ts +39 -0
  84. package/dist/editors/kit.d.ts.map +1 -0
  85. package/dist/editors/kit.js +44 -0
  86. package/dist/editors/kit.js.map +1 -0
  87. package/dist/editors/useDebouncedSearch.d.ts +10 -6
  88. package/dist/editors/useDebouncedSearch.d.ts.map +1 -1
  89. package/dist/editors/useDebouncedSearch.js +11 -7
  90. package/dist/editors/useDebouncedSearch.js.map +1 -1
  91. package/dist/geometry.d.ts +49 -0
  92. package/dist/geometry.d.ts.map +1 -0
  93. package/dist/geometry.js +48 -0
  94. package/dist/geometry.js.map +1 -0
  95. package/dist/hub.d.ts +4 -4
  96. package/dist/hub.d.ts.map +1 -1
  97. package/dist/hub.js.map +1 -1
  98. package/dist/index.d.ts +3 -3
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +2 -2
  101. package/dist/index.js.map +1 -1
  102. package/dist/layout.d.ts.map +1 -1
  103. package/dist/layout.js +4 -2
  104. package/dist/layout.js.map +1 -1
  105. package/dist/locators.d.ts +0 -2
  106. package/dist/locators.d.ts.map +1 -1
  107. package/dist/locators.js +10 -16
  108. package/dist/locators.js.map +1 -1
  109. package/dist/messages.d.ts +15 -2
  110. package/dist/messages.d.ts.map +1 -1
  111. package/dist/messages.js +5 -0
  112. package/dist/messages.js.map +1 -1
  113. package/dist/registry.d.ts +21 -2
  114. package/dist/registry.d.ts.map +1 -1
  115. package/dist/registry.js +31 -6
  116. package/dist/registry.js.map +1 -1
  117. package/dist/rowOps.d.ts +20 -0
  118. package/dist/rowOps.d.ts.map +1 -0
  119. package/dist/rowOps.js +48 -0
  120. package/dist/rowOps.js.map +1 -0
  121. package/dist/sanitize.d.ts +2 -0
  122. package/dist/sanitize.d.ts.map +1 -1
  123. package/dist/sanitize.js +3 -0
  124. package/dist/sanitize.js.map +1 -1
  125. package/dist/settings.d.ts +10 -0
  126. package/dist/settings.d.ts.map +1 -0
  127. package/dist/settings.js +30 -0
  128. package/dist/settings.js.map +1 -0
  129. package/dist/styles.d.ts +0 -4
  130. package/dist/styles.d.ts.map +1 -1
  131. package/dist/styles.js +2 -1
  132. package/dist/styles.js.map +1 -1
  133. package/dist/targets.d.ts +1 -1
  134. package/dist/targets.d.ts.map +1 -1
  135. package/dist/types.d.ts +71 -46
  136. package/dist/types.d.ts.map +1 -1
  137. package/dist/ui/BlockPicker.d.ts.map +1 -1
  138. package/dist/ui/BlockPicker.js +6 -5
  139. package/dist/ui/BlockPicker.js.map +1 -1
  140. package/dist/ui/Dialog.d.ts +0 -5
  141. package/dist/ui/Dialog.d.ts.map +1 -1
  142. package/dist/ui/Dialog.js +10 -6
  143. package/dist/ui/Dialog.js.map +1 -1
  144. package/dist/ui/Dock.d.ts +1 -6
  145. package/dist/ui/Dock.d.ts.map +1 -1
  146. package/dist/ui/Dock.js +46 -28
  147. package/dist/ui/Dock.js.map +1 -1
  148. package/dist/ui/Overlay.d.ts.map +1 -1
  149. package/dist/ui/Overlay.js +39 -37
  150. package/dist/ui/Overlay.js.map +1 -1
  151. package/dist/ui/PreviewToolbar.d.ts +3 -3
  152. package/dist/ui/PreviewToolbar.d.ts.map +1 -1
  153. package/dist/ui/PreviewToolbar.js +4 -6
  154. package/dist/ui/PreviewToolbar.js.map +1 -1
  155. package/dist/ui/SettingsPanel.d.ts +0 -9
  156. package/dist/ui/SettingsPanel.d.ts.map +1 -1
  157. package/dist/ui/SettingsPanel.js +36 -41
  158. package/dist/ui/SettingsPanel.js.map +1 -1
  159. package/dist/ui/ToolbarButton.d.ts +12 -0
  160. package/dist/ui/ToolbarButton.d.ts.map +1 -0
  161. package/dist/ui/ToolbarButton.js +7 -0
  162. package/dist/ui/ToolbarButton.js.map +1 -0
  163. package/dist/useEvent.d.ts +1 -1
  164. package/dist/useEvent.d.ts.map +1 -1
  165. package/dist/useEvent.js +3 -1
  166. package/dist/useEvent.js.map +1 -1
  167. package/dist/useIsClient.d.ts +5 -0
  168. package/dist/useIsClient.d.ts.map +1 -0
  169. package/dist/useIsClient.js +8 -0
  170. package/dist/useIsClient.js.map +1 -0
  171. package/package.json +2 -2
  172. package/src/OnPageClient.tsx +9 -5
  173. package/src/annotations.ts +1 -1
  174. package/src/context.tsx +53 -10
  175. package/src/dom.ts +17 -18
  176. package/src/editor/FieldHost.tsx +26 -11
  177. package/src/editor/OnPageEditor.tsx +103 -160
  178. package/src/editor/editTarget.ts +41 -0
  179. package/src/editor/useClientDocs.ts +19 -0
  180. package/src/editor/useEditorSession.ts +36 -0
  181. package/src/editor/useFlash.ts +18 -0
  182. package/src/editor/useGhosts.ts +5 -7
  183. package/src/editor/usePageEvents.ts +13 -14
  184. package/src/editor-kit.ts +10 -6
  185. package/src/editors/CheckboxEditor.tsx +11 -12
  186. package/src/editors/ColorEditor.tsx +15 -35
  187. package/src/editors/DateEditor.tsx +18 -37
  188. package/src/editors/InlineText.tsx +4 -5
  189. package/src/editors/NumberEditor.tsx +15 -36
  190. package/src/editors/RelationshipEditor.tsx +18 -36
  191. package/src/editors/SelectEditor.tsx +14 -22
  192. package/src/editors/UploadEditor.tsx +6 -6
  193. package/src/editors/index.ts +56 -16
  194. package/src/editors/kit.tsx +97 -0
  195. package/src/editors/useDebouncedSearch.ts +18 -10
  196. package/src/geometry.ts +62 -0
  197. package/src/hub.ts +5 -5
  198. package/src/index.ts +5 -2
  199. package/src/layout.ts +5 -2
  200. package/src/locators.ts +11 -14
  201. package/src/messages.ts +26 -5
  202. package/src/registry.ts +42 -8
  203. package/src/rowOps.ts +64 -0
  204. package/src/sanitize.ts +6 -0
  205. package/src/settings.ts +49 -0
  206. package/src/styles.ts +2 -1
  207. package/src/targets.ts +1 -1
  208. package/src/types.ts +78 -45
  209. package/src/ui/BlockPicker.tsx +6 -7
  210. package/src/ui/Dialog.tsx +9 -5
  211. package/src/ui/Dock.tsx +67 -50
  212. package/src/ui/Overlay.tsx +75 -102
  213. package/src/ui/PreviewToolbar.tsx +7 -15
  214. package/src/ui/SettingsPanel.tsx +84 -81
  215. package/src/ui/ToolbarButton.tsx +36 -0
  216. package/src/useEvent.ts +4 -2
  217. package/src/useIsClient.ts +15 -0
@@ -1 +1 @@
1
- {"version":3,"file":"usePageEvents.js","sourceRoot":"","sources":["../../src/editor/usePageEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePageEvents.js","sourceRoot":"","sources":["../../src/editor/usePageEvents.ts"],"names":[],"mappings":"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"}
@@ -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
- * function JsonEditor({ field, value, element, commit, close, t }: FieldEditorProps) {
6
- * return <Dialog variant="popover" anchor={element} title={field.label} onClose={close} t={t}>…</Dialog>
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 { escapeHtml } from './editors/InlineText.tsx';
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
@@ -1 +1 @@
1
- {"version":3,"file":"editor-kit.d.ts","sourceRoot":"","sources":["../src/editor-kit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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,UAAU,EAAE,MAAM,0BAA0B,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,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClF,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA"}
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"}
@@ -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
- * function JsonEditor({ field, value, element, commit, close, t }: FieldEditorProps) {
6
- * return <Dialog variant="popover" anchor={element} title={field.label} onClose={close} t={t}>…</Dialog>
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 { escapeHtml } from "./editors/InlineText.js";
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
@@ -1 +1 @@
1
- {"version":3,"file":"editor-kit.js","sourceRoot":"","sources":["../src/editor-kit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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,UAAU,EAAE,MAAM,yBAA0B,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,YAAY,EAAE,MAAM,eAAe,CAAA"}
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
- export declare function CheckboxEditor({ field, value, element, commit, close, t }: FieldEditorProps): import("react").JSX.Element;
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,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,+BAyB3F"}
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 { Dialog } from "../ui/Dialog.js";
4
- export function CheckboxEditor({ field, value, element, commit, close, t }) {
5
- return (_jsx(Dialog, { variant: "popover", anchor: element, title: field.label, onClose: close, t: t, testId: "onpage-checkbox", children: _jsxs("label", { className: "po-check", children: [_jsx("input", { type: "checkbox", "data-autofocus": true, checked: Boolean(value ?? field.defaultValue), onChange: (e) => {
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;;AAGZ,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAkB,CAAA;AAEzC,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAoB;IAC1F,OAAO,CACL,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,KAAK,EACd,CAAC,EAAE,CAAC,EACJ,MAAM,EAAC,iBAAiB,YAExB,iBAAO,SAAS,EAAC,UAAU,aACzB,gBACE,IAAI,EAAC,UAAU,0BAEf,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,EAC7C,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,GACD,CACV,CAAA;AACH,CAAC"}
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({ field, value, element, commit, preview, close, live, t, }: FieldEditorProps): import("react").JSX.Element;
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":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKnD,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,CAAC,GACF,EAAE,gBAAgB,+BA6ClB"}
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 { useState } from 'react';
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({ field, value, element, commit, preview, close, live, t, }) {
8
- const [draft, setDraft] = useState(typeof value === 'string' ? value : '');
9
- const change = (v) => {
10
- setDraft(v);
11
- if (live && HEX.test(v))
12
- preview(v);
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;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAkB,CAAA;AAEzC,MAAM,GAAG,GAAG,iCAAiC,CAAA;AAE7C,uGAAuG;AACvG,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,CAAC,GACgB;IACjB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,QAAQ,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;QACvF,KAAK,EAAE,CAAA;IACT,CAAC,CAAA;IACD,OAAO,CACL,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,KAAK,EACd,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,GAAG,EACV,MAAM,EAAC,cAAc,aAErB,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,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,EAAE,iBACjC,oBAAoB,GAChC,IACE,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,IAAI,iBAAc,cAAc,YAC1F,CAAC,CAAC,cAAc,CAAC,GACX,IACF,CACV,CAAA;AACH,CAAC"}
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 function DateEditor({ field, value, element, commit, close, t }: FieldEditorProps): import("react").JSX.Element;
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":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAanD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,+BA+CvF"}
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 { useState } from 'react';
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 (typeof iso !== 'string' || !iso)
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 function DateEditor({ field, value, element, commit, close, t }) {
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 [draft, setDraft] = useState(toLocalInput(value, withTime));
19
- const save = () => {
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
- const next = draft ? new Date(withTime ? draft : `${draft}T12:00:00`).toISOString() : null;
22
- if (next !== value)
23
- commit(next);
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":"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"}
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 const escapeHtml: (s: string) => string;
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":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,MACuD,CAAA;AAE9F,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,+BAyElB"}
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
- export const escapeHtml = (s) => s.replace(/[&<>"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' })[c]);
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(toText(value));
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":"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"}
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({ field, value, element, commit, preview, close, live, t, }: FieldEditorProps): import("react").JSX.Element;
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":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,CAAC,GACF,EAAE,gBAAgB,+BAmDlB"}
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 { toText } from '@payload-onpage/core';
4
- import { useState } from 'react';
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({ field, value, element, commit, preview, close, live, t, }) {
8
- const [draft, setDraft] = useState(toText(value));
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
- const save = () => {
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;;AAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAkB,CAAA;AAEzC,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,CAAC,GACgB;IACjB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,CAAA;IACjE,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1E,KAAK,EAAE,CAAA;IACT,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,QAAQ,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACtE,CAAC,CAAA;IACD,OAAO,CACL,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,KAAK,EACd,CAAC,EAAE,CAAC,EACJ,MAAM,EAAC,eAAe,aAEtB,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,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,EAAE,iBACjC,qBAAqB,GACjC,IACE,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,IAAI,iBAAc,cAAc,YAC1F,CAAC,CAAC,cAAc,CAAC,GACX,IACF,CACV,CAAA;AACH,CAAC"}
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({ docKey, field, value, element, commit, close, t, }: FieldEditorProps): import("react").JSX.Element;
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":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAInD,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,CAAC,GACF,EAAE,gBAAgB,+BAkIlB"}
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 { Dialog } from "../ui/Dialog.js";
11
+ import { EditorPopover } from "./kit.js";
12
12
  import { useDebouncedSearch } from "./useDebouncedSearch.js";
13
- export function RelationshipEditor({ docKey, field, value, element, commit, close, t, }) {
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(Dialog, { variant: "popover", anchor: element, title: field.label, onClose: close, t: t, width: 320, testId: "onpage-relationship", 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.remove')} ${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)))) })] }))] }));
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":"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"}
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({ field, value, element, commit, close, t }: FieldEditorProps): import("react").JSX.Element;
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":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,+BAkEzF"}
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 { toText } from '@payload-onpage/core';
4
- import { Dialog } from "../ui/Dialog.js";
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({ field, value, element, commit, close, t }) {
7
- const options = field.options ?? [];
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(Dialog, { variant: "popover", anchor: element, title: field.label, onClose: close, t: t, 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') })), options.map((o) => {
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
  })] }) }));