@brunoalz/smartgesti-site-editor 1.5.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/editor/LandingPageEditor.d.ts.map +1 -1
  2. package/dist/editor/LandingPageEditor.js +199 -185
  3. package/dist/editor/LandingPageEditor.js.map +1 -1
  4. package/dist/editor/PropertyEditor/VariationSelector.d.ts +1 -1
  5. package/dist/editor/PropertyEditor/VariationSelector.d.ts.map +1 -1
  6. package/dist/editor/PropertyEditor/VariationSelector.js +262 -93
  7. package/dist/editor/PropertyEditor/VariationSelector.js.map +1 -1
  8. package/dist/engine/export/exporters/layout/GridExporter.d.ts.map +1 -1
  9. package/dist/engine/export/exporters/layout/GridExporter.js +47 -31
  10. package/dist/engine/export/exporters/layout/GridExporter.js.map +1 -1
  11. package/dist/engine/export/exporters/layout/StackExporter.d.ts.map +1 -1
  12. package/dist/engine/export/exporters/layout/StackExporter.js +17 -16
  13. package/dist/engine/export/exporters/layout/StackExporter.js.map +1 -1
  14. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -1
  15. package/dist/engine/export/exporters/sections/BlogPostExporters.js +246 -186
  16. package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -1
  17. package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -1
  18. package/dist/engine/plugins/builtin/blog/manifest.js +65 -47
  19. package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -1
  20. package/dist/engine/presets/blogVariations.d.ts +51 -0
  21. package/dist/engine/presets/blogVariations.d.ts.map +1 -0
  22. package/dist/engine/presets/blogVariations.js +267 -0
  23. package/dist/engine/presets/blogVariations.js.map +1 -0
  24. package/dist/engine/registry/blocks/layout/grid.d.ts.map +1 -1
  25. package/dist/engine/registry/blocks/layout/grid.js +84 -42
  26. package/dist/engine/registry/blocks/layout/grid.js.map +1 -1
  27. package/dist/engine/registry/blocks/layout/stack.d.ts.map +1 -1
  28. package/dist/engine/registry/blocks/layout/stack.js +14 -13
  29. package/dist/engine/registry/blocks/layout/stack.js.map +1 -1
  30. package/dist/engine/registry/blocks/sections/blogCategoryFilter.d.ts.map +1 -1
  31. package/dist/engine/registry/blocks/sections/blogCategoryFilter.js +62 -5
  32. package/dist/engine/registry/blocks/sections/blogCategoryFilter.js.map +1 -1
  33. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts.map +1 -1
  34. package/dist/engine/registry/blocks/sections/blogPostDetail.js +16 -4
  35. package/dist/engine/registry/blocks/sections/blogPostDetail.js.map +1 -1
  36. package/dist/engine/registry/blocks/sections/blogRecentPosts.d.ts.map +1 -1
  37. package/dist/engine/registry/blocks/sections/blogRecentPosts.js +62 -5
  38. package/dist/engine/registry/blocks/sections/blogRecentPosts.js.map +1 -1
  39. package/dist/engine/registry/blocks/sections/blogSearchBar.d.ts.map +1 -1
  40. package/dist/engine/registry/blocks/sections/blogSearchBar.js +23 -1
  41. package/dist/engine/registry/blocks/sections/blogSearchBar.js.map +1 -1
  42. package/dist/engine/registry/blocks/sections/blogTagCloud.d.ts.map +1 -1
  43. package/dist/engine/registry/blocks/sections/blogTagCloud.js +63 -6
  44. package/dist/engine/registry/blocks/sections/blogTagCloud.js.map +1 -1
  45. package/dist/engine/render/renderers/layout/GridRenderer.d.ts.map +1 -1
  46. package/dist/engine/render/renderers/layout/GridRenderer.js +51 -18
  47. package/dist/engine/render/renderers/layout/GridRenderer.js.map +1 -1
  48. package/dist/engine/render/renderers/layout/StackRenderer.d.ts.map +1 -1
  49. package/dist/engine/render/renderers/layout/StackRenderer.js +30 -25
  50. package/dist/engine/render/renderers/layout/StackRenderer.js.map +1 -1
  51. package/dist/engine/render/renderers/sections/BlogCategoryFilterRenderer.d.ts.map +1 -1
  52. package/dist/engine/render/renderers/sections/BlogCategoryFilterRenderer.js +157 -132
  53. package/dist/engine/render/renderers/sections/BlogCategoryFilterRenderer.js.map +1 -1
  54. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js +17 -17
  55. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js.map +1 -1
  56. package/dist/engine/render/renderers/sections/BlogRecentPostsRenderer.d.ts.map +1 -1
  57. package/dist/engine/render/renderers/sections/BlogRecentPostsRenderer.js +168 -136
  58. package/dist/engine/render/renderers/sections/BlogRecentPostsRenderer.js.map +1 -1
  59. package/dist/engine/render/renderers/sections/BlogSearchBarRenderer.d.ts.map +1 -1
  60. package/dist/engine/render/renderers/sections/BlogSearchBarRenderer.js +59 -102
  61. package/dist/engine/render/renderers/sections/BlogSearchBarRenderer.js.map +1 -1
  62. package/dist/engine/render/renderers/sections/BlogTagCloudRenderer.d.ts.map +1 -1
  63. package/dist/engine/render/renderers/sections/BlogTagCloudRenderer.js +158 -122
  64. package/dist/engine/render/renderers/sections/BlogTagCloudRenderer.js.map +1 -1
  65. package/dist/engine/schema/siteDocument.d.ts +57 -1
  66. package/dist/engine/schema/siteDocument.d.ts.map +1 -1
  67. package/dist/engine/schema/siteDocument.js.map +1 -1
  68. package/dist/engine/shared/hoverEffects/colorUtils.d.ts +2 -1
  69. package/dist/engine/shared/hoverEffects/colorUtils.d.ts.map +1 -1
  70. package/dist/engine/shared/hoverEffects/colorUtils.js +16 -12
  71. package/dist/engine/shared/hoverEffects/colorUtils.js.map +1 -1
  72. package/dist/engine/shared/widgetStyles.d.ts +9 -0
  73. package/dist/engine/shared/widgetStyles.d.ts.map +1 -0
  74. package/dist/engine/shared/widgetStyles.js +13 -0
  75. package/dist/engine/shared/widgetStyles.js.map +1 -0
  76. package/dist/index.d.ts +2 -0
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +84 -71
  79. package/dist/index.js.map +1 -1
  80. package/package.json +1 -1
@@ -13,7 +13,9 @@ const a = {
13
13
  searchUrl: "/site/p/blog",
14
14
  filterCategories: !1,
15
15
  filterTags: !1,
16
- filterDate: !1
16
+ filterDate: !1,
17
+ borderRadius: "0.75rem",
18
+ shadow: "none"
17
19
  },
18
20
  inspectorMeta: {
19
21
  placeholder: { label: "Placeholder", inputType: "text", group: "Conteúdo" },
@@ -46,6 +48,26 @@ const a = {
46
48
  inputType: "checkbox",
47
49
  group: "Filtros",
48
50
  showWhen: { field: "variant", equals: "with-filters" }
51
+ },
52
+ borderRadius: {
53
+ label: "Arredondamento",
54
+ inputType: "select",
55
+ options: [
56
+ { label: "Nenhum", value: "0" },
57
+ { label: "Padrão", value: "0.75rem" },
58
+ { label: "Grande", value: "1.25rem" }
59
+ ],
60
+ group: "Aparência"
61
+ },
62
+ shadow: {
63
+ label: "Sombra",
64
+ inputType: "select",
65
+ options: [
66
+ { label: "Nenhuma", value: "none" },
67
+ { label: "Suave", value: "sm" },
68
+ { label: "Média", value: "md" }
69
+ ],
70
+ group: "Aparência"
49
71
  }
50
72
  }
