@delmaredigital/payload-puck 0.1.3 → 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 (565) hide show
  1. package/README.md +293 -1237
  2. package/dist/admin/EditWithPuckButton.d.ts +74 -0
  3. package/dist/admin/EditWithPuckButton.d.ts.map +1 -0
  4. package/dist/admin/EditWithPuckButton.js +114 -0
  5. package/dist/admin/EditWithPuckButton.js.map +1 -0
  6. package/dist/admin/EditWithPuckCell.d.ts +43 -0
  7. package/dist/admin/EditWithPuckCell.d.ts.map +1 -0
  8. package/dist/admin/EditWithPuckCell.js +66 -0
  9. package/dist/admin/EditWithPuckCell.js.map +1 -0
  10. package/dist/admin/PuckEditorView.d.ts +85 -0
  11. package/dist/admin/PuckEditorView.d.ts.map +1 -0
  12. package/dist/admin/PuckEditorView.js +135 -0
  13. package/dist/admin/PuckEditorView.js.map +1 -0
  14. package/dist/admin/client.d.ts +8 -104
  15. package/dist/admin/client.d.ts.map +1 -0
  16. package/dist/admin/client.js +14 -176
  17. package/dist/admin/client.js.map +1 -0
  18. package/dist/admin/generateAdminComponents.d.ts +51 -0
  19. package/dist/admin/generateAdminComponents.d.ts.map +1 -0
  20. package/dist/admin/generateAdminComponents.js +42 -0
  21. package/dist/admin/generateAdminComponents.js.map +1 -0
  22. package/dist/admin/index.d.ts +14 -150
  23. package/dist/admin/index.d.ts.map +1 -0
  24. package/dist/admin/index.js +17 -30
  25. package/dist/admin/index.js.map +1 -0
  26. package/dist/api/createPuckApiRoutes.d.ts +31 -0
  27. package/dist/api/createPuckApiRoutes.d.ts.map +1 -0
  28. package/dist/api/createPuckApiRoutes.js +193 -0
  29. package/dist/api/createPuckApiRoutes.js.map +1 -0
  30. package/dist/api/createPuckApiRoutesVersions.d.ts +28 -0
  31. package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -0
  32. package/dist/api/createPuckApiRoutesVersions.js +144 -0
  33. package/dist/api/createPuckApiRoutesVersions.js.map +1 -0
  34. package/dist/api/createPuckApiRoutesWithId.d.ts +34 -0
  35. package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -0
  36. package/dist/api/createPuckApiRoutesWithId.js +251 -0
  37. package/dist/api/createPuckApiRoutesWithId.js.map +1 -0
  38. package/dist/api/index.d.ts +11 -431
  39. package/dist/api/index.d.ts.map +1 -0
  40. package/dist/api/index.js +40 -587
  41. package/dist/api/index.js.map +1 -0
  42. package/dist/api/types.d.ts +302 -0
  43. package/dist/api/types.d.ts.map +1 -0
  44. package/dist/api/types.js +2 -0
  45. package/dist/api/types.js.map +1 -0
  46. package/dist/api/utils/mapRootProps.d.ts +76 -0
  47. package/dist/api/utils/mapRootProps.d.ts.map +1 -0
  48. package/dist/api/utils/mapRootProps.js +169 -0
  49. package/dist/api/utils/mapRootProps.js.map +1 -0
  50. package/dist/collections/Templates.d.ts +9 -0
  51. package/dist/collections/Templates.d.ts.map +1 -0
  52. package/dist/collections/Templates.js +62 -0
  53. package/dist/collections/Templates.js.map +1 -0
  54. package/dist/components/AccordionClient.d.ts +20 -0
  55. package/dist/components/AccordionClient.d.ts.map +1 -0
  56. package/dist/components/AccordionClient.js +67 -0
  57. package/dist/components/AccordionClient.js.map +1 -0
  58. package/dist/components/AnimatedWrapper.d.ts +33 -0
  59. package/dist/components/AnimatedWrapper.d.ts.map +1 -0
  60. package/dist/components/AnimatedWrapper.js +61 -0
  61. package/dist/components/AnimatedWrapper.js.map +1 -0
  62. package/dist/components/exports.d.ts +54 -0
  63. package/dist/components/exports.d.ts.map +1 -0
  64. package/dist/components/exports.js +71 -0
  65. package/dist/components/exports.js.map +1 -0
  66. package/dist/components/index.d.ts +8 -219
  67. package/dist/components/index.d.ts.map +1 -0
  68. package/dist/components/index.js +15 -9155
  69. package/dist/components/index.js.map +1 -0
  70. package/dist/components/interactive/Accordion.d.ts +28 -0
  71. package/dist/components/interactive/Accordion.d.ts.map +1 -0
  72. package/dist/components/interactive/Accordion.js +159 -0
  73. package/dist/components/interactive/Accordion.js.map +1 -0
  74. package/dist/components/interactive/Accordion.server.d.ts +29 -0
  75. package/dist/components/interactive/Accordion.server.d.ts.map +1 -0
  76. package/dist/components/interactive/Accordion.server.js +30 -0
  77. package/dist/components/interactive/Accordion.server.js.map +1 -0
  78. package/dist/components/interactive/Button.d.ts +26 -0
  79. package/dist/components/interactive/Button.d.ts.map +1 -0
  80. package/dist/components/interactive/Button.js +133 -0
  81. package/dist/components/interactive/Button.js.map +1 -0
  82. package/dist/components/interactive/Button.server.d.ts +28 -0
  83. package/dist/components/interactive/Button.server.d.ts.map +1 -0
  84. package/dist/components/interactive/Button.server.js +96 -0
  85. package/dist/components/interactive/Button.server.js.map +1 -0
  86. package/dist/components/interactive/Card.d.ts +27 -0
  87. package/dist/components/interactive/Card.d.ts.map +1 -0
  88. package/dist/components/interactive/Card.js +128 -0
  89. package/dist/components/interactive/Card.js.map +1 -0
  90. package/dist/components/interactive/Card.server.d.ts +29 -0
  91. package/dist/components/interactive/Card.server.d.ts.map +1 -0
  92. package/dist/components/interactive/Card.server.js +77 -0
  93. package/dist/components/interactive/Card.server.js.map +1 -0
  94. package/dist/components/interactive/Divider.d.ts +18 -0
  95. package/dist/components/interactive/Divider.d.ts.map +1 -0
  96. package/dist/components/interactive/Divider.js +68 -0
  97. package/dist/components/interactive/Divider.js.map +1 -0
  98. package/dist/components/interactive/Divider.server.d.ts +20 -0
  99. package/dist/components/interactive/Divider.server.d.ts.map +1 -0
  100. package/dist/components/interactive/Divider.server.js +50 -0
  101. package/dist/components/interactive/Divider.server.js.map +1 -0
  102. package/dist/components/interactive/index.d.ts +10 -0
  103. package/dist/components/interactive/index.d.ts.map +1 -0
  104. package/dist/components/interactive/index.js +10 -0
  105. package/dist/components/interactive/index.js.map +1 -0
  106. package/dist/components/layout/Container.d.ts +29 -0
  107. package/dist/components/layout/Container.d.ts.map +1 -0
  108. package/dist/components/layout/Container.js +166 -0
  109. package/dist/components/layout/Container.js.map +1 -0
  110. package/dist/components/layout/Container.server.d.ts +32 -0
  111. package/dist/components/layout/Container.server.d.ts.map +1 -0
  112. package/dist/components/layout/Container.server.js +105 -0
  113. package/dist/components/layout/Container.server.js.map +1 -0
  114. package/dist/components/layout/Flex.d.ts +36 -0
  115. package/dist/components/layout/Flex.d.ts.map +1 -0
  116. package/dist/components/layout/Flex.js +183 -0
  117. package/dist/components/layout/Flex.js.map +1 -0
  118. package/dist/components/layout/Flex.server.d.ts +36 -0
  119. package/dist/components/layout/Flex.server.d.ts.map +1 -0
  120. package/dist/components/layout/Flex.server.js +97 -0
  121. package/dist/components/layout/Flex.server.js.map +1 -0
  122. package/dist/components/layout/Grid.d.ts +31 -0
  123. package/dist/components/layout/Grid.d.ts.map +1 -0
  124. package/dist/components/layout/Grid.js +164 -0
  125. package/dist/components/layout/Grid.js.map +1 -0
  126. package/dist/components/layout/Grid.server.d.ts +32 -0
  127. package/dist/components/layout/Grid.server.d.ts.map +1 -0
  128. package/dist/components/layout/Grid.server.js +92 -0
  129. package/dist/components/layout/Grid.server.js.map +1 -0
  130. package/dist/components/layout/Section.d.ts +35 -0
  131. package/dist/components/layout/Section.d.ts.map +1 -0
  132. package/dist/components/layout/Section.js +212 -0
  133. package/dist/components/layout/Section.js.map +1 -0
  134. package/dist/components/layout/Section.server.d.ts +35 -0
  135. package/dist/components/layout/Section.server.d.ts.map +1 -0
  136. package/dist/components/layout/Section.server.js +144 -0
  137. package/dist/components/layout/Section.server.js.map +1 -0
  138. package/dist/components/layout/Spacer.d.ts +18 -0
  139. package/dist/components/layout/Spacer.d.ts.map +1 -0
  140. package/dist/components/layout/Spacer.js +99 -0
  141. package/dist/components/layout/Spacer.js.map +1 -0
  142. package/dist/components/layout/Spacer.server.d.ts +21 -0
  143. package/dist/components/layout/Spacer.server.d.ts.map +1 -0
  144. package/dist/components/layout/Spacer.server.js +61 -0
  145. package/dist/components/layout/Spacer.server.js.map +1 -0
  146. package/dist/components/layout/Template.d.ts +35 -0
  147. package/dist/components/layout/Template.d.ts.map +1 -0
  148. package/dist/components/layout/Template.js +124 -0
  149. package/dist/components/layout/Template.js.map +1 -0
  150. package/dist/components/layout/Template.server.d.ts +32 -0
  151. package/dist/components/layout/Template.server.d.ts.map +1 -0
  152. package/dist/components/layout/Template.server.js +75 -0
  153. package/dist/components/layout/Template.server.js.map +1 -0
  154. package/dist/components/layout/index.d.ts +14 -0
  155. package/dist/components/layout/index.d.ts.map +1 -0
  156. package/dist/components/layout/index.js +13 -0
  157. package/dist/components/layout/index.js.map +1 -0
  158. package/dist/components/media/Image.d.ts +30 -0
  159. package/dist/components/media/Image.d.ts.map +1 -0
  160. package/dist/components/media/Image.js +123 -0
  161. package/dist/components/media/Image.js.map +1 -0
  162. package/dist/components/media/Image.server.d.ts +28 -0
  163. package/dist/components/media/Image.server.d.ts.map +1 -0
  164. package/dist/components/media/Image.server.js +76 -0
  165. package/dist/components/media/Image.server.js.map +1 -0
  166. package/dist/components/media/index.d.ts +7 -0
  167. package/dist/components/media/index.d.ts.map +1 -0
  168. package/dist/components/media/index.js +7 -0
  169. package/dist/components/media/index.js.map +1 -0
  170. package/dist/components/typography/Heading.d.ts +21 -0
  171. package/dist/components/typography/Heading.d.ts.map +1 -0
  172. package/dist/components/typography/Heading.js +71 -0
  173. package/dist/components/typography/Heading.js.map +1 -0
  174. package/dist/components/typography/Heading.server.d.ts +21 -0
  175. package/dist/components/typography/Heading.server.d.ts.map +1 -0
  176. package/dist/components/typography/Heading.server.js +49 -0
  177. package/dist/components/typography/Heading.server.js.map +1 -0
  178. package/dist/components/typography/RichText.d.ts +20 -0
  179. package/dist/components/typography/RichText.d.ts.map +1 -0
  180. package/dist/components/typography/RichText.editor.d.ts +11 -0
  181. package/dist/components/typography/RichText.editor.d.ts.map +1 -0
  182. package/dist/components/typography/RichText.editor.js +67 -0
  183. package/dist/components/typography/RichText.editor.js.map +1 -0
  184. package/dist/components/typography/RichText.js +73 -0
  185. package/dist/components/typography/RichText.js.map +1 -0
  186. package/dist/components/typography/RichText.server.d.ts +22 -0
  187. package/dist/components/typography/RichText.server.d.ts.map +1 -0
  188. package/dist/components/typography/RichText.server.js +52 -0
  189. package/dist/components/typography/RichText.server.js.map +1 -0
  190. package/dist/components/typography/Text.d.ts +20 -0
  191. package/dist/components/typography/Text.d.ts.map +1 -0
  192. package/dist/components/typography/Text.js +61 -0
  193. package/dist/components/typography/Text.js.map +1 -0
  194. package/dist/components/typography/Text.server.d.ts +21 -0
  195. package/dist/components/typography/Text.server.d.ts.map +1 -0
  196. package/dist/components/typography/Text.server.js +39 -0
  197. package/dist/components/typography/Text.server.js.map +1 -0
  198. package/dist/components/typography/index.d.ts +10 -0
  199. package/dist/components/typography/index.d.ts.map +1 -0
  200. package/dist/components/typography/index.js +10 -0
  201. package/dist/components/typography/index.js.map +1 -0
  202. package/dist/config/config.editor.d.ts +15 -56
  203. package/dist/config/config.editor.d.ts.map +1 -0
  204. package/dist/config/config.editor.js +125 -9364
  205. package/dist/config/config.editor.js.map +1 -0
  206. package/dist/config/index.d.ts +7 -33
  207. package/dist/config/index.d.ts.map +1 -0
  208. package/dist/config/index.js +110 -2028
  209. package/dist/config/index.js.map +1 -0
  210. package/dist/config/merge.d.ts +23 -0
  211. package/dist/config/merge.d.ts.map +1 -0
  212. package/dist/config/merge.js +80 -0
  213. package/dist/config/merge.js.map +1 -0
  214. package/dist/config/presets.d.ts +342 -0
  215. package/dist/config/presets.d.ts.map +1 -0
  216. package/dist/config/presets.js +247 -0
  217. package/dist/config/presets.js.map +1 -0
  218. package/dist/editor/PuckEditor.client.d.ts +131 -0
  219. package/dist/editor/PuckEditor.client.d.ts.map +1 -0
  220. package/dist/editor/PuckEditor.client.js +42 -0
  221. package/dist/editor/PuckEditor.client.js.map +1 -0
  222. package/dist/editor/PuckEditorCore.client.d.ts +141 -0
  223. package/dist/editor/PuckEditorCore.client.d.ts.map +1 -0
  224. package/dist/editor/PuckEditorCore.client.js +306 -0
  225. package/dist/editor/PuckEditorCore.client.js.map +1 -0
  226. package/dist/editor/components/HeaderActions.d.ts +109 -0
  227. package/dist/editor/components/HeaderActions.d.ts.map +1 -0
  228. package/dist/editor/components/HeaderActions.js +254 -0
  229. package/dist/editor/components/HeaderActions.js.map +1 -0
  230. package/dist/editor/components/IframeWrapper.d.ts +77 -0
  231. package/dist/editor/components/IframeWrapper.d.ts.map +1 -0
  232. package/dist/editor/components/IframeWrapper.js +257 -0
  233. package/dist/editor/components/IframeWrapper.js.map +1 -0
  234. package/dist/editor/components/LoadingState.d.ts +14 -0
  235. package/dist/editor/components/LoadingState.d.ts.map +1 -0
  236. package/dist/editor/components/LoadingState.js +12 -0
  237. package/dist/editor/components/LoadingState.js.map +1 -0
  238. package/dist/editor/components/PreviewModal.d.ts +54 -0
  239. package/dist/editor/components/PreviewModal.d.ts.map +1 -0
  240. package/dist/editor/components/PreviewModal.js +298 -0
  241. package/dist/editor/components/PreviewModal.js.map +1 -0
  242. package/dist/editor/components/VersionHistory.d.ts +44 -0
  243. package/dist/editor/components/VersionHistory.d.ts.map +1 -0
  244. package/dist/editor/components/VersionHistory.js +308 -0
  245. package/dist/editor/components/VersionHistory.js.map +1 -0
  246. package/dist/editor/hooks/useUnsavedChanges.d.ts +27 -0
  247. package/dist/editor/hooks/useUnsavedChanges.d.ts.map +1 -0
  248. package/dist/editor/hooks/useUnsavedChanges.js +55 -0
  249. package/dist/editor/hooks/useUnsavedChanges.js.map +1 -0
  250. package/dist/editor/index.d.ts +16 -756
  251. package/dist/editor/index.d.ts.map +1 -0
  252. package/dist/editor/index.js +49 -4533
  253. package/dist/editor/index.js.map +1 -0
  254. package/dist/editor/plugins/index.d.ts +12 -0
  255. package/dist/editor/plugins/index.d.ts.map +1 -0
  256. package/dist/editor/plugins/index.js +12 -0
  257. package/dist/editor/plugins/index.js.map +1 -0
  258. package/dist/endpoints/index.d.ts +46 -0
  259. package/dist/endpoints/index.d.ts.map +1 -0
  260. package/dist/endpoints/index.js +204 -0
  261. package/dist/endpoints/index.js.map +1 -0
  262. package/dist/exports/client.d.ts +19 -0
  263. package/dist/exports/client.d.ts.map +1 -0
  264. package/dist/exports/client.js +21 -0
  265. package/dist/exports/client.js.map +1 -0
  266. package/dist/exports/rsc.d.ts +19 -0
  267. package/dist/exports/rsc.d.ts.map +1 -0
  268. package/dist/exports/rsc.js +19 -0
  269. package/dist/exports/rsc.js.map +1 -0
  270. package/dist/fields/AlignmentField.d.ts +36 -0
  271. package/dist/fields/AlignmentField.d.ts.map +1 -0
  272. package/dist/fields/AlignmentField.js +120 -0
  273. package/dist/fields/AlignmentField.js.map +1 -0
  274. package/dist/fields/AnimationField.d.ts +44 -0
  275. package/dist/fields/AnimationField.d.ts.map +1 -0
  276. package/dist/fields/AnimationField.js +329 -0
  277. package/dist/fields/AnimationField.js.map +1 -0
  278. package/dist/fields/BackgroundField.d.ts +40 -0
  279. package/dist/fields/BackgroundField.d.ts.map +1 -0
  280. package/dist/fields/BackgroundField.js +413 -0
  281. package/dist/fields/BackgroundField.js.map +1 -0
  282. package/dist/fields/BorderField.d.ts +29 -0
  283. package/dist/fields/BorderField.d.ts.map +1 -0
  284. package/dist/fields/BorderField.js +264 -0
  285. package/dist/fields/BorderField.js.map +1 -0
  286. package/dist/fields/ColorPickerField.d.ts +43 -0
  287. package/dist/fields/ColorPickerField.d.ts.map +1 -0
  288. package/dist/fields/ColorPickerField.js +285 -0
  289. package/dist/fields/ColorPickerField.js.map +1 -0
  290. package/dist/fields/DimensionsField.d.ts +43 -0
  291. package/dist/fields/DimensionsField.d.ts.map +1 -0
  292. package/dist/fields/DimensionsField.js +532 -0
  293. package/dist/fields/DimensionsField.js.map +1 -0
  294. package/dist/fields/FlexAlignmentField.d.ts +61 -0
  295. package/dist/fields/FlexAlignmentField.d.ts.map +1 -0
  296. package/dist/fields/FlexAlignmentField.js +166 -0
  297. package/dist/fields/FlexAlignmentField.js.map +1 -0
  298. package/dist/fields/FolderPickerField.d.ts +17 -0
  299. package/dist/fields/FolderPickerField.d.ts.map +1 -0
  300. package/dist/fields/FolderPickerField.js +282 -0
  301. package/dist/fields/FolderPickerField.js.map +1 -0
  302. package/dist/fields/GradientEditor.d.ts +22 -0
  303. package/dist/fields/GradientEditor.d.ts.map +1 -0
  304. package/dist/fields/GradientEditor.js +322 -0
  305. package/dist/fields/GradientEditor.js.map +1 -0
  306. package/dist/fields/LockedField.d.ts +67 -0
  307. package/dist/fields/LockedField.d.ts.map +1 -0
  308. package/dist/fields/LockedField.js +170 -0
  309. package/dist/fields/LockedField.js.map +1 -0
  310. package/dist/fields/MarginField.d.ts +31 -0
  311. package/dist/fields/MarginField.d.ts.map +1 -0
  312. package/dist/fields/MarginField.js +233 -0
  313. package/dist/fields/MarginField.js.map +1 -0
  314. package/dist/fields/MediaField.d.ts +33 -0
  315. package/dist/fields/MediaField.d.ts.map +1 -0
  316. package/dist/fields/MediaField.js +677 -0
  317. package/dist/fields/MediaField.js.map +1 -0
  318. package/dist/fields/PaddingField.d.ts +29 -0
  319. package/dist/fields/PaddingField.d.ts.map +1 -0
  320. package/dist/fields/PaddingField.js +232 -0
  321. package/dist/fields/PaddingField.js.map +1 -0
  322. package/dist/fields/PageSegmentField.d.ts +17 -0
  323. package/dist/fields/PageSegmentField.d.ts.map +1 -0
  324. package/dist/fields/PageSegmentField.js +92 -0
  325. package/dist/fields/PageSegmentField.js.map +1 -0
  326. package/dist/fields/ResetField.d.ts +27 -0
  327. package/dist/fields/ResetField.d.ts.map +1 -0
  328. package/dist/fields/ResetField.js +122 -0
  329. package/dist/fields/ResetField.js.map +1 -0
  330. package/dist/fields/ResponsiveField.d.ts +38 -0
  331. package/dist/fields/ResponsiveField.d.ts.map +1 -0
  332. package/dist/fields/ResponsiveField.js +275 -0
  333. package/dist/fields/ResponsiveField.js.map +1 -0
  334. package/dist/fields/ResponsiveVisibilityField.d.ts +34 -0
  335. package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -0
  336. package/dist/fields/ResponsiveVisibilityField.js +145 -0
  337. package/dist/fields/ResponsiveVisibilityField.js.map +1 -0
  338. package/dist/fields/SizeField.d.ts +54 -0
  339. package/dist/fields/SizeField.d.ts.map +1 -0
  340. package/dist/fields/SizeField.js +255 -0
  341. package/dist/fields/SizeField.js.map +1 -0
  342. package/dist/fields/SlugPreviewField.d.ts +16 -0
  343. package/dist/fields/SlugPreviewField.d.ts.map +1 -0
  344. package/dist/fields/SlugPreviewField.js +49 -0
  345. package/dist/fields/SlugPreviewField.js.map +1 -0
  346. package/dist/fields/TemplateField.d.ts +31 -0
  347. package/dist/fields/TemplateField.d.ts.map +1 -0
  348. package/dist/fields/TemplateField.js +428 -0
  349. package/dist/fields/TemplateField.js.map +1 -0
  350. package/dist/fields/TiptapField.d.ts +40 -0
  351. package/dist/fields/TiptapField.d.ts.map +1 -0
  352. package/dist/fields/TiptapField.js +857 -0
  353. package/dist/fields/TiptapField.js.map +1 -0
  354. package/dist/fields/TiptapModal.d.ts +10 -0
  355. package/dist/fields/TiptapModal.d.ts.map +1 -0
  356. package/dist/fields/TiptapModal.js +114 -0
  357. package/dist/fields/TiptapModal.js.map +1 -0
  358. package/dist/fields/TiptapModalField.d.ts +23 -0
  359. package/dist/fields/TiptapModalField.d.ts.map +1 -0
  360. package/dist/fields/TiptapModalField.js +55 -0
  361. package/dist/fields/TiptapModalField.js.map +1 -0
  362. package/dist/fields/TransformField.d.ts +31 -0
  363. package/dist/fields/TransformField.d.ts.map +1 -0
  364. package/dist/fields/TransformField.js +384 -0
  365. package/dist/fields/TransformField.js.map +1 -0
  366. package/dist/fields/VerticalAlignmentField.d.ts +35 -0
  367. package/dist/fields/VerticalAlignmentField.d.ts.map +1 -0
  368. package/dist/fields/VerticalAlignmentField.js +120 -0
  369. package/dist/fields/VerticalAlignmentField.js.map +1 -0
  370. package/dist/fields/WidthField.d.ts +28 -0
  371. package/dist/fields/WidthField.d.ts.map +1 -0
  372. package/dist/fields/WidthField.js +339 -0
  373. package/dist/fields/WidthField.js.map +1 -0
  374. package/dist/fields/index.d.ts +44 -559
  375. package/dist/fields/index.d.ts.map +1 -0
  376. package/dist/fields/index.js +91 -7685
  377. package/dist/fields/index.js.map +1 -0
  378. package/dist/fields/richtext-output.css +219 -0
  379. package/dist/{shared-DeNKN95N.d.mts → fields/shared.d.ts} +114 -133
  380. package/dist/fields/shared.d.ts.map +1 -0
  381. package/dist/fields/shared.js +1542 -0
  382. package/dist/fields/shared.js.map +1 -0
  383. package/dist/fields/{index.css → tiptap-styles.css} +75 -166
  384. package/dist/hooks/index.d.ts +8 -0
  385. package/dist/hooks/index.d.ts.map +1 -0
  386. package/dist/hooks/index.js +8 -0
  387. package/dist/hooks/index.js.map +1 -0
  388. package/dist/hooks/useResponsiveStyles.d.ts +51 -0
  389. package/dist/hooks/useResponsiveStyles.d.ts.map +1 -0
  390. package/dist/hooks/useResponsiveStyles.js +149 -0
  391. package/dist/hooks/useResponsiveStyles.js.map +1 -0
  392. package/dist/hooks/useScrollAnimation.d.ts +56 -0
  393. package/dist/hooks/useScrollAnimation.d.ts.map +1 -0
  394. package/dist/hooks/useScrollAnimation.js +116 -0
  395. package/dist/hooks/useScrollAnimation.js.map +1 -0
  396. package/dist/index.d.ts +66 -6
  397. package/dist/index.d.ts.map +1 -0
  398. package/dist/index.js +67 -568
  399. package/dist/index.js.map +1 -0
  400. package/dist/layouts/LayoutWrapper.d.ts +33 -0
  401. package/dist/layouts/LayoutWrapper.d.ts.map +1 -0
  402. package/dist/layouts/LayoutWrapper.js +112 -0
  403. package/dist/layouts/LayoutWrapper.js.map +1 -0
  404. package/dist/layouts/defaults.d.ts +40 -0
  405. package/dist/layouts/defaults.d.ts.map +1 -0
  406. package/dist/layouts/defaults.js +106 -0
  407. package/dist/layouts/defaults.js.map +1 -0
  408. package/dist/layouts/index.d.ts +27 -94
  409. package/dist/layouts/index.d.ts.map +1 -0
  410. package/dist/layouts/index.js +30 -393
  411. package/dist/layouts/index.js.map +1 -0
  412. package/dist/{types-D7D3rZ1J.d.ts → layouts/types.d.ts} +8 -11
  413. package/dist/layouts/types.d.ts.map +1 -0
  414. package/dist/layouts/types.js +7 -0
  415. package/dist/layouts/types.js.map +1 -0
  416. package/dist/layouts/utils.d.ts +42 -0
  417. package/dist/layouts/utils.d.ts.map +1 -0
  418. package/dist/layouts/utils.js +83 -0
  419. package/dist/layouts/utils.js.map +1 -0
  420. package/dist/plugin/collections/Pages.d.ts +8 -0
  421. package/dist/plugin/collections/Pages.d.ts.map +1 -0
  422. package/dist/plugin/collections/Pages.js +117 -0
  423. package/dist/plugin/collections/Pages.js.map +1 -0
  424. package/dist/plugin/fields/index.d.ts +153 -0
  425. package/dist/plugin/fields/index.d.ts.map +1 -0
  426. package/dist/plugin/fields/index.js +364 -0
  427. package/dist/plugin/fields/index.js.map +1 -0
  428. package/dist/plugin/fields/types.d.ts +108 -0
  429. package/dist/plugin/fields/types.d.ts.map +1 -0
  430. package/dist/plugin/fields/types.js +7 -0
  431. package/dist/plugin/fields/types.js.map +1 -0
  432. package/dist/plugin/index.d.ts +13 -255
  433. package/dist/plugin/index.d.ts.map +1 -0
  434. package/dist/plugin/index.js +276 -553
  435. package/dist/plugin/index.js.map +1 -0
  436. package/dist/render/HybridPageRenderer.d.ts +85 -0
  437. package/dist/render/HybridPageRenderer.d.ts.map +1 -0
  438. package/dist/render/HybridPageRenderer.js +29 -0
  439. package/dist/render/HybridPageRenderer.js.map +1 -0
  440. package/dist/render/PageRenderer.d.ts +51 -0
  441. package/dist/render/PageRenderer.d.ts.map +1 -0
  442. package/dist/render/PageRenderer.js +61 -0
  443. package/dist/render/PageRenderer.js.map +1 -0
  444. package/dist/render/PuckEditor.client.d.ts +66 -0
  445. package/dist/render/PuckEditor.client.d.ts.map +1 -0
  446. package/dist/render/PuckEditor.client.js +66 -0
  447. package/dist/render/PuckEditor.client.js.map +1 -0
  448. package/dist/render/index.d.ts +8 -106
  449. package/dist/render/index.d.ts.map +1 -0
  450. package/dist/render/index.js +10 -2162
  451. package/dist/render/index.js.map +1 -0
  452. package/dist/theme/context.d.ts +59 -0
  453. package/dist/theme/context.d.ts.map +1 -0
  454. package/dist/theme/context.js +73 -0
  455. package/dist/theme/context.js.map +1 -0
  456. package/dist/theme/defaults.d.ts +39 -0
  457. package/dist/theme/defaults.d.ts.map +1 -0
  458. package/dist/theme/defaults.js +72 -0
  459. package/dist/theme/defaults.js.map +1 -0
  460. package/dist/theme/example.d.ts +30 -0
  461. package/dist/theme/example.d.ts.map +1 -0
  462. package/dist/theme/example.js +89 -0
  463. package/dist/theme/example.js.map +1 -0
  464. package/dist/theme/index.d.ts +17 -140
  465. package/dist/theme/index.d.ts.map +1 -0
  466. package/dist/theme/index.js +34 -200
  467. package/dist/theme/index.js.map +1 -0
  468. package/dist/{types-_6MvjyKv.d.ts → theme/types.d.ts} +8 -9
  469. package/dist/theme/types.d.ts.map +1 -0
  470. package/dist/theme/types.js +9 -0
  471. package/dist/theme/types.js.map +1 -0
  472. package/dist/theme/utils.d.ts +30 -0
  473. package/dist/theme/utils.d.ts.map +1 -0
  474. package/dist/theme/utils.js +84 -0
  475. package/dist/theme/utils.js.map +1 -0
  476. package/dist/{index-CQu6SzDg.d.mts → types/index.d.ts} +120 -115
  477. package/dist/types/index.d.ts.map +1 -0
  478. package/dist/types/index.js +2 -0
  479. package/dist/types/index.js.map +1 -0
  480. package/dist/utils/index.d.ts +23 -257
  481. package/dist/utils/index.d.ts.map +1 -0
  482. package/dist/utils/index.js +56 -425
  483. package/dist/utils/index.js.map +1 -0
  484. package/dist/utils/{index.d.mts → migration.d.ts} +16 -112
  485. package/dist/utils/migration.d.ts.map +1 -0
  486. package/dist/utils/migration.js +309 -0
  487. package/dist/utils/migration.js.map +1 -0
  488. package/dist/utils/validation.d.ts +89 -0
  489. package/dist/utils/validation.d.ts.map +1 -0
  490. package/dist/utils/validation.js +247 -0
  491. package/dist/utils/validation.js.map +1 -0
  492. package/dist/views/PuckConfigContext.d.ts +71 -0
  493. package/dist/views/PuckConfigContext.d.ts.map +1 -0
  494. package/dist/views/PuckConfigContext.js +45 -0
  495. package/dist/views/PuckConfigContext.js.map +1 -0
  496. package/dist/views/PuckEditorClient.d.ts +73 -0
  497. package/dist/views/PuckEditorClient.d.ts.map +1 -0
  498. package/dist/views/PuckEditorClient.js +130 -0
  499. package/dist/views/PuckEditorClient.js.map +1 -0
  500. package/dist/views/PuckEditorView.d.ts +19 -0
  501. package/dist/views/PuckEditorView.d.ts.map +1 -0
  502. package/dist/views/PuckEditorView.js +106 -0
  503. package/dist/views/PuckEditorView.js.map +1 -0
  504. package/dist/views/index.d.ts +10 -0
  505. package/dist/views/index.d.ts.map +1 -0
  506. package/dist/views/index.js +10 -0
  507. package/dist/views/index.js.map +1 -0
  508. package/package.json +50 -72
  509. package/dist/AccordionClient.d.mts +0 -24
  510. package/dist/AccordionClient.d.ts +0 -24
  511. package/dist/AccordionClient.js +0 -786
  512. package/dist/AccordionClient.mjs +0 -784
  513. package/dist/AnimatedWrapper.d.mts +0 -30
  514. package/dist/AnimatedWrapper.d.ts +0 -30
  515. package/dist/AnimatedWrapper.js +0 -379
  516. package/dist/AnimatedWrapper.mjs +0 -377
  517. package/dist/admin/client.d.mts +0 -108
  518. package/dist/admin/client.mjs +0 -173
  519. package/dist/admin/index.d.mts +0 -157
  520. package/dist/admin/index.mjs +0 -29
  521. package/dist/api/index.d.mts +0 -460
  522. package/dist/api/index.mjs +0 -578
  523. package/dist/components/index.css +0 -339
  524. package/dist/components/index.d.mts +0 -222
  525. package/dist/components/index.mjs +0 -9109
  526. package/dist/config/config.editor.css +0 -339
  527. package/dist/config/config.editor.d.mts +0 -153
  528. package/dist/config/config.editor.mjs +0 -9347
  529. package/dist/config/index.d.mts +0 -68
  530. package/dist/config/index.mjs +0 -2008
  531. package/dist/editor/index.d.mts +0 -784
  532. package/dist/editor/index.mjs +0 -4500
  533. package/dist/fields/index.d.mts +0 -600
  534. package/dist/fields/index.mjs +0 -7569
  535. package/dist/index-CoUQnyC3.d.ts +0 -327
  536. package/dist/index.d.mts +0 -6
  537. package/dist/index.mjs +0 -555
  538. package/dist/layouts/index.d.mts +0 -96
  539. package/dist/layouts/index.mjs +0 -378
  540. package/dist/plugin/index.d.mts +0 -289
  541. package/dist/plugin/index.mjs +0 -555
  542. package/dist/render/index.d.mts +0 -109
  543. package/dist/render/index.mjs +0 -2140
  544. package/dist/shared-DeNKN95N.d.ts +0 -546
  545. package/dist/theme/index.d.mts +0 -155
  546. package/dist/theme/index.mjs +0 -186
  547. package/dist/types-D7D3rZ1J.d.mts +0 -116
  548. package/dist/types-_6MvjyKv.d.mts +0 -104
  549. package/dist/utils/index.mjs +0 -412
  550. package/dist/utils-DaRs9t0J.d.mts +0 -85
  551. package/dist/utils-gAvt0Vhw.d.ts +0 -85
  552. package/examples/README.md +0 -247
  553. package/examples/api/puck/pages/[id]/route.ts +0 -64
  554. package/examples/api/puck/pages/[id]/versions/route.ts +0 -47
  555. package/examples/api/puck/pages/route.ts +0 -45
  556. package/examples/app/(frontend)/page.tsx +0 -94
  557. package/examples/app/(manage)/layout.tsx +0 -31
  558. package/examples/app/[...slug]/page.tsx +0 -101
  559. package/examples/app/pages/[id]/edit/page.tsx +0 -148
  560. package/examples/components/CustomBanner.tsx +0 -368
  561. package/examples/config/custom-config.ts +0 -223
  562. package/examples/config/payload.config.example.ts +0 -64
  563. package/examples/lib/puck-layouts.ts +0 -258
  564. package/examples/lib/puck-theme.ts +0 -94
  565. package/examples/styles/puck-theme.css +0 -171
