@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
@@ -1,247 +0,0 @@
1
- # Puck Plugin Examples
2
-
3
- Copy these files to your project as a starting point. Each file includes comments explaining what to customize.
4
-
5
- ## Directory Structure
6
-
7
- ```
8
- examples/
9
- ├── api/
10
- │ └── puck/
11
- │ └── pages/
12
- │ ├── route.ts # List & create pages
13
- │ └── [id]/
14
- │ ├── route.ts # Get, update, delete page
15
- │ └── versions/
16
- │ └── route.ts # Version history (optional)
17
- ├── app/
18
- │ ├── (frontend)/
19
- │ │ └── page.tsx # Homepage route (root "/")
20
- │ ├── (manage)/
21
- │ │ └── layout.tsx # Editor layout (imports Tailwind CSS)
22
- │ ├── pages/
23
- │ │ └── [id]/
24
- │ │ └── edit/
25
- │ │ └── page.tsx # Visual editor page
26
- │ └── [...slug]/
27
- │ └── page.tsx # Dynamic page renderer
28
- ├── config/
29
- │ └── payload.config.example.ts # Payload plugin configuration
30
- └── lib/
31
- ├── puck-theme.ts # Theme configuration
32
- └── puck-layouts.ts # Custom page layouts
33
- ```
34
-
35
- **Note:** The plugin automatically creates a `puck-templates` collection for the Template component. No additional API routes are needed - templates use Payload's built-in REST API at `/api/puck-templates`.
36
-
37
- ## Quick Setup
38
-
39
- ### 1. Add the Plugin to Payload Config
40
-
41
- Reference the example configuration and merge with your existing `payload.config.ts`:
42
-
43
- ```bash
44
- # View the example config
45
- cat node_modules/@delmaredigital/payload-puck/examples/config/payload.config.example.ts
46
- ```
47
-
48
- Add the plugin to your config:
49
-
50
- ```typescript
51
- import { createPuckPlugin } from '@delmaredigital/payload-puck/plugin'
52
-
53
- export default buildConfig({
54
- plugins: [
55
- createPuckPlugin({
56
- pagesCollection: 'pages',
57
- }),
58
- ],
59
- // ... rest of your config
60
- })
61
- ```
62
-
63
- ### 2. Copy API Routes
64
-
65
- ```bash
66
- # From your project root
67
- cp -r node_modules/@delmaredigital/payload-puck/examples/api/puck src/app/api/
68
- ```
69
-
70
- ### 3. Copy Editor Page & Layout
71
-
72
- ```bash
73
- # Create route group and copy layout (REQUIRED for Tailwind styles)
74
- mkdir -p src/app/\(manage\)/pages/\[id\]/edit
75
- cp node_modules/@delmaredigital/payload-puck/examples/app/\(manage\)/layout.tsx src/app/\(manage\)/
76
-
77
- # Copy editor page
78
- cp node_modules/@delmaredigital/payload-puck/examples/app/pages/\[id\]/edit/page.tsx src/app/\(manage\)/pages/\[id\]/edit/
79
- ```
80
-
81
- > **Important:** The layout file imports Tailwind CSS. Without it, the editor will be completely unstyled. Update the CSS import path in `layout.tsx` to match your project's globals.css location.
82
-
83
- ### 4. Copy Frontend Routes
84
-
85
- ```bash
86
- # Homepage route (handles root "/")
87
- mkdir -p src/app/\(frontend\)
88
- cp node_modules/@delmaredigital/payload-puck/examples/app/\(frontend\)/page.tsx src/app/\(frontend\)/
89
-
90
- # Dynamic catch-all route (handles "/about", "/contact", etc.)
91
- mkdir -p src/app/\(frontend\)/\[...slug\]
92
- cp node_modules/@delmaredigital/payload-puck/examples/app/\[...slug\]/page.tsx src/app/\(frontend\)/\[...slug\]/
93
- ```
94
-
95
- ### 5. Copy Theme (Optional)
96
-
97
- ```bash
98
- mkdir -p src/lib
99
- cp node_modules/@delmaredigital/payload-puck/examples/lib/puck-theme.ts src/lib/
100
- ```
101
-
102
- Then uncomment the theme imports in the editor and renderer pages.
103
-
104
- ### 6. Copy Layouts (Optional)
105
-
106
- ```bash
107
- cp node_modules/@delmaredigital/payload-puck/examples/lib/puck-layouts.ts src/lib/
108
- ```
109
-
110
- Then update your plugin config and renderer to use custom layouts.
111
-
112
- ## Customization
113
-
114
- ### Authentication
115
-
116
- Edit the `authenticate` function in each API route to match your auth setup:
117
-
118
- ```typescript
119
- authenticate: async (request) => {
120
- // Your auth logic here
121
- const session = await getSession(request)
122
- if (!session?.user) return { authenticated: false }
123
- return { authenticated: true, user: session.user }
124
- },
125
- ```
126
-
127
- ### Permissions
128
-
129
- Customize the `canView`, `canEdit`, `canPublish`, and `canDelete` hooks:
130
-
131
- ```typescript
132
- canEdit: async (user, pageId) => {
133
- // Example: Only editors and admins can edit
134
- return { allowed: ['editor', 'admin'].includes(user?.role) }
135
- },
136
- ```
137
-
138
- ### Theme
139
-
140
- Edit `lib/puck-theme.ts` to match your CSS variables:
141
-
142
- ```typescript
143
- buttonVariants: {
144
- default: {
145
- // Use your CSS variable classes
146
- classes: 'bg-brand text-brand-foreground hover:bg-brand/90',
147
- },
148
- },
149
- ```
150
-
151
- ### Layouts
152
-
153
- Edit `lib/puck-layouts.ts` to define custom page layouts with header/footer support:
154
-
155
- ```typescript
156
- import { createLayout, mergeLayouts, DEFAULT_LAYOUTS } from '@delmaredigital/payload-puck/layouts'
157
- import { Header } from '@/components/header'
158
- import { Footer } from '@/components/footer'
159
-
160
- // Layout with sticky header
161
- const defaultLayout = createLayout({
162
- value: 'default',
163
- label: 'Default',
164
- description: 'Standard page with header and footer',
165
- maxWidth: '1200px',
166
- // Header/footer rendered in both editor preview and frontend
167
- header: Header,
168
- footer: Footer,
169
- // Editor preview settings
170
- editorBackground: '#ffffff',
171
- editorDarkMode: false,
172
- // IMPORTANT: Set this if your header is sticky/fixed
173
- // This adds padding-top in both editor AND frontend so content doesn't render behind the header
174
- stickyHeaderHeight: 80, // Height of your sticky header in pixels
175
- })
176
-
177
- // Landing layout without header/footer
178
- const landingLayout = createLayout({
179
- value: 'landing',
180
- label: 'Landing',
181
- description: 'Full-width layout without header/footer',
182
- fullWidth: true,
183
- // No header/footer - content controls the entire page
184
- editorBackground: '#f8fafc',
185
- })
186
-
187
- // Dark theme example
188
- const darkLayout = createLayout({
189
- value: 'dark',
190
- label: 'Dark',
191
- description: 'Dark theme layout',
192
- maxWidth: '1200px',
193
- header: Header, // Could be a dark-themed header
194
- footer: Footer,
195
- editorBackground: '#111827',
196
- editorDarkMode: true, // Sets dark mode class on iframe
197
- stickyHeaderHeight: 80,
198
- })
199
-
200
- // Combine with defaults
201
- export const customLayouts = mergeLayouts(
202
- DEFAULT_LAYOUTS,
203
- [defaultLayout, landingLayout, darkLayout],
204
- { replace: true } // Replace defaults with our versions
205
- )
206
- ```
207
-
208
- Use layouts in your editor page:
209
-
210
- ```typescript
211
- import { PuckEditor } from '@delmaredigital/payload-puck/editor'
212
- import { customLayouts } from '@/lib/puck-layouts'
213
-
214
- <PuckEditor
215
- config={editorConfig}
216
- pageId={page.id}
217
- initialData={page.puckData}
218
- layouts={customLayouts} // Editor reads header/footer from layouts
219
- />
220
- ```
221
-
222
- And in your PageRenderer:
223
-
224
- ```typescript
225
- import { PageRenderer } from '@delmaredigital/payload-puck/render'
226
- import { customLayouts } from '@/lib/puck-layouts'
227
-
228
- <PageRenderer
229
- data={page.puckData}
230
- layouts={customLayouts} // Frontend renders header/footer from layouts
231
- />
232
- ```
233
-
234
- #### Layout Definition Options
235
-
236
- | Option | Type | Description |
237
- |--------|------|-------------|
238
- | `value` | `string` | Unique identifier |
239
- | `label` | `string` | Display name in editor |
240
- | `header` | `ComponentType` | Header component for preview & frontend |
241
- | `footer` | `ComponentType` | Footer component for preview & frontend |
242
- | `stickyHeaderHeight` | `number` | Height of sticky/fixed header (applies padding in editor & frontend) |
243
- | `editorBackground` | `string` | Background color for editor preview |
244
- | `editorDarkMode` | `boolean` | Use dark mode in editor preview |
245
- | `maxWidth` | `string` | Container max-width (e.g., `'1200px'`) |
246
- | `fullWidth` | `boolean` | If true, no container constraints |
247
- | `classes` | `object` | CSS classes for wrapper/container/content |
@@ -1,64 +0,0 @@
1
- /**
2
- * Puck Pages API - Get, Update, Delete
3
- *
4
- * Copy this file to: app/api/puck/pages/[id]/route.ts
5
- *
6
- * Provides:
7
- * - GET: Get a single page by ID
8
- * - PATCH: Update a page (supports draft/publish)
9
- * - DELETE: Delete a page
10
- */
11
-
12
- import { createPuckApiRoutesWithId } from '@delmaredigital/payload-puck/api'
13
- import config from '@payload-config'
14
- import { getPayload } from 'payload'
15
- import { headers } from 'next/headers'
16
-
17
- export const { GET, PATCH, DELETE } = createPuckApiRoutesWithId({
18
- collection: 'pages',
19
- payloadConfig: config,
20
- auth: {
21
- // Customize authentication logic for your app
22
- authenticate: async (request) => {
23
- const payload = await getPayload({ config })
24
- const { user } = await payload.auth({ headers: await headers() })
25
-
26
- if (!user) {
27
- return { authenticated: false }
28
- }
29
-
30
- return {
31
- authenticated: true,
32
- user: { id: user.id, role: (user as any).role },
33
- }
34
- },
35
-
36
- // Optional: Customize who can view a page
37
- canView: async (user, pageId) => {
38
- return { allowed: true }
39
- },
40
-
41
- // Optional: Customize who can edit a page
42
- canEdit: async (user, pageId) => {
43
- return { allowed: !!user }
44
- },
45
-
46
- // Optional: Customize who can publish (defaults to canEdit)
47
- canPublish: async (user, pageId) => {
48
- return { allowed: !!user }
49
- },
50
-
51
- // Optional: Customize who can delete a page
52
- canDelete: async (user, pageId) => {
53
- // Example: Only admins can delete
54
- return { allowed: user?.role === 'admin' }
55
- },
56
- },
57
-
58
- // Optional: Map Puck root props to Payload fields
59
- rootPropsMapping: [
60
- { from: 'metaTitle', to: 'seo.metaTitle' },
61
- { from: 'metaDescription', to: 'seo.metaDescription' },
62
- { from: 'pageLayout', to: 'pageLayout' },
63
- ],
64
- })
@@ -1,47 +0,0 @@
1
- /**
2
- * Puck Pages Versions API
3
- *
4
- * Copy this file to: app/api/puck/pages/[id]/versions/route.ts
5
- *
6
- * Provides:
7
- * - GET: List page versions
8
- * - POST: Restore a specific version
9
- *
10
- * The History button automatically appears in the editor when this route exists.
11
- */
12
-
13
- import { createPuckApiRoutesVersions } from '@delmaredigital/payload-puck/api'
14
- import config from '@payload-config'
15
- import { getPayload } from 'payload'
16
- import { headers } from 'next/headers'
17
-
18
- export const { GET, POST } = createPuckApiRoutesVersions({
19
- collection: 'pages',
20
- payloadConfig: config,
21
- auth: {
22
- // Customize authentication logic for your app
23
- authenticate: async (request) => {
24
- const payload = await getPayload({ config })
25
- const { user } = await payload.auth({ headers: await headers() })
26
-
27
- if (!user) {
28
- return { authenticated: false }
29
- }
30
-
31
- return {
32
- authenticated: true,
33
- user: { id: user.id, role: (user as any).role },
34
- }
35
- },
36
-
37
- // Optional: Customize who can view versions
38
- canView: async (user, pageId) => {
39
- return { allowed: !!user }
40
- },
41
-
42
- // Optional: Customize who can restore versions
43
- canEdit: async (user, pageId) => {
44
- return { allowed: !!user }
45
- },
46
- },
47
- })
@@ -1,45 +0,0 @@
1
- /**
2
- * Puck Pages API - List & Create
3
- *
4
- * Copy this file to: app/api/puck/pages/route.ts
5
- *
6
- * Provides:
7
- * - GET: List all pages
8
- * - POST: Create a new page
9
- */
10
-
11
- import { createPuckApiRoutes } from '@delmaredigital/payload-puck/api'
12
- import config from '@payload-config'
13
- import { getPayload } from 'payload'
14
- import { headers } from 'next/headers'
15
-
16
- export const { GET, POST } = createPuckApiRoutes({
17
- collection: 'pages',
18
- payloadConfig: config,
19
- auth: {
20
- // Customize authentication logic for your app
21
- authenticate: async (request) => {
22
- const payload = await getPayload({ config })
23
- const { user } = await payload.auth({ headers: await headers() })
24
-
25
- if (!user) {
26
- return { authenticated: false }
27
- }
28
-
29
- return {
30
- authenticated: true,
31
- user: { id: user.id, role: (user as any).role },
32
- }
33
- },
34
-
35
- // Optional: Customize who can list pages
36
- canList: async (user) => {
37
- return { allowed: true }
38
- },
39
-
40
- // Optional: Customize who can create pages
41
- canCreate: async (user) => {
42
- return { allowed: !!user }
43
- },
44
- },
45
- })
@@ -1,94 +0,0 @@
1
- /**
2
- * Homepage Route
3
- *
4
- * Copy this file to: app/(frontend)/page.tsx
5
- *
6
- * Handles the root URL ("/") separately from the catch-all [...slug] route.
7
- * Looks for a page with slug "home" or isHomepage=true.
8
- */
9
-
10
- import { notFound } from 'next/navigation'
11
- import { getPayload } from 'payload'
12
- import config from '@payload-config'
13
- import { PageRenderer } from '@delmaredigital/payload-puck/render'
14
- import { baseConfig } from '@delmaredigital/payload-puck/config'
15
- import { LayoutWrapper, DEFAULT_LAYOUTS } from '@delmaredigital/payload-puck/layouts'
16
- // Import your custom layouts - create from examples/lib/puck-layouts.ts
17
- // import { siteLayouts } from '@/lib/puck-layouts'
18
- // Import your theme - create from examples/lib/puck-theme.ts
19
- // import { puckTheme } from '@/lib/puck-theme'
20
- import type { Data as PuckData } from '@measured/puck'
21
- import type { Metadata } from 'next'
22
-
23
- // Generate SEO metadata for homepage
24
- export async function generateMetadata(): Promise<Metadata> {
25
- const payload = await getPayload({ config })
26
-
27
- // Find homepage by isHomepage flag or slug
28
- const { docs } = await payload.find({
29
- collection: 'pages',
30
- where: {
31
- or: [
32
- { isHomepage: { equals: true } },
33
- { slug: { equals: 'home' } },
34
- ],
35
- },
36
- limit: 1,
37
- })
38
-
39
- const page = docs[0] as any
40
- if (!page) return { title: 'Home' }
41
-
42
- return {
43
- title: page.meta?.title || page.title,
44
- description: page.meta?.description,
45
- }
46
- }
47
-
48
- export default async function HomePage() {
49
- const payload = await getPayload({ config })
50
-
51
- // Find homepage by isHomepage flag or slug
52
- const { docs } = await payload.find({
53
- collection: 'pages',
54
- where: {
55
- or: [
56
- { isHomepage: { equals: true } },
57
- { slug: { equals: 'home' } },
58
- ],
59
- },
60
- limit: 1,
61
- })
62
-
63
- const page = docs[0] as any
64
- if (!page) notFound()
65
-
66
- // Handle pages without content
67
- if (!page.puckData) {
68
- return (
69
- <div className="container mx-auto py-12 text-center">
70
- <h1 className="text-2xl font-bold mb-4">{page.title}</h1>
71
- <p className="text-muted-foreground">
72
- This page has no content yet. Edit it in the admin panel.
73
- </p>
74
- </div>
75
- )
76
- }
77
-
78
- // Find the layout definition based on page's pageLayout setting
79
- // Use your custom siteLayouts instead of DEFAULT_LAYOUTS for header/footer
80
- const layouts = DEFAULT_LAYOUTS // Replace with: siteLayouts
81
- const pageLayout = page.puckData?.root?.props?.pageLayout || 'default'
82
- const layout = layouts.find((l) => l.value === pageLayout)
83
-
84
- return (
85
- <LayoutWrapper layout={layout}>
86
- <PageRenderer
87
- data={page.puckData as PuckData}
88
- config={baseConfig}
89
- // Optional: Custom theme - uncomment after creating puck-theme.ts
90
- // theme={puckTheme}
91
- />
92
- </LayoutWrapper>
93
- )
94
- }
@@ -1,31 +0,0 @@
1
- /**
2
- * Layout for Puck Editor routes
3
- *
4
- * IMPORTANT: This layout must import your Tailwind CSS for the editor to be styled.
5
- * Update the import path to match your project's globals.css location.
6
- */
7
-
8
- // Import your Tailwind CSS - adjust path as needed
9
- import '@/app/(frontend)/globals.css'
10
- // Or if your globals.css is elsewhere:
11
- // import '@/styles/globals.css'
12
- // import '../globals.css'
13
-
14
- export const metadata = {
15
- title: 'Puck Editor',
16
- description: 'Visual page editor',
17
- }
18
-
19
- export default function ManageLayout({
20
- children,
21
- }: {
22
- children: React.ReactNode
23
- }) {
24
- return (
25
- // NOTE: data-theme="light" is required if your CSS uses opacity:0 until theme is set
26
- // (common FOUC prevention pattern). Adjust to match your theme system.
27
- <html lang="en" data-theme="light">
28
- <body>{children}</body>
29
- </html>
30
- )
31
- }
@@ -1,101 +0,0 @@
1
- /**
2
- * Dynamic Page Renderer
3
- *
4
- * Copy this file to: app/(frontend)/[...slug]/page.tsx
5
- * (or your preferred route structure)
6
- *
7
- * Renders Puck pages from Payload CMS with:
8
- * - SEO metadata generation
9
- * - 404 handling for missing pages
10
- * - Layout-based header/footer rendering
11
- * - Optional theming support
12
- */
13
-
14
- import { notFound } from 'next/navigation'
15
- import { getPayload } from 'payload'
16
- import config from '@payload-config'
17
- import { PageRenderer } from '@delmaredigital/payload-puck/render'
18
- import { baseConfig } from '@delmaredigital/payload-puck/config'
19
- import { LayoutWrapper, DEFAULT_LAYOUTS } from '@delmaredigital/payload-puck/layouts'
20
- // Import your custom layouts - create from examples/lib/puck-layouts.ts
21
- // import { siteLayouts } from '@/lib/puck-layouts'
22
- // Import your theme - create from examples/lib/puck-theme.ts
23
- // import { puckTheme } from '@/lib/puck-theme'
24
- import type { Data as PuckData } from '@measured/puck'
25
- import type { Metadata } from 'next'
26
-
27
- interface PageParams {
28
- slug: string[]
29
- }
30
-
31
- // Generate SEO metadata from page data
32
- export async function generateMetadata({
33
- params,
34
- }: {
35
- params: Promise<PageParams>
36
- }): Promise<Metadata> {
37
- const { slug } = await params
38
- const payload = await getPayload({ config })
39
-
40
- const { docs } = await payload.find({
41
- collection: 'pages',
42
- where: { slug: { equals: slug.join('/') } },
43
- limit: 1,
44
- })
45
-
46
- const page = docs[0] as any
47
- if (!page) return {}
48
-
49
- return {
50
- title: page.meta?.title || page.title,
51
- description: page.meta?.description,
52
- robots: page.meta?.noindex ? { index: false } : undefined,
53
- }
54
- }
55
-
56
- export default async function Page({
57
- params,
58
- }: {
59
- params: Promise<PageParams>
60
- }) {
61
- const { slug } = await params
62
- const payload = await getPayload({ config })
63
-
64
- const { docs } = await payload.find({
65
- collection: 'pages',
66
- where: { slug: { equals: slug.join('/') } },
67
- limit: 1,
68
- })
69
-
70
- const page = docs[0] as any
71
- if (!page) notFound()
72
-
73
- // Handle pages without content
74
- if (!page.puckData) {
75
- return (
76
- <div className="container mx-auto py-12 text-center">
77
- <h1 className="text-2xl font-bold mb-4">{page.title}</h1>
78
- <p className="text-muted-foreground">
79
- This page has no content yet. Edit it in the admin panel.
80
- </p>
81
- </div>
82
- )
83
- }
84
-
85
- // Find the layout definition based on page's pageLayout setting
86
- // Use your custom siteLayouts instead of DEFAULT_LAYOUTS for header/footer
87
- const layouts = DEFAULT_LAYOUTS // Replace with: siteLayouts
88
- const pageLayout = page.puckData?.root?.props?.pageLayout || 'default'
89
- const layout = layouts.find((l) => l.value === pageLayout)
90
-
91
- return (
92
- <LayoutWrapper layout={layout}>
93
- <PageRenderer
94
- data={page.puckData as PuckData}
95
- config={baseConfig}
96
- // Optional: Custom theme - uncomment after creating puck-theme.ts
97
- // theme={puckTheme}
98
- />
99
- </LayoutWrapper>
100
- )
101
- }