@delmaredigital/payload-puck 0.6.10 → 0.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (583) hide show
  1. package/README.md +79 -1
  2. package/dist/admin/EditWithPuckButton.d.ts +1 -1
  3. package/dist/admin/EditWithPuckButton.d.ts.map +1 -1
  4. package/dist/admin/EditWithPuckButton.js +65 -25
  5. package/dist/admin/EditWithPuckButton.js.map +1 -1
  6. package/dist/admin/EditWithPuckCell.js +43 -13
  7. package/dist/admin/EditWithPuckCell.js.map +1 -1
  8. package/dist/admin/PuckEditorView.d.ts +1 -1
  9. package/dist/admin/PuckEditorView.d.ts.map +1 -1
  10. package/dist/admin/PuckEditorView.js +118 -32
  11. package/dist/admin/PuckEditorView.js.map +1 -1
  12. package/dist/admin/client.d.ts +2 -2
  13. package/dist/admin/client.d.ts.map +1 -1
  14. package/dist/admin/client.js +4 -4
  15. package/dist/admin/client.js.map +1 -1
  16. package/dist/admin/generateAdminComponents.js +7 -7
  17. package/dist/admin/generateAdminComponents.js.map +1 -1
  18. package/dist/admin/index.d.ts +5 -5
  19. package/dist/admin/index.d.ts.map +1 -1
  20. package/dist/admin/index.js +3 -2
  21. package/dist/admin/index.js.map +1 -1
  22. package/dist/ai/collections/AiContext.js +56 -29
  23. package/dist/ai/collections/AiContext.js.map +1 -1
  24. package/dist/ai/collections/AiPrompts.js +24 -19
  25. package/dist/ai/collections/AiPrompts.js.map +1 -1
  26. package/dist/ai/createAiApiRoutes.js +28 -19
  27. package/dist/ai/createAiApiRoutes.js.map +1 -1
  28. package/dist/ai/createAiGenerate.js +7 -8
  29. package/dist/ai/createAiGenerate.js.map +1 -1
  30. package/dist/ai/createAiPlugin.js +7 -9
  31. package/dist/ai/createAiPlugin.js.map +1 -1
  32. package/dist/ai/hooks/useAiContext.js +50 -39
  33. package/dist/ai/hooks/useAiContext.js.map +1 -1
  34. package/dist/ai/hooks/useAiPrompts.js +33 -25
  35. package/dist/ai/hooks/useAiPrompts.js.map +1 -1
  36. package/dist/ai/index.js +9 -10
  37. package/dist/ai/index.js.map +1 -1
  38. package/dist/ai/plugins/ContextEditorPanel.d.ts +1 -1
  39. package/dist/ai/plugins/ContextEditorPanel.d.ts.map +1 -1
  40. package/dist/ai/plugins/ContextEditorPanel.js +399 -107
  41. package/dist/ai/plugins/ContextEditorPanel.js.map +1 -1
  42. package/dist/ai/plugins/PromptEditorPanel.d.ts +1 -1
  43. package/dist/ai/plugins/PromptEditorPanel.d.ts.map +1 -1
  44. package/dist/ai/plugins/PromptEditorPanel.js +237 -51
  45. package/dist/ai/plugins/PromptEditorPanel.js.map +1 -1
  46. package/dist/ai/plugins/contextEditorPlugin.js +12 -5
  47. package/dist/ai/plugins/contextEditorPlugin.js.map +1 -1
  48. package/dist/ai/plugins/promptApiRoutes.js +119 -50
  49. package/dist/ai/plugins/promptApiRoutes.js.map +1 -1
  50. package/dist/ai/plugins/promptEditorPlugin.js +12 -5
  51. package/dist/ai/plugins/promptEditorPlugin.js.map +1 -1
  52. package/dist/ai/presets/componentAiDefaults.js +108 -83
  53. package/dist/ai/presets/componentAiDefaults.js.map +1 -1
  54. package/dist/ai/presets/index.js +12 -18
  55. package/dist/ai/presets/index.js.map +1 -1
  56. package/dist/ai/presets/instructions/interactive.js +85 -75
  57. package/dist/ai/presets/instructions/interactive.js.map +1 -1
  58. package/dist/ai/presets/instructions/layout.js +122 -117
  59. package/dist/ai/presets/instructions/layout.js.map +1 -1
  60. package/dist/ai/presets/instructions/media.js +31 -29
  61. package/dist/ai/presets/instructions/media.js.map +1 -1
  62. package/dist/ai/presets/instructions/pagePatterns.js +4 -6
  63. package/dist/ai/presets/instructions/pagePatterns.js.map +1 -1
  64. package/dist/ai/presets/instructions/schemas.js +495 -137
  65. package/dist/ai/presets/instructions/schemas.js.map +1 -1
  66. package/dist/ai/presets/instructions/typography.js +38 -33
  67. package/dist/ai/presets/instructions/typography.js.map +1 -1
  68. package/dist/ai/tools/index.js +92 -55
  69. package/dist/ai/tools/index.js.map +1 -1
  70. package/dist/ai/types.js +7 -1
  71. package/dist/ai/types.js.map +1 -1
  72. package/dist/ai/utils/injectAiConfig.js +33 -40
  73. package/dist/ai/utils/injectAiConfig.js.map +1 -1
  74. package/dist/api/createPuckApiRoutes.d.ts +1 -1
  75. package/dist/api/createPuckApiRoutes.d.ts.map +1 -1
  76. package/dist/api/createPuckApiRoutes.js +123 -65
  77. package/dist/api/createPuckApiRoutes.js.map +1 -1
  78. package/dist/api/createPuckApiRoutesVersions.d.ts +1 -1
  79. package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -1
  80. package/dist/api/createPuckApiRoutesVersions.js +88 -37
  81. package/dist/api/createPuckApiRoutesVersions.js.map +1 -1
  82. package/dist/api/createPuckApiRoutesWithId.d.ts +1 -1
  83. package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -1
  84. package/dist/api/createPuckApiRoutesWithId.js +166 -72
  85. package/dist/api/createPuckApiRoutesWithId.js.map +1 -1
  86. package/dist/api/index.d.ts +5 -5
  87. package/dist/api/index.d.ts.map +1 -1
  88. package/dist/api/index.js +6 -6
  89. package/dist/api/index.js.map +1 -1
  90. package/dist/api/payload-config.d.js +15 -0
  91. package/dist/api/payload-config.d.js.map +1 -0
  92. package/dist/api/types.js +4 -1
  93. package/dist/api/types.js.map +1 -1
  94. package/dist/api/utils/mapRootProps.d.ts +1 -1
  95. package/dist/api/utils/mapRootProps.d.ts.map +1 -1
  96. package/dist/api/utils/mapRootProps.js +77 -44
  97. package/dist/api/utils/mapRootProps.js.map +1 -1
  98. package/dist/collections/Templates.js +24 -20
  99. package/dist/collections/Templates.js.map +1 -1
  100. package/dist/components/AccordionClient.d.ts +2 -2
  101. package/dist/components/AccordionClient.d.ts.map +1 -1
  102. package/dist/components/AccordionClient.js +81 -22
  103. package/dist/components/AccordionClient.js.map +1 -1
  104. package/dist/components/AnimatedWrapper.d.ts +2 -2
  105. package/dist/components/AnimatedWrapper.d.ts.map +1 -1
  106. package/dist/components/AnimatedWrapper.js +31 -16
  107. package/dist/components/AnimatedWrapper.js.map +1 -1
  108. package/dist/components/exports.js +2 -2
  109. package/dist/components/exports.js.map +1 -1
  110. package/dist/components/index.d.ts +5 -5
  111. package/dist/components/index.d.ts.map +1 -1
  112. package/dist/components/index.js +7 -7
  113. package/dist/components/index.js.map +1 -1
  114. package/dist/components/interactive/Accordion.d.ts +1 -1
  115. package/dist/components/interactive/Accordion.d.ts.map +1 -1
  116. package/dist/components/interactive/Accordion.js +149 -55
  117. package/dist/components/interactive/Accordion.js.map +1 -1
  118. package/dist/components/interactive/Accordion.server.d.ts +1 -1
  119. package/dist/components/interactive/Accordion.server.d.ts.map +1 -1
  120. package/dist/components/interactive/Accordion.server.js +25 -7
  121. package/dist/components/interactive/Accordion.server.js.map +1 -1
  122. package/dist/components/interactive/Button.d.ts +3 -3
  123. package/dist/components/interactive/Button.d.ts.map +1 -1
  124. package/dist/components/interactive/Button.js +89 -43
  125. package/dist/components/interactive/Button.js.map +1 -1
  126. package/dist/components/interactive/Button.server.d.ts +2 -2
  127. package/dist/components/interactive/Button.server.d.ts.map +1 -1
  128. package/dist/components/interactive/Button.server.js +40 -20
  129. package/dist/components/interactive/Button.server.js.map +1 -1
  130. package/dist/components/interactive/Card.d.ts +3 -3
  131. package/dist/components/interactive/Card.d.ts.map +1 -1
  132. package/dist/components/interactive/Card.js +131 -39
  133. package/dist/components/interactive/Card.js.map +1 -1
  134. package/dist/components/interactive/Card.server.d.ts +3 -3
  135. package/dist/components/interactive/Card.server.d.ts.map +1 -1
  136. package/dist/components/interactive/Card.server.js +72 -11
  137. package/dist/components/interactive/Card.server.js.map +1 -1
  138. package/dist/components/interactive/Divider.d.ts +1 -1
  139. package/dist/components/interactive/Divider.d.ts.map +1 -1
  140. package/dist/components/interactive/Divider.js +54 -26
  141. package/dist/components/interactive/Divider.js.map +1 -1
  142. package/dist/components/interactive/Divider.server.d.ts +1 -1
  143. package/dist/components/interactive/Divider.server.d.ts.map +1 -1
  144. package/dist/components/interactive/Divider.server.js +28 -12
  145. package/dist/components/interactive/Divider.server.js.map +1 -1
  146. package/dist/components/interactive/index.d.ts +4 -4
  147. package/dist/components/interactive/index.d.ts.map +1 -1
  148. package/dist/components/interactive/index.js +5 -5
  149. package/dist/components/interactive/index.js.map +1 -1
  150. package/dist/components/layout/Container.d.ts +1 -1
  151. package/dist/components/layout/Container.d.ts.map +1 -1
  152. package/dist/components/layout/Container.js +101 -47
  153. package/dist/components/layout/Container.js.map +1 -1
  154. package/dist/components/layout/Container.server.d.ts +1 -1
  155. package/dist/components/layout/Container.server.d.ts.map +1 -1
  156. package/dist/components/layout/Container.server.js +67 -19
  157. package/dist/components/layout/Container.server.js.map +1 -1
  158. package/dist/components/layout/Flex.d.ts +2 -2
  159. package/dist/components/layout/Flex.d.ts.map +1 -1
  160. package/dist/components/layout/Flex.js +124 -55
  161. package/dist/components/layout/Flex.js.map +1 -1
  162. package/dist/components/layout/Flex.server.d.ts +1 -1
  163. package/dist/components/layout/Flex.server.d.ts.map +1 -1
  164. package/dist/components/layout/Flex.server.js +50 -14
  165. package/dist/components/layout/Flex.server.js.map +1 -1
  166. package/dist/components/layout/Grid.d.ts +1 -1
  167. package/dist/components/layout/Grid.d.ts.map +1 -1
  168. package/dist/components/layout/Grid.js +93 -44
  169. package/dist/components/layout/Grid.js.map +1 -1
  170. package/dist/components/layout/Grid.server.d.ts +1 -1
  171. package/dist/components/layout/Grid.server.d.ts.map +1 -1
  172. package/dist/components/layout/Grid.server.js +56 -14
  173. package/dist/components/layout/Grid.server.js.map +1 -1
  174. package/dist/components/layout/Section.d.ts +1 -1
  175. package/dist/components/layout/Section.d.ts.map +1 -1
  176. package/dist/components/layout/Section.js +147 -64
  177. package/dist/components/layout/Section.js.map +1 -1
  178. package/dist/components/layout/Section.server.d.ts +1 -1
  179. package/dist/components/layout/Section.server.d.ts.map +1 -1
  180. package/dist/components/layout/Section.server.js +92 -28
  181. package/dist/components/layout/Section.server.js.map +1 -1
  182. package/dist/components/layout/Spacer.d.ts +1 -1
  183. package/dist/components/layout/Spacer.d.ts.map +1 -1
  184. package/dist/components/layout/Spacer.js +80 -30
  185. package/dist/components/layout/Spacer.js.map +1 -1
  186. package/dist/components/layout/Spacer.server.d.ts +1 -1
  187. package/dist/components/layout/Spacer.server.d.ts.map +1 -1
  188. package/dist/components/layout/Spacer.server.js +31 -9
  189. package/dist/components/layout/Spacer.server.js.map +1 -1
  190. package/dist/components/layout/Template.d.ts +1 -1
  191. package/dist/components/layout/Template.d.ts.map +1 -1
  192. package/dist/components/layout/Template.js +58 -30
  193. package/dist/components/layout/Template.js.map +1 -1
  194. package/dist/components/layout/Template.server.d.ts +1 -1
  195. package/dist/components/layout/Template.server.d.ts.map +1 -1
  196. package/dist/components/layout/Template.server.js +43 -11
  197. package/dist/components/layout/Template.server.js.map +1 -1
  198. package/dist/components/layout/index.d.ts +8 -8
  199. package/dist/components/layout/index.d.ts.map +1 -1
  200. package/dist/components/layout/index.js +8 -8
  201. package/dist/components/layout/index.js.map +1 -1
  202. package/dist/components/media/Image.d.ts +3 -3
  203. package/dist/components/media/Image.d.ts.map +1 -1
  204. package/dist/components/media/Image.js +122 -39
  205. package/dist/components/media/Image.js.map +1 -1
  206. package/dist/components/media/Image.server.d.ts +3 -3
  207. package/dist/components/media/Image.server.d.ts.map +1 -1
  208. package/dist/components/media/Image.server.js +76 -13
  209. package/dist/components/media/Image.server.js.map +1 -1
  210. package/dist/components/media/index.d.ts +1 -1
  211. package/dist/components/media/index.d.ts.map +1 -1
  212. package/dist/components/media/index.js +2 -2
  213. package/dist/components/media/index.js.map +1 -1
  214. package/dist/components/typography/Heading.d.ts +2 -2
  215. package/dist/components/typography/Heading.d.ts.map +1 -1
  216. package/dist/components/typography/Heading.js +45 -25
  217. package/dist/components/typography/Heading.js.map +1 -1
  218. package/dist/components/typography/Heading.server.d.ts +2 -2
  219. package/dist/components/typography/Heading.server.d.ts.map +1 -1
  220. package/dist/components/typography/Heading.server.js +16 -10
  221. package/dist/components/typography/Heading.server.js.map +1 -1
  222. package/dist/components/typography/RichText.editor.d.ts +1 -1
  223. package/dist/components/typography/RichText.editor.d.ts.map +1 -1
  224. package/dist/components/typography/RichText.editor.js +44 -19
  225. package/dist/components/typography/RichText.editor.js.map +1 -1
  226. package/dist/components/typography/RichText.server.d.ts +2 -2
  227. package/dist/components/typography/RichText.server.d.ts.map +1 -1
  228. package/dist/components/typography/RichText.server.js +33 -14
  229. package/dist/components/typography/RichText.server.js.map +1 -1
  230. package/dist/components/typography/Text.d.ts +2 -2
  231. package/dist/components/typography/Text.d.ts.map +1 -1
  232. package/dist/components/typography/Text.js +49 -23
  233. package/dist/components/typography/Text.js.map +1 -1
  234. package/dist/components/typography/Text.server.d.ts +2 -2
  235. package/dist/components/typography/Text.server.d.ts.map +1 -1
  236. package/dist/components/typography/Text.server.js +21 -8
  237. package/dist/components/typography/Text.server.js.map +1 -1
  238. package/dist/components/typography/index.d.ts +4 -4
  239. package/dist/components/typography/index.d.ts.map +1 -1
  240. package/dist/components/typography/index.js +5 -5
  241. package/dist/components/typography/index.js.map +1 -1
  242. package/dist/config/config.editor.d.ts +3 -3
  243. package/dist/config/config.editor.d.ts.map +1 -1
  244. package/dist/config/config.editor.js +119 -54
  245. package/dist/config/config.editor.js.map +1 -1
  246. package/dist/config/index.d.ts +4 -4
  247. package/dist/config/index.d.ts.map +1 -1
  248. package/dist/config/index.js +62 -35
  249. package/dist/config/index.js.map +1 -1
  250. package/dist/config/merge.d.ts +1 -1
  251. package/dist/config/merge.d.ts.map +1 -1
  252. package/dist/config/merge.js +23 -26
  253. package/dist/config/merge.js.map +1 -1
  254. package/dist/config/presets.d.ts +4 -4
  255. package/dist/config/presets.js +195 -75
  256. package/dist/config/presets.js.map +1 -1
  257. package/dist/config/types.js +6 -2
  258. package/dist/config/types.js.map +1 -1
  259. package/dist/editor/PuckEditor.d.ts +12 -4
  260. package/dist/editor/PuckEditor.d.ts.map +1 -1
  261. package/dist/editor/PuckEditor.js +168 -67
  262. package/dist/editor/PuckEditor.js.map +1 -1
  263. package/dist/editor/PuckEditorImpl.client.d.ts +4 -4
  264. package/dist/editor/PuckEditorImpl.client.d.ts.map +1 -1
  265. package/dist/editor/PuckEditorImpl.client.js +304 -152
  266. package/dist/editor/PuckEditorImpl.client.js.map +1 -1
  267. package/dist/editor/components/DarkModeStyles.js +11 -12
  268. package/dist/editor/components/DarkModeStyles.js.map +1 -1
  269. package/dist/editor/components/HeaderActions.js +308 -64
  270. package/dist/editor/components/HeaderActions.js.map +1 -1
  271. package/dist/editor/components/IframeWrapper.d.ts +1 -1
  272. package/dist/editor/components/IframeWrapper.d.ts.map +1 -1
  273. package/dist/editor/components/IframeWrapper.js +82 -58
  274. package/dist/editor/components/IframeWrapper.js.map +1 -1
  275. package/dist/editor/components/LoadingState.d.ts +1 -1
  276. package/dist/editor/components/LoadingState.d.ts.map +1 -1
  277. package/dist/editor/components/LoadingState.js +17 -3
  278. package/dist/editor/components/LoadingState.js.map +1 -1
  279. package/dist/editor/components/PreviewModal.js +234 -78
  280. package/dist/editor/components/PreviewModal.js.map +1 -1
  281. package/dist/editor/components/PreviewModeToggle.js +43 -15
  282. package/dist/editor/components/PreviewModeToggle.js.map +1 -1
  283. package/dist/editor/components/VersionHistory.js +219 -71
  284. package/dist/editor/components/VersionHistory.js.map +1 -1
  285. package/dist/editor/hooks/useDarkMode.js +36 -23
  286. package/dist/editor/hooks/useDarkMode.js.map +1 -1
  287. package/dist/editor/hooks/useUnsavedChanges.js +8 -8
  288. package/dist/editor/hooks/useUnsavedChanges.js.map +1 -1
  289. package/dist/editor/index.js +5 -6
  290. package/dist/editor/index.js.map +1 -1
  291. package/dist/editor/plugins/VersionHistoryPanel.js +236 -75
  292. package/dist/editor/plugins/VersionHistoryPanel.js.map +1 -1
  293. package/dist/editor/plugins/index.js +4 -4
  294. package/dist/editor/plugins/index.js.map +1 -1
  295. package/dist/editor/plugins/versionHistoryPlugin.js +10 -8
  296. package/dist/editor/plugins/versionHistoryPlugin.js.map +1 -1
  297. package/dist/editor/utils/detectPageTree.js +5 -5
  298. package/dist/editor/utils/detectPageTree.js.map +1 -1
  299. package/dist/editor/utils/index.js +1 -0
  300. package/dist/editor/utils/index.js.map +1 -1
  301. package/dist/editor/utils/injectPageTreeFields.js +13 -9
  302. package/dist/editor/utils/injectPageTreeFields.js.map +1 -1
  303. package/dist/endpoints/ai.js +58 -34
  304. package/dist/endpoints/ai.js.map +1 -1
  305. package/dist/endpoints/context.js +86 -40
  306. package/dist/endpoints/context.js.map +1 -1
  307. package/dist/endpoints/index.js +153 -76
  308. package/dist/endpoints/index.js.map +1 -1
  309. package/dist/endpoints/postcss.d.js +5 -0
  310. package/dist/endpoints/postcss.d.js.map +1 -0
  311. package/dist/endpoints/prompts.js +81 -39
  312. package/dist/endpoints/prompts.js.map +1 -1
  313. package/dist/endpoints/styles.js +34 -36
  314. package/dist/endpoints/styles.js.map +1 -1
  315. package/dist/exports/client.js +2 -2
  316. package/dist/exports/client.js.map +1 -1
  317. package/dist/exports/rsc.js +2 -2
  318. package/dist/exports/rsc.js.map +1 -1
  319. package/dist/fields/AlignmentField.d.ts +1 -1
  320. package/dist/fields/AlignmentField.d.ts.map +1 -1
  321. package/dist/fields/AlignmentField.js +93 -30
  322. package/dist/fields/AlignmentField.js.map +1 -1
  323. package/dist/fields/AnimationField.d.ts +2 -2
  324. package/dist/fields/AnimationField.d.ts.map +1 -1
  325. package/dist/fields/AnimationField.js +558 -84
  326. package/dist/fields/AnimationField.js.map +1 -1
  327. package/dist/fields/BackgroundField.d.ts +2 -2
  328. package/dist/fields/BackgroundField.d.ts.map +1 -1
  329. package/dist/fields/BackgroundField.js +754 -120
  330. package/dist/fields/BackgroundField.js.map +1 -1
  331. package/dist/fields/BorderField.d.ts +2 -2
  332. package/dist/fields/BorderField.d.ts.map +1 -1
  333. package/dist/fields/BorderField.js +275 -73
  334. package/dist/fields/BorderField.js.map +1 -1
  335. package/dist/fields/ColorPickerField.d.ts +2 -2
  336. package/dist/fields/ColorPickerField.d.ts.map +1 -1
  337. package/dist/fields/ColorPickerField.js +210 -68
  338. package/dist/fields/ColorPickerField.js.map +1 -1
  339. package/dist/fields/ContentAlignmentField.d.ts +1 -1
  340. package/dist/fields/ContentAlignmentField.d.ts.map +1 -1
  341. package/dist/fields/ContentAlignmentField.js +161 -75
  342. package/dist/fields/ContentAlignmentField.js.map +1 -1
  343. package/dist/fields/DimensionsField.d.ts +2 -2
  344. package/dist/fields/DimensionsField.d.ts.map +1 -1
  345. package/dist/fields/DimensionsField.js +575 -146
  346. package/dist/fields/DimensionsField.js.map +1 -1
  347. package/dist/fields/FlexAlignmentField.d.ts +2 -2
  348. package/dist/fields/FlexAlignmentField.d.ts.map +1 -1
  349. package/dist/fields/FlexAlignmentField.js +189 -51
  350. package/dist/fields/FlexAlignmentField.js.map +1 -1
  351. package/dist/fields/FolderPickerField.d.ts +8 -1
  352. package/dist/fields/FolderPickerField.d.ts.map +1 -1
  353. package/dist/fields/FolderPickerField.js +288 -75
  354. package/dist/fields/FolderPickerField.js.map +1 -1
  355. package/dist/fields/GradientEditor.d.ts +2 -2
  356. package/dist/fields/GradientEditor.d.ts.map +1 -1
  357. package/dist/fields/GradientEditor.js +462 -86
  358. package/dist/fields/GradientEditor.js.map +1 -1
  359. package/dist/fields/LockedField.d.ts +15 -2
  360. package/dist/fields/LockedField.d.ts.map +1 -1
  361. package/dist/fields/LockedField.js +180 -49
  362. package/dist/fields/LockedField.js.map +1 -1
  363. package/dist/fields/MarginField.d.ts +2 -2
  364. package/dist/fields/MarginField.d.ts.map +1 -1
  365. package/dist/fields/MarginField.js +144 -46
  366. package/dist/fields/MarginField.js.map +1 -1
  367. package/dist/fields/MediaField.d.ts +1 -1
  368. package/dist/fields/MediaField.d.ts.map +1 -1
  369. package/dist/fields/MediaField.js +688 -186
  370. package/dist/fields/MediaField.js.map +1 -1
  371. package/dist/fields/PaddingField.d.ts +2 -2
  372. package/dist/fields/PaddingField.d.ts.map +1 -1
  373. package/dist/fields/PaddingField.js +144 -46
  374. package/dist/fields/PaddingField.js.map +1 -1
  375. package/dist/fields/PageSegmentField.d.ts +15 -2
  376. package/dist/fields/PageSegmentField.d.ts.map +1 -1
  377. package/dist/fields/PageSegmentField.js +156 -54
  378. package/dist/fields/PageSegmentField.js.map +1 -1
  379. package/dist/fields/ResetField.d.ts +1 -1
  380. package/dist/fields/ResetField.d.ts.map +1 -1
  381. package/dist/fields/ResetField.js +59 -31
  382. package/dist/fields/ResetField.js.map +1 -1
  383. package/dist/fields/ResponsiveField.d.ts +1 -1
  384. package/dist/fields/ResponsiveField.d.ts.map +1 -1
  385. package/dist/fields/ResponsiveField.js +233 -90
  386. package/dist/fields/ResponsiveField.js.map +1 -1
  387. package/dist/fields/ResponsiveVisibilityField.d.ts +2 -2
  388. package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -1
  389. package/dist/fields/ResponsiveVisibilityField.js +119 -36
  390. package/dist/fields/ResponsiveVisibilityField.js.map +1 -1
  391. package/dist/fields/SizeField.d.ts +3 -3
  392. package/dist/fields/SizeField.d.ts.map +1 -1
  393. package/dist/fields/SizeField.js +226 -52
  394. package/dist/fields/SizeField.js.map +1 -1
  395. package/dist/fields/SlugPreviewField.d.ts +8 -1
  396. package/dist/fields/SlugPreviewField.d.ts.map +1 -1
  397. package/dist/fields/SlugPreviewField.js +65 -16
  398. package/dist/fields/SlugPreviewField.js.map +1 -1
  399. package/dist/fields/TemplateField.d.ts +1 -1
  400. package/dist/fields/TemplateField.d.ts.map +1 -1
  401. package/dist/fields/TemplateField.js +362 -120
  402. package/dist/fields/TemplateField.js.map +1 -1
  403. package/dist/fields/TransformField.d.ts +2 -2
  404. package/dist/fields/TransformField.d.ts.map +1 -1
  405. package/dist/fields/TransformField.js +517 -81
  406. package/dist/fields/TransformField.js.map +1 -1
  407. package/dist/fields/VerticalAlignmentField.d.ts +1 -1
  408. package/dist/fields/VerticalAlignmentField.d.ts.map +1 -1
  409. package/dist/fields/VerticalAlignmentField.js +93 -30
  410. package/dist/fields/VerticalAlignmentField.js.map +1 -1
  411. package/dist/fields/WidthField.d.ts +2 -2
  412. package/dist/fields/WidthField.d.ts.map +1 -1
  413. package/dist/fields/WidthField.js +278 -81
  414. package/dist/fields/WidthField.js.map +1 -1
  415. package/dist/fields/index.d.ts +41 -41
  416. package/dist/fields/index.d.ts.map +1 -1
  417. package/dist/fields/index.js +37 -43
  418. package/dist/fields/index.js.map +1 -1
  419. package/dist/fields/richtext/controls/ColorPickerControl.d.ts +13 -2
  420. package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +1 -1
  421. package/dist/fields/richtext/controls/ColorPickerControl.js +212 -47
  422. package/dist/fields/richtext/controls/ColorPickerControl.js.map +1 -1
  423. package/dist/fields/richtext/controls/DropdownPortal.d.ts +2 -2
  424. package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +1 -1
  425. package/dist/fields/richtext/controls/DropdownPortal.js +36 -4
  426. package/dist/fields/richtext/controls/DropdownPortal.js.map +1 -1
  427. package/dist/fields/richtext/controls/FontSizeControl.d.ts +9 -1
  428. package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +1 -1
  429. package/dist/fields/richtext/controls/FontSizeControl.js +109 -24
  430. package/dist/fields/richtext/controls/FontSizeControl.js.map +1 -1
  431. package/dist/fields/richtext/controls/HighlightControl.d.ts +12 -1
  432. package/dist/fields/richtext/controls/HighlightControl.d.ts.map +1 -1
  433. package/dist/fields/richtext/controls/HighlightControl.js +54 -17
  434. package/dist/fields/richtext/controls/HighlightControl.js.map +1 -1
  435. package/dist/fields/richtext/controls/index.d.ts +5 -5
  436. package/dist/fields/richtext/controls/index.d.ts.map +1 -1
  437. package/dist/fields/richtext/controls/index.js +8 -11
  438. package/dist/fields/richtext/controls/index.js.map +1 -1
  439. package/dist/fields/richtext/controls/shared.js +108 -63
  440. package/dist/fields/richtext/controls/shared.js.map +1 -1
  441. package/dist/fields/richtext/createRichTextField.d.ts +18 -4
  442. package/dist/fields/richtext/createRichTextField.d.ts.map +1 -1
  443. package/dist/fields/richtext/createRichTextField.js +113 -26
  444. package/dist/fields/richtext/createRichTextField.js.map +1 -1
  445. package/dist/fields/richtext/extensions/FontSize.js +26 -20
  446. package/dist/fields/richtext/extensions/FontSize.js.map +1 -1
  447. package/dist/fields/richtext/extensions/index.d.ts +1 -1
  448. package/dist/fields/richtext/extensions/index.d.ts.map +1 -1
  449. package/dist/fields/richtext/extensions/index.js +2 -2
  450. package/dist/fields/richtext/extensions/index.js.map +1 -1
  451. package/dist/fields/richtext/index.d.ts +6 -6
  452. package/dist/fields/richtext/index.d.ts.map +1 -1
  453. package/dist/fields/richtext/index.js +8 -8
  454. package/dist/fields/richtext/index.js.map +1 -1
  455. package/dist/fields/shared.d.ts +1 -1
  456. package/dist/fields/shared.d.ts.map +1 -1
  457. package/dist/fields/shared.js +915 -478
  458. package/dist/fields/shared.js.map +1 -1
  459. package/dist/hooks/index.d.ts +2 -2
  460. package/dist/hooks/index.d.ts.map +1 -1
  461. package/dist/hooks/index.js +3 -3
  462. package/dist/hooks/index.js.map +1 -1
  463. package/dist/hooks/useResponsiveStyles.d.ts +1 -1
  464. package/dist/hooks/useResponsiveStyles.d.ts.map +1 -1
  465. package/dist/hooks/useResponsiveStyles.js +36 -32
  466. package/dist/hooks/useResponsiveStyles.js.map +1 -1
  467. package/dist/hooks/useScrollAnimation.js +26 -24
  468. package/dist/hooks/useScrollAnimation.js.map +1 -1
  469. package/dist/index.d.ts +4 -4
  470. package/dist/index.d.ts.map +1 -1
  471. package/dist/index.js +5 -5
  472. package/dist/index.js.map +1 -1
  473. package/dist/layouts/LayoutWrapper.d.ts +3 -3
  474. package/dist/layouts/LayoutWrapper.d.ts.map +1 -1
  475. package/dist/layouts/LayoutWrapper.js +115 -51
  476. package/dist/layouts/LayoutWrapper.js.map +1 -1
  477. package/dist/layouts/defaults.d.ts +1 -1
  478. package/dist/layouts/defaults.d.ts.map +1 -1
  479. package/dist/layouts/defaults.js +23 -31
  480. package/dist/layouts/defaults.js.map +1 -1
  481. package/dist/layouts/index.d.ts +4 -4
  482. package/dist/layouts/index.d.ts.map +1 -1
  483. package/dist/layouts/index.js +5 -4
  484. package/dist/layouts/index.js.map +1 -1
  485. package/dist/layouts/types.js +4 -2
  486. package/dist/layouts/types.js.map +1 -1
  487. package/dist/layouts/utils.d.ts +1 -1
  488. package/dist/layouts/utils.d.ts.map +1 -1
  489. package/dist/layouts/utils.js +32 -40
  490. package/dist/layouts/utils.js.map +1 -1
  491. package/dist/next/index.js +31 -34
  492. package/dist/next/index.js.map +1 -1
  493. package/dist/plugin/collections/Pages.d.ts +2 -2
  494. package/dist/plugin/collections/Pages.d.ts.map +1 -1
  495. package/dist/plugin/collections/Pages.js +46 -43
  496. package/dist/plugin/collections/Pages.js.map +1 -1
  497. package/dist/plugin/fields/index.d.ts +3 -3
  498. package/dist/plugin/fields/index.d.ts.map +1 -1
  499. package/dist/plugin/fields/index.js +100 -78
  500. package/dist/plugin/fields/index.js.map +1 -1
  501. package/dist/plugin/fields/types.d.ts +1 -1
  502. package/dist/plugin/fields/types.d.ts.map +1 -1
  503. package/dist/plugin/fields/types.js +26 -2
  504. package/dist/plugin/fields/types.js.map +1 -1
  505. package/dist/plugin/hooks/index.d.ts +1 -1
  506. package/dist/plugin/hooks/index.d.ts.map +1 -1
  507. package/dist/plugin/hooks/index.js +2 -2
  508. package/dist/plugin/hooks/index.js.map +1 -1
  509. package/dist/plugin/hooks/isHomepageUnique.js +28 -19
  510. package/dist/plugin/hooks/isHomepageUnique.js.map +1 -1
  511. package/dist/plugin/index.d.ts +8 -8
  512. package/dist/plugin/index.d.ts.map +1 -1
  513. package/dist/plugin/index.js +192 -188
  514. package/dist/plugin/index.js.map +1 -1
  515. package/dist/render/HybridPageRenderer.d.ts +2 -2
  516. package/dist/render/HybridPageRenderer.d.ts.map +1 -1
  517. package/dist/render/HybridPageRenderer.js +58 -10
  518. package/dist/render/HybridPageRenderer.js.map +1 -1
  519. package/dist/render/PageRenderer.d.ts +2 -2
  520. package/dist/render/PageRenderer.d.ts.map +1 -1
  521. package/dist/render/PageRenderer.js +31 -14
  522. package/dist/render/PageRenderer.js.map +1 -1
  523. package/dist/render/PuckEditor.client.d.ts +1 -1
  524. package/dist/render/PuckEditor.client.d.ts.map +1 -1
  525. package/dist/render/PuckEditor.client.js +33 -16
  526. package/dist/render/PuckEditor.client.js.map +1 -1
  527. package/dist/render/index.d.ts +5 -5
  528. package/dist/render/index.d.ts.map +1 -1
  529. package/dist/render/index.js +5 -6
  530. package/dist/render/index.js.map +1 -1
  531. package/dist/styles/puck-dark-mode.css +101 -0
  532. package/dist/theme/context.d.ts +2 -2
  533. package/dist/theme/context.d.ts.map +1 -1
  534. package/dist/theme/context.js +21 -18
  535. package/dist/theme/context.js.map +1 -1
  536. package/dist/theme/defaults.d.ts +1 -1
  537. package/dist/theme/defaults.d.ts.map +1 -1
  538. package/dist/theme/defaults.js +83 -37
  539. package/dist/theme/defaults.js.map +1 -1
  540. package/dist/theme/example.d.ts +1 -1
  541. package/dist/theme/example.d.ts.map +1 -1
  542. package/dist/theme/example.js +68 -30
  543. package/dist/theme/example.js.map +1 -1
  544. package/dist/theme/index.d.ts +5 -5
  545. package/dist/theme/index.d.ts.map +1 -1
  546. package/dist/theme/index.js +6 -5
  547. package/dist/theme/index.js.map +1 -1
  548. package/dist/theme/types.js +6 -2
  549. package/dist/theme/types.js.map +1 -1
  550. package/dist/theme/utils.d.ts +1 -1
  551. package/dist/theme/utils.d.ts.map +1 -1
  552. package/dist/theme/utils.js +24 -25
  553. package/dist/theme/utils.js.map +1 -1
  554. package/dist/types/index.d.ts +42 -6
  555. package/dist/types/index.d.ts.map +1 -1
  556. package/dist/types/index.js +3 -1
  557. package/dist/types/index.js.map +1 -1
  558. package/dist/utils/index.d.ts +2 -2
  559. package/dist/utils/index.d.ts.map +1 -1
  560. package/dist/utils/index.js +13 -22
  561. package/dist/utils/index.js.map +1 -1
  562. package/dist/utils/migration.d.ts +1 -1
  563. package/dist/utils/migration.d.ts.map +1 -1
  564. package/dist/utils/migration.js +43 -49
  565. package/dist/utils/migration.js.map +1 -1
  566. package/dist/utils/validation.d.ts +1 -1
  567. package/dist/utils/validation.d.ts.map +1 -1
  568. package/dist/utils/validation.js +36 -43
  569. package/dist/utils/validation.js.map +1 -1
  570. package/dist/version.d.ts +1 -1
  571. package/dist/version.js +2 -1
  572. package/dist/version.js.map +1 -1
  573. package/dist/views/PuckConfigContext.d.ts +1 -1
  574. package/dist/views/PuckConfigContext.d.ts.map +1 -1
  575. package/dist/views/PuckConfigContext.js +25 -10
  576. package/dist/views/PuckConfigContext.js.map +1 -1
  577. package/dist/views/PuckEditorView.d.ts +1 -1
  578. package/dist/views/PuckEditorView.d.ts.map +1 -1
  579. package/dist/views/PuckEditorView.js +137 -41
  580. package/dist/views/PuckEditorView.js.map +1 -1
  581. package/dist/views/index.js +2 -2
  582. package/dist/views/index.js.map +1 -1
  583. package/package.json +62 -42
