@brunoalz/smartgesti-site-editor 0.2.2 → 1.1.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 (607) hide show
  1. package/dist/editor/BlockSelector.d.ts +2 -1
  2. package/dist/editor/BlockSelector.d.ts.map +1 -1
  3. package/dist/editor/BlockSelector.js +55 -64
  4. package/dist/editor/BlockSelector.js.map +1 -1
  5. package/dist/editor/LandingPageEditor.d.ts +19 -0
  6. package/dist/editor/LandingPageEditor.d.ts.map +1 -0
  7. package/dist/editor/LandingPageEditor.js +239 -0
  8. package/dist/editor/LandingPageEditor.js.map +1 -0
  9. package/dist/editor/PageTabBar.d.ts +4 -1
  10. package/dist/editor/PageTabBar.d.ts.map +1 -1
  11. package/dist/editor/PageTabBar.js +179 -41
  12. package/dist/editor/PageTabBar.js.map +1 -1
  13. package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts +5 -3
  14. package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts.map +1 -1
  15. package/dist/editor/PropertyEditor/BlockPropertyEditor.js +60 -113
  16. package/dist/editor/PropertyEditor/BlockPropertyEditor.js.map +1 -1
  17. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts +3 -1
  18. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts.map +1 -1
  19. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js +47 -33
  20. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js.map +1 -1
  21. package/dist/editor/PropertyEditor/PropertyGroup.d.ts +1 -1
  22. package/dist/editor/PropertyEditor/PropertyGroup.d.ts.map +1 -1
  23. package/dist/editor/PropertyEditor/VariationSelector.d.ts +2 -1
  24. package/dist/editor/PropertyEditor/VariationSelector.d.ts.map +1 -1
  25. package/dist/editor/PropertyEditor/VariationSelector.js +35 -31
  26. package/dist/editor/PropertyEditor/VariationSelector.js.map +1 -1
  27. package/dist/editor/PropertyEditor/index.js +30 -28
  28. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts +16 -0
  29. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts.map +1 -0
  30. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js +170 -0
  31. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js.map +1 -0
  32. package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts +1 -1
  33. package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts.map +1 -1
  34. package/dist/editor/PropertyEditor/inputs/ImageGridInput.js +148 -121
  35. package/dist/editor/PropertyEditor/inputs/ImageGridInput.js.map +1 -1
  36. package/dist/editor/PropertyEditor/inputs/ImageInput.d.ts.map +1 -0
  37. package/dist/{components → editor/PropertyEditor}/inputs/ImageInput.js +41 -39
  38. package/dist/editor/PropertyEditor/inputs/ImageInput.js.map +1 -0
  39. package/dist/editor/PropertyEditor/inputs/TypographyInput.js +41 -44
  40. package/dist/editor/PropertyEditor/inputs/TypographyInput.js.map +1 -1
  41. package/dist/editor/PropertyEditor/inputs/index.d.ts +2 -0
  42. package/dist/editor/PropertyEditor/inputs/index.d.ts.map +1 -1
  43. package/dist/editor/PropertyEditor/renderPropertyInput.d.ts +1 -1
  44. package/dist/editor/PropertyEditor/renderPropertyInput.d.ts.map +1 -1
  45. package/dist/editor/PropertyEditor/renderPropertyInput.js +167 -139
  46. package/dist/editor/PropertyEditor/renderPropertyInput.js.map +1 -1
  47. package/dist/editor/components/CenterPanel.d.ts +13 -4
  48. package/dist/editor/components/CenterPanel.d.ts.map +1 -1
  49. package/dist/editor/components/CenterPanel.js +40 -31
  50. package/dist/editor/components/CenterPanel.js.map +1 -1
  51. package/dist/editor/components/LeftPanel.d.ts +2 -1
  52. package/dist/editor/components/LeftPanel.d.ts.map +1 -1
  53. package/dist/editor/components/LeftPanel.js +13 -12
  54. package/dist/editor/components/LeftPanel.js.map +1 -1
  55. package/dist/editor/components/LoadingSpinner.d.ts.map +1 -0
  56. package/dist/editor/components/LoadingSpinner.js.map +1 -0
  57. package/dist/editor/components/RightPanel.d.ts +8 -2
  58. package/dist/editor/components/RightPanel.d.ts.map +1 -1
  59. package/dist/editor/components/RightPanel.js +24 -19
  60. package/dist/editor/components/RightPanel.js.map +1 -1
  61. package/dist/editor/components/Toolbar.d.ts +5 -1
  62. package/dist/editor/components/Toolbar.d.ts.map +1 -1
  63. package/dist/editor/components/Toolbar.js +56 -40
  64. package/dist/editor/components/Toolbar.js.map +1 -1
  65. package/dist/engine/export/exportHtml.d.ts +10 -5
  66. package/dist/engine/export/exportHtml.d.ts.map +1 -1
  67. package/dist/engine/export/exportHtml.js +38 -40
  68. package/dist/engine/export/exportHtml.js.map +1 -1
  69. package/dist/engine/export/exporters/content/HeadingExporter.d.ts.map +1 -1
  70. package/dist/engine/export/exporters/content/HeadingExporter.js +6 -6
  71. package/dist/engine/export/exporters/content/HeadingExporter.js.map +1 -1
  72. package/dist/engine/export/exporters/content/LinkExporter.d.ts.map +1 -1
  73. package/dist/engine/export/exporters/content/LinkExporter.js +6 -6
  74. package/dist/engine/export/exporters/content/LinkExporter.js.map +1 -1
  75. package/dist/engine/export/exporters/content/TextExporter.d.ts.map +1 -1
  76. package/dist/engine/export/exporters/content/TextExporter.js +7 -7
  77. package/dist/engine/export/exporters/content/TextExporter.js.map +1 -1
  78. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts +6 -0
  79. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -0
  80. package/dist/engine/export/exporters/sections/BlogPostExporters.js +101 -0
  81. package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -0
  82. package/dist/engine/export/exporters/sections/FooterExporter.d.ts.map +1 -1
  83. package/dist/engine/export/exporters/sections/FooterExporter.js +33 -40
  84. package/dist/engine/export/exporters/sections/FooterExporter.js.map +1 -1
  85. package/dist/engine/export/exporters/sections/HeroExporter.d.ts.map +1 -1
  86. package/dist/engine/export/exporters/sections/HeroExporter.js +222 -218
  87. package/dist/engine/export/exporters/sections/HeroExporter.js.map +1 -1
  88. package/dist/engine/export/exporters/sections/MarketingExporters.js +88 -88
  89. package/dist/engine/export/exporters/sections/MarketingExporters.js.map +1 -1
  90. package/dist/engine/export/exporters/sections/NavbarExporter.js +34 -34
  91. package/dist/engine/export/exporters/sections/NavbarExporter.js.map +1 -1
  92. package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
  93. package/dist/engine/export/exporters/sections/index.js +29 -22
  94. package/dist/engine/export/exporters/sections/index.js.map +1 -1
  95. package/dist/engine/export/sanitizeHtml.d.ts.map +1 -1
  96. package/dist/engine/export/sanitizeHtml.js +65 -18
  97. package/dist/engine/export/sanitizeHtml.js.map +1 -1
  98. package/dist/engine/export/styleResolver.d.ts.map +1 -1
  99. package/dist/engine/export/styleResolver.js +33 -33
  100. package/dist/engine/export/styleResolver.js.map +1 -1
  101. package/dist/engine/generators/generateLandingPage.d.ts +4 -4
  102. package/dist/engine/generators/generateLandingPage.d.ts.map +1 -1
  103. package/dist/engine/generators/generateLandingPage.js.map +1 -1
  104. package/dist/engine/index.d.ts +6 -3
  105. package/dist/engine/index.d.ts.map +1 -1
  106. package/dist/engine/index.js +99 -89
  107. package/dist/engine/index.js.map +1 -1
  108. package/dist/engine/patch/PatchBuilder.d.ts +11 -11
  109. package/dist/engine/patch/PatchBuilder.d.ts.map +1 -1
  110. package/dist/engine/patch/PatchBuilder.js +92 -93
  111. package/dist/engine/patch/PatchBuilder.js.map +1 -1
  112. package/dist/engine/patch/applyPatch.js.map +1 -1
  113. package/dist/engine/plugins/builtin/blog/index.d.ts +3 -0
  114. package/dist/engine/plugins/builtin/blog/index.d.ts.map +1 -0
  115. package/dist/engine/plugins/builtin/blog/manifest.d.ts +3 -0
  116. package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -0
  117. package/dist/engine/plugins/builtin/blog/manifest.js +273 -0
  118. package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -0
  119. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts +7 -0
  120. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts.map +1 -0
  121. package/dist/engine/plugins/builtin/blog/mockContentProvider.js +135 -0
  122. package/dist/engine/plugins/builtin/blog/mockContentProvider.js.map +1 -0
  123. package/dist/engine/plugins/contentHydration.d.ts +17 -0
  124. package/dist/engine/plugins/contentHydration.d.ts.map +1 -0
  125. package/dist/engine/plugins/contentHydration.js +121 -0
  126. package/dist/engine/plugins/contentHydration.js.map +1 -0
  127. package/dist/engine/plugins/dynamicPageResolver.d.ts +25 -0
  128. package/dist/engine/plugins/dynamicPageResolver.d.ts.map +1 -0
  129. package/dist/engine/plugins/dynamicPageResolver.js +32 -0
  130. package/dist/engine/plugins/dynamicPageResolver.js.map +1 -0
  131. package/dist/engine/plugins/index.d.ts +11 -0
  132. package/dist/engine/plugins/index.d.ts.map +1 -0
  133. package/dist/engine/plugins/pluginRegistry.d.ts +37 -0
  134. package/dist/engine/plugins/pluginRegistry.d.ts.map +1 -0
  135. package/dist/engine/plugins/pluginRegistry.js +134 -0
  136. package/dist/engine/plugins/pluginRegistry.js.map +1 -0
  137. package/dist/engine/plugins/types.d.ts +180 -0
  138. package/dist/engine/plugins/types.d.ts.map +1 -0
  139. package/dist/engine/presets/heroVariations.d.ts +5 -0
  140. package/dist/engine/presets/heroVariations.d.ts.map +1 -1
  141. package/dist/engine/presets/heroVariations.js +50 -6
  142. package/dist/engine/presets/heroVariations.js.map +1 -1
  143. package/dist/engine/preview/Preview.d.ts +19 -0
  144. package/dist/engine/preview/Preview.d.ts.map +1 -0
  145. package/dist/engine/preview/Preview.js +418 -0
  146. package/dist/engine/preview/Preview.js.map +1 -0
  147. package/dist/engine/registry/blocks/sections/blogPostCard.d.ts +3 -0
  148. package/dist/engine/registry/blocks/sections/blogPostCard.d.ts.map +1 -0
  149. package/dist/engine/registry/blocks/sections/blogPostCard.js +53 -0
  150. package/dist/engine/registry/blocks/sections/blogPostCard.js.map +1 -0
  151. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts +3 -0
  152. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts.map +1 -0
  153. package/dist/engine/registry/blocks/sections/blogPostDetail.js +49 -0
  154. package/dist/engine/registry/blocks/sections/blogPostDetail.js.map +1 -0
  155. package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts +3 -0
  156. package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts.map +1 -0
  157. package/dist/engine/registry/blocks/sections/blogPostGrid.js +89 -0
  158. package/dist/engine/registry/blocks/sections/blogPostGrid.js.map +1 -0
  159. package/dist/engine/registry/blocks/sections/hero.d.ts.map +1 -1
  160. package/dist/engine/registry/blocks/sections/hero.js +67 -14
  161. package/dist/engine/registry/blocks/sections/hero.js.map +1 -1
  162. package/dist/engine/registry/blocks/sections/index.d.ts +3 -0
  163. package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
  164. package/dist/engine/registry/blocks/sections/navbar.d.ts.map +1 -1
  165. package/dist/engine/registry/blocks/sections/navbar.js +2 -1
  166. package/dist/engine/registry/blocks/sections/navbar.js.map +1 -1
  167. package/dist/engine/registry/registry.d.ts.map +1 -1
  168. package/dist/engine/registry/registry.js +39 -36
  169. package/dist/engine/registry/registry.js.map +1 -1
  170. package/dist/engine/registry/types.d.ts +17 -13
  171. package/dist/engine/registry/types.d.ts.map +1 -1
  172. package/dist/engine/render/renderNodeImpl.js +85 -85
  173. package/dist/engine/render/renderNodeImpl.js.map +1 -1
  174. package/dist/engine/render/renderPage.d.ts +3 -3
  175. package/dist/engine/render/renderPage.d.ts.map +1 -1
  176. package/dist/engine/render/renderPage.js.map +1 -1
  177. package/dist/engine/render/renderers/composition/CardRenderer.js +4 -4
  178. package/dist/engine/render/renderers/content/LinkRenderer.d.ts.map +1 -1
  179. package/dist/engine/render/renderers/content/LinkRenderer.js +41 -16
  180. package/dist/engine/render/renderers/content/LinkRenderer.js.map +1 -1
  181. package/dist/engine/render/renderers/content/SocialLinksRenderer.d.ts.map +1 -1
  182. package/dist/engine/render/renderers/content/SocialLinksRenderer.js +16 -23
  183. package/dist/engine/render/renderers/content/SocialLinksRenderer.js.map +1 -1
  184. package/dist/engine/render/renderers/forms/FormRenderer.js +6 -6
  185. package/dist/engine/render/renderers/layout/GridRenderer.js +3 -3
  186. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts +3 -0
  187. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts.map +1 -0
  188. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js +199 -0
  189. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js.map +1 -0
  190. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts +3 -0
  191. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts.map +1 -0
  192. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js +293 -0
  193. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js.map +1 -0
  194. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts +3 -0
  195. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts.map +1 -0
  196. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js +101 -0
  197. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js.map +1 -0
  198. package/dist/engine/render/renderers/sections/CtaRenderer.d.ts.map +1 -1
  199. package/dist/engine/render/renderers/sections/CtaRenderer.js +33 -31
  200. package/dist/engine/render/renderers/sections/CtaRenderer.js.map +1 -1
  201. package/dist/engine/render/renderers/sections/FaqItemRenderer.d.ts.map +1 -1
  202. package/dist/engine/render/renderers/sections/FaqItemRenderer.js +7 -6
  203. package/dist/engine/render/renderers/sections/FaqItemRenderer.js.map +1 -1
  204. package/dist/engine/render/renderers/sections/FaqRenderer.js +7 -7
  205. package/dist/engine/render/renderers/sections/FaqRenderer.js.map +1 -1
  206. package/dist/engine/render/renderers/sections/FeatureGridRenderer.d.ts.map +1 -1
  207. package/dist/engine/render/renderers/sections/FeatureGridRenderer.js +19 -18
  208. package/dist/engine/render/renderers/sections/FeatureGridRenderer.js.map +1 -1
  209. package/dist/engine/render/renderers/sections/FeatureRenderer.d.ts.map +1 -1
  210. package/dist/engine/render/renderers/sections/FeatureRenderer.js +5 -4
  211. package/dist/engine/render/renderers/sections/FeatureRenderer.js.map +1 -1
  212. package/dist/engine/render/renderers/sections/FooterRenderer.d.ts.map +1 -1
  213. package/dist/engine/render/renderers/sections/FooterRenderer.js +25 -30
  214. package/dist/engine/render/renderers/sections/FooterRenderer.js.map +1 -1
  215. package/dist/engine/render/renderers/sections/HeroRenderer.d.ts.map +1 -1
  216. package/dist/engine/render/renderers/sections/HeroRenderer.js +293 -229
  217. package/dist/engine/render/renderers/sections/HeroRenderer.js.map +1 -1
  218. package/dist/engine/render/renderers/sections/NavbarRenderer.d.ts.map +1 -1
  219. package/dist/engine/render/renderers/sections/NavbarRenderer.js +23 -22
  220. package/dist/engine/render/renderers/sections/NavbarRenderer.js.map +1 -1
  221. package/dist/engine/render/renderers/sections/PricingCardRenderer.d.ts.map +1 -1
  222. package/dist/engine/render/renderers/sections/PricingCardRenderer.js +7 -6
  223. package/dist/engine/render/renderers/sections/PricingCardRenderer.js.map +1 -1
  224. package/dist/engine/render/renderers/sections/PricingRenderer.js +9 -9
  225. package/dist/engine/render/renderers/sections/PricingRenderer.js.map +1 -1
  226. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.d.ts.map +1 -1
  227. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js +17 -16
  228. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js.map +1 -1
  229. package/dist/engine/render/renderers/sections/TestimonialRenderer.d.ts.map +1 -1
  230. package/dist/engine/render/renderers/sections/TestimonialRenderer.js +11 -10
  231. package/dist/engine/render/renderers/sections/TestimonialRenderer.js.map +1 -1
  232. package/dist/engine/render/renderers/sections/index.js +24 -18
  233. package/dist/engine/render/renderers/sections/index.js.map +1 -1
  234. package/dist/engine/schema/siteDocument.d.ts +118 -7
  235. package/dist/engine/schema/siteDocument.d.ts.map +1 -1
  236. package/dist/engine/schema/siteDocument.js +1 -1
  237. package/dist/engine/schema/siteDocument.js.map +1 -1
  238. package/dist/engine/schema/themeTokens.d.ts +1 -1
  239. package/dist/engine/schema/themeTokens.js.map +1 -1
  240. package/dist/engine/shared/carouselAnimation.d.ts +20 -0
  241. package/dist/engine/shared/carouselAnimation.d.ts.map +1 -0
  242. package/dist/engine/shared/carouselAnimation.js +62 -0
  243. package/dist/engine/shared/carouselAnimation.js.map +1 -0
  244. package/dist/engine/shared/imageGrid/presets.js +4 -12
  245. package/dist/engine/shared/imageGrid/presets.js.map +1 -1
  246. package/dist/engine/shared/imageGrid/types.d.ts +2 -0
  247. package/dist/engine/shared/imageGrid/types.d.ts.map +1 -1
  248. package/dist/engine/shared/layoutConstants.d.ts +13 -0
  249. package/dist/engine/shared/layoutConstants.d.ts.map +1 -0
  250. package/dist/engine/shared/layoutConstants.js +14 -0
  251. package/dist/engine/shared/layoutConstants.js.map +1 -0
  252. package/dist/engine/shared/shadowConstants.d.ts +5 -0
  253. package/dist/engine/shared/shadowConstants.d.ts.map +1 -0
  254. package/dist/engine/shared/shadowConstants.js +11 -0
  255. package/dist/engine/shared/shadowConstants.js.map +1 -0
  256. package/dist/engine/shared/showWhen.d.ts +44 -0
  257. package/dist/engine/shared/showWhen.d.ts.map +1 -0
  258. package/dist/engine/shared/showWhen.js +33 -0
  259. package/dist/engine/shared/showWhen.js.map +1 -0
  260. package/dist/engine/shared/socialIcons.d.ts +6 -0
  261. package/dist/engine/shared/socialIcons.d.ts.map +1 -0
  262. package/dist/engine/shared/socialIcons.js +13 -0
  263. package/dist/engine/shared/socialIcons.js.map +1 -0
  264. package/dist/engine/shared/typeGuards.d.ts +11 -0
  265. package/dist/engine/shared/typeGuards.d.ts.map +1 -0
  266. package/dist/hooks/useEditorState.d.ts +8 -5
  267. package/dist/hooks/useEditorState.d.ts.map +1 -1
  268. package/dist/hooks/useEditorState.js +150 -194
  269. package/dist/hooks/useEditorState.js.map +1 -1
  270. package/dist/hooks/useNavbarAutoSync.d.ts +2 -2
  271. package/dist/hooks/useNavbarAutoSync.d.ts.map +1 -1
  272. package/dist/hooks/useNavbarAutoSync.js.map +1 -1
  273. package/dist/index.d.ts +60 -14
  274. package/dist/index.d.ts.map +1 -1
  275. package/dist/index.js +109 -124
  276. package/dist/index.js.map +1 -1
  277. package/dist/shared/index.d.ts +2 -2
  278. package/dist/shared/index.d.ts.map +1 -1
  279. package/dist/shared/schema.d.ts +4 -4
  280. package/dist/shared/schema.d.ts.map +1 -1
  281. package/dist/shared/schema.js.map +1 -1
  282. package/dist/shared/templates/escola-blog.d.ts +3 -0
  283. package/dist/shared/templates/escola-blog.d.ts.map +1 -0
  284. package/dist/shared/templates/escola-blog.js +160 -0
  285. package/dist/shared/templates/escola-blog.js.map +1 -0
  286. package/dist/shared/templates/escola-edvi.d.ts +2 -2
  287. package/dist/shared/templates/escola-edvi.d.ts.map +1 -1
  288. package/dist/shared/templates/escola-edvi.js.map +1 -1
  289. package/dist/shared/templates/escola-premium.d.ts +2 -2
  290. package/dist/shared/templates/escola-premium.d.ts.map +1 -1
  291. package/dist/shared/templates/escola-premium.js.map +1 -1
  292. package/dist/shared/templates/escola-zilom.d.ts +2 -2
  293. package/dist/shared/templates/escola-zilom.d.ts.map +1 -1
  294. package/dist/shared/templates/escola-zilom.js.map +1 -1
  295. package/dist/shared/templates/index.d.ts +7 -5
  296. package/dist/shared/templates/index.d.ts.map +1 -1
  297. package/dist/shared/templates/index.js +30 -12
  298. package/dist/shared/templates/index.js.map +1 -1
  299. package/dist/shared/validators.d.ts +3 -3
  300. package/dist/shared/validators.d.ts.map +1 -1
  301. package/dist/shared/validators.js.map +1 -1
  302. package/dist/site/BlockRenderer.d.ts +1 -1
  303. package/dist/site/BlockRenderer.d.ts.map +1 -1
  304. package/dist/site/BlockRenderer.js +22 -26
  305. package/dist/site/BlockRenderer.js.map +1 -1
  306. package/dist/site/blocks/Button.js +15 -17
  307. package/dist/site/blocks/Button.js.map +1 -1
  308. package/dist/site/blocks/Card.js +13 -15
  309. package/dist/site/blocks/Card.js.map +1 -1
  310. package/dist/site/blocks/Features.js +15 -17
  311. package/dist/site/blocks/Features.js.map +1 -1
  312. package/dist/site/blocks/Footer.js +10 -12
  313. package/dist/site/blocks/Footer.js.map +1 -1
  314. package/dist/site/blocks/Hero.js +12 -14
  315. package/dist/site/blocks/Hero.js.map +1 -1
  316. package/dist/site/blocks/Navbar.js +13 -15
  317. package/dist/site/blocks/Navbar.js.map +1 -1
  318. package/dist/site/blocks/Section.js +9 -11
  319. package/dist/site/blocks/Section.js.map +1 -1
  320. package/dist/site/blocks/SectionHeader.js +9 -11
  321. package/dist/site/blocks/SectionHeader.js.map +1 -1
  322. package/dist/site/blocks/SiteRoot.js +9 -12
  323. package/dist/site/blocks/SiteRoot.js.map +1 -1
  324. package/dist/site/index.js +73 -73
  325. package/dist/styles/site/sections.css.d.ts +1 -1
  326. package/dist/utils/blockUtils.d.ts +2 -2
  327. package/dist/utils/blockUtils.d.ts.map +1 -1
  328. package/dist/utils/blockUtils.js.map +1 -1
  329. package/dist/utils/changeDetector.d.ts +3 -2
  330. package/dist/utils/changeDetector.d.ts.map +1 -1
  331. package/dist/utils/changeDetector.js +39 -39
  332. package/dist/utils/changeDetector.js.map +1 -1
  333. package/dist/utils/cn.js +2 -2
  334. package/dist/utils/dataURLUtils.d.ts +24 -0
  335. package/dist/utils/dataURLUtils.d.ts.map +1 -0
  336. package/dist/utils/dataURLUtils.js +47 -0
  337. package/dist/utils/dataURLUtils.js.map +1 -0
  338. package/dist/utils/documentHash.d.ts +2 -2
  339. package/dist/utils/documentHash.d.ts.map +1 -1
  340. package/dist/utils/documentHash.js +8 -7
  341. package/dist/utils/documentHash.js.map +1 -1
  342. package/dist/utils/logger.d.ts +13 -0
  343. package/dist/utils/logger.d.ts.map +1 -0
  344. package/dist/utils/logger.js +13 -0
  345. package/dist/utils/logger.js.map +1 -0
  346. package/dist/utils/navbarSync.d.ts +3 -3
  347. package/dist/utils/navbarSync.d.ts.map +1 -1
  348. package/dist/utils/navbarSync.js +25 -24
  349. package/dist/utils/navbarSync.js.map +1 -1
  350. package/dist/utils/sharedTemplateToEngine.d.ts +7 -8
  351. package/dist/utils/sharedTemplateToEngine.d.ts.map +1 -1
  352. package/dist/utils/sharedTemplateToEngine.js +14 -87
  353. package/dist/utils/sharedTemplateToEngine.js.map +1 -1
  354. package/dist/viewer/LandingPageViewer.d.ts +32 -0
  355. package/dist/viewer/LandingPageViewer.d.ts.map +1 -0
  356. package/dist/viewer/LandingPageViewer.js +300 -0
  357. package/dist/viewer/LandingPageViewer.js.map +1 -0
  358. package/package.json +10 -5
  359. package/dist/components/ComponentPalette/definitions.d.ts +0 -3
  360. package/dist/components/ComponentPalette/definitions.d.ts.map +0 -1
  361. package/dist/components/ComponentPalette/definitions.js +0 -206
  362. package/dist/components/ComponentPalette/definitions.js.map +0 -1
  363. package/dist/components/ComponentPalette/index.d.ts +0 -7
  364. package/dist/components/ComponentPalette/index.d.ts.map +0 -1
  365. package/dist/components/ComponentPalette/index.js +0 -86
  366. package/dist/components/ComponentPalette/index.js.map +0 -1
  367. package/dist/components/LoadingSpinner.d.ts.map +0 -1
  368. package/dist/components/LoadingSpinner.js.map +0 -1
  369. package/dist/components/PreviewPanel/index.d.ts +0 -12
  370. package/dist/components/PreviewPanel/index.d.ts.map +0 -1
  371. package/dist/components/PreviewPanel/index.js +0 -140
  372. package/dist/components/PreviewPanel/index.js.map +0 -1
  373. package/dist/components/PropertyPanel/index.d.ts +0 -8
  374. package/dist/components/PropertyPanel/index.d.ts.map +0 -1
  375. package/dist/components/PropertyPanel/index.js +0 -223
  376. package/dist/components/PropertyPanel/index.js.map +0 -1
  377. package/dist/components/SiteEditor/index.d.ts +0 -3
  378. package/dist/components/SiteEditor/index.d.ts.map +0 -1
  379. package/dist/components/SiteEditor/index.js +0 -251
  380. package/dist/components/SiteEditor/index.js.map +0 -1
  381. package/dist/components/SiteViewer/index.d.ts +0 -3
  382. package/dist/components/SiteViewer/index.d.ts.map +0 -1
  383. package/dist/components/SiteViewer/index.js +0 -55
  384. package/dist/components/SiteViewer/index.js.map +0 -1
  385. package/dist/components/TemplateSelector/index.d.ts +0 -7
  386. package/dist/components/TemplateSelector/index.d.ts.map +0 -1
  387. package/dist/components/TemplateSelector/index.js +0 -109
  388. package/dist/components/TemplateSelector/index.js.map +0 -1
  389. package/dist/components/Toolbar/index.d.ts +0 -15
  390. package/dist/components/Toolbar/index.d.ts.map +0 -1
  391. package/dist/components/Toolbar/index.js +0 -113
  392. package/dist/components/Toolbar/index.js.map +0 -1
  393. package/dist/components/editors/PaletteSelector.d.ts +0 -14
  394. package/dist/components/editors/PaletteSelector.d.ts.map +0 -1
  395. package/dist/components/editors/PaletteSelector.js +0 -175
  396. package/dist/components/editors/PaletteSelector.js.map +0 -1
  397. package/dist/components/effects/SectionGlow.d.ts +0 -12
  398. package/dist/components/effects/SectionGlow.d.ts.map +0 -1
  399. package/dist/components/effects/SectionGlow.js +0 -139
  400. package/dist/components/effects/SectionGlow.js.map +0 -1
  401. package/dist/components/inputs/CheckboxInput.d.ts +0 -3
  402. package/dist/components/inputs/CheckboxInput.d.ts.map +0 -1
  403. package/dist/components/inputs/CheckboxInput.js +0 -46
  404. package/dist/components/inputs/CheckboxInput.js.map +0 -1
  405. package/dist/components/inputs/ColorInput.d.ts +0 -7
  406. package/dist/components/inputs/ColorInput.d.ts.map +0 -1
  407. package/dist/components/inputs/ColorInput.js +0 -180
  408. package/dist/components/inputs/ColorInput.js.map +0 -1
  409. package/dist/components/inputs/GradientInput.d.ts +0 -7
  410. package/dist/components/inputs/GradientInput.d.ts.map +0 -1
  411. package/dist/components/inputs/GradientInput.js +0 -78
  412. package/dist/components/inputs/GradientInput.js.map +0 -1
  413. package/dist/components/inputs/ImageInput.d.ts.map +0 -1
  414. package/dist/components/inputs/ImageInput.js.map +0 -1
  415. package/dist/components/inputs/SelectInput.d.ts +0 -7
  416. package/dist/components/inputs/SelectInput.d.ts.map +0 -1
  417. package/dist/components/inputs/SelectInput.js +0 -97
  418. package/dist/components/inputs/SelectInput.js.map +0 -1
  419. package/dist/components/inputs/SliderInput.d.ts +0 -8
  420. package/dist/components/inputs/SliderInput.d.ts.map +0 -1
  421. package/dist/components/inputs/SliderInput.js +0 -77
  422. package/dist/components/inputs/SliderInput.js.map +0 -1
  423. package/dist/components/inputs/index.d.ts +0 -11
  424. package/dist/components/inputs/index.d.ts.map +0 -1
  425. package/dist/components/inputs/types.d.ts +0 -48
  426. package/dist/components/inputs/types.d.ts.map +0 -1
  427. package/dist/components/inputs/types.js +0 -9
  428. package/dist/components/inputs/types.js.map +0 -1
  429. package/dist/components/renderers/ComponentRenderer.d.ts +0 -8
  430. package/dist/components/renderers/ComponentRenderer.d.ts.map +0 -1
  431. package/dist/components/renderers/ComponentRenderer.js +0 -13
  432. package/dist/components/renderers/ComponentRenderer.js.map +0 -1
  433. package/dist/components/renderers/HeroRenderer.d.ts +0 -3
  434. package/dist/components/renderers/HeroRenderer.d.ts.map +0 -1
  435. package/dist/components/renderers/HeroRenderer.js +0 -10
  436. package/dist/components/renderers/HeroRenderer.js.map +0 -1
  437. package/dist/components/renderers/hero/HeroBanner.d.ts +0 -3
  438. package/dist/components/renderers/hero/HeroBanner.d.ts.map +0 -1
  439. package/dist/components/renderers/hero/HeroBanner.js +0 -122
  440. package/dist/components/renderers/hero/HeroBanner.js.map +0 -1
  441. package/dist/components/renderers/hero/HeroCinematic.d.ts +0 -3
  442. package/dist/components/renderers/hero/HeroCinematic.d.ts.map +0 -1
  443. package/dist/components/renderers/hero/HeroCinematic.js +0 -141
  444. package/dist/components/renderers/hero/HeroCinematic.js.map +0 -1
  445. package/dist/components/renderers/hero/HeroClassic.d.ts +0 -3
  446. package/dist/components/renderers/hero/HeroClassic.d.ts.map +0 -1
  447. package/dist/components/renderers/hero/HeroClassic.js +0 -241
  448. package/dist/components/renderers/hero/HeroClassic.js.map +0 -1
  449. package/dist/components/renderers/hero/HeroCollage.d.ts +0 -3
  450. package/dist/components/renderers/hero/HeroCollage.d.ts.map +0 -1
  451. package/dist/components/renderers/hero/HeroCollage.js +0 -131
  452. package/dist/components/renderers/hero/HeroCollage.js.map +0 -1
  453. package/dist/components/renderers/hero/HeroColumns.d.ts +0 -3
  454. package/dist/components/renderers/hero/HeroColumns.d.ts.map +0 -1
  455. package/dist/components/renderers/hero/HeroColumns.js +0 -114
  456. package/dist/components/renderers/hero/HeroColumns.js.map +0 -1
  457. package/dist/components/renderers/hero/HeroGlass.d.ts +0 -3
  458. package/dist/components/renderers/hero/HeroGlass.d.ts.map +0 -1
  459. package/dist/components/renderers/hero/HeroGlass.js +0 -119
  460. package/dist/components/renderers/hero/HeroGlass.js.map +0 -1
  461. package/dist/components/renderers/hero/HeroNeon.d.ts +0 -3
  462. package/dist/components/renderers/hero/HeroNeon.d.ts.map +0 -1
  463. package/dist/components/renderers/hero/HeroNeon.js +0 -136
  464. package/dist/components/renderers/hero/HeroNeon.js.map +0 -1
  465. package/dist/components/renderers/hero/HeroParallax.d.ts +0 -3
  466. package/dist/components/renderers/hero/HeroParallax.d.ts.map +0 -1
  467. package/dist/components/renderers/hero/HeroParallax.js +0 -99
  468. package/dist/components/renderers/hero/HeroParallax.js.map +0 -1
  469. package/dist/components/renderers/hero/HeroSplit.d.ts +0 -3
  470. package/dist/components/renderers/hero/HeroSplit.d.ts.map +0 -1
  471. package/dist/components/renderers/hero/HeroSplit.js +0 -142
  472. package/dist/components/renderers/hero/HeroSplit.js.map +0 -1
  473. package/dist/components/renderers/hero/HeroSpotlight.d.ts +0 -3
  474. package/dist/components/renderers/hero/HeroSpotlight.d.ts.map +0 -1
  475. package/dist/components/renderers/hero/HeroSpotlight.js +0 -213
  476. package/dist/components/renderers/hero/HeroSpotlight.js.map +0 -1
  477. package/dist/components/renderers/hero/index.d.ts +0 -14
  478. package/dist/components/renderers/hero/index.d.ts.map +0 -1
  479. package/dist/components/renderers/index.d.ts +0 -8
  480. package/dist/components/renderers/index.d.ts.map +0 -1
  481. package/dist/components/renderers/index.js +0 -89
  482. package/dist/components/renderers/index.js.map +0 -1
  483. package/dist/components/renderers/types.d.ts +0 -11
  484. package/dist/components/renderers/types.d.ts.map +0 -1
  485. package/dist/editor/LandingPageEditorV2.d.ts +0 -19
  486. package/dist/editor/LandingPageEditorV2.d.ts.map +0 -1
  487. package/dist/editor/LandingPageEditorV2.js +0 -311
  488. package/dist/editor/LandingPageEditorV2.js.map +0 -1
  489. package/dist/editor/PropertyEditor/PropertyGroup.js +0 -23
  490. package/dist/editor/PropertyEditor/PropertyGroup.js.map +0 -1
  491. package/dist/engine/preview/PreviewV2.d.ts +0 -15
  492. package/dist/engine/preview/PreviewV2.d.ts.map +0 -1
  493. package/dist/engine/preview/PreviewV2.js +0 -242
  494. package/dist/engine/preview/PreviewV2.js.map +0 -1
  495. package/dist/modules/registry.d.ts +0 -31
  496. package/dist/modules/registry.d.ts.map +0 -1
  497. package/dist/modules/registry.js +0 -67
  498. package/dist/modules/registry.js.map +0 -1
  499. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -57
  500. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
  501. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js +0 -2345
  502. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
  503. package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -440
  504. package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
  505. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +0 -236
  506. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +0 -1
  507. package/dist/node_modules/clsx/dist/clsx.js +0 -17
  508. package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
  509. package/dist/node_modules/lucide-react/dist/esm/Icon.js +0 -35
  510. package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +0 -1
  511. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +0 -18
  512. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +0 -1
  513. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +0 -15
  514. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +0 -1
  515. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-right.js +0 -9
  516. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-right.js.map +0 -1
  517. package/dist/node_modules/lucide-react/dist/esm/icons/briefcase.js +0 -9
  518. package/dist/node_modules/lucide-react/dist/esm/icons/briefcase.js.map +0 -1
  519. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +0 -6
  520. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +0 -1
  521. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +0 -8
  522. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js.map +0 -1
  523. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +0 -8
  524. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +0 -1
  525. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +0 -6
  526. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js.map +0 -1
  527. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js +0 -15
  528. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js.map +0 -1
  529. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +0 -12
  530. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +0 -1
  531. package/dist/node_modules/lucide-react/dist/esm/icons/globe.js +0 -10
  532. package/dist/node_modules/lucide-react/dist/esm/icons/globe.js.map +0 -1
  533. package/dist/node_modules/lucide-react/dist/esm/icons/grid-3x3.js +0 -12
  534. package/dist/node_modules/lucide-react/dist/esm/icons/grid-3x3.js.map +0 -1
  535. package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.js +0 -13
  536. package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.js.map +0 -1
  537. package/dist/node_modules/lucide-react/dist/esm/icons/heading.js +0 -10
  538. package/dist/node_modules/lucide-react/dist/esm/icons/heading.js.map +0 -1
  539. package/dist/node_modules/lucide-react/dist/esm/icons/image.js +0 -10
  540. package/dist/node_modules/lucide-react/dist/esm/icons/image.js.map +0 -1
  541. package/dist/node_modules/lucide-react/dist/esm/icons/images.js +0 -11
  542. package/dist/node_modules/lucide-react/dist/esm/icons/images.js.map +0 -1
  543. package/dist/node_modules/lucide-react/dist/esm/icons/list.js +0 -13
  544. package/dist/node_modules/lucide-react/dist/esm/icons/list.js.map +0 -1
  545. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js +0 -8
  546. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js.map +0 -1
  547. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js +0 -6
  548. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js.map +0 -1
  549. package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer-click.js +0 -18
  550. package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer-click.js.map +0 -1
  551. package/dist/node_modules/lucide-react/dist/esm/icons/navigation.js +0 -8
  552. package/dist/node_modules/lucide-react/dist/esm/icons/navigation.js.map +0 -1
  553. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js +0 -10
  554. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js.map +0 -1
  555. package/dist/node_modules/lucide-react/dist/esm/icons/phone.js +0 -14
  556. package/dist/node_modules/lucide-react/dist/esm/icons/phone.js.map +0 -1
  557. package/dist/node_modules/lucide-react/dist/esm/icons/plus.js +0 -9
  558. package/dist/node_modules/lucide-react/dist/esm/icons/plus.js.map +0 -1
  559. package/dist/node_modules/lucide-react/dist/esm/icons/redo-2.js +0 -9
  560. package/dist/node_modules/lucide-react/dist/esm/icons/redo-2.js.map +0 -1
  561. package/dist/node_modules/lucide-react/dist/esm/icons/redo.js +0 -9
  562. package/dist/node_modules/lucide-react/dist/esm/icons/redo.js.map +0 -1
  563. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js +0 -9
  564. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js.map +0 -1
  565. package/dist/node_modules/lucide-react/dist/esm/icons/save.js +0 -16
  566. package/dist/node_modules/lucide-react/dist/esm/icons/save.js.map +0 -1
  567. package/dist/node_modules/lucide-react/dist/esm/icons/square.js +0 -8
  568. package/dist/node_modules/lucide-react/dist/esm/icons/square.js.map +0 -1
  569. package/dist/node_modules/lucide-react/dist/esm/icons/star.js +0 -14
  570. package/dist/node_modules/lucide-react/dist/esm/icons/star.js.map +0 -1
  571. package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js +0 -12
  572. package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js.map +0 -1
  573. package/dist/node_modules/lucide-react/dist/esm/icons/type.js +0 -10
  574. package/dist/node_modules/lucide-react/dist/esm/icons/type.js.map +0 -1
  575. package/dist/node_modules/lucide-react/dist/esm/icons/undo-2.js +0 -9
  576. package/dist/node_modules/lucide-react/dist/esm/icons/undo-2.js.map +0 -1
  577. package/dist/node_modules/lucide-react/dist/esm/icons/undo.js +0 -9
  578. package/dist/node_modules/lucide-react/dist/esm/icons/undo.js.map +0 -1
  579. package/dist/node_modules/lucide-react/dist/esm/icons/user.js +0 -9
  580. package/dist/node_modules/lucide-react/dist/esm/icons/user.js.map +0 -1
  581. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +0 -6
  582. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +0 -1
  583. package/dist/node_modules/react-colorful/dist/index.js +0 -167
  584. package/dist/node_modules/react-colorful/dist/index.js.map +0 -1
  585. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2266
  586. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  587. package/dist/types/index.d.ts +0 -99
  588. package/dist/types/index.d.ts.map +0 -1
  589. package/dist/types/module.d.ts +0 -25
  590. package/dist/types/module.d.ts.map +0 -1
  591. package/dist/utils/htmlExporter.d.ts +0 -6
  592. package/dist/utils/htmlExporter.d.ts.map +0 -1
  593. package/dist/utils/htmlExporter.js +0 -92
  594. package/dist/utils/htmlExporter.js.map +0 -1
  595. package/dist/utils/themeApplier.d.ts +0 -11
  596. package/dist/utils/themeApplier.d.ts.map +0 -1
  597. package/dist/utils/themeApplier.js +0 -29
  598. package/dist/utils/themeApplier.js.map +0 -1
  599. package/dist/utils/useDebounce.d.ts +0 -12
  600. package/dist/utils/useDebounce.d.ts.map +0 -1
  601. package/dist/viewer/LandingPageViewerV2.d.ts +0 -25
  602. package/dist/viewer/LandingPageViewerV2.d.ts.map +0 -1
  603. package/dist/viewer/LandingPageViewerV2.js +0 -253
  604. package/dist/viewer/LandingPageViewerV2.js.map +0 -1
  605. /package/dist/{components → editor/PropertyEditor}/inputs/ImageInput.d.ts +0 -0
  606. /package/dist/{components → editor/components}/LoadingSpinner.d.ts +0 -0
  607. /package/dist/{components → editor/components}/LoadingSpinner.js +0 -0
