@delmaredigital/payload-puck 0.6.13 → 0.6.15

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 (698) hide show
  1. package/README.md +15 -3
  2. package/dist/admin/EditWithPuckButton.d.ts +0 -1
  3. package/dist/admin/EditWithPuckButton.js +0 -2
  4. package/dist/admin/EditWithPuckCell.d.ts +0 -1
  5. package/dist/admin/EditWithPuckCell.js +0 -2
  6. package/dist/admin/PuckEditorView.d.ts +0 -1
  7. package/dist/admin/PuckEditorView.js +0 -2
  8. package/dist/admin/client.d.ts +0 -1
  9. package/dist/admin/client.js +0 -2
  10. package/dist/admin/generateAdminComponents.d.ts +0 -1
  11. package/dist/admin/generateAdminComponents.js +0 -2
  12. package/dist/admin/index.d.ts +0 -1
  13. package/dist/admin/index.js +0 -2
  14. package/dist/ai/collections/AiContext.d.ts +0 -1
  15. package/dist/ai/collections/AiContext.js +0 -2
  16. package/dist/ai/collections/AiPrompts.d.ts +0 -1
  17. package/dist/ai/collections/AiPrompts.js +0 -2
  18. package/dist/ai/createAiApiRoutes.d.ts +0 -1
  19. package/dist/ai/createAiApiRoutes.js +5 -4
  20. package/dist/ai/createAiGenerate.d.ts +0 -1
  21. package/dist/ai/createAiGenerate.js +5 -4
  22. package/dist/ai/createAiPlugin.d.ts +0 -1
  23. package/dist/ai/createAiPlugin.js +4 -4
  24. package/dist/ai/hooks/useAiContext.d.ts +0 -1
  25. package/dist/ai/hooks/useAiContext.js +0 -2
  26. package/dist/ai/hooks/useAiPrompts.d.ts +0 -1
  27. package/dist/ai/hooks/useAiPrompts.js +0 -2
  28. package/dist/ai/index.d.ts +0 -1
  29. package/dist/ai/index.js +0 -2
  30. package/dist/ai/plugins/ContextEditorPanel.d.ts +0 -1
  31. package/dist/ai/plugins/ContextEditorPanel.js +0 -2
  32. package/dist/ai/plugins/PromptEditorPanel.d.ts +0 -1
  33. package/dist/ai/plugins/PromptEditorPanel.js +0 -2
  34. package/dist/ai/plugins/contextEditorPlugin.d.ts +0 -1
  35. package/dist/ai/plugins/contextEditorPlugin.js +0 -2
  36. package/dist/ai/plugins/promptApiRoutes.d.ts +0 -1
  37. package/dist/ai/plugins/promptApiRoutes.js +0 -2
  38. package/dist/ai/plugins/promptEditorPlugin.d.ts +0 -1
  39. package/dist/ai/plugins/promptEditorPlugin.js +0 -2
  40. package/dist/ai/presets/componentAiDefaults.d.ts +0 -1
  41. package/dist/ai/presets/componentAiDefaults.js +0 -2
  42. package/dist/ai/presets/index.d.ts +0 -1
  43. package/dist/ai/presets/index.js +0 -2
  44. package/dist/ai/presets/instructions/interactive.d.ts +0 -1
  45. package/dist/ai/presets/instructions/interactive.js +0 -2
  46. package/dist/ai/presets/instructions/layout.d.ts +0 -1
  47. package/dist/ai/presets/instructions/layout.js +0 -2
  48. package/dist/ai/presets/instructions/media.d.ts +0 -1
  49. package/dist/ai/presets/instructions/media.js +0 -2
  50. package/dist/ai/presets/instructions/pagePatterns.d.ts +0 -1
  51. package/dist/ai/presets/instructions/pagePatterns.js +0 -2
  52. package/dist/ai/presets/instructions/schemas.d.ts +0 -1
  53. package/dist/ai/presets/instructions/schemas.js +0 -2
  54. package/dist/ai/presets/instructions/typography.d.ts +0 -1
  55. package/dist/ai/presets/instructions/typography.js +0 -2
  56. package/dist/ai/tools/index.d.ts +0 -1
  57. package/dist/ai/tools/index.js +0 -2
  58. package/dist/ai/types.d.ts +109 -3
  59. package/dist/ai/types.js +0 -2
  60. package/dist/ai/utils/injectAiConfig.d.ts +0 -1
  61. package/dist/ai/utils/injectAiConfig.js +0 -2
  62. package/dist/api/createPuckApiRoutes.d.ts +0 -1
  63. package/dist/api/createPuckApiRoutes.js +0 -2
  64. package/dist/api/createPuckApiRoutesVersions.d.ts +0 -1
  65. package/dist/api/createPuckApiRoutesVersions.js +0 -2
  66. package/dist/api/createPuckApiRoutesWithId.d.ts +0 -1
  67. package/dist/api/createPuckApiRoutesWithId.js +0 -2
  68. package/dist/api/index.d.ts +0 -1
  69. package/dist/api/index.js +0 -2
  70. package/dist/api/payload-config.d.js +1 -2
  71. package/dist/api/types.d.ts +0 -1
  72. package/dist/api/types.js +0 -2
  73. package/dist/api/utils/mapRootProps.d.ts +0 -1
  74. package/dist/api/utils/mapRootProps.js +0 -2
  75. package/dist/collections/Templates.d.ts +0 -1
  76. package/dist/collections/Templates.js +0 -2
  77. package/dist/components/AccordionClient.d.ts +0 -1
  78. package/dist/components/AccordionClient.js +0 -2
  79. package/dist/components/AnimatedWrapper.d.ts +0 -1
  80. package/dist/components/AnimatedWrapper.js +0 -2
  81. package/dist/components/exports.d.ts +0 -1
  82. package/dist/components/exports.js +0 -2
  83. package/dist/components/index.d.ts +0 -1
  84. package/dist/components/index.js +0 -2
  85. package/dist/components/interactive/Accordion.d.ts +0 -1
  86. package/dist/components/interactive/Accordion.js +0 -2
  87. package/dist/components/interactive/Accordion.server.d.ts +0 -1
  88. package/dist/components/interactive/Accordion.server.js +0 -2
  89. package/dist/components/interactive/Button.d.ts +0 -1
  90. package/dist/components/interactive/Button.js +0 -2
  91. package/dist/components/interactive/Button.server.d.ts +0 -1
  92. package/dist/components/interactive/Button.server.js +0 -2
  93. package/dist/components/interactive/Card.d.ts +0 -1
  94. package/dist/components/interactive/Card.js +0 -2
  95. package/dist/components/interactive/Card.server.d.ts +0 -1
  96. package/dist/components/interactive/Card.server.js +0 -2
  97. package/dist/components/interactive/Divider.d.ts +0 -1
  98. package/dist/components/interactive/Divider.js +0 -2
  99. package/dist/components/interactive/Divider.server.d.ts +0 -1
  100. package/dist/components/interactive/Divider.server.js +0 -2
  101. package/dist/components/interactive/index.d.ts +0 -1
  102. package/dist/components/interactive/index.js +0 -2
  103. package/dist/components/layout/Container.d.ts +0 -1
  104. package/dist/components/layout/Container.js +0 -2
  105. package/dist/components/layout/Container.server.d.ts +0 -1
  106. package/dist/components/layout/Container.server.js +0 -2
  107. package/dist/components/layout/Flex.d.ts +0 -1
  108. package/dist/components/layout/Flex.js +0 -2
  109. package/dist/components/layout/Flex.server.d.ts +0 -1
  110. package/dist/components/layout/Flex.server.js +0 -2
  111. package/dist/components/layout/Grid.d.ts +0 -1
  112. package/dist/components/layout/Grid.js +0 -2
  113. package/dist/components/layout/Grid.server.d.ts +0 -1
  114. package/dist/components/layout/Grid.server.js +0 -2
  115. package/dist/components/layout/Section.d.ts +0 -1
  116. package/dist/components/layout/Section.js +0 -2
  117. package/dist/components/layout/Section.server.d.ts +0 -1
  118. package/dist/components/layout/Section.server.js +0 -2
  119. package/dist/components/layout/Spacer.d.ts +0 -1
  120. package/dist/components/layout/Spacer.js +0 -2
  121. package/dist/components/layout/Spacer.server.d.ts +0 -1
  122. package/dist/components/layout/Spacer.server.js +0 -2
  123. package/dist/components/layout/Template.d.ts +0 -1
  124. package/dist/components/layout/Template.js +0 -2
  125. package/dist/components/layout/Template.server.d.ts +0 -1
  126. package/dist/components/layout/Template.server.js +0 -2
  127. package/dist/components/layout/index.d.ts +0 -1
  128. package/dist/components/layout/index.js +0 -2
  129. package/dist/components/media/Image.d.ts +0 -1
  130. package/dist/components/media/Image.js +0 -2
  131. package/dist/components/media/Image.server.d.ts +0 -1
  132. package/dist/components/media/Image.server.js +0 -2
  133. package/dist/components/media/index.d.ts +0 -1
  134. package/dist/components/media/index.js +0 -2
  135. package/dist/components/typography/Heading.d.ts +0 -1
  136. package/dist/components/typography/Heading.js +0 -2
  137. package/dist/components/typography/Heading.server.d.ts +0 -1
  138. package/dist/components/typography/Heading.server.js +0 -2
  139. package/dist/components/typography/RichText.editor.d.ts +0 -1
  140. package/dist/components/typography/RichText.editor.js +0 -2
  141. package/dist/components/typography/RichText.server.d.ts +0 -1
  142. package/dist/components/typography/RichText.server.js +0 -2
  143. package/dist/components/typography/Text.d.ts +0 -1
  144. package/dist/components/typography/Text.js +0 -2
  145. package/dist/components/typography/Text.server.d.ts +0 -1
  146. package/dist/components/typography/Text.server.js +0 -2
  147. package/dist/components/typography/index.d.ts +0 -1
  148. package/dist/components/typography/index.js +0 -2
  149. package/dist/config/config.editor.d.ts +0 -1
  150. package/dist/config/config.editor.js +0 -2
  151. package/dist/config/index.d.ts +0 -1
  152. package/dist/config/index.js +0 -2
  153. package/dist/config/merge.d.ts +0 -1
  154. package/dist/config/merge.js +0 -2
  155. package/dist/config/presets.d.ts +0 -1
  156. package/dist/config/presets.js +0 -2
  157. package/dist/config/types.d.ts +0 -1
  158. package/dist/config/types.js +0 -2
  159. package/dist/editor/PuckEditor.d.ts +18 -1
  160. package/dist/editor/PuckEditor.js +0 -2
  161. package/dist/editor/PuckEditorImpl.client.d.ts +10 -1
  162. package/dist/editor/PuckEditorImpl.client.js +3 -3
  163. package/dist/editor/components/DarkModeStyles.d.ts +0 -1
  164. package/dist/editor/components/DarkModeStyles.js +0 -2
  165. package/dist/editor/components/HeaderActions.d.ts +0 -1
  166. package/dist/editor/components/HeaderActions.js +0 -2
  167. package/dist/editor/components/IframeWrapper.d.ts +0 -1
  168. package/dist/editor/components/IframeWrapper.js +0 -2
  169. package/dist/editor/components/LoadingState.d.ts +0 -1
  170. package/dist/editor/components/LoadingState.js +0 -2
  171. package/dist/editor/components/PreviewModal.d.ts +0 -1
  172. package/dist/editor/components/PreviewModal.js +0 -2
  173. package/dist/editor/components/PreviewModeToggle.d.ts +0 -1
  174. package/dist/editor/components/PreviewModeToggle.js +0 -2
  175. package/dist/editor/components/VersionHistory.d.ts +0 -1
  176. package/dist/editor/components/VersionHistory.js +0 -2
  177. package/dist/editor/hooks/useDarkMode.d.ts +0 -1
  178. package/dist/editor/hooks/useDarkMode.js +0 -2
  179. package/dist/editor/hooks/useUnsavedChanges.d.ts +0 -1
  180. package/dist/editor/hooks/useUnsavedChanges.js +0 -2
  181. package/dist/editor/index.d.ts +0 -1
  182. package/dist/editor/index.js +0 -2
  183. package/dist/editor/plugins/VersionHistoryPanel.d.ts +0 -1
  184. package/dist/editor/plugins/VersionHistoryPanel.js +0 -2
  185. package/dist/editor/plugins/index.d.ts +0 -1
  186. package/dist/editor/plugins/index.js +0 -2
  187. package/dist/editor/plugins/versionHistoryPlugin.d.ts +0 -1
  188. package/dist/editor/plugins/versionHistoryPlugin.js +0 -2
  189. package/dist/editor/utils/detectPageTree.d.ts +0 -1
  190. package/dist/editor/utils/detectPageTree.js +0 -2
  191. package/dist/editor/utils/index.d.ts +0 -1
  192. package/dist/editor/utils/index.js +0 -2
  193. package/dist/editor/utils/injectPageTreeFields.d.ts +0 -1
  194. package/dist/editor/utils/injectPageTreeFields.js +0 -2
  195. package/dist/endpoints/ai.d.ts +13 -1
  196. package/dist/endpoints/ai.js +6 -3
  197. package/dist/endpoints/context.d.ts +0 -1
  198. package/dist/endpoints/context.js +0 -2
  199. package/dist/endpoints/index.d.ts +0 -1
  200. package/dist/endpoints/index.js +0 -2
  201. package/dist/endpoints/postcss.d.js +1 -2
  202. package/dist/endpoints/prompts.d.ts +0 -1
  203. package/dist/endpoints/prompts.js +0 -2
  204. package/dist/endpoints/styles.d.ts +0 -1
  205. package/dist/endpoints/styles.js +0 -2
  206. package/dist/exports/client.d.ts +0 -1
  207. package/dist/exports/client.js +0 -2
  208. package/dist/exports/rsc.d.ts +0 -1
  209. package/dist/exports/rsc.js +0 -2
  210. package/dist/fields/AlignmentField.d.ts +0 -1
  211. package/dist/fields/AlignmentField.js +0 -2
  212. package/dist/fields/AnimationField.d.ts +0 -1
  213. package/dist/fields/AnimationField.js +0 -2
  214. package/dist/fields/BackgroundField.d.ts +0 -1
  215. package/dist/fields/BackgroundField.js +0 -2
  216. package/dist/fields/BorderField.d.ts +0 -1
  217. package/dist/fields/BorderField.js +0 -2
  218. package/dist/fields/ColorPickerField.d.ts +0 -1
  219. package/dist/fields/ColorPickerField.js +0 -2
  220. package/dist/fields/ContentAlignmentField.d.ts +0 -1
  221. package/dist/fields/ContentAlignmentField.js +0 -2
  222. package/dist/fields/DimensionsField.d.ts +0 -1
  223. package/dist/fields/DimensionsField.js +0 -2
  224. package/dist/fields/FlexAlignmentField.d.ts +0 -1
  225. package/dist/fields/FlexAlignmentField.js +0 -2
  226. package/dist/fields/FolderPickerField.d.ts +0 -1
  227. package/dist/fields/FolderPickerField.js +0 -2
  228. package/dist/fields/GradientEditor.d.ts +0 -1
  229. package/dist/fields/GradientEditor.js +0 -2
  230. package/dist/fields/LockedField.d.ts +0 -1
  231. package/dist/fields/LockedField.js +0 -2
  232. package/dist/fields/MarginField.d.ts +0 -1
  233. package/dist/fields/MarginField.js +0 -2
  234. package/dist/fields/MediaField.d.ts +0 -1
  235. package/dist/fields/MediaField.js +0 -2
  236. package/dist/fields/PaddingField.d.ts +0 -1
  237. package/dist/fields/PaddingField.js +0 -2
  238. package/dist/fields/PageSegmentField.d.ts +0 -1
  239. package/dist/fields/PageSegmentField.js +0 -2
  240. package/dist/fields/ResetField.d.ts +0 -1
  241. package/dist/fields/ResetField.js +0 -2
  242. package/dist/fields/ResponsiveField.d.ts +0 -1
  243. package/dist/fields/ResponsiveField.js +0 -2
  244. package/dist/fields/ResponsiveVisibilityField.d.ts +0 -1
  245. package/dist/fields/ResponsiveVisibilityField.js +0 -2
  246. package/dist/fields/SizeField.d.ts +0 -1
  247. package/dist/fields/SizeField.js +0 -2
  248. package/dist/fields/SlugPreviewField.d.ts +0 -1
  249. package/dist/fields/SlugPreviewField.js +0 -2
  250. package/dist/fields/TemplateField.d.ts +0 -1
  251. package/dist/fields/TemplateField.js +0 -2
  252. package/dist/fields/TransformField.d.ts +0 -1
  253. package/dist/fields/TransformField.js +0 -2
  254. package/dist/fields/VerticalAlignmentField.d.ts +0 -1
  255. package/dist/fields/VerticalAlignmentField.js +0 -2
  256. package/dist/fields/WidthField.d.ts +0 -1
  257. package/dist/fields/WidthField.js +0 -2
  258. package/dist/fields/index.d.ts +0 -1
  259. package/dist/fields/index.js +0 -2
  260. package/dist/fields/richtext/controls/ColorPickerControl.d.ts +0 -1
  261. package/dist/fields/richtext/controls/ColorPickerControl.js +0 -2
  262. package/dist/fields/richtext/controls/DropdownPortal.d.ts +0 -1
  263. package/dist/fields/richtext/controls/DropdownPortal.js +0 -2
  264. package/dist/fields/richtext/controls/FontSizeControl.d.ts +0 -1
  265. package/dist/fields/richtext/controls/FontSizeControl.js +0 -2
  266. package/dist/fields/richtext/controls/HighlightControl.d.ts +0 -1
  267. package/dist/fields/richtext/controls/HighlightControl.js +0 -2
  268. package/dist/fields/richtext/controls/index.d.ts +0 -1
  269. package/dist/fields/richtext/controls/index.js +0 -2
  270. package/dist/fields/richtext/controls/shared.d.ts +0 -1
  271. package/dist/fields/richtext/controls/shared.js +0 -2
  272. package/dist/fields/richtext/createRichTextField.d.ts +0 -1
  273. package/dist/fields/richtext/createRichTextField.js +0 -2
  274. package/dist/fields/richtext/extensions/FontSize.d.ts +0 -1
  275. package/dist/fields/richtext/extensions/FontSize.js +0 -2
  276. package/dist/fields/richtext/extensions/index.d.ts +0 -1
  277. package/dist/fields/richtext/extensions/index.js +0 -2
  278. package/dist/fields/richtext/index.d.ts +0 -1
  279. package/dist/fields/richtext/index.js +0 -2
  280. package/dist/fields/shared.d.ts +0 -1
  281. package/dist/fields/shared.js +0 -2
  282. package/dist/hooks/index.d.ts +0 -1
  283. package/dist/hooks/index.js +0 -2
  284. package/dist/hooks/useResponsiveStyles.d.ts +0 -1
  285. package/dist/hooks/useResponsiveStyles.js +0 -2
  286. package/dist/hooks/useScrollAnimation.d.ts +0 -1
  287. package/dist/hooks/useScrollAnimation.js +0 -2
  288. package/dist/index.d.ts +0 -1
  289. package/dist/index.js +0 -2
  290. package/dist/layouts/LayoutWrapper.d.ts +0 -1
  291. package/dist/layouts/LayoutWrapper.js +0 -2
  292. package/dist/layouts/defaults.d.ts +0 -1
  293. package/dist/layouts/defaults.js +0 -2
  294. package/dist/layouts/index.d.ts +0 -1
  295. package/dist/layouts/index.js +0 -2
  296. package/dist/layouts/types.d.ts +0 -1
  297. package/dist/layouts/types.js +0 -2
  298. package/dist/layouts/utils.d.ts +0 -1
  299. package/dist/layouts/utils.js +0 -2
  300. package/dist/next/index.d.ts +0 -1
  301. package/dist/next/index.js +0 -2
  302. package/dist/plugin/collections/Pages.d.ts +0 -1
  303. package/dist/plugin/collections/Pages.js +0 -2
  304. package/dist/plugin/fields/index.d.ts +0 -1
  305. package/dist/plugin/fields/index.js +0 -2
  306. package/dist/plugin/fields/types.d.ts +0 -1
  307. package/dist/plugin/fields/types.js +0 -2
  308. package/dist/plugin/hooks/index.d.ts +0 -1
  309. package/dist/plugin/hooks/index.js +0 -2
  310. package/dist/plugin/hooks/isHomepageUnique.d.ts +0 -1
  311. package/dist/plugin/hooks/isHomepageUnique.js +0 -2
  312. package/dist/plugin/index.d.ts +0 -1
  313. package/dist/plugin/index.js +2 -3
  314. package/dist/render/HybridPageRenderer.d.ts +0 -1
  315. package/dist/render/HybridPageRenderer.js +0 -2
  316. package/dist/render/PageRenderer.d.ts +0 -1
  317. package/dist/render/PageRenderer.js +0 -2
  318. package/dist/render/PuckEditor.client.d.ts +0 -1
  319. package/dist/render/PuckEditor.client.js +0 -2
  320. package/dist/render/index.d.ts +0 -1
  321. package/dist/render/index.js +0 -2
  322. package/dist/theme/context.d.ts +0 -1
  323. package/dist/theme/context.js +0 -2
  324. package/dist/theme/defaults.d.ts +0 -1
  325. package/dist/theme/defaults.js +0 -2
  326. package/dist/theme/example.d.ts +0 -1
  327. package/dist/theme/example.js +0 -2
  328. package/dist/theme/index.d.ts +0 -1
  329. package/dist/theme/index.js +0 -2
  330. package/dist/theme/types.d.ts +0 -1
  331. package/dist/theme/types.js +0 -2
  332. package/dist/theme/utils.d.ts +0 -1
  333. package/dist/theme/utils.js +0 -2
  334. package/dist/types/index.d.ts +0 -1
  335. package/dist/types/index.js +0 -2
  336. package/dist/utils/index.d.ts +0 -1
  337. package/dist/utils/index.js +0 -2
  338. package/dist/utils/migration.d.ts +0 -1
  339. package/dist/utils/migration.js +0 -2
  340. package/dist/utils/validation.d.ts +0 -1
  341. package/dist/utils/validation.js +0 -2
  342. package/dist/version.d.ts +1 -2
  343. package/dist/version.js +1 -3
  344. package/dist/views/PuckConfigContext.d.ts +0 -1
  345. package/dist/views/PuckConfigContext.js +0 -2
  346. package/dist/views/PuckEditorView.d.ts +0 -1
  347. package/dist/views/PuckEditorView.js +0 -2
  348. package/dist/views/index.d.ts +0 -1
  349. package/dist/views/index.js +0 -2
  350. package/package.json +20 -20
  351. package/dist/admin/EditWithPuckButton.d.ts.map +0 -1
  352. package/dist/admin/EditWithPuckButton.js.map +0 -1
  353. package/dist/admin/EditWithPuckCell.d.ts.map +0 -1
  354. package/dist/admin/EditWithPuckCell.js.map +0 -1
  355. package/dist/admin/PuckEditorView.d.ts.map +0 -1
  356. package/dist/admin/PuckEditorView.js.map +0 -1
  357. package/dist/admin/client.d.ts.map +0 -1
  358. package/dist/admin/client.js.map +0 -1
  359. package/dist/admin/generateAdminComponents.d.ts.map +0 -1
  360. package/dist/admin/generateAdminComponents.js.map +0 -1
  361. package/dist/admin/index.d.ts.map +0 -1
  362. package/dist/admin/index.js.map +0 -1
  363. package/dist/ai/collections/AiContext.d.ts.map +0 -1
  364. package/dist/ai/collections/AiContext.js.map +0 -1
  365. package/dist/ai/collections/AiPrompts.d.ts.map +0 -1
  366. package/dist/ai/collections/AiPrompts.js.map +0 -1
  367. package/dist/ai/createAiApiRoutes.d.ts.map +0 -1
  368. package/dist/ai/createAiApiRoutes.js.map +0 -1
  369. package/dist/ai/createAiGenerate.d.ts.map +0 -1
  370. package/dist/ai/createAiGenerate.js.map +0 -1
  371. package/dist/ai/createAiPlugin.d.ts.map +0 -1
  372. package/dist/ai/createAiPlugin.js.map +0 -1
  373. package/dist/ai/hooks/useAiContext.d.ts.map +0 -1
  374. package/dist/ai/hooks/useAiContext.js.map +0 -1
  375. package/dist/ai/hooks/useAiPrompts.d.ts.map +0 -1
  376. package/dist/ai/hooks/useAiPrompts.js.map +0 -1
  377. package/dist/ai/index.d.ts.map +0 -1
  378. package/dist/ai/index.js.map +0 -1
  379. package/dist/ai/plugins/ContextEditorPanel.d.ts.map +0 -1
  380. package/dist/ai/plugins/ContextEditorPanel.js.map +0 -1
  381. package/dist/ai/plugins/PromptEditorPanel.d.ts.map +0 -1
  382. package/dist/ai/plugins/PromptEditorPanel.js.map +0 -1
  383. package/dist/ai/plugins/contextEditorPlugin.d.ts.map +0 -1
  384. package/dist/ai/plugins/contextEditorPlugin.js.map +0 -1
  385. package/dist/ai/plugins/promptApiRoutes.d.ts.map +0 -1
  386. package/dist/ai/plugins/promptApiRoutes.js.map +0 -1
  387. package/dist/ai/plugins/promptEditorPlugin.d.ts.map +0 -1
  388. package/dist/ai/plugins/promptEditorPlugin.js.map +0 -1
  389. package/dist/ai/presets/componentAiDefaults.d.ts.map +0 -1
  390. package/dist/ai/presets/componentAiDefaults.js.map +0 -1
  391. package/dist/ai/presets/index.d.ts.map +0 -1
  392. package/dist/ai/presets/index.js.map +0 -1
  393. package/dist/ai/presets/instructions/interactive.d.ts.map +0 -1
  394. package/dist/ai/presets/instructions/interactive.js.map +0 -1
  395. package/dist/ai/presets/instructions/layout.d.ts.map +0 -1
  396. package/dist/ai/presets/instructions/layout.js.map +0 -1
  397. package/dist/ai/presets/instructions/media.d.ts.map +0 -1
  398. package/dist/ai/presets/instructions/media.js.map +0 -1
  399. package/dist/ai/presets/instructions/pagePatterns.d.ts.map +0 -1
  400. package/dist/ai/presets/instructions/pagePatterns.js.map +0 -1
  401. package/dist/ai/presets/instructions/schemas.d.ts.map +0 -1
  402. package/dist/ai/presets/instructions/schemas.js.map +0 -1
  403. package/dist/ai/presets/instructions/typography.d.ts.map +0 -1
  404. package/dist/ai/presets/instructions/typography.js.map +0 -1
  405. package/dist/ai/tools/index.d.ts.map +0 -1
  406. package/dist/ai/tools/index.js.map +0 -1
  407. package/dist/ai/types.d.ts.map +0 -1
  408. package/dist/ai/types.js.map +0 -1
  409. package/dist/ai/utils/injectAiConfig.d.ts.map +0 -1
  410. package/dist/ai/utils/injectAiConfig.js.map +0 -1
  411. package/dist/api/createPuckApiRoutes.d.ts.map +0 -1
  412. package/dist/api/createPuckApiRoutes.js.map +0 -1
  413. package/dist/api/createPuckApiRoutesVersions.d.ts.map +0 -1
  414. package/dist/api/createPuckApiRoutesVersions.js.map +0 -1
  415. package/dist/api/createPuckApiRoutesWithId.d.ts.map +0 -1
  416. package/dist/api/createPuckApiRoutesWithId.js.map +0 -1
  417. package/dist/api/index.d.ts.map +0 -1
  418. package/dist/api/index.js.map +0 -1
  419. package/dist/api/payload-config.d.js.map +0 -1
  420. package/dist/api/types.d.ts.map +0 -1
  421. package/dist/api/types.js.map +0 -1
  422. package/dist/api/utils/mapRootProps.d.ts.map +0 -1
  423. package/dist/api/utils/mapRootProps.js.map +0 -1
  424. package/dist/collections/Templates.d.ts.map +0 -1
  425. package/dist/collections/Templates.js.map +0 -1
  426. package/dist/components/AccordionClient.d.ts.map +0 -1
  427. package/dist/components/AccordionClient.js.map +0 -1
  428. package/dist/components/AnimatedWrapper.d.ts.map +0 -1
  429. package/dist/components/AnimatedWrapper.js.map +0 -1
  430. package/dist/components/exports.d.ts.map +0 -1
  431. package/dist/components/exports.js.map +0 -1
  432. package/dist/components/index.d.ts.map +0 -1
  433. package/dist/components/index.js.map +0 -1
  434. package/dist/components/interactive/Accordion.d.ts.map +0 -1
  435. package/dist/components/interactive/Accordion.js.map +0 -1
  436. package/dist/components/interactive/Accordion.server.d.ts.map +0 -1
  437. package/dist/components/interactive/Accordion.server.js.map +0 -1
  438. package/dist/components/interactive/Button.d.ts.map +0 -1
  439. package/dist/components/interactive/Button.js.map +0 -1
  440. package/dist/components/interactive/Button.server.d.ts.map +0 -1
  441. package/dist/components/interactive/Button.server.js.map +0 -1
  442. package/dist/components/interactive/Card.d.ts.map +0 -1
  443. package/dist/components/interactive/Card.js.map +0 -1
  444. package/dist/components/interactive/Card.server.d.ts.map +0 -1
  445. package/dist/components/interactive/Card.server.js.map +0 -1
  446. package/dist/components/interactive/Divider.d.ts.map +0 -1
  447. package/dist/components/interactive/Divider.js.map +0 -1
  448. package/dist/components/interactive/Divider.server.d.ts.map +0 -1
  449. package/dist/components/interactive/Divider.server.js.map +0 -1
  450. package/dist/components/interactive/index.d.ts.map +0 -1
  451. package/dist/components/interactive/index.js.map +0 -1
  452. package/dist/components/layout/Container.d.ts.map +0 -1
  453. package/dist/components/layout/Container.js.map +0 -1
  454. package/dist/components/layout/Container.server.d.ts.map +0 -1
  455. package/dist/components/layout/Container.server.js.map +0 -1
  456. package/dist/components/layout/Flex.d.ts.map +0 -1
  457. package/dist/components/layout/Flex.js.map +0 -1
  458. package/dist/components/layout/Flex.server.d.ts.map +0 -1
  459. package/dist/components/layout/Flex.server.js.map +0 -1
  460. package/dist/components/layout/Grid.d.ts.map +0 -1
  461. package/dist/components/layout/Grid.js.map +0 -1
  462. package/dist/components/layout/Grid.server.d.ts.map +0 -1
  463. package/dist/components/layout/Grid.server.js.map +0 -1
  464. package/dist/components/layout/Section.d.ts.map +0 -1
  465. package/dist/components/layout/Section.js.map +0 -1
  466. package/dist/components/layout/Section.server.d.ts.map +0 -1
  467. package/dist/components/layout/Section.server.js.map +0 -1
  468. package/dist/components/layout/Spacer.d.ts.map +0 -1
  469. package/dist/components/layout/Spacer.js.map +0 -1
  470. package/dist/components/layout/Spacer.server.d.ts.map +0 -1
  471. package/dist/components/layout/Spacer.server.js.map +0 -1
  472. package/dist/components/layout/Template.d.ts.map +0 -1
  473. package/dist/components/layout/Template.js.map +0 -1
  474. package/dist/components/layout/Template.server.d.ts.map +0 -1
  475. package/dist/components/layout/Template.server.js.map +0 -1
  476. package/dist/components/layout/index.d.ts.map +0 -1
  477. package/dist/components/layout/index.js.map +0 -1
  478. package/dist/components/media/Image.d.ts.map +0 -1
  479. package/dist/components/media/Image.js.map +0 -1
  480. package/dist/components/media/Image.server.d.ts.map +0 -1
  481. package/dist/components/media/Image.server.js.map +0 -1
  482. package/dist/components/media/index.d.ts.map +0 -1
  483. package/dist/components/media/index.js.map +0 -1
  484. package/dist/components/typography/Heading.d.ts.map +0 -1
  485. package/dist/components/typography/Heading.js.map +0 -1
  486. package/dist/components/typography/Heading.server.d.ts.map +0 -1
  487. package/dist/components/typography/Heading.server.js.map +0 -1
  488. package/dist/components/typography/RichText.editor.d.ts.map +0 -1
  489. package/dist/components/typography/RichText.editor.js.map +0 -1
  490. package/dist/components/typography/RichText.server.d.ts.map +0 -1
  491. package/dist/components/typography/RichText.server.js.map +0 -1
  492. package/dist/components/typography/Text.d.ts.map +0 -1
  493. package/dist/components/typography/Text.js.map +0 -1
  494. package/dist/components/typography/Text.server.d.ts.map +0 -1
  495. package/dist/components/typography/Text.server.js.map +0 -1
  496. package/dist/components/typography/index.d.ts.map +0 -1
  497. package/dist/components/typography/index.js.map +0 -1
  498. package/dist/config/config.editor.d.ts.map +0 -1
  499. package/dist/config/config.editor.js.map +0 -1
  500. package/dist/config/index.d.ts.map +0 -1
  501. package/dist/config/index.js.map +0 -1
  502. package/dist/config/merge.d.ts.map +0 -1
  503. package/dist/config/merge.js.map +0 -1
  504. package/dist/config/presets.d.ts.map +0 -1
  505. package/dist/config/presets.js.map +0 -1
  506. package/dist/config/types.d.ts.map +0 -1
  507. package/dist/config/types.js.map +0 -1
  508. package/dist/editor/PuckEditor.d.ts.map +0 -1
  509. package/dist/editor/PuckEditor.js.map +0 -1
  510. package/dist/editor/PuckEditorImpl.client.d.ts.map +0 -1
  511. package/dist/editor/PuckEditorImpl.client.js.map +0 -1
  512. package/dist/editor/components/DarkModeStyles.d.ts.map +0 -1
  513. package/dist/editor/components/DarkModeStyles.js.map +0 -1
  514. package/dist/editor/components/HeaderActions.d.ts.map +0 -1
  515. package/dist/editor/components/HeaderActions.js.map +0 -1
  516. package/dist/editor/components/IframeWrapper.d.ts.map +0 -1
  517. package/dist/editor/components/IframeWrapper.js.map +0 -1
  518. package/dist/editor/components/LoadingState.d.ts.map +0 -1
  519. package/dist/editor/components/LoadingState.js.map +0 -1
  520. package/dist/editor/components/PreviewModal.d.ts.map +0 -1
  521. package/dist/editor/components/PreviewModal.js.map +0 -1
  522. package/dist/editor/components/PreviewModeToggle.d.ts.map +0 -1
  523. package/dist/editor/components/PreviewModeToggle.js.map +0 -1
  524. package/dist/editor/components/VersionHistory.d.ts.map +0 -1
  525. package/dist/editor/components/VersionHistory.js.map +0 -1
  526. package/dist/editor/hooks/useDarkMode.d.ts.map +0 -1
  527. package/dist/editor/hooks/useDarkMode.js.map +0 -1
  528. package/dist/editor/hooks/useUnsavedChanges.d.ts.map +0 -1
  529. package/dist/editor/hooks/useUnsavedChanges.js.map +0 -1
  530. package/dist/editor/index.d.ts.map +0 -1
  531. package/dist/editor/index.js.map +0 -1
  532. package/dist/editor/plugins/VersionHistoryPanel.d.ts.map +0 -1
  533. package/dist/editor/plugins/VersionHistoryPanel.js.map +0 -1
  534. package/dist/editor/plugins/index.d.ts.map +0 -1
  535. package/dist/editor/plugins/index.js.map +0 -1
  536. package/dist/editor/plugins/versionHistoryPlugin.d.ts.map +0 -1
  537. package/dist/editor/plugins/versionHistoryPlugin.js.map +0 -1
  538. package/dist/editor/utils/detectPageTree.d.ts.map +0 -1
  539. package/dist/editor/utils/detectPageTree.js.map +0 -1
  540. package/dist/editor/utils/index.d.ts.map +0 -1
  541. package/dist/editor/utils/index.js.map +0 -1
  542. package/dist/editor/utils/injectPageTreeFields.d.ts.map +0 -1
  543. package/dist/editor/utils/injectPageTreeFields.js.map +0 -1
  544. package/dist/endpoints/ai.d.ts.map +0 -1
  545. package/dist/endpoints/ai.js.map +0 -1
  546. package/dist/endpoints/context.d.ts.map +0 -1
  547. package/dist/endpoints/context.js.map +0 -1
  548. package/dist/endpoints/index.d.ts.map +0 -1
  549. package/dist/endpoints/index.js.map +0 -1
  550. package/dist/endpoints/postcss.d.js.map +0 -1
  551. package/dist/endpoints/prompts.d.ts.map +0 -1
  552. package/dist/endpoints/prompts.js.map +0 -1
  553. package/dist/endpoints/styles.d.ts.map +0 -1
  554. package/dist/endpoints/styles.js.map +0 -1
  555. package/dist/exports/client.d.ts.map +0 -1
  556. package/dist/exports/client.js.map +0 -1
  557. package/dist/exports/rsc.d.ts.map +0 -1
  558. package/dist/exports/rsc.js.map +0 -1
  559. package/dist/fields/AlignmentField.d.ts.map +0 -1
  560. package/dist/fields/AlignmentField.js.map +0 -1
  561. package/dist/fields/AnimationField.d.ts.map +0 -1
  562. package/dist/fields/AnimationField.js.map +0 -1
  563. package/dist/fields/BackgroundField.d.ts.map +0 -1
  564. package/dist/fields/BackgroundField.js.map +0 -1
  565. package/dist/fields/BorderField.d.ts.map +0 -1
  566. package/dist/fields/BorderField.js.map +0 -1
  567. package/dist/fields/ColorPickerField.d.ts.map +0 -1
  568. package/dist/fields/ColorPickerField.js.map +0 -1
  569. package/dist/fields/ContentAlignmentField.d.ts.map +0 -1
  570. package/dist/fields/ContentAlignmentField.js.map +0 -1
  571. package/dist/fields/DimensionsField.d.ts.map +0 -1
  572. package/dist/fields/DimensionsField.js.map +0 -1
  573. package/dist/fields/FlexAlignmentField.d.ts.map +0 -1
  574. package/dist/fields/FlexAlignmentField.js.map +0 -1
  575. package/dist/fields/FolderPickerField.d.ts.map +0 -1
  576. package/dist/fields/FolderPickerField.js.map +0 -1
  577. package/dist/fields/GradientEditor.d.ts.map +0 -1
  578. package/dist/fields/GradientEditor.js.map +0 -1
  579. package/dist/fields/LockedField.d.ts.map +0 -1
  580. package/dist/fields/LockedField.js.map +0 -1
  581. package/dist/fields/MarginField.d.ts.map +0 -1
  582. package/dist/fields/MarginField.js.map +0 -1
  583. package/dist/fields/MediaField.d.ts.map +0 -1
  584. package/dist/fields/MediaField.js.map +0 -1
  585. package/dist/fields/PaddingField.d.ts.map +0 -1
  586. package/dist/fields/PaddingField.js.map +0 -1
  587. package/dist/fields/PageSegmentField.d.ts.map +0 -1
  588. package/dist/fields/PageSegmentField.js.map +0 -1
  589. package/dist/fields/ResetField.d.ts.map +0 -1
  590. package/dist/fields/ResetField.js.map +0 -1
  591. package/dist/fields/ResponsiveField.d.ts.map +0 -1
  592. package/dist/fields/ResponsiveField.js.map +0 -1
  593. package/dist/fields/ResponsiveVisibilityField.d.ts.map +0 -1
  594. package/dist/fields/ResponsiveVisibilityField.js.map +0 -1
  595. package/dist/fields/SizeField.d.ts.map +0 -1
  596. package/dist/fields/SizeField.js.map +0 -1
  597. package/dist/fields/SlugPreviewField.d.ts.map +0 -1
  598. package/dist/fields/SlugPreviewField.js.map +0 -1
  599. package/dist/fields/TemplateField.d.ts.map +0 -1
  600. package/dist/fields/TemplateField.js.map +0 -1
  601. package/dist/fields/TransformField.d.ts.map +0 -1
  602. package/dist/fields/TransformField.js.map +0 -1
  603. package/dist/fields/VerticalAlignmentField.d.ts.map +0 -1
  604. package/dist/fields/VerticalAlignmentField.js.map +0 -1
  605. package/dist/fields/WidthField.d.ts.map +0 -1
  606. package/dist/fields/WidthField.js.map +0 -1
  607. package/dist/fields/index.d.ts.map +0 -1
  608. package/dist/fields/index.js.map +0 -1
  609. package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +0 -1
  610. package/dist/fields/richtext/controls/ColorPickerControl.js.map +0 -1
  611. package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +0 -1
  612. package/dist/fields/richtext/controls/DropdownPortal.js.map +0 -1
  613. package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +0 -1
  614. package/dist/fields/richtext/controls/FontSizeControl.js.map +0 -1
  615. package/dist/fields/richtext/controls/HighlightControl.d.ts.map +0 -1
  616. package/dist/fields/richtext/controls/HighlightControl.js.map +0 -1
  617. package/dist/fields/richtext/controls/index.d.ts.map +0 -1
  618. package/dist/fields/richtext/controls/index.js.map +0 -1
  619. package/dist/fields/richtext/controls/shared.d.ts.map +0 -1
  620. package/dist/fields/richtext/controls/shared.js.map +0 -1
  621. package/dist/fields/richtext/createRichTextField.d.ts.map +0 -1
  622. package/dist/fields/richtext/createRichTextField.js.map +0 -1
  623. package/dist/fields/richtext/extensions/FontSize.d.ts.map +0 -1
  624. package/dist/fields/richtext/extensions/FontSize.js.map +0 -1
  625. package/dist/fields/richtext/extensions/index.d.ts.map +0 -1
  626. package/dist/fields/richtext/extensions/index.js.map +0 -1
  627. package/dist/fields/richtext/index.d.ts.map +0 -1
  628. package/dist/fields/richtext/index.js.map +0 -1
  629. package/dist/fields/shared.d.ts.map +0 -1
  630. package/dist/fields/shared.js.map +0 -1
  631. package/dist/hooks/index.d.ts.map +0 -1
  632. package/dist/hooks/index.js.map +0 -1
  633. package/dist/hooks/useResponsiveStyles.d.ts.map +0 -1
  634. package/dist/hooks/useResponsiveStyles.js.map +0 -1
  635. package/dist/hooks/useScrollAnimation.d.ts.map +0 -1
  636. package/dist/hooks/useScrollAnimation.js.map +0 -1
  637. package/dist/index.d.ts.map +0 -1
  638. package/dist/index.js.map +0 -1
  639. package/dist/layouts/LayoutWrapper.d.ts.map +0 -1
  640. package/dist/layouts/LayoutWrapper.js.map +0 -1
  641. package/dist/layouts/defaults.d.ts.map +0 -1
  642. package/dist/layouts/defaults.js.map +0 -1
  643. package/dist/layouts/index.d.ts.map +0 -1
  644. package/dist/layouts/index.js.map +0 -1
  645. package/dist/layouts/types.d.ts.map +0 -1
  646. package/dist/layouts/types.js.map +0 -1
  647. package/dist/layouts/utils.d.ts.map +0 -1
  648. package/dist/layouts/utils.js.map +0 -1
  649. package/dist/next/index.d.ts.map +0 -1
  650. package/dist/next/index.js.map +0 -1
  651. package/dist/plugin/collections/Pages.d.ts.map +0 -1
  652. package/dist/plugin/collections/Pages.js.map +0 -1
  653. package/dist/plugin/fields/index.d.ts.map +0 -1
  654. package/dist/plugin/fields/index.js.map +0 -1
  655. package/dist/plugin/fields/types.d.ts.map +0 -1
  656. package/dist/plugin/fields/types.js.map +0 -1
  657. package/dist/plugin/hooks/index.d.ts.map +0 -1
  658. package/dist/plugin/hooks/index.js.map +0 -1
  659. package/dist/plugin/hooks/isHomepageUnique.d.ts.map +0 -1
  660. package/dist/plugin/hooks/isHomepageUnique.js.map +0 -1
  661. package/dist/plugin/index.d.ts.map +0 -1
  662. package/dist/plugin/index.js.map +0 -1
  663. package/dist/render/HybridPageRenderer.d.ts.map +0 -1
  664. package/dist/render/HybridPageRenderer.js.map +0 -1
  665. package/dist/render/PageRenderer.d.ts.map +0 -1
  666. package/dist/render/PageRenderer.js.map +0 -1
  667. package/dist/render/PuckEditor.client.d.ts.map +0 -1
  668. package/dist/render/PuckEditor.client.js.map +0 -1
  669. package/dist/render/index.d.ts.map +0 -1
  670. package/dist/render/index.js.map +0 -1
  671. package/dist/theme/context.d.ts.map +0 -1
  672. package/dist/theme/context.js.map +0 -1
  673. package/dist/theme/defaults.d.ts.map +0 -1
  674. package/dist/theme/defaults.js.map +0 -1
  675. package/dist/theme/example.d.ts.map +0 -1
  676. package/dist/theme/example.js.map +0 -1
  677. package/dist/theme/index.d.ts.map +0 -1
  678. package/dist/theme/index.js.map +0 -1
  679. package/dist/theme/types.d.ts.map +0 -1
  680. package/dist/theme/types.js.map +0 -1
  681. package/dist/theme/utils.d.ts.map +0 -1
  682. package/dist/theme/utils.js.map +0 -1
  683. package/dist/types/index.d.ts.map +0 -1
  684. package/dist/types/index.js.map +0 -1
  685. package/dist/utils/index.d.ts.map +0 -1
  686. package/dist/utils/index.js.map +0 -1
  687. package/dist/utils/migration.d.ts.map +0 -1
  688. package/dist/utils/migration.js.map +0 -1
  689. package/dist/utils/validation.d.ts.map +0 -1
  690. package/dist/utils/validation.js.map +0 -1
  691. package/dist/version.d.ts.map +0 -1
  692. package/dist/version.js.map +0 -1
  693. package/dist/views/PuckConfigContext.d.ts.map +0 -1
  694. package/dist/views/PuckConfigContext.js.map +0 -1
  695. package/dist/views/PuckEditorView.d.ts.map +0 -1
  696. package/dist/views/PuckEditorView.js.map +0 -1
  697. package/dist/views/index.d.ts.map +0 -1
  698. package/dist/views/index.js.map +0 -1
