@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
@@ -1,222 +1,282 @@
1
- import { escapeHtml as e, dataBlockIdAttr as k } from "../../shared/htmlHelpers.js";
2
- import { generateScopedId as S } from "../../shared/idGenerator.js";
3
- import { resolveResponsiveColumns as D, generateResponsiveGridStyles as E } from "../../shared/responsiveGridHelper.js";
4
- function U(r, p, u, b) {
1
+ import { escapeHtml as e, dataBlockIdAttr as B } from "../../shared/htmlHelpers.js";
2
+ import { generateScopedId as D } from "../../shared/idGenerator.js";
3
+ import { resolveResponsiveColumns as L, generateResponsiveGridStyles as M } from "../../shared/responsiveGridHelper.js";
4
+ import { resolveWidgetShadow as _ } from "../../../shared/widgetStyles.js";
5
+ import { generateLinkHoverStyles as q } from "../../../shared/hoverEffects/linkHover.js";
6
+ function Q(t, $, b, C) {
5
7
  const {
6
- title: i,
7
- excerpt: o,
8
- image: n,
9
- date: d,
10
- category: s,
11
- authorName: m,
12
- authorAvatar: t,
13
- readingTime: c,
14
- linkHref: a,
15
- linkText: f,
16
- variant: v = "default",
17
- showImage: g = !0,
18
- showCategory: $ = !0,
19
- showDate: l = !0,
20
- showAuthor: h = !1,
21
- showReadingTime: y = !1
22
- } = r.props;
23
- if (v === "horizontal") {
24
- const w = g && n ? `<div style="width: 260px; min-height: 180px; flex-shrink: 0; background-image: url(${e(n)}); background-size: cover; background-position: center;"></div>` : "", z = [];
25
- $ && s && z.push(e(s)), l && d && z.push(e(d)), y && c && z.push(e(c));
26
- const P = z.length ? `<p style="font-size: 0.75rem; color: var(--sg-muted-text); margin-bottom: 0.5rem;">${z.join(" &middot; ")}</p>` : "", T = h && m ? `<div style="display: flex; align-items: center; gap: 0.5rem; margin-top: auto; padding-top: 0.75rem;">${t ? `<img src="${e(t)}" alt="${e(m)}" style="width: 28px; height: 28px; border-radius: 50%; object-fit: cover;" />` : ""}<span style="font-size: 0.8rem; color: var(--sg-muted-text);">${e(m)}</span></div>` : "", _ = f ? `<a href="${e(a || "#")}" style="color: var(--sg-primary); font-weight: 500; text-decoration: none; font-size: 0.875rem;">${e(f)}</a>` : "";
27
- return `<article ${k(r.id)} class="sg-blog-post-card" style="display: flex; background-color: var(--sg-bg); border-radius: var(--sg-card-radius); overflow: hidden; box-shadow: var(--sg-card-shadow);" data-variant="horizontal">${w}<div style="padding: 1.25rem; display: flex; flex-direction: column; flex: 1;">${P}<h3 style="font-size: 1.125rem; font-weight: 600; margin-bottom: 0.5rem;">${e(i)}</h3>${o ? `<p style="color: var(--sg-muted-text); font-size: 0.875rem; margin-bottom: 0.75rem;">${e(o)}</p>` : ""}${_}${T}</div></article>`;
8
+ title: l,
9
+ excerpt: r,
10
+ image: g,
11
+ date: p,
12
+ category: v,
13
+ authorName: f,
14
+ authorAvatar: n,
15
+ readingTime: o,
16
+ linkHref: h,
17
+ linkText: d,
18
+ variant: H = "default",
19
+ showImage: z = !0,
20
+ showCategory: a = !0,
21
+ showDate: k = !0,
22
+ showAuthor: P = !1,
23
+ showReadingTime: m = !1
24
+ } = t.props;
25
+ if (H === "horizontal") {
26
+ const x = z && g ? `<div style="width: 260px; min-height: 180px; flex-shrink: 0; background-image: url(${e(g)}); background-size: cover; background-position: center;"></div>` : "", I = [];
27
+ a && v && I.push(e(v)), k && p && I.push(e(p)), m && o && I.push(e(o));
28
+ const u = I.length ? `<p style="font-size: 0.75rem; color: var(--sg-muted-text); margin-bottom: 0.5rem;">${I.join(" &middot; ")}</p>` : "", j = P && f ? `<div style="display: flex; align-items: center; gap: 0.5rem; margin-top: auto; padding-top: 0.75rem;">${n ? `<img src="${e(n)}" alt="${e(f)}" style="width: 28px; height: 28px; border-radius: 50%; object-fit: cover;" />` : ""}<span style="font-size: 0.8rem; color: var(--sg-muted-text);">${e(f)}</span></div>` : "", A = d ? `<a href="${e(h || "#")}" style="color: var(--sg-primary); font-weight: 500; text-decoration: none; font-size: 0.875rem;">${e(d)}</a>` : "";
29
+ return `<article ${B(t.id)} class="sg-blog-post-card" style="display: flex; background-color: var(--sg-bg); border-radius: var(--sg-card-radius); overflow: hidden; box-shadow: var(--sg-card-shadow);" data-variant="horizontal">${x}<div style="padding: 1.25rem; display: flex; flex-direction: column; flex: 1;">${u}<h3 style="font-size: 1.125rem; font-weight: 600; margin-bottom: 0.5rem;">${e(l)}</h3>${r ? `<p style="color: var(--sg-muted-text); font-size: 0.875rem; margin-bottom: 0.75rem;">${e(r)}</p>` : ""}${A}${j}</div></article>`;
28
30
  }
29
- if (v === "minimal") {
30
- const w = [];
31
- $ && s && w.push(e(s)), l && d && w.push(e(d)), y && c && w.push(e(c));
32
- const z = w.length ? `<p style="font-size: 0.75rem; color: var(--sg-muted-text); margin-bottom: 0.5rem;">${w.join(" &middot; ")}</p>` : "", P = f ? `<a href="${e(a || "#")}" style="color: var(--sg-primary); font-weight: 500; text-decoration: none; font-size: 0.875rem;">${e(f)}</a>` : "";
33
- return `<article ${k(r.id)} class="sg-blog-post-card" style="padding: 1.25rem 0; border-bottom: 1px solid var(--sg-border, #e5e7eb);" data-variant="minimal">${z}<h3 style="font-size: 1.125rem; font-weight: 600; margin-bottom: 0.25rem;">${e(i)}</h3>${o ? `<p style="color: var(--sg-muted-text); font-size: 0.875rem; margin-bottom: 0.5rem;">${e(o)}</p>` : ""}${P}</article>`;
31
+ if (H === "minimal") {
32
+ const x = [];
33
+ a && v && x.push(e(v)), k && p && x.push(e(p)), m && o && x.push(e(o));
34
+ const I = x.length ? `<p style="font-size: 0.75rem; color: var(--sg-muted-text); margin-bottom: 0.5rem;">${x.join(" &middot; ")}</p>` : "", u = d ? `<a href="${e(h || "#")}" style="color: var(--sg-primary); font-weight: 500; text-decoration: none; font-size: 0.875rem;">${e(d)}</a>` : "";
35
+ return `<article ${B(t.id)} class="sg-blog-post-card" style="padding: 1.25rem 0; border-bottom: 1px solid var(--sg-border, #e5e7eb);" data-variant="minimal">${I}<h3 style="font-size: 1.125rem; font-weight: 600; margin-bottom: 0.25rem;">${e(l)}</h3>${r ? `<p style="color: var(--sg-muted-text); font-size: 0.875rem; margin-bottom: 0.5rem;">${e(r)}</p>` : ""}${u}</article>`;
34
36
  }
35
- const H = g && n ? `<div style="height: 200px; background-image: url(${e(n)}); background-size: cover; background-position: center;"></div>` : "", x = [];
36
- $ && s && x.push(e(s)), l && d && x.push(e(d)), y && c && x.push(e(c));
37
- const j = x.length ? `<p style="font-size: 0.75rem; color: var(--sg-muted-text); margin-bottom: 0.5rem;">${x.join(" &middot; ")}</p>` : "", C = h && m ? `<div style="display: flex; align-items: center; gap: 0.5rem; margin-top: 1rem;">${t ? `<img src="${e(t)}" alt="${e(m)}" style="width: 32px; height: 32px; border-radius: 50%; object-fit: cover;" />` : ""}<span style="font-size: 0.8rem; color: var(--sg-muted-text);">${e(m)}</span></div>` : "", A = f ? `<a href="${e(a || "#")}" style="color: var(--sg-primary); font-weight: 500; text-decoration: none; font-size: 0.875rem;">${e(f)}</a>` : "";
38
- return `<article ${k(r.id)} class="sg-blog-post-card" style="background-color: var(--sg-bg); border-radius: var(--sg-card-radius); overflow: hidden; box-shadow: var(--sg-card-shadow);" data-variant="default">${H}<div style="padding: 1.5rem;">${j}<h3 style="font-size: 1.125rem; font-weight: 600; margin-bottom: 0.5rem;">${e(i)}</h3>${o ? `<p style="color: var(--sg-muted-text); font-size: 0.875rem; margin-bottom: 1rem;">${e(o)}</p>` : ""}${A}${C}</div></article>`;
37
+ const y = z && g ? `<div style="height: 200px; background-image: url(${e(g)}); background-size: cover; background-position: center;"></div>` : "", s = [];
38
+ a && v && s.push(e(v)), k && p && s.push(e(p)), m && o && s.push(e(o));
39
+ const c = s.length ? `<p style="font-size: 0.75rem; color: var(--sg-muted-text); margin-bottom: 0.5rem;">${s.join(" &middot; ")}</p>` : "", S = P && f ? `<div style="display: flex; align-items: center; gap: 0.5rem; margin-top: 1rem;">${n ? `<img src="${e(n)}" alt="${e(f)}" style="width: 32px; height: 32px; border-radius: 50%; object-fit: cover;" />` : ""}<span style="font-size: 0.8rem; color: var(--sg-muted-text);">${e(f)}</span></div>` : "", w = d ? `<a href="${e(h || "#")}" style="color: var(--sg-primary); font-weight: 500; text-decoration: none; font-size: 0.875rem;">${e(d)}</a>` : "";
40
+ return `<article ${B(t.id)} class="sg-blog-post-card" style="background-color: var(--sg-bg); border-radius: var(--sg-card-radius); overflow: hidden; box-shadow: var(--sg-card-shadow);" data-variant="default">${y}<div style="padding: 1.5rem;">${c}<h3 style="font-size: 1.125rem; font-weight: 600; margin-bottom: 0.5rem;">${e(l)}</h3>${r ? `<p style="color: var(--sg-muted-text); font-size: 0.875rem; margin-bottom: 1rem;">${e(r)}</p>` : ""}${w}${S}</div></article>`;
39
41
  }
40
- function I(r, p) {
41
- if (p <= 1) return r;
42
- const u = r.includes("?") ? "&" : "?";
43
- return `${r}${u}pagina=${p}`;
42
+ function N(t, $) {
43
+ if ($ <= 1) return t;
44
+ const b = t.includes("?") ? "&" : "?";
45
+ return `${t}${b}pagina=${$}`;
44
46
  }
45
- function M(r, p) {
46
- if (p <= 7)
47
- return Array.from({ length: p }, (o, n) => n + 1);
48
- const u = [1];
49
- r > 3 && u.push(-1);
50
- const b = Math.max(2, r - 1), i = Math.min(p - 1, r + 1);
51
- for (let o = b; o <= i; o++) u.push(o);
52
- return r < p - 2 && u.push(-1), u[u.length - 1] !== p && u.push(p), u;
47
+ function Y(t, $) {
48
+ if ($ <= 7)
49
+ return Array.from({ length: $ }, (r, g) => g + 1);
50
+ const b = [1];
51
+ t > 3 && b.push(-1);
52
+ const C = Math.max(2, t - 1), l = Math.min($ - 1, t + 1);
53
+ for (let r = C; r <= l; r++) b.push(r);
54
+ return t < $ - 2 && b.push(-1), b[b.length - 1] !== $ && b.push($), b;
53
55
  }
54
- function G(r, p, u) {
55
- if (p <= 1) return "";
56
- const b = "display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--sg-card-radius, 0.5rem);text-decoration:none;font-size:0.875rem;", i = "border:1px solid var(--sg-border, #e5e7eb);", o = "border:1px solid var(--sg-primary);", n = r > 1 ? `<a href="${e(I(u, r - 1))}" style="${b}${i}color:var(--sg-text);">&lsaquo;</a>` : `<span style="${b}${i}color:var(--sg-muted-text);opacity:0.4;">&lsaquo;</span>`, s = M(r, p).map((t, c) => {
57
- if (t === -1)
58
- return `<span style="${b}color:var(--sg-muted-text);">&hellip;</span>`;
59
- const a = t === r;
60
- return `<a href="${e(I(u, t))}" style="${b}${a ? o : i}background-color:${a ? "var(--sg-primary)" : "transparent"};color:${a ? "var(--sg-primary-text, #fff)" : "var(--sg-text)"};font-weight:${a ? "600" : "400"};">${t}</a>`;
61
- }).join(""), m = r < p ? `<a href="${e(I(u, r + 1))}" style="${b}${i}color:var(--sg-text);">&rsaquo;</a>` : `<span style="${b}${i}color:var(--sg-muted-text);opacity:0.4;">&rsaquo;</span>`;
62
- return `<nav data-block-group="Paginação" style="display:flex;justify-content:center;align-items:center;gap:0.375rem;margin-top:2.5rem;">${n}${s}${m}</nav>`;
56
+ function F(t, $, b) {
57
+ if ($ <= 1) return "";
58
+ const C = "display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--sg-card-radius, 0.5rem);text-decoration:none;font-size:0.875rem;", l = "border:1px solid var(--sg-border, #e5e7eb);", r = "border:1px solid var(--sg-primary);", g = t > 1 ? `<a href="${e(N(b, t - 1))}" style="${C}${l}color:var(--sg-text);">&lsaquo;</a>` : `<span style="${C}${l}color:var(--sg-muted-text);opacity:0.4;">&lsaquo;</span>`, v = Y(t, $).map((n, o) => {
59
+ if (n === -1)
60
+ return `<span style="${C}color:var(--sg-muted-text);">&hellip;</span>`;
61
+ const h = n === t;
62
+ return `<a href="${e(N(b, n))}" style="${C}${h ? r : l}background-color:${h ? "var(--sg-primary)" : "transparent"};color:${h ? "var(--sg-primary-text, #fff)" : "var(--sg-text)"};font-weight:${h ? "600" : "400"};">${n}</a>`;
63
+ }).join(""), f = t < $ ? `<a href="${e(N(b, t + 1))}" style="${C}${l}color:var(--sg-text);">&rsaquo;</a>` : `<span style="${C}${l}color:var(--sg-muted-text);opacity:0.4;">&rsaquo;</span>`;
64
+ return `<nav data-block-group="Paginação" style="display:flex;justify-content:center;align-items:center;gap:0.375rem;margin-top:2.5rem;">${g}${v}${f}</nav>`;
63
65
  }
64
- function O(r, p, u, b, i) {
66
+ function J(t, $, b, C, l) {
65
67
  const {
66
- title: o,
67
- subtitle: n,
68
- columns: d = 3,
69
- cards: s = [],
70
- showViewAll: m = !1,
71
- viewAllText: t,
72
- viewAllHref: c,
73
- currentPage: a = 1,
74
- totalPages: f = 1,
75
- paginationBaseUrl: v = "#"
76
- } = r.props, g = S(r.id || "", "blog-post-grid"), $ = D(d, 1, 2, d), { inlineStyles: l, mediaQueries: h } = E(
77
- g,
78
- $,
68
+ title: r,
69
+ subtitle: g,
70
+ columns: p = 3,
71
+ cards: v = [],
72
+ showViewAll: f = !1,
73
+ viewAllText: n,
74
+ viewAllHref: o,
75
+ currentPage: h = 1,
76
+ totalPages: d = 1,
77
+ paginationBaseUrl: H = "#"
78
+ } = t.props, z = D(t.id || "", "blog-post-grid"), a = L(p, 1, 2, p), { inlineStyles: k, mediaQueries: P } = M(
79
+ z,
80
+ a,
79
81
  "2rem"
80
- ), y = o || n ? `<div data-block-group="Cabeçalho" style="text-align: center; margin-bottom: 3rem;">${o ? `<h2 style="font-size: var(--sg-heading-h2); margin-bottom: 0.5rem;">${e(o)}</h2>` : ""}${n ? `<p style="color: var(--sg-muted-text);">${e(n)}</p>` : ""}</div>` : "";
81
- if (!i)
82
+ ), m = r || g ? `<div data-block-group="Cabeçalho" style="text-align: center; margin-bottom: 3rem;">${r ? `<h2 style="font-size: var(--sg-heading-h2); margin-bottom: 0.5rem;">${e(r)}</h2>` : ""}${g ? `<p style="color: var(--sg-muted-text);">${e(g)}</p>` : ""}</div>` : "";
83
+ if (!l)
82
84
  throw new Error("exportBlogPostGrid requires renderChild function");
83
- const H = s.length > 0 ? s.map(
84
- (C, A) => i(
85
+ const y = v.length > 0 ? v.map(
86
+ (S, w) => l(
85
87
  {
86
- id: `${r.id}-card-${A}`,
88
+ id: `${t.id}-card-${w}`,
87
89
  type: "blogPostCard",
88
- props: C
90
+ props: S
89
91
  },
90
- p + 1,
91
- u,
92
- b
92
+ $ + 1,
93
+ b,
94
+ C
93
95
  )
94
- ).join("") : '<div style="grid-column: 1 / -1; text-align: center; padding: 3rem 1rem; color: var(--sg-muted-text); border: 2px dashed var(--sg-border, #e5e7eb); border-radius: var(--sg-card-radius, 0.5rem);"><p style="font-size: 1rem; margin-bottom: 0.5rem;">Nenhum post encontrado</p><p style="font-size: 0.875rem;">Os posts aparecerão aqui quando forem publicados.</p></div>', x = m && t ? `<div data-block-group="Rodapé" style="text-align: center; margin-top: 2.5rem;"><a href="${e(c || "#")}" style="display: inline-block; padding: 0.75rem 1.5rem; background-color: var(--sg-primary); color: var(--sg-primary-text, #fff); font-weight: 600; border-radius: var(--sg-button-radius); text-decoration: none;">${e(t)}</a></div>` : "", j = G(a, f, v);
95
- return `<style>${h}</style><section ${k(r.id)} style="padding: 4rem 0; background-color: var(--sg-bg);"><div style="max-width: 1200px; margin: 0 auto; padding: 0 1rem;">${y}<div data-block-group="Layout" id="${g}" style="${l}">${H}</div>${x}${j}</div></section>`;
96
+ ).join("") : '<div style="grid-column: 1 / -1; text-align: center; padding: 3rem 1rem; color: var(--sg-muted-text); border: 2px dashed var(--sg-border, #e5e7eb); border-radius: var(--sg-card-radius, 0.5rem);"><p style="font-size: 1rem; margin-bottom: 0.5rem;">Nenhum post encontrado</p><p style="font-size: 0.875rem;">Os posts aparecerão aqui quando forem publicados.</p></div>', s = f && n ? `<div data-block-group="Rodapé" style="text-align: center; margin-top: 2.5rem;"><a href="${e(o || "#")}" style="display: inline-block; padding: 0.75rem 1.5rem; background-color: var(--sg-primary); color: var(--sg-primary-text, #fff); font-weight: 600; border-radius: var(--sg-button-radius); text-decoration: none;">${e(n)}</a></div>` : "", c = F(h, d, H);
97
+ return `<style>${P}</style><section ${B(t.id)} style="padding: 4rem 0; background-color: var(--sg-bg);"><div style="max-width: 1200px; margin: 0 auto; padding: 0 1rem;">${m}<div data-block-group="Layout" id="${z}" style="${k}">${y}</div>${s}${c}</div></section>`;
96
98
  }
97
- function Q(r, p, u, b) {
99
+ function K(t, $, b, C) {
98
100
  const {
99
- title: i,
100
- content: o,
101
- featuredImage: n,
102
- date: d,
103
- category: s,
104
- readingTime: m,
105
- tags: t = [],
106
- showFeaturedImage: c = !0,
107
- showAuthor: a = !0,
108
- authorVariant: f = "inline",
109
- showDate: v = !0,
110
- showTags: g = !0,
111
- showReadingTime: $ = !0,
112
- contentMaxWidth: l = "720px",
113
- authorName: h,
114
- authorAvatar: y,
115
- authorBio: H
116
- } = r.props, x = e(h || "Nome do Autor"), j = H ? e(H) : "", C = c && n ? `<div data-block-group="Mídia" style="width: 100%; height: 400px; background-image: url(${e(n)}); background-size: cover; background-position: center; border-radius: var(--sg-card-radius); margin-bottom: 2rem;"></div>` : "", A = s ? `<span style="display: inline-block; padding: 0.25rem 0.75rem; background-color: var(--sg-primary); color: var(--sg-primary-text, #fff); border-radius: 999px; font-size: 0.75rem; font-weight: 600; margin-bottom: 1rem;">${e(s)}</span>` : "", w = [];
117
- v && d && w.push(e(d)), $ && m && w.push(e(m));
118
- const z = w.length ? `<p style="color: var(--sg-muted-text); font-size: 0.875rem; margin-bottom: 1.5rem;">${w.join(" &middot; ")}</p>` : "", P = `<h1 data-block-group="Conteúdo" style="font-size: var(--sg-heading-h1, 2.25rem); font-weight: 700; margin-bottom: 0.75rem; line-height: 1.2;">${e(i)}</h1>`, T = o ? `<div class="sg-blog-post-content" style="font-size: 1.0625rem; line-height: 1.75; color: var(--sg-text);">${o}</div>` : "", _ = y ? `<img src="${e(y)}" alt="${x}" style="width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0;" />` : `<div style="width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg, var(--sg-primary, #6366f1) 0%, #818cf8 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sg-primary-text, #fff);font-size:1.5rem;font-weight:700;">${x.charAt(0).toUpperCase()}</div>`, q = y ? `<img src="${e(y)}" alt="${x}" style="width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;" />` : `<div style="width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg, var(--sg-primary, #6366f1) 0%, #818cf8 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sg-primary-text, #fff);font-size:1.1rem;font-weight:700;">${x.charAt(0).toUpperCase()}</div>`;
119
- let B = "";
120
- if (a) {
121
- const N = j ? `<p style="color:var(--sg-muted-text);font-size:0.875rem;margin:0.25rem 0 0;">${j}</p>` : "";
122
- f === "card" ? B = `<div data-block-group="Autor" style="display:flex;align-items:flex-start;gap:1rem;margin-top:3rem;padding:1.25rem;border-radius:var(--sg-card-radius, 0.75rem);background-color:var(--sg-surface, #f9fafb);">${_}<div><div style="font-size:0.75rem;color:var(--sg-muted-text);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.125rem;">Escrito por</div><div style="font-weight:600;font-size:1rem;">${x}</div>${N}</div></div>` : f === "minimal" ? B = `<p data-block-group="Autor" style="margin-top:3rem;padding-top:2rem;border-top:1px solid var(--sg-border, #e5e7eb);color:var(--sg-muted-text);font-size:0.9375rem;">Escrito por <span style="font-weight:600;color:var(--sg-text);">${x}</span></p>` : B = `<div data-block-group="Autor" style="display:flex;align-items:center;gap:0.75rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--sg-border, #e5e7eb);">${q}<div><div style="font-size:0.75rem;color:var(--sg-muted-text);">Escrito por</div><div style="font-weight:600;font-size:0.9375rem;">${x}</div></div></div>`;
101
+ title: l,
102
+ content: r,
103
+ featuredImage: g,
104
+ date: p,
105
+ category: v,
106
+ readingTime: f,
107
+ tags: n = [],
108
+ showFeaturedImage: o = !0,
109
+ showAuthor: h = !0,
110
+ authorVariant: d = "inline",
111
+ showDate: H = !0,
112
+ showTags: z = !0,
113
+ showReadingTime: a = !0,
114
+ contentMaxWidth: k = "720px",
115
+ authorName: P,
116
+ authorAvatar: m,
117
+ authorBio: y
118
+ } = t.props, s = e(P || "Nome do Autor"), c = y ? e(y) : "", S = o && g ? `<div data-block-group="Mídia" style="width: 100%; margin: 0 auto 2.5rem auto; border-radius: var(--sg-card-radius); overflow: hidden;"><img src="${e(g)}" alt="${e(l || "")}" style="width: 100%; height: auto; max-height: 520px; object-fit: cover; display: block;" /></div>` : "", w = v ? `<span style="display: inline-block; padding: 0.25rem 0.75rem; background-color: var(--sg-primary); color: var(--sg-primary-text, #fff); border-radius: 999px; font-size: 0.75rem; font-weight: 600; margin-bottom: 1rem;">${e(v)}</span>` : "", x = [];
119
+ H && p && x.push(e(p)), a && f && x.push(e(f));
120
+ const I = x.length ? `<p style="color: var(--sg-muted-text); font-size: 0.875rem; margin-bottom: 1.5rem;">${x.join(" &middot; ")}</p>` : "", u = `<h1 data-block-group="Conteúdo" style="font-size: var(--sg-heading-h1, 2.25rem); font-weight: 700; margin-bottom: 0.75rem; line-height: 1.2;">${e(l)}</h1>`, j = r ? `<div class="sg-blog-post-content" style="font-size: 1.0625rem; line-height: 1.75; color: var(--sg-text);">${r}</div>` : "", A = m ? `<img src="${e(m)}" alt="${s}" style="width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0;" />` : `<div style="width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg, var(--sg-primary, #6366f1) 0%, #818cf8 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sg-primary-text, #fff);font-size:1.5rem;font-weight:700;">${s.charAt(0).toUpperCase()}</div>`, i = m ? `<img src="${e(m)}" alt="${s}" style="width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;" />` : `<div style="width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg, var(--sg-primary, #6366f1) 0%, #818cf8 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sg-primary-text, #fff);font-size:1.1rem;font-weight:700;">${s.charAt(0).toUpperCase()}</div>`;
121
+ let R = "";
122
+ if (h) {
123
+ const E = c ? `<p style="color:var(--sg-muted-text);font-size:0.875rem;margin:0.25rem 0 0;">${c}</p>` : "";
124
+ d === "card" ? R = `<div data-block-group="Autor" style="display:flex;align-items:flex-start;gap:1rem;margin-top:3rem;padding:1.25rem;border-radius:var(--sg-card-radius, 0.75rem);background-color:var(--sg-surface, #f9fafb);">${A}<div><div style="font-size:0.75rem;color:var(--sg-muted-text);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.125rem;">Escrito por</div><div style="font-weight:600;font-size:1rem;">${s}</div>${E}</div></div>` : d === "minimal" ? R = `<p data-block-group="Autor" style="margin-top:3rem;padding-top:2rem;border-top:1px solid var(--sg-border, #e5e7eb);color:var(--sg-muted-text);font-size:0.9375rem;">Escrito por <span style="font-weight:600;color:var(--sg-text);">${s}</span></p>` : R = `<div data-block-group="Autor" style="display:flex;align-items:center;gap:0.75rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--sg-border, #e5e7eb);">${i}<div><div style="font-size:0.75rem;color:var(--sg-muted-text);">Escrito por</div><div style="font-weight:600;font-size:0.9375rem;">${s}</div></div></div>`;
123
125
  }
124
- const R = g && t.length > 0 ? `<div data-block-group="Visibilidade" style="margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.5rem;">${t.map(
125
- (N) => `<span style="display: inline-block; padding: 0.25rem 0.75rem; background-color: var(--sg-surface, #f3f4f6); color: var(--sg-text); border-radius: 999px; font-size: 0.75rem;">${e(N)}</span>`
126
+ const T = z && n.length > 0 ? `<div data-block-group="Visibilidade" style="margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.5rem;">${n.map(
127
+ (E) => `<span style="display: inline-block; padding: 0.25rem 0.75rem; background-color: var(--sg-surface, #f3f4f6); color: var(--sg-text); border-radius: 999px; font-size: 0.75rem;">${e(E)}</span>`
126
128
  ).join("")}</div>` : "";
127
- return `<article ${k(r.id)} class="sg-blog-post-detail" style="padding: 4rem 0; background-color: var(--sg-bg);"><div style="max-width: ${e(l)}; margin: 0 auto; padding: 0 1rem;">${C}${A}${P}${z}${T}${B}${R}</div></article>`;
129
+ return `<article ${B(t.id)} class="sg-blog-post-detail" style="padding: 0; padding-bottom: 6rem;">${S}<div style="max-width: ${e(k)}; margin: 0 auto; padding: 0 1rem;">${w}${u}${I}${j}${R}${T}</div></article>`;
128
130
  }
129
- function W(r, p, u, b) {
131
+ function X(t, $, b, C) {
130
132
  const {
131
- title: i,
132
- categories: o = [],
133
- variant: n = "chips",
134
- showCount: d = !0,
135
- showAll: s = !0,
136
- allLabel: m = "Todas",
137
- activeCategory: t,
138
- filterUrl: c = "#"
139
- } = r.props, a = (g) => g ? e(`${c}?categoria=${g}`) : e(c);
140
- let f = "";
141
- if (n === "chips") {
142
- const g = s ? `<a href="${e(c)}" style="display:inline-flex;align-items:center;gap:0.375rem;padding:0.375rem 0.875rem;border-radius:9999px;font-size:0.875rem;font-weight:500;text-decoration:none;background-color:${t ? "var(--sg-surface, #f3f4f6)" : "var(--sg-primary)"};color:${t ? "var(--sg-text)" : "var(--sg-primary-text, #fff)"};">${e(m)}</a>` : "", $ = o.map((l) => {
143
- const h = t === l.slug, y = d && l.count != null ? `<span style="font-size:0.75rem;opacity:0.7;">(${l.count})</span>` : "";
144
- return `<a href="${a(l.slug)}" style="display:inline-flex;align-items:center;gap:0.375rem;padding:0.375rem 0.875rem;border-radius:9999px;font-size:0.875rem;font-weight:500;text-decoration:none;background-color:${h ? "var(--sg-primary)" : "var(--sg-surface, #f3f4f6)"};color:${h ? "var(--sg-primary-text, #fff)" : "var(--sg-text)"};">${e(l.name)}${y}</a>`;
133
+ title: l,
134
+ categories: r = [],
135
+ variant: g = "chips",
136
+ showCount: p = !0,
137
+ showAll: v = !0,
138
+ allLabel: f = "Todas",
139
+ activeCategory: n,
140
+ filterUrl: o = "#",
141
+ borderRadius: h = "0.75rem",
142
+ shadow: d = "none",
143
+ linkColor: H
144
+ } = t.props, z = H || "var(--sg-text)", a = `widget-cat-${t.id || ""}`, k = _(d), P = k !== "none" ? `box-shadow:${k};` : "", m = (u) => u ? e(`${o}?categoria=${u}`) : e(o), y = t.props.linkHoverColor || "", s = t.props.linkHoverEffect || "background", c = t.props.linkHoverIntensity ?? 50;
145
+ let S = "";
146
+ if (y) {
147
+ const u = q({
148
+ effect: s,
149
+ intensity: c,
150
+ hoverColor: y
151
+ }), j = u.base ? `#${a} .sg-cat-chip:not(.sg-cat-active), #${a} .sg-cat-btn:not(.sg-cat-active), #${a} .sg-cat-list-item { ${u.base}; transition: all 0.3s ease; }` : `#${a} .sg-cat-chip, #${a} .sg-cat-btn, #${a} .sg-cat-list-item { transition: all 0.3s ease; }`, A = `#${a} .sg-cat-chip:hover:not(.sg-cat-active), #${a} .sg-cat-btn:hover:not(.sg-cat-active), #${a} .sg-cat-list-item:hover { ${u.hover}; transition: all 0.3s ease; }`;
152
+ S = `<style>${j}
153
+ ${A}</style>`;
154
+ } else
155
+ S = `<style>
156
+ #${a} .sg-cat-chip:hover { opacity:0.8; transform:translateY(-1px); }
157
+ #${a} .sg-cat-btn:hover { border-color:var(--sg-primary) !important; color:var(--sg-primary) !important; }
158
+ #${a} .sg-cat-list-item:hover { background-color:rgba(0,0,0,0.04); }
159
+ </style>`;
160
+ let w = "";
161
+ if (g === "chips") {
162
+ const u = (i) => `display:inline-flex;align-items:center;gap:0.375rem;padding:0.375rem 0.875rem;border-radius:9999px;font-size:0.875rem;font-weight:500;text-decoration:none;background-color:${i ? "var(--sg-primary)" : "var(--sg-bg)"};color:${i ? "var(--sg-primary-text, #fff)" : z};transition:all 0.2s ease;`, j = v ? `<a href="${e(o)}" class="sg-cat-chip" style="${u(!n)}">${e(f)}</a>` : "", A = r.map((i) => {
163
+ const R = n === i.slug, T = p && i.count != null ? `<span style="font-size:0.75rem;opacity:0.7;">(${i.count})</span>` : "";
164
+ return `<a href="${m(i.slug)}" class="${R ? "sg-cat-active" : "sg-cat-chip"}" style="${u(R)}">${e(i.name)}${T}</a>`;
145
165
  }).join("");
146
- f = `<div style="display:flex;flex-wrap:wrap;gap:0.5rem;">${g}${$}</div>`;
147
- } else if (n === "buttons") {
148
- const g = s ? `<a href="${e(c)}" style="display:inline-flex;align-items:center;gap:0.375rem;padding:0.5rem 1rem;border-radius:var(--sg-card-radius, 0.5rem);font-size:0.875rem;font-weight:500;text-decoration:none;border:1px solid ${t ? "var(--sg-border, #e5e7eb)" : "var(--sg-primary)"};background-color:${t ? "transparent" : "var(--sg-primary)"};color:${t ? "var(--sg-text)" : "var(--sg-primary-text, #fff)"};">${e(m)}</a>` : "", $ = o.map((l) => {
149
- const h = t === l.slug, y = d && l.count != null ? `<span style="font-size:0.75rem;opacity:0.7;">(${l.count})</span>` : "";
150
- return `<a href="${a(l.slug)}" style="display:inline-flex;align-items:center;gap:0.375rem;padding:0.5rem 1rem;border-radius:var(--sg-card-radius, 0.5rem);font-size:0.875rem;font-weight:500;text-decoration:none;border:1px solid ${h ? "var(--sg-primary)" : "var(--sg-border, #e5e7eb)"};background-color:${h ? "var(--sg-primary)" : "transparent"};color:${h ? "var(--sg-primary-text, #fff)" : "var(--sg-text)"};">${e(l.name)}${y}</a>`;
166
+ w = `<div style="display:flex;flex-wrap:wrap;gap:0.5rem;">${j}${A}</div>`;
167
+ } else if (g === "buttons") {
168
+ const u = (i) => `display:inline-flex;align-items:center;gap:0.375rem;padding:0.5rem 1rem;border-radius:calc(${h} * 0.6);font-size:0.875rem;font-weight:500;text-decoration:none;border:1px solid ${i ? "var(--sg-primary)" : "var(--sg-border, #e5e7eb)"};background-color:${i ? "var(--sg-primary)" : "transparent"};color:${i ? "var(--sg-primary-text, #fff)" : z};transition:all 0.2s ease;`, j = v ? `<a href="${e(o)}" class="sg-cat-btn" style="${u(!n)}">${e(f)}</a>` : "", A = r.map((i) => {
169
+ const R = n === i.slug, T = p && i.count != null ? `<span style="font-size:0.75rem;opacity:0.7;">(${i.count})</span>` : "";
170
+ return `<a href="${m(i.slug)}" class="${R ? "sg-cat-active" : "sg-cat-btn"}" style="${u(R)}">${e(i.name)}${T}</a>`;
151
171
  }).join("");
152
- f = `<div style="display:flex;flex-wrap:wrap;gap:0.5rem;">${g}${$}</div>`;
172
+ w = `<div style="display:flex;flex-wrap:wrap;gap:0.5rem;">${j}${A}</div>`;
153
173
  } else {
154
- const g = s ? `<a href="${e(c)}" style="display:flex;align-items:center;justify-content:space-between;padding:0.625rem 0.75rem;border-radius:var(--sg-card-radius, 0.5rem);font-size:0.875rem;font-weight:${t ? "400" : "600"};text-decoration:none;background-color:${t ? "transparent" : "var(--sg-surface, #f3f4f6)"};color:${t ? "var(--sg-text)" : "var(--sg-primary)"};">${e(m)}</a>` : "", $ = o.map((l) => {
155
- const h = t === l.slug, y = d && l.count != null ? `<span style="font-size:0.75rem;color:var(--sg-muted-text);background-color:var(--sg-surface, #f3f4f6);padding:0.125rem 0.5rem;border-radius:9999px;">${l.count}</span>` : "";
156
- return `<a href="${a(l.slug)}" style="display:flex;align-items:center;justify-content:space-between;padding:0.625rem 0.75rem;border-radius:var(--sg-card-radius, 0.5rem);font-size:0.875rem;font-weight:${h ? "600" : "400"};text-decoration:none;background-color:${h ? "var(--sg-surface, #f3f4f6)" : "transparent"};color:${h ? "var(--sg-primary)" : "var(--sg-text)"};">${e(l.name)}${y}</a>`;
174
+ const u = (i) => `display:flex;align-items:center;justify-content:space-between;padding:0.625rem 0.75rem;border-radius:calc(${h} * 0.5);font-size:0.875rem;font-weight:${i ? "600" : "400"};text-decoration:none;background-color:${i ? "var(--sg-bg)" : "transparent"};color:${i ? "var(--sg-primary)" : z};transition:all 0.2s ease;`, j = v ? `<a href="${e(o)}" class="sg-cat-list-item" style="${u(!n)}">${e(f)}</a>` : "", A = r.map((i) => {
175
+ const R = n === i.slug, T = p && i.count != null ? `<span style="font-size:0.75rem;color:var(--sg-muted-text);background-color:var(--sg-bg);padding:0.125rem 0.5rem;border-radius:9999px;">${i.count}</span>` : "";
176
+ return `<a href="${m(i.slug)}" class="sg-cat-list-item" style="${u(R)}">${e(i.name)}${T}</a>`;
157
177
  }).join("");
158
- f = `<div style="display:flex;flex-direction:column;gap:0.25rem;">${g}${$}</div>`;
178
+ w = `<div style="display:flex;flex-direction:column;gap:0.125rem;">${j}${A}</div>`;
159
179
  }
160
- const v = i ? `<h3 style="font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--sg-text);">${e(i)}</h3>` : "";
161
- return `<div ${k(r.id)} data-block-group="Conteúdo" style="padding:1.5rem 0;background-color:var(--sg-bg);"><div style="max-width:1200px;margin:0 auto;padding:0 1rem;">${v}${f}</div></div>`;
180
+ const x = l ? `<div style="padding:1rem 1.25rem;border-bottom:1px solid var(--sg-border, #e5e7eb);"><h3 style="font-size:1rem;font-weight:600;margin:0;color:var(--sg-text);">${e(l)}</h3></div>` : "", I = g === "list" ? "padding:0.5rem 0.75rem;" : "padding:1rem 1.25rem;";
181
+ return `${S}<div id="${a}" ${B(t.id)} data-block-group="Conteúdo" style="background-color:var(--sg-surface, var(--sg-bg));border:1px solid var(--sg-border, #e5e7eb);border-radius:${h};${P}overflow:hidden;">${x}<div style="${I}">${w}</div></div>`;
162
182
  }
163
- function Y(r, p, u, b) {
183
+ function Z(t, $, b, C) {
164
184
  const {
165
- placeholder: i = "Buscar posts...",
166
- variant: o = "simple",
167
- showIcon: n = !0,
168
- searchUrl: d = "#",
169
- filterCategories: s = !1,
170
- filterTags: m = !1,
171
- filterDate: t = !1
172
- } = r.props, c = n ? '<svg style="position:absolute;left:0.75rem;top:50%;transform:translateY(-50%);width:1.25rem;height:1.25rem;color:var(--sg-muted-text);" fill="none" stroke="currentColor" viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35" stroke-linecap="round"/></svg>' : "", a = n ? "padding-left:2.5rem;" : "";
173
- if (o === "expanded") {
174
- const v = `<div style="position:relative;width:100%;max-width:600px;">${c}<input type="search" name="busca" placeholder="${e(i)}" style="width:100%;${a}padding-right:1rem;padding-top:0.875rem;padding-bottom:0.875rem;font-size:1.0625rem;border:2px solid var(--sg-border, #e5e7eb);border-radius:var(--sg-card-radius, 0.5rem);background-color:var(--sg-bg);color:var(--sg-text);outline:none;" /></div>`;
175
- return `<form ${k(r.id)} data-block-group="Conteúdo" action="${e(d)}" method="get" style="padding:2rem 0;background-color:var(--sg-bg);"><div style="max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;justify-content:center;">${v}</div></form>`;
176
- }
177
- if (o === "with-filters") {
178
- const v = `<div style="position:relative;flex:1;min-width:200px;">${c}<input type="search" name="busca" placeholder="${e(i)}" style="width:100%;${a}padding-right:1rem;padding-top:0.625rem;padding-bottom:0.625rem;font-size:0.875rem;border:1px solid var(--sg-border, #e5e7eb);border-radius:var(--sg-card-radius, 0.5rem);background-color:var(--sg-bg);color:var(--sg-text);outline:none;" /></div>`, g = [];
179
- return s && g.push('<select name="categoria" style="padding:0.625rem 0.75rem;font-size:0.875rem;border:1px solid var(--sg-border, #e5e7eb);border-radius:var(--sg-card-radius, 0.5rem);background-color:var(--sg-bg);color:var(--sg-text);"><option value="">Categoria</option></select>'), m && g.push('<select name="tag" style="padding:0.625rem 0.75rem;font-size:0.875rem;border:1px solid var(--sg-border, #e5e7eb);border-radius:var(--sg-card-radius, 0.5rem);background-color:var(--sg-bg);color:var(--sg-text);"><option value="">Tag</option></select>'), t && g.push('<select name="periodo" style="padding:0.625rem 0.75rem;font-size:0.875rem;border:1px solid var(--sg-border, #e5e7eb);border-radius:var(--sg-card-radius, 0.5rem);background-color:var(--sg-bg);color:var(--sg-text);"><option value="">Período</option></select>'), `<form ${k(r.id)} data-block-group="Conteúdo" action="${e(d)}" method="get" style="padding:1.5rem 0;background-color:var(--sg-bg);"><div style="max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;flex-wrap:wrap;gap:0.75rem;align-items:center;">${v}${g.join("")}</div></form>`;
185
+ placeholder: l = "Buscar posts...",
186
+ variant: r = "simple",
187
+ showIcon: g = !0,
188
+ searchUrl: p = "#",
189
+ filterCategories: v = !1,
190
+ filterTags: f = !1,
191
+ filterDate: n = !1,
192
+ borderRadius: o = "0.75rem",
193
+ shadow: h = "none"
194
+ } = t.props, d = `widget-search-${t.id || ""}`, H = _(h), z = H !== "none" ? `box-shadow:${H};` : "", a = `calc(${o} * 0.6)`, k = `<style>
195
+ #${d} input:focus, #${d} select:focus {
196
+ border-color: var(--sg-primary);
197
+ box-shadow: 0 0 0 3px rgba(var(--sg-primary-rgb, 59, 130, 246), 0.15);
198
+ }
199
+ </style>`, P = g ? '<svg style="position:absolute;left:0.75rem;top:50%;transform:translateY(-50%);width:1.25rem;height:1.25rem;color:var(--sg-muted-text);" fill="none" stroke="currentColor" viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35" stroke-linecap="round"/></svg>' : "", m = g ? "padding-left:2.5rem;" : "", y = r === "expanded", s = y ? "2px" : "1px", c = y ? "1.0625rem" : "0.875rem", S = y ? "0.875rem" : "0.625rem", w = `width:100%;${m}padding-right:1rem;padding-top:${S};padding-bottom:${S};font-size:${c};border:${s} solid var(--sg-border, #e5e7eb);border-radius:${a};background-color:var(--sg-bg);color:var(--sg-text);outline:none;transition:border-color 0.2s, box-shadow 0.2s;`, x = `padding:0.625rem 0.75rem;font-size:0.875rem;border:1px solid var(--sg-border, #e5e7eb);border-radius:${a};background-color:var(--sg-bg);color:var(--sg-text);transition:border-color 0.2s;`, I = `<div style="position:relative;">${P}<input type="search" name="busca" placeholder="${e(l)}" style="${w}" /></div>`;
200
+ let u = I;
201
+ if (r === "with-filters") {
202
+ const j = [];
203
+ v && j.push(`<select name="categoria" style="${x}"><option value="">Categoria</option></select>`), f && j.push(`<select name="tag" style="${x}"><option value="">Tag</option></select>`), n && j.push(`<select name="periodo" style="${x}"><option value="">Período</option></select>`), u = `${I}<div style="display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.75rem;">${j.join("")}</div>`;
180
204
  }
181
- const f = `<div style="position:relative;width:100%;max-width:400px;">${c}<input type="search" name="busca" placeholder="${e(i)}" style="width:100%;${a}padding-right:1rem;padding-top:0.625rem;padding-bottom:0.625rem;font-size:0.875rem;border:1px solid var(--sg-border, #e5e7eb);border-radius:var(--sg-card-radius, 0.5rem);background-color:var(--sg-bg);color:var(--sg-text);outline:none;" /></div>`;
182
- return `<form ${k(r.id)} data-block-group="Conteúdo" action="${e(d)}" method="get" style="padding:1.5rem 0;background-color:var(--sg-bg);"><div style="max-width:1200px;margin:0 auto;padding:0 1rem;">${f}</div></form>`;
205
+ return `${k}<div id="${d}" ${B(t.id)} data-block-group="Conteúdo" style="background-color:var(--sg-surface, var(--sg-bg));border:1px solid var(--sg-border, #e5e7eb);border-radius:${o};${z}overflow:hidden;"><form action="${e(p)}" method="get" style="padding:1.25rem;">${u}</form></div>`;
183
206
  }
184
- function J(r, p, u, b) {
207
+ function ee(t, $, b, C) {
185
208
  const {
186
- title: i = "Posts Recentes",
187
- posts: o = [],
188
- showThumbnail: n = !0,
189
- showDate: d = !0,
190
- showCategory: s = !1
191
- } = r.props, m = i ? `<div style="padding:1rem 1.25rem;border-bottom:1px solid var(--sg-border, #e5e7eb);"><h3 style="font-size:1rem;font-weight:600;margin:0;color:var(--sg-text);">${e(i)}</h3></div>` : "";
192
- let t = "";
193
- return o.length === 0 ? t = '<p style="padding:1.5rem 1.25rem;color:var(--sg-muted-text);font-size:0.875rem;text-align:center;margin:0;">Nenhum post recente</p>' : t = o.map((a) => {
194
- const f = n && a.image ? `<img src="${e(a.image)}" alt="${e(a.title)}" style="width:64px;height:64px;object-fit:cover;border-radius:var(--sg-card-radius, 0.5rem);flex-shrink:0;" />` : "", v = [];
195
- d && a.date && v.push(e(a.date)), s && a.category && v.push(`<span style="font-size:0.6875rem;color:var(--sg-primary);font-weight:600;text-transform:uppercase;letter-spacing:0.03em;">${e(a.category)}</span>`);
196
- const g = v.length ? `<div style="display:flex;align-items:center;gap:0.5rem;margin-top:0.25rem;font-size:0.75rem;color:var(--sg-muted-text);">${v.join("")}</div>` : "";
197
- return `<a href="/site/p/blog/${e(a.slug)}" style="display:flex;align-items:center;gap:0.75rem;padding:0.75rem 1.25rem;text-decoration:none;color:inherit;">${f}<div style="flex:1;min-width:0;"><div style="font-size:0.875rem;font-weight:500;color:var(--sg-text);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;">${e(a.title)}</div>${g}</div></a>`;
198
- }).join(""), `<div ${k(r.id)} data-block-group="Conteúdo" style="background-color:var(--sg-bg);border-radius:var(--sg-card-radius, 0.75rem);border:1px solid var(--sg-border, #e5e7eb);overflow:hidden;">${m}<div style="padding:0.5rem 0;">${t}</div></div>`;
209
+ title: l = "Posts Recentes",
210
+ posts: r = [],
211
+ showThumbnail: g = !0,
212
+ showDate: p = !0,
213
+ showCategory: v = !1,
214
+ borderRadius: f = "0.75rem",
215
+ shadow: n = "none",
216
+ linkColor: o
217
+ } = t.props, h = o || "var(--sg-text)", d = `widget-recent-${t.id || ""}`, H = _(n), z = H !== "none" ? `box-shadow:${H};` : "", a = t.props.linkHoverColor || "", k = t.props.linkHoverEffect || "background", P = t.props.linkHoverIntensity ?? 50;
218
+ let m = "";
219
+ if (a) {
220
+ const c = q({
221
+ effect: k,
222
+ intensity: P,
223
+ hoverColor: a
224
+ }), S = c.base ? `#${d} .sg-recent-post { ${c.base}; transition: all 0.3s ease; }` : `#${d} .sg-recent-post { transition: all 0.3s ease; }`, w = `#${d} .sg-recent-post:hover { ${c.hover}; transition: all 0.3s ease; }
225
+ #${d} .sg-recent-post:hover .sg-recent-title { color: ${a}; }`;
226
+ m = `<style>${S}
227
+ ${w}</style>`;
228
+ } else
229
+ m = `<style>
230
+ #${d} .sg-recent-post:hover { background-color:rgba(0,0,0,0.04); }
231
+ #${d} .sg-recent-post:hover .sg-recent-title { color:var(--sg-primary); }
232
+ </style>`;
233
+ const y = l ? `<div style="padding:1rem 1.25rem;border-bottom:1px solid var(--sg-border, #e5e7eb);"><h3 style="font-size:1rem;font-weight:600;margin:0;color:var(--sg-text);">${e(l)}</h3></div>` : "";
234
+ let s = "";
235
+ return r.length === 0 ? s = '<p style="padding:1.5rem 1.25rem;color:var(--sg-muted-text);font-size:0.875rem;text-align:center;margin:0;">Nenhum post recente</p>' : s = r.map((c) => {
236
+ const S = g && c.image ? `<img src="${e(c.image)}" alt="${e(c.title)}" style="width:64px;height:64px;object-fit:cover;border-radius:calc(${f} * 0.5);flex-shrink:0;" />` : "", w = [];
237
+ p && c.date && w.push(e(c.date)), v && c.category && w.push(`<span style="font-size:0.6875rem;color:var(--sg-primary);font-weight:600;text-transform:uppercase;letter-spacing:0.03em;">${e(c.category)}</span>`);
238
+ const x = w.length ? `<div style="display:flex;align-items:center;gap:0.5rem;margin-top:0.25rem;font-size:0.75rem;color:var(--sg-muted-text);">${w.join("")}</div>` : "";
239
+ return `<a href="/site/p/blog/${e(c.slug)}" class="sg-recent-post" style="display:flex;align-items:center;gap:0.75rem;padding:0.75rem 1.25rem;text-decoration:none;color:inherit;transition:background-color 0.2s;">${S}<div style="flex:1;min-width:0;"><div class="sg-recent-title" style="font-size:0.875rem;font-weight:500;color:${h};line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;transition:color 0.2s;">${e(c.title)}</div>${x}</div></a>`;
240
+ }).join(""), `${m}<div id="${d}" ${B(t.id)} data-block-group="Conteúdo" style="background-color:var(--sg-surface, var(--sg-bg));border-radius:${f};border:1px solid var(--sg-border, #e5e7eb);${z}overflow:hidden;">${y}<div style="padding:0.5rem 0;">${s}</div></div>`;
199
241
  }
200
- function K(r, p, u, b) {
242
+ function te(t, $, b, C) {
201
243
  const {
202
- title: i = "Tags",
203
- tags: o = [],
204
- variant: n = "badges"
205
- } = r.props, d = i ? `<div style="padding:1rem 1.25rem;border-bottom:1px solid var(--sg-border, #e5e7eb);"><h3 style="font-size:1rem;font-weight:600;margin:0;color:var(--sg-text);">${e(i)}</h3></div>` : "";
206
- let s = "";
207
- return o.length === 0 ? s = '<p style="color:var(--sg-muted-text);font-size:0.875rem;text-align:center;margin:0;">Nenhuma tag encontrada</p>' : n === "badges" ? s = `<div style="display:flex;flex-wrap:wrap;gap:0.5rem;">${o.map(
208
- (t) => `<span style="display:inline-flex;align-items:center;gap:0.375rem;padding:0.3rem 0.75rem;border-radius:9999px;font-size:0.8125rem;font-weight:500;background-color:var(--sg-surface, #f3f4f6);color:var(--sg-text);">${e(t.name)}<span style="font-size:0.6875rem;color:var(--sg-muted-text);opacity:0.7;">(${t.count})</span></span>`
209
- ).join("")}</div>` : s = `<div style="display:flex;flex-direction:column;gap:0.25rem;">${o.map(
210
- (t) => `<div style="display:flex;align-items:center;justify-content:space-between;padding:0.5rem 0.75rem;border-radius:var(--sg-card-radius, 0.5rem);font-size:0.875rem;color:var(--sg-text);"><span>${e(t.name)}</span><span style="font-size:0.75rem;color:var(--sg-muted-text);background-color:var(--sg-surface, #f3f4f6);padding:0.125rem 0.5rem;border-radius:9999px;">${t.count}</span></div>`
211
- ).join("")}</div>`, `<div ${k(r.id)} data-block-group="Conteúdo" style="background-color:var(--sg-bg);border-radius:var(--sg-card-radius, 0.75rem);border:1px solid var(--sg-border, #e5e7eb);overflow:hidden;">${d}<div style="padding:1rem 1.25rem;">${s}</div></div>`;
244
+ title: l = "Tags",
245
+ tags: r = [],
246
+ variant: g = "badges",
247
+ borderRadius: p = "0.75rem",
248
+ shadow: v = "none",
249
+ linkColor: f
250
+ } = t.props, n = f || "var(--sg-text)", o = `widget-tags-${t.id || ""}`, h = _(v), d = h !== "none" ? `box-shadow:${h};` : "", H = t.props.linkHoverColor || "", z = t.props.linkHoverEffect || "background", a = t.props.linkHoverIntensity ?? 50;
251
+ let k = "";
252
+ if (H) {
253
+ const y = q({
254
+ effect: z,
255
+ intensity: a,
256
+ hoverColor: H
257
+ }), s = y.base ? `#${o} .sg-tag-badge, #${o} .sg-tag-list-item { ${y.base}; transition: all 0.3s ease; }` : `#${o} .sg-tag-badge, #${o} .sg-tag-list-item { transition: all 0.3s ease; }`, c = `#${o} .sg-tag-badge:hover, #${o} .sg-tag-list-item:hover { ${y.hover}; transition: all 0.3s ease; }`;
258
+ k = `<style>${s}
259
+ ${c}</style>`;
260
+ } else
261
+ k = `<style>
262
+ #${o} .sg-tag-badge:hover { opacity:0.8; transform:translateY(-1px); }
263
+ #${o} .sg-tag-list-item:hover { background-color:rgba(0,0,0,0.04); }
264
+ </style>`;
265
+ const P = l ? `<div style="padding:1rem 1.25rem;border-bottom:1px solid var(--sg-border, #e5e7eb);"><h3 style="font-size:1rem;font-weight:600;margin:0;color:var(--sg-text);">${e(l)}</h3></div>` : "";
266
+ let m = "";
267
+ return r.length === 0 ? m = '<p style="color:var(--sg-muted-text);font-size:0.875rem;text-align:center;margin:0;">Nenhuma tag encontrada</p>' : g === "badges" ? m = `<div style="display:flex;flex-wrap:wrap;gap:0.5rem;">${r.map(
268
+ (s) => `<span class="sg-tag-badge" style="display:inline-flex;align-items:center;gap:0.375rem;padding:0.3rem 0.75rem;border-radius:9999px;font-size:0.8125rem;font-weight:500;background-color:var(--sg-bg);color:${n};cursor:pointer;transition:all 0.2s ease;">${e(s.name)}<span style="font-size:0.6875rem;color:var(--sg-muted-text);opacity:0.7;">(${s.count})</span></span>`
269
+ ).join("")}</div>` : m = `<div style="display:flex;flex-direction:column;gap:0.25rem;">${r.map(
270
+ (s) => `<div class="sg-tag-list-item" style="display:flex;align-items:center;justify-content:space-between;padding:0.5rem 0.75rem;border-radius:calc(${p} * 0.5);font-size:0.875rem;color:${n};cursor:pointer;transition:background-color 0.2s;"><span>${e(s.name)}</span><span style="font-size:0.75rem;color:var(--sg-muted-text);background-color:var(--sg-bg);padding:0.125rem 0.5rem;border-radius:9999px;">${s.count}</span></div>`
271
+ ).join("")}</div>`, `${k}<div id="${o}" ${B(t.id)} data-block-group="Conteúdo" style="background-color:var(--sg-surface, var(--sg-bg));border-radius:${p};border:1px solid var(--sg-border, #e5e7eb);${d}overflow:hidden;">${P}<div style="padding:1rem 1.25rem;">${m}</div></div>`;
212
272
  }
213
273
  export {
214
- W as exportBlogCategoryFilter,
215
- U as exportBlogPostCard,
216
- Q as exportBlogPostDetail,
217
- O as exportBlogPostGrid,
218
- J as exportBlogRecentPosts,
219
- Y as exportBlogSearchBar,
220
- K as exportBlogTagCloud
274
+ X as exportBlogCategoryFilter,
275
+ Q as exportBlogPostCard,
276
+ K as exportBlogPostDetail,
277
+ J as exportBlogPostGrid,
278
+ ee as exportBlogRecentPosts,
279
+ Z as exportBlogSearchBar,
280
+ te as exportBlogTagCloud
221
281
  };
222
282
  //# sourceMappingURL=BlogPostExporters.js.map