@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,15 +1,19 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { shadowField, shadowMap, cn, marginValueToCSS, paddingValueToCSS, backgroundValueToCSS, borderValueToCSS, dimensionsValueToCSS, transformValueToCSS, } from '../../fields/shared';
3
- import { AnimatedWrapper } from '../AnimatedWrapper';
4
- import { createMarginField } from '../../fields/MarginField';
5
- import { createPaddingField } from '../../fields/PaddingField';
6
- import { createResetField } from '../../fields/ResetField';
7
- import { createBackgroundField } from '../../fields/BackgroundField';
8
- import { createBorderField } from '../../fields/BorderField';
9
- import { createDimensionsField } from '../../fields/DimensionsField';
10
- import { createAlignmentField } from '../../fields/AlignmentField';
11
- import { createAnimationField } from '../../fields/AnimationField';
12
- import { createTransformField } from '../../fields/TransformField';
1
+ /**
2
+ * Card Component - Puck Configuration
3
+ *
4
+ * Content card with image, heading, and text.
5
+ */ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ import { shadowField, shadowMap, cn, marginValueToCSS, paddingValueToCSS, backgroundValueToCSS, borderValueToCSS, dimensionsValueToCSS, transformValueToCSS } from '../../fields/shared.js';
7
+ import { AnimatedWrapper } from '../AnimatedWrapper.js';
8
+ import { createMarginField } from '../../fields/MarginField.js';
9
+ import { createPaddingField } from '../../fields/PaddingField.js';
10
+ import { createResetField } from '../../fields/ResetField.js';
11
+ import { createBackgroundField } from '../../fields/BackgroundField.js';
12
+ import { createBorderField } from '../../fields/BorderField.js';
13
+ import { createDimensionsField } from '../../fields/DimensionsField.js';
14
+ import { createAlignmentField } from '../../fields/AlignmentField.js';
15
+ import { createAnimationField } from '../../fields/AnimationField.js';
16
+ import { createTransformField } from '../../fields/TransformField.js';
13
17
  // Default content padding for card (replaces hardcoded p-4)
