@delmaredigital/payload-puck 0.6.12 → 0.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (583) hide show
  1. package/README.md +50 -1
  2. package/dist/admin/EditWithPuckButton.d.ts +1 -1
  3. package/dist/admin/EditWithPuckButton.d.ts.map +1 -1
  4. package/dist/admin/EditWithPuckButton.js +65 -25
  5. package/dist/admin/EditWithPuckButton.js.map +1 -1
  6. package/dist/admin/EditWithPuckCell.js +43 -13
  7. package/dist/admin/EditWithPuckCell.js.map +1 -1
  8. package/dist/admin/PuckEditorView.d.ts +1 -1
  9. package/dist/admin/PuckEditorView.d.ts.map +1 -1
  10. package/dist/admin/PuckEditorView.js +118 -32
  11. package/dist/admin/PuckEditorView.js.map +1 -1
  12. package/dist/admin/client.d.ts +2 -2
  13. package/dist/admin/client.d.ts.map +1 -1
  14. package/dist/admin/client.js +4 -4
  15. package/dist/admin/client.js.map +1 -1
  16. package/dist/admin/generateAdminComponents.js +7 -7
  17. package/dist/admin/generateAdminComponents.js.map +1 -1
  18. package/dist/admin/index.d.ts +5 -5
  19. package/dist/admin/index.d.ts.map +1 -1
  20. package/dist/admin/index.js +3 -2
  21. package/dist/admin/index.js.map +1 -1
  22. package/dist/ai/collections/AiContext.js +56 -29
  23. package/dist/ai/collections/AiContext.js.map +1 -1
  24. package/dist/ai/collections/AiPrompts.js +24 -19
  25. package/dist/ai/collections/AiPrompts.js.map +1 -1
  26. package/dist/ai/createAiApiRoutes.js +28 -19
  27. package/dist/ai/createAiApiRoutes.js.map +1 -1
  28. package/dist/ai/createAiGenerate.js +7 -8
  29. package/dist/ai/createAiGenerate.js.map +1 -1
  30. package/dist/ai/createAiPlugin.js +7 -9
  31. package/dist/ai/createAiPlugin.js.map +1 -1
  32. package/dist/ai/hooks/useAiContext.js +50 -39
  33. package/dist/ai/hooks/useAiContext.js.map +1 -1
  34. package/dist/ai/hooks/useAiPrompts.js +33 -25
  35. package/dist/ai/hooks/useAiPrompts.js.map +1 -1
  36. package/dist/ai/index.js +9 -10
  37. package/dist/ai/index.js.map +1 -1
  38. package/dist/ai/plugins/ContextEditorPanel.d.ts +1 -1
  39. package/dist/ai/plugins/ContextEditorPanel.d.ts.map +1 -1
  40. package/dist/ai/plugins/ContextEditorPanel.js +399 -107
  41. package/dist/ai/plugins/ContextEditorPanel.js.map +1 -1
  42. package/dist/ai/plugins/PromptEditorPanel.d.ts +1 -1
  43. package/dist/ai/plugins/PromptEditorPanel.d.ts.map +1 -1
  44. package/dist/ai/plugins/PromptEditorPanel.js +237 -51
  45. package/dist/ai/plugins/PromptEditorPanel.js.map +1 -1
  46. package/dist/ai/plugins/contextEditorPlugin.js +12 -5
  47. package/dist/ai/plugins/contextEditorPlugin.js.map +1 -1
  48. package/dist/ai/plugins/promptApiRoutes.js +119 -50
  49. package/dist/ai/plugins/promptApiRoutes.js.map +1 -1
  50. package/dist/ai/plugins/promptEditorPlugin.js +12 -5
  51. package/dist/ai/plugins/promptEditorPlugin.js.map +1 -1
  52. package/dist/ai/presets/componentAiDefaults.js +108 -83
  53. package/dist/ai/presets/componentAiDefaults.js.map +1 -1
  54. package/dist/ai/presets/index.js +12 -18
  55. package/dist/ai/presets/index.js.map +1 -1
  56. package/dist/ai/presets/instructions/interactive.js +85 -75
  57. package/dist/ai/presets/instructions/interactive.js.map +1 -1
  58. package/dist/ai/presets/instructions/layout.js +122 -117
  59. package/dist/ai/presets/instructions/layout.js.map +1 -1
  60. package/dist/ai/presets/instructions/media.js +31 -29
  61. package/dist/ai/presets/instructions/media.js.map +1 -1
  62. package/dist/ai/presets/instructions/pagePatterns.js +4 -6
  63. package/dist/ai/presets/instructions/pagePatterns.js.map +1 -1
  64. package/dist/ai/presets/instructions/schemas.js +495 -137
  65. package/dist/ai/presets/instructions/schemas.js.map +1 -1
  66. package/dist/ai/presets/instructions/typography.js +38 -33
  67. package/dist/ai/presets/instructions/typography.js.map +1 -1
  68. package/dist/ai/tools/index.js +92 -55
  69. package/dist/ai/tools/index.js.map +1 -1
  70. package/dist/ai/types.js +7 -1
  71. package/dist/ai/types.js.map +1 -1
  72. package/dist/ai/utils/injectAiConfig.js +33 -40
  73. package/dist/ai/utils/injectAiConfig.js.map +1 -1
  74. package/dist/api/createPuckApiRoutes.d.ts +1 -1
  75. package/dist/api/createPuckApiRoutes.d.ts.map +1 -1
  76. package/dist/api/createPuckApiRoutes.js +123 -65
  77. package/dist/api/createPuckApiRoutes.js.map +1 -1
  78. package/dist/api/createPuckApiRoutesVersions.d.ts +1 -1
  79. package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -1
  80. package/dist/api/createPuckApiRoutesVersions.js +88 -37
  81. package/dist/api/createPuckApiRoutesVersions.js.map +1 -1
  82. package/dist/api/createPuckApiRoutesWithId.d.ts +1 -1
  83. package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -1
  84. package/dist/api/createPuckApiRoutesWithId.js +166 -72
  85. package/dist/api/createPuckApiRoutesWithId.js.map +1 -1
  86. package/dist/api/index.d.ts +5 -5
  87. package/dist/api/index.d.ts.map +1 -1
  88. package/dist/api/index.js +6 -6
  89. package/dist/api/index.js.map +1 -1
  90. package/dist/api/payload-config.d.js +15 -0
  91. package/dist/api/payload-config.d.js.map +1 -0
  92. package/dist/api/types.js +4 -1
  93. package/dist/api/types.js.map +1 -1
  94. package/dist/api/utils/mapRootProps.d.ts +1 -1
  95. package/dist/api/utils/mapRootProps.d.ts.map +1 -1
  96. package/dist/api/utils/mapRootProps.js +77 -44
  97. package/dist/api/utils/mapRootProps.js.map +1 -1
  98. package/dist/collections/Templates.js +24 -20
  99. package/dist/collections/Templates.js.map +1 -1
  100. package/dist/components/AccordionClient.d.ts +2 -2
  101. package/dist/components/AccordionClient.d.ts.map +1 -1
  102. package/dist/components/AccordionClient.js +81 -22
  103. package/dist/components/AccordionClient.js.map +1 -1
  104. package/dist/components/AnimatedWrapper.d.ts +2 -2
  105. package/dist/components/AnimatedWrapper.d.ts.map +1 -1
  106. package/dist/components/AnimatedWrapper.js +31 -16
  107. package/dist/components/AnimatedWrapper.js.map +1 -1
  108. package/dist/components/exports.js +2 -2
  109. package/dist/components/exports.js.map +1 -1
  110. package/dist/components/index.d.ts +5 -5
  111. package/dist/components/index.d.ts.map +1 -1
  112. package/dist/components/index.js +7 -7
  113. package/dist/components/index.js.map +1 -1
  114. package/dist/components/interactive/Accordion.d.ts +1 -1
  115. package/dist/components/interactive/Accordion.d.ts.map +1 -1
  116. package/dist/components/interactive/Accordion.js +149 -55
  117. package/dist/components/interactive/Accordion.js.map +1 -1
  118. package/dist/components/interactive/Accordion.server.d.ts +1 -1
  119. package/dist/components/interactive/Accordion.server.d.ts.map +1 -1
  120. package/dist/components/interactive/Accordion.server.js +25 -7
  121. package/dist/components/interactive/Accordion.server.js.map +1 -1
  122. package/dist/components/interactive/Button.d.ts +3 -3
  123. package/dist/components/interactive/Button.d.ts.map +1 -1
  124. package/dist/components/interactive/Button.js +89 -43
  125. package/dist/components/interactive/Button.js.map +1 -1
  126. package/dist/components/interactive/Button.server.d.ts +2 -2
  127. package/dist/components/interactive/Button.server.d.ts.map +1 -1
  128. package/dist/components/interactive/Button.server.js +40 -20
  129. package/dist/components/interactive/Button.server.js.map +1 -1
  130. package/dist/components/interactive/Card.d.ts +3 -3
  131. package/dist/components/interactive/Card.d.ts.map +1 -1
  132. package/dist/components/interactive/Card.js +131 -39
  133. package/dist/components/interactive/Card.js.map +1 -1
  134. package/dist/components/interactive/Card.server.d.ts +3 -3
  135. package/dist/components/interactive/Card.server.d.ts.map +1 -1
  136. package/dist/components/interactive/Card.server.js +72 -11
  137. package/dist/components/interactive/Card.server.js.map +1 -1
  138. package/dist/components/interactive/Divider.d.ts +1 -1
  139. package/dist/components/interactive/Divider.d.ts.map +1 -1
  140. package/dist/components/interactive/Divider.js +54 -26
  141. package/dist/components/interactive/Divider.js.map +1 -1
  142. package/dist/components/interactive/Divider.server.d.ts +1 -1
  143. package/dist/components/interactive/Divider.server.d.ts.map +1 -1
  144. package/dist/components/interactive/Divider.server.js +28 -12
  145. package/dist/components/interactive/Divider.server.js.map +1 -1
  146. package/dist/components/interactive/index.d.ts +4 -4
  147. package/dist/components/interactive/index.d.ts.map +1 -1
  148. package/dist/components/interactive/index.js +5 -5
  149. package/dist/components/interactive/index.js.map +1 -1
  150. package/dist/components/layout/Container.d.ts +1 -1
  151. package/dist/components/layout/Container.d.ts.map +1 -1
  152. package/dist/components/layout/Container.js +101 -47
  153. package/dist/components/layout/Container.js.map +1 -1
  154. package/dist/components/layout/Container.server.d.ts +1 -1
  155. package/dist/components/layout/Container.server.d.ts.map +1 -1
  156. package/dist/components/layout/Container.server.js +67 -19
  157. package/dist/components/layout/Container.server.js.map +1 -1
  158. package/dist/components/layout/Flex.d.ts +2 -2
  159. package/dist/components/layout/Flex.d.ts.map +1 -1
  160. package/dist/components/layout/Flex.js +124 -55
  161. package/dist/components/layout/Flex.js.map +1 -1
  162. package/dist/components/layout/Flex.server.d.ts +1 -1
  163. package/dist/components/layout/Flex.server.d.ts.map +1 -1
  164. package/dist/components/layout/Flex.server.js +50 -14
  165. package/dist/components/layout/Flex.server.js.map +1 -1
  166. package/dist/components/layout/Grid.d.ts +1 -1
  167. package/dist/components/layout/Grid.d.ts.map +1 -1
  168. package/dist/components/layout/Grid.js +93 -44
  169. package/dist/components/layout/Grid.js.map +1 -1
  170. package/dist/components/layout/Grid.server.d.ts +1 -1
  171. package/dist/components/layout/Grid.server.d.ts.map +1 -1
  172. package/dist/components/layout/Grid.server.js +56 -14
  173. package/dist/components/layout/Grid.server.js.map +1 -1
  174. package/dist/components/layout/Section.d.ts +1 -1
  175. package/dist/components/layout/Section.d.ts.map +1 -1
  176. package/dist/components/layout/Section.js +147 -64
  177. package/dist/components/layout/Section.js.map +1 -1
  178. package/dist/components/layout/Section.server.d.ts +1 -1
  179. package/dist/components/layout/Section.server.d.ts.map +1 -1
  180. package/dist/components/layout/Section.server.js +92 -28
  181. package/dist/components/layout/Section.server.js.map +1 -1
  182. package/dist/components/layout/Spacer.d.ts +1 -1
  183. package/dist/components/layout/Spacer.d.ts.map +1 -1
  184. package/dist/components/layout/Spacer.js +80 -30
  185. package/dist/components/layout/Spacer.js.map +1 -1
  186. package/dist/components/layout/Spacer.server.d.ts +1 -1
  187. package/dist/components/layout/Spacer.server.d.ts.map +1 -1
  188. package/dist/components/layout/Spacer.server.js +31 -9
  189. package/dist/components/layout/Spacer.server.js.map +1 -1
  190. package/dist/components/layout/Template.d.ts +1 -1
  191. package/dist/components/layout/Template.d.ts.map +1 -1
  192. package/dist/components/layout/Template.js +58 -30
  193. package/dist/components/layout/Template.js.map +1 -1
  194. package/dist/components/layout/Template.server.d.ts +1 -1
  195. package/dist/components/layout/Template.server.d.ts.map +1 -1
  196. package/dist/components/layout/Template.server.js +43 -11
  197. package/dist/components/layout/Template.server.js.map +1 -1
  198. package/dist/components/layout/index.d.ts +8 -8
  199. package/dist/components/layout/index.d.ts.map +1 -1
  200. package/dist/components/layout/index.js +8 -8
  201. package/dist/components/layout/index.js.map +1 -1
  202. package/dist/components/media/Image.d.ts +3 -3
  203. package/dist/components/media/Image.d.ts.map +1 -1
  204. package/dist/components/media/Image.js +122 -39
  205. package/dist/components/media/Image.js.map +1 -1
  206. package/dist/components/media/Image.server.d.ts +3 -3
  207. package/dist/components/media/Image.server.d.ts.map +1 -1
  208. package/dist/components/media/Image.server.js +76 -13
  209. package/dist/components/media/Image.server.js.map +1 -1
  210. package/dist/components/media/index.d.ts +1 -1
  211. package/dist/components/media/index.d.ts.map +1 -1
  212. package/dist/components/media/index.js +2 -2
  213. package/dist/components/media/index.js.map +1 -1
  214. package/dist/components/typography/Heading.d.ts +2 -2
  215. package/dist/components/typography/Heading.d.ts.map +1 -1
  216. package/dist/components/typography/Heading.js +45 -25
  217. package/dist/components/typography/Heading.js.map +1 -1
  218. package/dist/components/typography/Heading.server.d.ts +2 -2
  219. package/dist/components/typography/Heading.server.d.ts.map +1 -1
  220. package/dist/components/typography/Heading.server.js +16 -10
  221. package/dist/components/typography/Heading.server.js.map +1 -1
  222. package/dist/components/typography/RichText.editor.d.ts +1 -1
  223. package/dist/components/typography/RichText.editor.d.ts.map +1 -1
  224. package/dist/components/typography/RichText.editor.js +44 -19
  225. package/dist/components/typography/RichText.editor.js.map +1 -1
  226. package/dist/components/typography/RichText.server.d.ts +2 -2
  227. package/dist/components/typography/RichText.server.d.ts.map +1 -1
  228. package/dist/components/typography/RichText.server.js +33 -14
  229. package/dist/components/typography/RichText.server.js.map +1 -1
  230. package/dist/components/typography/Text.d.ts +2 -2
  231. package/dist/components/typography/Text.d.ts.map +1 -1
  232. package/dist/components/typography/Text.js +49 -23
  233. package/dist/components/typography/Text.js.map +1 -1
  234. package/dist/components/typography/Text.server.d.ts +2 -2
  235. package/dist/components/typography/Text.server.d.ts.map +1 -1
  236. package/dist/components/typography/Text.server.js +21 -8
  237. package/dist/components/typography/Text.server.js.map +1 -1
  238. package/dist/components/typography/index.d.ts +4 -4
  239. package/dist/components/typography/index.d.ts.map +1 -1
  240. package/dist/components/typography/index.js +5 -5
  241. package/dist/components/typography/index.js.map +1 -1
  242. package/dist/config/config.editor.d.ts +3 -3
  243. package/dist/config/config.editor.d.ts.map +1 -1
  244. package/dist/config/config.editor.js +119 -54
  245. package/dist/config/config.editor.js.map +1 -1
  246. package/dist/config/index.d.ts +4 -4
  247. package/dist/config/index.d.ts.map +1 -1
  248. package/dist/config/index.js +62 -35
  249. package/dist/config/index.js.map +1 -1
  250. package/dist/config/merge.d.ts +1 -1
  251. package/dist/config/merge.d.ts.map +1 -1
  252. package/dist/config/merge.js +23 -26
  253. package/dist/config/merge.js.map +1 -1
  254. package/dist/config/presets.d.ts +4 -4
  255. package/dist/config/presets.js +195 -75
  256. package/dist/config/presets.js.map +1 -1
  257. package/dist/config/types.js +6 -2
  258. package/dist/config/types.js.map +1 -1
  259. package/dist/editor/PuckEditor.d.ts +4 -4
  260. package/dist/editor/PuckEditor.d.ts.map +1 -1
  261. package/dist/editor/PuckEditor.js +162 -70
  262. package/dist/editor/PuckEditor.js.map +1 -1
  263. package/dist/editor/PuckEditorImpl.client.d.ts +4 -4
  264. package/dist/editor/PuckEditorImpl.client.d.ts.map +1 -1
  265. package/dist/editor/PuckEditorImpl.client.js +304 -152
  266. package/dist/editor/PuckEditorImpl.client.js.map +1 -1
  267. package/dist/editor/components/DarkModeStyles.js +11 -12
  268. package/dist/editor/components/DarkModeStyles.js.map +1 -1
  269. package/dist/editor/components/HeaderActions.js +308 -64
  270. package/dist/editor/components/HeaderActions.js.map +1 -1
  271. package/dist/editor/components/IframeWrapper.d.ts +1 -1
  272. package/dist/editor/components/IframeWrapper.d.ts.map +1 -1
  273. package/dist/editor/components/IframeWrapper.js +82 -58
  274. package/dist/editor/components/IframeWrapper.js.map +1 -1
  275. package/dist/editor/components/LoadingState.d.ts +1 -1
  276. package/dist/editor/components/LoadingState.d.ts.map +1 -1
  277. package/dist/editor/components/LoadingState.js +17 -3
  278. package/dist/editor/components/LoadingState.js.map +1 -1
  279. package/dist/editor/components/PreviewModal.js +234 -78
  280. package/dist/editor/components/PreviewModal.js.map +1 -1
  281. package/dist/editor/components/PreviewModeToggle.js +43 -15
  282. package/dist/editor/components/PreviewModeToggle.js.map +1 -1
  283. package/dist/editor/components/VersionHistory.js +219 -71
  284. package/dist/editor/components/VersionHistory.js.map +1 -1
  285. package/dist/editor/hooks/useDarkMode.js +36 -23
  286. package/dist/editor/hooks/useDarkMode.js.map +1 -1
  287. package/dist/editor/hooks/useUnsavedChanges.js +8 -8
  288. package/dist/editor/hooks/useUnsavedChanges.js.map +1 -1
  289. package/dist/editor/index.js +5 -6
  290. package/dist/editor/index.js.map +1 -1
  291. package/dist/editor/plugins/VersionHistoryPanel.js +236 -75
  292. package/dist/editor/plugins/VersionHistoryPanel.js.map +1 -1
  293. package/dist/editor/plugins/index.js +4 -4
  294. package/dist/editor/plugins/index.js.map +1 -1
  295. package/dist/editor/plugins/versionHistoryPlugin.js +10 -8
  296. package/dist/editor/plugins/versionHistoryPlugin.js.map +1 -1
  297. package/dist/editor/utils/detectPageTree.js +5 -5
  298. package/dist/editor/utils/detectPageTree.js.map +1 -1
  299. package/dist/editor/utils/index.js +1 -0
  300. package/dist/editor/utils/index.js.map +1 -1
  301. package/dist/editor/utils/injectPageTreeFields.js +13 -9
  302. package/dist/editor/utils/injectPageTreeFields.js.map +1 -1
  303. package/dist/endpoints/ai.js +58 -34
  304. package/dist/endpoints/ai.js.map +1 -1
  305. package/dist/endpoints/context.js +86 -40
  306. package/dist/endpoints/context.js.map +1 -1
  307. package/dist/endpoints/index.js +153 -76
  308. package/dist/endpoints/index.js.map +1 -1
  309. package/dist/endpoints/postcss.d.js +5 -0
  310. package/dist/endpoints/postcss.d.js.map +1 -0
  311. package/dist/endpoints/prompts.js +81 -39
  312. package/dist/endpoints/prompts.js.map +1 -1
  313. package/dist/endpoints/styles.js +34 -36
  314. package/dist/endpoints/styles.js.map +1 -1
  315. package/dist/exports/client.js +2 -2
  316. package/dist/exports/client.js.map +1 -1
  317. package/dist/exports/rsc.js +2 -2
  318. package/dist/exports/rsc.js.map +1 -1
  319. package/dist/fields/AlignmentField.d.ts +1 -1
  320. package/dist/fields/AlignmentField.d.ts.map +1 -1
  321. package/dist/fields/AlignmentField.js +93 -30
  322. package/dist/fields/AlignmentField.js.map +1 -1
  323. package/dist/fields/AnimationField.d.ts +2 -2
  324. package/dist/fields/AnimationField.d.ts.map +1 -1
  325. package/dist/fields/AnimationField.js +558 -84
  326. package/dist/fields/AnimationField.js.map +1 -1
  327. package/dist/fields/BackgroundField.d.ts +2 -2
  328. package/dist/fields/BackgroundField.d.ts.map +1 -1
  329. package/dist/fields/BackgroundField.js +754 -120
  330. package/dist/fields/BackgroundField.js.map +1 -1
  331. package/dist/fields/BorderField.d.ts +2 -2
  332. package/dist/fields/BorderField.d.ts.map +1 -1
  333. package/dist/fields/BorderField.js +275 -73
  334. package/dist/fields/BorderField.js.map +1 -1
  335. package/dist/fields/ColorPickerField.d.ts +2 -2
  336. package/dist/fields/ColorPickerField.d.ts.map +1 -1
  337. package/dist/fields/ColorPickerField.js +210 -68
  338. package/dist/fields/ColorPickerField.js.map +1 -1
  339. package/dist/fields/ContentAlignmentField.d.ts +1 -1
  340. package/dist/fields/ContentAlignmentField.d.ts.map +1 -1
  341. package/dist/fields/ContentAlignmentField.js +161 -75
  342. package/dist/fields/ContentAlignmentField.js.map +1 -1
  343. package/dist/fields/DimensionsField.d.ts +2 -2
  344. package/dist/fields/DimensionsField.d.ts.map +1 -1
  345. package/dist/fields/DimensionsField.js +575 -146
  346. package/dist/fields/DimensionsField.js.map +1 -1
  347. package/dist/fields/FlexAlignmentField.d.ts +2 -2
  348. package/dist/fields/FlexAlignmentField.d.ts.map +1 -1
  349. package/dist/fields/FlexAlignmentField.js +189 -51
  350. package/dist/fields/FlexAlignmentField.js.map +1 -1
  351. package/dist/fields/FolderPickerField.d.ts +8 -1
  352. package/dist/fields/FolderPickerField.d.ts.map +1 -1
  353. package/dist/fields/FolderPickerField.js +288 -75
  354. package/dist/fields/FolderPickerField.js.map +1 -1
  355. package/dist/fields/GradientEditor.d.ts +2 -2
  356. package/dist/fields/GradientEditor.d.ts.map +1 -1
  357. package/dist/fields/GradientEditor.js +462 -86
  358. package/dist/fields/GradientEditor.js.map +1 -1
  359. package/dist/fields/LockedField.d.ts +15 -2
  360. package/dist/fields/LockedField.d.ts.map +1 -1
  361. package/dist/fields/LockedField.js +180 -49
  362. package/dist/fields/LockedField.js.map +1 -1
  363. package/dist/fields/MarginField.d.ts +2 -2
  364. package/dist/fields/MarginField.d.ts.map +1 -1
  365. package/dist/fields/MarginField.js +144 -46
  366. package/dist/fields/MarginField.js.map +1 -1
  367. package/dist/fields/MediaField.d.ts +1 -1
  368. package/dist/fields/MediaField.d.ts.map +1 -1
  369. package/dist/fields/MediaField.js +688 -186
  370. package/dist/fields/MediaField.js.map +1 -1
  371. package/dist/fields/PaddingField.d.ts +2 -2
  372. package/dist/fields/PaddingField.d.ts.map +1 -1
  373. package/dist/fields/PaddingField.js +144 -46
  374. package/dist/fields/PaddingField.js.map +1 -1
  375. package/dist/fields/PageSegmentField.d.ts +15 -2
  376. package/dist/fields/PageSegmentField.d.ts.map +1 -1
  377. package/dist/fields/PageSegmentField.js +156 -54
  378. package/dist/fields/PageSegmentField.js.map +1 -1
  379. package/dist/fields/ResetField.d.ts +1 -1
  380. package/dist/fields/ResetField.d.ts.map +1 -1
  381. package/dist/fields/ResetField.js +59 -31
  382. package/dist/fields/ResetField.js.map +1 -1
  383. package/dist/fields/ResponsiveField.d.ts +1 -1
  384. package/dist/fields/ResponsiveField.d.ts.map +1 -1
  385. package/dist/fields/ResponsiveField.js +233 -90
  386. package/dist/fields/ResponsiveField.js.map +1 -1
  387. package/dist/fields/ResponsiveVisibilityField.d.ts +2 -2
  388. package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -1
  389. package/dist/fields/ResponsiveVisibilityField.js +119 -36
  390. package/dist/fields/ResponsiveVisibilityField.js.map +1 -1
  391. package/dist/fields/SizeField.d.ts +3 -3
  392. package/dist/fields/SizeField.d.ts.map +1 -1
  393. package/dist/fields/SizeField.js +226 -52
  394. package/dist/fields/SizeField.js.map +1 -1
  395. package/dist/fields/SlugPreviewField.d.ts +8 -1
  396. package/dist/fields/SlugPreviewField.d.ts.map +1 -1
  397. package/dist/fields/SlugPreviewField.js +65 -16
  398. package/dist/fields/SlugPreviewField.js.map +1 -1
  399. package/dist/fields/TemplateField.d.ts +1 -1
  400. package/dist/fields/TemplateField.d.ts.map +1 -1
  401. package/dist/fields/TemplateField.js +362 -120
  402. package/dist/fields/TemplateField.js.map +1 -1
  403. package/dist/fields/TransformField.d.ts +2 -2
  404. package/dist/fields/TransformField.d.ts.map +1 -1
  405. package/dist/fields/TransformField.js +517 -81
  406. package/dist/fields/TransformField.js.map +1 -1
  407. package/dist/fields/VerticalAlignmentField.d.ts +1 -1
  408. package/dist/fields/VerticalAlignmentField.d.ts.map +1 -1
  409. package/dist/fields/VerticalAlignmentField.js +93 -30
  410. package/dist/fields/VerticalAlignmentField.js.map +1 -1
  411. package/dist/fields/WidthField.d.ts +2 -2
  412. package/dist/fields/WidthField.d.ts.map +1 -1
  413. package/dist/fields/WidthField.js +278 -81
  414. package/dist/fields/WidthField.js.map +1 -1
  415. package/dist/fields/index.d.ts +41 -41
  416. package/dist/fields/index.d.ts.map +1 -1
  417. package/dist/fields/index.js +37 -43
  418. package/dist/fields/index.js.map +1 -1
  419. package/dist/fields/richtext/controls/ColorPickerControl.d.ts +13 -2
  420. package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +1 -1
  421. package/dist/fields/richtext/controls/ColorPickerControl.js +212 -47
  422. package/dist/fields/richtext/controls/ColorPickerControl.js.map +1 -1
  423. package/dist/fields/richtext/controls/DropdownPortal.d.ts +2 -2
  424. package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +1 -1
  425. package/dist/fields/richtext/controls/DropdownPortal.js +36 -4
  426. package/dist/fields/richtext/controls/DropdownPortal.js.map +1 -1
  427. package/dist/fields/richtext/controls/FontSizeControl.d.ts +9 -1
  428. package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +1 -1
  429. package/dist/fields/richtext/controls/FontSizeControl.js +109 -24
  430. package/dist/fields/richtext/controls/FontSizeControl.js.map +1 -1
  431. package/dist/fields/richtext/controls/HighlightControl.d.ts +12 -1
  432. package/dist/fields/richtext/controls/HighlightControl.d.ts.map +1 -1
  433. package/dist/fields/richtext/controls/HighlightControl.js +54 -17
  434. package/dist/fields/richtext/controls/HighlightControl.js.map +1 -1
  435. package/dist/fields/richtext/controls/index.d.ts +5 -5
  436. package/dist/fields/richtext/controls/index.d.ts.map +1 -1
  437. package/dist/fields/richtext/controls/index.js +8 -11
  438. package/dist/fields/richtext/controls/index.js.map +1 -1
  439. package/dist/fields/richtext/controls/shared.js +108 -63
  440. package/dist/fields/richtext/controls/shared.js.map +1 -1
  441. package/dist/fields/richtext/createRichTextField.d.ts +18 -4
  442. package/dist/fields/richtext/createRichTextField.d.ts.map +1 -1
  443. package/dist/fields/richtext/createRichTextField.js +113 -26
  444. package/dist/fields/richtext/createRichTextField.js.map +1 -1
  445. package/dist/fields/richtext/extensions/FontSize.js +26 -20
  446. package/dist/fields/richtext/extensions/FontSize.js.map +1 -1
  447. package/dist/fields/richtext/extensions/index.d.ts +1 -1
  448. package/dist/fields/richtext/extensions/index.d.ts.map +1 -1
  449. package/dist/fields/richtext/extensions/index.js +2 -2
  450. package/dist/fields/richtext/extensions/index.js.map +1 -1
  451. package/dist/fields/richtext/index.d.ts +6 -6
  452. package/dist/fields/richtext/index.d.ts.map +1 -1
  453. package/dist/fields/richtext/index.js +8 -8
  454. package/dist/fields/richtext/index.js.map +1 -1
  455. package/dist/fields/shared.d.ts +1 -1
  456. package/dist/fields/shared.d.ts.map +1 -1
  457. package/dist/fields/shared.js +915 -478
  458. package/dist/fields/shared.js.map +1 -1
  459. package/dist/hooks/index.d.ts +2 -2
  460. package/dist/hooks/index.d.ts.map +1 -1
  461. package/dist/hooks/index.js +3 -3
  462. package/dist/hooks/index.js.map +1 -1
  463. package/dist/hooks/useResponsiveStyles.d.ts +1 -1
  464. package/dist/hooks/useResponsiveStyles.d.ts.map +1 -1
  465. package/dist/hooks/useResponsiveStyles.js +36 -32
  466. package/dist/hooks/useResponsiveStyles.js.map +1 -1
  467. package/dist/hooks/useScrollAnimation.js +26 -24
  468. package/dist/hooks/useScrollAnimation.js.map +1 -1
  469. package/dist/index.d.ts +4 -4
  470. package/dist/index.d.ts.map +1 -1
  471. package/dist/index.js +5 -5
  472. package/dist/index.js.map +1 -1
  473. package/dist/layouts/LayoutWrapper.d.ts +3 -3
  474. package/dist/layouts/LayoutWrapper.d.ts.map +1 -1
  475. package/dist/layouts/LayoutWrapper.js +115 -51
  476. package/dist/layouts/LayoutWrapper.js.map +1 -1
  477. package/dist/layouts/defaults.d.ts +1 -1
  478. package/dist/layouts/defaults.d.ts.map +1 -1
  479. package/dist/layouts/defaults.js +23 -31
  480. package/dist/layouts/defaults.js.map +1 -1
  481. package/dist/layouts/index.d.ts +4 -4
  482. package/dist/layouts/index.d.ts.map +1 -1
  483. package/dist/layouts/index.js +5 -4
  484. package/dist/layouts/index.js.map +1 -1
  485. package/dist/layouts/types.js +4 -2
  486. package/dist/layouts/types.js.map +1 -1
  487. package/dist/layouts/utils.d.ts +1 -1
  488. package/dist/layouts/utils.d.ts.map +1 -1
  489. package/dist/layouts/utils.js +32 -40
  490. package/dist/layouts/utils.js.map +1 -1
  491. package/dist/next/index.js +31 -34
  492. package/dist/next/index.js.map +1 -1
  493. package/dist/plugin/collections/Pages.d.ts +2 -2
  494. package/dist/plugin/collections/Pages.d.ts.map +1 -1
  495. package/dist/plugin/collections/Pages.js +46 -43
  496. package/dist/plugin/collections/Pages.js.map +1 -1
  497. package/dist/plugin/fields/index.d.ts +3 -3
  498. package/dist/plugin/fields/index.d.ts.map +1 -1
  499. package/dist/plugin/fields/index.js +100 -78
  500. package/dist/plugin/fields/index.js.map +1 -1
  501. package/dist/plugin/fields/types.d.ts +1 -1
  502. package/dist/plugin/fields/types.d.ts.map +1 -1
  503. package/dist/plugin/fields/types.js +26 -2
  504. package/dist/plugin/fields/types.js.map +1 -1
  505. package/dist/plugin/hooks/index.d.ts +1 -1
  506. package/dist/plugin/hooks/index.d.ts.map +1 -1
  507. package/dist/plugin/hooks/index.js +2 -2
  508. package/dist/plugin/hooks/index.js.map +1 -1
  509. package/dist/plugin/hooks/isHomepageUnique.js +28 -19
  510. package/dist/plugin/hooks/isHomepageUnique.js.map +1 -1
  511. package/dist/plugin/index.d.ts +8 -8
  512. package/dist/plugin/index.d.ts.map +1 -1
  513. package/dist/plugin/index.js +190 -188
  514. package/dist/plugin/index.js.map +1 -1
  515. package/dist/render/HybridPageRenderer.d.ts +2 -2
  516. package/dist/render/HybridPageRenderer.d.ts.map +1 -1
  517. package/dist/render/HybridPageRenderer.js +58 -10
  518. package/dist/render/HybridPageRenderer.js.map +1 -1
  519. package/dist/render/PageRenderer.d.ts +2 -2
  520. package/dist/render/PageRenderer.d.ts.map +1 -1
  521. package/dist/render/PageRenderer.js +31 -14
  522. package/dist/render/PageRenderer.js.map +1 -1
  523. package/dist/render/PuckEditor.client.d.ts +1 -1
  524. package/dist/render/PuckEditor.client.d.ts.map +1 -1
  525. package/dist/render/PuckEditor.client.js +33 -16
  526. package/dist/render/PuckEditor.client.js.map +1 -1
  527. package/dist/render/index.d.ts +5 -5
  528. package/dist/render/index.d.ts.map +1 -1
  529. package/dist/render/index.js +5 -6
  530. package/dist/render/index.js.map +1 -1
  531. package/dist/styles/puck-dark-mode.css +101 -0
  532. package/dist/theme/context.d.ts +2 -2
  533. package/dist/theme/context.d.ts.map +1 -1
  534. package/dist/theme/context.js +21 -18
  535. package/dist/theme/context.js.map +1 -1
  536. package/dist/theme/defaults.d.ts +1 -1
  537. package/dist/theme/defaults.d.ts.map +1 -1
  538. package/dist/theme/defaults.js +83 -37
  539. package/dist/theme/defaults.js.map +1 -1
  540. package/dist/theme/example.d.ts +1 -1
  541. package/dist/theme/example.d.ts.map +1 -1
  542. package/dist/theme/example.js +68 -30
  543. package/dist/theme/example.js.map +1 -1
  544. package/dist/theme/index.d.ts +5 -5
  545. package/dist/theme/index.d.ts.map +1 -1
  546. package/dist/theme/index.js +6 -5
  547. package/dist/theme/index.js.map +1 -1
  548. package/dist/theme/types.js +6 -2
  549. package/dist/theme/types.js.map +1 -1
  550. package/dist/theme/utils.d.ts +1 -1
  551. package/dist/theme/utils.d.ts.map +1 -1
  552. package/dist/theme/utils.js +24 -25
  553. package/dist/theme/utils.js.map +1 -1
  554. package/dist/types/index.d.ts +6 -6
  555. package/dist/types/index.d.ts.map +1 -1
  556. package/dist/types/index.js +3 -1
  557. package/dist/types/index.js.map +1 -1
  558. package/dist/utils/index.d.ts +2 -2
  559. package/dist/utils/index.d.ts.map +1 -1
  560. package/dist/utils/index.js +13 -22
  561. package/dist/utils/index.js.map +1 -1
  562. package/dist/utils/migration.d.ts +1 -1
  563. package/dist/utils/migration.d.ts.map +1 -1
  564. package/dist/utils/migration.js +43 -49
  565. package/dist/utils/migration.js.map +1 -1
  566. package/dist/utils/validation.d.ts +1 -1
  567. package/dist/utils/validation.d.ts.map +1 -1
  568. package/dist/utils/validation.js +36 -43
  569. package/dist/utils/validation.js.map +1 -1
  570. package/dist/version.d.ts +1 -1
  571. package/dist/version.js +2 -1
  572. package/dist/version.js.map +1 -1
  573. package/dist/views/PuckConfigContext.d.ts +1 -1
  574. package/dist/views/PuckConfigContext.d.ts.map +1 -1
  575. package/dist/views/PuckConfigContext.js +25 -10
  576. package/dist/views/PuckConfigContext.js.map +1 -1
  577. package/dist/views/PuckEditorView.d.ts +1 -1
  578. package/dist/views/PuckEditorView.d.ts.map +1 -1
  579. package/dist/views/PuckEditorView.js +106 -38
  580. package/dist/views/PuckEditorView.js.map +1 -1
  581. package/dist/views/index.js +2 -2
  582. package/dist/views/index.js.map +1 -1
  583. package/package.json +62 -42