@@ -8,5 +8,3 @@ export { HybridPageRenderer, toHybridPageData } from './HybridPageRenderer.js';
8
8
  // Re-export createRenderLayouts for convenience (commonly used with renderers)
9
9
  export { createRenderLayouts } from '../layouts/utils.js'; // Note: PuckEditor has been moved to '@delmaredigital/payload-puck/editor'
10
10
  // to avoid RSC import issues with the client-only Puck component
11
-
12
- //# sourceMappingURL=index.js.map
@@ -56,4 +56,3 @@ export declare function getDefaultTheme(): ResolvedTheme;
56
56
  * Useful for conditional logic based on whether theming is configured.
57
57
  */
58
58
  export declare function useHasThemeProvider(): boolean;
59
- //# sourceMappingURL=context.d.ts.map
@@ -72,5 +72,3 @@ const ThemeContext = /*#__PURE__*/ createContext(null);
72
72
  const context = useContext(ThemeContext);
73
73
  return context !== null;
74
74
  }
75
-
76
- //# sourceMappingURL=context.js.map
@@ -36,4 +36,3 @@ export declare const DEFAULT_FOCUS_RING = "focus:ring-ring";
36
36
  * Used when no ThemeProvider is present or no theme config is provided
37
37
  */
38
38
  export declare const DEFAULT_THEME: ResolvedTheme;
