@delmaredigital/payload-puck 0.6.10 → 0.6.13

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 (583) hide show
  1. package/README.md +79 -1
  2. package/dist/admin/EditWithPuckButton.d.ts +1 -1
  3. package/dist/admin/EditWithPuckButton.d.ts.map +1 -1
  4. package/dist/admin/EditWithPuckButton.js +65 -25
  5. package/dist/admin/EditWithPuckButton.js.map +1 -1
  6. package/dist/admin/EditWithPuckCell.js +43 -13
  7. package/dist/admin/EditWithPuckCell.js.map +1 -1
  8. package/dist/admin/PuckEditorView.d.ts +1 -1
  9. package/dist/admin/PuckEditorView.d.ts.map +1 -1
  10. package/dist/admin/PuckEditorView.js +118 -32
  11. package/dist/admin/PuckEditorView.js.map +1 -1
  12. package/dist/admin/client.d.ts +2 -2
  13. package/dist/admin/client.d.ts.map +1 -1
  14. package/dist/admin/client.js +4 -4
  15. package/dist/admin/client.js.map +1 -1
  16. package/dist/admin/generateAdminComponents.js +7 -7
  17. package/dist/admin/generateAdminComponents.js.map +1 -1
  18. package/dist/admin/index.d.ts +5 -5
  19. package/dist/admin/index.d.ts.map +1 -1
  20. package/dist/admin/index.js +3 -2
  21. package/dist/admin/index.js.map +1 -1
  22. package/dist/ai/collections/AiContext.js +56 -29
  23. package/dist/ai/collections/AiContext.js.map +1 -1
  24. package/dist/ai/collections/AiPrompts.js +24 -19
  25. package/dist/ai/collections/AiPrompts.js.map +1 -1
  26. package/dist/ai/createAiApiRoutes.js +28 -19
  27. package/dist/ai/createAiApiRoutes.js.map +1 -1
  28. package/dist/ai/createAiGenerate.js +7 -8
  29. package/dist/ai/createAiGenerate.js.map +1 -1
  30. package/dist/ai/createAiPlugin.js +7 -9
  31. package/dist/ai/createAiPlugin.js.map +1 -1
  32. package/dist/ai/hooks/useAiContext.js +50 -39
  33. package/dist/ai/hooks/useAiContext.js.map +1 -1
  34. package/dist/ai/hooks/useAiPrompts.js +33 -25
  35. package/dist/ai/hooks/useAiPrompts.js.map +1 -1
  36. package/dist/ai/index.js +9 -10
  37. package/dist/ai/index.js.map +1 -1
  38. package/dist/ai/plugins/ContextEditorPanel.d.ts +1 -1
  39. package/dist/ai/plugins/ContextEditorPanel.d.ts.map +1 -1
  40. package/dist/ai/plugins/ContextEditorPanel.js +399 -107
  41. package/dist/ai/plugins/ContextEditorPanel.js.map +1 -1
  42. package/dist/ai/plugins/PromptEditorPanel.d.ts +1 -1
  43. package/dist/ai/plugins/PromptEditorPanel.d.ts.map +1 -1
  44. package/dist/ai/plugins/PromptEditorPanel.js +237 -51
  45. package/dist/ai/plugins/PromptEditorPanel.js.map +1 -1
  46. package/dist/ai/plugins/contextEditorPlugin.js +12 -5
  47. package/dist/ai/plugins/contextEditorPlugin.js.map +1 -1
  48. package/dist/ai/plugins/promptApiRoutes.js +119 -50
  49. package/dist/ai/plugins/promptApiRoutes.js.map +1 -1
  50. package/dist/ai/plugins/promptEditorPlugin.js +12 -5
  51. package/dist/ai/plugins/promptEditorPlugin.js.map +1 -1
  52. package/dist/ai/presets/componentAiDefaults.js +108 -83
  53. package/dist/ai/presets/componentAiDefaults.js.map +1 -1
  54. package/dist/ai/presets/index.js +12 -18
  55. package/dist/ai/presets/index.js.map +1 -1
  56. package/dist/ai/presets/instructions/interactive.js +85 -75
  57. package/dist/ai/presets/instructions/interactive.js.map +1 -1
  58. package/dist/ai/presets/instructions/layout.js +122 -117
  59. package/dist/ai/presets/instructions/layout.js.map +1 -1
  60. package/dist/ai/presets/instructions/media.js +31 -29
  61. package/dist/ai/presets/instructions/media.js.map +1 -1
  62. package/dist/ai/presets/instructions/pagePatterns.js +4 -6
  63. package/dist/ai/presets/instructions/pagePatterns.js.map +1 -1
  64. package/dist/ai/presets/instructions/schemas.js +495 -137
  65. package/dist/ai/presets/instructions/schemas.js.map +1 -1
  66. package/dist/ai/presets/instructions/typography.js +38 -33
  67. package/dist/ai/presets/instructions/typography.js.map +1 -1
  68. package/dist/ai/tools/index.js +92 -55
  69. package/dist/ai/tools/index.js.map +1 -1
  70. package/dist/ai/types.js +7 -1
  71. package/dist/ai/types.js.map +1 -1
  72. package/dist/ai/utils/injectAiConfig.js +33 -40
  73. package/dist/ai/utils/injectAiConfig.js.map +1 -1
  74. package/dist/api/createPuckApiRoutes.d.ts +1 -1
  75. package/dist/api/createPuckApiRoutes.d.ts.map +1 -1
  76. package/dist/api/createPuckApiRoutes.js +123 -65
  77. package/dist/api/createPuckApiRoutes.js.map +1 -1
  78. package/dist/api/createPuckApiRoutesVersions.d.ts +1 -1
  79. package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -1
  80. package/dist/api/createPuckApiRoutesVersions.js +88 -37
  81. package/dist/api/createPuckApiRoutesVersions.js.map +1 -1
  82. package/dist/api/createPuckApiRoutesWithId.d.ts +1 -1
  83. package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -1
  84. package/dist/api/createPuckApiRoutesWithId.js +166 -72
  85. package/dist/api/createPuckApiRoutesWithId.js.map +1 -1
  86. package/dist/api/index.d.ts +5 -5
  87. package/dist/api/index.d.ts.map +1 -1
  88. package/dist/api/index.js +6 -6
  89. package/dist/api/index.js.map +1 -1
  90. package/dist/api/payload-config.d.js +15 -0
  91. package/dist/api/payload-config.d.js.map +1 -0
  92. package/dist/api/types.js +4 -1
  93. package/dist/api/types.js.map +1 -1
  94. package/dist/api/utils/mapRootProps.d.ts +1 -1
  95. package/dist/api/utils/mapRootProps.d.ts.map +1 -1
  96. package/dist/api/utils/mapRootProps.js +77 -44
  97. package/dist/api/utils/mapRootProps.js.map +1 -1
  98. package/dist/collections/Templates.js +24 -20
  99. package/dist/collections/Templates.js.map +1 -1
  100. package/dist/components/AccordionClient.d.ts +2 -2
  101. package/dist/components/AccordionClient.d.ts.map +1 -1
  102. package/dist/components/AccordionClient.js +81 -22
  103. package/dist/components/AccordionClient.js.map +1 -1
  104. package/dist/components/AnimatedWrapper.d.ts +2 -2
  105. package/dist/components/AnimatedWrapper.d.ts.map +1 -1
  106. package/dist/components/AnimatedWrapper.js +31 -16
  107. package/dist/components/AnimatedWrapper.js.map +1 -1
  108. package/dist/components/exports.js +2 -2
  109. package/dist/components/exports.js.map +1 -1
  110. package/dist/components/index.d.ts +5 -5
  111. package/dist/components/index.d.ts.map +1 -1
  112. package/dist/components/index.js +7 -7
  113. package/dist/components/index.js.map +1 -1
  114. package/dist/components/interactive/Accordion.d.ts +1 -1
  115. package/dist/components/interactive/Accordion.d.ts.map +1 -1
  116. package/dist/components/interactive/Accordion.js +149 -55
  117. package/dist/components/interactive/Accordion.js.map +1 -1
  118. package/dist/components/interactive/Accordion.server.d.ts +1 -1
  119. package/dist/components/interactive/Accordion.server.d.ts.map +1 -1
  120. package/dist/components/interactive/Accordion.server.js +25 -7
  121. package/dist/components/interactive/Accordion.server.js.map +1 -1
  122. package/dist/components/interactive/Button.d.ts +3 -3
  123. package/dist/components/interactive/Button.d.ts.map +1 -1
  124. package/dist/components/interactive/Button.js +89 -43
  125. package/dist/components/interactive/Button.js.map +1 -1
  126. package/dist/components/interactive/Button.server.d.ts +2 -2
  127. package/dist/components/interactive/Button.server.d.ts.map +1 -1
  128. package/dist/components/interactive/Button.server.js +40 -20
  129. package/dist/components/interactive/Button.server.js.map +1 -1
  130. package/dist/components/interactive/Card.d.ts +3 -3
  131. package/dist/components/interactive/Card.d.ts.map +1 -1
  132. package/dist/components/interactive/Card.js +131 -39
  133. package/dist/components/interactive/Card.js.map +1 -1
  134. package/dist/components/interactive/Card.server.d.ts +3 -3
  135. package/dist/components/interactive/Card.server.d.ts.map +1 -1
  136. package/dist/components/interactive/Card.server.js +72 -11
  137. package/dist/components/interactive/Card.server.js.map +1 -1
  138. package/dist/components/interactive/Divider.d.ts +1 -1
  139. package/dist/components/interactive/Divider.d.ts.map +1 -1
  140. package/dist/components/interactive/Divider.js +54 -26
  141. package/dist/components/interactive/Divider.js.map +1 -1
  142. package/dist/components/interactive/Divider.server.d.ts +1 -1
  143. package/dist/components/interactive/Divider.server.d.ts.map +1 -1
  144. package/dist/components/interactive/Divider.server.js +28 -12
  145. package/dist/components/interactive/Divider.server.js.map +1 -1
  146. package/dist/components/interactive/index.d.ts +4 -4
  147. package/dist/components/interactive/index.d.ts.map +1 -1
  148. package/dist/components/interactive/index.js +5 -5
  149. package/dist/components/interactive/index.js.map +1 -1
  150. package/dist/components/layout/Container.d.ts +1 -1
  151. package/dist/components/layout/Container.d.ts.map +1 -1
  152. package/dist/components/layout/Container.js +101 -47
  153. package/dist/components/layout/Container.js.map +1 -1
  154. package/dist/components/layout/Container.server.d.ts +1 -1
  155. package/dist/components/layout/Container.server.d.ts.map +1 -1
  156. package/dist/components/layout/Container.server.js +67 -19
  157. package/dist/components/layout/Container.server.js.map +1 -1
  158. package/dist/components/layout/Flex.d.ts +2 -2
  159. package/dist/components/layout/Flex.d.ts.map +1 -1
  160. package/dist/components/layout/Flex.js +124 -55
  161. package/dist/components/layout/Flex.js.map +1 -1
  162. package/dist/components/layout/Flex.server.d.ts +1 -1
  163. package/dist/components/layout/Flex.server.d.ts.map +1 -1
  164. package/dist/components/layout/Flex.server.js +50 -14
  165. package/dist/components/layout/Flex.server.js.map +1 -1
  166. package/dist/components/layout/Grid.d.ts +1 -1
  167. package/dist/components/layout/Grid.d.ts.map +1 -1
  168. package/dist/components/layout/Grid.js +93 -44
  169. package/dist/components/layout/Grid.js.map +1 -1
  170. package/dist/components/layout/Grid.server.d.ts +1 -1
  171. package/dist/components/layout/Grid.server.d.ts.map +1 -1
  172. package/dist/components/layout/Grid.server.js +56 -14
  173. package/dist/components/layout/Grid.server.js.map +1 -1
  174. package/dist/components/layout/Section.d.ts +1 -1
  175. package/dist/components/layout/Section.d.ts.map +1 -1
  176. package/dist/components/layout/Section.js +147 -64
  177. package/dist/components/layout/Section.js.map +1 -1
  178. package/dist/components/layout/Section.server.d.ts +1 -1
  179. package/dist/components/layout/Section.server.d.ts.map +1 -1
  180. package/dist/components/layout/Section.server.js +92 -28
  181. package/dist/components/layout/Section.server.js.map +1 -1
  182. package/dist/components/layout/Spacer.d.ts +1 -1
  183. package/dist/components/layout/Spacer.d.ts.map +1 -1
  184. package/dist/components/layout/Spacer.js +80 -30
  185. package/dist/components/layout/Spacer.js.map +1 -1
  186. package/dist/components/layout/Spacer.server.d.ts +1 -1
  187. package/dist/components/layout/Spacer.server.d.ts.map +1 -1
  188. package/dist/components/layout/Spacer.server.js +31 -9
  189. package/dist/components/layout/Spacer.server.js.map +1 -1
  190. package/dist/components/layout/Template.d.ts +1 -1
  191. package/dist/components/layout/Template.d.ts.map +1 -1
  192. package/dist/components/layout/Template.js +58 -30
  193. package/dist/components/layout/Template.js.map +1 -1
  194. package/dist/components/layout/Template.server.d.ts +1 -1
  195. package/dist/components/layout/Template.server.d.ts.map +1 -1
  196. package/dist/components/layout/Template.server.js +43 -11
  197. package/dist/components/layout/Template.server.js.map +1 -1
  198. package/dist/components/layout/index.d.ts +8 -8
  199. package/dist/components/layout/index.d.ts.map +1 -1
  200. package/dist/components/layout/index.js +8 -8
  201. package/dist/components/layout/index.js.map +1 -1
  202. package/dist/components/media/Image.d.ts +3 -3
  203. package/dist/components/media/Image.d.ts.map +1 -1
  204. package/dist/components/media/Image.js +122 -39
  205. package/dist/components/media/Image.js.map +1 -1
  206. package/dist/components/media/Image.server.d.ts +3 -3
  207. package/dist/components/media/Image.server.d.ts.map +1 -1
  208. package/dist/components/media/Image.server.js +76 -13
  209. package/dist/components/media/Image.server.js.map +1 -1
  210. package/dist/components/media/index.d.ts +1 -1
  211. package/dist/components/media/index.d.ts.map +1 -1
  212. package/dist/components/media/index.js +2 -2
  213. package/dist/components/media/index.js.map +1 -1
  214. package/dist/components/typography/Heading.d.ts +2 -2
  215. package/dist/components/typography/Heading.d.ts.map +1 -1
  216. package/dist/components/typography/Heading.js +45 -25
  217. package/dist/components/typography/Heading.js.map +1 -1
  218. package/dist/components/typography/Heading.server.d.ts +2 -2
  219. package/dist/components/typography/Heading.server.d.ts.map +1 -1
  220. package/dist/components/typography/Heading.server.js +16 -10
  221. package/dist/components/typography/Heading.server.js.map +1 -1
  222. package/dist/components/typography/RichText.editor.d.ts +1 -1
  223. package/dist/components/typography/RichText.editor.d.ts.map +1 -1
  224. package/dist/components/typography/RichText.editor.js +44 -19
  225. package/dist/components/typography/RichText.editor.js.map +1 -1
  226. package/dist/components/typography/RichText.server.d.ts +2 -2
  227. package/dist/components/typography/RichText.server.d.ts.map +1 -1
  228. package/dist/components/typography/RichText.server.js +33 -14
  229. package/dist/components/typography/RichText.server.js.map +1 -1
  230. package/dist/components/typography/Text.d.ts +2 -2
  231. package/dist/components/typography/Text.d.ts.map +1 -1
  232. package/dist/components/typography/Text.js +49 -23
  233. package/dist/components/typography/Text.js.map +1 -1
  234. package/dist/components/typography/Text.server.d.ts +2 -2
  235. package/dist/components/typography/Text.server.d.ts.map +1 -1
  236. package/dist/components/typography/Text.server.js +21 -8
  237. package/dist/components/typography/Text.server.js.map +1 -1
  238. package/dist/components/typography/index.d.ts +4 -4
  239. package/dist/components/typography/index.d.ts.map +1 -1
  240. package/dist/components/typography/index.js +5 -5
  241. package/dist/components/typography/index.js.map +1 -1
  242. package/dist/config/config.editor.d.ts +3 -3
  243. package/dist/config/config.editor.d.ts.map +1 -1
  244. package/dist/config/config.editor.js +119 -54
  245. package/dist/config/config.editor.js.map +1 -1
  246. package/dist/config/index.d.ts +4 -4
  247. package/dist/config/index.d.ts.map +1 -1
  248. package/dist/config/index.js +62 -35
  249. package/dist/config/index.js.map +1 -1
  250. package/dist/config/merge.d.ts +1 -1
  251. package/dist/config/merge.d.ts.map +1 -1
  252. package/dist/config/merge.js +23 -26
  253. package/dist/config/merge.js.map +1 -1
  254. package/dist/config/presets.d.ts +4 -4
  255. package/dist/config/presets.js +195 -75
  256. package/dist/config/presets.js.map +1 -1
  257. package/dist/config/types.js +6 -2
  258. package/dist/config/types.js.map +1 -1
  259. package/dist/editor/PuckEditor.d.ts +12 -4
  260. package/dist/editor/PuckEditor.d.ts.map +1 -1
  261. package/dist/editor/PuckEditor.js +168 -67
  262. package/dist/editor/PuckEditor.js.map +1 -1
  263. package/dist/editor/PuckEditorImpl.client.d.ts +4 -4
  264. package/dist/editor/PuckEditorImpl.client.d.ts.map +1 -1
  265. package/dist/editor/PuckEditorImpl.client.js +304 -152
  266. package/dist/editor/PuckEditorImpl.client.js.map +1 -1
  267. package/dist/editor/components/DarkModeStyles.js +11 -12
  268. package/dist/editor/components/DarkModeStyles.js.map +1 -1
  269. package/dist/editor/components/HeaderActions.js +308 -64
  270. package/dist/editor/components/HeaderActions.js.map +1 -1
  271. package/dist/editor/components/IframeWrapper.d.ts +1 -1
  272. package/dist/editor/components/IframeWrapper.d.ts.map +1 -1
  273. package/dist/editor/components/IframeWrapper.js +82 -58
  274. package/dist/editor/components/IframeWrapper.js.map +1 -1
  275. package/dist/editor/components/LoadingState.d.ts +1 -1
  276. package/dist/editor/components/LoadingState.d.ts.map +1 -1
  277. package/dist/editor/components/LoadingState.js +17 -3
  278. package/dist/editor/components/LoadingState.js.map +1 -1
  279. package/dist/editor/components/PreviewModal.js +234 -78
  280. package/dist/editor/components/PreviewModal.js.map +1 -1
  281. package/dist/editor/components/PreviewModeToggle.js +43 -15
  282. package/dist/editor/components/PreviewModeToggle.js.map +1 -1
  283. package/dist/editor/components/VersionHistory.js +219 -71
  284. package/dist/editor/components/VersionHistory.js.map +1 -1
  285. package/dist/editor/hooks/useDarkMode.js +36 -23
  286. package/dist/editor/hooks/useDarkMode.js.map +1 -1
  287. package/dist/editor/hooks/useUnsavedChanges.js +8 -8
  288. package/dist/editor/hooks/useUnsavedChanges.js.map +1 -1
  289. package/dist/editor/index.js +5 -6
  290. package/dist/editor/index.js.map +1 -1
  291. package/dist/editor/plugins/VersionHistoryPanel.js +236 -75
  292. package/dist/editor/plugins/VersionHistoryPanel.js.map +1 -1
  293. package/dist/editor/plugins/index.js +4 -4
  294. package/dist/editor/plugins/index.js.map +1 -1
  295. package/dist/editor/plugins/versionHistoryPlugin.js +10 -8
  296. package/dist/editor/plugins/versionHistoryPlugin.js.map +1 -1
  297. package/dist/editor/utils/detectPageTree.js +5 -5
  298. package/dist/editor/utils/detectPageTree.js.map +1 -1
  299. package/dist/editor/utils/index.js +1 -0
  300. package/dist/editor/utils/index.js.map +1 -1
  301. package/dist/editor/utils/injectPageTreeFields.js +13 -9
  302. package/dist/editor/utils/injectPageTreeFields.js.map +1 -1
  303. package/dist/endpoints/ai.js +58 -34
  304. package/dist/endpoints/ai.js.map +1 -1
  305. package/dist/endpoints/context.js +86 -40
  306. package/dist/endpoints/context.js.map +1 -1
  307. package/dist/endpoints/index.js +153 -76
  308. package/dist/endpoints/index.js.map +1 -1
  309. package/dist/endpoints/postcss.d.js +5 -0
  310. package/dist/endpoints/postcss.d.js.map +1 -0
  311. package/dist/endpoints/prompts.js +81 -39
  312. package/dist/endpoints/prompts.js.map +1 -1
  313. package/dist/endpoints/styles.js +34 -36
  314. package/dist/endpoints/styles.js.map +1 -1
  315. package/dist/exports/client.js +2 -2
  316. package/dist/exports/client.js.map +1 -1
  317. package/dist/exports/rsc.js +2 -2
  318. package/dist/exports/rsc.js.map +1 -1
  319. package/dist/fields/AlignmentField.d.ts +1 -1
  320. package/dist/fields/AlignmentField.d.ts.map +1 -1
  321. package/dist/fields/AlignmentField.js +93 -30
  322. package/dist/fields/AlignmentField.js.map +1 -1
  323. package/dist/fields/AnimationField.d.ts +2 -2
  324. package/dist/fields/AnimationField.d.ts.map +1 -1
  325. package/dist/fields/AnimationField.js +558 -84
  326. package/dist/fields/AnimationField.js.map +1 -1
  327. package/dist/fields/BackgroundField.d.ts +2 -2
  328. package/dist/fields/BackgroundField.d.ts.map +1 -1
  329. package/dist/fields/BackgroundField.js +754 -120
  330. package/dist/fields/BackgroundField.js.map +1 -1
  331. package/dist/fields/BorderField.d.ts +2 -2
  332. package/dist/fields/BorderField.d.ts.map +1 -1
  333. package/dist/fields/BorderField.js +275 -73
  334. package/dist/fields/BorderField.js.map +1 -1
  335. package/dist/fields/ColorPickerField.d.ts +2 -2
  336. package/dist/fields/ColorPickerField.d.ts.map +1 -1
  337. package/dist/fields/ColorPickerField.js +210 -68
  338. package/dist/fields/ColorPickerField.js.map +1 -1
  339. package/dist/fields/ContentAlignmentField.d.ts +1 -1
  340. package/dist/fields/ContentAlignmentField.d.ts.map +1 -1
  341. package/dist/fields/ContentAlignmentField.js +161 -75
  342. package/dist/fields/ContentAlignmentField.js.map +1 -1
  343. package/dist/fields/DimensionsField.d.ts +2 -2
  344. package/dist/fields/DimensionsField.d.ts.map +1 -1
  345. package/dist/fields/DimensionsField.js +575 -146
  346. package/dist/fields/DimensionsField.js.map +1 -1
  347. package/dist/fields/FlexAlignmentField.d.ts +2 -2
  348. package/dist/fields/FlexAlignmentField.d.ts.map +1 -1
  349. package/dist/fields/FlexAlignmentField.js +189 -51
  350. package/dist/fields/FlexAlignmentField.js.map +1 -1
  351. package/dist/fields/FolderPickerField.d.ts +8 -1
  352. package/dist/fields/FolderPickerField.d.ts.map +1 -1
  353. package/dist/fields/FolderPickerField.js +288 -75
  354. package/dist/fields/FolderPickerField.js.map +1 -1
  355. package/dist/fields/GradientEditor.d.ts +2 -2
  356. package/dist/fields/GradientEditor.d.ts.map +1 -1
  357. package/dist/fields/GradientEditor.js +462 -86
  358. package/dist/fields/GradientEditor.js.map +1 -1
  359. package/dist/fields/LockedField.d.ts +15 -2
  360. package/dist/fields/LockedField.d.ts.map +1 -1
  361. package/dist/fields/LockedField.js +180 -49
  362. package/dist/fields/LockedField.js.map +1 -1
  363. package/dist/fields/MarginField.d.ts +2 -2
  364. package/dist/fields/MarginField.d.ts.map +1 -1
  365. package/dist/fields/MarginField.js +144 -46
  366. package/dist/fields/MarginField.js.map +1 -1
  367. package/dist/fields/MediaField.d.ts +1 -1
  368. package/dist/fields/MediaField.d.ts.map +1 -1
  369. package/dist/fields/MediaField.js +688 -186
  370. package/dist/fields/MediaField.js.map +1 -1
  371. package/dist/fields/PaddingField.d.ts +2 -2
  372. package/dist/fields/PaddingField.d.ts.map +1 -1
  373. package/dist/fields/PaddingField.js +144 -46
  374. package/dist/fields/PaddingField.js.map +1 -1
  375. package/dist/fields/PageSegmentField.d.ts +15 -2
  376. package/dist/fields/PageSegmentField.d.ts.map +1 -1
  377. package/dist/fields/PageSegmentField.js +156 -54
  378. package/dist/fields/PageSegmentField.js.map +1 -1
  379. package/dist/fields/ResetField.d.ts +1 -1
  380. package/dist/fields/ResetField.d.ts.map +1 -1
  381. package/dist/fields/ResetField.js +59 -31
  382. package/dist/fields/ResetField.js.map +1 -1
  383. package/dist/fields/ResponsiveField.d.ts +1 -1
  384. package/dist/fields/ResponsiveField.d.ts.map +1 -1
  385. package/dist/fields/ResponsiveField.js +233 -90
  386. package/dist/fields/ResponsiveField.js.map +1 -1
  387. package/dist/fields/ResponsiveVisibilityField.d.ts +2 -2
  388. package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -1
  389. package/dist/fields/ResponsiveVisibilityField.js +119 -36
  390. package/dist/fields/ResponsiveVisibilityField.js.map +1 -1
  391. package/dist/fields/SizeField.d.ts +3 -3
  392. package/dist/fields/SizeField.d.ts.map +1 -1
  393. package/dist/fields/SizeField.js +226 -52
  394. package/dist/fields/SizeField.js.map +1 -1
  395. package/dist/fields/SlugPreviewField.d.ts +8 -1
  396. package/dist/fields/SlugPreviewField.d.ts.map +1 -1
  397. package/dist/fields/SlugPreviewField.js +65 -16
  398. package/dist/fields/SlugPreviewField.js.map +1 -1
  399. package/dist/fields/TemplateField.d.ts +1 -1
  400. package/dist/fields/TemplateField.d.ts.map +1 -1
  401. package/dist/fields/TemplateField.js +362 -120
  402. package/dist/fields/TemplateField.js.map +1 -1
  403. package/dist/fields/TransformField.d.ts +2 -2
  404. package/dist/fields/TransformField.d.ts.map +1 -1
  405. package/dist/fields/TransformField.js +517 -81
  406. package/dist/fields/TransformField.js.map +1 -1
  407. package/dist/fields/VerticalAlignmentField.d.ts +1 -1
  408. package/dist/fields/VerticalAlignmentField.d.ts.map +1 -1
  409. package/dist/fields/VerticalAlignmentField.js +93 -30
  410. package/dist/fields/VerticalAlignmentField.js.map +1 -1
  411. package/dist/fields/WidthField.d.ts +2 -2
  412. package/dist/fields/WidthField.d.ts.map +1 -1
  413. package/dist/fields/WidthField.js +278 -81
  414. package/dist/fields/WidthField.js.map +1 -1
  415. package/dist/fields/index.d.ts +41 -41
  416. package/dist/fields/index.d.ts.map +1 -1
  417. package/dist/fields/index.js +37 -43
  418. package/dist/fields/index.js.map +1 -1
  419. package/dist/fields/richtext/controls/ColorPickerControl.d.ts +13 -2
  420. package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +1 -1
  421. package/dist/fields/richtext/controls/ColorPickerControl.js +212 -47
  422. package/dist/fields/richtext/controls/ColorPickerControl.js.map +1 -1
  423. package/dist/fields/richtext/controls/DropdownPortal.d.ts +2 -2
  424. package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +1 -1
  425. package/dist/fields/richtext/controls/DropdownPortal.js +36 -4
  426. package/dist/fields/richtext/controls/DropdownPortal.js.map +1 -1
  427. package/dist/fields/richtext/controls/FontSizeControl.d.ts +9 -1
  428. package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +1 -1
  429. package/dist/fields/richtext/controls/FontSizeControl.js +109 -24
  430. package/dist/fields/richtext/controls/FontSizeControl.js.map +1 -1
  431. package/dist/fields/richtext/controls/HighlightControl.d.ts +12 -1
  432. package/dist/fields/richtext/controls/HighlightControl.d.ts.map +1 -1
  433. package/dist/fields/richtext/controls/HighlightControl.js +54 -17
  434. package/dist/fields/richtext/controls/HighlightControl.js.map +1 -1
  435. package/dist/fields/richtext/controls/index.d.ts +5 -5
  436. package/dist/fields/richtext/controls/index.d.ts.map +1 -1
  437. package/dist/fields/richtext/controls/index.js +8 -11
  438. package/dist/fields/richtext/controls/index.js.map +1 -1
  439. package/dist/fields/richtext/controls/shared.js +108 -63
  440. package/dist/fields/richtext/controls/shared.js.map +1 -1
  441. package/dist/fields/richtext/createRichTextField.d.ts +18 -4
  442. package/dist/fields/richtext/createRichTextField.d.ts.map +1 -1
  443. package/dist/fields/richtext/createRichTextField.js +113 -26
  444. package/dist/fields/richtext/createRichTextField.js.map +1 -1
  445. package/dist/fields/richtext/extensions/FontSize.js +26 -20
  446. package/dist/fields/richtext/extensions/FontSize.js.map +1 -1
  447. package/dist/fields/richtext/extensions/index.d.ts +1 -1
  448. package/dist/fields/richtext/extensions/index.d.ts.map +1 -1
  449. package/dist/fields/richtext/extensions/index.js +2 -2
  450. package/dist/fields/richtext/extensions/index.js.map +1 -1
  451. package/dist/fields/richtext/index.d.ts +6 -6
  452. package/dist/fields/richtext/index.d.ts.map +1 -1
  453. package/dist/fields/richtext/index.js +8 -8
  454. package/dist/fields/richtext/index.js.map +1 -1
  455. package/dist/fields/shared.d.ts +1 -1
  456. package/dist/fields/shared.d.ts.map +1 -1
  457. package/dist/fields/shared.js +915 -478
  458. package/dist/fields/shared.js.map +1 -1
  459. package/dist/hooks/index.d.ts +2 -2
  460. package/dist/hooks/index.d.ts.map +1 -1
  461. package/dist/hooks/index.js +3 -3
  462. package/dist/hooks/index.js.map +1 -1
  463. package/dist/hooks/useResponsiveStyles.d.ts +1 -1
  464. package/dist/hooks/useResponsiveStyles.d.ts.map +1 -1
  465. package/dist/hooks/useResponsiveStyles.js +36 -32
  466. package/dist/hooks/useResponsiveStyles.js.map +1 -1
  467. package/dist/hooks/useScrollAnimation.js +26 -24
  468. package/dist/hooks/useScrollAnimation.js.map +1 -1
  469. package/dist/index.d.ts +4 -4
  470. package/dist/index.d.ts.map +1 -1
  471. package/dist/index.js +5 -5
  472. package/dist/index.js.map +1 -1
  473. package/dist/layouts/LayoutWrapper.d.ts +3 -3
  474. package/dist/layouts/LayoutWrapper.d.ts.map +1 -1
  475. package/dist/layouts/LayoutWrapper.js +115 -51
  476. package/dist/layouts/LayoutWrapper.js.map +1 -1
  477. package/dist/layouts/defaults.d.ts +1 -1
  478. package/dist/layouts/defaults.d.ts.map +1 -1
  479. package/dist/layouts/defaults.js +23 -31
  480. package/dist/layouts/defaults.js.map +1 -1
  481. package/dist/layouts/index.d.ts +4 -4
  482. package/dist/layouts/index.d.ts.map +1 -1
  483. package/dist/layouts/index.js +5 -4
  484. package/dist/layouts/index.js.map +1 -1
  485. package/dist/layouts/types.js +4 -2
  486. package/dist/layouts/types.js.map +1 -1
  487. package/dist/layouts/utils.d.ts +1 -1
  488. package/dist/layouts/utils.d.ts.map +1 -1
  489. package/dist/layouts/utils.js +32 -40
  490. package/dist/layouts/utils.js.map +1 -1
  491. package/dist/next/index.js +31 -34
  492. package/dist/next/index.js.map +1 -1
  493. package/dist/plugin/collections/Pages.d.ts +2 -2
  494. package/dist/plugin/collections/Pages.d.ts.map +1 -1
  495. package/dist/plugin/collections/Pages.js +46 -43
  496. package/dist/plugin/collections/Pages.js.map +1 -1
  497. package/dist/plugin/fields/index.d.ts +3 -3
  498. package/dist/plugin/fields/index.d.ts.map +1 -1
  499. package/dist/plugin/fields/index.js +100 -78
  500. package/dist/plugin/fields/index.js.map +1 -1
  501. package/dist/plugin/fields/types.d.ts +1 -1
  502. package/dist/plugin/fields/types.d.ts.map +1 -1
  503. package/dist/plugin/fields/types.js +26 -2
  504. package/dist/plugin/fields/types.js.map +1 -1
  505. package/dist/plugin/hooks/index.d.ts +1 -1
  506. package/dist/plugin/hooks/index.d.ts.map +1 -1
  507. package/dist/plugin/hooks/index.js +2 -2
  508. package/dist/plugin/hooks/index.js.map +1 -1
  509. package/dist/plugin/hooks/isHomepageUnique.js +28 -19
  510. package/dist/plugin/hooks/isHomepageUnique.js.map +1 -1
  511. package/dist/plugin/index.d.ts +8 -8
  512. package/dist/plugin/index.d.ts.map +1 -1
  513. package/dist/plugin/index.js +192 -188
  514. package/dist/plugin/index.js.map +1 -1
  515. package/dist/render/HybridPageRenderer.d.ts +2 -2
  516. package/dist/render/HybridPageRenderer.d.ts.map +1 -1
  517. package/dist/render/HybridPageRenderer.js +58 -10
  518. package/dist/render/HybridPageRenderer.js.map +1 -1
  519. package/dist/render/PageRenderer.d.ts +2 -2
  520. package/dist/render/PageRenderer.d.ts.map +1 -1
  521. package/dist/render/PageRenderer.js +31 -14
  522. package/dist/render/PageRenderer.js.map +1 -1
  523. package/dist/render/PuckEditor.client.d.ts +1 -1
  524. package/dist/render/PuckEditor.client.d.ts.map +1 -1
  525. package/dist/render/PuckEditor.client.js +33 -16
  526. package/dist/render/PuckEditor.client.js.map +1 -1
  527. package/dist/render/index.d.ts +5 -5
  528. package/dist/render/index.d.ts.map +1 -1
  529. package/dist/render/index.js +5 -6
  530. package/dist/render/index.js.map +1 -1
  531. package/dist/styles/puck-dark-mode.css +101 -0
  532. package/dist/theme/context.d.ts +2 -2
  533. package/dist/theme/context.d.ts.map +1 -1
  534. package/dist/theme/context.js +21 -18
  535. package/dist/theme/context.js.map +1 -1
  536. package/dist/theme/defaults.d.ts +1 -1
  537. package/dist/theme/defaults.d.ts.map +1 -1
  538. package/dist/theme/defaults.js +83 -37
  539. package/dist/theme/defaults.js.map +1 -1
  540. package/dist/theme/example.d.ts +1 -1
  541. package/dist/theme/example.d.ts.map +1 -1
  542. package/dist/theme/example.js +68 -30
  543. package/dist/theme/example.js.map +1 -1
  544. package/dist/theme/index.d.ts +5 -5
  545. package/dist/theme/index.d.ts.map +1 -1
  546. package/dist/theme/index.js +6 -5
  547. package/dist/theme/index.js.map +1 -1
  548. package/dist/theme/types.js +6 -2
  549. package/dist/theme/types.js.map +1 -1
  550. package/dist/theme/utils.d.ts +1 -1
  551. package/dist/theme/utils.d.ts.map +1 -1
  552. package/dist/theme/utils.js +24 -25
  553. package/dist/theme/utils.js.map +1 -1
  554. package/dist/types/index.d.ts +42 -6
  555. package/dist/types/index.d.ts.map +1 -1
  556. package/dist/types/index.js +3 -1
  557. package/dist/types/index.js.map +1 -1
  558. package/dist/utils/index.d.ts +2 -2
  559. package/dist/utils/index.d.ts.map +1 -1
  560. package/dist/utils/index.js +13 -22
  561. package/dist/utils/index.js.map +1 -1
  562. package/dist/utils/migration.d.ts +1 -1
  563. package/dist/utils/migration.d.ts.map +1 -1
  564. package/dist/utils/migration.js +43 -49
  565. package/dist/utils/migration.js.map +1 -1
  566. package/dist/utils/validation.d.ts +1 -1
  567. package/dist/utils/validation.d.ts.map +1 -1
  568. package/dist/utils/validation.js +36 -43
  569. package/dist/utils/validation.js.map +1 -1
  570. package/dist/version.d.ts +1 -1
  571. package/dist/version.js +2 -1
  572. package/dist/version.js.map +1 -1
  573. package/dist/views/PuckConfigContext.d.ts +1 -1
  574. package/dist/views/PuckConfigContext.d.ts.map +1 -1
  575. package/dist/views/PuckConfigContext.js +25 -10
  576. package/dist/views/PuckConfigContext.js.map +1 -1
  577. package/dist/views/PuckEditorView.d.ts +1 -1
  578. package/dist/views/PuckEditorView.d.ts.map +1 -1
  579. package/dist/views/PuckEditorView.js +137 -41
  580. package/dist/views/PuckEditorView.js.map +1 -1
  581. package/dist/views/index.js +2 -2
  582. package/dist/views/index.js.map +1 -1
  583. package/package.json +62 -42
