@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,17 +1,24 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { AccordionClient } from '../AccordionClient';
1
+ /**
2
+ * Accordion Component - Server-safe Puck Configuration
3
+ *
4
+ * Expandable sections with collapsible content.
5
+ * This version contains only the render function and types - no fields.
6
+ * The render function returns a client component (AccordionClient) that
7
+ * handles the interactive state.
8
+ */ import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { AccordionClient } from '../AccordionClient.js';
3
10
  const defaultProps = {
4
11
  items: [
5
12
  {
6
13
  title: 'What is this?',
7
14
  content: 'This is an accordion component that can expand and collapse.',
8
- defaultOpen: false,
15
+ defaultOpen: false
9
16
  },
10
17
  {
11
18
  title: 'How do I use it?',
12
19
  content: 'Click on each item to expand or collapse it.',
13
- defaultOpen: false,
14
- },
20
+ defaultOpen: false
21
+ }
15
22
  ],
16
23
  allowMultiple: false,
17
24
  textColor: null,
@@ -20,11 +27,22 @@ const defaultProps = {
20
27
  dimensions: null,
21
28
  transform: null,
22
29
  animation: null,
23
- customPadding: null,
30
+ customPadding: null
24
31
  };
25
32
  export const AccordionConfig = {
26
33
  label: 'Accordion',
27
34
  defaultProps,
28
- render: (props) => (_jsx(AccordionClient, { items: props.items, allowMultiple: props.allowMultiple, textColor: props.textColor, margin: props.margin, background: props.background, dimensions: props.dimensions, transform: props.transform, animation: props.animation, customPadding: props.customPadding })),
35
+ render: (props)=>/*#__PURE__*/ _jsx(AccordionClient, {
36
+ items: props.items,
37
+ allowMultiple: props.allowMultiple,
38
+ textColor: props.textColor,
39
+ margin: props.margin,
40
+ background: props.background,
41
+ dimensions: props.dimensions,
42
+ transform: props.transform,
43
+ animation: props.animation,
44
+ customPadding: props.customPadding
45
+ })
29
46
  };
47
+
30
48
  //# sourceMappingURL=Accordion.server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.server.js","sourceRoot":"","sources":["../../../src/components/interactive/Accordion.server.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAoBpD,MAAM,YAAY,GAAmB;IACnC,KAAK,EAAE;QACL;YACE,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,8DAA8D;YACvE,WAAW,EAAE,KAAK;SACnB;QACD;YACE,KAAK,EAAE,kBAAkB;YACzB,OAAO,EAAE,8CAA8C;YACvD,WAAW,EAAE,KAAK;SACnB;KACF;IACD,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;CACpB,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAoC;IAC9D,KAAK,EAAE,WAAW;IAClB,YAAY;IACZ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACjB,KAAC,eAAe,IACd,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,aAAa,EAAE,KAAK,CAAC,aAAa,GAClC,CACH;CACF,CAAA"}
1
+ {"version":3,"sources":["../../../src/components/interactive/Accordion.server.tsx"],"sourcesContent":["/**\n * Accordion Component - Server-safe Puck Configuration\n *\n * Expandable sections with collapsible content.\n * This version contains only the render function and types - no fields.\n * The render function returns a client component (AccordionClient) that\n * handles the interactive state.\n */\n\nimport type { ComponentConfig } from '@puckeditor/core'\nimport type {\n PaddingValue,\n DimensionsValue,\n BackgroundValue,\n AnimationValue,\n TransformValue,\n ColorValue,\n} from '../../fields/shared.js'\nimport { AccordionClient } from '../AccordionClient.js'\n\ninterface AccordionItemData {\n title: string\n content: string\n defaultOpen: boolean\n}\n\nexport interface AccordionProps {\n items: AccordionItemData[]\n allowMultiple: boolean\n textColor: ColorValue | null\n margin: PaddingValue | null\n background: BackgroundValue | null\n dimensions: DimensionsValue | null\n transform: TransformValue | null\n animation: AnimationValue | null\n customPadding: PaddingValue | null\n}\n\nconst defaultProps: AccordionProps = {\n items: [\n {\n title: 'What is this?',\n content: 'This is an accordion component that can expand and collapse.',\n defaultOpen: false,\n },\n {\n title: 'How do I use it?',\n content: 'Click on each item to expand or collapse it.',\n defaultOpen: false,\n },\n ],\n allowMultiple: false,\n textColor: null,\n margin: null,\n background: null,\n dimensions: null,\n transform: null,\n animation: null,\n customPadding: null,\n}\n\nexport const AccordionConfig: ComponentConfig<AccordionProps> = {\n label: 'Accordion',\n defaultProps,\n render: (props) => (\n <AccordionClient\n items={props.items}\n allowMultiple={props.allowMultiple}\n textColor={props.textColor}\n margin={props.margin}\n background={props.background}\n dimensions={props.dimensions}\n transform={props.transform}\n animation={props.animation}\n customPadding={props.customPadding}\n />\n ),\n}\n"],"names":["AccordionClient","defaultProps","items","title","content","defaultOpen","allowMultiple","textColor","margin","background","dimensions","transform","animation","customPadding","AccordionConfig","label","render","props"],"mappings":"AAAA;;;;;;;CAOC;AAWD,SAASA,eAAe,QAAQ,wBAAuB;AAoBvD,MAAMC,eAA+B;IACnCC,OAAO;QACL;YACEC,OAAO;YACPC,SAAS;YACTC,aAAa;QACf;QACA;YACEF,OAAO;YACPC,SAAS;YACTC,aAAa;QACf;KACD;IACDC,eAAe;IACfC,WAAW;IACXC,QAAQ;IACRC,YAAY;IACZC,YAAY;IACZC,WAAW;IACXC,WAAW;IACXC,eAAe;AACjB;AAEA,OAAO,MAAMC,kBAAmD;IAC9DC,OAAO;IACPd;IACAe,QAAQ,CAACC,sBACP,KAACjB;YACCE,OAAOe,MAAMf,KAAK;YAClBI,eAAeW,MAAMX,aAAa;YAClCC,WAAWU,MAAMV,SAAS;YAC1BC,QAAQS,MAAMT,MAAM;YACpBC,YAAYQ,MAAMR,UAAU;YAC5BC,YAAYO,MAAMP,UAAU;YAC5BC,WAAWM,MAAMN,SAAS;YAC1BC,WAAWK,MAAML,SAAS;YAC1BC,eAAeI,MAAMJ,aAAa;;AAGxC,EAAC"}
@@ -4,9 +4,9 @@
4
4
  * CTA button with customizable styling and link support.