@@ -1 +1 @@
1
- {"version":3,"file":"PuckEditorView.js","sourceRoot":"","sources":["../../src/admin/PuckEditorView.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AA+D5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,MAAM,EACN,cAAc,GAAG,OAAO,EACxB,WAAW,GAAG,WAAW,EACzB,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,GAAG,YAAY,EACxB,OAAO,EACP,aAAa,EACb,WAAW,GACS;IACpB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IAEtC,iDAAiD;IACjD,MAAM,MAAM,GAAI,MAAM,EAAE,EAAa,IAAI,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAEtE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAkC,IAAI,CAAC,CAAA;IAEnF,oDAAoD;IACpD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1C,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,UAAU,SAAS;YACtB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,qBAAqB,CAAC,CAAA;gBAC/B,UAAU,CAAC,KAAK,CAAC,CAAA;gBACjB,OAAM;YACR,CAAC;YAED,IAAI,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,CAAA;gBAChB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC,CAAA;gBAE1E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACpD,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,yBAAyB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;gBAC3E,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAA;YACpE,CAAC;oBAAS,CAAC;gBACT,UAAU,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QAED,SAAS,EAAE,CAAA;IACb,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA;IAEzC,MAAM,eAAe,GAAG,OAAO,IAAI,sBAAsB,cAAc,EAAE,CAAA;IAEzE,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,CACL,cAAK,KAAK,EAAE;gBACV,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;gBACxB,eAAe,EAAE,SAAS;gBAC1B,KAAK,EAAE,MAAM;aACd,YACC,eAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aACjC,cAAK,KAAK,EAAE;4BACV,KAAK,EAAE,MAAM;4BACb,MAAM,EAAE,MAAM;4BACd,MAAM,EAAE,gBAAgB;4BACxB,cAAc,EAAE,MAAM;4BACtB,YAAY,EAAE,KAAK;4BACnB,SAAS,EAAE,yBAAyB;4BACpC,MAAM,EAAE,aAAa;yBACtB,GAAI,EACL,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kCAAuB,EAClD,0BAAQ;;;;WAIP,GAAS,IACN,GACF,CACP,CAAA;IACH,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,cAAK,KAAK,EAAE;gBACV,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;gBACxB,eAAe,EAAE,SAAS;gBAC1B,KAAK,EAAE,MAAM;aACd,YACC,eAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aACjC,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,YAAG,KAAK,GAAK,EACjE,aACE,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE;4BACL,KAAK,EAAE,SAAS;4BAChB,cAAc,EAAE,WAAW;yBAC5B,yBAEQ,cAAc,IACrB,IACA,GACF,CACP,CAAA;IACH,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CACL,cAAK,KAAK,EAAE;gBACV,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;gBACxB,eAAe,EAAE,SAAS;gBAC1B,KAAK,EAAE,MAAM;aACd,YACC,eAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aACjC,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,+BAAoB,EACrE,aACE,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE;4BACL,KAAK,EAAE,SAAS;4BAChB,cAAc,EAAE,WAAW;yBAC5B,yBAEQ,cAAc,IACrB,IACA,GACF,CACP,CAAA;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,WAAW,GAAS,IAAI,CAAC,QAAQ,IAAI;QACzC,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,UAAU;aAChC;SACF;QACD,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;KACV,CAAA;IAED,OAAO,CACL,KAAC,UAAU,IACT,MAAM,EAAE,IAAI,CAAC,EAAE,EACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,CAAC,KAAK,EACrB,QAAQ,EAAE,IAAI,CAAC,IAAI,EACnB,WAAW,EAAE,GAAG,WAAW,IAAI,cAAc,EAAE,EAC/C,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,IAAI,CAAC,OAAO,GAC3B,CACH,CAAA;AACH,CAAC;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"sources":["../../src/admin/PuckEditorView.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\nimport { useParams, useSearchParams } from 'next/navigation'\nimport type { Config as PuckConfig, Data, Plugin as PuckPlugin } from '@puckeditor/core'\n\n/**\n * Props for the PuckEditorView component\n */\nexport interface PuckEditorViewProps {\n /**\n * Puck configuration with components and settings\n */\n config: PuckConfig\n /**\n * Collection slug for API endpoints\n * @default 'pages'\n */\n collectionSlug?: string\n /**\n * Base API path for Puck operations\n * @default '/api/puck'\n */\n apiBasePath?: string\n /**\n * URL to navigate to when back button is clicked\n * Falls back to /admin/collections/{collectionSlug}\n */\n backUrl?: string\n /**\n * Preview URL or function to generate preview URL from slug\n */\n previewUrl?: string | ((slug: string) => string)\n /**\n * Layout styles for theme-aware preview\n */\n layoutStyles?: Record<string, { background: string; isDark: boolean }>\n /**\n * Key in root.props to read layout value from\n * @default 'pageLayout'\n */\n layoutKey?: string\n /**\n * Additional Puck plugins to use.\n * The headingAnalyzer plugin is included by default.\n * Set to `false` to disable all default plugins.\n */\n plugins?: PuckPlugin[] | false\n /**\n * Callback on successful save\n */\n onSaveSuccess?: (data: Data) => void\n /**\n * Callback on save error\n */\n onSaveError?: (error: Error) => void\n}\n\ninterface PageData {\n id: string\n title: string\n slug: string\n puckData: Data | null\n _status?: 'draft' | 'published'\n}\n\n/**\n * Ready-to-use Puck editor page component\n *\n * Use this in your own editor page route (e.g., /pages/[id]/edit).\n * It auto-fetches page data from the API and renders the PuckEditor.\n *\n * @example\n * ```tsx\n * // src/app/pages/[id]/edit/page.tsx\n * 'use client'\n *\n * import { PuckEditorView } from '@delmaredigital/payload-puck/editor'\n * import { editorConfig } from '@/puck/config'\n *\n * export default function PageEditor() {\n * return (\n * <PuckEditorView\n * config={editorConfig}\n * collectionSlug=\"pages\"\n * apiBasePath=\"/api/puck\"\n * backUrl=\"/admin/collections/pages\"\n * previewUrl={(slug) => `/${slug}`}\n * />\n * )\n * }\n * ```\n */\nexport function PuckEditorView({\n config,\n collectionSlug = 'pages',\n apiBasePath = '/api/puck',\n backUrl,\n previewUrl,\n layoutStyles,\n layoutKey = 'pageLayout',\n plugins,\n onSaveSuccess,\n onSaveError,\n}: PuckEditorViewProps) {\n const params = useParams()\n const searchParams = useSearchParams()\n\n // Get page ID from route params or search params\n const pageId = (params?.id as string) || searchParams?.get('id') || ''\n\n const [page, setPage] = useState<PageData | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<string | null>(null)\n const [PuckEditor, setPuckEditor] = useState<React.ComponentType<any> | null>(null)\n\n // Dynamically import PuckEditor to avoid SSR issues\n useEffect(() => {\n import('../editor/PuckEditor.js').then((mod) => {\n setPuckEditor(() => mod.PuckEditor)\n })\n }, [])\n\n useEffect(() => {\n async function fetchPage() {\n if (!pageId) {\n setError('No page ID provided')\n setLoading(false)\n return\n }\n\n try {\n setLoading(true)\n const response = await fetch(`${apiBasePath}/${collectionSlug}/${pageId}`)\n\n if (!response.ok) {\n const data = await response.json().catch(() => ({}))\n throw new Error(data.error || `Failed to fetch page: ${response.status}`)\n }\n\n const data = await response.json()\n setPage(data.doc)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'An error occurred')\n } finally {\n setLoading(false)\n }\n }\n\n fetchPage()\n }, [pageId, apiBasePath, collectionSlug])\n\n const computedBackUrl = backUrl || `/admin/collections/${collectionSlug}`\n\n if (loading || !PuckEditor) {\n return (\n <div style={{\n display: 'flex',\n height: '100vh',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#0f0f0f',\n color: '#fff',\n }}>\n <div style={{ textAlign: 'center' }}>\n <div style={{\n width: '32px',\n height: '32px',\n border: '3px solid #333',\n borderTopColor: '#fff',\n borderRadius: '50%',\n animation: 'spin 1s linear infinite',\n margin: '0 auto 16px',\n }} />\n <p style={{ color: '#888' }}>Loading editor...</p>\n <style>{`\n @keyframes spin {\n to { transform: rotate(360deg); }\n }\n `}</style>\n </div>\n </div>\n )\n }\n\n if (error) {\n return (\n <div style={{\n display: 'flex',\n height: '100vh',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#0f0f0f',\n color: '#fff',\n }}>\n <div style={{ textAlign: 'center' }}>\n <p style={{ color: '#f87171', marginBottom: '16px' }}>{error}</p>\n <a\n href={computedBackUrl}\n style={{\n color: '#60a5fa',\n textDecoration: 'underline',\n }}\n >\n Back to {collectionSlug}\n </a>\n </div>\n </div>\n )\n }\n\n if (!page) {\n return (\n <div style={{\n display: 'flex',\n height: '100vh',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#0f0f0f',\n color: '#fff',\n }}>\n <div style={{ textAlign: 'center' }}>\n <p style={{ color: '#888', marginBottom: '16px' }}>Page not found</p>\n <a\n href={computedBackUrl}\n style={{\n color: '#60a5fa',\n textDecoration: 'underline',\n }}\n >\n Back to {collectionSlug}\n </a>\n </div>\n </div>\n )\n }\n\n // Default puck data if none exists\n const initialData: Data = page.puckData || {\n root: {\n props: {\n title: page.title || 'New Page',\n },\n },\n content: [],\n zones: {},\n }\n\n return (\n <PuckEditor\n pageId={page.id}\n initialData={initialData}\n config={config}\n pageTitle={page.title}\n pageSlug={page.slug}\n apiEndpoint={`${apiBasePath}/${collectionSlug}`}\n backUrl={computedBackUrl}\n previewUrl={previewUrl}\n layoutStyles={layoutStyles}\n layoutKey={layoutKey}\n plugins={plugins}\n onSaveSuccess={onSaveSuccess}\n onSaveError={onSaveError}\n initialStatus={page._status}\n />\n )\n}\n\nexport default PuckEditorView\n"],"names":["useEffect","useState","useParams","useSearchParams","PuckEditorView","config","collectionSlug","apiBasePath","backUrl","previewUrl","layoutStyles","layoutKey","plugins","onSaveSuccess","onSaveError","params","searchParams","pageId","id","get","page","setPage","loading","setLoading","error","setError","PuckEditor","setPuckEditor","then","mod","fetchPage","response","fetch","ok","data","json","catch","Error","status","doc","err","message","computedBackUrl","div","style","display","height","alignItems","justifyContent","backgroundColor","color","textAlign","width","border","borderTopColor","borderRadius","animation","margin","p","marginBottom","a","href","textDecoration","initialData","puckData","root","props","title","content","zones","pageTitle","pageSlug","slug","apiEndpoint","initialStatus","_status"],"mappings":"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"}
@@ -7,6 +7,6 @@
7
7
  * NOTE: For PuckEditorView, import from '@delmaredigital/payload-puck/editor' instead.
8
8
  * This separation is necessary to avoid RSC bundling issues with Puck.
9
9
  */
10
- export { EditWithPuckButton, EditWithPuckLink, type EditWithPuckButtonProps, } from './EditWithPuckButton';
11
- export { EditWithPuckCell, type EditWithPuckCellConfig } from './EditWithPuckCell';
10
+ export { EditWithPuckButton, EditWithPuckLink, type EditWithPuckButtonProps, } from './EditWithPuckButton.js';
11
+ export { EditWithPuckCell, type EditWithPuckCellConfig } from './EditWithPuckCell.js';
12
12
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/admin/client.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAGH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/admin/client.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAGH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -7,9 +7,9 @@
7
7
  *
8
8
  * NOTE: For PuckEditorView, import from '@delmaredigital/payload-puck/editor' instead.
9
9
  * This separation is necessary to avoid RSC bundling issues with Puck.
10
- */
11
- // Button components for edit view
12
- export { EditWithPuckButton, EditWithPuckLink, } from './EditWithPuckButton';
10
+ */ // Button components for edit view
11
+ export { EditWithPuckButton, EditWithPuckLink } from './EditWithPuckButton.js';
13
12
  // Cell component for list view
14
- export { EditWithPuckCell } from './EditWithPuckCell';
13
+ export { EditWithPuckCell } from './EditWithPuckCell.js';
14
+
15
15
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/admin/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;;;;GAQG;AAEH,kCAAkC;AAClC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,sBAAsB,CAAA;AAE7B,+BAA+B;AAC/B,OAAO,EAAE,gBAAgB,EAA+B,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"sources":["../../src/admin/client.ts"],"sourcesContent":["'use client'\n\n/**\n * @delmaredigital/payload-puck/admin/client\n *\n * Client-side admin components for Payload CMS integration.\n * These are the Field/Cell components used by the plugin.\n *\n * NOTE: For PuckEditorView, import from '@delmaredigital/payload-puck/editor' instead.\n * This separation is necessary to avoid RSC bundling issues with Puck.\n */\n\n// Button components for edit view\nexport {\n EditWithPuckButton,\n EditWithPuckLink,\n type EditWithPuckButtonProps,\n} from './EditWithPuckButton.js'\n\n// Cell component for list view\nexport { EditWithPuckCell, type EditWithPuckCellConfig } from './EditWithPuckCell.js'\n"],"names":["EditWithPuckButton","EditWithPuckLink","EditWithPuckCell"],"mappings":"AAAA;AAEA;;;;;;;;CAQC,GAED,kCAAkC;AAClC,SACEA,kBAAkB,EAClBC,gBAAgB,QAEX,0BAAyB;AAEhC,+BAA+B;AAC/B,SAASC,gBAAgB,QAAqC,wBAAuB"}
@@ -19,9 +19,8 @@
19
19
  * ],
20
20
  * }
