@delmaredigital/payload-puck 0.6.12 → 0.6.14

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 (697) hide show
  1. package/README.md +50 -1
  2. package/dist/admin/EditWithPuckButton.d.ts +1 -2
  3. package/dist/admin/EditWithPuckButton.js +64 -26
  4. package/dist/admin/EditWithPuckCell.d.ts +0 -1
  5. package/dist/admin/EditWithPuckCell.js +42 -14
  6. package/dist/admin/PuckEditorView.d.ts +1 -2
  7. package/dist/admin/PuckEditorView.js +117 -33
  8. package/dist/admin/client.d.ts +2 -3
  9. package/dist/admin/client.js +3 -5
  10. package/dist/admin/generateAdminComponents.d.ts +0 -1
  11. package/dist/admin/generateAdminComponents.js +6 -8
  12. package/dist/admin/index.d.ts +5 -6
  13. package/dist/admin/index.js +2 -3
  14. package/dist/ai/collections/AiContext.d.ts +0 -1
  15. package/dist/ai/collections/AiContext.js +55 -30
  16. package/dist/ai/collections/AiPrompts.d.ts +0 -1
  17. package/dist/ai/collections/AiPrompts.js +23 -20
  18. package/dist/ai/createAiApiRoutes.d.ts +0 -1
  19. package/dist/ai/createAiApiRoutes.js +27 -20
  20. package/dist/ai/createAiGenerate.d.ts +0 -1
  21. package/dist/ai/createAiGenerate.js +6 -9
  22. package/dist/ai/createAiPlugin.d.ts +0 -1
  23. package/dist/ai/createAiPlugin.js +6 -10
  24. package/dist/ai/hooks/useAiContext.d.ts +0 -1
  25. package/dist/ai/hooks/useAiContext.js +49 -40
  26. package/dist/ai/hooks/useAiPrompts.d.ts +0 -1
  27. package/dist/ai/hooks/useAiPrompts.js +32 -26
  28. package/dist/ai/index.d.ts +0 -1
  29. package/dist/ai/index.js +8 -11
  30. package/dist/ai/plugins/ContextEditorPanel.d.ts +1 -2
  31. package/dist/ai/plugins/ContextEditorPanel.js +398 -108
  32. package/dist/ai/plugins/PromptEditorPanel.d.ts +1 -2
  33. package/dist/ai/plugins/PromptEditorPanel.js +236 -52
  34. package/dist/ai/plugins/contextEditorPlugin.d.ts +0 -1
  35. package/dist/ai/plugins/contextEditorPlugin.js +11 -6
  36. package/dist/ai/plugins/promptApiRoutes.d.ts +0 -1
  37. package/dist/ai/plugins/promptApiRoutes.js +118 -51
  38. package/dist/ai/plugins/promptEditorPlugin.d.ts +0 -1
  39. package/dist/ai/plugins/promptEditorPlugin.js +11 -6
  40. package/dist/ai/presets/componentAiDefaults.d.ts +0 -1
  41. package/dist/ai/presets/componentAiDefaults.js +107 -84
  42. package/dist/ai/presets/index.d.ts +0 -1
  43. package/dist/ai/presets/index.js +11 -19
  44. package/dist/ai/presets/instructions/interactive.d.ts +0 -1
  45. package/dist/ai/presets/instructions/interactive.js +84 -76
  46. package/dist/ai/presets/instructions/layout.d.ts +0 -1
  47. package/dist/ai/presets/instructions/layout.js +121 -118
  48. package/dist/ai/presets/instructions/media.d.ts +0 -1
  49. package/dist/ai/presets/instructions/media.js +30 -30
  50. package/dist/ai/presets/instructions/pagePatterns.d.ts +0 -1
  51. package/dist/ai/presets/instructions/pagePatterns.js +3 -7
  52. package/dist/ai/presets/instructions/schemas.d.ts +0 -1
  53. package/dist/ai/presets/instructions/schemas.js +494 -138
  54. package/dist/ai/presets/instructions/typography.d.ts +0 -1
  55. package/dist/ai/presets/instructions/typography.js +37 -34
  56. package/dist/ai/tools/index.d.ts +0 -1
  57. package/dist/ai/tools/index.js +91 -56
  58. package/dist/ai/types.d.ts +0 -1
  59. package/dist/ai/types.js +6 -2
  60. package/dist/ai/utils/injectAiConfig.d.ts +0 -1
  61. package/dist/ai/utils/injectAiConfig.js +32 -41
  62. package/dist/api/createPuckApiRoutes.d.ts +1 -2
  63. package/dist/api/createPuckApiRoutes.js +122 -66
  64. package/dist/api/createPuckApiRoutesVersions.d.ts +1 -2
  65. package/dist/api/createPuckApiRoutesVersions.js +87 -38
  66. package/dist/api/createPuckApiRoutesWithId.d.ts +1 -2
  67. package/dist/api/createPuckApiRoutesWithId.js +165 -73
  68. package/dist/api/index.d.ts +5 -6
  69. package/dist/api/index.js +5 -7
  70. package/dist/api/payload-config.d.js +14 -0
  71. package/dist/api/types.d.ts +0 -1
  72. package/dist/api/types.js +3 -2
  73. package/dist/api/utils/mapRootProps.d.ts +1 -2
  74. package/dist/api/utils/mapRootProps.js +76 -45
  75. package/dist/collections/Templates.d.ts +0 -1
  76. package/dist/collections/Templates.js +23 -21
  77. package/dist/components/AccordionClient.d.ts +2 -3
  78. package/dist/components/AccordionClient.js +80 -23
  79. package/dist/components/AnimatedWrapper.d.ts +2 -3
  80. package/dist/components/AnimatedWrapper.js +30 -17
  81. package/dist/components/exports.d.ts +0 -1
  82. package/dist/components/exports.js +1 -3
  83. package/dist/components/index.d.ts +5 -6
  84. package/dist/components/index.js +6 -8
  85. package/dist/components/interactive/Accordion.d.ts +1 -2
  86. package/dist/components/interactive/Accordion.js +148 -56
  87. package/dist/components/interactive/Accordion.server.d.ts +1 -2
  88. package/dist/components/interactive/Accordion.server.js +24 -8
  89. package/dist/components/interactive/Button.d.ts +3 -4
  90. package/dist/components/interactive/Button.js +88 -44
  91. package/dist/components/interactive/Button.server.d.ts +2 -3
  92. package/dist/components/interactive/Button.server.js +39 -21
  93. package/dist/components/interactive/Card.d.ts +3 -4
  94. package/dist/components/interactive/Card.js +130 -40
  95. package/dist/components/interactive/Card.server.d.ts +3 -4
  96. package/dist/components/interactive/Card.server.js +71 -12
  97. package/dist/components/interactive/Divider.d.ts +1 -2
  98. package/dist/components/interactive/Divider.js +53 -27
  99. package/dist/components/interactive/Divider.server.d.ts +1 -2
  100. package/dist/components/interactive/Divider.server.js +27 -13
  101. package/dist/components/interactive/index.d.ts +4 -5
  102. package/dist/components/interactive/index.js +4 -6
  103. package/dist/components/layout/Container.d.ts +1 -2
  104. package/dist/components/layout/Container.js +100 -48
  105. package/dist/components/layout/Container.server.d.ts +1 -2
  106. package/dist/components/layout/Container.server.js +66 -20
  107. package/dist/components/layout/Flex.d.ts +2 -3
  108. package/dist/components/layout/Flex.js +123 -56
  109. package/dist/components/layout/Flex.server.d.ts +1 -2
  110. package/dist/components/layout/Flex.server.js +49 -15
  111. package/dist/components/layout/Grid.d.ts +1 -2
  112. package/dist/components/layout/Grid.js +92 -45
  113. package/dist/components/layout/Grid.server.d.ts +1 -2
  114. package/dist/components/layout/Grid.server.js +55 -15
  115. package/dist/components/layout/Section.d.ts +1 -2
  116. package/dist/components/layout/Section.js +146 -65
  117. package/dist/components/layout/Section.server.d.ts +1 -2
  118. package/dist/components/layout/Section.server.js +91 -29
  119. package/dist/components/layout/Spacer.d.ts +1 -2
  120. package/dist/components/layout/Spacer.js +79 -31
  121. package/dist/components/layout/Spacer.server.d.ts +1 -2
  122. package/dist/components/layout/Spacer.server.js +30 -10
  123. package/dist/components/layout/Template.d.ts +1 -2
  124. package/dist/components/layout/Template.js +57 -31
  125. package/dist/components/layout/Template.server.d.ts +1 -2
  126. package/dist/components/layout/Template.server.js +42 -12
  127. package/dist/components/layout/index.d.ts +8 -9
  128. package/dist/components/layout/index.js +7 -9
  129. package/dist/components/media/Image.d.ts +3 -4
  130. package/dist/components/media/Image.js +121 -40
  131. package/dist/components/media/Image.server.d.ts +3 -4
  132. package/dist/components/media/Image.server.js +75 -14
  133. package/dist/components/media/index.d.ts +1 -2
  134. package/dist/components/media/index.js +1 -3
  135. package/dist/components/typography/Heading.d.ts +2 -3
  136. package/dist/components/typography/Heading.js +44 -26
  137. package/dist/components/typography/Heading.server.d.ts +2 -3
  138. package/dist/components/typography/Heading.server.js +15 -11
  139. package/dist/components/typography/RichText.editor.d.ts +1 -2
  140. package/dist/components/typography/RichText.editor.js +43 -20
  141. package/dist/components/typography/RichText.server.d.ts +2 -3
  142. package/dist/components/typography/RichText.server.js +32 -15
  143. package/dist/components/typography/Text.d.ts +2 -3
  144. package/dist/components/typography/Text.js +48 -24
  145. package/dist/components/typography/Text.server.d.ts +2 -3
  146. package/dist/components/typography/Text.server.js +20 -9
  147. package/dist/components/typography/index.d.ts +4 -5
  148. package/dist/components/typography/index.js +4 -6
  149. package/dist/config/config.editor.d.ts +3 -4
  150. package/dist/config/config.editor.js +118 -55
  151. package/dist/config/index.d.ts +4 -5
  152. package/dist/config/index.js +61 -36
  153. package/dist/config/merge.d.ts +1 -2
  154. package/dist/config/merge.js +22 -27
  155. package/dist/config/presets.d.ts +4 -5
  156. package/dist/config/presets.js +194 -76
  157. package/dist/config/types.d.ts +0 -1
  158. package/dist/config/types.js +5 -3
  159. package/dist/editor/PuckEditor.d.ts +4 -5
  160. package/dist/editor/PuckEditor.js +161 -71
  161. package/dist/editor/PuckEditorImpl.client.d.ts +4 -5
  162. package/dist/editor/PuckEditorImpl.client.js +303 -153
  163. package/dist/editor/components/DarkModeStyles.d.ts +0 -1
  164. package/dist/editor/components/DarkModeStyles.js +10 -13
  165. package/dist/editor/components/HeaderActions.d.ts +0 -1
  166. package/dist/editor/components/HeaderActions.js +307 -65
  167. package/dist/editor/components/IframeWrapper.d.ts +1 -2
  168. package/dist/editor/components/IframeWrapper.js +81 -59
  169. package/dist/editor/components/LoadingState.d.ts +1 -2
  170. package/dist/editor/components/LoadingState.js +16 -4
  171. package/dist/editor/components/PreviewModal.d.ts +0 -1
  172. package/dist/editor/components/PreviewModal.js +233 -79
  173. package/dist/editor/components/PreviewModeToggle.d.ts +0 -1
  174. package/dist/editor/components/PreviewModeToggle.js +42 -16
  175. package/dist/editor/components/VersionHistory.d.ts +0 -1
  176. package/dist/editor/components/VersionHistory.js +218 -72
  177. package/dist/editor/hooks/useDarkMode.d.ts +0 -1
  178. package/dist/editor/hooks/useDarkMode.js +35 -24
  179. package/dist/editor/hooks/useUnsavedChanges.d.ts +0 -1
  180. package/dist/editor/hooks/useUnsavedChanges.js +7 -9
  181. package/dist/editor/index.d.ts +0 -1
  182. package/dist/editor/index.js +4 -7
  183. package/dist/editor/plugins/VersionHistoryPanel.d.ts +0 -1
  184. package/dist/editor/plugins/VersionHistoryPanel.js +235 -76
  185. package/dist/editor/plugins/index.d.ts +0 -1
  186. package/dist/editor/plugins/index.js +3 -5
  187. package/dist/editor/plugins/versionHistoryPlugin.d.ts +0 -1
  188. package/dist/editor/plugins/versionHistoryPlugin.js +9 -9
  189. package/dist/editor/utils/detectPageTree.d.ts +0 -1
  190. package/dist/editor/utils/detectPageTree.js +4 -6
  191. package/dist/editor/utils/index.d.ts +0 -1
  192. package/dist/editor/utils/index.js +0 -1
  193. package/dist/editor/utils/injectPageTreeFields.d.ts +0 -1
  194. package/dist/editor/utils/injectPageTreeFields.js +12 -10
  195. package/dist/endpoints/ai.d.ts +0 -1
  196. package/dist/endpoints/ai.js +57 -35
  197. package/dist/endpoints/context.d.ts +0 -1
  198. package/dist/endpoints/context.js +85 -41
  199. package/dist/endpoints/index.d.ts +0 -1
  200. package/dist/endpoints/index.js +152 -77
  201. package/dist/endpoints/postcss.d.js +4 -0
  202. package/dist/endpoints/prompts.d.ts +0 -1
  203. package/dist/endpoints/prompts.js +80 -40
  204. package/dist/endpoints/styles.d.ts +0 -1
  205. package/dist/endpoints/styles.js +33 -37
  206. package/dist/exports/client.d.ts +0 -1
  207. package/dist/exports/client.js +1 -3
  208. package/dist/exports/rsc.d.ts +0 -1
  209. package/dist/exports/rsc.js +1 -3
  210. package/dist/fields/AlignmentField.d.ts +1 -2
  211. package/dist/fields/AlignmentField.js +92 -31
  212. package/dist/fields/AnimationField.d.ts +2 -3
  213. package/dist/fields/AnimationField.js +557 -85
  214. package/dist/fields/BackgroundField.d.ts +2 -3
  215. package/dist/fields/BackgroundField.js +753 -121
  216. package/dist/fields/BorderField.d.ts +2 -3
  217. package/dist/fields/BorderField.js +274 -74
  218. package/dist/fields/ColorPickerField.d.ts +2 -3
  219. package/dist/fields/ColorPickerField.js +209 -69
  220. package/dist/fields/ContentAlignmentField.d.ts +1 -2
  221. package/dist/fields/ContentAlignmentField.js +160 -76
  222. package/dist/fields/DimensionsField.d.ts +2 -3
  223. package/dist/fields/DimensionsField.js +574 -147
  224. package/dist/fields/FlexAlignmentField.d.ts +2 -3
  225. package/dist/fields/FlexAlignmentField.js +188 -52
  226. package/dist/fields/FolderPickerField.d.ts +8 -2
  227. package/dist/fields/FolderPickerField.js +287 -76
  228. package/dist/fields/GradientEditor.d.ts +2 -3
  229. package/dist/fields/GradientEditor.js +461 -87
  230. package/dist/fields/LockedField.d.ts +15 -3
  231. package/dist/fields/LockedField.js +179 -50
  232. package/dist/fields/MarginField.d.ts +2 -3
  233. package/dist/fields/MarginField.js +143 -47
  234. package/dist/fields/MediaField.d.ts +1 -2
  235. package/dist/fields/MediaField.js +687 -187
  236. package/dist/fields/PaddingField.d.ts +2 -3
  237. package/dist/fields/PaddingField.js +143 -47
  238. package/dist/fields/PageSegmentField.d.ts +15 -3
  239. package/dist/fields/PageSegmentField.js +155 -55
  240. package/dist/fields/ResetField.d.ts +1 -2
  241. package/dist/fields/ResetField.js +58 -32
  242. package/dist/fields/ResponsiveField.d.ts +1 -2
  243. package/dist/fields/ResponsiveField.js +232 -91
  244. package/dist/fields/ResponsiveVisibilityField.d.ts +2 -3
  245. package/dist/fields/ResponsiveVisibilityField.js +118 -37
  246. package/dist/fields/SizeField.d.ts +3 -4
  247. package/dist/fields/SizeField.js +225 -53
  248. package/dist/fields/SlugPreviewField.d.ts +8 -2
  249. package/dist/fields/SlugPreviewField.js +64 -17
  250. package/dist/fields/TemplateField.d.ts +1 -2
  251. package/dist/fields/TemplateField.js +361 -121
  252. package/dist/fields/TransformField.d.ts +2 -3
  253. package/dist/fields/TransformField.js +516 -82
  254. package/dist/fields/VerticalAlignmentField.d.ts +1 -2
  255. package/dist/fields/VerticalAlignmentField.js +92 -31
  256. package/dist/fields/WidthField.d.ts +2 -3
  257. package/dist/fields/WidthField.js +277 -82
  258. package/dist/fields/index.d.ts +41 -42
  259. package/dist/fields/index.js +36 -44
  260. package/dist/fields/richtext/controls/ColorPickerControl.d.ts +13 -3
  261. package/dist/fields/richtext/controls/ColorPickerControl.js +211 -48
  262. package/dist/fields/richtext/controls/DropdownPortal.d.ts +2 -3
  263. package/dist/fields/richtext/controls/DropdownPortal.js +35 -5
  264. package/dist/fields/richtext/controls/FontSizeControl.d.ts +9 -2
  265. package/dist/fields/richtext/controls/FontSizeControl.js +108 -25
  266. package/dist/fields/richtext/controls/HighlightControl.d.ts +12 -2
  267. package/dist/fields/richtext/controls/HighlightControl.js +53 -18
  268. package/dist/fields/richtext/controls/index.d.ts +5 -6
  269. package/dist/fields/richtext/controls/index.js +7 -12
  270. package/dist/fields/richtext/controls/shared.d.ts +0 -1
  271. package/dist/fields/richtext/controls/shared.js +107 -64
  272. package/dist/fields/richtext/createRichTextField.d.ts +18 -5
  273. package/dist/fields/richtext/createRichTextField.js +112 -27
  274. package/dist/fields/richtext/extensions/FontSize.d.ts +0 -1
  275. package/dist/fields/richtext/extensions/FontSize.js +25 -21
  276. package/dist/fields/richtext/extensions/index.d.ts +1 -2
  277. package/dist/fields/richtext/extensions/index.js +1 -3
  278. package/dist/fields/richtext/index.d.ts +6 -7
  279. package/dist/fields/richtext/index.js +7 -9
  280. package/dist/fields/shared.d.ts +1 -2
  281. package/dist/fields/shared.js +914 -479
  282. package/dist/hooks/index.d.ts +2 -3
  283. package/dist/hooks/index.js +2 -4
  284. package/dist/hooks/useResponsiveStyles.d.ts +1 -2
  285. package/dist/hooks/useResponsiveStyles.js +35 -33
  286. package/dist/hooks/useScrollAnimation.d.ts +0 -1
  287. package/dist/hooks/useScrollAnimation.js +25 -25
  288. package/dist/index.d.ts +4 -5
  289. package/dist/index.js +4 -6
  290. package/dist/layouts/LayoutWrapper.d.ts +3 -4
  291. package/dist/layouts/LayoutWrapper.js +114 -52
  292. package/dist/layouts/defaults.d.ts +1 -2
  293. package/dist/layouts/defaults.js +22 -32
  294. package/dist/layouts/index.d.ts +4 -5
  295. package/dist/layouts/index.js +4 -5
  296. package/dist/layouts/types.d.ts +0 -1
  297. package/dist/layouts/types.js +3 -3
  298. package/dist/layouts/utils.d.ts +1 -2
  299. package/dist/layouts/utils.js +31 -41
  300. package/dist/next/index.d.ts +0 -1
  301. package/dist/next/index.js +30 -35
  302. package/dist/plugin/collections/Pages.d.ts +2 -3
  303. package/dist/plugin/collections/Pages.js +45 -44
  304. package/dist/plugin/fields/index.d.ts +3 -4
  305. package/dist/plugin/fields/index.js +99 -79
  306. package/dist/plugin/fields/types.d.ts +1 -2
  307. package/dist/plugin/fields/types.js +25 -3
  308. package/dist/plugin/hooks/index.d.ts +1 -2
  309. package/dist/plugin/hooks/index.js +1 -3
  310. package/dist/plugin/hooks/isHomepageUnique.d.ts +0 -1
  311. package/dist/plugin/hooks/isHomepageUnique.js +27 -20
  312. package/dist/plugin/index.d.ts +8 -9
  313. package/dist/plugin/index.js +189 -189
  314. package/dist/render/HybridPageRenderer.d.ts +2 -3
  315. package/dist/render/HybridPageRenderer.js +57 -11
  316. package/dist/render/PageRenderer.d.ts +2 -3
  317. package/dist/render/PageRenderer.js +30 -15
  318. package/dist/render/PuckEditor.client.d.ts +1 -2
  319. package/dist/render/PuckEditor.client.js +32 -17
  320. package/dist/render/index.d.ts +5 -6
  321. package/dist/render/index.js +4 -7
  322. package/dist/styles/puck-dark-mode.css +101 -0
  323. package/dist/theme/context.d.ts +2 -3
  324. package/dist/theme/context.js +20 -19
  325. package/dist/theme/defaults.d.ts +1 -2
  326. package/dist/theme/defaults.js +82 -38
  327. package/dist/theme/example.d.ts +1 -2
  328. package/dist/theme/example.js +67 -31
  329. package/dist/theme/index.d.ts +5 -6
  330. package/dist/theme/index.js +5 -6
  331. package/dist/theme/types.d.ts +0 -1
  332. package/dist/theme/types.js +5 -3
  333. package/dist/theme/utils.d.ts +1 -2
  334. package/dist/theme/utils.js +23 -26
  335. package/dist/types/index.d.ts +6 -7
  336. package/dist/types/index.js +2 -2
  337. package/dist/utils/index.d.ts +2 -3
  338. package/dist/utils/index.js +12 -23
  339. package/dist/utils/migration.d.ts +1 -2
  340. package/dist/utils/migration.js +42 -50
  341. package/dist/utils/validation.d.ts +1 -2
  342. package/dist/utils/validation.js +35 -44
  343. package/dist/version.d.ts +1 -2
  344. package/dist/version.js +1 -2
  345. package/dist/views/PuckConfigContext.d.ts +1 -2
  346. package/dist/views/PuckConfigContext.js +24 -11
  347. package/dist/views/PuckEditorView.d.ts +1 -2
  348. package/dist/views/PuckEditorView.js +105 -39
  349. package/dist/views/index.d.ts +0 -1
  350. package/dist/views/index.js +1 -3
  351. package/package.json +62 -42
  352. package/dist/admin/EditWithPuckButton.d.ts.map +0 -1
  353. package/dist/admin/EditWithPuckButton.js.map +0 -1
  354. package/dist/admin/EditWithPuckCell.d.ts.map +0 -1
  355. package/dist/admin/EditWithPuckCell.js.map +0 -1
  356. package/dist/admin/PuckEditorView.d.ts.map +0 -1
  357. package/dist/admin/PuckEditorView.js.map +0 -1
  358. package/dist/admin/client.d.ts.map +0 -1
  359. package/dist/admin/client.js.map +0 -1
  360. package/dist/admin/generateAdminComponents.d.ts.map +0 -1
  361. package/dist/admin/generateAdminComponents.js.map +0 -1
  362. package/dist/admin/index.d.ts.map +0 -1
  363. package/dist/admin/index.js.map +0 -1
  364. package/dist/ai/collections/AiContext.d.ts.map +0 -1
  365. package/dist/ai/collections/AiContext.js.map +0 -1
  366. package/dist/ai/collections/AiPrompts.d.ts.map +0 -1
  367. package/dist/ai/collections/AiPrompts.js.map +0 -1
  368. package/dist/ai/createAiApiRoutes.d.ts.map +0 -1
  369. package/dist/ai/createAiApiRoutes.js.map +0 -1
  370. package/dist/ai/createAiGenerate.d.ts.map +0 -1
  371. package/dist/ai/createAiGenerate.js.map +0 -1
  372. package/dist/ai/createAiPlugin.d.ts.map +0 -1
  373. package/dist/ai/createAiPlugin.js.map +0 -1
  374. package/dist/ai/hooks/useAiContext.d.ts.map +0 -1
  375. package/dist/ai/hooks/useAiContext.js.map +0 -1
  376. package/dist/ai/hooks/useAiPrompts.d.ts.map +0 -1
  377. package/dist/ai/hooks/useAiPrompts.js.map +0 -1
  378. package/dist/ai/index.d.ts.map +0 -1
  379. package/dist/ai/index.js.map +0 -1
  380. package/dist/ai/plugins/ContextEditorPanel.d.ts.map +0 -1
  381. package/dist/ai/plugins/ContextEditorPanel.js.map +0 -1
  382. package/dist/ai/plugins/PromptEditorPanel.d.ts.map +0 -1
  383. package/dist/ai/plugins/PromptEditorPanel.js.map +0 -1
  384. package/dist/ai/plugins/contextEditorPlugin.d.ts.map +0 -1
  385. package/dist/ai/plugins/contextEditorPlugin.js.map +0 -1
  386. package/dist/ai/plugins/promptApiRoutes.d.ts.map +0 -1
  387. package/dist/ai/plugins/promptApiRoutes.js.map +0 -1
  388. package/dist/ai/plugins/promptEditorPlugin.d.ts.map +0 -1
  389. package/dist/ai/plugins/promptEditorPlugin.js.map +0 -1
  390. package/dist/ai/presets/componentAiDefaults.d.ts.map +0 -1
  391. package/dist/ai/presets/componentAiDefaults.js.map +0 -1
  392. package/dist/ai/presets/index.d.ts.map +0 -1
  393. package/dist/ai/presets/index.js.map +0 -1
  394. package/dist/ai/presets/instructions/interactive.d.ts.map +0 -1
  395. package/dist/ai/presets/instructions/interactive.js.map +0 -1
  396. package/dist/ai/presets/instructions/layout.d.ts.map +0 -1
  397. package/dist/ai/presets/instructions/layout.js.map +0 -1
  398. package/dist/ai/presets/instructions/media.d.ts.map +0 -1
  399. package/dist/ai/presets/instructions/media.js.map +0 -1
  400. package/dist/ai/presets/instructions/pagePatterns.d.ts.map +0 -1
  401. package/dist/ai/presets/instructions/pagePatterns.js.map +0 -1
  402. package/dist/ai/presets/instructions/schemas.d.ts.map +0 -1
  403. package/dist/ai/presets/instructions/schemas.js.map +0 -1
  404. package/dist/ai/presets/instructions/typography.d.ts.map +0 -1
  405. package/dist/ai/presets/instructions/typography.js.map +0 -1
  406. package/dist/ai/tools/index.d.ts.map +0 -1
  407. package/dist/ai/tools/index.js.map +0 -1
  408. package/dist/ai/types.d.ts.map +0 -1
  409. package/dist/ai/types.js.map +0 -1
  410. package/dist/ai/utils/injectAiConfig.d.ts.map +0 -1
  411. package/dist/ai/utils/injectAiConfig.js.map +0 -1
  412. package/dist/api/createPuckApiRoutes.d.ts.map +0 -1
  413. package/dist/api/createPuckApiRoutes.js.map +0 -1
  414. package/dist/api/createPuckApiRoutesVersions.d.ts.map +0 -1
  415. package/dist/api/createPuckApiRoutesVersions.js.map +0 -1
  416. package/dist/api/createPuckApiRoutesWithId.d.ts.map +0 -1
  417. package/dist/api/createPuckApiRoutesWithId.js.map +0 -1
  418. package/dist/api/index.d.ts.map +0 -1
  419. package/dist/api/index.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/prompts.d.ts.map +0 -1
  551. package/dist/endpoints/prompts.js.map +0 -1
  552. package/dist/endpoints/styles.d.ts.map +0 -1
  553. package/dist/endpoints/styles.js.map +0 -1
  554. package/dist/exports/client.d.ts.map +0 -1
  555. package/dist/exports/client.js.map +0 -1
  556. package/dist/exports/rsc.d.ts.map +0 -1
  557. package/dist/exports/rsc.js.map +0 -1
  558. package/dist/fields/AlignmentField.d.ts.map +0 -1
  559. package/dist/fields/AlignmentField.js.map +0 -1
  560. package/dist/fields/AnimationField.d.ts.map +0 -1
  561. package/dist/fields/AnimationField.js.map +0 -1
  562. package/dist/fields/BackgroundField.d.ts.map +0 -1
  563. package/dist/fields/BackgroundField.js.map +0 -1
  564. package/dist/fields/BorderField.d.ts.map +0 -1
  565. package/dist/fields/BorderField.js.map +0 -1
  566. package/dist/fields/ColorPickerField.d.ts.map +0 -1
  567. package/dist/fields/ColorPickerField.js.map +0 -1
  568. package/dist/fields/ContentAlignmentField.d.ts.map +0 -1
  569. package/dist/fields/ContentAlignmentField.js.map +0 -1
  570. package/dist/fields/DimensionsField.d.ts.map +0 -1
  571. package/dist/fields/DimensionsField.js.map +0 -1
  572. package/dist/fields/FlexAlignmentField.d.ts.map +0 -1
  573. package/dist/fields/FlexAlignmentField.js.map +0 -1
  574. package/dist/fields/FolderPickerField.d.ts.map +0 -1
  575. package/dist/fields/FolderPickerField.js.map +0 -1
  576. package/dist/fields/GradientEditor.d.ts.map +0 -1
  577. package/dist/fields/GradientEditor.js.map +0 -1
  578. package/dist/fields/LockedField.d.ts.map +0 -1
  579. package/dist/fields/LockedField.js.map +0 -1
  580. package/dist/fields/MarginField.d.ts.map +0 -1
  581. package/dist/fields/MarginField.js.map +0 -1
  582. package/dist/fields/MediaField.d.ts.map +0 -1
  583. package/dist/fields/MediaField.js.map +0 -1
  584. package/dist/fields/PaddingField.d.ts.map +0 -1
  585. package/dist/fields/PaddingField.js.map +0 -1
  586. package/dist/fields/PageSegmentField.d.ts.map +0 -1
  587. package/dist/fields/PageSegmentField.js.map +0 -1
  588. package/dist/fields/ResetField.d.ts.map +0 -1
  589. package/dist/fields/ResetField.js.map +0 -1
  590. package/dist/fields/ResponsiveField.d.ts.map +0 -1
  591. package/dist/fields/ResponsiveField.js.map +0 -1
  592. package/dist/fields/ResponsiveVisibilityField.d.ts.map +0 -1
  593. package/dist/fields/ResponsiveVisibilityField.js.map +0 -1
  594. package/dist/fields/SizeField.d.ts.map +0 -1
  595. package/dist/fields/SizeField.js.map +0 -1
  596. package/dist/fields/SlugPreviewField.d.ts.map +0 -1
  597. package/dist/fields/SlugPreviewField.js.map +0 -1
  598. package/dist/fields/TemplateField.d.ts.map +0 -1
  599. package/dist/fields/TemplateField.js.map +0 -1
  600. package/dist/fields/TransformField.d.ts.map +0 -1
  601. package/dist/fields/TransformField.js.map +0 -1
  602. package/dist/fields/VerticalAlignmentField.d.ts.map +0 -1
  603. package/dist/fields/VerticalAlignmentField.js.map +0 -1
  604. package/dist/fields/WidthField.d.ts.map +0 -1
  605. package/dist/fields/WidthField.js.map +0 -1
  606. package/dist/fields/index.d.ts.map +0 -1
  607. package/dist/fields/index.js.map +0 -1
  608. package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +0 -1
  609. package/dist/fields/richtext/controls/ColorPickerControl.js.map +0 -1
  610. package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +0 -1
  611. package/dist/fields/richtext/controls/DropdownPortal.js.map +0 -1
  612. package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +0 -1
  613. package/dist/fields/richtext/controls/FontSizeControl.js.map +0 -1
  614. package/dist/fields/richtext/controls/HighlightControl.d.ts.map +0 -1
  615. package/dist/fields/richtext/controls/HighlightControl.js.map +0 -1
  616. package/dist/fields/richtext/controls/index.d.ts.map +0 -1
  617. package/dist/fields/richtext/controls/index.js.map +0 -1
  618. package/dist/fields/richtext/controls/shared.d.ts.map +0 -1
  619. package/dist/fields/richtext/controls/shared.js.map +0 -1
  620. package/dist/fields/richtext/createRichTextField.d.ts.map +0 -1
  621. package/dist/fields/richtext/createRichTextField.js.map +0 -1
  622. package/dist/fields/richtext/extensions/FontSize.d.ts.map +0 -1
  623. package/dist/fields/richtext/extensions/FontSize.js.map +0 -1
  624. package/dist/fields/richtext/extensions/index.d.ts.map +0 -1
  625. package/dist/fields/richtext/extensions/index.js.map +0 -1
  626. package/dist/fields/richtext/index.d.ts.map +0 -1
  627. package/dist/fields/richtext/index.js.map +0 -1
  628. package/dist/fields/shared.d.ts.map +0 -1
  629. package/dist/fields/shared.js.map +0 -1
  630. package/dist/hooks/index.d.ts.map +0 -1
  631. package/dist/hooks/index.js.map +0 -1
  632. package/dist/hooks/useResponsiveStyles.d.ts.map +0 -1
  633. package/dist/hooks/useResponsiveStyles.js.map +0 -1
  634. package/dist/hooks/useScrollAnimation.d.ts.map +0 -1
  635. package/dist/hooks/useScrollAnimation.js.map +0 -1
  636. package/dist/index.d.ts.map +0 -1
  637. package/dist/index.js.map +0 -1
  638. package/dist/layouts/LayoutWrapper.d.ts.map +0 -1
  639. package/dist/layouts/LayoutWrapper.js.map +0 -1
  640. package/dist/layouts/defaults.d.ts.map +0 -1
  641. package/dist/layouts/defaults.js.map +0 -1
  642. package/dist/layouts/index.d.ts.map +0 -1
  643. package/dist/layouts/index.js.map +0 -1
  644. package/dist/layouts/types.d.ts.map +0 -1
  645. package/dist/layouts/types.js.map +0 -1
  646. package/dist/layouts/utils.d.ts.map +0 -1
  647. package/dist/layouts/utils.js.map +0 -1
  648. package/dist/next/index.d.ts.map +0 -1
  649. package/dist/next/index.js.map +0 -1
  650. package/dist/plugin/collections/Pages.d.ts.map +0 -1
  651. package/dist/plugin/collections/Pages.js.map +0 -1
  652. package/dist/plugin/fields/index.d.ts.map +0 -1
  653. package/dist/plugin/fields/index.js.map +0 -1
  654. package/dist/plugin/fields/types.d.ts.map +0 -1
  655. package/dist/plugin/fields/types.js.map +0 -1
  656. package/dist/plugin/hooks/index.d.ts.map +0 -1
  657. package/dist/plugin/hooks/index.js.map +0 -1
  658. package/dist/plugin/hooks/isHomepageUnique.d.ts.map +0 -1
  659. package/dist/plugin/hooks/isHomepageUnique.js.map +0 -1
  660. package/dist/plugin/index.d.ts.map +0 -1
  661. package/dist/plugin/index.js.map +0 -1
  662. package/dist/render/HybridPageRenderer.d.ts.map +0 -1
  663. package/dist/render/HybridPageRenderer.js.map +0 -1
  664. package/dist/render/PageRenderer.d.ts.map +0 -1
  665. package/dist/render/PageRenderer.js.map +0 -1
  666. package/dist/render/PuckEditor.client.d.ts.map +0 -1
  667. package/dist/render/PuckEditor.client.js.map +0 -1
  668. package/dist/render/index.d.ts.map +0 -1
  669. package/dist/render/index.js.map +0 -1
  670. package/dist/theme/context.d.ts.map +0 -1
  671. package/dist/theme/context.js.map +0 -1
  672. package/dist/theme/defaults.d.ts.map +0 -1
  673. package/dist/theme/defaults.js.map +0 -1
  674. package/dist/theme/example.d.ts.map +0 -1
  675. package/dist/theme/example.js.map +0 -1
  676. package/dist/theme/index.d.ts.map +0 -1
  677. package/dist/theme/index.js.map +0 -1
  678. package/dist/theme/types.d.ts.map +0 -1
  679. package/dist/theme/types.js.map +0 -1
  680. package/dist/theme/utils.d.ts.map +0 -1
  681. package/dist/theme/utils.js.map +0 -1
  682. package/dist/types/index.d.ts.map +0 -1
  683. package/dist/types/index.js.map +0 -1
  684. package/dist/utils/index.d.ts.map +0 -1
  685. package/dist/utils/index.js.map +0 -1
  686. package/dist/utils/migration.d.ts.map +0 -1
  687. package/dist/utils/migration.js.map +0 -1
  688. package/dist/utils/validation.d.ts.map +0 -1
  689. package/dist/utils/validation.js.map +0 -1
  690. package/dist/version.d.ts.map +0 -1
  691. package/dist/version.js.map +0 -1
  692. package/dist/views/PuckConfigContext.d.ts.map +0 -1
  693. package/dist/views/PuckConfigContext.js.map +0 -1
  694. package/dist/views/PuckEditorView.d.ts.map +0 -1
  695. package/dist/views/PuckEditorView.js.map +0 -1
  696. package/dist/views/index.d.ts.map +0 -1
  697. package/dist/views/index.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useState, useCallback, useMemo, useRef, createElement } from 'react';
