@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 +1 @@
1
- {"version":3,"file":"IframeWrapper.d.ts","sourceRoot":"","sources":["../../../src/editor/components/IframeWrapper.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAEzH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAMrD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,yCAAsC,CAAA;AAE1E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,sBAA4C,CAAA;AAE5E;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AAaD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAUD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa,0DAmYxB,CAAA"}
1
+ {"version":3,"file":"IframeWrapper.d.ts","sourceRoot":"","sources":["../../../src/editor/components/IframeWrapper.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAEzH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAM9D;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,yCAAsC,CAAA;AAE1E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,sBAA4C,CAAA;AAE5E;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AAaD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAUD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa,0DAmYxB,CAAA"}
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { memo, useEffect, useMemo, useState, createContext, useContext } from 'react';
4
4
  import { createUsePuck } from '@puckeditor/core';
5
- import { backgroundValueToCSS } from '../../fields/shared';
5
+ import { backgroundValueToCSS } from '../../fields/shared.js';
6
6
  // Create usePuck hook for accessing editor state
7
7
  const usePuck = createUsePuck();
8
8
  /**
@@ -12,8 +12,7 @@ const usePuck = createUsePuck();
12
12
  *
13
13
  * This allows Puck components to reactively respond to preview theme changes
14
14
  * without polling or MutationObserver hacks.
15
- */
16
- export const PuckPreviewThemeContext = createContext(null);
15
+ */ export const PuckPreviewThemeContext = /*#__PURE__*/ createContext(null);
17
16
  /**
18
17
  * Hook to get the current preview theme from IframeWrapper context.
19
18
  *
@@ -32,14 +31,12 @@ export const PuckPreviewThemeContext = createContext(null);
32
31
  * return <div className={isDark ? 'dark-styles' : 'light-styles'}>...</div>
33
32
  * }
34
33
  * ```
35
- */
36
- export const usePuckPreviewTheme = () => useContext(PuckPreviewThemeContext);
34
+ */ export const usePuckPreviewTheme = ()=>useContext(PuckPreviewThemeContext);
37
35
  /**
38
36
  * Default layout config
39
- */
40
- const DEFAULT_LAYOUT_CONFIG = {
37
+ */ const DEFAULT_LAYOUT_CONFIG = {
41
38
  background: '#ffffff',
42
- isDark: false,
39
+ isDark: false
43
40
  };
44
41
  /**
45
42
  * Theme-aware iframe wrapper component
@@ -64,9 +61,8 @@ const DEFAULT_LAYOUT_CONFIG = {
64
61
  * ),
65
62
  * }
66
63
  * ```
67
- */
68
- export const IframeWrapper = memo(function IframeWrapper({ children, document: iframeDoc, layouts, layoutStyles, layoutKey = 'pageLayout', defaultLayout = 'default', editorStylesheets, editorCss, previewDarkModeOverride, }) {
69
- const appState = usePuck((s) => s.appState);
64
+ */ export const IframeWrapper = /*#__PURE__*/ memo(function IframeWrapper({ children, document: iframeDoc, layouts, layoutStyles, layoutKey = 'pageLayout', defaultLayout = 'default', editorStylesheets, editorCss, previewDarkModeOverride }) {
65
+ const appState = usePuck((s)=>s.appState);
70
66
  // Track stylesheet loading state to force re-render when styles are ready
71
67
  const [stylesLoaded, setStylesLoaded] = useState(false);
72
68
  // Check if we're in interactive mode (links should be clickable)
@@ -79,17 +75,17 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
79
75
  const showFooterOverride = rootProps?.showFooter;
80
76
  const pageBackground = rootProps?.pageBackground;
81
77
  // Convert layouts array to config map, or use deprecated layoutStyles
82
- const layoutConfigMap = useMemo(() => {
78
+ const layoutConfigMap = useMemo(()=>{
83
79
  // If layouts prop provided, convert to internal format
84
80
  if (layouts) {
85
81
  const map = {};
86
- for (const layout of layouts) {
82
+ for (const layout of layouts){
87
83
  map[layout.value] = {
88
84
  background: layout.editorBackground ?? '#ffffff',
89
85
  isDark: layout.editorDarkMode ?? false,
90
86
  header: layout.header,
91
87
  footer: layout.footer,
92
- stickyHeaderHeight: layout.stickyHeaderHeight,
88
+ stickyHeaderHeight: layout.stickyHeaderHeight
93
89
  };
94
90
  }
95
91
  return map;
@@ -99,15 +95,19 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
99
95
  return layoutStyles;
100
96
  }
101
97
  // Default fallback
102
- return { default: DEFAULT_LAYOUT_CONFIG };
103
- }, [layouts, layoutStyles]);
98
+ return {
99
+ default: DEFAULT_LAYOUT_CONFIG
100
+ };
101
+ }, [
102
+ layouts,
103
+ layoutStyles
104
+ ]);
104
105
  // Get config for current layout
105
106
  const layoutConfig = layoutConfigMap[layoutValue] || layoutConfigMap[defaultLayout] || DEFAULT_LAYOUT_CONFIG;
106
107
  // Calculate isDark for context provider (same logic as in useEffect)
107
108
  const isDark = previewDarkModeOverride ?? layoutConfig.isDark;
108
- useEffect(() => {
109
- if (!iframeDoc)
110
- return;
109
+ useEffect(()=>{
110
+ if (!iframeDoc) return;
111
111
  const body = iframeDoc.body;
112
112
  const html = iframeDoc.documentElement;
113
113
  // Apply background - page-level override takes precedence
@@ -119,8 +119,7 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
119
119
  body.style.backgroundImage = '';
120
120
  // Apply new styles
121
121
  Object.assign(body.style, bgStyles);
122
- }
123
- else {
122
+ } else {
124
123
  body.style.background = layoutConfig.background;
125
124
  }
126
125
  body.style.backgroundAttachment = 'fixed';
@@ -133,8 +132,7 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
133
132
  html.classList.remove('light');
134
133
  html.setAttribute('data-theme', 'dark');
135
134
  body.style.color = '#ffffff';
136
- }
137
- else {
135
+ } else {
138
136
  html.classList.remove('dark');
139
137
  html.classList.add('light');
140
138
  html.setAttribute('data-theme', 'light');
@@ -145,7 +143,7 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
145
143
  if (editorStylesheets && editorStylesheets.length > 0) {
146
144
  let pendingLoads = 0;
147
145
  let loadedCount = 0;
148
- const checkAllLoaded = () => {
146
+ const checkAllLoaded = ()=>{
149
147
  loadedCount++;
150
148
  if (loadedCount >= pendingLoads) {
151
149
  // All stylesheets loaded - force browser to recalculate styles
@@ -153,17 +151,15 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
153
151
  setStylesLoaded(true);
154
152
  // Force a browser repaint after styles load
155
153
  // Use multiple techniques to ensure CSS is applied to existing elements
156
- requestAnimationFrame(() => {
157
- if (!html || !body)
158
- return;
154
+ requestAnimationFrame(()=>{
155
+ if (!html || !body) return;
159
156
  // Technique 1: Re-apply theme classes (mimics what dark mode toggle does)
160
157
  const isDark = previewDarkModeOverride ?? layoutConfig.isDark;
161
158
  if (isDark) {
162
159
  html.classList.remove('dark');
163
160
  void html.offsetHeight; // Force reflow
164
161
  html.classList.add('dark');
165
- }
166
- else {
162
+ } else {
167
163
  html.classList.remove('light');
168
164
  void html.offsetHeight; // Force reflow
169
165
  html.classList.add('light');
@@ -181,13 +177,12 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
181
177
  const origin = typeof window !== 'undefined' ? window.location.origin : '';
182
178
  // Track which stylesheets have been counted to avoid double-counting
183
179
  const loadedIndexes = new Set();
184
- const markLoaded = (index) => {
185
- if (loadedIndexes.has(index))
186
- return;
180
+ const markLoaded = (index)=>{
181
+ if (loadedIndexes.has(index)) return;
187
182
  loadedIndexes.add(index);
188
183
  checkAllLoaded();
189
184
  };
190
- editorStylesheets.forEach((href, index) => {
185
+ editorStylesheets.forEach((href, index)=>{
191
186
  const linkId = `puck-editor-stylesheet-${index}`;
192
187
  const existingLink = iframeDoc.getElementById(linkId);
193
188
  if (!existingLink) {
@@ -198,30 +193,28 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
198
193
  // Resolve relative URLs to absolute URLs for iframe compatibility
199
194
  link.href = href.startsWith('/') ? `${origin}${href}` : href;
200
195
  // Track when stylesheet loads
201
- link.onload = () => markLoaded(index);
202
- link.onerror = () => markLoaded(index); // Count errors too to avoid hanging
196
+ link.onload = ()=>markLoaded(index);
197
+ link.onerror = ()=>markLoaded(index); // Count errors too to avoid hanging
203
198
  iframeDoc.head.appendChild(link);
204
199
  // Fallback: if onload doesn't fire within 2 seconds, force trigger
205
200
  // This handles edge cases with cached resources or browser quirks
206
- setTimeout(() => {
201
+ setTimeout(()=>{
207
202
  if (!loadedIndexes.has(index)) {
208
203
  markLoaded(index);
209
204
  }
210
205
  }, 2000);
211
- }
212
- else if (!stylesLoaded) {
206
+ } else if (!stylesLoaded) {
213
207
  // Link exists - assume it's already loaded
214
208
  pendingLoads++;
215
209
  // Immediately mark as loaded since it's already in the DOM
216
- requestAnimationFrame(() => markLoaded(index));
210
+ requestAnimationFrame(()=>markLoaded(index));
217
211
  }
218
212
  });
219
213
  // If no new stylesheets to load, mark as loaded
220
214
  if (pendingLoads === 0 && !stylesLoaded) {
221
215
  setStylesLoaded(true);
222
216
  }
223
- }
224
- else if (!stylesLoaded) {
217
+ } else if (!stylesLoaded) {
225
218
  // No stylesheets to load
226
219
  setStylesLoaded(true);
227
220
  }
@@ -352,7 +345,15 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
352
345
  `;
353
346
  iframeDoc.head.appendChild(style);
354
347
  }
355
- }, [iframeDoc, layoutConfig, pageBackground, editorStylesheets, editorCss, stylesLoaded, previewDarkModeOverride]);
348
+ }, [
349
+ iframeDoc,
350
+ layoutConfig,
351
+ pageBackground,
352
+ editorStylesheets,
353
+ editorCss,
354
+ stylesLoaded,
355
+ previewDarkModeOverride
356
+ ]);
356
357
  // Get header/footer components from layout config
357
358
  const LayoutHeader = layoutConfig.header;
358
359
  const LayoutFooter = layoutConfig.footer;
@@ -360,16 +361,8 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
360
361
  // 'default' or undefined = use layout setting
361
362
  // 'show' = always show (even if layout doesn't have one - use layout's component)
362
363
  // 'hide' = always hide
363
- const shouldShowHeader = showHeaderOverride === 'hide'
364
- ? false
365
- : showHeaderOverride === 'show'
366
- ? !!LayoutHeader
367
- : !!LayoutHeader;
368
- const shouldShowFooter = showFooterOverride === 'hide'
369
- ? false
370
- : showFooterOverride === 'show'
371
- ? !!LayoutFooter
372
- : !!LayoutFooter;
364
+ const shouldShowHeader = showHeaderOverride === 'hide' ? false : showHeaderOverride === 'show' ? !!LayoutHeader : !!LayoutHeader;
365
+ const shouldShowFooter = showFooterOverride === 'hide' ? false : showFooterOverride === 'show' ? !!LayoutFooter : !!LayoutFooter;
373
366
  // If we have header or footer to show, wrap in flex container to ensure proper layout
374
367
  if (shouldShowHeader || shouldShowFooter) {
375
368
  // Calculate content padding for sticky headers (only if header is actually shown)
@@ -377,17 +370,48 @@ export const IframeWrapper = memo(function IframeWrapper({ children, document: i
377
370
  flex: 1,
378
371
  position: 'relative',
379
372
  // Add padding-top for sticky headers so content doesn't render behind them
380
- ...(shouldShowHeader && layoutConfig.stickyHeaderHeight && { paddingTop: layoutConfig.stickyHeaderHeight }),
373
+ ...shouldShowHeader && layoutConfig.stickyHeaderHeight && {
374
+ paddingTop: layoutConfig.stickyHeaderHeight
375
+ }
381
376
  };
382
377
  // Disable pointer events on header/footer in edit mode to prevent accidental clicks
383
- const headerFooterStyle = isInteractive
384
- ? {}
385
- : { pointerEvents: 'none' };
378
+ const headerFooterStyle = isInteractive ? {} : {
379
+ pointerEvents: 'none'
380
+ };
386
381
  // Use key to force re-render when styles finish loading
387
382
  // This ensures Tailwind classes are applied after the stylesheet loads
388
- return (_jsx(PuckPreviewThemeContext.Provider, { value: isDark, children: _jsxs("div", { style: { display: 'flex', flexDirection: 'column', minHeight: '100vh' }, children: [shouldShowHeader && LayoutHeader && (_jsx("div", { style: headerFooterStyle, children: _jsx(LayoutHeader, {}) })), _jsx("div", { style: contentStyle, children: children }), shouldShowFooter && LayoutFooter && (_jsx("div", { style: headerFooterStyle, children: _jsx(LayoutFooter, {}) }))] }, stylesLoaded ? 'styles-loaded' : 'styles-loading') }));
383
+ return /*#__PURE__*/ _jsx(PuckPreviewThemeContext.Provider, {
384
+ value: isDark,
385
+ children: /*#__PURE__*/ _jsxs("div", {
386
+ style: {
387
+ display: 'flex',
388
+ flexDirection: 'column',
389
+ minHeight: '100vh'
390
+ },
391
+ children: [
392
+ shouldShowHeader && LayoutHeader && /*#__PURE__*/ _jsx("div", {
393
+ style: headerFooterStyle,
394
+ children: /*#__PURE__*/ _jsx(LayoutHeader, {})
395
+ }),
396
+ /*#__PURE__*/ _jsx("div", {
397
+ style: contentStyle,
398
+ children: children
399
+ }),
400
+ shouldShowFooter && LayoutFooter && /*#__PURE__*/ _jsx("div", {
401
+ style: headerFooterStyle,
402
+ children: /*#__PURE__*/ _jsx(LayoutFooter, {})
403
+ })
404
+ ]
405
+ }, stylesLoaded ? 'styles-loaded' : 'styles-loading')
406
+ });
389
407
  }
390
408
  // Use key to force re-render when styles finish loading
391
- return (_jsx(PuckPreviewThemeContext.Provider, { value: isDark, children: _jsx("div", { children: children }, stylesLoaded ? 'styles-loaded' : 'styles-loading') }));
409
+ return /*#__PURE__*/ _jsx(PuckPreviewThemeContext.Provider, {
410
+ value: isDark,
411
+ children: /*#__PURE__*/ _jsx("div", {
412
+ children: children
413
+ }, stylesLoaded ? 'styles-loaded' : 'styles-loading')
414
+ });
392
415
  });
416
+
393
417
  //# sourceMappingURL=IframeWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IframeWrapper.js","sourceRoot":"","sources":["../../../src/editor/components/IframeWrapper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAA;AACzH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,oBAAoB,EAAwB,MAAM,qBAAqB,CAAA;AAEhF,iDAAiD;AACjD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;AAE/B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAiB,IAAI,CAAC,CAAA;AAE1E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAA;AAoF5E;;GAEG;AACH,MAAM,qBAAqB,GAAyB;IAClD,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,KAAK;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,EACvD,QAAQ,EACR,QAAQ,EAAE,SAAS,EACnB,OAAO,EACP,YAAY,EACZ,SAAS,GAAG,YAAY,EACxB,aAAa,GAAG,SAAS,EACzB,iBAAiB,EACjB,SAAS,EACT,uBAAuB,GACJ;IACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAE3C,0EAA0E;IAC1E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvD,iEAAiE;IACjE,MAAM,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC,WAAW,KAAK,aAAa,CAAA;IAE/D,6DAA6D;IAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAA4C,CAAA;IAClF,MAAM,WAAW,GAAI,SAAS,EAAE,CAAC,SAAS,CAAY,IAAI,aAAa,CAAA;IAEvE,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,SAAS,EAAE,UAAqD,CAAA;IAC3F,MAAM,kBAAkB,GAAG,SAAS,EAAE,UAAqD,CAAA;IAC3F,MAAM,cAAc,GAAG,SAAS,EAAE,cAAoD,CAAA;IAEtF,sEAAsE;IACtE,MAAM,eAAe,GAAG,OAAO,CAAuC,GAAG,EAAE;QACzE,uDAAuD;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAyC,EAAE,CAAA;YACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;oBAClB,UAAU,EAAE,MAAM,CAAC,gBAAgB,IAAI,SAAS;oBAChD,MAAM,EAAE,MAAM,CAAC,cAAc,IAAI,KAAK;oBACtC,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;iBAC9C,CAAA;YACH,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,mDAAmD;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAA;QACrB,CAAC;QAED,mBAAmB;QACnB,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAC3C,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAE3B,gCAAgC;IAChC,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAA;IAE5G,qEAAqE;IACrE,MAAM,MAAM,GAAG,uBAAuB,IAAI,YAAY,CAAC,MAAM,CAAA;IAE7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,eAAe,CAAA;QAEtC,0DAA0D;QAC1D,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;YACrD,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAA;YAC1B,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAA;YAC/B,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAA;YAC/B,mBAAmB;YACnB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAA;QACjD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,OAAO,CAAA;QACzC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAA;QAE9B,iEAAiE;QACjE,+FAA+F;QAC/F,oEAAoE;QACpE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC9B,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;YACvC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC3B,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YACxC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA,CAAC,WAAW;QAC1C,CAAC;QAED,kEAAkE;QAClE,+DAA+D;QAC/D,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,YAAY,GAAG,CAAC,CAAA;YACpB,IAAI,WAAW,GAAG,CAAC,CAAA;YAEnB,MAAM,cAAc,GAAG,GAAG,EAAE;gBAC1B,WAAW,EAAE,CAAA;gBACb,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;oBAChC,+DAA+D;oBAC/D,2EAA2E;oBAC3E,eAAe,CAAC,IAAI,CAAC,CAAA;oBAErB,4CAA4C;oBAC5C,wEAAwE;oBACxE,qBAAqB,CAAC,GAAG,EAAE;wBACzB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;4BAAE,OAAM;wBAE1B,0EAA0E;wBAC1E,MAAM,MAAM,GAAG,uBAAuB,IAAI,YAAY,CAAC,MAAM,CAAA;wBAC7D,IAAI,MAAM,EAAE,CAAC;4BACX,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;4BAC7B,KAAK,IAAI,CAAC,YAAY,CAAA,CAAC,eAAe;4BACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;wBAC5B,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;4BAC9B,KAAK,IAAI,CAAC,YAAY,CAAA,CAAC,eAAe;4BACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;wBAC7B,CAAC;wBAED,kDAAkD;wBAClD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAA;wBAChC,KAAK,IAAI,CAAC,YAAY,CAAA;wBACtB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAA;oBAC5B,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAA;YAED,yCAAyC;YACzC,qEAAqE;YACrE,oEAAoE;YACpE,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;YAE1E,qEAAqE;YACrE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;YAEvC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;gBACnC,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,OAAM;gBACpC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBACxB,cAAc,EAAE,CAAA;YAClB,CAAC,CAAA;YAED,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACxC,MAAM,MAAM,GAAG,0BAA0B,KAAK,EAAE,CAAA;gBAChD,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAA2B,CAAA;gBAE/E,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,YAAY,EAAE,CAAA;oBACd,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;oBAC5C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAA;oBAChB,IAAI,CAAC,GAAG,GAAG,YAAY,CAAA;oBACvB,kEAAkE;oBAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;oBAC5D,8BAA8B;oBAC9B,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;oBACrC,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA,CAAC,oCAAoC;oBAC3E,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;oBAEhC,mEAAmE;oBACnE,kEAAkE;oBAClE,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC9B,UAAU,CAAC,KAAK,CAAC,CAAA;wBACnB,CAAC;oBACH,CAAC,EAAE,IAAI,CAAC,CAAA;gBACV,CAAC;qBAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzB,2CAA2C;oBAC3C,YAAY,EAAE,CAAA;oBACd,2DAA2D;oBAC3D,qBAAqB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;gBAChD,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,gDAAgD;YAChD,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxC,eAAe,CAAC,IAAI,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACzB,yBAAyB;YACzB,eAAe,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QAED,qDAAqD;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,aAAa,GAAG,wBAAwB,CAAA;YAC9C,IAAI,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAA4B,CAAA;YAC9E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBACxC,KAAK,CAAC,EAAE,GAAG,aAAa,CAAA;gBACxB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC;YACD,KAAK,CAAC,WAAW,GAAG,SAAS,CAAA;QAC/B,CAAC;QAED,kFAAkF;QAClF,MAAM,kBAAkB,GAAG,6BAA6B,CAAA;QACxD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC9C,KAAK,CAAC,EAAE,GAAG,kBAAkB,CAAA;YAC7B,KAAK,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4GnB,CAAA;YACD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC,CAAA;IAElH,kDAAkD;IAClD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAA;IACxC,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAA;IAExC,mEAAmE;IACnE,8CAA8C;IAC9C,kFAAkF;IAClF,uBAAuB;IACvB,MAAM,gBAAgB,GACpB,kBAAkB,KAAK,MAAM;QAC3B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,kBAAkB,KAAK,MAAM;YAC7B,CAAC,CAAC,CAAC,CAAC,YAAY;YAChB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;IAEtB,MAAM,gBAAgB,GACpB,kBAAkB,KAAK,MAAM;QAC3B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,kBAAkB,KAAK,MAAM;YAC7B,CAAC,CAAC,CAAC,CAAC,YAAY;YAChB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;IAEtB,sFAAsF;IACtF,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;QACzC,kFAAkF;QAClF,MAAM,YAAY,GAAwB;YACxC,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,2EAA2E;YAC3E,GAAG,CAAC,gBAAgB,IAAI,YAAY,CAAC,kBAAkB,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,kBAAkB,EAAE,CAAC;SAC5G,CAAA;QAED,oFAAoF;QACpF,MAAM,iBAAiB,GAAwB,aAAa;YAC1D,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;QAE7B,wDAAwD;QACxD,uEAAuE;QACvE,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAC7C,eAEE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,aAEtE,gBAAgB,IAAI,YAAY,IAAI,CACnC,cAAK,KAAK,EAAE,iBAAiB,YAC3B,KAAC,YAAY,KAAG,GACZ,CACP,EACD,cAAK,KAAK,EAAE,YAAY,YAAG,QAAQ,GAAO,EACzC,gBAAgB,IAAI,YAAY,IAAI,CACnC,cAAK,KAAK,EAAE,iBAAiB,YAC3B,KAAC,YAAY,KAAG,GACZ,CACP,KAbI,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAclD,GAC2B,CACpC,CAAA;IACH,CAAC;IAED,wDAAwD;IACxD,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAC7C,wBACG,QAAQ,IADD,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAErD,GAC2B,CACpC,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"sources":["../../../src/editor/components/IframeWrapper.tsx"],"sourcesContent":["'use client'\n\nimport { memo, useEffect, useMemo, useState, createContext, useContext, type ReactNode, type ComponentType } from 'react'\nimport { createUsePuck } from '@puckeditor/core'\nimport type { LayoutDefinition } from '../../layouts/index.js'\nimport { backgroundValueToCSS, type BackgroundValue } from '../../fields/shared.js'\n\n// Create usePuck hook for accessing editor state\nconst usePuck = createUsePuck()\n\n/**\n * Context for preview dark mode state.\n * - `null` = not inside the editor (use DOM-based theme detection)\n * - `boolean` = inside the editor, indicates current dark mode state\n *\n * This allows Puck components to reactively respond to preview theme changes\n * without polling or MutationObserver hacks.\n */\nexport const PuckPreviewThemeContext = createContext<boolean | null>(null)\n\n/**\n * Hook to get the current preview theme from IframeWrapper context.\n *\n * @returns `null` if not inside the editor, or a `boolean` indicating dark mode state\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const previewTheme = usePuckPreviewTheme()\n *\n * // If in editor, use context; otherwise fall back to DOM\n * const isDark = previewTheme !== null\n * ? previewTheme\n * : document.documentElement.getAttribute('data-theme') === 'dark'\n *\n * return <div className={isDark ? 'dark-styles' : 'light-styles'}>...</div>\n * }\n * ```\n */\nexport const usePuckPreviewTheme = () => useContext(PuckPreviewThemeContext)\n\n/**\n * Layout style configuration for theme-aware preview\n * @deprecated Use LayoutDefinition with editorBackground and editorDarkMode instead\n */\nexport interface LayoutStyle {\n /**\n * CSS background value (color, gradient, etc.)\n */\n background: string\n /**\n * Whether this layout uses dark mode styling\n */\n isDark: boolean\n /**\n * Header component to render above the page content in the editor preview\n */\n header?: ComponentType\n /**\n * Footer component to render below the page content in the editor preview\n */\n footer?: ComponentType\n}\n\n/**\n * Internal layout config used by the iframe wrapper\n */\ninterface InternalLayoutConfig {\n background: string\n isDark: boolean\n header?: ComponentType\n footer?: ComponentType\n stickyHeaderHeight?: number\n}\n\nexport interface IframeWrapperProps {\n children: ReactNode\n /**\n * The iframe document to apply styles to\n */\n document?: Document\n /**\n * Layout definitions - the primary way to configure layouts.\n * Reads header, footer, editorBackground, and editorDarkMode from each layout.\n */\n layouts?: LayoutDefinition[]\n /**\n * Layout style configurations keyed by layout value\n * @deprecated Use `layouts` prop instead\n */\n layoutStyles?: Record<string, LayoutStyle>\n /**\n * Key in root.props to read layout value from\n * @default 'pageLayout'\n */\n layoutKey?: string\n /**\n * Default layout to use if none specified\n * @default 'default'\n */\n defaultLayout?: string\n /**\n * Stylesheet URLs to inject into the iframe.\n * These are merged from PuckConfigProvider and layout-specific settings.\n * Use this to provide frontend CSS (Tailwind, CSS variables, etc.) that\n * header/footer components need for proper styling.\n */\n editorStylesheets?: string[]\n /**\n * Raw CSS to inject into the iframe.\n * Merged from PuckConfigProvider and layout-specific settings.\n * Useful for CSS variables or style overrides.\n */\n editorCss?: string\n /**\n * Override the layout's dark mode setting for the preview.\n * When true, forces dark mode in the preview iframe.\n * When false, forces light mode in the preview iframe.\n * When undefined, uses the layout's editorDarkMode setting.\n */\n previewDarkModeOverride?: boolean\n}\n\n/**\n * Default layout config\n */\nconst DEFAULT_LAYOUT_CONFIG: InternalLayoutConfig = {\n background: '#ffffff',\n isDark: false,\n}\n\n/**\n * Theme-aware iframe wrapper component\n *\n * Uses usePuck to read the pageLayout from root.props and applies\n * appropriate background and theme class to the preview iframe.\n *\n * @example\n * ```tsx\n * // Using layouts (recommended)\n * const overrides = {\n * iframe: ({ children, document }) => (\n * <IframeWrapper\n * document={document}\n * layouts={[\n * { value: 'default', label: 'Default', header: Header, footer: Footer },\n * { value: 'landing', label: 'Landing', editorBackground: '#f8fafc' },\n * ]}\n * >\n * {children}\n * </IframeWrapper>\n * ),\n * }\n * ```\n */\nexport const IframeWrapper = memo(function IframeWrapper({\n children,\n document: iframeDoc,\n layouts,\n layoutStyles,\n layoutKey = 'pageLayout',\n defaultLayout = 'default',\n editorStylesheets,\n editorCss,\n previewDarkModeOverride,\n}: IframeWrapperProps) {\n const appState = usePuck((s) => s.appState)\n\n // Track stylesheet loading state to force re-render when styles are ready\n const [stylesLoaded, setStylesLoaded] = useState(false)\n\n // Check if we're in interactive mode (links should be clickable)\n const isInteractive = appState.ui.previewMode === 'interactive'\n\n // Read layout value and page-level overrides from root props\n const rootProps = appState.data.root?.props as Record<string, unknown> | undefined\n const layoutValue = (rootProps?.[layoutKey] as string) || defaultLayout\n\n // Page-level overrides\n const showHeaderOverride = rootProps?.showHeader as 'default' | 'show' | 'hide' | undefined\n const showFooterOverride = rootProps?.showFooter as 'default' | 'show' | 'hide' | undefined\n const pageBackground = rootProps?.pageBackground as BackgroundValue | null | undefined\n\n // Convert layouts array to config map, or use deprecated layoutStyles\n const layoutConfigMap = useMemo<Record<string, InternalLayoutConfig>>(() => {\n // If layouts prop provided, convert to internal format\n if (layouts) {\n const map: Record<string, InternalLayoutConfig> = {}\n for (const layout of layouts) {\n map[layout.value] = {\n background: layout.editorBackground ?? '#ffffff',\n isDark: layout.editorDarkMode ?? false,\n header: layout.header,\n footer: layout.footer,\n stickyHeaderHeight: layout.stickyHeaderHeight,\n }\n }\n return map\n }\n\n // Fall back to deprecated layoutStyles if provided\n if (layoutStyles) {\n return layoutStyles\n }\n\n // Default fallback\n return { default: DEFAULT_LAYOUT_CONFIG }\n }, [layouts, layoutStyles])\n\n // Get config for current layout\n const layoutConfig = layoutConfigMap[layoutValue] || layoutConfigMap[defaultLayout] || DEFAULT_LAYOUT_CONFIG\n\n // Calculate isDark for context provider (same logic as in useEffect)\n const isDark = previewDarkModeOverride ?? layoutConfig.isDark\n\n useEffect(() => {\n if (!iframeDoc) return\n\n const body = iframeDoc.body\n const html = iframeDoc.documentElement\n\n // Apply background - page-level override takes precedence\n if (pageBackground) {\n const bgStyles = backgroundValueToCSS(pageBackground)\n // Clear previous background styles\n body.style.background = ''\n body.style.backgroundColor = ''\n body.style.backgroundImage = ''\n // Apply new styles\n Object.assign(body.style, bgStyles)\n } else {\n body.style.background = layoutConfig.background\n }\n body.style.backgroundAttachment = 'fixed'\n body.style.minHeight = '100vh'\n\n // Apply theme class and data-theme attribute for dark/light mode\n // Supports both patterns: CSS classes (.dark/.light) and data attributes ([data-theme='dark'])\n // previewDarkModeOverride takes precedence over layoutConfig.isDark\n if (isDark) {\n html.classList.add('dark')\n html.classList.remove('light')\n html.setAttribute('data-theme', 'dark')\n body.style.color = '#ffffff'\n } else {\n html.classList.remove('dark')\n html.classList.add('light')\n html.setAttribute('data-theme', 'light')\n body.style.color = '#1f2937' // gray-800\n }\n\n // Inject external stylesheets (Tailwind CSS, CSS variables, etc.)\n // These provide the styles needed for header/footer components\n if (editorStylesheets && editorStylesheets.length > 0) {\n let pendingLoads = 0\n let loadedCount = 0\n\n const checkAllLoaded = () => {\n loadedCount++\n if (loadedCount >= pendingLoads) {\n // All stylesheets loaded - force browser to recalculate styles\n // This is necessary because the DOM was already rendered before CSS loaded\n setStylesLoaded(true)\n\n // Force a browser repaint after styles load\n // Use multiple techniques to ensure CSS is applied to existing elements\n requestAnimationFrame(() => {\n if (!html || !body) return\n\n // Technique 1: Re-apply theme classes (mimics what dark mode toggle does)\n const isDark = previewDarkModeOverride ?? layoutConfig.isDark\n if (isDark) {\n html.classList.remove('dark')\n void html.offsetHeight // Force reflow\n html.classList.add('dark')\n } else {\n html.classList.remove('light')\n void html.offsetHeight // Force reflow\n html.classList.add('light')\n }\n\n // Technique 2: Toggle visibility to force repaint\n body.style.visibility = 'hidden'\n void body.offsetHeight\n body.style.visibility = ''\n })\n }\n }\n\n // Get origin for resolving relative URLs\n // Puck's iframe may use srcdoc which doesn't have a proper base URL,\n // so relative paths like '/api/puck/styles' won't resolve correctly\n const origin = typeof window !== 'undefined' ? window.location.origin : ''\n\n // Track which stylesheets have been counted to avoid double-counting\n const loadedIndexes = new Set<number>()\n\n const markLoaded = (index: number) => {\n if (loadedIndexes.has(index)) return\n loadedIndexes.add(index)\n checkAllLoaded()\n }\n\n editorStylesheets.forEach((href, index) => {\n const linkId = `puck-editor-stylesheet-${index}`\n const existingLink = iframeDoc.getElementById(linkId) as HTMLLinkElement | null\n\n if (!existingLink) {\n pendingLoads++\n const link = iframeDoc.createElement('link')\n link.id = linkId\n link.rel = 'stylesheet'\n // Resolve relative URLs to absolute URLs for iframe compatibility\n link.href = href.startsWith('/') ? `${origin}${href}` : href\n // Track when stylesheet loads\n link.onload = () => markLoaded(index)\n link.onerror = () => markLoaded(index) // Count errors too to avoid hanging\n iframeDoc.head.appendChild(link)\n\n // Fallback: if onload doesn't fire within 2 seconds, force trigger\n // This handles edge cases with cached resources or browser quirks\n setTimeout(() => {\n if (!loadedIndexes.has(index)) {\n markLoaded(index)\n }\n }, 2000)\n } else if (!stylesLoaded) {\n // Link exists - assume it's already loaded\n pendingLoads++\n // Immediately mark as loaded since it's already in the DOM\n requestAnimationFrame(() => markLoaded(index))\n }\n })\n\n // If no new stylesheets to load, mark as loaded\n if (pendingLoads === 0 && !stylesLoaded) {\n setStylesLoaded(true)\n }\n } else if (!stylesLoaded) {\n // No stylesheets to load\n setStylesLoaded(true)\n }\n\n // Inject custom CSS (CSS variables, overrides, etc.)\n if (editorCss) {\n const CUSTOM_CSS_ID = 'puck-editor-custom-css'\n let style = iframeDoc.getElementById(CUSTOM_CSS_ID) as HTMLStyleElement | null\n if (!style) {\n style = iframeDoc.createElement('style')\n style.id = CUSTOM_CSS_ID\n iframeDoc.head.appendChild(style)\n }\n style.textContent = editorCss\n }\n\n // Inject richtext-output styles into the iframe for proper heading/list rendering\n const RICHTEXT_STYLES_ID = 'puck-richtext-output-styles'\n if (!iframeDoc.getElementById(RICHTEXT_STYLES_ID)) {\n const style = iframeDoc.createElement('style')\n style.id = RICHTEXT_STYLES_ID\n style.textContent = `\n /* Rich Text Output Styles for Puck Preview */\n .richtext-output {\n font-size: 1.125rem;\n line-height: 1.75;\n color: inherit;\n }\n .richtext-output h1 {\n margin-top: 2rem;\n margin-bottom: 1rem;\n font-weight: 700;\n font-size: 2.25rem;\n line-height: 1.2;\n }\n .richtext-output h1:first-child { margin-top: 0; }\n .richtext-output h2 {\n margin-top: 2rem;\n margin-bottom: 1rem;\n font-weight: 700;\n font-size: 1.875rem;\n line-height: 1.25;\n }\n .richtext-output h2:first-child { margin-top: 0; }\n .richtext-output h3 {\n margin-top: 2rem;\n margin-bottom: 1rem;\n font-weight: 700;\n font-size: 1.5rem;\n line-height: 1.3;\n }\n .richtext-output h3:first-child { margin-top: 0; }\n .richtext-output h4 {\n margin-top: 2rem;\n margin-bottom: 1rem;\n font-weight: 700;\n font-size: 1.25rem;\n line-height: 1.35;\n }\n .richtext-output h4:first-child { margin-top: 0; }\n .richtext-output p {\n margin-bottom: 1.25rem;\n }\n .richtext-output p:last-child { margin-bottom: 0; }\n .richtext-output ul {\n margin-bottom: 1.25rem;\n padding-left: 2rem;\n list-style-type: disc !important;\n }\n .richtext-output ol {\n margin-bottom: 1.25rem;\n padding-left: 2rem;\n list-style-type: decimal !important;\n }\n .richtext-output li {\n margin-bottom: 0.5rem;\n display: list-item !important;\n }\n .richtext-output li::marker {\n color: currentColor;\n }\n .richtext-output ul ul,\n .richtext-output ol ul {\n list-style-type: circle !important;\n margin-top: 0.5rem;\n margin-bottom: 0;\n }\n .richtext-output ul ul ul,\n .richtext-output ol ul ul {\n list-style-type: square !important;\n }\n .richtext-output ol ol,\n .richtext-output ul ol {\n list-style-type: lower-alpha !important;\n margin-top: 0.5rem;\n margin-bottom: 0;\n }\n .richtext-output blockquote {\n margin: 1.5rem 0;\n padding-left: 1.5rem;\n border-left: 4px solid #e5e7eb;\n font-style: italic;\n }\n .richtext-output a {\n color: #2563eb;\n text-decoration: underline;\n }\n .richtext-output a:hover { opacity: 0.8; }\n .richtext-output code {\n background-color: #f3f4f6;\n padding: 0.125rem 0.25rem;\n border-radius: 0.25rem;\n font-size: 0.875rem;\n }\n .richtext-output mark {\n background-color: #fef08a;\n padding: 0.125rem 0.25rem;\n border-radius: 0.125rem;\n }\n .richtext-output s,\n .richtext-output strike {\n text-decoration: line-through;\n }\n @media (max-width: 768px) {\n .richtext-output { font-size: 1rem; }\n .richtext-output h1 { font-size: 1.875rem; }\n .richtext-output h2 { font-size: 1.5rem; }\n .richtext-output h3 { font-size: 1.25rem; }\n }\n `\n iframeDoc.head.appendChild(style)\n }\n }, [iframeDoc, layoutConfig, pageBackground, editorStylesheets, editorCss, stylesLoaded, previewDarkModeOverride])\n\n // Get header/footer components from layout config\n const LayoutHeader = layoutConfig.header\n const LayoutFooter = layoutConfig.footer\n\n // Determine header/footer visibility based on page-level overrides\n // 'default' or undefined = use layout setting\n // 'show' = always show (even if layout doesn't have one - use layout's component)\n // 'hide' = always hide\n const shouldShowHeader =\n showHeaderOverride === 'hide'\n ? false\n : showHeaderOverride === 'show'\n ? !!LayoutHeader\n : !!LayoutHeader\n\n const shouldShowFooter =\n showFooterOverride === 'hide'\n ? false\n : showFooterOverride === 'show'\n ? !!LayoutFooter\n : !!LayoutFooter\n\n // If we have header or footer to show, wrap in flex container to ensure proper layout\n if (shouldShowHeader || shouldShowFooter) {\n // Calculate content padding for sticky headers (only if header is actually shown)\n const contentStyle: React.CSSProperties = {\n flex: 1,\n position: 'relative',\n // Add padding-top for sticky headers so content doesn't render behind them\n ...(shouldShowHeader && layoutConfig.stickyHeaderHeight && { paddingTop: layoutConfig.stickyHeaderHeight }),\n }\n\n // Disable pointer events on header/footer in edit mode to prevent accidental clicks\n const headerFooterStyle: React.CSSProperties = isInteractive\n ? {}\n : { pointerEvents: 'none' }\n\n // Use key to force re-render when styles finish loading\n // This ensures Tailwind classes are applied after the stylesheet loads\n return (\n <PuckPreviewThemeContext.Provider value={isDark}>\n <div\n key={stylesLoaded ? 'styles-loaded' : 'styles-loading'}\n style={{ display: 'flex', flexDirection: 'column', minHeight: '100vh' }}\n >\n {shouldShowHeader && LayoutHeader && (\n <div style={headerFooterStyle}>\n <LayoutHeader />\n </div>\n )}\n <div style={contentStyle}>{children}</div>\n {shouldShowFooter && LayoutFooter && (\n <div style={headerFooterStyle}>\n <LayoutFooter />\n </div>\n )}\n </div>\n </PuckPreviewThemeContext.Provider>\n )\n }\n\n // Use key to force re-render when styles finish loading\n return (\n <PuckPreviewThemeContext.Provider value={isDark}>\n <div key={stylesLoaded ? 'styles-loaded' : 'styles-loading'}>\n {children}\n </div>\n </PuckPreviewThemeContext.Provider>\n )\n})\n"],"names":["memo","useEffect","useMemo","useState","createContext","useContext","createUsePuck","backgroundValueToCSS","usePuck","PuckPreviewThemeContext","usePuckPreviewTheme","DEFAULT_LAYOUT_CONFIG","background","isDark","IframeWrapper","children","document","iframeDoc","layouts","layoutStyles","layoutKey","defaultLayout","editorStylesheets","editorCss","previewDarkModeOverride","appState","s","stylesLoaded","setStylesLoaded","isInteractive","ui","previewMode","rootProps","data","root","props","layoutValue","showHeaderOverride","showHeader","showFooterOverride","showFooter","pageBackground","layoutConfigMap","map","layout","value","editorBackground","editorDarkMode","header","footer","stickyHeaderHeight","default","layoutConfig","body","html","documentElement","bgStyles","style","backgroundColor","backgroundImage","Object","assign","backgroundAttachment","minHeight","classList","add","remove","setAttribute","color","length","pendingLoads","loadedCount","checkAllLoaded","requestAnimationFrame","offsetHeight","visibility","origin","window","location","loadedIndexes","Set","markLoaded","index","has","forEach","href","linkId","existingLink","getElementById","link","createElement","id","rel","startsWith","onload","onerror","head","appendChild","setTimeout","CUSTOM_CSS_ID","textContent","RICHTEXT_STYLES_ID","LayoutHeader","LayoutFooter","shouldShowHeader","shouldShowFooter","contentStyle","flex","position","paddingTop","headerFooterStyle","pointerEvents","Provider","div","display","flexDirection"],"mappings":"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"}
@@ -10,5 +10,5 @@ export interface LoadingStateProps {
10
10
  *
11
11
  * Used as the fallback for dynamic import with ssr: false
12
12
  */
13
- export declare function LoadingState({ message }: LoadingStateProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function LoadingState({ message }: LoadingStateProps): import("react").JSX.Element;
14
14
  //# sourceMappingURL=LoadingState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingState.d.ts","sourceRoot":"","sources":["../../../src/editor/components/LoadingState.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAA6B,EAAE,EAAE,iBAAiB,2CAShF"}
1
+ {"version":3,"file":"LoadingState.d.ts","sourceRoot":"","sources":["../../../src/editor/components/LoadingState.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAA6B,EAAE,EAAE,iBAAiB,+BAShF"}
@@ -5,8 +5,22 @@ import { Loader2 } from 'lucide-react';
5
5
  * Loading indicator shown while the Puck editor is being loaded
6
6
  *
7
7
  * Used as the fallback for dynamic import with ssr: false
8
- */
9
- export function LoadingState({ message = 'Loading editor...' }) {
10
- return (_jsx("div", { className: "h-screen flex items-center justify-center bg-gray-50", children: _jsxs("div", { className: "text-center", children: [_jsx(Loader2, { className: "h-8 w-8 animate-spin text-gray-600 mx-auto mb-4" }), _jsx("p", { className: "text-gray-600", children: message })] }) }));
8
+ */ export function LoadingState({ message = 'Loading editor...' }) {
9
+ return /*#__PURE__*/ _jsx("div", {
10
+ className: "h-screen flex items-center justify-center bg-gray-50",
11
+ children: /*#__PURE__*/ _jsxs("div", {
12
+ className: "text-center",
13
+ children: [
14
+ /*#__PURE__*/ _jsx(Loader2, {
15
+ className: "h-8 w-8 animate-spin text-gray-600 mx-auto mb-4"
16
+ }),
17
+ /*#__PURE__*/ _jsx("p", {
18
+ className: "text-gray-600",
19
+ children: message
20
+ })
21
+ ]
22
+ })
23
+ });
11
24
  }
25
+
12
26
  //# sourceMappingURL=LoadingState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingState.js","sourceRoot":"","sources":["../../../src/editor/components/LoadingState.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAUtC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,GAAG,mBAAmB,EAAqB;IAC/E,OAAO,CACL,cAAK,SAAS,EAAC,sDAAsD,YACnE,eAAK,SAAS,EAAC,aAAa,aAC1B,KAAC,OAAO,IAAC,SAAS,EAAC,iDAAiD,GAAG,EACvE,YAAG,SAAS,EAAC,eAAe,YAAE,OAAO,GAAK,IACtC,GACF,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/editor/components/LoadingState.tsx"],"sourcesContent":["'use client'\n\nimport { Loader2 } from 'lucide-react'\n\nexport interface LoadingStateProps {\n /**\n * Loading message to display\n * @default 'Loading editor...'\n */\n message?: string\n}\n\n/**\n * Loading indicator shown while the Puck editor is being loaded\n *\n * Used as the fallback for dynamic import with ssr: false\n */\nexport function LoadingState({ message = 'Loading editor...' }: LoadingStateProps) {\n return (\n <div className=\"h-screen flex items-center justify-center bg-gray-50\">\n <div className=\"text-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-gray-600 mx-auto mb-4\" />\n <p className=\"text-gray-600\">{message}</p>\n </div>\n </div>\n )\n}\n"],"names":["Loader2","LoadingState","message","div","className","p"],"mappings":"AAAA;;AAEA,SAASA,OAAO,QAAQ,eAAc;AAUtC;;;;CAIC,GACD,OAAO,SAASC,aAAa,EAAEC,UAAU,mBAAmB,EAAqB;IAC/E,qBACE,KAACC;QAAIC,WAAU;kBACb,cAAA,MAACD;YAAIC,WAAU;;8BACb,KAACJ;oBAAQI,WAAU;;8BACnB,KAACC;oBAAED,WAAU;8BAAiBF;;;;;AAItC"}