@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":"createAiGenerate.js","sourceRoot":"","sources":["../../src/ai/createAiGenerate.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAA;IAErB,OAAO,KAAK,EAAE,OAA0B,EAAqB,EAAE;QAC7D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAEhD,uCAAuC;QACvC,IAAI,QAA4D,CAAA;QAChE,IAAI,IAAoD,CAAA;QAExD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAA;YAC5D,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;YAC/B,IAAI,GAAG,WAAW,CAAC,IAAI,CAAA;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAA;QACH,CAAC;QAED,gDAAgD;QAChD,MAAM,SAAS,GAA4C,EAAE,CAAA;QAC7D,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACrB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;YAC5B,MAAM;YACN,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,EAAE,EAAE,OAAO;YACpB,MAAM,EAAE,EAAE,EAAE,MAAM;YAClB,IAAI,EAAE,EAAE,EAAE,IAAI;YACd,QAAQ;YACR,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;QAED,OAAO,MAAkB,CAAA;IAC3B,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"sources":["../../src/ai/createAiGenerate.ts"],"sourcesContent":["import type { Data as PuckData } from '@puckeditor/core'\nimport type { AiGenerateConfig, AiGenerateOptions, AiGenerateFunction } from './types.js'\n\n/**\n * Creates a headless AI page generation function\n *\n * Use this to generate Puck pages programmatically without the editor UI.\n * Useful for batch generation, automated workflows, or API-driven page creation.\n *\n * @example Basic generation\n * ```typescript\n * import { createAiGenerate } from '@delmaredigital/payload-puck/ai'\n * import { editorConfig } from '@delmaredigital/payload-puck/config/editor'\n * import config from '@payload-config'\n *\n * const generatePage = createAiGenerate({\n * payloadConfig: config,\n * auth: {\n * authenticate: async (req) => {\n * // Authenticate the request\n * return { authenticated: true, user: { id: 'system' } }\n * },\n * },\n * ai: {\n * context: 'We are Acme Corp. You build our marketing pages.',\n * },\n * })\n *\n * // Generate a new page\n * const pageData = await generatePage({\n * prompt: 'Create a landing page for our new product launch',\n * puckConfig: editorConfig,\n * })\n *\n * // Save to Payload\n * await payload.create({\n * collection: 'pages',\n * data: {\n * title: 'New Product Launch',\n * slug: 'new-product',\n * puckData: pageData,\n * },\n * })\n * ```\n *\n * @example Updating an existing page\n * ```typescript\n * // Fetch existing page\n * const page = await payload.findByID({ collection: 'pages', id: 'abc123' })\n *\n * // Update with AI\n * const updatedData = await generatePage({\n * prompt: 'Add a testimonials section after the hero',\n * puckConfig: editorConfig,\n * pageData: page.puckData, // Pass existing data\n * })\n *\n * // Save the update\n * await payload.update({\n * collection: 'pages',\n * id: 'abc123',\n * data: { puckData: updatedData },\n * })\n * ```\n */\nexport function createAiGenerate(config: AiGenerateConfig): AiGenerateFunction {\n const { ai } = config\n\n return async (options: AiGenerateOptions): Promise<PuckData> => {\n const { prompt, puckConfig, pageData } = options\n\n // Lazy import @puckeditor/cloud-client\n let generate: typeof import('@puckeditor/cloud-client').generate\n let tool: typeof import('@puckeditor/cloud-client').tool\n\n try {\n const cloudClient = await import('@puckeditor/cloud-client')\n generate = cloudClient.generate\n tool = cloudClient.tool\n } catch (e) {\n throw new Error(\n 'AI generation requires @puckeditor/cloud-client. Please install it with: pnpm add @puckeditor/cloud-client'\n )\n }\n\n // 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 // Call the generate API\n const result = await generate({\n prompt,\n config: puckConfig,\n context: ai?.context,\n apiKey: ai?.apiKey,\n host: ai?.host,\n pageData,\n tools: Object.keys(puckTools).length > 0 ? puckTools : undefined,\n })\n\n if (!result) {\n throw new Error('AI generation failed: no result returned')\n }\n\n return result as PuckData\n }\n}\n"],"names":["createAiGenerate","config","ai","options","prompt","puckConfig","pageData","generate","tool","cloudClient","e","Error","puckTools","tools","name","toolDef","Object","entries","description","inputSchema","execute","result","context","apiKey","host","keys","length","undefined"],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DC,GACD,OAAO,SAASA,iBAAiBC,MAAwB;IACvD,MAAM,EAAEC,EAAE,EAAE,GAAGD;IAEf,OAAO,OAAOE;QACZ,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGH;QAEzC,uCAAuC;QACvC,IAAII;QACJ,IAAIC;QAEJ,IAAI;YACF,MAAMC,cAAc,MAAM,MAAM,CAAC;YACjCF,WAAWE,YAAYF,QAAQ;YAC/BC,OAAOC,YAAYD,IAAI;QACzB,EAAE,OAAOE,GAAG;YACV,MAAM,IAAIC,MACR;QAEJ;QAEA,gDAAgD;QAChD,MAAMC,YAAqD,CAAC;QAC5D,IAAIV,IAAIW,OAAO;YACb,KAAK,MAAM,CAACC,MAAMC,QAAQ,IAAIC,OAAOC,OAAO,CAACf,GAAGW,KAAK,EAAG;gBACtDD,SAAS,CAACE,KAAK,GAAGN,KAAK;oBACrBU,aAAaH,QAAQG,WAAW;oBAChCC,aAAaJ,QAAQI,WAAW;oBAChCC,SAASL,QAAQK,OAAO;oBACxBN,MAAMC,QAAQD,IAAI;gBACpB;YACF;QACF;QAEA,wBAAwB;QACxB,MAAMO,SAAS,MAAMd,SAAS;YAC5BH;YACAH,QAAQI;YACRiB,SAASpB,IAAIoB;YACbC,QAAQrB,IAAIqB;YACZC,MAAMtB,IAAIsB;YACVlB;YACAO,OAAOG,OAAOS,IAAI,CAACb,WAAWc,MAAM,GAAG,IAAId,YAAYe;QACzD;QAEA,IAAI,CAACN,QAAQ;YACX,MAAM,IAAIV,MAAM;QAClB;QAEA,OAAOU;IACT;AACF"}
@@ -33,8 +33,7 @@
33
33
  *