14
18
  const DEFAULT_CONTENT_PADDING = {
15
19
  top: 16,
@@ -17,7 +21,7 @@ const DEFAULT_CONTENT_PADDING = {
17
21
  bottom: 16,
18
22
  left: 16,
19
23
  unit: 'px',
20
- linked: true,
24
+ linked: true
21
25
  };
22
26
  const defaultProps = {
23
27
  image: null,
@@ -33,54 +37,87 @@ const defaultProps = {
33
37
  alignment: null,
34
38
  transform: null,
35
39
  animation: null,
36
- contentPadding: DEFAULT_CONTENT_PADDING, // Default 16px padding, visible in editor
40
+ contentPadding: DEFAULT_CONTENT_PADDING
37
41
  };
38
42
  export const CardConfig = {
39
43
  label: 'Card',
40
44
  fields: {
41
- _reset: createResetField({ defaultProps }),
45
+ _reset: createResetField({
46
+ defaultProps
47
+ }),
42
48
  image: {
43
49
  type: 'object',
44
50
  label: 'Image',
45
51
  objectFields: {
46
- id: { type: 'text', label: 'Media ID' },
47
- url: { type: 'text', label: 'URL' },
48
- alt: { type: 'text', label: 'Alt Text' },
49
- },
52
+ id: {
53
+ type: 'text',
54
+ label: 'Media ID'
55
+ },
56
+ url: {
57
+ type: 'text',
58
+ label: 'URL'
59
+ },
60
+ alt: {
61
+ type: 'text',
62
+ label: 'Alt Text'
63
+ }
64
+ }
50
65
  },
51
66
  heading: {
52
67
  type: 'text',
53
- label: 'Heading',
68
+ label: 'Heading'
54
69
  },
55
70
  text: {
56
71
  type: 'textarea',
57
- label: 'Text',
72
+ label: 'Text'
58
73
  },
59
74
  link: {
60
75
  type: 'text',
61
- label: 'Link URL',
76
+ label: 'Link URL'
62
77
  },
63
78
  openInNewTab: {
64
79
  type: 'radio',
65
80
  label: 'Open in New Tab',
66
81
  options: [
67
- { label: 'Yes', value: true },
68
- { label: 'No', value: false },
69
- ],
82
+ {
83
+ label: 'Yes',
84
+ value: true
85
+ },
86
+ {
87
+ label: 'No',
88
+ value: false
89
+ }
90
+ ]
70
91
  },
71
92
  shadow: shadowField,
72
- background: createBackgroundField({ label: 'Background' }),
73
- border: createBorderField({ label: 'Border' }),
74
- dimensions: createDimensionsField({ label: 'Dimensions' }),
75
- alignment: createAlignmentField({ label: 'Alignment' }),
76
- transform: createTransformField({ label: 'Transform' }),
77
- animation: createAnimationField({ label: 'Animation' }),
93
+ background: createBackgroundField({
94
+ label: 'Background'
95
+ }),
96
+ border: createBorderField({
97
+ label: 'Border'
98
+ }),
99
+ dimensions: createDimensionsField({
100
+ label: 'Dimensions'
101
+ }),
102
+ alignment: createAlignmentField({
103
+ label: 'Alignment'
104
+ }),
105
+ transform: createTransformField({
106
+ label: 'Transform'
107
+ }),
108
+ animation: createAnimationField({
109
+ label: 'Animation'
110
+ }),
78
111
  // Spacing (grouped at bottom)
79
- margin: createMarginField({ label: 'Margin' }),
80
- contentPadding: createPaddingField({ label: 'Content Padding' }),
112
+ margin: createMarginField({
113
+ label: 'Margin'
114
+ }),
115
+ contentPadding: createPaddingField({
116
+ label: 'Content Padding'
117
+ })
81
118
  },
82
119
  defaultProps,
83
- render: ({ image, heading, text, link, openInNewTab, shadow, background, dimensions, alignment, margin, border, transform, animation, contentPadding }) => {
120
+ render: ({ image, heading, text, link, openInNewTab, shadow, background, dimensions, alignment, margin, border, transform, animation, contentPadding })=>{
84
121
  // Check if border has radius, if so don't apply rounded-lg
85
122
  const hasBorderRadius = border?.radius && border.radius > 0;
86
123
  const cardClasses = cn('overflow-hidden transition-all bg-card', !hasBorderRadius && 'rounded-lg', shadowMap[shadow] || '', link && 'hover:shadow-lg cursor-pointer');
@@ -104,7 +141,7 @@ export const CardConfig = {
104
141
  // Card background styles from BackgroundValue
105
142
  const backgroundStyles = backgroundValueToCSS(background);
106
143
  const cardStyle = {
107
- ...backgroundStyles,
144
+ ...backgroundStyles
108
145
  };
109
146
  // Note: bg-card class handles default background (theme-aware)
110
147
  // Apply border to card
@@ -118,11 +155,66 @@ export const CardConfig = {
118
155
  if (contentPaddingCSS) {
119
156
  contentStyle.padding = contentPaddingCSS;
120
157
  }
121
- const cardContent = (_jsxs("div", { className: cardClasses, style: cardStyle, children: [image?.url ? (_jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: _jsx("img", { src: image.url, alt: image.alt || heading || '', className: "w-full h-full object-cover" }) })) : (_jsx("div", { className: "aspect-video w-full bg-muted flex items-center justify-center", children: _jsx("span", { className: "text-muted-foreground", children: "No image" }) })), _jsxs("div", { style: contentStyle, children: [heading && (_jsx("h3", { className: "text-lg font-semibold text-foreground mb-2", children: heading })), text && _jsx("p", { className: "text-muted-foreground text-sm", children: text })] })] }));
158
+ const cardContent = /*#__PURE__*/ _jsxs("div", {
159
+ className: cardClasses,
160
+ style: cardStyle,
161
+ children: [
162
+ image?.url ? /*#__PURE__*/ _jsx("div", {
163
+ className: "relative aspect-video w-full overflow-hidden",
164
+ children: /*#__PURE__*/ _jsx("img", {
165
+ src: image.url,
166
+ alt: image.alt || heading || '',
167
+ className: "w-full h-full object-cover"
168
+ })
169
+ }) : /*#__PURE__*/ _jsx("div", {
170
+ className: "aspect-video w-full bg-muted flex items-center justify-center",
171
+ children: /*#__PURE__*/ _jsx("span", {
172
+ className: "text-muted-foreground",
173
+ children: "No image"
174
+ })
175
+ }),
176
+ /*#__PURE__*/ _jsxs("div", {
177
+ style: contentStyle,
178
+ children: [
179
+ heading && /*#__PURE__*/ _jsx("h3", {
180
+ className: "text-lg font-semibold text-foreground mb-2",
181
+ children: heading
182
+ }),
183
+ text && /*#__PURE__*/ _jsx("p", {
184
+ className: "text-muted-foreground text-sm",
185
+ children: text
186
+ })
187
+ ]
188
+ })
189
+ ]
190
+ });
122
191
  if (link) {
123
- return (_jsx(AnimatedWrapper, { animation: animation, children: _jsx("div", { className: alignmentClasses, children: _jsx("a", { href: link, target: openInNewTab ? '_blank' : undefined, rel: openInNewTab ? 'noopener noreferrer' : undefined, className: "block", style: wrapperStyle, children: cardContent }) }) }));
192
+ return /*#__PURE__*/ _jsx(AnimatedWrapper, {
193
+ animation: animation,
194
+ children: /*#__PURE__*/ _jsx("div", {
195
+ className: alignmentClasses,
196
+ children: /*#__PURE__*/ _jsx("a", {
197
+ href: link,
198
+ target: openInNewTab ? '_blank' : undefined,
199
+ rel: openInNewTab ? 'noopener noreferrer' : undefined,
200
+ className: "block",
201
+ style: wrapperStyle,
202
+ children: cardContent
203
+ })
204
+ })
205
+ });
124
206
  }
125
- return (_jsx(AnimatedWrapper, { animation: animation, children: _jsx("div", { className: alignmentClasses, children: _jsx("div", { style: wrapperStyle, children: cardContent }) }) }));
126
- },
207
+ return /*#__PURE__*/ _jsx(AnimatedWrapper, {
208
+ animation: animation,
209
+ children: /*#__PURE__*/ _jsx("div", {
210
+ className: alignmentClasses,
211
+ children: /*#__PURE__*/ _jsx("div", {
212
+ style: wrapperStyle,
213
+ children: cardContent
214
+ })
215
+ })
216
+ });
217
+ }
127
218
  };