4
4
  import { useRouter } from 'next/navigation';
5
5
  import { Puck } from '@puckeditor/core';
@@ -10,43 +10,44 @@ import { createAiPlugin } from '@puckeditor/plugin-ai';
10
10
  import '@puckeditor/plugin-ai/styles.css';
11
11
  import './ai-plugin-overrides.css';
12
12
  import { Maximize2 } from 'lucide-react';
13
- import { HeaderActions } from './components/HeaderActions';
14
- import { IframeWrapper } from './components/IframeWrapper';
15
- import { PreviewModal } from './components/PreviewModal';
16
- import { DarkModeStyles } from './components/DarkModeStyles';
17
- import { useUnsavedChanges } from './hooks/useUnsavedChanges';
18
- import { createVersionHistoryPlugin } from './plugins/versionHistoryPlugin';
19
- import { ThemeProvider } from '../theme';
20
- import { usePuckConfig } from '../views/PuckConfigContext';
13
+ import { HeaderActions } from './components/HeaderActions.js';
14
+ import { IframeWrapper } from './components/IframeWrapper.js';
15
+ import { PreviewModal } from './components/PreviewModal.js';
16
+ import { DarkModeStyles } from './components/DarkModeStyles.js';
17
+ import { useUnsavedChanges } from './hooks/useUnsavedChanges.js';
18
+ import { createVersionHistoryPlugin } from './plugins/versionHistoryPlugin.js';
19
+ import { ThemeProvider } from '../theme/index.js';
20
+ import { usePuckConfig } from '../views/PuckConfigContext.js';
21
21
  import { useAiPrompts } from '../ai/hooks/useAiPrompts.js';
