@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
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { Block, BlockType, SiteDocument } from '../schema/siteDocument';
|
|
2
|
+
import { BlockDefinition } from '../registry/types';
|
|
3
|
+
/**
|
|
4
|
+
* Campo de um schema de dados de plugin
|
|
5
|
+
*/
|
|
6
|
+
export interface DataSchemaField {
|
|
7
|
+
name: string;
|
|
8
|
+
type: "string" | "number" | "boolean" | "date" | "richtext" | "image" | "url" | "array" | "object";
|
|
9
|
+
required?: boolean;
|
|
10
|
+
label?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Schema dos dados que o plugin gerencia (ex.: Product, BlogPost)
|
|
15
|
+
*/
|
|
16
|
+
export interface DataSchema {
|
|
17
|
+
type: string;
|
|
18
|
+
label: string;
|
|
19
|
+
fields: DataSchemaField[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parâmetros para busca de lista de conteúdo
|
|
23
|
+
*/
|
|
24
|
+
export interface ContentListParams {
|
|
25
|
+
page?: number;
|
|
26
|
+
limit?: number;
|
|
27
|
+
sort?: string;
|
|
28
|
+
filter?: Record<string, unknown>;
|
|
29
|
+
tenantId?: string;
|
|
30
|
+
projectId?: string;
|
|
31
|
+
ownerId?: string;
|
|
32
|
+
ownerType?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Item de conteúdo retornado pelo ContentProvider
|
|
36
|
+
*/
|
|
37
|
+
export interface ContentItem {
|
|
38
|
+
id: string;
|
|
39
|
+
type: string;
|
|
40
|
+
slug?: string;
|
|
41
|
+
data: Record<string, unknown>;
|
|
42
|
+
metadata?: {
|
|
43
|
+
createdAt: string;
|
|
44
|
+
updatedAt: string;
|
|
45
|
+
publishedAt?: string;
|
|
46
|
+
status: "draft" | "published" | "archived";
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resultado paginado de uma busca de lista
|
|
51
|
+
*/
|
|
52
|
+
export interface ContentListResult {
|
|
53
|
+
items: ContentItem[];
|
|
54
|
+
total: number;
|
|
55
|
+
page: number;
|
|
56
|
+
limit: number;
|
|
57
|
+
hasMore: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Interface para buscar dados dinâmicos de um plugin
|
|
61
|
+
* Implementada pelo consumer project (ex.: SmartGesti-Ensino)
|
|
62
|
+
*/
|
|
63
|
+
export interface ContentProvider {
|
|
64
|
+
type: string;
|
|
65
|
+
/** Busca lista de itens (listagem) */
|
|
66
|
+
fetchList(params: ContentListParams): Promise<ContentListResult>;
|
|
67
|
+
/** Busca item único por ID ou slug */
|
|
68
|
+
fetchById(idOrSlug: string): Promise<ContentItem | null>;
|
|
69
|
+
/** Retorna o schema dos dados */
|
|
70
|
+
getSchema(): DataSchema;
|
|
71
|
+
/** Transforma um ContentItem em props de bloco */
|
|
72
|
+
toBlockProps(item: ContentItem): Record<string, unknown>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Data source configuration para uma página dinâmica
|
|
76
|
+
*/
|
|
77
|
+
export interface PageDataSource {
|
|
78
|
+
/** Nome do content provider (ex.: "blog-posts", "products") */
|
|
79
|
+
provider: string;
|
|
80
|
+
/** Modo de busca */
|
|
81
|
+
mode: "single" | "list";
|
|
82
|
+
/** Mapeamento de parâmetros da URL para filtros (ex.: { slug: ":slug" }) */
|
|
83
|
+
paramMapping?: Record<string, string>;
|
|
84
|
+
/** Parâmetros padrão para a busca */
|
|
85
|
+
defaultParams?: Record<string, unknown>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Restrições de edição para uma página de plugin
|
|
89
|
+
*/
|
|
90
|
+
export interface PageEditRestrictions {
|
|
91
|
+
/** Estrutura de blocos não pode ser alterada */
|
|
92
|
+
lockedStructure?: boolean;
|
|
93
|
+
/** Apenas estes campos podem ser editados pelo usuário */
|
|
94
|
+
editableFields?: string[];
|
|
95
|
+
/** Página não pode ser removida */
|
|
96
|
+
nonRemovable?: boolean;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Template de página fornecido por um plugin
|
|
100
|
+
*/
|
|
101
|
+
export interface PageTemplate {
|
|
102
|
+
id: string;
|
|
103
|
+
name: string;
|
|
104
|
+
/** Slug da página (pode conter parâmetros dinâmicos: "blog/:slug") */
|
|
105
|
+
slug: string;
|
|
106
|
+
pluginId: string;
|
|
107
|
+
/** Estrutura de blocos da página */
|
|
108
|
+
structure: Block[];
|
|
109
|
+
/** Configuração de dados dinâmicos */
|
|
110
|
+
dataSource?: PageDataSource;
|
|
111
|
+
/** Restrições de edição */
|
|
112
|
+
editRestrictions?: PageEditRestrictions;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Restrição de edição aplicada pelo plugin no editor
|
|
116
|
+
*/
|
|
117
|
+
export interface EditorRestriction {
|
|
118
|
+
/** Campos que não podem ser editados (vêm do backend) */
|
|
119
|
+
lockedFields?: string[];
|
|
120
|
+
/** Campos que podem ser editados (whitelist) */
|
|
121
|
+
editableFields?: string[];
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Manifest de um plugin — define tudo que o plugin oferece
|
|
125
|
+
*/
|
|
126
|
+
export interface PluginManifest {
|
|
127
|
+
id: string;
|
|
128
|
+
version: string;
|
|
129
|
+
name: string;
|
|
130
|
+
description: string;
|
|
131
|
+
icon?: string;
|
|
132
|
+
/** Capacidades do plugin */
|
|
133
|
+
capabilities: {
|
|
134
|
+
/** BlockTypes que este plugin adiciona */
|
|
135
|
+
blocks: BlockType[];
|
|
136
|
+
/** Templates de página dinâmica */
|
|
137
|
+
pageTemplates: PageTemplate[];
|
|
138
|
+
/** Schemas de dados que o plugin gerencia */
|
|
139
|
+
dataSchemas: DataSchema[];
|
|
140
|
+
/** Content providers necessários */
|
|
141
|
+
contentProviders: string[];
|
|
142
|
+
};
|
|
143
|
+
/** Restrições de edição impostas pelo plugin */
|
|
144
|
+
restrictions?: {
|
|
145
|
+
/** Campos locked por tipo de bloco */
|
|
146
|
+
lockedFields?: Record<string, string[]>;
|
|
147
|
+
/** Páginas que não podem ser removidas */
|
|
148
|
+
requiredPages?: string[];
|
|
149
|
+
/** Blocos obrigatórios por página */
|
|
150
|
+
requiredBlocks?: Record<string, string[]>;
|
|
151
|
+
};
|
|
152
|
+
/** Plugins dos quais este depende */
|
|
153
|
+
dependencies?: string[];
|
|
154
|
+
/** Configurações padrão do plugin */
|
|
155
|
+
defaultConfig?: Record<string, unknown>;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Registro completo de um plugin (manifest + hooks)
|
|
159
|
+
*/
|
|
160
|
+
export interface PluginRegistration {
|
|
161
|
+
manifest: PluginManifest;
|
|
162
|
+
/** Chamado quando o plugin é ativado num documento */
|
|
163
|
+
onActivate?: (document: SiteDocument) => SiteDocument;
|
|
164
|
+
/** Chamado quando o plugin é desativado num documento */
|
|
165
|
+
onDeactivate?: (document: SiteDocument) => SiteDocument;
|
|
166
|
+
/** Retorna restrições de edição para um tipo de bloco */
|
|
167
|
+
getEditorRestrictions?: (blockType: BlockType) => EditorRestriction | undefined;
|
|
168
|
+
/** Retorna definições de blocos do plugin */
|
|
169
|
+
getBlockDefinitions?: () => BlockDefinition[];
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Configuração de plugins dentro de um SiteDocument
|
|
173
|
+
*/
|
|
174
|
+
export interface SitePluginsConfig {
|
|
175
|
+
/** IDs dos plugins ativos */
|
|
176
|
+
active: string[];
|
|
177
|
+
/** Configurações por plugin */
|
|
178
|
+
config?: Record<string, Record<string, unknown>>;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/plugins/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { HeroVariationId } from '../schema/siteDocument';
|
|
2
2
|
/** URL de imagem placeholder que funciona no editor e no site (sem depender de /site-images/) */
|
|
3
3
|
export declare const PLACEHOLDER_IMAGE_URL = "https://placehold.co/1200x800/e2e8f0/64748b?text=Imagem+Hero";
|
|
4
|
+
/** Imagens placeholder para o carrossel de hero */
|
|
5
|
+
export declare const CAROUSEL_PLACEHOLDER_IMAGES: string[];
|
|
4
6
|
export declare const HERO_IMAGE_NAMES: readonly ["20221121_00_ensino_ciencias_molecula.jpg", "escolaweb-capas-artigos-5-maneiras-de-engajar-os-alunos-nas-atividades-escolares-1.jpg", "metodo-tradicional-de-ensino-do-Brasil.jpg", "niveis-e-modalidades-de-ensino-da-Educacao-Basica-scaled.jpg"];
|
|
5
7
|
export interface HeroVariationPreset {
|
|
6
8
|
id: HeroVariationId;
|
|
@@ -47,6 +49,9 @@ export interface HeroVariationPreset {
|
|
|
47
49
|
secondaryButtonRadius?: number;
|
|
48
50
|
showWave?: boolean;
|
|
49
51
|
waveColor?: string;
|
|
52
|
+
carouselImages?: string[];
|
|
53
|
+
carouselInterval?: number;
|
|
54
|
+
carouselTransition?: "crossfade" | "slide";
|
|
50
55
|
};
|
|
51
56
|
}
|
|
52
57
|
export declare const heroVariations: Record<HeroVariationId, HeroVariationPreset>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heroVariations.d.ts","sourceRoot":"","sources":["../../../src/engine/presets/heroVariations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,iEAC8B,CAAC;AAEjE,eAAO,MAAM,gBAAgB,+PAKnB,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,eAAe,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE;QACZ,SAAS,EAAE,eAAe,CAAC;QAC3B,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;QACxD,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,eAAe,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAClD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACpC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACjD,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAEjC,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChC,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;QACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;QACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAE/B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"heroVariations.d.ts","sourceRoot":"","sources":["../../../src/engine/presets/heroVariations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,iEAC8B,CAAC;AAEjE,mDAAmD;AACnD,eAAO,MAAM,2BAA2B,UAIvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,+PAKnB,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,eAAe,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE;QACZ,SAAS,EAAE,eAAe,CAAC;QAC3B,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;QACxD,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,eAAe,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAClD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACpC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACjD,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAEjC,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChC,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;QACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;QACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAE/B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;KAC5C,CAAC;CACH;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAiPvE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAQ7C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,eAAe,GAAG,mBAAmB,CAEzE"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
const e = "https://placehold.co/1200x800/e2e8f0/64748b?text=Imagem+Hero", t = [
|
|
2
|
+
"https://placehold.co/1920x1080/1e3a5f/ffffff?text=Slide+1",
|
|
3
|
+
"https://placehold.co/1920x1080/2d5016/ffffff?text=Slide+2",
|
|
4
|
+
"https://placehold.co/1920x1080/5a1a2e/ffffff?text=Slide+3"
|
|
5
|
+
], r = [
|
|
2
6
|
"20221121_00_ensino_ciencias_molecula.jpg",
|
|
3
7
|
"escolaweb-capas-artigos-5-maneiras-de-engajar-os-alunos-nas-atividades-escolares-1.jpg",
|
|
4
8
|
"metodo-tradicional-de-ensino-do-Brasil.jpg",
|
|
@@ -193,23 +197,63 @@ const e = "https://placehold.co/1200x800/e2e8f0/64748b?text=Imagem+Hero", t = [
|
|
|
193
197
|
imageRadius: 0,
|
|
194
198
|
imageShadow: "none"
|
|
195
199
|
}
|
|
200
|
+
},
|
|
201
|
+
// ============================================================================
|
|
202
|
+
// HERO CAROUSEL - Carrossel de imagens de fundo com crossfade
|
|
203
|
+
// ============================================================================
|
|
204
|
+
"hero-carousel": {
|
|
205
|
+
id: "hero-carousel",
|
|
206
|
+
name: "Carrossel",
|
|
207
|
+
defaultProps: {
|
|
208
|
+
variation: "hero-carousel",
|
|
209
|
+
variant: "image-bg",
|
|
210
|
+
title: "Descubra novas possibilidades",
|
|
211
|
+
subtitle: "Uma jornada de aprendizado envolvente",
|
|
212
|
+
description: "Explore nossos programas e descubra como podemos ajudar você a alcançar seus objetivos educacionais.",
|
|
213
|
+
primaryButton: { text: "Explorar cursos", href: "#courses" },
|
|
214
|
+
secondaryButton: { text: "Saiba mais", href: "#about" },
|
|
215
|
+
overlay: !0,
|
|
216
|
+
overlayColor: "linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.7) 100%)",
|
|
217
|
+
align: "center",
|
|
218
|
+
minHeight: "90vh",
|
|
219
|
+
titleColor: "#ffffff",
|
|
220
|
+
subtitleColor: "#f3f4f6",
|
|
221
|
+
descriptionColor: "#e5e7eb",
|
|
222
|
+
contentMaxWidth: "800px",
|
|
223
|
+
primaryButtonVariant: "solid",
|
|
224
|
+
primaryButtonRadius: 8,
|
|
225
|
+
secondaryButtonVariant: "outline",
|
|
226
|
+
secondaryButtonColor: "#ffffff",
|
|
227
|
+
secondaryButtonTextColor: "#ffffff",
|
|
228
|
+
secondaryButtonRadius: 8,
|
|
229
|
+
// Carousel
|
|
230
|
+
carouselImages: [
|
|
231
|
+
"https://placehold.co/1920x1080/1e3a5f/ffffff?text=Slide+1",
|
|
232
|
+
"https://placehold.co/1920x1080/2d5016/ffffff?text=Slide+2",
|
|
233
|
+
"https://placehold.co/1920x1080/5a1a2e/ffffff?text=Slide+3"
|
|
234
|
+
],
|
|
235
|
+
carouselInterval: 5,
|
|
236
|
+
carouselTransition: "crossfade"
|
|
237
|
+
}
|
|
196
238
|
}
|
|
197
|
-
},
|
|
239
|
+
}, i = [
|
|
198
240
|
"hero-split",
|
|
199
241
|
"hero-parallax",
|
|
200
242
|
"hero-overlay",
|
|
201
243
|
"hero-gradient",
|
|
202
244
|
"hero-minimal",
|
|
203
|
-
"hero-card"
|
|
245
|
+
"hero-card",
|
|
246
|
+
"hero-carousel"
|
|
204
247
|
];
|
|
205
|
-
function
|
|
248
|
+
function n(a) {
|
|
206
249
|
return o[a];
|
|
207
250
|
}
|
|
208
251
|
export {
|
|
209
|
-
t as
|
|
252
|
+
t as CAROUSEL_PLACEHOLDER_IMAGES,
|
|
253
|
+
r as HERO_IMAGE_NAMES,
|
|
210
254
|
e as PLACEHOLDER_IMAGE_URL,
|
|
211
|
-
|
|
212
|
-
|
|
255
|
+
n as getHeroVariation,
|
|
256
|
+
i as heroVariationIds,
|
|
213
257
|
o as heroVariations
|
|
214
258
|
};
|
|
215
259
|
//# sourceMappingURL=heroVariations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heroVariations.js","sources":["../../../src/engine/presets/heroVariations.ts"],"sourcesContent":["/**\n * Presets de variações do bloco Hero\n * Imagens padrão são placeholders visíveis; o usuário pode trocar por upload ou URL.\n */\n\nimport type { HeroVariationId } from \"../schema/siteDocument\";\n\n/** URL de imagem placeholder que funciona no editor e no site (sem depender de /site-images/) */\nexport const PLACEHOLDER_IMAGE_URL =\n \"https://placehold.co/1200x800/e2e8f0/64748b?text=Imagem+Hero\";\n\nexport const HERO_IMAGE_NAMES = [\n \"20221121_00_ensino_ciencias_molecula.jpg\",\n \"escolaweb-capas-artigos-5-maneiras-de-engajar-os-alunos-nas-atividades-escolares-1.jpg\",\n \"metodo-tradicional-de-ensino-do-Brasil.jpg\",\n \"niveis-e-modalidades-de-ensino-da-Educacao-Basica-scaled.jpg\",\n] as const;\n\nexport interface HeroVariationPreset {\n id: HeroVariationId;\n name: string;\n defaultProps: {\n variation: HeroVariationId;\n variant: \"centered\" | \"split\" | \"image-bg\" | \"video-bg\";\n title: string;\n subtitle?: string;\n description?: string;\n primaryButton?: { text: string; href?: string };\n secondaryButton?: { text: string; href?: string };\n image?: string;\n badge?: string;\n align?: \"left\" | \"center\" | \"right\";\n minHeight?: string;\n overlay?: boolean;\n overlayColor?: string;\n background?: string;\n // Typography\n titleColor?: string;\n subtitleColor?: string;\n descriptionColor?: string;\n // Badge\n badgeColor?: string;\n badgeTextColor?: string;\n // Layout\n contentMaxWidth?: string;\n paddingY?: string;\n // Image\n imageRadius?: number;\n imageShadow?: \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n imagePosition?: \"left\" | \"right\";\n // Buttons\n buttonSize?: \"sm\" | \"md\" | \"lg\";\n primaryButtonVariant?: \"solid\" | \"outline\" | \"ghost\";\n primaryButtonColor?: string;\n primaryButtonTextColor?: string;\n primaryButtonRadius?: number;\n secondaryButtonVariant?: \"solid\" | \"outline\" | \"ghost\";\n secondaryButtonColor?: string;\n secondaryButtonTextColor?: string;\n secondaryButtonRadius?: number;\n // Decorative\n showWave?: boolean;\n waveColor?: string;\n };\n}\n\nexport const heroVariations: Record<HeroVariationId, HeroVariationPreset> = {\n // ============================================================================\n // HERO SPLIT - Layout dividido (conteúdo + imagem)\n // ============================================================================\n \"hero-split\": {\n id: \"hero-split\",\n name: \"Dividido\",\n defaultProps: {\n variation: \"hero-split\",\n variant: \"split\",\n title: \"Educação que transforma\",\n subtitle: \"Metodologias ativas e suporte dedicado\",\n description:\n \"Conteúdo alinhado à Base Nacional Comum Curricular, com foco em competências e habilidades para o mundo atual.\",\n primaryButton: { text: \"Conhecer cursos\", href: \"#courses\" },\n secondaryButton: { text: \"Fale conosco\", href: \"#contact\" },\n align: \"left\",\n minHeight: \"600px\",\n imageRadius: 16,\n imageShadow: \"lg\",\n imagePosition: \"right\",\n primaryButtonVariant: \"solid\",\n secondaryButtonVariant: \"outline\",\n primaryButtonRadius: 8,\n secondaryButtonRadius: 8,\n },\n },\n\n // ============================================================================\n // HERO PARALLAX - Efeito de parallax com imagem fixa\n // ============================================================================\n \"hero-parallax\": {\n id: \"hero-parallax\",\n name: \"Parallax\",\n defaultProps: {\n variation: \"hero-parallax\",\n variant: \"image-bg\",\n title: \"Ensino de qualidade para todos\",\n subtitle: \"Do tradicional ao contemporâneo\",\n description:\n \"Integramos as melhores práticas pedagógicas para formar cidadãos críticos e criativos.\",\n primaryButton: { text: \"Saiba mais\", href: \"#about\" },\n secondaryButton: { text: \"Matricule-se\", href: \"#enroll\" },\n overlay: true,\n overlayColor: \"linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 100%)\",\n align: \"center\",\n minHeight: \"85vh\",\n titleColor: \"#ffffff\",\n subtitleColor: \"#f3f4f6\",\n descriptionColor: \"#e5e7eb\",\n primaryButtonVariant: \"solid\",\n secondaryButtonVariant: \"outline\",\n secondaryButtonColor: \"#ffffff\",\n secondaryButtonTextColor: \"#ffffff\",\n primaryButtonRadius: 8,\n secondaryButtonRadius: 8,\n },\n },\n\n // ============================================================================\n // HERO OVERLAY - Fullscreen com overlay escuro\n // ============================================================================\n \"hero-overlay\": {\n id: \"hero-overlay\",\n name: \"Fullscreen\",\n defaultProps: {\n variation: \"hero-overlay\",\n variant: \"image-bg\",\n title: \"Engaje seus alunos nas atividades escolares\",\n subtitle: \"5 maneiras comprovadas de aumentar a participação\",\n badge: \"Destaque\",\n primaryButton: { text: \"Ver artigos\", href: \"#blog\" },\n secondaryButton: { text: \"Aula grátis\", href: \"#trial\" },\n overlay: true,\n overlayColor: \"linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.8) 100%)\",\n align: \"center\",\n minHeight: \"100vh\",\n titleColor: \"#ffffff\",\n subtitleColor: \"#f3f4f6\",\n descriptionColor: \"#d1d5db\",\n badgeColor: \"#3b82f6\",\n badgeTextColor: \"#ffffff\",\n primaryButtonVariant: \"solid\",\n secondaryButtonVariant: \"ghost\",\n secondaryButtonTextColor: \"#ffffff\",\n primaryButtonRadius: 50,\n secondaryButtonRadius: 50,\n },\n },\n\n // ============================================================================\n // HERO GRADIENT - Fundo gradiente vibrante (SEM imagem)\n // ============================================================================\n \"hero-gradient\": {\n id: \"hero-gradient\",\n name: \"Gradiente\",\n defaultProps: {\n variation: \"hero-gradient\",\n variant: \"centered\",\n title: \"Transforme o futuro da educação\",\n subtitle: \"Plataforma completa para gestão escolar\",\n description:\n \"Simplifique processos, engaje alunos e pais, e tenha controle total da sua instituição com nossa solução integrada.\",\n primaryButton: { text: \"Começar grátis\", href: \"#trial\" },\n secondaryButton: { text: \"Ver demonstração\", href: \"#demo\" },\n badge: \"Novo\",\n align: \"center\",\n minHeight: \"90vh\",\n // Gradiente vibrante azul/roxo\n background: \"linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%)\",\n titleColor: \"#ffffff\",\n subtitleColor: \"#f3f4f6\",\n descriptionColor: \"#e5e7eb\",\n badgeColor: \"rgba(255,255,255,0.2)\",\n badgeTextColor: \"#ffffff\",\n contentMaxWidth: \"800px\",\n // Botões brancos/transparentes para contraste\n primaryButtonVariant: \"solid\",\n primaryButtonColor: \"#ffffff\",\n primaryButtonTextColor: \"#667eea\",\n primaryButtonRadius: 50,\n secondaryButtonVariant: \"outline\",\n secondaryButtonColor: \"#ffffff\",\n secondaryButtonTextColor: \"#ffffff\",\n secondaryButtonRadius: 50,\n // Onda decorativa\n showWave: true,\n waveColor: \"rgba(255,255,255,0.1)\",\n },\n },\n\n // ============================================================================\n // HERO MINIMAL - Design limpo e minimalista\n // ============================================================================\n \"hero-minimal\": {\n id: \"hero-minimal\",\n name: \"Minimal\",\n defaultProps: {\n variation: \"hero-minimal\",\n variant: \"centered\",\n title: \"Educação simplificada\",\n subtitle: \"Menos complexidade, mais aprendizado\",\n description:\n \"Uma abordagem moderna e direta para o ensino de qualidade. Foco no que realmente importa.\",\n primaryButton: { text: \"Explorar\", href: \"#explore\" },\n align: \"center\",\n minHeight: \"70vh\",\n background: \"#fafafa\",\n titleColor: \"#111827\",\n subtitleColor: \"#4b5563\",\n descriptionColor: \"#6b7280\",\n contentMaxWidth: \"700px\",\n paddingY: \"120px\",\n // Botão único, estilo minimalista\n primaryButtonVariant: \"solid\",\n primaryButtonColor: \"#111827\",\n primaryButtonTextColor: \"#ffffff\",\n primaryButtonRadius: 4,\n buttonSize: \"lg\",\n },\n },\n\n // ============================================================================\n // HERO CARD - Conteúdo em card flutuante sobre imagem\n // ============================================================================\n \"hero-card\": {\n id: \"hero-card\",\n name: \"Card\",\n defaultProps: {\n variation: \"hero-card\",\n variant: \"image-bg\",\n title: \"Aprenda com os melhores\",\n subtitle: \"Professores qualificados e conteúdo atualizado\",\n description:\n \"Nossa equipe de educadores está pronta para guiar você em uma jornada de conhecimento transformadora.\",\n primaryButton: { text: \"Matricule-se\", href: \"#enroll\" },\n secondaryButton: { text: \"Conheça o time\", href: \"#team\" },\n badge: \"Matrículas Abertas\",\n overlay: true,\n overlayColor: \"rgba(0,0,0,0.3)\",\n align: \"left\",\n minHeight: \"70vh\",\n paddingY: \"6rem\",\n // Card styling (cores do card)\n background: \"#ffffff\",\n titleColor: \"#111827\",\n subtitleColor: \"#374151\",\n descriptionColor: \"#6b7280\",\n badgeColor: \"#10b981\",\n badgeTextColor: \"#ffffff\",\n contentMaxWidth: \"450px\",\n // Botões dentro do card\n primaryButtonVariant: \"solid\",\n primaryButtonRadius: 8,\n secondaryButtonVariant: \"ghost\",\n secondaryButtonRadius: 8,\n // Imagem\n imageRadius: 0,\n imageShadow: \"none\",\n },\n },\n};\n\nexport const heroVariationIds: HeroVariationId[] = [\n \"hero-split\",\n \"hero-parallax\",\n \"hero-overlay\",\n \"hero-gradient\",\n \"hero-minimal\",\n \"hero-card\",\n];\n\nexport function getHeroVariation(id: HeroVariationId): HeroVariationPreset {\n return heroVariations[id];\n}\n"],"names":["PLACEHOLDER_IMAGE_URL","HERO_IMAGE_NAMES","heroVariations","heroVariationIds","getHeroVariation","id"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heroVariations.js","sources":["../../../src/engine/presets/heroVariations.ts"],"sourcesContent":["/**\n * Presets de variações do bloco Hero\n * Imagens padrão são placeholders visíveis; o usuário pode trocar por upload ou URL.\n */\n\nimport type { HeroVariationId } from \"../schema/siteDocument\";\n\n/** URL de imagem placeholder que funciona no editor e no site (sem depender de /site-images/) */\nexport const PLACEHOLDER_IMAGE_URL =\n \"https://placehold.co/1200x800/e2e8f0/64748b?text=Imagem+Hero\";\n\n/** Imagens placeholder para o carrossel de hero */\nexport const CAROUSEL_PLACEHOLDER_IMAGES = [\n \"https://placehold.co/1920x1080/1e3a5f/ffffff?text=Slide+1\",\n \"https://placehold.co/1920x1080/2d5016/ffffff?text=Slide+2\",\n \"https://placehold.co/1920x1080/5a1a2e/ffffff?text=Slide+3\",\n];\n\nexport const HERO_IMAGE_NAMES = [\n \"20221121_00_ensino_ciencias_molecula.jpg\",\n \"escolaweb-capas-artigos-5-maneiras-de-engajar-os-alunos-nas-atividades-escolares-1.jpg\",\n \"metodo-tradicional-de-ensino-do-Brasil.jpg\",\n \"niveis-e-modalidades-de-ensino-da-Educacao-Basica-scaled.jpg\",\n] as const;\n\nexport interface HeroVariationPreset {\n id: HeroVariationId;\n name: string;\n defaultProps: {\n variation: HeroVariationId;\n variant: \"centered\" | \"split\" | \"image-bg\" | \"video-bg\";\n title: string;\n subtitle?: string;\n description?: string;\n primaryButton?: { text: string; href?: string };\n secondaryButton?: { text: string; href?: string };\n image?: string;\n badge?: string;\n align?: \"left\" | \"center\" | \"right\";\n minHeight?: string;\n overlay?: boolean;\n overlayColor?: string;\n background?: string;\n // Typography\n titleColor?: string;\n subtitleColor?: string;\n descriptionColor?: string;\n // Badge\n badgeColor?: string;\n badgeTextColor?: string;\n // Layout\n contentMaxWidth?: string;\n paddingY?: string;\n // Image\n imageRadius?: number;\n imageShadow?: \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n imagePosition?: \"left\" | \"right\";\n // Buttons\n buttonSize?: \"sm\" | \"md\" | \"lg\";\n primaryButtonVariant?: \"solid\" | \"outline\" | \"ghost\";\n primaryButtonColor?: string;\n primaryButtonTextColor?: string;\n primaryButtonRadius?: number;\n secondaryButtonVariant?: \"solid\" | \"outline\" | \"ghost\";\n secondaryButtonColor?: string;\n secondaryButtonTextColor?: string;\n secondaryButtonRadius?: number;\n // Decorative\n showWave?: boolean;\n waveColor?: string;\n // Carousel\n carouselImages?: string[];\n carouselInterval?: number;\n carouselTransition?: \"crossfade\" | \"slide\";\n };\n}\n\nexport const heroVariations: Record<HeroVariationId, HeroVariationPreset> = {\n // ============================================================================\n // HERO SPLIT - Layout dividido (conteúdo + imagem)\n // ============================================================================\n \"hero-split\": {\n id: \"hero-split\",\n name: \"Dividido\",\n defaultProps: {\n variation: \"hero-split\",\n variant: \"split\",\n title: \"Educação que transforma\",\n subtitle: \"Metodologias ativas e suporte dedicado\",\n description:\n \"Conteúdo alinhado à Base Nacional Comum Curricular, com foco em competências e habilidades para o mundo atual.\",\n primaryButton: { text: \"Conhecer cursos\", href: \"#courses\" },\n secondaryButton: { text: \"Fale conosco\", href: \"#contact\" },\n align: \"left\",\n minHeight: \"600px\",\n imageRadius: 16,\n imageShadow: \"lg\",\n imagePosition: \"right\",\n primaryButtonVariant: \"solid\",\n secondaryButtonVariant: \"outline\",\n primaryButtonRadius: 8,\n secondaryButtonRadius: 8,\n },\n },\n\n // ============================================================================\n // HERO PARALLAX - Efeito de parallax com imagem fixa\n // ============================================================================\n \"hero-parallax\": {\n id: \"hero-parallax\",\n name: \"Parallax\",\n defaultProps: {\n variation: \"hero-parallax\",\n variant: \"image-bg\",\n title: \"Ensino de qualidade para todos\",\n subtitle: \"Do tradicional ao contemporâneo\",\n description:\n \"Integramos as melhores práticas pedagógicas para formar cidadãos críticos e criativos.\",\n primaryButton: { text: \"Saiba mais\", href: \"#about\" },\n secondaryButton: { text: \"Matricule-se\", href: \"#enroll\" },\n overlay: true,\n overlayColor: \"linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 100%)\",\n align: \"center\",\n minHeight: \"85vh\",\n titleColor: \"#ffffff\",\n subtitleColor: \"#f3f4f6\",\n descriptionColor: \"#e5e7eb\",\n primaryButtonVariant: \"solid\",\n secondaryButtonVariant: \"outline\",\n secondaryButtonColor: \"#ffffff\",\n secondaryButtonTextColor: \"#ffffff\",\n primaryButtonRadius: 8,\n secondaryButtonRadius: 8,\n },\n },\n\n // ============================================================================\n // HERO OVERLAY - Fullscreen com overlay escuro\n // ============================================================================\n \"hero-overlay\": {\n id: \"hero-overlay\",\n name: \"Fullscreen\",\n defaultProps: {\n variation: \"hero-overlay\",\n variant: \"image-bg\",\n title: \"Engaje seus alunos nas atividades escolares\",\n subtitle: \"5 maneiras comprovadas de aumentar a participação\",\n badge: \"Destaque\",\n primaryButton: { text: \"Ver artigos\", href: \"#blog\" },\n secondaryButton: { text: \"Aula grátis\", href: \"#trial\" },\n overlay: true,\n overlayColor: \"linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.8) 100%)\",\n align: \"center\",\n minHeight: \"100vh\",\n titleColor: \"#ffffff\",\n subtitleColor: \"#f3f4f6\",\n descriptionColor: \"#d1d5db\",\n badgeColor: \"#3b82f6\",\n badgeTextColor: \"#ffffff\",\n primaryButtonVariant: \"solid\",\n secondaryButtonVariant: \"ghost\",\n secondaryButtonTextColor: \"#ffffff\",\n primaryButtonRadius: 50,\n secondaryButtonRadius: 50,\n },\n },\n\n // ============================================================================\n // HERO GRADIENT - Fundo gradiente vibrante (SEM imagem)\n // ============================================================================\n \"hero-gradient\": {\n id: \"hero-gradient\",\n name: \"Gradiente\",\n defaultProps: {\n variation: \"hero-gradient\",\n variant: \"centered\",\n title: \"Transforme o futuro da educação\",\n subtitle: \"Plataforma completa para gestão escolar\",\n description:\n \"Simplifique processos, engaje alunos e pais, e tenha controle total da sua instituição com nossa solução integrada.\",\n primaryButton: { text: \"Começar grátis\", href: \"#trial\" },\n secondaryButton: { text: \"Ver demonstração\", href: \"#demo\" },\n badge: \"Novo\",\n align: \"center\",\n minHeight: \"90vh\",\n // Gradiente vibrante azul/roxo\n background: \"linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%)\",\n titleColor: \"#ffffff\",\n subtitleColor: \"#f3f4f6\",\n descriptionColor: \"#e5e7eb\",\n badgeColor: \"rgba(255,255,255,0.2)\",\n badgeTextColor: \"#ffffff\",\n contentMaxWidth: \"800px\",\n // Botões brancos/transparentes para contraste\n primaryButtonVariant: \"solid\",\n primaryButtonColor: \"#ffffff\",\n primaryButtonTextColor: \"#667eea\",\n primaryButtonRadius: 50,\n secondaryButtonVariant: \"outline\",\n secondaryButtonColor: \"#ffffff\",\n secondaryButtonTextColor: \"#ffffff\",\n secondaryButtonRadius: 50,\n // Onda decorativa\n showWave: true,\n waveColor: \"rgba(255,255,255,0.1)\",\n },\n },\n\n // ============================================================================\n // HERO MINIMAL - Design limpo e minimalista\n // ============================================================================\n \"hero-minimal\": {\n id: \"hero-minimal\",\n name: \"Minimal\",\n defaultProps: {\n variation: \"hero-minimal\",\n variant: \"centered\",\n title: \"Educação simplificada\",\n subtitle: \"Menos complexidade, mais aprendizado\",\n description:\n \"Uma abordagem moderna e direta para o ensino de qualidade. Foco no que realmente importa.\",\n primaryButton: { text: \"Explorar\", href: \"#explore\" },\n align: \"center\",\n minHeight: \"70vh\",\n background: \"#fafafa\",\n titleColor: \"#111827\",\n subtitleColor: \"#4b5563\",\n descriptionColor: \"#6b7280\",\n contentMaxWidth: \"700px\",\n paddingY: \"120px\",\n // Botão único, estilo minimalista\n primaryButtonVariant: \"solid\",\n primaryButtonColor: \"#111827\",\n primaryButtonTextColor: \"#ffffff\",\n primaryButtonRadius: 4,\n buttonSize: \"lg\",\n },\n },\n\n // ============================================================================\n // HERO CARD - Conteúdo em card flutuante sobre imagem\n // ============================================================================\n \"hero-card\": {\n id: \"hero-card\",\n name: \"Card\",\n defaultProps: {\n variation: \"hero-card\",\n variant: \"image-bg\",\n title: \"Aprenda com os melhores\",\n subtitle: \"Professores qualificados e conteúdo atualizado\",\n description:\n \"Nossa equipe de educadores está pronta para guiar você em uma jornada de conhecimento transformadora.\",\n primaryButton: { text: \"Matricule-se\", href: \"#enroll\" },\n secondaryButton: { text: \"Conheça o time\", href: \"#team\" },\n badge: \"Matrículas Abertas\",\n overlay: true,\n overlayColor: \"rgba(0,0,0,0.3)\",\n align: \"left\",\n minHeight: \"70vh\",\n paddingY: \"6rem\",\n // Card styling (cores do card)\n background: \"#ffffff\",\n titleColor: \"#111827\",\n subtitleColor: \"#374151\",\n descriptionColor: \"#6b7280\",\n badgeColor: \"#10b981\",\n badgeTextColor: \"#ffffff\",\n contentMaxWidth: \"450px\",\n // Botões dentro do card\n primaryButtonVariant: \"solid\",\n primaryButtonRadius: 8,\n secondaryButtonVariant: \"ghost\",\n secondaryButtonRadius: 8,\n // Imagem\n imageRadius: 0,\n imageShadow: \"none\",\n },\n },\n\n // ============================================================================\n // HERO CAROUSEL - Carrossel de imagens de fundo com crossfade\n // ============================================================================\n \"hero-carousel\": {\n id: \"hero-carousel\",\n name: \"Carrossel\",\n defaultProps: {\n variation: \"hero-carousel\",\n variant: \"image-bg\",\n title: \"Descubra novas possibilidades\",\n subtitle: \"Uma jornada de aprendizado envolvente\",\n description:\n \"Explore nossos programas e descubra como podemos ajudar você a alcançar seus objetivos educacionais.\",\n primaryButton: { text: \"Explorar cursos\", href: \"#courses\" },\n secondaryButton: { text: \"Saiba mais\", href: \"#about\" },\n overlay: true,\n overlayColor: \"linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.7) 100%)\",\n align: \"center\",\n minHeight: \"90vh\",\n titleColor: \"#ffffff\",\n subtitleColor: \"#f3f4f6\",\n descriptionColor: \"#e5e7eb\",\n contentMaxWidth: \"800px\",\n primaryButtonVariant: \"solid\",\n primaryButtonRadius: 8,\n secondaryButtonVariant: \"outline\",\n secondaryButtonColor: \"#ffffff\",\n secondaryButtonTextColor: \"#ffffff\",\n secondaryButtonRadius: 8,\n // Carousel\n carouselImages: [\n \"https://placehold.co/1920x1080/1e3a5f/ffffff?text=Slide+1\",\n \"https://placehold.co/1920x1080/2d5016/ffffff?text=Slide+2\",\n \"https://placehold.co/1920x1080/5a1a2e/ffffff?text=Slide+3\",\n ],\n carouselInterval: 5,\n carouselTransition: \"crossfade\",\n },\n },\n};\n\nexport const heroVariationIds: HeroVariationId[] = [\n \"hero-split\",\n \"hero-parallax\",\n \"hero-overlay\",\n \"hero-gradient\",\n \"hero-minimal\",\n \"hero-card\",\n \"hero-carousel\",\n];\n\nexport function getHeroVariation(id: HeroVariationId): HeroVariationPreset {\n return heroVariations[id];\n}\n"],"names":["PLACEHOLDER_IMAGE_URL","CAROUSEL_PLACEHOLDER_IMAGES","HERO_IMAGE_NAMES","heroVariations","heroVariationIds","getHeroVariation","id"],"mappings":"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"}
|
|
@@ -5,11 +5,15 @@ export interface PreviewProps {
|
|
|
5
5
|
pageId?: string;
|
|
6
6
|
className?: string;
|
|
7
7
|
style?: React.CSSProperties;
|
|
8
|
-
onBlockClick?: (blockId: string) => void;
|
|
8
|
+
onBlockClick?: (blockId: string, group?: string) => void;
|
|
9
9
|
selectedBlockId?: string | null;
|
|
10
|
+
/** Exibe hover e label de seleção nos blocos do preview */
|
|
11
|
+
showSelectionOverlay?: boolean;
|
|
12
|
+
/** Grupo focado para indicador visual no preview */
|
|
13
|
+
focusedGroup?: string | null;
|
|
10
14
|
}
|
|
11
15
|
/**
|
|
12
16
|
* Componente de preview usando iframe isolado
|
|
13
17
|
*/
|
|
14
|
-
export declare function Preview({ document, pageId, className, style, onBlockClick, selectedBlockId, }: PreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function Preview({ document, pageId, className, style, onBlockClick, selectedBlockId, showSelectionOverlay, focusedGroup, }: PreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
15
19
|
//# sourceMappingURL=Preview.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Preview.d.ts","sourceRoot":"","sources":["../../../src/engine/preview/Preview.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,YAAY,EAAS,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"Preview.d.ts","sourceRoot":"","sources":["../../../src/engine/preview/Preview.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,YAAY,EAAS,MAAM,wBAAwB,CAAC;AAO7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAwDD;;GAEG;AACH,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,YAAY,EACZ,eAAe,EACf,oBAA4B,EAC5B,YAAmB,GACpB,EAAE,YAAY,2CAokBd"}
|