@@ -1,15 +1,13 @@
1
- import { DEFAULT_LAYOUTS } from '../../layouts/defaults';
2
- import { puckDataField, createEditorVersionField, createPageLayoutField, isHomepageField, seoFieldGroup, conversionFieldGroup, } from '../fields';
3
- import { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique';
1
+ import { DEFAULT_LAYOUTS } from '../../layouts/defaults.js';
2
+ import { puckDataField, createEditorVersionField, createPageLayoutField, isHomepageField, seoFieldGroup, conversionFieldGroup } from '../fields/index.js';
3
+ import { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique.js';
4
4
  /**
5
5
  * Default access function - allows all
6
- */
7
- const defaultAccess = () => true;
6
+ */ const defaultAccess = ()=>true;
8
7
  /**
9
8
  * Generates a Pages collection configuration for Puck
10
- */
11
- export function generatePagesCollection(slug, options) {
12
- const { collectionOverrides = {}, access = {}, layouts = DEFAULT_LAYOUTS, additionalFields = [], } = options;
9
+ */ export function generatePagesCollection(slug, options) {
10
+ const { collectionOverrides = {}, access = {}, layouts = DEFAULT_LAYOUTS, additionalFields = [] } = options;
13
11
  const baseFields = [
14
12
  // Core Fields (title and slug with duplication hooks - unique to collection generation)
15
13
  {
@@ -18,9 +16,8 @@ export function generatePagesCollection(slug, options) {
18
16
  required: true,
19
17
  hooks: {
20
18
  beforeDuplicate: [
21
- ({ value }) => {
22
- if (!value)
23
- return value;
19
+ ({ value })=>{
20
+ if (!value) return value;
24
21
  const copyMatch = value.match(/^(.+) \(Copy(?: (\d+))?\)$/);
25
22
  if (copyMatch) {
26
23
  const baseName = copyMatch[1];
@@ -28,9 +25,9 @@ export function generatePagesCollection(slug, options) {
28
25
  return `${baseName} (Copy ${copyNum})`;
29
26
  }
30
27
  return `${value} (Copy)`;
31
- },
32
- ],
33
- },
28
+ }
29
+ ]
30
+ }
34
31
  },
35
32
  {
36
33
  name: 'slug',
@@ -40,26 +37,20 @@ export function generatePagesCollection(slug, options) {
40
37
  index: true,
41
38
  admin: {
42
39
  position: 'sidebar',
43
- description: 'URL path for this page (auto-generated from title)',
40
+ description: 'URL path for this page (auto-generated from title)'
44
41
  },
45
42
  hooks: {
46
43
  beforeValidate: [
47
- ({ data, value }) => {
44
+ ({ data, value })=>{
48
45
  if (data && !value && data.title) {
49
- return data.title
50
- .toLowerCase()
51
- .replace(/[^\w\s-]/g, '')
52
- .replace(/\s+/g, '-')
53
- .replace(/-+/g, '-')
54
- .trim();
46
+ return data.title.toLowerCase().replace(/[^\w\s-]/g, '').replace(/\s+/g, '-').replace(/-+/g, '-').trim();
55
47
  }
56
48
  return value;
57
- },
49
+ }
58
50
  ],
59
51
  beforeDuplicate: [
60
- ({ value }) => {
61
- if (!value)
62
- return value;
52
+ ({ value })=>{
53
+ if (!value) return value;
63
54
  const copyMatch = value.match(/^(.+)-copy(?:-(\d+))?$/);
64
55
  if (copyMatch) {
65
56
  const baseName = copyMatch[1];
@@ -67,9 +58,9 @@ export function generatePagesCollection(slug, options) {
67
58
  return `${baseName}-copy-${copyNum}`;
68
59
  }
69
60
  return `${value}-copy`;
70
- },
71
- ],
72
- },
61
+ }
62
+ ]
63
+ }
73
64
  },
74
65
  // Page Layout
75
66
  createPageLayoutField(layouts, true),
@@ -84,28 +75,33 @@ export function generatePagesCollection(slug, options) {
84
75
  // Conversion Tracking Fields
85
76
  conversionFieldGroup,
86
77
  // Additional fields from options
87
- ...additionalFields,
78
+ ...additionalFields
88
79
  ];
89
80
  return {
90
81
  slug,
91
82
  admin: {
92
83
  useAsTitle: 'title',
93
84
  group: 'Content',
94
- defaultColumns: ['title', 'slug', '_status', 'updatedAt'],
95
- ...(collectionOverrides.admin ?? {}),
85
+ defaultColumns: [
86
+ 'title',
87
+ 'slug',
88
+ '_status',
89
+ 'updatedAt'
90
+ ],
91
+ ...collectionOverrides.admin ?? {}
96
92
  },
97
93
  access: {
98
94
  read: access.read ?? defaultAccess,
99
95
  create: access.create ?? defaultAccess,
100
96
  update: access.update ?? defaultAccess,
101
97
  delete: access.delete ?? defaultAccess,
102
- ...(collectionOverrides.access ?? {}),
98
+ ...collectionOverrides.access ?? {}
103
99
  },
104
100
  hooks: {
105
101
  // Properly merge hook arrays - don't let spread operator overwrite
106
102
  beforeChange: [
107
103
  createIsHomepageUniqueHook(),
108
- ...(collectionOverrides.hooks?.beforeChange ?? []),
104
+ ...collectionOverrides.hooks?.beforeChange ?? []
109
105
  ],
110
106
  beforeValidate: collectionOverrides.hooks?.beforeValidate,
111
107
  beforeDelete: collectionOverrides.hooks?.beforeDelete,
@@ -118,20 +114,27 @@ export function generatePagesCollection(slug, options) {
118
114
  afterLogin: collectionOverrides.hooks?.afterLogin,
119
115
  afterLogout: collectionOverrides.hooks?.afterLogout,
120
116
  afterRefresh: collectionOverrides.hooks?.afterRefresh,
121
- afterMe: collectionOverrides.hooks?.afterMe,
117
+ afterMe: collectionOverrides.hooks?.afterMe
118
+ },
119
+ versions: typeof collectionOverrides.versions === 'object' ? {
120
+ drafts: true,
121
+ ...collectionOverrides.versions
122
+ } : {
123
+ drafts: true
122
124
  },
123
- versions: typeof collectionOverrides.versions === 'object'
124
- ? { drafts: true, ...collectionOverrides.versions }
125
- : { drafts: true },
126
125
  fields: baseFields,
127
126
  ...collectionOverrides,
128
127
  // Ensure fields aren't overwritten by collectionOverrides
129
- ...(collectionOverrides.fields && {
130
- fields: [...baseFields, ...collectionOverrides.fields],
131
- }),
128
+ ...collectionOverrides.fields && {
129
+ fields: [
130
+ ...baseFields,
131
+ ...collectionOverrides.fields
132
+ ]
133
+ }
132
134
  };
133
135
  }
134
- // Note: puckDataField is now exported from '../fields' for hybrid collection integration
136
+ // Note: puckDataField is now exported from '../fields/index.js' for hybrid collection integration
135
137
  // Re-export for backwards compatibility
136
- export { puckDataField } from '../fields';
138
+ export { puckDataField } from '../fields/index.js';
139
+
137
140
  //# sourceMappingURL=Pages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pages.js","sourceRoot":"","sources":["../../../src/plugin/collections/Pages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAEtE;;GAEG;AACH,MAAM,aAAa,GAAW,GAAG,EAAE,CAAC,IAAI,CAAA;AAExC;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAY,EACZ,OAA0B;IAE1B,MAAM,EACJ,mBAAmB,GAAG,EAAE,EACxB,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,eAAe,EACzB,gBAAgB,GAAG,EAAE,GACtB,GAAG,OAAO,CAAA;IAEX,MAAM,UAAU,GAAY;QAC1B,wFAAwF;QACxF;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,eAAe,EAAE;oBACf,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;wBACZ,IAAI,CAAC,KAAK;4BAAE,OAAO,KAAK,CAAA;wBACxB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;wBAC3D,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;4BACjE,OAAO,GAAG,QAAQ,UAAU,OAAO,GAAG,CAAA;wBACxC,CAAC;wBACD,OAAO,GAAG,KAAK,SAAS,CAAA;oBAC1B,CAAC;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,KAAK,EAAE;gBACL,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,oDAAoD;aAClE;YACD,KAAK,EAAE;gBACL,cAAc,EAAE;oBACd,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;wBAClB,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;4BACjC,OAAQ,IAAI,CAAC,KAAgB;iCAC1B,WAAW,EAAE;iCACb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;iCACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iCACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;iCACnB,IAAI,EAAE,CAAA;wBACX,CAAC;wBACD,OAAO,KAAK,CAAA;oBACd,CAAC;iBACF;gBACD,eAAe,EAAE;oBACf,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;wBACZ,IAAI,CAAC,KAAK;4BAAE,OAAO,KAAK,CAAA;wBACxB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;wBACvD,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;4BACjE,OAAO,GAAG,QAAQ,SAAS,OAAO,EAAE,CAAA;wBACtC,CAAC;wBACD,OAAO,GAAG,KAAK,OAAO,CAAA;oBACxB,CAAC;iBACF;aACF;SACF;QAED,cAAc;QACd,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC;QAEpC,iBAAiB;QACjB,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC;QAEtC,gBAAgB;QAChB,eAAe;QAEf,iDAAiD;QACjD,aAAa;QAEb,aAAa;QACb,aAAa;QAEb,6BAA6B;QAC7B,oBAAoB;QAEpB,iCAAiC;QACjC,GAAG,gBAAgB;KACpB,CAAA;IAED,OAAO;QACL,IAAI;QACJ,KAAK,EAAE;YACL,UAAU,EAAE,OAAO;YACnB,KAAK,EAAE,SAAS;YAChB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;YACzD,GAAG,CAAC,mBAAmB,CAAC,KAAK,IAAI,EAAE,CAAC;SACrC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,aAAa;YAClC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa;YACtC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa;YACtC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa;YACtC,GAAG,CAAC,mBAAmB,CAAC,MAAM,IAAI,EAAE,CAAC;SACtC;QACD,KAAK,EAAE;YACL,mEAAmE;YACnE,YAAY,EAAE;gBACZ,0BAA0B,EAAE;gBAC5B,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;aACnD;YACD,cAAc,EAAE,mBAAmB,CAAC,KAAK,EAAE,cAAc;YACzD,YAAY,EAAE,mBAAmB,CAAC,KAAK,EAAE,YAAY;YACrD,UAAU,EAAE,mBAAmB,CAAC,KAAK,EAAE,UAAU;YACjD,WAAW,EAAE,mBAAmB,CAAC,KAAK,EAAE,WAAW;YACnD,WAAW,EAAE,mBAAmB,CAAC,KAAK,EAAE,WAAW;YACnD,SAAS,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS;YAC/C,cAAc,EAAE,mBAAmB,CAAC,KAAK,EAAE,cAAc;YACzD,mBAAmB,EAAE,mBAAmB,CAAC,KAAK,EAAE,mBAAmB;YACnE,UAAU,EAAE,mBAAmB,CAAC,KAAK,EAAE,UAAU;YACjD,WAAW,EAAE,mBAAmB,CAAC,KAAK,EAAE,WAAW;YACnD,YAAY,EAAE,mBAAmB,CAAC,KAAK,EAAE,YAAY;YACrD,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO;SAC5C;QACD,QAAQ,EACN,OAAO,mBAAmB,CAAC,QAAQ,KAAK,QAAQ;YAC9C,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,QAAQ,EAAE;YACnD,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;QACtB,MAAM,EAAE,UAAU;QAClB,GAAG,mBAAmB;QACtB,0DAA0D;QAC1D,GAAG,CAAC,mBAAmB,CAAC,MAAM,IAAI;YAChC,MAAM,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC;SACvD,CAAC;KACH,CAAA;AACH,CAAC;AAED,yFAAyF;AACzF,wCAAwC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"sources":["../../../src/plugin/collections/Pages.ts"],"sourcesContent":["import type { Access, CollectionConfig, Field } from 'payload'\nimport type { PuckPluginOptions } from '../../types/index.js'\nimport { DEFAULT_LAYOUTS } from '../../layouts/defaults.js'\nimport { layoutsToPayloadOptions } from '../../layouts/utils.js'\nimport {\n puckDataField,\n createEditorVersionField,\n createPageLayoutField,\n isHomepageField,\n seoFieldGroup,\n conversionFieldGroup,\n} from '../fields/index.js'\nimport { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique.js'\n\n/**\n * Default access function - allows all\n */\nconst defaultAccess: Access = () => true\n\n/**\n * Generates a Pages collection configuration for Puck\n */\nexport function generatePagesCollection(\n slug: string,\n options: PuckPluginOptions\n): CollectionConfig {\n const {\n collectionOverrides = {},\n access = {},\n layouts = DEFAULT_LAYOUTS,\n additionalFields = [],\n } = options\n\n const baseFields: Field[] = [\n // Core Fields (title and slug with duplication hooks - unique to collection generation)\n {\n name: 'title',\n type: 'text',\n required: true,\n hooks: {\n beforeDuplicate: [\n ({ value }) => {\n if (!value) return value\n const copyMatch = value.match(/^(.+) \\(Copy(?: (\\d+))?\\)$/)\n if (copyMatch) {\n const baseName = copyMatch[1]\n const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2\n return `${baseName} (Copy ${copyNum})`\n }\n return `${value} (Copy)`\n },\n ],\n },\n },\n {\n name: 'slug',\n type: 'text',\n required: true,\n unique: true,\n index: true,\n admin: {\n position: 'sidebar',\n description: 'URL path for this page (auto-generated from title)',\n },\n hooks: {\n beforeValidate: [\n ({ data, value }) => {\n if (data && !value && data.title) {\n return (data.title as string)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/\\s+/g, '-')\n .replace(/-+/g, '-')\n .trim()\n }\n return value\n },\n ],\n beforeDuplicate: [\n ({ value }) => {\n if (!value) return value\n const copyMatch = value.match(/^(.+)-copy(?:-(\\d+))?$/)\n if (copyMatch) {\n const baseName = copyMatch[1]\n const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2\n return `${baseName}-copy-${copyNum}`\n }\n return `${value}-copy`\n },\n ],\n },\n },\n\n // Page Layout\n createPageLayoutField(layouts, true),\n\n // Editor Version\n createEditorVersionField('puck', true),\n\n // Homepage Flag\n isHomepageField,\n\n // Puck Data (hidden - managed via visual editor)\n puckDataField,\n\n // SEO Fields\n seoFieldGroup,\n\n // Conversion Tracking Fields\n conversionFieldGroup,\n\n // Additional fields from options\n ...additionalFields,\n ]\n\n return {\n slug,\n admin: {\n useAsTitle: 'title',\n group: 'Content',\n defaultColumns: ['title', 'slug', '_status', 'updatedAt'],\n ...(collectionOverrides.admin ?? {}),\n },\n access: {\n read: access.read ?? defaultAccess,\n create: access.create ?? defaultAccess,\n update: access.update ?? defaultAccess,\n delete: access.delete ?? defaultAccess,\n ...(collectionOverrides.access ?? {}),\n },\n hooks: {\n // Properly merge hook arrays - don't let spread operator overwrite\n beforeChange: [\n createIsHomepageUniqueHook(),\n ...(collectionOverrides.hooks?.beforeChange ?? []),\n ],\n beforeValidate: collectionOverrides.hooks?.beforeValidate,\n beforeDelete: collectionOverrides.hooks?.beforeDelete,\n beforeRead: collectionOverrides.hooks?.beforeRead,\n afterChange: collectionOverrides.hooks?.afterChange,\n afterDelete: collectionOverrides.hooks?.afterDelete,\n afterRead: collectionOverrides.hooks?.afterRead,\n afterOperation: collectionOverrides.hooks?.afterOperation,\n afterForgotPassword: collectionOverrides.hooks?.afterForgotPassword,\n afterLogin: collectionOverrides.hooks?.afterLogin,\n afterLogout: collectionOverrides.hooks?.afterLogout,\n afterRefresh: collectionOverrides.hooks?.afterRefresh,\n afterMe: collectionOverrides.hooks?.afterMe,\n },\n versions:\n typeof collectionOverrides.versions === 'object'\n ? { drafts: true, ...collectionOverrides.versions }\n : { drafts: true },\n fields: baseFields,\n ...collectionOverrides,\n // Ensure fields aren't overwritten by collectionOverrides\n ...(collectionOverrides.fields && {\n fields: [...baseFields, ...collectionOverrides.fields],\n }),\n }\n}\n\n// Note: puckDataField is now exported from '../fields/index.js' for hybrid collection integration\n// Re-export for backwards compatibility\nexport { puckDataField } from '../fields/index.js'\n"],"names":["DEFAULT_LAYOUTS","puckDataField","createEditorVersionField","createPageLayoutField","isHomepageField","seoFieldGroup","conversionFieldGroup","createIsHomepageUniqueHook","defaultAccess","generatePagesCollection","slug","options","collectionOverrides","access","layouts","additionalFields","baseFields","name","type","required","hooks","beforeDuplicate","value","copyMatch","match","baseName","copyNum","parseInt","unique","index","admin","position","description","beforeValidate","data","title","toLowerCase","replace","trim","useAsTitle","group","defaultColumns","read","create","update","delete","beforeChange","beforeDelete","beforeRead","afterChange","afterDelete","afterRead","afterOperation","afterForgotPassword","afterLogin","afterLogout","afterRefresh","afterMe","versions","drafts","fields"],"mappings":"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"}
@@ -31,8 +31,8 @@
31
31
  * ```
32
32
  */
33
33
  import type { CollectionConfig, Field } from 'payload';
34
- import type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions, ConversionTypeOption } from './types';
35
- import type { LayoutDefinition } from '../../layouts/types';
34
+ import type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions, ConversionTypeOption } from './types.js';
35
+ import type { LayoutDefinition } from '../../layouts/types.js';
36
36
  /**
37
37
  * Puck data field - stores the visual editor JSON data.
38
38
  * This field is always hidden in the admin UI as it's managed via the visual editor.
@@ -189,5 +189,5 @@ export declare function getPuckCollectionConfig(options?: GetPuckCollectionConfi
189
189
  fields: Field[];
190
190
  hooks: CollectionConfig['hooks'];
191
191
  };
192
- export type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions, ConversionTypeOption } from './types';
192
+ export type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions, ConversionTypeOption } from './types.js';
193
193
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEzG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAQ3D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,GAAE,QAAQ,GAAG,MAAe,EACxC,OAAO,GAAE,OAAc,EACvB,qBAAqB,GAAE,MAAiB,GACvC,KAAK,CA6CP;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAA8C,CAAA;AAE/E;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,gBAAgB,EAAoB,EAC7C,OAAO,GAAE,OAAc,GACtB,KAAK,CAYP;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAA+B,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KA6D3B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,EAQ1D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,GAAE,oBAAoB,EAA6B,EAClE,OAAO,GAAE,OAAc,GACtB,KAAK,CA0CP;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAoC,CAAA;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,KAAK,EAAE,CA8CzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,8BAAmC,GAAG;IACrF,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACjC,CAiBA;AAGD,YAAY,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE5G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAQ9D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,GAAE,QAAQ,GAAG,MAAe,EACxC,OAAO,GAAE,OAAc,EACvB,qBAAqB,GAAE,MAAiB,GACvC,KAAK,CA6CP;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAA8C,CAAA;AAE/E;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,gBAAgB,EAAoB,EAC7C,OAAO,GAAE,OAAc,GACtB,KAAK,CAYP;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAA+B,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KA6D3B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,EAQ1D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,GAAE,oBAAoB,EAA6B,EAClE,OAAO,GAAE,OAAc,GACtB,KAAK,CA0CP;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAoC,CAAA;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,KAAK,EAAE,CA8CzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,8BAAmC,GAAG;IACrF,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACjC,CAiBA;AAGD,YAAY,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA"}
@@ -29,24 +29,22 @@
29
29
  * ],
30
30
  * }
31
31
  * ```
32
- */
33
- import { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique';
34
- import { DEFAULT_LAYOUTS } from '../../layouts/defaults';
35
- import { layoutsToPayloadOptions } from '../../layouts/utils';
32
+ */ import { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique.js';
33
+ import { DEFAULT_LAYOUTS } from '../../layouts/defaults.js';
34
+ import { layoutsToPayloadOptions } from '../../layouts/utils.js';
36
35
  // =============================================================================
37
36
  // Core Fields
38
37
  // =============================================================================
39
38
  /**
40
39
  * Puck data field - stores the visual editor JSON data.
41
40
  * This field is always hidden in the admin UI as it's managed via the visual editor.
42
- */
43
- export const puckDataField = {
41
+ */ export const puckDataField = {
44
42
  name: 'puckData',
45
43
  type: 'json',
46
44
  admin: {
47
45
  hidden: true,
48
- description: 'Puck editor data - managed via visual editor',
49
- },
46
+ description: 'Puck editor data - managed via visual editor'
47
+ }
50
48
  };
51
49
  /**
52
50
  * Creates an editor version field with smart detection for hybrid setups.
@@ -62,27 +60,31 @@ export const puckDataField = {
62
60
  * @param defaultValue - The default editor version for NEW pages ('puck' or 'legacy')
63
61
  * @param sidebar - Whether to position in the sidebar (default: true)
64
62
  * @param legacyBlocksFieldName - Name of the legacy blocks field to check (default: 'layout')
65
- */
66
- export function createEditorVersionField(defaultValue = 'puck', sidebar = true, legacyBlocksFieldName = 'layout') {
63
+ */ export function createEditorVersionField(defaultValue = 'puck', sidebar = true, legacyBlocksFieldName = 'layout') {
67
64
  return {
68
65
  name: 'editorVersion',
69
66
  type: 'select',
70
67
  // NO defaultValue here - we use the hook to intelligently detect the value
71
68
  // This prevents migrations from blindly setting 'puck' on legacy pages
72
69
  options: [
73
- { label: 'Legacy (Payload Blocks)', value: 'legacy' },
74
- { label: 'Puck Visual Editor', value: 'puck' },
70
+ {
71
+ label: 'Legacy (Payload Blocks)',
72
+ value: 'legacy'
73
+ },
74
+ {
75
+ label: 'Puck Visual Editor',
76
+ value: 'puck'
77
+ }
75
78
  ],
76
79
  admin: {
77
80
  position: sidebar ? 'sidebar' : undefined,
78
- description: 'Which editor was used to create this page',
81
+ description: 'Which editor was used to create this page'
79
82
  },
80
83
  hooks: {
81
84
  beforeValidate: [
82
- ({ value, data, operation }) => {
85
+ ({ value, data, operation })=>{
83
86
  // If value is explicitly set (and not null/undefined), keep it
84
- if (value)
85
- return value;
87
+ if (value) return value;
86
88
  // Detect based on content - works for both new and existing documents
87
89
  const legacyBlocks = data?.[legacyBlocksFieldName];
88
90
  const hasLegacyBlocks = Array.isArray(legacyBlocks) && legacyBlocks.length > 0;
@@ -99,23 +101,21 @@ export function createEditorVersionField(defaultValue = 'puck', sidebar = true,
99
101
  // For new documents with no content yet, use configured default
100
102
  // For existing documents with no content, also use default
101
103
  return defaultValue;
102
- },
103
- ],
104
- },
104
+ }
105
+ ]
106
+ }
105
107
  };
106
108
  }
107
109
  /**
108
110
  * Pre-configured editor version field with 'puck' as default.
109
111
  * Use createEditorVersionField() for custom configuration.
110
- */
111
- export const editorVersionField = createEditorVersionField('puck', true);
112
+ */ export const editorVersionField = createEditorVersionField('puck', true);
112
113
  /**
113
114
  * Creates a page layout field with custom layouts.
114
115
  *
115
116
  * @param layouts - Array of layout definitions (defaults to DEFAULT_LAYOUTS)
116
117
  * @param sidebar - Whether to position in the sidebar (default: true)
117
- */
118
- export function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true) {
118
+ */ export function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true) {
119
119
  return {
120
120
  name: 'pageLayout',
121
121
  type: 'select',
@@ -124,26 +124,24 @@ export function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true)
124
124
  options: layoutsToPayloadOptions(layouts),
125
125
  admin: {
126
126
  position: sidebar ? 'sidebar' : undefined,
127
- description: 'Overall page structure and layout style',
128
- },
127
+ description: 'Overall page structure and layout style'
128
+ }
129
129
  };
130
130
  }
131
131
  /**
132
132
  * Pre-configured page layout field with DEFAULT_LAYOUTS.
133
133
  * Use createPageLayoutField() for custom layouts.
134
- */
135
- export const pageLayoutField = createPageLayoutField();
134
+ */ export const pageLayoutField = createPageLayoutField();
136
135
  /**
137
136
  * Homepage flag field - marks a page as the site homepage.
138
- */
139
- export const isHomepageField = {
137
+ */ export const isHomepageField = {
140
138
  name: 'isHomepage',
141
139
  type: 'checkbox',
142
140
  defaultValue: false,
143
141
  admin: {
144
142
  position: 'sidebar',
145
- description: 'Mark this page as the homepage',
146
- },
143
+ description: 'Mark this page as the homepage'
144
+ }
147
145
  };
148
146
  // =============================================================================
149
147
  // Field Groups
@@ -153,13 +151,12 @@ export const isHomepageField = {
153
151
  * Uses the official @payloadcms/plugin-seo convention: meta.title, meta.description
154
152
  *
155
153
  * Includes: title, description, image, noindex, nofollow, excludeFromSitemap
156
- */
157
- export const seoFieldGroup = {
154
+ */ export const seoFieldGroup = {
158
155
  name: 'meta',
159
156
  type: 'group',
160
157
  label: 'SEO',
161
158
  admin: {
162
- position: 'sidebar',
159
+ position: 'sidebar'
163
160
  },
164
161
  fields: [
165
162
  {
@@ -167,16 +164,16 @@ export const seoFieldGroup = {
167
164
  type: 'text',
168
165
  label: 'Meta Title',
169
166
  admin: {
170
- description: 'Override the page title for search engines',
171
- },
167
+ description: 'Override the page title for search engines'
168
+ }
172
169
  },
173
170
  {
174
171
  name: 'description',
175
172
  type: 'textarea',
176
173
  label: 'Meta Description',
177
174
  admin: {
178
- description: 'Description shown in search engine results',
179
- },
175
+ description: 'Description shown in search engine results'
176
+ }
180
177
  },
181
178
  {
182
179
  name: 'image',
@@ -184,8 +181,8 @@ export const seoFieldGroup = {
184
181
  relationTo: 'media',
185
182
  label: 'Open Graph Image',
186
183
  admin: {
187
- description: 'Image shown when sharing on social media',
188
- },
184
+ description: 'Image shown when sharing on social media'
185
+ }
189
186
  },
190
187
  {
191
188
  name: 'noindex',
@@ -193,8 +190,8 @@ export const seoFieldGroup = {
193
190
  label: 'No Index',
194
191
  defaultValue: false,
195
192
  admin: {
196
- description: 'Prevent search engines from indexing this page',
197
- },
193
+ description: 'Prevent search engines from indexing this page'
194
+ }
198
195
  },
199
196
  {
200
197
  name: 'nofollow',
@@ -202,8 +199,8 @@ export const seoFieldGroup = {
202
199
  label: 'No Follow',
203
200
  defaultValue: false,
204
201
  admin: {
205
- description: 'Prevent search engines from following links on this page',
206
- },
202
+ description: 'Prevent search engines from following links on this page'
203
+ }
207
204
  },
208
205
  {
209
206
  name: 'excludeFromSitemap',
@@ -211,22 +208,42 @@ export const seoFieldGroup = {
211
208
  label: 'Exclude from Sitemap',
212
209
  defaultValue: false,
213
210
  admin: {
214
- description: 'Exclude this page from the XML sitemap',
215
- },
216
- },
217
- ],
211
+ description: 'Exclude this page from the XML sitemap'
212
+ }
213
+ }
214
+ ]
218
215
  };
219
216
  /**
220
217
  * Default conversion type options
221
- */
222
- export const DEFAULT_CONVERSION_TYPES = [
223
- { label: 'Lead', value: 'lead' },
224
- { label: 'Registration', value: 'registration' },
225
- { label: 'Purchase', value: 'purchase' },
226
- { label: 'Donation', value: 'donation' },
227
- { label: 'Newsletter Signup', value: 'newsletter' },
228
- { label: 'Contact Form', value: 'contact' },
229
- { label: 'Custom', value: 'custom' },
218
+ */ export const DEFAULT_CONVERSION_TYPES = [
219
+ {
220
+ label: 'Lead',
221
+ value: 'lead'
222
+ },
223
+ {
224
+ label: 'Registration',
225
+ value: 'registration'
226
+ },
227
+ {
228
+ label: 'Purchase',
229
+ value: 'purchase'
230
+ },
231
+ {
232
+ label: 'Donation',
233
+ value: 'donation'
234
+ },
235
+ {
236
+ label: 'Newsletter Signup',
237
+ value: 'newsletter'
238
+ },
239
+ {
240
+ label: 'Contact Form',
241
+ value: 'contact'
242
+ },
243
+ {
244
+ label: 'Custom',
245
+ value: 'custom'
246
+ }
230
247
  ];
231
248
  /**
232
249
  * Creates a conversion tracking field group with custom options.
@@ -250,15 +267,14 @@ export const DEFAULT_CONVERSION_TYPES = [
250
267
  * ],
251
268
  * })
252
269
  * ```
253
- */
254
- export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_TYPES, sidebar = true) {
270
+ */ export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_TYPES, sidebar = true) {
255
271
  return {
256
272
  name: 'conversionTracking',
257
273
  type: 'group',
258
274
  label: 'Conversion Tracking',
259
275
  admin: {
260
276
  position: sidebar ? 'sidebar' : undefined,
261
- description: 'Configure conversion tracking for analytics',
277
+ description: 'Configure conversion tracking for analytics'
262
278
  },
263
279
  fields: [
264
280
  {
@@ -267,8 +283,8 @@ export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_
267
283
  label: 'Is Conversion Page',
268
284
  defaultValue: false,
269
285
  admin: {
270
- description: 'Check this if this page represents a completed conversion (e.g., thank you page)',
271
- },
286
+ description: 'Check this if this page represents a completed conversion (e.g., thank you page)'
287
+ }
272
288
  },
273
289
  {
274
290
  name: 'conversionType',
@@ -277,8 +293,8 @@ export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_
277
293
  options: conversionTypes,
278
294
  admin: {
279
295
  description: 'Type of conversion this page represents',
280
- condition: (data, siblingData) => siblingData?.isConversionPage === true,
281
- },
296
+ condition: (data, siblingData)=>siblingData?.isConversionPage === true
297
+ }
282
298
  },
283
299
  {
284
300
  name: 'conversionValue',
@@ -287,17 +303,16 @@ export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_
287
303
  defaultValue: 0,
288
304
  admin: {
289
305
  description: 'Monetary value of this conversion (0 for non-monetary conversions)',
290
- condition: (data, siblingData) => siblingData?.isConversionPage === true,
291
- },
292
- },
293
- ],
306
+ condition: (data, siblingData)=>siblingData?.isConversionPage === true
307
+ }
308
+ }
309
+ ]
294
310
  };