22
22
  /**
23
23
  * Default viewports for responsive preview
24
- */
25
- const DEFAULT_VIEWPORTS = [
24
+ */ const DEFAULT_VIEWPORTS = [
26
25
  {
27
26
  width: 360,
28
27
  height: 'auto',
29
28
  label: 'Mobile',
30
- icon: 'Smartphone',
29
+ icon: 'Smartphone'
31
30
  },
32
31
  {
33
32
  width: 768,
34
33
  height: 'auto',
35
34
  label: 'Tablet',
36
- icon: 'Tablet',
35
+ icon: 'Tablet'
37
36
  },
38
37
  {
39
38
  width: 1280,
40
39
  height: 'auto',
41
40
  label: 'Desktop',
42
- icon: 'Monitor',
41
+ icon: 'Monitor'
43
42
  },
44
43
  {
45
44
  width: '100%',
46
45
  height: 'auto',
47
46
  label: 'Full Width',
48
- icon: createElement(Maximize2, { size: 16 }),
49
- },
47
+ icon: /*#__PURE__*/ createElement(Maximize2, {
48
+ size: 16
49
+ })
50
+ }
50
51
  ];
51
52
  /**
52
53
  * Full-featured Puck editor implementation
@@ -61,8 +62,7 @@ const DEFAULT_VIEWPORTS = [
61
62
  *
62
63
  * Internal implementation component - use PuckEditor instead.
63
64
  * @internal
64
- */
65
- export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlug, apiEndpoint = '/api/puck/pages', backUrl, previewUrl, enableViewports = true, plugins, layouts, layoutStyles, layoutKey = 'pageLayout', headerActionsStart, headerActionsEnd, overrides: customOverrides, onSaveSuccess, onSaveError, onChange: onChangeProp, initialStatus, theme, editorStylesheets: editorStylesheetsProp, editorCss: editorCssProp, enableAi = false, aiOptions, hasPromptsCollection = false, hasContextCollection = false, experimentalFullScreenCanvas = false, autoDetectDarkMode = true, showPreviewDarkModeToggle = true, initialPreviewDarkMode = false, }) {
65
+ */ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlug, apiEndpoint = '/api/puck/pages', backUrl, previewUrl, enableViewports = true, plugins, layouts, layoutStyles, layoutKey = 'pageLayout', headerActionsStart, headerActionsEnd, overrides: customOverrides, onSaveSuccess, onSaveError, onChange: onChangeProp, initialStatus, theme, editorStylesheets: editorStylesheetsProp, editorCss: editorCssProp, enableAi = false, aiOptions, hasPromptsCollection = false, hasContextCollection = false, experimentalFullScreenCanvas = false, autoDetectDarkMode = true, showPreviewDarkModeToggle = true, initialPreviewDarkMode = false }) {
66
66
  const router = useRouter();
67
67
  const [isSaving, setIsSaving] = useState(false);
68
68
  const [lastSaved, setLastSaved] = useState(null);
@@ -76,7 +76,7 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
76
76
  // Preview dark mode state (for toggling dark/light in preview iframe)
77
77
  const [previewDarkMode, setPreviewDarkMode] = useState(initialPreviewDarkMode);
78
78
  // Inject slug into initial data if not present
79
- const dataWithSlug = useMemo(() => {
79
+ const dataWithSlug = useMemo(()=>{
80
80
  const data = initialData;
81
81
  return {
82
82
  ...data,
@@ -84,11 +84,14 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
84
84
  ...data.root,
85
85
  props: {
86
86
  ...data.root?.props,
87
- slug: data.root?.props?.slug || pageSlug,
88
- },
89
- },
87
+ slug: data.root?.props?.slug || pageSlug
88
+ }
89
+ }
90
90
  };
91
- }, [initialData, pageSlug]);
91
+ }, [
92
+ initialData,
93
+ pageSlug
94
+ ]);
92
95
  // Use a ref to track latest data without causing re-renders
