@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.
- package/dist/editor/BlockSelector.d.ts.map +1 -1
- package/dist/editor/BlockSelector.js +60 -57
- package/dist/editor/BlockSelector.js.map +1 -1
- package/dist/editor/LandingPageEditor.d.ts.map +1 -1
- package/dist/editor/LandingPageEditor.js +145 -128
- package/dist/editor/LandingPageEditor.js.map +1 -1
- package/dist/editor/PageTabBar.d.ts +4 -1
- package/dist/editor/PageTabBar.d.ts.map +1 -1
- package/dist/editor/PageTabBar.js +179 -41
- package/dist/editor/PageTabBar.js.map +1 -1
- package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts +2 -0
- package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/BlockPropertyEditor.js +53 -45
- package/dist/editor/PropertyEditor/BlockPropertyEditor.js.map +1 -1
- package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts +2 -0
- package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js +47 -33
- package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js.map +1 -1
- package/dist/editor/PropertyEditor/VariationSelector.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/VariationSelector.js +10 -6
- package/dist/editor/PropertyEditor/VariationSelector.js.map +1 -1
- package/dist/editor/PropertyEditor/index.js +20 -18
- package/dist/editor/PropertyEditor/index.js.map +1 -1
- package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts +16 -0
- package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts.map +1 -0
- package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js +170 -0
- package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js.map +1 -0
- package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/inputs/ImageGridInput.js +148 -121
- package/dist/editor/PropertyEditor/inputs/ImageGridInput.js.map +1 -1
- package/dist/editor/PropertyEditor/inputs/index.d.ts +1 -0
- package/dist/editor/PropertyEditor/inputs/index.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/renderPropertyInput.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/renderPropertyInput.js +167 -139
- package/dist/editor/PropertyEditor/renderPropertyInput.js.map +1 -1
- package/dist/editor/components/CenterPanel.d.ts +9 -1
- package/dist/editor/components/CenterPanel.d.ts.map +1 -1
- package/dist/editor/components/CenterPanel.js +24 -14
- package/dist/editor/components/CenterPanel.js.map +1 -1
- package/dist/editor/components/RightPanel.d.ts +5 -0
- package/dist/editor/components/RightPanel.d.ts.map +1 -1
- package/dist/editor/components/RightPanel.js +18 -12
- package/dist/editor/components/RightPanel.js.map +1 -1
- package/dist/editor/components/Toolbar.d.ts +3 -0
- package/dist/editor/components/Toolbar.d.ts.map +1 -1
- package/dist/editor/components/Toolbar.js +54 -35
- package/dist/editor/components/Toolbar.js.map +1 -1
- package/dist/engine/export/exportHtml.d.ts.map +1 -1
- package/dist/engine/export/exportHtml.js +50 -50
- package/dist/engine/export/exportHtml.js.map +1 -1
- package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts +6 -0
- package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -0
- package/dist/engine/export/exporters/sections/BlogPostExporters.js +101 -0
- package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -0
- package/dist/engine/export/exporters/sections/FooterExporter.js +22 -22
- package/dist/engine/export/exporters/sections/FooterExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/HeroExporter.d.ts.map +1 -1
- package/dist/engine/export/exporters/sections/HeroExporter.js +222 -205
- package/dist/engine/export/exporters/sections/HeroExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/MarketingExporters.js +88 -88
- package/dist/engine/export/exporters/sections/MarketingExporters.js.map +1 -1
- package/dist/engine/export/exporters/sections/NavbarExporter.js +34 -34
- package/dist/engine/export/exporters/sections/NavbarExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
- package/dist/engine/export/exporters/sections/index.js +29 -22
- package/dist/engine/export/exporters/sections/index.js.map +1 -1
- package/dist/engine/index.d.ts +3 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +99 -87
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/plugins/builtin/blog/index.d.ts +3 -0
- package/dist/engine/plugins/builtin/blog/index.d.ts.map +1 -0
- package/dist/engine/plugins/builtin/blog/manifest.d.ts +3 -0
- package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -0
- package/dist/engine/plugins/builtin/blog/manifest.js +273 -0
- package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -0
- package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts +7 -0
- package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts.map +1 -0
- package/dist/engine/plugins/builtin/blog/mockContentProvider.js +135 -0
- package/dist/engine/plugins/builtin/blog/mockContentProvider.js.map +1 -0
- package/dist/engine/plugins/contentHydration.d.ts +17 -0
- package/dist/engine/plugins/contentHydration.d.ts.map +1 -0
- package/dist/engine/plugins/contentHydration.js +121 -0
- package/dist/engine/plugins/contentHydration.js.map +1 -0
- package/dist/engine/plugins/dynamicPageResolver.d.ts +25 -0
- package/dist/engine/plugins/dynamicPageResolver.d.ts.map +1 -0
- package/dist/engine/plugins/dynamicPageResolver.js +32 -0
- package/dist/engine/plugins/dynamicPageResolver.js.map +1 -0
- package/dist/engine/plugins/index.d.ts +11 -0
- package/dist/engine/plugins/index.d.ts.map +1 -0
- package/dist/engine/plugins/pluginRegistry.d.ts +37 -0
- package/dist/engine/plugins/pluginRegistry.d.ts.map +1 -0
- package/dist/engine/plugins/pluginRegistry.js +134 -0
- package/dist/engine/plugins/pluginRegistry.js.map +1 -0
- package/dist/engine/plugins/types.d.ts +180 -0
- package/dist/engine/plugins/types.d.ts.map +1 -0
- package/dist/engine/presets/heroVariations.d.ts +5 -0
- package/dist/engine/presets/heroVariations.d.ts.map +1 -1
- package/dist/engine/presets/heroVariations.js +50 -6
- package/dist/engine/presets/heroVariations.js.map +1 -1
- package/dist/engine/preview/Preview.d.ts +6 -2
- package/dist/engine/preview/Preview.d.ts.map +1 -1
- package/dist/engine/preview/Preview.js +295 -125
- package/dist/engine/preview/Preview.js.map +1 -1
- package/dist/engine/registry/blocks/sections/blogPostCard.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/blogPostCard.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostCard.js +53 -0
- package/dist/engine/registry/blocks/sections/blogPostCard.js.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostDetail.js +49 -0
- package/dist/engine/registry/blocks/sections/blogPostDetail.js.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostGrid.js +89 -0
- package/dist/engine/registry/blocks/sections/blogPostGrid.js.map +1 -0
- package/dist/engine/registry/blocks/sections/hero.d.ts.map +1 -1
- package/dist/engine/registry/blocks/sections/hero.js +67 -14
- package/dist/engine/registry/blocks/sections/hero.js.map +1 -1
- package/dist/engine/registry/blocks/sections/index.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
- package/dist/engine/registry/blocks/sections/navbar.d.ts.map +1 -1
- package/dist/engine/registry/blocks/sections/navbar.js +2 -1
- package/dist/engine/registry/blocks/sections/navbar.js.map +1 -1
- package/dist/engine/registry/registry.d.ts.map +1 -1
- package/dist/engine/registry/registry.js +16 -12
- package/dist/engine/registry/registry.js.map +1 -1
- package/dist/engine/registry/types.d.ts +10 -6
- package/dist/engine/registry/types.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js +199 -0
- package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js +293 -0
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js +101 -0
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/CtaRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/CtaRenderer.js +33 -31
- package/dist/engine/render/renderers/sections/CtaRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FaqItemRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/FaqItemRenderer.js +7 -6
- package/dist/engine/render/renderers/sections/FaqItemRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FaqRenderer.js +7 -7
- package/dist/engine/render/renderers/sections/FaqRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureGridRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureGridRenderer.js +19 -18
- package/dist/engine/render/renderers/sections/FeatureGridRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureRenderer.js +5 -4
- package/dist/engine/render/renderers/sections/FeatureRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FooterRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/FooterRenderer.js +8 -7
- package/dist/engine/render/renderers/sections/FooterRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/HeroRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/HeroRenderer.js +295 -218
- package/dist/engine/render/renderers/sections/HeroRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/NavbarRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/NavbarRenderer.js +23 -22
- package/dist/engine/render/renderers/sections/NavbarRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/PricingCardRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/PricingCardRenderer.js +7 -6
- package/dist/engine/render/renderers/sections/PricingCardRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/PricingRenderer.js +9 -9
- package/dist/engine/render/renderers/sections/PricingRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/TestimonialGridRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js +17 -16
- package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/TestimonialRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/TestimonialRenderer.js +11 -10
- package/dist/engine/render/renderers/sections/TestimonialRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/index.js +24 -18
- package/dist/engine/render/renderers/sections/index.js.map +1 -1
- package/dist/engine/schema/siteDocument.d.ts +104 -3
- package/dist/engine/schema/siteDocument.d.ts.map +1 -1
- package/dist/engine/schema/siteDocument.js.map +1 -1
- package/dist/engine/shared/carouselAnimation.d.ts +20 -0
- package/dist/engine/shared/carouselAnimation.d.ts.map +1 -0
- package/dist/engine/shared/carouselAnimation.js +62 -0
- package/dist/engine/shared/carouselAnimation.js.map +1 -0
- package/dist/engine/shared/imageGrid/types.d.ts +2 -0
- package/dist/engine/shared/imageGrid/types.d.ts.map +1 -1
- package/dist/engine/shared/showWhen.d.ts +44 -0
- package/dist/engine/shared/showWhen.d.ts.map +1 -0
- package/dist/engine/shared/showWhen.js +33 -0
- package/dist/engine/shared/showWhen.js.map +1 -0
- package/dist/hooks/useEditorState.d.ts +3 -0
- package/dist/hooks/useEditorState.d.ts.map +1 -1
- package/dist/hooks/useEditorState.js +106 -84
- package/dist/hooks/useEditorState.js.map +1 -1
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +109 -93
- package/dist/index.js.map +1 -1
- package/dist/shared/templates/escola-blog.d.ts +3 -0
- package/dist/shared/templates/escola-blog.d.ts.map +1 -0
- package/dist/shared/templates/escola-blog.js +160 -0
- package/dist/shared/templates/escola-blog.js.map +1 -0
- package/dist/shared/templates/index.d.ts +2 -0
- package/dist/shared/templates/index.d.ts.map +1 -1
- package/dist/shared/templates/index.js +30 -12
- package/dist/shared/templates/index.js.map +1 -1
- package/dist/utils/changeDetector.d.ts +2 -1
- package/dist/utils/changeDetector.d.ts.map +1 -1
- package/dist/utils/changeDetector.js +39 -39
- package/dist/utils/changeDetector.js.map +1 -1
- package/dist/utils/sharedTemplateToEngine.d.ts +4 -5
- package/dist/utils/sharedTemplateToEngine.d.ts.map +1 -1
- package/dist/utils/sharedTemplateToEngine.js +14 -87
- package/dist/utils/sharedTemplateToEngine.js.map +1 -1
- package/dist/viewer/LandingPageViewer.d.ts +13 -6
- package/dist/viewer/LandingPageViewer.d.ts.map +1 -1
- package/dist/viewer/LandingPageViewer.js +220 -122
- package/dist/viewer/LandingPageViewer.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hero.js","sources":["../../../../../src/engine/registry/blocks/sections/hero.ts"],"sourcesContent":["import { BlockDefinition } from \"../../types\";\nimport { componentRegistry } from \"../../registry\";\nimport { heroVariations, heroVariationIds } from \"../../../presets/heroVariations\";\n\n/**\n * Valores padrão do Hero - Use para garantir consistência em templates e factories\n */\nexport const HERO_DEFAULT_PROPS = {\n variant: \"centered\",\n title: \"Bem-vindo ao Nosso Site\",\n subtitle: \"Subtítulo incrível aqui\",\n description: \"Uma descrição breve do seu produto ou serviço.\",\n primaryButton: { text: \"Começar Agora\" },\n secondaryButton: { text: \"Saber Mais\" },\n align: \"center\",\n contentPosition: \"center\",\n contentSpacing: \"default\",\n blockGap: \"default\",\n minHeight: \"70vh\",\n // Layout\n contentMaxWidth: \"700px\",\n paddingY: \"100px\",\n // Image\n imageRadius: 16,\n imageShadow: \"lg\",\n imagePosition: \"right\",\n // Button defaults\n buttonSize: \"md\",\n primaryButtonVariant: \"solid\",\n primaryButtonRadius: 8,\n secondaryButtonVariant: \"outline\",\n secondaryButtonRadius: 8,\n // Button hover defaults\n buttonHoverEffect: \"scale\",\n buttonHoverIntensity: 50,\n buttonHoverOverlay: \"none\",\n buttonHoverIconName: \"arrow-right\",\n} as const;\n\nexport const heroBlock: BlockDefinition = {\n type: \"hero\",\n name: \"Hero\",\n description: \"Seção hero completa com múltiplas variações\",\n category: \"sections\",\n canHaveChildren: false,\n defaultProps: HERO_DEFAULT_PROPS,\n variations: heroVariationIds.reduce(\n (acc, id) => {\n const v = heroVariations[id];\n acc[id] = { id: v.id, name: v.name, defaultProps: v.defaultProps };\n return acc;\n },\n {} as Record<\n string,\n { id: string; name: string; defaultProps: Record<string, any> }\n >,\n ),\n inspectorMeta: {\n // =========================================================================\n // GRUPO: Conteúdo\n // =========================================================================\n title: {\n label: \"Título\",\n inputType: \"text\",\n group: \"Conteúdo\",\n },\n titleTypography: {\n label: \"Estilo do Título\",\n inputType: \"typography\",\n group: \"Conteúdo\",\n },\n subtitle: {\n label: \"Subtítulo\",\n inputType: \"text\",\n group: \"Conteúdo\",\n },\n subtitleTypography: {\n label: \"Estilo do Subtítulo\",\n inputType: \"typography\",\n group: \"Conteúdo\",\n },\n description: {\n label: \"Descrição\",\n inputType: \"textarea\",\n group: \"Conteúdo\",\n },\n descriptionTypography: {\n label: \"Estilo da Descrição\",\n inputType: \"typography\",\n group: \"Conteúdo\",\n },\n badge: {\n label: \"Badge\",\n inputType: \"text\",\n group: \"Conteúdo\",\n },\n\n // =========================================================================\n // GRUPO: Mídia\n // =========================================================================\n image: {\n label: \"Imagem\",\n inputType: \"image-upload\",\n group: \"Mídia\",\n description: \"Imagem de fundo ou lateral\",\n },\n imagePosition: {\n label: \"Inverter Layout\",\n inputType: \"select\",\n options: [\n { label: \"Conteúdo à Esquerda / Imagem à Direita\", value: \"right\" },\n { label: \"Imagem à Esquerda / Conteúdo à Direita\", value: \"left\" },\n ],\n group: \"Layout\",\n description: \"Inverte a posição do conteúdo e da imagem em layouts divididos\",\n },\n imageRadius: {\n label: \"Cantos da Imagem\",\n inputType: \"slider\",\n min: 0,\n max: 32,\n step: 2,\n group: \"Mídia\",\n },\n imageShadow: {\n label: \"Sombra da Imagem\",\n inputType: \"select\",\n options: [\n { label: \"Nenhuma\", value: \"none\" },\n { label: \"Pequena\", value: \"sm\" },\n { label: \"Média\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n { label: \"Extra Grande\", value: \"xl\" },\n ],\n group: \"Mídia\",\n },\n\n // =========================================================================\n // GRUPO: Grid de Imagens\n // =========================================================================\n imageGridEnabled: {\n label: \"Usar Grid de Imagens\",\n inputType: \"checkbox\",\n group: \"Grid de Imagens\",\n description: \"Substituir imagem única por grid de até 4 imagens (split layout)\",\n },\n imageGridConfig: {\n label: \"Configuração da Grid\",\n inputType: \"image-grid\",\n group: \"Grid de Imagens\",\n showWhen: { field: \"imageGridEnabled\", equals: true },\n },\n\n // =========================================================================\n // GRUPO: Layout\n // =========================================================================\n align: {\n label: \"Alinhamento do Texto\",\n inputType: \"select\",\n options: [\n { label: \"Esquerda\", value: \"left\" },\n { label: \"Centro\", value: \"center\" },\n { label: \"Direita\", value: \"right\" },\n ],\n group: \"Layout\",\n description: \"Alinhamento do texto e elementos internos\",\n },\n contentPosition: {\n label: \"Posição do Conteúdo\",\n inputType: \"select\",\n options: [\n { label: \"Esquerda\", value: \"left\" },\n { label: \"Centro\", value: \"center\" },\n { label: \"Direita\", value: \"right\" },\n ],\n group: \"Layout\",\n description: \"Posição do bloco de conteúdo no layout\",\n },\n contentSpacing: {\n label: \"Espaçamento do Conteúdo\",\n inputType: \"select\",\n options: [\n { label: \"Compacto\", value: \"compact\" },\n { label: \"Padrão\", value: \"default\" },\n { label: \"Espaçoso\", value: \"spacious\" },\n ],\n group: \"Layout\",\n description: \"Distância entre título, subtítulo, descrição e botões\",\n },\n blockGap: {\n label: \"Distância entre Blocos\",\n inputType: \"select\",\n options: [\n { label: \"Padrão\", value: \"default\" },\n { label: \"Largo\", value: \"wide\" },\n { label: \"X. Largo\", value: \"x-wide\" },\n ],\n group: \"Layout\",\n description: \"Distância entre o bloco de conteúdo e a imagem\",\n },\n minHeight: {\n label: \"Altura\",\n inputType: \"select\",\n options: [\n { label: \"Padrão\", value: \"70vh\" },\n { label: \"Média\", value: \"85vh\" },\n { label: \"Tela Cheia\", value: \"100vh\" },\n ],\n group: \"Layout\",\n },\n contentMaxWidth: {\n label: \"Largura do Conteúdo\",\n inputType: \"select\",\n options: [\n { label: \"Padrão\", value: \"700px\" },\n { label: \"Larga\", value: \"900px\" },\n { label: \"Máxima\", value: \"1200px\" },\n ],\n group: \"Layout\",\n showWhen: { field: \"variant\", notEquals: \"split\" },\n },\n\n // =========================================================================\n // GRUPO: Aparência\n // =========================================================================\n background: {\n label: \"Cor de Fundo\",\n inputType: \"color-advanced\",\n group: \"Aparência\",\n description: \"Cor ou gradiente de fundo\",\n },\n overlay: {\n label: \"Escurecer Imagem\",\n inputType: \"checkbox\",\n group: \"Aparência\",\n },\n overlayColor: {\n label: \"Cor do Overlay\",\n inputType: \"color-advanced\",\n group: \"Aparência\",\n description: \"Gradiente sobre a imagem\",\n },\n showWave: {\n label: \"Onda Decorativa\",\n inputType: \"checkbox\",\n group: \"Aparência\",\n },\n waveColor: {\n label: \"Cor da Onda\",\n inputType: \"color-advanced\",\n group: \"Aparência\",\n showWhen: { field: \"showWave\", equals: true },\n },\n\n // =========================================================================\n // GRUPO: Badge\n // =========================================================================\n badgeColor: {\n label: \"Cor do Badge\",\n inputType: \"color-advanced\",\n group: \"Badge\",\n },\n badgeTextColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Badge\",\n },\n\n // =========================================================================\n // GRUPO: Botão Primário\n // =========================================================================\n primaryButtonVariant: {\n label: \"Estilo\",\n inputType: \"select\",\n options: [\n { label: \"Sólido\", value: \"solid\" },\n { label: \"Contorno\", value: \"outline\" },\n { label: \"Ghost\", value: \"ghost\" },\n ],\n group: \"Botão Primário\",\n },\n primaryButtonColor: {\n label: \"Cor\",\n inputType: \"color-advanced\",\n group: \"Botão Primário\",\n },\n primaryButtonTextColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Botão Primário\",\n },\n primaryButtonRadius: {\n label: \"Cantos\",\n inputType: \"slider\",\n min: 0,\n max: 50,\n step: 2,\n group: \"Botão Primário\",\n },\n\n // =========================================================================\n // GRUPO: Botão Secundário\n // =========================================================================\n secondaryButtonVariant: {\n label: \"Estilo\",\n inputType: \"select\",\n options: [\n { label: \"Sólido\", value: \"solid\" },\n { label: \"Contorno\", value: \"outline\" },\n { label: \"Ghost\", value: \"ghost\" },\n ],\n group: \"Botão Secundário\",\n },\n secondaryButtonColor: {\n label: \"Cor\",\n inputType: \"color-advanced\",\n group: \"Botão Secundário\",\n },\n secondaryButtonTextColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Botão Secundário\",\n },\n secondaryButtonRadius: {\n label: \"Cantos\",\n inputType: \"slider\",\n min: 0,\n max: 50,\n step: 2,\n group: \"Botão Secundário\",\n },\n\n // =========================================================================\n // GRUPO: Efeitos Hover (afeta ambos os botões)\n // =========================================================================\n buttonSize: {\n label: \"Tamanho\",\n inputType: \"select\",\n options: [\n { label: \"Pequeno\", value: \"sm\" },\n { label: \"Médio\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n ],\n group: \"Efeitos Hover\",\n },\n buttonHoverEffect: {\n label: \"Efeito Hover\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"none\" },\n { label: \"Escurecer\", value: \"darken\" },\n { label: \"Clarear\", value: \"lighten\" },\n { label: \"Escala\", value: \"scale\" },\n { label: \"Brilho Neon\", value: \"glow\" },\n { label: \"Sombra\", value: \"shadow\" },\n { label: \"Pulso\", value: \"pulse\" },\n ],\n group: \"Efeitos Hover\",\n },\n buttonHoverIntensity: {\n label: \"Intensidade\",\n inputType: \"slider\",\n min: 10,\n max: 100,\n step: 10,\n group: \"Efeitos Hover\",\n },\n buttonHoverOverlay: {\n label: \"Efeito Extra\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"none\" },\n { label: \"Brilho\", value: \"shine\" },\n { label: \"Preenchimento\", value: \"fill\" },\n { label: \"Salto\", value: \"bounce\" },\n { label: \"Ícone\", value: \"icon\" },\n { label: \"Borda Glow\", value: \"border-glow\" },\n ],\n group: \"Efeitos Hover\",\n },\n buttonHoverIconName: {\n label: \"Ícone\",\n inputType: \"icon-grid\",\n group: \"Efeitos Hover\",\n showWhen: { field: \"buttonHoverOverlay\", equals: \"icon\" },\n },\n },\n};\n\n// Auto-registro\ncomponentRegistry.register(heroBlock);\n"],"names":["HERO_DEFAULT_PROPS","heroBlock","heroVariationIds","acc","id","v","heroVariations","componentRegistry"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hero.js","sources":["../../../../../src/engine/registry/blocks/sections/hero.ts"],"sourcesContent":["import { BlockDefinition } from \"../../types\";\nimport { componentRegistry } from \"../../registry\";\nimport { heroVariations, heroVariationIds } from \"../../../presets/heroVariations\";\n\n/**\n * Valores padrão do Hero - Use para garantir consistência em templates e factories\n */\nexport const HERO_DEFAULT_PROPS = {\n variant: \"centered\",\n title: \"Bem-vindo ao Nosso Site\",\n subtitle: \"Subtítulo incrível aqui\",\n description: \"Uma descrição breve do seu produto ou serviço.\",\n primaryButton: { text: \"Começar Agora\" },\n secondaryButton: { text: \"Saber Mais\" },\n align: \"center\",\n contentPosition: \"center\",\n contentSpacing: \"default\",\n blockGap: \"default\",\n minHeight: \"70vh\",\n // Layout\n contentMaxWidth: \"700px\",\n paddingY: \"100px\",\n // Image\n imageRadius: 16,\n imageShadow: \"lg\",\n imagePosition: \"right\",\n // Button defaults\n buttonSize: \"md\",\n primaryButtonVariant: \"solid\",\n primaryButtonRadius: 8,\n secondaryButtonVariant: \"outline\",\n secondaryButtonRadius: 8,\n // Button hover defaults\n buttonHoverEffect: \"scale\",\n buttonHoverIntensity: 50,\n buttonHoverOverlay: \"none\",\n buttonHoverIconName: \"arrow-right\",\n} as const;\n\nexport const heroBlock: BlockDefinition = {\n type: \"hero\",\n name: \"Hero\",\n description: \"Seção hero completa com múltiplas variações\",\n category: \"sections\",\n canHaveChildren: false,\n defaultProps: HERO_DEFAULT_PROPS,\n variations: heroVariationIds.reduce(\n (acc, id) => {\n const v = heroVariations[id];\n acc[id] = { id: v.id, name: v.name, defaultProps: v.defaultProps };\n return acc;\n },\n {} as Record<\n string,\n { id: string; name: string; defaultProps: Record<string, any> }\n >,\n ),\n inspectorMeta: {\n // =========================================================================\n // GRUPO: Conteúdo\n // =========================================================================\n title: {\n label: \"Título\",\n inputType: \"text\",\n group: \"Conteúdo\",\n },\n titleTypography: {\n label: \"Estilo do Título\",\n inputType: \"typography\",\n group: \"Conteúdo\",\n },\n subtitle: {\n label: \"Subtítulo\",\n inputType: \"text\",\n group: \"Conteúdo\",\n },\n subtitleTypography: {\n label: \"Estilo do Subtítulo\",\n inputType: \"typography\",\n group: \"Conteúdo\",\n },\n description: {\n label: \"Descrição\",\n inputType: \"textarea\",\n group: \"Conteúdo\",\n },\n descriptionTypography: {\n label: \"Estilo da Descrição\",\n inputType: \"typography\",\n group: \"Conteúdo\",\n },\n badge: {\n label: \"Badge\",\n inputType: \"text\",\n group: \"Conteúdo\",\n },\n\n // =========================================================================\n // GRUPO: Mídia\n // =========================================================================\n image: {\n label: \"Imagem\",\n inputType: \"image-upload\",\n group: \"Mídia\",\n description: \"Imagem de fundo ou lateral\",\n showWhen: { field: \"imageGridEnabled\", notEquals: true },\n },\n imagePosition: {\n label: \"Inverter Layout\",\n inputType: \"select\",\n options: [\n { label: \"Conteúdo à Esquerda / Imagem à Direita\", value: \"right\" },\n { label: \"Imagem à Esquerda / Conteúdo à Direita\", value: \"left\" },\n ],\n group: \"Layout\",\n description: \"Inverte a posição do conteúdo e da imagem\",\n showWhen: {\n or: [\n { field: \"image\", truthy: true },\n { field: \"imageGridEnabled\", equals: true },\n ],\n },\n },\n imageRadius: {\n label: \"Cantos da Imagem\",\n inputType: \"slider\",\n min: 0,\n max: 32,\n step: 2,\n group: \"Mídia\",\n showWhen: {\n and: [\n { field: \"image\", truthy: true },\n { field: \"imageGridEnabled\", notEquals: true },\n ],\n },\n },\n imageShadow: {\n label: \"Sombra da Imagem\",\n inputType: \"select\",\n options: [\n { label: \"Nenhuma\", value: \"none\" },\n { label: \"Pequena\", value: \"sm\" },\n { label: \"Média\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n { label: \"Extra Grande\", value: \"xl\" },\n ],\n group: \"Mídia\",\n showWhen: {\n and: [\n { field: \"image\", truthy: true },\n { field: \"imageGridEnabled\", notEquals: true },\n ],\n },\n },\n\n // =========================================================================\n // GRUPO: Grid de Imagens\n // =========================================================================\n imageGridEnabled: {\n label: \"Usar Grid de Imagens\",\n inputType: \"checkbox\",\n group: \"Grid de Imagens\",\n description: \"Substituir imagem única por grid de até 4 imagens\",\n },\n imageGridConfig: {\n label: \"Configuração da Grid\",\n inputType: \"image-grid\",\n group: \"Grid de Imagens\",\n showWhen: { field: \"imageGridEnabled\", equals: true },\n },\n\n // =========================================================================\n // GRUPO: Layout\n // =========================================================================\n align: {\n label: \"Alinhamento do Texto\",\n inputType: \"select\",\n options: [\n { label: \"Esquerda\", value: \"left\" },\n { label: \"Centro\", value: \"center\" },\n { label: \"Direita\", value: \"right\" },\n ],\n group: \"Layout\",\n description: \"Alinhamento do texto e elementos internos\",\n },\n contentPosition: {\n label: \"Posição do Conteúdo\",\n inputType: \"select\",\n options: [\n { label: \"Esquerda\", value: \"left\" },\n { label: \"Centro\", value: \"center\" },\n { label: \"Direita\", value: \"right\" },\n ],\n group: \"Layout\",\n description: \"Posição do bloco de conteúdo no layout\",\n },\n contentSpacing: {\n label: \"Espaçamento do Conteúdo\",\n inputType: \"select\",\n options: [\n { label: \"Compacto\", value: \"compact\" },\n { label: \"Padrão\", value: \"default\" },\n { label: \"Espaçoso\", value: \"spacious\" },\n ],\n group: \"Layout\",\n description: \"Distância entre título, subtítulo, descrição e botões\",\n },\n blockGap: {\n label: \"Distância entre Blocos\",\n inputType: \"select\",\n options: [\n { label: \"Padrão\", value: \"default\" },\n { label: \"Largo\", value: \"wide\" },\n { label: \"X. Largo\", value: \"x-wide\" },\n ],\n group: \"Layout\",\n description: \"Distância entre o bloco de conteúdo e a mídia\",\n showWhen: {\n or: [\n { field: \"image\", truthy: true },\n { field: \"imageGridEnabled\", equals: true },\n ],\n },\n },\n minHeight: {\n label: \"Altura\",\n inputType: \"select\",\n options: [\n { label: \"Padrão\", value: \"70vh\" },\n { label: \"Média\", value: \"85vh\" },\n { label: \"Tela Cheia\", value: \"100vh\" },\n ],\n group: \"Layout\",\n },\n contentMaxWidth: {\n label: \"Largura do Conteúdo\",\n inputType: \"select\",\n options: [\n { label: \"Padrão\", value: \"700px\" },\n { label: \"Larga\", value: \"900px\" },\n { label: \"Máxima\", value: \"1200px\" },\n ],\n group: \"Layout\",\n showWhen: { field: \"variant\", notEquals: \"split\" },\n },\n\n // =========================================================================\n // GRUPO: Aparência\n // =========================================================================\n background: {\n label: \"Cor de Fundo\",\n inputType: \"color-advanced\",\n group: \"Aparência\",\n description: \"Cor ou gradiente de fundo\",\n },\n overlay: {\n label: \"Escurecer Imagem\",\n inputType: \"checkbox\",\n group: \"Aparência\",\n },\n overlayColor: {\n label: \"Cor do Overlay\",\n inputType: \"color-advanced\",\n group: \"Aparência\",\n description: \"Gradiente sobre a imagem\",\n },\n showWave: {\n label: \"Onda Decorativa\",\n inputType: \"checkbox\",\n group: \"Aparência\",\n },\n waveColor: {\n label: \"Cor da Onda\",\n inputType: \"color-advanced\",\n group: \"Aparência\",\n showWhen: { field: \"showWave\", equals: true },\n },\n\n // =========================================================================\n // GRUPO: Badge\n // =========================================================================\n badgeColor: {\n label: \"Cor do Badge\",\n inputType: \"color-advanced\",\n group: \"Badge\",\n },\n badgeTextColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Badge\",\n },\n\n // =========================================================================\n // GRUPO: Botão Primário\n // =========================================================================\n primaryButtonVariant: {\n label: \"Estilo\",\n inputType: \"select\",\n options: [\n { label: \"Sólido\", value: \"solid\" },\n { label: \"Contorno\", value: \"outline\" },\n { label: \"Ghost\", value: \"ghost\" },\n ],\n group: \"Botão Primário\",\n },\n primaryButtonColor: {\n label: \"Cor\",\n inputType: \"color-advanced\",\n group: \"Botão Primário\",\n },\n primaryButtonTextColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Botão Primário\",\n },\n primaryButtonRadius: {\n label: \"Cantos\",\n inputType: \"slider\",\n min: 0,\n max: 50,\n step: 2,\n group: \"Botão Primário\",\n },\n\n // =========================================================================\n // GRUPO: Botão Secundário\n // =========================================================================\n secondaryButtonVariant: {\n label: \"Estilo\",\n inputType: \"select\",\n options: [\n { label: \"Sólido\", value: \"solid\" },\n { label: \"Contorno\", value: \"outline\" },\n { label: \"Ghost\", value: \"ghost\" },\n ],\n group: \"Botão Secundário\",\n },\n secondaryButtonColor: {\n label: \"Cor\",\n inputType: \"color-advanced\",\n group: \"Botão Secundário\",\n },\n secondaryButtonTextColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Botão Secundário\",\n },\n secondaryButtonRadius: {\n label: \"Cantos\",\n inputType: \"slider\",\n min: 0,\n max: 50,\n step: 2,\n group: \"Botão Secundário\",\n },\n\n // =========================================================================\n // GRUPO: Efeitos Hover (afeta ambos os botões)\n // =========================================================================\n buttonSize: {\n label: \"Tamanho\",\n inputType: \"select\",\n options: [\n { label: \"Pequeno\", value: \"sm\" },\n { label: \"Médio\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n ],\n group: \"Efeitos Hover\",\n },\n buttonHoverEffect: {\n label: \"Efeito Hover\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"none\" },\n { label: \"Escurecer\", value: \"darken\" },\n { label: \"Clarear\", value: \"lighten\" },\n { label: \"Escala\", value: \"scale\" },\n { label: \"Brilho Neon\", value: \"glow\" },\n { label: \"Sombra\", value: \"shadow\" },\n { label: \"Pulso\", value: \"pulse\" },\n ],\n group: \"Efeitos Hover\",\n },\n buttonHoverIntensity: {\n label: \"Intensidade\",\n inputType: \"slider\",\n min: 10,\n max: 100,\n step: 10,\n group: \"Efeitos Hover\",\n },\n buttonHoverOverlay: {\n label: \"Efeito Extra\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"none\" },\n { label: \"Brilho\", value: \"shine\" },\n { label: \"Preenchimento\", value: \"fill\" },\n { label: \"Salto\", value: \"bounce\" },\n { label: \"Ícone\", value: \"icon\" },\n { label: \"Borda Glow\", value: \"border-glow\" },\n ],\n group: \"Efeitos Hover\",\n },\n buttonHoverIconName: {\n label: \"Ícone\",\n inputType: \"icon-grid\",\n group: \"Efeitos Hover\",\n showWhen: { field: \"buttonHoverOverlay\", equals: \"icon\" },\n },\n\n // =========================================================================\n // GRUPO: Carrossel\n // =========================================================================\n carouselImages: {\n label: \"Imagens do Carrossel\",\n inputType: \"carousel-images\",\n group: \"Carrossel\",\n description: \"Imagens de fundo que alternam automaticamente\",\n showWhen: { field: \"variation\", equals: \"hero-carousel\" },\n },\n carouselInterval: {\n label: \"Intervalo (segundos)\",\n inputType: \"slider\",\n min: 3,\n max: 10,\n step: 1,\n group: \"Carrossel\",\n showWhen: { field: \"variation\", equals: \"hero-carousel\" },\n },\n carouselTransition: {\n label: \"Transição\",\n inputType: \"select\",\n options: [\n { label: \"Crossfade\", value: \"crossfade\" },\n ],\n group: \"Carrossel\",\n showWhen: { field: \"variation\", equals: \"hero-carousel\" },\n },\n },\n};\n\n// Auto-registro\ncomponentRegistry.register(heroBlock);\n"],"names":["HERO_DEFAULT_PROPS","heroBlock","heroVariationIds","acc","id","v","heroVariations","componentRegistry"],"mappings":"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"}
|
|
@@ -21,4 +21,7 @@ export * from './teamCard';
|
|
|
21
21
|
export * from './teamGrid';
|
|
22
22
|
export * from './courseCardGrid';
|
|
23
23
|
export * from './categoryCardGrid';
|
|
24
|
+
export * from './blogPostCard';
|
|
25
|
+
export * from './blogPostGrid';
|
|
26
|
+
export * from './blogPostDetail';
|
|
24
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/engine/registry/blocks/sections/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/engine/registry/blocks/sections/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navbar.d.ts","sourceRoot":"","sources":["../../../../../src/engine/registry/blocks/sections/navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO9C;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCvB,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"navbar.d.ts","sourceRoot":"","sources":["../../../../../src/engine/registry/blocks/sections/navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO9C;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCvB,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,eAiQzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navbar.js","sources":["../../../../../src/engine/registry/blocks/sections/navbar.ts"],"sourcesContent":["import { BlockDefinition } from \"../../types\";\nimport { componentRegistry } from \"../../registry\";\nimport {\n navbarVariations,\n navbarVariationIds,\n} from \"../../../presets/navbarVariations\";\n\n/**\n * Valores padrão da Navbar - Use para garantir consistência em templates e factories\n */\nexport const NAVBAR_DEFAULT_PROPS = {\n variation: \"navbar-moderno\",\n links: [\n { text: \"Início\", href: \"/site/p/home\" },\n { text: \"Serviços\", href: \"/site/p/servicos\" },\n { text: \"Produtos\", href: \"/site/p/produtos\" },\n { text: \"Contato\", href: \"/site/p/contato\" },\n ],\n ctaButton: { text: \"Começar\", href: \"/site/p/contato\" },\n sticky: true,\n floating: false,\n layout: \"expanded\",\n borderRadius: 0,\n shadow: \"sm\",\n opacity: 100,\n blurOpacity: 0,\n logoHeight: 70,\n linkFontSize: \"md\",\n buttonVariant: \"solid\",\n buttonBorderRadius: 8,\n // Borda\n borderPosition: \"none\",\n borderWidth: 1,\n borderColor: \"#e5e7eb\",\n // Cores padrão\n bg: \"#ffffff\",\n linkColor: \"#374151\",\n linkHoverColor: \"#2563eb\",\n linkHoverEffect: \"background\",\n linkHoverIntensity: 50,\n buttonColor: \"#2563eb\",\n buttonTextColor: \"#ffffff\",\n buttonSize: \"md\",\n buttonHoverEffect: \"darken\",\n buttonHoverIntensity: 50,\n buttonHoverOverlay: \"none\",\n buttonHoverIconName: \"arrow-right\",\n} as const;\n\nexport const navbarBlock: BlockDefinition = {\n type: \"navbar\",\n name: \"Navbar\",\n description: \"Barra de navegação customizável\",\n category: \"sections\",\n canHaveChildren: false,\n defaultProps: NAVBAR_DEFAULT_PROPS,\n variations: navbarVariationIds.reduce(\n (acc, id) => {\n const v = navbarVariations[id];\n acc[id] = { id: v.id, name: v.name, defaultProps: v.defaultProps };\n return acc;\n },\n {} as Record<\n string,\n { id: string; name: string; defaultProps: Record<string, any> }\n >,\n ),\n inspectorMeta: {\n // === GRUPO: Posicionamento ===\n layout: {\n label: \"Organizacao\",\n inputType: \"select\",\n options: [\n { label: \"Expandido\", value: \"expanded\" },\n { label: \"Centralizado\", value: \"centered\" },\n { label: \"Compacto\", value: \"compact\" },\n ],\n group: \"Posicionamento\",\n },\n sticky: {\n label: \"Fixar no Topo\",\n inputType: \"checkbox\",\n size: \"sm\",\n group: \"Posicionamento\",\n },\n floating: {\n label: \"Menu Flutuante\",\n inputType: \"checkbox\",\n size: \"sm\",\n group: \"Posicionamento\",\n },\n\n // === GRUPO: Aparencia ===\n bg: {\n label: \"Cor de Fundo\",\n inputType: \"color-advanced\",\n group: \"Aparencia\",\n },\n opacity: {\n label: \"Transparencia\",\n inputType: \"slider\",\n min: 0,\n max: 100,\n step: 5,\n group: \"Aparencia\",\n },\n blurOpacity: {\n label: \"Desfoque\",\n inputType: \"slider\",\n min: 0,\n max: 100,\n step: 5,\n group: \"Aparencia\",\n },\n borderRadius: {\n label: \"Cantos\",\n inputType: \"slider\",\n min: 0,\n max: 32,\n step: 2,\n group: \"Aparencia\",\n },\n shadow: {\n label: \"Sombra\",\n inputType: \"select\",\n options: [\n { label: \"Nenhuma\", value: \"none\" },\n { label: \"Pequena\", value: \"sm\" },\n { label: \"Media\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n { label: \"Extra Grande\", value: \"xl\" },\n ],\n group: \"Aparencia\",\n },\n borderPosition: {\n label: \"Borda\",\n inputType: \"select\",\n options: [\n { label: \"Nenhuma\", value: \"none\" },\n { label: \"Completa\", value: \"all\" },\n { label: \"Superior\", value: \"top\" },\n { label: \"Inferior\", value: \"bottom\" },\n { label: \"Esquerda\", value: \"left\" },\n { label: \"Direita\", value: \"right\" },\n ],\n group: \"Aparencia\",\n },\n borderWidth: {\n label: \"Espessura da Borda\",\n inputType: \"slider\",\n min: 1,\n max: 4,\n step: 1,\n group: \"Aparencia\",\n },\n borderColor: {\n label: \"Cor da Borda\",\n inputType: \"color-advanced\",\n group: \"Aparencia\",\n },\n\n // === GRUPO: Logo e Marca ===\n logo: {\n label: \"Logo (Imagem)\",\n inputType: \"image-upload\",\n group: \"Logo e Marca\",\n },\n logoHeight: {\n label: \"Tamanho do Logo\",\n inputType: \"slider\",\n min: 40,\n max: 130,\n step: 5,\n group: \"Logo e Marca\",\n },\n logoText: {\n label: \"Texto Alternativo\",\n inputType: \"text\",\n group: \"Logo e Marca\",\n },\n\n // === GRUPO: Links ===\n linkColor: {\n label: \"Cor\",\n inputType: \"color-advanced\",\n group: \"Links\",\n },\n linkHoverColor: {\n label: \"Cor (Hover)\",\n inputType: \"color-advanced\",\n group: \"Links\",\n },\n linkFontSize: {\n label: \"Tamanho\",\n inputType: \"select\",\n options: [\n { label: \"Pequeno\", value: \"sm\" },\n { label: \"Medio\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n ],\n group: \"Links\",\n },\n linkHoverEffect: {\n label: \"Efeito Hover\",\n inputType: \"select\",\n options: [\n { label: \"Fundo\", value: \"background\" },\n { label: \"Sublinhado\", value: \"underline\" },\n { label: \"Sublinhado Centro\", value: \"underline-center\" },\n { label: \"Fundo Subindo\", value: \"slide-bg\" },\n { label: \"Escala\", value: \"scale\" },\n { label: \"Brilho Neon\", value: \"glow\" },\n ],\n group: \"Links\",\n },\n linkHoverIntensity: {\n label: \"Intensidade\",\n inputType: \"slider\",\n min: 10,\n max: 100,\n step: 10,\n group: \"Links\",\n },\n\n // === GRUPO: Botao CTA ===\n buttonVariant: {\n label: \"Estilo\",\n inputType: \"select\",\n options: [\n { label: \"Solido\", value: \"solid\" },\n { label: \"Contorno\", value: \"outline\" },\n { label: \"Ghost\", value: \"ghost\" },\n ],\n group: \"Botao CTA\",\n },\n buttonColor: {\n label: \"Cor\",\n inputType: \"color-advanced\",\n group: \"Botao CTA\",\n },\n buttonTextColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Botao CTA\",\n },\n buttonBorderRadius: {\n label: \"Cantos do Botao\",\n inputType: \"slider\",\n min: 0,\n max: 32,\n step: 2,\n group: \"Botao CTA\",\n },\n buttonSize: {\n label: \"Tamanho\",\n inputType: \"select\",\n options: [\n { label: \"Pequeno\", value: \"sm\" },\n { label: \"Medio\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n ],\n group: \"Botao CTA\",\n },\n buttonHoverEffect: {\n label: \"Efeito Hover\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"none\" },\n { label: \"Escurecer\", value: \"darken\" },\n { label: \"Clarear\", value: \"lighten\" },\n { label: \"Escala\", value: \"scale\" },\n { label: \"Brilho Neon\", value: \"glow\" },\n { label: \"Sombra\", value: \"shadow\" },\n { label: \"Pulso\", value: \"pulse\" },\n ],\n group: \"Botao CTA\",\n },\n buttonHoverIntensity: {\n label: \"Intensidade\",\n inputType: \"slider\",\n min: 10,\n max: 100,\n step: 10,\n group: \"Botao CTA\",\n },\n buttonHoverOverlay: {\n label: \"Efeito Extra\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"none\" },\n { label: \"Brilho\", value: \"shine\" },\n { label: \"Preenchimento\", value: \"fill\" },\n { label: \"Salto\", value: \"bounce\" },\n { label: \"Icone\", value: \"icon\" },\n { label: \"Borda Glow\", value: \"border-glow\" },\n ],\n group: \"Botao CTA\",\n },\n buttonHoverIconName: {\n label: \"Icone\",\n inputType: \"icon-grid\",\n group: \"Botao CTA\",\n showWhen: { field: \"buttonHoverOverlay\", equals: \"icon\" },\n },\n },\n};\n\n// Auto-registro\ncomponentRegistry.register(navbarBlock);\n"],"names":["NAVBAR_DEFAULT_PROPS","navbarBlock","navbarVariationIds","acc","id","v","navbarVariations","componentRegistry"],"mappings":";;AAUO,MAAMA,IAAuB;AAAA,EAClC,WAAW;AAAA,EACX,OAAO;AAAA,IACL,EAAE,MAAM,UAAU,MAAM,eAAA;AAAA,IACxB,EAAE,MAAM,YAAY,MAAM,mBAAA;AAAA,IAC1B,EAAE,MAAM,YAAY,MAAM,mBAAA;AAAA,IAC1B,EAAE,MAAM,WAAW,MAAM,kBAAA;AAAA,EAAkB;AAAA,EAE7C,WAAW,EAAE,MAAM,WAAW,MAAM,kBAAA;AAAA,EACpC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,oBAAoB;AAAA;AAAA,EAEpB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,aAAa;AAAA;AAAA,EAEb,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,qBAAqB;AACvB,GAEaC,IAA+B;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,cAAcD;AAAA,EACd,YAAYE,EAAmB;AAAA,IAC7B,CAACC,GAAKC,MAAO;AACX,YAAMC,IAAIC,EAAiBF,CAAE;AAC7B,aAAAD,EAAIC,CAAE,IAAI,EAAE,IAAIC,EAAE,IAAI,MAAMA,EAAE,MAAM,cAAcA,EAAE,aAAA,GAC7CF;AAAA,IACT;AAAA,IACA,CAAA;AAAA,EAAC;AAAA,EAKH,eAAe;AAAA;AAAA,IAEb,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,aAAa,OAAO,WAAA;AAAA,QAC7B,EAAE,OAAO,gBAAgB,OAAO,WAAA;AAAA,QAChC,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,MAAU;AAAA,MAExC,OAAO;AAAA,IAAA;AAAA,IAET,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,UAAU;AAAA,MACR,OAAO;AAAA,MACP,WAAW;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA;AAAA,IAIT,IAAI;AAAA,MACF,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,SAAS;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,aAAa;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,WAAW,OAAO,OAAA;AAAA,QAC3B,EAAE,OAAO,WAAW,OAAO,KAAA;AAAA,QAC3B,EAAE,OAAO,SAAS,OAAO,KAAA;AAAA,QACzB,EAAE,OAAO,UAAU,OAAO,KAAA;AAAA,QAC1B,EAAE,OAAO,gBAAgB,OAAO,KAAA;AAAA,MAAK;AAAA,MAEvC,OAAO;AAAA,IAAA;AAAA,IAET,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,WAAW,OAAO,OAAA;AAAA,QAC3B,EAAE,OAAO,YAAY,OAAO,MAAA;AAAA,QAC5B,EAAE,OAAO,YAAY,OAAO,MAAA;AAAA,QAC5B,EAAE,OAAO,YAAY,OAAO,SAAA;AAAA,QAC5B,EAAE,OAAO,YAAY,OAAO,OAAA;AAAA,QAC5B,EAAE,OAAO,WAAW,OAAO,QAAA;AAAA,MAAQ;AAAA,MAErC,OAAO;AAAA,IAAA;AAAA,IAET,aAAa;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,aAAa;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA;AAAA,IAIT,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,YAAY;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,UAAU;AAAA,MACR,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA;AAAA,IAIT,WAAW;AAAA,MACT,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,WAAW,OAAO,KAAA;AAAA,QAC3B,EAAE,OAAO,SAAS,OAAO,KAAA;AAAA,QACzB,EAAE,OAAO,UAAU,OAAO,KAAA;AAAA,MAAK;AAAA,MAEjC,OAAO;AAAA,IAAA;AAAA,IAET,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,SAAS,OAAO,aAAA;AAAA,QACzB,EAAE,OAAO,cAAc,OAAO,YAAA;AAAA,QAC9B,EAAE,OAAO,qBAAqB,OAAO,mBAAA;AAAA,QACrC,EAAE,OAAO,iBAAiB,OAAO,WAAA;AAAA,QACjC,EAAE,OAAO,UAAU,OAAO,QAAA;AAAA,QAC1B,EAAE,OAAO,eAAe,OAAO,OAAA;AAAA,MAAO;AAAA,MAExC,OAAO;AAAA,IAAA;AAAA,IAET,oBAAoB;AAAA,MAClB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA;AAAA,IAIT,eAAe;AAAA,MACb,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,QAAA;AAAA,QAC1B,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,QAC5B,EAAE,OAAO,SAAS,OAAO,QAAA;AAAA,MAAQ;AAAA,MAEnC,OAAO;AAAA,IAAA;AAAA,IAET,aAAa;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,oBAAoB;AAAA,MAClB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,YAAY;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,WAAW,OAAO,KAAA;AAAA,QAC3B,EAAE,OAAO,SAAS,OAAO,KAAA;AAAA,QACzB,EAAE,OAAO,UAAU,OAAO,KAAA;AAAA,MAAK;AAAA,MAEjC,OAAO;AAAA,IAAA;AAAA,IAET,mBAAmB;AAAA,MACjB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,OAAA;AAAA,QAC1B,EAAE,OAAO,aAAa,OAAO,SAAA;AAAA,QAC7B,EAAE,OAAO,WAAW,OAAO,UAAA;AAAA,QAC3B,EAAE,OAAO,UAAU,OAAO,QAAA;AAAA,QAC1B,EAAE,OAAO,eAAe,OAAO,OAAA;AAAA,QAC/B,EAAE,OAAO,UAAU,OAAO,SAAA;AAAA,QAC1B,EAAE,OAAO,SAAS,OAAO,QAAA;AAAA,MAAQ;AAAA,MAEnC,OAAO;AAAA,IAAA;AAAA,IAET,sBAAsB;AAAA,MACpB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,oBAAoB;AAAA,MAClB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,OAAA;AAAA,QAC1B,EAAE,OAAO,UAAU,OAAO,QAAA;AAAA,QAC1B,EAAE,OAAO,iBAAiB,OAAO,OAAA;AAAA,QACjC,EAAE,OAAO,SAAS,OAAO,SAAA;AAAA,QACzB,EAAE,OAAO,SAAS,OAAO,OAAA;AAAA,QACzB,EAAE,OAAO,cAAc,OAAO,cAAA;AAAA,MAAc;AAAA,MAE9C,OAAO;AAAA,IAAA;AAAA,IAET,qBAAqB;AAAA,MACnB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,UAAU,EAAE,OAAO,sBAAsB,QAAQ,OAAA;AAAA,IAAO;AAAA,EAC1D;AAEJ;AAGAI,EAAkB,SAASN,CAAW;"}
|
|
1
|
+
{"version":3,"file":"navbar.js","sources":["../../../../../src/engine/registry/blocks/sections/navbar.ts"],"sourcesContent":["import { BlockDefinition } from \"../../types\";\nimport { componentRegistry } from \"../../registry\";\nimport {\n navbarVariations,\n navbarVariationIds,\n} from \"../../../presets/navbarVariations\";\n\n/**\n * Valores padrão da Navbar - Use para garantir consistência em templates e factories\n */\nexport const NAVBAR_DEFAULT_PROPS = {\n variation: \"navbar-moderno\",\n links: [\n { text: \"Início\", href: \"/site/p/home\" },\n { text: \"Serviços\", href: \"/site/p/servicos\" },\n { text: \"Produtos\", href: \"/site/p/produtos\" },\n { text: \"Contato\", href: \"/site/p/contato\" },\n ],\n ctaButton: { text: \"Começar\", href: \"/site/p/contato\" },\n sticky: true,\n floating: false,\n layout: \"expanded\",\n borderRadius: 0,\n shadow: \"sm\",\n opacity: 100,\n blurOpacity: 0,\n logoHeight: 70,\n linkFontSize: \"md\",\n buttonVariant: \"solid\",\n buttonBorderRadius: 8,\n // Borda\n borderPosition: \"none\",\n borderWidth: 1,\n borderColor: \"#e5e7eb\",\n // Cores padrão\n bg: \"#ffffff\",\n linkColor: \"#374151\",\n linkHoverColor: \"#2563eb\",\n linkHoverEffect: \"background\",\n linkHoverIntensity: 50,\n buttonColor: \"#2563eb\",\n buttonTextColor: \"#ffffff\",\n buttonSize: \"md\",\n buttonHoverEffect: \"darken\",\n buttonHoverIntensity: 50,\n buttonHoverOverlay: \"none\",\n buttonHoverIconName: \"arrow-right\",\n} as const;\n\nexport const navbarBlock: BlockDefinition = {\n type: \"navbar\",\n name: \"Navbar\",\n description: \"Barra de navegação customizável\",\n category: \"sections\",\n canHaveChildren: false,\n defaultProps: NAVBAR_DEFAULT_PROPS,\n variations: navbarVariationIds.reduce(\n (acc, id) => {\n const v = navbarVariations[id];\n acc[id] = { id: v.id, name: v.name, defaultProps: v.defaultProps };\n return acc;\n },\n {} as Record<\n string,\n { id: string; name: string; defaultProps: Record<string, any> }\n >,\n ),\n inspectorMeta: {\n // === GRUPO: Posicionamento ===\n layout: {\n label: \"Organizacao\",\n inputType: \"select\",\n options: [\n { label: \"Expandido\", value: \"expanded\" },\n { label: \"Centralizado\", value: \"centered\" },\n { label: \"Compacto\", value: \"compact\" },\n ],\n group: \"Posicionamento\",\n },\n sticky: {\n label: \"Fixar no Topo\",\n inputType: \"checkbox\",\n size: \"sm\",\n group: \"Posicionamento\",\n },\n floating: {\n label: \"Menu Flutuante\",\n inputType: \"checkbox\",\n size: \"sm\",\n group: \"Posicionamento\",\n },\n\n // === GRUPO: Aparencia ===\n bg: {\n label: \"Cor de Fundo\",\n inputType: \"color-advanced\",\n group: \"Aparencia\",\n },\n opacity: {\n label: \"Transparencia\",\n inputType: \"slider\",\n min: 0,\n max: 100,\n step: 5,\n group: \"Aparencia\",\n },\n blurOpacity: {\n label: \"Desfoque\",\n inputType: \"slider\",\n min: 0,\n max: 100,\n step: 5,\n group: \"Aparencia\",\n },\n borderRadius: {\n label: \"Cantos\",\n inputType: \"slider\",\n min: 0,\n max: 32,\n step: 2,\n group: \"Aparencia\",\n },\n shadow: {\n label: \"Sombra\",\n inputType: \"select\",\n options: [\n { label: \"Nenhuma\", value: \"none\" },\n { label: \"Pequena\", value: \"sm\" },\n { label: \"Media\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n { label: \"Extra Grande\", value: \"xl\" },\n ],\n group: \"Aparencia\",\n },\n borderPosition: {\n label: \"Borda\",\n inputType: \"select\",\n options: [\n { label: \"Nenhuma\", value: \"none\" },\n { label: \"Completa\", value: \"all\" },\n { label: \"Superior\", value: \"top\" },\n { label: \"Inferior\", value: \"bottom\" },\n { label: \"Esquerda\", value: \"left\" },\n { label: \"Direita\", value: \"right\" },\n ],\n group: \"Aparencia\",\n },\n borderWidth: {\n label: \"Espessura da Borda\",\n inputType: \"slider\",\n min: 1,\n max: 4,\n step: 1,\n group: \"Aparencia\",\n },\n borderColor: {\n label: \"Cor da Borda\",\n inputType: \"color-advanced\",\n group: \"Aparencia\",\n },\n\n // === GRUPO: Logo e Marca ===\n logo: {\n label: \"Logo (Imagem)\",\n inputType: \"image-upload\",\n group: \"Logo e Marca\",\n },\n logoHeight: {\n label: \"Tamanho do Logo\",\n inputType: \"slider\",\n min: 40,\n max: 130,\n step: 5,\n group: \"Logo e Marca\",\n showWhen: { field: \"logo\", truthy: true },\n },\n logoText: {\n label: \"Texto Alternativo\",\n inputType: \"text\",\n group: \"Logo e Marca\",\n },\n\n // === GRUPO: Links ===\n linkColor: {\n label: \"Cor\",\n inputType: \"color-advanced\",\n group: \"Links\",\n },\n linkHoverColor: {\n label: \"Cor (Hover)\",\n inputType: \"color-advanced\",\n group: \"Links\",\n },\n linkFontSize: {\n label: \"Tamanho\",\n inputType: \"select\",\n options: [\n { label: \"Pequeno\", value: \"sm\" },\n { label: \"Medio\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n ],\n group: \"Links\",\n },\n linkHoverEffect: {\n label: \"Efeito Hover\",\n inputType: \"select\",\n options: [\n { label: \"Fundo\", value: \"background\" },\n { label: \"Sublinhado\", value: \"underline\" },\n { label: \"Sublinhado Centro\", value: \"underline-center\" },\n { label: \"Fundo Subindo\", value: \"slide-bg\" },\n { label: \"Escala\", value: \"scale\" },\n { label: \"Brilho Neon\", value: \"glow\" },\n ],\n group: \"Links\",\n },\n linkHoverIntensity: {\n label: \"Intensidade\",\n inputType: \"slider\",\n min: 10,\n max: 100,\n step: 10,\n group: \"Links\",\n },\n\n // === GRUPO: Botao CTA ===\n buttonVariant: {\n label: \"Estilo\",\n inputType: \"select\",\n options: [\n { label: \"Solido\", value: \"solid\" },\n { label: \"Contorno\", value: \"outline\" },\n { label: \"Ghost\", value: \"ghost\" },\n ],\n group: \"Botao CTA\",\n },\n buttonColor: {\n label: \"Cor\",\n inputType: \"color-advanced\",\n group: \"Botao CTA\",\n },\n buttonTextColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Botao CTA\",\n },\n buttonBorderRadius: {\n label: \"Cantos do Botao\",\n inputType: \"slider\",\n min: 0,\n max: 32,\n step: 2,\n group: \"Botao CTA\",\n },\n buttonSize: {\n label: \"Tamanho\",\n inputType: \"select\",\n options: [\n { label: \"Pequeno\", value: \"sm\" },\n { label: \"Medio\", value: \"md\" },\n { label: \"Grande\", value: \"lg\" },\n ],\n group: \"Botao CTA\",\n },\n buttonHoverEffect: {\n label: \"Efeito Hover\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"none\" },\n { label: \"Escurecer\", value: \"darken\" },\n { label: \"Clarear\", value: \"lighten\" },\n { label: \"Escala\", value: \"scale\" },\n { label: \"Brilho Neon\", value: \"glow\" },\n { label: \"Sombra\", value: \"shadow\" },\n { label: \"Pulso\", value: \"pulse\" },\n ],\n group: \"Botao CTA\",\n },\n buttonHoverIntensity: {\n label: \"Intensidade\",\n inputType: \"slider\",\n min: 10,\n max: 100,\n step: 10,\n group: \"Botao CTA\",\n },\n buttonHoverOverlay: {\n label: \"Efeito Extra\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"none\" },\n { label: \"Brilho\", value: \"shine\" },\n { label: \"Preenchimento\", value: \"fill\" },\n { label: \"Salto\", value: \"bounce\" },\n { label: \"Icone\", value: \"icon\" },\n { label: \"Borda Glow\", value: \"border-glow\" },\n ],\n group: \"Botao CTA\",\n },\n buttonHoverIconName: {\n label: \"Icone\",\n inputType: \"icon-grid\",\n group: \"Botao CTA\",\n showWhen: { field: \"buttonHoverOverlay\", equals: \"icon\" },\n },\n },\n};\n\n// Auto-registro\ncomponentRegistry.register(navbarBlock);\n"],"names":["NAVBAR_DEFAULT_PROPS","navbarBlock","navbarVariationIds","acc","id","v","navbarVariations","componentRegistry"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAmB,iBAAiB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAmB,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAgG5D,eAAO,MAAM,iBAAiB,EAAE,iBAA+C,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { logger as f } from "../../utils/logger.js";
|
|
1
2
|
class a {
|
|
2
3
|
definitions = /* @__PURE__ */ new Map();
|
|
3
4
|
register(e) {
|
|
4
|
-
this.definitions.has(e.type) &&
|
|
5
|
+
this.definitions.has(e.type) && f.warn(`Block ${e.type} is already registered. Overwriting...`), this.definitions.set(e.type, e);
|
|
5
6
|
}
|
|
6
7
|
get(e) {
|
|
7
8
|
return this.definitions.get(e);
|
|
@@ -10,31 +11,34 @@ class a {
|
|
|
10
11
|
return Array.from(this.definitions.values());
|
|
11
12
|
}
|
|
12
13
|
getByCategory(e) {
|
|
13
|
-
return this.getAll().filter((
|
|
14
|
+
return this.getAll().filter((n) => n.category === e);
|
|
15
|
+
}
|
|
16
|
+
getByPlugin(e) {
|
|
17
|
+
return this.getAll().filter((n) => n.pluginId === e);
|
|
14
18
|
}
|
|
15
19
|
validate(e) {
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
20
|
+
const n = this.get(e.type);
|
|
21
|
+
if (!n)
|
|
18
22
|
return { valid: !1, errors: [`Block type ${e.type} not found in registry`] };
|
|
19
|
-
const i = [], r =
|
|
23
|
+
const i = [], r = n.constraints;
|
|
20
24
|
if (r) {
|
|
21
|
-
const
|
|
25
|
+
const p = e.props;
|
|
22
26
|
if (r.required)
|
|
23
27
|
for (const t of r.required)
|
|
24
|
-
(!(t in
|
|
28
|
+
(!(t in p) || p[t] === void 0 || p[t] === "") && i.push(`Required property '${t}' is missing or empty`);
|
|
25
29
|
if (r.min)
|
|
26
30
|
for (const [t, o] of Object.entries(r.min)) {
|
|
27
|
-
const s =
|
|
31
|
+
const s = p[t];
|
|
28
32
|
typeof s == "number" && s < o && i.push(`Property '${t}' must be at least ${o}`);
|
|
29
33
|
}
|
|
30
34
|
if (r.max)
|
|
31
35
|
for (const [t, o] of Object.entries(r.max)) {
|
|
32
|
-
const s =
|
|
36
|
+
const s = p[t];
|
|
33
37
|
typeof s == "number" && s > o && i.push(`Property '${t}' must be at most ${o}`);
|
|
34
38
|
}
|
|
35
39
|
if (r.pattern)
|
|
36
40
|
for (const [t, o] of Object.entries(r.pattern)) {
|
|
37
|
-
const s =
|
|
41
|
+
const s = p[t];
|
|
38
42
|
typeof s == "string" && !o.test(s) && i.push(`Property '${t}' does not match required pattern`);
|
|
39
43
|
}
|
|
40
44
|
if (r.custom) {
|
|
@@ -48,8 +52,8 @@ class a {
|
|
|
48
52
|
};
|
|
49
53
|
}
|
|
50
54
|
}
|
|
51
|
-
const
|
|
55
|
+
const g = new a();
|
|
52
56
|
export {
|
|
53
|
-
|
|
57
|
+
g as componentRegistry
|
|
54
58
|
};
|
|
55
59
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sources":["../../../src/engine/registry/registry.ts"],"sourcesContent":["/**\n * Component Registry\n * Registry centralizado de definições de blocos com metadados\n */\n\nimport { Block, BlockType } from '../schema/siteDocument'\nimport { BlockDefinition, ComponentRegistry } from './types'\n\nclass ComponentRegistryImpl implements ComponentRegistry {\n private definitions: Map<BlockType, BlockDefinition> = new Map()\n\n register(definition: BlockDefinition): void {\n if (this.definitions.has(definition.type)) {\n
|
|
1
|
+
{"version":3,"file":"registry.js","sources":["../../../src/engine/registry/registry.ts"],"sourcesContent":["/**\n * Component Registry\n * Registry centralizado de definições de blocos com metadados\n */\n\nimport { Block, BlockType } from '../schema/siteDocument'\nimport { BlockDefinition, ComponentRegistry } from './types'\nimport { logger } from '../../utils/logger'\n\nclass ComponentRegistryImpl implements ComponentRegistry {\n private definitions: Map<BlockType, BlockDefinition> = new Map()\n\n register(definition: BlockDefinition): void {\n if (this.definitions.has(definition.type)) {\n logger.warn(`Block ${definition.type} is already registered. Overwriting...`)\n }\n this.definitions.set(definition.type, definition)\n }\n\n get(type: BlockType): BlockDefinition | undefined {\n return this.definitions.get(type)\n }\n\n getAll(): BlockDefinition[] {\n return Array.from(this.definitions.values())\n }\n\n getByCategory(category: string): BlockDefinition[] {\n return this.getAll().filter((def) => def.category === category)\n }\n\n getByPlugin(pluginId: string): BlockDefinition[] {\n return this.getAll().filter((def) => def.pluginId === pluginId)\n }\n\n validate(block: Block): { valid: boolean; errors: string[] } {\n const definition = this.get(block.type)\n if (!definition) {\n return { valid: false, errors: [`Block type ${block.type} not found in registry`] }\n }\n\n const errors: string[] = []\n const constraints = definition.constraints\n\n if (constraints) {\n const props = block.props as Record<string, any>;\n\n // Validar required\n if (constraints.required) {\n for (const prop of constraints.required) {\n if (!(prop in props) || props[prop] === undefined || props[prop] === '') {\n errors.push(`Required property '${prop}' is missing or empty`)\n }\n }\n }\n\n // Validar min/max\n if (constraints.min) {\n for (const [prop, min] of Object.entries(constraints.min)) {\n const value = props[prop]\n if (typeof value === 'number' && value < min) {\n errors.push(`Property '${prop}' must be at least ${min}`)\n }\n }\n }\n\n if (constraints.max) {\n for (const [prop, max] of Object.entries(constraints.max)) {\n const value = props[prop]\n if (typeof value === 'number' && value > max) {\n errors.push(`Property '${prop}' must be at most ${max}`)\n }\n }\n }\n\n // Validar pattern\n if (constraints.pattern) {\n for (const [prop, pattern] of Object.entries(constraints.pattern)) {\n const value = props[prop]\n if (typeof value === 'string' && !pattern.test(value)) {\n errors.push(`Property '${prop}' does not match required pattern`)\n }\n }\n }\n\n // Validar custom\n if (constraints.custom) {\n const result = constraints.custom(block.props)\n if (result !== true) {\n errors.push(typeof result === 'string' ? result : 'Custom validation failed')\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors,\n }\n }\n}\n\n// Singleton instance\nexport const componentRegistry: ComponentRegistry = new ComponentRegistryImpl()\n"],"names":["ComponentRegistryImpl","definition","logger","type","category","def","pluginId","block","errors","constraints","props","prop","min","value","max","pattern","result","componentRegistry"],"mappings":";AASA,MAAMA,EAAmD;AAAA,EAC/C,kCAAmD,IAAA;AAAA,EAE3D,SAASC,GAAmC;AAC1C,IAAI,KAAK,YAAY,IAAIA,EAAW,IAAI,KACtCC,EAAO,KAAK,SAASD,EAAW,IAAI,wCAAwC,GAE9E,KAAK,YAAY,IAAIA,EAAW,MAAMA,CAAU;AAAA,EAClD;AAAA,EAEA,IAAIE,GAA8C;AAChD,WAAO,KAAK,YAAY,IAAIA,CAAI;AAAA,EAClC;AAAA,EAEA,SAA4B;AAC1B,WAAO,MAAM,KAAK,KAAK,YAAY,QAAQ;AAAA,EAC7C;AAAA,EAEA,cAAcC,GAAqC;AACjD,WAAO,KAAK,SAAS,OAAO,CAACC,MAAQA,EAAI,aAAaD,CAAQ;AAAA,EAChE;AAAA,EAEA,YAAYE,GAAqC;AAC/C,WAAO,KAAK,SAAS,OAAO,CAACD,MAAQA,EAAI,aAAaC,CAAQ;AAAA,EAChE;AAAA,EAEA,SAASC,GAAoD;AAC3D,UAAMN,IAAa,KAAK,IAAIM,EAAM,IAAI;AACtC,QAAI,CAACN;AACH,aAAO,EAAE,OAAO,IAAO,QAAQ,CAAC,cAAcM,EAAM,IAAI,wBAAwB,EAAA;AAGlF,UAAMC,IAAmB,CAAA,GACnBC,IAAcR,EAAW;AAE/B,QAAIQ,GAAa;AACf,YAAMC,IAAQH,EAAM;AAGpB,UAAIE,EAAY;AACd,mBAAWE,KAAQF,EAAY;AAC7B,WAAI,EAAEE,KAAQD,MAAUA,EAAMC,CAAI,MAAM,UAAaD,EAAMC,CAAI,MAAM,OACnEH,EAAO,KAAK,sBAAsBG,CAAI,uBAAuB;AAMnE,UAAIF,EAAY;AACd,mBAAW,CAACE,GAAMC,CAAG,KAAK,OAAO,QAAQH,EAAY,GAAG,GAAG;AACzD,gBAAMI,IAAQH,EAAMC,CAAI;AACxB,UAAI,OAAOE,KAAU,YAAYA,IAAQD,KACvCJ,EAAO,KAAK,aAAaG,CAAI,sBAAsBC,CAAG,EAAE;AAAA,QAE5D;AAGF,UAAIH,EAAY;AACd,mBAAW,CAACE,GAAMG,CAAG,KAAK,OAAO,QAAQL,EAAY,GAAG,GAAG;AACzD,gBAAMI,IAAQH,EAAMC,CAAI;AACxB,UAAI,OAAOE,KAAU,YAAYA,IAAQC,KACvCN,EAAO,KAAK,aAAaG,CAAI,qBAAqBG,CAAG,EAAE;AAAA,QAE3D;AAIF,UAAIL,EAAY;AACd,mBAAW,CAACE,GAAMI,CAAO,KAAK,OAAO,QAAQN,EAAY,OAAO,GAAG;AACjE,gBAAMI,IAAQH,EAAMC,CAAI;AACxB,UAAI,OAAOE,KAAU,YAAY,CAACE,EAAQ,KAAKF,CAAK,KAClDL,EAAO,KAAK,aAAaG,CAAI,mCAAmC;AAAA,QAEpE;AAIF,UAAIF,EAAY,QAAQ;AACtB,cAAMO,IAASP,EAAY,OAAOF,EAAM,KAAK;AAC7C,QAAIS,MAAW,MACbR,EAAO,KAAK,OAAOQ,KAAW,WAAWA,IAAS,0BAA0B;AAAA,MAEhF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,OAAOR,EAAO,WAAW;AAAA,MACzB,QAAAA;AAAA,IAAA;AAAA,EAEJ;AACF;AAGO,MAAMS,IAAuC,IAAIjB,EAAA;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Block, BlockType, BlockPropsFor } from '../schema/siteDocument';
|
|
2
|
+
import { ShowWhenCondition } from '../shared/showWhen';
|
|
2
3
|
/**
|
|
3
4
|
* Metadata for property panel (como exibir no editor)
|
|
4
5
|
*/
|
|
@@ -6,7 +7,7 @@ export interface InspectorMeta {
|
|
|
6
7
|
label: string;
|
|
7
8
|
description?: string;
|
|
8
9
|
group?: string;
|
|
9
|
-
inputType?: "text" | "number" | "color" | "color-advanced" | "select" | "slider" | "textarea" | "image" | "image-upload" | "checkbox" | "icon-grid" | "image-grid" | "typography";
|
|
10
|
+
inputType?: "text" | "number" | "color" | "color-advanced" | "select" | "slider" | "textarea" | "image" | "image-upload" | "checkbox" | "icon-grid" | "image-grid" | "typography" | "carousel-images";
|
|
10
11
|
options?: Array<{
|
|
11
12
|
label: string;
|
|
12
13
|
value: any;
|
|
@@ -17,11 +18,11 @@ export interface InspectorMeta {
|
|
|
17
18
|
/** Tamanho do input (para checkbox/toggle) */
|
|
18
19
|
size?: "sm" | "md";
|
|
19
20
|
/** Condição para exibir o campo (visibilidade condicional) */
|
|
20
|
-
showWhen?:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
showWhen?: ShowWhenCondition;
|
|
22
|
+
/** Campo somente leitura (exibido mas não editável) */
|
|
23
|
+
readOnly?: boolean;
|
|
24
|
+
/** Campo desabilitado (cinza, não interativo) */
|
|
25
|
+
disabled?: boolean;
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
27
28
|
* Constraint - Regras de validação
|
|
@@ -68,6 +69,8 @@ export interface BlockDefinition<T extends BlockType = BlockType> {
|
|
|
68
69
|
inspectorMeta?: Record<string, InspectorMeta>;
|
|
69
70
|
canHaveChildren?: boolean;
|
|
70
71
|
defaultChildren?: Block[];
|
|
72
|
+
/** Plugin que contribuiu este bloco (blocos nativos não têm) */
|
|
73
|
+
pluginId?: string;
|
|
71
74
|
}
|
|
72
75
|
/**
|
|
73
76
|
* Component Registry Interface
|
|
@@ -77,6 +80,7 @@ export interface ComponentRegistry {
|
|
|
77
80
|
get(type: BlockType): BlockDefinition | undefined;
|
|
78
81
|
getAll(): BlockDefinition[];
|
|
79
82
|
getByCategory(category: string): BlockDefinition[];
|
|
83
|
+
getByPlugin(pluginId: string): BlockDefinition[];
|
|
80
84
|
validate(block: Block): {
|
|
81
85
|
valid: boolean;
|
|
82
86
|
errors: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogPostCardRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/BlogPostCardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAoN9D"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { jsxs as t, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
function T(s) {
|
|
3
|
+
const {
|
|
4
|
+
title: a,
|
|
5
|
+
excerpt: d,
|
|
6
|
+
image: m,
|
|
7
|
+
date: n,
|
|
8
|
+
category: c,
|
|
9
|
+
authorName: i,
|
|
10
|
+
authorAvatar: h,
|
|
11
|
+
readingTime: l,
|
|
12
|
+
linkHref: o,
|
|
13
|
+
linkText: g = "Ler mais",
|
|
14
|
+
variant: p = "default",
|
|
15
|
+
showImage: v = !0,
|
|
16
|
+
showCategory: x = !0,
|
|
17
|
+
showDate: f = !0,
|
|
18
|
+
showAuthor: u = !0,
|
|
19
|
+
showReadingTime: y = !0
|
|
20
|
+
} = s.props, r = p === "horizontal";
|
|
21
|
+
return /* @__PURE__ */ t(
|
|
22
|
+
"article",
|
|
23
|
+
{
|
|
24
|
+
style: {
|
|
25
|
+
backgroundColor: "var(--sg-surface)",
|
|
26
|
+
borderRadius: "var(--sg-card-radius)",
|
|
27
|
+
boxShadow: "var(--sg-card-shadow)",
|
|
28
|
+
overflow: "hidden",
|
|
29
|
+
display: r ? "flex" : "block"
|
|
30
|
+
},
|
|
31
|
+
children: [
|
|
32
|
+
v && !(p === "minimal") && m ? /* @__PURE__ */ e(
|
|
33
|
+
"div",
|
|
34
|
+
{
|
|
35
|
+
style: {
|
|
36
|
+
width: r ? "40%" : "100%",
|
|
37
|
+
height: r ? "100%" : "200px",
|
|
38
|
+
minHeight: r ? "200px" : void 0,
|
|
39
|
+
flexShrink: 0,
|
|
40
|
+
overflow: "hidden",
|
|
41
|
+
borderRadius: r ? "var(--sg-card-radius) 0 0 var(--sg-card-radius)" : "var(--sg-card-radius) var(--sg-card-radius) 0 0"
|
|
42
|
+
},
|
|
43
|
+
children: /* @__PURE__ */ e(
|
|
44
|
+
"img",
|
|
45
|
+
{
|
|
46
|
+
src: m,
|
|
47
|
+
alt: a,
|
|
48
|
+
style: {
|
|
49
|
+
width: "100%",
|
|
50
|
+
height: "100%",
|
|
51
|
+
objectFit: "cover",
|
|
52
|
+
display: "block"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
) : null,
|
|
58
|
+
/* @__PURE__ */ t(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
style: {
|
|
62
|
+
padding: "1.5rem",
|
|
63
|
+
display: "flex",
|
|
64
|
+
flexDirection: "column",
|
|
65
|
+
flex: 1
|
|
66
|
+
},
|
|
67
|
+
children: [
|
|
68
|
+
x && c && /* @__PURE__ */ e(
|
|
69
|
+
"span",
|
|
70
|
+
{
|
|
71
|
+
style: {
|
|
72
|
+
display: "inline-block",
|
|
73
|
+
fontSize: "0.75rem",
|
|
74
|
+
fontWeight: 600,
|
|
75
|
+
color: "var(--sg-primary)",
|
|
76
|
+
textTransform: "uppercase",
|
|
77
|
+
letterSpacing: "0.05em",
|
|
78
|
+
marginBottom: "0.5rem"
|
|
79
|
+
},
|
|
80
|
+
children: c
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
/* @__PURE__ */ e(
|
|
84
|
+
"h3",
|
|
85
|
+
{
|
|
86
|
+
style: {
|
|
87
|
+
fontSize: "1.25rem",
|
|
88
|
+
fontWeight: 600,
|
|
89
|
+
marginBottom: "0.5rem",
|
|
90
|
+
lineHeight: 1.3
|
|
91
|
+
},
|
|
92
|
+
children: o ? /* @__PURE__ */ e(
|
|
93
|
+
"a",
|
|
94
|
+
{
|
|
95
|
+
href: o,
|
|
96
|
+
style: {
|
|
97
|
+
color: "inherit",
|
|
98
|
+
textDecoration: "none"
|
|
99
|
+
},
|
|
100
|
+
children: a
|
|
101
|
+
}
|
|
102
|
+
) : a
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
d && /* @__PURE__ */ e(
|
|
106
|
+
"p",
|
|
107
|
+
{
|
|
108
|
+
style: {
|
|
109
|
+
color: "var(--sg-muted-text)",
|
|
110
|
+
fontSize: "0.9375rem",
|
|
111
|
+
lineHeight: 1.6,
|
|
112
|
+
marginBottom: "1rem",
|
|
113
|
+
flex: 1
|
|
114
|
+
},
|
|
115
|
+
children: d
|
|
116
|
+
}
|
|
117
|
+
),
|
|
118
|
+
/* @__PURE__ */ t(
|
|
119
|
+
"div",
|
|
120
|
+
{
|
|
121
|
+
style: {
|
|
122
|
+
display: "flex",
|
|
123
|
+
alignItems: "center",
|
|
124
|
+
gap: "0.75rem",
|
|
125
|
+
marginTop: "auto",
|
|
126
|
+
flexWrap: "wrap"
|
|
127
|
+
},
|
|
128
|
+
children: [
|
|
129
|
+
u && i && /* @__PURE__ */ t("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
|
|
130
|
+
h && /* @__PURE__ */ e(
|
|
131
|
+
"img",
|
|
132
|
+
{
|
|
133
|
+
src: h,
|
|
134
|
+
alt: i,
|
|
135
|
+
style: {
|
|
136
|
+
width: "1.75rem",
|
|
137
|
+
height: "1.75rem",
|
|
138
|
+
borderRadius: "50%",
|
|
139
|
+
objectFit: "cover"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
),
|
|
143
|
+
/* @__PURE__ */ e("span", { style: { fontSize: "0.875rem", fontWeight: 500 }, children: i })
|
|
144
|
+
] }),
|
|
145
|
+
u && i && (f && n || y && l) && /* @__PURE__ */ e("span", { style: { color: "var(--sg-muted-text)", fontSize: "0.75rem" }, children: "·" }),
|
|
146
|
+
f && n && /* @__PURE__ */ e(
|
|
147
|
+
"span",
|
|
148
|
+
{
|
|
149
|
+
style: {
|
|
150
|
+
color: "var(--sg-muted-text)",
|
|
151
|
+
fontSize: "0.8125rem"
|
|
152
|
+
},
|
|
153
|
+
children: n
|
|
154
|
+
}
|
|
155
|
+
),
|
|
156
|
+
y && l && /* @__PURE__ */ e(
|
|
157
|
+
"span",
|
|
158
|
+
{
|
|
159
|
+
style: {
|
|
160
|
+
color: "var(--sg-muted-text)",
|
|
161
|
+
fontSize: "0.8125rem"
|
|
162
|
+
},
|
|
163
|
+
children: l
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
),
|
|
169
|
+
o && g && /* @__PURE__ */ t(
|
|
170
|
+
"a",
|
|
171
|
+
{
|
|
172
|
+
href: o,
|
|
173
|
+
style: {
|
|
174
|
+
display: "inline-block",
|
|
175
|
+
marginTop: "1rem",
|
|
176
|
+
color: "var(--sg-primary)",
|
|
177
|
+
fontWeight: 500,
|
|
178
|
+
fontSize: "0.875rem",
|
|
179
|
+
textDecoration: "none"
|
|
180
|
+
},
|
|
181
|
+
children: [
|
|
182
|
+
g,
|
|
183
|
+
" ",
|
|
184
|
+
"→"
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
)
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
)
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
s.id
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
export {
|
|
197
|
+
T as renderBlogPostCard
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=BlogPostCardRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogPostCardRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/BlogPostCardRenderer.tsx"],"sourcesContent":["/**\n * BlogPostCard Renderer\n * Renderiza card individual de post de blog\n * Variantes: default (vertical), horizontal (imagem esquerda), minimal (sem imagem)\n */\n\nimport React from \"react\";\n\nexport function renderBlogPostCard(block: any): React.ReactNode {\n const {\n title,\n excerpt,\n image,\n date,\n category,\n authorName,\n authorAvatar,\n readingTime,\n linkHref,\n linkText = \"Ler mais\",\n variant = \"default\",\n showImage = true,\n showCategory = true,\n showDate = true,\n showAuthor = true,\n showReadingTime = true,\n } = block.props;\n\n const isHorizontal = variant === \"horizontal\";\n const isMinimal = variant === \"minimal\";\n const shouldShowImage = showImage && !isMinimal && image;\n\n const imageElement = shouldShowImage ? (\n <div\n style={{\n width: isHorizontal ? \"40%\" : \"100%\",\n height: isHorizontal ? \"100%\" : \"200px\",\n minHeight: isHorizontal ? \"200px\" : undefined,\n flexShrink: 0,\n overflow: \"hidden\",\n borderRadius: isHorizontal\n ? \"var(--sg-card-radius) 0 0 var(--sg-card-radius)\"\n : \"var(--sg-card-radius) var(--sg-card-radius) 0 0\",\n }}\n >\n <img\n src={image}\n alt={title}\n style={{\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n display: \"block\",\n }}\n />\n </div>\n ) : null;\n\n const contentElement = (\n <div\n style={{\n padding: \"1.5rem\",\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n }}\n >\n {/* Category badge */}\n {showCategory && category && (\n <span\n style={{\n display: \"inline-block\",\n fontSize: \"0.75rem\",\n fontWeight: 600,\n color: \"var(--sg-primary)\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.05em\",\n marginBottom: \"0.5rem\",\n }}\n >\n {category}\n </span>\n )}\n\n {/* Title */}\n <h3\n style={{\n fontSize: \"1.25rem\",\n fontWeight: 600,\n marginBottom: \"0.5rem\",\n lineHeight: 1.3,\n }}\n >\n {linkHref ? (\n <a\n href={linkHref}\n style={{\n color: \"inherit\",\n textDecoration: \"none\",\n }}\n >\n {title}\n </a>\n ) : (\n title\n )}\n </h3>\n\n {/* Excerpt */}\n {excerpt && (\n <p\n style={{\n color: \"var(--sg-muted-text)\",\n fontSize: \"0.9375rem\",\n lineHeight: 1.6,\n marginBottom: \"1rem\",\n flex: 1,\n }}\n >\n {excerpt}\n </p>\n )}\n\n {/* Meta row: author + date + reading time */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.75rem\",\n marginTop: \"auto\",\n flexWrap: \"wrap\",\n }}\n >\n {/* Author */}\n {showAuthor && authorName && (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"0.5rem\" }}>\n {authorAvatar && (\n <img\n src={authorAvatar}\n alt={authorName}\n style={{\n width: \"1.75rem\",\n height: \"1.75rem\",\n borderRadius: \"50%\",\n objectFit: \"cover\",\n }}\n />\n )}\n <span style={{ fontSize: \"0.875rem\", fontWeight: 500 }}>\n {authorName}\n </span>\n </div>\n )}\n\n {/* Separator dot if author + date/readingTime */}\n {showAuthor && authorName && ((showDate && date) || (showReadingTime && readingTime)) && (\n <span style={{ color: \"var(--sg-muted-text)\", fontSize: \"0.75rem\" }}>\n {\"\\u00B7\"}\n </span>\n )}\n\n {/* Date */}\n {showDate && date && (\n <span\n style={{\n color: \"var(--sg-muted-text)\",\n fontSize: \"0.8125rem\",\n }}\n >\n {date}\n </span>\n )}\n\n {/* Reading time */}\n {showReadingTime && readingTime && (\n <span\n style={{\n color: \"var(--sg-muted-text)\",\n fontSize: \"0.8125rem\",\n }}\n >\n {readingTime}\n </span>\n )}\n </div>\n\n {/* Read more link */}\n {linkHref && linkText && (\n <a\n href={linkHref}\n style={{\n display: \"inline-block\",\n marginTop: \"1rem\",\n color: \"var(--sg-primary)\",\n fontWeight: 500,\n fontSize: \"0.875rem\",\n textDecoration: \"none\",\n }}\n >\n {linkText} {\"\\u2192\"}\n </a>\n )}\n </div>\n );\n\n return (\n <article\n key={block.id}\n style={{\n backgroundColor: \"var(--sg-surface)\",\n borderRadius: \"var(--sg-card-radius)\",\n boxShadow: \"var(--sg-card-shadow)\",\n overflow: \"hidden\",\n display: isHorizontal ? \"flex\" : \"block\",\n }}\n >\n {imageElement}\n {contentElement}\n </article>\n );\n}\n"],"names":["renderBlogPostCard","block","title","excerpt","image","date","category","authorName","authorAvatar","readingTime","linkHref","linkText","variant","showImage","showCategory","showDate","showAuthor","showReadingTime","isHorizontal","jsxs","jsx"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogPostDetailRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/BlogPostDetailRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAwB1B,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAqQhE"}
|