51
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"blogSearchBar.js","sources":["../../../../../src/engine/registry/blocks/sections/blogSearchBar.ts"],"sourcesContent":["import { BlockDefinition } from \"../../types\";\nimport { componentRegistry } from \"../../registry\";\n\nexport const blogSearchBarBlock: BlockDefinition<\"blogSearchBar\"> = {\n type: \"blogSearchBar\",\n name: \"Blog Search Bar\",\n description: \"Barra de busca para o blog (plugin Blog)\",\n category: \"sections\",\n pluginId: \"blog\",\n canHaveChildren: false,\n defaultProps: {\n placeholder: \"Buscar posts...\",\n variant: \"simple\",\n showIcon: true,\n searchUrl: \"/site/p/blog\",\n filterCategories: false,\n filterTags: false,\n filterDate: false,\n },\n inspectorMeta: {\n placeholder: { label: \"Placeholder\", inputType: \"text\", group: \"Conteúdo\" },\n variant: {\n label: \"Variante\",\n inputType: \"select\",\n group: \"Aparência\",\n options: [\n { value: \"simple\", label: \"Simples\" },\n { value: \"expanded\", label: \"Expandida\" },\n { value: \"with-filters\", label: \"Com filtros\" },\n ],\n },\n showIcon: { label: \"Mostrar Ícone\", inputType: \"checkbox\", group: \"Aparência\" },\n searchUrl: { label: \"URL de Busca\", inputType: \"text\", group: \"Comportamento\" },\n filterCategories: {\n label: \"Filtro por Categoria\",\n inputType: \"checkbox\",\n group: \"Filtros\",\n showWhen: { field: \"variant\", equals: \"with-filters\" },\n },\n filterTags: {\n label: \"Filtro por Tag\",\n inputType: \"checkbox\",\n group: \"Filtros\",\n showWhen: { field: \"variant\", equals: \"with-filters\" },\n },\n filterDate: {\n label: \"Filtro por Período\",\n inputType: \"checkbox\",\n group: \"Filtros\",\n showWhen: { field: \"variant\", equals: \"with-filters\" },\n },\n },\n};\n\n// Auto-registro\ncomponentRegistry.register(blogSearchBarBlock);\n"],"names":["blogSearchBarBlock","componentRegistry"],"mappings":";AAGO,MAAMA,IAAuD;AAAA,EAClE,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,cAAc;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,UAAU;AAAA,IACV,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,YAAY;AAAA,EAAA;AAAA,EAEd,eAAe;AAAA,IACb,aAAa,EAAE,OAAO,eAAe,WAAW,QAAQ,OAAO,WAAA;AAAA,IAC/D,SAAS;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,UAAA;AAAA,QAC1B,EAAE,OAAO,YAAY,OAAO,YAAA;AAAA,QAC5B,EAAE,OAAO,gBAAgB,OAAO,cAAA;AAAA,MAAc;AAAA,IAChD;AAAA,IAEF,UAAU,EAAE,OAAO,iBAAiB,WAAW,YAAY,OAAO,YAAA;AAAA,IAClE,WAAW,EAAE,OAAO,gBAAgB,WAAW,QAAQ,OAAO,gBAAA;AAAA,IAC9D,kBAAkB;AAAA,MAChB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,UAAU,EAAE,OAAO,WAAW,QAAQ,eAAA;AAAA,IAAe;AAAA,IAEvD,YAAY;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,UAAU,EAAE,OAAO,WAAW,QAAQ,eAAA;AAAA,IAAe;AAAA,IAEvD,YAAY;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,UAAU,EAAE,OAAO,WAAW,QAAQ,eAAA;AAAA,IAAe;AAAA,EACvD;AAEJ;AAGAC,EAAkB,SAASD,CAAkB;"}
1
+ {"version":3,"file":"blogSearchBar.js","sources":["../../../../../src/engine/registry/blocks/sections/blogSearchBar.ts"],"sourcesContent":["import { BlockDefinition } from \"../../types\";\nimport { componentRegistry } from \"../../registry\";\n\nexport const blogSearchBarBlock: BlockDefinition<\"blogSearchBar\"> = {\n type: \"blogSearchBar\",\n name: \"Blog Search Bar\",\n description: \"Barra de busca para o blog (plugin Blog)\",\n category: \"sections\",\n pluginId: \"blog\",\n canHaveChildren: false,\n defaultProps: {\n placeholder: \"Buscar posts...\",\n variant: \"simple\",\n showIcon: true,\n searchUrl: \"/site/p/blog\",\n filterCategories: false,\n filterTags: false,\n filterDate: false,\n borderRadius: \"0.75rem\",\n shadow: \"none\",\n },\n inspectorMeta: {\n placeholder: { label: \"Placeholder\", inputType: \"text\", group: \"Conteúdo\" },\n variant: {\n label: \"Variante\",\n inputType: \"select\",\n group: \"Aparência\",\n options: [\n { value: \"simple\", label: \"Simples\" },\n { value: \"expanded\", label: \"Expandida\" },\n { value: \"with-filters\", label: \"Com filtros\" },\n ],\n },\n showIcon: { label: \"Mostrar Ícone\", inputType: \"checkbox\", group: \"Aparência\" },\n searchUrl: { label: \"URL de Busca\", inputType: \"text\", group: \"Comportamento\" },\n filterCategories: {\n label: \"Filtro por Categoria\",\n inputType: \"checkbox\",\n group: \"Filtros\",\n showWhen: { field: \"variant\", equals: \"with-filters\" },\n },\n filterTags: {\n label: \"Filtro por Tag\",\n inputType: \"checkbox\",\n group: \"Filtros\",\n showWhen: { field: \"variant\", equals: \"with-filters\" },\n },\n filterDate: {\n label: \"Filtro por Período\",\n inputType: \"checkbox\",\n group: \"Filtros\",\n showWhen: { field: \"variant\", equals: \"with-filters\" },\n },\n borderRadius: {\n label: \"Arredondamento\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"0\" },\n { label: \"Padrão\", value: \"0.75rem\" },\n { label: \"Grande\", value: \"1.25rem\" },\n ],\n group: \"Aparência\",\n },\n shadow: {\n label: \"Sombra\",\n inputType: \"select\",\n options: [\n { label: \"Nenhuma\", value: \"none\" },\n { label: \"Suave\", value: \"sm\" },\n { label: \"Média\", value: \"md\" },\n ],\n group: \"Aparência\",\n },\n },\n};\n\n// Auto-registro\ncomponentRegistry.register(blogSearchBarBlock);\n"],"names":["blogSearchBarBlock","componentRegistry"],"mappings":";AAGO,MAAMA,IAAuD;AAAA,EAClE,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,cAAc;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,UAAU;AAAA,IACV,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,QAAQ;AAAA,EAAA;AAAA,EAEV,eAAe;AAAA,IACb,aAAa,EAAE,OAAO,eAAe,WAAW,QAAQ,OAAO,WAAA;AAAA,IAC/D,SAAS;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,UAAA;AAAA,QAC1B,EAAE,OAAO,YAAY,OAAO,YAAA;AAAA,QAC5B,EAAE,OAAO,gBAAgB,OAAO,cAAA;AAAA,MAAc;AAAA,IAChD;AAAA,IAEF,UAAU,EAAE,OAAO,iBAAiB,WAAW,YAAY,OAAO,YAAA;AAAA,IAClE,WAAW,EAAE,OAAO,gBAAgB,WAAW,QAAQ,OAAO,gBAAA;AAAA,IAC9D,kBAAkB;AAAA,MAChB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,UAAU,EAAE,OAAO,WAAW,QAAQ,eAAA;AAAA,IAAe;AAAA,IAEvD,YAAY;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,UAAU,EAAE,OAAO,WAAW,QAAQ,eAAA;AAAA,IAAe;AAAA,IAEvD,YAAY;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,UAAU,EAAE,OAAO,WAAW,QAAQ,eAAA;AAAA,IAAe;AAAA,IAEvD,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,IAAA;AAAA,QAC1B,EAAE,OAAO,UAAU,OAAO,UAAA;AAAA,QAC1B,EAAE,OAAO,UAAU,OAAO,UAAA;AAAA,MAAU;AAAA,MAEtC,OAAO;AAAA,IAAA;AAAA,IAET,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,WAAW,OAAO,OAAA;AAAA,QAC3B,EAAE,OAAO,SAAS,OAAO,KAAA;AAAA,QACzB,EAAE,OAAO,SAAS,OAAO,KAAA;AAAA,MAAK;AAAA,MAEhC,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAGAC,EAAkB,SAASD,CAAkB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"blogTagCloud.d.ts","sourceRoot":"","sources":["../../../../../src/engine/registry/blocks/sections/blogTagCloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,eAAO,MAAM,iBAAiB,EAAE,eAwB/B,CAAC"}
1
+ {"version":3,"file":"blogTagCloud.d.ts","sourceRoot":"","sources":["../../../../../src/engine/registry/blocks/sections/blogTagCloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,eAAO,MAAM,iBAAiB,EAAE,eAiF/B,CAAC"}
@@ -1,5 +1,5 @@
1
- import { componentRegistry as t } from "../../registry.js";
2
- const e = {
1
+ import { componentRegistry as e } from "../../registry.js";
2
+ const l = {
3
3
  type: "blogTagCloud",
4
4
  name: "Nuvem de Tags",
5
5
  description: "Widget com tags dos posts do blog",
@@ -8,7 +8,13 @@ const e = {
8
8
  defaultProps: {
9
9
  title: "Tags",
10
10
  tags: [],
11
- variant: "badges"
11
+ variant: "badges",
12
+ linkColor: "#374151",
13
+ linkHoverColor: "#2563eb",
14
+ linkHoverEffect: "background",
15
+ linkHoverIntensity: 50,
16
+ borderRadius: "0.75rem",
17
+ shadow: "none"
12
18
  },
13
19
  inspectorMeta: {
14
20
  title: { label: "Título", inputType: "text", group: "Conteúdo" },
@@ -21,11 +27,62 @@ const e = {
21
27
  ],
22
28
  group: "Exibição"
23
29
  },
24
- tags: { label: "Tags", inputType: "text", readOnly: !0, group: "Dados" }
30
+ tags: { label: "Tags", inputType: "text", readOnly: !0, group: "Dados" },
31
+ linkColor: {
32
+ label: "Cor do Texto",
33
+ inputType: "color-advanced",
34
+ group: "Links"
35
+ },
36
+ linkHoverColor: {
37
+ label: "Cor (Hover)",
38
+ inputType: "color-advanced",
39
+ group: "Links"
40
+ },
41
+ linkHoverEffect: {
42
+ label: "Efeito Hover",
43
+ inputType: "select",
44
+ options: [
45
+ { label: "Fundo", value: "background" },
46
+ { label: "Sublinhado", value: "underline" },
47
+ { label: "Sublinhado Centro", value: "underline-center" },
48
+ { label: "Fundo Subindo", value: "slide-bg" },
49
+ { label: "Escala", value: "scale" },
50
+ { label: "Brilho Neon", value: "glow" }
51
+ ],
52
+ group: "Links"
53
+ },
54
+ linkHoverIntensity: {
55
+ label: "Intensidade",
56
+ inputType: "slider",
57
+ min: 10,
58
+ max: 100,
59
+ step: 10,
60
+ group: "Links"
61
+ },
62
+ borderRadius: {
63
+ label: "Arredondamento",
64
+ inputType: "select",
65
+ options: [
66
+ { label: "Nenhum", value: "0" },
67
+ { label: "Padrão", value: "0.75rem" },
68
+ { label: "Grande", value: "1.25rem" }
69
+ ],
70
+ group: "Aparência"
71
+ },
72
+ shadow: {
73
+ label: "Sombra",
74
+ inputType: "select",
75
+ options: [
76
+ { label: "Nenhuma", value: "none" },
77
+ { label: "Suave", value: "sm" },
78
+ { label: "Média", value: "md" }
79
+ ],
80
+ group: "Aparência"
81
+ }
25
82
  }
26
83
  };
27
- t.register(e);
84
+ e.register(l);
28
85
  export {
29
- e as blogTagCloudBlock
86
+ l as blogTagCloudBlock
30
87
  };
31
88
  //# sourceMappingURL=blogTagCloud.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blogTagCloud.js","sources":["../../../../../src/engine/registry/blocks/sections/blogTagCloud.ts"],"sourcesContent":["import { BlockDefinition } from \"../../types\";\nimport { componentRegistry } from \"../../registry\";\n\nexport const blogTagCloudBlock: BlockDefinition = {\n type: \"blogTagCloud\",\n name: \"Nuvem de Tags\",\n description: \"Widget com tags dos posts do blog\",\n category: \"sections\",\n pluginId: \"blog\",\n defaultProps: {\n title: \"Tags\",\n tags: [],\n variant: \"badges\",\n },\n inspectorMeta: {\n title: { label: \"Título\", inputType: \"text\", group: \"Conteúdo\" },\n variant: {\n label: \"Estilo\",\n inputType: \"select\",\n options: [\n { value: \"badges\", label: \"Badges\" },\n { value: \"list\", label: \"Lista\" },\n ],\n group: \"Exibição\",\n },\n tags: { label: \"Tags\", inputType: \"text\", readOnly: true, group: \"Dados\" },\n },\n};\n\n// Auto-registro\ncomponentRegistry.register(blogTagCloudBlock);\n"],"names":["blogTagCloudBlock","componentRegistry"],"mappings":";AAGO,MAAMA,IAAqC;AAAA,EAChD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,IACZ,OAAO;AAAA,IACP,MAAM,CAAA;AAAA,IACN,SAAS;AAAA,EAAA;AAAA,EAEX,eAAe;AAAA,IACb,OAAO,EAAE,OAAO,UAAU,WAAW,QAAQ,OAAO,WAAA;AAAA,IACpD,SAAS;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,SAAA;AAAA,QAC1B,EAAE,OAAO,QAAQ,OAAO,QAAA;AAAA,MAAQ;AAAA,MAElC,OAAO;AAAA,IAAA;AAAA,IAET,MAAM,EAAE,OAAO,QAAQ,WAAW,QAAQ,UAAU,IAAM,OAAO,QAAA;AAAA,EAAQ;AAE7E;AAGAC,EAAkB,SAASD,CAAiB;"}
1
+ {"version":3,"file":"blogTagCloud.js","sources":["../../../../../src/engine/registry/blocks/sections/blogTagCloud.ts"],"sourcesContent":["import { BlockDefinition } from \"../../types\";\nimport { componentRegistry } from \"../../registry\";\n\nexport const blogTagCloudBlock: BlockDefinition = {\n type: \"blogTagCloud\",\n name: \"Nuvem de Tags\",\n description: \"Widget com tags dos posts do blog\",\n category: \"sections\",\n pluginId: \"blog\",\n defaultProps: {\n title: \"Tags\",\n tags: [],\n variant: \"badges\",\n linkColor: \"#374151\",\n linkHoverColor: \"#2563eb\",\n linkHoverEffect: \"background\",\n linkHoverIntensity: 50,\n borderRadius: \"0.75rem\",\n shadow: \"none\",\n },\n inspectorMeta: {\n title: { label: \"Título\", inputType: \"text\", group: \"Conteúdo\" },\n variant: {\n label: \"Estilo\",\n inputType: \"select\",\n options: [\n { value: \"badges\", label: \"Badges\" },\n { value: \"list\", label: \"Lista\" },\n ],\n group: \"Exibição\",\n },\n tags: { label: \"Tags\", inputType: \"text\", readOnly: true, group: \"Dados\" },\n linkColor: {\n label: \"Cor do Texto\",\n inputType: \"color-advanced\",\n group: \"Links\",\n },\n linkHoverColor: {\n label: \"Cor (Hover)\",\n inputType: \"color-advanced\",\n group: \"Links\",\n },\n linkHoverEffect: {\n label: \"Efeito Hover\",\n inputType: \"select\",\n options: [\n { label: \"Fundo\", value: \"background\" },\n { label: \"Sublinhado\", value: \"underline\" },\n { label: \"Sublinhado Centro\", value: \"underline-center\" },\n { label: \"Fundo Subindo\", value: \"slide-bg\" },\n { label: \"Escala\", value: \"scale\" },\n { label: \"Brilho Neon\", value: \"glow\" },\n ],\n group: \"Links\",\n },\n linkHoverIntensity: {\n label: \"Intensidade\",\n inputType: \"slider\",\n min: 10,\n max: 100,\n step: 10,\n group: \"Links\",\n },\n borderRadius: {\n label: \"Arredondamento\",\n inputType: \"select\",\n options: [\n { label: \"Nenhum\", value: \"0\" },\n { label: \"Padrão\", value: \"0.75rem\" },\n { label: \"Grande\", value: \"1.25rem\" },\n ],\n group: \"Aparência\",\n },\n shadow: {\n label: \"Sombra\",\n inputType: \"select\",\n options: [\n { label: \"Nenhuma\", value: \"none\" },\n { label: \"Suave\", value: \"sm\" },\n { label: \"Média\", value: \"md\" },\n ],\n group: \"Aparência\",\n },\n },\n};\n\n// Auto-registro\ncomponentRegistry.register(blogTagCloudBlock);\n"],"names":["blogTagCloudBlock","componentRegistry"],"mappings":";AAGO,MAAMA,IAAqC;AAAA,EAChD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,IACZ,OAAO;AAAA,IACP,MAAM,CAAA;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,cAAc;AAAA,IACd,QAAQ;AAAA,EAAA;AAAA,EAEV,eAAe;AAAA,IACb,OAAO,EAAE,OAAO,UAAU,WAAW,QAAQ,OAAO,WAAA;AAAA,IACpD,SAAS;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,SAAA;AAAA,QAC1B,EAAE,OAAO,QAAQ,OAAO,QAAA;AAAA,MAAQ;AAAA,MAElC,OAAO;AAAA,IAAA;AAAA,IAET,MAAM,EAAE,OAAO,QAAQ,WAAW,QAAQ,UAAU,IAAM,OAAO,QAAA;AAAA,IACjE,WAAW;AAAA,MACT,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,SAAS,OAAO,aAAA;AAAA,QACzB,EAAE,OAAO,cAAc,OAAO,YAAA;AAAA,QAC9B,EAAE,OAAO,qBAAqB,OAAO,mBAAA;AAAA,QACrC,EAAE,OAAO,iBAAiB,OAAO,WAAA;AAAA,QACjC,EAAE,OAAO,UAAU,OAAO,QAAA;AAAA,QAC1B,EAAE,OAAO,eAAe,OAAO,OAAA;AAAA,MAAO;AAAA,MAExC,OAAO;AAAA,IAAA;AAAA,IAET,oBAAoB;AAAA,MAClB,OAAO;AAAA,MACP,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,UAAU,OAAO,IAAA;AAAA,QAC1B,EAAE,OAAO,UAAU,OAAO,UAAA;AAAA,QAC1B,EAAE,OAAO,UAAU,OAAO,UAAA;AAAA,MAAU;AAAA,MAEtC,OAAO;AAAA,IAAA;AAAA,IAET,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,SAAS;AAAA,QACP,EAAE,OAAO,WAAW,OAAO,OAAA;AAAA,QAC3B,EAAE,OAAO,SAAS,OAAO,KAAA;AAAA,QACzB,EAAE,OAAO,SAAS,OAAO,KAAA;AAAA,MAAK;AAAA,MAEhC,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAGAC,EAAkB,SAASD,CAAiB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/layout/GridRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC,SAAS,CA2DjB"}
1
+ {"version":3,"file":"GridRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/layout/GridRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC,SAAS,CAmIjB"}
@@ -1,27 +1,60 @@
1
- import { jsx as p, jsxs as y } from "react/jsx-runtime";
1
+ import { jsxs as p, jsx as r } from "react/jsx-runtime";
2
2
  import g from "react";
3
- import { renderBlockNode as v } from "../../renderNodeImpl.js";
4
- function $(e, l) {
5
- const { cols: r = 3, colTemplate: a, gap: c = "1rem", maxWidth: t, padding: d, paddingTop: n, children: f = [] } = e.props, h = typeof r == "number" ? r : r.lg || r.md || r.sm || 3, u = a || `repeat(${h}, 1fr)`, o = a ? `@media (max-width: 767px) { #grid-${e.id} { grid-template-columns: 1fr !important; } }` : "", i = {};
6
- (t || d || n) && (t && (i.maxWidth = t, i.marginLeft = "auto", i.marginRight = "auto"), d && (i.paddingLeft = d, i.paddingRight = d), n && (i.paddingTop = n));
7
- const x = t || d || n, m = /* @__PURE__ */ p(
3
+ import { renderBlockNode as B } from "../../renderNodeImpl.js";
4
+ function k(t, c) {
5
+ const {
6
+ cols: n = 2,
7
+ colTemplate: f,
8
+ gap: C = "2.5rem",
9
+ maxWidth: u,
10
+ padding: l,
11
+ paddingTop: h,
12
+ paddingBottom: y,
13
+ contentPosition: b = "center",
14
+ bg: s,
15
+ bgImage: d,
16
+ bgOverlay: R,
17
+ bgOverlayColor: S = "rgba(0,0,0,0.5)",
18
+ bgGradient: m,
19
+ children: v = []
20
+ } = t.props, $ = typeof n == "number" ? n : n.lg || n.md || n.sm || 2, w = f || `repeat(${$}, 1fr)`, a = f ? `@media (max-width: 767px) { #grid-${t.id} { grid-template-columns: 1fr !important; } }` : "", i = {
21
+ display: "grid",
22
+ gridTemplateColumns: w,
23
+ gap: C,
24
+ boxSizing: "border-box",
25
+ width: "100%",
26
+ position: "relative"
27
+ };
28
+ if (u && (i.maxWidth = u, b === "left" ? i.marginRight = "auto" : b === "right" ? i.marginLeft = "auto" : (i.marginLeft = "auto", i.marginRight = "auto")), l && (i.paddingLeft = l, i.paddingRight = l), h && (i.paddingTop = h), y && (i.paddingBottom = y), !(s || d || m))
29
+ return /* @__PURE__ */ p(g.Fragment, { children: [
30
+ a && /* @__PURE__ */ r("style", { children: a }),
31
+ /* @__PURE__ */ r("div", { id: `grid-${t.id}`, style: i, children: v.map((o) => /* @__PURE__ */ r(g.Fragment, { children: B(o, c + 1) }, o.id)) })
32
+ ] }, t.id);
33
+ const e = {
34
+ width: "100%",
35
+ position: "relative"
36
+ };
37
+ s && (e.backgroundColor = s), d && (e.backgroundImage = `url(${d})`, e.backgroundSize = "cover", e.backgroundPosition = "center", e.backgroundRepeat = "no-repeat"), m && !d && (e.background = m);
38
+ const x = d && R ? /* @__PURE__ */ r(
8
39
  "div",
9
40
  {
10
- id: `grid-${e.id}`,
11
41
  style: {
12
- display: "grid",
13
- gridTemplateColumns: u,
14
- gap: c
15
- },
16
- children: f.map((s) => /* @__PURE__ */ p(g.Fragment, { children: v(s, l + 1) }, s.id))
42
+ position: "absolute",
43
+ inset: 0,
44
+ backgroundColor: S,
45
+ zIndex: 0
46
+ }
17
47
  }
18
- );
19
- return /* @__PURE__ */ y(g.Fragment, { children: [
20
- o && /* @__PURE__ */ p("style", { children: o }),
21
- x ? /* @__PURE__ */ p("div", { style: i, children: m }) : m
22
- ] }, e.id);
48
+ ) : null;
49
+ return x && (i.position = "relative", i.zIndex = 1), /* @__PURE__ */ p(g.Fragment, { children: [
50
+ a && /* @__PURE__ */ r("style", { children: a }),
51
+ /* @__PURE__ */ p("div", { style: e, children: [
52
+ x,
53
+ /* @__PURE__ */ r("div", { id: `grid-${t.id}`, style: i, children: v.map((o) => /* @__PURE__ */ r(g.Fragment, { children: B(o, c + 1) }, o.id)) })
54
+ ] })
55
+ ] }, t.id);
23
56
  }
24
57
  export {
25
- $ as renderGrid
58
+ k as renderGrid
26
59
  };
27
60
  //# sourceMappingURL=GridRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridRenderer.js","sources":["../../../../../src/engine/render/renderers/layout/GridRenderer.tsx"],"sourcesContent":["/**\n * Grid Renderer\n * Renderiza bloco de grid com CSS Grid\n * Suporte a colTemplate para templates customizados (ex: \"1fr 320px\")\n * Suporte a maxWidth e padding para espaçamento\n */\n\nimport React from \"react\";\nimport { GridBlock } from \"../../../schema/siteDocument\";\nimport { renderBlockNode } from \"../../renderNodeImpl\";\n\nexport function renderGrid(\n block: GridBlock,\n depth: number,\n): React.ReactNode {\n const { cols = 3, colTemplate, gap = \"1rem\", maxWidth, padding, paddingTop, children = [] } = block.props;\n\n const gridCols =\n typeof cols === \"number\" ? cols : cols.lg || cols.md || cols.sm || 3;\n\n const gridTemplateColumns = colTemplate || `repeat(${gridCols}, 1fr)`;\n\n // When colTemplate is used, add responsive style to collapse to 1fr on mobile\n const responsiveStyle = colTemplate\n ? `@media (max-width: 767px) { #grid-${block.id} { grid-template-columns: 1fr !important; } }`\n : \"\";\n\n // Wrapper styles for maxWidth + padding (container-like behavior)\n const wrapperStyle: React.CSSProperties = {};\n if (maxWidth || padding || paddingTop) {\n if (maxWidth) {\n wrapperStyle.maxWidth = maxWidth;\n wrapperStyle.marginLeft = \"auto\";\n wrapperStyle.marginRight = \"auto\";\n }\n if (padding) {\n wrapperStyle.paddingLeft = padding;\n wrapperStyle.paddingRight = padding;\n }\n if (paddingTop) {\n wrapperStyle.paddingTop = paddingTop;\n }\n }\n\n const hasWrapper = maxWidth || padding || paddingTop;\n\n const gridDiv = (\n <div\n id={`grid-${block.id}`}\n style={{\n display: \"grid\",\n gridTemplateColumns,\n gap,\n }}\n >\n {children.map((child) => (\n <React.Fragment key={child.id}>\n {renderBlockNode(child, depth + 1)}\n </React.Fragment>\n ))}\n </div>\n );\n\n return (\n <React.Fragment key={block.id}>\n {responsiveStyle && <style>{responsiveStyle}</style>}\n {hasWrapper ? (\n <div style={wrapperStyle}>{gridDiv}</div>\n ) : (\n gridDiv\n )}\n </React.Fragment>\n );\n}\n"],"names":["renderGrid","block","depth","cols","colTemplate","gap","maxWidth","padding","paddingTop","children","gridCols","gridTemplateColumns","responsiveStyle","wrapperStyle","hasWrapper","gridDiv","jsx","child","React","renderBlockNode","jsxs"],"mappings":";;;AAWO,SAASA,EACdC,GACAC,GACiB;AACjB,QAAM,EAAE,MAAAC,IAAO,GAAG,aAAAC,GAAa,KAAAC,IAAM,QAAQ,UAAAC,GAAU,SAAAC,GAAS,YAAAC,GAAY,UAAAC,IAAW,CAAA,EAAC,IAAMR,EAAM,OAE9FS,IACJ,OAAOP,KAAS,WAAWA,IAAOA,EAAK,MAAMA,EAAK,MAAMA,EAAK,MAAM,GAE/DQ,IAAsBP,KAAe,UAAUM,CAAQ,UAGvDE,IAAkBR,IACpB,qCAAqCH,EAAM,EAAE,kDAC7C,IAGEY,IAAoC,CAAA;AAC1C,GAAIP,KAAYC,KAAWC,OACrBF,MACFO,EAAa,WAAWP,GACxBO,EAAa,aAAa,QAC1BA,EAAa,cAAc,SAEzBN,MACFM,EAAa,cAAcN,GAC3BM,EAAa,eAAeN,IAE1BC,MACFK,EAAa,aAAaL;AAI9B,QAAMM,IAAaR,KAAYC,KAAWC,GAEpCO,IACJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,QAAQf,EAAM,EAAE;AAAA,MACpB,OAAO;AAAA,QACL,SAAS;AAAA,QACT,qBAAAU;AAAA,QACA,KAAAN;AAAA,MAAA;AAAA,MAGD,UAAAI,EAAS,IAAI,CAACQ,wBACZC,EAAM,UAAN,EACE,UAAAC,EAAgBF,GAAOf,IAAQ,CAAC,EAAA,GADde,EAAM,EAE3B,CACD;AAAA,IAAA;AAAA,EAAA;AAIL,SACE,gBAAAG,EAACF,EAAM,UAAN,EACE,UAAA;AAAA,IAAAN,KAAmB,gBAAAI,EAAC,WAAO,UAAAJ,EAAA,CAAgB;AAAA,IAC3CE,IACC,gBAAAE,EAAC,OAAA,EAAI,OAAOH,GAAe,aAAQ,IAEnCE;AAAA,EAAA,EAAA,GALiBd,EAAM,EAO3B;AAEJ;"}
1
+ {"version":3,"file":"GridRenderer.js","sources":["../../../../../src/engine/render/renderers/layout/GridRenderer.tsx"],"sourcesContent":["/**\n * Grid Renderer\n * Full-width outer wrapper for background effects (color, image, gradient, overlay)\n * Inner grid constrained by maxWidth with CSS Grid columns\n * Responsive: colTemplate collapses to 1fr on mobile\n */\n\nimport React from \"react\";\nimport { GridBlock } from \"../../../schema/siteDocument\";\nimport { renderBlockNode } from \"../../renderNodeImpl\";\n\nexport function renderGrid(\n block: GridBlock,\n depth: number,\n): React.ReactNode {\n const {\n cols = 2,\n colTemplate,\n gap = \"2.5rem\",\n maxWidth,\n padding,\n paddingTop,\n paddingBottom,\n contentPosition = \"center\",\n bg,\n bgImage,\n bgOverlay,\n bgOverlayColor = \"rgba(0,0,0,0.5)\",\n bgGradient,\n children = [],\n } = block.props;\n\n const gridCols =\n typeof cols === \"number\" ? cols : cols.lg || cols.md || cols.sm || 2;\n\n const gridTemplateColumns = colTemplate || `repeat(${gridCols}, 1fr)`;\n\n // Responsive style: collapse to 1fr on mobile when colTemplate is used\n const responsiveStyle = colTemplate\n ? `@media (max-width: 767px) { #grid-${block.id} { grid-template-columns: 1fr !important; } }`\n : \"\";\n\n // Inner grid styles\n const gridStyle: React.CSSProperties = {\n display: \"grid\",\n gridTemplateColumns,\n gap,\n boxSizing: \"border-box\",\n width: \"100%\",\n position: \"relative\",\n };\n\n if (maxWidth) {\n gridStyle.maxWidth = maxWidth;\n if (contentPosition === \"left\") {\n gridStyle.marginRight = \"auto\";\n } else if (contentPosition === \"right\") {\n gridStyle.marginLeft = \"auto\";\n } else {\n gridStyle.marginLeft = \"auto\";\n gridStyle.marginRight = \"auto\";\n }\n }\n if (padding) {\n gridStyle.paddingLeft = padding;\n gridStyle.paddingRight = padding;\n }\n if (paddingTop) {\n gridStyle.paddingTop = paddingTop;\n }\n if (paddingBottom) {\n gridStyle.paddingBottom = paddingBottom;\n }\n\n // Check if we need an outer wrapper for background effects\n const hasBgEffects = bg || bgImage || bgGradient;\n\n if (!hasBgEffects) {\n // No background effects — render grid directly (no wrapper overhead)\n return (\n <React.Fragment key={block.id}>\n {responsiveStyle && <style>{responsiveStyle}</style>}\n <div id={`grid-${block.id}`} style={gridStyle}>\n {children.map((child) => (\n <React.Fragment key={child.id}>\n {renderBlockNode(child, depth + 1)}\n </React.Fragment>\n ))}\n </div>\n </React.Fragment>\n );\n }\n\n // Full-width outer wrapper for background effects\n const wrapperStyle: React.CSSProperties = {\n width: \"100%\",\n position: \"relative\",\n };\n\n if (bg) {\n wrapperStyle.backgroundColor = bg;\n }\n if (bgImage) {\n wrapperStyle.backgroundImage = `url(${bgImage})`;\n wrapperStyle.backgroundSize = \"cover\";\n wrapperStyle.backgroundPosition = \"center\";\n wrapperStyle.backgroundRepeat = \"no-repeat\";\n }\n if (bgGradient && !bgImage) {\n wrapperStyle.background = bgGradient;\n }\n\n // Overlay element (only if bgImage + bgOverlay)\n const overlayEl = bgImage && bgOverlay ? (\n <div\n style={{\n position: \"absolute\",\n inset: 0,\n backgroundColor: bgOverlayColor,\n zIndex: 0,\n }}\n />\n ) : null;\n\n // When using wrapper, the grid is positioned above the overlay\n if (overlayEl) {\n gridStyle.position = \"relative\";\n gridStyle.zIndex = 1;\n }\n\n return (\n <React.Fragment key={block.id}>\n {responsiveStyle && <style>{responsiveStyle}</style>}\n <div style={wrapperStyle}>\n {overlayEl}\n <div id={`grid-${block.id}`} style={gridStyle}>\n {children.map((child) => (\n <React.Fragment key={child.id}>\n {renderBlockNode(child, depth + 1)}\n </React.Fragment>\n ))}\n </div>\n </div>\n </React.Fragment>\n );\n}\n"],"names":["renderGrid","block","depth","cols","colTemplate","gap","maxWidth","padding","paddingTop","paddingBottom","contentPosition","bg","bgImage","bgOverlay","bgOverlayColor","bgGradient","children","gridCols","gridTemplateColumns","responsiveStyle","gridStyle","jsxs","React","jsx","child","renderBlockNode","wrapperStyle","overlayEl"],"mappings":";;;AAWO,SAASA,EACdC,GACAC,GACiB;AACjB,QAAM;AAAA,IACJ,MAAAC,IAAO;AAAA,IACP,aAAAC;AAAA,IACA,KAAAC,IAAM;AAAA,IACN,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,IAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC,IAAiB;AAAA,IACjB,YAAAC;AAAA,IACA,UAAAC,IAAW,CAAA;AAAA,EAAC,IACVf,EAAM,OAEJgB,IACJ,OAAOd,KAAS,WAAWA,IAAOA,EAAK,MAAMA,EAAK,MAAMA,EAAK,MAAM,GAE/De,IAAsBd,KAAe,UAAUa,CAAQ,UAGvDE,IAAkBf,IACpB,qCAAqCH,EAAM,EAAE,kDAC7C,IAGEmB,IAAiC;AAAA,IACrC,SAAS;AAAA,IACT,qBAAAF;AAAA,IACA,KAAAb;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AA4BZ,MAzBIC,MACFc,EAAU,WAAWd,GACjBI,MAAoB,SACtBU,EAAU,cAAc,SACfV,MAAoB,UAC7BU,EAAU,aAAa,UAEvBA,EAAU,aAAa,QACvBA,EAAU,cAAc,UAGxBb,MACFa,EAAU,cAAcb,GACxBa,EAAU,eAAeb,IAEvBC,MACFY,EAAU,aAAaZ,IAErBC,MACFW,EAAU,gBAAgBX,IAMxB,EAFiBE,KAAMC,KAAWG;AAIpC,WACE,gBAAAM,EAACC,EAAM,UAAN,EACE,UAAA;AAAA,MAAAH,KAAmB,gBAAAI,EAAC,WAAO,UAAAJ,EAAA,CAAgB;AAAA,MAC5C,gBAAAI,EAAC,OAAA,EAAI,IAAI,QAAQtB,EAAM,EAAE,IAAI,OAAOmB,GACjC,UAAAJ,EAAS,IAAI,CAACQ,MACb,gBAAAD,EAACD,EAAM,UAAN,EACE,UAAAG,EAAgBD,GAAOtB,IAAQ,CAAC,EAAA,GADdsB,EAAM,EAE3B,CACD,EAAA,CACH;AAAA,IAAA,EAAA,GARmBvB,EAAM,EAS3B;AAKJ,QAAMyB,IAAoC;AAAA,IACxC,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AAGZ,EAAIf,MACFe,EAAa,kBAAkBf,IAE7BC,MACFc,EAAa,kBAAkB,OAAOd,CAAO,KAC7Cc,EAAa,iBAAiB,SAC9BA,EAAa,qBAAqB,UAClCA,EAAa,mBAAmB,cAE9BX,KAAc,CAACH,MACjBc,EAAa,aAAaX;AAI5B,QAAMY,IAAYf,KAAWC,IAC3B,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAU;AAAA,QACV,OAAO;AAAA,QACP,iBAAiBT;AAAA,QACjB,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,EAAA,IAEA;AAGJ,SAAIa,MACFP,EAAU,WAAW,YACrBA,EAAU,SAAS,IAInB,gBAAAC,EAACC,EAAM,UAAN,EACE,UAAA;AAAA,IAAAH,KAAmB,gBAAAI,EAAC,WAAO,UAAAJ,EAAA,CAAgB;AAAA,IAC5C,gBAAAE,EAAC,OAAA,EAAI,OAAOK,GACT,UAAA;AAAA,MAAAC;AAAA,MACD,gBAAAJ,EAAC,OAAA,EAAI,IAAI,QAAQtB,EAAM,EAAE,IAAI,OAAOmB,GACjC,UAAAJ,EAAS,IAAI,CAACQ,MACb,gBAAAD,EAACD,EAAM,UAAN,EACE,UAAAG,EAAgBD,GAAOtB,IAAQ,CAAC,EAAA,GADdsB,EAAM,EAE3B,CACD,EAAA,CACH;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,GAXmBvB,EAAM,EAY3B;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StackRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/layout/StackRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC,SAAS,CAsEjB"}
1
+ {"version":3,"file":"StackRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/layout/StackRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC,SAAS,CAkFjB"}
@@ -1,43 +1,48 @@
1
- import { jsxs as g, jsx as n } from "react/jsx-runtime";
2
- import c from "react";
3
- import { renderBlockNode as u } from "../../renderNodeImpl.js";
4
- function v(t, o) {
1
+ import { jsxs as j, jsx as r } from "react/jsx-runtime";
2
+ import d from "react";
3
+ import { renderBlockNode as k } from "../../renderNodeImpl.js";
4
+ function $(t, p) {
5
5
  const {
6
- direction: l = "col",
7
- gap: p = "1rem",
8
- align: r = "stretch",
6
+ direction: s = "col",
7
+ gap: l = "1rem",
8
+ align: i = "stretch",
9
9
  justify: e = "start",
10
- wrap: d = !1,
11
- sticky: s = !1,
12
- stickyOffset: f = "80px",
13
- children: m = []
14
- } = t.props, x = l === "row" ? "row" : "column", y = r === "start" ? "flex-start" : r === "end" ? "flex-end" : r === "center" ? "center" : "stretch", h = e === "start" ? "flex-start" : e === "end" ? "flex-end" : e === "center" ? "center" : e === "space-between" ? "space-between" : "space-around", w = s ? {
10
+ wrap: f = !1,
11
+ sticky: a = !1,
12
+ stickyOffset: m = "80px",
13
+ paddingBottom: x,
14
+ children: y = []
15
+ } = t.props, h = s === "row" ? "row" : "column", u = i === "start" ? "flex-start" : i === "end" ? "flex-end" : i === "center" ? "center" : "stretch", w = e === "start" ? "flex-start" : e === "end" ? "flex-end" : e === "center" ? "center" : e === "space-between" ? "space-between" : "space-around", g = a ? {
15
16
  position: "sticky",
16
- top: f,
17
+ top: m,
17
18
  alignSelf: "flex-start"
18
- } : {}, i = s ? `@media (max-width: 767px) { #stack-${t.id} { position: static !important; align-self: stretch !important; } }` : "";
19
- return /* @__PURE__ */ g(c.Fragment, { children: [
20
- i && /* @__PURE__ */ n("style", { children: i }),
21
- /* @__PURE__ */ n(
19
+ } : {}, n = [];
20
+ s === "row" && n.push(`@media (max-width: 767px) { #stack-${t.id} { flex-direction: column !important; } }`), a && n.push(`@media (max-width: 767px) { #stack-${t.id} { position: static !important; align-self: stretch !important; } }`);
21
+ const o = n.join(`
22
+ `);
23
+ return /* @__PURE__ */ j(d.Fragment, { children: [
24
+ o && /* @__PURE__ */ r("style", { children: o }),
25
+ /* @__PURE__ */ r(
22
26
  "div",
23
27
  {
24
28
  id: `stack-${t.id}`,
25
29
  style: {
26
30
  display: "flex",
27
- flexDirection: x,
28
- gap: p,
29
- alignItems: y,
30
- justifyContent: h,
31
- flexWrap: d ? "wrap" : "nowrap",
32
- ...w
31
+ flexDirection: h,
32
+ gap: l,
33
+ alignItems: u,
34
+ justifyContent: w,
35
+ flexWrap: f ? "wrap" : "nowrap",
36
+ paddingBottom: x || void 0,
37
+ ...g
33
38
  },
34
- children: m.map((a) => /* @__PURE__ */ n(c.Fragment, { children: u(a, o + 1) }, a.id))
39
+ children: y.map((c) => /* @__PURE__ */ r(d.Fragment, { children: k(c, p + 1) }, c.id))
35
40
  },
36
41
  t.id
37
42
  )
38
43
  ] }, t.id);
39
44
  }
40
45
  export {
41
- v as renderStack
46
+ $ as renderStack
42
47
  };
43
48
  //# sourceMappingURL=StackRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StackRenderer.js","sources":["../../../../../src/engine/render/renderers/layout/StackRenderer.tsx"],"sourcesContent":["/**\n * Stack Renderer\n * Renderiza bloco de stack com flex layout\n * Suporte a sticky positioning para sidebars\n */\n\nimport React from \"react\";\nimport { StackBlock } from \"../../../schema/siteDocument\";\nimport { renderBlockNode } from \"../../renderNodeImpl\";\n\nexport function renderStack(\n block: StackBlock,\n depth: number,\n): React.ReactNode {\n const {\n direction = \"col\",\n gap = \"1rem\",\n align = \"stretch\",\n justify = \"start\",\n wrap = false,\n sticky = false,\n stickyOffset = \"80px\",\n children = [],\n } = block.props;\n\n const flexDirection = direction === \"row\" ? \"row\" : \"column\";\n const alignItems =\n align === \"start\"\n ? \"flex-start\"\n : align === \"end\"\n ? \"flex-end\"\n : align === \"center\"\n ? \"center\"\n : \"stretch\";\n const justifyContent =\n justify === \"start\"\n ? \"flex-start\"\n : justify === \"end\"\n ? \"flex-end\"\n : justify === \"center\"\n ? \"center\"\n : justify === \"space-between\"\n ? \"space-between\"\n : \"space-around\";\n\n // Sticky: position sticky + top offset + align-self flex-start (required in grid)\n const stickyStyles: React.CSSProperties = sticky\n ? {\n position: \"sticky\",\n top: stickyOffset,\n alignSelf: \"flex-start\",\n }\n : {};\n\n // Responsive: disable sticky on mobile via media query\n const responsiveStyle = sticky\n ? `@media (max-width: 767px) { #stack-${block.id} { position: static !important; align-self: stretch !important; } }`\n : \"\";\n\n return (\n <React.Fragment key={block.id}>\n {responsiveStyle && <style>{responsiveStyle}</style>}\n <div\n id={`stack-${block.id}`}\n key={block.id}\n style={{\n display: \"flex\",\n flexDirection,\n gap,\n alignItems,\n justifyContent,\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n ...stickyStyles,\n }}\n >\n {children.map((child) => (\n <React.Fragment key={child.id}>\n {renderBlockNode(child, depth + 1)}\n </React.Fragment>\n ))}\n </div>\n </React.Fragment>\n );\n}\n"],"names":["renderStack","block","depth","direction","gap","align","justify","wrap","sticky","stickyOffset","children","flexDirection","alignItems","justifyContent","stickyStyles","responsiveStyle","jsxs","React","jsx","child","renderBlockNode"],"mappings":";;;AAUO,SAASA,EACdC,GACAC,GACiB;AACjB,QAAM;AAAA,IACJ,WAAAC,IAAY;AAAA,IACZ,KAAAC,IAAM;AAAA,IACN,OAAAC,IAAQ;AAAA,IACR,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,QAAAC,IAAS;AAAA,IACT,cAAAC,IAAe;AAAA,IACf,UAAAC,IAAW,CAAA;AAAA,EAAC,IACVT,EAAM,OAEJU,IAAgBR,MAAc,QAAQ,QAAQ,UAC9CS,IACJP,MAAU,UACN,eACAA,MAAU,QACR,aACAA,MAAU,WACR,WACA,WACJQ,IACJP,MAAY,UACR,eACAA,MAAY,QACV,aACAA,MAAY,WACV,WACAA,MAAY,kBACV,kBACA,gBAGNQ,IAAoCN,IACtC;AAAA,IACE,UAAU;AAAA,IACV,KAAKC;AAAA,IACL,WAAW;AAAA,EAAA,IAEb,CAAA,GAGEM,IAAkBP,IACpB,sCAAsCP,EAAM,EAAE,wEAC9C;AAEJ,SACE,gBAAAe,EAACC,EAAM,UAAN,EACE,UAAA;AAAA,IAAAF,KAAmB,gBAAAG,EAAC,WAAO,UAAAH,EAAA,CAAgB;AAAA,IAC5C,gBAAAG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,SAASjB,EAAM,EAAE;AAAA,QAErB,OAAO;AAAA,UACL,SAAS;AAAA,UACT,eAAAU;AAAA,UACA,KAAAP;AAAA,UACA,YAAAQ;AAAA,UACA,gBAAAC;AAAA,UACA,UAAUN,IAAO,SAAS;AAAA,UAC1B,GAAGO;AAAA,QAAA;AAAA,QAGJ,UAAAJ,EAAS,IAAI,CAACS,wBACZF,EAAM,UAAN,EACE,UAAAG,EAAgBD,GAAOjB,IAAQ,CAAC,EAAA,GADdiB,EAAM,EAE3B,CACD;AAAA,MAAA;AAAA,MAfIlB,EAAM;AAAA,IAAA;AAAA,EAgBb,EAAA,GApBmBA,EAAM,EAqB3B;AAEJ;"}
1
+ {"version":3,"file":"StackRenderer.js","sources":["../../../../../src/engine/render/renderers/layout/StackRenderer.tsx"],"sourcesContent":["/**\n * Stack Renderer\n * Renderiza bloco de stack com flex layout\n * Suporte a sticky positioning para sidebars\n */\n\nimport React from \"react\";\nimport { StackBlock } from \"../../../schema/siteDocument\";\nimport { renderBlockNode } from \"../../renderNodeImpl\";\n\nexport function renderStack(\n block: StackBlock,\n depth: number,\n): React.ReactNode {\n const {\n direction = \"col\",\n gap = \"1rem\",\n align = \"stretch\",\n justify = \"start\",\n wrap = false,\n sticky = false,\n stickyOffset = \"80px\",\n paddingBottom,\n children = [],\n } = block.props;\n\n const flexDirection = direction === \"row\" ? \"row\" : \"column\";\n const alignItems =\n align === \"start\"\n ? \"flex-start\"\n : align === \"end\"\n ? \"flex-end\"\n : align === \"center\"\n ? \"center\"\n : \"stretch\";\n const justifyContent =\n justify === \"start\"\n ? \"flex-start\"\n : justify === \"end\"\n ? \"flex-end\"\n : justify === \"center\"\n ? \"center\"\n : justify === \"space-between\"\n ? \"space-between\"\n : \"space-around\";\n\n // Sticky: position sticky + top offset + align-self flex-start (required in grid)\n const stickyStyles: React.CSSProperties = sticky\n ? {\n position: \"sticky\",\n top: stickyOffset,\n alignSelf: \"flex-start\",\n }\n : {};\n\n // Responsive media queries\n const mediaQueryParts: string[] = [];\n\n // direction=row → force column on mobile\n if (direction === \"row\") {\n mediaQueryParts.push(`@media (max-width: 767px) { #stack-${block.id} { flex-direction: column !important; } }`);\n }\n\n // Sticky disable on mobile\n if (sticky) {\n mediaQueryParts.push(`@media (max-width: 767px) { #stack-${block.id} { position: static !important; align-self: stretch !important; } }`);\n }\n\n const responsiveStyle = mediaQueryParts.join(\"\\n\");\n\n return (\n <React.Fragment key={block.id}>\n {responsiveStyle && <style>{responsiveStyle}</style>}\n <div\n id={`stack-${block.id}`}\n key={block.id}\n style={{\n display: \"flex\",\n flexDirection,\n gap,\n alignItems,\n justifyContent,\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n paddingBottom: paddingBottom || undefined,\n ...stickyStyles,\n }}\n >\n {children.map((child) => (\n <React.Fragment key={child.id}>\n {renderBlockNode(child, depth + 1)}\n </React.Fragment>\n ))}\n </div>\n </React.Fragment>\n );\n}\n"],"names":["renderStack","block","depth","direction","gap","align","justify","wrap","sticky","stickyOffset","paddingBottom","children","flexDirection","alignItems","justifyContent","stickyStyles","mediaQueryParts","responsiveStyle","jsxs","React","jsx","child","renderBlockNode"],"mappings":";;;AAUO,SAASA,EACdC,GACAC,GACiB;AACjB,QAAM;AAAA,IACJ,WAAAC,IAAY;AAAA,IACZ,KAAAC,IAAM;AAAA,IACN,OAAAC,IAAQ;AAAA,IACR,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,QAAAC,IAAS;AAAA,IACT,cAAAC,IAAe;AAAA,IACf,eAAAC;AAAA,IACA,UAAAC,IAAW,CAAA;AAAA,EAAC,IACVV,EAAM,OAEJW,IAAgBT,MAAc,QAAQ,QAAQ,UAC9CU,IACJR,MAAU,UACN,eACAA,MAAU,QACR,aACAA,MAAU,WACR,WACA,WACJS,IACJR,MAAY,UACR,eACAA,MAAY,QACV,aACAA,MAAY,WACV,WACAA,MAAY,kBACV,kBACA,gBAGNS,IAAoCP,IACtC;AAAA,IACE,UAAU;AAAA,IACV,KAAKC;AAAA,IACL,WAAW;AAAA,EAAA,IAEb,CAAA,GAGEO,IAA4B,CAAA;AAGlC,EAAIb,MAAc,SAChBa,EAAgB,KAAK,sCAAsCf,EAAM,EAAE,2CAA2C,GAI5GO,KACFQ,EAAgB,KAAK,sCAAsCf,EAAM,EAAE,qEAAqE;AAG1I,QAAMgB,IAAkBD,EAAgB,KAAK;AAAA,CAAI;AAEjD,SACE,gBAAAE,EAACC,EAAM,UAAN,EACE,UAAA;AAAA,IAAAF,KAAmB,gBAAAG,EAAC,WAAO,UAAAH,EAAA,CAAgB;AAAA,IAC5C,gBAAAG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,SAASnB,EAAM,EAAE;AAAA,QAErB,OAAO;AAAA,UACL,SAAS;AAAA,UACT,eAAAW;AAAA,UACA,KAAAR;AAAA,UACA,YAAAS;AAAA,UACA,gBAAAC;AAAA,UACA,UAAUP,IAAO,SAAS;AAAA,UAC1B,eAAeG,KAAiB;AAAA,UAChC,GAAGK;AAAA,QAAA;AAAA,QAGJ,UAAAJ,EAAS,IAAI,CAACU,wBACZF,EAAM,UAAN,EACE,UAAAG,EAAgBD,GAAOnB,IAAQ,CAAC,EAAA,GADdmB,EAAM,EAE3B,CACD;AAAA,MAAA;AAAA,MAhBIpB,EAAM;AAAA,IAAA;AAAA,EAiBb,EAAA,GArBmBA,EAAM,EAsB3B;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"BlogCategoryFilterRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/BlogCategoryFilterRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAsOpE"}
1
+ {"version":3,"file":"BlogCategoryFilterRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/BlogCategoryFilterRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CA0QpE"}