93
96
  const latestDataRef = useRef(dataWithSlug);
94
97
  // Get editor stylesheets from PuckConfigProvider context (as fallback)
@@ -98,26 +101,43 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
98
101
  const baseCss = editorCssProp || contextCss;
99
102
  // Get current layout to merge layout-specific stylesheets
100
103
  const currentLayoutValue = dataWithSlug.root?.props?.pageLayout || 'default';
101
- const currentLayout = useMemo(() => {
102
- return layouts?.find((l) => l.value === currentLayoutValue);
103
- }, [layouts, currentLayoutValue]);
104
+ const currentLayout = useMemo(()=>{
105
+ return layouts?.find((l)=>l.value === currentLayoutValue);
106
+ }, [
107
+ layouts,
108
+ currentLayoutValue
109
+ ]);
104
110
  // Merge base stylesheets (props/context) + layout-specific settings
105
- const mergedEditorStylesheets = useMemo(() => {
111
+ const mergedEditorStylesheets = useMemo(()=>{
106
112
  const fromBase = baseStylesheets || [];
107
113
  const fromLayout = currentLayout?.editorStylesheets || [];
108
- return [...fromBase, ...fromLayout];
109
- }, [baseStylesheets, currentLayout?.editorStylesheets]);
114
+ return [
115
+ ...fromBase,
116
+ ...fromLayout
117
+ ];
118
+ }, [
119
+ baseStylesheets,
120
+ currentLayout?.editorStylesheets
121
+ ]);
110
122
  // Merge base CSS (props/context) + layout-specific settings
