@brunoalz/smartgesti-site-editor 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/editor/BlockSelector.js +4 -2
  2. package/dist/editor/BlockSelector.js.map +1 -1
  3. package/dist/engine/export/exportHtml.d.ts +5 -1
  4. package/dist/engine/export/exportHtml.d.ts.map +1 -1
  5. package/dist/engine/export/exportHtml.js +69 -51
  6. package/dist/engine/export/exportHtml.js.map +1 -1
  7. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts +2 -0
  8. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -1
  9. package/dist/engine/export/exporters/sections/BlogPostExporters.js +137 -80
  10. package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -1
  11. package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
  12. package/dist/engine/export/exporters/sections/index.js +40 -38
  13. package/dist/engine/export/exporters/sections/index.js.map +1 -1
  14. package/dist/engine/index.js +97 -95
  15. package/dist/engine/index.js.map +1 -1
  16. package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -1
  17. package/dist/engine/plugins/builtin/blog/manifest.js +103 -53
  18. package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -1
  19. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts.map +1 -1
  20. package/dist/engine/plugins/builtin/blog/mockContentProvider.js +13 -9
  21. package/dist/engine/plugins/builtin/blog/mockContentProvider.js.map +1 -1
  22. package/dist/engine/plugins/contentHydration.d.ts.map +1 -1
  23. package/dist/engine/plugins/contentHydration.js +119 -79
  24. package/dist/engine/plugins/contentHydration.js.map +1 -1
  25. package/dist/engine/plugins/types.d.ts +5 -0
  26. package/dist/engine/plugins/types.d.ts.map +1 -1
  27. package/dist/engine/registry/blocks/sections/blogCategoryFilter.d.ts +3 -0
  28. package/dist/engine/registry/blocks/sections/blogCategoryFilter.d.ts.map +1 -0
  29. package/dist/engine/registry/blocks/sections/blogCategoryFilter.js +53 -0
  30. package/dist/engine/registry/blocks/sections/blogCategoryFilter.js.map +1 -0
  31. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts.map +1 -1
  32. package/dist/engine/registry/blocks/sections/blogPostDetail.js +4 -1
  33. package/dist/engine/registry/blocks/sections/blogPostDetail.js.map +1 -1
  34. package/dist/engine/registry/blocks/sections/blogPostGrid.js +4 -4
  35. package/dist/engine/registry/blocks/sections/blogPostGrid.js.map +1 -1
  36. package/dist/engine/registry/blocks/sections/blogSearchBar.d.ts +3 -0
  37. package/dist/engine/registry/blocks/sections/blogSearchBar.d.ts.map +1 -0
  38. package/dist/engine/registry/blocks/sections/blogSearchBar.js +56 -0
  39. package/dist/engine/registry/blocks/sections/blogSearchBar.js.map +1 -0
  40. package/dist/engine/registry/blocks/sections/index.d.ts +2 -0
  41. package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
  42. package/dist/engine/render/renderers/sections/BlogCategoryFilterRenderer.d.ts +3 -0
  43. package/dist/engine/render/renderers/sections/BlogCategoryFilterRenderer.d.ts.map +1 -0
  44. package/dist/engine/render/renderers/sections/BlogCategoryFilterRenderer.js +213 -0
  45. package/dist/engine/render/renderers/sections/BlogCategoryFilterRenderer.js.map +1 -0
  46. package/dist/engine/render/renderers/sections/BlogSearchBarRenderer.d.ts +3 -0
  47. package/dist/engine/render/renderers/sections/BlogSearchBarRenderer.d.ts.map +1 -0
  48. package/dist/engine/render/renderers/sections/BlogSearchBarRenderer.js +138 -0
  49. package/dist/engine/render/renderers/sections/BlogSearchBarRenderer.js.map +1 -0
  50. package/dist/engine/render/renderers/sections/index.js +28 -24
  51. package/dist/engine/render/renderers/sections/index.js.map +1 -1
  52. package/dist/engine/schema/siteDocument.d.ts +66 -2
  53. package/dist/engine/schema/siteDocument.d.ts.map +1 -1
  54. package/dist/engine/schema/siteDocument.js.map +1 -1
  55. package/dist/hooks/useNavbarAutoSync.d.ts.map +1 -1
  56. package/dist/hooks/useNavbarAutoSync.js +27 -15
  57. package/dist/hooks/useNavbarAutoSync.js.map +1 -1
  58. package/dist/index.d.ts +1 -1
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +108 -106
  61. package/dist/index.js.map +1 -1
  62. package/dist/utils/blockIcons.d.ts.map +1 -1
  63. package/dist/utils/blockIcons.js +2 -0
  64. package/dist/utils/blockIcons.js.map +1 -1
  65. package/dist/utils/navbarSync.d.ts +3 -1
  66. package/dist/utils/navbarSync.d.ts.map +1 -1
  67. package/dist/utils/navbarSync.js +3 -3
  68. package/dist/utils/navbarSync.js.map +1 -1
  69. package/dist/viewer/LandingPageViewer.d.ts +7 -2
  70. package/dist/viewer/LandingPageViewer.d.ts.map +1 -1
  71. package/dist/viewer/LandingPageViewer.js +106 -92
  72. package/dist/viewer/LandingPageViewer.js.map +1 -1
  73. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { LandingPageEditor as $, LandingPageEditor as ee } from "./editor/LandingPageEditor.js";
2
- import { LandingPageViewer as te, LandingPageViewer as oe } from "./viewer/LandingPageViewer.js";
1
+ import { LandingPageEditor as re, LandingPageEditor as te } from "./editor/LandingPageEditor.js";
2
+ import { LandingPageViewer as ae, LandingPageViewer as ie } from "./viewer/LandingPageViewer.js";
3
3
  import "./engine/registry/blocks/layout/container.js";
4
4
  import "./engine/registry/blocks/layout/stack.js";
5
5
  import "./engine/registry/blocks/layout/grid.js";
@@ -44,6 +44,8 @@ import "./engine/registry/blocks/sections/categoryCardGrid.js";
44
44
  import "./engine/registry/blocks/sections/blogPostCard.js";