39
- //# sourceMappingURL=defaults.d.ts.map
@@ -114,5 +114,3 @@
114
114
  colorPresets: DEFAULT_COLOR_PRESETS,
115
115
  focusRingColor: DEFAULT_FOCUS_RING
116
116
  };
117
-
118
- //# sourceMappingURL=defaults.js.map
@@ -27,4 +27,3 @@ import type { ThemeConfig } from './types.js';
27
27
  * --ring (for focus rings)
28
28
  */
29
29
  export declare const exampleTheme: ThemeConfig;
30
- //# sourceMappingURL=example.d.ts.map
@@ -123,5 +123,3 @@
123
123
  // Set to true to add your presets to defaults instead of replacing
124
124
  extendColorPresets: false
125
125
  };
126
-
127
- //# sourceMappingURL=example.js.map
@@ -29,4 +29,3 @@ export { ThemeProvider, useTheme, getDefaultTheme, useHasThemeProvider, type The
29
29
  export { DEFAULT_BUTTON_VARIANTS, DEFAULT_CTA_BUTTON_VARIANTS, DEFAULT_CTA_BACKGROUND_STYLES, DEFAULT_COLOR_PRESETS, DEFAULT_FOCUS_RING, DEFAULT_THEME, } from './defaults.js';
30
30
  export { resolveTheme, getVariantClasses, getBackgroundClasses } from './utils.js';
31
31
  export { exampleTheme } from './example.js';
32
- //# sourceMappingURL=index.d.ts.map
@@ -32,5 +32,3 @@ export { DEFAULT_BUTTON_VARIANTS, DEFAULT_CTA_BUTTON_VARIANTS, DEFAULT_CTA_BACKG
32
32
  export { resolveTheme, getVariantClasses, getBackgroundClasses } from './utils.js';
33
33
  // Example theme (copy and customize for your project)
34
34
  export { exampleTheme } from './example.js';
35
-
36
- //# sourceMappingURL=index.js.map
@@ -100,4 +100,3 @@ export interface ResolvedTheme {
100
100
  export interface ThemeContextValue {
101
101
  theme: ResolvedTheme;
102
102
  }
103
- //# sourceMappingURL=types.d.ts.map
@@ -9,5 +9,3 @@
9
9
  */ /**
10
10
  * Theme context value provided by ThemeProvider
11
11
  */ export { };
12
-
13
- //# sourceMappingURL=types.js.map
@@ -27,4 +27,3 @@ export declare function getVariantClasses(variants: ButtonVariantStyles, variant
27
27
  * @returns The CSS classes string for the background
28
28
  */
29
29
  export declare function getBackgroundClasses(styles: BackgroundStyles, style: string, fallback?: string): string;
30
- //# sourceMappingURL=utils.d.ts.map
@@ -79,5 +79,3 @@
79
79
  */ export function getBackgroundClasses(styles, style, fallback = 'default') {
80
80
  return styles[style] ?? styles[fallback] ?? '';
81
81
  }
82
-
83
- //# sourceMappingURL=utils.js.map
@@ -411,4 +411,3 @@ export type { Config as PuckConfig, Data as PuckData } from '@puckeditor/core';
411
411
  export type { ThemeConfig } from '../theme/types.js';
412
412
  export type { GetPuckFieldsOptions } from '../plugin/fields/types.js';
413
413
  export type { PuckPluginAiConfig, AiExamplePrompt } from '../ai/types.js';
414
- //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,2 @@
1
1
  // Re-export AI types for convenience
2
2
  export { };
3
-
4
- //# sourceMappingURL=index.js.map
@@ -30,4 +30,3 @@
30
30
  */
31
31
  export { migrateLegacyToPuck, getMigrationPreview, blockTypeMap, generatePuckId, transformBlockProps, transformMediaReference, transformRichText, transformRelationshipArray, type LegacyBlock, type LegacyPage, type MediaReference, type PuckContentItem, type MigrateLegacyOptions, type MigrationPreview, } from './migration.js';
32
32
  export { validatePuckData, isPuckData, isPuckRootProps, assertPuckData, parsePuckDataJson, type ValidationResult, type ValidationOptions, } from './validation.js';
33
- //# sourceMappingURL=index.d.ts.map
@@ -44,5 +44,3 @@ validatePuckData, // Type guards
44
44
  isPuckData, isPuckRootProps, // Assertion helper
45
45
  assertPuckData, // JSON parsing helper
46
46
  parsePuckDataJson } from './validation.js';
47
-
48
- //# sourceMappingURL=index.js.map
@@ -168,4 +168,3 @@ export interface MigrationPreview {
168
168
  * @returns Preview information about the migration
169
169
  */
170
170
  export declare function getMigrationPreview(page: LegacyPage, customBlockTypeMap?: Record<string, string>): MigrationPreview;
171
- //# sourceMappingURL=migration.d.ts.map
@@ -299,5 +299,3 @@
299
299
  unmappedBlockTypes
300
300
  };
301
301
  }
302
-
303
- //# sourceMappingURL=migration.js.map
@@ -86,4 +86,3 @@ export declare function assertPuckData(data: unknown, options?: ValidationOption
86
86
  export declare function parsePuckDataJson(json: string, options?: ValidationOptions): ValidationResult & {
87
87
  data?: PuckPageData;
88
88
  };
89
- //# sourceMappingURL=validation.d.ts.map
@@ -236,5 +236,3 @@
236
236
  }
237
237
  return result;
238
238
  }
239
-
240
- //# sourceMappingURL=validation.js.map
package/dist/version.d.ts CHANGED
@@ -1,2 +1 @@
1
- export declare const VERSION = "0.6.13";
2
- //# sourceMappingURL=version.d.ts.map
1
+ export declare const VERSION = "0.6.15";
package/dist/version.js CHANGED
@@ -1,4 +1,2 @@
1
1
  // Auto-generated by scripts/generate-version.js - do not edit manually
2
- export const VERSION = '0.6.13';
3
-
4
- //# sourceMappingURL=version.js.map
2
+ export const VERSION = '0.6.15';
@@ -154,4 +154,3 @@ export declare function PuckConfigProvider({ config, layouts, theme, plugins, ed
154
154
  */
155
155
  export declare function usePuckConfig(): PuckConfigContextValue;
156
156
  export default PuckConfigContext;
157
- //# sourceMappingURL=PuckConfigContext.d.ts.map
@@ -59,5 +59,3 @@ const PuckConfigContext = /*#__PURE__*/ createContext({
59
59
  return context;
60
60
  }
61
61
  export default PuckConfigContext;
62
-
63
- //# sourceMappingURL=PuckConfigContext.js.map
@@ -16,4 +16,3 @@ export interface PuckEditorViewProps extends AdminViewProps {
16
16
  */
17
17
  export declare function PuckEditorView({ initPageResult, params, searchParams, }: PuckEditorViewProps): Promise<import("react").JSX.Element>;
18
18
  export default PuckEditorView;
19
- //# sourceMappingURL=PuckEditorView.d.ts.map
@@ -231,5 +231,3 @@ import { mapPayloadFieldsToRootProps } from '../api/utils/mapRootProps.js';
231
231
  });
232
232
  }
233
233
  export default PuckEditorView;
234
-
235
- //# sourceMappingURL=PuckEditorView.js.map
@@ -5,4 +5,3 @@ export { PuckEditorView } from './PuckEditorView.js';
5
5
  export type { PuckEditorViewProps } from './PuckEditorView.js';
6
6
  export { PuckConfigProvider, usePuckConfig } from './PuckConfigContext.js';
7
7
  export type { PuckConfigProviderProps, PuckConfigContextValue } from './PuckConfigContext.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -4,5 +4,3 @@
4
4
  export { PuckEditorView } from './PuckEditorView.js';
5
5
  // Context
6
6
  export { PuckConfigProvider, usePuckConfig } from './PuckConfigContext.js';
7
-
8
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delmaredigital/payload-puck",
3
- "version": "0.6.13",
3
+ "version": "0.6.15",
4
4
  "description": "Puck visual page builder plugin for Payload CMS",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -141,36 +141,36 @@
141
141
  }
142
142
  },