5
5
  */
6
6
  import type { ComponentConfig } from '@puckeditor/core';
7
- import { type PaddingValue, type ColorValue, type BorderValue, type AnimationValue, type TransformValue } from '../../fields/shared';
8
- import { type Alignment } from '../../fields/AlignmentField';
9
- import { type SizeValue } from '../../fields/SizeField';
7
+ import { type PaddingValue, type ColorValue, type BorderValue, type AnimationValue, type TransformValue } from '../../fields/shared.js';
8
+ import { type Alignment } from '../../fields/AlignmentField.js';
9
+ import { type SizeValue } from '../../fields/SizeField.js';
10
10
  export interface ButtonProps {
11
11
  text: string;
12
12
  link: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Button.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAUxG,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,qBAAqB,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAA;IAClC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AA8BD,eAAO,MAAM,YAAY,EAAE,eAqI1B,CAAA"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Button.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAA;AAM/B,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAU3G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,qBAAqB,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAA;IAClC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AA8BD,eAAO,MAAM,YAAY,EAAE,eAqI1B,CAAA"}
@@ -1,25 +1,29 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { buttonVariantField, cn, marginValueToCSS, paddingValueToCSS, colorValueToCSS, borderValueToCSS, transformValueToCSS, } from '../../fields/shared';
3
- import { AnimatedWrapper } from '../AnimatedWrapper';
4
- import { createMarginField } from '../../fields/MarginField';
5
- import { createColorPickerField } from '../../fields/ColorPickerField';
6
- import { createBorderField } from '../../fields/BorderField';
7
- import { createPaddingField } from '../../fields/PaddingField';
8
- import { createAlignmentField } from '../../fields/AlignmentField';
9
- import { createSizeField, sizeValueToCSS, getSizeClasses } from '../../fields/SizeField';
10
- import { createAnimationField } from '../../fields/AnimationField';
11
- import { createTransformField } from '../../fields/TransformField';
12
- import { createResetField } from '../../fields/ResetField';
13
- import { DEFAULT_BUTTON_VARIANTS, DEFAULT_FOCUS_RING, getVariantClasses, } from '../../theme';
1
+ /**
2
+ * Button Component - Puck Configuration
3
+ *
4
+ * CTA button with customizable styling and link support.
5
+ */ import { jsx as _jsx } from "react/jsx-runtime";
6
+ import { buttonVariantField, cn, marginValueToCSS, paddingValueToCSS, colorValueToCSS, borderValueToCSS, transformValueToCSS } from '../../fields/shared.js';
7
+ import { AnimatedWrapper } from '../AnimatedWrapper.js';
8
+ import { createMarginField } from '../../fields/MarginField.js';
9
+ import { createColorPickerField } from '../../fields/ColorPickerField.js';
10
+ import { createBorderField } from '../../fields/BorderField.js';
11
+ import { createPaddingField } from '../../fields/PaddingField.js';
12
+ import { createAlignmentField } from '../../fields/AlignmentField.js';
13
+ import { createSizeField, sizeValueToCSS, getSizeClasses } from '../../fields/SizeField.js';
14
+ import { createAnimationField } from '../../fields/AnimationField.js';
15
+ import { createTransformField } from '../../fields/TransformField.js';
16
+ import { createResetField } from '../../fields/ResetField.js';
17
+ import { DEFAULT_BUTTON_VARIANTS, DEFAULT_FOCUS_RING, getVariantClasses } from '../../theme/index.js';
14
18
  const sizeStyles = {
15
19
  sm: 'h-8 px-3 text-sm',
16
20
  default: 'h-10 px-4',
17
- lg: 'h-12 px-8 text-lg',
21
+ lg: 'h-12 px-8 text-lg'
18
22
  };