package/dist/index.js CHANGED
@@ -1,569 +1,68 @@
1
- 'use strict';
2
-
3
- // src/layouts/defaults.ts
4
- var defaultLayout = {
5
- value: "default",
6
- label: "Default",
7
- description: "Standard page layout with contained content width",
8
- classes: {
9
- wrapper: "",
10
- container: "mx-auto px-4 sm:px-6 lg:px-8",
11
- content: ""
12
- },
13
- maxWidth: "1200px",
14
- fullWidth: false
15
- };
16
- var landingLayout = {
17
- value: "landing",
18
- label: "Landing",
19
- description: "Full-width sections with no global container constraints",
20
- classes: {
21
- wrapper: "",
22
- container: "",
23
- content: ""
24
- },
25
- fullWidth: true
26
- };
27
- var fullWidthLayout = {
28
- value: "full-width",
29
- label: "Full Width",
30
- description: "Content spans the full viewport width",
31
- classes: {
32
- wrapper: "w-full",
33
- container: "w-full",
34
- content: ""
35
- },
36
- maxWidth: "100%",
37
- fullWidth: true
38
- };
39
- var DEFAULT_LAYOUTS = [
40
- defaultLayout,
41
- landingLayout,
42
- fullWidthLayout
43
- ];
44
-
45
- // src/layouts/utils.ts
46
- function layoutsToPayloadOptions(layouts) {
47
- return layouts.map(({ value, label }) => ({
48
- label,
49
- value
50
- }));
51
- }
52
-
53
- // src/plugin/fields/index.ts
54
- var puckDataField = {
55
- name: "puckData",
56
- type: "json",
57
- admin: {
58
- hidden: true,
59
- description: "Puck editor data - managed via visual editor"
60
- }
61
- };
62
- function createEditorVersionField(defaultValue = "puck", sidebar = true, legacyBlocksFieldName = "layout") {
63
- return {
64
- name: "editorVersion",
65
- type: "select",
66
- // NO defaultValue here - we use the hook to intelligently detect the value
67
- // This prevents migrations from blindly setting 'puck' on legacy pages
68
- options: [
69
- { label: "Legacy (Payload Blocks)", value: "legacy" },
70
- { label: "Puck Visual Editor", value: "puck" }
71
- ],
72
- admin: {
73
- position: sidebar ? "sidebar" : void 0,
74
- description: "Which editor was used to create this page"
75
- },
76
- hooks: {
77
- beforeValidate: [
78
- ({ value, data, operation }) => {
79
- if (value) return value;
80
- const legacyBlocks = data?.[legacyBlocksFieldName];
81
- const hasLegacyBlocks = Array.isArray(legacyBlocks) && legacyBlocks.length > 0;
82
- const puckData = data?.puckData;
83
- const hasPuckData = puckData?.content && Array.isArray(puckData.content) && puckData.content.length > 0;
84
- if (hasLegacyBlocks && !hasPuckData) {
85
- return "legacy";
86
- }
87
- if (hasPuckData) {
88
- return "puck";
89
- }
90
- return defaultValue;
91
- }
92
- ]
93
- }
94
- };
95
- }
96
- var editorVersionField = createEditorVersionField("puck", true);
97
- function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true) {
98
- return {
99
- name: "pageLayout",
100
- type: "select",
101
- required: true,
102
- defaultValue: "default",
103
- options: layoutsToPayloadOptions(layouts),
104
- admin: {
105
- position: sidebar ? "sidebar" : void 0,
106
- description: "Overall page structure and layout style"
107
- }
108
- };
109
- }
110
- var pageLayoutField = createPageLayoutField();
111
- var isHomepageField = {
112
- name: "isHomepage",
113
- type: "checkbox",
114
- defaultValue: false,
115
- admin: {
116
- position: "sidebar",
117
- description: "Mark this page as the homepage"
118
- }
119
- };
120
- var seoFieldGroup = {
121
- name: "meta",
122
- type: "group",
123
- label: "SEO",
124
- admin: {
125
- position: "sidebar"
126
- },
127
- fields: [
128
- {
129
- name: "title",
130
- type: "text",
131
- label: "Meta Title",
132
- admin: {
133
- description: "Override the page title for search engines"
134
- }
135
- },
136
- {
137
- name: "description",
138
- type: "textarea",
139
- label: "Meta Description",
140
- admin: {
141
- description: "Description shown in search engine results"
142
- }
143
- },
144
- {
145
- name: "image",
146
- type: "upload",
147
- relationTo: "media",
148
- label: "Open Graph Image",
149
- admin: {
150
- description: "Image shown when sharing on social media"
151
- }
152
- },
153
- {
154
- name: "noindex",
155
- type: "checkbox",
156
- label: "No Index",
157
- defaultValue: false,
158
- admin: {
159
- description: "Prevent search engines from indexing this page"
160
- }
161
- },
162
- {
163
- name: "nofollow",
164
- type: "checkbox",
165
- label: "No Follow",
166
- defaultValue: false,
167
- admin: {
168
- description: "Prevent search engines from following links on this page"
169
- }
170
- },
171
- {
172
- name: "excludeFromSitemap",
173
- type: "checkbox",
174
- label: "Exclude from Sitemap",
175
- defaultValue: false,
176
- admin: {
177
- description: "Exclude this page from the XML sitemap"
178
- }
179
- }
180
- ]
181
- };
182
- var DEFAULT_CONVERSION_TYPES = [
183
- { label: "Lead", value: "lead" },
184
- { label: "Registration", value: "registration" },
185
- { label: "Purchase", value: "purchase" },
186
- { label: "Donation", value: "donation" },
187
- { label: "Newsletter Signup", value: "newsletter" },
188
- { label: "Contact Form", value: "contact" },
189
- { label: "Custom", value: "custom" }
190
- ];
191
- function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_TYPES, sidebar = true) {
192
- return {
193
- name: "conversionTracking",
194
- type: "group",
195
- label: "Conversion Tracking",
196
- admin: {
197
- position: sidebar ? "sidebar" : void 0,
198
- description: "Configure conversion tracking for analytics"
199
- },
200
- fields: [
201
- {
202
- name: "isConversionPage",
203
- type: "checkbox",
204
- label: "Is Conversion Page",
205
- defaultValue: false,
206
- admin: {
207
- description: "Check this if this page represents a completed conversion (e.g., thank you page)"
208
- }
209
- },
210
- {
211
- name: "conversionType",
212
- type: "select",
213
- label: "Conversion Type",
214
- options: conversionTypes,
215
- admin: {
216
- description: "Type of conversion this page represents",
217
- condition: (data, siblingData) => siblingData?.isConversionPage === true
218
- }
219
- },
220
- {
221
- name: "conversionValue",
222
- type: "number",
223
- label: "Conversion Value",
224
- defaultValue: 0,
225
- admin: {
226
- description: "Monetary value of this conversion (0 for non-monetary conversions)",
227
- condition: (data, siblingData) => siblingData?.isConversionPage === true
228
- }
229
- }
230
- ]
231
- };
232
- }
233
- var conversionFieldGroup = createConversionFieldGroup();
234
- function getPuckFields(options = {}) {
235
- const {
236
- includeSEO = true,
237
- includeConversion = false,
238
- includeEditorVersion = true,
239
- includePageLayout = true,
240
- includeIsHomepage = false,
241
- layouts = DEFAULT_LAYOUTS,
242
- defaultEditorVersion = "puck",
243
- legacyBlocksFieldName = "layout",
244
- sidebarPosition = true,
245
- conversionTypeOptions
246
- } = options;
247
- const fields = [];
248
- fields.push(puckDataField);
249
- if (includeEditorVersion) {
250
- fields.push(createEditorVersionField(defaultEditorVersion, sidebarPosition, legacyBlocksFieldName));
251
- }
252
- if (includePageLayout) {
253
- fields.push(createPageLayoutField(layouts, sidebarPosition));
254
- }
255
- if (includeIsHomepage) {
256
- fields.push(isHomepageField);
257
- }
258
- if (includeSEO) {
259
- fields.push(seoFieldGroup);
260
- }
261
- if (includeConversion) {
262
- fields.push(createConversionFieldGroup(conversionTypeOptions, sidebarPosition));
263
- }
264
- return fields;
265
- }
266
-
267
- // src/plugin/collections/Pages.ts
268
- var defaultAccess = () => true;
269
- function generatePagesCollection(slug, options) {
270
- const {
271
- collectionOverrides = {},
272
- access = {},
273
- layouts = DEFAULT_LAYOUTS,
274
- additionalFields = []
275
- } = options;
276
- const baseFields = [
277
- // Core Fields (title and slug with duplication hooks - unique to collection generation)
278
- {
279
- name: "title",
280
- type: "text",
281
- required: true,
282
- hooks: {
283
- beforeDuplicate: [
284
- ({ value }) => {
285
- if (!value) return value;
286
- const copyMatch = value.match(/^(.+) \(Copy(?: (\d+))?\)$/);
287
- if (copyMatch) {
288
- const baseName = copyMatch[1];
289
- const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2;
290
- return `${baseName} (Copy ${copyNum})`;
291
- }
292
- return `${value} (Copy)`;
293
- }
294
- ]
295
- }
296
- },
297
- {
298
- name: "slug",
299
- type: "text",
300
- required: true,
301
- unique: true,
302
- index: true,
303
- admin: {
304
- position: "sidebar",
305
- description: "URL path for this page (auto-generated from title)"
306
- },
307
- hooks: {
308
- beforeValidate: [
309
- ({ data, value }) => {
310
- if (data && !value && data.title) {
311
- return data.title.toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").trim();
312
- }
313
- return value;
314
- }
315
- ],
316
- beforeDuplicate: [
317
- ({ value }) => {
318
- if (!value) return value;
319
- const copyMatch = value.match(/^(.+)-copy(?:-(\d+))?$/);
320
- if (copyMatch) {
321
- const baseName = copyMatch[1];
322
- const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2;
323
- return `${baseName}-copy-${copyNum}`;
324
- }
325
- return `${value}-copy`;
326
- }
327
- ]
328
- }
329
- },
330
- // Page Layout
331
- createPageLayoutField(layouts, true),
332
- // Editor Version
333
- createEditorVersionField("puck", true),
334
- // Homepage Flag
335
- isHomepageField,
336
- // Puck Data (hidden - managed via visual editor)
337
- puckDataField,
338
- // SEO Fields
339
- seoFieldGroup,
340
- // Conversion Tracking Fields
341
- conversionFieldGroup,
342
- // Additional fields from options
343
- ...additionalFields
344
- ];
345
- return {
346
- slug,
347
- admin: {
348
- useAsTitle: "title",
349
- group: "Content",
350
- defaultColumns: ["title", "slug", "_status", "updatedAt"],
351
- ...collectionOverrides.admin ?? {}
352
- },
353
- access: {
354
- read: access.read ?? defaultAccess,
355
- create: access.create ?? defaultAccess,
356
- update: access.update ?? defaultAccess,
357
- delete: access.delete ?? defaultAccess,
358
- ...collectionOverrides.access ?? {}
359
- },
360
- versions: typeof collectionOverrides.versions === "object" ? { drafts: true, ...collectionOverrides.versions } : { drafts: true },
361
- fields: baseFields,
362
- ...collectionOverrides,
363
- // Ensure fields aren't overwritten by collectionOverrides
364
- ...collectionOverrides.fields && {
365
- fields: [...baseFields, ...collectionOverrides.fields]
366
- }
367
- };
368
- }
369
-
370
- // src/collections/Templates.ts
371
- var TemplatesCollection = {
372
- slug: "puck-templates",
373
- admin: {
374
- useAsTitle: "name",
375
- group: "Puck",
376
- defaultColumns: ["name", "category", "updatedAt"],
377
- description: "Reusable component templates for the visual editor"
378
- },
379
- access: {
380
- read: () => true,
381
- create: ({ req }) => !!req.user,
382
- update: ({ req }) => !!req.user,
383
- delete: ({ req }) => !!req.user
384
- },
385
- fields: [
386
- {
387
- name: "name",
388
- type: "text",
389
- required: true,
390
- admin: {
391
- description: "A descriptive name for this template"
392
- }
393
- },
394
- {
395
- name: "description",
396
- type: "textarea",
397
- admin: {
398
- description: "Optional description of what this template contains"
399
- }
400
- },
401
- {
402
- name: "category",
403
- type: "text",
404
- admin: {
405
- description: 'Category for organizing templates (e.g., "Hero", "Footer", "CTA")'
406
- }
407
- },
408
- {
409
- name: "content",
410
- type: "json",
411
- required: true,
412
- admin: {
413
- description: "Serialized Puck component data"
414
- }
415
- },
416
- {
417
- name: "thumbnail",
418
- type: "text",
419
- admin: {
420
- description: "Optional thumbnail URL for template preview"
421
- }
422
- }
423
- ],
424
- timestamps: true
425
- };
426
-
427
- // src/plugin/index.ts
428
- function getExistingFieldNames(fields) {
429
- const names = /* @__PURE__ */ new Set();
430
- function addFieldNames(fieldsToCheck) {
431
- for (const field of fieldsToCheck) {
432
- if ("name" in field && field.name) {
433
- names.add(field.name);
434
- }
435
- if ("fields" in field && Array.isArray(field.fields)) {
436
- addFieldNames(field.fields);
437
- }
438
- if (field.type === "tabs" && "tabs" in field && Array.isArray(field.tabs)) {
439
- for (const tab of field.tabs) {
440
- if ("fields" in tab && Array.isArray(tab.fields)) {
441
- addFieldNames(tab.fields);
442
- }
443
- }
444
- }
445
- }
446
- }
447
- addFieldNames(fields);
448
- return names;
449
- }
450
- function filterExistingFields(fieldsToAdd, existingNames) {
451
- return fieldsToAdd.filter((field) => {
452
- if ("name" in field && field.name) {
453
- return !existingNames.has(field.name);
454
- }
455
- return true;
456
- });
457
- }
458
- function generatePuckEditField(collectionSlug, adminConfig = {}) {
459
- const {
460
- editorPathPattern = "/pages/{id}/edit",
461
- buttonLabel = "Edit with Puck",
462
- buttonPosition
463
- // undefined = main area (default), 'sidebar' = sidebar
464
- } = adminConfig;
465
- return {
466
- name: "puckEdit",
467
- type: "ui",
468
- admin: {
469
- // Only set position if explicitly specified (sidebar)
470
- // undefined means main form area in Payload
471
- ...buttonPosition && { position: buttonPosition },
472
- components: {
473
- Field: "@delmaredigital/payload-puck/admin/client#EditWithPuckButton",
474
- Cell: "@delmaredigital/payload-puck/admin/client#EditWithPuckCell"
475
- },
476
- custom: {
477
- collectionSlug,
478
- editorPathPattern,
479
- label: buttonLabel
480
- }
481
- }
482
- };
483
- }
484
- function createPuckPlugin(options = {}) {
485
- const {
486
- pagesCollection = "pages",
487
- autoGenerateCollection = true,
488
- admin: adminConfig = {}
489
- } = options;
490
- const { addEditButton = true } = adminConfig;
491
- return (incomingConfig) => {
492
- let collections = incomingConfig.collections || [];
493
- const templatesCollectionExists = collections.some(
494
- (c) => c.slug === "puck-templates"
495
- );
496
- if (!templatesCollectionExists) {
497
- collections = [...collections, TemplatesCollection];
498
- }
499
- if (autoGenerateCollection) {
500
- const existingCollectionIndex = collections.findIndex(
501
- (c) => c.slug === pagesCollection
502
- );
503
- const editButtonField = addEditButton ? [generatePuckEditField(pagesCollection, adminConfig)] : [];
504
- if (existingCollectionIndex >= 0) {
505
- const existingCollection = collections[existingCollectionIndex];
506
- const existingFields = existingCollection.fields || [];
507
- const existingFieldNames = getExistingFieldNames(existingFields);
508
- const puckFields = getPuckFields({
509
- includeSEO: !existingFieldNames.has("meta"),
510
- includeConversion: !existingFieldNames.has("conversionTracking"),
511
- includeEditorVersion: !existingFieldNames.has("editorVersion"),
512
- includePageLayout: !existingFieldNames.has("pageLayout"),
513
- includeIsHomepage: !existingFieldNames.has("isHomepage"),
514
- layouts: options.layouts
515
- });
516
- const fieldsToAdd = filterExistingFields(puckFields, existingFieldNames);
517
- const editFieldsToAdd = existingFieldNames.has("puckEdit") ? [] : editButtonField;
518
- collections = [
519
- ...collections.slice(0, existingCollectionIndex),
520
- {
521
- ...existingCollection,
522
- // Ensure drafts are enabled for Puck
523
- versions: typeof existingCollection.versions === "object" ? { drafts: true, ...existingCollection.versions } : existingCollection.versions ?? { drafts: true },
524
- fields: [
525
- ...existingFields,
526
- ...fieldsToAdd,
527
- ...editFieldsToAdd
528
- ]
529
- },
530
- ...collections.slice(existingCollectionIndex + 1)
531
- ];
532
- } else {
533
- const generatedCollection = generatePagesCollection(pagesCollection, options);
534
- collections = [
535
- ...collections,
536
- {
537
- ...generatedCollection,
538
- fields: [...generatedCollection.fields, ...editButtonField]
539
- }
540
- ];
541
- }
542
- }
543
- return {
544
- ...incomingConfig,
545
- collections,
546
- onInit: async (payload) => {
547
- if (incomingConfig.onInit) {
548
- await incomingConfig.onInit(payload);
549
- }
550
- }
551
- };
552
- };
553
- }
554
-
555
- exports.TemplatesCollection = TemplatesCollection;
556
- exports.conversionFieldGroup = conversionFieldGroup;
557
- exports.createEditorVersionField = createEditorVersionField;
558
- exports.createPageLayoutField = createPageLayoutField;
559
- exports.createPuckPlugin = createPuckPlugin;
560
- exports.editorVersionField = editorVersionField;
561
- exports.generatePagesCollection = generatePagesCollection;
562
- exports.generatePuckEditField = generatePuckEditField;
563
- exports.getPuckFields = getPuckFields;
564
- exports.isHomepageField = isHomepageField;
565
- exports.pageLayoutField = pageLayoutField;
566
- exports.puckDataField = puckDataField;
567
- exports.seoFieldGroup = seoFieldGroup;
568
- //# sourceMappingURL=index.js.map
1
+ /**
2
+ * @delmaredigital/payload-puck
3
+ *
4
+ * A portable PayloadCMS plugin for Puck visual page builder integration.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * // In payload.config.ts
9
+ * import { createPuckPlugin } from '@delmaredigital/payload-puck/plugin'
10
+ *
11
+ * export default buildConfig({
12
+ * plugins: [
13
+ * createPuckPlugin({
14
+ * pagesCollection: 'pages',
15
+ * }),
16
+ * ],
17
+ * })
18
+ * ```
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * // Using config for rendering
23
+ * import { baseConfig } from '@delmaredigital/payload-puck/config'
24
+ * import { PageRenderer } from '@delmaredigital/payload-puck/render'
25
+ *
26
+ * <PageRenderer data={page.puckData} config={baseConfig} />
27
+ * ```
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * // Merging custom components
32
+ * import { mergeConfigs, editorConfig } from '@delmaredigital/payload-puck/config/editor'
33
+ *
34
+ * const customConfig = mergeConfigs({
35
+ * base: editorConfig,
36
+ * components: {
37
+ * CustomHero: myHeroConfig,
38
+ * },
39
+ * categories: {
40
+ * custom: { title: 'Custom', components: ['CustomHero'] },
41
+ * },
42
+ * })
43
+ * ```
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * // Creating API routes
48
+ * // src/app/api/puck/pages/route.ts
49
+ * import { createPuckApiRoutes } from '@delmaredigital/payload-puck/api'
50
+ *
51
+ * export const { GET, POST } = createPuckApiRoutes({
52
+ * auth: {
53
+ * authenticate: async (request) => {
54
+ * const session = await getSession(request)
55
+ * if (!session?.user) return { authenticated: false }
56
+ * return { authenticated: true, user: session.user }
57
+ * },
58
+ * },
59
+ * })
60
+ * ```
61
+ */
62
+ // Re-export all types
63
+ export * from './types';
64
+ // Re-export plugin utilities
65
+ export { createPuckPlugin, generatePagesCollection, generatePuckEditField, TemplatesCollection, } from './plugin';
66
+ // Re-export field utilities for hybrid collection integration
67
+ export { getPuckFields, puckDataField, editorVersionField, createEditorVersionField, pageLayoutField, createPageLayoutField, isHomepageField, seoFieldGroup, conversionFieldGroup, } from './plugin';
569
68
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,sBAAsB;AACtB,cAAc,SAAS,CAAA;AAEvB,6BAA6B;AAC7B,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,UAAU,CAAA;AAEjB,8DAA8D;AAC9D,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,UAAU,CAAA"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Layout Wrapper Component
3
+ *
4
+ * Wraps page content with layout-specific styling and structure.
5
+ */
6
+ import type { ReactNode } from 'react';
7
+ import type { LayoutDefinition } from './types';
8
+ import { type BackgroundValue } from '../fields/shared';
9
+ /**
10
+ * Page-level overrides for layout settings
11
+ */
12
+ export interface PageOverrides {
13
+ /** Override header visibility: 'default' uses layout, 'show'/'hide' overrides */
14
+ showHeader?: 'default' | 'show' | 'hide';
15
+ /** Override footer visibility: 'default' uses layout, 'show'/'hide' overrides */
16
+ showFooter?: 'default' | 'show' | 'hide';
17
+ /** Page background (overrides any layout background) */
18
+ background?: BackgroundValue | null;
19
+ /** Page max width: 'default' uses layout, otherwise uses the value */
20
+ maxWidth?: string;
21
+ }
22
+ export interface LayoutWrapperProps {
23
+ children: ReactNode;
24
+ layout?: LayoutDefinition;
25
+ className?: string;
26
+ /** Page-level overrides from Puck root props */
27
+ overrides?: PageOverrides;
28
+ }
29
+ /**
30
+ * Applies layout configuration to page content
31
+ */
32
+ export declare function LayoutWrapper({ children, layout, className, overrides }: LayoutWrapperProps): import("react/jsx-runtime").JSX.Element;
33
+ //# sourceMappingURL=LayoutWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutWrapper.d.ts","sourceRoot":"","sources":["../../src/layouts/LayoutWrapper.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE7E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iFAAiF;IACjF,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IACxC,iFAAiF;IACjF,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IACxC,wDAAwD;IACxD,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACnC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,SAAS,CAAC,EAAE,aAAa,CAAA;CAC1B;AAeD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,kBAAkB,2CA8J3F"}