@brunoalz/smartgesti-site-editor 1.0.0 → 1.2.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 (219) hide show
  1. package/dist/editor/BlockSelector.d.ts.map +1 -1
  2. package/dist/editor/BlockSelector.js +60 -57
  3. package/dist/editor/BlockSelector.js.map +1 -1
  4. package/dist/editor/LandingPageEditor.d.ts.map +1 -1
  5. package/dist/editor/LandingPageEditor.js +145 -128
  6. package/dist/editor/LandingPageEditor.js.map +1 -1
  7. package/dist/editor/PageTabBar.d.ts +4 -1
  8. package/dist/editor/PageTabBar.d.ts.map +1 -1
  9. package/dist/editor/PageTabBar.js +179 -41
  10. package/dist/editor/PageTabBar.js.map +1 -1
  11. package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts +2 -0
  12. package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts.map +1 -1
  13. package/dist/editor/PropertyEditor/BlockPropertyEditor.js +53 -45
  14. package/dist/editor/PropertyEditor/BlockPropertyEditor.js.map +1 -1
  15. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts +2 -0
  16. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts.map +1 -1
  17. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js +47 -33
  18. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js.map +1 -1
  19. package/dist/editor/PropertyEditor/VariationSelector.d.ts.map +1 -1
  20. package/dist/editor/PropertyEditor/VariationSelector.js +10 -6
  21. package/dist/editor/PropertyEditor/VariationSelector.js.map +1 -1
  22. package/dist/editor/PropertyEditor/index.js +20 -18
  23. package/dist/editor/PropertyEditor/index.js.map +1 -1
  24. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts +16 -0
  25. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts.map +1 -0
  26. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js +170 -0
  27. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js.map +1 -0
  28. package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts.map +1 -1
  29. package/dist/editor/PropertyEditor/inputs/ImageGridInput.js +148 -121
  30. package/dist/editor/PropertyEditor/inputs/ImageGridInput.js.map +1 -1
  31. package/dist/editor/PropertyEditor/inputs/index.d.ts +1 -0
  32. package/dist/editor/PropertyEditor/inputs/index.d.ts.map +1 -1
  33. package/dist/editor/PropertyEditor/renderPropertyInput.d.ts.map +1 -1
  34. package/dist/editor/PropertyEditor/renderPropertyInput.js +167 -139
  35. package/dist/editor/PropertyEditor/renderPropertyInput.js.map +1 -1
  36. package/dist/editor/components/CenterPanel.d.ts +9 -1
  37. package/dist/editor/components/CenterPanel.d.ts.map +1 -1
  38. package/dist/editor/components/CenterPanel.js +24 -14
  39. package/dist/editor/components/CenterPanel.js.map +1 -1
  40. package/dist/editor/components/RightPanel.d.ts +5 -0
  41. package/dist/editor/components/RightPanel.d.ts.map +1 -1
  42. package/dist/editor/components/RightPanel.js +18 -12
  43. package/dist/editor/components/RightPanel.js.map +1 -1
  44. package/dist/editor/components/Toolbar.d.ts +3 -0
  45. package/dist/editor/components/Toolbar.d.ts.map +1 -1
  46. package/dist/editor/components/Toolbar.js +54 -35
  47. package/dist/editor/components/Toolbar.js.map +1 -1
  48. package/dist/engine/export/exportHtml.d.ts.map +1 -1
  49. package/dist/engine/export/exportHtml.js +50 -50
  50. package/dist/engine/export/exportHtml.js.map +1 -1
  51. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts +6 -0
  52. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -0
  53. package/dist/engine/export/exporters/sections/BlogPostExporters.js +101 -0
  54. package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -0
  55. package/dist/engine/export/exporters/sections/FooterExporter.js +22 -22
  56. package/dist/engine/export/exporters/sections/FooterExporter.js.map +1 -1
  57. package/dist/engine/export/exporters/sections/HeroExporter.d.ts.map +1 -1
  58. package/dist/engine/export/exporters/sections/HeroExporter.js +222 -205
  59. package/dist/engine/export/exporters/sections/HeroExporter.js.map +1 -1
  60. package/dist/engine/export/exporters/sections/MarketingExporters.js +88 -88
  61. package/dist/engine/export/exporters/sections/MarketingExporters.js.map +1 -1
  62. package/dist/engine/export/exporters/sections/NavbarExporter.js +34 -34
  63. package/dist/engine/export/exporters/sections/NavbarExporter.js.map +1 -1
  64. package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
  65. package/dist/engine/export/exporters/sections/index.js +29 -22
  66. package/dist/engine/export/exporters/sections/index.js.map +1 -1
  67. package/dist/engine/index.d.ts +3 -0
  68. package/dist/engine/index.d.ts.map +1 -1
  69. package/dist/engine/index.js +99 -87
  70. package/dist/engine/index.js.map +1 -1
  71. package/dist/engine/plugins/builtin/blog/index.d.ts +3 -0
  72. package/dist/engine/plugins/builtin/blog/index.d.ts.map +1 -0
  73. package/dist/engine/plugins/builtin/blog/manifest.d.ts +3 -0
  74. package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -0
  75. package/dist/engine/plugins/builtin/blog/manifest.js +273 -0
  76. package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -0
  77. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts +7 -0
  78. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts.map +1 -0
  79. package/dist/engine/plugins/builtin/blog/mockContentProvider.js +135 -0
  80. package/dist/engine/plugins/builtin/blog/mockContentProvider.js.map +1 -0
  81. package/dist/engine/plugins/contentHydration.d.ts +17 -0
  82. package/dist/engine/plugins/contentHydration.d.ts.map +1 -0
  83. package/dist/engine/plugins/contentHydration.js +121 -0
  84. package/dist/engine/plugins/contentHydration.js.map +1 -0
  85. package/dist/engine/plugins/dynamicPageResolver.d.ts +25 -0
  86. package/dist/engine/plugins/dynamicPageResolver.d.ts.map +1 -0
  87. package/dist/engine/plugins/dynamicPageResolver.js +32 -0
  88. package/dist/engine/plugins/dynamicPageResolver.js.map +1 -0
  89. package/dist/engine/plugins/index.d.ts +11 -0
  90. package/dist/engine/plugins/index.d.ts.map +1 -0
  91. package/dist/engine/plugins/pluginRegistry.d.ts +37 -0
  92. package/dist/engine/plugins/pluginRegistry.d.ts.map +1 -0
  93. package/dist/engine/plugins/pluginRegistry.js +134 -0
  94. package/dist/engine/plugins/pluginRegistry.js.map +1 -0
  95. package/dist/engine/plugins/types.d.ts +180 -0
  96. package/dist/engine/plugins/types.d.ts.map +1 -0
  97. package/dist/engine/presets/heroVariations.d.ts +5 -0
  98. package/dist/engine/presets/heroVariations.d.ts.map +1 -1
  99. package/dist/engine/presets/heroVariations.js +50 -6
  100. package/dist/engine/presets/heroVariations.js.map +1 -1
  101. package/dist/engine/preview/Preview.d.ts +6 -2
  102. package/dist/engine/preview/Preview.d.ts.map +1 -1
  103. package/dist/engine/preview/Preview.js +295 -125
  104. package/dist/engine/preview/Preview.js.map +1 -1
  105. package/dist/engine/registry/blocks/sections/blogPostCard.d.ts +3 -0
  106. package/dist/engine/registry/blocks/sections/blogPostCard.d.ts.map +1 -0
  107. package/dist/engine/registry/blocks/sections/blogPostCard.js +53 -0
  108. package/dist/engine/registry/blocks/sections/blogPostCard.js.map +1 -0
  109. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts +3 -0
  110. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts.map +1 -0
  111. package/dist/engine/registry/blocks/sections/blogPostDetail.js +49 -0
  112. package/dist/engine/registry/blocks/sections/blogPostDetail.js.map +1 -0
  113. package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts +3 -0
  114. package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts.map +1 -0
  115. package/dist/engine/registry/blocks/sections/blogPostGrid.js +89 -0
  116. package/dist/engine/registry/blocks/sections/blogPostGrid.js.map +1 -0
  117. package/dist/engine/registry/blocks/sections/hero.d.ts.map +1 -1
  118. package/dist/engine/registry/blocks/sections/hero.js +67 -14
  119. package/dist/engine/registry/blocks/sections/hero.js.map +1 -1
  120. package/dist/engine/registry/blocks/sections/index.d.ts +3 -0
  121. package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
  122. package/dist/engine/registry/blocks/sections/navbar.d.ts.map +1 -1
  123. package/dist/engine/registry/blocks/sections/navbar.js +2 -1
  124. package/dist/engine/registry/blocks/sections/navbar.js.map +1 -1
  125. package/dist/engine/registry/registry.d.ts.map +1 -1
  126. package/dist/engine/registry/registry.js +16 -12
  127. package/dist/engine/registry/registry.js.map +1 -1
  128. package/dist/engine/registry/types.d.ts +10 -6
  129. package/dist/engine/registry/types.d.ts.map +1 -1
  130. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts +3 -0
  131. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts.map +1 -0
  132. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js +199 -0
  133. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js.map +1 -0
  134. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts +3 -0
  135. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts.map +1 -0
  136. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js +293 -0
  137. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js.map +1 -0
  138. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts +3 -0
  139. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts.map +1 -0
  140. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js +101 -0
  141. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js.map +1 -0
  142. package/dist/engine/render/renderers/sections/CtaRenderer.d.ts.map +1 -1
  143. package/dist/engine/render/renderers/sections/CtaRenderer.js +33 -31
  144. package/dist/engine/render/renderers/sections/CtaRenderer.js.map +1 -1
  145. package/dist/engine/render/renderers/sections/FaqItemRenderer.d.ts.map +1 -1
  146. package/dist/engine/render/renderers/sections/FaqItemRenderer.js +7 -6
  147. package/dist/engine/render/renderers/sections/FaqItemRenderer.js.map +1 -1
  148. package/dist/engine/render/renderers/sections/FaqRenderer.js +7 -7
  149. package/dist/engine/render/renderers/sections/FaqRenderer.js.map +1 -1
  150. package/dist/engine/render/renderers/sections/FeatureGridRenderer.d.ts.map +1 -1
  151. package/dist/engine/render/renderers/sections/FeatureGridRenderer.js +19 -18
  152. package/dist/engine/render/renderers/sections/FeatureGridRenderer.js.map +1 -1
  153. package/dist/engine/render/renderers/sections/FeatureRenderer.d.ts.map +1 -1
  154. package/dist/engine/render/renderers/sections/FeatureRenderer.js +5 -4
  155. package/dist/engine/render/renderers/sections/FeatureRenderer.js.map +1 -1
  156. package/dist/engine/render/renderers/sections/FooterRenderer.d.ts.map +1 -1
  157. package/dist/engine/render/renderers/sections/FooterRenderer.js +8 -7
  158. package/dist/engine/render/renderers/sections/FooterRenderer.js.map +1 -1
  159. package/dist/engine/render/renderers/sections/HeroRenderer.d.ts.map +1 -1
  160. package/dist/engine/render/renderers/sections/HeroRenderer.js +295 -218
  161. package/dist/engine/render/renderers/sections/HeroRenderer.js.map +1 -1
  162. package/dist/engine/render/renderers/sections/NavbarRenderer.d.ts.map +1 -1
  163. package/dist/engine/render/renderers/sections/NavbarRenderer.js +23 -22
  164. package/dist/engine/render/renderers/sections/NavbarRenderer.js.map +1 -1
  165. package/dist/engine/render/renderers/sections/PricingCardRenderer.d.ts.map +1 -1
  166. package/dist/engine/render/renderers/sections/PricingCardRenderer.js +7 -6
  167. package/dist/engine/render/renderers/sections/PricingCardRenderer.js.map +1 -1
  168. package/dist/engine/render/renderers/sections/PricingRenderer.js +9 -9
  169. package/dist/engine/render/renderers/sections/PricingRenderer.js.map +1 -1
  170. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.d.ts.map +1 -1
  171. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js +17 -16
  172. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js.map +1 -1
  173. package/dist/engine/render/renderers/sections/TestimonialRenderer.d.ts.map +1 -1
  174. package/dist/engine/render/renderers/sections/TestimonialRenderer.js +11 -10
  175. package/dist/engine/render/renderers/sections/TestimonialRenderer.js.map +1 -1
  176. package/dist/engine/render/renderers/sections/index.js +24 -18
  177. package/dist/engine/render/renderers/sections/index.js.map +1 -1
  178. package/dist/engine/schema/siteDocument.d.ts +104 -3
  179. package/dist/engine/schema/siteDocument.d.ts.map +1 -1
  180. package/dist/engine/schema/siteDocument.js.map +1 -1
  181. package/dist/engine/shared/carouselAnimation.d.ts +20 -0
  182. package/dist/engine/shared/carouselAnimation.d.ts.map +1 -0
  183. package/dist/engine/shared/carouselAnimation.js +62 -0
  184. package/dist/engine/shared/carouselAnimation.js.map +1 -0
  185. package/dist/engine/shared/imageGrid/types.d.ts +2 -0
  186. package/dist/engine/shared/imageGrid/types.d.ts.map +1 -1
  187. package/dist/engine/shared/showWhen.d.ts +44 -0
  188. package/dist/engine/shared/showWhen.d.ts.map +1 -0
  189. package/dist/engine/shared/showWhen.js +33 -0
  190. package/dist/engine/shared/showWhen.js.map +1 -0
  191. package/dist/hooks/useEditorState.d.ts +3 -0
  192. package/dist/hooks/useEditorState.d.ts.map +1 -1
  193. package/dist/hooks/useEditorState.js +106 -84
  194. package/dist/hooks/useEditorState.js.map +1 -1
  195. package/dist/index.d.ts +13 -2
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +109 -93
  198. package/dist/index.js.map +1 -1
  199. package/dist/shared/templates/escola-blog.d.ts +3 -0
  200. package/dist/shared/templates/escola-blog.d.ts.map +1 -0
  201. package/dist/shared/templates/escola-blog.js +160 -0
  202. package/dist/shared/templates/escola-blog.js.map +1 -0
  203. package/dist/shared/templates/index.d.ts +2 -0
  204. package/dist/shared/templates/index.d.ts.map +1 -1
  205. package/dist/shared/templates/index.js +30 -12
  206. package/dist/shared/templates/index.js.map +1 -1
  207. package/dist/utils/changeDetector.d.ts +2 -1
  208. package/dist/utils/changeDetector.d.ts.map +1 -1
  209. package/dist/utils/changeDetector.js +39 -39
  210. package/dist/utils/changeDetector.js.map +1 -1
  211. package/dist/utils/sharedTemplateToEngine.d.ts +4 -5
  212. package/dist/utils/sharedTemplateToEngine.d.ts.map +1 -1
  213. package/dist/utils/sharedTemplateToEngine.js +14 -87
  214. package/dist/utils/sharedTemplateToEngine.js.map +1 -1
  215. package/dist/viewer/LandingPageViewer.d.ts +13 -6
  216. package/dist/viewer/LandingPageViewer.d.ts.map +1 -1
  217. package/dist/viewer/LandingPageViewer.js +220 -122
  218. package/dist/viewer/LandingPageViewer.js.map +1 -1
  219. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"HeroRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/HeroRenderer.tsx"],"sourcesContent":["/**\n * Hero Renderer\n * Renderiza seção hero com múltiplas variações e customizações avançadas\n */\n\nimport React from \"react\";\nimport { PLACEHOLDER_IMAGE_URL } from \"../../../presets/heroVariations\";\nimport { gridPresetMap, type ImageGridItem, type ImageGridPreset } from \"../../../shared/imageGrid\";\nimport {\n generateTypographyStyles,\n mergeTypographyWithDefaults,\n heroTitleDefaults,\n heroSubtitleDefaults,\n heroDescriptionDefaults,\n type TypographyConfig,\n} from \"../../../shared/typography\";\nimport { imageShadowMap } from \"../../../shared/shadowConstants\";\nimport { contentPositionMap, blockGapConfig } from \"../../../shared/layoutConstants\";\n\nexport function renderHero(block: any): React.ReactNode {\n const {\n variation,\n variant = \"centered\",\n title,\n subtitle,\n description,\n primaryButton,\n secondaryButton,\n image,\n badge,\n align = \"center\",\n contentPosition = \"center\",\n contentSpacing = \"default\",\n blockGap = \"default\",\n minHeight = \"80vh\",\n overlay,\n overlayColor,\n background,\n // Typography colors (legacy)\n titleColor,\n subtitleColor,\n descriptionColor,\n // Typography config (novo sistema)\n titleTypography,\n subtitleTypography,\n descriptionTypography,\n // Badge styling\n badgeColor,\n badgeTextColor,\n // Layout\n contentMaxWidth = \"800px\",\n paddingY,\n // Image styling\n imageRadius = 16,\n imageShadow = \"lg\",\n imagePosition = \"right\",\n // Button styling\n buttonSize = \"md\",\n primaryButtonVariant = \"solid\",\n primaryButtonColor,\n primaryButtonTextColor,\n primaryButtonRadius = 8,\n secondaryButtonVariant = \"outline\",\n secondaryButtonColor,\n secondaryButtonTextColor,\n secondaryButtonRadius = 8,\n // Decorative\n showWave,\n waveColor = \"rgba(255,255,255,0.1)\",\n // Image Grid\n imageGridEnabled,\n imageGridPreset = \"four-equal\",\n imageGridImages = [],\n imageGridGap = 8,\n } = block.props;\n\n // Determine variation type\n const heroImage = image || PLACEHOLDER_IMAGE_URL;\n const isSplit = variation === \"hero-split\" || variant === \"split\";\n const isParallax = variation === \"hero-parallax\";\n const isOverlayVariant = variation === \"hero-overlay\";\n const isGradient = variation === \"hero-gradient\";\n const isMinimal = variation === \"hero-minimal\";\n const isCard = variation === \"hero-card\";\n const isImageBg = (variant === \"image-bg\" || isOverlayVariant || isParallax || isCard) && heroImage;\n const isOverlay = isImageBg && overlay;\n\n // Check if image grid should be shown (works in ANY variation now)\n const hasValidGridImages = imageGridImages && imageGridImages.length > 0 && imageGridImages.some((img: ImageGridItem) => img?.src);\n const shouldShowImageGrid = imageGridEnabled && hasValidGridImages;\n\n // Build section classes\n const sectionClass = [\n \"sg-hero\",\n variation && `sg-hero--${variation.replace(\"hero-\", \"\")}`,\n isSplit && \"sg-hero--split\",\n isParallax && \"sg-hero--parallax\",\n isOverlayVariant && \"sg-hero--overlay\",\n isGradient && \"sg-hero--gradient\",\n isMinimal && \"sg-hero--minimal\",\n isCard && \"sg-hero--card\",\n shouldShowImageGrid && \"sg-hero--with-grid\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n // Container styles\n const containerStyle: React.CSSProperties = {\n minHeight,\n padding: paddingY ? `${paddingY} 2rem` : \"6rem 2rem\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: contentPositionMap[contentPosition] || \"center\",\n position: \"relative\",\n overflow: \"hidden\",\n // Background\n ...(background && { background }),\n ...(isImageBg && !isSplit && {\n backgroundImage: `url(${heroImage})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n }),\n ...(isParallax && { backgroundAttachment: \"fixed\" }),\n };\n\n // Text colors - use custom or fallback based on context\n const hasOverlayOrDarkBg = isOverlay || isGradient || isOverlayVariant;\n const defaultTextColor = hasOverlayOrDarkBg ? \"#ffffff\" : \"var(--sg-text, #1f2937)\";\n const defaultMutedColor = hasOverlayOrDarkBg ? \"rgba(255,255,255,0.85)\" : \"var(--sg-muted-text, #6b7280)\";\n\n // Content spacing map - controls margin between elements\n const spacingMap: Record<string, { title: string; subtitle: string; description: string; badge: string; actions: string }> = {\n compact: { title: \"0.5rem\", subtitle: \"0.5rem\", description: \"1rem\", badge: \"1rem\", actions: \"0.25rem\" },\n default: { title: \"1rem\", subtitle: \"1rem\", description: \"2rem\", badge: \"1.5rem\", actions: \"0.5rem\" },\n spacious: { title: \"2rem\", subtitle: \"2rem\", description: \"3rem\", badge: \"2.5rem\", actions: \"1.5rem\" },\n };\n const spacing = spacingMap[contentSpacing] || spacingMap.default;\n\n // Block gap configuration\n const blocksConfig = blockGapConfig[blockGap] || blockGapConfig.default;\n const blocksJustify = blocksConfig.justify;\n const blocksMaxWidth = blocksConfig.blockMaxWidth;\n const containerMaxWidth = blocksConfig.containerMaxWidth;\n const blocksGap = blocksConfig.gap;\n\n // Merge typography configs with defaults (retrocompatível com titleColor, etc.)\n const mergedTitleTypo = mergeTypographyWithDefaults(\n titleTypography as TypographyConfig | undefined,\n { ...heroTitleDefaults, color: titleColor || undefined }\n );\n const mergedSubtitleTypo = mergeTypographyWithDefaults(\n subtitleTypography as TypographyConfig | undefined,\n { ...heroSubtitleDefaults, color: subtitleColor || undefined }\n );\n const mergedDescriptionTypo = mergeTypographyWithDefaults(\n descriptionTypography as TypographyConfig | undefined,\n { ...heroDescriptionDefaults, color: descriptionColor || undefined }\n );\n\n // Generate typography styles\n const titleTypoStyles = generateTypographyStyles(mergedTitleTypo, defaultTextColor);\n const subtitleTypoStyles = generateTypographyStyles(mergedSubtitleTypo, defaultMutedColor);\n const descriptionTypoStyles = generateTypographyStyles(mergedDescriptionTypo, defaultMutedColor);\n\n const titleStyle: React.CSSProperties = {\n ...titleTypoStyles.style,\n marginBottom: spacing.title,\n };\n\n const subtitleStyle: React.CSSProperties = {\n ...subtitleTypoStyles.style,\n marginBottom: spacing.subtitle,\n };\n\n const descriptionStyle: React.CSSProperties = {\n ...descriptionTypoStyles.style,\n maxWidth: \"600px\",\n margin: align === \"center\" ? `0 auto ${spacing.description}` : `0 0 ${spacing.description}`,\n };\n\n // Badge styles\n const badgeStyle: React.CSSProperties = {\n display: \"inline-block\",\n padding: \"0.5rem 1rem\",\n borderRadius: \"9999px\",\n fontSize: \"0.875rem\",\n fontWeight: 600,\n marginBottom: spacing.badge,\n backgroundColor: badgeColor || \"var(--sg-primary, #3b82f6)\",\n color: badgeTextColor || \"#ffffff\",\n };\n\n // Button size map\n const buttonSizeMap = {\n sm: { padding: \"0.5rem 1rem\", fontSize: \"0.875rem\" },\n md: { padding: \"0.75rem 1.5rem\", fontSize: \"1rem\" },\n lg: { padding: \"1rem 2rem\", fontSize: \"1.125rem\" },\n };\n const btnSize = buttonSizeMap[buttonSize as keyof typeof buttonSizeMap] || buttonSizeMap.md;\n\n // Primary button styles\n const getPrimaryButtonStyle = (): React.CSSProperties => {\n const baseStyle: React.CSSProperties = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.5rem\",\n padding: btnSize.padding,\n fontSize: btnSize.fontSize,\n fontWeight: 600,\n borderRadius: `${primaryButtonRadius}px`,\n textDecoration: \"none\",\n transition: \"all 0.2s ease\",\n cursor: \"pointer\",\n };\n\n const color = primaryButtonColor || \"var(--sg-primary, #3b82f6)\";\n const textColor = primaryButtonTextColor || \"#ffffff\";\n\n switch (primaryButtonVariant) {\n case \"outline\":\n return {\n ...baseStyle,\n backgroundColor: \"transparent\",\n border: `2px solid ${color}`,\n color: color,\n };\n case \"ghost\":\n return {\n ...baseStyle,\n backgroundColor: \"transparent\",\n border: \"none\",\n color: color,\n };\n default: // solid\n return {\n ...baseStyle,\n backgroundColor: color,\n border: `2px solid ${color}`,\n color: textColor,\n };\n }\n };\n\n // Secondary button styles\n const getSecondaryButtonStyle = (): React.CSSProperties => {\n const baseStyle: React.CSSProperties = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.5rem\",\n padding: btnSize.padding,\n fontSize: btnSize.fontSize,\n fontWeight: 600,\n borderRadius: `${secondaryButtonRadius}px`,\n textDecoration: \"none\",\n transition: \"all 0.2s ease\",\n cursor: \"pointer\",\n };\n\n const color = secondaryButtonColor || (hasOverlayOrDarkBg ? \"#ffffff\" : \"var(--sg-primary, #3b82f6)\");\n const textColor = secondaryButtonTextColor || color;\n\n switch (secondaryButtonVariant) {\n case \"solid\":\n return {\n ...baseStyle,\n backgroundColor: color,\n border: `2px solid ${color}`,\n color: textColor === color ? \"#ffffff\" : textColor,\n };\n case \"ghost\":\n return {\n ...baseStyle,\n backgroundColor: \"transparent\",\n border: \"none\",\n color: textColor,\n };\n default: // outline\n return {\n ...baseStyle,\n backgroundColor: \"transparent\",\n border: `2px solid ${color}`,\n color: textColor,\n };\n }\n };\n\n // Content wrapper style\n const contentStyle: React.CSSProperties = {\n maxWidth: contentMaxWidth,\n width: \"100%\",\n textAlign: align as any,\n position: \"relative\",\n zIndex: 2,\n };\n\n // Wave SVG for gradient variation\n const WaveElement = showWave ? (\n <div\n style={{\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n height: \"150px\",\n overflow: \"hidden\",\n zIndex: 1,\n }}\n >\n <svg\n viewBox=\"0 0 1200 120\"\n preserveAspectRatio=\"none\"\n style={{\n position: \"absolute\",\n bottom: 0,\n width: \"100%\",\n height: \"100%\",\n }}\n >\n <path\n d=\"M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z\"\n fill={waveColor}\n opacity=\"0.5\"\n />\n <path\n d=\"M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z\"\n fill={waveColor}\n opacity=\"0.3\"\n />\n </svg>\n </div>\n ) : null;\n\n // Content block (reused across layouts)\n const content = (\n <>\n {badge && <span style={badgeStyle}>{badge}</span>}\n {title && (\n <h1 className=\"sg-hero__title\" style={titleStyle}>\n {title}\n </h1>\n )}\n {subtitle && (\n <h2 className=\"sg-hero__subtitle\" style={subtitleStyle}>\n {subtitle}\n </h2>\n )}\n {description && (\n <p className=\"sg-hero__description\" style={descriptionStyle}>\n {description}\n </p>\n )}\n <div\n className=\"sg-hero__actions\"\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"1rem\",\n justifyContent: align === \"center\" ? \"center\" : \"flex-start\",\n marginTop: spacing.actions,\n }}\n >\n {primaryButton && (\n <a\n href={primaryButton.href || \"#\"}\n className=\"sg-hero__btn sg-hero__btn--primary\"\n style={getPrimaryButtonStyle()}\n >\n {primaryButton.text}\n </a>\n )}\n {secondaryButton && (\n <a\n href={secondaryButton.href || \"#\"}\n className=\"sg-hero__btn sg-hero__btn--secondary\"\n style={getSecondaryButtonStyle()}\n >\n {secondaryButton.text}\n </a>\n )}\n </div>\n </>\n );\n\n // Image styles for split layout\n const imageStyle: React.CSSProperties = {\n width: \"100%\",\n maxWidth: \"500px\",\n height: \"auto\",\n borderRadius: `${imageRadius}px`,\n boxShadow: imageShadowMap[imageShadow] || imageShadowMap.lg,\n objectFit: \"cover\",\n };\n\n // =========================================================================\n // IMAGE GRID RENDERER - Floating element that works in any variation\n // =========================================================================\n const renderImageGrid = (\n images: ImageGridItem[],\n preset: ImageGridPreset,\n gap: number,\n radius: number,\n shadow: string\n ) => {\n const config = gridPresetMap[preset];\n const shadowValue = imageShadowMap[shadow] || imageShadowMap.lg;\n\n return (\n <div\n className=\"sg-hero__image-grid\"\n style={{\n display: \"grid\",\n gridTemplate: config.gridTemplate,\n gap: `${gap}px`,\n width: \"100%\",\n maxWidth: \"450px\",\n aspectRatio: \"1 / 1\",\n }}\n >\n {config.positions.map((pos, idx) => {\n const img = images[idx];\n const imgSrc = img?.src || PLACEHOLDER_IMAGE_URL;\n\n return (\n <div\n key={idx}\n style={{\n gridColumn: pos.col,\n gridRow: pos.row,\n overflow: \"hidden\",\n borderRadius: `${radius}px`,\n }}\n >\n <img\n src={imgSrc}\n alt={img?.alt || `Imagem ${idx + 1}`}\n style={{\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n boxShadow: shadowValue,\n }}\n onError={(e) => {\n (e.target as HTMLImageElement).src = PLACEHOLDER_IMAGE_URL;\n }}\n />\n </div>\n );\n })}\n </div>\n );\n };\n\n // Image Grid element (floating, used in all variations when enabled)\n const ImageGridElement = shouldShowImageGrid ? (\n <div\n className=\"sg-hero__grid-wrapper\"\n style={{\n position: \"relative\",\n zIndex: 3,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flex: \"0 1 auto\",\n maxWidth: blocksMaxWidth,\n }}\n >\n {renderImageGrid(\n imageGridImages as ImageGridItem[],\n imageGridPreset as ImageGridPreset,\n imageGridGap as number,\n imageRadius,\n imageShadow\n )}\n </div>\n ) : null;\n\n // =========================================================================\n // RENDER: Split Layout (original behavior without grid)\n // =========================================================================\n if (isSplit && heroImage && !shouldShowImageGrid) {\n const isImageLeft = imagePosition === \"left\";\n\n const imageArea = (\n <div className=\"sg-hero__split-image\" style={{ display: \"flex\", justifyContent: \"center\", flex: \"0 1 auto\", maxWidth: blocksMaxWidth }}>\n <img\n src={heroImage}\n alt={title || \"\"}\n className=\"sg-hero__img\"\n style={imageStyle}\n onError={(e) => {\n (e.target as HTMLImageElement).src = PLACEHOLDER_IMAGE_URL;\n }}\n />\n </div>\n );\n\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={{\n ...containerStyle,\n backgroundImage: undefined,\n background: background || \"var(--sg-bg, #ffffff)\",\n }}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n <div\n className=\"sg-hero__split-inner\"\n style={{\n display: \"flex\",\n justifyContent: blocksJustify,\n gap: blocksGap,\n maxWidth: containerMaxWidth,\n width: \"100%\",\n alignItems: \"center\",\n }}\n >\n {isImageLeft && imageArea}\n <div className=\"sg-hero__split-content\" style={{ ...contentStyle, flex: \"0 1 auto\", maxWidth: blocksMaxWidth }}>\n {content}\n </div>\n {!isImageLeft && imageArea}\n </div>\n </section>\n );\n }\n\n // =========================================================================\n // RENDER: Card Layout (content in floating card over image)\n // Supports both with and without Image Grid\n // Card always stays on the left (original position), Grid on the right\n // =========================================================================\n if (isCard && heroImage) {\n // Card element (reused in both layouts)\n const CardElement = (\n <div\n className=\"sg-hero__card\"\n style={{\n ...contentStyle,\n backgroundColor: background || \"#ffffff\",\n padding: \"2rem\",\n borderRadius: \"16px\",\n boxShadow: \"0 25px 50px rgba(0,0,0,0.25)\",\n zIndex: 2,\n maxWidth: shouldShowImageGrid ? \"500px\" : contentMaxWidth,\n flex: \"0 1 auto\",\n }}\n >\n {content}\n </div>\n );\n\n // With Image Grid: Card on left + Grid on right (preserves original card position)\n if (shouldShowImageGrid) {\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={{\n ...containerStyle,\n justifyContent: \"flex-start\",\n padding: paddingY ? `${paddingY} 3rem` : \"6rem 3rem\",\n }}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Overlay */}\n {isOverlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"rgba(0,0,0,0.4)\",\n zIndex: 1,\n }}\n />\n )}\n {/* Card + Grid Layout: Card left, Grid right with proper spacing */}\n <div\n className=\"sg-hero__card-grid-layout\"\n style={{\n display: \"flex\",\n width: \"100%\",\n maxWidth: containerMaxWidth,\n alignItems: \"center\",\n justifyContent: blocksJustify,\n position: \"relative\",\n zIndex: 2,\n padding: \"0 2rem\",\n gap: blocksGap,\n }}\n >\n {CardElement}\n {ImageGridElement}\n </div>\n </section>\n );\n }\n\n // Without Image Grid: Original card layout\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={{\n ...containerStyle,\n justifyContent: align === \"center\" ? \"center\" : align === \"right\" ? \"flex-end\" : \"flex-start\",\n padding: paddingY ? `${paddingY} 3rem` : \"6rem 3rem\",\n }}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Overlay */}\n {isOverlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"rgba(0,0,0,0.4)\",\n zIndex: 1,\n }}\n />\n )}\n {/* Content Card */}\n {CardElement}\n </section>\n );\n }\n\n // =========================================================================\n // RENDER: With Image Grid (any variation) - Split layout with content + grid\n // =========================================================================\n if (shouldShowImageGrid) {\n const isGridLeft = imagePosition === \"left\";\n\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={containerStyle}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Overlay for image backgrounds */}\n {isOverlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 100%)\",\n zIndex: 1,\n }}\n />\n )}\n {/* Wave decoration */}\n {WaveElement}\n {/* Main content wrapper with flex layout */}\n <div\n className=\"sg-hero__grid-layout\"\n style={{\n display: \"flex\",\n justifyContent: blocksJustify,\n gap: blocksGap,\n maxWidth: containerMaxWidth,\n width: \"100%\",\n alignItems: \"center\",\n position: \"relative\",\n zIndex: 2,\n padding: \"0 2rem\",\n }}\n >\n {isGridLeft && ImageGridElement}\n <div className=\"sg-hero__content-side\" style={{ ...contentStyle, flex: \"0 1 auto\", maxWidth: blocksMaxWidth }}>\n {content}\n </div>\n {!isGridLeft && ImageGridElement}\n </div>\n </section>\n );\n }\n\n // =========================================================================\n // RENDER: Default (centered, gradient, minimal, parallax, overlay)\n // =========================================================================\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={containerStyle}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Overlay for image backgrounds */}\n {isOverlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 100%)\",\n zIndex: 1,\n }}\n />\n )}\n {/* Wave decoration */}\n {WaveElement}\n {/* Content */}\n <div style={contentStyle}>{content}</div>\n </section>\n );\n}\n"],"names":["renderHero","block","variation","variant","title","subtitle","description","primaryButton","secondaryButton","image","badge","align","contentPosition","contentSpacing","blockGap","minHeight","overlay","overlayColor","background","titleColor","subtitleColor","descriptionColor","titleTypography","subtitleTypography","descriptionTypography","badgeColor","badgeTextColor","contentMaxWidth","paddingY","imageRadius","imageShadow","imagePosition","buttonSize","primaryButtonVariant","primaryButtonColor","primaryButtonTextColor","primaryButtonRadius","secondaryButtonVariant","secondaryButtonColor","secondaryButtonTextColor","secondaryButtonRadius","showWave","waveColor","imageGridEnabled","imageGridPreset","imageGridImages","imageGridGap","heroImage","PLACEHOLDER_IMAGE_URL","isSplit","isParallax","isOverlayVariant","isGradient","isMinimal","isCard","isImageBg","isOverlay","hasValidGridImages","img","shouldShowImageGrid","sectionClass","containerStyle","contentPositionMap","hasOverlayOrDarkBg","defaultTextColor","defaultMutedColor","spacingMap","spacing","blocksConfig","blockGapConfig","blocksJustify","blocksMaxWidth","containerMaxWidth","blocksGap","mergedTitleTypo","mergeTypographyWithDefaults","heroTitleDefaults","mergedSubtitleTypo","heroSubtitleDefaults","mergedDescriptionTypo","heroDescriptionDefaults","titleTypoStyles","generateTypographyStyles","subtitleTypoStyles","descriptionTypoStyles","titleStyle","subtitleStyle","descriptionStyle","badgeStyle","buttonSizeMap","btnSize","getPrimaryButtonStyle","baseStyle","color","textColor","getSecondaryButtonStyle","contentStyle","WaveElement","jsx","jsxs","content","Fragment","imageStyle","imageShadowMap","ImageGridElement","images","preset","gap","radius","shadow","config","gridPresetMap","shadowValue","pos","idx","imgSrc","e","isImageLeft","imageArea","CardElement","isGridLeft"],"mappings":"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"}
