@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 +1 @@
1
- {"version":3,"file":"renderNodeImpl.js","sources":["../../../src/engine/render/renderNodeImpl.tsx"],"sourcesContent":["/**\n * Render Node Implementation\n * Implementação da renderização de blocos usando Registry Pattern\n *\n * REFATORAÇÃO FASE 3:\n * - Switch gigante substituído por lookup no registry\n * - Renderizadores extraídos para arquivos separados\n * - Auto-registro via barrel imports\n * - Arquivo reduzido de 2937 linhas para ~200 linhas\n */\n\nimport React from \"react\";\nimport { Block } from \"../schema/siteDocument\";\nimport { renderRegistry } from \"./registry/renderRegistry\";\n\n// Auto-importa e registra TODOS os renderizadores\n// O import por si só executa o código de registro em cada index.ts\nimport \"./renderers\";\n\n/**\n * Renderiza um bloco recursivamente\n * Factory pattern com lookup O(1) no registry\n */\nexport function renderBlockNode(\n block: Block,\n depth: number = 0,\n): React.ReactNode {\n // Tentar obter renderizador do registry\n const renderer = renderRegistry.get(block.type);\n\n if (renderer) {\n return renderer(block, depth);\n }\n\n // Renderizadores temporários (ainda não extraídos)\n // TODO: Migrar para arquivos separados nas próximas iterações\n switch (block.type) {\n case \"countdown\":\n return renderCountdown(block);\n case \"carousel\":\n return renderCarousel(block);\n case \"blogCard\":\n return renderBlogCard(block);\n case \"blogCardGrid\":\n return renderBlogCardGrid(block);\n case \"teamCard\":\n return renderTeamCard(block);\n case \"teamGrid\":\n return renderTeamGrid(block);\n case \"courseCardGrid\":\n return renderCourseCardGrid(block);\n case \"categoryCardGrid\":\n return renderCategoryCardGrid(block);\n default:\n console.warn(`Unknown block type: ${(block as any).type}`);\n return (\n <div\n key={block.id}\n style={{\n padding: \"1rem\",\n backgroundColor: \"#fee\",\n color: \"#c00\",\n borderRadius: \"0.25rem\",\n }}\n >\n Bloco desconhecido: {(block as any).type}\n </div>\n );\n }\n}\n\n// ============================================================================\n// RENDERIZADORES TEMPORÁRIOS (A SEREM MIGRADOS)\n// ============================================================================\n\nfunction renderCountdown(block: any): React.ReactNode {\n const {\n title,\n description,\n endDate: _endDate,\n showPlaceholders = true,\n buttonText,\n buttonHref,\n variant = \"default\",\n badgeText,\n bg,\n } = block.props;\n const isBanner = variant === \"banner\";\n\n const sectionStyle: React.CSSProperties = {\n padding: \"var(--sg-section-padding-md, 4rem 2rem)\",\n backgroundColor: bg || \"var(--sg-primary)\",\n color: \"#fff\",\n position: \"relative\",\n };\n\n return (\n <section\n key={block.id}\n className=\"sg-countdown\"\n style={sectionStyle}\n data-variant={variant}\n >\n <div\n style={{\n maxWidth: \"1200px\",\n margin: \"0 auto\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"2rem\",\n flexWrap: \"wrap\",\n }}\n >\n {isBanner && badgeText && (\n <div\n className=\"sg-countdown__badge-circle\"\n style={{\n width: \"140px\",\n height: \"140px\",\n borderRadius: \"50%\",\n border: \"3px solid rgba(255,255,255,0.5)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n textAlign: \"center\",\n padding: \"1rem\",\n fontWeight: 600,\n fontSize: \"0.875rem\",\n }}\n >\n {badgeText}\n </div>\n )}\n <div style={{ flex: 1, minWidth: \"200px\" }}>\n {title && (\n <h2 style={{ marginBottom: \"0.5rem\", fontSize: \"1.5rem\" }}>\n {title}\n </h2>\n )}\n {description && (\n <p style={{ opacity: 0.9, marginBottom: \"1rem\" }}>{description}</p>\n )}\n {showPlaceholders && (\n <div style={{ display: \"flex\", gap: \"1rem\", marginBottom: \"1rem\" }}>\n {[\"Days\", \"Hours\", \"Minutes\", \"Seconds\"].map((label) => (\n <div key={label} style={{ textAlign: \"center\" }}>\n <div style={{ fontSize: \"1.75rem\", fontWeight: 700 }}>00</div>\n <div style={{ fontSize: \"0.75rem\", opacity: 0.9 }}>\n {label}\n </div>\n </div>\n ))}\n </div>\n )}\n {buttonText && (\n <a\n href={buttonHref || \"#\"}\n style={{\n display: \"inline-block\",\n padding: \"0.75rem 1.5rem\",\n backgroundColor: \"#fff\",\n color: \"var(--sg-primary)\",\n fontWeight: 600,\n borderRadius: \"var(--sg-button-radius, 0.5rem)\",\n textDecoration: \"none\",\n }}\n >\n {buttonText}\n </a>\n )}\n </div>\n </div>\n </section>\n );\n}\n\nfunction renderCarousel(block: any): React.ReactNode {\n const { items = [], showDots = true, autoplay = false } = block.props;\n\n return (\n <div\n key={block.id}\n style={{\n position: \"relative\",\n overflow: \"hidden\",\n borderRadius: \"var(--sg-radius, 0.5rem)\",\n }}\n >\n <div style={{ display: \"flex\", transition: \"transform 0.3s\" }}>\n {items.map((item: any, index: number) => (\n <div\n key={index}\n style={{\n minWidth: \"100%\",\n backgroundImage: item.image ? `url(${item.image})` : undefined,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n padding: \"4rem 2rem\",\n textAlign: \"center\",\n }}\n >\n {item.title && (\n <h2 style={{ fontSize: \"2rem\", marginBottom: \"1rem\" }}>\n {item.title}\n </h2>\n )}\n {item.description && <p>{item.description}</p>}\n </div>\n ))}\n </div>\n {showDots && (\n <div\n style={{\n position: \"absolute\",\n bottom: \"1rem\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n display: \"flex\",\n gap: \"0.5rem\",\n }}\n >\n {items.map((_: any, index: number) => (\n <div\n key={index}\n style={{\n width: \"8px\",\n height: \"8px\",\n borderRadius: \"50%\",\n backgroundColor: index === 0 ? \"#fff\" : \"rgba(255,255,255,0.5)\",\n }}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction renderBlogCard(block: any): React.ReactNode {\n const {\n title,\n excerpt,\n image,\n author,\n date,\n category,\n readTime,\n href,\n } = block.props;\n\n return (\n <article\n key={block.id}\n style={{\n backgroundColor: \"var(--sg-surface)\",\n borderRadius: \"var(--sg-card-radius)\",\n overflow: \"hidden\",\n boxShadow: \"var(--sg-card-shadow)\",\n }}\n >\n {image && (\n <div\n style={{\n height: \"200px\",\n backgroundImage: `url(${image})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n }}\n />\n )}\n <div style={{ padding: \"1.5rem\" }}>\n {category && (\n <span\n style={{\n color: \"var(--sg-primary)\",\n fontSize: \"0.875rem\",\n fontWeight: 600,\n }}\n >\n {category}\n </span>\n )}\n <h3 style={{ fontSize: \"1.25rem\", margin: \"0.5rem 0\" }}>{title}</h3>\n <p style={{ color: \"var(--sg-muted-text)\", marginBottom: \"1rem\" }}>\n {excerpt}\n </p>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n fontSize: \"0.875rem\",\n color: \"var(--sg-muted-text)\",\n }}\n >\n <span>{author}</span>\n <span>{date}</span>\n {readTime && <span>{readTime} min read</span>}\n </div>\n {href && (\n <a\n href={href}\n style={{\n display: \"inline-block\",\n marginTop: \"1rem\",\n color: \"var(--sg-primary)\",\n fontWeight: 500,\n }}\n >\n Ler mais →\n </a>\n )}\n </div>\n </article>\n );\n}\n\nfunction renderBlogCardGrid(block: any): React.ReactNode {\n const { title, subtitle, columns = 3, posts = [] } = block.props;\n\n return (\n <section\n key={block.id}\n style={{ padding: \"var(--sg-section-padding-md)\" }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && <h2 style={{ fontSize: \"2rem\" }}>{title}</h2>}\n {subtitle && (\n <p style={{ color: \"var(--sg-muted-text)\" }}>{subtitle}</p>\n )}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"2rem\",\n }}\n >\n {posts.map((post: any, index: number) =>\n renderBlogCard({\n id: `${block.id}-post-${index}`,\n props: post,\n }),\n )}\n </div>\n </div>\n </section>\n );\n}\n\nfunction renderTeamCard(block: any): React.ReactNode {\n const { name, role, bio, image, social = [] } = block.props;\n\n return (\n <div\n key={block.id}\n style={{\n backgroundColor: \"var(--sg-surface)\",\n borderRadius: \"var(--sg-card-radius)\",\n padding: \"2rem\",\n textAlign: \"center\",\n }}\n >\n {image && (\n <img\n src={image}\n alt={name}\n style={{\n width: \"120px\",\n height: \"120px\",\n borderRadius: \"50%\",\n objectFit: \"cover\",\n margin: \"0 auto 1rem\",\n }}\n />\n )}\n <h3 style={{ fontSize: \"1.25rem\", fontWeight: 600 }}>{name}</h3>\n <p style={{ color: \"var(--sg-primary)\", marginBottom: \"0.5rem\" }}>\n {role}\n </p>\n {bio && (\n <p style={{ color: \"var(--sg-muted-text)\", fontSize: \"0.875rem\" }}>\n {bio}\n </p>\n )}\n {social.length > 0 && (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n gap: \"1rem\",\n marginTop: \"1rem\",\n }}\n >\n {social.map((link: any, index: number) => (\n <a\n key={index}\n href={link.url}\n style={{ color: \"var(--sg-muted-text)\" }}\n >\n {link.platform}\n </a>\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction renderTeamGrid(block: any): React.ReactNode {\n const { title, subtitle, columns = 4, members = [] } = block.props;\n\n return (\n <section\n key={block.id}\n style={{ padding: \"var(--sg-section-padding-md)\" }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && <h2 style={{ fontSize: \"2rem\" }}>{title}</h2>}\n {subtitle && (\n <p style={{ color: \"var(--sg-muted-text)\" }}>{subtitle}</p>\n )}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"2rem\",\n }}\n >\n {members.map((member: any, index: number) =>\n renderTeamCard({\n id: `${block.id}-member-${index}`,\n props: member,\n }),\n )}\n </div>\n </div>\n </section>\n );\n}\n\nfunction renderCourseCardGrid(block: any): React.ReactNode {\n const { title, subtitle, columns = 3, courses = [] } = block.props;\n\n return (\n <section\n key={block.id}\n style={{\n padding: \"var(--sg-section-padding-md)\",\n backgroundColor: \"var(--sg-surface)\",\n }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && <h2>{title}</h2>}\n {subtitle && <p style={{ color: \"var(--sg-muted-text)\" }}>{subtitle}</p>}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"2rem\",\n }}\n >\n {courses.map((course: any, index: number) => (\n <div\n key={index}\n style={{\n backgroundColor: \"var(--sg-bg)\",\n borderRadius: \"var(--sg-card-radius)\",\n overflow: \"hidden\",\n }}\n >\n <div\n style={{\n height: \"200px\",\n backgroundImage: `url(${course.image})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n }}\n />\n <div style={{ padding: \"1.5rem\" }}>\n <h3>{course.title}</h3>\n <p style={{ color: \"var(--sg-muted-text)\" }}>{course.description}</p>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"1rem\",\n }}\n >\n <span>{course.duration}</span>\n <span style={{ fontWeight: 600 }}>{course.price}</span>\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n </section>\n );\n}\n\nfunction renderCategoryCardGrid(block: any): React.ReactNode {\n const { title, subtitle, columns = 4, categories = [] } = block.props;\n\n return (\n <section\n key={block.id}\n style={{ padding: \"var(--sg-section-padding-md)\" }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && <h2>{title}</h2>}\n {subtitle && <p style={{ color: \"var(--sg-muted-text)\" }}>{subtitle}</p>}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"1.5rem\",\n }}\n >\n {categories.map((category: any, index: number) => (\n <a\n key={index}\n href={category.href || \"#\"}\n style={{\n backgroundColor: \"var(--sg-surface)\",\n borderRadius: \"var(--sg-card-radius)\",\n padding: \"2rem 1.5rem\",\n textAlign: \"center\",\n textDecoration: \"none\",\n color: \"inherit\",\n }}\n >\n {category.icon && <div style={{ fontSize: \"3rem\", marginBottom: \"1rem\" }}>{category.icon}</div>}\n <h3 style={{ fontSize: \"1.125rem\", marginBottom: \"0.5rem\" }}>{category.name}</h3>\n <p style={{ color: \"var(--sg-muted-text)\", fontSize: \"0.875rem\" }}>\n {category.count} cursos\n </p>\n </a>\n ))}\n </div>\n </div>\n </section>\n );\n}\n"],"names":["renderBlockNode","block","depth","renderer","renderRegistry","renderCountdown","renderCarousel","renderBlogCard","renderBlogCardGrid","renderTeamCard","renderTeamGrid","renderCourseCardGrid","renderCategoryCardGrid","jsxs","title","description","_endDate","showPlaceholders","buttonText","buttonHref","variant","badgeText","bg","jsx","label","items","showDots","autoplay","item","index","_","excerpt","image","author","date","category","readTime","href","subtitle","columns","posts","post","name","role","bio","social","link","members","member","courses","course","categories"],"mappings":"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"}
1
+ {"version":3,"file":"renderNodeImpl.js","sources":["../../../src/engine/render/renderNodeImpl.tsx"],"sourcesContent":["/**\n * Render Node Implementation\n * Implementação da renderização de blocos usando Registry Pattern\n *\n * REFATORAÇÃO FASE 3:\n * - Switch gigante substituído por lookup no registry\n * - Renderizadores extraídos para arquivos separados\n * - Auto-registro via barrel imports\n * - Arquivo reduzido de 2937 linhas para ~200 linhas\n */\n\nimport React from \"react\";\nimport { Block } from \"../schema/siteDocument\";\nimport { renderRegistry } from \"./registry/renderRegistry\";\n\n// Auto-importa e registra TODOS os renderizadores\n// O import por si só executa o código de registro em cada index.ts\nimport \"./renderers\";\n\n/**\n * Renderiza um bloco recursivamente\n * Factory pattern com lookup O(1) no registry\n */\nexport function renderBlockNode(\n block: Block,\n depth: number = 0,\n): React.ReactNode {\n // Tentar obter renderizador do registry\n const renderer = renderRegistry.get(block.type);\n\n if (renderer) {\n return renderer(block, depth);\n }\n\n // Renderizadores temporários (ainda não extraídos)\n // TODO: Migrar para arquivos separados nas próximas iterações\n switch (block.type) {\n case \"countdown\":\n return renderCountdown(block);\n case \"carousel\":\n return renderCarousel(block);\n case \"blogCard\":\n return renderBlogCard(block);\n case \"blogCardGrid\":\n return renderBlogCardGrid(block);\n case \"teamCard\":\n return renderTeamCard(block);\n case \"teamGrid\":\n return renderTeamGrid(block);\n case \"courseCardGrid\":\n return renderCourseCardGrid(block);\n case \"categoryCardGrid\":\n return renderCategoryCardGrid(block);\n default:\n console.warn(`Unknown block type: ${block.type}`);\n return (\n <div\n key={block.id}\n style={{\n padding: \"1rem\",\n backgroundColor: \"#fee\",\n color: \"#c00\",\n borderRadius: \"0.25rem\",\n }}\n >\n Bloco desconhecido: {block.type}\n </div>\n );\n }\n}\n\n// ============================================================================\n// RENDERIZADORES TEMPORÁRIOS (A SEREM MIGRADOS)\n// ============================================================================\n\nfunction renderCountdown(block: Block): React.ReactNode {\n const props = block.props as Record<string, any>;\n const {\n title,\n description,\n endDate: _endDate,\n showPlaceholders = true,\n buttonText,\n buttonHref,\n variant = \"default\",\n badgeText,\n bg,\n } = props;\n const isBanner = variant === \"banner\";\n\n const sectionStyle: React.CSSProperties = {\n padding: \"var(--sg-section-padding-md, 4rem 2rem)\",\n backgroundColor: bg || \"var(--sg-primary)\",\n color: \"#fff\",\n position: \"relative\",\n };\n\n return (\n <section\n key={block.id}\n className=\"sg-countdown\"\n style={sectionStyle}\n data-variant={variant}\n >\n <div\n style={{\n maxWidth: \"1200px\",\n margin: \"0 auto\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"2rem\",\n flexWrap: \"wrap\",\n }}\n >\n {isBanner && badgeText && (\n <div\n className=\"sg-countdown__badge-circle\"\n style={{\n width: \"140px\",\n height: \"140px\",\n borderRadius: \"50%\",\n border: \"3px solid rgba(255,255,255,0.5)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n textAlign: \"center\",\n padding: \"1rem\",\n fontWeight: 600,\n fontSize: \"0.875rem\",\n }}\n >\n {badgeText}\n </div>\n )}\n <div style={{ flex: 1, minWidth: \"200px\" }}>\n {title && (\n <h2 style={{ marginBottom: \"0.5rem\", fontSize: \"1.5rem\" }}>\n {title}\n </h2>\n )}\n {description && (\n <p style={{ opacity: 0.9, marginBottom: \"1rem\" }}>{description}</p>\n )}\n {showPlaceholders && (\n <div style={{ display: \"flex\", gap: \"1rem\", marginBottom: \"1rem\" }}>\n {[\"Days\", \"Hours\", \"Minutes\", \"Seconds\"].map((label) => (\n <div key={label} style={{ textAlign: \"center\" }}>\n <div style={{ fontSize: \"1.75rem\", fontWeight: 700 }}>00</div>\n <div style={{ fontSize: \"0.75rem\", opacity: 0.9 }}>\n {label}\n </div>\n </div>\n ))}\n </div>\n )}\n {buttonText && (\n <a\n href={buttonHref || \"#\"}\n style={{\n display: \"inline-block\",\n padding: \"0.75rem 1.5rem\",\n backgroundColor: \"#fff\",\n color: \"var(--sg-primary)\",\n fontWeight: 600,\n borderRadius: \"var(--sg-button-radius, 0.5rem)\",\n textDecoration: \"none\",\n }}\n >\n {buttonText}\n </a>\n )}\n </div>\n </div>\n </section>\n );\n}\n\nfunction renderCarousel(block: Block): React.ReactNode {\n const props = block.props as Record<string, any>;\n const { items = [], showDots = true, autoplay = false } = props;\n\n return (\n <div\n key={block.id}\n style={{\n position: \"relative\",\n overflow: \"hidden\",\n borderRadius: \"var(--sg-radius, 0.5rem)\",\n }}\n >\n <div style={{ display: \"flex\", transition: \"transform 0.3s\" }}>\n {(items as unknown[]).map((item: Record<string, any>, index: number) => (\n <div\n key={index}\n style={{\n minWidth: \"100%\",\n backgroundImage: item.image ? `url(${item.image})` : undefined,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n padding: \"4rem 2rem\",\n textAlign: \"center\",\n }}\n >\n {item.title && (\n <h2 style={{ fontSize: \"2rem\", marginBottom: \"1rem\" }}>\n {item.title}\n </h2>\n )}\n {item.description && <p>{item.description}</p>}\n </div>\n ))}\n </div>\n {showDots && (\n <div\n style={{\n position: \"absolute\",\n bottom: \"1rem\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n display: \"flex\",\n gap: \"0.5rem\",\n }}\n >\n {(items as unknown[]).map((_: unknown, index: number) => (\n <div\n key={index}\n style={{\n width: \"8px\",\n height: \"8px\",\n borderRadius: \"50%\",\n backgroundColor: index === 0 ? \"#fff\" : \"rgba(255,255,255,0.5)\",\n }}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction renderBlogCard(block: Block): React.ReactNode {\n const props = block.props as Record<string, any>;\n const {\n title,\n excerpt,\n image,\n author,\n date,\n category,\n readTime,\n href,\n } = props;\n\n return (\n <article\n key={block.id}\n style={{\n backgroundColor: \"var(--sg-surface)\",\n borderRadius: \"var(--sg-card-radius)\",\n overflow: \"hidden\",\n boxShadow: \"var(--sg-card-shadow)\",\n }}\n >\n {image && (\n <div\n style={{\n height: \"200px\",\n backgroundImage: `url(${image})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n }}\n />\n )}\n <div style={{ padding: \"1.5rem\" }}>\n {category && (\n <span\n style={{\n color: \"var(--sg-primary)\",\n fontSize: \"0.875rem\",\n fontWeight: 600,\n }}\n >\n {category}\n </span>\n )}\n <h3 style={{ fontSize: \"1.25rem\", margin: \"0.5rem 0\" }}>{title}</h3>\n <p style={{ color: \"var(--sg-muted-text)\", marginBottom: \"1rem\" }}>\n {excerpt}\n </p>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n fontSize: \"0.875rem\",\n color: \"var(--sg-muted-text)\",\n }}\n >\n <span>{author}</span>\n <span>{date}</span>\n {readTime && <span>{readTime} min read</span>}\n </div>\n {href && (\n <a\n href={href}\n style={{\n display: \"inline-block\",\n marginTop: \"1rem\",\n color: \"var(--sg-primary)\",\n fontWeight: 500,\n }}\n >\n Ler mais →\n </a>\n )}\n </div>\n </article>\n );\n}\n\nfunction renderBlogCardGrid(block: Block): React.ReactNode {\n const props = block.props as Record<string, any>;\n const { title, subtitle, columns = 3, posts = [] } = props;\n\n return (\n <section\n key={block.id}\n style={{ padding: \"var(--sg-section-padding-md)\" }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && <h2 style={{ fontSize: \"2rem\" }}>{title}</h2>}\n {subtitle && (\n <p style={{ color: \"var(--sg-muted-text)\" }}>{subtitle}</p>\n )}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"2rem\",\n }}\n >\n {(posts as unknown[]).map((post: Record<string, any>, index: number) =>\n renderBlogCard({\n id: `${block.id}-post-${index}`,\n type: 'blogCard',\n props: post,\n }),\n )}\n </div>\n </div>\n </section>\n );\n}\n\nfunction renderTeamCard(block: Block): React.ReactNode {\n const props = block.props as Record<string, any>;\n const { name, role, bio, image, social = [] } = props;\n\n return (\n <div\n key={block.id}\n style={{\n backgroundColor: \"var(--sg-surface)\",\n borderRadius: \"var(--sg-card-radius)\",\n padding: \"2rem\",\n textAlign: \"center\",\n }}\n >\n {image && (\n <img\n src={image}\n alt={name}\n style={{\n width: \"120px\",\n height: \"120px\",\n borderRadius: \"50%\",\n objectFit: \"cover\",\n margin: \"0 auto 1rem\",\n }}\n />\n )}\n <h3 style={{ fontSize: \"1.25rem\", fontWeight: 600 }}>{name}</h3>\n <p style={{ color: \"var(--sg-primary)\", marginBottom: \"0.5rem\" }}>\n {role}\n </p>\n {bio && (\n <p style={{ color: \"var(--sg-muted-text)\", fontSize: \"0.875rem\" }}>\n {bio}\n </p>\n )}\n {Array.isArray(social) && social.length > 0 && (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n gap: \"1rem\",\n marginTop: \"1rem\",\n }}\n >\n {social.map((link: Record<string, any>, index: number) => (\n <a\n key={index}\n href={link.url}\n style={{ color: \"var(--sg-muted-text)\" }}\n >\n {link.platform}\n </a>\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction renderTeamGrid(block: Block): React.ReactNode {\n const props = block.props as Record<string, any>;\n const { title, subtitle, columns = 4, members = [] } = props;\n\n return (\n <section\n key={block.id}\n style={{ padding: \"var(--sg-section-padding-md)\" }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && <h2 style={{ fontSize: \"2rem\" }}>{title}</h2>}\n {subtitle && (\n <p style={{ color: \"var(--sg-muted-text)\" }}>{subtitle}</p>\n )}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"2rem\",\n }}\n >\n {(members as unknown[]).map((member: Record<string, any>, index: number) =>\n renderTeamCard({\n id: `${block.id}-member-${index}`,\n type: 'teamCard',\n props: member,\n }),\n )}\n </div>\n </div>\n </section>\n );\n}\n\nfunction renderCourseCardGrid(block: Block): React.ReactNode {\n const props = block.props as Record<string, any>;\n const { title, subtitle, columns = 3, courses = [] } = props;\n\n return (\n <section\n key={block.id}\n style={{\n padding: \"var(--sg-section-padding-md)\",\n backgroundColor: \"var(--sg-surface)\",\n }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && <h2>{title}</h2>}\n {subtitle && <p style={{ color: \"var(--sg-muted-text)\" }}>{subtitle}</p>}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"2rem\",\n }}\n >\n {(courses as unknown[]).map((course: Record<string, any>, index: number) => (\n <div\n key={index}\n style={{\n backgroundColor: \"var(--sg-bg)\",\n borderRadius: \"var(--sg-card-radius)\",\n overflow: \"hidden\",\n }}\n >\n <div\n style={{\n height: \"200px\",\n backgroundImage: `url(${course.image})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n }}\n />\n <div style={{ padding: \"1.5rem\" }}>\n <h3>{course.title}</h3>\n <p style={{ color: \"var(--sg-muted-text)\" }}>{course.description}</p>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"1rem\",\n }}\n >\n <span>{course.duration}</span>\n <span style={{ fontWeight: 600 }}>{course.price}</span>\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n </section>\n );\n}\n\nfunction renderCategoryCardGrid(block: Block): React.ReactNode {\n const props = block.props as Record<string, any>;\n const { title, subtitle, columns = 4, categories = [] } = props;\n\n return (\n <section\n key={block.id}\n style={{ padding: \"var(--sg-section-padding-md)\" }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && <h2>{title}</h2>}\n {subtitle && <p style={{ color: \"var(--sg-muted-text)\" }}>{subtitle}</p>}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"1.5rem\",\n }}\n >\n {(categories as unknown[]).map((category: Record<string, any>, index: number) => (\n <a\n key={index}\n href={category.href || \"#\"}\n style={{\n backgroundColor: \"var(--sg-surface)\",\n borderRadius: \"var(--sg-card-radius)\",\n padding: \"2rem 1.5rem\",\n textAlign: \"center\",\n textDecoration: \"none\",\n color: \"inherit\",\n }}\n >\n {category.icon && <div style={{ fontSize: \"3rem\", marginBottom: \"1rem\" }}>{category.icon}</div>}\n <h3 style={{ fontSize: \"1.125rem\", marginBottom: \"0.5rem\" }}>{category.name}</h3>\n <p style={{ color: \"var(--sg-muted-text)\", fontSize: \"0.875rem\" }}>\n {category.count} cursos\n </p>\n </a>\n ))}\n </div>\n </div>\n </section>\n );\n}\n"],"names":["renderBlockNode","block","depth","renderer","renderRegistry","renderCountdown","renderCarousel","renderBlogCard","renderBlogCardGrid","renderTeamCard","renderTeamGrid","renderCourseCardGrid","renderCategoryCardGrid","jsxs","props","title","description","_endDate","showPlaceholders","buttonText","buttonHref","variant","badgeText","bg","jsx","label","items","showDots","autoplay","item","index","_","excerpt","image","author","date","category","readTime","href","subtitle","columns","posts","post","name","role","bio","social","link","members","member","courses","course","categories"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { default as React } from 'react';
2
- import { SitePage, SiteDocumentV2 } from '../schema/siteDocument';
2
+ import { SitePage, SiteDocument } from '../schema/siteDocument';
3
3
  export interface RenderPageProps {
4
4
  page: SitePage;
5
- document?: SiteDocumentV2;
5
+ document?: SiteDocument;
6
6
  className?: string;
7
7
  }
8
8
  /**
@@ -12,5 +12,5 @@ export declare function RenderPage({ page, document, className }: RenderPageProp
12
12
  /**
13
13
  * Função que renderiza uma página e retorna JSX
14
14
  */
15
- export declare function renderPage(page: SitePage, document?: SiteDocumentV2): React.ReactNode;
15
+ export declare function renderPage(page: SitePage, document?: SiteDocument): React.ReactNode;
16
16
  //# sourceMappingURL=renderPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderPage.d.ts","sourceRoot":"","sources":["../../../src/engine/render/renderPage.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAIjE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,2CAWxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC,SAAS,CAErF"}
1
+ {"version":3,"file":"renderPage.d.ts","sourceRoot":"","sources":["../../../src/engine/render/renderPage.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAI/D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,2CAWxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS,CAEnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderPage.js","sources":["../../../src/engine/render/renderPage.tsx"],"sourcesContent":["/**\n * Render Page\n * Renderiza uma página completa do site\n */\n\nimport React from 'react'\nimport { SitePage, SiteDocumentV2 } from '../schema/siteDocument'\nimport { renderBlockNode } from './renderNodeImpl'\nimport { generateThemeCSSVariables } from '../schema/themeTokens'\n\nexport interface RenderPageProps {\n page: SitePage\n document?: SiteDocumentV2\n className?: string\n}\n\n/**\n * Componente React que renderiza uma página completa\n */\nexport function RenderPage({ page, document, className }: RenderPageProps) {\n const themeCSS = document ? generateThemeCSSVariables(document.theme) : ''\n\n return (\n <div className={className} style={{ fontFamily: 'var(--sg-font-body, system-ui)' }}>\n {themeCSS && <style>{themeCSS}</style>}\n {page.structure.map((block) => (\n <React.Fragment key={block.id}>{renderBlockNode(block)}</React.Fragment>\n ))}\n </div>\n )\n}\n\n/**\n * Função que renderiza uma página e retorna JSX\n */\nexport function renderPage(page: SitePage, document?: SiteDocumentV2): React.ReactNode {\n return <RenderPage page={page} document={document} />\n}\n"],"names":["RenderPage","page","document","className","themeCSS","generateThemeCSSVariables","jsx","block","React","renderBlockNode","renderPage"],"mappings":";;;;AAmBO,SAASA,EAAW,EAAE,MAAAC,GAAM,UAAAC,GAAU,WAAAC,KAA8B;AACzE,QAAMC,IAAWF,IAAWG,EAA0BH,EAAS,KAAK,IAAI;AAExE,2BACG,OAAA,EAAI,WAAAC,GAAsB,OAAO,EAAE,YAAY,oCAC7C,UAAA;AAAA,IAAAC,KAAY,gBAAAE,EAAC,WAAO,UAAAF,EAAA,CAAS;AAAA,IAC7BH,EAAK,UAAU,IAAI,CAACM,MACnB,gBAAAD,EAACE,EAAM,UAAN,EAA+B,UAAAC,EAAgBF,CAAK,EAAA,GAAhCA,EAAM,EAA4B,CACxD;AAAA,EAAA,GACH;AAEJ;AAKO,SAASG,EAAWT,GAAgBC,GAA4C;AACrF,SAAO,gBAAAI,EAACN,GAAA,EAAW,MAAAC,GAAY,UAAAC,EAAA,CAAoB;AACrD;"}
1
+ {"version":3,"file":"renderPage.js","sources":["../../../src/engine/render/renderPage.tsx"],"sourcesContent":["/**\n * Render Page\n * Renderiza uma página completa do site\n */\n\nimport React from 'react'\nimport { SitePage, SiteDocument } from '../schema/siteDocument'\nimport { renderBlockNode } from './renderNodeImpl'\nimport { generateThemeCSSVariables } from '../schema/themeTokens'\n\nexport interface RenderPageProps {\n page: SitePage\n document?: SiteDocument\n className?: string\n}\n\n/**\n * Componente React que renderiza uma página completa\n */\nexport function RenderPage({ page, document, className }: RenderPageProps) {\n const themeCSS = document ? generateThemeCSSVariables(document.theme) : ''\n\n return (\n <div className={className} style={{ fontFamily: 'var(--sg-font-body, system-ui)' }}>\n {themeCSS && <style>{themeCSS}</style>}\n {page.structure.map((block) => (\n <React.Fragment key={block.id}>{renderBlockNode(block)}</React.Fragment>\n ))}\n </div>\n )\n}\n\n/**\n * Função que renderiza uma página e retorna JSX\n */\nexport function renderPage(page: SitePage, document?: SiteDocument): React.ReactNode {\n return <RenderPage page={page} document={document} />\n}\n"],"names":["RenderPage","page","document","className","themeCSS","generateThemeCSSVariables","jsx","block","React","renderBlockNode","renderPage"],"mappings":";;;;AAmBO,SAASA,EAAW,EAAE,MAAAC,GAAM,UAAAC,GAAU,WAAAC,KAA8B;AACzE,QAAMC,IAAWF,IAAWG,EAA0BH,EAAS,KAAK,IAAI;AAExE,2BACG,OAAA,EAAI,WAAAC,GAAsB,OAAO,EAAE,YAAY,oCAC7C,UAAA;AAAA,IAAAC,KAAY,gBAAAE,EAAC,WAAO,UAAAF,EAAA,CAAS;AAAA,IAC7BH,EAAK,UAAU,IAAI,CAACM,MACnB,gBAAAD,EAACE,EAAM,UAAN,EAA+B,UAAAC,EAAgBF,CAAK,EAAA,GAAhCA,EAAM,EAA4B,CACxD;AAAA,EAAA,GACH;AAEJ;AAKO,SAASG,EAAWT,GAAgBC,GAA0C;AACnF,SAAO,gBAAAI,EAACN,GAAA,EAAW,MAAAC,GAAY,UAAAC,EAAA,CAAoB;AACrD;"}
@@ -5,8 +5,8 @@ function u(n, d) {
5
5
  const {
6
6
  header: i = [],
7
7
  content: s = [],
8
- footer: m = [],
9
- padding: t = "1rem",
8
+ footer: t = [],
9
+ padding: m = "1rem",
10
10
  bg: g,
11
11
  border: l,
12
12
  radius: p,
@@ -20,7 +20,7 @@ function u(n, d) {
20
20
  border: l || "1px solid var(--sg-border, #e5e7eb)",
21
21
  borderRadius: p || "var(--sg-radius, 0.5rem)",
22
22
  boxShadow: c || "var(--sg-shadow, 0 1px 2px 0 rgba(0, 0, 0, 0.05))",
23
- padding: t,
23
+ padding: m,
24
24
  display: "flex",
25
25
  flexDirection: "column",
26
26
  gap: "0.5rem"
@@ -28,7 +28,7 @@ function u(n, d) {
28
28
  children: [
29
29
  i.length > 0 && /* @__PURE__ */ e("div", { children: i.map((r) => /* @__PURE__ */ e(o.Fragment, { children: a(r, d + 1) }, r.id)) }),
30
30
  s.length > 0 && /* @__PURE__ */ e("div", { children: s.map((r) => /* @__PURE__ */ e(o.Fragment, { children: a(r, d + 1) }, r.id)) }),
31
- m.length > 0 && /* @__PURE__ */ e("div", { children: m.map((r) => /* @__PURE__ */ e(o.Fragment, { children: a(r, d + 1) }, r.id)) })
31
+ t.length > 0 && /* @__PURE__ */ e("div", { children: t.map((r) => /* @__PURE__ */ e(o.Fragment, { children: a(r, d + 1) }, r.id)) })
32
32
  ]
33
33
  },
34
34
  n.id
@@ -1 +1 @@
1
- {"version":3,"file":"LinkRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/content/LinkRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS,CAgB5D"}
1
+ {"version":3,"file":"LinkRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/content/LinkRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAMzD,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS,CAqD5D"}
@@ -1,21 +1,46 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- function s(r) {
3
- const { text: e, href: t, target: n = "_self" } = r.props;
4
- return /* @__PURE__ */ o(
5
- "a",
6
- {
7
- href: t,
8
- target: n,
9
- style: {
10
- color: "var(--sg-primary, #3b82f6)",
11
- textDecoration: "underline"
1
+ import { jsxs as h, Fragment as p, jsx as i } from "react/jsx-runtime";
2
+ import { generateLinkHoverStyles as v } from "../../../shared/hoverEffects/linkHover.js";
3
+ function C(e) {
4
+ const {
5
+ text: s,
6
+ href: l,
7
+ target: a = "_self",
8
+ // Hover effects
9
+ hoverEffect: o = "underline",
10
+ hoverIntensity: c = 50,
11
+ hoverColor: f
12
+ } = e.props, d = f || "#3b82f6", n = `[data-block-id="${e.id}"]`;
13
+ let r = "";
14
+ if (o && o !== "none") {
15
+ const t = v({
16
+ effect: o,
17
+ intensity: c,
18
+ hoverColor: d
19
+ });
20
+ t.base && (r += `${n} { ${t.base} }`), r += `${n}:hover { ${t.hover} }`;
21
+ }
22
+ return /* @__PURE__ */ h(p, { children: [
23
+ r ? /* @__PURE__ */ i("style", { children: r }) : null,
24
+ /* @__PURE__ */ i(
25
+ "a",
26
+ {
27
+ "data-block-id": e.id,
28
+ href: l,
29
+ target: a,
30
+ style: {
31
+ color: "var(--sg-primary, #3b82f6)",
32
+ textDecoration: "none",
33
+ transition: "all 0.3s ease",
34
+ display: "inline-block",
35
+ backgroundRepeat: "no-repeat"
36
+ },
37
+ children: s
12
38
  },
13
- children: e
14
- },
15
- r.id
16
- );
39
+ e.id
40
+ )
41
+ ] });
17
42
  }
18
43
  export {
19
- s as renderLink
44
+ C as renderLink
20
45
  };
21
46
  //# sourceMappingURL=LinkRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkRenderer.js","sources":["../../../../../src/engine/render/renderers/content/LinkRenderer.tsx"],"sourcesContent":["/**\n * Link Renderer\n * Renderiza links de texto\n */\n\nimport React from \"react\";\nimport { LinkBlock } from \"../../../schema/siteDocument\";\n\nexport function renderLink(block: LinkBlock): React.ReactNode {\n const { text, href, target = \"_self\" } = block.props;\n\n return (\n <a\n key={block.id}\n href={href}\n target={target}\n style={{\n color: \"var(--sg-primary, #3b82f6)\",\n textDecoration: \"underline\",\n }}\n >\n {text}\n </a>\n );\n}\n"],"names":["renderLink","block","text","href","target","jsx"],"mappings":";AAQO,SAASA,EAAWC,GAAmC;AAC5D,QAAM,EAAE,MAAAC,GAAM,MAAAC,GAAM,QAAAC,IAAS,QAAA,IAAYH,EAAM;AAE/C,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,MAAAF;AAAA,MACA,QAAAC;AAAA,MACA,OAAO;AAAA,QACL,OAAO;AAAA,QACP,gBAAgB;AAAA,MAAA;AAAA,MAGjB,UAAAF;AAAA,IAAA;AAAA,IARID,EAAM;AAAA,EAAA;AAWjB;"}
1
+ {"version":3,"file":"LinkRenderer.js","sources":["../../../../../src/engine/render/renderers/content/LinkRenderer.tsx"],"sourcesContent":["/**\n * Link Renderer\n * Renderiza links de texto com suporte a efeitos de hover configuráveis\n */\n\nimport React from \"react\";\nimport { LinkBlock } from \"../../../schema/siteDocument\";\nimport {\n generateLinkHoverStyles,\n type LinkHoverEffect,\n} from \"../../../shared/hoverEffects\";\n\nexport function renderLink(block: LinkBlock): React.ReactNode {\n const {\n text,\n href,\n target = \"_self\",\n // Hover effects\n hoverEffect = \"underline\",\n hoverIntensity = 50,\n hoverColor,\n } = block.props;\n\n const primaryColorHex = \"#3b82f6\";\n const effectiveHoverColor = hoverColor || primaryColorHex;\n\n // Gerar CSS de hover\n const scope = `[data-block-id=\"${block.id}\"]`;\n let hoverCss = \"\";\n\n if (hoverEffect && hoverEffect !== \"none\") {\n const hoverResult = generateLinkHoverStyles({\n effect: hoverEffect as LinkHoverEffect,\n intensity: hoverIntensity,\n hoverColor: effectiveHoverColor,\n });\n\n if (hoverResult.base) {\n hoverCss += `${scope} { ${hoverResult.base} }`;\n }\n hoverCss += `${scope}:hover { ${hoverResult.hover} }`;\n }\n\n const styleElement = hoverCss ? <style>{hoverCss}</style> : null;\n\n return (\n <>\n {styleElement}\n <a\n key={block.id}\n data-block-id={block.id}\n href={href}\n target={target}\n style={{\n color: \"var(--sg-primary, #3b82f6)\",\n textDecoration: \"none\",\n transition: \"all 0.3s ease\",\n display: \"inline-block\",\n backgroundRepeat: \"no-repeat\",\n }}\n >\n {text}\n </a>\n </>\n );\n}\n"],"names":["renderLink","block","text","href","target","hoverEffect","hoverIntensity","hoverColor","effectiveHoverColor","scope","hoverCss","hoverResult","generateLinkHoverStyles","jsxs","Fragment","jsx"],"mappings":";;AAYO,SAASA,EAAWC,GAAmC;AAC5D,QAAM;AAAA,IACJ,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,QAAAC,IAAS;AAAA;AAAA,IAET,aAAAC,IAAc;AAAA,IACd,gBAAAC,IAAiB;AAAA,IACjB,YAAAC;AAAA,EAAA,IACEN,EAAM,OAGJO,IAAsBD,KADJ,WAIlBE,IAAQ,mBAAmBR,EAAM,EAAE;AACzC,MAAIS,IAAW;AAEf,MAAIL,KAAeA,MAAgB,QAAQ;AACzC,UAAMM,IAAcC,EAAwB;AAAA,MAC1C,QAAQP;AAAA,MACR,WAAWC;AAAA,MACX,YAAYE;AAAA,IAAA,CACb;AAED,IAAIG,EAAY,SACdD,KAAY,GAAGD,CAAK,MAAME,EAAY,IAAI,OAE5CD,KAAY,GAAGD,CAAK,YAAYE,EAAY,KAAK;AAAA,EACnD;AAIA,SACE,gBAAAE,EAAAC,GAAA,EACG,UAAA;AAAA,IAJgBJ,IAAW,gBAAAK,EAAC,SAAA,EAAO,aAAS,IAAW;AAAA,IAKxD,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,iBAAed,EAAM;AAAA,QACrB,MAAAE;AAAA,QACA,QAAAC;AAAA,QACA,OAAO;AAAA,UACL,OAAO;AAAA,UACP,gBAAgB;AAAA,UAChB,YAAY;AAAA,UACZ,SAAS;AAAA,UACT,kBAAkB;AAAA,QAAA;AAAA,QAGnB,UAAAF;AAAA,MAAA;AAAA,MAZID,EAAM;AAAA,IAAA;AAAA,EAab,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SocialLinksRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/content/SocialLinksRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CA0E7D"}
1
+ {"version":3,"file":"SocialLinksRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/content/SocialLinksRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAyD7D"}
@@ -1,19 +1,12 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- function h(t) {
3
- const { links: l = [], size: s = "md", variant: a = "default" } = t.props, i = {
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { socialIconPaths as l } from "../../../shared/socialIcons.js";
3
+ function f(i) {
4
+ const { links: a = [], size: s = "md", variant: r = "default" } = i.props, n = {
4
5
  sm: "1.25rem",
5
6
  md: "1.5rem",
6
7
  lg: "2rem"
7
- }, n = {
8
- facebook: "M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",
9
- twitter: "M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z",
10
- instagram: "M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37zM17.5 6.5h.01M7 2h10a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5z",
11
- linkedin: "M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2zM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4z",
12
- youtube: "M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33zM9.75 15.02V8.48l5.75 3.27-5.75 3.27z",
13
- github: "M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22",
14
- tiktok: "M9 12a4 4 0 1 0 4 4V4a5 5 0 0 0 5 5"
15
- }, e = i[s] || i.md;
16
- return /* @__PURE__ */ r(
8
+ }, e = n[s] || n.md;
9
+ return /* @__PURE__ */ t(
17
10
  "div",
18
11
  {
19
12
  style: {
@@ -21,7 +14,7 @@ function h(t) {
21
14
  gap: "1rem",
22
15
  alignItems: "center"
23
16
  },
24
- children: l.map((o, c) => /* @__PURE__ */ r(
17
+ children: a.map((o, d) => /* @__PURE__ */ t(
25
18
  "a",
26
19
  {
27
20
  href: o.url,
@@ -31,14 +24,14 @@ function h(t) {
31
24
  display: "flex",
32
25
  alignItems: "center",
33
26
  justifyContent: "center",
34
- width: a === "filled" ? `calc(${e} + 0.75rem)` : e,
35
- height: a === "filled" ? `calc(${e} + 0.75rem)` : e,
36
- backgroundColor: a === "filled" ? "var(--sg-surface)" : "transparent",
37
- borderRadius: a === "filled" ? "50%" : void 0,
27
+ width: r === "filled" ? `calc(${e} + 0.75rem)` : e,
28
+ height: r === "filled" ? `calc(${e} + 0.75rem)` : e,
29
+ backgroundColor: r === "filled" ? "var(--sg-surface)" : "transparent",
30
+ borderRadius: r === "filled" ? "50%" : void 0,
38
31
  color: "var(--sg-muted-text)",
39
32
  textDecoration: "none"
40
33
  },
41
- children: /* @__PURE__ */ r(
34
+ children: /* @__PURE__ */ t(
42
35
  "svg",
43
36
  {
44
37
  width: e,
@@ -49,17 +42,17 @@ function h(t) {
49
42
  strokeWidth: "2",
50
43
  strokeLinecap: "round",
51
44
  strokeLinejoin: "round",
52
- children: /* @__PURE__ */ r("path", { d: n[o.platform] || n.github })
45
+ children: /* @__PURE__ */ t("path", { d: l[o.platform] || l.github })
53
46
  }
54
47
  )
55
48
  },
56
- c
49
+ d
57
50
  ))
58
51
  },
59
- t.id
52
+ i.id
60
53
  );
61
54
  }
62
55
  export {
63
- h as renderSocialLinks
56
+ f as renderSocialLinks
64
57
  };
65
58
  //# sourceMappingURL=SocialLinksRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SocialLinksRenderer.js","sources":["../../../../../src/engine/render/renderers/content/SocialLinksRenderer.tsx"],"sourcesContent":["/**\n * Social Links Renderer\n * Renderiza links de redes sociais com ícones SVG\n */\n\nimport React from \"react\";\n\nexport function renderSocialLinks(block: any): React.ReactNode {\n const { links = [], size = \"md\", variant = \"default\" } = block.props;\n\n const sizeMap: Record<string, string> = {\n sm: \"1.25rem\",\n md: \"1.5rem\",\n lg: \"2rem\",\n };\n\n // SVG paths for social icons\n const socialIcons: Record<string, string> = {\n facebook:\n \"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\",\n twitter:\n \"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\",\n instagram:\n \"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37zM17.5 6.5h.01M7 2h10a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5z\",\n linkedin:\n \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2zM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4z\",\n youtube:\n \"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33zM9.75 15.02V8.48l5.75 3.27-5.75 3.27z\",\n github:\n \"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\n tiktok: \"M9 12a4 4 0 1 0 4 4V4a5 5 0 0 0 5 5\",\n };\n\n const iconSize = sizeMap[size] || sizeMap.md;\n\n return (\n <div\n key={block.id}\n style={{\n display: \"flex\",\n gap: \"1rem\",\n alignItems: \"center\",\n }}\n >\n {links.map((link: any, index: number) => (\n <a\n key={index}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width:\n variant === \"filled\" ? `calc(${iconSize} + 0.75rem)` : iconSize,\n height:\n variant === \"filled\" ? `calc(${iconSize} + 0.75rem)` : iconSize,\n backgroundColor:\n variant === \"filled\" ? \"var(--sg-surface)\" : \"transparent\",\n borderRadius: variant === \"filled\" ? \"50%\" : undefined,\n color: \"var(--sg-muted-text)\",\n textDecoration: \"none\",\n }}\n >\n <svg\n width={iconSize}\n height={iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d={socialIcons[link.platform] || socialIcons.github} />\n </svg>\n </a>\n ))}\n </div>\n );\n}\n"],"names":["renderSocialLinks","block","links","size","variant","sizeMap","socialIcons","iconSize","jsx","link","index"],"mappings":";AAOO,SAASA,EAAkBC,GAA6B;AAC7D,QAAM,EAAE,OAAAC,IAAQ,CAAA,GAAI,MAAAC,IAAO,MAAM,SAAAC,IAAU,cAAcH,EAAM,OAEzDI,IAAkC;AAAA,IACtC,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAIAC,IAAsC;AAAA,IAC1C,UACE;AAAA,IACF,SACE;AAAA,IACF,WACE;AAAA,IACF,UACE;AAAA,IACF,SACE;AAAA,IACF,QACE;AAAA,IACF,QAAQ;AAAA,EAAA,GAGJC,IAAWF,EAAQF,CAAI,KAAKE,EAAQ;AAE1C,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,KAAK;AAAA,QACL,YAAY;AAAA,MAAA;AAAA,MAGb,UAAAN,EAAM,IAAI,CAACO,GAAWC,MACrB,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,MAAMC,EAAK;AAAA,UACX,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,OAAO;AAAA,YACL,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,OACEL,MAAY,WAAW,QAAQG,CAAQ,gBAAgBA;AAAA,YACzD,QACEH,MAAY,WAAW,QAAQG,CAAQ,gBAAgBA;AAAA,YACzD,iBACEH,MAAY,WAAW,sBAAsB;AAAA,YAC/C,cAAcA,MAAY,WAAW,QAAQ;AAAA,YAC7C,OAAO;AAAA,YACP,gBAAgB;AAAA,UAAA;AAAA,UAGlB,UAAA,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAOD;AAAA,cACP,QAAQA;AAAA,cACR,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA,cAEf,UAAA,gBAAAC,EAAC,UAAK,GAAGF,EAAYG,EAAK,QAAQ,KAAKH,EAAY,OAAA,CAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QAC7D;AAAA,QA9BKI;AAAA,MAAA,CAgCR;AAAA,IAAA;AAAA,IAzCIT,EAAM;AAAA,EAAA;AA4CjB;"}
1
+ {"version":3,"file":"SocialLinksRenderer.js","sources":["../../../../../src/engine/render/renderers/content/SocialLinksRenderer.tsx"],"sourcesContent":["/**\n * Social Links Renderer\n * Renderiza links de redes sociais com ícones SVG\n */\n\nimport React from \"react\";\nimport { socialIconPaths } from \"../../../shared/socialIcons\";\n\nexport function renderSocialLinks(block: any): React.ReactNode {\n const { links = [], size = \"md\", variant = \"default\" } = block.props;\n\n const sizeMap: Record<string, string> = {\n sm: \"1.25rem\",\n md: \"1.5rem\",\n lg: \"2rem\",\n };\n\n const iconSize = sizeMap[size] || sizeMap.md;\n\n return (\n <div\n key={block.id}\n style={{\n display: \"flex\",\n gap: \"1rem\",\n alignItems: \"center\",\n }}\n >\n {links.map((link: any, index: number) => (\n <a\n key={index}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width:\n variant === \"filled\" ? `calc(${iconSize} + 0.75rem)` : iconSize,\n height:\n variant === \"filled\" ? `calc(${iconSize} + 0.75rem)` : iconSize,\n backgroundColor:\n variant === \"filled\" ? \"var(--sg-surface)\" : \"transparent\",\n borderRadius: variant === \"filled\" ? \"50%\" : undefined,\n color: \"var(--sg-muted-text)\",\n textDecoration: \"none\",\n }}\n >\n <svg\n width={iconSize}\n height={iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d={socialIconPaths[link.platform] || socialIconPaths.github} />\n </svg>\n </a>\n ))}\n </div>\n );\n}\n"],"names":["renderSocialLinks","block","links","size","variant","sizeMap","iconSize","jsx","link","index","socialIconPaths"],"mappings":";;AAQO,SAASA,EAAkBC,GAA6B;AAC7D,QAAM,EAAE,OAAAC,IAAQ,CAAA,GAAI,MAAAC,IAAO,MAAM,SAAAC,IAAU,cAAcH,EAAM,OAEzDI,IAAkC;AAAA,IACtC,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAGAC,IAAWD,EAAQF,CAAI,KAAKE,EAAQ;AAE1C,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,KAAK;AAAA,QACL,YAAY;AAAA,MAAA;AAAA,MAGb,UAAAL,EAAM,IAAI,CAACM,GAAWC,MACrB,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,MAAMC,EAAK;AAAA,UACX,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,OAAO;AAAA,YACL,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,OACEJ,MAAY,WAAW,QAAQE,CAAQ,gBAAgBA;AAAA,YACzD,QACEF,MAAY,WAAW,QAAQE,CAAQ,gBAAgBA;AAAA,YACzD,iBACEF,MAAY,WAAW,sBAAsB;AAAA,YAC/C,cAAcA,MAAY,WAAW,QAAQ;AAAA,YAC7C,OAAO;AAAA,YACP,gBAAgB;AAAA,UAAA;AAAA,UAGlB,UAAA,gBAAAG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAOD;AAAA,cACP,QAAQA;AAAA,cACR,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA,cAEf,UAAA,gBAAAC,EAAC,UAAK,GAAGG,EAAgBF,EAAK,QAAQ,KAAKE,EAAgB,OAAA,CAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QACrE;AAAA,QA9BKD;AAAA,MAAA,CAgCR;AAAA,IAAA;AAAA,IAzCIR,EAAM;AAAA,EAAA;AA4CjB;"}
@@ -1,21 +1,21 @@
1
- import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
- import a from "react";
1
+ import { jsxs as m, jsx as t } from "react/jsx-runtime";
2
+ import s from "react";
3
3
  import { renderBlockNode as p } from "../../renderNodeImpl.js";
4
4
  function g(r, e) {
5
5
  const {
6
6
  action: n,
7
7
  method: i = "post",
8
8
  children: d = [],
9
- submitText: m = "Enviar"
9
+ submitText: a = "Enviar"
10
10
  } = r.props;
11
- return /* @__PURE__ */ s(
11
+ return /* @__PURE__ */ m(
12
12
  "form",
13
13
  {
14
14
  action: n,
15
15
  method: i,
16
16
  style: { display: "flex", flexDirection: "column", gap: "1rem" },
17
17
  children: [
18
- d.map((o) => /* @__PURE__ */ t(a.Fragment, { children: p(o, e + 1) }, o.id)),
18
+ d.map((o) => /* @__PURE__ */ t(s.Fragment, { children: p(o, e + 1) }, o.id)),
19
19
  /* @__PURE__ */ t(
20
20
  "button",
21
21
  {
@@ -29,7 +29,7 @@ function g(r, e) {
29
29
  fontWeight: 500,
30
30
  cursor: "pointer"
31
31
  },
32
- children: m
32
+ children: a
33
33
  }
34
34
  )
35
35
  ]
@@ -2,16 +2,16 @@ import { jsx as d } from "react/jsx-runtime";
2
2
  import p from "react";
3
3
  import { renderBlockNode as s } from "../../renderNodeImpl.js";
4
4
  function f(e, i) {
5
- const { cols: r = 3, gap: m = "1rem", children: n = [] } = e.props, t = typeof r == "number" ? r : r.lg || r.md || r.sm || 3;
5
+ const { cols: r = 3, gap: m = "1rem", children: t = [] } = e.props, n = typeof r == "number" ? r : r.lg || r.md || r.sm || 3;
6
6
  return /* @__PURE__ */ d(
7
7
  "div",
8
8
  {
9
9
  style: {
10
10
  display: "grid",
11
- gridTemplateColumns: `repeat(${t}, 1fr)`,
11
+ gridTemplateColumns: `repeat(${n}, 1fr)`,
12
12
  gap: m
13
13
  },
14
- children: n.map((o) => /* @__PURE__ */ d(p.Fragment, { children: s(o, i + 1) }, o.id))
14
+ children: t.map((o) => /* @__PURE__ */ d(p.Fragment, { children: s(o, i + 1) }, o.id))
15
15
  },
16
16
  e.id
17
17
  );
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ export declare function renderBlogPostCard(block: any): React.ReactNode;
3
+ //# sourceMappingURL=BlogPostCardRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlogPostCardRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/BlogPostCardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAoN9D"}