19
23
  const alignmentWrapperMap = {
20
24
  left: 'text-left',
21
25
  center: 'text-center',
22
- right: 'text-right',
26
+ right: 'text-right'
23
27
  };
24
28
  const defaultProps = {
25
29
  text: 'Click Me',
@@ -34,42 +38,70 @@ const defaultProps = {
34
38
  alignment: null,
35
39
  transform: null,
36
40
  animation: null,
37
- customPadding: null,
41
+ customPadding: null
38
42
  };
39
43
  export const ButtonConfig = {
40
44
  label: 'Button',
41
45
  fields: {
42
- _reset: createResetField({ defaultProps }),
46
+ _reset: createResetField({
47
+ defaultProps
48
+ }),
43
49
  text: {
44
50
  type: 'text',
45
- label: 'Button Text',
51
+ label: 'Button Text'
46
52
  },
47
53
  link: {
48
54
  type: 'text',
49
- label: 'Link URL',
55
+ label: 'Link URL'
50
56
  },
51
57
  variant: buttonVariantField,
52
- size: createSizeField({ label: 'Size' }),
58
+ size: createSizeField({
59
+ label: 'Size'
60
+ }),
53
61
  openInNewTab: {
54
62
  type: 'radio',
55
63
  label: 'Open in New Tab',
56
64
  options: [
57
- { label: 'No', value: 'no' },
58
- { label: 'Yes', value: 'yes' },
59
- ],
65
+ {
66
+ label: 'No',
67
+ value: 'no'
68
+ },
69
+ {
70
+ label: 'Yes',
71
+ value: 'yes'
72
+ }
73
+ ]
60
74
  },
61
- customBackgroundColor: createColorPickerField({ label: 'Custom Background', showOpacity: true }),
62
- customTextColor: createColorPickerField({ label: 'Custom Text Color', showOpacity: true }),
63
- customBorder: createBorderField({ label: 'Custom Border' }),
64
- alignment: createAlignmentField({ label: 'Alignment' }),
65
- transform: createTransformField({ label: 'Transform' }),
66
- animation: createAnimationField({ label: 'Animation' }),
75
+ customBackgroundColor: createColorPickerField({
76
+ label: 'Custom Background',
77
+ showOpacity: true
78
+ }),
79
+ customTextColor: createColorPickerField({
80
+ label: 'Custom Text Color',
81
+ showOpacity: true
82
+ }),
83
+ customBorder: createBorderField({
84
+ label: 'Custom Border'
85
+ }),
86
+ alignment: createAlignmentField({
87
+ label: 'Alignment'
88
+ }),
89
+ transform: createTransformField({
90
+ label: 'Transform'
91
+ }),
92
+ animation: createAnimationField({
93
+ label: 'Animation'
94
+ }),
67
95
  // Spacing (grouped at bottom)
68
- margin: createMarginField({ label: 'Margin' }),
69
- customPadding: createPaddingField({ label: 'Padding' }),
96
+ margin: createMarginField({
97
+ label: 'Margin'
98
+ }),
99
+ customPadding: createPaddingField({
100
+ label: 'Padding'
101
+ })
70
102
  },
71
103
  defaultProps,
72
- render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding }) => {
104
+ render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding })=>{
73
105
  // Determine if custom styles should override preset variant/size styles
74
106
  const hasCustomBackground = customBackgroundColor?.hex;
75
107
  const hasCustomTextColor = customTextColor?.hex;
@@ -80,14 +112,10 @@ export const ButtonConfig = {
80
112
  // Get size classes for preset modes, or empty for custom mode
81
113
  const sizeClasses = getSizeClasses(size, sizeStyles);
82
114
  // Build button classes - exclude variant/size classes if custom styles are set
83
- const buttonClasses = cn('inline-flex items-center justify-center font-medium transition-colors', `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`, 'disabled:opacity-50 disabled:pointer-events-none',
84
- // Only apply variant styles if no custom background/text color
85
- !hasCustomBackground && !hasCustomTextColor && variantClasses,
86
- // Only apply background portion of variant if no custom background
87
- hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90',
88
- // Only apply size classes if not using custom size or custom padding
89
- !hasCustomPadding && !hasCustomSize && sizeClasses,
90
- // Apply rounded-md unless custom border has radius
115
+ const buttonClasses = cn('inline-flex items-center justify-center font-medium transition-colors', `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`, 'disabled:opacity-50 disabled:pointer-events-none', // Only apply variant styles if no custom background/text color
116
+ !hasCustomBackground && !hasCustomTextColor && variantClasses, // Only apply background portion of variant if no custom background
117
+ hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90', // Only apply size classes if not using custom size or custom padding
118
+ !hasCustomPadding && !hasCustomSize && sizeClasses, // Apply rounded-md unless custom border has radius
91
119
  !customBorder?.radius && 'rounded-md');
92
120
  // Build inline styles for the button
93
121
  const buttonStyle = {};
@@ -119,7 +147,19 @@ export const ButtonConfig = {
119
147
  if (transformStyles) {
120
148
  Object.assign(buttonStyle, transformStyles);
121
149
  }
122
- const buttonElement = link ? (_jsx("a", { href: link, target: openInNewTab === 'yes' ? '_blank' : undefined, rel: openInNewTab === 'yes' ? 'noopener noreferrer' : undefined, className: buttonClasses, style: buttonStyle, children: text })) : (_jsx("button", { type: "button", className: buttonClasses, style: buttonStyle, children: text }));
150
+ const buttonElement = link ? /*#__PURE__*/ _jsx("a", {
151
+ href: link,
152
+ target: openInNewTab === 'yes' ? '_blank' : undefined,
153
+ rel: openInNewTab === 'yes' ? 'noopener noreferrer' : undefined,
154
+ className: buttonClasses,
155
+ style: buttonStyle,
156
+ children: text
157
+ }) : /*#__PURE__*/ _jsx("button", {
158
+ type: "button",
159
+ className: buttonClasses,
160
+ style: buttonStyle,
161
+ children: text
162
+ });
123
163
  const wrapperStyle = {};
124
164
  const marginCSS = marginValueToCSS(margin);
125
165
  if (marginCSS) {
@@ -127,7 +167,13 @@ export const ButtonConfig = {
127
167
  }
128
168
  // Get alignment value, defaulting to 'left'
129
169
  const alignmentValue = alignment ?? 'left';
130
- return (_jsx(AnimatedWrapper, { animation: animation, className: alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left, style: wrapperStyle, children: buttonElement }));
131
- },
170
+ return /*#__PURE__*/ _jsx(AnimatedWrapper, {
171
+ animation: animation,
172
+ className: alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left,
173
+ style: wrapperStyle,
174
+ children: buttonElement
175
+ });
176
+ }
132
177
  };
178
+
133
179
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/interactive/Button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/interactive/Button.tsx"],"sourcesContent":["/**\n * Button Component - Puck Configuration\n *\n * CTA button with customizable styling and link support.\n */\n\nimport type { ComponentConfig } from '@puckeditor/core'\nimport {\n buttonVariantField,\n cn,\n marginValueToCSS,\n paddingValueToCSS,\n colorValueToCSS,\n borderValueToCSS,\n transformValueToCSS,\n type PaddingValue,\n type ColorValue,\n type BorderValue,\n type AnimationValue,\n type TransformValue,\n} from '../../fields/shared.js'\nimport { AnimatedWrapper } from '../AnimatedWrapper.js'\nimport { createMarginField } from '../../fields/MarginField.js'\nimport { createColorPickerField } from '../../fields/ColorPickerField.js'\nimport { createBorderField } from '../../fields/BorderField.js'\nimport { createPaddingField } from '../../fields/PaddingField.js'\nimport { createAlignmentField, type Alignment } from '../../fields/AlignmentField.js'\nimport { createSizeField, sizeValueToCSS, getSizeClasses, type SizeValue } from '../../fields/SizeField.js'\nimport { createAnimationField } from '../../fields/AnimationField.js'\nimport { createTransformField } from '../../fields/TransformField.js'\nimport { createResetField } from '../../fields/ResetField.js'\nimport {\n DEFAULT_BUTTON_VARIANTS,\n DEFAULT_FOCUS_RING,\n getVariantClasses,\n} from '../../theme/index.js'\n\nexport interface ButtonProps {\n text: string\n link: string\n variant: string\n size: SizeValue | null\n openInNewTab: string\n margin: PaddingValue | null\n customBackgroundColor: ColorValue | null\n customTextColor: ColorValue | null\n customBorder: BorderValue | null\n alignment: Alignment | null\n transform: TransformValue | null\n animation: AnimationValue | null\n customPadding: PaddingValue | null\n}\n\nconst sizeStyles: Record<string, string> = {\n sm: 'h-8 px-3 text-sm',\n default: 'h-10 px-4',\n lg: 'h-12 px-8 text-lg',\n}\n\nconst alignmentWrapperMap: Record<string, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nconst defaultProps: ButtonProps = {\n text: 'Click Me',\n link: '',\n variant: 'default',\n size: null,\n openInNewTab: 'no',\n margin: null,\n customBackgroundColor: null,\n customTextColor: null,\n customBorder: null,\n alignment: null,\n transform: null,\n animation: null,\n customPadding: null,\n}\n\nexport const ButtonConfig: ComponentConfig = {\n label: 'Button',\n fields: {\n _reset: createResetField({ defaultProps }),\n text: {\n type: 'text',\n label: 'Button Text',\n },\n link: {\n type: 'text',\n label: 'Link URL',\n },\n variant: buttonVariantField,\n size: createSizeField({ label: 'Size' }),\n openInNewTab: {\n type: 'radio',\n label: 'Open in New Tab',\n options: [\n { label: 'No', value: 'no' },\n { label: 'Yes', value: 'yes' },\n ],\n },\n customBackgroundColor: createColorPickerField({ label: 'Custom Background', showOpacity: true }),\n customTextColor: createColorPickerField({ label: 'Custom Text Color', showOpacity: true }),\n customBorder: createBorderField({ label: 'Custom Border' }),\n alignment: createAlignmentField({ label: 'Alignment' }),\n transform: createTransformField({ label: 'Transform' }),\n animation: createAnimationField({ label: 'Animation' }),\n // Spacing (grouped at bottom)\n margin: createMarginField({ label: 'Margin' }),\n customPadding: createPaddingField({ label: 'Padding' }),\n },\n defaultProps,\n render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding }) => {\n // Determine if custom styles should override preset variant/size styles\n const hasCustomBackground = customBackgroundColor?.hex\n const hasCustomTextColor = customTextColor?.hex\n const hasCustomPadding = customPadding\n const hasCustomSize = size?.mode === 'custom'\n\n // Get variant classes from defaults (SSR-safe, no hooks)\n const variantClasses = getVariantClasses(DEFAULT_BUTTON_VARIANTS, variant, 'default')\n\n // Get size classes for preset modes, or empty for custom mode\n const sizeClasses = getSizeClasses(size, sizeStyles)\n\n // Build button classes - exclude variant/size classes if custom styles are set\n const buttonClasses = cn(\n 'inline-flex items-center justify-center font-medium transition-colors',\n `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`,\n 'disabled:opacity-50 disabled:pointer-events-none',\n // Only apply variant styles if no custom background/text color\n !hasCustomBackground && !hasCustomTextColor && variantClasses,\n // Only apply background portion of variant if no custom background\n hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90',\n // Only apply size classes if not using custom size or custom padding\n !hasCustomPadding && !hasCustomSize && sizeClasses,\n // Apply rounded-md unless custom border has radius\n !customBorder?.radius && 'rounded-md'\n )\n\n // Build inline styles for the button\n const buttonStyle: React.CSSProperties = {}\n\n // Apply custom background color\n if (hasCustomBackground) {\n buttonStyle.backgroundColor = colorValueToCSS(customBackgroundColor)\n }\n\n // Apply custom text color\n if (hasCustomTextColor) {\n buttonStyle.color = colorValueToCSS(customTextColor)\n }\n\n // Apply custom border\n const borderStyles = borderValueToCSS(customBorder)\n if (borderStyles) {\n Object.assign(buttonStyle, borderStyles)\n }\n\n // Apply custom size (only if mode is custom)\n const customSizeStyles = sizeValueToCSS(size)\n if (customSizeStyles) {\n Object.assign(buttonStyle, customSizeStyles)\n }\n\n // Apply custom padding (overrides size padding if set)\n const paddingCSS = paddingValueToCSS(customPadding)\n if (paddingCSS) {\n buttonStyle.padding = paddingCSS\n }\n\n // Apply transform\n const transformStyles = transformValueToCSS(transform)\n if (transformStyles) {\n Object.assign(buttonStyle, transformStyles)\n }\n\n const buttonElement = link ? (\n <a\n href={link}\n target={openInNewTab === 'yes' ? '_blank' : undefined}\n rel={openInNewTab === 'yes' ? 'noopener noreferrer' : undefined}\n className={buttonClasses}\n style={buttonStyle}\n >\n {text}\n </a>\n ) : (\n <button type=\"button\" className={buttonClasses} style={buttonStyle}>\n {text}\n </button>\n )\n\n const wrapperStyle: React.CSSProperties = {}\n const marginCSS = marginValueToCSS(margin)\n if (marginCSS) {\n wrapperStyle.margin = marginCSS\n }\n\n // Get alignment value, defaulting to 'left'\n const alignmentValue = alignment ?? 'left'\n\n return (\n <AnimatedWrapper\n animation={animation}\n className={alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left}\n style={wrapperStyle}\n >\n {buttonElement}\n </AnimatedWrapper>\n )\n },\n}\n"],"names":["buttonVariantField","cn","marginValueToCSS","paddingValueToCSS","colorValueToCSS","borderValueToCSS","transformValueToCSS","AnimatedWrapper","createMarginField","createColorPickerField","createBorderField","createPaddingField","createAlignmentField","createSizeField","sizeValueToCSS","getSizeClasses","createAnimationField","createTransformField","createResetField","DEFAULT_BUTTON_VARIANTS","DEFAULT_FOCUS_RING","getVariantClasses","sizeStyles","sm","default","lg","alignmentWrapperMap","left","center","right","defaultProps","text","link","variant","size","openInNewTab","margin","customBackgroundColor","customTextColor","customBorder","alignment","transform","animation","customPadding","ButtonConfig","label","fields","_reset","type","options","value","showOpacity","render","hasCustomBackground","hex","hasCustomTextColor","hasCustomPadding","hasCustomSize","mode","variantClasses","sizeClasses","buttonClasses","radius","buttonStyle","backgroundColor","color","borderStyles","Object","assign","customSizeStyles","paddingCSS","padding","transformStyles","buttonElement","a","href","target","undefined","rel","className","style","button","wrapperStyle","marginCSS","alignmentValue"],"mappings":"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"}
@@ -6,8 +6,8 @@
6
6
  * Safe for use in server components.
7
7
  */
8
8
  import type { ComponentConfig } from '@puckeditor/core';
9
- import { type PaddingValue, type ColorValue, type BorderValue, type AnimationValue, type TransformValue, type SizeValue } from '../../fields/shared';
10
- import type { Alignment } from '../../fields/AlignmentField';
9
+ import { type PaddingValue, type ColorValue, type BorderValue, type AnimationValue, type TransformValue, type SizeValue } from '../../fields/shared.js';
10
+ import type { Alignment } from '../../fields/AlignmentField.js';
11
11
  export interface ButtonProps {
12
12
  text: string;
13
13
  link: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.server.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Button.server.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAI5D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,qBAAqB,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAA;IAClC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AA8BD,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,WAAW,CAuGrD,CAAA"}
1
+ {"version":3,"file":"Button.server.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Button.server.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAI/D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,qBAAqB,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAA;IAClC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AA8BD,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,WAAW,CAuGrD,CAAA"}
@@ -1,17 +1,23 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn, marginValueToCSS, paddingValueToCSS, colorValueToCSS, borderValueToCSS, transformValueToCSS, sizeValueToCSS, getSizeClasses, } from '../../fields/shared';
3
- import { AnimatedWrapper } from '../AnimatedWrapper';
4
- import { DEFAULT_BUTTON_VARIANTS, DEFAULT_FOCUS_RING } from '../../theme/defaults';
5
- import { getVariantClasses } from '../../theme/utils';
1
+ /**
2
+ * Button Component - Server-safe Puck Configuration
3
+ *
4
+ * CTA button with customizable styling and link support.
5
+ * This version contains only the render function and types - no fields.
6
+ * Safe for use in server components.
7
+ */ import { jsx as _jsx } from "react/jsx-runtime";
8
+ import { cn, marginValueToCSS, paddingValueToCSS, colorValueToCSS, borderValueToCSS, transformValueToCSS, sizeValueToCSS, getSizeClasses } from '../../fields/shared.js';
9
+ import { AnimatedWrapper } from '../AnimatedWrapper.js';
10
+ import { DEFAULT_BUTTON_VARIANTS, DEFAULT_FOCUS_RING } from '../../theme/defaults.js';
11
+ import { getVariantClasses } from '../../theme/utils.js';
6
12
  const sizeStyles = {
7
13
  sm: 'h-8 px-3 text-sm',
8
14
  default: 'h-10 px-4',
9
- lg: 'h-12 px-8 text-lg',
15
+ lg: 'h-12 px-8 text-lg'
10
16
  };
11
17
  const alignmentWrapperMap = {
12
18
  left: 'text-left',
13
19
  center: 'text-center',
14
- right: 'text-right',
20
+ right: 'text-right'
15
21
  };
16
22
  const defaultProps = {
17
23
  text: 'Click Me',
@@ -26,12 +32,12 @@ const defaultProps = {
26
32
  alignment: null,
27
33
  transform: null,
28
34
  animation: null,
29
- customPadding: null,
35
+ customPadding: null
30
36
  };
31
37
  export const ButtonConfig = {
32
38
  label: 'Button',
33
39
  defaultProps,
34
- render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding }) => {
40
+ render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding })=>{
35
41
  // Determine if custom styles should override preset variant/size styles
36
42
  const hasCustomBackground = customBackgroundColor?.hex;
37
43
  const hasCustomTextColor = customTextColor?.hex;
@@ -42,14 +48,10 @@ export const ButtonConfig = {
42
48
  // Get size classes for preset modes, or empty for custom mode
43
49
  const sizeClasses = getSizeClasses(size, sizeStyles);
44
50
  // Build button classes - exclude variant/size classes if custom styles are set
45
- const buttonClasses = cn('inline-flex items-center justify-center font-medium transition-colors', `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`, 'disabled:opacity-50 disabled:pointer-events-none',
46
- // Only apply variant styles if no custom background/text color
47
- !hasCustomBackground && !hasCustomTextColor && variantClasses,
48
- // Only apply background portion of variant if no custom background
49
- hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90',
50
- // Only apply size classes if not using custom size or custom padding
51
- !hasCustomPadding && !hasCustomSize && sizeClasses,
52
- // Apply rounded-md unless custom border has radius
51
+ const buttonClasses = cn('inline-flex items-center justify-center font-medium transition-colors', `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`, 'disabled:opacity-50 disabled:pointer-events-none', // Only apply variant styles if no custom background/text color
52
+ !hasCustomBackground && !hasCustomTextColor && variantClasses, // Only apply background portion of variant if no custom background
53
+ hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90', // Only apply size classes if not using custom size or custom padding
54
+ !hasCustomPadding && !hasCustomSize && sizeClasses, // Apply rounded-md unless custom border has radius
53
55
  !customBorder?.radius && 'rounded-md');
54
56
  // Build inline styles for the button
55
57
  const buttonStyle = {};
@@ -81,7 +83,19 @@ export const ButtonConfig = {
81
83
  if (transformStyles) {
82
84
  Object.assign(buttonStyle, transformStyles);
83
85
  }
84
- const buttonElement = link ? (_jsx("a", { href: link, target: openInNewTab === 'yes' ? '_blank' : undefined, rel: openInNewTab === 'yes' ? 'noopener noreferrer' : undefined, className: buttonClasses, style: buttonStyle, children: text })) : (_jsx("button", { type: "button", className: buttonClasses, style: buttonStyle, children: text }));
86
+ const buttonElement = link ? /*#__PURE__*/ _jsx("a", {
87
+ href: link,
88
+ target: openInNewTab === 'yes' ? '_blank' : undefined,
89
+ rel: openInNewTab === 'yes' ? 'noopener noreferrer' : undefined,
90
+ className: buttonClasses,
91
+ style: buttonStyle,
92
+ children: text
93
+ }) : /*#__PURE__*/ _jsx("button", {
94
+ type: "button",
95
+ className: buttonClasses,
96
+ style: buttonStyle,
97
+ children: text
98
+ });
85
99
  const wrapperStyle = {};
86
100
  const marginCSS = marginValueToCSS(margin);
87
101
  if (marginCSS) {
@@ -89,7 +103,13 @@ export const ButtonConfig = {
89
103
  }
90
104
  // Get alignment value, defaulting to 'left'
91
105
  const alignmentValue = alignment ?? 'left';
92
- return (_jsx(AnimatedWrapper, { animation: animation, className: alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left, style: wrapperStyle, children: buttonElement }));
93
- },
106
+ return /*#__PURE__*/ _jsx(AnimatedWrapper, {
107
+ animation: animation,
108
+ className: alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left,
109
+ style: wrapperStyle,
110
+ children: buttonElement
111
+ });
112
+ }
94
113
  };
114
+
95
115
  //# sourceMappingURL=Button.server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.server.js","sourceRoot":"","sources":["../../../src/components/interactive/Button.server.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/interactive/Button.server.tsx"],"sourcesContent":["/**\n * Button Component - Server-safe Puck Configuration\n *\n * CTA button with customizable styling and link support.\n * This version contains only the render function and types - no fields.\n * Safe for use in server components.\n */\n\nimport type { ComponentConfig } from '@puckeditor/core'\nimport {\n cn,\n marginValueToCSS,\n paddingValueToCSS,\n colorValueToCSS,\n borderValueToCSS,\n transformValueToCSS,\n sizeValueToCSS,\n getSizeClasses,\n type PaddingValue,\n type ColorValue,\n type BorderValue,\n type AnimationValue,\n type TransformValue,\n type SizeValue,\n} from '../../fields/shared.js'\nimport { AnimatedWrapper } from '../AnimatedWrapper.js'\nimport type { Alignment } from '../../fields/AlignmentField.js'\nimport { DEFAULT_BUTTON_VARIANTS, DEFAULT_FOCUS_RING } from '../../theme/defaults.js'\nimport { getVariantClasses } from '../../theme/utils.js'\n\nexport interface ButtonProps {\n text: string\n link: string\n variant: string\n size: SizeValue | null\n openInNewTab: string\n margin: PaddingValue | null\n customBackgroundColor: ColorValue | null\n customTextColor: ColorValue | null\n customBorder: BorderValue | null\n alignment: Alignment | null\n transform: TransformValue | null\n animation: AnimationValue | null\n customPadding: PaddingValue | null\n}\n\nconst sizeStyles: Record<string, string> = {\n sm: 'h-8 px-3 text-sm',\n default: 'h-10 px-4',\n lg: 'h-12 px-8 text-lg',\n}\n\nconst alignmentWrapperMap: Record<string, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nconst defaultProps: ButtonProps = {\n text: 'Click Me',\n link: '',\n variant: 'default',\n size: null,\n openInNewTab: 'no',\n margin: null,\n customBackgroundColor: null,\n customTextColor: null,\n customBorder: null,\n alignment: null,\n transform: null,\n animation: null,\n customPadding: null,\n}\n\nexport const ButtonConfig: ComponentConfig<ButtonProps> = {\n label: 'Button',\n defaultProps,\n render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding }) => {\n // Determine if custom styles should override preset variant/size styles\n const hasCustomBackground = customBackgroundColor?.hex\n const hasCustomTextColor = customTextColor?.hex\n const hasCustomPadding = customPadding\n const hasCustomSize = size?.mode === 'custom'\n\n // Get variant classes from defaults (SSR-safe, no hooks)\n const variantClasses = getVariantClasses(DEFAULT_BUTTON_VARIANTS, variant, 'default')\n\n // Get size classes for preset modes, or empty for custom mode\n const sizeClasses = getSizeClasses(size, sizeStyles)\n\n // Build button classes - exclude variant/size classes if custom styles are set\n const buttonClasses = cn(\n 'inline-flex items-center justify-center font-medium transition-colors',\n `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`,\n 'disabled:opacity-50 disabled:pointer-events-none',\n // Only apply variant styles if no custom background/text color\n !hasCustomBackground && !hasCustomTextColor && variantClasses,\n // Only apply background portion of variant if no custom background\n hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90',\n // Only apply size classes if not using custom size or custom padding\n !hasCustomPadding && !hasCustomSize && sizeClasses,\n // Apply rounded-md unless custom border has radius\n !customBorder?.radius && 'rounded-md'\n )\n\n // Build inline styles for the button\n const buttonStyle: React.CSSProperties = {}\n\n // Apply custom background color\n if (hasCustomBackground) {\n buttonStyle.backgroundColor = colorValueToCSS(customBackgroundColor)\n }\n\n // Apply custom text color\n if (hasCustomTextColor) {\n buttonStyle.color = colorValueToCSS(customTextColor)\n }\n\n // Apply custom border\n const borderStyles = borderValueToCSS(customBorder)\n if (borderStyles) {\n Object.assign(buttonStyle, borderStyles)\n }\n\n // Apply custom size (only if mode is custom)\n const customSizeStyles = sizeValueToCSS(size)\n if (customSizeStyles) {\n Object.assign(buttonStyle, customSizeStyles)\n }\n\n // Apply custom padding (overrides size padding if set)\n const paddingCSS = paddingValueToCSS(customPadding)\n if (paddingCSS) {\n buttonStyle.padding = paddingCSS\n }\n\n // Apply transform\n const transformStyles = transformValueToCSS(transform)\n if (transformStyles) {\n Object.assign(buttonStyle, transformStyles)\n }\n\n const buttonElement = link ? (\n <a\n href={link}\n target={openInNewTab === 'yes' ? '_blank' : undefined}\n rel={openInNewTab === 'yes' ? 'noopener noreferrer' : undefined}\n className={buttonClasses}\n style={buttonStyle}\n >\n {text}\n </a>\n ) : (\n <button type=\"button\" className={buttonClasses} style={buttonStyle}>\n {text}\n </button>\n )\n\n const wrapperStyle: React.CSSProperties = {}\n const marginCSS = marginValueToCSS(margin)\n if (marginCSS) {\n wrapperStyle.margin = marginCSS\n }\n\n // Get alignment value, defaulting to 'left'\n const alignmentValue = alignment ?? 'left'\n\n return (\n <AnimatedWrapper\n animation={animation}\n className={alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left}\n style={wrapperStyle}\n >\n {buttonElement}\n </AnimatedWrapper>\n )\n },\n}\n"],"names":["cn","marginValueToCSS","paddingValueToCSS","colorValueToCSS","borderValueToCSS","transformValueToCSS","sizeValueToCSS","getSizeClasses","AnimatedWrapper","DEFAULT_BUTTON_VARIANTS","DEFAULT_FOCUS_RING","getVariantClasses","sizeStyles","sm","default","lg","alignmentWrapperMap","left","center","right","defaultProps","text","link","variant","size","openInNewTab","margin","customBackgroundColor","customTextColor","customBorder","alignment","transform","animation","customPadding","ButtonConfig","label","render","hasCustomBackground","hex","hasCustomTextColor","hasCustomPadding","hasCustomSize","mode","variantClasses","sizeClasses","buttonClasses","radius","buttonStyle","backgroundColor","color","borderStyles","Object","assign","customSizeStyles","paddingCSS","padding","transformStyles","buttonElement","a","href","target","undefined","rel","className","style","button","type","wrapperStyle","marginCSS","alignmentValue"],"mappings":"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"}
@@ -4,9 +4,9 @@
4
4
  * Content card with image, heading, and text.
5
5
  */
6
6
  import type { ComponentConfig } from '@puckeditor/core';
7
- import { type PaddingValue, type BackgroundValue, type BorderValue, type DimensionsValue, type AnimationValue, type TransformValue } from '../../fields/shared';
8
- import { type Alignment } from '../../fields/AlignmentField';
9
- import type { MediaReference } from '../../fields/MediaField';
7
+ import { type PaddingValue, type BackgroundValue, type BorderValue, type DimensionsValue, type AnimationValue, type TransformValue } from '../../fields/shared.js';
8
+ import { type Alignment } from '../../fields/AlignmentField.js';
9
+ import type { MediaReference } from '../../fields/MediaField.js';
10
10
  export interface CardProps {
11
11
  image: MediaReference | null;
12
12
  heading: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Card.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAUL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAGlF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAY7D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;CACpC;AAmBD,eAAO,MAAM,UAAU,EAAE,eAwJxB,CAAA"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Card.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAUL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAA;AAQ/B,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAGrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAYhE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;CACpC;AAmBD,eAAO,MAAM,UAAU,EAAE,eAwJxB,CAAA"}