1
+ {"version":3,"file":"HeroRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/HeroRenderer.tsx"],"sourcesContent":["/**\n * Hero Renderer\n * Renderiza seção hero com múltiplas variações e customizações avançadas\n */\n\nimport React from \"react\";\nimport { PLACEHOLDER_IMAGE_URL, CAROUSEL_PLACEHOLDER_IMAGES } from \"../../../presets/heroVariations\";\nimport { gridPresetMap, type ImageGridItem, type ImageGridPreset } from \"../../../shared/imageGrid\";\nimport {\n generateTypographyStyles,\n mergeTypographyWithDefaults,\n heroTitleDefaults,\n heroSubtitleDefaults,\n heroDescriptionDefaults,\n type TypographyConfig,\n} from \"../../../shared/typography\";\nimport { imageShadowMap } from \"../../../shared/shadowConstants\";\nimport { contentPositionMap, blockGapConfig } from \"../../../shared/layoutConstants\";\nimport { generateCarouselCSS } from \"../../../shared/carouselAnimation\";\n\nexport function renderHero(block: any): React.ReactNode {\n const {\n variation,\n variant = \"centered\",\n title,\n subtitle,\n description,\n primaryButton,\n secondaryButton,\n image,\n badge,\n align = \"center\",\n contentPosition = \"center\",\n contentSpacing = \"default\",\n blockGap = \"default\",\n minHeight = \"80vh\",\n overlay,\n overlayColor,\n background,\n // Typography colors (legacy)\n titleColor,\n subtitleColor,\n descriptionColor,\n // Typography config (novo sistema)\n titleTypography,\n subtitleTypography,\n descriptionTypography,\n // Badge styling\n badgeColor,\n badgeTextColor,\n // Layout\n contentMaxWidth = \"800px\",\n paddingY,\n // Image styling\n imageRadius = 16,\n imageShadow = \"lg\",\n imagePosition = \"right\",\n // Button styling\n buttonSize = \"md\",\n primaryButtonVariant = \"solid\",\n primaryButtonColor,\n primaryButtonTextColor,\n primaryButtonRadius = 8,\n secondaryButtonVariant = \"outline\",\n secondaryButtonColor,\n secondaryButtonTextColor,\n secondaryButtonRadius = 8,\n // Decorative\n showWave,\n waveColor = \"rgba(255,255,255,0.1)\",\n // Image Grid\n imageGridEnabled,\n imageGridPreset = \"four-equal\",\n imageGridImages = [],\n imageGridGap = 8,\n // Carousel\n carouselImages,\n carouselInterval = 5,\n carouselTransition = \"crossfade\",\n } = block.props;\n\n // Determine variation type\n const heroImage = image || PLACEHOLDER_IMAGE_URL;\n const isSplit = variation === \"hero-split\" || variant === \"split\";\n const isParallax = variation === \"hero-parallax\";\n const isOverlayVariant = variation === \"hero-overlay\";\n const isGradient = variation === \"hero-gradient\";\n const isMinimal = variation === \"hero-minimal\";\n const isCard = variation === \"hero-card\";\n const isCarousel = variation === \"hero-carousel\";\n const isImageBg = (variant === \"image-bg\" || isOverlayVariant || isParallax || isCard || isCarousel) && heroImage;\n const isOverlay = isImageBg && overlay;\n\n // Check if image grid should be shown (works in ANY variation now)\n const hasValidGridImages = imageGridImages && imageGridImages.length > 0 && imageGridImages.some((img: ImageGridItem) => img?.src);\n const shouldShowImageGrid = imageGridEnabled && hasValidGridImages;\n\n // Build section classes\n const sectionClass = [\n \"sg-hero\",\n variation && `sg-hero--${variation.replace(\"hero-\", \"\")}`,\n isSplit && \"sg-hero--split\",\n isParallax && \"sg-hero--parallax\",\n isOverlayVariant && \"sg-hero--overlay\",\n isGradient && \"sg-hero--gradient\",\n isMinimal && \"sg-hero--minimal\",\n isCard && \"sg-hero--card\",\n isCarousel && \"sg-hero--carousel\",\n shouldShowImageGrid && \"sg-hero--with-grid\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n // Container styles\n const containerStyle: React.CSSProperties = {\n minHeight,\n padding: paddingY ? `${paddingY} 2rem` : \"6rem 2rem\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: contentPositionMap[contentPosition] || \"center\",\n position: \"relative\",\n overflow: \"hidden\",\n // Background\n ...(background && { background }),\n ...(isImageBg && !isSplit && {\n backgroundImage: `url(${heroImage})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n }),\n ...(isParallax && { backgroundAttachment: \"fixed\" }),\n };\n\n // Text colors - use custom or fallback based on context\n const hasOverlayOrDarkBg = isOverlay || isGradient || isOverlayVariant || isCarousel;\n const defaultTextColor = hasOverlayOrDarkBg ? \"#ffffff\" : \"var(--sg-text, #1f2937)\";\n const defaultMutedColor = hasOverlayOrDarkBg ? \"rgba(255,255,255,0.85)\" : \"var(--sg-muted-text, #6b7280)\";\n\n // Content spacing map - controls margin between elements\n const spacingMap: Record<string, { title: string; subtitle: string; description: string; badge: string; actions: string }> = {\n compact: { title: \"0.5rem\", subtitle: \"0.5rem\", description: \"1rem\", badge: \"1rem\", actions: \"0.25rem\" },\n default: { title: \"1rem\", subtitle: \"1rem\", description: \"2rem\", badge: \"1.5rem\", actions: \"0.5rem\" },\n spacious: { title: \"2rem\", subtitle: \"2rem\", description: \"3rem\", badge: \"2.5rem\", actions: \"1.5rem\" },\n };\n const spacing = spacingMap[contentSpacing] || spacingMap.default;\n\n // Block gap configuration\n const blocksConfig = blockGapConfig[blockGap] || blockGapConfig.default;\n const blocksJustify = blocksConfig.justify;\n const blocksMaxWidth = blocksConfig.blockMaxWidth;\n const containerMaxWidth = blocksConfig.containerMaxWidth;\n const blocksGap = blocksConfig.gap;\n\n // Merge typography configs with defaults (retrocompatível com titleColor, etc.)\n const mergedTitleTypo = mergeTypographyWithDefaults(\n titleTypography as TypographyConfig | undefined,\n { ...heroTitleDefaults, color: titleColor || undefined }\n );\n const mergedSubtitleTypo = mergeTypographyWithDefaults(\n subtitleTypography as TypographyConfig | undefined,\n { ...heroSubtitleDefaults, color: subtitleColor || undefined }\n );\n const mergedDescriptionTypo = mergeTypographyWithDefaults(\n descriptionTypography as TypographyConfig | undefined,\n { ...heroDescriptionDefaults, color: descriptionColor || undefined }\n );\n\n // Generate typography styles\n const titleTypoStyles = generateTypographyStyles(mergedTitleTypo, defaultTextColor);\n const subtitleTypoStyles = generateTypographyStyles(mergedSubtitleTypo, defaultMutedColor);\n const descriptionTypoStyles = generateTypographyStyles(mergedDescriptionTypo, defaultMutedColor);\n\n const titleStyle: React.CSSProperties = {\n ...titleTypoStyles.style,\n marginBottom: spacing.title,\n };\n\n const subtitleStyle: React.CSSProperties = {\n ...subtitleTypoStyles.style,\n marginBottom: spacing.subtitle,\n };\n\n const descriptionStyle: React.CSSProperties = {\n ...descriptionTypoStyles.style,\n maxWidth: \"600px\",\n margin: align === \"center\" ? `0 auto ${spacing.description}` : `0 0 ${spacing.description}`,\n };\n\n // Badge styles\n const badgeStyle: React.CSSProperties = {\n display: \"inline-block\",\n padding: \"0.5rem 1rem\",\n borderRadius: \"9999px\",\n fontSize: \"0.875rem\",\n fontWeight: 600,\n marginBottom: spacing.badge,\n backgroundColor: badgeColor || \"var(--sg-primary, #3b82f6)\",\n color: badgeTextColor || \"#ffffff\",\n };\n\n // Button size map\n const buttonSizeMap = {\n sm: { padding: \"0.5rem 1rem\", fontSize: \"0.875rem\" },\n md: { padding: \"0.75rem 1.5rem\", fontSize: \"1rem\" },\n lg: { padding: \"1rem 2rem\", fontSize: \"1.125rem\" },\n };\n const btnSize = buttonSizeMap[buttonSize as keyof typeof buttonSizeMap] || buttonSizeMap.md;\n\n // Primary button styles\n const getPrimaryButtonStyle = (): React.CSSProperties => {\n const baseStyle: React.CSSProperties = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.5rem\",\n padding: btnSize.padding,\n fontSize: btnSize.fontSize,\n fontWeight: 600,\n borderRadius: `${primaryButtonRadius}px`,\n textDecoration: \"none\",\n transition: \"all 0.2s ease\",\n cursor: \"pointer\",\n };\n\n const color = primaryButtonColor || \"var(--sg-primary, #3b82f6)\";\n const textColor = primaryButtonTextColor || \"#ffffff\";\n\n switch (primaryButtonVariant) {\n case \"outline\":\n return {\n ...baseStyle,\n backgroundColor: \"transparent\",\n border: `2px solid ${color}`,\n color: color,\n };\n case \"ghost\":\n return {\n ...baseStyle,\n backgroundColor: \"transparent\",\n border: \"none\",\n color: color,\n };\n default: // solid\n return {\n ...baseStyle,\n backgroundColor: color,\n border: `2px solid ${color}`,\n color: textColor,\n };\n }\n };\n\n // Secondary button styles\n const getSecondaryButtonStyle = (): React.CSSProperties => {\n const baseStyle: React.CSSProperties = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.5rem\",\n padding: btnSize.padding,\n fontSize: btnSize.fontSize,\n fontWeight: 600,\n borderRadius: `${secondaryButtonRadius}px`,\n textDecoration: \"none\",\n transition: \"all 0.2s ease\",\n cursor: \"pointer\",\n };\n\n const color = secondaryButtonColor || (hasOverlayOrDarkBg ? \"#ffffff\" : \"var(--sg-primary, #3b82f6)\");\n const textColor = secondaryButtonTextColor || color;\n\n switch (secondaryButtonVariant) {\n case \"solid\":\n return {\n ...baseStyle,\n backgroundColor: color,\n border: `2px solid ${color}`,\n color: textColor === color ? \"#ffffff\" : textColor,\n };\n case \"ghost\":\n return {\n ...baseStyle,\n backgroundColor: \"transparent\",\n border: \"none\",\n color: textColor,\n };\n default: // outline\n return {\n ...baseStyle,\n backgroundColor: \"transparent\",\n border: `2px solid ${color}`,\n color: textColor,\n };\n }\n };\n\n // Content wrapper style\n const contentStyle: React.CSSProperties = {\n maxWidth: contentMaxWidth,\n width: \"100%\",\n textAlign: align as any,\n position: \"relative\",\n zIndex: 2,\n };\n\n // Wave SVG for gradient variation\n const WaveElement = showWave ? (\n <div\n style={{\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n height: \"150px\",\n overflow: \"hidden\",\n zIndex: 1,\n }}\n >\n <svg\n viewBox=\"0 0 1200 120\"\n preserveAspectRatio=\"none\"\n style={{\n position: \"absolute\",\n bottom: 0,\n width: \"100%\",\n height: \"100%\",\n }}\n >\n <path\n d=\"M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z\"\n fill={waveColor}\n opacity=\"0.5\"\n />\n <path\n d=\"M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z\"\n fill={waveColor}\n opacity=\"0.3\"\n />\n </svg>\n </div>\n ) : null;\n\n // Content block (reused across layouts)\n const content = (\n <>\n {badge && <span data-block-group=\"Badge\" style={badgeStyle}>{badge}</span>}\n <div data-block-group=\"Conteúdo\">\n {title && (\n <h1 className=\"sg-hero__title\" style={titleStyle}>\n {title}\n </h1>\n )}\n {subtitle && (\n <h2 className=\"sg-hero__subtitle\" style={subtitleStyle}>\n {subtitle}\n </h2>\n )}\n {description && (\n <p className=\"sg-hero__description\" style={descriptionStyle}>\n {description}\n </p>\n )}\n </div>\n <div\n className=\"sg-hero__actions\"\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"1rem\",\n justifyContent: align === \"center\" ? \"center\" : \"flex-start\",\n marginTop: spacing.actions,\n }}\n >\n {primaryButton && (\n <a\n href={primaryButton.href || \"#\"}\n className=\"sg-hero__btn sg-hero__btn--primary\"\n data-block-group=\"Botão Primário\"\n style={getPrimaryButtonStyle()}\n >\n {primaryButton.text}\n </a>\n )}\n {secondaryButton && (\n <a\n href={secondaryButton.href || \"#\"}\n className=\"sg-hero__btn sg-hero__btn--secondary\"\n data-block-group=\"Botão Secundário\"\n style={getSecondaryButtonStyle()}\n >\n {secondaryButton.text}\n </a>\n )}\n </div>\n </>\n );\n\n // Image styles for split layout\n const imageStyle: React.CSSProperties = {\n width: \"100%\",\n maxWidth: \"500px\",\n height: \"auto\",\n borderRadius: `${imageRadius}px`,\n boxShadow: imageShadowMap[imageShadow] || imageShadowMap.lg,\n objectFit: \"cover\",\n };\n\n // =========================================================================\n // IMAGE GRID RENDERER - Floating element that works in any variation\n // =========================================================================\n const renderImageGrid = (\n images: ImageGridItem[],\n preset: ImageGridPreset,\n gap: number,\n radius: number,\n shadow: string\n ) => {\n const config = gridPresetMap[preset];\n const shadowValue = imageShadowMap[shadow] || imageShadowMap.lg;\n\n return (\n <div\n className=\"sg-hero__image-grid\"\n style={{\n display: \"grid\",\n gridTemplate: config.gridTemplate,\n gap: `${gap}px`,\n width: \"100%\",\n maxWidth: \"450px\",\n aspectRatio: \"1 / 1\",\n }}\n >\n {config.positions.map((pos, idx) => {\n const img = images[idx];\n const imgSrc = img?.src || PLACEHOLDER_IMAGE_URL;\n const imgScale = img?.scale ?? 1;\n\n return (\n <div\n key={idx}\n style={{\n gridColumn: pos.col,\n gridRow: pos.row,\n overflow: \"hidden\",\n borderRadius: `${radius}px`,\n transform: imgScale !== 1 ? `scale(${imgScale})` : undefined,\n zIndex: imgScale !== 1 ? 1 : undefined,\n }}\n >\n <img\n src={imgSrc}\n alt={img?.alt || `Imagem ${idx + 1}`}\n style={{\n width: \"100%\",\n height: \"100%\",\n objectFit: \"contain\",\n display: \"block\",\n }}\n onError={(e) => {\n (e.target as HTMLImageElement).src = PLACEHOLDER_IMAGE_URL;\n }}\n />\n </div>\n );\n })}\n </div>\n );\n };\n\n // Image Grid element (floating, used in all variations when enabled)\n const ImageGridElement = shouldShowImageGrid ? (\n <div\n className=\"sg-hero__grid-wrapper\"\n data-block-group=\"Mídia\"\n style={{\n position: \"relative\",\n zIndex: 3,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flex: \"1 1 0%\",\n maxWidth: blocksMaxWidth,\n }}\n >\n {renderImageGrid(\n imageGridImages as ImageGridItem[],\n imageGridPreset as ImageGridPreset,\n imageGridGap as number,\n imageRadius,\n imageShadow\n )}\n </div>\n ) : null;\n\n // =========================================================================\n // RENDER: Carousel Layout (crossfade image background)\n // =========================================================================\n if (isCarousel) {\n const resolvedImages = (carouselImages && carouselImages.length >= 2)\n ? carouselImages as string[]\n : CAROUSEL_PLACEHOLDER_IMAGES;\n const carouselScopeId = `sg-carousel-${block.id}`;\n const carouselCss = generateCarouselCSS(\n `#${carouselScopeId}`,\n resolvedImages.length,\n carouselInterval as number,\n );\n\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={{\n minHeight,\n padding: paddingY ? `${paddingY} 2rem` : \"6rem 2rem\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: contentPositionMap[contentPosition] || \"center\",\n position: \"relative\",\n overflow: \"hidden\",\n background: \"#000\",\n }}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Carousel CSS */}\n <style dangerouslySetInnerHTML={{ __html: carouselCss }} />\n\n {/* Carousel images container + dots */}\n <div\n id={carouselScopeId}\n style={{ position: \"absolute\", inset: 0, zIndex: 0 }}\n >\n {resolvedImages.map((imgSrc: string, i: number) => (\n <img\n key={i}\n src={imgSrc}\n alt={`Slide ${i + 1}`}\n className=\"sg-carousel__img\"\n style={i === 0 ? { opacity: 1 } : undefined}\n onError={(e) => {\n (e.target as HTMLImageElement).src = PLACEHOLDER_IMAGE_URL;\n }}\n />\n ))}\n {/* Dot indicators */}\n <div className=\"sg-carousel__dots\">\n {resolvedImages.map((_: string, i: number) => (\n <span key={i} className=\"sg-carousel__dot\" />\n ))}\n </div>\n </div>\n\n {/* Overlay */}\n {overlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.7) 100%)\",\n zIndex: 1,\n }}\n />\n )}\n\n {/* Content */}\n <div style={contentStyle}>{content}</div>\n </section>\n );\n }\n\n // =========================================================================\n // RENDER: Split Layout (original behavior without grid)\n // =========================================================================\n if (isSplit && heroImage && !shouldShowImageGrid) {\n const isImageLeft = imagePosition === \"left\";\n\n const imageArea = (\n <div className=\"sg-hero__split-image\" data-block-group=\"Mídia\" style={{ display: \"flex\", justifyContent: \"center\", flex: \"0 1 auto\", maxWidth: blocksMaxWidth }}>\n <img\n src={heroImage}\n alt={title || \"\"}\n className=\"sg-hero__img\"\n style={imageStyle}\n onError={(e) => {\n (e.target as HTMLImageElement).src = PLACEHOLDER_IMAGE_URL;\n }}\n />\n </div>\n );\n\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={{\n ...containerStyle,\n backgroundImage: undefined,\n background: background || \"var(--sg-bg, #ffffff)\",\n }}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n <div\n className=\"sg-hero__split-inner\"\n style={{\n display: \"flex\",\n justifyContent: blocksJustify,\n gap: blocksGap,\n maxWidth: containerMaxWidth,\n width: \"100%\",\n alignItems: \"center\",\n }}\n >\n {isImageLeft && imageArea}\n <div className=\"sg-hero__split-content\" style={{ ...contentStyle, flex: \"0 1 auto\", maxWidth: blocksMaxWidth }}>\n {content}\n </div>\n {!isImageLeft && imageArea}\n </div>\n </section>\n );\n }\n\n // =========================================================================\n // RENDER: Card Layout (content in floating card over image)\n // Supports both with and without Image Grid\n // Card always stays on the left (original position), Grid on the right\n // =========================================================================\n if (isCard && heroImage) {\n // Card element (reused in both layouts)\n const CardElement = (\n <div\n className=\"sg-hero__card\"\n style={{\n ...contentStyle,\n backgroundColor: background || \"#ffffff\",\n padding: \"2rem\",\n borderRadius: \"16px\",\n boxShadow: \"0 25px 50px rgba(0,0,0,0.25)\",\n zIndex: 2,\n maxWidth: shouldShowImageGrid ? \"500px\" : contentMaxWidth,\n flex: \"0 1 auto\",\n }}\n >\n {content}\n </div>\n );\n\n // With Image Grid: Card on left + Grid on right (preserves original card position)\n if (shouldShowImageGrid) {\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={{\n ...containerStyle,\n justifyContent: \"flex-start\",\n padding: paddingY ? `${paddingY} 3rem` : \"6rem 3rem\",\n }}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Overlay */}\n {isOverlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"rgba(0,0,0,0.4)\",\n zIndex: 1,\n }}\n />\n )}\n {/* Card + Grid Layout: Card left, Grid right with proper spacing */}\n <div\n className=\"sg-hero__card-grid-layout\"\n style={{\n display: \"flex\",\n width: \"100%\",\n maxWidth: containerMaxWidth,\n alignItems: \"center\",\n justifyContent: blocksJustify,\n position: \"relative\",\n zIndex: 2,\n padding: \"0 2rem\",\n gap: blocksGap,\n }}\n >\n {CardElement}\n {ImageGridElement}\n </div>\n </section>\n );\n }\n\n // Without Image Grid: Original card layout\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={{\n ...containerStyle,\n justifyContent: align === \"center\" ? \"center\" : align === \"right\" ? \"flex-end\" : \"flex-start\",\n padding: paddingY ? `${paddingY} 3rem` : \"6rem 3rem\",\n }}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Overlay */}\n {isOverlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"rgba(0,0,0,0.4)\",\n zIndex: 1,\n }}\n />\n )}\n {/* Content Card */}\n {CardElement}\n </section>\n );\n }\n\n // =========================================================================\n // RENDER: With Image Grid (any variation) - Split layout with content + grid\n // =========================================================================\n if (shouldShowImageGrid) {\n const isGridLeft = imagePosition === \"left\";\n\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={containerStyle}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Overlay for image backgrounds */}\n {isOverlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 100%)\",\n zIndex: 1,\n }}\n />\n )}\n {/* Wave decoration */}\n {WaveElement}\n {/* Main content wrapper with flex layout */}\n <div\n className=\"sg-hero__grid-layout\"\n style={{\n display: \"flex\",\n justifyContent: blocksJustify,\n gap: blocksGap,\n maxWidth: containerMaxWidth,\n width: \"100%\",\n alignItems: \"center\",\n position: \"relative\",\n zIndex: 2,\n padding: \"0 2rem\",\n }}\n >\n {isGridLeft && ImageGridElement}\n <div className=\"sg-hero__content-side\" style={{ ...contentStyle, flex: \"1 1 0%\", maxWidth: blocksMaxWidth }}>\n {content}\n </div>\n {!isGridLeft && ImageGridElement}\n </div>\n </section>\n );\n }\n\n // =========================================================================\n // RENDER: Default (centered, gradient, minimal, parallax, overlay)\n // =========================================================================\n return (\n <section\n key={block.id}\n className={sectionClass}\n style={containerStyle}\n data-variation={variation || variant}\n data-block-id={block.id}\n >\n {/* Overlay for image backgrounds */}\n {isOverlay && (\n <div\n className=\"sg-hero__overlay\"\n style={{\n position: \"absolute\",\n inset: 0,\n background: overlayColor || \"linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 100%)\",\n zIndex: 1,\n }}\n />\n )}\n {/* Wave decoration */}\n {WaveElement}\n {/* Content */}\n <div style={contentStyle}>{content}</div>\n </section>\n );\n}\n"],"names":["renderHero","block","variation","variant","title","subtitle","description","primaryButton","secondaryButton","image","badge","align","contentPosition","contentSpacing","blockGap","minHeight","overlay","overlayColor","background","titleColor","subtitleColor","descriptionColor","titleTypography","subtitleTypography","descriptionTypography","badgeColor","badgeTextColor","contentMaxWidth","paddingY","imageRadius","imageShadow","imagePosition","buttonSize","primaryButtonVariant","primaryButtonColor","primaryButtonTextColor","primaryButtonRadius","secondaryButtonVariant","secondaryButtonColor","secondaryButtonTextColor","secondaryButtonRadius","showWave","waveColor","imageGridEnabled","imageGridPreset","imageGridImages","imageGridGap","carouselImages","carouselInterval","carouselTransition","heroImage","PLACEHOLDER_IMAGE_URL","isSplit","isParallax","isOverlayVariant","isGradient","isMinimal","isCard","isCarousel","isImageBg","isOverlay","hasValidGridImages","img","shouldShowImageGrid","sectionClass","containerStyle","contentPositionMap","hasOverlayOrDarkBg","defaultTextColor","defaultMutedColor","spacingMap","spacing","blocksConfig","blockGapConfig","blocksJustify","blocksMaxWidth","containerMaxWidth","blocksGap","mergedTitleTypo","mergeTypographyWithDefaults","heroTitleDefaults","mergedSubtitleTypo","heroSubtitleDefaults","mergedDescriptionTypo","heroDescriptionDefaults","titleTypoStyles","generateTypographyStyles","subtitleTypoStyles","descriptionTypoStyles","titleStyle","subtitleStyle","descriptionStyle","badgeStyle","buttonSizeMap","btnSize","getPrimaryButtonStyle","baseStyle","color","textColor","getSecondaryButtonStyle","contentStyle","WaveElement","jsx","jsxs","content","Fragment","imageStyle","imageShadowMap","ImageGridElement","images","preset","gap","radius","shadow","config","gridPresetMap","pos","idx","imgSrc","imgScale","e","resolvedImages","CAROUSEL_PLACEHOLDER_IMAGES","carouselScopeId","carouselCss","generateCarouselCSS","i","_","isImageLeft","imageArea","CardElement","isGridLeft"],"mappings":";;;;;;;;AAoBO,SAASA,GAAWC,GAA6B;AACtD,QAAM;AAAA,IACJ,WAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,iBAAAC,IAAkB;AAAA,IAClB,gBAAAC,KAAiB;AAAA,IACjB,UAAAC,KAAW;AAAA,IACX,WAAAC,IAAY;AAAA,IACZ,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA;AAAA,IAEA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,kBAAAC;AAAA;AAAA,IAEA,iBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,uBAAAC;AAAA;AAAA,IAEA,YAAAC;AAAA,IACA,gBAAAC;AAAA;AAAA,IAEA,iBAAAC,IAAkB;AAAA,IAClB,UAAAC;AAAA;AAAA,IAEA,aAAAC,KAAc;AAAA,IACd,aAAAC,KAAc;AAAA,IACd,eAAAC,KAAgB;AAAA;AAAA,IAEhB,YAAAC,KAAa;AAAA,IACb,sBAAAC,KAAuB;AAAA,IACvB,oBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,qBAAAC,KAAsB;AAAA,IACtB,wBAAAC,KAAyB;AAAA,IACzB,sBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,uBAAAC,KAAwB;AAAA;AAAA,IAExB,UAAAC;AAAA,IACA,WAAAC,KAAY;AAAA;AAAA,IAEZ,kBAAAC;AAAA,IACA,iBAAAC,KAAkB;AAAA,IAClB,iBAAAC,IAAkB,CAAA;AAAA,IAClB,cAAAC,KAAe;AAAA;AAAA,IAEf,gBAAAC;AAAA,IACA,kBAAAC,KAAmB;AAAA,IACnB,oBAAAC,KAAqB;AAAA,EAAA,IACnBhD,EAAM,OAGJiD,IAAYzC,MAAS0C,GACrBC,IAAUlD,MAAc,gBAAgBC,MAAY,SACpDkD,IAAanD,MAAc,iBAC3BoD,IAAmBpD,MAAc,gBACjCqD,KAAarD,MAAc,iBAC3BsD,KAAYtD,MAAc,gBAC1BuD,IAASvD,MAAc,aACvBwD,IAAaxD,MAAc,iBAC3ByD,MAAaxD,MAAY,cAAcmD,KAAoBD,KAAcI,KAAUC,MAAeR,GAClGU,IAAYD,MAAa3C,GAGzB6C,KAAqBhB,KAAmBA,EAAgB,SAAS,KAAKA,EAAgB,KAAK,CAACiB,MAAuBA,GAAK,GAAG,GAC3HC,IAAsBpB,MAAoBkB,IAG1CG,IAAe;AAAA,IACnB;AAAA,IACA9D,KAAa,YAAYA,EAAU,QAAQ,SAAS,EAAE,CAAC;AAAA,IACvDkD,KAAW;AAAA,IACXC,KAAc;AAAA,IACdC,KAAoB;AAAA,IACpBC,MAAc;AAAA,IACdC,MAAa;AAAA,IACbC,KAAU;AAAA,IACVC,KAAc;AAAA,IACdK,KAAuB;AAAA,EAAA,EAEtB,OAAO,OAAO,EACd,KAAK,GAAG,GAGLE,IAAsC;AAAA,IAC1C,WAAAlD;AAAA,IACA,SAASa,IAAW,GAAGA,CAAQ,UAAU;AAAA,IACzC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgBsC,GAAmBtD,CAAe,KAAK;AAAA,IACvD,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,IAEV,GAAIM,KAAc,EAAE,YAAAA,EAAA;AAAA,IACpB,GAAIyC,MAAa,CAACP,KAAW;AAAA,MAC3B,iBAAiB,OAAOF,CAAS;AAAA,MACjC,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,IAAA;AAAA,IAEtB,GAAIG,KAAc,EAAE,sBAAsB,QAAA;AAAA,EAAQ,GAI9Cc,IAAqBP,KAAaL,MAAcD,KAAoBI,GACpEU,KAAmBD,IAAqB,YAAY,2BACpDE,KAAoBF,IAAqB,2BAA2B,iCAGpEG,KAAuH;AAAA,IAC3H,SAAS,EAAE,OAAO,UAAU,UAAU,UAAU,aAAa,QAAQ,OAAO,QAAQ,SAAS,UAAA;AAAA,IAC7F,SAAS,EAAE,OAAO,QAAQ,UAAU,QAAQ,aAAa,QAAQ,OAAO,UAAU,SAAS,SAAA;AAAA,IAC3F,UAAU,EAAE,OAAO,QAAQ,UAAU,QAAQ,aAAa,QAAQ,OAAO,UAAU,SAAS,SAAA;AAAA,EAAS,GAEjGC,IAAUD,GAAWzD,EAAc,KAAKyD,GAAW,SAGnDE,IAAeC,GAAe3D,EAAQ,KAAK2D,GAAe,SAC1DC,IAAgBF,EAAa,SAC7BG,IAAiBH,EAAa,eAC9BI,IAAoBJ,EAAa,mBACjCK,IAAYL,EAAa,KAGzBM,KAAkBC;AAAA,IACtBzD;AAAA,IACA,EAAE,GAAG0D,IAAmB,OAAO7D,MAAc,OAAA;AAAA,EAAU,GAEnD8D,KAAqBF;AAAA,IACzBxD;AAAA,IACA,EAAE,GAAG2D,IAAsB,OAAO9D,MAAiB,OAAA;AAAA,EAAU,GAEzD+D,KAAwBJ;AAAA,IAC5BvD;AAAA,IACA,EAAE,GAAG4D,IAAyB,OAAO/D,MAAoB,OAAA;AAAA,EAAU,GAI/DgE,KAAkBC,EAAyBR,IAAiBV,EAAgB,GAC5EmB,KAAqBD,EAAyBL,IAAoBZ,EAAiB,GACnFmB,KAAwBF,EAAyBH,IAAuBd,EAAiB,GAEzFoB,KAAkC;AAAA,IACtC,GAAGJ,GAAgB;AAAA,IACnB,cAAcd,EAAQ;AAAA,EAAA,GAGlBmB,KAAqC;AAAA,IACzC,GAAGH,GAAmB;AAAA,IACtB,cAAchB,EAAQ;AAAA,EAAA,GAGlBoB,KAAwC;AAAA,IAC5C,GAAGH,GAAsB;AAAA,IACzB,UAAU;AAAA,IACV,QAAQ7E,MAAU,WAAW,UAAU4D,EAAQ,WAAW,KAAK,OAAOA,EAAQ,WAAW;AAAA,EAAA,GAIrFqB,KAAkC;AAAA,IACtC,SAAS;AAAA,IACT,SAAS;AAAA,IACT,cAAc;AAAA,IACd,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAcrB,EAAQ;AAAA,IACtB,iBAAiB9C,MAAc;AAAA,IAC/B,OAAOC,MAAkB;AAAA,EAAA,GAIrBmE,KAAgB;AAAA,IACpB,IAAI,EAAE,SAAS,eAAe,UAAU,WAAA;AAAA,IACxC,IAAI,EAAE,SAAS,kBAAkB,UAAU,OAAA;AAAA,IAC3C,IAAI,EAAE,SAAS,aAAa,UAAU,WAAA;AAAA,EAAW,GAE7CC,IAAUD,GAAc7D,EAAwC,KAAK6D,GAAc,IAGnFE,KAAwB,MAA2B;AACvD,UAAMC,IAAiC;AAAA,MACrC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,KAAK;AAAA,MACL,SAASF,EAAQ;AAAA,MACjB,UAAUA,EAAQ;AAAA,MAClB,YAAY;AAAA,MACZ,cAAc,GAAG1D,EAAmB;AAAA,MACpC,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,QAAQ;AAAA,IAAA,GAGJ6D,IAAQ/D,MAAsB,8BAC9BgE,IAAY/D,MAA0B;AAE5C,YAAQF,IAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,UACL,GAAG+D;AAAA,UACH,iBAAiB;AAAA,UACjB,QAAQ,aAAaC,CAAK;AAAA,UAC1B,OAAAA;AAAA,QAAA;AAAA,MAEJ,KAAK;AACH,eAAO;AAAA,UACL,GAAGD;AAAA,UACH,iBAAiB;AAAA,UACjB,QAAQ;AAAA,UACR,OAAAC;AAAA,QAAA;AAAA,MAEJ;AACE,eAAO;AAAA,UACL,GAAGD;AAAA,UACH,iBAAiBC;AAAA,UACjB,QAAQ,aAAaA,CAAK;AAAA,UAC1B,OAAOC;AAAA,QAAA;AAAA,IACT;AAAA,EAEN,GAGMC,KAA0B,MAA2B;AACzD,UAAMH,IAAiC;AAAA,MACrC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,KAAK;AAAA,MACL,SAASF,EAAQ;AAAA,MACjB,UAAUA,EAAQ;AAAA,MAClB,YAAY;AAAA,MACZ,cAAc,GAAGtD,EAAqB;AAAA,MACtC,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,QAAQ;AAAA,IAAA,GAGJyD,IAAQ3D,OAAyB6B,IAAqB,YAAY,+BAClE+B,IAAY3D,MAA4B0D;AAE9C,YAAQ5D,IAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,UACL,GAAG2D;AAAA,UACH,iBAAiBC;AAAA,UACjB,QAAQ,aAAaA,CAAK;AAAA,UAC1B,OAAOC,MAAcD,IAAQ,YAAYC;AAAA,QAAA;AAAA,MAE7C,KAAK;AACH,eAAO;AAAA,UACL,GAAGF;AAAA,UACH,iBAAiB;AAAA,UACjB,QAAQ;AAAA,UACR,OAAOE;AAAA,QAAA;AAAA,MAEX;AACE,eAAO;AAAA,UACL,GAAGF;AAAA,UACH,iBAAiB;AAAA,UACjB,QAAQ,aAAaC,CAAK;AAAA,UAC1B,OAAOC;AAAA,QAAA;AAAA,IACT;AAAA,EAEN,GAGME,IAAoC;AAAA,IACxC,UAAUzE;AAAA,IACV,OAAO;AAAA,IACP,WAAWhB;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,EAAA,GAIJ0F,KAAc5D,KAClB,gBAAA6D;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,QAAQ;AAAA,MAAA;AAAA,MAGV,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,qBAAoB;AAAA,UACpB,OAAO;AAAA,YACL,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,QAAQ;AAAA,UAAA;AAAA,UAGV,UAAA;AAAA,YAAA,gBAAAD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,GAAE;AAAA,gBACF,MAAM5D;AAAA,gBACN,SAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,YAEV,gBAAA4D;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,GAAE;AAAA,gBACF,MAAM5D;AAAA,gBACN,SAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACV;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,IAEA,MAGE8D,IACJ,gBAAAD,EAAAE,IAAA,EACG,UAAA;AAAA,IAAA/F,uBAAU,QAAA,EAAK,oBAAiB,SAAQ,OAAOkF,IAAa,UAAAlF,GAAM;AAAA,IACnE,gBAAA6F,EAAC,OAAA,EAAI,oBAAiB,YACnB,UAAA;AAAA,MAAAnG,uBACE,MAAA,EAAG,WAAU,kBAAiB,OAAOqF,IACnC,UAAArF,GACH;AAAA,MAEDC,KACC,gBAAAiG,EAAC,MAAA,EAAG,WAAU,qBAAoB,OAAOZ,IACtC,UAAArF,GACH;AAAA,MAEDC,KACC,gBAAAgG,EAAC,KAAA,EAAE,WAAU,wBAAuB,OAAOX,IACxC,UAAArF,EAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACA,gBAAAiG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,SAAS;AAAA,UACT,UAAU;AAAA,UACV,KAAK;AAAA,UACL,gBAAgB5F,MAAU,WAAW,WAAW;AAAA,UAChD,WAAW4D,EAAQ;AAAA,QAAA;AAAA,QAGpB,UAAA;AAAA,UAAAhE,KACC,gBAAA+F;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAM/F,EAAc,QAAQ;AAAA,cAC5B,WAAU;AAAA,cACV,oBAAiB;AAAA,cACjB,OAAOwF,GAAA;AAAA,cAEN,UAAAxF,EAAc;AAAA,YAAA;AAAA,UAAA;AAAA,UAGlBC,KACC,gBAAA8F;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAM9F,EAAgB,QAAQ;AAAA,cAC9B,WAAU;AAAA,cACV,oBAAiB;AAAA,cACjB,OAAO2F,GAAA;AAAA,cAEN,UAAA3F,EAAgB;AAAA,YAAA;AAAA,UAAA;AAAA,QACnB;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,GACF,GAIIkG,KAAkC;AAAA,IACtC,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc,GAAG7E,EAAW;AAAA,IAC5B,WAAW8E,GAAe7E,EAAW,KAAK6E,GAAe;AAAA,IACzD,WAAW;AAAA,EAAA,GAkEPC,IAAmB7C,IACvB,gBAAAuC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,oBAAiB;AAAA,MACjB,OAAO;AAAA,QACL,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,UAAU3B;AAAA,MAAA;AAAA,MAGX,WA1EmB,CACtBkC,GACAC,GACAC,GACAC,GACAC,MACG;AACH,cAAMC,IAASC,GAAcL,CAAM;AAGnC,eACE,gBAAAR;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,cACL,SAAS;AAAA,cACT,cAAcY,EAAO;AAAA,cACrB,KAAK,GAAGH,CAAG;AAAA,cACX,OAAO;AAAA,cACP,UAAU;AAAA,cACV,aAAa;AAAA,YAAA;AAAA,YAGd,UAAAG,EAAO,UAAU,IAAI,CAACE,IAAKC,MAAQ;AAClC,oBAAMvD,IAAM+C,EAAOQ,CAAG,GAChBC,KAASxD,GAAK,OAAOX,GACrBoE,IAAWzD,GAAK,SAAS;AAE/B,qBACE,gBAAAwC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,OAAO;AAAA,oBACL,YAAYc,GAAI;AAAA,oBAChB,SAASA,GAAI;AAAA,oBACb,UAAU;AAAA,oBACV,cAAc,GAAGJ,CAAM;AAAA,oBACvB,WAAWO,MAAa,IAAI,SAASA,CAAQ,MAAM;AAAA,oBACnD,QAAQA,MAAa,IAAI,IAAI;AAAA,kBAAA;AAAA,kBAG/B,UAAA,gBAAAjB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,KAAKgB;AAAA,sBACL,KAAKxD,GAAK,OAAO,UAAUuD,IAAM,CAAC;AAAA,sBAClC,OAAO;AAAA,wBACL,OAAO;AAAA,wBACP,QAAQ;AAAA,wBACR,WAAW;AAAA,wBACX,SAAS;AAAA,sBAAA;AAAA,sBAEX,SAAS,CAACG,OAAM;AACb,wBAAAA,GAAE,OAA4B,MAAMrE;AAAA,sBACvC;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACF;AAAA,gBAtBKkE;AAAA,cAAA;AAAA,YAyBX,CAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MAGP;AAAA,QAkBMxE;AAAA,QACAD;AAAA,QACAE;AAAA,QACAjB;AAAA,MAEF;AAAA,IAAA;AAAA,EAAA,IAEA;AAKJ,MAAI6B,GAAY;AACd,UAAM+D,IAAkB1E,KAAkBA,EAAe,UAAU,IAC/DA,IACA2E,IACEC,IAAkB,eAAe1H,EAAM,EAAE,IACzC2H,IAAcC;AAAA,MAClB,IAAIF,CAAe;AAAA,MACnBF,EAAe;AAAA,MACfzE;AAAA,IAAA;AAGF,WACE,gBAAAuD;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWvC;AAAA,QACX,OAAO;AAAA,UACL,WAAAjD;AAAA,UACA,SAASa,IAAW,GAAGA,CAAQ,UAAU;AAAA,UACzC,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgBsC,GAAmBtD,CAAe,KAAK;AAAA,UACvD,UAAU;AAAA,UACV,UAAU;AAAA,UACV,YAAY;AAAA,QAAA;AAAA,QAEd,kBAAgBV,KAAaC;AAAA,QAC7B,iBAAeF,EAAM;AAAA,QAGrB,UAAA;AAAA,UAAA,gBAAAqG,EAAC,SAAA,EAAM,yBAAyB,EAAE,QAAQsB,KAAe;AAAA,UAGzD,gBAAArB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAIoB;AAAA,cACJ,OAAO,EAAE,UAAU,YAAY,OAAO,GAAG,QAAQ,EAAA;AAAA,cAEhD,UAAA;AAAA,gBAAAF,EAAe,IAAI,CAACH,GAAgBQ,MACnC,gBAAAxB;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,KAAKgB;AAAA,oBACL,KAAK,SAASQ,IAAI,CAAC;AAAA,oBACnB,WAAU;AAAA,oBACV,OAAOA,MAAM,IAAI,EAAE,SAAS,MAAM;AAAA,oBAClC,SAAS,CAACN,MAAM;AACb,sBAAAA,EAAE,OAA4B,MAAMrE;AAAA,oBACvC;AAAA,kBAAA;AAAA,kBAPK2E;AAAA,gBAAA,CASR;AAAA,gBAED,gBAAAxB,EAAC,OAAA,EAAI,WAAU,qBACZ,YAAe,IAAI,CAACyB,GAAWD,wBAC7B,QAAA,EAAa,WAAU,mBAAA,GAAbA,CAAgC,CAC5C,EAAA,CACH;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAID9G,KACC,gBAAAsF;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,YAAYrF,KAAgB;AAAA,gBAC5B,QAAQ;AAAA,cAAA;AAAA,YACV;AAAA,UAAA;AAAA,UAKJ,gBAAAqF,EAAC,OAAA,EAAI,OAAOF,GAAe,UAAAI,EAAA,CAAQ;AAAA,QAAA;AAAA,MAAA;AAAA,MAzD9BvG,EAAM;AAAA,IAAA;AAAA,EA4DjB;AAKA,MAAImD,KAAWF,KAAa,CAACa,GAAqB;AAChD,UAAMiE,IAAcjG,OAAkB,QAEhCkG,IACJ,gBAAA3B,EAAC,OAAA,EAAI,WAAU,wBAAuB,oBAAiB,SAAQ,OAAO,EAAE,SAAS,QAAQ,gBAAgB,UAAU,MAAM,YAAY,UAAU3B,KAC7I,UAAA,gBAAA2B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKpD;AAAA,QACL,KAAK9C,KAAS;AAAA,QACd,WAAU;AAAA,QACV,OAAOsG;AAAA,QACP,SAAS,CAACc,MAAM;AACb,UAAAA,EAAE,OAA4B,MAAMrE;AAAA,QACvC;AAAA,MAAA;AAAA,IAAA,GAEJ;AAGF,WACE,gBAAAmD;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWtC;AAAA,QACX,OAAO;AAAA,UACL,GAAGC;AAAA,UACH,iBAAiB;AAAA,UACjB,YAAY/C,KAAc;AAAA,QAAA;AAAA,QAE5B,kBAAgBhB,KAAaC;AAAA,QAC7B,iBAAeF,EAAM;AAAA,QAErB,UAAA,gBAAAsG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,cACL,SAAS;AAAA,cACT,gBAAgB7B;AAAA,cAChB,KAAKG;AAAA,cACL,UAAUD;AAAA,cACV,OAAO;AAAA,cACP,YAAY;AAAA,YAAA;AAAA,YAGb,UAAA;AAAA,cAAAoD,KAAeC;AAAA,cAChB,gBAAA3B,EAAC,OAAA,EAAI,WAAU,0BAAyB,OAAO,EAAE,GAAGF,GAAc,MAAM,YAAY,UAAUzB,EAAA,GAC3F,UAAA6B,EAAA,CACH;AAAA,cACC,CAACwB,KAAeC;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnB;AAAA,MA1BKhI,EAAM;AAAA,IAAA;AAAA,EA6BjB;AAOA,MAAIwD,KAAUP,GAAW;AAEvB,UAAMgF,IACJ,gBAAA5B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,GAAGF;AAAA,UACH,iBAAiBlF,KAAc;AAAA,UAC/B,SAAS;AAAA,UACT,cAAc;AAAA,UACd,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,UAAU6C,IAAsB,UAAUpC;AAAA,UAC1C,MAAM;AAAA,QAAA;AAAA,QAGP,UAAA6E;AAAA,MAAA;AAAA,IAAA;AAKL,WAAIzC,IAEA,gBAAAwC;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWvC;AAAA,QACX,OAAO;AAAA,UACL,GAAGC;AAAA,UACH,gBAAgB;AAAA,UAChB,SAASrC,IAAW,GAAGA,CAAQ,UAAU;AAAA,QAAA;AAAA,QAE3C,kBAAgB1B,KAAaC;AAAA,QAC7B,iBAAeF,EAAM;AAAA,QAGpB,UAAA;AAAA,UAAA2D,KACC,gBAAA0C;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,YAAYrF,KAAgB;AAAA,gBAC5B,QAAQ;AAAA,cAAA;AAAA,YACV;AAAA,UAAA;AAAA,UAIJ,gBAAAsF;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,SAAS;AAAA,gBACT,OAAO;AAAA,gBACP,UAAU3B;AAAA,gBACV,YAAY;AAAA,gBACZ,gBAAgBF;AAAA,gBAChB,UAAU;AAAA,gBACV,QAAQ;AAAA,gBACR,SAAS;AAAA,gBACT,KAAKG;AAAA,cAAA;AAAA,cAGN,UAAA;AAAA,gBAAAqD;AAAA,gBACAtB;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,MAvCK3G,EAAM;AAAA,IAAA,IA8Cf,gBAAAsG;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWvC;AAAA,QACX,OAAO;AAAA,UACL,GAAGC;AAAA,UACH,gBAAgBtD,MAAU,WAAW,WAAWA,MAAU,UAAU,aAAa;AAAA,UACjF,SAASiB,IAAW,GAAGA,CAAQ,UAAU;AAAA,QAAA;AAAA,QAE3C,kBAAgB1B,KAAaC;AAAA,QAC7B,iBAAeF,EAAM;AAAA,QAGpB,UAAA;AAAA,UAAA2D,KACC,gBAAA0C;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,YAAYrF,KAAgB;AAAA,gBAC5B,QAAQ;AAAA,cAAA;AAAA,YACV;AAAA,UAAA;AAAA,UAIHiH;AAAA,QAAA;AAAA,MAAA;AAAA,MAvBIjI,EAAM;AAAA,IAAA;AAAA,EA0BjB;AAKA,MAAI8D,GAAqB;AACvB,UAAMoE,IAAapG,OAAkB;AAErC,WACE,gBAAAwE;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWvC;AAAA,QACX,OAAOC;AAAA,QACP,kBAAgB/D,KAAaC;AAAA,QAC7B,iBAAeF,EAAM;AAAA,QAGpB,UAAA;AAAA,UAAA2D,KACC,gBAAA0C;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,YAAYrF,KAAgB;AAAA,gBAC5B,QAAQ;AAAA,cAAA;AAAA,YACV;AAAA,UAAA;AAAA,UAIHoF;AAAA,UAED,gBAAAE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,gBACL,SAAS;AAAA,gBACT,gBAAgB7B;AAAA,gBAChB,KAAKG;AAAA,gBACL,UAAUD;AAAA,gBACV,OAAO;AAAA,gBACP,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,QAAQ;AAAA,gBACR,SAAS;AAAA,cAAA;AAAA,cAGV,UAAA;AAAA,gBAAAuD,KAAcvB;AAAA,gBACf,gBAAAN,EAAC,OAAA,EAAI,WAAU,yBAAwB,OAAO,EAAE,GAAGF,GAAc,MAAM,UAAU,UAAUzB,EAAA,GACxF,UAAA6B,EAAA,CACH;AAAA,gBACC,CAAC2B,KAAcvB;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAClB;AAAA,MAAA;AAAA,MAxCK3G,EAAM;AAAA,IAAA;AAAA,EA2CjB;AAKA,SACE,gBAAAsG;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAWvC;AAAA,MACX,OAAOC;AAAA,MACP,kBAAgB/D,KAAaC;AAAA,MAC7B,iBAAeF,EAAM;AAAA,MAGpB,UAAA;AAAA,QAAA2D,KACC,gBAAA0C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,cACL,UAAU;AAAA,cACV,OAAO;AAAA,cACP,YAAYrF,KAAgB;AAAA,cAC5B,QAAQ;AAAA,YAAA;AAAA,UACV;AAAA,QAAA;AAAA,QAIHoF;AAAA,QAED,gBAAAC,EAAC,OAAA,EAAI,OAAOF,GAAe,UAAAI,EAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,IArB9BvG,EAAM;AAAA,EAAA;AAwBjB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavbarRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/NavbarRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAqOxD"}
1
+ {"version":3,"file":"NavbarRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/NavbarRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAsOxD"}
@@ -1,28 +1,28 @@
1
1
  import { jsxs as l, jsx as a } from "react/jsx-runtime";