219
+
128
220
  //# sourceMappingURL=Card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/components/interactive/Card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/interactive/Card.tsx"],"sourcesContent":["/**\n * Card Component - Puck Configuration\n *\n * Content card with image, heading, and text.\n */\n\nimport type { ComponentConfig } from '@puckeditor/core'\nimport {\n shadowField,\n shadowMap,\n cn,\n marginValueToCSS,\n paddingValueToCSS,\n backgroundValueToCSS,\n borderValueToCSS,\n dimensionsValueToCSS,\n transformValueToCSS,\n type PaddingValue,\n type BackgroundValue,\n type BorderValue,\n type DimensionsValue,\n type AnimationValue,\n type TransformValue,\n} from '../../fields/shared.js'\nimport { AnimatedWrapper } from '../AnimatedWrapper.js'\nimport { createMarginField } from '../../fields/MarginField.js'\nimport { createPaddingField } from '../../fields/PaddingField.js'\nimport { createResetField } from '../../fields/ResetField.js'\nimport { createBackgroundField } from '../../fields/BackgroundField.js'\nimport { createBorderField } from '../../fields/BorderField.js'\nimport { createDimensionsField } from '../../fields/DimensionsField.js'\nimport { createAlignmentField, type Alignment } from '../../fields/AlignmentField.js'\nimport { createAnimationField } from '../../fields/AnimationField.js'\nimport { createTransformField } from '../../fields/TransformField.js'\nimport type { MediaReference } from '../../fields/MediaField.js'\n\n// Default content padding for card (replaces hardcoded p-4)\nconst DEFAULT_CONTENT_PADDING: PaddingValue = {\n top: 16,\n right: 16,\n bottom: 16,\n left: 16,\n unit: 'px',\n linked: true,\n}\n\nexport interface CardProps {\n image: MediaReference | null\n heading: string\n text: string\n link: string\n openInNewTab: boolean\n shadow: string\n margin: PaddingValue | null\n background: BackgroundValue | null\n border: BorderValue | null\n dimensions: DimensionsValue | null\n alignment: Alignment | null\n transform: TransformValue | null\n animation: AnimationValue | null\n contentPadding: PaddingValue | null // Renamed from customPadding for clarity\n}\n\nconst defaultProps: CardProps = {\n image: null,\n heading: 'Card Heading',\n text: 'Card description text goes here.',\n link: '',\n openInNewTab: false,\n shadow: 'md',\n margin: null,\n background: null,\n border: null,\n dimensions: null,\n alignment: null,\n transform: null,\n animation: null,\n contentPadding: DEFAULT_CONTENT_PADDING, // Default 16px padding, visible in editor\n}\n\nexport const CardConfig: ComponentConfig = {\n label: 'Card',\n fields: {\n _reset: createResetField({ defaultProps }),\n image: {\n type: 'object',\n label: 'Image',\n objectFields: {\n id: { type: 'text', label: 'Media ID' },\n url: { type: 'text', label: 'URL' },\n alt: { type: 'text', label: 'Alt Text' },\n },\n },\n heading: {\n type: 'text',\n label: 'Heading',\n },\n text: {\n type: 'textarea',\n label: 'Text',\n },\n link: {\n type: 'text',\n label: 'Link URL',\n },\n openInNewTab: {\n type: 'radio',\n label: 'Open in New Tab',\n options: [\n { label: 'Yes', value: true },\n { label: 'No', value: false },\n ],\n },\n shadow: shadowField,\n background: createBackgroundField({ label: 'Background' }),\n border: createBorderField({ label: 'Border' }),\n dimensions: createDimensionsField({ label: 'Dimensions' }),\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 contentPadding: createPaddingField({ label: 'Content Padding' }),\n },\n defaultProps,\n render: ({ image, heading, text, link, openInNewTab, shadow, background, dimensions, alignment, margin, border, transform, animation, contentPadding }) => {\n // Check if border has radius, if so don't apply rounded-lg\n const hasBorderRadius = border?.radius && border.radius > 0\n const cardClasses = cn(\n 'overflow-hidden transition-all bg-card',\n !hasBorderRadius && 'rounded-lg',\n shadowMap[shadow] || '',\n link && 'hover:shadow-lg cursor-pointer'\n )\n\n // Wrapper style for margin, dimensions, alignment, transform, animation\n const wrapperStyle: React.CSSProperties = {}\n const marginCSS = marginValueToCSS(margin)\n if (marginCSS) {\n wrapperStyle.margin = marginCSS\n }\n const dimensionsStyles = dimensionsValueToCSS(dimensions)\n if (dimensionsStyles) {\n Object.assign(wrapperStyle, dimensionsStyles)\n }\n const transformStyles = transformValueToCSS(transform)\n if (transformStyles) {\n Object.assign(wrapperStyle, transformStyles)\n }\n\n // Alignment classes for wrapper\n const alignmentValue = alignment ?? 'left'\n const alignmentClasses = cn(\n 'flex',\n alignmentValue === 'left' && 'justify-start',\n alignmentValue === 'center' && 'justify-center',\n alignmentValue === 'right' && 'justify-end'\n )\n\n // Card background styles from BackgroundValue\n const backgroundStyles = backgroundValueToCSS(background)\n const cardStyle: React.CSSProperties = {\n ...backgroundStyles,\n }\n // Note: bg-card class handles default background (theme-aware)\n // Apply border to card\n const borderStyles = borderValueToCSS(border)\n if (borderStyles) {\n Object.assign(cardStyle, borderStyles)\n }\n\n // Content section style with configurable padding\n const contentStyle: React.CSSProperties = {}\n const contentPaddingCSS = paddingValueToCSS(contentPadding)\n if (contentPaddingCSS) {\n contentStyle.padding = contentPaddingCSS\n }\n\n const cardContent = (\n <div className={cardClasses} style={cardStyle}>\n {/* Image */}\n {image?.url ? (\n <div className=\"relative aspect-video w-full overflow-hidden\">\n {/* eslint-disable-next-line @next/next/no-img-element */}\n <img\n src={image.url}\n alt={image.alt || heading || ''}\n className=\"w-full h-full object-cover\"\n />\n </div>\n ) : (\n <div className=\"aspect-video w-full bg-muted flex items-center justify-center\">\n <span className=\"text-muted-foreground\">No image</span>\n </div>\n )}\n\n {/* Content */}\n <div style={contentStyle}>\n {heading && (\n <h3 className=\"text-lg font-semibold text-foreground mb-2\">{heading}</h3>\n )}\n {text && <p className=\"text-muted-foreground text-sm\">{text}</p>}\n </div>\n </div>\n )\n\n if (link) {\n return (\n <AnimatedWrapper animation={animation}>\n <div className={alignmentClasses}>\n <a\n href={link}\n target={openInNewTab ? '_blank' : undefined}\n rel={openInNewTab ? 'noopener noreferrer' : undefined}\n className=\"block\"\n style={wrapperStyle}\n >\n {cardContent}\n </a>\n </div>\n </AnimatedWrapper>\n )\n }\n\n return (\n <AnimatedWrapper animation={animation}>\n <div className={alignmentClasses}>\n <div style={wrapperStyle}>{cardContent}</div>\n </div>\n </AnimatedWrapper>\n )\n },\n}\n"],"names":["shadowField","shadowMap","cn","marginValueToCSS","paddingValueToCSS","backgroundValueToCSS","borderValueToCSS","dimensionsValueToCSS","transformValueToCSS","AnimatedWrapper","createMarginField","createPaddingField","createResetField","createBackgroundField","createBorderField","createDimensionsField","createAlignmentField","createAnimationField","createTransformField","DEFAULT_CONTENT_PADDING","top","right","bottom","left","unit","linked","defaultProps","image","heading","text","link","openInNewTab","shadow","margin","background","border","dimensions","alignment","transform","animation","contentPadding","CardConfig","label","fields","_reset","type","objectFields","id","url","alt","options","value","render","hasBorderRadius","radius","cardClasses","wrapperStyle","marginCSS","dimensionsStyles","Object","assign","transformStyles","alignmentValue","alignmentClasses","backgroundStyles","cardStyle","borderStyles","contentStyle","contentPaddingCSS","padding","cardContent","div","className","style","img","src","span","h3","p","a","href","target","undefined","rel"],"mappings":"AAAA;;;;CAIC;AAGD,SACEA,WAAW,EACXC,SAAS,EACTC,EAAE,EACFC,gBAAgB,EAChBC,iBAAiB,EACjBC,oBAAoB,EACpBC,gBAAgB,EAChBC,oBAAoB,EACpBC,mBAAmB,QAOd,yBAAwB;AAC/B,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,kBAAkB,QAAQ,+BAA8B;AACjE,SAASC,gBAAgB,QAAQ,6BAA4B;AAC7D,SAASC,qBAAqB,QAAQ,kCAAiC;AACvE,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,qBAAqB,QAAQ,kCAAiC;AACvE,SAASC,oBAAoB,QAAwB,iCAAgC;AACrF,SAASC,oBAAoB,QAAQ,iCAAgC;AACrE,SAASC,oBAAoB,QAAQ,iCAAgC;AAGrE,4DAA4D;AAC5D,MAAMC,0BAAwC;IAC5CC,KAAK;IACLC,OAAO;IACPC,QAAQ;IACRC,MAAM;IACNC,MAAM;IACNC,QAAQ;AACV;AAmBA,MAAMC,eAA0B;IAC9BC,OAAO;IACPC,SAAS;IACTC,MAAM;IACNC,MAAM;IACNC,cAAc;IACdC,QAAQ;IACRC,QAAQ;IACRC,YAAY;IACZC,QAAQ;IACRC,YAAY;IACZC,WAAW;IACXC,WAAW;IACXC,WAAW;IACXC,gBAAgBrB;AAClB;AAEA,OAAO,MAAMsB,aAA8B;IACzCC,OAAO;IACPC,QAAQ;QACNC,QAAQhC,iBAAiB;YAAEc;QAAa;QACxCC,OAAO;YACLkB,MAAM;YACNH,OAAO;YACPI,cAAc;gBACZC,IAAI;oBAAEF,MAAM;oBAAQH,OAAO;gBAAW;gBACtCM,KAAK;oBAAEH,MAAM;oBAAQH,OAAO;gBAAM;gBAClCO,KAAK;oBAAEJ,MAAM;oBAAQH,OAAO;gBAAW;YACzC;QACF;QACAd,SAAS;YACPiB,MAAM;YACNH,OAAO;QACT;QACAb,MAAM;YACJgB,MAAM;YACNH,OAAO;QACT;QACAZ,MAAM;YACJe,MAAM;YACNH,OAAO;QACT;QACAX,cAAc;YACZc,MAAM;YACNH,OAAO;YACPQ,SAAS;gBACP;oBAAER,OAAO;oBAAOS,OAAO;gBAAK;gBAC5B;oBAAET,OAAO;oBAAMS,OAAO;gBAAM;aAC7B;QACH;QACAnB,QAAQhC;QACRkC,YAAYrB,sBAAsB;YAAE6B,OAAO;QAAa;QACxDP,QAAQrB,kBAAkB;YAAE4B,OAAO;QAAS;QAC5CN,YAAYrB,sBAAsB;YAAE2B,OAAO;QAAa;QACxDL,WAAWrB,qBAAqB;YAAE0B,OAAO;QAAY;QACrDJ,WAAWpB,qBAAqB;YAAEwB,OAAO;QAAY;QACrDH,WAAWtB,qBAAqB;YAAEyB,OAAO;QAAY;QACrD,8BAA8B;QAC9BT,QAAQvB,kBAAkB;YAAEgC,OAAO;QAAS;QAC5CF,gBAAgB7B,mBAAmB;YAAE+B,OAAO;QAAkB;IAChE;IACAhB;IACA0B,QAAQ,CAAC,EAAEzB,KAAK,EAAEC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAEC,YAAY,EAAEC,MAAM,EAAEE,UAAU,EAAEE,UAAU,EAAEC,SAAS,EAAEJ,MAAM,EAAEE,MAAM,EAAEG,SAAS,EAAEC,SAAS,EAAEC,cAAc,EAAE;QACpJ,2DAA2D;QAC3D,MAAMa,kBAAkBlB,QAAQmB,UAAUnB,OAAOmB,MAAM,GAAG;QAC1D,MAAMC,cAAcrD,GAClB,0CACA,CAACmD,mBAAmB,cACpBpD,SAAS,CAAC+B,OAAO,IAAI,IACrBF,QAAQ;QAGV,wEAAwE;QACxE,MAAM0B,eAAoC,CAAC;QAC3C,MAAMC,YAAYtD,iBAAiB8B;QACnC,IAAIwB,WAAW;YACbD,aAAavB,MAAM,GAAGwB;QACxB;QACA,MAAMC,mBAAmBnD,qBAAqB6B;QAC9C,IAAIsB,kBAAkB;YACpBC,OAAOC,MAAM,CAACJ,cAAcE;QAC9B;QACA,MAAMG,kBAAkBrD,oBAAoB8B;QAC5C,IAAIuB,iBAAiB;YACnBF,OAAOC,MAAM,CAACJ,cAAcK;QAC9B;QAEA,gCAAgC;QAChC,MAAMC,iBAAiBzB,aAAa;QACpC,MAAM0B,mBAAmB7D,GACvB,QACA4D,mBAAmB,UAAU,iBAC7BA,mBAAmB,YAAY,kBAC/BA,mBAAmB,WAAW;QAGhC,8CAA8C;QAC9C,MAAME,mBAAmB3D,qBAAqB6B;QAC9C,MAAM+B,YAAiC;YACrC,GAAGD,gBAAgB;QACrB;QACA,+DAA+D;QAC/D,uBAAuB;QACvB,MAAME,eAAe5D,iBAAiB6B;QACtC,IAAI+B,cAAc;YAChBP,OAAOC,MAAM,CAACK,WAAWC;QAC3B;QAEA,kDAAkD;QAClD,MAAMC,eAAoC,CAAC;QAC3C,MAAMC,oBAAoBhE,kBAAkBoC;QAC5C,IAAI4B,mBAAmB;YACrBD,aAAaE,OAAO,GAAGD;QACzB;QAEA,MAAME,4BACJ,MAACC;YAAIC,WAAWjB;YAAakB,OAAOR;;gBAEjCtC,OAAOqB,oBACN,KAACuB;oBAAIC,WAAU;8BAEb,cAAA,KAACE;wBACCC,KAAKhD,MAAMqB,GAAG;wBACdC,KAAKtB,MAAMsB,GAAG,IAAIrB,WAAW;wBAC7B4C,WAAU;;mCAId,KAACD;oBAAIC,WAAU;8BACb,cAAA,KAACI;wBAAKJ,WAAU;kCAAwB;;;8BAK5C,MAACD;oBAAIE,OAAON;;wBACTvC,yBACC,KAACiD;4BAAGL,WAAU;sCAA8C5C;;wBAE7DC,sBAAQ,KAACiD;4BAAEN,WAAU;sCAAiC3C;;;;;;QAK7D,IAAIC,MAAM;YACR,qBACE,KAACrB;gBAAgB8B,WAAWA;0BAC1B,cAAA,KAACgC;oBAAIC,WAAWT;8BACd,cAAA,KAACgB;wBACCC,MAAMlD;wBACNmD,QAAQlD,eAAe,WAAWmD;wBAClCC,KAAKpD,eAAe,wBAAwBmD;wBAC5CV,WAAU;wBACVC,OAAOjB;kCAENc;;;;QAKX;QAEA,qBACE,KAAC7D;YAAgB8B,WAAWA;sBAC1B,cAAA,KAACgC;gBAAIC,WAAWT;0BACd,cAAA,KAACQ;oBAAIE,OAAOjB;8BAAec;;;;IAInC;AACF,EAAC"}