34
34
  * <PuckEditor plugins={[aiPlugin]} />
35
35
  * ```
36
- */
37
- export function createAiPlugin(options = {}) {
36
+ */ export function createAiPlugin(options = {}) {
38
37
  const { host = '/api/puck', examplePrompts, onSubmit } = options;
39
38
  // Dynamic import to avoid build errors if plugin-ai not installed
40
39
  // Also allows for tree-shaking when AI is not used
@@ -45,17 +44,16 @@ export function createAiPlugin(options = {}) {
45
44
  host,
46
45
  chat: {
47
46
  examplePrompts,
48
- onSubmit,
49
- },
47
+ onSubmit
48
+ }
50
49
  });
51
- }
52
- catch (e) {
50
+ } catch (e) {
53
51
  // Return a placeholder plugin if @puckeditor/plugin-ai is not installed
54
- console.warn('[payload-puck] AI plugin requested but @puckeditor/plugin-ai not installed. ' +
55
- 'Install it with: pnpm add @puckeditor/plugin-ai');
52
+ console.warn('[payload-puck] AI plugin requested but @puckeditor/plugin-ai not installed. ' + 'Install it with: pnpm add @puckeditor/plugin-ai');
56
53
  return {
57
- name: 'ai-placeholder',
54
+ name: 'ai-placeholder'
58
55
  };
59
56
  }
60
57
  }
58
+
61
59
  //# sourceMappingURL=createAiPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createAiPlugin.js","sourceRoot":"","sources":["../../src/ai/createAiPlugin.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAKZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,cAAc,CAAC,UAA2B,EAAE;IAC1D,MAAM,EAAE,IAAI,GAAG,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAEhE,kEAAkE;IAClE,mDAAmD;IACnD,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;QAE/E,OAAO,kBAAkB,CAAC;YACxB,IAAI;YACJ,IAAI,EAAE;gBACJ,cAAc;gBACd,QAAQ;aACT;SACF,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,wEAAwE;QACxE,OAAO,CAAC,IAAI,CACV,8EAA8E;YAC5E,iDAAiD,CACpD,CAAA;QAED,OAAO;YACL,IAAI,EAAE,gBAAgB;SACvB,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"sources":["../../src/ai/createAiPlugin.ts"],"sourcesContent":["'use client'\n\nimport type { Plugin as PuckPlugin } from '@puckeditor/core'\nimport type { AiPluginOptions } from './types.js'\n\n/**\n * Creates a Puck AI plugin for the editor\n *\n * Wraps @puckeditor/plugin-ai with sensible defaults for payload-puck.\n * This factory allows for runtime-configurable prompts (from database, API, etc.).\n *\n * @example Basic usage\n * ```tsx\n * import { createAiPlugin } from '@delmaredigital/payload-puck/ai'\n *\n * const aiPlugin = createAiPlugin({\n * host: '/api/puck',\n * examplePrompts: [\n * { label: 'Landing page', prompt: 'Create a landing page about our product' },\n * ],\n * })\n *\n * <PuckEditor plugins={[aiPlugin]} />\n * ```\n *\n * @example With runtime prompts from database\n * ```tsx\n * // Fetch prompts from Payload\n * const prompts = await payload.find({ collection: 'puck-ai-prompts' })\n *\n * const aiPlugin = createAiPlugin({\n * examplePrompts: prompts.docs.map(p => ({\n * label: p.label,\n * prompt: p.prompt,\n * })),\n * })\n *\n * <PuckEditor plugins={[aiPlugin]} />\n * ```\n */\nexport function createAiPlugin(options: AiPluginOptions = {}): PuckPlugin {\n const { host = '/api/puck', examplePrompts, onSubmit } = options\n\n // Dynamic import to avoid build errors if plugin-ai not installed\n // Also allows for tree-shaking when AI is not used\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { createAiPlugin: createPuckAiPlugin } = require('@puckeditor/plugin-ai')\n\n return createPuckAiPlugin({\n host,\n chat: {\n examplePrompts,\n onSubmit,\n },\n })\n } catch (e) {\n // Return a placeholder plugin if @puckeditor/plugin-ai is not installed\n console.warn(\n '[payload-puck] AI plugin requested but @puckeditor/plugin-ai not installed. ' +\n 'Install it with: pnpm add @puckeditor/plugin-ai'\n )\n\n return {\n name: 'ai-placeholder',\n }\n }\n}\n"],"names":["createAiPlugin","options","host","examplePrompts","onSubmit","createPuckAiPlugin","require","chat","e","console","warn","name"],"mappings":"AAAA;AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCC,GACD,OAAO,SAASA,eAAeC,UAA2B,CAAC,CAAC;IAC1D,MAAM,EAAEC,OAAO,WAAW,EAAEC,cAAc,EAAEC,QAAQ,EAAE,GAAGH;IAEzD,kEAAkE;IAClE,mDAAmD;IACnD,IAAI;QACF,iEAAiE;QACjE,MAAM,EAAED,gBAAgBK,kBAAkB,EAAE,GAAGC,QAAQ;QAEvD,OAAOD,mBAAmB;YACxBH;YACAK,MAAM;gBACJJ;gBACAC;YACF;QACF;IACF,EAAE,OAAOI,GAAG;QACV,wEAAwE;QACxEC,QAAQC,IAAI,CACV,iFACE;QAGJ,OAAO;YACLC,MAAM;QACR;IACF;AACF"}