111
- const mergedEditorCss = useMemo(() => {
112
- const parts = [baseCss, currentLayout?.editorCss].filter(Boolean);
123
+ const mergedEditorCss = useMemo(()=>{
124
+ const parts = [
125
+ baseCss,
126
+ currentLayout?.editorCss
127
+ ].filter(Boolean);
113
128
  return parts.length > 0 ? parts.join('\n') : undefined;
114
- }, [baseCss, currentLayout?.editorCss]);
129
+ }, [
130
+ baseCss,
131
+ currentLayout?.editorCss
132
+ ]);
115
133
  // Helper to make save request with optional homepage swap
116
- const makeSaveRequest = useCallback(async (data, options = {}) => {
134
+ const makeSaveRequest = useCallback(async (data, options = {})=>{
117
135
  const typedData = data;
118
136
  return fetch(`${apiEndpoint}/${pageId}`, {
119
137
  method: 'PATCH',
120
- headers: { 'Content-Type': 'application/json' },
138
+ headers: {
139
+ 'Content-Type': 'application/json'
140
+ },
121
141
  body: JSON.stringify({
122
142
  puckData: data,
123
143
  title: typedData.root?.props?.title || pageTitle,
@@ -127,30 +147,46 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
127
147
  // Page-tree integration: include folder and pageSegment if present
128
148
  folder: typedData.root?.props?.folder,
129
149
  pageSegment: typedData.root?.props?.pageSegment,
130
- ...(options.publish ? { _status: 'published' } : { draft: true }),
131
- }),
150
+ ...options.publish ? {
151
+ _status: 'published'
152
+ } : {
153
+ draft: true
154
+ }
155
+ })
132
156
  });
133
- }, [apiEndpoint, pageId, pageTitle, pageSlug]);
157
+ }, [
158
+ apiEndpoint,
159
+ pageId,
160
+ pageTitle,
161
+ pageSlug
162
+ ]);
134
163
  // Handle homepage conflict - prompt user to swap