@@ -6,9 +6,9 @@
6
6
  * Safe for use in server components.
7
7
  */
8
8
  import type { ComponentConfig } from '@puckeditor/core';
9
- import { type PaddingValue, type BackgroundValue, type BorderValue, type DimensionsValue, type AnimationValue, type TransformValue } from '../../fields/shared';
10
- import type { MediaReference } from '../../fields/MediaField';
11
- import type { Alignment } from '../../fields/AlignmentField';
9
+ import { type PaddingValue, type BackgroundValue, type BorderValue, type DimensionsValue, type AnimationValue, type TransformValue } from '../../fields/shared.js';
10
+ import type { MediaReference } from '../../fields/MediaField.js';
11
+ import type { Alignment } from '../../fields/AlignmentField.js';
12
12
  export interface CardProps {
13
13
  image: MediaReference | null;
14
14
  heading: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Card.server.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Card.server.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAY5D,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,eAAe,CAAC,SAAS,CA8GjD,CAAA"}
1
+ {"version":3,"file":"Card.server.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Card.server.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAY/D,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,eAAe,CAAC,SAAS,CA8GjD,CAAA"}
@@ -1,6 +1,12 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { shadowMap, cn, marginValueToCSS, paddingValueToCSS, backgroundValueToCSS, borderValueToCSS, dimensionsValueToCSS, transformValueToCSS, } from '../../fields/shared';
3
- import { AnimatedWrapper } from '../AnimatedWrapper';
1
+ /**
2
+ * Card Component - Server-safe Puck Configuration
3
+ *
4
+ * Content card with image, heading, and text.
5
+ * This version contains only the render function and types - no fields.
6
+ * Safe for use in server components.
7
+ */ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ import { shadowMap, cn, marginValueToCSS, paddingValueToCSS, backgroundValueToCSS, borderValueToCSS, dimensionsValueToCSS, transformValueToCSS } from '../../fields/shared.js';
9
+ import { AnimatedWrapper } from '../AnimatedWrapper.js';
4
10
  // Default content padding for card (replaces hardcoded p-4)
5
11
  const DEFAULT_CONTENT_PADDING = {
6
12
  top: 16,
@@ -8,7 +14,7 @@ const DEFAULT_CONTENT_PADDING = {
8
14
  bottom: 16,
9
15
  left: 16,
10
16
  unit: 'px',
11
- linked: true,
17
+ linked: true
12
18
  };
13
19
  const defaultProps = {
14
20
  image: null,
@@ -24,12 +30,12 @@ const defaultProps = {
24
30
  alignment: null,
25
31
  transform: null,
26
32
  animation: null,
27
- contentPadding: DEFAULT_CONTENT_PADDING, // Default 16px padding
33
+ contentPadding: DEFAULT_CONTENT_PADDING
28
34
  };
29
35
  export const CardConfig = {
30
36
  label: 'Card',
31
37
  defaultProps,
32
- render: ({ image, heading, text, link, openInNewTab, shadow, background, dimensions, alignment, margin, border, transform, animation, contentPadding }) => {
38
+ render: ({ image, heading, text, link, openInNewTab, shadow, background, dimensions, alignment, margin, border, transform, animation, contentPadding })=>{
33
39
  // Check if border has radius, if so don't apply rounded-lg
34
40
  const hasBorderRadius = border?.radius && border.radius > 0;
35
41
  const cardClasses = cn('overflow-hidden transition-all bg-card', !hasBorderRadius && 'rounded-lg', shadowMap[shadow] || '', link && 'hover:shadow-lg cursor-pointer');
@@ -53,7 +59,7 @@ export const CardConfig = {
53
59
  // Card background styles from BackgroundValue
54
60
  const backgroundStyles = backgroundValueToCSS(background);
55
61
  const cardStyle = {
56
- ...backgroundStyles,
62
+ ...backgroundStyles
57
63
  };
58
64
  // Note: bg-card class handles default background (theme-aware)
59
65
  // Apply border to card
@@ -67,11 +73,66 @@ export const CardConfig = {
67
73
  if (contentPaddingCSS) {
68
74
  contentStyle.padding = contentPaddingCSS;
69
75
  }
70
- const cardContent = (_jsxs("div", { className: cardClasses, style: cardStyle, children: [image?.url ? (_jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: _jsx("img", { src: image.url, alt: image.alt || heading || '', className: "w-full h-full object-cover" }) })) : (_jsx("div", { className: "aspect-video w-full bg-muted flex items-center justify-center", children: _jsx("span", { className: "text-muted-foreground", children: "No image" }) })), _jsxs("div", { style: contentStyle, children: [heading && (_jsx("h3", { className: "text-lg font-semibold text-foreground mb-2", children: heading })), text && _jsx("p", { className: "text-muted-foreground text-sm", children: text })] })] }));
76
+ const cardContent = /*#__PURE__*/ _jsxs("div", {
77
+ className: cardClasses,
78
+ style: cardStyle,
79
+ children: [
80
+ image?.url ? /*#__PURE__*/ _jsx("div", {
81
+ className: "relative aspect-video w-full overflow-hidden",
82
+ children: /*#__PURE__*/ _jsx("img", {
83
+ src: image.url,
84
+ alt: image.alt || heading || '',
85
+ className: "w-full h-full object-cover"
86
+ })
87
+ }) : /*#__PURE__*/ _jsx("div", {
88
+ className: "aspect-video w-full bg-muted flex items-center justify-center",
89
+ children: /*#__PURE__*/ _jsx("span", {
90
+ className: "text-muted-foreground",
91
+ children: "No image"
92
+ })
93
+ }),
94
+ /*#__PURE__*/ _jsxs("div", {
95
+ style: contentStyle,
96
+ children: [
97
+ heading && /*#__PURE__*/ _jsx("h3", {
98
+ className: "text-lg font-semibold text-foreground mb-2",
99
+ children: heading
100
+ }),
101
+ text && /*#__PURE__*/ _jsx("p", {
102
+ className: "text-muted-foreground text-sm",
103
+ children: text
104
+ })
105
+ ]
106
+ })
107
+ ]
108
+ });
71
109
  if (link) {
72
- return (_jsx(AnimatedWrapper, { animation: animation, children: _jsx("div", { className: alignmentClasses, children: _jsx("a", { href: link, target: openInNewTab ? '_blank' : undefined, rel: openInNewTab ? 'noopener noreferrer' : undefined, className: "block", style: wrapperStyle, children: cardContent }) }) }));
110
+ return /*#__PURE__*/ _jsx(AnimatedWrapper, {
111
+ animation: animation,
112
+ children: /*#__PURE__*/ _jsx("div", {
113
+ className: alignmentClasses,
114
+ children: /*#__PURE__*/ _jsx("a", {
115
+ href: link,
116
+ target: openInNewTab ? '_blank' : undefined,
117
+ rel: openInNewTab ? 'noopener noreferrer' : undefined,
118
+ className: "block",
119
+ style: wrapperStyle,
120
+ children: cardContent
121
+ })
122
+ })
123
+ });
73
124
  }
74
- return (_jsx(AnimatedWrapper, { animation: animation, children: _jsx("div", { className: alignmentClasses, children: _jsx("div", { style: wrapperStyle, children: cardContent }) }) }));
75
- },
125
+ return /*#__PURE__*/ _jsx(AnimatedWrapper, {
126
+ animation: animation,
127
+ children: /*#__PURE__*/ _jsx("div", {
128
+ className: alignmentClasses,
129
+ children: /*#__PURE__*/ _jsx("div", {
130
+ style: wrapperStyle,
131
+ children: cardContent
132
+ })
133
+ })
134
+ });
135
+ }
76
136
  };
137
+
77
138
  //# sourceMappingURL=Card.server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.server.js","sourceRoot":"","sources":["../../../src/components/interactive/Card.server.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/interactive/Card.server.tsx"],"sourcesContent":["/**\n * Card Component - Server-safe Puck Configuration\n *\n * Content card with image, heading, and text.\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 shadowMap,\n cn,\n marginValueToCSS,\n paddingValueToCSS,\n backgroundValueToCSS,\n borderValueToCSS,\n dimensionsValueToCSS,\n transformValueToCSS,\n type PaddingValue,\n type BackgroundValue,\n type BorderValue,\n type DimensionsValue,\n type AnimationValue,\n type TransformValue,\n} from '../../fields/shared.js'\nimport { AnimatedWrapper } from '../AnimatedWrapper.js'\nimport type { MediaReference } from '../../fields/MediaField.js'\nimport type { Alignment } from '../../fields/AlignmentField.js'\n\n// Default content padding for card (replaces hardcoded p-4)\nconst DEFAULT_CONTENT_PADDING: PaddingValue = {\n top: 16,\n right: 16,\n bottom: 16,\n left: 16,\n unit: 'px',\n linked: true,\n}\n\nexport interface CardProps {\n image: MediaReference | null\n heading: string\n text: string\n link: string\n openInNewTab: boolean\n shadow: string\n margin: PaddingValue | null\n background: BackgroundValue | null\n border: BorderValue | null\n dimensions: DimensionsValue | null\n alignment: Alignment | null\n transform: TransformValue | null\n animation: AnimationValue | null\n contentPadding: PaddingValue | null\n}\n\nconst defaultProps: CardProps = {\n image: null,\n heading: 'Card Heading',\n text: 'Card description text goes here.',\n link: '',\n openInNewTab: false,\n shadow: 'md',\n margin: null,\n background: null,\n border: null,\n dimensions: null,\n alignment: null,\n transform: null,\n animation: null,\n contentPadding: DEFAULT_CONTENT_PADDING, // Default 16px padding\n}\n\nexport const CardConfig: ComponentConfig<CardProps> = {\n label: 'Card',\n defaultProps,\n render: ({ image, heading, text, link, openInNewTab, shadow, background, dimensions, alignment, margin, border, transform, animation, contentPadding }) => {\n // Check if border has radius, if so don't apply rounded-lg\n const hasBorderRadius = border?.radius && border.radius > 0\n const cardClasses = cn(\n 'overflow-hidden transition-all bg-card',\n !hasBorderRadius && 'rounded-lg',\n shadowMap[shadow] || '',\n link && 'hover:shadow-lg cursor-pointer'\n )\n\n // Wrapper style for margin, dimensions, alignment, transform, animation\n const wrapperStyle: React.CSSProperties = {}\n const marginCSS = marginValueToCSS(margin)\n if (marginCSS) {\n wrapperStyle.margin = marginCSS\n }\n const dimensionsStyles = dimensionsValueToCSS(dimensions)\n if (dimensionsStyles) {\n Object.assign(wrapperStyle, dimensionsStyles)\n }\n const transformStyles = transformValueToCSS(transform)\n if (transformStyles) {\n Object.assign(wrapperStyle, transformStyles)\n }\n\n // Alignment classes for wrapper\n const alignmentValue = alignment ?? 'left'\n const alignmentClasses = cn(\n 'flex',\n alignmentValue === 'left' && 'justify-start',\n alignmentValue === 'center' && 'justify-center',\n alignmentValue === 'right' && 'justify-end'\n )\n\n // Card background styles from BackgroundValue\n const backgroundStyles = backgroundValueToCSS(background)\n const cardStyle: React.CSSProperties = {\n ...backgroundStyles,\n }\n // Note: bg-card class handles default background (theme-aware)\n // Apply border to card\n const borderStyles = borderValueToCSS(border)\n if (borderStyles) {\n Object.assign(cardStyle, borderStyles)\n }\n\n // Content section style with configurable padding\n const contentStyle: React.CSSProperties = {}\n const contentPaddingCSS = paddingValueToCSS(contentPadding)\n if (contentPaddingCSS) {\n contentStyle.padding = contentPaddingCSS\n }\n\n const cardContent = (\n <div className={cardClasses} style={cardStyle}>\n {/* Image */}\n {image?.url ? (\n <div className=\"relative aspect-video w-full overflow-hidden\">\n {/* eslint-disable-next-line @next/next/no-img-element */}\n <img\n src={image.url}\n alt={image.alt || heading || ''}\n className=\"w-full h-full object-cover\"\n />\n </div>\n ) : (\n <div className=\"aspect-video w-full bg-muted flex items-center justify-center\">\n <span className=\"text-muted-foreground\">No image</span>\n </div>\n )}\n\n {/* Content */}\n <div style={contentStyle}>\n {heading && (\n <h3 className=\"text-lg font-semibold text-foreground mb-2\">{heading}</h3>\n )}\n {text && <p className=\"text-muted-foreground text-sm\">{text}</p>}\n </div>\n </div>\n )\n\n if (link) {\n return (\n <AnimatedWrapper animation={animation}>\n <div className={alignmentClasses}>\n <a\n href={link}\n target={openInNewTab ? '_blank' : undefined}\n rel={openInNewTab ? 'noopener noreferrer' : undefined}\n className=\"block\"\n style={wrapperStyle}\n >\n {cardContent}\n </a>\n </div>\n </AnimatedWrapper>\n )\n }\n\n return (\n <AnimatedWrapper animation={animation}>\n <div className={alignmentClasses}>\n <div style={wrapperStyle}>{cardContent}</div>\n </div>\n </AnimatedWrapper>\n )\n },\n}\n"],"names":["shadowMap","cn","marginValueToCSS","paddingValueToCSS","backgroundValueToCSS","borderValueToCSS","dimensionsValueToCSS","transformValueToCSS","AnimatedWrapper","DEFAULT_CONTENT_PADDING","top","right","bottom","left","unit","linked","defaultProps","image","heading","text","link","openInNewTab","shadow","margin","background","border","dimensions","alignment","transform","animation","contentPadding","CardConfig","label","render","hasBorderRadius","radius","cardClasses","wrapperStyle","marginCSS","dimensionsStyles","Object","assign","transformStyles","alignmentValue","alignmentClasses","backgroundStyles","cardStyle","borderStyles","contentStyle","contentPaddingCSS","padding","cardContent","div","className","style","url","img","src","alt","span","h3","p","a","href","target","undefined","rel"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Horizontal line separator with customizable style.
5
5
  */
6
6
  import type { ComponentConfig } from '@puckeditor/core';
7
- import { type PaddingValue, type ColorValue, type DimensionsValue, type AnimationValue, type TransformValue } from '../../fields/shared';
7
+ import { type PaddingValue, type ColorValue, type DimensionsValue, type AnimationValue, type TransformValue } from '../../fields/shared.js';
8
8
  export interface DividerProps {
9
9
  style: string;
10
10
  color: ColorValue | null;
@@ -1 +1 @@
1
- {"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Divider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAoB5B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AAYD,eAAO,MAAM,aAAa,EAAE,eAqD3B,CAAA"}
1
+ {"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Divider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAA;AAoB/B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AAYD,eAAO,MAAM,aAAa,EAAE,eAqD3B,CAAA"}
@@ -1,13 +1,17 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { dividerStyleField, dividerStyleMap, cn, marginValueToCSS, paddingValueToCSS, colorValueToCSS, dimensionsValueToCSS, transformValueToCSS, } from '../../fields/shared';
3
- import { AnimatedWrapper } from '../AnimatedWrapper';
4
- import { createMarginField } from '../../fields/MarginField';
5
- import { createPaddingField } from '../../fields/PaddingField';
6
- import { createColorPickerField } from '../../fields/ColorPickerField';
7
- import { createDimensionsField } from '../../fields/DimensionsField';
8
- import { createAnimationField } from '../../fields/AnimationField';
9
- import { createTransformField } from '../../fields/TransformField';
10
- import { createResetField } from '../../fields/ResetField';
1
+ /**
2
+ * Divider Component - Puck Configuration
3
+ *
4
+ * Horizontal line separator with customizable style.
5
+ */ import { jsx as _jsx } from "react/jsx-runtime";
6
+ import { dividerStyleField, dividerStyleMap, cn, marginValueToCSS, paddingValueToCSS, colorValueToCSS, dimensionsValueToCSS, transformValueToCSS } from '../../fields/shared.js';
7
+ import { AnimatedWrapper } from '../AnimatedWrapper.js';
8
+ import { createMarginField } from '../../fields/MarginField.js';
9
+ import { createPaddingField } from '../../fields/PaddingField.js';
10
+ import { createColorPickerField } from '../../fields/ColorPickerField.js';
11
+ import { createDimensionsField } from '../../fields/DimensionsField.js';
12
+ import { createAnimationField } from '../../fields/AnimationField.js';
13
+ import { createTransformField } from '../../fields/TransformField.js';
14
+ import { createResetField } from '../../fields/ResetField.js';
11
15
  // Default padding with standard horizontal spacing (replaces hardcoded px-4)
12
16
  const DEFAULT_PADDING = {
13
17
  top: 0,
@@ -15,7 +19,7 @@ const DEFAULT_PADDING = {
15
19
  bottom: 0,
16
20
  left: 16,
17
21
  unit: 'px',
18
- linked: false,
22
+ linked: false
19
23
  };
20
24
  const defaultProps = {
21
25
  style: 'solid',
@@ -24,26 +28,40 @@ const defaultProps = {
24
28
  dimensions: null,
25
29
  transform: null,
26
30
  animation: null,
27
- customPadding: DEFAULT_PADDING, // Default 16px horizontal padding, visible in editor
31
+ customPadding: DEFAULT_PADDING
28
32
  };
29
33
  export const DividerConfig = {
30
34
  label: 'Divider',
31
35
  fields: {
32
- _reset: createResetField({ defaultProps }),
36
+ _reset: createResetField({
37
+ defaultProps
38
+ }),
33
39
  style: dividerStyleField,
34
- color: createColorPickerField({ label: 'Color' }),
35
- dimensions: createDimensionsField({ label: 'Dimensions' }),
36
- transform: createTransformField({ label: 'Transform' }),
37
- animation: createAnimationField({ label: 'Animation' }),
40
+ color: createColorPickerField({
41
+ label: 'Color'
42
+ }),
43
+ dimensions: createDimensionsField({
44
+ label: 'Dimensions'
45
+ }),
46
+ transform: createTransformField({
47
+ label: 'Transform'
48
+ }),
49
+ animation: createAnimationField({
50
+ label: 'Animation'
51
+ }),
38
52
  // Spacing (grouped at bottom)
39
- margin: createMarginField({ label: 'Margin' }),
40
- customPadding: createPaddingField({ label: 'Padding' }),
53
+ margin: createMarginField({
54
+ label: 'Margin'
55
+ }),
56
+ customPadding: createPaddingField({
57
+ label: 'Padding'
58
+ })
41
59
  },
42
60
  defaultProps,
43
- render: ({ style, color, dimensions, margin, transform, animation, customPadding }) => {
61
+ render: ({ style, color, dimensions, margin, transform, animation, customPadding })=>{
44
62
  const dimensionsStyles = dimensionsValueToCSS(dimensions);
45
63
  const wrapperStyle = {
46
- ...dimensionsStyles,
64
+ ...dimensionsStyles
47
65
  };
48
66
  const marginCSS = marginValueToCSS(margin);
49
67
  if (marginCSS) {
@@ -59,10 +77,20 @@ export const DividerConfig = {
59
77
  }
60
78
  // Only set color if explicitly provided, otherwise use CSS variable
61
79
  const customColor = colorValueToCSS(color);
62
- const hrStyle = customColor
63
- ? { borderColor: customColor }
64
- : undefined;
65
- return (_jsx(AnimatedWrapper, { animation: animation, children: _jsx("div", { style: Object.keys(wrapperStyle).length > 0 ? wrapperStyle : undefined, children: _jsx("hr", { className: cn('border-t border-border', dividerStyleMap[style] || dividerStyleMap.solid), style: hrStyle }) }) }));
66
- },
80
+ const hrStyle = customColor ? {
81
+ borderColor: customColor
82
+ } : undefined;
83
+ return /*#__PURE__*/ _jsx(AnimatedWrapper, {
84
+ animation: animation,
85
+ children: /*#__PURE__*/ _jsx("div", {
86
+ style: Object.keys(wrapperStyle).length > 0 ? wrapperStyle : undefined,
87
+ children: /*#__PURE__*/ _jsx("hr", {
88
+ className: cn('border-t border-border', dividerStyleMap[style] || dividerStyleMap.solid),
89
+ style: hrStyle
90
+ })
91
+ })
92
+ });
93
+ }
67
94
  };
95
+
68
96
  //# sourceMappingURL=Divider.js.map