2
- import { resolveNavbarStyles as F, styleStringToReactStyle as s } from "../../../export/styleResolver.js";
2
+ import { resolveNavbarStyles as F, styleStringToReactStyle as o } from "../../../export/styleResolver.js";
3
3
  function J(i) {
4
- const o = i, {
4
+ const s = i, {
5
5
  variation: c = "navbar-moderno",
6
6
  logo: r,
7
- logoText: b,
7
+ logoText: g,
8
8
  links: S = [],
9
9
  ctaButton: d,
10
10
  sticky: N,
11
- layout: g,
11
+ layout: b,
12
12
  floating: p = !1,
13
13
  logoHeight: m = 70,
14
14
  borderPosition: v = "none",
15
15
  borderWidth: C = 1,
16
- borderColor: j = "#e5e7eb"
17
- } = o.props, t = F(o.props, o.id), I = s(t.nav), y = s(t.link), k = s(t.button);
18
- s(t.brandText);
19
- const B = s(t.dropdown), L = s(t.dropdownItem), T = t.css ? /* @__PURE__ */ a("style", { children: t.css }) : null, f = typeof r == "string" ? r : r?.src ?? "", W = typeof r == "string" ? b || "Logo" : r?.alt ?? b ?? "Logo", h = typeof r == "object" && r?.href != null ? r.href : "", $ = {
16
+ borderColor: k = "#e5e7eb"
17
+ } = s.props, t = F(s.props, s.id), j = o(t.nav), y = o(t.link), I = o(t.button);
18
+ o(t.brandText);
19
+ const L = o(t.dropdown), B = o(t.dropdownItem), T = t.css ? /* @__PURE__ */ a("style", { children: t.css }) : null, f = typeof r == "string" ? r : r?.src ?? "", W = typeof r == "string" ? g || "Logo" : r?.alt ?? g ?? "Logo", h = typeof r == "object" && r?.href != null ? r.href : "", $ = {
20
20
  "navbar-simples": "sg-navbar--simples",
21
21
  "navbar-moderno": "sg-navbar--moderno",
22
22
  "navbar-glass": "sg-navbar--glass",
23
23
  "navbar-elegante": "sg-navbar--elegante",
24
24
  "navbar-pill": "sg-navbar--pill"
25
- }[c] || "sg-navbar--moderno", u = (g || "expanded") === "centered", n = g === "compact", V = [
25
+ }[c] || "sg-navbar--moderno", u = (b || "expanded") === "centered", n = b === "compact", A = [
26
26
  "sg-navbar",
27
27
  $,
28
28
  p ? "sg-navbar--floating" : "",
@@ -54,7 +54,7 @@ function J(i) {
54
54
  },
55
55
  children: "Logo"
56
56
  }
57
- ), A = h ? /* @__PURE__ */ a(
57
+ ), V = h ? /* @__PURE__ */ a(
58
58
  "a",
59
59
  {
60
60
  href: h,
@@ -71,7 +71,7 @@ function J(i) {
71
71
  }
72
72
  ), H = (() => {
73
73
  if (v === "none") return {};
74
- const e = `${C}px solid ${j}`;
74
+ const e = `${C}px solid ${k}`;
75
75
  switch (v) {
76
76
  case "all":
77
77
  return { border: e };
@@ -86,7 +86,7 @@ function J(i) {
86
86
  default:
87
87
  return {};
88
88
  }
89
- })(), R = u ? {
89
+ })(), M = u ? {
90
90
  maxWidth: "1200px",
91
91
  margin: "0 auto",
92
92
  padding: n ? "0 1rem" : "0 1.5rem",
@@ -103,25 +103,25 @@ function J(i) {
103
103
  justifyContent: "space-between",
104
104
  alignItems: "center",
105
105
  gap: n ? "1.5rem" : "2rem"
106
- }, M = {
106
+ }, R = {
107
107
  display: "flex",
108
108
  alignItems: "center",
109
109
  gap: n ? "1rem" : "1.5rem",
110
110
  flexWrap: "wrap",
111
111
  ...u ? { justifySelf: "center" } : {}
112
- }, z = o.props.buttonVariant === "outline" ? "sg-navbar__btn--outline" : o.props.buttonVariant === "ghost" ? "sg-navbar__btn--ghost" : "sg-navbar__btn--solid";
112
+ }, z = s.props.buttonVariant === "outline" ? "sg-navbar__btn--outline" : s.props.buttonVariant === "ghost" ? "sg-navbar__btn--ghost" : "sg-navbar__btn--solid";
113
113
  return /* @__PURE__ */ l(
114
114
  "nav",
115
115
  {
116
- className: V,
116
+ className: A,
117
117
  "data-variation": c,
118
118
  "data-block-id": i.id,
119
- style: { ...I, ...H },
119
+ style: { ...j, ...H },
120
120
  children: [
121
121
  T,
122
- /* @__PURE__ */ l("div", { className: "sg-navbar__container", style: R, children: [
123
- /* @__PURE__ */ a("div", { className: "sg-navbar__brand", style: { flexShrink: 0 }, children: A }),
124
- /* @__PURE__ */ l("div", { className: "sg-navbar__menu", style: M, children: [
122
+ /* @__PURE__ */ l("div", { className: "sg-navbar__container", style: M, children: [
123
+ /* @__PURE__ */ a("div", { className: "sg-navbar__brand", "data-block-group": "Logo e Marca", style: { flexShrink: 0 }, children: V }),
124
+ /* @__PURE__ */ l("div", { className: "sg-navbar__menu", "data-block-group": "Links", style: R, children: [
125
125
  S.map((e, x) => e.dropdown && Array.isArray(e.dropdown) ? /* @__PURE__ */ l("div", { className: "sg-navbar__dropdown-wrapper", children: [
126
126
  /* @__PURE__ */ a(
127
127
  "button",
@@ -131,12 +131,12 @@ function J(i) {
131
131
  children: e.text
132
132
  }
133
133
  ),
134
- /* @__PURE__ */ a("div", { className: "sg-navbar-dropdown", style: B, children: e.dropdown.map((w, E) => /* @__PURE__ */ a(
134
+ /* @__PURE__ */ a("div", { className: "sg-navbar-dropdown", style: L, children: e.dropdown.map((w, E) => /* @__PURE__ */ a(
135
135
  "a",
136
136
  {
137
137
  href: w.href,
138
138
  className: "sg-navbar-dropdown__item",
139
- style: L,
139
+ style: B,
140
140
  children: w.text
141
141
  },
142
142
  E
@@ -147,7 +147,8 @@ function J(i) {
147
147
  {
148
148
  href: d.href || "#",
149
149
  className: `sg-navbar__btn ${z}`,
150
- style: k,
150
+ "data-block-group": "Botao CTA",
151
+ style: I,
151
152
  children: d.text
152
153
  }
153
154
  )
@@ -1 +1 @@
1
- {"version":3,"file":"NavbarRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/NavbarRenderer.tsx"],"sourcesContent":["/**\n * Navbar Renderer\n * Renderiza barra de navegação com variações (simples, moderno, glass)\n */\n\nimport React from \"react\";\nimport { NavbarBlock } from \"../../../schema/siteDocument\";\nimport {\n resolveNavbarStyles,\n styleStringToReactStyle,\n} from \"../../../export/styleResolver\";\n\nexport function renderNavbar(block: any): React.ReactNode {\n const navbarBlock = block as NavbarBlock;\n const {\n variation = \"navbar-moderno\",\n logo,\n logoText,\n links = [],\n ctaButton,\n sticky,\n layout,\n floating = false,\n logoHeight = 70,\n borderPosition = \"none\",\n borderWidth = 1,\n borderColor = \"#e5e7eb\",\n } = navbarBlock.props;\n\n // Use Style Resolver\n // Pass block.id for unique CSS scoping\n const resolvedStyles = resolveNavbarStyles(navbarBlock.props, navbarBlock.id);\n\n // Convert inline strings to React style objects\n const navStyle = styleStringToReactStyle(resolvedStyles.nav);\n const linkStyle = styleStringToReactStyle(resolvedStyles.link);\n const buttonStyle = styleStringToReactStyle(resolvedStyles.button);\n const brandTextStyle = styleStringToReactStyle(resolvedStyles.brandText);\n const dropdownStyle = styleStringToReactStyle(resolvedStyles.dropdown);\n const dropdownItemStyle = styleStringToReactStyle(resolvedStyles.dropdownItem);\n\n // Dynamic CSS for hover\n const hoverCss = resolvedStyles.css ? (\n <style>{resolvedStyles.css}</style>\n ) : null;\n\n const logoUrl = typeof logo === \"string\" ? logo : (logo?.src ?? \"\");\n const logoAlt =\n typeof logo === \"string\"\n ? logoText || \"Logo\"\n : (logo?.alt ?? logoText ?? \"Logo\");\n const logoHref =\n typeof logo === \"object\" && logo?.href != null ? logo.href : \"\";\n\n // Classe CSS baseada na variação\n const variationClassMap: Record<string, string> = {\n \"navbar-simples\": \"sg-navbar--simples\",\n \"navbar-moderno\": \"sg-navbar--moderno\",\n \"navbar-glass\": \"sg-navbar--glass\",\n \"navbar-elegante\": \"sg-navbar--elegante\",\n \"navbar-pill\": \"sg-navbar--pill\",\n };\n const variationClass = variationClassMap[variation] || \"sg-navbar--moderno\";\n\n // Determine layout (use custom layout or fallback)\n const effectiveLayout = layout || \"expanded\";\n const isCentered = effectiveLayout === \"centered\";\n const isCompact = layout === \"compact\";\n\n const navClassName = [\n \"sg-navbar\",\n variationClass,\n floating ? \"sg-navbar--floating\" : \"\",\n isCompact ? \"sg-navbar--compact\" : \"\",\n sticky ? \"sg-navbar--sticky\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n const brandContent = logoUrl ? (\n <img\n src={logoUrl}\n alt={logoAlt}\n className=\"sg-navbar__brand-img\"\n style={{ height: `${logoHeight}px`, maxHeight: `${logoHeight}px`, objectFit: \"contain\" }}\n />\n ) : (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"40px\",\n width: \"100px\",\n backgroundColor: \"#e5e7eb\",\n border: \"2px solid #d1d5db\",\n borderRadius: \"4px\",\n fontSize: \"16px\",\n fontWeight: \"600\",\n color: \"#6b7280\",\n }}\n >\n Logo\n </div>\n );\n\n const brandEl = logoHref ? (\n <a\n href={logoHref}\n className=\"sg-navbar__brand-link\"\n style={{ display: \"flex\", alignItems: \"center\" }}\n >\n {brandContent}\n </a>\n ) : (\n <div\n className=\"sg-navbar__brand-link\"\n style={{ display: \"flex\", alignItems: \"center\" }}\n >\n {brandContent}\n </div>\n );\n\n // Borda baseada na posição selecionada\n const getBorderStyle = (): React.CSSProperties => {\n if (borderPosition === \"none\") return {};\n const borderValue = `${borderWidth}px solid ${borderColor}`;\n switch (borderPosition) {\n case \"all\":\n return { border: borderValue };\n case \"top\":\n return { borderTop: borderValue };\n case \"bottom\":\n return { borderBottom: borderValue };\n case \"left\":\n return { borderLeft: borderValue };\n case \"right\":\n return { borderRight: borderValue };\n default:\n return {};\n }\n };\n const borderStyle = getBorderStyle();\n\n // Container style baseado no layout\n // Nota: isCompact apenas reduz tamanhos, não altera o layout base\n const containerStyle: React.CSSProperties = isCentered\n ? {\n maxWidth: \"1200px\",\n margin: \"0 auto\",\n padding: isCompact ? \"0 1rem\" : \"0 1.5rem\",\n display: \"grid\",\n gridTemplateColumns: \"1fr auto 1fr\",\n alignItems: \"center\",\n gap: isCompact ? \"1rem\" : \"1.5rem\",\n }\n : {\n // Expandido (padrão): logo no canto esquerdo, links no direito\n width: \"100%\",\n maxWidth: \"100%\",\n padding: floating ? \"0 2rem\" : (isCompact ? \"0 1rem\" : \"0 1.5rem\"),\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: isCompact ? \"1.5rem\" : \"2rem\",\n };\n\n const menuStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: isCompact ? \"1rem\" : \"1.5rem\",\n flexWrap: \"wrap\",\n ...(isCentered ? { justifySelf: \"center\" as const } : {}),\n };\n\n const buttonVariantClass =\n navbarBlock.props.buttonVariant === \"outline\"\n ? \"sg-navbar__btn--outline\"\n : navbarBlock.props.buttonVariant === \"ghost\"\n ? \"sg-navbar__btn--ghost\"\n : \"sg-navbar__btn--solid\";\n\n return (\n <nav\n key={block.id}\n className={navClassName}\n data-variation={variation}\n data-block-id={block.id}\n style={{ ...navStyle, ...borderStyle }}\n >\n {hoverCss}\n <div className=\"sg-navbar__container\" style={containerStyle}>\n {/* Layout padrão: logo | links + cta */}\n <div className=\"sg-navbar__brand\" style={{ flexShrink: 0 }}>\n {brandEl}\n </div>\n <div className=\"sg-navbar__menu\" style={menuStyle}>\n {links.map((link: any, index: number) => {\n if (link.dropdown && Array.isArray(link.dropdown)) {\n return (\n <div key={index} className=\"sg-navbar__dropdown-wrapper\">\n <button\n className=\"sg-navbar__link sg-navbar__link--has-dropdown\"\n style={linkStyle}\n >\n {link.text}\n </button>\n <div className=\"sg-navbar-dropdown\" style={dropdownStyle}>\n {link.dropdown.map((item: any, itemIndex: number) => (\n <a\n key={itemIndex}\n href={item.href}\n className=\"sg-navbar-dropdown__item\"\n style={dropdownItemStyle}\n >\n {item.text}\n </a>\n ))}\n </div>\n </div>\n );\n }\n return (\n <a key={index} href={link.href} className=\"sg-navbar__link\" style={linkStyle}>\n {link.text}\n </a>\n );\n })}\n {ctaButton && (\n <a\n href={ctaButton.href || \"#\"}\n className={`sg-navbar__btn ${buttonVariantClass}`}\n style={buttonStyle}\n >\n {ctaButton.text}\n </a>\n )}\n </div>\n </div>\n </nav>\n );\n}\n"],"names":["renderNavbar","block","navbarBlock","variation","logo","logoText","links","ctaButton","sticky","layout","floating","logoHeight","borderPosition","borderWidth","borderColor","resolvedStyles","resolveNavbarStyles","navStyle","styleStringToReactStyle","linkStyle","buttonStyle","dropdownStyle","dropdownItemStyle","hoverCss","logoUrl","logoAlt","logoHref","variationClass","isCentered","isCompact","navClassName","brandContent","jsx","brandEl","borderStyle","borderValue","containerStyle","menuStyle","buttonVariantClass","jsxs","link","index","item","itemIndex"],"mappings":"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"}
1
+ {"version":3,"file":"NavbarRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/NavbarRenderer.tsx"],"sourcesContent":["/**\n * Navbar Renderer\n * Renderiza barra de navegação com variações (simples, moderno, glass)\n */\n\nimport React from \"react\";\nimport { NavbarBlock } from \"../../../schema/siteDocument\";\nimport {\n resolveNavbarStyles,\n styleStringToReactStyle,\n} from \"../../../export/styleResolver\";\n\nexport function renderNavbar(block: any): React.ReactNode {\n const navbarBlock = block as NavbarBlock;\n const {\n variation = \"navbar-moderno\",\n logo,\n logoText,\n links = [],\n ctaButton,\n sticky,\n layout,\n floating = false,\n logoHeight = 70,\n borderPosition = \"none\",\n borderWidth = 1,\n borderColor = \"#e5e7eb\",\n } = navbarBlock.props;\n\n // Use Style Resolver\n // Pass block.id for unique CSS scoping\n const resolvedStyles = resolveNavbarStyles(navbarBlock.props, navbarBlock.id);\n\n // Convert inline strings to React style objects\n const navStyle = styleStringToReactStyle(resolvedStyles.nav);\n const linkStyle = styleStringToReactStyle(resolvedStyles.link);\n const buttonStyle = styleStringToReactStyle(resolvedStyles.button);\n const brandTextStyle = styleStringToReactStyle(resolvedStyles.brandText);\n const dropdownStyle = styleStringToReactStyle(resolvedStyles.dropdown);\n const dropdownItemStyle = styleStringToReactStyle(resolvedStyles.dropdownItem);\n\n // Dynamic CSS for hover\n const hoverCss = resolvedStyles.css ? (\n <style>{resolvedStyles.css}</style>\n ) : null;\n\n const logoUrl = typeof logo === \"string\" ? logo : (logo?.src ?? \"\");\n const logoAlt =\n typeof logo === \"string\"\n ? logoText || \"Logo\"\n : (logo?.alt ?? logoText ?? \"Logo\");\n const logoHref =\n typeof logo === \"object\" && logo?.href != null ? logo.href : \"\";\n\n // Classe CSS baseada na variação\n const variationClassMap: Record<string, string> = {\n \"navbar-simples\": \"sg-navbar--simples\",\n \"navbar-moderno\": \"sg-navbar--moderno\",\n \"navbar-glass\": \"sg-navbar--glass\",\n \"navbar-elegante\": \"sg-navbar--elegante\",\n \"navbar-pill\": \"sg-navbar--pill\",\n };\n const variationClass = variationClassMap[variation] || \"sg-navbar--moderno\";\n\n // Determine layout (use custom layout or fallback)\n const effectiveLayout = layout || \"expanded\";\n const isCentered = effectiveLayout === \"centered\";\n const isCompact = layout === \"compact\";\n\n const navClassName = [\n \"sg-navbar\",\n variationClass,\n floating ? \"sg-navbar--floating\" : \"\",\n isCompact ? \"sg-navbar--compact\" : \"\",\n sticky ? \"sg-navbar--sticky\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n const brandContent = logoUrl ? (\n <img\n src={logoUrl}\n alt={logoAlt}\n className=\"sg-navbar__brand-img\"\n style={{ height: `${logoHeight}px`, maxHeight: `${logoHeight}px`, objectFit: \"contain\" }}\n />\n ) : (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"40px\",\n width: \"100px\",\n backgroundColor: \"#e5e7eb\",\n border: \"2px solid #d1d5db\",\n borderRadius: \"4px\",\n fontSize: \"16px\",\n fontWeight: \"600\",\n color: \"#6b7280\",\n }}\n >\n Logo\n </div>\n );\n\n const brandEl = logoHref ? (\n <a\n href={logoHref}\n className=\"sg-navbar__brand-link\"\n style={{ display: \"flex\", alignItems: \"center\" }}\n >\n {brandContent}\n </a>\n ) : (\n <div\n className=\"sg-navbar__brand-link\"\n style={{ display: \"flex\", alignItems: \"center\" }}\n >\n {brandContent}\n </div>\n );\n\n // Borda baseada na posição selecionada\n const getBorderStyle = (): React.CSSProperties => {\n if (borderPosition === \"none\") return {};\n const borderValue = `${borderWidth}px solid ${borderColor}`;\n switch (borderPosition) {\n case \"all\":\n return { border: borderValue };\n case \"top\":\n return { borderTop: borderValue };\n case \"bottom\":\n return { borderBottom: borderValue };\n case \"left\":\n return { borderLeft: borderValue };\n case \"right\":\n return { borderRight: borderValue };\n default:\n return {};\n }\n };\n const borderStyle = getBorderStyle();\n\n // Container style baseado no layout\n // Nota: isCompact apenas reduz tamanhos, não altera o layout base\n const containerStyle: React.CSSProperties = isCentered\n ? {\n maxWidth: \"1200px\",\n margin: \"0 auto\",\n padding: isCompact ? \"0 1rem\" : \"0 1.5rem\",\n display: \"grid\",\n gridTemplateColumns: \"1fr auto 1fr\",\n alignItems: \"center\",\n gap: isCompact ? \"1rem\" : \"1.5rem\",\n }\n : {\n // Expandido (padrão): logo no canto esquerdo, links no direito\n width: \"100%\",\n maxWidth: \"100%\",\n padding: floating ? \"0 2rem\" : (isCompact ? \"0 1rem\" : \"0 1.5rem\"),\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: isCompact ? \"1.5rem\" : \"2rem\",\n };\n\n const menuStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: isCompact ? \"1rem\" : \"1.5rem\",\n flexWrap: \"wrap\",\n ...(isCentered ? { justifySelf: \"center\" as const } : {}),\n };\n\n const buttonVariantClass =\n navbarBlock.props.buttonVariant === \"outline\"\n ? \"sg-navbar__btn--outline\"\n : navbarBlock.props.buttonVariant === \"ghost\"\n ? \"sg-navbar__btn--ghost\"\n : \"sg-navbar__btn--solid\";\n\n return (\n <nav\n key={block.id}\n className={navClassName}\n data-variation={variation}\n data-block-id={block.id}\n style={{ ...navStyle, ...borderStyle }}\n >\n {hoverCss}\n <div className=\"sg-navbar__container\" style={containerStyle}>\n {/* Layout padrão: logo | links + cta */}\n <div className=\"sg-navbar__brand\" data-block-group=\"Logo e Marca\" style={{ flexShrink: 0 }}>\n {brandEl}\n </div>\n <div className=\"sg-navbar__menu\" data-block-group=\"Links\" style={menuStyle}>\n {links.map((link: any, index: number) => {\n if (link.dropdown && Array.isArray(link.dropdown)) {\n return (\n <div key={index} className=\"sg-navbar__dropdown-wrapper\">\n <button\n className=\"sg-navbar__link sg-navbar__link--has-dropdown\"\n style={linkStyle}\n >\n {link.text}\n </button>\n <div className=\"sg-navbar-dropdown\" style={dropdownStyle}>\n {link.dropdown.map((item: any, itemIndex: number) => (\n <a\n key={itemIndex}\n href={item.href}\n className=\"sg-navbar-dropdown__item\"\n style={dropdownItemStyle}\n >\n {item.text}\n </a>\n ))}\n </div>\n </div>\n );\n }\n return (\n <a key={index} href={link.href} className=\"sg-navbar__link\" style={linkStyle}>\n {link.text}\n </a>\n );\n })}\n {ctaButton && (\n <a\n href={ctaButton.href || \"#\"}\n className={`sg-navbar__btn ${buttonVariantClass}`}\n data-block-group=\"Botao CTA\"\n style={buttonStyle}\n >\n {ctaButton.text}\n </a>\n )}\n </div>\n </div>\n </nav>\n );\n}\n"],"names":["renderNavbar","block","navbarBlock","variation","logo","logoText","links","ctaButton","sticky","layout","floating","logoHeight","borderPosition","borderWidth","borderColor","resolvedStyles","resolveNavbarStyles","navStyle","styleStringToReactStyle","linkStyle","buttonStyle","dropdownStyle","dropdownItemStyle","hoverCss","logoUrl","logoAlt","logoHref","variationClass","isCentered","isCompact","navClassName","brandContent","jsx","brandEl","borderStyle","borderValue","containerStyle","menuStyle","buttonVariantClass","jsxs","link","index","item","itemIndex"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PricingCardRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/PricingCardRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CA8F7D"}
1
+ {"version":3,"file":"PricingCardRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/PricingCardRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CA+F7D"}
@@ -6,13 +6,14 @@ function h(t) {
6
6
  period: i,
7
7
  description: a,
8
8
  features: g = [],
9
- buttonText: s,
9
+ buttonText: d,
10
10
  highlighted: e,
11
- badge: d
11
+ badge: s
12
12
  } = t.props;
13
13
  return /* @__PURE__ */ o(
14
14
  "div",
15
15
  {
16
+ "data-block-group": "Conteúdo",
16
17
  style: {
17
18
  backgroundColor: "var(--sg-bg)",
18
19
  borderRadius: "var(--sg-card-radius, 0.75rem)",
@@ -22,7 +23,7 @@ function h(t) {
22
23
  position: "relative"
23
24
  },
24
25
  children: [
25
- d && /* @__PURE__ */ r(
26
+ s && /* @__PURE__ */ r(
26
27
  "span",
27
28
  {
28
29
  style: {
@@ -35,7 +36,7 @@ function h(t) {
35
36
  borderRadius: "9999px",
36
37
  fontSize: "0.75rem"
37
38
  },
38
- children: d
39
+ children: s
39
40
  }
40
41
  ),
41
42
  /* @__PURE__ */ r(
@@ -66,7 +67,7 @@ function h(t) {
66
67
  },
67
68
  p
68
69
  )) }),
69
- s && /* @__PURE__ */ r(
70
+ d && /* @__PURE__ */ r(
70
71
  "button",
71
72
  {
72
73
  style: {
@@ -79,7 +80,7 @@ function h(t) {
79
80
  fontWeight: 500,
80
81
  cursor: "pointer"
81
82
  },
82
- children: s
83
+ children: d
83
84
  }
84
85
  )
85
86
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"PricingCardRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/PricingCardRenderer.tsx"],"sourcesContent":["/**\n * PricingCard Renderer\n * Renderiza card individual de pricing\n */\n\nimport React from \"react\";\n\nexport function renderPricingCard(block: any): React.ReactNode {\n const {\n name,\n price,\n period,\n description,\n features = [],\n buttonText,\n highlighted,\n badge,\n } = block.props;\n\n return (\n <div\n key={block.id}\n style={{\n backgroundColor: \"var(--sg-bg)\",\n borderRadius: \"var(--sg-card-radius, 0.75rem)\",\n padding: \"2rem\",\n boxShadow: highlighted\n ? \"var(--sg-shadow-strong)\"\n : \"var(--sg-card-shadow)\",\n border: highlighted\n ? \"2px solid var(--sg-primary)\"\n : \"1px solid var(--sg-border)\",\n position: \"relative\",\n }}\n >\n {badge && (\n <span\n style={{\n position: \"absolute\",\n top: \"-0.75rem\",\n right: \"1rem\",\n backgroundColor: \"var(--sg-primary)\",\n color: \"#fff\",\n padding: \"0.25rem 0.75rem\",\n borderRadius: \"9999px\",\n fontSize: \"0.75rem\",\n }}\n >\n {badge}\n </span>\n )}\n <h3\n style={{ fontSize: \"1.25rem\", fontWeight: 600, marginBottom: \"0.5rem\" }}\n >\n {name}\n </h3>\n {description && (\n <p style={{ color: \"var(--sg-muted-text)\", marginBottom: \"1rem\" }}>\n {description}\n </p>\n )}\n <div style={{ marginBottom: \"1.5rem\" }}>\n <span style={{ fontSize: \"2.5rem\", fontWeight: 700 }}>{price}</span>\n {period && (\n <span style={{ color: \"var(--sg-muted-text)\" }}>{period}</span>\n )}\n </div>\n <ul style={{ listStyle: \"none\", padding: 0, marginBottom: \"1.5rem\" }}>\n {features.map((feature: string, index: number) => (\n <li\n key={index}\n style={{\n padding: \"0.5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n }}\n >\n <span style={{ color: \"var(--sg-success)\" }}>✓</span>\n {feature}\n </li>\n ))}\n </ul>\n {buttonText && (\n <button\n style={{\n width: \"100%\",\n padding: \"var(--sg-button-padding-md)\",\n backgroundColor: highlighted ? \"var(--sg-primary)\" : \"transparent\",\n color: highlighted ? \"var(--sg-primary-text)\" : \"var(--sg-primary)\",\n border: highlighted ? \"none\" : \"1px solid var(--sg-primary)\",\n borderRadius: \"var(--sg-button-radius)\",\n fontWeight: 500,\n cursor: \"pointer\",\n }}\n >\n {buttonText}\n </button>\n )}\n </div>\n );\n}\n"],"names":["renderPricingCard","block","name","price","period","description","features","buttonText","highlighted","badge","jsxs","jsx","feature","index"],"mappings":";AAOO,SAASA,EAAkBC,GAA6B;AAC7D,QAAM;AAAA,IACJ,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC,IAAW,CAAA;AAAA,IACX,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACER,EAAM;AAEV,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,OAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAWF,IACP,4BACA;AAAA,QACJ,QAAQA,IACJ,gCACA;AAAA,QACJ,UAAU;AAAA,MAAA;AAAA,MAGX,UAAA;AAAA,QAAAC,KACC,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,OAAO;AAAA,cACP,iBAAiB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,cACd,UAAU;AAAA,YAAA;AAAA,YAGX,UAAAF;AAAA,UAAA;AAAA,QAAA;AAAA,QAGL,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,UAAU,WAAW,YAAY,KAAK,cAAc,SAAA;AAAA,YAE5D,UAAAT;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFG,KACC,gBAAAM,EAAC,KAAA,EAAE,OAAO,EAAE,OAAO,wBAAwB,cAAc,OAAA,GACtD,UAAAN,EAAA,CACH;AAAA,0BAED,OAAA,EAAI,OAAO,EAAE,cAAc,YAC1B,UAAA;AAAA,UAAA,gBAAAM,EAAC,QAAA,EAAK,OAAO,EAAE,UAAU,UAAU,YAAY,IAAA,GAAQ,UAAAR,EAAA,CAAM;AAAA,UAC5DC,uBACE,QAAA,EAAK,OAAO,EAAE,OAAO,uBAAA,GAA2B,UAAAA,EAAA,CAAO;AAAA,QAAA,GAE5D;AAAA,QACA,gBAAAO,EAAC,MAAA,EAAG,OAAO,EAAE,WAAW,QAAQ,SAAS,GAAG,cAAc,YACvD,UAAAL,EAAS,IAAI,CAACM,GAAiBC,MAC9B,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,KAAK;AAAA,YAAA;AAAA,YAGP,UAAA;AAAA,cAAA,gBAAAC,EAAC,UAAK,OAAO,EAAE,OAAO,oBAAA,GAAuB,UAAA,KAAC;AAAA,cAC7CC;AAAA,YAAA;AAAA,UAAA;AAAA,UATIC;AAAA,QAAA,CAWR,GACH;AAAA,QACCN,KACC,gBAAAI;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,OAAO;AAAA,cACP,SAAS;AAAA,cACT,iBAAiBH,IAAc,sBAAsB;AAAA,cACrD,OAAOA,IAAc,2BAA2B;AAAA,cAChD,QAAQA,IAAc,SAAS;AAAA,cAC/B,cAAc;AAAA,cACd,YAAY;AAAA,cACZ,QAAQ;AAAA,YAAA;AAAA,YAGT,UAAAD;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,IA5EGN,EAAM;AAAA,EAAA;AAgFjB;"}
1
+ {"version":3,"file":"PricingCardRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/PricingCardRenderer.tsx"],"sourcesContent":["/**\n * PricingCard Renderer\n * Renderiza card individual de pricing\n */\n\nimport React from \"react\";\n\nexport function renderPricingCard(block: any): React.ReactNode {\n const {\n name,\n price,\n period,\n description,\n features = [],\n buttonText,\n highlighted,\n badge,\n } = block.props;\n\n return (\n <div\n key={block.id}\n data-block-group=\"Conteúdo\"\n style={{\n backgroundColor: \"var(--sg-bg)\",\n borderRadius: \"var(--sg-card-radius, 0.75rem)\",\n padding: \"2rem\",\n boxShadow: highlighted\n ? \"var(--sg-shadow-strong)\"\n : \"var(--sg-card-shadow)\",\n border: highlighted\n ? \"2px solid var(--sg-primary)\"\n : \"1px solid var(--sg-border)\",\n position: \"relative\",\n }}\n >\n {badge && (\n <span\n style={{\n position: \"absolute\",\n top: \"-0.75rem\",\n right: \"1rem\",\n backgroundColor: \"var(--sg-primary)\",\n color: \"#fff\",\n padding: \"0.25rem 0.75rem\",\n borderRadius: \"9999px\",\n fontSize: \"0.75rem\",\n }}\n >\n {badge}\n </span>\n )}\n <h3\n style={{ fontSize: \"1.25rem\", fontWeight: 600, marginBottom: \"0.5rem\" }}\n >\n {name}\n </h3>\n {description && (\n <p style={{ color: \"var(--sg-muted-text)\", marginBottom: \"1rem\" }}>\n {description}\n </p>\n )}\n <div style={{ marginBottom: \"1.5rem\" }}>\n <span style={{ fontSize: \"2.5rem\", fontWeight: 700 }}>{price}</span>\n {period && (\n <span style={{ color: \"var(--sg-muted-text)\" }}>{period}</span>\n )}\n </div>\n <ul style={{ listStyle: \"none\", padding: 0, marginBottom: \"1.5rem\" }}>\n {features.map((feature: string, index: number) => (\n <li\n key={index}\n style={{\n padding: \"0.5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n }}\n >\n <span style={{ color: \"var(--sg-success)\" }}>✓</span>\n {feature}\n </li>\n ))}\n </ul>\n {buttonText && (\n <button\n style={{\n width: \"100%\",\n padding: \"var(--sg-button-padding-md)\",\n backgroundColor: highlighted ? \"var(--sg-primary)\" : \"transparent\",\n color: highlighted ? \"var(--sg-primary-text)\" : \"var(--sg-primary)\",\n border: highlighted ? \"none\" : \"1px solid var(--sg-primary)\",\n borderRadius: \"var(--sg-button-radius)\",\n fontWeight: 500,\n cursor: \"pointer\",\n }}\n >\n {buttonText}\n </button>\n )}\n </div>\n );\n}\n"],"names":["renderPricingCard","block","name","price","period","description","features","buttonText","highlighted","badge","jsxs","jsx","feature","index"],"mappings":";AAOO,SAASA,EAAkBC,GAA6B;AAC7D,QAAM;AAAA,IACJ,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC,IAAW,CAAA;AAAA,IACX,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACER,EAAM;AAEV,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,oBAAiB;AAAA,MACjB,OAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAWF,IACP,4BACA;AAAA,QACJ,QAAQA,IACJ,gCACA;AAAA,QACJ,UAAU;AAAA,MAAA;AAAA,MAGX,UAAA;AAAA,QAAAC,KACC,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,OAAO;AAAA,cACP,iBAAiB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,cACd,UAAU;AAAA,YAAA;AAAA,YAGX,UAAAF;AAAA,UAAA;AAAA,QAAA;AAAA,QAGL,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,UAAU,WAAW,YAAY,KAAK,cAAc,SAAA;AAAA,YAE5D,UAAAT;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFG,KACC,gBAAAM,EAAC,KAAA,EAAE,OAAO,EAAE,OAAO,wBAAwB,cAAc,OAAA,GACtD,UAAAN,EAAA,CACH;AAAA,0BAED,OAAA,EAAI,OAAO,EAAE,cAAc,YAC1B,UAAA;AAAA,UAAA,gBAAAM,EAAC,QAAA,EAAK,OAAO,EAAE,UAAU,UAAU,YAAY,IAAA,GAAQ,UAAAR,EAAA,CAAM;AAAA,UAC5DC,uBACE,QAAA,EAAK,OAAO,EAAE,OAAO,uBAAA,GAA2B,UAAAA,EAAA,CAAO;AAAA,QAAA,GAE5D;AAAA,QACA,gBAAAO,EAAC,MAAA,EAAG,OAAO,EAAE,WAAW,QAAQ,SAAS,GAAG,cAAc,YACvD,UAAAL,EAAS,IAAI,CAACM,GAAiBC,MAC9B,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,KAAK;AAAA,YAAA;AAAA,YAGP,UAAA;AAAA,cAAA,gBAAAC,EAAC,UAAK,OAAO,EAAE,OAAO,oBAAA,GAAuB,UAAA,KAAC;AAAA,cAC7CC;AAAA,YAAA;AAAA,UAAA;AAAA,UATIC;AAAA,QAAA,CAWR,GACH;AAAA,QACCN,KACC,gBAAAI;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,OAAO;AAAA,cACP,SAAS;AAAA,cACT,iBAAiBH,IAAc,sBAAsB;AAAA,cACrD,OAAOA,IAAc,2BAA2B;AAAA,cAChD,QAAQA,IAAc,SAAS;AAAA,cAC/B,cAAc;AAAA,cACd,YAAY;AAAA,cACZ,QAAQ;AAAA,YAAA;AAAA,YAGT,UAAAD;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,IA7EGN,EAAM;AAAA,EAAA;AAiFjB;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as r, jsxs as d } from "react/jsx-runtime";
2
- import { renderPricingCard as l } from "./PricingCardRenderer.js";
2
+ import { renderPricingCard as s } from "./PricingCardRenderer.js";
3
3
  function m(e) {
4
- const { title: i, subtitle: t, plans: n = [] } = e.props;
4
+ const { title: t, subtitle: i, plans: n = [] } = e.props;
5
5
  return /* @__PURE__ */ r(
6
6
  "section",
7
7
  {
@@ -10,22 +10,22 @@ function m(e) {
10
10
  backgroundColor: "var(--sg-bg)"
11
11
  },
12
12
  children: /* @__PURE__ */ d("div", { style: { maxWidth: "1200px", margin: "0 auto", padding: "0 1rem" }, children: [
13
- (i || t) && /* @__PURE__ */ d("div", { style: { textAlign: "center", marginBottom: "3rem" }, children: [
14
- i && /* @__PURE__ */ r(
13
+ (t || i) && /* @__PURE__ */ d("div", { "data-block-group": "Conteúdo", style: { textAlign: "center", marginBottom: "3rem" }, children: [
14
+ t && /* @__PURE__ */ r(
15
15
  "h2",
16
16
  {
17
17
  style: {
18
18
  fontSize: "var(--sg-heading-h2)",
19
19
  marginBottom: "0.5rem"
20
20
  },
21
- children: i
21
+ children: t
22
22
  }
23
23
  ),
24
- t && /* @__PURE__ */ r(
24
+ i && /* @__PURE__ */ r(
25
25
  "p",
26
26
  {
27
27
  style: { color: "var(--sg-muted-text)", fontSize: "1.125rem" },
28
- children: t
28
+ children: i
29
29
  }
30
30
  )
31
31
  ] }),
@@ -39,8 +39,8 @@ function m(e) {
39
39
  alignItems: "start"
40
40
  },
41
41
  children: n.map(
42
- (a, s) => l({
43
- id: `${e.id}-plan-${s}`,
42
+ (a, o) => s({
43
+ id: `${e.id}-plan-${o}`,
44
44
  props: a
45
45
  })
46
46
  )
@@ -1 +1 @@
1
- {"version":3,"file":"PricingRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/PricingRenderer.tsx"],"sourcesContent":["/**\n * Pricing Renderer\n * Renderiza seção de pricing com múltiplos plans\n */\n\nimport React from \"react\";\nimport { renderPricingCard } from \"./PricingCardRenderer\";\n\nexport function renderPricing(block: any): React.ReactNode {\n const { title, subtitle, plans = [] } = block.props;\n\n return (\n <section\n key={block.id}\n style={{\n padding: \"var(--sg-section-padding-md)\",\n backgroundColor: \"var(--sg-bg)\",\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 && (\n <h2\n style={{\n fontSize: \"var(--sg-heading-h2)\",\n marginBottom: \"0.5rem\",\n }}\n >\n {title}\n </h2>\n )}\n {subtitle && (\n <p\n style={{ color: \"var(--sg-muted-text)\", fontSize: \"1.125rem\" }}\n >\n {subtitle}\n </p>\n )}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${plans.length}, 1fr)`,\n gap: \"2rem\",\n alignItems: \"start\",\n }}\n >\n {plans.map((plan: any, index: number) =>\n renderPricingCard({\n id: `${block.id}-plan-${index}`,\n props: plan,\n }),\n )}\n </div>\n </div>\n </section>\n );\n}\n"],"names":["renderPricing","block","title","subtitle","plans","jsx","jsxs","plan","index","renderPricingCard"],"mappings":";;AAQO,SAASA,EAAcC,GAA6B;AACzD,QAAM,EAAE,OAAAC,GAAO,UAAAC,GAAU,OAAAC,IAAQ,CAAA,EAAC,IAAMH,EAAM;AAE9C,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,iBAAiB;AAAA,MAAA;AAAA,MAGnB,UAAA,gBAAAC,EAAC,OAAA,EAAI,OAAO,EAAE,UAAU,UAAU,QAAQ,UAAU,SAAS,SAAA,GACzD,UAAA;AAAA,SAAAJ,KAASC,wBACR,OAAA,EAAI,OAAO,EAAE,WAAW,UAAU,cAAc,OAAA,GAC9C,UAAA;AAAA,UAAAD,KACC,gBAAAG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,cAAc;AAAA,cAAA;AAAA,cAGf,UAAAH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJC,KACC,gBAAAE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,EAAE,OAAO,wBAAwB,UAAU,WAAA;AAAA,cAEjD,UAAAF;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,GAEJ;AAAA,QAEF,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,qBAAqB,UAAUD,EAAM,MAAM;AAAA,cAC3C,KAAK;AAAA,cACL,YAAY;AAAA,YAAA;AAAA,YAGb,UAAAA,EAAM;AAAA,cAAI,CAACG,GAAWC,MACrBC,EAAkB;AAAA,gBAChB,IAAI,GAAGR,EAAM,EAAE,SAASO,CAAK;AAAA,gBAC7B,OAAOD;AAAA,cAAA,CACR;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA;AAAA,IA3CKN,EAAM;AAAA,EAAA;AA8CjB;"}
1
+ {"version":3,"file":"PricingRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/PricingRenderer.tsx"],"sourcesContent":["/**\n * Pricing Renderer\n * Renderiza seção de pricing com múltiplos plans\n */\n\nimport React from \"react\";\nimport { renderPricingCard } from \"./PricingCardRenderer\";\n\nexport function renderPricing(block: any): React.ReactNode {\n const { title, subtitle, plans = [] } = block.props;\n\n return (\n <section\n key={block.id}\n style={{\n padding: \"var(--sg-section-padding-md)\",\n backgroundColor: \"var(--sg-bg)\",\n }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {(title || subtitle) && (\n <div data-block-group=\"Conteúdo\" style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && (\n <h2\n style={{\n fontSize: \"var(--sg-heading-h2)\",\n marginBottom: \"0.5rem\",\n }}\n >\n {title}\n </h2>\n )}\n {subtitle && (\n <p\n style={{ color: \"var(--sg-muted-text)\", fontSize: \"1.125rem\" }}\n >\n {subtitle}\n </p>\n )}\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${plans.length}, 1fr)`,\n gap: \"2rem\",\n alignItems: \"start\",\n }}\n >\n {plans.map((plan: any, index: number) =>\n renderPricingCard({\n id: `${block.id}-plan-${index}`,\n props: plan,\n }),\n )}\n </div>\n </div>\n </section>\n );\n}\n"],"names":["renderPricing","block","title","subtitle","plans","jsx","jsxs","plan","index","renderPricingCard"],"mappings":";;AAQO,SAASA,EAAcC,GAA6B;AACzD,QAAM,EAAE,OAAAC,GAAO,UAAAC,GAAU,OAAAC,IAAQ,CAAA,EAAC,IAAMH,EAAM;AAE9C,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,iBAAiB;AAAA,MAAA;AAAA,MAGnB,UAAA,gBAAAC,EAAC,OAAA,EAAI,OAAO,EAAE,UAAU,UAAU,QAAQ,UAAU,SAAS,SAAA,GACzD,UAAA;AAAA,SAAAJ,KAASC,MACT,gBAAAG,EAAC,OAAA,EAAI,oBAAiB,YAAW,OAAO,EAAE,WAAW,UAAU,cAAc,OAAA,GAC1E,UAAA;AAAA,UAAAJ,KACC,gBAAAG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,cAAc;AAAA,cAAA;AAAA,cAGf,UAAAH;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJC,KACC,gBAAAE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,EAAE,OAAO,wBAAwB,UAAU,WAAA;AAAA,cAEjD,UAAAF;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,GAEJ;AAAA,QAEF,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,qBAAqB,UAAUD,EAAM,MAAM;AAAA,cAC3C,KAAK;AAAA,cACL,YAAY;AAAA,YAAA;AAAA,YAGb,UAAAA,EAAM;AAAA,cAAI,CAACG,GAAWC,MACrBC,EAAkB;AAAA,gBAChB,IAAI,GAAGR,EAAM,EAAE,SAASO,CAAK;AAAA,gBAC7B,OAAOD;AAAA,cAAA,CACR;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA;AAAA,IA3CKN,EAAM;AAAA,EAAA;AA8CjB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TestimonialGridRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/TestimonialGridRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAkDjE"}
1
+ {"version":3,"file":"TestimonialGridRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/TestimonialGridRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAmDjE"}