21
21
  * ```
22
- */
23
- export function generatePuckEditField(config = {}) {
24
- const { collectionSlug = 'pages', editorPathPattern = '/pages/{id}/edit', buttonLabel = 'Visual Editor', buttonPosition = 'sidebar', } = config;
22
+ */ export function generatePuckEditField(config = {}) {
23
+ const { collectionSlug = 'pages', editorPathPattern = '/pages/{id}/edit', buttonLabel = 'Visual Editor', buttonPosition = 'sidebar' } = config;
25
24
  return {
26
25
  name: 'puckEdit',
27
26
  type: 'ui',
@@ -29,14 +28,15 @@ export function generatePuckEditField(config = {}) {
29
28
  position: buttonPosition,
30
29
  components: {
31
30
  Field: '@delmaredigital/payload-puck/admin/client#EditWithPuckButton',
32
- Cell: '@delmaredigital/payload-puck/admin/client#EditWithPuckCell',
31
+ Cell: '@delmaredigital/payload-puck/admin/client#EditWithPuckCell'
33
32
  },
34
33
  custom: {
35
34
  collectionSlug,
36
35
  editorPathPattern,
37
- label: buttonLabel,
38
- },
39
- },
36
+ label: buttonLabel
37
+ }
38
+ }
40
39
  };
41
40
  }
41
+
42
42
  //# sourceMappingURL=generateAdminComponents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateAdminComponents.js","sourceRoot":"","sources":["../../src/admin/generateAdminComponents.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAgC,EAAE;IACtE,MAAM,EACJ,cAAc,GAAG,OAAO,EACxB,iBAAiB,GAAG,kBAAkB,EACtC,WAAW,GAAG,eAAe,EAC7B,cAAc,GAAG,SAAS,GAC3B,GAAG,MAAM,CAAA;IAEV,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,QAAQ,EAAE,cAAc;YACxB,UAAU,EAAE;gBACV,KAAK,EAAE,8DAA8D;gBACrE,IAAI,EAAE,4DAA4D;aACnE;YACD,MAAM,EAAE;gBACN,cAAc;gBACd,iBAAiB;gBACjB,KAAK,EAAE,WAAW;aACnB;SACF;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"sources":["../../src/admin/generateAdminComponents.ts"],"sourcesContent":["import type { Field } from 'payload'\n\n/**\n * Configuration for generating the edit button field\n */\nexport interface AdminComponentsConfig {\n /**\n * Collection slug for the pages collection\n * @default 'pages'\n */\n collectionSlug?: string\n /**\n * URL pattern for the Puck editor page\n * Use {id} as placeholder for document ID\n * @default '/pages/{id}/edit'\n */\n editorPathPattern?: string\n /**\n * Button label text\n * @default 'Visual Editor'\n */\n buttonLabel?: string\n /**\n * Position of the edit button in admin\n * @default 'sidebar'\n */\n buttonPosition?: 'sidebar' | 'main'\n}\n\n/**\n * Generates the UI field configuration for the Edit with Puck button\n *\n * Use this if you want to manually add the edit button field to your\n * collection instead of using the plugin's auto-generation.\n *\n * @example\n * ```ts\n * import { generatePuckEditField } from '@delmaredigital/payload-puck/admin'\n *\n * const Pages: CollectionConfig = {\n * slug: 'pages',\n * fields: [\n * // ... other fields\n * generatePuckEditField({\n * editorPathPattern: '/pages/{id}/edit',\n * buttonLabel: 'Visual Editor',\n * }),\n * ],\n * }\n * ```\n */\nexport function generatePuckEditField(config: AdminComponentsConfig = {}): Field {\n const {\n collectionSlug = 'pages',\n editorPathPattern = '/pages/{id}/edit',\n buttonLabel = 'Visual Editor',\n buttonPosition = 'sidebar',\n } = config\n\n return {\n name: 'puckEdit',\n type: 'ui',\n admin: {\n position: buttonPosition,\n components: {\n Field: '@delmaredigital/payload-puck/admin/client#EditWithPuckButton',\n Cell: '@delmaredigital/payload-puck/admin/client#EditWithPuckCell',\n },\n custom: {\n collectionSlug,\n editorPathPattern,\n label: buttonLabel,\n },\n },\n }\n}\n"],"names":["generatePuckEditField","config","collectionSlug","editorPathPattern","buttonLabel","buttonPosition","name","type","admin","position","components","Field","Cell","custom","label"],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,SAASA,sBAAsBC,SAAgC,CAAC,CAAC;IACtE,MAAM,EACJC,iBAAiB,OAAO,EACxBC,oBAAoB,kBAAkB,EACtCC,cAAc,eAAe,EAC7BC,iBAAiB,SAAS,EAC3B,GAAGJ;IAEJ,OAAO;QACLK,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,UAAUJ;YACVK,YAAY;gBACVC,OAAO;gBACPC,MAAM;YACR;YACAC,QAAQ;gBACNX;gBACAC;gBACAW,OAAOV;YACT;QACF;IACF;AACF"}
@@ -13,9 +13,9 @@
13
13
  * import { PuckEditorView } from '@delmaredigital/payload-puck/editor'
14
14
  * ```
15
15
  */
16
- export type { PuckEditorViewProps } from './PuckEditorView';
17
- export type { EditWithPuckButtonProps } from './EditWithPuckButton';
18
- export type { EditWithPuckCellConfig } from './EditWithPuckCell';
19
- export type { AdminComponentsConfig } from './generateAdminComponents';
20
- export { generatePuckEditField } from './generateAdminComponents';
16
+ export type { PuckEditorViewProps } from './PuckEditorView.js';
17
+ export type { EditWithPuckButtonProps } from './EditWithPuckButton.js';
18
+ export type { EditWithPuckCellConfig } from './EditWithPuckCell.js';
19
+ export type { AdminComponentsConfig } from './generateAdminComponents.js';
20
+ export { generatePuckEditField } from './generateAdminComponents.js';
21
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAGtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACtE,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACnE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA"}
@@ -12,7 +12,8 @@
12
12
  * ```ts
13
13
  * import { PuckEditorView } from '@delmaredigital/payload-puck/editor'
14
14
  * ```
15
- */
15
+ */ // Re-export types only (safe for RSC)
16
16
  // Helper for generating edit button field (safe for RSC)
17
- export { generatePuckEditField } from './generateAdminComponents';
17
+ export { generatePuckEditField } from './generateAdminComponents.js';
18
+
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,yDAAyD;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"sources":["../../src/admin/index.ts"],"sourcesContent":["/**\n * @delmaredigital/payload-puck/admin\n *\n * Admin utilities and types for Payload CMS integration.\n *\n * NOTE: For the edit button components, import from '/admin/client':\n * ```ts\n * import { EditWithPuckButton } from '@delmaredigital/payload-puck/admin/client'\n * ```\n *\n * For the PuckEditorView component, import from '/editor':\n * ```ts\n * import { PuckEditorView } from '@delmaredigital/payload-puck/editor'\n * ```\n */\n\n// Re-export types only (safe for RSC)\nexport type { PuckEditorViewProps } from './PuckEditorView.js'\nexport type { EditWithPuckButtonProps } from './EditWithPuckButton.js'\nexport type { EditWithPuckCellConfig } from './EditWithPuckCell.js'\nexport type { AdminComponentsConfig } from './generateAdminComponents.js'\n\n// Helper for generating edit button field (safe for RSC)\nexport { generatePuckEditField } from './generateAdminComponents.js'\n"],"names":["generatePuckEditField"],"mappings":"AAAA;;;;;;;;;;;;;;CAcC,GAED,sCAAsC;AAMtC,yDAAyD;AACzD,SAASA,qBAAqB,QAAQ,+BAA8B"}
@@ -10,26 +10,31 @@
10
10
  * - "Tone of Voice" - How to communicate
11
11
  * - "Product Information" - What you sell/offer
12
12
  * - "Industry Context" - Your market and audience
13
- */
14
- export const AiContextCollection = {
13
+ */ export const AiContextCollection = {
15
14
  slug: 'puck-ai-context',
16
15
  labels: {
17
16
  singular: 'AI Context',
18
- plural: 'AI Contexts',
17
+ plural: 'AI Contexts'
19
18
  },
20
19
  admin: {
21
20
  group: 'Puck',
22
21
  useAsTitle: 'name',
23
- defaultColumns: ['name', 'category', 'enabled', 'order', 'updatedAt'],
24
- hidden: false, // Visible in admin for context management
25
- description: 'Business context for AI page generation. Add entries for brand guidelines, tone of voice, product info, etc.',
22
+ defaultColumns: [
23
+ 'name',
24
+ 'category',
25
+ 'enabled',
26
+ 'order',
27
+ 'updatedAt'
28
+ ],
29
+ hidden: false,
30
+ description: 'Business context for AI page generation. Add entries for brand guidelines, tone of voice, product info, etc.'
26
31
  },
27
32
  access: {
28
33
  // Default: authenticated users can manage context
29
- read: ({ req }) => Boolean(req.user),
30
- create: ({ req }) => Boolean(req.user),
31
- update: ({ req }) => Boolean(req.user),
32
- delete: ({ req }) => Boolean(req.user),
34
+ read: ({ req })=>Boolean(req.user),
35
+ create: ({ req })=>Boolean(req.user),
36
+ update: ({ req })=>Boolean(req.user),
37
+ delete: ({ req })=>Boolean(req.user)
33
38
  },
34
39
  fields: [
35
40
  {
@@ -37,8 +42,8 @@ export const AiContextCollection = {
37
42
  type: 'text',
38
43
  required: true,
39
44
  admin: {
40
- description: 'Name for this context block (e.g., "Brand Guidelines", "Tone of Voice")',
41
- },
45
+ description: 'Name for this context block (e.g., "Brand Guidelines", "Tone of Voice")'
46
+ }
42
47
  },
43
48
  {
44
49
  name: 'content',
@@ -46,42 +51,64 @@ export const AiContextCollection = {
46
51
  required: true,
47
52
  admin: {
48
53
  description: 'The context content in markdown format. Use headers (##) to organize, lists for guidelines, etc.',
49
- rows: 12,
50
- },
54
+ rows: 12
55
+ }
51
56
  },
52
57
  {
53
58
  name: 'category',
54
59
  type: 'select',
55
60
  options: [
56
- { label: 'Brand Guidelines', value: 'brand' },
57
- { label: 'Tone of Voice', value: 'tone' },
58
- { label: 'Product Information', value: 'product' },
59
- { label: 'Industry Context', value: 'industry' },
60
- { label: 'Technical Requirements', value: 'technical' },
61
- { label: 'Page Patterns', value: 'patterns' },
62
- { label: 'Other', value: 'other' },
61
+ {
62
+ label: 'Brand Guidelines',
63
+ value: 'brand'
64
+ },
65
+ {
66
+ label: 'Tone of Voice',
67
+ value: 'tone'
68
+ },
69
+ {
70
+ label: 'Product Information',
71
+ value: 'product'
72
+ },
73
+ {
74
+ label: 'Industry Context',
75
+ value: 'industry'
76
+ },
77
+ {
78
+ label: 'Technical Requirements',
79
+ value: 'technical'
80
+ },
81
+ {
82
+ label: 'Page Patterns',
83
+ value: 'patterns'
84
+ },
85
+ {
86
+ label: 'Other',
87
+ value: 'other'
88
+ }
63
89
  ],
64
90
  admin: {
65
- description: 'Category for organizing context blocks',
66
- },
91
+ description: 'Category for organizing context blocks'
92
+ }
67
93
  },
68
94
  {
69
95
  name: 'enabled',
70
96
  type: 'checkbox',
71
97
  defaultValue: true,
72
98
  admin: {
73
- description: 'Include this context in AI prompts. Uncheck to temporarily disable.',
74
- },
99
+ description: 'Include this context in AI prompts. Uncheck to temporarily disable.'
100
+ }
75
101
  },
76
102
  {
77
103
  name: 'order',
78
104
  type: 'number',
79
105
  defaultValue: 0,
80
106
  admin: {
81
- description: 'Order in the context (lower numbers appear earlier in the prompt)',
82
- },
83
- },
107
+ description: 'Order in the context (lower numbers appear earlier in the prompt)'
108
+ }
109
+ }
84
110
  ],
85
- timestamps: true,
111
+ timestamps: true
86
112
  };
113
+
87
114
  //# sourceMappingURL=AiContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AiContext.js","sourceRoot":"","sources":["../../../src/ai/collections/AiContext.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE;QACN,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,aAAa;KACtB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC;QACrE,MAAM,EAAE,KAAK,EAAE,0CAA0C;QACzD,WAAW,EACT,8GAA8G;KACjH;IACD,MAAM,EAAE;QACN,kDAAkD;QAClD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACpC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;KACvC;IACD,MAAM,EAAE;QACN;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,WAAW,EAAE,yEAAyE;aACvF;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,WAAW,EACT,kGAAkG;gBACpG,IAAI,EAAE,EAAE;aACT;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC7C,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE;gBACzC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE;gBAClD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE;gBAChD,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE;gBACvD,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;gBAC7C,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;aACnC;YACD,KAAK,EAAE;gBACL,WAAW,EAAE,wCAAwC;aACtD;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE;gBACL,WAAW,EAAE,qEAAqE;aACnF;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,CAAC;YACf,KAAK,EAAE;gBACL,WAAW,EAAE,mEAAmE;aACjF;SACF;KACF;IACD,UAAU,EAAE,IAAI;CACjB,CAAA"}
1
+ {"version":3,"sources":["../../../src/ai/collections/AiContext.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\n/**\n * AI Context Collection\n *\n * Stores business context entries for the AI chat interface.\n * These context entries are concatenated and sent to the AI system prompt\n * to help it understand your brand, tone, and requirements.\n *\n * @example Creating context entries in Payload admin:\n * - \"Brand Guidelines\" - Colors, fonts, brand voice\n * - \"Tone of Voice\" - How to communicate\n * - \"Product Information\" - What you sell/offer\n * - \"Industry Context\" - Your market and audience\n */\nexport const AiContextCollection: CollectionConfig = {\n slug: 'puck-ai-context',\n labels: {\n singular: 'AI Context',\n plural: 'AI Contexts',\n },\n admin: {\n group: 'Puck',\n useAsTitle: 'name',\n defaultColumns: ['name', 'category', 'enabled', 'order', 'updatedAt'],\n hidden: false, // Visible in admin for context management\n description:\n 'Business context for AI page generation. Add entries for brand guidelines, tone of voice, product info, etc.',\n },\n access: {\n // Default: authenticated users can manage context\n read: ({ req }) => Boolean(req.user),\n create: ({ req }) => Boolean(req.user),\n update: ({ req }) => Boolean(req.user),\n delete: ({ req }) => Boolean(req.user),\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n admin: {\n description: 'Name for this context block (e.g., \"Brand Guidelines\", \"Tone of Voice\")',\n },\n },\n {\n name: 'content',\n type: 'textarea',\n required: true,\n admin: {\n description:\n 'The context content in markdown format. Use headers (##) to organize, lists for guidelines, etc.',\n rows: 12,\n },\n },\n {\n name: 'category',\n type: 'select',\n options: [\n { label: 'Brand Guidelines', value: 'brand' },\n { label: 'Tone of Voice', value: 'tone' },\n { label: 'Product Information', value: 'product' },\n { label: 'Industry Context', value: 'industry' },\n { label: 'Technical Requirements', value: 'technical' },\n { label: 'Page Patterns', value: 'patterns' },\n { label: 'Other', value: 'other' },\n ],\n admin: {\n description: 'Category for organizing context blocks',\n },\n },\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n admin: {\n description: 'Include this context in AI prompts. Uncheck to temporarily disable.',\n },\n },\n {\n name: 'order',\n type: 'number',\n defaultValue: 0,\n admin: {\n description: 'Order in the context (lower numbers appear earlier in the prompt)',\n },\n },\n ],\n timestamps: true,\n}\n"],"names":["AiContextCollection","slug","labels","singular","plural","admin","group","useAsTitle","defaultColumns","hidden","description","access","read","req","Boolean","user","create","update","delete","fields","name","type","required","rows","options","label","value","defaultValue","timestamps"],"mappings":"AAEA;;;;;;;;;;;;CAYC,GACD,OAAO,MAAMA,sBAAwC;IACnDC,MAAM;IACNC,QAAQ;QACNC,UAAU;QACVC,QAAQ;IACV;IACAC,OAAO;QACLC,OAAO;QACPC,YAAY;QACZC,gBAAgB;YAAC;YAAQ;YAAY;YAAW;YAAS;SAAY;QACrEC,QAAQ;QACRC,aACE;IACJ;IACAC,QAAQ;QACN,kDAAkD;QAClDC,MAAM,CAAC,EAAEC,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACnCC,QAAQ,CAAC,EAAEH,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACrCE,QAAQ,CAAC,EAAEJ,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACrCG,QAAQ,CAAC,EAAEL,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;IACvC;IACAI,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;YACVjB,OAAO;gBACLK,aAAa;YACf;QACF;QACA;YACEU,MAAM;YACNC,MAAM;YACNC,UAAU;YACVjB,OAAO;gBACLK,aACE;gBACFa,MAAM;YACR;QACF;QACA;YACEH,MAAM;YACNC,MAAM;YACNG,SAAS;gBACP;oBAAEC,OAAO;oBAAoBC,OAAO;gBAAQ;gBAC5C;oBAAED,OAAO;oBAAiBC,OAAO;gBAAO;gBACxC;oBAAED,OAAO;oBAAuBC,OAAO;gBAAU;gBACjD;oBAAED,OAAO;oBAAoBC,OAAO;gBAAW;gBAC/C;oBAAED,OAAO;oBAA0BC,OAAO;gBAAY;gBACtD;oBAAED,OAAO;oBAAiBC,OAAO;gBAAW;gBAC5C;oBAAED,OAAO;oBAASC,OAAO;gBAAQ;aAClC;YACDrB,OAAO;gBACLK,aAAa;YACf;QACF;QACA;YACEU,MAAM;YACNC,MAAM;YACNM,cAAc;YACdtB,OAAO;gBACLK,aAAa;YACf;QACF;QACA;YACEU,MAAM;YACNC,MAAM;YACNM,cAAc;YACdtB,OAAO;gBACLK,aAAa;YACf;QACF;KACD;IACDkB,YAAY;AACd,EAAC"}
@@ -4,25 +4,29 @@
4
4
  * Stores example prompts for the AI chat interface.
5
5
  * These prompts are displayed in the Puck editor for users to quickly
6
6
  * start common AI generation tasks.
7
- */
8
- export const AiPromptsCollection = {
7
+ */ export const AiPromptsCollection = {
9
8
  slug: 'puck-ai-prompts',
10
9
  labels: {
11
10
  singular: 'AI Prompt',
12
- plural: 'AI Prompts',
11
+ plural: 'AI Prompts'
13
12
  },
14
13
  admin: {
15
14
  group: 'Puck',
16
15
  useAsTitle: 'label',
17
- defaultColumns: ['label', 'category', 'order', 'updatedAt'],
18
- hidden: false, // Visible in admin for prompt management
16
+ defaultColumns: [
17
+ 'label',
18
+ 'category',
19
+ 'order',
20
+ 'updatedAt'
21
+ ],
22
+ hidden: false
19
23
  },
20
24
  access: {
21
25
  // Default: authenticated users can manage prompts
22
- read: ({ req }) => Boolean(req.user),
23
- create: ({ req }) => Boolean(req.user),
24
- update: ({ req }) => Boolean(req.user),
25
- delete: ({ req }) => Boolean(req.user),
26
+ read: ({ req })=>Boolean(req.user),
27
+ create: ({ req })=>Boolean(req.user),
28
+ update: ({ req })=>Boolean(req.user),
29
+ delete: ({ req })=>Boolean(req.user)
26
30
  },
27
31
  fields: [
28
32
  {
@@ -30,8 +34,8 @@ export const AiPromptsCollection = {
30
34
  type: 'text',
31
35
  required: true,
32
36
  admin: {
33
- description: 'Display label for the prompt (e.g., "Landing page")',
34
- },
37
+ description: 'Display label for the prompt (e.g., "Landing page")'
38
+ }
35
39
  },
36
40
  {
37
41
  name: 'prompt',
@@ -39,25 +43,26 @@ export const AiPromptsCollection = {
39
43
  required: true,
40
44
  admin: {
41
45
  description: 'The actual prompt text sent to the AI',
42
- rows: 4,
43
- },
46
+ rows: 4
47
+ }
44
48
  },
45
49
  {
46
50
  name: 'category',
47
51
  type: 'text',
48
52
  admin: {
49
- description: 'Optional category for grouping prompts (e.g., "Marketing", "Product")',
50
- },
53
+ description: 'Optional category for grouping prompts (e.g., "Marketing", "Product")'
54
+ }
51
55
  },
52
56
  {
53
57
  name: 'order',
54
58
  type: 'number',
55
59
  defaultValue: 0,
56
60
  admin: {
57
- description: 'Display order (lower numbers appear first)',
58
- },
59
- },
61
+ description: 'Display order (lower numbers appear first)'
62
+ }
63
+ }
60
64
  ],
61
- timestamps: true,
65
+ timestamps: true
62
66
  };
67
+
63
68
  //# sourceMappingURL=AiPrompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AiPrompts.js","sourceRoot":"","sources":["../../../src/ai/collections/AiPrompts.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE;QACN,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,YAAY;KACrB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,OAAO;QACnB,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;QAC3D,MAAM,EAAE,KAAK,EAAE,yCAAyC;KACzD;IACD,MAAM,EAAE;QACN,kDAAkD;QAClD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACpC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;KACvC;IACD,MAAM,EAAE;QACN;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,WAAW,EAAE,qDAAqD;aACnE;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,WAAW,EAAE,uCAAuC;gBACpD,IAAI,EAAE,CAAC;aACR;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE;gBACL,WAAW,EAAE,uEAAuE;aACrF;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,CAAC;YACf,KAAK,EAAE;gBACL,WAAW,EAAE,4CAA4C;aAC1D;SACF;KACF;IACD,UAAU,EAAE,IAAI;CACjB,CAAA"}
1
+ {"version":3,"sources":["../../../src/ai/collections/AiPrompts.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\n/**\n * AI Prompts Collection\n *\n * Stores example prompts for the AI chat interface.\n * These prompts are displayed in the Puck editor for users to quickly\n * start common AI generation tasks.\n */\nexport const AiPromptsCollection: CollectionConfig = {\n slug: 'puck-ai-prompts',\n labels: {\n singular: 'AI Prompt',\n plural: 'AI Prompts',\n },\n admin: {\n group: 'Puck',\n useAsTitle: 'label',\n defaultColumns: ['label', 'category', 'order', 'updatedAt'],\n hidden: false, // Visible in admin for prompt management\n },\n access: {\n // Default: authenticated users can manage prompts\n read: ({ req }) => Boolean(req.user),\n create: ({ req }) => Boolean(req.user),\n update: ({ req }) => Boolean(req.user),\n delete: ({ req }) => Boolean(req.user),\n },\n fields: [\n {\n name: 'label',\n type: 'text',\n required: true,\n admin: {\n description: 'Display label for the prompt (e.g., \"Landing page\")',\n },\n },\n {\n name: 'prompt',\n type: 'textarea',\n required: true,\n admin: {\n description: 'The actual prompt text sent to the AI',\n rows: 4,\n },\n },\n {\n name: 'category',\n type: 'text',\n admin: {\n description: 'Optional category for grouping prompts (e.g., \"Marketing\", \"Product\")',\n },\n },\n {\n name: 'order',\n type: 'number',\n defaultValue: 0,\n admin: {\n description: 'Display order (lower numbers appear first)',\n },\n },\n ],\n timestamps: true,\n}\n"],"names":["AiPromptsCollection","slug","labels","singular","plural","admin","group","useAsTitle","defaultColumns","hidden","access","read","req","Boolean","user","create","update","delete","fields","name","type","required","description","rows","defaultValue","timestamps"],"mappings":"AAEA;;;;;;CAMC,GACD,OAAO,MAAMA,sBAAwC;IACnDC,MAAM;IACNC,QAAQ;QACNC,UAAU;QACVC,QAAQ;IACV;IACAC,OAAO;QACLC,OAAO;QACPC,YAAY;QACZC,gBAAgB;YAAC;YAAS;YAAY;YAAS;SAAY;QAC3DC,QAAQ;IACV;IACAC,QAAQ;QACN,kDAAkD;QAClDC,MAAM,CAAC,EAAEC,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACnCC,QAAQ,CAAC,EAAEH,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACrCE,QAAQ,CAAC,EAAEJ,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACrCG,QAAQ,CAAC,EAAEL,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;IACvC;IACAI,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;YACVhB,OAAO;gBACLiB,aAAa;YACf;QACF;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,UAAU;YACVhB,OAAO;gBACLiB,aAAa;gBACbC,MAAM;YACR;QACF;QACA;YACEJ,MAAM;YACNC,MAAM;YACNf,OAAO;gBACLiB,aAAa;YACf;QACF;QACA;YACEH,MAAM;YACNC,MAAM;YACNI,cAAc;YACdnB,OAAO;gBACLiB,aAAa;YACf;QACF;KACD;IACDG,YAAY;AACd,EAAC"}
@@ -34,18 +34,21 @@
34
34
  * },
35
35
  * })
36
36
  * ```
37
- */
38
- export function createPuckAiApiRoutes(config) {
37
+ */ export function createPuckAiApiRoutes(config) {
39
38
  const { auth, ai, onError } = config;
40
39
  return {
41
- POST: async (request) => {
40
+ POST: async (request)=>{
42
41
  try {
43
42
  // 1. Authenticate the request
44
43
  const authResult = await auth.authenticate(request);
45
44
  if (!authResult.authenticated) {
46
- return new Response(JSON.stringify({ error: authResult.error || 'Unauthorized' }), {
45
+ return new Response(JSON.stringify({
46
+ error: authResult.error || 'Unauthorized'
47
+ }), {
47
48
  status: 401,
48
- headers: { 'Content-Type': 'application/json' },
49
+ headers: {
50
+ 'Content-Type': 'application/json'
51
+ }
49
52
  });
50
53
  }
51
54
  // 2. Lazy import @puckeditor/cloud-client to avoid errors if not installed
@@ -55,24 +58,25 @@ export function createPuckAiApiRoutes(config) {
55
58
  const cloudClient = await import('@puckeditor/cloud-client');
56
59
  puckHandler = cloudClient.puckHandler;
57
60
  tool = cloudClient.tool;
58
- }
59
- catch (e) {
61
+ } catch (e) {
60
62
  return new Response(JSON.stringify({
61
- error: 'AI features require @puckeditor/cloud-client. Please install it.',
63
+ error: 'AI features require @puckeditor/cloud-client. Please install it.'
62
64
  }), {
63
65
  status: 500,
64
- headers: { 'Content-Type': 'application/json' },
66
+ headers: {
67
+ 'Content-Type': 'application/json'
68
+ }
65
69
  });
66
70
  }
67
71
  // 3. Convert our tool format to Puck's tool format
68
72
  const puckTools = {};
69
73
  if (ai?.tools) {
70
- for (const [name, toolDef] of Object.entries(ai.tools)) {
74
+ for (const [name, toolDef] of Object.entries(ai.tools)){
71
75
  puckTools[name] = tool({
72
76
  description: toolDef.description,
73
77
  inputSchema: toolDef.inputSchema,
74
78
  execute: toolDef.execute,
75
- name: toolDef.name,
79
+ name: toolDef.name
76
80
  });
77
81
  }
78
82
  }
@@ -82,25 +86,30 @@ export function createPuckAiApiRoutes(config) {
82
86
  host: ai?.host,
83
87
  ai: {
84
88
  context: ai?.context,
85
- tools: Object.keys(puckTools).length > 0 ? puckTools : undefined,
86
- },
89
+ tools: Object.keys(puckTools).length > 0 ? puckTools : undefined
90
+ }
87
91
  });
88
- }
89
- catch (error) {
92
+ } catch (error) {
90
93
  // Call custom error handler if provided
91
94
  if (onError) {
92
- onError(error, { operation: 'ai-chat', request });
95
+ onError(error, {
96
+ operation: 'ai-chat',
97
+ request
98
+ });
93
99
  }
94
100
  console.error('[Puck AI] Error handling request:', error);
95
101
  return new Response(JSON.stringify({
96
102
  error: 'Internal server error',
97
- message: error instanceof Error ? error.message : 'Unknown error',
103
+ message: error instanceof Error ? error.message : 'Unknown error'
98
104
  }), {
99
105
  status: 500,
100
- headers: { 'Content-Type': 'application/json' },
106
+ headers: {
107
+ 'Content-Type': 'application/json'
108
+ }
101
109
  });
102
110
  }
103
- },
111
+ }
104
112
  };
105
113
  }
114
+
106
115
  //# sourceMappingURL=createAiApiRoutes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createAiApiRoutes.js","sourceRoot":"","sources":["../../src/ai/createAiApiRoutes.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA0B;IAC9D,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAEpC,OAAO;QACL,IAAI,EAAE,KAAK,EAAE,OAAoB,EAAqB,EAAE;YACtD,IAAI,CAAC;gBACH,8BAA8B;gBAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;gBAEnD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;oBAC9B,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC,EAC7D;wBACE,MAAM,EAAE,GAAG;wBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;qBAChD,CACF,CAAA;gBACH,CAAC;gBAED,2EAA2E;gBAC3E,IAAI,WAAkE,CAAA;gBACtE,IAAI,IAAoD,CAAA;gBAExD,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAA;oBAC5D,WAAW,GAAG,WAAW,CAAC,WAAW,CAAA;oBACrC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAA;gBACzB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC;wBACb,KAAK,EAAE,kEAAkE;qBAC1E,CAAC,EACF;wBACE,MAAM,EAAE,GAAG;wBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;qBAChD,CACF,CAAA;gBACH,CAAC;gBAED,mDAAmD;gBACnD,MAAM,SAAS,GAA4C,EAAE,CAAA;gBAC7D,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;oBACd,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvD,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;4BACrB,WAAW,EAAE,OAAO,CAAC,WAAW;4BAChC,WAAW,EAAE,OAAO,CAAC,WAAW;4BAChC,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,IAAI,EAAE,OAAO,CAAC,IAAI;yBACnB,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,6CAA6C;gBAC7C,OAAO,WAAW,CAAC,OAAO,EAAE;oBAC1B,MAAM,EAAE,EAAE,EAAE,MAAM;oBAClB,IAAI,EAAE,EAAE,EAAE,IAAI;oBACd,EAAE,EAAE;wBACF,OAAO,EAAE,EAAE,EAAE,OAAO;wBACpB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;qBACjE;iBACF,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wCAAwC;gBACxC,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;gBACnD,CAAC;gBAED,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;gBAEzD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAClE,CAAC,EACF;oBACE,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;iBAChD,CACF,CAAA;YACH,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"sources":["../../src/ai/createAiApiRoutes.ts"],"sourcesContent":["import type { NextRequest } from 'next/server'\nimport type { PuckAiRoutesConfig, PuckAiRouteHandlers } from './types.js'\n\n/**\n * Creates API route handlers for /api/puck/[...all]\n *\n * Wraps @puckeditor/cloud-client's puckHandler with authentication\n * and custom context/tools support.\n *\n * @example\n * ```typescript\n * // app/api/puck/[...all]/route.ts\n * import { createPuckAiApiRoutes } from '@delmaredigital/payload-puck/ai'\n * import config from '@payload-config'\n * import { z } from 'zod'\n *\n * export const POST = createPuckAiApiRoutes({\n * payloadConfig: config,\n * auth: {\n * authenticate: async (request) => {\n * const session = await auth.api.getSession({ headers: request.headers })\n * if (!session?.user) return { authenticated: false }\n * return { authenticated: true, user: session.user }\n * },\n * },\n * ai: {\n * context: 'We are Acme Corp. You build our landing pages.',\n * tools: {\n * getProducts: {\n * description: 'Get a list of products',\n * inputSchema: z.object({}),\n * execute: async () => {\n * return await payload.find({ collection: 'products' })\n * },\n * },\n * },\n * },\n * })\n * ```\n */\nexport function createPuckAiApiRoutes(config: PuckAiRoutesConfig): PuckAiRouteHandlers {\n const { auth, ai, onError } = config\n\n return {\n POST: async (request: NextRequest): Promise<Response> => {\n try {\n // 1. Authenticate the request\n const authResult = await auth.authenticate(request)\n\n if (!authResult.authenticated) {\n return new Response(\n JSON.stringify({ error: authResult.error || 'Unauthorized' }),\n {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n }\n )\n }\n\n // 2. Lazy import @puckeditor/cloud-client to avoid errors if not installed\n let puckHandler: typeof import('@puckeditor/cloud-client').puckHandler\n let tool: typeof import('@puckeditor/cloud-client').tool\n\n try {\n const cloudClient = await import('@puckeditor/cloud-client')\n puckHandler = cloudClient.puckHandler\n tool = cloudClient.tool\n } catch (e) {\n return new Response(\n JSON.stringify({\n error: 'AI features require @puckeditor/cloud-client. Please install it.',\n }),\n {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n }\n )\n }\n\n // 3. Convert our tool format to Puck's tool format\n const puckTools: Record<string, ReturnType<typeof tool>> = {}\n if (ai?.tools) {\n for (const [name, toolDef] of Object.entries(ai.tools)) {\n puckTools[name] = tool({\n description: toolDef.description,\n inputSchema: toolDef.inputSchema,\n execute: toolDef.execute,\n name: toolDef.name,\n })\n }\n }\n\n // 4. Call puckHandler with our configuration\n return puckHandler(request, {\n apiKey: ai?.apiKey,\n host: ai?.host,\n ai: {\n context: ai?.context,\n tools: Object.keys(puckTools).length > 0 ? puckTools : undefined,\n },\n })\n } catch (error) {\n // Call custom error handler if provided\n if (onError) {\n onError(error, { operation: 'ai-chat', request })\n }\n\n console.error('[Puck AI] Error handling request:', error)\n\n return new Response(\n JSON.stringify({\n error: 'Internal server error',\n message: error instanceof Error ? error.message : 'Unknown error',\n }),\n {\n status: 500,\n headers: { 'Content-Type': 'application/json' },\n }\n )\n }\n },\n }\n}\n"],"names":["createPuckAiApiRoutes","config","auth","ai","onError","POST","request","authResult","authenticate","authenticated","Response","JSON","stringify","error","status","headers","puckHandler","tool","cloudClient","e","puckTools","tools","name","toolDef","Object","entries","description","inputSchema","execute","apiKey","host","context","keys","length","undefined","operation","console","message","Error"],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCC,GACD,OAAO,SAASA,sBAAsBC,MAA0B;IAC9D,MAAM,EAAEC,IAAI,EAAEC,EAAE,EAAEC,OAAO,EAAE,GAAGH;IAE9B,OAAO;QACLI,MAAM,OAAOC;YACX,IAAI;gBACF,8BAA8B;gBAC9B,MAAMC,aAAa,MAAML,KAAKM,YAAY,CAACF;gBAE3C,IAAI,CAACC,WAAWE,aAAa,EAAE;oBAC7B,OAAO,IAAIC,SACTC,KAAKC,SAAS,CAAC;wBAAEC,OAAON,WAAWM,KAAK,IAAI;oBAAe,IAC3D;wBACEC,QAAQ;wBACRC,SAAS;4BAAE,gBAAgB;wBAAmB;oBAChD;gBAEJ;gBAEA,2EAA2E;gBAC3E,IAAIC;gBACJ,IAAIC;gBAEJ,IAAI;oBACF,MAAMC,cAAc,MAAM,MAAM,CAAC;oBACjCF,cAAcE,YAAYF,WAAW;oBACrCC,OAAOC,YAAYD,IAAI;gBACzB,EAAE,OAAOE,GAAG;oBACV,OAAO,IAAIT,SACTC,KAAKC,SAAS,CAAC;wBACbC,OAAO;oBACT,IACA;wBACEC,QAAQ;wBACRC,SAAS;4BAAE,gBAAgB;wBAAmB;oBAChD;gBAEJ;gBAEA,mDAAmD;gBACnD,MAAMK,YAAqD,CAAC;gBAC5D,IAAIjB,IAAIkB,OAAO;oBACb,KAAK,MAAM,CAACC,MAAMC,QAAQ,IAAIC,OAAOC,OAAO,CAACtB,GAAGkB,KAAK,EAAG;wBACtDD,SAAS,CAACE,KAAK,GAAGL,KAAK;4BACrBS,aAAaH,QAAQG,WAAW;4BAChCC,aAAaJ,QAAQI,WAAW;4BAChCC,SAASL,QAAQK,OAAO;4BACxBN,MAAMC,QAAQD,IAAI;wBACpB;oBACF;gBACF;gBAEA,6CAA6C;gBAC7C,OAAON,YAAYV,SAAS;oBAC1BuB,QAAQ1B,IAAI0B;oBACZC,MAAM3B,IAAI2B;oBACV3B,IAAI;wBACF4B,SAAS5B,IAAI4B;wBACbV,OAAOG,OAAOQ,IAAI,CAACZ,WAAWa,MAAM,GAAG,IAAIb,YAAYc;oBACzD;gBACF;YACF,EAAE,OAAOrB,OAAO;gBACd,wCAAwC;gBACxC,IAAIT,SAAS;oBACXA,QAAQS,OAAO;wBAAEsB,WAAW;wBAAW7B;oBAAQ;gBACjD;gBAEA8B,QAAQvB,KAAK,CAAC,qCAAqCA;gBAEnD,OAAO,IAAIH,SACTC,KAAKC,SAAS,CAAC;oBACbC,OAAO;oBACPwB,SAASxB,iBAAiByB,QAAQzB,MAAMwB,OAAO,GAAG;gBACpD,IACA;oBACEvB,QAAQ;oBACRC,SAAS;wBAAE,gBAAgB;oBAAmB;gBAChD;YAEJ;QACF;IACF;AACF"}
@@ -59,10 +59,9 @@
59
59
  * data: { puckData: updatedData },
60
60
  * })
61
61
  * ```
62
- */
63
- export function createAiGenerate(config) {
62
+ */ export function createAiGenerate(config) {
64
63
  const { ai } = config;
65
- return async (options) => {
64
+ return async (options)=>{
66
65
  const { prompt, puckConfig, pageData } = options;
67
66
  // Lazy import @puckeditor/cloud-client
68
67
  let generate;
@@ -71,19 +70,18 @@ export function createAiGenerate(config) {
71
70
  const cloudClient = await import('@puckeditor/cloud-client');
72
71
  generate = cloudClient.generate;
73
72
  tool = cloudClient.tool;
74
- }
75
- catch (e) {
73
+ } catch (e) {
76
74
  throw new Error('AI generation requires @puckeditor/cloud-client. Please install it with: pnpm add @puckeditor/cloud-client');
77
75
  }
78
76
  // Convert our tool format to Puck's tool format
79
77
  const puckTools = {};
80
78
  if (ai?.tools) {
81
- for (const [name, toolDef] of Object.entries(ai.tools)) {
79
+ for (const [name, toolDef] of Object.entries(ai.tools)){
82
80
  puckTools[name] = tool({
83
81
  description: toolDef.description,
84
82
  inputSchema: toolDef.inputSchema,
85
83
  execute: toolDef.execute,
86
- name: toolDef.name,
84
+ name: toolDef.name
87
85
  });
88
86
  }
89
87
  }
@@ -95,7 +93,7 @@ export function createAiGenerate(config) {
95
93
  apiKey: ai?.apiKey,
96
94
  host: ai?.host,
97
95
  pageData,
98
- tools: Object.keys(puckTools).length > 0 ? puckTools : undefined,
96
+ tools: Object.keys(puckTools).length > 0 ? puckTools : undefined
99
97
  });
100
98
  if (!result) {
101
99
  throw new Error('AI generation failed: no result returned');
@@ -103,4 +101,5 @@ export function createAiGenerate(config) {
103
101
  return result;
104
102
  };
105
103
  }
104
+
106
105
  //# sourceMappingURL=createAiGenerate.js.map