135
- const handleHomepageConflict = useCallback(async (existingHomepage, data, publish) => {
164
+ const handleHomepageConflict = useCallback(async (existingHomepage, data, publish)=>{
136
165
  const confirmed = confirm(`"${existingHomepage.title}" (/${existingHomepage.slug}) is currently set as the homepage.\n\nDo you want to make this page the homepage instead?`);
137
166
  if (!confirmed) {
138
167
  return false;
139
168
  }
140
169
  // Retry with swapHomepage flag
141
- const response = await makeSaveRequest(data, { publish, swapHomepage: true });
170
+ const response = await makeSaveRequest(data, {
171
+ publish,
172
+ swapHomepage: true
173
+ });
142
174
  if (!response.ok) {
143
175
  const errorData = await response.json();
144
176
  throw new Error(errorData.error || errorData.message || 'Failed to swap homepage');
145
177
  }
146
178
  return true;
147
- }, [makeSaveRequest]);
179
+ }, [
180
+ makeSaveRequest
181
+ ]);
148
182
  // Handle save (as draft)
149
- const handleSave = useCallback(async (data) => {
183
+ const handleSave = useCallback(async (data)=>{
150
184
  setIsSaving(true);
151
185
  const typedData = data;
152
186
  try {
153
- const response = await makeSaveRequest(data, { publish: false });
187
+ const response = await makeSaveRequest(data, {
188
+ publish: false
189
+ });
154
190
  if (!response.ok) {
155
191
  const errorData = await response.json();
156
192
  // Check for homepage conflict error
@@ -161,9 +197,8 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
161
197
  setIsSaving(false);
162
198
  return;
163
199
  }
164
- // Successfully swapped - continue to success handling below
165
- }
166
- else {
200
+ // Successfully swapped - continue to success handling below
201
+ } else {
167
202
  const errorMessage = errorData.error || errorData.message || 'Failed to save page';
168
203
  const err = new Error(errorMessage);
169
204
  err.field = errorData.field;
@@ -177,22 +212,28 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
177
212
  setDocumentStatus('draft');
178
213
  markClean();
179
214
  onSaveSuccess?.(data);
180
- }
181
- catch (error) {
215
+ } catch (error) {
182
216
  console.error('Error saving page:', error);
183
217
  setSaveError(error instanceof Error ? error.message : 'Unknown error');
184
218
  onSaveError?.(error instanceof Error ? error : new Error('Unknown error'));
185
- }
186
- finally {
219
+ } finally{
187
220
  setIsSaving(false);
188
221
  }
189
- }, [makeSaveRequest, handleHomepageConflict, markClean, onSaveSuccess, onSaveError]);
222
+ }, [
223
+ makeSaveRequest,
224
+ handleHomepageConflict,
225
+ markClean,
226
+ onSaveSuccess,
227
+ onSaveError
228
+ ]);
190
229
  // Handle publish
191
- const handlePublish = useCallback(async (data) => {
230
+ const handlePublish = useCallback(async (data)=>{
192
231
  setIsSaving(true);
193
232
  const typedData = data;
194
233
  try {
195
- const response = await makeSaveRequest(data, { publish: true });
234
+ const response = await makeSaveRequest(data, {
235
+ publish: true
236
+ });
196
237
  if (!response.ok) {
197
238
  const errorData = await response.json();
198
239
  // Check for homepage conflict error
@@ -203,9 +244,8 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
203
244
  setIsSaving(false);
204
245
  return;
205
246
  }
206
- // Successfully swapped - continue to success handling below
207
- }
208
- else {
247
+ // Successfully swapped - continue to success handling below
248
+ } else {
209
249
  const errorMessage = errorData.error || errorData.message || 'Failed to publish page';
210
250
  const err = new Error(errorMessage);
211
251
  err.field = errorData.field;
@@ -219,18 +259,22 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
219
259
  setWasPublished(true); // Mark as having been published
220
260
  markClean();
221
261
  onSaveSuccess?.(data);
222
- }
223
- catch (error) {
262
+ } catch (error) {
224
263
  console.error('Error publishing page:', error);
225
264
  setSaveError(error instanceof Error ? error.message : 'Unknown error');
226
265
  onSaveError?.(error instanceof Error ? error : new Error('Unknown error'));
227
- }
228
- finally {
266
+ } finally{
229
267
  setIsSaving(false);
230
268
  }
231
- }, [makeSaveRequest, handleHomepageConflict, markClean, onSaveSuccess, onSaveError]);
269
+ }, [
270
+ makeSaveRequest,
271
+ handleHomepageConflict,
272
+ markClean,
273
+ onSaveSuccess,
274
+ onSaveError
275
+ ]);
232
276
  // Handle unpublish (revert to draft)
233
- const handleUnpublish = useCallback(async () => {
277
+ const handleUnpublish = useCallback(async ()=>{
234
278
  if (!confirm('This will unpublish the page and return it to draft status. Continue?')) {
235
279
  return;
236
280
  }
@@ -238,10 +282,12 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
238
282
  try {
239
283
  const response = await fetch(`${apiEndpoint}/${pageId}`, {
240
284
  method: 'PATCH',
241
- headers: { 'Content-Type': 'application/json' },
285
+ headers: {
286
+ 'Content-Type': 'application/json'
287
+ },
242
288
  body: JSON.stringify({
243
- _status: 'draft',
244
- }),
289
+ _status: 'draft'
290
+ })
245
291
  });
246
292
  if (!response.ok) {
247
293
  const errorData = await response.json();
@@ -251,23 +297,27 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
251
297
  setLastSaved(new Date());
252
298
  setSaveError(null);
253
299
  setDocumentStatus('draft');
254
- }
255
- catch (error) {
300
+ } catch (error) {
256
301
  console.error('Error unpublishing page:', error);
257
302
  setSaveError(error instanceof Error ? error.message : 'Unknown error');
258
- }
259
- finally {
303
+ } finally{
260
304
  setIsSaving(false);
261
305
  }
262
- }, [apiEndpoint, pageId]);
306
+ }, [
307
+ apiEndpoint,
308
+ pageId
309
+ ]);
263
310
  // Handle data change
264
- const handleChange = useCallback((data) => {
311
+ const handleChange = useCallback((data)=>{
265
312
  latestDataRef.current = data;
266
313
  markDirty();
267
314
  onChangeProp?.(data);
268
- }, [markDirty, onChangeProp]);
315
+ }, [
316
+ markDirty,
317
+ onChangeProp
318
+ ]);
269
319
  // Handle back navigation