143
143
  "dependencies": {
144
- "@puckeditor/cloud-client": "^0.5.0",
145
- "@puckeditor/plugin-ai": "^0.5.0",
144
+ "@puckeditor/cloud-client": "^0.6.0",
145
+ "@puckeditor/plugin-ai": "^0.6.0",
146
146
  "@puckeditor/plugin-heading-analyzer": "^0.21.1",
147
147
  "@radix-ui/react-popover": "^1.1.15",
148
- "@tiptap/core": "^3.18.0",
149
- "@tiptap/extension-color": "^3.18.0",
150
- "@tiptap/extension-highlight": "^3.18.0",
151
- "@tiptap/extension-link": "^3.18.0",
152
- "@tiptap/extension-subscript": "^3.18.0",
153
- "@tiptap/extension-superscript": "^3.18.0",
154
- "@tiptap/extension-text-align": "^3.18.0",
155
- "@tiptap/extension-text-style": "^3.18.0",
156
- "@tiptap/extension-underline": "^3.18.0",
157
- "@tiptap/react": "^3.18.0",
158
- "@tiptap/starter-kit": "^3.18.0",
159
- "html-react-parser": "^5.2.13",
148
+ "@tiptap/core": "^3.20.0",
149
+ "@tiptap/extension-color": "^3.20.0",
150
+ "@tiptap/extension-highlight": "^3.20.0",
151
+ "@tiptap/extension-link": "^3.20.0",
152
+ "@tiptap/extension-subscript": "^3.20.0",
153
+ "@tiptap/extension-superscript": "^3.20.0",
154
+ "@tiptap/extension-text-align": "^3.20.0",
155
+ "@tiptap/extension-text-style": "^3.20.0",
156
+ "@tiptap/extension-underline": "^3.20.0",
157
+ "@tiptap/react": "^3.20.0",
158
+ "@tiptap/starter-kit": "^3.20.0",
159
+ "html-react-parser": "^5.2.17",
160
160
  "lucide-react": "^0.469.0"
161
161
  },