@@ -1,3 +1,4 @@
1
+ import { default as React } from 'react';
1
2
  interface LeftPanelProps {
2
3
  currentPage: any;
3
4
  selectedBlockId: string | null;
@@ -5,6 +6,6 @@ interface LeftPanelProps {
5
6
  onSelectBlock: (id: string | null) => void;
6
7
  onDeleteBlock: (id: string) => void;
7
8
  }
8
- export declare function LeftPanel({ currentPage, selectedBlockId, isPaletteSelected, onSelectBlock, onDeleteBlock, }: LeftPanelProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare const LeftPanel: React.NamedExoticComponent<LeftPanelProps>;
9
10
  export {};
10
11
  //# sourceMappingURL=LeftPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeftPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/components/LeftPanel.tsx"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACtB,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,GACd,EAAE,cAAc,2CAgChB"}
1
+ {"version":3,"file":"LeftPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/components/LeftPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,cAAc;IACtB,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,SAAS,4CAsCpB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
- import { cn as s } from "../../utils/cn.js";
3
- import { BlockSelector as n } from "../BlockSelector.js";
4
- function b({
2
+ import s from "react";
3
+ import { cn as n } from "../../utils/cn.js";
4
+ import { BlockSelector as f } from "../BlockSelector.js";
5
+ const h = s.memo(function({
5
6
  currentPage: e,
6
- selectedBlockId: l,
7
- isPaletteSelected: o,
7
+ selectedBlockId: a,
8
+ isPaletteSelected: l,
8
9
  onSelectBlock: t,
9
10
  onDeleteBlock: d
10
11
  }) {
@@ -13,25 +14,25 @@ function b({
13
14
  "button",
14
15
  {
15
16
  onClick: () => t("palette-selector"),
16
- className: s(
17
+ className: n(
17
18
  "w-full px-2 py-1.5 text-xs font-medium rounded transition-all",
18
- o ? "bg-blue-500 text-white" : "bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600"
19
+ l ? "bg-blue-500 text-white" : "bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600"
19
20
  ),
20
21
  children: "🎨 Paletas de Cores"
21
22
  }
22
23
  ) }),
23
24
  e && /* @__PURE__ */ r("div", { className: "flex-1 flex flex-col overflow-hidden min-h-0", children: /* @__PURE__ */ r(
24
- n,
25
+ f,
25
26
  {
26
- structure: e.structure?.filter((a) => a?.id && a?.type) || [],
27
- selectedBlockId: l,
27
+ structure: e.structure?.filter((o) => o?.id && o?.type) || [],
28
+ selectedBlockId: a,
28
29
  onSelectBlock: t,
29
30
  onDeleteBlock: d
30
31
  }
31
32
  ) })
32
33
  ] });
33
- }
34
+ });
34
35
  export {
35
- b as LeftPanel
36
+ h as LeftPanel
36
37
  };
37
38
  //# sourceMappingURL=LeftPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeftPanel.js","sources":["../../../src/editor/components/LeftPanel.tsx"],"sourcesContent":["import { cn } from \"../../utils/cn\";\nimport { BlockSelector } from \"../BlockSelector\";\n\ninterface LeftPanelProps {\n currentPage: any;\n selectedBlockId: string | null;\n isPaletteSelected: boolean;\n onSelectBlock: (id: string | null) => void;\n onDeleteBlock: (id: string) => void;\n}\n\nexport function LeftPanel({\n currentPage,\n selectedBlockId,\n isPaletteSelected,\n onSelectBlock,\n onDeleteBlock,\n}: LeftPanelProps) {\n return (\n <div className=\"w-64 flex-shrink-0 border-r border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col\">\n {/* Paletas de Cores */}\n <div className=\"flex-shrink-0 p-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50\">\n <button\n onClick={() => onSelectBlock(\"palette-selector\")}\n className={cn(\n \"w-full px-2 py-1.5 text-xs font-medium rounded transition-all\",\n isPaletteSelected\n ? \"bg-blue-500 text-white\"\n : \"bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600\",\n )}\n >\n 🎨 Paletas de Cores\n </button>\n </div>\n {/* Lista de blocos da página atual */}\n {currentPage && (\n <div className=\"flex-1 flex flex-col overflow-hidden min-h-0\">\n <BlockSelector\n structure={\n currentPage.structure?.filter((b: any) => b?.id && b?.type) || []\n }\n selectedBlockId={selectedBlockId}\n onSelectBlock={onSelectBlock}\n onDeleteBlock={onDeleteBlock}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":["LeftPanel","currentPage","selectedBlockId","isPaletteSelected","onSelectBlock","onDeleteBlock","jsxs","jsx","cn","BlockSelector","b"],"mappings":";;;AAWO,SAASA,EAAU;AAAA,EACxB,aAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AACF,GAAmB;AACjB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,kGAEb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,kGACb,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAMH,EAAc,kBAAkB;AAAA,QAC/C,WAAWI;AAAA,UACT;AAAA,UACAL,IACI,2BACA;AAAA,QAAA;AAAA,QAEP,UAAA;AAAA,MAAA;AAAA,IAAA,GAGH;AAAA,IAECF,KACC,gBAAAM,EAAC,OAAA,EAAI,WAAU,gDACb,UAAA,gBAAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,WACER,EAAY,WAAW,OAAO,CAACS,MAAWA,GAAG,MAAMA,GAAG,IAAI,KAAK,CAAA;AAAA,QAEjE,iBAAAR;AAAA,QACA,eAAAE;AAAA,QACA,eAAAC;AAAA,MAAA;AAAA,IAAA,EACF,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"LeftPanel.js","sources":["../../../src/editor/components/LeftPanel.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { BlockSelector } from \"../BlockSelector\";\n\ninterface LeftPanelProps {\n currentPage: any;\n selectedBlockId: string | null;\n isPaletteSelected: boolean;\n onSelectBlock: (id: string | null) => void;\n onDeleteBlock: (id: string) => void;\n}\n\nexport const LeftPanel = React.memo(function LeftPanel({\n currentPage,\n selectedBlockId,\n isPaletteSelected,\n onSelectBlock,\n onDeleteBlock,\n}: LeftPanelProps) {\n return (\n <div className=\"w-64 flex-shrink-0 border-r border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col\">\n {/* Paletas de Cores */}\n <div className=\"flex-shrink-0 p-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50\">\n <button\n onClick={() => onSelectBlock(\"palette-selector\")}\n className={cn(\n \"w-full px-2 py-1.5 text-xs font-medium rounded transition-all\",\n isPaletteSelected\n ? \"bg-blue-500 text-white\"\n : \"bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600\",\n )}\n >\n 🎨 Paletas de Cores\n </button>\n </div>\n {/* Lista de blocos da página atual */}\n {currentPage && (\n <div className=\"flex-1 flex flex-col overflow-hidden min-h-0\">\n <BlockSelector\n structure={\n currentPage.structure?.filter((b: any) => b?.id && b?.type) || []\n }\n selectedBlockId={selectedBlockId}\n onSelectBlock={onSelectBlock}\n onDeleteBlock={onDeleteBlock}\n />\n </div>\n )}\n </div>\n );\n});\n"],"names":["LeftPanel","React","currentPage","selectedBlockId","isPaletteSelected","onSelectBlock","onDeleteBlock","jsxs","jsx","cn","BlockSelector","b"],"mappings":";;;;AAYO,MAAMA,IAAYC,EAAM,KAAK,SAAmB;AAAA,EACrD,aAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AACF,GAAmB;AACjB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,kGAEb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,kGACb,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAMH,EAAc,kBAAkB;AAAA,QAC/C,WAAWI;AAAA,UACT;AAAA,UACAL,IACI,2BACA;AAAA,QAAA;AAAA,QAEP,UAAA;AAAA,MAAA;AAAA,IAAA,GAGH;AAAA,IAECF,KACC,gBAAAM,EAAC,OAAA,EAAI,WAAU,gDACb,UAAA,gBAAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,WACER,EAAY,WAAW,OAAO,CAACS,MAAWA,GAAG,MAAMA,GAAG,IAAI,KAAK,CAAA;AAAA,QAEjE,iBAAAR;AAAA,QACA,eAAAE;AAAA,QACA,eAAAC;AAAA,MAAA;AAAA,IAAA,EACF,CACF;AAAA,EAAA,GAEJ;AAEJ,CAAC;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingSpinner.d.ts","sourceRoot":"","sources":["../../../src/editor/components/LoadingSpinner.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,cAAc,4CA8B7B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingSpinner.js","sources":["../../../src/editor/components/LoadingSpinner.tsx"],"sourcesContent":["/**\n * Loading Spinner\n * Componente de loading usado em Suspense boundaries\n */\n\nexport function LoadingSpinner() {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: \"100%\",\n minHeight: \"200px\",\n }}\n >\n <div\n style={{\n width: \"40px\",\n height: \"40px\",\n border: \"4px solid #f3f4f6\",\n borderTop: \"4px solid #3b82f6\",\n borderRadius: \"50%\",\n animation: \"spin 1s linear infinite\",\n }}\n />\n <style>{`\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `}</style>\n </div>\n );\n}\n"],"names":["LoadingSpinner","jsxs","jsx"],"mappings":";AAKO,SAASA,IAAiB;AAC/B,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,MAAA;AAAA,MAGb,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,QAAQ;AAAA,cACR,WAAW;AAAA,cACX,cAAc;AAAA,cACd,WAAW;AAAA,YAAA;AAAA,UACb;AAAA,QAAA;AAAA,0BAED,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAKN;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGR;"}
@@ -1,11 +1,17 @@
1
- import { UploadConfig } from '../LandingPageEditorV2';
1
+ import { default as React } from 'react';
2
+ import { UploadConfig } from '../LandingPageEditor';
3
+ import { SiteDocument } from '../../engine';
2
4
  interface RightPanelProps {
3
5
  isPaletteSelected: boolean;
4
6
  selectedBlock: any;
5
7
  onPaletteChange: (palette: any) => void;
6
8
  onUpdateBlock: (updates: Record<string, any>) => void;
7
9
  uploadConfig?: UploadConfig;
10
+ document?: SiteDocument;
11
+ currentPageId?: string;
12
+ /** When set, the matching property group opens and scrolls into view */
13
+ focusedGroup?: string | null;
8
14
  }
9
- export declare function RightPanel({ isPaletteSelected, selectedBlock, onPaletteChange, onUpdateBlock, uploadConfig, }: RightPanelProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare const RightPanel: React.NamedExoticComponent<RightPanelProps>;
10
16
  export {};
11
17
  //# sourceMappingURL=RightPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RightPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/components/RightPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAU3D,UAAU,eAAe;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,UAAU,CAAC,EACzB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,aAAa,EACb,YAAY,GACb,EAAE,eAAe,2CA8BjB"}
1
+ {"version":3,"file":"RightPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/components/RightPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAUjD,UAAU,eAAe;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,UAAU,6CA0CrB,CAAC"}
@@ -1,37 +1,42 @@
1
- import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
- import { lazy as o, Suspense as n } from "react";
3
- import { LoadingSpinner as c } from "../../components/LoadingSpinner.js";
4
- const s = o(
1
+ import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
+ import f, { Suspense as h, lazy as o } from "react";
3
+ import { LoadingSpinner as p } from "./LoadingSpinner.js";
4
+ const x = o(
5
5
  () => import("../PropertyEditor/index.js").then((r) => ({ default: r.BlockPropertyEditor }))
6
- ), m = o(
6
+ ), g = o(
7
7
  () => import("../PaletteSelector.js").then((r) => ({ default: r.PaletteSelector }))
8
- );
9
- function x({
10
- isPaletteSelected: r,
8
+ ), v = f.memo(function({
9
+ isPaletteSelected: a,
11
10
  selectedBlock: t,
12
- onPaletteChange: a,
13
- onUpdateBlock: l,
14
- uploadConfig: d
11
+ onPaletteChange: l,
12
+ onUpdateBlock: d,
13
+ uploadConfig: i,
14
+ document: n,
15
+ currentPageId: c,
16
+ focusedGroup: s
15
17
  }) {
16
- return /* @__PURE__ */ e("div", { className: "w-80 flex-shrink-0 border-l border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden flex flex-col", children: /* @__PURE__ */ e(n, { fallback: /* @__PURE__ */ e(c, {}), children: r ? /* @__PURE__ */ i("div", { className: "p-4 overflow-y-auto", children: [
18
+ return /* @__PURE__ */ e("div", { className: "w-80 flex-shrink-0 border-l border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden flex flex-col", children: /* @__PURE__ */ e(h, { fallback: /* @__PURE__ */ e(p, {}), children: a ? /* @__PURE__ */ m("div", { className: "p-4 overflow-y-auto", children: [
17
19
  /* @__PURE__ */ e("h2", { className: "text-sm font-semibold text-gray-800 dark:text-gray-100 mb-4", children: "Escolha uma Paleta de Cores" }),
18
20
  /* @__PURE__ */ e(
19
- m,
21
+ g,
20
22
  {
21
23
  selectedPalette: void 0,
22
- onPaletteChange: a
24
+ onPaletteChange: l
23
25
  }
24
26
  )
25
27
  ] }) : t ? /* @__PURE__ */ e("div", { className: "overflow-y-auto overflow-x-hidden flex-1", children: /* @__PURE__ */ e(
26
- s,
28
+ x,
27
29
  {
28
30
  block: t,
29
- onUpdate: l,
30
- uploadConfig: d
31
+ document: n,
32
+ currentPageId: c,
33
+ onUpdate: d,
34
+ uploadConfig: i,
35
+ focusedGroup: s
31
36
  }
32
37
  ) }) : /* @__PURE__ */ e("div", { className: "p-4 text-center text-gray-500 dark:text-gray-400", children: "Selecione um bloco para editar" }) }) });
33
- }
38
+ });
34
39
  export {
35
- x as RightPanel
40
+ v as RightPanel
36
41
  };
37
42
  //# sourceMappingURL=RightPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RightPanel.js","sources":["../../../src/editor/components/RightPanel.tsx"],"sourcesContent":["import { lazy, Suspense } from \"react\";\nimport { LoadingSpinner } from \"../../components/LoadingSpinner\";\nimport type { UploadConfig } from \"../LandingPageEditorV2\";\n\n// Lazy load componentes pesados do editor\nconst BlockPropertyEditor = lazy(() =>\n import(\"../PropertyEditor\").then(module => ({ default: module.BlockPropertyEditor }))\n);\nconst PaletteSelector = lazy(() =>\n import(\"../PaletteSelector\").then(module => ({ default: module.PaletteSelector }))\n);\n\ninterface RightPanelProps {\n isPaletteSelected: boolean;\n selectedBlock: any;\n onPaletteChange: (palette: any) => void;\n onUpdateBlock: (updates: Record<string, any>) => void;\n uploadConfig?: UploadConfig;\n}\n\nexport function RightPanel({\n isPaletteSelected,\n selectedBlock,\n onPaletteChange,\n onUpdateBlock,\n uploadConfig,\n}: RightPanelProps) {\n return (\n <div className=\"w-80 flex-shrink-0 border-l border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden flex flex-col\">\n <Suspense fallback={<LoadingSpinner />}>\n {isPaletteSelected ? (\n <div className=\"p-4 overflow-y-auto\">\n <h2 className=\"text-sm font-semibold text-gray-800 dark:text-gray-100 mb-4\">\n Escolha uma Paleta de Cores\n </h2>\n <PaletteSelector\n selectedPalette={undefined}\n onPaletteChange={onPaletteChange}\n />\n </div>\n ) : selectedBlock ? (\n <div className=\"overflow-y-auto overflow-x-hidden flex-1\">\n <BlockPropertyEditor\n block={selectedBlock}\n onUpdate={onUpdateBlock}\n uploadConfig={uploadConfig}\n />\n </div>\n ) : (\n <div className=\"p-4 text-center text-gray-500 dark:text-gray-400\">\n Selecione um bloco para editar\n </div>\n )}\n </Suspense>\n </div>\n );\n}\n"],"names":["BlockPropertyEditor","lazy","module","PaletteSelector","RightPanel","isPaletteSelected","selectedBlock","onPaletteChange","onUpdateBlock","uploadConfig","jsx","Suspense","LoadingSpinner","jsxs"],"mappings":";;;AAKA,MAAMA,IAAsBC;AAAA,EAAK,MAC/B,OAAO,4BAAmB,EAAE,KAAK,QAAW,EAAE,SAASC,EAAO,sBAAsB;AACtF,GACMC,IAAkBF;AAAA,EAAK,MAC3B,OAAO,uBAAoB,EAAE,KAAK,QAAW,EAAE,SAASC,EAAO,kBAAkB;AACnF;AAUO,SAASE,EAAW;AAAA,EACzB,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AACF,GAAoB;AAClB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,4HACb,4BAACC,GAAA,EAAS,UAAU,gBAAAD,EAACE,GAAA,CAAA,CAAe,GACjC,UAAAP,IACC,gBAAAQ,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAA,gBAAAH,EAAC,MAAA,EAAG,WAAU,+DAA8D,UAAA,+BAE5E;AAAA,IACA,gBAAAA;AAAA,MAACP;AAAA,MAAA;AAAA,QACC,iBAAiB;AAAA,QACjB,iBAAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF,IACED,IACF,gBAAAI,EAAC,OAAA,EAAI,WAAU,4CACb,UAAA,gBAAAA;AAAA,IAACV;AAAA,IAAA;AAAA,MACC,OAAOM;AAAA,MACP,UAAUE;AAAA,MACV,cAAAC;AAAA,IAAA;AAAA,EAAA,EACF,CACF,IAEA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oDAAmD,UAAA,iCAAA,CAElE,GAEJ,GACF;AAEJ;"}
1
+ {"version":3,"file":"RightPanel.js","sources":["../../../src/editor/components/RightPanel.tsx"],"sourcesContent":["import React, { lazy, Suspense } from \"react\";\nimport { LoadingSpinner } from \"./LoadingSpinner\";\nimport type { UploadConfig } from \"../LandingPageEditor\";\nimport type { SiteDocument } from \"../../engine\";\n\n// Lazy load componentes pesados do editor\nconst BlockPropertyEditor = lazy(() =>\n import(\"../PropertyEditor\").then(module => ({ default: module.BlockPropertyEditor }))\n);\nconst PaletteSelector = lazy(() =>\n import(\"../PaletteSelector\").then(module => ({ default: module.PaletteSelector }))\n);\n\ninterface RightPanelProps {\n isPaletteSelected: boolean;\n selectedBlock: any;\n onPaletteChange: (palette: any) => void;\n onUpdateBlock: (updates: Record<string, any>) => void;\n uploadConfig?: UploadConfig;\n document?: SiteDocument;\n currentPageId?: string;\n /** When set, the matching property group opens and scrolls into view */\n focusedGroup?: string | null;\n}\n\nexport const RightPanel = React.memo(function RightPanel({\n isPaletteSelected,\n selectedBlock,\n onPaletteChange,\n onUpdateBlock,\n uploadConfig,\n document,\n currentPageId,\n focusedGroup,\n}: RightPanelProps) {\n return (\n <div className=\"w-80 flex-shrink-0 border-l border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden flex flex-col\">\n <Suspense fallback={<LoadingSpinner />}>\n {isPaletteSelected ? (\n <div className=\"p-4 overflow-y-auto\">\n <h2 className=\"text-sm font-semibold text-gray-800 dark:text-gray-100 mb-4\">\n Escolha uma Paleta de Cores\n </h2>\n <PaletteSelector\n selectedPalette={undefined}\n onPaletteChange={onPaletteChange}\n />\n </div>\n ) : selectedBlock ? (\n <div className=\"overflow-y-auto overflow-x-hidden flex-1\">\n <BlockPropertyEditor\n block={selectedBlock}\n document={document}\n currentPageId={currentPageId}\n onUpdate={onUpdateBlock}\n uploadConfig={uploadConfig}\n focusedGroup={focusedGroup}\n />\n </div>\n ) : (\n <div className=\"p-4 text-center text-gray-500 dark:text-gray-400\">\n Selecione um bloco para editar\n </div>\n )}\n </Suspense>\n </div>\n );\n});\n"],"names":["BlockPropertyEditor","lazy","module","PaletteSelector","RightPanel","React","isPaletteSelected","selectedBlock","onPaletteChange","onUpdateBlock","uploadConfig","document","currentPageId","focusedGroup","jsx","Suspense","LoadingSpinner","jsxs"],"mappings":";;;AAMA,MAAMA,IAAsBC;AAAA,EAAK,MAC/B,OAAO,4BAAmB,EAAE,KAAK,QAAW,EAAE,SAASC,EAAO,sBAAsB;AACtF,GACMC,IAAkBF;AAAA,EAAK,MAC3B,OAAO,uBAAoB,EAAE,KAAK,QAAW,EAAE,SAASC,EAAO,kBAAkB;AACnF,GAcaE,IAAaC,EAAM,KAAK,SAAoB;AAAA,EACvD,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AACF,GAAoB;AAClB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,4HACb,4BAACC,GAAA,EAAS,UAAU,gBAAAD,EAACE,GAAA,CAAA,CAAe,GACjC,UAAAV,IACC,gBAAAW,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAA,gBAAAH,EAAC,MAAA,EAAG,WAAU,+DAA8D,UAAA,+BAE5E;AAAA,IACA,gBAAAA;AAAA,MAACX;AAAA,MAAA;AAAA,QACC,iBAAiB;AAAA,QACjB,iBAAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF,IACED,IACF,gBAAAO,EAAC,OAAA,EAAI,WAAU,4CACb,UAAA,gBAAAA;AAAA,IAACd;AAAA,IAAA;AAAA,MACC,OAAOO;AAAA,MACP,UAAAI;AAAA,MACA,eAAAC;AAAA,MACA,UAAUH;AAAA,MACV,cAAAC;AAAA,MACA,cAAAG;AAAA,IAAA;AAAA,EAAA,EACF,CACF,IAEA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oDAAmD,UAAA,iCAAA,CAElE,GAEJ,GACF;AAEJ,CAAC;"}
@@ -1,3 +1,4 @@
1
+ import { default as React } from 'react';
1
2
  interface ToolbarProps {
2
3
  history: any;
3
4
  isSaving: boolean;
@@ -6,7 +7,10 @@ interface ToolbarProps {
6
7
  onSave: () => void;
7
8
  onPublish?: () => void;
8
9
  onReset: () => void;
10
+ /** Mostrar hover/seleção visual no preview */
11
+ showSelectionOverlay?: boolean;
12
+ onToggleSelectionOverlay?: () => void;
9
13
  }
10
- export declare function Toolbar({ history, isSaving, onUndo, onRedo, onSave, onPublish, onReset, }: ToolbarProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare const Toolbar: React.NamedExoticComponent<ToolbarProps>;
11
15
  export {};
12
16
  //# sourceMappingURL=Toolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/editor/components/Toolbar.tsx"],"names":[],"mappings":"AAIA,UAAU,YAAY;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAiCD,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,YAAY,2CAgEd"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/editor/components/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,YAAY;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAiCD,eAAO,MAAM,OAAO,0CA+FlB,CAAC"}
@@ -1,94 +1,110 @@
1
- import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
- import { cn as i } from "../../utils/cn.js";
3
- import m from "../../node_modules/lucide-react/dist/esm/icons/undo.js";
4
- import b from "../../node_modules/lucide-react/dist/esm/icons/redo.js";
5
- import p from "../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js";
6
- import h from "../../node_modules/lucide-react/dist/esm/icons/save.js";
7
- import u from "../../node_modules/lucide-react/dist/esm/icons/eye.js";
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ import u from "react";
3
+ import { Undo as x, Redo as h, RotateCcw as p, MousePointer2 as f, Save as k, Eye as y } from "lucide-react";
4
+ import { cn as o } from "../../utils/cn.js";
8
5
  function l({
9
- onClick: a,
10
- disabled: r,
11
- title: o,
6
+ onClick: s,
7
+ disabled: t,
8
+ title: r,
12
9
  icon: d
13
10
  }) {
14
11
  return /* @__PURE__ */ e(
15
12
  "button",
16
13
  {
17
- onClick: a,
18
- disabled: r,
19
- className: i(
14
+ onClick: s,
15
+ disabled: t,
16
+ className: o(
20
17
  "h-8 w-8 rounded-md text-xs font-medium transition-all cursor-pointer",
21
18
  "border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300",
22
19
  "hover:bg-gray-100 dark:hover:bg-gray-800",
23
20
  "disabled:opacity-40 disabled:cursor-not-allowed",
24
21
  "flex items-center justify-center"
25
22
  ),
26
- title: o,
23
+ title: r,
27
24
  children: d
28
25
  }
29
26
  );
30
27
  }
31
- function N({
32
- history: a,
28
+ const R = u.memo(function({
29
+ history: t,
33
30
  isSaving: r,
34
- onUndo: o,
35
- onRedo: d,
36
- onSave: n,
37
- onPublish: s,
38
- onReset: c
31
+ onUndo: d,
32
+ onRedo: c,
33
+ onSave: b,
34
+ onPublish: n,
35
+ onReset: m,
36
+ showSelectionOverlay: g,
37
+ onToggleSelectionOverlay: i
39
38
  }) {
40
- return /* @__PURE__ */ t("div", { className: "h-12 flex-shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white/80 dark:bg-gray-900/80 backdrop-blur-md flex items-center justify-between px-4", children: [
39
+ return /* @__PURE__ */ a("div", { className: "h-12 flex-shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white/80 dark:bg-gray-900/80 backdrop-blur-md flex items-center justify-between px-4", children: [
41
40
  /* @__PURE__ */ e("h1", { className: "text-base font-semibold text-gray-800 dark:text-gray-100", children: "Editor de Landing Page" }),
42
- /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
41
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2", children: [
43
42
  /* @__PURE__ */ e(
44
43
  l,
45
44
  {
46
- onClick: o,
47
- disabled: !a.canUndo(),
45
+ onClick: d,
46
+ disabled: !t.canUndo(),
48
47
  title: "Desfazer",
49
- icon: /* @__PURE__ */ e(m, { className: "w-4 h-4" })
48
+ icon: /* @__PURE__ */ e(x, { className: "w-4 h-4" })
50
49
  }
51
50
  ),
52
51
  /* @__PURE__ */ e(
53
52
  l,
54
53
  {
55
- onClick: d,
56
- disabled: !a.canRedo(),
54
+ onClick: c,
55
+ disabled: !t.canRedo(),
57
56
  title: "Refazer",
58
- icon: /* @__PURE__ */ e(b, { className: "w-4 h-4" })
57
+ icon: /* @__PURE__ */ e(h, { className: "w-4 h-4" })
59
58
  }
60
59
  ),
61
60
  /* @__PURE__ */ e(
62
61
  l,
63
62
  {
64
- onClick: c,
63
+ onClick: m,
65
64
  title: "Resetar Template",
66
65
  icon: /* @__PURE__ */ e(p, { className: "w-4 h-4" })
67
66
  }
68
67
  ),
69
- /* @__PURE__ */ t(
68
+ /* @__PURE__ */ e("div", { className: "w-px h-5 bg-gray-300 dark:bg-gray-600 mx-0.5" }),
69
+ i && /* @__PURE__ */ a(
70
70
  "button",
71
71
  {
72
- onClick: n,
72
+ onClick: i,
73
+ className: o(
74
+ "h-8 px-2 rounded-md text-xs font-medium transition-all cursor-pointer",
75
+ "flex items-center gap-1.5",
76
+ g ? "bg-blue-100 dark:bg-blue-900/50 text-blue-700 dark:text-blue-300 border border-blue-300 dark:border-blue-700" : "border border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800"
77
+ ),
78
+ title: "Mostrar Seleção",
79
+ children: [
80
+ /* @__PURE__ */ e(f, { className: "w-3.5 h-3.5" }),
81
+ /* @__PURE__ */ e("span", { className: "hidden sm:inline", children: "Seleção" })
82
+ ]
83
+ }
84
+ ),
85
+ /* @__PURE__ */ a(
86
+ "button",
87
+ {
88
+ onClick: b,
73
89
  disabled: r,
74
- className: i(
90
+ className: o(
75
91
  "h-8 px-3 rounded-md text-xs font-medium transition-all cursor-pointer",
76
92
  "bg-gradient-to-r from-green-500 to-emerald-600 hover:from-green-600 hover:to-emerald-700 text-white shadow-lg hover:shadow-xl",
77
93
  "disabled:opacity-60 disabled:cursor-not-allowed",
78
94
  "flex items-center gap-1.5 hover:scale-[1.02] active:scale-[0.98]"
79
95
  ),
80
96
  children: [
81
- /* @__PURE__ */ e(h, { className: "w-3.5 h-3.5" }),
97
+ /* @__PURE__ */ e(k, { className: "w-3.5 h-3.5" }),
82
98
  r ? "Salvando..." : "Salvar"
83
99
  ]
84
100
  }
85
101
  ),
86
- s && /* @__PURE__ */ t(
102
+ n && /* @__PURE__ */ a(
87
103
  "button",
88
104
  {
89
- onClick: s,
105
+ onClick: n,
90
106
  disabled: r,
91
- className: i(
107
+ className: o(
92
108
  "h-8 px-3 rounded-md text-xs font-medium transition-all cursor-pointer",
93
109
  "border-2 border-purple-500 text-purple-600 dark:text-purple-400 bg-transparent",
94
110
  "hover:bg-purple-50 dark:hover:bg-purple-950/50",
@@ -96,15 +112,15 @@ function N({
96
112
  "flex items-center gap-1.5 hover:scale-[1.02] active:scale-[0.98]"
97
113
  ),
98
114
  children: [
99
- /* @__PURE__ */ e(u, { className: "w-3.5 h-3.5" }),
115
+ /* @__PURE__ */ e(y, { className: "w-3.5 h-3.5" }),
100
116
  "Publicar"
101
117
  ]
102
118
  }
103
119
  )
104
120
  ] })
105
121
  ] });
106
- }
122
+ });
107
123
  export {
108
- N as Toolbar
124
+ R as Toolbar
109
125
  };
110
126
  //# sourceMappingURL=Toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sources":["../../../src/editor/components/Toolbar.tsx"],"sourcesContent":["import React from \"react\";\nimport { Save, Eye, Undo, Redo, RotateCcw } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface ToolbarProps {\n history: any;\n isSaving: boolean;\n onUndo: () => void;\n onRedo: () => void;\n onSave: () => void;\n onPublish?: () => void;\n onReset: () => void;\n}\n\ninterface ToolbarButtonProps {\n onClick: () => void;\n disabled?: boolean;\n title: string;\n icon: React.ReactNode;\n}\n\nfunction ToolbarButton({\n onClick,\n disabled,\n title,\n icon,\n}: ToolbarButtonProps) {\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n className={cn(\n \"h-8 w-8 rounded-md text-xs font-medium transition-all cursor-pointer\",\n \"border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300\",\n \"hover:bg-gray-100 dark:hover:bg-gray-800\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n \"flex items-center justify-center\",\n )}\n title={title}\n >\n {icon}\n </button>\n );\n}\n\nexport function Toolbar({\n history,\n isSaving,\n onUndo,\n onRedo,\n onSave,\n onPublish,\n onReset,\n}: ToolbarProps) {\n return (\n <div className=\"h-12 flex-shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white/80 dark:bg-gray-900/80 backdrop-blur-md flex items-center justify-between px-4\">\n <h1 className=\"text-base font-semibold text-gray-800 dark:text-gray-100\">\n Editor de Landing Page\n </h1>\n\n <div className=\"flex items-center gap-2\">\n {/* Undo/Redo */}\n <ToolbarButton\n onClick={onUndo}\n disabled={!history.canUndo()}\n title=\"Desfazer\"\n icon={<Undo className=\"w-4 h-4\" />}\n />\n <ToolbarButton\n onClick={onRedo}\n disabled={!history.canRedo()}\n title=\"Refazer\"\n icon={<Redo className=\"w-4 h-4\" />}\n />\n\n {/* Reset */}\n <ToolbarButton\n onClick={onReset}\n title=\"Resetar Template\"\n icon={<RotateCcw className=\"w-4 h-4\" />}\n />\n\n {/* Save */}\n <button\n onClick={onSave}\n disabled={isSaving}\n className={cn(\n \"h-8 px-3 rounded-md text-xs font-medium transition-all cursor-pointer\",\n \"bg-gradient-to-r from-green-500 to-emerald-600 hover:from-green-600 hover:to-emerald-700 text-white shadow-lg hover:shadow-xl\",\n \"disabled:opacity-60 disabled:cursor-not-allowed\",\n \"flex items-center gap-1.5 hover:scale-[1.02] active:scale-[0.98]\",\n )}\n >\n <Save className=\"w-3.5 h-3.5\" />\n {isSaving ? \"Salvando...\" : \"Salvar\"}\n </button>\n\n {/* Publish */}\n {onPublish && (\n <button\n onClick={onPublish}\n disabled={isSaving}\n className={cn(\n \"h-8 px-3 rounded-md text-xs font-medium transition-all cursor-pointer\",\n \"border-2 border-purple-500 text-purple-600 dark:text-purple-400 bg-transparent\",\n \"hover:bg-purple-50 dark:hover:bg-purple-950/50\",\n \"disabled:opacity-60 disabled:cursor-not-allowed\",\n \"flex items-center gap-1.5 hover:scale-[1.02] active:scale-[0.98]\",\n )}\n >\n <Eye className=\"w-3.5 h-3.5\" />\n Publicar\n </button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["ToolbarButton","onClick","disabled","title","icon","jsx","cn","Toolbar","history","isSaving","onUndo","onRedo","onSave","onPublish","onReset","jsxs","Undo","Redo","RotateCcw","Save","Eye"],"mappings":";;;;;;;AAqBA,SAASA,EAAc;AAAA,EACrB,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AACF,GAAuB;AACrB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAAJ;AAAA,MACA,UAAAC;AAAA,MACA,WAAWI;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,OAAAH;AAAA,MAEC,UAAAC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASG,EAAQ;AAAA,EACtB,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AACF,GAAiB;AACf,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,4JACb,UAAA;AAAA,IAAA,gBAAAV,EAAC,MAAA,EAAG,WAAU,4DAA2D,UAAA,0BAEzE;AAAA,IAEA,gBAAAU,EAAC,OAAA,EAAI,WAAU,2BAEb,UAAA;AAAA,MAAA,gBAAAV;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,SAASU;AAAA,UACT,UAAU,CAACF,EAAQ,QAAA;AAAA,UACnB,OAAM;AAAA,UACN,MAAM,gBAAAH,EAACW,GAAA,EAAK,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAElC,gBAAAX;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,SAASW;AAAA,UACT,UAAU,CAACH,EAAQ,QAAA;AAAA,UACnB,OAAM;AAAA,UACN,MAAM,gBAAAH,EAACY,GAAA,EAAK,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAIlC,gBAAAZ;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,SAASc;AAAA,UACT,OAAM;AAAA,UACN,MAAM,gBAAAT,EAACa,GAAA,EAAU,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAIvC,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASH;AAAA,UACT,UAAUH;AAAA,UACV,WAAWH;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAGF,UAAA;AAAA,YAAA,gBAAAD,EAACc,GAAA,EAAK,WAAU,cAAA,CAAc;AAAA,YAC7BV,IAAW,gBAAgB;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAI7BI,KACC,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASF;AAAA,UACT,UAAUJ;AAAA,UACV,WAAWH;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAGF,UAAA;AAAA,YAAA,gBAAAD,EAACe,GAAA,EAAI,WAAU,cAAA,CAAc;AAAA,YAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjC,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"Toolbar.js","sources":["../../../src/editor/components/Toolbar.tsx"],"sourcesContent":["import React from \"react\";\nimport { Save, Eye, Undo, Redo, RotateCcw, MousePointer2 } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface ToolbarProps {\n history: any;\n isSaving: boolean;\n onUndo: () => void;\n onRedo: () => void;\n onSave: () => void;\n onPublish?: () => void;\n onReset: () => void;\n /** Mostrar hover/seleção visual no preview */\n showSelectionOverlay?: boolean;\n onToggleSelectionOverlay?: () => void;\n}\n\ninterface ToolbarButtonProps {\n onClick: () => void;\n disabled?: boolean;\n title: string;\n icon: React.ReactNode;\n}\n\nfunction ToolbarButton({\n onClick,\n disabled,\n title,\n icon,\n}: ToolbarButtonProps) {\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n className={cn(\n \"h-8 w-8 rounded-md text-xs font-medium transition-all cursor-pointer\",\n \"border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300\",\n \"hover:bg-gray-100 dark:hover:bg-gray-800\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n \"flex items-center justify-center\",\n )}\n title={title}\n >\n {icon}\n </button>\n );\n}\n\nexport const Toolbar = React.memo(function Toolbar({\n history,\n isSaving,\n onUndo,\n onRedo,\n onSave,\n onPublish,\n onReset,\n showSelectionOverlay,\n onToggleSelectionOverlay,\n}: ToolbarProps) {\n return (\n <div className=\"h-12 flex-shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white/80 dark:bg-gray-900/80 backdrop-blur-md flex items-center justify-between px-4\">\n <h1 className=\"text-base font-semibold text-gray-800 dark:text-gray-100\">\n Editor de Landing Page\n </h1>\n\n <div className=\"flex items-center gap-2\">\n {/* Undo/Redo */}\n <ToolbarButton\n onClick={onUndo}\n disabled={!history.canUndo()}\n title=\"Desfazer\"\n icon={<Undo className=\"w-4 h-4\" />}\n />\n <ToolbarButton\n onClick={onRedo}\n disabled={!history.canRedo()}\n title=\"Refazer\"\n icon={<Redo className=\"w-4 h-4\" />}\n />\n\n {/* Reset */}\n <ToolbarButton\n onClick={onReset}\n title=\"Resetar Template\"\n icon={<RotateCcw className=\"w-4 h-4\" />}\n />\n\n {/* Separator */}\n <div className=\"w-px h-5 bg-gray-300 dark:bg-gray-600 mx-0.5\" />\n\n {/* Selection Overlay Toggle */}\n {onToggleSelectionOverlay && (\n <button\n onClick={onToggleSelectionOverlay}\n className={cn(\n \"h-8 px-2 rounded-md text-xs font-medium transition-all cursor-pointer\",\n \"flex items-center gap-1.5\",\n showSelectionOverlay\n ? \"bg-blue-100 dark:bg-blue-900/50 text-blue-700 dark:text-blue-300 border border-blue-300 dark:border-blue-700\"\n : \"border border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800\",\n )}\n title=\"Mostrar Seleção\"\n >\n <MousePointer2 className=\"w-3.5 h-3.5\" />\n <span className=\"hidden sm:inline\">Seleção</span>\n </button>\n )}\n\n {/* Save */}\n <button\n onClick={onSave}\n disabled={isSaving}\n className={cn(\n \"h-8 px-3 rounded-md text-xs font-medium transition-all cursor-pointer\",\n \"bg-gradient-to-r from-green-500 to-emerald-600 hover:from-green-600 hover:to-emerald-700 text-white shadow-lg hover:shadow-xl\",\n \"disabled:opacity-60 disabled:cursor-not-allowed\",\n \"flex items-center gap-1.5 hover:scale-[1.02] active:scale-[0.98]\",\n )}\n >\n <Save className=\"w-3.5 h-3.5\" />\n {isSaving ? \"Salvando...\" : \"Salvar\"}\n </button>\n\n {/* Publish */}\n {onPublish && (\n <button\n onClick={onPublish}\n disabled={isSaving}\n className={cn(\n \"h-8 px-3 rounded-md text-xs font-medium transition-all cursor-pointer\",\n \"border-2 border-purple-500 text-purple-600 dark:text-purple-400 bg-transparent\",\n \"hover:bg-purple-50 dark:hover:bg-purple-950/50\",\n \"disabled:opacity-60 disabled:cursor-not-allowed\",\n \"flex items-center gap-1.5 hover:scale-[1.02] active:scale-[0.98]\",\n )}\n >\n <Eye className=\"w-3.5 h-3.5\" />\n Publicar\n </button>\n )}\n </div>\n </div>\n );\n});\n"],"names":["ToolbarButton","onClick","disabled","title","icon","jsx","cn","Toolbar","React","history","isSaving","onUndo","onRedo","onSave","onPublish","onReset","showSelectionOverlay","onToggleSelectionOverlay","jsxs","Undo","Redo","RotateCcw","MousePointer2","Save","Eye"],"mappings":";;;;AAwBA,SAASA,EAAc;AAAA,EACrB,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AACF,GAAuB;AACrB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAAJ;AAAA,MACA,UAAAC;AAAA,MACA,WAAWI;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,OAAAH;AAAA,MAEC,UAAAC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,MAAMG,IAAUC,EAAM,KAAK,SAAiB;AAAA,EACjD,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,0BAAAC;AACF,GAAiB;AACf,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,4JACb,UAAA;AAAA,IAAA,gBAAAb,EAAC,MAAA,EAAG,WAAU,4DAA2D,UAAA,0BAEzE;AAAA,IAEA,gBAAAa,EAAC,OAAA,EAAI,WAAU,2BAEb,UAAA;AAAA,MAAA,gBAAAb;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,SAASW;AAAA,UACT,UAAU,CAACF,EAAQ,QAAA;AAAA,UACnB,OAAM;AAAA,UACN,MAAM,gBAAAJ,EAACc,GAAA,EAAK,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAElC,gBAAAd;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,SAASY;AAAA,UACT,UAAU,CAACH,EAAQ,QAAA;AAAA,UACnB,OAAM;AAAA,UACN,MAAM,gBAAAJ,EAACe,GAAA,EAAK,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAIlC,gBAAAf;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,SAASe;AAAA,UACT,OAAM;AAAA,UACN,MAAM,gBAAAV,EAACgB,GAAA,EAAU,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAIvC,gBAAAhB,EAAC,OAAA,EAAI,WAAU,+CAAA,CAA+C;AAAA,MAG7DY,KACC,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASD;AAAA,UACT,WAAWX;AAAA,YACT;AAAA,YACA;AAAA,YACAU,IACI,iHACA;AAAA,UAAA;AAAA,UAEN,OAAM;AAAA,UAEN,UAAA;AAAA,YAAA,gBAAAX,EAACiB,GAAA,EAAc,WAAU,cAAA,CAAc;AAAA,YACvC,gBAAAjB,EAAC,QAAA,EAAK,WAAU,oBAAmB,UAAA,UAAA,CAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAK9C,gBAAAa;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASL;AAAA,UACT,UAAUH;AAAA,UACV,WAAWJ;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAGF,UAAA;AAAA,YAAA,gBAAAD,EAACkB,GAAA,EAAK,WAAU,cAAA,CAAc;AAAA,YAC7Bb,IAAW,gBAAgB;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAI7BI,KACC,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASJ;AAAA,UACT,UAAUJ;AAAA,UACV,WAAWJ;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAGF,UAAA;AAAA,YAAA,gBAAAD,EAACmB,GAAA,EAAI,WAAU,cAAA,CAAc;AAAA,YAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjC,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ,CAAC;"}
@@ -1,4 +1,4 @@
1
- import { SiteDocumentV2, SitePage, Block } from '../schema/siteDocument';
1
+ import { SiteDocument, SitePage, Block } from '../schema/siteDocument';
2
2
  import { ThemeTokens } from '../schema/themeTokens';
3
3
  export interface ExportPageToHtmlOptions {
4
4
  /** Página de referência para layout (navbar + footer). Quando a página atual não é a home, inclui navbar e footer desta página. */
@@ -9,7 +9,7 @@ export interface ExportPageToHtmlOptions {
9
9
  * @param basePath - Base path para links (ex.: /site ou /site/escola/:slug)
10
10
  * @param options - layoutFromPage: quando informado e diferente da página atual, inclui navbar (primeiro bloco navbar) e footer (último bloco) da página de referência
11
11
  */
12
- export declare function exportPageToHtml(page: SitePage, document: SiteDocumentV2, useCache?: boolean, basePath?: string, options?: ExportPageToHtmlOptions): string;
12
+ export declare function exportPageToHtml(page: SitePage, document: SiteDocument, useCache?: boolean, basePath?: string, options?: ExportPageToHtmlOptions): string;
13
13
  /**
14
14
  * Exporta apenas um bloco para HTML (para atualização parcial)
15
15
  */
@@ -19,13 +19,18 @@ export declare function exportBlockToHtml(block: Block, basePath?: string, theme
19
19
  */
20
20
  export declare function clearHtmlCache(): void;
21
21
  /**
22
- * Exporta documento completo para HTML (sanitizado)
22
+ * Exporta documento completo para HTML
23
+ *
24
+ * Nota: Não sanitiza o HTML pois exportPageToHtml() já gera HTML seguro
25
+ * (conteúdo de usuário é escapado via escapeHtml nos exporters).
26
+ * A sanitização anterior (sanitizeHtml) removia o <head> inteiro,
27
+ * perdendo CSS de tema, hover effects e landing page styles.
23
28
  */
24
- export declare function exportDocumentToHtml(document: SiteDocumentV2, pageId?: string): string;
29
+ export declare function exportDocumentToHtml(document: SiteDocument, pageId?: string): string;
25
30
  /**
26
31
  * Gera manifest de assets (imagens, fontes, etc)
27
32
  */
28
- export declare function generateAssetsManifest(document: SiteDocumentV2): Array<{
33
+ export declare function generateAssetsManifest(document: SiteDocument): Array<{
29
34
  type: string;
30
35
  url: string;
31
36
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"exportHtml.d.ts","sourceRoot":"","sources":["../../../src/engine/export/exportHtml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAA6B,WAAW,EAAE,MAAM,uBAAuB,CAAC;AA6Y/E,MAAM,WAAW,uBAAuB;IACtC,mIAAmI;IACnI,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,cAAc,EACxB,QAAQ,GAAE,OAAc,EACxB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAiHR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,WAAW,GAClB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,cAAc,GACvB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBtC"}
1
+ {"version":3,"file":"exportHtml.d.ts","sourceRoot":"","sources":["../../../src/engine/export/exportHtml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAA6B,WAAW,EAAE,MAAM,uBAAuB,CAAC;AA4Y/E,MAAM,WAAW,uBAAuB;IACtC,mIAAmI;IACnI,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAE,OAAc,EACxB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CA2HR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,WAAW,GAClB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,GACrB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBtC"}
@@ -1,9 +1,8 @@
1
- import { generateThemeCSSVariables as _ } from "../schema/themeTokens.js";
2
- import { sanitizeHtml as k } from "./sanitizeHtml.js";
3
- import { hashDocument as z } from "../../utils/documentHash.js";
4
- import { initializeExporters as E } from "./exporters/index.js";
5
- import { htmlExportRegistry as S } from "./exporters/HtmlExporter.js";
6
- const H = `
1
+ import { generateThemeCSSVariables as z } from "../schema/themeTokens.js";
2
+ import { hashDocument as E } from "../../utils/documentHash.js";
3
+ import { initializeExporters as S } from "./exporters/index.js";
4
+ import { htmlExportRegistry as H } from "./exporters/HtmlExporter.js";
5
+ const C = `
7
6
  /* Navbar engine (sg-navbar) - base e variações */
8
7
  .sg-navbar {
9
8
  display: flex;
@@ -302,41 +301,41 @@ const H = `
302
301
  font-size: 0.9rem;
303
302
  }
304
303
  }
305
- `, s = /* @__PURE__ */ new Map(), m = 50;
306
- function C() {
307
- if (s.size <= m) return;
304
+ `, s = /* @__PURE__ */ new Map(), h = 50;
305
+ function D() {
306
+ if (s.size <= h) return;
308
307
  const r = Array.from(s.entries()).sort(
309
308
  (t, a) => t[1].timestamp - a[1].timestamp
310
309
  );
311
- r.slice(0, r.length - m).forEach(([t]) => s.delete(t));
310
+ r.slice(0, r.length - h).forEach(([t]) => s.delete(t));
312
311
  }
313
- let v = !1;
314
- function d(r, e = 0, t, a) {
315
- v || (E(d), v = !0);
316
- const i = S.get(r.type);
317
- return i ? i(r, e, t, a) : `<div data-block-id="${r.id}" style="color: red; padding: 1rem; border: 2px dashed red;">Bloco desconhecido: ${r.type}</div>`;
312
+ let u = !1;
313
+ function l(r, e = 0, t, a) {
314
+ u || (S(l), u = !0);
315
+ const d = H.get(r.type);
316
+ return d ? d(r, e, t, a) : `<div data-block-id="${r.id}" style="color: red; padding: 1rem; border: 2px dashed red;">Bloco desconhecido: ${r.type}</div>`;
318
317
  }
319
- function D(r) {
318
+ function j(r) {
320
319
  return r ? String(r).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;") : "";
321
320
  }
322
- function j(r, e, t = !0, a, i) {
323
- const o = i?.layoutFromPage, f = z(e), h = o?.id ?? "", l = `${f}-${r.id}-${a ?? ""}-${h}`;
324
- if (t && s.has(l)) {
325
- const n = s.get(l);
321
+ function $(r, e, t = !0, a, d) {
322
+ const o = d?.layoutFromPage, w = E(e), y = o?.id ?? "", c = `${w}-${r.id}-${a ?? ""}-${y}`;
323
+ if (t && s.has(c)) {
324
+ const n = s.get(c);
326
325
  return n.timestamp = Date.now(), n.html;
327
326
  }
328
- const u = _(e.theme);
329
- let p = r.structure.map((n) => d(n, 0, a, e.theme)).join("");
327
+ const x = z(e.theme);
328
+ let p = r.structure.map((n) => l(n, 0, a, e.theme)).join("");
330
329
  if (o && o.id !== r.id && o.structure?.length) {
331
- const n = o.structure, g = n.find((y) => y.type === "navbar"), w = g ? d(g, 0, a, e.theme) : "", c = n.length > 1 ? n[n.length - 1] : null, x = c && c.type !== "navbar" ? d(c, 0, a, e.theme) : "";
332
- p = w + p + x;
330
+ const n = o.structure, _ = r.structure.some((i) => i.type === "navbar"), k = r.structure.some((i) => i.type === "footer"), m = _ ? null : n.find((i) => i.type === "navbar"), v = m ? l(m, 0, a, e.theme) : "", b = k ? null : n.find((i) => i.type === "footer"), f = b && b.type !== "navbar" ? l(b, 0, a, e.theme) : "";
331
+ (v || f) && (p = v + p + f);
333
332
  }
334
- const b = `<!DOCTYPE html>
333
+ const g = `<!DOCTYPE html>
335
334
  <html lang="pt-BR">
336
335
  <head>
337
336
  <meta charset="UTF-8">
338
337
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
339
- <title>${D(r.name)}</title>
338
+ <title>${j(r.name)}</title>
340
339
  <style>
341
340
  * {
342
341
  margin: 0;
@@ -351,10 +350,10 @@ function j(r, e, t = !0, a, i) {
351
350
  line-height: 1.6;
352
351
  color: var(--sg-text, #1f2937);
353
352
  }
354
- ${u}
353
+ ${x}
355
354
 
356
355
  /* Landing Page Styles */
357
- ${H}
356
+ ${C}
358
357
  </style>
359
358
  <script>
360
359
  // Smooth scroll para âncoras sem reload
@@ -395,20 +394,19 @@ function j(r, e, t = !0, a, i) {
395
394
  ${p}
396
395
  </body>
397
396
  </html>`;
398
- return t && (s.set(l, { html: b, timestamp: Date.now() }), C()), b;
397
+ return t && (s.set(c, { html: g, timestamp: Date.now() }), D()), g;
399
398
  }
400
- function P(r, e, t) {
401
- return d(r, 0, e, t);
399
+ function F(r, e, t) {
400
+ return l(r, 0, e, t);
402
401
  }
403
- function R() {
402
+ function P() {
404
403
  s.clear();
405
404
  }
406
- function F(r, e) {
407
- const t = e ? r.pages.find((i) => i.id === e) : r.pages[0];
405
+ function R(r, e) {
406
+ const t = e ? r.pages.find((a) => a.id === e) : r.pages[0];
408
407
  if (!t)
409
408
  throw new Error("Page not found");
410
- const a = j(t, r);
411
- return k(a);
409
+ return $(t, r);
412
410
  }
413
411
  function L(r) {
414
412
  const e = [];
@@ -424,10 +422,10 @@ function L(r) {
424
422
  }), e;
425
423
  }
426
424
  export {
427
- R as clearHtmlCache,
428
- P as exportBlockToHtml,
429
- F as exportDocumentToHtml,
430
- j as exportPageToHtml,
425
+ P as clearHtmlCache,
426
+ F as exportBlockToHtml,
427
+ R as exportDocumentToHtml,
428
+ $ as exportPageToHtml,
431
429
  L as generateAssetsManifest
432
430
  };
433
431
  //# sourceMappingURL=exportHtml.js.map