@@ -1,12 +1,10 @@
1
1
  'use client';
2
2
  import { useState, useEffect, useCallback } from 'react';
3
- /** Event name for context updates */
4
- export const AI_CONTEXT_UPDATED_EVENT = 'puck:ai-context-updated';
3
+ /** Event name for context updates */ export const AI_CONTEXT_UPDATED_EVENT = 'puck:ai-context-updated';
5
4
  /**
6
5
  * Dispatches an event to notify that AI context has been updated
7
6
  * Call this after creating, editing, or deleting a context entry
8
- */
9
- export function dispatchContextUpdated() {
7
+ */ export function dispatchContextUpdated() {
10
8
  if (typeof window !== 'undefined') {
11
9
  window.dispatchEvent(new CustomEvent(AI_CONTEXT_UPDATED_EVENT));
12
10
  }
@@ -30,13 +28,12 @@ export function dispatchContextUpdated() {
30
28
  * // Delete an entry
31
29
  * await remove(context[0].id)
32
30
  * ```
33
- */
34
- export function useAiContext(options = {}) {
35
- const { apiEndpoint = '/api/puck/ai-context', enabled = true, includeDisabled = false, } = options;
31
+ */ export function useAiContext(options = {}) {
32
+ const { apiEndpoint = '/api/puck/ai-context', enabled = true, includeDisabled = false } = options;
36
33
  const [context, setContext] = useState([]);
37
34
  const [loading, setLoading] = useState(true);
38
35
  const [error, setError] = useState(null);
39
- const fetchContext = useCallback(async () => {
36
+ const fetchContext = useCallback(async ()=>{
40
37
  if (!enabled) {
41
38
  setLoading(false);
42
39
  return;
@@ -51,22 +48,26 @@ export function useAiContext(options = {}) {
51
48
  }
52
49
  const data = await response.json();
53
50
  setContext(data.docs || []);
54
- }
55
- catch (err) {
51
+ } catch (err) {
56
52
  setError(err instanceof Error ? err.message : 'Failed to load context');
57
53
  setContext([]);
58
- }
59
- finally {
54
+ } finally{
60
55
  setLoading(false);
61
56
  }
62
- }, [apiEndpoint, enabled, includeDisabled]);
57
+ }, [
58
+ apiEndpoint,
59
+ enabled,
60
+ includeDisabled
61
+ ]);
63
62
  // Create a new context entry
64
- const create = useCallback(async (data) => {
63
+ const create = useCallback(async (data)=>{
65
64
  try {
66
65
  const response = await fetch(apiEndpoint, {
67
66
  method: 'POST',
68
- headers: { 'Content-Type': 'application/json' },
69
- body: JSON.stringify(data),
67
+ headers: {
68
+ 'Content-Type': 'application/json'
69
+ },
70
+ body: JSON.stringify(data)
70
71
  });
71
72
  if (!response.ok) {
72
73
  throw new Error('Failed to create context entry');
@@ -74,19 +75,22 @@ export function useAiContext(options = {}) {
74
75
  const newEntry = await response.json();
75
76
  dispatchContextUpdated();
76
77
  return newEntry;
77
- }
78
- catch (err) {
78
+ } catch (err) {
79
79
  setError(err instanceof Error ? err.message : 'Failed to create context entry');
80
80
  return null;
81
81
  }
82
- }, [apiEndpoint]);
82
+ }, [
83
+ apiEndpoint
84
+ ]);
83
85
  // Update an existing context entry
84
- const update = useCallback(async (id, data) => {
86
+ const update = useCallback(async (id, data)=>{
85
87
  try {
86
88
  const response = await fetch(`${apiEndpoint}/${id}`, {
87
89
  method: 'PATCH',
88
- headers: { 'Content-Type': 'application/json' },
89
- body: JSON.stringify(data),
90
+ headers: {
91
+ 'Content-Type': 'application/json'
92
+ },
93
+ body: JSON.stringify(data)
90
94
  });
91
95
  if (!response.ok) {
92
96
  throw new Error('Failed to update context entry');
@@ -94,45 +98,51 @@ export function useAiContext(options = {}) {
94
98
  const updatedEntry = await response.json();
95
99
  dispatchContextUpdated();
96
100
  return updatedEntry;
97
- }
98
- catch (err) {
101
+ } catch (err) {
99
102
  setError(err instanceof Error ? err.message : 'Failed to update context entry');
100
103
  return null;
101
104
  }
102
- }, [apiEndpoint]);
105
+ }, [
106
+ apiEndpoint
107
+ ]);
103
108
  // Delete a context entry
104
- const remove = useCallback(async (id) => {
109
+ const remove = useCallback(async (id)=>{
105
110
  try {
106
111
  const response = await fetch(`${apiEndpoint}/${id}`, {
107
- method: 'DELETE',
112
+ method: 'DELETE'
108
113
  });
109
114
  if (!response.ok) {
110
115
  throw new Error('Failed to delete context entry');
111
116
  }
112
117
  dispatchContextUpdated();
113
118
  return true;
114
- }
115
- catch (err) {
119
+ } catch (err) {
116
120
  setError(err instanceof Error ? err.message : 'Failed to delete context entry');
117
121
  return false;
118
122
  }
119
- }, [apiEndpoint]);
123
+ }, [
124
+ apiEndpoint
125
+ ]);
120
126
  // Initial fetch
121
- useEffect(() => {
127
+ useEffect(()=>{
122
128
  fetchContext();
123
- }, [fetchContext]);
129
+ }, [
130
+ fetchContext
131
+ ]);
124
132
  // Listen for context updates
125
- useEffect(() => {
126
- if (!enabled)
127
- return;
128
- const handleUpdate = () => {
133
+ useEffect(()=>{
134
+ if (!enabled) return;
135
+ const handleUpdate = ()=>{
129
136
  fetchContext();
130
137
  };
131
138
  window.addEventListener(AI_CONTEXT_UPDATED_EVENT, handleUpdate);
132
- return () => {
139
+ return ()=>{
133
140
  window.removeEventListener(AI_CONTEXT_UPDATED_EVENT, handleUpdate);
134
141
  };
135
- }, [enabled, fetchContext]);
142
+ }, [
143
+ enabled,
144
+ fetchContext
145
+ ]);
136
146
  return {
137
147
  context,
138
148
  loading,
@@ -140,7 +150,8 @@ export function useAiContext(options = {}) {
140
150
  refetch: fetchContext,
141
151
  create,
142
152
  update,
143
- remove,
153
+ remove
144
154
  };
145
155
  }
156
+
146
157
  //# sourceMappingURL=useAiContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAiContext.js","sourceRoot":"","sources":["../../../src/ai/hooks/useAiContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/ai/hooks/useAiContext.ts"],"sourcesContent":["'use client'\n\nimport { useState, useEffect, useCallback } from 'react'\nimport type { AiContext } from '../types.js'\n\n/** Event name for context updates */\nexport const AI_CONTEXT_UPDATED_EVENT = 'puck:ai-context-updated'\n\n/**\n * Dispatches an event to notify that AI context has been updated\n * Call this after creating, editing, or deleting a context entry\n */\nexport function dispatchContextUpdated(): void {\n if (typeof window !== 'undefined') {\n window.dispatchEvent(new CustomEvent(AI_CONTEXT_UPDATED_EVENT))\n }\n}\n\nexport interface UseAiContextOptions {\n /**\n * API endpoint to fetch context from\n * @default '/api/puck/ai-context'\n */\n apiEndpoint?: string\n /**\n * Whether to enable fetching\n * @default true\n */\n enabled?: boolean\n /**\n * Whether to include disabled entries\n * @default false\n */\n includeDisabled?: boolean\n}\n\nexport interface UseAiContextReturn {\n /** Array of context entries */\n context: AiContext[]\n /** Loading state */\n loading: boolean\n /** Error message if any */\n error: string | null\n /** Refetch context entries */\n refetch: () => Promise<void>\n /** Create a new context entry */\n create: (data: Omit<AiContext, 'id' | 'createdAt' | 'updatedAt'>) => Promise<AiContext | null>\n /** Update an existing context entry */\n update: (id: string, data: Partial<AiContext>) => Promise<AiContext | null>\n /** Delete a context entry */\n remove: (id: string) => Promise<boolean>\n}\n\n/**\n * Hook to fetch and manage AI context entries client-side\n *\n * When context is updated via the context editor panel, this hook will\n * automatically refetch to stay in sync.\n *\n * @example\n * ```tsx\n * const { context, loading, create, update, remove } = useAiContext()\n *\n * // Create a new context entry\n * await create({ name: 'Brand Guidelines', content: '...', enabled: true })\n *\n * // Update an entry\n * await update(context[0].id, { content: 'Updated content' })\n *\n * // Delete an entry\n * await remove(context[0].id)\n * ```\n */\nexport function useAiContext(options: UseAiContextOptions = {}): UseAiContextReturn {\n const {\n apiEndpoint = '/api/puck/ai-context',\n enabled = true,\n includeDisabled = false,\n } = options\n\n const [context, setContext] = useState<AiContext[]>([])\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<string | null>(null)\n\n const fetchContext = useCallback(async () => {\n if (!enabled) {\n setLoading(false)\n return\n }\n\n try {\n setLoading(true)\n setError(null)\n\n const url = includeDisabled ? `${apiEndpoint}?all=true` : apiEndpoint\n const response = await fetch(url)\n\n if (!response.ok) {\n throw new Error('Failed to fetch context')\n }\n\n const data = await response.json()\n setContext(data.docs || [])\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load context')\n setContext([])\n } finally {\n setLoading(false)\n }\n }, [apiEndpoint, enabled, includeDisabled])\n\n // Create a new context entry\n const create = useCallback(\n async (\n data: Omit<AiContext, 'id' | 'createdAt' | 'updatedAt'>\n ): Promise<AiContext | null> => {\n try {\n const response = await fetch(apiEndpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data),\n })\n\n if (!response.ok) {\n throw new Error('Failed to create context entry')\n }\n\n const newEntry = await response.json()\n dispatchContextUpdated()\n return newEntry\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to create context entry')\n return null\n }\n },\n [apiEndpoint]\n )\n\n // Update an existing context entry\n const update = useCallback(\n async (id: string, data: Partial<AiContext>): Promise<AiContext | null> => {\n try {\n const response = await fetch(`${apiEndpoint}/${id}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(data),\n })\n\n if (!response.ok) {\n throw new Error('Failed to update context entry')\n }\n\n const updatedEntry = await response.json()\n dispatchContextUpdated()\n return updatedEntry\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to update context entry')\n return null\n }\n },\n [apiEndpoint]\n )\n\n // Delete a context entry\n const remove = useCallback(\n async (id: string): Promise<boolean> => {\n try {\n const response = await fetch(`${apiEndpoint}/${id}`, {\n method: 'DELETE',\n })\n\n if (!response.ok) {\n throw new Error('Failed to delete context entry')\n }\n\n dispatchContextUpdated()\n return true\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to delete context entry')\n return false\n }\n },\n [apiEndpoint]\n )\n\n // Initial fetch\n useEffect(() => {\n fetchContext()\n }, [fetchContext])\n\n // Listen for context updates\n useEffect(() => {\n if (!enabled) return\n\n const handleUpdate = () => {\n fetchContext()\n }\n\n window.addEventListener(AI_CONTEXT_UPDATED_EVENT, handleUpdate)\n return () => {\n window.removeEventListener(AI_CONTEXT_UPDATED_EVENT, handleUpdate)\n }\n }, [enabled, fetchContext])\n\n return {\n context,\n loading,\n error,\n refetch: fetchContext,\n create,\n update,\n remove,\n }\n}\n"],"names":["useState","useEffect","useCallback","AI_CONTEXT_UPDATED_EVENT","dispatchContextUpdated","window","dispatchEvent","CustomEvent","useAiContext","options","apiEndpoint","enabled","includeDisabled","context","setContext","loading","setLoading","error","setError","fetchContext","url","response","fetch","ok","Error","data","json","docs","err","message","create","method","headers","body","JSON","stringify","newEntry","update","id","updatedEntry","remove","handleUpdate","addEventListener","removeEventListener","refetch"],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  'use client';
2
2
  import { useState, useEffect, useCallback } from 'react';
3
- /** Event name for prompt updates */
4
- export const AI_PROMPTS_UPDATED_EVENT = 'puck:ai-prompts-updated';
3
+ /** Event name for prompt updates */ export const AI_PROMPTS_UPDATED_EVENT = 'puck:ai-prompts-updated';
5
4
  /**
6
5
  * Dispatches an event to notify that AI prompts have been updated
7
6
  * Call this after creating, editing, or deleting a prompt
8
- */
9
- export function dispatchPromptsUpdated() {
7
+ */ export function dispatchPromptsUpdated() {
10
8
  if (typeof window !== 'undefined') {
11
9
  window.dispatchEvent(new CustomEvent(AI_PROMPTS_UPDATED_EVENT));
12
10
  }
@@ -20,12 +18,11 @@ export function dispatchPromptsUpdated() {
20
18
  * @param apiEndpoint - API endpoint to fetch prompts from
21
19
  * @param enabled - Whether to enable fetching (default: true)
22
20
  * @returns Object with prompts array and loading state
23
- */
24
- export function useAiPrompts(apiEndpoint = '/api/puck/ai-prompts', enabled = true) {
21
+ */ export function useAiPrompts(apiEndpoint = '/api/puck/ai-prompts', enabled = true) {
25
22
  const [prompts, setPrompts] = useState([]);
26
23
  const [loading, setLoading] = useState(true);
27
24
  const [error, setError] = useState(null);
28
- const fetchPrompts = useCallback(async () => {
25
+ const fetchPrompts = useCallback(async ()=>{
29
26
  if (!enabled) {
30
27
  setLoading(false);
31
28
  return;
@@ -39,36 +36,47 @@ export function useAiPrompts(apiEndpoint = '/api/puck/ai-prompts', enabled = tru
39
36
  }
40
37
  const data = await response.json();
41
38
  // Transform API response to AiExamplePrompt format
42
- const fetchedPrompts = (data.docs || []).map((doc) => ({
43
- label: doc.label,
44
- prompt: doc.prompt,
45
- }));
39
+ const fetchedPrompts = (data.docs || []).map((doc)=>({
40
+ label: doc.label,
41
+ prompt: doc.prompt
42
+ }));
46
43
  setPrompts(fetchedPrompts);
47
- }
48
- catch (err) {
44
+ } catch (err) {
49
45
  setError(err instanceof Error ? err.message : 'Failed to load prompts');
50
46
  setPrompts([]);
51
- }
52
- finally {
47
+ } finally{
53
48
  setLoading(false);
54
49
  }
55
- }, [apiEndpoint, enabled]);
50
+ }, [
51
+ apiEndpoint,
52
+ enabled
53
+ ]);
56
54
  // Initial fetch
57
- useEffect(() => {
55
+ useEffect(()=>{
58
56
  fetchPrompts();
59
- }, [fetchPrompts]);
57
+ }, [
58
+ fetchPrompts
59
+ ]);
60
60
  // Listen for prompt updates
61
- useEffect(() => {
62
- if (!enabled)
63
- return;
64
- const handleUpdate = () => {
61
+ useEffect(()=>{
62
+ if (!enabled) return;
63
+ const handleUpdate = ()=>{
65
64
  fetchPrompts();
66
65
  };
67
66
  window.addEventListener(AI_PROMPTS_UPDATED_EVENT, handleUpdate);
68
- return () => {
67
+ return ()=>{
69
68
  window.removeEventListener(AI_PROMPTS_UPDATED_EVENT, handleUpdate);
70
69
  };
71
- }, [enabled, fetchPrompts]);
72
- return { prompts, loading, error, refetch: fetchPrompts };
70
+ }, [
71
+ enabled,
72
+ fetchPrompts
73
+ ]);
74
+ return {
75
+ prompts,
76
+ loading,
77
+ error,
78
+ refetch: fetchPrompts
79
+ };
73
80
  }
81
+
74
82
  //# sourceMappingURL=useAiPrompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAiPrompts.js","sourceRoot":"","sources":["../../../src/ai/hooks/useAiPrompts.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAGxD,oCAAoC;AACpC,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,CAAA;AAEjE;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAA;IACjE,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAC1B,cAAsB,sBAAsB,EAC5C,UAAmB,IAAI;IAOvB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAA;IAC7D,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;IAEvD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,UAAU,CAAC,KAAK,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAA;YAChB,QAAQ,CAAC,IAAI,CAAC,CAAA;YAEd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAA;YAEzC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAC5C,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAClC,mDAAmD;YACnD,MAAM,cAAc,GAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAC7D,CAAC,GAAsC,EAAE,EAAE,CAAC,CAAC;gBAC3C,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC,CACH,CAAA;YACD,UAAU,CAAC,cAAc,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAA;YACvE,UAAU,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;IAE1B,gBAAgB;IAChB,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,EAAE,CAAA;IAChB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,YAAY,EAAE,CAAA;QAChB,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAA;QAC/D,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAA;QACpE,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAE3B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;AAC3D,CAAC"}
1
+ {"version":3,"sources":["../../../src/ai/hooks/useAiPrompts.ts"],"sourcesContent":["'use client'\n\nimport { useState, useEffect, useCallback } from 'react'\nimport type { AiExamplePrompt } from '../types.js'\n\n/** Event name for prompt updates */\nexport const AI_PROMPTS_UPDATED_EVENT = 'puck:ai-prompts-updated'\n\n/**\n * Dispatches an event to notify that AI prompts have been updated\n * Call this after creating, editing, or deleting a prompt\n */\nexport function dispatchPromptsUpdated(): void {\n if (typeof window !== 'undefined') {\n window.dispatchEvent(new CustomEvent(AI_PROMPTS_UPDATED_EVENT))\n }\n}\n\n/**\n * Hook to fetch AI prompts client-side with auto-refresh support\n *\n * When prompts are updated via the prompt editor panel, this hook will\n * automatically refetch to stay in sync.\n *\n * @param apiEndpoint - API endpoint to fetch prompts from\n * @param enabled - Whether to enable fetching (default: true)\n * @returns Object with prompts array and loading state\n */\nexport function useAiPrompts(\n apiEndpoint: string = '/api/puck/ai-prompts',\n enabled: boolean = true\n): {\n prompts: AiExamplePrompt[]\n loading: boolean\n error: string | null\n refetch: () => Promise<void>\n} {\n const [prompts, setPrompts] = useState<AiExamplePrompt[]>([])\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<string | null>(null)\n\n const fetchPrompts = useCallback(async () => {\n if (!enabled) {\n setLoading(false)\n return\n }\n\n try {\n setLoading(true)\n setError(null)\n\n const response = await fetch(apiEndpoint)\n\n if (!response.ok) {\n throw new Error('Failed to fetch prompts')\n }\n\n const data = await response.json()\n // Transform API response to AiExamplePrompt format\n const fetchedPrompts: AiExamplePrompt[] = (data.docs || []).map(\n (doc: { label: string; prompt: string }) => ({\n label: doc.label,\n prompt: doc.prompt,\n })\n )\n setPrompts(fetchedPrompts)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load prompts')\n setPrompts([])\n } finally {\n setLoading(false)\n }\n }, [apiEndpoint, enabled])\n\n // Initial fetch\n useEffect(() => {\n fetchPrompts()\n }, [fetchPrompts])\n\n // Listen for prompt updates\n useEffect(() => {\n if (!enabled) return\n\n const handleUpdate = () => {\n fetchPrompts()\n }\n\n window.addEventListener(AI_PROMPTS_UPDATED_EVENT, handleUpdate)\n return () => {\n window.removeEventListener(AI_PROMPTS_UPDATED_EVENT, handleUpdate)\n }\n }, [enabled, fetchPrompts])\n\n return { prompts, loading, error, refetch: fetchPrompts }\n}\n"],"names":["useState","useEffect","useCallback","AI_PROMPTS_UPDATED_EVENT","dispatchPromptsUpdated","window","dispatchEvent","CustomEvent","useAiPrompts","apiEndpoint","enabled","prompts","setPrompts","loading","setLoading","error","setError","fetchPrompts","response","fetch","ok","Error","data","json","fetchedPrompts","docs","map","doc","label","prompt","err","message","handleUpdate","addEventListener","removeEventListener","refetch"],"mappings":"AAAA;AAEA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,WAAW,QAAQ,QAAO;AAGxD,kCAAkC,GAClC,OAAO,MAAMC,2BAA2B,0BAAyB;AAEjE;;;CAGC,GACD,OAAO,SAASC;IACd,IAAI,OAAOC,WAAW,aAAa;QACjCA,OAAOC,aAAa,CAAC,IAAIC,YAAYJ;IACvC;AACF;AAEA;;;;;;;;;CASC,GACD,OAAO,SAASK,aACdC,cAAsB,sBAAsB,EAC5CC,UAAmB,IAAI;IAOvB,MAAM,CAACC,SAASC,WAAW,GAAGZ,SAA4B,EAAE;IAC5D,MAAM,CAACa,SAASC,WAAW,GAAGd,SAAS;IACvC,MAAM,CAACe,OAAOC,SAAS,GAAGhB,SAAwB;IAElD,MAAMiB,eAAef,YAAY;QAC/B,IAAI,CAACQ,SAAS;YACZI,WAAW;YACX;QACF;QAEA,IAAI;YACFA,WAAW;YACXE,SAAS;YAET,MAAME,WAAW,MAAMC,MAAMV;YAE7B,IAAI,CAACS,SAASE,EAAE,EAAE;gBAChB,MAAM,IAAIC,MAAM;YAClB;YAEA,MAAMC,OAAO,MAAMJ,SAASK,IAAI;YAChC,mDAAmD;YACnD,MAAMC,iBAAoC,AAACF,CAAAA,KAAKG,IAAI,IAAI,EAAE,AAAD,EAAGC,GAAG,CAC7D,CAACC,MAA4C,CAAA;oBAC3CC,OAAOD,IAAIC,KAAK;oBAChBC,QAAQF,IAAIE,MAAM;gBACpB,CAAA;YAEFjB,WAAWY;QACb,EAAE,OAAOM,KAAK;YACZd,SAASc,eAAeT,QAAQS,IAAIC,OAAO,GAAG;YAC9CnB,WAAW,EAAE;QACf,SAAU;YACRE,WAAW;QACb;IACF,GAAG;QAACL;QAAaC;KAAQ;IAEzB,gBAAgB;IAChBT,UAAU;QACRgB;IACF,GAAG;QAACA;KAAa;IAEjB,4BAA4B;IAC5BhB,UAAU;QACR,IAAI,CAACS,SAAS;QAEd,MAAMsB,eAAe;YACnBf;QACF;QAEAZ,OAAO4B,gBAAgB,CAAC9B,0BAA0B6B;QAClD,OAAO;YACL3B,OAAO6B,mBAAmB,CAAC/B,0BAA0B6B;QACvD;IACF,GAAG;QAACtB;QAASO;KAAa;IAE1B,OAAO;QAAEN;QAASE;QAASE;QAAOoB,SAASlB;IAAa;AAC1D"}
package/dist/ai/index.js CHANGED
@@ -32,13 +32,12 @@
32
32
  * ```
33
33
  *
34
34
  * @packageDocumentation
35
- */
36
- // =============================================================================
35
+ */ // =============================================================================
37
36
  // Server-side exports (API route factories)
38
37
  // =============================================================================
39
38
  export { createPuckAiApiRoutes } from './createAiApiRoutes.js';
40
39
  export { createAiGenerate } from './createAiGenerate.js';
41
- export { createPromptApiRoutes, createPromptApiRoutesWithId, } from './plugins/promptApiRoutes.js';
40
+ export { createPromptApiRoutes, createPromptApiRoutesWithId } from './plugins/promptApiRoutes.js';
42
41
  // =============================================================================
43
42
  // Client-side exports (plugins)
44
43
  // =============================================================================
@@ -50,20 +49,20 @@ export { ContextEditorPanel } from './plugins/ContextEditorPanel.js';
50
49
  // =============================================================================
51
50
  // Client-side exports (hooks)
52
51
  // =============================================================================
53
- export { useAiPrompts, dispatchPromptsUpdated, AI_PROMPTS_UPDATED_EVENT, } from './hooks/useAiPrompts.js';
54
- export { useAiContext, dispatchContextUpdated, AI_CONTEXT_UPDATED_EVENT, } from './hooks/useAiContext.js';
52
+ export { useAiPrompts, dispatchPromptsUpdated, AI_PROMPTS_UPDATED_EVENT } from './hooks/useAiPrompts.js';
53
+ export { useAiContext, dispatchContextUpdated, AI_CONTEXT_UPDATED_EVENT } from './hooks/useAiContext.js';
55
54
  // =============================================================================
56
55
  // AI Tools
57
56
  // =============================================================================
58
- export { createPayloadTools, createTool, } from './tools/index.js';
57
+ export { createPayloadTools, createTool } from './tools/index.js';
59
58
  // =============================================================================
60
59
  // Configuration utilities
61
60
  // =============================================================================
62
61
  export { injectAiConfig, hasAiConfig } from './utils/injectAiConfig.js';
63
62
  // Legacy exports for backward compatibility
64
- export { defaultComponentAiConfig, minimalComponentAiConfig, } from './presets/componentAiDefaults.js';
63
+ export { defaultComponentAiConfig, minimalComponentAiConfig } from './presets/componentAiDefaults.js';
65
64
  // New comprehensive AI config exports
66
- export { comprehensiveComponentAiConfig, pagePatternSystemContext, pagePatternContext, componentFieldReference, allComponents, componentNames,
67
- // Individual instruction modules for advanced usage
68
- typographyInstructions, layoutInstructions, interactiveInstructions, mediaInstructions, } from './presets/index.js';
65
+ export { comprehensiveComponentAiConfig, pagePatternSystemContext, pagePatternContext, componentFieldReference, allComponents, componentNames, // Individual instruction modules for advanced usage
66
+ typographyInstructions, layoutInstructions, interactiveInstructions, mediaInstructions } from './presets/index.js';
67
+
69
68
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAE5B,MAAM,8BAA8B,CAAA;AAErC,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,GAGzB,MAAM,yBAAyB,CAAA;AAEhC,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,OAAO,EACL,kBAAkB,EAClB,UAAU,GAEX,MAAM,kBAAkB,CAAA;AAEzB,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvE,4CAA4C;AAC5C,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,kCAAkC,CAAA;AAEzC,sCAAsC;AACtC,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,cAAc;AACd,oDAAoD;AACpD,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"sources":["../../src/ai/index.ts"],"sourcesContent":["/**\n * @delmaredigital/payload-puck/ai\n *\n * AI integration for the Puck visual editor.\n *\n * This module provides:\n * - Server-side API route handlers for Puck AI chat\n * - Headless page generation for programmatic workflows\n * - Client-side AI plugin factory\n * - Prompt editor plugin for managing prompts in the editor\n * - Utilities for adding AI metadata to component configs\n *\n * @example Quick Start\n * ```typescript\n * // 1. Create API route for AI chat\n * // app/api/puck/[...all]/route.ts\n * import { createPuckAiApiRoutes } from '@delmaredigital/payload-puck/ai'\n *\n * export const POST = createPuckAiApiRoutes({\n * payloadConfig: config,\n * auth: { authenticate: async (req) => ... },\n * ai: { context: 'We are Acme Corp...' },\n * })\n *\n * // 2. Enable AI in the editor\n * <PuckEditor enableAi={true} />\n *\n * // Or use the factory for custom prompts\n * import { createAiPlugin } from '@delmaredigital/payload-puck/ai'\n * const aiPlugin = createAiPlugin({ examplePrompts: [...] })\n * <PuckEditor plugins={[aiPlugin]} />\n * ```\n *\n * @packageDocumentation\n */\n\n// =============================================================================\n// Server-side exports (API route factories)\n// =============================================================================\n\nexport { createPuckAiApiRoutes } from './createAiApiRoutes.js'\nexport { createAiGenerate } from './createAiGenerate.js'\nexport {\n createPromptApiRoutes,\n createPromptApiRoutesWithId,\n type PromptApiRoutesConfig,\n} from './plugins/promptApiRoutes.js'\n\n// =============================================================================\n// Client-side exports (plugins)\n// =============================================================================\n\nexport { createAiPlugin } from './createAiPlugin.js'\nexport { createPromptEditorPlugin } from './plugins/promptEditorPlugin.js'\nexport { PromptEditorPanel } from './plugins/PromptEditorPanel.js'\nexport { createContextEditorPlugin } from './plugins/contextEditorPlugin.js'\nexport { ContextEditorPanel } from './plugins/ContextEditorPanel.js'\n\n// =============================================================================\n// Client-side exports (hooks)\n// =============================================================================\n\nexport {\n useAiPrompts,\n dispatchPromptsUpdated,\n AI_PROMPTS_UPDATED_EVENT,\n} from './hooks/useAiPrompts.js'\n\nexport {\n useAiContext,\n dispatchContextUpdated,\n AI_CONTEXT_UPDATED_EVENT,\n type UseAiContextOptions,\n type UseAiContextReturn,\n} from './hooks/useAiContext.js'\n\n// =============================================================================\n// AI Tools\n// =============================================================================\n\nexport {\n createPayloadTools,\n createTool,\n type PayloadToolsConfig,\n} from './tools/index.js'\n\n// =============================================================================\n// Configuration utilities\n// =============================================================================\n\nexport { injectAiConfig, hasAiConfig } from './utils/injectAiConfig.js'\n\n// Legacy exports for backward compatibility\nexport {\n defaultComponentAiConfig,\n minimalComponentAiConfig,\n} from './presets/componentAiDefaults.js'\n\n// New comprehensive AI config exports\nexport {\n comprehensiveComponentAiConfig,\n pagePatternSystemContext,\n pagePatternContext,\n componentFieldReference,\n allComponents,\n componentNames,\n // Individual instruction modules for advanced usage\n typographyInstructions,\n layoutInstructions,\n interactiveInstructions,\n mediaInstructions,\n} from './presets/index.js'\n\n// =============================================================================\n// Type exports\n// =============================================================================\n\nexport type {\n // Tool types\n AiTool,\n AiToolContext,\n // Configuration types\n AiOptions,\n AiFieldConfig,\n AiComponentConfig,\n // API route types\n PuckAiRoutesConfig,\n PuckAiRouteHandlers,\n // Generation types\n AiGenerateConfig,\n AiGenerateOptions,\n AiGenerateFunction,\n // Plugin types\n AiPluginOptions,\n AiExamplePrompt,\n PromptEditorPluginOptions,\n // Config injection types\n ComponentAiOverrides,\n // Prompt types\n AiPrompt,\n // Context types\n AiContext,\n ContextEditorPluginOptions,\n // Plugin system types\n PuckPluginAiConfig,\n} from './types.js'\n"],"names":["createPuckAiApiRoutes","createAiGenerate","createPromptApiRoutes","createPromptApiRoutesWithId","createAiPlugin","createPromptEditorPlugin","PromptEditorPanel","createContextEditorPlugin","ContextEditorPanel","useAiPrompts","dispatchPromptsUpdated","AI_PROMPTS_UPDATED_EVENT","useAiContext","dispatchContextUpdated","AI_CONTEXT_UPDATED_EVENT","createPayloadTools","createTool","injectAiConfig","hasAiConfig","defaultComponentAiConfig","minimalComponentAiConfig","comprehensiveComponentAiConfig","pagePatternSystemContext","pagePatternContext","componentFieldReference","allComponents","componentNames","typographyInstructions","layoutInstructions","interactiveInstructions","mediaInstructions"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCC,GAED,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,SAASA,qBAAqB,QAAQ,yBAAwB;AAC9D,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SACEC,qBAAqB,EACrBC,2BAA2B,QAEtB,+BAA8B;AAErC,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAEhF,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,wBAAwB,QAAQ,kCAAiC;AAC1E,SAASC,iBAAiB,QAAQ,iCAAgC;AAClE,SAASC,yBAAyB,QAAQ,mCAAkC;AAC5E,SAASC,kBAAkB,QAAQ,kCAAiC;AAEpE,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,SACEC,YAAY,EACZC,sBAAsB,EACtBC,wBAAwB,QACnB,0BAAyB;AAEhC,SACEC,YAAY,EACZC,sBAAsB,EACtBC,wBAAwB,QAGnB,0BAAyB;AAEhC,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,SACEC,kBAAkB,EAClBC,UAAU,QAEL,mBAAkB;AAEzB,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,SAASC,cAAc,EAAEC,WAAW,QAAQ,4BAA2B;AAEvE,4CAA4C;AAC5C,SACEC,wBAAwB,EACxBC,wBAAwB,QACnB,mCAAkC;AAEzC,sCAAsC;AACtC,SACEC,8BAA8B,EAC9BC,wBAAwB,EACxBC,kBAAkB,EAClBC,uBAAuB,EACvBC,aAAa,EACbC,cAAc,EACd,oDAAoD;AACpDC,sBAAsB,EACtBC,kBAAkB,EAClBC,uBAAuB,EACvBC,iBAAiB,QACZ,qBAAoB"}
@@ -4,6 +4,6 @@ interface ContextEditorPanelProps extends ContextEditorPluginOptions {
4
4
  /**
5
5
  * Panel component for managing AI context in the Puck editor sidebar
6
6
  */
7
- export declare function ContextEditorPanel({ apiEndpoint, canEdit, canCreate, canDelete, }: ContextEditorPanelProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function ContextEditorPanel({ apiEndpoint, canEdit, canCreate, canDelete, }: ContextEditorPanelProps): import("react").JSX.Element;
8
8
  export {};
9
9
  //# sourceMappingURL=ContextEditorPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextEditorPanel.d.ts","sourceRoot":"","sources":["../../../src/ai/plugins/ContextEditorPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAa,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAGxE,UAAU,uBAAwB,SAAQ,0BAA0B;CAAG;AAYvE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,WAAoC,EACpC,OAAc,EACd,SAAgB,EAChB,SAAgB,GACjB,EAAE,uBAAuB,2CA0kBzB"}
1
+ {"version":3,"file":"ContextEditorPanel.d.ts","sourceRoot":"","sources":["../../../src/ai/plugins/ContextEditorPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAa,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAGxE,UAAU,uBAAwB,SAAQ,0BAA0B;CAAG;AAYvE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,WAAoC,EACpC,OAAc,EACd,SAAgB,EAChB,SAAgB,GACjB,EAAE,uBAAuB,+BA0kBzB"}