162
162
  "devDependencies": {
163
- "@payloadcms/next": "^3.73.0",
164
- "@payloadcms/ui": "^3.73.0",
163
+ "@payloadcms/next": "^3.77.0",
164
+ "@payloadcms/ui": "^3.77.0",
165
165
  "@puckeditor/core": "^0.21.1",
166
166
  "@swc/cli": "^0.6.0",
167
167
  "@swc/core": "^1.15.11",
168
- "@types/node": "^25.1.0",
169
- "@types/react": "^19.2.10",
168
+ "@types/node": "^25.3.0",
169
+ "@types/react": "^19.2.14",
170
170
  "@types/react-dom": "^19.2.3",
171
171
  "copyfiles": "^2.4.1",
172
172
  "next": "^16.1.6",
173
- "payload": "^3.73.0",
173
+ "payload": "^3.77.0",
174
174
  "react": "^19.2.4",
175
175
  "typescript": "^5.9.3"
176
176
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditWithPuckButton.d.ts","sourceRoot":"","sources":["../../src/admin/EditWithPuckButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAGrD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB,EAAE,sBA4DhC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,cAAwB,EACxB,iBAAiB,EACjB,KAAuB,EACvB,QAAgB,GACjB,EAAE,uBAAuB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,+BAkC/D;AAED,eAAe,kBAAkB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/admin/EditWithPuckButton.tsx"],"sourcesContent":["'use client'\n\nimport type { UIFieldClientComponent } from 'payload'\nimport { useDocumentInfo, useConfig } from '@payloadcms/ui'\n\n/**\n * Props for EditWithPuckButton when used standalone\n */\nexport interface EditWithPuckButtonProps {\n /**\n * Document ID to edit\n */\n id?: string\n /**\n * Collection slug\n * @default 'pages'\n */\n collectionSlug?: string\n /**\n * Custom path pattern for the Puck editor\n * Use {id} as placeholder for the document ID, {collection} for collection slug\n * @default Uses admin view: '/admin/puck-editor/{collection}/{id}'\n */\n editorPathPattern?: string\n /**\n * Button label\n * @default 'Visual Editor'\n */\n label?: string\n /**\n * Whether to show as icon only\n * @default false\n */\n iconOnly?: boolean\n}\n\n/**\n * Pencil/Edit icon component\n */\nfunction PuckIcon({ size = 18 }: { size?: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z\" />\n </svg>\n )\n}\n\n/**\n * Edit with Puck button for use in Payload admin document edit views\n *\n * Links to the Puck editor admin view. The editor is integrated directly\n * into Payload's admin UI.\n *\n * @example\n * ```tsx\n * // In your Payload collection config:\n * {\n * name: 'puckEdit',\n * type: 'ui',\n * admin: {\n * position: 'sidebar',\n * components: {\n * Field: '@delmaredigital/payload-puck/admin/client#EditWithPuckButton',\n * },\n * custom: {\n * label: 'Visual Editor',\n * },\n * },\n * }\n * ```\n */\nexport const EditWithPuckButton: UIFieldClientComponent = (props) => {\n // Get document and config context from Payload\n const { id, collectionSlug } = useDocumentInfo()\n const { config } = useConfig()\n\n // Extract custom props passed via field config\n const customProps = (props as any)?.field?.custom as EditWithPuckButtonProps | undefined\n const label = customProps?.label || 'Visual Editor'\n const iconOnly = customProps?.iconOnly || false\n const collection = customProps?.collectionSlug || collectionSlug || 'pages'\n\n // Get admin route from config\n const adminRoute = config.routes?.admin || '/admin'\n\n // Build editor URL - defaults to admin view\n let editorPath: string\n if (customProps?.editorPathPattern) {\n // Custom pattern provided (for backwards compatibility)\n editorPath = customProps.editorPathPattern\n .replace('{id}', String(id))\n .replace('{collection}', collection)\n } else {\n // Default: use admin view\n editorPath = `${adminRoute}/puck-editor/${collection}/${id}`\n }\n\n if (!id) {\n return null\n }\n\n return (\n <div style={{ marginBottom: '1rem' }}>\n <a\n href={editorPath}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n padding: iconOnly ? '8px' : '10px 16px',\n backgroundColor: 'var(--theme-success-500, #22c55e)',\n color: 'white',\n borderRadius: '6px',\n textDecoration: 'none',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'background-color 0.15s, opacity 0.15s',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.opacity = '0.9'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.opacity = '1'\n }}\n title={iconOnly ? label : undefined}\n >\n <PuckIcon size={iconOnly ? 20 : 18} />\n {!iconOnly && label}\n </a>\n </div>\n )\n}\n\n/**\n * Standalone version of the button that doesn't rely on Payload context\n *\n * @example\n * ```tsx\n * <EditWithPuckLink\n * id=\"123\"\n * collectionSlug=\"pages\"\n * adminRoute=\"/admin\"\n * />\n * ```\n */\nexport function EditWithPuckLink({\n id,\n collectionSlug = 'pages',\n editorPathPattern,\n label = 'Visual Editor',\n iconOnly = false,\n}: EditWithPuckButtonProps & { id: string; adminRoute?: string }) {\n // Build path - prefer admin view by default\n const path = editorPathPattern\n ? editorPathPattern.replace('{id}', id).replace('{collection}', collectionSlug)\n : `/admin/puck-editor/${collectionSlug}/${id}`\n\n return (\n <a\n href={path}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n padding: iconOnly ? '8px' : '10px 16px',\n backgroundColor: 'var(--theme-success-500, #22c55e)',\n color: 'white',\n borderRadius: '6px',\n textDecoration: 'none',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'opacity 0.15s',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.opacity = '0.9'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.opacity = '1'\n }}\n title={iconOnly ? label : undefined}\n >\n <PuckIcon size={iconOnly ? 20 : 18} />\n {!iconOnly && label}\n </a>\n )\n}\n\nexport default EditWithPuckButton\n"],"names":["useDocumentInfo","useConfig","PuckIcon","size","svg","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","path","d","EditWithPuckButton","props","id","collectionSlug","config","customProps","field","custom","label","iconOnly","collection","adminRoute","routes","admin","editorPath","editorPathPattern","replace","String","div","style","marginBottom","a","href","display","alignItems","gap","padding","backgroundColor","color","borderRadius","textDecoration","fontSize","fontWeight","transition","onMouseEnter","e","currentTarget","opacity","onMouseLeave","title","undefined","EditWithPuckLink"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditWithPuckCell.d.ts","sourceRoot":"","sources":["../../src/admin/EditWithPuckCell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAwBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAoDhE,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/admin/EditWithPuckCell.tsx"],"sourcesContent":["'use client'\n\nimport type { DefaultCellComponentProps } from 'payload'\n\n/**\n * Props for configuring the EditWithPuckCell component\n */\nexport interface EditWithPuckCellConfig {\n /**\n * Collection slug for building the editor URL\n * @default 'pages'\n */\n collectionSlug?: string\n /**\n * Custom editor path pattern\n * Use {id} as placeholder for the document ID\n * @default '/admin/puck/{collectionSlug}/{id}/edit'\n */\n editorPathPattern?: string\n}\n\n/**\n * Pencil/Edit icon component\n */\nfunction PuckIcon({ size = 16 }: { size?: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z\" />\n </svg>\n )\n}\n\n/**\n * Custom cell component that renders an \"Edit with Puck\" button in list views\n *\n * Add this to a UI field in your collection to show the visual editor button\n * in the list view table.\n *\n * @example\n * ```ts\n * // In your collection config:\n * {\n * name: 'puckEdit',\n * type: 'ui',\n * admin: {\n * components: {\n * Cell: '@delmaredigital/payload-puck/admin#EditWithPuckCell',\n * },\n * custom: {\n * collectionSlug: 'pages',\n * },\n * },\n * }\n * ```\n */\nexport const EditWithPuckCell: React.FC<DefaultCellComponentProps> = ({\n rowData,\n field,\n collectionSlug: contextCollectionSlug,\n}) => {\n // Get document ID from row data\n const id = rowData?.id as string | undefined\n\n // Get custom config from field\n const customConfig = (field as any)?.custom as EditWithPuckCellConfig | undefined\n const collectionSlug = customConfig?.collectionSlug || contextCollectionSlug || 'pages'\n\n if (!id) {\n return null\n }\n\n // Build editor URL\n const editorPath = customConfig?.editorPathPattern\n ? customConfig.editorPathPattern.replace('{id}', id).replace('{collectionSlug}', collectionSlug)\n : `/admin/puck/${collectionSlug}/${id}/edit`\n\n return (\n <a\n href={editorPath}\n onClick={(e) => e.stopPropagation()}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '6px 10px',\n backgroundColor: '#2563eb',\n color: '#fff',\n borderRadius: '4px',\n textDecoration: 'none',\n fontSize: '12px',\n fontWeight: 500,\n gap: '4px',\n transition: 'background-color 0.2s',\n whiteSpace: 'nowrap',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#1d4ed8'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#2563eb'\n }}\n title=\"Visual Editor\"\n >\n <PuckIcon size={14} />\n <span>Visual Editor</span>\n </a>\n )\n}\n\nexport default EditWithPuckCell\n"],"names":["PuckIcon","size","svg","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","path","d","EditWithPuckCell","rowData","field","collectionSlug","contextCollectionSlug","id","customConfig","custom","editorPath","editorPathPattern","replace","a","href","onClick","e","stopPropagation","style","display","alignItems","justifyContent","padding","backgroundColor","color","borderRadius","textDecoration","fontSize","fontWeight","gap","transition","whiteSpace","onMouseEnter","currentTarget","onMouseLeave","title","span"],"mappings":"AAAA;;AAqBA;;CAEC,GACD,SAASA,SAAS,EAAEC,OAAO,EAAE,EAAqB;IAChD,qBACE,MAACC;QACCC,OAAM;QACNC,OAAOH;QACPI,QAAQJ;QACRK,SAAQ;QACRC,MAAK;QACLC,QAAO;QACPC,aAAY;QACZC,eAAc;QACdC,gBAAe;;0BAEf,KAACC;gBAAKC,GAAE;;0BACR,KAACD;gBAAKC,GAAE;;;;AAGd;AAEA;;;;;;;;;;;;;;;;;;;;;;CAsBC,GACD,OAAO,MAAMC,mBAAwD,CAAC,EACpEC,OAAO,EACPC,KAAK,EACLC,gBAAgBC,qBAAqB,EACtC;IACC,gCAAgC;IAChC,MAAMC,KAAKJ,SAASI;IAEpB,+BAA+B;IAC/B,MAAMC,eAAgBJ,OAAeK;IACrC,MAAMJ,iBAAiBG,cAAcH,kBAAkBC,yBAAyB;IAEhF,IAAI,CAACC,IAAI;QACP,OAAO;IACT;IAEA,mBAAmB;IACnB,MAAMG,aAAaF,cAAcG,oBAC7BH,aAAaG,iBAAiB,CAACC,OAAO,CAAC,QAAQL,IAAIK,OAAO,CAAC,oBAAoBP,kBAC/E,CAAC,YAAY,EAAEA,eAAe,CAAC,EAAEE,GAAG,KAAK,CAAC;IAE9C,qBACE,MAACM;QACCC,MAAMJ;QACNK,SAAS,CAACC,IAAMA,EAAEC,eAAe;QACjCC,OAAO;YACLC,SAAS;YACTC,YAAY;YACZC,gBAAgB;YAChBC,SAAS;YACTC,iBAAiB;YACjBC,OAAO;YACPC,cAAc;YACdC,gBAAgB;YAChBC,UAAU;YACVC,YAAY;YACZC,KAAK;YACLC,YAAY;YACZC,YAAY;QACd;QACAC,cAAc,CAAChB;YACbA,EAAEiB,aAAa,CAACf,KAAK,CAACK,eAAe,GAAG;QAC1C;QACAW,cAAc,CAAClB;YACbA,EAAEiB,aAAa,CAACf,KAAK,CAACK,eAAe,GAAG;QAC1C;QACAY,OAAM;;0BAEN,KAAC/C;gBAASC,MAAM;;0BAChB,KAAC+C;0BAAK;;;;AAGZ,EAAC;AAED,eAAelC,iBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PuckEditorView.d.ts","sourceRoot":"","sources":["../../src/admin/PuckEditorView.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,IAAI,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IAChD;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACtE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACrC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,cAAwB,EACxB,WAAyB,EACzB,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAwB,EACxB,OAAO,EACP,aAAa,EACb,WAAW,GACZ,EAAE,mBAAmB,+BAkKrB;AAED,eAAe,cAAc,CAAA"}
@@ -1 +0,0 @@
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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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateAdminComponents.d.ts","sourceRoot":"","sources":["../../src/admin/generateAdminComponents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,GAAE,qBAA0B,GAAG,KAAK,CAwB/E"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiContext.d.ts","sourceRoot":"","sources":["../../../src/ai/collections/AiContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBA0EjC,CAAA"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiPrompts.d.ts","sourceRoot":"","sources":["../../../src/ai/collections/AiPrompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAsDjC,CAAA"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createAiApiRoutes.d.ts","sourceRoot":"","sources":["../../src/ai/createAiApiRoutes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,CAkFrF"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createAiGenerate.d.ts","sourceRoot":"","sources":["../../src/ai/createAiGenerate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAqB,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,CAkD7E"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createAiPlugin.d.ts","sourceRoot":"","sources":["../../src/ai/createAiPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,UAAU,CA2BxE"}
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"useAiContext.d.ts","sourceRoot":"","sources":["../../../src/ai/hooks/useAiContext.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,qCAAqC;AACrC,eAAO,MAAM,wBAAwB,4BAA4B,CAAA;AAEjE;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,iCAAiC;IACjC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC9F,uCAAuC;IACvC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC3E,6BAA6B;IAC7B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACzC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,kBAAkB,CA4IlF"}
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"useAiPrompts.d.ts","sourceRoot":"","sources":["../../../src/ai/hooks/useAiPrompts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,oCAAoC;AACpC,eAAO,MAAM,wBAAwB,4BAA4B,CAAA;AAEjE;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,WAAW,GAAE,MAA+B,EAC5C,OAAO,GAAE,OAAc,GACtB;IACD,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B,CA0DA"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,8BAA8B,CAAA;AAMrC,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;AAMpE,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAA;AAMhC,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAA;AAMzB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAGvE,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,kCAAkC,CAAA;AAGzC,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,cAAc,EAEd,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAM3B,YAAY,EAEV,MAAM,EACN,aAAa,EAEb,SAAS,EACT,aAAa,EACb,iBAAiB,EAEjB,kBAAkB,EAClB,mBAAmB,EAEnB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAElB,eAAe,EACf,eAAe,EACf,yBAAyB,EAEzB,oBAAoB,EAEpB,QAAQ,EAER,SAAS,EACT,0BAA0B,EAE1B,kBAAkB,GACnB,MAAM,YAAY,CAAA"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}