45
45
  import "./engine/registry/blocks/sections/blogPostGrid.js";
46
46
  import "./engine/registry/blocks/sections/blogPostDetail.js";
47
+ import "./engine/registry/blocks/sections/blogCategoryFilter.js";
48
+ import "./engine/registry/blocks/sections/blogSearchBar.js";
47
49
  import "./engine/registry/blocks/sections/productShowcase.js";
48
50
  import "./engine/registry/blocks/sections/aboutSection.js";
49
51
  import "./engine/registry/blocks/sections/contactSection.js";
@@ -51,110 +53,110 @@ import "./engine/registry/blocks/forms/form.js";
51
53
  import "./engine/registry/blocks/forms/input.js";
52
54
  import "./engine/registry/blocks/forms/textarea.js";
53
55
  import "./engine/registry/blocks/forms/select.js";
54
- import { componentRegistry as ie, componentRegistry as me } from "./engine/registry/registry.js";
55
- import { createEmptySiteDocument as ne, createEmptySiteDocument as se } from "./engine/schema/siteDocument.js";
56
- import { corporateThemeTokens as le, darkThemeTokens as ce, defaultComponentTokens as de, defaultEffectTokens as Pe, defaultLayoutTokens as fe, defaultThemeTokens as he, generateThemeCSSVariables as xe, gradientDirectionMap as Se, gradientThemeTokens as Te, playfulThemeTokens as ye, radiusScaleMap as ue, shadowScaleMap as Ve, spacingScaleMap as ke } from "./engine/schema/themeTokens.js";
57
- import { RenderNode as Le } from "./engine/render/renderNode.js";
58
- import { RenderPage as Me, renderPage as Re } from "./engine/render/renderPage.js";
59
- import { clearHtmlCache as ve, exportBlockToHtml as He, exportDocumentToHtml as Ae, exportPageToHtml as De, generateAssetsManifest as we } from "./engine/export/exportHtml.js";
60
- import { isSafeUrl as _e, sanitizeHtml as Ie } from "./engine/export/sanitizeHtml.js";
61
- import { Preview as Be, Preview as Ge } from "./engine/preview/Preview.js";
62
- import { applyPatch as je, createAddPatch as We, createCopyPatch as ze, createMovePatch as Fe, createRemovePatch as Ke, createReplacePatch as qe } from "./engine/patch/applyPatch.js";
63
- import { HistoryManager as Qe, createHistoryManager as Xe } from "./engine/patch/history.js";
64
- import { PatchBuilder as Ze } from "./engine/patch/PatchBuilder.js";
65
- import { applyOverrides as er, classicPreset as rr, cleanPreset as tr, corporatePreset as or, getAllPresets as ar, getPreset as ir, glassPreset as mr, minimalPreset as pr, neonPreset as nr, pastelPreset as sr, playfulKidsPreset as gr, themePresets as lr, validateContrast as cr } from "./engine/presets/themePresets.js";
66
- import { CAROUSEL_PLACEHOLDER_IMAGES as Pr, HERO_IMAGE_NAMES as fr, PLACEHOLDER_IMAGE_URL as hr, getHeroVariation as xr, heroVariationIds as Sr, heroVariations as Tr } from "./engine/presets/heroVariations.js";
67
- import { getNavbarVariation as ur, navbarVariationIds as Vr, navbarVariations as kr } from "./engine/presets/navbarVariations.js";
68
- import { generateCompleteLandingPage as Lr, generateModernLandingPage as Cr, generatePatchesForLandingPage as Mr } from "./engine/generators/generateLandingPage.js";
69
- import { evaluateShowWhen as br } from "./engine/shared/showWhen.js";
70
- import { pluginRegistry as Hr } from "./engine/plugins/pluginRegistry.js";
71
- import { hydratePageWithContent as Dr } from "./engine/plugins/contentHydration.js";
72
- import { matchDynamicPage as Or } from "./engine/plugins/dynamicPageResolver.js";
73
- import { blogPlugin as Ir } from "./engine/plugins/builtin/blog/manifest.js";
74
- import { mockBlogContentProvider as Br } from "./engine/plugins/builtin/blog/mockContentProvider.js";
75
- import { createThemeStyle as Ur, generateCSSVariables as jr, generateCSSVariablesObject as Wr, mergeThemeTokens as zr } from "./engine/theme/generateCSSVariables.js";
76
- import { renderBlockNode as Kr } from "./engine/render/renderNodeImpl.js";
77
- import { darkTheme as Jr, defaultTheme as Qr } from "./engine/theme/defaultTheme.js";
56
+ import { componentRegistry as pe, componentRegistry as ne } from "./engine/registry/registry.js";
57
+ import { createEmptySiteDocument as ge, createEmptySiteDocument as le } from "./engine/schema/siteDocument.js";
58
+ import { corporateThemeTokens as de, darkThemeTokens as Pe, defaultComponentTokens as fe, defaultEffectTokens as he, defaultLayoutTokens as xe, defaultThemeTokens as Se, generateThemeCSSVariables as Te, gradientDirectionMap as ye, gradientThemeTokens as ue, playfulThemeTokens as Ve, radiusScaleMap as ke, shadowScaleMap as Ee, spacingScaleMap as Le } from "./engine/schema/themeTokens.js";
59
+ import { RenderNode as Me } from "./engine/render/renderNode.js";
60
+ import { RenderPage as be, renderPage as ve } from "./engine/render/renderPage.js";
61
+ import { clearHtmlCache as Ae, exportBlockToHtml as De, exportDocumentToHtml as we, exportPageToHtml as Oe, generateAssetsManifest as _e } from "./engine/export/exportHtml.js";
62
+ import { isSafeUrl as Ne, sanitizeHtml as Be } from "./engine/export/sanitizeHtml.js";
63
+ import { Preview as Ue, Preview as je } from "./engine/preview/Preview.js";
64
+ import { applyPatch as ze, createAddPatch as Fe, createCopyPatch as Ke, createMovePatch as qe, createRemovePatch as Je, createReplacePatch as Qe } from "./engine/patch/applyPatch.js";
65
+ import { HistoryManager as Ye, createHistoryManager as Ze } from "./engine/patch/history.js";
66
+ import { PatchBuilder as er } from "./engine/patch/PatchBuilder.js";
67
+ import { applyOverrides as tr, classicPreset as or, cleanPreset as ar, corporatePreset as ir, getAllPresets as mr, getPreset as pr, glassPreset as nr, minimalPreset as sr, neonPreset as gr, pastelPreset as lr, playfulKidsPreset as cr, themePresets as dr, validateContrast as Pr } from "./engine/presets/themePresets.js";
68
+ import { CAROUSEL_PLACEHOLDER_IMAGES as hr, HERO_IMAGE_NAMES as xr, PLACEHOLDER_IMAGE_URL as Sr, getHeroVariation as Tr, heroVariationIds as yr, heroVariations as ur } from "./engine/presets/heroVariations.js";
69
+ import { getNavbarVariation as kr, navbarVariationIds as Er, navbarVariations as Lr } from "./engine/presets/navbarVariations.js";
70
+ import { generateCompleteLandingPage as Mr, generateModernLandingPage as Rr, generatePatchesForLandingPage as br } from "./engine/generators/generateLandingPage.js";
71
+ import { evaluateShowWhen as Hr } from "./engine/shared/showWhen.js";
72
+ import { pluginRegistry as Dr } from "./engine/plugins/pluginRegistry.js";
73
+ import { hydratePageWithContent as Or } from "./engine/plugins/contentHydration.js";
74
+ import { matchDynamicPage as Ir } from "./engine/plugins/dynamicPageResolver.js";
75
+ import { blogPlugin as Br } from "./engine/plugins/builtin/blog/manifest.js";
76
+ import { mockBlogContentProvider as Ur } from "./engine/plugins/builtin/blog/mockContentProvider.js";
77
+ import { createThemeStyle as Wr, generateCSSVariables as zr, generateCSSVariablesObject as Fr, mergeThemeTokens as Kr } from "./engine/theme/generateCSSVariables.js";
78
+ import { renderBlockNode as Jr } from "./engine/render/renderNodeImpl.js";
79
+ import { darkTheme as Xr, defaultTheme as Yr } from "./engine/theme/defaultTheme.js";
78
80
  export {
79
- Pr as CAROUSEL_PLACEHOLDER_IMAGES,
80
- fr as HERO_IMAGE_NAMES,
81
- Qe as HistoryManager,
82
- $ as LandingPageEditor,
83
- ee as LandingPageEditorV2,
84
- te as LandingPageViewer,
85
- oe as LandingPageViewerV2,
86
- hr as PLACEHOLDER_IMAGE_URL,
87
- Ze as PatchBuilder,
88
- Be as Preview,
89
- Ge as PreviewV2,
90
- Le as RenderNode,
91
- Me as RenderPage,
92
- er as applyOverrides,
93
- je as applyPatch,
94
- ie as blockRegistry,
95
- Ir as blogPlugin,
96
- rr as classicPreset,
97
- tr as cleanPreset,
98
- ve as clearHtmlCache,
99
- me as componentRegistry,
100
- or as corporatePreset,
101
- le as corporateThemeTokens,
102
- We as createAddPatch,
103
- ze as createCopyPatch,
104
- ne as createEmptySiteDocument,
105
- se as createEmptySiteDocumentV2,
106
- Xe as createHistoryManager,
107
- Fe as createMovePatch,
108
- Ke as createRemovePatch,
109
- qe as createReplacePatch,
110
- Ur as createSiteThemeStyle,
111
- ce as darkThemeTokens,
112
- de as defaultComponentTokens,
113
- Pe as defaultEffectTokens,
114
- fe as defaultLayoutTokens,
115
- he as defaultThemeTokens,
116
- br as evaluateShowWhen,
117
- He as exportBlockToHtml,
118
- Ae as exportDocumentToHtml,
119
- De as exportPageToHtml,
120
- we as generateAssetsManifest,
121
- Lr as generateCompleteLandingPage,
122
- Cr as generateModernLandingPage,
123
- Mr as generatePatchesForLandingPage,
124
- jr as generateSiteCSSVariables,
125
- Wr as generateSiteCSSVariablesObject,
126
- xe as generateThemeCSSVariables,
127
- ar as getAllPresets,
128
- xr as getHeroVariation,
129
- ur as getNavbarVariation,
130
- ir as getPreset,
131
- mr as glassPreset,
132
- Se as gradientDirectionMap,
133
- Te as gradientThemeTokens,
134
- Sr as heroVariationIds,
135
- Tr as heroVariations,
136
- Dr as hydratePageWithContent,
137
- _e as isSafeUrl,
138
- Or as matchDynamicPage,
139
- zr as mergeSiteThemeTokens,
140
- pr as minimalPreset,
141
- Br as mockBlogContentProvider,
142
- Vr as navbarVariationIds,
143
- kr as navbarVariations,
144
- nr as neonPreset,
145
- sr as pastelPreset,
146
- gr as playfulKidsPreset,
147
- ye as playfulThemeTokens,
148
- Hr as pluginRegistry,
149
- ue as radiusScaleMap,
150
- Kr as renderNode,
151
- Re as renderPage,
152
- Ie as sanitizeHtml,
153
- Ve as shadowScaleMap,
154
- Jr as siteDarkTheme,
155
- Qr as siteDefaultTheme,
156
- ke as spacingScaleMap,
157
- lr as themePresets,
158
- cr as validateContrast
81
+ hr as CAROUSEL_PLACEHOLDER_IMAGES,
82
+ xr as HERO_IMAGE_NAMES,
83
+ Ye as HistoryManager,
84
+ re as LandingPageEditor,
85
+ te as LandingPageEditorV2,
86
+ ae as LandingPageViewer,
87
+ ie as LandingPageViewerV2,
88
+ Sr as PLACEHOLDER_IMAGE_URL,
89
+ er as PatchBuilder,
90
+ Ue as Preview,
91
+ je as PreviewV2,
92
+ Me as RenderNode,
93
+ be as RenderPage,
94
+ tr as applyOverrides,
95
+ ze as applyPatch,
96
+ pe as blockRegistry,
97
+ Br as blogPlugin,
98
+ or as classicPreset,
99
+ ar as cleanPreset,
100
+ Ae as clearHtmlCache,
101
+ ne as componentRegistry,
102
+ ir as corporatePreset,
103
+ de as corporateThemeTokens,
104
+ Fe as createAddPatch,
105
+ Ke as createCopyPatch,
106
+ ge as createEmptySiteDocument,
107
+ le as createEmptySiteDocumentV2,
108
+ Ze as createHistoryManager,
109
+ qe as createMovePatch,
110
+ Je as createRemovePatch,
111
+ Qe as createReplacePatch,
112
+ Wr as createSiteThemeStyle,
113
+ Pe as darkThemeTokens,
114
+ fe as defaultComponentTokens,
115
+ he as defaultEffectTokens,
116
+ xe as defaultLayoutTokens,
117
+ Se as defaultThemeTokens,
118
+ Hr as evaluateShowWhen,
119
+ De as exportBlockToHtml,
120
+ we as exportDocumentToHtml,
121
+ Oe as exportPageToHtml,
122
+ _e as generateAssetsManifest,
123
+ Mr as generateCompleteLandingPage,
124
+ Rr as generateModernLandingPage,
125
+ br as generatePatchesForLandingPage,
126
+ zr as generateSiteCSSVariables,
127
+ Fr as generateSiteCSSVariablesObject,
128
+ Te as generateThemeCSSVariables,
129
+ mr as getAllPresets,
130
+ Tr as getHeroVariation,
131
+ kr as getNavbarVariation,
132
+ pr as getPreset,
133
+ nr as glassPreset,
134
+ ye as gradientDirectionMap,
135
+ ue as gradientThemeTokens,
136
+ yr as heroVariationIds,
137
+ ur as heroVariations,
138
+ Or as hydratePageWithContent,
139
+ Ne as isSafeUrl,
140
+ Ir as matchDynamicPage,
141
+ Kr as mergeSiteThemeTokens,
142
+ sr as minimalPreset,
143
+ Ur as mockBlogContentProvider,
144
+ Er as navbarVariationIds,
145
+ Lr as navbarVariations,
146
+ gr as neonPreset,
147
+ lr as pastelPreset,
148
+ cr as playfulKidsPreset,
149
+ Ve as playfulThemeTokens,
150
+ Dr as pluginRegistry,
151
+ ke as radiusScaleMap,
152
+ Jr as renderNode,
153
+ ve as renderPage,
154
+ Be as sanitizeHtml,
155
+ Ee as shadowScaleMap,
156
+ Xr as siteDarkTheme,
157
+ Yr as siteDefaultTheme,
158
+ Le as spacingScaleMap,
159
+ dr as themePresets,
160
+ Pr as validateContrast
159
161
  };