295
311
  }
296
312
  /**
297
313
  * Pre-configured conversion tracking field group with default options.
298
314
  * Use createConversionFieldGroup() for custom conversion types.
299
- */
300
- export const conversionFieldGroup = createConversionFieldGroup();
315
+ */ export const conversionFieldGroup = createConversionFieldGroup();
301
316
  // =============================================================================
302
317
  // Main Utility Function
303
318
  // =============================================================================
@@ -333,9 +348,8 @@ export const conversionFieldGroup = createConversionFieldGroup();
333
348
  * ],
334
349
  * }
335
350
  * ```
336
- */
337
- export function getPuckFields(options = {}) {
338
- const { includeSEO = true, includeConversion = false, includeEditorVersion = true, includePageLayout = true, includeIsHomepage = false, layouts = DEFAULT_LAYOUTS, defaultEditorVersion = 'puck', legacyBlocksFieldName = 'layout', sidebarPosition = true, conversionTypeOptions, } = options;
351
+ */ export function getPuckFields(options = {}) {
352
+ const { includeSEO = true, includeConversion = false, includeEditorVersion = true, includePageLayout = true, includeIsHomepage = false, layouts = DEFAULT_LAYOUTS, defaultEditorVersion = 'puck', legacyBlocksFieldName = 'layout', sidebarPosition = true, conversionTypeOptions } = options;
339
353
  const fields = [];
340
354
  // Core puckData field (always included - this is essential for Puck)
341
355
  fields.push(puckDataField);
@@ -397,19 +411,27 @@ export function getPuckFields(options = {}) {
397
411
  * ],
398
412
  * }
399
413
  * ```
400
- */
401
- export function getPuckCollectionConfig(options = {}) {
414
+ */ export function getPuckCollectionConfig(options = {}) {
402
415
  const { includeHomepageHook = true, includeIsHomepage = false, ...fieldOptions } = options;
403
416
  // Get the fields using the existing getPuckFields function
404
- const fields = getPuckFields({ includeIsHomepage, ...fieldOptions });
417
+ const fields = getPuckFields({
418
+ includeIsHomepage,
419
+ ...fieldOptions
420
+ });
405
421
  // Build hooks object
406
422
  const hooks = {};
407
423
  // Add isHomepage uniqueness hook if:
408
424
  // - includeIsHomepage is true (the field is being added)
409
425
  // - includeHomepageHook is not explicitly false
410
426
  if (includeIsHomepage && includeHomepageHook !== false) {
411
- hooks.beforeChange = [createIsHomepageUniqueHook()];
427
+ hooks.beforeChange = [
428
+ createIsHomepageUniqueHook()
429
+ ];
412
430
  }
413
- return { fields, hooks };
431
+ return {
432
+ fields,
433
+ hooks
434
+ };
414
435
  }
436
+
415
437
  //# sourceMappingURL=index.js.map