@@ -1,3 +1,16 @@
1
+ /**
2
+ * PageSegmentField - Custom Puck field for page segment editing
3
+ *
4
+ * Provides an editable text field with automatic slugification.
5
+ * Integrates with @delmaredigital/payload-page-tree plugin.
6
+ *
7
+ * Exports:
8
+ * - PageSegmentField: Basic editable page segment field
9
+ * - LockedPageSegmentField: Locked by default, requires clicking lock icon to edit
10
+ * - createPageSegmentField: Factory for basic field
11
+ * - createLockedPageSegmentField: Factory for locked field (recommended for page-tree)
12
+ */
13
+ import React from 'react';
1
14
  import type { CustomField } from '@puckeditor/core';
2
15
  interface PageSegmentFieldProps {
3
16
  value: string;
@@ -8,7 +21,7 @@ interface PageSegmentFieldProps {
8
21
  interface LockedPageSegmentFieldProps extends PageSegmentFieldProps {
9
22
  warningMessage?: string;
10
23
  }
11
- export declare function PageSegmentField({ value, onChange, label, placeholder, }: PageSegmentFieldProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function PageSegmentField({ value, onChange, label, placeholder, }: PageSegmentFieldProps): React.JSX.Element;
12
25
  /**
13
26
  * Creates a Puck field configuration for page segment editing
14
27
  */
@@ -20,7 +33,7 @@ export declare function createPageSegmentField(config?: {
20
33
  * PageSegmentField with lock/unlock functionality.
21
34
  * Starts locked to prevent accidental URL changes.
22
35
  */
23
- export declare function LockedPageSegmentField({ value, onChange, label, placeholder, warningMessage, }: LockedPageSegmentFieldProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function LockedPageSegmentField({ value, onChange, label, placeholder, warningMessage, }: LockedPageSegmentFieldProps): React.JSX.Element;
24
37
  /**
25
38
  * Creates a Puck field configuration for a locked page segment field.
26
39
  * Recommended for page-tree integration to prevent accidental URL changes.
@@ -1 +1 @@
1
- {"version":3,"file":"PageSegmentField.d.ts","sourceRoot":"","sources":["../../src/fields/PageSegmentField.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAwBnD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,2BAA4B,SAAQ,qBAAqB;IACjE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,KAAsB,EACtB,WAA4B,GAC7B,EAAE,qBAAqB,2CAqFvB;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,WAAW,CAAC,MAAM,CAAC,CAatB;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,QAAQ,EACR,KAAsB,EACtB,WAA4B,EAC5B,cAAoD,GACrD,EAAE,2BAA2B,2CA4I7B;AAMD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,WAAW,CAAC,MAAM,CAAC,CActB"}
1
+ {"version":3,"file":"PageSegmentField.d.ts","sourceRoot":"","sources":["../../src/fields/PageSegmentField.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAwBnD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,2BAA4B,SAAQ,qBAAqB;IACjE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,KAAsB,EACtB,WAA4B,GAC7B,EAAE,qBAAqB,qBAqFvB;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,WAAW,CAAC,MAAM,CAAC,CAatB;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,QAAQ,EACR,KAAsB,EACtB,WAA4B,EAC5B,cAAoD,GACrD,EAAE,2BAA2B,qBA4I7B;AAMD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,WAAW,CAAC,MAAM,CAAC,CActB"}
@@ -11,63 +11,81 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
11
11
  * - LockedPageSegmentField: Locked by default, requires clicking lock icon to edit
12
12
  * - createPageSegmentField: Factory for basic field
13
13
  * - createLockedPageSegmentField: Factory for locked field (recommended for page-tree)
14
- */
15
- import { useState, useCallback, useEffect, useRef } from 'react';
14
+ */ import React, { useState, useCallback, useEffect, useRef } from 'react';
16
15
  import { Lock, Unlock } from 'lucide-react';
17
16
  // =============================================================================
18
17
  // Slugify Utility
19
18
  // =============================================================================
20
19
  /**
21
20
  * Converts a string to a URL-safe slug
22
- */
23
- function slugify(text) {
24
- return text
25
- .toLowerCase()
26
- .trim()
27
- .replace(/[^\w\s-]/g, '') // Remove special characters
28
- .replace(/[\s_]+/g, '-') // Replace spaces and underscores with hyphens
29
- .replace(/-+/g, '-') // Remove consecutive hyphens
30
- .replace(/^-+|-+$/g, ''); // Remove leading/trailing hyphens
21
+ */ function slugify(text) {
22
+ return text.toLowerCase().trim().replace(/[^\w\s-]/g, '') // Remove special characters
23
+ .replace(/[\s_]+/g, '-') // Replace spaces and underscores with hyphens
24
+ .replace(/-+/g, '-') // Remove consecutive hyphens
25
+ .replace(/^-+|-+$/g, '') // Remove leading/trailing hyphens
26
+ ;
31
27
  }
32
28
  // =============================================================================
33
29
  // PageSegmentField Component
34
30
  // =============================================================================
35
- export function PageSegmentField({ value, onChange, label = 'Page Segment', placeholder = 'page-segment', }) {
31
+ export function PageSegmentField({ value, onChange, label = 'Page Segment', placeholder = 'page-segment' }) {
36
32
  const [localValue, setLocalValue] = useState(value);
37
33
  const [isFocused, setIsFocused] = useState(false);
38
34
  const inputRef = useRef(null);
39
35
  // Sync with external value changes
40
- useEffect(() => {
36
+ useEffect(()=>{
41
37
  if (!isFocused) {
42
38
  setLocalValue(value);
43
39
  }
44
- }, [value, isFocused]);
45
- const handleChange = useCallback((e) => {
40
+ }, [
41
+ value,
42
+ isFocused
43
+ ]);
44
+ const handleChange = useCallback((e)=>{
46
45
  const newValue = e.target.value;
47
46
  setLocalValue(newValue);
48
47
  }, []);
49
- const handleBlur = useCallback(() => {
48
+ const handleBlur = useCallback(()=>{
50
49
  setIsFocused(false);
51
50
  // Slugify on blur
52
51
  const slugified = slugify(localValue);
53
52
  setLocalValue(slugified);
54
53
  onChange(slugified);
55
- }, [localValue, onChange]);
56
- const handleFocus = useCallback(() => {
54
+ }, [
55
+ localValue,
56
+ onChange
57
+ ]);
58
+ const handleFocus = useCallback(()=>{
57
59
  setIsFocused(true);
58
60
  }, []);
59
- const handleKeyDown = useCallback((e) => {
61
+ const handleKeyDown = useCallback((e)=>{
60
62
  if (e.key === 'Enter') {
61
63
  inputRef.current?.blur();
62
64
  }
63
65
  }, []);
64
- return (_jsxs("div", { className: "puck-field", children: [_jsx("label", { style: {
66
+ return /*#__PURE__*/ _jsxs("div", {
67
+ className: "puck-field",
68
+ children: [
69
+ /*#__PURE__*/ _jsx("label", {
70
+ style: {
65
71
  display: 'block',
66
72
  fontSize: '14px',
67
73
  fontWeight: 500,
68
74
  color: 'var(--puck-color-grey-04)',
69
- marginBottom: '8px',
70
- }, children: label }), _jsx("input", { ref: inputRef, type: "text", value: localValue, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, placeholder: placeholder, style: {
75
+ marginBottom: '8px'
76
+ },
77
+ children: label
78
+ }),
79
+ /*#__PURE__*/ _jsx("input", {
80
+ ref: inputRef,
81
+ type: "text",
82
+ value: localValue,
83
+ onChange: handleChange,
84
+ onFocus: handleFocus,
85
+ onBlur: handleBlur,
86
+ onKeyDown: handleKeyDown,
87
+ placeholder: placeholder,
88
+ style: {
71
89
  width: '100%',
72
90
  padding: '8px 12px',
73
91
  fontSize: '14px',
@@ -76,24 +94,35 @@ export function PageSegmentField({ value, onChange, label = 'Page Segment', plac
76
94
  backgroundColor: 'var(--puck-color-white)',
77
95
  color: 'var(--puck-color-grey-04)',
78
96
  outline: 'none',
79
- transition: 'border-color 0.15s ease',
80
- } }), _jsx("p", { style: {
97
+ transition: 'border-color 0.15s ease'
98
+ }
99
+ }),
100
+ /*#__PURE__*/ _jsx("p", {
101
+ style: {
81
102
  marginTop: '6px',
82
103
  fontSize: '12px',
83
- color: 'var(--puck-color-grey-06)',
84
- }, children: "Auto-slugified on blur. Used in URL path." })] }));
104
+ color: 'var(--puck-color-grey-06)'
105
+ },
106
+ children: "Auto-slugified on blur. Used in URL path."
107
+ })
108
+ ]
109
+ });
85
110
  }
86
111
  // =============================================================================
87
112
  // Field Configuration Factory
88
113
  // =============================================================================
89
114
  /**
90
115
  * Creates a Puck field configuration for page segment editing
91
- */
92
- export function createPageSegmentField(config) {
116
+ */ export function createPageSegmentField(config) {
93
117
  return {
94
118
  type: 'custom',
95
119
  label: config?.label ?? 'Page Segment',
96
- render: ({ value, onChange }) => (_jsx(PageSegmentField, { value: value || '', onChange: onChange, label: config?.label, placeholder: config?.placeholder })),
120
+ render: ({ value, onChange })=>/*#__PURE__*/ _jsx(PageSegmentField, {
121
+ value: value || '',
122
+ onChange: onChange,
123
+ label: config?.label,
124
+ placeholder: config?.placeholder
125
+ })
97
126
  };
98
127
  }
99
128
  // =============================================================================
@@ -102,47 +131,66 @@ export function createPageSegmentField(config) {
102
131
  /**
103
132
  * PageSegmentField with lock/unlock functionality.
104
133
  * Starts locked to prevent accidental URL changes.
105
- */
106
- export function LockedPageSegmentField({ value, onChange, label = 'Page Segment', placeholder = 'page-segment', warningMessage = 'Changing may break existing links', }) {
134
+ */ export function LockedPageSegmentField({ value, onChange, label = 'Page Segment', placeholder = 'page-segment', warningMessage = 'Changing may break existing links' }) {
107
135
  const [isLocked, setIsLocked] = useState(true);
108
136
  const [localValue, setLocalValue] = useState(value);
109
137
  const [isFocused, setIsFocused] = useState(false);
110
138
  const inputRef = useRef(null);
111
139
  // Sync with external value changes
112
- useEffect(() => {
140
+ useEffect(()=>{
113
141
  if (!isFocused) {
114
142
  setLocalValue(value);
115
143
  }
116
- }, [value, isFocused]);
117
- const handleChange = useCallback((e) => {
144
+ }, [
145
+ value,
146
+ isFocused
147
+ ]);
148
+ const handleChange = useCallback((e)=>{
118
149
  const newValue = e.target.value;
119
150
  setLocalValue(newValue);
120
151
  }, []);
121
- const handleBlur = useCallback(() => {
152
+ const handleBlur = useCallback(()=>{
122
153
  setIsFocused(false);
123
154
  // Slugify on blur
124
155
  const slugified = slugify(localValue);
125
156
  setLocalValue(slugified);
126
157
  onChange(slugified);
127
- }, [localValue, onChange]);
128
- const handleFocus = useCallback(() => {
158
+ }, [
159
+ localValue,
160
+ onChange
161
+ ]);
162
+ const handleFocus = useCallback(()=>{
129
163
  setIsFocused(true);
130
164
  }, []);
131
- const handleKeyDown = useCallback((e) => {
165
+ const handleKeyDown = useCallback((e)=>{
132
166
  if (e.key === 'Enter') {
133
167
  inputRef.current?.blur();
134
168
  }
135
169
  }, []);
136
- return (_jsxs("div", { className: "puck-field", children: [_jsxs("div", { className: "puck-field-header", style: {
170
+ return /*#__PURE__*/ _jsxs("div", {
171
+ className: "puck-field",
172
+ children: [
173
+ /*#__PURE__*/ _jsxs("div", {
174
+ className: "puck-field-header",
175
+ style: {
137
176
  display: 'flex',
138
177
  alignItems: 'center',
139
178
  justifyContent: 'space-between',
140
- marginBottom: '8px',
141
- }, children: [_jsx("label", { style: {
179
+ marginBottom: '8px'
180
+ },
181
+ children: [
182
+ /*#__PURE__*/ _jsx("label", {
183
+ style: {
142
184
  fontSize: '14px',
143
185
  fontWeight: 500,
144
- color: 'var(--puck-color-grey-04)',
145
- }, children: label }), _jsx("button", { type: "button", onClick: () => setIsLocked(!isLocked), style: {
186
+ color: 'var(--puck-color-grey-04)'
187
+ },
188
+ children: label
189
+ }),
190
+ /*#__PURE__*/ _jsx("button", {
191
+ type: "button",
192
+ onClick: ()=>setIsLocked(!isLocked),
193
+ style: {
146
194
  background: 'none',
147
195
  border: 'none',
148
196
  padding: '4px',
@@ -152,8 +200,33 @@ export function LockedPageSegmentField({ value, onChange, label = 'Page Segment'
152
200
  alignItems: 'center',
153
201
  justifyContent: 'center',
154
202
  borderRadius: '4px',
155
- transition: 'all 0.15s ease',
156
- }, title: isLocked ? 'Click to unlock' : 'Click to lock', children: isLocked ? _jsx(Lock, { size: 14 }) : _jsx(Unlock, { size: 14 }) })] }), _jsxs("div", { style: { position: 'relative' }, children: [_jsx("input", { ref: inputRef, type: "text", value: localValue, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, disabled: isLocked, placeholder: placeholder, style: {
203
+ transition: 'all 0.15s ease'
204
+ },
205
+ title: isLocked ? 'Click to unlock' : 'Click to lock',
206
+ children: isLocked ? /*#__PURE__*/ _jsx(Lock, {
207
+ size: 14
208
+ }) : /*#__PURE__*/ _jsx(Unlock, {
209
+ size: 14
210
+ })
211
+ })
212
+ ]
213
+ }),
214
+ /*#__PURE__*/ _jsxs("div", {
215
+ style: {
216
+ position: 'relative'
217
+ },
218
+ children: [
219
+ /*#__PURE__*/ _jsx("input", {
220
+ ref: inputRef,
221
+ type: "text",
222
+ value: localValue,
223
+ onChange: handleChange,
224
+ onFocus: handleFocus,
225
+ onBlur: handleBlur,
226
+ onKeyDown: handleKeyDown,
227
+ disabled: isLocked,
228
+ placeholder: placeholder,
229
+ style: {
157
230
  width: '100%',
158
231
  padding: '8px 12px',
159
232
  paddingRight: isLocked ? '32px' : '12px',
@@ -164,21 +237,44 @@ export function LockedPageSegmentField({ value, onChange, label = 'Page Segment'
164
237
  color: isLocked ? 'var(--puck-color-grey-05)' : 'var(--puck-color-grey-04)',
165
238
  cursor: isLocked ? 'not-allowed' : 'text',
166
239
  outline: 'none',
167
- transition: 'all 0.15s ease',
168
- } }), isLocked && (_jsx(Lock, { size: 14, style: {
240
+ transition: 'all 0.15s ease'
241
+ }
242
+ }),
243
+ isLocked && /*#__PURE__*/ _jsx(Lock, {
244
+ size: 14,
245
+ style: {
169
246
  position: 'absolute',
170
247
  right: '10px',
171
248
  top: '50%',
172
249
  transform: 'translateY(-50%)',
173
- color: 'var(--puck-color-grey-07)',
174
- } }))] }), _jsx("p", { style: {
250
+ color: 'var(--puck-color-grey-07)'
251
+ }
252
+ })
253
+ ]
254
+ }),
255
+ /*#__PURE__*/ _jsx("p", {
256
+ style: {
175
257
  marginTop: '6px',
176
258
  fontSize: '12px',
177
259
  color: 'var(--puck-color-grey-06)',
178
260
  display: 'flex',
179
261
  alignItems: 'center',
180
- gap: '4px',
181
- }, children: !isLocked && warningMessage ? (_jsxs(_Fragment, { children: [_jsx("span", { style: { color: 'var(--puck-color-rose-07)' }, children: "\u26A0" }), warningMessage] })) : ('Auto-slugified on blur. Used in URL path.') })] }));
262
+ gap: '4px'
263
+ },
264
+ children: !isLocked && warningMessage ? /*#__PURE__*/ _jsxs(_Fragment, {
265
+ children: [
266
+ /*#__PURE__*/ _jsx("span", {
267
+ style: {
268
+ color: 'var(--puck-color-rose-07)'
269
+ },
270
+ children: "⚠"
271
+ }),
272
+ warningMessage
273
+ ]
274
+ }) : 'Auto-slugified on blur. Used in URL path.'
275
+ })
276
+ ]
277
+ });
182
278
  }
183
279
  // =============================================================================
184
280
  // Locked Field Configuration Factory
@@ -186,12 +282,18 @@ export function LockedPageSegmentField({ value, onChange, label = 'Page Segment'
186
282
  /**
187
283
  * Creates a Puck field configuration for a locked page segment field.
188
284
  * Recommended for page-tree integration to prevent accidental URL changes.
189
- */
190
- export function createLockedPageSegmentField(config) {
285
+ */ export function createLockedPageSegmentField(config) {
191
286
  return {
192
287
  type: 'custom',
193
288
  label: config?.label ?? 'Page Segment',
194
- render: ({ value, onChange }) => (_jsx(LockedPageSegmentField, { value: value || '', onChange: onChange, label: config?.label, placeholder: config?.placeholder, warningMessage: config?.warningMessage })),
289
+ render: ({ value, onChange })=>/*#__PURE__*/ _jsx(LockedPageSegmentField, {
290
+ value: value || '',
291
+ onChange: onChange,
292
+ label: config?.label,
293
+ placeholder: config?.placeholder,
294
+ warningMessage: config?.warningMessage
295
+ })
195
296
  };
196
297
  }
298
+
197
299
  //# sourceMappingURL=PageSegmentField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageSegmentField.js","sourceRoot":"","sources":["../../src/fields/PageSegmentField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/PageSegmentField.tsx"],"sourcesContent":["'use client'\n\n/**\n * PageSegmentField - Custom Puck field for page segment editing\n *\n * Provides an editable text field with automatic slugification.\n * Integrates with @delmaredigital/payload-page-tree plugin.\n *\n * Exports:\n * - PageSegmentField: Basic editable page segment field\n * - LockedPageSegmentField: Locked by default, requires clicking lock icon to edit\n * - createPageSegmentField: Factory for basic field\n * - createLockedPageSegmentField: Factory for locked field (recommended for page-tree)\n */\n\nimport React, { useState, useCallback, useEffect, useRef } from 'react'\nimport type { CustomField } from '@puckeditor/core'\nimport { Lock, Unlock } from 'lucide-react'\n\n// =============================================================================\n// Slugify Utility\n// =============================================================================\n\n/**\n * Converts a string to a URL-safe slug\n */\nfunction slugify(text: string): string {\n return text\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, '') // Remove special characters\n .replace(/[\\s_]+/g, '-') // Replace spaces and underscores with hyphens\n .replace(/-+/g, '-') // Remove consecutive hyphens\n .replace(/^-+|-+$/g, '') // Remove leading/trailing hyphens\n}\n\n// =============================================================================\n// Types\n// =============================================================================\n\ninterface PageSegmentFieldProps {\n value: string\n onChange: (value: string) => void\n label?: string\n placeholder?: string\n}\n\ninterface LockedPageSegmentFieldProps extends PageSegmentFieldProps {\n warningMessage?: string\n}\n\n// =============================================================================\n// PageSegmentField Component\n// =============================================================================\n\nexport function PageSegmentField({\n value,\n onChange,\n label = 'Page Segment',\n placeholder = 'page-segment',\n}: PageSegmentFieldProps) {\n const [localValue, setLocalValue] = useState(value)\n const [isFocused, setIsFocused] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n\n // Sync with external value changes\n useEffect(() => {\n if (!isFocused) {\n setLocalValue(value)\n }\n }, [value, isFocused])\n\n const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalValue(newValue)\n }, [])\n\n const handleBlur = useCallback(() => {\n setIsFocused(false)\n // Slugify on blur\n const slugified = slugify(localValue)\n setLocalValue(slugified)\n onChange(slugified)\n }, [localValue, onChange])\n\n const handleFocus = useCallback(() => {\n setIsFocused(true)\n }, [])\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n inputRef.current?.blur()\n }\n }, [])\n\n return (\n <div className=\"puck-field\">\n {/* Label */}\n <label\n style={{\n display: 'block',\n fontSize: '14px',\n fontWeight: 500,\n color: 'var(--puck-color-grey-04)',\n marginBottom: '8px',\n }}\n >\n {label}\n </label>\n\n {/* Input */}\n <input\n ref={inputRef}\n type=\"text\"\n value={localValue}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n style={{\n width: '100%',\n padding: '8px 12px',\n fontSize: '14px',\n border: `1px solid ${isFocused ? 'var(--puck-color-azure-06)' : 'var(--puck-color-grey-09)'}`,\n borderRadius: '6px',\n backgroundColor: 'var(--puck-color-white)',\n color: 'var(--puck-color-grey-04)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n }}\n />\n\n {/* Helper text */}\n <p\n style={{\n marginTop: '6px',\n fontSize: '12px',\n color: 'var(--puck-color-grey-06)',\n }}\n >\n Auto-slugified on blur. Used in URL path.\n </p>\n </div>\n )\n}\n\n// =============================================================================\n// Field Configuration Factory\n// =============================================================================\n\n/**\n * Creates a Puck field configuration for page segment editing\n */\nexport function createPageSegmentField(config?: {\n label?: string\n placeholder?: string\n}): CustomField<string> {\n return {\n type: 'custom',\n label: config?.label ?? 'Page Segment',\n render: ({ value, onChange }) => (\n <PageSegmentField\n value={value || ''}\n onChange={onChange}\n label={config?.label}\n placeholder={config?.placeholder}\n />\n ),\n }\n}\n\n// =============================================================================\n// LockedPageSegmentField Component\n// =============================================================================\n\n/**\n * PageSegmentField with lock/unlock functionality.\n * Starts locked to prevent accidental URL changes.\n */\nexport function LockedPageSegmentField({\n value,\n onChange,\n label = 'Page Segment',\n placeholder = 'page-segment',\n warningMessage = 'Changing may break existing links',\n}: LockedPageSegmentFieldProps) {\n const [isLocked, setIsLocked] = useState(true)\n const [localValue, setLocalValue] = useState(value)\n const [isFocused, setIsFocused] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n\n // Sync with external value changes\n useEffect(() => {\n if (!isFocused) {\n setLocalValue(value)\n }\n }, [value, isFocused])\n\n const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setLocalValue(newValue)\n }, [])\n\n const handleBlur = useCallback(() => {\n setIsFocused(false)\n // Slugify on blur\n const slugified = slugify(localValue)\n setLocalValue(slugified)\n onChange(slugified)\n }, [localValue, onChange])\n\n const handleFocus = useCallback(() => {\n setIsFocused(true)\n }, [])\n\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n inputRef.current?.blur()\n }\n }, [])\n\n return (\n <div className=\"puck-field\">\n {/* Field header with label and lock toggle */}\n <div\n className=\"puck-field-header\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: '8px',\n }}\n >\n <label\n style={{\n fontSize: '14px',\n fontWeight: 500,\n color: 'var(--puck-color-grey-04)',\n }}\n >\n {label}\n </label>\n <button\n type=\"button\"\n onClick={() => setIsLocked(!isLocked)}\n style={{\n background: 'none',\n border: 'none',\n padding: '4px',\n cursor: 'pointer',\n color: isLocked ? 'var(--puck-color-grey-05)' : 'var(--puck-color-azure-04)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '4px',\n transition: 'all 0.15s ease',\n }}\n title={isLocked ? 'Click to unlock' : 'Click to lock'}\n >\n {isLocked ? <Lock size={14} /> : <Unlock size={14} />}\n </button>\n </div>\n\n {/* Input field */}\n <div style={{ position: 'relative' }}>\n <input\n ref={inputRef}\n type=\"text\"\n value={localValue}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n disabled={isLocked}\n placeholder={placeholder}\n style={{\n width: '100%',\n padding: '8px 12px',\n paddingRight: isLocked ? '32px' : '12px',\n fontSize: '14px',\n border: `1px solid ${isFocused && !isLocked ? 'var(--puck-color-azure-06)' : 'var(--puck-color-grey-09)'}`,\n borderRadius: '6px',\n backgroundColor: isLocked ? 'var(--puck-color-grey-11)' : 'var(--puck-color-white)',\n color: isLocked ? 'var(--puck-color-grey-05)' : 'var(--puck-color-grey-04)',\n cursor: isLocked ? 'not-allowed' : 'text',\n outline: 'none',\n transition: 'all 0.15s ease',\n }}\n />\n {isLocked && (\n <Lock\n size={14}\n style={{\n position: 'absolute',\n right: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n color: 'var(--puck-color-grey-07)',\n }}\n />\n )}\n </div>\n\n {/* Helper text / Warning message */}\n <p\n style={{\n marginTop: '6px',\n fontSize: '12px',\n color: 'var(--puck-color-grey-06)',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n }}\n >\n {!isLocked && warningMessage ? (\n <>\n <span style={{ color: 'var(--puck-color-rose-07)' }}>⚠</span>\n {warningMessage}\n </>\n ) : (\n 'Auto-slugified on blur. Used in URL path.'\n )}\n </p>\n </div>\n )\n}\n\n// =============================================================================\n// Locked Field Configuration Factory\n// =============================================================================\n\n/**\n * Creates a Puck field configuration for a locked page segment field.\n * Recommended for page-tree integration to prevent accidental URL changes.\n */\nexport function createLockedPageSegmentField(config?: {\n label?: string\n placeholder?: string\n warningMessage?: string\n}): CustomField<string> {\n return {\n type: 'custom',\n label: config?.label ?? 'Page Segment',\n render: ({ value, onChange }) => (\n <LockedPageSegmentField\n value={value || ''}\n onChange={onChange}\n label={config?.label}\n placeholder={config?.placeholder}\n warningMessage={config?.warningMessage}\n />\n ),\n }\n}\n"],"names":["React","useState","useCallback","useEffect","useRef","Lock","Unlock","slugify","text","toLowerCase","trim","replace","PageSegmentField","value","onChange","label","placeholder","localValue","setLocalValue","isFocused","setIsFocused","inputRef","handleChange","e","newValue","target","handleBlur","slugified","handleFocus","handleKeyDown","key","current","blur","div","className","style","display","fontSize","fontWeight","color","marginBottom","input","ref","type","onFocus","onBlur","onKeyDown","width","padding","border","borderRadius","backgroundColor","outline","transition","p","marginTop","createPageSegmentField","config","render","LockedPageSegmentField","warningMessage","isLocked","setIsLocked","alignItems","justifyContent","button","onClick","background","cursor","title","size","position","disabled","paddingRight","right","top","transform","gap","span","createLockedPageSegmentField"],"mappings":"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"}
@@ -13,7 +13,7 @@ interface ResetFieldProps {
13
13
  label?: string;
14
14
  disabled?: boolean;
15
15
  }
16
- declare function ResetFieldInner({ onClick, label, disabled, }: ResetFieldProps): import("react/jsx-runtime").JSX.Element;
16
+ declare function ResetFieldInner({ onClick, label, disabled, }: ResetFieldProps): React.JSX.Element;
17
17
  export declare const ResetField: React.MemoExoticComponent<typeof ResetFieldInner>;
18
18
  interface CreateResetFieldConfig<T> {
19
19
  label?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ResetField.d.ts","sourceRoot":"","sources":["../../src/fields/ResetField.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAgD,MAAM,OAAO,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAYnD,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAqCD,iBAAS,eAAe,CAAC,EACvB,OAAO,EACP,KAA2B,EAC3B,QAAQ,GACT,EAAE,eAAe,2CA2BjB;AAED,eAAO,MAAM,UAAU,mDAAwB,CAAA;AA+C/C,UAAU,sBAAsB,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,CAAC,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAChC,WAAW,CAAC,OAAO,CAAC,CAuCtB"}
1
+ {"version":3,"file":"ResetField.d.ts","sourceRoot":"","sources":["../../src/fields/ResetField.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAgD,MAAM,OAAO,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAYnD,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAqCD,iBAAS,eAAe,CAAC,EACvB,OAAO,EACP,KAA2B,EAC3B,QAAQ,GACT,EAAE,eAAe,qBA2BjB;AAED,eAAO,MAAM,UAAU,mDAAwB,CAAA;AA+C/C,UAAU,sBAAsB,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,CAAC,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAChC,WAAW,CAAC,OAAO,CAAC,CAuCtB"}
@@ -7,8 +7,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  * and restores the component to its default state.
8
8
  *
9
9
  * Uses Puck's usePuck hook and dispatch to properly update component data.
10
- */
11
- import { memo, useCallback } from 'react';
10
+ */ import React, { memo, useCallback } from 'react';
12
11
  import { createUsePuck } from '@puckeditor/core';
13
12
  import { RefreshCw } from 'lucide-react';
14
13
  // Create usePuck hook for accessing editor state
@@ -19,7 +18,7 @@ const usePuck = createUsePuck();
19
18
  const styles = {
20
19
  container: {
21
20
  display: 'flex',
22
- flexDirection: 'column',
21
+ flexDirection: 'column'
23
22
  },
24
23
  button: {
25
24
  display: 'flex',
@@ -35,46 +34,65 @@ const styles = {
35
34
  backgroundColor: 'transparent',
36
35
  color: 'var(--theme-elevation-500)',
37
36
  cursor: 'pointer',
38
- transition: 'all 0.15s',
37
+ transition: 'all 0.15s'
39
38
  },
40
39
  buttonDisabled: {
41
40
  opacity: 0.5,
42
- cursor: 'not-allowed',
43
- },
41
+ cursor: 'not-allowed'
42
+ }
44
43
  };
45
44
  // =============================================================================
46
45
  // ResetField Component
47
46
  // =============================================================================
48
- function ResetFieldInner({ onClick, label = 'Reset to defaults', disabled, }) {
49
- return (_jsx("div", { className: "puck-field", style: styles.container, children: _jsxs("button", { type: "button", onClick: onClick, disabled: disabled, style: {
47
+ function ResetFieldInner({ onClick, label = 'Reset to defaults', disabled }) {
48
+ return /*#__PURE__*/ _jsx("div", {
49
+ className: "puck-field",
50
+ style: styles.container,
51
+ children: /*#__PURE__*/ _jsxs("button", {
52
+ type: "button",
53
+ onClick: onClick,
54
+ disabled: disabled,
55
+ style: {
50
56
  ...styles.button,
51
- ...(disabled ? styles.buttonDisabled : {}),
52
- }, onMouseOver: (e) => {
57
+ ...disabled ? styles.buttonDisabled : {}
58
+ },
59
+ onMouseOver: (e)=>{
53
60
  if (!disabled) {
54
61
  e.currentTarget.style.color = 'var(--theme-error-500)';
55
62
  e.currentTarget.style.backgroundColor = 'rgba(239, 68, 68, 0.1)';
56
63
  }
57
- }, onMouseOut: (e) => {
64
+ },
65
+ onMouseOut: (e)=>{
58
66
  e.currentTarget.style.color = 'var(--theme-elevation-500)';
59
67
  e.currentTarget.style.backgroundColor = 'transparent';
60
- }, children: [_jsx(RefreshCw, { style: { width: '14px', height: '14px' } }), label] }) }));
68
+ },
69
+ children: [
70
+ /*#__PURE__*/ _jsx(RefreshCw, {
71
+ style: {
72
+ width: '14px',
73
+ height: '14px'
74
+ }
75
+ }),
76
+ label
77
+ ]
78
+ })
79
+ });
61
80
  }
62
- export const ResetField = memo(ResetFieldInner);
81
+ export const ResetField = /*#__PURE__*/ memo(ResetFieldInner);
63
82
  // =============================================================================
64
83
  // Helper Functions
65
84
  // =============================================================================
66
85
  /**
67
86
  * Recursively update a component's props in Puck data structure
68
- */
69
- function updateComponentInData(data, componentId, newProps) {
70
- const updateItem = (item) => {
87
+ */ function updateComponentInData(data, componentId, newProps) {
88
+ const updateItem = (item)=>{
71
89
  if (item.props?.id === componentId) {
72
90
  return {
73
91
  ...item,
74
92
  props: {
75
93
  ...newProps,
76
- id: componentId,
77
- },
94
+ id: componentId
95
+ }
78
96
  };
79
97
  }
80
98
  return item;
@@ -82,25 +100,24 @@ function updateComponentInData(data, componentId, newProps) {
82
100
  const updatedContent = data.content.map(updateItem);
83
101
  const updatedZones = {};
84
102
  if (data.zones) {
85
- for (const [zoneName, zoneContent] of Object.entries(data.zones)) {
103
+ for (const [zoneName, zoneContent] of Object.entries(data.zones)){
86
104
  updatedZones[zoneName] = zoneContent.map(updateItem);
87
105
  }
88
106
  }
89
107
  return {
90
108
  ...data,
91
109
  content: updatedContent,
92
- zones: Object.keys(updatedZones).length > 0 ? updatedZones : data.zones,
110
+ zones: Object.keys(updatedZones).length > 0 ? updatedZones : data.zones
93
111
  };
94
112
  }
95
113
  /**
96
114
  * Creates a Puck field configuration for a reset button
97
- */
98
- export function createResetField(config) {
99
- const ResetFieldWrapper = ({ readOnly }) => {
100
- const appState = usePuck((s) => s.appState);
101
- const dispatch = usePuck((s) => s.dispatch);
102
- const selectedItem = usePuck((s) => s.selectedItem);
103
- const handleReset = useCallback(() => {
115
+ */ export function createResetField(config) {
116
+ const ResetFieldWrapper = ({ readOnly })=>{
117
+ const appState = usePuck((s)=>s.appState);
118
+ const dispatch = usePuck((s)=>s.dispatch);
119
+ const selectedItem = usePuck((s)=>s.selectedItem);
120
+ const handleReset = useCallback(()=>{
104
121
  if (!selectedItem?.props?.id) {
105
122
  console.warn('ResetField: No selected item found');
106
123
  return;
@@ -109,14 +126,25 @@ export function createResetField(config) {
109
126
  const updatedData = updateComponentInData(appState.data, componentId, config.defaultProps);
110
127
  dispatch({
111
128
  type: 'setData',
112
- data: updatedData,
129
+ data: updatedData
113
130
  });
114
- }, [appState.data, dispatch, selectedItem]);
115
- return (_jsx(ResetField, { onClick: handleReset, label: config.label, disabled: readOnly }));
131
+ }, [
132
+ appState.data,
133
+ dispatch,
134
+ selectedItem
135
+ ]);
136
+ return /*#__PURE__*/ _jsx(ResetField, {
137
+ onClick: handleReset,
138
+ label: config.label,
139
+ disabled: readOnly
140
+ });
116
141
  };
117
142
  return {
118
143
  type: 'custom',
119
- render: ({ readOnly }) => _jsx(ResetFieldWrapper, { readOnly: readOnly }),
144
+ render: ({ readOnly })=>/*#__PURE__*/ _jsx(ResetFieldWrapper, {
145
+ readOnly: readOnly
146
+ })
120
147
  };
121
148
  }
149
+
122
150
  //# sourceMappingURL=ResetField.js.map