@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.
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":"SelectEditor.js","sourceRoot":"","sources":["../../src/editors/SelectEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAkB,CAAA;AAEzC,qEAAqE;AACrE,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAoB;IACxF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;IACnC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;IAC5B,MAAM,OAAO,GAAa,IAAI;QAC5B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,CAAC,CAAE,KAAkB;YACrB,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,KAAK,IAAI,IAAI;YACb,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACrB,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,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;IAC/D,CAAC,CAAA;IACD,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,eAAe,YAEtB,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,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACjB,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,GACC,CACV,CAAA;AACH,CAAC"}
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":"AAUA,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,+BAmHhF"}
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.message);
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":"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"}
1
+ {"version":3,"file":"UploadEditor.js","sourceRoot":"","sources":["../../src/editors/UploadEditor.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /** The default field editors. Spread, override or remove (`null`) entries via the `editors` option. */
2
1
  import type { EditorRegistry } from '../types.ts';
3
2
  import { CheckboxEditor } from './CheckboxEditor.tsx';
4
3
  import { ColorEditor } from './ColorEditor.tsx';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,eAAO,MAAM,cAAc,EAAE,cAY5B,CAAA;AAED,OAAO,EACL,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,CAAA"}
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"}
@@ -1,23 +1,63 @@
1
- import { CheckboxEditor } from "./CheckboxEditor.js";
2
- import { ColorEditor } from "./ColorEditor.js";
3
- import { DateEditor } from "./DateEditor.js";
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: { mode: 'inline', component: InlineText },
11
- textarea: { mode: 'inline', component: InlineText },
12
- email: { mode: 'inline', component: InlineText },
13
- select: { mode: 'popover', component: SelectEditor },
14
- radio: { mode: 'popover', component: SelectEditor },
15
- checkbox: { mode: 'popover', component: CheckboxEditor },
16
- number: { mode: 'popover', component: NumberEditor },
17
- date: { mode: 'popover', component: DateEditor },
18
- relationship: { mode: 'popover', component: RelationshipEditor },
19
- upload: { mode: 'popover', component: UploadEditor },
20
- color: { mode: 'popover', component: ColorEditor },
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":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAA0B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE;IAC/C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE;IACnD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE;IAChD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE;IACpD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE;IACnD,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE;IACxD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE;IACpD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE;IAChD,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE;IAChE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE;IACpD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE;CACnD,CAAA;AAED,OAAO,EACL,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,CAAA"}
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
- * Run `search(query, page)` 250ms after the inputs settle; results accumulate
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
- }>) | null, deps: unknown[]): {
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":"AAIA;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,GAAG,IAAI,EAC3F,IAAI,EAAE,OAAO,EAAE;;kBAiCC,MAAM;;;;;;EAUvB"}
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 accumulate
5
- * across pages and reset when the query changes. Stale responses are ignored.
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, deps) {
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 && setError(e instanceof Error ? e.message : String(e)))
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
- // eslint-disable-next-line react-hooks/exhaustive-deps
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;AAE3C;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA2F,EAC3F,IAAe;IAEf,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,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAA;YACb,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;iBAChB,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,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnF,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;QACrB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAElC,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"}
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"}
@@ -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 { OnPageContextValue } from './types.ts';
8
+ import type { OnPageApi } from './types.ts';
9
9
  export declare const hub: {
10
- get: () => OnPageContextValue | null;
11
- set: (value: OnPageContextValue | null) => void;
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,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAapD,eAAO,MAAM,GAAG;eACL,kBAAkB,GAAG,IAAI;iBACrB,kBAAkB,GAAG,IAAI,KAAG,IAAI;oBAK7B,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;CAI1C,CAAA"}
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,GAA8B,EAAE,CAAC,KAAK,CAAC,OAAO;IACnD,GAAG,EAAE,CAAC,KAAgC,EAAQ,EAAE;QAC9C,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"}
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, rowPrefixes } from './locators.ts';
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';
@@ -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;AAC5D,YAAY,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,kBAAkB,EAClB,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,WAAW,EAAE,MAAM,eAAe,CAAA;AAC1E,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"}
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, rowPrefixes } from "./locators.js";
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;AAS5D,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,WAAW,EAAE,MAAM,eAAe,CAAA;AAC1E,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"}
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"}
@@ -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,CAkBjG"}
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
- const ro = el ? new ResizeObserver(() => run()) : undefined;
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();
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}