270
- const handleBack = useCallback(() => {
320
+ const handleBack = useCallback(()=>{
271
321
  if (hasUnsavedChanges) {
272
322
  if (!confirm('You have unsaved changes. Are you sure you want to leave?')) {
273
323
  return;
@@ -275,13 +325,16 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
275
325
  }
276
326
  if (backUrl) {
277
327
  router.push(backUrl);
278
- }
279
- else {
328
+ } else {
280
329
  router.back();
281
330
  }
282
- }, [hasUnsavedChanges, router, backUrl]);
331
+ }, [
332
+ hasUnsavedChanges,
333
+ router,
334
+ backUrl
335
+ ]);
283
336
  // Handle preview (opens in new tab)
284
- const handlePreview = useCallback(() => {
337
+ const handlePreview = useCallback(()=>{
285
338
  const rootProps = latestDataRef.current?.root?.props;
286
339
  const currentSlug = rootProps?.slug || pageSlug;
287
340
  const isHomepage = rootProps?.isHomepage === true;
@@ -289,28 +342,31 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
289
342
  if (typeof previewUrl === 'function') {
290
343
  // If homepage, pass '/' to the function, otherwise pass the slug
291
344
  url = previewUrl(isHomepage ? '' : currentSlug);
292
- }
293
- else if (previewUrl) {
345
+ } else if (previewUrl) {
294
346
  url = previewUrl;
295
- }
296
- else {
347
+ } else {
297
348
  // If homepage, navigate to root, otherwise use slug
298
349
  url = isHomepage ? '/' : `/${currentSlug}`;
299
350
  }
300
351
  window.open(url, '_blank');
301
- }, [pageSlug, previewUrl]);
352
+ }, [
353
+ pageSlug,
354
+ previewUrl
355
+ ]);
302
356
  // Handle opening preview modal
303
- const handleOpenPreview = useCallback(() => {
357
+ const handleOpenPreview = useCallback(()=>{
304
358
  setIsPreviewOpen(true);
305
359
  }, []);
306
360
  // Handle save from preview modal (returns Promise for navigation flow)
307
- const handleSaveFromPreview = useCallback(async () => {
361
+ const handleSaveFromPreview = useCallback(async ()=>{
308
362
  const data = latestDataRef.current;
309
363
  setIsSaving(true);
310
364
  try {
311
365
  const response = await fetch(`${apiEndpoint}/${pageId}`, {
312
366
  method: 'PATCH',
313
- headers: { 'Content-Type': 'application/json' },
367
+ headers: {
368
+ 'Content-Type': 'application/json'
369
+ },
314
370
  body: JSON.stringify({
315
371
  puckData: data,
316
372
  title: data?.root?.props?.title || pageTitle,
@@ -318,8 +374,8 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
318
374
  // Page-tree integration: include folder and pageSegment if present
319
375
  folder: data?.root?.props?.folder,
320
376
  pageSegment: data?.root?.props?.pageSegment,
321
- draft: true,
322
- }),
377
+ draft: true
378
+ })
323
379
  });
324
380
  if (!response.ok) {
325
381
  const errorData = await response.json();
@@ -331,25 +387,64 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
331
387
  setDocumentStatus('draft');
332
388
  markClean();
333
389
  onSaveSuccess?.(data);
334
- }
335
- catch (error) {
390
+ } catch (error) {
336
391
  console.error('Error saving page:', error);
337
392
  setSaveError(error instanceof Error ? error.message : 'Unknown error');
338
393
  onSaveError?.(error instanceof Error ? error : new Error('Unknown error'));
339
- throw error; // Re-throw so preview modal knows save failed
340
- }
341
- finally {
394
+ throw error // Re-throw so preview modal knows save failed
395
+ ;
396
+ } finally{
342
397
  setIsSaving(false);
343
398
  }
344
- }, [apiEndpoint, pageId, pageTitle, pageSlug, markClean, onSaveSuccess, onSaveError]);
399
+ }, [
400
+ apiEndpoint,
401
+ pageId,
402
+ pageTitle,
403
+ pageSlug,
404
+ markClean,
405
+ onSaveSuccess,
406
+ onSaveError
407
+ ]);
345
408
  // Memoized overrides
346
- const overrides = useMemo(() => ({
347
- headerActions: ({ children }) => (_jsx(HeaderActions, { onBack: handleBack, onPreview: handlePreview, onSave: handleSave, onPublish: handlePublish, onUnpublish: handleUnpublish, onOpenPreview: handleOpenPreview, isSaving: isSaving, hasUnsavedChanges: hasUnsavedChanges, lastSaved: lastSaved, documentStatus: documentStatus, wasPublished: wasPublished, actionsStart: headerActionsStart, actionsEnd: headerActionsEnd, pageId: pageId, apiEndpoint: apiEndpoint, saveError: saveError, onDismissError: () => setSaveError(null), showVersionHistory: false, showPreviewDarkModeToggle: showPreviewDarkModeToggle, previewDarkMode: previewDarkMode, onPreviewDarkModeChange: setPreviewDarkMode, children: children })),
348
- // Always wrap iframe for richtext styles injection and theme-aware background
349
- iframe: ({ children, document }) => (_jsx(IframeWrapper, { document: document, layouts: layouts, layoutStyles: layoutStyles, layoutKey: layoutKey, editorStylesheets: mergedEditorStylesheets, editorCss: mergedEditorCss, previewDarkModeOverride: showPreviewDarkModeToggle ? previewDarkMode : undefined, children: children })),
350
- // Merge custom overrides
351
- ...customOverrides,
352
- }), [
409
+ const overrides = useMemo(()=>({
410
+ headerActions: ({ children })=>/*#__PURE__*/ _jsx(HeaderActions, {
411
+ onBack: handleBack,
412
+ onPreview: handlePreview,
413
+ onSave: handleSave,
414
+ onPublish: handlePublish,
415
+ onUnpublish: handleUnpublish,
416
+ onOpenPreview: handleOpenPreview,
417
+ isSaving: isSaving,
418
+ hasUnsavedChanges: hasUnsavedChanges,
419
+ lastSaved: lastSaved,
420
+ documentStatus: documentStatus,
421
+ wasPublished: wasPublished,
422
+ actionsStart: headerActionsStart,
423
+ actionsEnd: headerActionsEnd,
424
+ pageId: pageId,
425
+ apiEndpoint: apiEndpoint,
426
+ saveError: saveError,
427
+ onDismissError: ()=>setSaveError(null),
428
+ showVersionHistory: false,
429
+ showPreviewDarkModeToggle: showPreviewDarkModeToggle,
430
+ previewDarkMode: previewDarkMode,
431
+ onPreviewDarkModeChange: setPreviewDarkMode,
432
+ children: children
433
+ }),
434
+ // Always wrap iframe for richtext styles injection and theme-aware background
435
+ iframe: ({ children, document })=>/*#__PURE__*/ _jsx(IframeWrapper, {
436
+ document: document,
437
+ layouts: layouts,
438
+ layoutStyles: layoutStyles,
439
+ layoutKey: layoutKey,
440
+ editorStylesheets: mergedEditorStylesheets,
441
+ editorCss: mergedEditorCss,
442
+ previewDarkModeOverride: showPreviewDarkModeToggle ? previewDarkMode : undefined,
443
+ children: children
444
+ }),
445
+ // Merge custom overrides
446
+ ...customOverrides
447
+ }), [
353
448
  handleBack,
354
449
  handlePreview,
355
450
  handleSave,
@@ -374,20 +469,25 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
374
469
  mergedEditorCss,
375
470
  showPreviewDarkModeToggle,
376
471
  previewDarkMode,
377
- setPreviewDarkMode,
472
+ setPreviewDarkMode
378
473
  ]);
379
474
  // Default plugins - headingAnalyzer is always included unless plugins is explicitly false
380
- const defaultPlugins = [headingAnalyzer];
475
+ const defaultPlugins = [
476
+ headingAnalyzer
477
+ ];
381
478
  // Version history plugin for the plugin rail
382
- const versionHistoryPlugin = useMemo(() => {
383
- if (!pageId)
384
- return null;
479
+ const versionHistoryPlugin = useMemo(()=>{
480
+ if (!pageId) return null;
385
481
  return createVersionHistoryPlugin({
386
482
  pageId,
387
483
  apiEndpoint,
388
- onRestoreSuccess: markClean,
484
+ onRestoreSuccess: markClean
389
485
  });
390
- }, [pageId, apiEndpoint, markClean]);
486
+ }, [
487
+ pageId,
488
+ apiEndpoint,
489
+ markClean
490
+ ]);
391
491
  // Fetch AI prompts client-side when prompts collection is enabled
392
492
  // This allows prompts to update in real-time when edited via the prompt editor panel
393
493
  const { prompts: clientPrompts, loading: promptsLoading } = useAiPrompts('/api/puck/ai-prompts', enableAi && hasPromptsCollection);
@@ -400,82 +500,89 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
400
500
  // AI plugin - statically imported, only instantiated when enabled
401
501
  // IMPORTANT: We intentionally exclude clientPrompts and aiOptions.examplePrompts from deps
402
502
  // to prevent plugin recreation. The onClick handlers use refs to access current prompts.
403
- const aiPlugin = useMemo(() => {
404
- if (!enableAi)
405
- return null;
503
+ const aiPlugin = useMemo(()=>{
504
+ if (!enableAi) return null;
406
505
  // Don't create plugin until prompts are loaded (when using prompts collection)
407
- if (hasPromptsCollection && promptsLoading)
408
- return null;
506
+ if (hasPromptsCollection && promptsLoading) return null;
409
507
  // Use client-fetched prompts when prompts collection is enabled,
410
508
  // otherwise fall back to static props from config
411
509
  // NOTE: We read from refs in onClick to get current values without causing re-renders
412
- const getPrompts = () => hasPromptsCollection
413
- ? (clientPromptsRef.current || [])
414
- : (staticPromptsRef.current || []);
510
+ const getPrompts = ()=>hasPromptsCollection ? clientPromptsRef.current || [] : staticPromptsRef.current || [];
415
511
  // Get initial prompts for labels (labels are stable, only prompts text might change)
416
512
  const initialPrompts = getPrompts();
417
513
  // Convert our { label, prompt } format to plugin's { label, onClick } format
418
514
  // The plugin expects onClick to send the message via window.__PUCK_AI.sendMessage
419
- const convertedPrompts = initialPrompts.map((item, index) => ({
420
- label: item.label,
421
- onClick: () => {
422
- // Access current prompts via ref to get latest values
423
- const currentPrompts = getPrompts();
424
- const currentPrompt = currentPrompts[index]?.prompt || item.prompt;
425
- // Use Puck AI's global API to send the prompt as a user message
426
- // sendMessage accepts { text: string } as a simpler format
427
- if (typeof window !== 'undefined' && window.__PUCK_AI?.sendMessage) {
428
- ;
429
- window.__PUCK_AI.sendMessage({ text: currentPrompt });
515
+ const convertedPrompts = initialPrompts.map((item, index)=>({
516
+ label: item.label,
517
+ onClick: ()=>{
518
+ // Access current prompts via ref to get latest values
519
+ const currentPrompts = getPrompts();
520
+ const currentPrompt = currentPrompts[index]?.prompt || item.prompt;
521
+ // Use Puck AI's global API to send the prompt as a user message
522
+ // sendMessage accepts { text: string } as a simpler format
523
+ if (typeof window !== 'undefined' && window.__PUCK_AI?.sendMessage) {
524
+ ;
525
+ window.__PUCK_AI.sendMessage({
526
+ text: currentPrompt
527
+ });
528
+ }
430
529
  }
431
- },
432
- }));
530
+ }));
433
531
  return createAiPlugin({
434
532
  host: aiOptions?.host || '/api/puck/ai',
435
533
  chat: {
436
- examplePrompts: convertedPrompts.length > 0 ? convertedPrompts : undefined,
437
- },
534
+ examplePrompts: convertedPrompts.length > 0 ? convertedPrompts : undefined
535
+ }
438
536
  });
439
- // eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally omit prompt arrays to prevent recreation
440
- }, [enableAi, hasPromptsCollection, promptsLoading, aiOptions?.host]);
537
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally omit prompt arrays to prevent recreation
538
+ }, [
539
+ enableAi,
540
+ hasPromptsCollection,
541
+ promptsLoading,
542
+ aiOptions?.host
543
+ ]);
441
544
  // Prompt editor plugin - for managing AI prompts in the plugin rail
442
- const promptEditorPlugin = useMemo(() => {
443
- if (!enableAi || !hasPromptsCollection)
444
- return null;
545
+ const promptEditorPlugin = useMemo(()=>{
546
+ if (!enableAi || !hasPromptsCollection) return null;
445
547
  try {
446
548
  // Dynamic require to avoid errors if module not available
447
549
  // eslint-disable-next-line @typescript-eslint/no-require-imports
448
550
  const { createPromptEditorPlugin } = require('../ai/plugins/promptEditorPlugin');
449
551
  return createPromptEditorPlugin({
450
- apiEndpoint: '/api/puck/ai-prompts',
552
+ apiEndpoint: '/api/puck/ai-prompts'
451
553
  });
452
- }
453
- catch (e) {
554
+ } catch (e) {
454
555
  console.warn('[PuckEditor] Failed to load prompt editor plugin:', e);
455
556
  return null;
456
557
  }
457
- }, [enableAi, hasPromptsCollection]);
558
+ }, [
559
+ enableAi,
560
+ hasPromptsCollection
561
+ ]);
458
562
  // Context editor plugin - for managing AI context in the plugin rail
459
- const contextEditorPlugin = useMemo(() => {
460
- if (!enableAi || !hasContextCollection)
461
- return null;
563
+ const contextEditorPlugin = useMemo(()=>{
564
+ if (!enableAi || !hasContextCollection) return null;
462
565
  try {
463
566
  // Dynamic require to avoid errors if module not available
464
567
  // eslint-disable-next-line @typescript-eslint/no-require-imports
465
568
  const { createContextEditorPlugin } = require('../ai/plugins/contextEditorPlugin');
466
569
  return createContextEditorPlugin({
467
- apiEndpoint: '/api/puck/ai-context',
570
+ apiEndpoint: '/api/puck/ai-context'
468
571
  });
469
- }
470
- catch (e) {
572
+ } catch (e) {
471
573
  console.warn('[PuckEditor] Failed to load context editor plugin:', e);
472
574
  return null;
473
575
  }
474
- }, [enableAi, hasContextCollection]);
475
- const resolvedPlugins = useMemo(() => {
476
- if (plugins === false)
477
- return undefined;
478
- const base = !plugins || plugins.length === 0 ? defaultPlugins : [...defaultPlugins, ...plugins];
576
+ }, [
577
+ enableAi,
578
+ hasContextCollection
579
+ ]);
580
+ const resolvedPlugins = useMemo(()=>{
581
+ if (plugins === false) return undefined;
582
+ const base = !plugins || plugins.length === 0 ? defaultPlugins : [
583
+ ...defaultPlugins,
584
+ ...plugins
585
+ ];
479
586
  // Add version history plugin if available
480
587
  if (versionHistoryPlugin) {
481
588
  base.push(versionHistoryPlugin);
@@ -493,12 +600,55 @@ export function PuckEditorImpl({ pageId, initialData, config, pageTitle, pageSlu
493
600
  base.push(contextEditorPlugin);
494
601
  }
495
602
  return base;
496
- }, [plugins, versionHistoryPlugin, aiPlugin, promptEditorPlugin, contextEditorPlugin]);
497
- const editorContent = (_jsxs(_Fragment, { children: [autoDetectDarkMode && _jsx(DarkModeStyles, {}), _jsx("div", { className: "h-screen", children: _jsx(Puck, { config: config, data: dataWithSlug, onChange: handleChange, onPublish: handlePublish, headerTitle: `${pageTitle} /${pageSlug}`, plugins: resolvedPlugins, viewports: enableViewports ? DEFAULT_VIEWPORTS : undefined, overrides: overrides, iframe: { waitForStyles: true }, _experimentalFullScreenCanvas: experimentalFullScreenCanvas }) }), _jsx(PreviewModal, { isOpen: isPreviewOpen, onClose: () => setIsPreviewOpen(false), data: latestDataRef.current, pageTitle: pageTitle, onOpenInNewTab: handlePreview, layouts: layouts, hasUnsavedChanges: hasUnsavedChanges, onSave: handleSaveFromPreview, isSaving: isSaving, editorStylesheets: mergedEditorStylesheets, editorCss: mergedEditorCss, config: config })] }));
603
+ }, [
604
+ plugins,
605
+ versionHistoryPlugin,
606
+ aiPlugin,
607
+ promptEditorPlugin,
608
+ contextEditorPlugin
609
+ ]);
610
+ const editorContent = /*#__PURE__*/ _jsxs(_Fragment, {
611
+ children: [
612
+ autoDetectDarkMode && /*#__PURE__*/ _jsx(DarkModeStyles, {}),
613
+ /*#__PURE__*/ _jsx("div", {
614
+ className: "h-screen",
615
+ children: /*#__PURE__*/ _jsx(Puck, {
616
+ config: config,
617
+ data: dataWithSlug,
618
+ onChange: handleChange,
619
+ onPublish: handlePublish,
620
+ headerTitle: `${pageTitle} /${pageSlug}`,
621
+ plugins: resolvedPlugins,
622
+ viewports: enableViewports ? DEFAULT_VIEWPORTS : undefined,
623
+ overrides: overrides,
624
+ iframe: {
625
+ waitForStyles: true
626
+ },
627
+ _experimentalFullScreenCanvas: experimentalFullScreenCanvas
628
+ })
629
+ }),
630
+ /*#__PURE__*/ _jsx(PreviewModal, {
631
+ isOpen: isPreviewOpen,
632
+ onClose: ()=>setIsPreviewOpen(false),
633
+ data: latestDataRef.current,
634
+ pageTitle: pageTitle,
635
+ onOpenInNewTab: handlePreview,
636
+ layouts: layouts,
637
+ hasUnsavedChanges: hasUnsavedChanges,
638
+ onSave: handleSaveFromPreview,
639
+ isSaving: isSaving,
640
+ editorStylesheets: mergedEditorStylesheets,
641
+ editorCss: mergedEditorCss,
642
+ config: config
643
+ })
644
+ ]
645
+ });
498
646
  // Wrap with ThemeProvider if theme is provided
499
647
  if (theme) {
500
- return _jsx(ThemeProvider, { theme: theme, children: editorContent });
648
+ return /*#__PURE__*/ _jsx(ThemeProvider, {
649
+ theme: theme,
650
+ children: editorContent
651
+ });
501
652
  }
502
653
  return editorContent;
503
654
  }
504
- //# sourceMappingURL=PuckEditorImpl.client.js.map