@delmaredigital/payload-puck 0.1.3 → 0.3.0

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 (565) hide show
  1. package/README.md +293 -1237
  2. package/dist/admin/EditWithPuckButton.d.ts +74 -0
  3. package/dist/admin/EditWithPuckButton.d.ts.map +1 -0
  4. package/dist/admin/EditWithPuckButton.js +114 -0
  5. package/dist/admin/EditWithPuckButton.js.map +1 -0
  6. package/dist/admin/EditWithPuckCell.d.ts +43 -0
  7. package/dist/admin/EditWithPuckCell.d.ts.map +1 -0
  8. package/dist/admin/EditWithPuckCell.js +66 -0
  9. package/dist/admin/EditWithPuckCell.js.map +1 -0
  10. package/dist/admin/PuckEditorView.d.ts +85 -0
  11. package/dist/admin/PuckEditorView.d.ts.map +1 -0
  12. package/dist/admin/PuckEditorView.js +135 -0
  13. package/dist/admin/PuckEditorView.js.map +1 -0
  14. package/dist/admin/client.d.ts +8 -104
  15. package/dist/admin/client.d.ts.map +1 -0
  16. package/dist/admin/client.js +14 -176
  17. package/dist/admin/client.js.map +1 -0
  18. package/dist/admin/generateAdminComponents.d.ts +51 -0
  19. package/dist/admin/generateAdminComponents.d.ts.map +1 -0
  20. package/dist/admin/generateAdminComponents.js +42 -0
  21. package/dist/admin/generateAdminComponents.js.map +1 -0
  22. package/dist/admin/index.d.ts +14 -150
  23. package/dist/admin/index.d.ts.map +1 -0
  24. package/dist/admin/index.js +17 -30
  25. package/dist/admin/index.js.map +1 -0
  26. package/dist/api/createPuckApiRoutes.d.ts +31 -0
  27. package/dist/api/createPuckApiRoutes.d.ts.map +1 -0
  28. package/dist/api/createPuckApiRoutes.js +193 -0
  29. package/dist/api/createPuckApiRoutes.js.map +1 -0
  30. package/dist/api/createPuckApiRoutesVersions.d.ts +28 -0
  31. package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -0
  32. package/dist/api/createPuckApiRoutesVersions.js +144 -0
  33. package/dist/api/createPuckApiRoutesVersions.js.map +1 -0
  34. package/dist/api/createPuckApiRoutesWithId.d.ts +34 -0
  35. package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -0
  36. package/dist/api/createPuckApiRoutesWithId.js +251 -0
  37. package/dist/api/createPuckApiRoutesWithId.js.map +1 -0
  38. package/dist/api/index.d.ts +11 -431
  39. package/dist/api/index.d.ts.map +1 -0
  40. package/dist/api/index.js +40 -587
  41. package/dist/api/index.js.map +1 -0
  42. package/dist/api/types.d.ts +302 -0
  43. package/dist/api/types.d.ts.map +1 -0
  44. package/dist/api/types.js +2 -0
  45. package/dist/api/types.js.map +1 -0
  46. package/dist/api/utils/mapRootProps.d.ts +76 -0
  47. package/dist/api/utils/mapRootProps.d.ts.map +1 -0
  48. package/dist/api/utils/mapRootProps.js +169 -0
  49. package/dist/api/utils/mapRootProps.js.map +1 -0
  50. package/dist/collections/Templates.d.ts +9 -0
  51. package/dist/collections/Templates.d.ts.map +1 -0
  52. package/dist/collections/Templates.js +62 -0
  53. package/dist/collections/Templates.js.map +1 -0
  54. package/dist/components/AccordionClient.d.ts +20 -0
  55. package/dist/components/AccordionClient.d.ts.map +1 -0
  56. package/dist/components/AccordionClient.js +67 -0
  57. package/dist/components/AccordionClient.js.map +1 -0
  58. package/dist/components/AnimatedWrapper.d.ts +33 -0
  59. package/dist/components/AnimatedWrapper.d.ts.map +1 -0
  60. package/dist/components/AnimatedWrapper.js +61 -0
  61. package/dist/components/AnimatedWrapper.js.map +1 -0
  62. package/dist/components/exports.d.ts +54 -0
  63. package/dist/components/exports.d.ts.map +1 -0
  64. package/dist/components/exports.js +71 -0
  65. package/dist/components/exports.js.map +1 -0
  66. package/dist/components/index.d.ts +8 -219
  67. package/dist/components/index.d.ts.map +1 -0
  68. package/dist/components/index.js +15 -9155
  69. package/dist/components/index.js.map +1 -0
  70. package/dist/components/interactive/Accordion.d.ts +28 -0
  71. package/dist/components/interactive/Accordion.d.ts.map +1 -0
  72. package/dist/components/interactive/Accordion.js +159 -0
  73. package/dist/components/interactive/Accordion.js.map +1 -0
  74. package/dist/components/interactive/Accordion.server.d.ts +29 -0
  75. package/dist/components/interactive/Accordion.server.d.ts.map +1 -0
  76. package/dist/components/interactive/Accordion.server.js +30 -0
  77. package/dist/components/interactive/Accordion.server.js.map +1 -0
  78. package/dist/components/interactive/Button.d.ts +26 -0
  79. package/dist/components/interactive/Button.d.ts.map +1 -0
  80. package/dist/components/interactive/Button.js +133 -0
  81. package/dist/components/interactive/Button.js.map +1 -0
  82. package/dist/components/interactive/Button.server.d.ts +28 -0
  83. package/dist/components/interactive/Button.server.d.ts.map +1 -0
  84. package/dist/components/interactive/Button.server.js +96 -0
  85. package/dist/components/interactive/Button.server.js.map +1 -0
  86. package/dist/components/interactive/Card.d.ts +27 -0
  87. package/dist/components/interactive/Card.d.ts.map +1 -0
  88. package/dist/components/interactive/Card.js +128 -0
  89. package/dist/components/interactive/Card.js.map +1 -0
  90. package/dist/components/interactive/Card.server.d.ts +29 -0
  91. package/dist/components/interactive/Card.server.d.ts.map +1 -0
  92. package/dist/components/interactive/Card.server.js +77 -0
  93. package/dist/components/interactive/Card.server.js.map +1 -0
  94. package/dist/components/interactive/Divider.d.ts +18 -0
  95. package/dist/components/interactive/Divider.d.ts.map +1 -0
  96. package/dist/components/interactive/Divider.js +68 -0
  97. package/dist/components/interactive/Divider.js.map +1 -0
  98. package/dist/components/interactive/Divider.server.d.ts +20 -0
  99. package/dist/components/interactive/Divider.server.d.ts.map +1 -0
  100. package/dist/components/interactive/Divider.server.js +50 -0
  101. package/dist/components/interactive/Divider.server.js.map +1 -0
  102. package/dist/components/interactive/index.d.ts +10 -0
  103. package/dist/components/interactive/index.d.ts.map +1 -0
  104. package/dist/components/interactive/index.js +10 -0
  105. package/dist/components/interactive/index.js.map +1 -0
  106. package/dist/components/layout/Container.d.ts +29 -0
  107. package/dist/components/layout/Container.d.ts.map +1 -0
  108. package/dist/components/layout/Container.js +166 -0
  109. package/dist/components/layout/Container.js.map +1 -0
  110. package/dist/components/layout/Container.server.d.ts +32 -0
  111. package/dist/components/layout/Container.server.d.ts.map +1 -0
  112. package/dist/components/layout/Container.server.js +105 -0
  113. package/dist/components/layout/Container.server.js.map +1 -0
  114. package/dist/components/layout/Flex.d.ts +36 -0
  115. package/dist/components/layout/Flex.d.ts.map +1 -0
  116. package/dist/components/layout/Flex.js +183 -0
  117. package/dist/components/layout/Flex.js.map +1 -0
  118. package/dist/components/layout/Flex.server.d.ts +36 -0
  119. package/dist/components/layout/Flex.server.d.ts.map +1 -0
  120. package/dist/components/layout/Flex.server.js +97 -0
  121. package/dist/components/layout/Flex.server.js.map +1 -0
  122. package/dist/components/layout/Grid.d.ts +31 -0
  123. package/dist/components/layout/Grid.d.ts.map +1 -0
  124. package/dist/components/layout/Grid.js +164 -0
  125. package/dist/components/layout/Grid.js.map +1 -0
  126. package/dist/components/layout/Grid.server.d.ts +32 -0
  127. package/dist/components/layout/Grid.server.d.ts.map +1 -0
  128. package/dist/components/layout/Grid.server.js +92 -0
  129. package/dist/components/layout/Grid.server.js.map +1 -0
  130. package/dist/components/layout/Section.d.ts +35 -0
  131. package/dist/components/layout/Section.d.ts.map +1 -0
  132. package/dist/components/layout/Section.js +212 -0
  133. package/dist/components/layout/Section.js.map +1 -0
  134. package/dist/components/layout/Section.server.d.ts +35 -0
  135. package/dist/components/layout/Section.server.d.ts.map +1 -0
  136. package/dist/components/layout/Section.server.js +144 -0
  137. package/dist/components/layout/Section.server.js.map +1 -0
  138. package/dist/components/layout/Spacer.d.ts +18 -0
  139. package/dist/components/layout/Spacer.d.ts.map +1 -0
  140. package/dist/components/layout/Spacer.js +99 -0
  141. package/dist/components/layout/Spacer.js.map +1 -0
  142. package/dist/components/layout/Spacer.server.d.ts +21 -0
  143. package/dist/components/layout/Spacer.server.d.ts.map +1 -0
  144. package/dist/components/layout/Spacer.server.js +61 -0
  145. package/dist/components/layout/Spacer.server.js.map +1 -0
  146. package/dist/components/layout/Template.d.ts +35 -0
  147. package/dist/components/layout/Template.d.ts.map +1 -0
  148. package/dist/components/layout/Template.js +124 -0
  149. package/dist/components/layout/Template.js.map +1 -0
  150. package/dist/components/layout/Template.server.d.ts +32 -0
  151. package/dist/components/layout/Template.server.d.ts.map +1 -0
  152. package/dist/components/layout/Template.server.js +75 -0
  153. package/dist/components/layout/Template.server.js.map +1 -0
  154. package/dist/components/layout/index.d.ts +14 -0
  155. package/dist/components/layout/index.d.ts.map +1 -0
  156. package/dist/components/layout/index.js +13 -0
  157. package/dist/components/layout/index.js.map +1 -0
  158. package/dist/components/media/Image.d.ts +30 -0
  159. package/dist/components/media/Image.d.ts.map +1 -0
  160. package/dist/components/media/Image.js +123 -0
  161. package/dist/components/media/Image.js.map +1 -0
  162. package/dist/components/media/Image.server.d.ts +28 -0
  163. package/dist/components/media/Image.server.d.ts.map +1 -0
  164. package/dist/components/media/Image.server.js +76 -0
  165. package/dist/components/media/Image.server.js.map +1 -0
  166. package/dist/components/media/index.d.ts +7 -0
  167. package/dist/components/media/index.d.ts.map +1 -0
  168. package/dist/components/media/index.js +7 -0
  169. package/dist/components/media/index.js.map +1 -0
  170. package/dist/components/typography/Heading.d.ts +21 -0
  171. package/dist/components/typography/Heading.d.ts.map +1 -0
  172. package/dist/components/typography/Heading.js +71 -0
  173. package/dist/components/typography/Heading.js.map +1 -0
  174. package/dist/components/typography/Heading.server.d.ts +21 -0
  175. package/dist/components/typography/Heading.server.d.ts.map +1 -0
  176. package/dist/components/typography/Heading.server.js +49 -0
  177. package/dist/components/typography/Heading.server.js.map +1 -0
  178. package/dist/components/typography/RichText.d.ts +20 -0
  179. package/dist/components/typography/RichText.d.ts.map +1 -0
  180. package/dist/components/typography/RichText.editor.d.ts +11 -0
  181. package/dist/components/typography/RichText.editor.d.ts.map +1 -0
  182. package/dist/components/typography/RichText.editor.js +67 -0
  183. package/dist/components/typography/RichText.editor.js.map +1 -0
  184. package/dist/components/typography/RichText.js +73 -0
  185. package/dist/components/typography/RichText.js.map +1 -0
  186. package/dist/components/typography/RichText.server.d.ts +22 -0
  187. package/dist/components/typography/RichText.server.d.ts.map +1 -0
  188. package/dist/components/typography/RichText.server.js +52 -0
  189. package/dist/components/typography/RichText.server.js.map +1 -0
  190. package/dist/components/typography/Text.d.ts +20 -0
  191. package/dist/components/typography/Text.d.ts.map +1 -0
  192. package/dist/components/typography/Text.js +61 -0
  193. package/dist/components/typography/Text.js.map +1 -0
  194. package/dist/components/typography/Text.server.d.ts +21 -0
  195. package/dist/components/typography/Text.server.d.ts.map +1 -0
  196. package/dist/components/typography/Text.server.js +39 -0
  197. package/dist/components/typography/Text.server.js.map +1 -0
  198. package/dist/components/typography/index.d.ts +10 -0
  199. package/dist/components/typography/index.d.ts.map +1 -0
  200. package/dist/components/typography/index.js +10 -0
  201. package/dist/components/typography/index.js.map +1 -0
  202. package/dist/config/config.editor.d.ts +15 -56
  203. package/dist/config/config.editor.d.ts.map +1 -0
  204. package/dist/config/config.editor.js +125 -9364
  205. package/dist/config/config.editor.js.map +1 -0
  206. package/dist/config/index.d.ts +7 -33
  207. package/dist/config/index.d.ts.map +1 -0
  208. package/dist/config/index.js +110 -2028
  209. package/dist/config/index.js.map +1 -0
  210. package/dist/config/merge.d.ts +23 -0
  211. package/dist/config/merge.d.ts.map +1 -0
  212. package/dist/config/merge.js +80 -0
  213. package/dist/config/merge.js.map +1 -0
  214. package/dist/config/presets.d.ts +342 -0
  215. package/dist/config/presets.d.ts.map +1 -0
  216. package/dist/config/presets.js +247 -0
  217. package/dist/config/presets.js.map +1 -0
  218. package/dist/editor/PuckEditor.client.d.ts +131 -0
  219. package/dist/editor/PuckEditor.client.d.ts.map +1 -0
  220. package/dist/editor/PuckEditor.client.js +42 -0
  221. package/dist/editor/PuckEditor.client.js.map +1 -0
  222. package/dist/editor/PuckEditorCore.client.d.ts +141 -0
  223. package/dist/editor/PuckEditorCore.client.d.ts.map +1 -0
  224. package/dist/editor/PuckEditorCore.client.js +306 -0
  225. package/dist/editor/PuckEditorCore.client.js.map +1 -0
  226. package/dist/editor/components/HeaderActions.d.ts +109 -0
  227. package/dist/editor/components/HeaderActions.d.ts.map +1 -0
  228. package/dist/editor/components/HeaderActions.js +254 -0
  229. package/dist/editor/components/HeaderActions.js.map +1 -0
  230. package/dist/editor/components/IframeWrapper.d.ts +77 -0
  231. package/dist/editor/components/IframeWrapper.d.ts.map +1 -0
  232. package/dist/editor/components/IframeWrapper.js +257 -0
  233. package/dist/editor/components/IframeWrapper.js.map +1 -0
  234. package/dist/editor/components/LoadingState.d.ts +14 -0
  235. package/dist/editor/components/LoadingState.d.ts.map +1 -0
  236. package/dist/editor/components/LoadingState.js +12 -0
  237. package/dist/editor/components/LoadingState.js.map +1 -0
  238. package/dist/editor/components/PreviewModal.d.ts +54 -0
  239. package/dist/editor/components/PreviewModal.d.ts.map +1 -0
  240. package/dist/editor/components/PreviewModal.js +298 -0
  241. package/dist/editor/components/PreviewModal.js.map +1 -0
  242. package/dist/editor/components/VersionHistory.d.ts +44 -0
  243. package/dist/editor/components/VersionHistory.d.ts.map +1 -0
  244. package/dist/editor/components/VersionHistory.js +308 -0
  245. package/dist/editor/components/VersionHistory.js.map +1 -0
  246. package/dist/editor/hooks/useUnsavedChanges.d.ts +27 -0
  247. package/dist/editor/hooks/useUnsavedChanges.d.ts.map +1 -0
  248. package/dist/editor/hooks/useUnsavedChanges.js +55 -0
  249. package/dist/editor/hooks/useUnsavedChanges.js.map +1 -0
  250. package/dist/editor/index.d.ts +16 -756
  251. package/dist/editor/index.d.ts.map +1 -0
  252. package/dist/editor/index.js +49 -4533
  253. package/dist/editor/index.js.map +1 -0
  254. package/dist/editor/plugins/index.d.ts +12 -0
  255. package/dist/editor/plugins/index.d.ts.map +1 -0
  256. package/dist/editor/plugins/index.js +12 -0
  257. package/dist/editor/plugins/index.js.map +1 -0
  258. package/dist/endpoints/index.d.ts +46 -0
  259. package/dist/endpoints/index.d.ts.map +1 -0
  260. package/dist/endpoints/index.js +204 -0
  261. package/dist/endpoints/index.js.map +1 -0
  262. package/dist/exports/client.d.ts +19 -0
  263. package/dist/exports/client.d.ts.map +1 -0
  264. package/dist/exports/client.js +21 -0
  265. package/dist/exports/client.js.map +1 -0
  266. package/dist/exports/rsc.d.ts +19 -0
  267. package/dist/exports/rsc.d.ts.map +1 -0
  268. package/dist/exports/rsc.js +19 -0
  269. package/dist/exports/rsc.js.map +1 -0
  270. package/dist/fields/AlignmentField.d.ts +36 -0
  271. package/dist/fields/AlignmentField.d.ts.map +1 -0
  272. package/dist/fields/AlignmentField.js +120 -0
  273. package/dist/fields/AlignmentField.js.map +1 -0
  274. package/dist/fields/AnimationField.d.ts +44 -0
  275. package/dist/fields/AnimationField.d.ts.map +1 -0
  276. package/dist/fields/AnimationField.js +329 -0
  277. package/dist/fields/AnimationField.js.map +1 -0
  278. package/dist/fields/BackgroundField.d.ts +40 -0
  279. package/dist/fields/BackgroundField.d.ts.map +1 -0
  280. package/dist/fields/BackgroundField.js +413 -0
  281. package/dist/fields/BackgroundField.js.map +1 -0
  282. package/dist/fields/BorderField.d.ts +29 -0
  283. package/dist/fields/BorderField.d.ts.map +1 -0
  284. package/dist/fields/BorderField.js +264 -0
  285. package/dist/fields/BorderField.js.map +1 -0
  286. package/dist/fields/ColorPickerField.d.ts +43 -0
  287. package/dist/fields/ColorPickerField.d.ts.map +1 -0
  288. package/dist/fields/ColorPickerField.js +285 -0
  289. package/dist/fields/ColorPickerField.js.map +1 -0
  290. package/dist/fields/DimensionsField.d.ts +43 -0
  291. package/dist/fields/DimensionsField.d.ts.map +1 -0
  292. package/dist/fields/DimensionsField.js +532 -0
  293. package/dist/fields/DimensionsField.js.map +1 -0
  294. package/dist/fields/FlexAlignmentField.d.ts +61 -0
  295. package/dist/fields/FlexAlignmentField.d.ts.map +1 -0
  296. package/dist/fields/FlexAlignmentField.js +166 -0
  297. package/dist/fields/FlexAlignmentField.js.map +1 -0
  298. package/dist/fields/FolderPickerField.d.ts +17 -0
  299. package/dist/fields/FolderPickerField.d.ts.map +1 -0
  300. package/dist/fields/FolderPickerField.js +282 -0
  301. package/dist/fields/FolderPickerField.js.map +1 -0
  302. package/dist/fields/GradientEditor.d.ts +22 -0
  303. package/dist/fields/GradientEditor.d.ts.map +1 -0
  304. package/dist/fields/GradientEditor.js +322 -0
  305. package/dist/fields/GradientEditor.js.map +1 -0
  306. package/dist/fields/LockedField.d.ts +67 -0
  307. package/dist/fields/LockedField.d.ts.map +1 -0
  308. package/dist/fields/LockedField.js +170 -0
  309. package/dist/fields/LockedField.js.map +1 -0
  310. package/dist/fields/MarginField.d.ts +31 -0
  311. package/dist/fields/MarginField.d.ts.map +1 -0
  312. package/dist/fields/MarginField.js +233 -0
  313. package/dist/fields/MarginField.js.map +1 -0
  314. package/dist/fields/MediaField.d.ts +33 -0
  315. package/dist/fields/MediaField.d.ts.map +1 -0
  316. package/dist/fields/MediaField.js +677 -0
  317. package/dist/fields/MediaField.js.map +1 -0
  318. package/dist/fields/PaddingField.d.ts +29 -0
  319. package/dist/fields/PaddingField.d.ts.map +1 -0
  320. package/dist/fields/PaddingField.js +232 -0
  321. package/dist/fields/PaddingField.js.map +1 -0
  322. package/dist/fields/PageSegmentField.d.ts +17 -0
  323. package/dist/fields/PageSegmentField.d.ts.map +1 -0
  324. package/dist/fields/PageSegmentField.js +92 -0
  325. package/dist/fields/PageSegmentField.js.map +1 -0
  326. package/dist/fields/ResetField.d.ts +27 -0
  327. package/dist/fields/ResetField.d.ts.map +1 -0
  328. package/dist/fields/ResetField.js +122 -0
  329. package/dist/fields/ResetField.js.map +1 -0
  330. package/dist/fields/ResponsiveField.d.ts +38 -0
  331. package/dist/fields/ResponsiveField.d.ts.map +1 -0
  332. package/dist/fields/ResponsiveField.js +275 -0
  333. package/dist/fields/ResponsiveField.js.map +1 -0
  334. package/dist/fields/ResponsiveVisibilityField.d.ts +34 -0
  335. package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -0
  336. package/dist/fields/ResponsiveVisibilityField.js +145 -0
  337. package/dist/fields/ResponsiveVisibilityField.js.map +1 -0
  338. package/dist/fields/SizeField.d.ts +54 -0
  339. package/dist/fields/SizeField.d.ts.map +1 -0
  340. package/dist/fields/SizeField.js +255 -0
  341. package/dist/fields/SizeField.js.map +1 -0
  342. package/dist/fields/SlugPreviewField.d.ts +16 -0
  343. package/dist/fields/SlugPreviewField.d.ts.map +1 -0
  344. package/dist/fields/SlugPreviewField.js +49 -0
  345. package/dist/fields/SlugPreviewField.js.map +1 -0
  346. package/dist/fields/TemplateField.d.ts +31 -0
  347. package/dist/fields/TemplateField.d.ts.map +1 -0
  348. package/dist/fields/TemplateField.js +428 -0
  349. package/dist/fields/TemplateField.js.map +1 -0
  350. package/dist/fields/TiptapField.d.ts +40 -0
  351. package/dist/fields/TiptapField.d.ts.map +1 -0
  352. package/dist/fields/TiptapField.js +857 -0
  353. package/dist/fields/TiptapField.js.map +1 -0
  354. package/dist/fields/TiptapModal.d.ts +10 -0
  355. package/dist/fields/TiptapModal.d.ts.map +1 -0
  356. package/dist/fields/TiptapModal.js +114 -0
  357. package/dist/fields/TiptapModal.js.map +1 -0
  358. package/dist/fields/TiptapModalField.d.ts +23 -0
  359. package/dist/fields/TiptapModalField.d.ts.map +1 -0
  360. package/dist/fields/TiptapModalField.js +55 -0
  361. package/dist/fields/TiptapModalField.js.map +1 -0
  362. package/dist/fields/TransformField.d.ts +31 -0
  363. package/dist/fields/TransformField.d.ts.map +1 -0
  364. package/dist/fields/TransformField.js +384 -0
  365. package/dist/fields/TransformField.js.map +1 -0
  366. package/dist/fields/VerticalAlignmentField.d.ts +35 -0
  367. package/dist/fields/VerticalAlignmentField.d.ts.map +1 -0
  368. package/dist/fields/VerticalAlignmentField.js +120 -0
  369. package/dist/fields/VerticalAlignmentField.js.map +1 -0
  370. package/dist/fields/WidthField.d.ts +28 -0
  371. package/dist/fields/WidthField.d.ts.map +1 -0
  372. package/dist/fields/WidthField.js +339 -0
  373. package/dist/fields/WidthField.js.map +1 -0
  374. package/dist/fields/index.d.ts +44 -559
  375. package/dist/fields/index.d.ts.map +1 -0
  376. package/dist/fields/index.js +91 -7685
  377. package/dist/fields/index.js.map +1 -0
  378. package/dist/fields/richtext-output.css +219 -0
  379. package/dist/{shared-DeNKN95N.d.mts → fields/shared.d.ts} +114 -133
  380. package/dist/fields/shared.d.ts.map +1 -0
  381. package/dist/fields/shared.js +1542 -0
  382. package/dist/fields/shared.js.map +1 -0
  383. package/dist/fields/{index.css → tiptap-styles.css} +75 -166
  384. package/dist/hooks/index.d.ts +8 -0
  385. package/dist/hooks/index.d.ts.map +1 -0
  386. package/dist/hooks/index.js +8 -0
  387. package/dist/hooks/index.js.map +1 -0
  388. package/dist/hooks/useResponsiveStyles.d.ts +51 -0
  389. package/dist/hooks/useResponsiveStyles.d.ts.map +1 -0
  390. package/dist/hooks/useResponsiveStyles.js +149 -0
  391. package/dist/hooks/useResponsiveStyles.js.map +1 -0
  392. package/dist/hooks/useScrollAnimation.d.ts +56 -0
  393. package/dist/hooks/useScrollAnimation.d.ts.map +1 -0
  394. package/dist/hooks/useScrollAnimation.js +116 -0
  395. package/dist/hooks/useScrollAnimation.js.map +1 -0
  396. package/dist/index.d.ts +66 -6
  397. package/dist/index.d.ts.map +1 -0
  398. package/dist/index.js +67 -568
  399. package/dist/index.js.map +1 -0
  400. package/dist/layouts/LayoutWrapper.d.ts +33 -0
  401. package/dist/layouts/LayoutWrapper.d.ts.map +1 -0
  402. package/dist/layouts/LayoutWrapper.js +112 -0
  403. package/dist/layouts/LayoutWrapper.js.map +1 -0
  404. package/dist/layouts/defaults.d.ts +40 -0
  405. package/dist/layouts/defaults.d.ts.map +1 -0
  406. package/dist/layouts/defaults.js +106 -0
  407. package/dist/layouts/defaults.js.map +1 -0
  408. package/dist/layouts/index.d.ts +27 -94
  409. package/dist/layouts/index.d.ts.map +1 -0
  410. package/dist/layouts/index.js +30 -393
  411. package/dist/layouts/index.js.map +1 -0
  412. package/dist/{types-D7D3rZ1J.d.ts → layouts/types.d.ts} +8 -11
  413. package/dist/layouts/types.d.ts.map +1 -0
  414. package/dist/layouts/types.js +7 -0
  415. package/dist/layouts/types.js.map +1 -0
  416. package/dist/layouts/utils.d.ts +42 -0
  417. package/dist/layouts/utils.d.ts.map +1 -0
  418. package/dist/layouts/utils.js +83 -0
  419. package/dist/layouts/utils.js.map +1 -0
  420. package/dist/plugin/collections/Pages.d.ts +8 -0
  421. package/dist/plugin/collections/Pages.d.ts.map +1 -0
  422. package/dist/plugin/collections/Pages.js +117 -0
  423. package/dist/plugin/collections/Pages.js.map +1 -0
  424. package/dist/plugin/fields/index.d.ts +153 -0
  425. package/dist/plugin/fields/index.d.ts.map +1 -0
  426. package/dist/plugin/fields/index.js +364 -0
  427. package/dist/plugin/fields/index.js.map +1 -0
  428. package/dist/plugin/fields/types.d.ts +108 -0
  429. package/dist/plugin/fields/types.d.ts.map +1 -0
  430. package/dist/plugin/fields/types.js +7 -0
  431. package/dist/plugin/fields/types.js.map +1 -0
  432. package/dist/plugin/index.d.ts +13 -255
  433. package/dist/plugin/index.d.ts.map +1 -0
  434. package/dist/plugin/index.js +276 -553
  435. package/dist/plugin/index.js.map +1 -0
  436. package/dist/render/HybridPageRenderer.d.ts +85 -0
  437. package/dist/render/HybridPageRenderer.d.ts.map +1 -0
  438. package/dist/render/HybridPageRenderer.js +29 -0
  439. package/dist/render/HybridPageRenderer.js.map +1 -0
  440. package/dist/render/PageRenderer.d.ts +51 -0
  441. package/dist/render/PageRenderer.d.ts.map +1 -0
  442. package/dist/render/PageRenderer.js +61 -0
  443. package/dist/render/PageRenderer.js.map +1 -0
  444. package/dist/render/PuckEditor.client.d.ts +66 -0
  445. package/dist/render/PuckEditor.client.d.ts.map +1 -0
  446. package/dist/render/PuckEditor.client.js +66 -0
  447. package/dist/render/PuckEditor.client.js.map +1 -0
  448. package/dist/render/index.d.ts +8 -106
  449. package/dist/render/index.d.ts.map +1 -0
  450. package/dist/render/index.js +10 -2162
  451. package/dist/render/index.js.map +1 -0
  452. package/dist/theme/context.d.ts +59 -0
  453. package/dist/theme/context.d.ts.map +1 -0
  454. package/dist/theme/context.js +73 -0
  455. package/dist/theme/context.js.map +1 -0
  456. package/dist/theme/defaults.d.ts +39 -0
  457. package/dist/theme/defaults.d.ts.map +1 -0
  458. package/dist/theme/defaults.js +72 -0
  459. package/dist/theme/defaults.js.map +1 -0
  460. package/dist/theme/example.d.ts +30 -0
  461. package/dist/theme/example.d.ts.map +1 -0
  462. package/dist/theme/example.js +89 -0
  463. package/dist/theme/example.js.map +1 -0
  464. package/dist/theme/index.d.ts +17 -140
  465. package/dist/theme/index.d.ts.map +1 -0
  466. package/dist/theme/index.js +34 -200
  467. package/dist/theme/index.js.map +1 -0
  468. package/dist/{types-_6MvjyKv.d.ts → theme/types.d.ts} +8 -9
  469. package/dist/theme/types.d.ts.map +1 -0
  470. package/dist/theme/types.js +9 -0
  471. package/dist/theme/types.js.map +1 -0
  472. package/dist/theme/utils.d.ts +30 -0
  473. package/dist/theme/utils.d.ts.map +1 -0
  474. package/dist/theme/utils.js +84 -0
  475. package/dist/theme/utils.js.map +1 -0
  476. package/dist/{index-CQu6SzDg.d.mts → types/index.d.ts} +120 -115
  477. package/dist/types/index.d.ts.map +1 -0
  478. package/dist/types/index.js +2 -0
  479. package/dist/types/index.js.map +1 -0
  480. package/dist/utils/index.d.ts +23 -257
  481. package/dist/utils/index.d.ts.map +1 -0
  482. package/dist/utils/index.js +56 -425
  483. package/dist/utils/index.js.map +1 -0
  484. package/dist/utils/{index.d.mts → migration.d.ts} +16 -112
  485. package/dist/utils/migration.d.ts.map +1 -0
  486. package/dist/utils/migration.js +309 -0
  487. package/dist/utils/migration.js.map +1 -0
  488. package/dist/utils/validation.d.ts +89 -0
  489. package/dist/utils/validation.d.ts.map +1 -0
  490. package/dist/utils/validation.js +247 -0
  491. package/dist/utils/validation.js.map +1 -0
  492. package/dist/views/PuckConfigContext.d.ts +71 -0
  493. package/dist/views/PuckConfigContext.d.ts.map +1 -0
  494. package/dist/views/PuckConfigContext.js +45 -0
  495. package/dist/views/PuckConfigContext.js.map +1 -0
  496. package/dist/views/PuckEditorClient.d.ts +73 -0
  497. package/dist/views/PuckEditorClient.d.ts.map +1 -0
  498. package/dist/views/PuckEditorClient.js +130 -0
  499. package/dist/views/PuckEditorClient.js.map +1 -0
  500. package/dist/views/PuckEditorView.d.ts +19 -0
  501. package/dist/views/PuckEditorView.d.ts.map +1 -0
  502. package/dist/views/PuckEditorView.js +106 -0
  503. package/dist/views/PuckEditorView.js.map +1 -0
  504. package/dist/views/index.d.ts +10 -0
  505. package/dist/views/index.d.ts.map +1 -0
  506. package/dist/views/index.js +10 -0
  507. package/dist/views/index.js.map +1 -0
  508. package/package.json +50 -72
  509. package/dist/AccordionClient.d.mts +0 -24
  510. package/dist/AccordionClient.d.ts +0 -24
  511. package/dist/AccordionClient.js +0 -786
  512. package/dist/AccordionClient.mjs +0 -784
  513. package/dist/AnimatedWrapper.d.mts +0 -30
  514. package/dist/AnimatedWrapper.d.ts +0 -30
  515. package/dist/AnimatedWrapper.js +0 -379
  516. package/dist/AnimatedWrapper.mjs +0 -377
  517. package/dist/admin/client.d.mts +0 -108
  518. package/dist/admin/client.mjs +0 -173
  519. package/dist/admin/index.d.mts +0 -157
  520. package/dist/admin/index.mjs +0 -29
  521. package/dist/api/index.d.mts +0 -460
  522. package/dist/api/index.mjs +0 -578
  523. package/dist/components/index.css +0 -339
  524. package/dist/components/index.d.mts +0 -222
  525. package/dist/components/index.mjs +0 -9109
  526. package/dist/config/config.editor.css +0 -339
  527. package/dist/config/config.editor.d.mts +0 -153
  528. package/dist/config/config.editor.mjs +0 -9347
  529. package/dist/config/index.d.mts +0 -68
  530. package/dist/config/index.mjs +0 -2008
  531. package/dist/editor/index.d.mts +0 -784
  532. package/dist/editor/index.mjs +0 -4500
  533. package/dist/fields/index.d.mts +0 -600
  534. package/dist/fields/index.mjs +0 -7569
  535. package/dist/index-CoUQnyC3.d.ts +0 -327
  536. package/dist/index.d.mts +0 -6
  537. package/dist/index.mjs +0 -555
  538. package/dist/layouts/index.d.mts +0 -96
  539. package/dist/layouts/index.mjs +0 -378
  540. package/dist/plugin/index.d.mts +0 -289
  541. package/dist/plugin/index.mjs +0 -555
  542. package/dist/render/index.d.mts +0 -109
  543. package/dist/render/index.mjs +0 -2140
  544. package/dist/shared-DeNKN95N.d.ts +0 -546
  545. package/dist/theme/index.d.mts +0 -155
  546. package/dist/theme/index.mjs +0 -186
  547. package/dist/types-D7D3rZ1J.d.mts +0 -116
  548. package/dist/types-_6MvjyKv.d.mts +0 -104
  549. package/dist/utils/index.mjs +0 -412
  550. package/dist/utils-DaRs9t0J.d.mts +0 -85
  551. package/dist/utils-gAvt0Vhw.d.ts +0 -85
  552. package/examples/README.md +0 -247
  553. package/examples/api/puck/pages/[id]/route.ts +0 -64
  554. package/examples/api/puck/pages/[id]/versions/route.ts +0 -47
  555. package/examples/api/puck/pages/route.ts +0 -45
  556. package/examples/app/(frontend)/page.tsx +0 -94
  557. package/examples/app/(manage)/layout.tsx +0 -31
  558. package/examples/app/[...slug]/page.tsx +0 -101
  559. package/examples/app/pages/[id]/edit/page.tsx +0 -148
  560. package/examples/components/CustomBanner.tsx +0 -368
  561. package/examples/config/custom-config.ts +0 -223
  562. package/examples/config/payload.config.example.ts +0 -64
  563. package/examples/lib/puck-layouts.ts +0 -258
  564. package/examples/lib/puck-theme.ts +0 -94
  565. package/examples/styles/puck-theme.css +0 -171
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Template Component - Puck Configuration
3
+ *
4
+ * A reusable template container that allows saving and loading
5
+ * pre-configured component arrangements from the Payload CMS.
6
+ *
7
+ * Use this component to:
8
+ * - Create reusable page sections
9
+ * - Save common component patterns as templates
10
+ * - Quickly load pre-built layouts
11
+ *
12
+ * Responsive Controls:
13
+ * - dimensions: Different dimensions at different breakpoints
14
+ * - customPadding: Different padding at different breakpoints
15
+ * - margin: Different margins at different breakpoints
16
+ * - visibility: Show/hide at different breakpoints
17
+ */
18
+ import type { ComponentConfig } from '@measured/puck';
19
+ import { type PaddingValue, type DimensionsValue, type ResponsiveValue, type VisibilityValue } from '../../fields/shared';
20
+ export interface TemplateProps {
21
+ /** Slot for nested components */
22
+ content: unknown;
23
+ /** ID of the currently loaded template (or null if none) */
24
+ templateId: string | null;
25
+ /** Responsive dimensions */
26
+ dimensions: ResponsiveValue<DimensionsValue> | DimensionsValue | null;
27
+ /** Responsive padding */
28
+ customPadding: ResponsiveValue<PaddingValue> | PaddingValue | null;
29
+ /** Responsive margin */
30
+ margin: ResponsiveValue<PaddingValue> | PaddingValue | null;
31
+ /** Responsive visibility */
32
+ visibility: VisibilityValue | null;
33
+ }
34
+ export declare const TemplateConfig: ComponentConfig;
35
+ //# sourceMappingURL=Template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../../src/components/layout/Template.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAOL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAA;AA6B5B,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,4BAA4B;IAC5B,UAAU,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,IAAI,CAAA;IACrE,yBAAyB;IACzB,aAAa,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,IAAI,CAAA;IAClE,wBAAwB;IACxB,MAAM,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,IAAI,CAAA;IAC3D,4BAA4B;IAC5B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;CACnC;AAmBD,eAAO,MAAM,cAAc,EAAE,eAiG5B,CAAA"}
@@ -0,0 +1,124 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Template Component - Puck Configuration
4
+ *
5
+ * A reusable template container that allows saving and loading
6
+ * pre-configured component arrangements from the Payload CMS.
7
+ *
8
+ * Use this component to:
9
+ * - Create reusable page sections
10
+ * - Save common component patterns as templates
11
+ * - Quickly load pre-built layouts
12
+ *
13
+ * Responsive Controls:
14
+ * - dimensions: Different dimensions at different breakpoints
15
+ * - customPadding: Different padding at different breakpoints
16
+ * - margin: Different margins at different breakpoints
17
+ * - visibility: Show/hide at different breakpoints
18
+ */
19
+ import { useId } from 'react';
20
+ import { cn, dimensionsValueToCSS, marginValueToCSS, paddingValueToCSS, responsiveValueToCSS, visibilityValueToCSS, } from '../../fields/shared';
21
+ import { createResetField } from '../../fields/ResetField';
22
+ import { createTemplateField } from '../../fields/TemplateField';
23
+ import { createPaddingField } from '../../fields/PaddingField';
24
+ import { createMarginField } from '../../fields/MarginField';
25
+ import { createDimensionsField } from '../../fields/DimensionsField';
26
+ import { createResponsiveField } from '../../fields/ResponsiveField';
27
+ import { createResponsiveVisibilityField } from '../../fields/ResponsiveVisibilityField';
28
+ // Default values for responsive fields
29
+ const DEFAULT_PADDING = {
30
+ top: 0,
31
+ right: 0,
32
+ bottom: 0,
33
+ left: 0,
34
+ unit: 'px',
35
+ linked: true,
36
+ };
37
+ const DEFAULT_DIMENSIONS = {
38
+ mode: 'full',
39
+ alignment: 'center',
40
+ maxWidth: { value: 100, unit: '%', enabled: true },
41
+ };
42
+ // =============================================================================
43
+ // Default Props
44
+ // =============================================================================
45
+ const defaultProps = {
46
+ content: [],
47
+ templateId: null,
48
+ dimensions: null,
49
+ customPadding: null,
50
+ margin: null,
51
+ visibility: null,
52
+ };
53
+ // =============================================================================
54
+ // Component Configuration
55
+ // =============================================================================
56
+ export const TemplateConfig = {
57
+ label: 'Template',
58
+ fields: {
59
+ _reset: createResetField({ defaultProps }),
60
+ templateId: createTemplateField({ label: 'Template' }),
61
+ content: {
62
+ type: 'slot',
63
+ },
64
+ // Responsive visibility control
65
+ visibility: createResponsiveVisibilityField({ label: 'Visibility' }),
66
+ // Responsive dimensions
67
+ dimensions: createResponsiveField({
68
+ label: 'Dimensions (Responsive)',
69
+ innerField: (config) => createDimensionsField(config),
70
+ defaultValue: DEFAULT_DIMENSIONS,
71
+ }),
72
+ // Spacing (grouped at bottom) - Responsive
73
+ margin: createResponsiveField({
74
+ label: 'Margin (Responsive)',
75
+ innerField: (config) => createMarginField(config),
76
+ defaultValue: DEFAULT_PADDING,
77
+ }),
78
+ customPadding: createResponsiveField({
79
+ label: 'Padding (Responsive)',
80
+ innerField: (config) => createPaddingField(config),
81
+ defaultValue: DEFAULT_PADDING,
82
+ }),
83
+ },
84
+ defaultProps,
85
+ render: ({ content: Content, dimensions, customPadding, margin, visibility }) => {
86
+ // Generate unique IDs for CSS targeting
87
+ // eslint-disable-next-line react-hooks/rules-of-hooks
88
+ const uniqueId = useId().replace(/:/g, '');
89
+ const wrapperClass = `puck-template-${uniqueId}`;
90
+ const contentClass = `puck-template-content-${uniqueId}`;
91
+ // Collect all media query CSS
92
+ const mediaQueries = [];
93
+ // Build wrapper styles
94
+ const wrapperStyles = {};
95
+ // Add padding with responsive support
96
+ const paddingResult = responsiveValueToCSS(customPadding, (v) => ({ padding: paddingValueToCSS(v) }), wrapperClass);
97
+ Object.assign(wrapperStyles, paddingResult.baseStyles);
98
+ if (paddingResult.mediaQueryCSS) {
99
+ mediaQueries.push(paddingResult.mediaQueryCSS);
100
+ }
101
+ // Add margin with responsive support
102
+ const marginResult = responsiveValueToCSS(margin, (v) => ({ margin: marginValueToCSS(v) }), wrapperClass);
103
+ Object.assign(wrapperStyles, marginResult.baseStyles);
104
+ if (marginResult.mediaQueryCSS) {
105
+ mediaQueries.push(marginResult.mediaQueryCSS);
106
+ }
107
+ // Visibility media queries
108
+ const visibilityCSS = visibilityValueToCSS(visibility, wrapperClass);
109
+ if (visibilityCSS) {
110
+ mediaQueries.push(visibilityCSS);
111
+ }
112
+ // Use dimensions with responsive support
113
+ const dimensionsResult = responsiveValueToCSS(dimensions, dimensionsValueToCSS, contentClass);
114
+ if (dimensionsResult.mediaQueryCSS) {
115
+ mediaQueries.push(dimensionsResult.mediaQueryCSS);
116
+ }
117
+ // Combine all media queries
118
+ const allMediaQueryCSS = mediaQueries.join('\n');
119
+ // Content is a slot component that Puck provides
120
+ // It renders all the nested components within this template
121
+ return (_jsxs(_Fragment, { children: [allMediaQueryCSS && _jsx("style", { children: allMediaQueryCSS }), _jsx("div", { className: cn('template-wrapper', wrapperClass), style: Object.keys(wrapperStyles).length > 0 ? wrapperStyles : undefined, children: _jsx(Content, { className: contentClass, style: dimensionsResult.baseStyles }) })] }));
122
+ },
123
+ };
124
+ //# sourceMappingURL=Template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../../../src/components/layout/Template.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Template Component - Server-safe Configuration
3
+ *
4
+ * A reusable template container for rendering nested components.
5
+ * This server-safe version excludes the TemplateField (which requires client-side APIs).
6
+ *
7
+ * For the full editor experience with template loading, use Template.tsx
8
+ *
9
+ * Responsive Controls:
10
+ * - dimensions: Different dimensions at different breakpoints
11
+ * - customPadding: Different padding at different breakpoints
12
+ * - margin: Different margins at different breakpoints
13
+ * - visibility: Show/hide at different breakpoints
14
+ */
15
+ import type { ComponentConfig } from '@measured/puck';
16
+ import { type PaddingValue, type DimensionsValue, type ResponsiveValue, type VisibilityValue } from '../../fields/shared';
17
+ export interface TemplateProps {
18
+ /** Slot for nested components */
19
+ content: unknown;
20
+ /** ID of the currently loaded template (for tracking only) */
21
+ templateId: string | null;
22
+ /** Responsive dimensions */
23
+ dimensions: ResponsiveValue<DimensionsValue> | DimensionsValue | null;
24
+ /** Responsive padding */
25
+ customPadding: ResponsiveValue<PaddingValue> | PaddingValue | null;
26
+ /** Responsive margin */
27
+ margin: ResponsiveValue<PaddingValue> | PaddingValue | null;
28
+ /** Responsive visibility */
29
+ visibility: VisibilityValue | null;
30
+ }
31
+ export declare const TemplateServerConfig: ComponentConfig;
32
+ //# sourceMappingURL=Template.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.server.d.ts","sourceRoot":"","sources":["../../../src/components/layout/Template.server.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAOL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAA;AAY5B,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,4BAA4B;IAC5B,UAAU,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,IAAI,CAAA;IACrE,yBAAyB;IACzB,aAAa,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,IAAI,CAAA;IAClE,wBAAwB;IACxB,MAAM,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,IAAI,CAAA;IAC3D,4BAA4B;IAC5B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;CACnC;AAmBD,eAAO,MAAM,oBAAoB,EAAE,eAmFlC,CAAA"}
@@ -0,0 +1,75 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn, dimensionsValueToCSS, marginValueToCSS, paddingValueToCSS, responsiveValueToCSS, visibilityValueToCSS, } from '../../fields/shared';
3
+ // Simple ID generator for server-side rendering
4
+ let idCounter = 0;
5
+ function generateUniqueId() {
6
+ return `t${(++idCounter).toString(36)}${Math.random().toString(36).slice(2, 6)}`;
7
+ }
8
+ // =============================================================================
9
+ // Default Props
10
+ // =============================================================================
11
+ const defaultProps = {
12
+ content: [],
13
+ templateId: null,
14
+ dimensions: null,
15
+ customPadding: null,
16
+ margin: null,
17
+ visibility: null,
18
+ };
19
+ // =============================================================================
20
+ // Component Configuration (Server-safe)
21
+ // =============================================================================
22
+ export const TemplateServerConfig = {
23
+ label: 'Template',
24
+ fields: {
25
+ // In server config, templateId is just for reference (no loading UI)
26
+ templateId: {
27
+ type: 'text',
28
+ label: 'Template ID',
29
+ },
30
+ content: {
31
+ type: 'slot',
32
+ },
33
+ },
34
+ defaultProps,
35
+ render: ({ content: Content, dimensions, customPadding, margin, visibility }) => {
36
+ // Generate unique IDs for CSS targeting (server-safe)
37
+ const uniqueId = generateUniqueId();
38
+ const wrapperClass = `puck-template-${uniqueId}`;
39
+ const contentClass = `puck-template-content-${uniqueId}`;
40
+ // Collect all media query CSS
41
+ const mediaQueries = [];
42
+ // Build wrapper styles
43
+ const wrapperStyles = {};
44
+ // Add padding with responsive support
45
+ const paddingResult = responsiveValueToCSS(customPadding, (v) => ({ padding: paddingValueToCSS(v) }), wrapperClass);
46
+ Object.assign(wrapperStyles, paddingResult.baseStyles);
47
+ if (paddingResult.mediaQueryCSS) {
48
+ mediaQueries.push(paddingResult.mediaQueryCSS);
49
+ }
50
+ // Add margin with responsive support
51
+ const marginResult = responsiveValueToCSS(margin, (v) => ({ margin: marginValueToCSS(v) }), wrapperClass);
52
+ Object.assign(wrapperStyles, marginResult.baseStyles);
53
+ if (marginResult.mediaQueryCSS) {
54
+ mediaQueries.push(marginResult.mediaQueryCSS);
55
+ }
56
+ // Visibility media queries
57
+ const visibilityCSS = visibilityValueToCSS(visibility, wrapperClass);
58
+ if (visibilityCSS) {
59
+ mediaQueries.push(visibilityCSS);
60
+ }
61
+ // Use dimensions with responsive support
62
+ const dimensionsResult = responsiveValueToCSS(dimensions, dimensionsValueToCSS, contentClass);
63
+ if (dimensionsResult.mediaQueryCSS) {
64
+ mediaQueries.push(dimensionsResult.mediaQueryCSS);
65
+ }
66
+ // Combine all media queries
67
+ const allMediaQueryCSS = mediaQueries.join('\n');
68
+ // Type assertion for Puck slot content
69
+ const ContentSlot = Content;
70
+ // Content is a slot component that Puck provides
71
+ // It renders all the nested components within this template
72
+ return (_jsxs(_Fragment, { children: [allMediaQueryCSS && _jsx("style", { children: allMediaQueryCSS }), _jsx("div", { className: cn('template-wrapper', wrapperClass), style: Object.keys(wrapperStyles).length > 0 ? wrapperStyles : undefined, children: _jsx(ContentSlot, { className: contentClass, style: dimensionsResult.baseStyles }) })] }));
73
+ },
74
+ };
75
+ //# sourceMappingURL=Template.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.server.js","sourceRoot":"","sources":["../../../src/components/layout/Template.server.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Layout Components
3
+ *
4
+ * Structural components for page layout and content organization.
5
+ */
6
+ export { ContainerConfig } from './Container';
7
+ export { FlexConfig } from './Flex';
8
+ export { GridConfig } from './Grid';
9
+ export { SectionConfig } from './Section';
10
+ export { SpacerConfig } from './Spacer';
11
+ export { TemplateConfig } from './Template';
12
+ export { TemplateServerConfig } from './Template.server';
13
+ export type { TemplateProps } from './Template';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Layout Components
3
+ *
4
+ * Structural components for page layout and content organization.
5
+ */
6
+ export { ContainerConfig } from './Container';
7
+ export { FlexConfig } from './Flex';
8
+ export { GridConfig } from './Grid';
9
+ export { SectionConfig } from './Section';
10
+ export { SpacerConfig } from './Spacer';
11
+ export { TemplateConfig } from './Template';
12
+ export { TemplateServerConfig } from './Template.server';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Image Component - Puck Configuration
3
+ *
4
+ * Standalone image block with optional link wrapper.
5
+ * Server-safe version using standard HTML img element.
6
+ *
7
+ * Responsive Controls:
8
+ * - visibility: Show/hide at different breakpoints
9
+ */
10
+ import type { ComponentConfig } from '@measured/puck';
11
+ import { type PaddingValue, type DimensionsValue, type BorderValue, type AnimationValue, type TransformValue, type VisibilityValue } from '../../fields/shared';
12
+ import { type MediaReference } from '../../fields/MediaField';
13
+ import { type Alignment } from '../../fields/AlignmentField';
14
+ export interface ImageProps {
15
+ image: MediaReference | null;
16
+ alt: string;
17
+ aspectRatio: string;
18
+ link: string;
19
+ openInNewTab: boolean;
20
+ margin: PaddingValue | null;
21
+ border: BorderValue | null;
22
+ dimensions: DimensionsValue | null;
23
+ alignment: Alignment | null;
24
+ transform: TransformValue | null;
25
+ animation: AnimationValue | null;
26
+ customPadding: PaddingValue | null;
27
+ visibility: VisibilityValue | null;
28
+ }
29
+ export declare const ImageConfig: ComponentConfig;
30
+ //# sourceMappingURL=Image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../src/components/media/Image.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAUL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAgBlF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,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,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;CACnC;AAkBD,eAAO,MAAM,WAAW,EAAE,eA0IzB,CAAA"}
@@ -0,0 +1,123 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Image Component - Puck Configuration
4
+ *
5
+ * Standalone image block with optional link wrapper.
6
+ * Server-safe version using standard HTML img element.
7
+ *
8
+ * Responsive Controls:
9
+ * - visibility: Show/hide at different breakpoints
10
+ */
11
+ import { useId } from 'react';
12
+ import { aspectRatioField, aspectRatioMap, cn, marginValueToCSS, paddingValueToCSS, dimensionsValueToCSS, borderValueToCSS, transformValueToCSS, visibilityValueToCSS, } from '../../fields/shared';
13
+ import { AnimatedWrapper } from '../AnimatedWrapper';
14
+ import { createMarginField } from '../../fields/MarginField';
15
+ import { createPaddingField } from '../../fields/PaddingField';
16
+ import { createDimensionsField } from '../../fields/DimensionsField';
17
+ import { createBorderField } from '../../fields/BorderField';
18
+ import { createMediaField } from '../../fields/MediaField';
19
+ import { createAlignmentField } from '../../fields/AlignmentField';
20
+ import { createAnimationField } from '../../fields/AnimationField';
21
+ import { createTransformField } from '../../fields/TransformField';
22
+ import { createResetField } from '../../fields/ResetField';
23
+ import { createResponsiveVisibilityField } from '../../fields/ResponsiveVisibilityField';
24
+ // Default padding with standard spacing (replaces hardcoded py-4 px-4)
25
+ const DEFAULT_PADDING = {
26
+ top: 16,
27
+ right: 16,
28
+ bottom: 16,
29
+ left: 16,
30
+ unit: 'px',
31
+ linked: true,
32
+ };
33
+ const defaultProps = {
34
+ image: null,
35
+ alt: '',
36
+ aspectRatio: 'auto',
37
+ link: '',
38
+ openInNewTab: false,
39
+ margin: null,
40
+ border: null,
41
+ dimensions: null,
42
+ alignment: null,
43
+ transform: null,
44
+ animation: null,
45
+ customPadding: DEFAULT_PADDING, // Default 16px padding, visible in editor
46
+ visibility: null,
47
+ };
48
+ export const ImageConfig = {
49
+ label: 'Image',
50
+ fields: {
51
+ _reset: createResetField({ defaultProps }),
52
+ image: createMediaField({ label: 'Image' }),
53
+ alt: {
54
+ type: 'text',
55
+ label: 'Alt Text Override',
56
+ },
57
+ // Responsive visibility control
58
+ visibility: createResponsiveVisibilityField({ label: 'Visibility' }),
59
+ aspectRatio: aspectRatioField,
60
+ link: {
61
+ type: 'text',
62
+ label: 'Link URL',
63
+ },
64
+ openInNewTab: {
65
+ type: 'radio',
66
+ label: 'Open in New Tab',
67
+ options: [
68
+ { label: 'Yes', value: true },
69
+ { label: 'No', value: false },
70
+ ],
71
+ },
72
+ border: createBorderField({ label: 'Border' }),
73
+ dimensions: createDimensionsField({ label: 'Dimensions' }),
74
+ alignment: createAlignmentField({ label: 'Alignment', defaultValue: 'center' }),
75
+ transform: createTransformField({ label: 'Transform' }),
76
+ animation: createAnimationField({ label: 'Animation' }),
77
+ // Spacing (grouped at bottom)
78
+ margin: createMarginField({ label: 'Margin' }),
79
+ customPadding: createPaddingField({ label: 'Padding' }),
80
+ },
81
+ defaultProps,
82
+ render: ({ image, alt, aspectRatio, link, openInNewTab, dimensions, alignment, margin, border, transform, animation, customPadding, visibility }) => {
83
+ // Generate unique ID for CSS targeting
84
+ // eslint-disable-next-line react-hooks/rules-of-hooks
85
+ const uniqueId = useId().replace(/:/g, '');
86
+ const wrapperClass = `puck-image-${uniqueId}`;
87
+ // Visibility media queries
88
+ const visibilityCSS = visibilityValueToCSS(visibility, wrapperClass);
89
+ const dimensionsStyles = dimensionsValueToCSS(dimensions);
90
+ const style = {
91
+ ...dimensionsStyles,
92
+ };
93
+ const marginCSS = marginValueToCSS(margin);
94
+ if (marginCSS) {
95
+ style.margin = marginCSS;
96
+ }
97
+ const paddingCSS = paddingValueToCSS(customPadding);
98
+ if (paddingCSS) {
99
+ style.padding = paddingCSS;
100
+ }
101
+ const borderStyles = borderValueToCSS(border);
102
+ if (borderStyles) {
103
+ Object.assign(style, borderStyles);
104
+ }
105
+ const transformStyles = transformValueToCSS(transform);
106
+ if (transformStyles) {
107
+ Object.assign(style, transformStyles);
108
+ }
109
+ const alignmentValue = alignment ?? 'center';
110
+ const alignmentClasses = cn('flex', alignmentValue === 'left' && 'justify-start', alignmentValue === 'center' && 'justify-center', alignmentValue === 'right' && 'justify-end');
111
+ // Placeholder if no image
112
+ if (!image?.url) {
113
+ return (_jsxs(AnimatedWrapper, { animation: animation, children: [visibilityCSS && _jsx("style", { children: visibilityCSS }), _jsx("div", { className: wrapperClass, style: Object.keys(style).length > 0 ? style : undefined, children: _jsx("div", { className: alignmentClasses, children: _jsx("div", { className: cn('relative overflow-hidden rounded-lg w-full max-w-md bg-muted flex items-center justify-center min-h-[200px]', aspectRatioMap[aspectRatio] || ''), children: _jsx("span", { className: "text-muted-foreground", children: "No image selected" }) }) }) })] }));
114
+ }
115
+ // For auto aspect ratio, use natural image dimensions
116
+ // For fixed aspect ratios, use absolute positioning within aspect-ratio container
117
+ // Note: When using aspect ratios in Flex, set a min-width via Dimensions
118
+ const imageElement = aspectRatio === 'auto' ? (_jsx("div", { className: "relative overflow-hidden rounded-lg w-full", children: _jsx("img", { src: image.url, alt: alt || image.alt || '', className: "w-full h-auto object-cover" }) })) : (_jsx("div", { className: cn('relative overflow-hidden rounded-lg w-full', aspectRatioMap[aspectRatio]), children: _jsx("img", { src: image.url, alt: alt || image.alt || '', className: "absolute inset-0 w-full h-full object-cover" }) }));
119
+ const content = link ? (_jsx("a", { href: link, target: openInNewTab ? '_blank' : undefined, rel: openInNewTab ? 'noopener noreferrer' : undefined, className: "block transition-opacity hover:opacity-90", children: imageElement })) : (imageElement);
120
+ return (_jsxs(AnimatedWrapper, { animation: animation, children: [visibilityCSS && _jsx("style", { children: visibilityCSS }), _jsx("div", { className: wrapperClass, style: Object.keys(style).length > 0 ? style : undefined, children: _jsx("div", { className: alignmentClasses, children: content }) })] }));
121
+ },
122
+ };
123
+ //# sourceMappingURL=Image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/components/media/Image.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Image Component - Server-safe Puck Configuration
3
+ *
4
+ * Standalone image block with optional link wrapper.
5
+ * This version contains only the render function and types - no fields.
6
+ * Safe for use in server components.
7
+ */
8
+ import type { ComponentConfig } from '@measured/puck';
9
+ import { type PaddingValue, type DimensionsValue, type BorderValue, type AnimationValue, type TransformValue, type VisibilityValue } from '../../fields/shared';
10
+ import type { MediaReference } from '../../fields/MediaField';
11
+ import type { Alignment } from '../../fields/AlignmentField';
12
+ export interface ImageProps {
13
+ image: MediaReference | null;
14
+ alt: string;
15
+ aspectRatio: string;
16
+ link: string;
17
+ openInNewTab: boolean;
18
+ margin: PaddingValue | null;
19
+ border: BorderValue | null;
20
+ dimensions: DimensionsValue | null;
21
+ alignment: Alignment | null;
22
+ transform: TransformValue | null;
23
+ animation: AnimationValue | null;
24
+ customPadding: PaddingValue | null;
25
+ visibility: VisibilityValue | null;
26
+ }
27
+ export declare const ImageConfig: ComponentConfig<ImageProps>;
28
+ //# sourceMappingURL=Image.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.server.d.ts","sourceRoot":"","sources":["../../../src/components/media/Image.server.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAkB5D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,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,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;CACnC;AAkBD,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,UAAU,CA0GnD,CAAA"}
@@ -0,0 +1,76 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { aspectRatioMap, cn, marginValueToCSS, paddingValueToCSS, dimensionsValueToCSS, borderValueToCSS, transformValueToCSS, visibilityValueToCSS, } from '../../fields/shared';
3
+ import { AnimatedWrapper } from '../AnimatedWrapper';
4
+ // Default padding with standard spacing (replaces hardcoded py-4 px-4)
5
+ const DEFAULT_PADDING = {
6
+ top: 16,
7
+ right: 16,
8
+ bottom: 16,
9
+ left: 16,
10
+ unit: 'px',
11
+ linked: true,
12
+ };
13
+ // Simple ID generator for server-side rendering
14
+ let idCounter = 0;
15
+ function generateUniqueId() {
16
+ return `i${(++idCounter).toString(36)}${Math.random().toString(36).slice(2, 6)}`;
17
+ }
18
+ const defaultProps = {
19
+ image: null,
20
+ alt: '',
21
+ aspectRatio: 'auto',
22
+ link: '',
23
+ openInNewTab: false,
24
+ margin: null,
25
+ border: null,
26
+ dimensions: null,
27
+ alignment: null,
28
+ transform: null,
29
+ animation: null,
30
+ customPadding: DEFAULT_PADDING, // Default 16px padding
31
+ visibility: null,
32
+ };
33
+ export const ImageConfig = {
34
+ label: 'Image',
35
+ defaultProps,
36
+ render: ({ image, alt, aspectRatio, link, openInNewTab, dimensions, alignment, margin, border, transform, animation, customPadding, visibility }) => {
37
+ // Generate unique ID for CSS targeting (server-safe)
38
+ const uniqueId = generateUniqueId();
39
+ const wrapperClass = `puck-image-${uniqueId}`;
40
+ // Visibility media queries
41
+ const visibilityCSS = visibilityValueToCSS(visibility, wrapperClass);
42
+ const dimensionsStyles = dimensionsValueToCSS(dimensions);
43
+ const style = {
44
+ ...dimensionsStyles,
45
+ };
46
+ const marginCSS = marginValueToCSS(margin);
47
+ if (marginCSS) {
48
+ style.margin = marginCSS;
49
+ }
50
+ const paddingCSS = paddingValueToCSS(customPadding);
51
+ if (paddingCSS) {
52
+ style.padding = paddingCSS;
53
+ }
54
+ const borderStyles = borderValueToCSS(border);
55
+ if (borderStyles) {
56
+ Object.assign(style, borderStyles);
57
+ }
58
+ const transformStyles = transformValueToCSS(transform);
59
+ if (transformStyles) {
60
+ Object.assign(style, transformStyles);
61
+ }
62
+ const alignmentValue = alignment ?? 'center';
63
+ const alignmentClasses = cn('flex', alignmentValue === 'left' && 'justify-start', alignmentValue === 'center' && 'justify-center', alignmentValue === 'right' && 'justify-end');
64
+ // Placeholder if no image
65
+ if (!image?.url) {
66
+ return (_jsxs(AnimatedWrapper, { animation: animation, children: [visibilityCSS && _jsx("style", { children: visibilityCSS }), _jsx("div", { className: wrapperClass, style: Object.keys(style).length > 0 ? style : undefined, children: _jsx("div", { className: alignmentClasses, children: _jsx("div", { className: cn('relative overflow-hidden rounded-lg w-full max-w-md bg-muted flex items-center justify-center min-h-[200px]', aspectRatioMap[aspectRatio] || ''), children: _jsx("span", { className: "text-muted-foreground", children: "No image selected" }) }) }) })] }));
67
+ }
68
+ // For auto aspect ratio, use natural image dimensions
69
+ // For fixed aspect ratios, use absolute positioning within aspect-ratio container
70
+ // Note: When using aspect ratios in Flex, set a min-width via Dimensions
71
+ const imageElement = aspectRatio === 'auto' ? (_jsx("div", { className: "relative overflow-hidden rounded-lg w-full", children: _jsx("img", { src: image.url, alt: alt || image.alt || '', className: "w-full h-auto object-cover" }) })) : (_jsx("div", { className: cn('relative overflow-hidden rounded-lg w-full', aspectRatioMap[aspectRatio]), children: _jsx("img", { src: image.url, alt: alt || image.alt || '', className: "absolute inset-0 w-full h-full object-cover" }) }));
72
+ const content = link ? (_jsx("a", { href: link, target: openInNewTab ? '_blank' : undefined, rel: openInNewTab ? 'noopener noreferrer' : undefined, className: "block transition-opacity hover:opacity-90", children: imageElement })) : (imageElement);
73
+ return (_jsxs(AnimatedWrapper, { animation: animation, children: [visibilityCSS && _jsx("style", { children: visibilityCSS }), _jsx("div", { className: wrapperClass, style: Object.keys(style).length > 0 ? style : undefined, children: _jsx("div", { className: alignmentClasses, children: content }) })] }));
74
+ },
75
+ };
76
+ //# sourceMappingURL=Image.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.server.js","sourceRoot":"","sources":["../../../src/components/media/Image.server.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Media Components
3
+ *
4
+ * Image and media display components.
5
+ */
6
+ export { ImageConfig } from './Image';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/media/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}