160
162
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"blockIcons.d.ts","sourceRoot":"","sources":["../../src/utils/blockIcons.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAwDtC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD"}
1
+ {"version":3,"file":"blockIcons.d.ts","sourceRoot":"","sources":["../../src/utils/blockIcons.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AA0DtC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD"}
@@ -41,6 +41,8 @@ const a = {
41
41
  productShowcase: "🛍️",
42
42
  aboutSection: "ℹ️",
43
43
  contactSection: "📬",
44
+ blogCategoryFilter: "🏷️",
45
+ blogSearchBar: "🔍",
44
46
  // Formulários
45
47
  form: "📋",
46
48
  input: "✏️",
@@ -1 +1 @@
1
- {"version":3,"file":"blockIcons.js","sources":["../../src/utils/blockIcons.ts"],"sourcesContent":["/**\n * Mapeamento de ícones para cada tipo de bloco\n * Usado no BlockPalette e BlockHeader\n */\n\nimport { BlockType } from \"../engine\";\n\nconst BLOCK_ICONS: Record<string, string> = {\n // Layout\n container: \"📦\",\n stack: \"📚\",\n grid: \"⊞\",\n box: \"☐\",\n section: \"▦\",\n spacer: \"↕\",\n\n // Conteúdo\n heading: \"H\",\n text: \"T\",\n image: \"🖼️\",\n video: \"🎥\",\n icon: \"★\",\n badge: \"🎟️\",\n avatar: \"👤\",\n socialLinks: \"🌐\",\n\n // Interativos\n button: \"🔘\",\n link: \"🔗\",\n divider: \"─\",\n card: \"🃏\",\n\n // Seções\n hero: \"🏆\",\n feature: \"✨\",\n featureGrid: \"⭐\",\n pricing: \"💰\",\n pricingCard: \"💳\",\n testimonial: \"💬\",\n testimonialGrid: \"🗨️\",\n courseCardGrid: \"📚\",\n categoryCardGrid: \"📂\",\n faq: \"❓\",\n faqItem: \"📝\",\n cta: \"📣\",\n stats: \"📊\",\n statItem: \"#\",\n logoCloud: \"🏂\",\n navbar: \"☰\",\n footer: \"📋\",\n productShowcase: \"🛍️\",\n aboutSection: \"ℹ️\",\n contactSection: \"📬\",\n\n // Formulários\n form: \"📋\",\n input: \"✏️\",\n textarea: \"📑\",\n formSelect: \"👇\",\n};\n\n/**\n * Retorna o ícone emoji para um tipo de bloco\n */\nexport function getBlockIcon(type: BlockType): string {\n return BLOCK_ICONS[type] || \"•\";\n}\n\n/**\n * Retorna as iniciais do nome do bloco (fallback se não houver ícone)\n */\nexport function getBlockInitials(name: string): string {\n return name\n .split(\" \")\n .map((word) => word[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2);\n}\n"],"names":["BLOCK_ICONS","getBlockIcon","type"],"mappings":"AAOA,MAAMA,IAAsC;AAAA;AAAA,EAE1C,WAAW;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,QAAQ;AAAA;AAAA,EAGR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AAAA;AAAA,EAGb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA;AAAA,EAGN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,KAAK;AAAA,EACL,SAAS;AAAA,EACT,KAAK;AAAA,EACL,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,gBAAgB;AAAA;AAAA,EAGhB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AACd;AAKO,SAASC,EAAaC,GAAyB;AACpD,SAAOF,EAAYE,CAAI,KAAK;AAC9B;"}
1
+ {"version":3,"file":"blockIcons.js","sources":["../../src/utils/blockIcons.ts"],"sourcesContent":["/**\n * Mapeamento de ícones para cada tipo de bloco\n * Usado no BlockPalette e BlockHeader\n */\n\nimport { BlockType } from \"../engine\";\n\nconst BLOCK_ICONS: Record<string, string> = {\n // Layout\n container: \"📦\",\n stack: \"📚\",\n grid: \"⊞\",\n box: \"☐\",\n section: \"▦\",\n spacer: \"↕\",\n\n // Conteúdo\n heading: \"H\",\n text: \"T\",\n image: \"🖼️\",\n video: \"🎥\",\n icon: \"★\",\n badge: \"🎟️\",\n avatar: \"👤\",\n socialLinks: \"🌐\",\n\n // Interativos\n button: \"🔘\",\n link: \"🔗\",\n divider: \"─\",\n card: \"🃏\",\n\n // Seções\n hero: \"🏆\",\n feature: \"✨\",\n featureGrid: \"⭐\",\n pricing: \"💰\",\n pricingCard: \"💳\",\n testimonial: \"💬\",\n testimonialGrid: \"🗨️\",\n courseCardGrid: \"📚\",\n categoryCardGrid: \"📂\",\n faq: \"❓\",\n faqItem: \"📝\",\n cta: \"📣\",\n stats: \"📊\",\n statItem: \"#\",\n logoCloud: \"🏂\",\n navbar: \"☰\",\n footer: \"📋\",\n productShowcase: \"🛍️\",\n aboutSection: \"ℹ️\",\n contactSection: \"📬\",\n blogCategoryFilter: \"🏷️\",\n blogSearchBar: \"🔍\",\n\n // Formulários\n form: \"📋\",\n input: \"✏️\",\n textarea: \"📑\",\n formSelect: \"👇\",\n};\n\n/**\n * Retorna o ícone emoji para um tipo de bloco\n */\nexport function getBlockIcon(type: BlockType): string {\n return BLOCK_ICONS[type] || \"•\";\n}\n\n/**\n * Retorna as iniciais do nome do bloco (fallback se não houver ícone)\n */\nexport function getBlockInitials(name: string): string {\n return name\n .split(\" \")\n .map((word) => word[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2);\n}\n"],"names":["BLOCK_ICONS","getBlockIcon","type"],"mappings":"AAOA,MAAMA,IAAsC;AAAA;AAAA,EAE1C,WAAW;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,QAAQ;AAAA;AAAA,EAGR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AAAA;AAAA,EAGb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA;AAAA,EAGN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,KAAK;AAAA,EACL,SAAS;AAAA,EACT,KAAK;AAAA,EACL,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,eAAe;AAAA;AAAA,EAGf,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AACd;AAKO,SAASC,EAAaC,GAAyB;AACpD,SAAOF,EAAYE,CAAI,KAAK;AAC9B;"}
@@ -20,7 +20,9 @@ interface NavbarLink {
20
20
  */
21
21
  export declare function findNavbarBlocks(document: SiteDocument): NavbarBlockInfo[];
22
22
  /**
23
- * Gera array de links do navbar a partir das páginas do documento
23
+ * Gera array de links do navbar a partir das páginas do documento.
24
+ * Filtra páginas dinâmicas (isDynamic: true) como "blog/:slug"
25
+ * que não devem aparecer como links de navegação.
24
26
  */
25
27
  export declare function generateNavbarLinks(pages: SitePage[]): NavbarLink[];
26
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"navbarSync.d.ts","sourceRoot":"","sources":["../../src/utils/navbarSync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAS,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI7C;;GAEG;AACH,UAAU,eAAe;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAkDD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,eAAe,EAAE,CAQ1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAKnE;AAeD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,KAAK,CAoC7D"}
1
+ {"version":3,"file":"navbarSync.d.ts","sourceRoot":"","sources":["../../src/utils/navbarSync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAS,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI7C;;GAEG;AACH,UAAU,eAAe;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAkDD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,eAAe,EAAE,CAQ1E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAOnE;AAeD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,KAAK,CAoC7D"}
@@ -19,7 +19,7 @@ function f(t) {
19
19
  return o;
20
20
  }
21
21
  function l(t) {
22
- return t.map((o) => ({
22
+ return t.filter((o) => !o.isDynamic).map((o) => ({
23
23
  text: o.name,
24
24
  href: o.slug === "home" ? "/" : `/p/${o.slug}`
25
25
  }));
@@ -27,7 +27,7 @@ function l(t) {
27
27
  function u(t) {
28
28
  return t.props._autoSync !== !1;
29
29
  }
30
- function h(t) {
30
+ function d(t) {
31
31
  const o = [], n = l(t.pages), c = f(t);
32
32
  for (const r of c)
33
33
  if (u(r.block))
@@ -51,6 +51,6 @@ function h(t) {
51
51
  export {
52
52
  f as findNavbarBlocks,
53
53
  l as generateNavbarLinks,
54
- h as syncNavbarLinks
54
+ d as syncNavbarLinks
55
55
  };
56
56
  //# sourceMappingURL=navbarSync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navbarSync.js","sources":["../../src/utils/navbarSync.ts"],"sourcesContent":["/**\n * Navbar Sync - Sincronização automática de links do navbar\n * Sistema que mantém os links do navbar atualizados com as páginas do documento\n */\n\nimport { Block, NavbarBlock, SiteDocument, SitePage } from \"@/engine/schema/siteDocument\";\nimport { Patch } from \"@/engine/patch/types\";\nimport { PatchBuilder } from \"@/engine/patch/PatchBuilder\";\nimport { logger } from \"./logger\";\n\n/**\n * Informação sobre um bloco navbar encontrado\n */\ninterface NavbarBlockInfo {\n block: NavbarBlock;\n pageId: string;\n blockId: string;\n}\n\n/**\n * Link do navbar\n */\ninterface NavbarLink {\n text: string;\n href: string;\n}\n\n/**\n * Busca recursiva por blocos navbar na estrutura\n */\nfunction findNavbarBlocksInStructure(\n structure: Block[],\n pageId: string,\n navbars: NavbarBlockInfo[] = []\n): NavbarBlockInfo[] {\n for (const block of structure) {\n // Se é um navbar, adiciona à lista\n if (block.type === \"navbar\") {\n navbars.push({\n block: block as NavbarBlock,\n pageId,\n blockId: block.id,\n });\n }\n\n // Busca recursiva em children\n const props = block.props as Record<string, any>;\n if (props?.children && Array.isArray(props.children)) {\n findNavbarBlocksInStructure(props.children, pageId, navbars);\n }\n\n // Busca em slots de card\n if (block.type === \"card\") {\n if (props?.header && Array.isArray(props.header)) {\n findNavbarBlocksInStructure(props.header, pageId, navbars);\n }\n if (props?.content && Array.isArray(props.content)) {\n findNavbarBlocksInStructure(props.content, pageId, navbars);\n }\n if (props?.footer && Array.isArray(props.footer)) {\n findNavbarBlocksInStructure(props.footer, pageId, navbars);\n }\n }\n\n // Busca em children de section/container/box/stack/grid\n if ([\"section\", \"container\", \"box\", \"stack\", \"grid\"].includes(block.type)) {\n if (props?.children && Array.isArray(props.children)) {\n findNavbarBlocksInStructure(props.children, pageId, navbars);\n }\n }\n }\n\n return navbars;\n}\n\n/**\n * Encontra todos os blocos navbar em todas as páginas do documento\n */\nexport function findNavbarBlocks(document: SiteDocument): NavbarBlockInfo[] {\n const navbars: NavbarBlockInfo[] = [];\n\n for (const page of document.pages) {\n findNavbarBlocksInStructure(page.structure, page.id, navbars);\n }\n\n return navbars;\n}\n\n/**\n * Gera array de links do navbar a partir das páginas do documento\n */\nexport function generateNavbarLinks(pages: SitePage[]): NavbarLink[] {\n return pages.map((page) => ({\n text: page.name,\n href: page.slug === \"home\" ? \"/\" : `/p/${page.slug}`,\n }));\n}\n\n/**\n * Verifica se um bloco navbar deve ter sincronização automática\n */\nfunction shouldAutoSync(navbarBlock: NavbarBlock): boolean {\n const props = navbarBlock.props as Record<string, any>;\n // Se _autoSync foi explicitamente setado como false, respeitar\n if (props._autoSync === false) {\n return false;\n }\n // Por padrão, sincronizar (undefined ou true)\n return true;\n}\n\n/**\n * Sincroniza os links de todos os navbars com as páginas do documento\n * Retorna array de patches para aplicar\n */\nexport function syncNavbarLinks(document: SiteDocument): Patch {\n const patches: Patch = [];\n\n // Gera links a partir das páginas\n const links = generateNavbarLinks(document.pages);\n\n // Encontra todos os navbars\n const navbars = findNavbarBlocks(document);\n\n // Para cada navbar, cria patch de atualização\n for (const navbarInfo of navbars) {\n // Verifica se deve sincronizar\n if (!shouldAutoSync(navbarInfo.block)) {\n continue;\n }\n\n try {\n // Cria patch para atualizar a propriedade links\n const patch = PatchBuilder.updateBlockProp(\n document,\n navbarInfo.pageId,\n navbarInfo.blockId,\n \"links\",\n links\n );\n\n patches.push(...patch);\n } catch (error) {\n logger.warn(\n `Failed to sync navbar ${navbarInfo.blockId} in page ${navbarInfo.pageId}:`,\n error\n );\n }\n }\n\n return patches;\n}\n"],"names":["findNavbarBlocksInStructure","structure","pageId","navbars","block","props","findNavbarBlocks","document","page","generateNavbarLinks","pages","shouldAutoSync","navbarBlock","syncNavbarLinks","patches","links","navbarInfo","patch","PatchBuilder","error","logger"],"mappings":";;AA8BA,SAASA,EACPC,GACAC,GACAC,IAA6B,CAAA,GACV;AACnB,aAAWC,KAASH,GAAW;AAE7B,IAAIG,EAAM,SAAS,YACjBD,EAAQ,KAAK;AAAA,MACX,OAAAC;AAAA,MACA,QAAAF;AAAA,MACA,SAASE,EAAM;AAAA,IAAA,CAChB;AAIH,UAAMC,IAAQD,EAAM;AACpB,IAAIC,GAAO,YAAY,MAAM,QAAQA,EAAM,QAAQ,KACjDL,EAA4BK,EAAM,UAAUH,GAAQC,CAAO,GAIzDC,EAAM,SAAS,WACbC,GAAO,UAAU,MAAM,QAAQA,EAAM,MAAM,KAC7CL,EAA4BK,EAAM,QAAQH,GAAQC,CAAO,GAEvDE,GAAO,WAAW,MAAM,QAAQA,EAAM,OAAO,KAC/CL,EAA4BK,EAAM,SAASH,GAAQC,CAAO,GAExDE,GAAO,UAAU,MAAM,QAAQA,EAAM,MAAM,KAC7CL,EAA4BK,EAAM,QAAQH,GAAQC,CAAO,IAKzD,CAAC,WAAW,aAAa,OAAO,SAAS,MAAM,EAAE,SAASC,EAAM,IAAI,KAClEC,GAAO,YAAY,MAAM,QAAQA,EAAM,QAAQ,KACjDL,EAA4BK,EAAM,UAAUH,GAAQC,CAAO;AAAA,EAGjE;AAEA,SAAOA;AACT;AAKO,SAASG,EAAiBC,GAA2C;AAC1E,QAAMJ,IAA6B,CAAA;AAEnC,aAAWK,KAAQD,EAAS;AAC1B,IAAAP,EAA4BQ,EAAK,WAAWA,EAAK,IAAIL,CAAO;AAG9D,SAAOA;AACT;AAKO,SAASM,EAAoBC,GAAiC;AACnE,SAAOA,EAAM,IAAI,CAACF,OAAU;AAAA,IAC1B,MAAMA,EAAK;AAAA,IACX,MAAMA,EAAK,SAAS,SAAS,MAAM,MAAMA,EAAK,IAAI;AAAA,EAAA,EAClD;AACJ;AAKA,SAASG,EAAeC,GAAmC;AAGzD,SAFcA,EAAY,MAEhB,cAAc;AAK1B;AAMO,SAASC,EAAgBN,GAA+B;AAC7D,QAAMO,IAAiB,CAAA,GAGjBC,IAAQN,EAAoBF,EAAS,KAAK,GAG1CJ,IAAUG,EAAiBC,CAAQ;AAGzC,aAAWS,KAAcb;AAEvB,QAAKQ,EAAeK,EAAW,KAAK;AAIpC,UAAI;AAEF,cAAMC,IAAQC,EAAa;AAAA,UACzBX;AAAA,UACAS,EAAW;AAAA,UACXA,EAAW;AAAA,UACX;AAAA,UACAD;AAAA,QAAA;AAGF,QAAAD,EAAQ,KAAK,GAAGG,CAAK;AAAA,MACvB,SAASE,GAAO;AACd,QAAAC,EAAO;AAAA,UACL,yBAAyBJ,EAAW,OAAO,YAAYA,EAAW,MAAM;AAAA,UACxEG;AAAA,QAAA;AAAA,MAEJ;AAGF,SAAOL;AACT;"}
1
+ {"version":3,"file":"navbarSync.js","sources":["../../src/utils/navbarSync.ts"],"sourcesContent":["/**\n * Navbar Sync - Sincronização automática de links do navbar\n * Sistema que mantém os links do navbar atualizados com as páginas do documento\n */\n\nimport { Block, NavbarBlock, SiteDocument, SitePage } from \"@/engine/schema/siteDocument\";\nimport { Patch } from \"@/engine/patch/types\";\nimport { PatchBuilder } from \"@/engine/patch/PatchBuilder\";\nimport { logger } from \"./logger\";\n\n/**\n * Informação sobre um bloco navbar encontrado\n */\ninterface NavbarBlockInfo {\n block: NavbarBlock;\n pageId: string;\n blockId: string;\n}\n\n/**\n * Link do navbar\n */\ninterface NavbarLink {\n text: string;\n href: string;\n}\n\n/**\n * Busca recursiva por blocos navbar na estrutura\n */\nfunction findNavbarBlocksInStructure(\n structure: Block[],\n pageId: string,\n navbars: NavbarBlockInfo[] = []\n): NavbarBlockInfo[] {\n for (const block of structure) {\n // Se é um navbar, adiciona à lista\n if (block.type === \"navbar\") {\n navbars.push({\n block: block as NavbarBlock,\n pageId,\n blockId: block.id,\n });\n }\n\n // Busca recursiva em children\n const props = block.props as Record<string, any>;\n if (props?.children && Array.isArray(props.children)) {\n findNavbarBlocksInStructure(props.children, pageId, navbars);\n }\n\n // Busca em slots de card\n if (block.type === \"card\") {\n if (props?.header && Array.isArray(props.header)) {\n findNavbarBlocksInStructure(props.header, pageId, navbars);\n }\n if (props?.content && Array.isArray(props.content)) {\n findNavbarBlocksInStructure(props.content, pageId, navbars);\n }\n if (props?.footer && Array.isArray(props.footer)) {\n findNavbarBlocksInStructure(props.footer, pageId, navbars);\n }\n }\n\n // Busca em children de section/container/box/stack/grid\n if ([\"section\", \"container\", \"box\", \"stack\", \"grid\"].includes(block.type)) {\n if (props?.children && Array.isArray(props.children)) {\n findNavbarBlocksInStructure(props.children, pageId, navbars);\n }\n }\n }\n\n return navbars;\n}\n\n/**\n * Encontra todos os blocos navbar em todas as páginas do documento\n */\nexport function findNavbarBlocks(document: SiteDocument): NavbarBlockInfo[] {\n const navbars: NavbarBlockInfo[] = [];\n\n for (const page of document.pages) {\n findNavbarBlocksInStructure(page.structure, page.id, navbars);\n }\n\n return navbars;\n}\n\n/**\n * Gera array de links do navbar a partir das páginas do documento.\n * Filtra páginas dinâmicas (isDynamic: true) como \"blog/:slug\"\n * que não devem aparecer como links de navegação.\n */\nexport function generateNavbarLinks(pages: SitePage[]): NavbarLink[] {\n return pages\n .filter((page) => !page.isDynamic)\n .map((page) => ({\n text: page.name,\n href: page.slug === \"home\" ? \"/\" : `/p/${page.slug}`,\n }));\n}\n\n/**\n * Verifica se um bloco navbar deve ter sincronização automática\n */\nfunction shouldAutoSync(navbarBlock: NavbarBlock): boolean {\n const props = navbarBlock.props as Record<string, any>;\n // Se _autoSync foi explicitamente setado como false, respeitar\n if (props._autoSync === false) {\n return false;\n }\n // Por padrão, sincronizar (undefined ou true)\n return true;\n}\n\n/**\n * Sincroniza os links de todos os navbars com as páginas do documento\n * Retorna array de patches para aplicar\n */\nexport function syncNavbarLinks(document: SiteDocument): Patch {\n const patches: Patch = [];\n\n // Gera links a partir das páginas\n const links = generateNavbarLinks(document.pages);\n\n // Encontra todos os navbars\n const navbars = findNavbarBlocks(document);\n\n // Para cada navbar, cria patch de atualização\n for (const navbarInfo of navbars) {\n // Verifica se deve sincronizar\n if (!shouldAutoSync(navbarInfo.block)) {\n continue;\n }\n\n try {\n // Cria patch para atualizar a propriedade links\n const patch = PatchBuilder.updateBlockProp(\n document,\n navbarInfo.pageId,\n navbarInfo.blockId,\n \"links\",\n links\n );\n\n patches.push(...patch);\n } catch (error) {\n logger.warn(\n `Failed to sync navbar ${navbarInfo.blockId} in page ${navbarInfo.pageId}:`,\n error\n );\n }\n }\n\n return patches;\n}\n"],"names":["findNavbarBlocksInStructure","structure","pageId","navbars","block","props","findNavbarBlocks","document","page","generateNavbarLinks","pages","shouldAutoSync","navbarBlock","syncNavbarLinks","patches","links","navbarInfo","patch","PatchBuilder","error","logger"],"mappings":";;AA8BA,SAASA,EACPC,GACAC,GACAC,IAA6B,CAAA,GACV;AACnB,aAAWC,KAASH,GAAW;AAE7B,IAAIG,EAAM,SAAS,YACjBD,EAAQ,KAAK;AAAA,MACX,OAAAC;AAAA,MACA,QAAAF;AAAA,MACA,SAASE,EAAM;AAAA,IAAA,CAChB;AAIH,UAAMC,IAAQD,EAAM;AACpB,IAAIC,GAAO,YAAY,MAAM,QAAQA,EAAM,QAAQ,KACjDL,EAA4BK,EAAM,UAAUH,GAAQC,CAAO,GAIzDC,EAAM,SAAS,WACbC,GAAO,UAAU,MAAM,QAAQA,EAAM,MAAM,KAC7CL,EAA4BK,EAAM,QAAQH,GAAQC,CAAO,GAEvDE,GAAO,WAAW,MAAM,QAAQA,EAAM,OAAO,KAC/CL,EAA4BK,EAAM,SAASH,GAAQC,CAAO,GAExDE,GAAO,UAAU,MAAM,QAAQA,EAAM,MAAM,KAC7CL,EAA4BK,EAAM,QAAQH,GAAQC,CAAO,IAKzD,CAAC,WAAW,aAAa,OAAO,SAAS,MAAM,EAAE,SAASC,EAAM,IAAI,KAClEC,GAAO,YAAY,MAAM,QAAQA,EAAM,QAAQ,KACjDL,EAA4BK,EAAM,UAAUH,GAAQC,CAAO;AAAA,EAGjE;AAEA,SAAOA;AACT;AAKO,SAASG,EAAiBC,GAA2C;AAC1E,QAAMJ,IAA6B,CAAA;AAEnC,aAAWK,KAAQD,EAAS;AAC1B,IAAAP,EAA4BQ,EAAK,WAAWA,EAAK,IAAIL,CAAO;AAG9D,SAAOA;AACT;AAOO,SAASM,EAAoBC,GAAiC;AACnE,SAAOA,EACJ,OAAO,CAACF,MAAS,CAACA,EAAK,SAAS,EAChC,IAAI,CAACA,OAAU;AAAA,IACd,MAAMA,EAAK;AAAA,IACX,MAAMA,EAAK,SAAS,SAAS,MAAM,MAAMA,EAAK,IAAI;AAAA,EAAA,EAClD;AACN;AAKA,SAASG,EAAeC,GAAmC;AAGzD,SAFcA,EAAY,MAEhB,cAAc;AAK1B;AAMO,SAASC,EAAgBN,GAA+B;AAC7D,QAAMO,IAAiB,CAAA,GAGjBC,IAAQN,EAAoBF,EAAS,KAAK,GAG1CJ,IAAUG,EAAiBC,CAAQ;AAGzC,aAAWS,KAAcb;AAEvB,QAAKQ,EAAeK,EAAW,KAAK;AAIpC,UAAI;AAEF,cAAMC,IAAQC,EAAa;AAAA,UACzBX;AAAA,UACAS,EAAW;AAAA,UACXA,EAAW;AAAA,UACX;AAAA,UACAD;AAAA,QAAA;AAGF,QAAAD,EAAQ,KAAK,GAAGG,CAAK;AAAA,MACvB,SAASE,GAAO;AACd,QAAAC,EAAO;AAAA,UACL,yBAAyBJ,EAAW,OAAO,YAAYA,EAAW,MAAM;AAAA,UACxEG;AAAA,QAAA;AAAA,MAEJ;AAGF,SAAOL;AACT;"}
@@ -1,4 +1,4 @@
1
- import { ContentProvider } from '../engine/plugins/types';
1
+ import { ContentProvider, ContentListParams } from '../engine/plugins/types';
2
2
  export interface SchoolData {
3
3
  id: string;
4
4
  name: string;
@@ -20,6 +20,11 @@ interface LandingPageViewerProps {
20
20
  * Supplied by the consumer project to connect plugin data to the viewer.
21
21
  */
22
22
  contentProviders?: ContentProvider[];
23
+ /**
24
+ * Params for content list filtering (search, category).
25
+ * Consumer extracts these from URL query params (e.g., ?busca=X&categoria=Y).
26
+ */
27
+ contentListParams?: ContentListParams;
23
28
  /**
24
29
  * Callback for internal navigation (link clicks inside iframe).
25
30
  * Receives the href from clicked links. Consumer should use router navigation.
@@ -27,6 +32,6 @@ interface LandingPageViewerProps {
27
32
  onNavigate?: (href: string) => void;
28
33
  }
29
34
  export declare function LandingPageViewer({ siteId, apiBaseUrl, projectId, pageSlug, schoolSlug, schoolData: _schoolData, // reservado para header/navbar dinâmico (logo, nome da escola)
30
- contentProviders, onNavigate, }: LandingPageViewerProps): import("react/jsx-runtime").JSX.Element | null;
35
+ contentProviders, contentListParams, onNavigate, }: LandingPageViewerProps): import("react/jsx-runtime").JSX.Element | null;
31
36
  export {};
32
37
  //# sourceMappingURL=LandingPageViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LandingPageViewer.d.ts","sourceRoot":"","sources":["../../src/viewer/LandingPageViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAgB/D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAeD,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,UAAU,EAAE,WAAW,EAAE,+DAA+D;AACxF,gBAAgB,EAChB,UAAU,GACX,EAAE,sBAAsB,kDA6XxB"}
1
+ {"version":3,"file":"LandingPageViewer.d.ts","sourceRoot":"","sources":["../../src/viewer/LandingPageViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAgBlF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAeD,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,UAAU,EAAE,WAAW,EAAE,+DAA+D;AACxF,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACX,EAAE,sBAAsB,kDAwYxB"}