@brunoalz/smartgesti-site-editor 1.4.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/editor/BlockSelector.js +4 -2
- package/dist/editor/BlockSelector.js.map +1 -1
- package/dist/engine/export/exporters/layout/GridExporter.d.ts.map +1 -1
- package/dist/engine/export/exporters/layout/GridExporter.js +29 -12
- package/dist/engine/export/exporters/layout/GridExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts +2 -0
- package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -1
- package/dist/engine/export/exporters/sections/BlogPostExporters.js +183 -119
- package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -1
- package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
- package/dist/engine/export/exporters/sections/index.js +26 -24
- package/dist/engine/export/exporters/sections/index.js.map +1 -1
- package/dist/engine/index.js +97 -95
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -1
- package/dist/engine/plugins/builtin/blog/manifest.js +160 -72
- package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -1
- package/dist/engine/plugins/contentHydration.js +144 -68
- package/dist/engine/plugins/contentHydration.js.map +1 -1
- package/dist/engine/registry/blocks/layout/grid.d.ts.map +1 -1
- package/dist/engine/registry/blocks/layout/grid.js +10 -4
- package/dist/engine/registry/blocks/layout/grid.js.map +1 -1
- package/dist/engine/registry/blocks/sections/blogRecentPosts.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/blogRecentPosts.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/blogRecentPosts.js +29 -0
- package/dist/engine/registry/blocks/sections/blogRecentPosts.js.map +1 -0
- package/dist/engine/registry/blocks/sections/blogTagCloud.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/blogTagCloud.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/blogTagCloud.js +31 -0
- package/dist/engine/registry/blocks/sections/blogTagCloud.js.map +1 -0
- package/dist/engine/registry/blocks/sections/index.d.ts +2 -0
- package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
- package/dist/engine/render/renderers/layout/GridRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/layout/GridRenderer.js +21 -18
- package/dist/engine/render/renderers/layout/GridRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js +66 -47
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js +175 -32
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/BlogRecentPostsRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/BlogRecentPostsRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/BlogRecentPostsRenderer.js +148 -0
- package/dist/engine/render/renderers/sections/BlogRecentPostsRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/BlogTagCloudRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/BlogTagCloudRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/BlogTagCloudRenderer.js +134 -0
- package/dist/engine/render/renderers/sections/BlogTagCloudRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/index.js +20 -16
- package/dist/engine/render/renderers/sections/index.js.map +1 -1
- package/dist/engine/schema/siteDocument.d.ts +57 -2
- package/dist/engine/schema/siteDocument.d.ts.map +1 -1
- package/dist/engine/schema/siteDocument.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +108 -106
- package/dist/index.js.map +1 -1
- package/dist/viewer/LandingPageViewer.js +11 -11
- package/dist/viewer/LandingPageViewer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlogPostGridRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/BlogPostGridRenderer.tsx"],"sourcesContent":["/**\n * BlogPostGrid Renderer\n * Renderiza grid de cards de blog posts com título, subtítulo e link \"ver todos\"\n */\n\nimport React from \"react\";\nimport { renderBlogPostCard } from \"./BlogPostCardRenderer\";\n\nexport function renderBlogPostGrid(block: any): React.ReactNode {\n const {\n title,\n subtitle,\n columns = 3,\n cards = [],\n variant = \"default\",\n showViewAll = false,\n viewAllText = \"Ver todos\",\n viewAllHref = \"#\",\n } = block.props;\n\n return (\n <section\n key={block.id}\n style={{\n padding: \"var(--sg-section-padding-md)\",\n backgroundColor: \"var(--sg-bg)\",\n }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {/* Header */}\n {(title || subtitle) && (\n <div data-block-group=\"Cabeçalho\" style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && (\n <h2\n style={{\n fontSize: \"var(--sg-heading-h2)\",\n marginBottom: \"0.5rem\",\n }}\n >\n {title}\n </h2>\n )}\n {subtitle && (\n <p\n style={{ color: \"var(--sg-muted-text)\", fontSize: \"1.125rem\" }}\n >\n {subtitle}\n </p>\n )}\n </div>\n )}\n\n {/* Grid */}\n {cards.length > 0 ? (\n <div\n data-block-group=\"Layout\"\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"2rem\",\n }}\n >\n {cards.map((card: any, index: number) =>\n renderBlogPostCard({\n id: `${block.id}-card-${index}`,\n props: {\n ...card,\n variant:\n variant === \"featured\" && index === 0\n ? \"horizontal\"\n : variant === \"minimal\"\n ? \"minimal\"\n : \"default\",\n },\n }),\n )}\n </div>\n ) : (\n <div\n style={{\n textAlign: \"center\",\n padding: \"3rem 1rem\",\n color: \"var(--sg-muted-text)\",\n border: \"2px dashed var(--sg-border, #e5e7eb)\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n }}\n >\n <p style={{ fontSize: \"1rem\", marginBottom: \"0.5rem\" }}>\n Nenhum post encontrado\n </p>\n <p style={{ fontSize: \"0.875rem\" }}>\n Os posts aparecerão aqui quando forem publicados.\n </p>\n </div>\n )}\n\n {/* View All link */}\n {showViewAll && (\n <div data-block-group=\"Rodapé\" style={{ textAlign: \"center\", marginTop: \"2.5rem\" }}>\n <a\n href={viewAllHref}\n style={{\n display: \"inline-block\",\n padding: \"0.75rem 2rem\",\n color: \"var(--sg-primary)\",\n border: \"1px solid var(--sg-primary)\",\n borderRadius: \"var(--sg-button-radius, 0.5rem)\",\n textDecoration: \"none\",\n fontWeight: 500,\n fontSize: \"0.9375rem\",\n }}\n >\n {viewAllText}\n </a>\n </div>\n )}\n </div>\n </section>\n );\n}\n"],"names":["renderBlogPostGrid","block","title","subtitle","columns","cards","variant","showViewAll","viewAllText","viewAllHref","jsx","jsxs","card","index","renderBlogPostCard"],"mappings":";;AAQO,SAASA,EAAmBC,GAA6B;AAC9D,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,OAAAC,IAAQ,CAAA;AAAA,IACR,SAAAC,IAAU;AAAA,IACV,aAAAC,IAAc;AAAA,IACd,aAAAC,IAAc;AAAA,IACd,aAAAC,IAAc;AAAA,EAAA,IACZR,EAAM;AAEV,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,OAAO;AAAA,QACL,SAAS;AAAA,QACT,iBAAiB;AAAA,MAAA;AAAA,MAGnB,UAAA,gBAAAC,EAAC,OAAA,EAAI,OAAO,EAAE,UAAU,UAAU,QAAQ,UAAU,SAAS,SAAA,GAEzD,UAAA;AAAA,SAAAT,KAASC,MACT,gBAAAQ,EAAC,OAAA,EAAI,oBAAiB,aAAY,OAAO,EAAE,WAAW,UAAU,cAAc,OAAA,GAC3E,UAAA;AAAA,UAAAT,KACC,gBAAAQ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,cAAc;AAAA,cAAA;AAAA,cAGf,UAAAR;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJC,KACC,gBAAAO;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,EAAE,OAAO,wBAAwB,UAAU,WAAA;AAAA,cAEjD,UAAAP;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,GAEJ;AAAA,QAIDE,EAAM,SAAS,IACd,gBAAAK;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,oBAAiB;AAAA,YACjB,OAAO;AAAA,cACL,SAAS;AAAA,cACT,qBAAqB,UAAUN,CAAO;AAAA,cACtC,KAAK;AAAA,YAAA;AAAA,YAGN,UAAAC,EAAM;AAAA,cAAI,CAACO,GAAWC,MACrBC,EAAmB;AAAA,gBACjB,IAAI,GAAGb,EAAM,EAAE,SAASY,CAAK;AAAA,gBAC7B,OAAO;AAAA,kBACL,GAAGD;AAAA,kBACH,SACEN,MAAY,cAAcO,MAAU,IAChC,eACAP,MAAY,YACV,YACA;AAAA,gBAAA;AAAA,cACV,CACD;AAAA,YAAA;AAAA,UACH;AAAA,QAAA,IAGF,gBAAAK;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,WAAW;AAAA,cACX,SAAS;AAAA,cACT,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,cAAc;AAAA,YAAA;AAAA,YAGhB,UAAA;AAAA,cAAA,gBAAAD,EAAC,KAAA,EAAE,OAAO,EAAE,UAAU,QAAQ,cAAc,SAAA,GAAY,UAAA,yBAAA,CAExD;AAAA,gCACC,KAAA,EAAE,OAAO,EAAE,UAAU,WAAA,GAAc,UAAA,oDAAA,CAEpC;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAKHH,KACC,gBAAAG,EAAC,OAAA,EAAI,oBAAiB,UAAS,OAAO,EAAE,WAAW,UAAU,WAAW,SAAA,GACtE,UAAA,gBAAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAMD;AAAA,YACN,OAAO;AAAA,cACL,SAAS;AAAA,cACT,SAAS;AAAA,cACT,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,cAAc;AAAA,cACd,gBAAgB;AAAA,cAChB,YAAY;AAAA,cACZ,UAAU;AAAA,YAAA;AAAA,YAGX,UAAAD;AAAA,UAAA;AAAA,QAAA,EACH,CACF;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,IA9FKP,EAAM;AAAA,EAAA;AAiGjB;"}
|
|
1
|
+
{"version":3,"file":"BlogPostGridRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/BlogPostGridRenderer.tsx"],"sourcesContent":["/**\n * BlogPostGrid Renderer\n * Renderiza grid de cards de blog posts com título, subtítulo e link \"ver todos\"\n */\n\nimport React from \"react\";\nimport { renderBlogPostCard } from \"./BlogPostCardRenderer\";\n\n/**\n * Builds a pagination URL appending ?pagina=N (or &pagina=N if URL has params).\n * Page 1 returns base URL without param (cleaner URL).\n */\nfunction buildPageUrl(baseUrl: string, page: number): string {\n if (page <= 1) return baseUrl;\n const separator = baseUrl.includes(\"?\") ? \"&\" : \"?\";\n return `${baseUrl}${separator}pagina=${page}`;\n}\n\n/**\n * Generates an array of page numbers to display, with -1 for ellipsis.\n * Shows all pages if <= 7, otherwise uses ellipsis pattern.\n */\nfunction getPageNumbers(current: number, total: number): number[] {\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n const pages: number[] = [1];\n if (current > 3) pages.push(-1);\n const start = Math.max(2, current - 1);\n const end = Math.min(total - 1, current + 1);\n for (let i = start; i <= end; i++) pages.push(i);\n if (current < total - 2) pages.push(-1);\n if (pages[pages.length - 1] !== total) pages.push(total);\n return pages;\n}\n\nexport function renderBlogPostGrid(block: any): React.ReactNode {\n const {\n title,\n subtitle,\n columns = 3,\n cards = [],\n variant = \"default\",\n showViewAll = false,\n viewAllText = \"Ver todos\",\n viewAllHref = \"#\",\n currentPage = 1,\n totalPages = 1,\n paginationBaseUrl = \"#\",\n } = block.props;\n\n return (\n <section\n key={block.id}\n style={{\n padding: \"var(--sg-section-padding-md)\",\n backgroundColor: \"var(--sg-bg)\",\n }}\n >\n <div style={{ maxWidth: \"1200px\", margin: \"0 auto\", padding: \"0 1rem\" }}>\n {/* Header */}\n {(title || subtitle) && (\n <div data-block-group=\"Cabeçalho\" style={{ textAlign: \"center\", marginBottom: \"3rem\" }}>\n {title && (\n <h2\n style={{\n fontSize: \"var(--sg-heading-h2)\",\n marginBottom: \"0.5rem\",\n }}\n >\n {title}\n </h2>\n )}\n {subtitle && (\n <p\n style={{ color: \"var(--sg-muted-text)\", fontSize: \"1.125rem\" }}\n >\n {subtitle}\n </p>\n )}\n </div>\n )}\n\n {/* Grid */}\n {cards.length > 0 ? (\n <div\n data-block-group=\"Layout\"\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: \"2rem\",\n }}\n >\n {cards.map((card: any, index: number) =>\n renderBlogPostCard({\n id: `${block.id}-card-${index}`,\n props: {\n ...card,\n variant:\n variant === \"featured\" && index === 0\n ? \"horizontal\"\n : variant === \"minimal\"\n ? \"minimal\"\n : \"default\",\n },\n }),\n )}\n </div>\n ) : (\n <div\n style={{\n textAlign: \"center\",\n padding: \"3rem 1rem\",\n color: \"var(--sg-muted-text)\",\n border: \"2px dashed var(--sg-border, #e5e7eb)\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n }}\n >\n <p style={{ fontSize: \"1rem\", marginBottom: \"0.5rem\" }}>\n Nenhum post encontrado\n </p>\n <p style={{ fontSize: \"0.875rem\" }}>\n Os posts aparecerão aqui quando forem publicados.\n </p>\n </div>\n )}\n\n {/* View All link */}\n {showViewAll && (\n <div data-block-group=\"Rodapé\" style={{ textAlign: \"center\", marginTop: \"2.5rem\" }}>\n <a\n href={viewAllHref}\n style={{\n display: \"inline-block\",\n padding: \"0.75rem 2rem\",\n color: \"var(--sg-primary)\",\n border: \"1px solid var(--sg-primary)\",\n borderRadius: \"var(--sg-button-radius, 0.5rem)\",\n textDecoration: \"none\",\n fontWeight: 500,\n fontSize: \"0.9375rem\",\n }}\n >\n {viewAllText}\n </a>\n </div>\n )}\n\n {/* Pagination */}\n {totalPages > 1 && (\n <nav\n data-block-group=\"Paginação\"\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"0.375rem\",\n marginTop: \"2.5rem\",\n }}\n >\n {/* Previous */}\n {currentPage > 1 ? (\n <a\n href={buildPageUrl(paginationBaseUrl, currentPage - 1)}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n border: \"1px solid var(--sg-border, #e5e7eb)\",\n textDecoration: \"none\",\n color: \"var(--sg-text)\",\n fontSize: \"0.875rem\",\n }}\n >\n ‹\n </a>\n ) : (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n border: \"1px solid var(--sg-border, #e5e7eb)\",\n color: \"var(--sg-muted-text)\",\n fontSize: \"0.875rem\",\n opacity: 0.4,\n }}\n >\n ‹\n </span>\n )}\n\n {/* Page numbers */}\n {getPageNumbers(currentPage, totalPages).map((page, idx) =>\n page === -1 ? (\n <span\n key={`ellipsis-${idx}`}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n color: \"var(--sg-muted-text)\",\n fontSize: \"0.875rem\",\n }}\n >\n …\n </span>\n ) : (\n <a\n key={page}\n href={buildPageUrl(paginationBaseUrl, page)}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n border: `1px solid ${page === currentPage ? \"var(--sg-primary)\" : \"var(--sg-border, #e5e7eb)\"}`,\n backgroundColor:\n page === currentPage ? \"var(--sg-primary)\" : \"transparent\",\n color:\n page === currentPage\n ? \"var(--sg-primary-text, #fff)\"\n : \"var(--sg-text)\",\n textDecoration: \"none\",\n fontWeight: page === currentPage ? 600 : 400,\n fontSize: \"0.875rem\",\n }}\n >\n {page}\n </a>\n ),\n )}\n\n {/* Next */}\n {currentPage < totalPages ? (\n <a\n href={buildPageUrl(paginationBaseUrl, currentPage + 1)}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n border: \"1px solid var(--sg-border, #e5e7eb)\",\n textDecoration: \"none\",\n color: \"var(--sg-text)\",\n fontSize: \"0.875rem\",\n }}\n >\n ›\n </a>\n ) : (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"2.25rem\",\n height: \"2.25rem\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n border: \"1px solid var(--sg-border, #e5e7eb)\",\n color: \"var(--sg-muted-text)\",\n fontSize: \"0.875rem\",\n opacity: 0.4,\n }}\n >\n ›\n </span>\n )}\n </nav>\n )}\n </div>\n </section>\n );\n}\n"],"names":["buildPageUrl","baseUrl","page","separator","getPageNumbers","current","total","_","i","pages","start","end","renderBlogPostGrid","block","title","subtitle","columns","cards","variant","showViewAll","viewAllText","viewAllHref","currentPage","totalPages","paginationBaseUrl","jsx","jsxs","card","index","renderBlogPostCard","idx"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogRecentPostsRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/BlogRecentPostsRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAuIjE"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
function c(i) {
|
|
3
|
+
const {
|
|
4
|
+
title: n = "Posts Recentes",
|
|
5
|
+
posts: o = [],
|
|
6
|
+
showThumbnail: l = !0,
|
|
7
|
+
showDate: d = !0,
|
|
8
|
+
showCategory: a = !1
|
|
9
|
+
} = i.props;
|
|
10
|
+
return /* @__PURE__ */ t(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
"data-block-group": "Conteúdo",
|
|
14
|
+
style: {
|
|
15
|
+
backgroundColor: "var(--sg-bg)",
|
|
16
|
+
borderRadius: "var(--sg-card-radius, 0.75rem)",
|
|
17
|
+
border: "1px solid var(--sg-border, #e5e7eb)",
|
|
18
|
+
overflow: "hidden"
|
|
19
|
+
},
|
|
20
|
+
children: [
|
|
21
|
+
n && /* @__PURE__ */ r(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
style: {
|
|
25
|
+
padding: "1rem 1.25rem",
|
|
26
|
+
borderBottom: "1px solid var(--sg-border, #e5e7eb)"
|
|
27
|
+
},
|
|
28
|
+
children: /* @__PURE__ */ r(
|
|
29
|
+
"h3",
|
|
30
|
+
{
|
|
31
|
+
style: {
|
|
32
|
+
fontSize: "1rem",
|
|
33
|
+
fontWeight: 600,
|
|
34
|
+
margin: 0,
|
|
35
|
+
color: "var(--sg-text)"
|
|
36
|
+
},
|
|
37
|
+
children: n
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
),
|
|
42
|
+
/* @__PURE__ */ r("div", { style: { padding: "0.5rem 0" }, children: o.length === 0 ? /* @__PURE__ */ r(
|
|
43
|
+
"p",
|
|
44
|
+
{
|
|
45
|
+
style: {
|
|
46
|
+
padding: "1.5rem 1.25rem",
|
|
47
|
+
color: "var(--sg-muted-text)",
|
|
48
|
+
fontSize: "0.875rem",
|
|
49
|
+
textAlign: "center",
|
|
50
|
+
margin: 0
|
|
51
|
+
},
|
|
52
|
+
children: "Nenhum post recente"
|
|
53
|
+
}
|
|
54
|
+
) : o.map((e, s) => /* @__PURE__ */ t(
|
|
55
|
+
"a",
|
|
56
|
+
{
|
|
57
|
+
href: `/site/p/blog/${e.slug}`,
|
|
58
|
+
style: {
|
|
59
|
+
display: "flex",
|
|
60
|
+
alignItems: "center",
|
|
61
|
+
gap: "0.75rem",
|
|
62
|
+
padding: "0.75rem 1.25rem",
|
|
63
|
+
textDecoration: "none",
|
|
64
|
+
color: "inherit",
|
|
65
|
+
transition: "background-color 0.15s"
|
|
66
|
+
},
|
|
67
|
+
children: [
|
|
68
|
+
l && e.image && /* @__PURE__ */ r(
|
|
69
|
+
"img",
|
|
70
|
+
{
|
|
71
|
+
src: e.image,
|
|
72
|
+
alt: e.title,
|
|
73
|
+
style: {
|
|
74
|
+
width: "64px",
|
|
75
|
+
height: "64px",
|
|
76
|
+
objectFit: "cover",
|
|
77
|
+
borderRadius: "var(--sg-card-radius, 0.5rem)",
|
|
78
|
+
flexShrink: 0
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
),
|
|
82
|
+
/* @__PURE__ */ t("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
83
|
+
/* @__PURE__ */ r(
|
|
84
|
+
"div",
|
|
85
|
+
{
|
|
86
|
+
style: {
|
|
87
|
+
fontSize: "0.875rem",
|
|
88
|
+
fontWeight: 500,
|
|
89
|
+
color: "var(--sg-text)",
|
|
90
|
+
lineHeight: 1.4,
|
|
91
|
+
display: "-webkit-box",
|
|
92
|
+
WebkitLineClamp: 2,
|
|
93
|
+
WebkitBoxOrient: "vertical",
|
|
94
|
+
overflow: "hidden"
|
|
95
|
+
},
|
|
96
|
+
children: e.title
|
|
97
|
+
}
|
|
98
|
+
),
|
|
99
|
+
/* @__PURE__ */ t(
|
|
100
|
+
"div",
|
|
101
|
+
{
|
|
102
|
+
style: {
|
|
103
|
+
display: "flex",
|
|
104
|
+
alignItems: "center",
|
|
105
|
+
gap: "0.5rem",
|
|
106
|
+
marginTop: "0.25rem"
|
|
107
|
+
},
|
|
108
|
+
children: [
|
|
109
|
+
d && e.date && /* @__PURE__ */ r(
|
|
110
|
+
"span",
|
|
111
|
+
{
|
|
112
|
+
style: {
|
|
113
|
+
fontSize: "0.75rem",
|
|
114
|
+
color: "var(--sg-muted-text)"
|
|
115
|
+
},
|
|
116
|
+
children: e.date
|
|
117
|
+
}
|
|
118
|
+
),
|
|
119
|
+
a && e.category && /* @__PURE__ */ r(
|
|
120
|
+
"span",
|
|
121
|
+
{
|
|
122
|
+
style: {
|
|
123
|
+
fontSize: "0.6875rem",
|
|
124
|
+
color: "var(--sg-primary)",
|
|
125
|
+
fontWeight: 600,
|
|
126
|
+
textTransform: "uppercase",
|
|
127
|
+
letterSpacing: "0.03em"
|
|
128
|
+
},
|
|
129
|
+
children: e.category
|
|
130
|
+
}
|
|
131
|
+
)
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
)
|
|
135
|
+
] })
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
s
|
|
139
|
+
)) })
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
i.id
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
export {
|
|
146
|
+
c as renderBlogRecentPosts
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=BlogRecentPostsRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogRecentPostsRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/BlogRecentPostsRenderer.tsx"],"sourcesContent":["/**\n * BlogRecentPosts Renderer\n * Widget de sidebar com lista dos posts mais recentes\n */\n\nimport React from \"react\";\n\ninterface RecentPost {\n title: string;\n slug: string;\n date?: string;\n image?: string;\n category?: string;\n}\n\nexport function renderBlogRecentPosts(block: any): React.ReactNode {\n const {\n title = \"Posts Recentes\",\n posts = [],\n showThumbnail = true,\n showDate = true,\n showCategory = false,\n } = block.props;\n\n return (\n <div\n key={block.id}\n data-block-group=\"Conteúdo\"\n style={{\n backgroundColor: \"var(--sg-bg)\",\n borderRadius: \"var(--sg-card-radius, 0.75rem)\",\n border: \"1px solid var(--sg-border, #e5e7eb)\",\n overflow: \"hidden\",\n }}\n >\n {title && (\n <div\n style={{\n padding: \"1rem 1.25rem\",\n borderBottom: \"1px solid var(--sg-border, #e5e7eb)\",\n }}\n >\n <h3\n style={{\n fontSize: \"1rem\",\n fontWeight: 600,\n margin: 0,\n color: \"var(--sg-text)\",\n }}\n >\n {title}\n </h3>\n </div>\n )}\n\n <div style={{ padding: \"0.5rem 0\" }}>\n {posts.length === 0 ? (\n <p\n style={{\n padding: \"1.5rem 1.25rem\",\n color: \"var(--sg-muted-text)\",\n fontSize: \"0.875rem\",\n textAlign: \"center\",\n margin: 0,\n }}\n >\n Nenhum post recente\n </p>\n ) : (\n posts.map((post: RecentPost, index: number) => (\n <a\n key={index}\n href={`/site/p/blog/${post.slug}`}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.75rem\",\n padding: \"0.75rem 1.25rem\",\n textDecoration: \"none\",\n color: \"inherit\",\n transition: \"background-color 0.15s\",\n }}\n >\n {showThumbnail && post.image && (\n <img\n src={post.image}\n alt={post.title}\n style={{\n width: \"64px\",\n height: \"64px\",\n objectFit: \"cover\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n flexShrink: 0,\n }}\n />\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n style={{\n fontSize: \"0.875rem\",\n fontWeight: 500,\n color: \"var(--sg-text)\",\n lineHeight: 1.4,\n display: \"-webkit-box\",\n WebkitLineClamp: 2,\n WebkitBoxOrient: \"vertical\",\n overflow: \"hidden\",\n }}\n >\n {post.title}\n </div>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n marginTop: \"0.25rem\",\n }}\n >\n {showDate && post.date && (\n <span\n style={{\n fontSize: \"0.75rem\",\n color: \"var(--sg-muted-text)\",\n }}\n >\n {post.date}\n </span>\n )}\n {showCategory && post.category && (\n <span\n style={{\n fontSize: \"0.6875rem\",\n color: \"var(--sg-primary)\",\n fontWeight: 600,\n textTransform: \"uppercase\",\n letterSpacing: \"0.03em\",\n }}\n >\n {post.category}\n </span>\n )}\n </div>\n </div>\n </a>\n ))\n )}\n </div>\n </div>\n );\n}\n"],"names":["renderBlogRecentPosts","block","title","posts","showThumbnail","showDate","showCategory","jsxs","jsx","post","index"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogTagCloudRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/render/renderers/sections/BlogTagCloudRenderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAwH9D"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { jsxs as d, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
function l(n) {
|
|
3
|
+
const {
|
|
4
|
+
title: o = "Tags",
|
|
5
|
+
tags: a = [],
|
|
6
|
+
variant: i = "badges"
|
|
7
|
+
} = n.props;
|
|
8
|
+
return /* @__PURE__ */ d(
|
|
9
|
+
"div",
|
|
10
|
+
{
|
|
11
|
+
"data-block-group": "Conteúdo",
|
|
12
|
+
style: {
|
|
13
|
+
backgroundColor: "var(--sg-bg)",
|
|
14
|
+
borderRadius: "var(--sg-card-radius, 0.75rem)",
|
|
15
|
+
border: "1px solid var(--sg-border, #e5e7eb)",
|
|
16
|
+
overflow: "hidden"
|
|
17
|
+
},
|
|
18
|
+
children: [
|
|
19
|
+
o && /* @__PURE__ */ e(
|
|
20
|
+
"div",
|
|
21
|
+
{
|
|
22
|
+
style: {
|
|
23
|
+
padding: "1rem 1.25rem",
|
|
24
|
+
borderBottom: "1px solid var(--sg-border, #e5e7eb)"
|
|
25
|
+
},
|
|
26
|
+
children: /* @__PURE__ */ e(
|
|
27
|
+
"h3",
|
|
28
|
+
{
|
|
29
|
+
style: {
|
|
30
|
+
fontSize: "1rem",
|
|
31
|
+
fontWeight: 600,
|
|
32
|
+
margin: 0,
|
|
33
|
+
color: "var(--sg-text)"
|
|
34
|
+
},
|
|
35
|
+
children: o
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
),
|
|
40
|
+
/* @__PURE__ */ e("div", { style: { padding: "1rem 1.25rem" }, children: a.length === 0 ? /* @__PURE__ */ e(
|
|
41
|
+
"p",
|
|
42
|
+
{
|
|
43
|
+
style: {
|
|
44
|
+
color: "var(--sg-muted-text)",
|
|
45
|
+
fontSize: "0.875rem",
|
|
46
|
+
textAlign: "center",
|
|
47
|
+
margin: 0
|
|
48
|
+
},
|
|
49
|
+
children: "Nenhuma tag encontrada"
|
|
50
|
+
}
|
|
51
|
+
) : i === "badges" ? /* @__PURE__ */ e(
|
|
52
|
+
"div",
|
|
53
|
+
{
|
|
54
|
+
style: {
|
|
55
|
+
display: "flex",
|
|
56
|
+
flexWrap: "wrap",
|
|
57
|
+
gap: "0.5rem"
|
|
58
|
+
},
|
|
59
|
+
children: a.map((r, t) => /* @__PURE__ */ d(
|
|
60
|
+
"span",
|
|
61
|
+
{
|
|
62
|
+
style: {
|
|
63
|
+
display: "inline-flex",
|
|
64
|
+
alignItems: "center",
|
|
65
|
+
gap: "0.375rem",
|
|
66
|
+
padding: "0.3rem 0.75rem",
|
|
67
|
+
borderRadius: "9999px",
|
|
68
|
+
fontSize: "0.8125rem",
|
|
69
|
+
fontWeight: 500,
|
|
70
|
+
backgroundColor: "var(--sg-surface, #f3f4f6)",
|
|
71
|
+
color: "var(--sg-text)"
|
|
72
|
+
},
|
|
73
|
+
children: [
|
|
74
|
+
r.name,
|
|
75
|
+
/* @__PURE__ */ d(
|
|
76
|
+
"span",
|
|
77
|
+
{
|
|
78
|
+
style: {
|
|
79
|
+
fontSize: "0.6875rem",
|
|
80
|
+
color: "var(--sg-muted-text)",
|
|
81
|
+
opacity: 0.7
|
|
82
|
+
},
|
|
83
|
+
children: [
|
|
84
|
+
"(",
|
|
85
|
+
r.count,
|
|
86
|
+
")"
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
t
|
|
93
|
+
))
|
|
94
|
+
}
|
|
95
|
+
) : /* @__PURE__ */ e("div", { style: { display: "flex", flexDirection: "column", gap: "0.25rem" }, children: a.map((r, t) => /* @__PURE__ */ d(
|
|
96
|
+
"div",
|
|
97
|
+
{
|
|
98
|
+
style: {
|
|
99
|
+
display: "flex",
|
|
100
|
+
alignItems: "center",
|
|
101
|
+
justifyContent: "space-between",
|
|
102
|
+
padding: "0.5rem 0.75rem",
|
|
103
|
+
borderRadius: "var(--sg-card-radius, 0.5rem)",
|
|
104
|
+
fontSize: "0.875rem",
|
|
105
|
+
color: "var(--sg-text)"
|
|
106
|
+
},
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ e("span", { children: r.name }),
|
|
109
|
+
/* @__PURE__ */ e(
|
|
110
|
+
"span",
|
|
111
|
+
{
|
|
112
|
+
style: {
|
|
113
|
+
fontSize: "0.75rem",
|
|
114
|
+
color: "var(--sg-muted-text)",
|
|
115
|
+
backgroundColor: "var(--sg-surface, #f3f4f6)",
|
|
116
|
+
padding: "0.125rem 0.5rem",
|
|
117
|
+
borderRadius: "9999px"
|
|
118
|
+
},
|
|
119
|
+
children: r.count
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
t
|
|
125
|
+
)) }) })
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
n.id
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
export {
|
|
132
|
+
l as renderBlogTagCloud
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=BlogTagCloudRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogTagCloudRenderer.js","sources":["../../../../../src/engine/render/renderers/sections/BlogTagCloudRenderer.tsx"],"sourcesContent":["/**\n * BlogTagCloud Renderer\n * Widget de sidebar com nuvem de tags do blog\n */\n\nimport React from \"react\";\n\ninterface TagItem {\n name: string;\n count: number;\n}\n\nexport function renderBlogTagCloud(block: any): React.ReactNode {\n const {\n title = \"Tags\",\n tags = [],\n variant = \"badges\",\n } = block.props;\n\n return (\n <div\n key={block.id}\n data-block-group=\"Conteúdo\"\n style={{\n backgroundColor: \"var(--sg-bg)\",\n borderRadius: \"var(--sg-card-radius, 0.75rem)\",\n border: \"1px solid var(--sg-border, #e5e7eb)\",\n overflow: \"hidden\",\n }}\n >\n {title && (\n <div\n style={{\n padding: \"1rem 1.25rem\",\n borderBottom: \"1px solid var(--sg-border, #e5e7eb)\",\n }}\n >\n <h3\n style={{\n fontSize: \"1rem\",\n fontWeight: 600,\n margin: 0,\n color: \"var(--sg-text)\",\n }}\n >\n {title}\n </h3>\n </div>\n )}\n\n <div style={{ padding: \"1rem 1.25rem\" }}>\n {tags.length === 0 ? (\n <p\n style={{\n color: \"var(--sg-muted-text)\",\n fontSize: \"0.875rem\",\n textAlign: \"center\",\n margin: 0,\n }}\n >\n Nenhuma tag encontrada\n </p>\n ) : variant === \"badges\" ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"0.5rem\",\n }}\n >\n {tags.map((tag: TagItem, index: number) => (\n <span\n key={index}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"0.375rem\",\n padding: \"0.3rem 0.75rem\",\n borderRadius: \"9999px\",\n fontSize: \"0.8125rem\",\n fontWeight: 500,\n backgroundColor: \"var(--sg-surface, #f3f4f6)\",\n color: \"var(--sg-text)\",\n }}\n >\n {tag.name}\n <span\n style={{\n fontSize: \"0.6875rem\",\n color: \"var(--sg-muted-text)\",\n opacity: 0.7,\n }}\n >\n ({tag.count})\n </span>\n </span>\n ))}\n </div>\n ) : (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"0.25rem\" }}>\n {tags.map((tag: TagItem, index: number) => (\n <div\n key={index}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"0.5rem 0.75rem\",\n borderRadius: \"var(--sg-card-radius, 0.5rem)\",\n fontSize: \"0.875rem\",\n color: \"var(--sg-text)\",\n }}\n >\n <span>{tag.name}</span>\n <span\n style={{\n fontSize: \"0.75rem\",\n color: \"var(--sg-muted-text)\",\n backgroundColor: \"var(--sg-surface, #f3f4f6)\",\n padding: \"0.125rem 0.5rem\",\n borderRadius: \"9999px\",\n }}\n >\n {tag.count}\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["renderBlogTagCloud","block","title","tags","variant","jsxs","jsx","tag","index"],"mappings":"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"}
|
|
@@ -1,48 +1,52 @@
|
|
|
1
1
|
import { renderRegistry as r } from "../../registry/renderRegistry.js";
|
|
2
2
|
import { renderHero as e } from "./HeroRenderer.js";
|
|
3
|
-
import { renderFeature as
|
|
4
|
-
import { renderFeatureGrid as
|
|
3
|
+
import { renderFeature as o } from "./FeatureRenderer.js";
|
|
4
|
+
import { renderFeatureGrid as t } from "./FeatureGridRenderer.js";
|
|
5
5
|
import { renderPricing as i } from "./PricingRenderer.js";
|
|
6
6
|
import { renderPricingCard as m } from "./PricingCardRenderer.js";
|
|
7
7
|
import { renderTestimonial as g } from "./TestimonialRenderer.js";
|
|
8
8
|
import { renderTestimonialGrid as s } from "./TestimonialGridRenderer.js";
|
|
9
|
-
import { renderFaq as
|
|
10
|
-
import { renderFaqItem as
|
|
11
|
-
import { renderCta as
|
|
9
|
+
import { renderFaq as n } from "./FaqRenderer.js";
|
|
10
|
+
import { renderFaqItem as d } from "./FaqItemRenderer.js";
|
|
11
|
+
import { renderCta as a } from "./CtaRenderer.js";
|
|
12
12
|
import { renderStats as f } from "./StatsRenderer.js";
|
|
13
13
|
import { renderStatItem as p } from "./StatItemRenderer.js";
|
|
14
14
|
import { renderLogoCloud as l } from "./LogoCloudRenderer.js";
|
|
15
15
|
import { renderNavbar as c } from "./NavbarRenderer.js";
|
|
16
16
|
import { renderFooter as u } from "./FooterRenderer.js";
|
|
17
17
|
import { renderBlogPostCard as C } from "./BlogPostCardRenderer.js";
|
|
18
|
-
import { renderBlogPostGrid as
|
|
19
|
-
import { renderBlogPostDetail as
|
|
20
|
-
import { renderBlogCategoryFilter as
|
|
18
|
+
import { renderBlogPostGrid as b } from "./BlogPostGridRenderer.js";
|
|
19
|
+
import { renderBlogPostDetail as P } from "./BlogPostDetailRenderer.js";
|
|
20
|
+
import { renderBlogCategoryFilter as S } from "./BlogCategoryFilterRenderer.js";
|
|
21
21
|
import { renderBlogSearchBar as B } from "./BlogSearchBarRenderer.js";
|
|
22
22
|
import { renderProductShowcase as F } from "./ProductShowcaseRenderer.js";
|
|
23
23
|
import { renderAboutSection as G } from "./AboutSectionRenderer.js";
|
|
24
24
|
import { renderContactSection as h } from "./ContactSectionRenderer.js";
|
|
25
|
+
import { renderBlogRecentPosts as q } from "./BlogRecentPostsRenderer.js";
|
|
26
|
+
import { renderBlogTagCloud as I } from "./BlogTagCloudRenderer.js";
|
|
25
27
|
r.register("hero", e);
|
|
26
|
-
r.register("feature",
|
|
27
|
-
r.register("featureGrid",
|
|
28
|
+
r.register("feature", o);
|
|
29
|
+
r.register("featureGrid", t);
|
|
28
30
|
r.register("pricing", i);
|
|
29
31
|
r.register("pricingCard", m);
|
|
30
32
|
r.register("testimonial", g);
|
|
31
33
|
r.register("testimonialGrid", s);
|
|
32
|
-
r.register("faq",
|
|
33
|
-
r.register("faqItem",
|
|
34
|
-
r.register("cta",
|
|
34
|
+
r.register("faq", n);
|
|
35
|
+
r.register("faqItem", d);
|
|
36
|
+
r.register("cta", a);
|
|
35
37
|
r.register("stats", f);
|
|
36
38
|
r.register("statItem", p);
|
|
37
39
|
r.register("logoCloud", l);
|
|
38
40
|
r.register("navbar", c);
|
|
39
41
|
r.register("footer", u);
|
|
40
42
|
r.register("blogPostCard", C);
|
|
41
|
-
r.register("blogPostGrid",
|
|
42
|
-
r.register("blogPostDetail",
|
|
43
|
-
r.register("blogCategoryFilter",
|
|
43
|
+
r.register("blogPostGrid", b);
|
|
44
|
+
r.register("blogPostDetail", P);
|
|
45
|
+
r.register("blogCategoryFilter", S);
|
|
44
46
|
r.register("blogSearchBar", B);
|
|
45
47
|
r.register("productShowcase", F);
|
|
46
48
|
r.register("aboutSection", G);
|
|
47
49
|
r.register("contactSection", h);
|
|
50
|
+
r.register("blogRecentPosts", q);
|
|
51
|
+
r.register("blogTagCloud", I);
|
|
48
52
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/engine/render/renderers/sections/index.ts"],"sourcesContent":["/**\n * Section Renderers\n * Auto-registra todos os renderizadores de seções\n */\n\nimport { renderRegistry } from \"../../registry/renderRegistry\";\nimport { renderHero } from \"./HeroRenderer\";\nimport { renderFeature } from \"./FeatureRenderer\";\nimport { renderFeatureGrid } from \"./FeatureGridRenderer\";\nimport { renderPricing } from \"./PricingRenderer\";\nimport { renderPricingCard } from \"./PricingCardRenderer\";\nimport { renderTestimonial } from \"./TestimonialRenderer\";\nimport { renderTestimonialGrid } from \"./TestimonialGridRenderer\";\nimport { renderFaq } from \"./FaqRenderer\";\nimport { renderFaqItem } from \"./FaqItemRenderer\";\nimport { renderCta } from \"./CtaRenderer\";\nimport { renderStats } from \"./StatsRenderer\";\nimport { renderStatItem } from \"./StatItemRenderer\";\nimport { renderLogoCloud } from \"./LogoCloudRenderer\";\nimport { renderNavbar } from \"./NavbarRenderer\";\nimport { renderFooter } from \"./FooterRenderer\";\nimport { renderBlogPostCard } from \"./BlogPostCardRenderer\";\nimport { renderBlogPostGrid } from \"./BlogPostGridRenderer\";\nimport { renderBlogPostDetail } from \"./BlogPostDetailRenderer\";\nimport { renderBlogCategoryFilter } from \"./BlogCategoryFilterRenderer\";\nimport { renderBlogSearchBar } from \"./BlogSearchBarRenderer\";\nimport { renderProductShowcase } from \"./ProductShowcaseRenderer\";\nimport { renderAboutSection } from \"./AboutSectionRenderer\";\nimport { renderContactSection } from \"./ContactSectionRenderer\";\n\n// Registrar renderizadores\nrenderRegistry.register(\"hero\", renderHero);\nrenderRegistry.register(\"feature\", renderFeature);\nrenderRegistry.register(\"featureGrid\", renderFeatureGrid);\nrenderRegistry.register(\"pricing\", renderPricing);\nrenderRegistry.register(\"pricingCard\", renderPricingCard);\nrenderRegistry.register(\"testimonial\", renderTestimonial);\nrenderRegistry.register(\"testimonialGrid\", renderTestimonialGrid);\nrenderRegistry.register(\"faq\", renderFaq);\nrenderRegistry.register(\"faqItem\", renderFaqItem);\nrenderRegistry.register(\"cta\", renderCta);\nrenderRegistry.register(\"stats\", renderStats);\nrenderRegistry.register(\"statItem\", renderStatItem);\nrenderRegistry.register(\"logoCloud\", renderLogoCloud);\nrenderRegistry.register(\"navbar\", renderNavbar);\nrenderRegistry.register(\"footer\", renderFooter);\nrenderRegistry.register(\"blogPostCard\", renderBlogPostCard);\nrenderRegistry.register(\"blogPostGrid\", renderBlogPostGrid);\nrenderRegistry.register(\"blogPostDetail\", renderBlogPostDetail);\nrenderRegistry.register(\"blogCategoryFilter\", renderBlogCategoryFilter);\nrenderRegistry.register(\"blogSearchBar\", renderBlogSearchBar);\nrenderRegistry.register(\"productShowcase\", renderProductShowcase);\nrenderRegistry.register(\"aboutSection\", renderAboutSection);\nrenderRegistry.register(\"contactSection\", renderContactSection);\n"],"names":["renderRegistry","renderHero","renderFeature","renderFeatureGrid","renderPricing","renderPricingCard","renderTestimonial","renderTestimonialGrid","renderFaq","renderFaqItem","renderCta","renderStats","renderStatItem","renderLogoCloud","renderNavbar","renderFooter","renderBlogPostCard","renderBlogPostGrid","renderBlogPostDetail","renderBlogCategoryFilter","renderBlogSearchBar","renderProductShowcase","renderAboutSection","renderContactSection"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/engine/render/renderers/sections/index.ts"],"sourcesContent":["/**\n * Section Renderers\n * Auto-registra todos os renderizadores de seções\n */\n\nimport { renderRegistry } from \"../../registry/renderRegistry\";\nimport { renderHero } from \"./HeroRenderer\";\nimport { renderFeature } from \"./FeatureRenderer\";\nimport { renderFeatureGrid } from \"./FeatureGridRenderer\";\nimport { renderPricing } from \"./PricingRenderer\";\nimport { renderPricingCard } from \"./PricingCardRenderer\";\nimport { renderTestimonial } from \"./TestimonialRenderer\";\nimport { renderTestimonialGrid } from \"./TestimonialGridRenderer\";\nimport { renderFaq } from \"./FaqRenderer\";\nimport { renderFaqItem } from \"./FaqItemRenderer\";\nimport { renderCta } from \"./CtaRenderer\";\nimport { renderStats } from \"./StatsRenderer\";\nimport { renderStatItem } from \"./StatItemRenderer\";\nimport { renderLogoCloud } from \"./LogoCloudRenderer\";\nimport { renderNavbar } from \"./NavbarRenderer\";\nimport { renderFooter } from \"./FooterRenderer\";\nimport { renderBlogPostCard } from \"./BlogPostCardRenderer\";\nimport { renderBlogPostGrid } from \"./BlogPostGridRenderer\";\nimport { renderBlogPostDetail } from \"./BlogPostDetailRenderer\";\nimport { renderBlogCategoryFilter } from \"./BlogCategoryFilterRenderer\";\nimport { renderBlogSearchBar } from \"./BlogSearchBarRenderer\";\nimport { renderProductShowcase } from \"./ProductShowcaseRenderer\";\nimport { renderAboutSection } from \"./AboutSectionRenderer\";\nimport { renderContactSection } from \"./ContactSectionRenderer\";\nimport { renderBlogRecentPosts } from \"./BlogRecentPostsRenderer\";\nimport { renderBlogTagCloud } from \"./BlogTagCloudRenderer\";\n\n// Registrar renderizadores\nrenderRegistry.register(\"hero\", renderHero);\nrenderRegistry.register(\"feature\", renderFeature);\nrenderRegistry.register(\"featureGrid\", renderFeatureGrid);\nrenderRegistry.register(\"pricing\", renderPricing);\nrenderRegistry.register(\"pricingCard\", renderPricingCard);\nrenderRegistry.register(\"testimonial\", renderTestimonial);\nrenderRegistry.register(\"testimonialGrid\", renderTestimonialGrid);\nrenderRegistry.register(\"faq\", renderFaq);\nrenderRegistry.register(\"faqItem\", renderFaqItem);\nrenderRegistry.register(\"cta\", renderCta);\nrenderRegistry.register(\"stats\", renderStats);\nrenderRegistry.register(\"statItem\", renderStatItem);\nrenderRegistry.register(\"logoCloud\", renderLogoCloud);\nrenderRegistry.register(\"navbar\", renderNavbar);\nrenderRegistry.register(\"footer\", renderFooter);\nrenderRegistry.register(\"blogPostCard\", renderBlogPostCard);\nrenderRegistry.register(\"blogPostGrid\", renderBlogPostGrid);\nrenderRegistry.register(\"blogPostDetail\", renderBlogPostDetail);\nrenderRegistry.register(\"blogCategoryFilter\", renderBlogCategoryFilter);\nrenderRegistry.register(\"blogSearchBar\", renderBlogSearchBar);\nrenderRegistry.register(\"productShowcase\", renderProductShowcase);\nrenderRegistry.register(\"aboutSection\", renderAboutSection);\nrenderRegistry.register(\"contactSection\", renderContactSection);\nrenderRegistry.register(\"blogRecentPosts\", renderBlogRecentPosts);\nrenderRegistry.register(\"blogTagCloud\", renderBlogTagCloud);\n"],"names":["renderRegistry","renderHero","renderFeature","renderFeatureGrid","renderPricing","renderPricingCard","renderTestimonial","renderTestimonialGrid","renderFaq","renderFaqItem","renderCta","renderStats","renderStatItem","renderLogoCloud","renderNavbar","renderFooter","renderBlogPostCard","renderBlogPostGrid","renderBlogPostDetail","renderBlogCategoryFilter","renderBlogSearchBar","renderProductShowcase","renderAboutSection","renderContactSection","renderBlogRecentPosts","renderBlogTagCloud"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiCAA,EAAe,SAAS,QAAQC,CAAU;AAC1CD,EAAe,SAAS,WAAWE,CAAa;AAChDF,EAAe,SAAS,eAAeG,CAAiB;AACxDH,EAAe,SAAS,WAAWI,CAAa;AAChDJ,EAAe,SAAS,eAAeK,CAAiB;AACxDL,EAAe,SAAS,eAAeM,CAAiB;AACxDN,EAAe,SAAS,mBAAmBO,CAAqB;AAChEP,EAAe,SAAS,OAAOQ,CAAS;AACxCR,EAAe,SAAS,WAAWS,CAAa;AAChDT,EAAe,SAAS,OAAOU,CAAS;AACxCV,EAAe,SAAS,SAASW,CAAW;AAC5CX,EAAe,SAAS,YAAYY,CAAc;AAClDZ,EAAe,SAAS,aAAaa,CAAe;AACpDb,EAAe,SAAS,UAAUc,CAAY;AAC9Cd,EAAe,SAAS,UAAUe,CAAY;AAC9Cf,EAAe,SAAS,gBAAgBgB,CAAkB;AAC1DhB,EAAe,SAAS,gBAAgBiB,CAAkB;AAC1DjB,EAAe,SAAS,kBAAkBkB,CAAoB;AAC9DlB,EAAe,SAAS,sBAAsBmB,CAAwB;AACtEnB,EAAe,SAAS,iBAAiBoB,CAAmB;AAC5DpB,EAAe,SAAS,mBAAmBqB,CAAqB;AAChErB,EAAe,SAAS,gBAAgBsB,CAAkB;AAC1DtB,EAAe,SAAS,kBAAkBuB,CAAoB;AAC9DvB,EAAe,SAAS,mBAAmBwB,CAAqB;AAChExB,EAAe,SAAS,gBAAgByB,CAAkB;"}
|
|
@@ -7,7 +7,7 @@ export type { TypographyConfig } from '../shared/typography';
|
|
|
7
7
|
/**
|
|
8
8
|
* Tipos de blocos disponíveis
|
|
9
9
|
*/
|
|
10
|
-
export type BlockType = "container" | "stack" | "grid" | "box" | "spacer" | "heading" | "text" | "image" | "button" | "link" | "divider" | "badge" | "icon" | "avatar" | "video" | "socialLinks" | "card" | "section" | "hero" | "feature" | "featureGrid" | "pricing" | "pricingCard" | "testimonial" | "testimonialGrid" | "faq" | "faqItem" | "cta" | "stats" | "statItem" | "logoCloud" | "navbar" | "footer" | "countdown" | "carousel" | "blogCard" | "blogCardGrid" | "teamCard" | "teamGrid" | "courseCardGrid" | "categoryCardGrid" | "blogPostCard" | "blogPostGrid" | "blogPostDetail" | "blogCategoryFilter" | "blogSearchBar" | "productShowcase" | "aboutSection" | "contactSection" | "form" | "input" | "textarea" | "formSelect";
|
|
10
|
+
export type BlockType = "container" | "stack" | "grid" | "box" | "spacer" | "heading" | "text" | "image" | "button" | "link" | "divider" | "badge" | "icon" | "avatar" | "video" | "socialLinks" | "card" | "section" | "hero" | "feature" | "featureGrid" | "pricing" | "pricingCard" | "testimonial" | "testimonialGrid" | "faq" | "faqItem" | "cta" | "stats" | "statItem" | "logoCloud" | "navbar" | "footer" | "countdown" | "carousel" | "blogCard" | "blogCardGrid" | "teamCard" | "teamGrid" | "courseCardGrid" | "categoryCardGrid" | "blogPostCard" | "blogPostGrid" | "blogPostDetail" | "blogCategoryFilter" | "blogSearchBar" | "blogRecentPosts" | "blogTagCloud" | "productShowcase" | "aboutSection" | "contactSection" | "form" | "input" | "textarea" | "formSelect";
|
|
11
11
|
/**
|
|
12
12
|
* Props base de um bloco
|
|
13
13
|
*/
|
|
@@ -51,6 +51,8 @@ export interface GridBlock extends BlockBase {
|
|
|
51
51
|
md?: number;
|
|
52
52
|
lg?: number;
|
|
53
53
|
};
|
|
54
|
+
/** CSS grid-template-columns override (ex: "1fr 320px", "2fr 1fr"). Tem prioridade sobre cols. */
|
|
55
|
+
colTemplate?: string;
|
|
54
56
|
gap?: string;
|
|
55
57
|
children?: Block[];
|
|
56
58
|
};
|
|
@@ -889,6 +891,10 @@ export interface BlogPostGridBlock extends BlockBase {
|
|
|
889
891
|
showViewAll?: boolean;
|
|
890
892
|
viewAllText?: string;
|
|
891
893
|
viewAllHref?: string;
|
|
894
|
+
/** Pagination — set by content hydration, not user-editable */
|
|
895
|
+
currentPage?: number;
|
|
896
|
+
totalPages?: number;
|
|
897
|
+
paginationBaseUrl?: string;
|
|
892
898
|
};
|
|
893
899
|
}
|
|
894
900
|
/**
|
|
@@ -913,6 +919,12 @@ export interface BlogPostDetailBlock extends BlockBase {
|
|
|
913
919
|
showTags?: boolean;
|
|
914
920
|
showReadingTime?: boolean;
|
|
915
921
|
contentMaxWidth?: string;
|
|
922
|
+
/** Nome do autor (populado pela hydration, editável no admin) */
|
|
923
|
+
authorName?: string;
|
|
924
|
+
/** Avatar URL do autor */
|
|
925
|
+
authorAvatar?: string;
|
|
926
|
+
/** Bio curta do autor */
|
|
927
|
+
authorBio?: string;
|
|
916
928
|
metaTitle?: string;
|
|
917
929
|
metaDescription?: string;
|
|
918
930
|
ogImage?: string;
|
|
@@ -956,6 +968,49 @@ export interface BlogSearchBarBlock extends BlockBase {
|
|
|
956
968
|
filterDate?: boolean;
|
|
957
969
|
};
|
|
958
970
|
}
|
|
971
|
+
/**
|
|
972
|
+
* BlogRecentPosts - Widget com os posts mais recentes do blog
|
|
973
|
+
*/
|
|
974
|
+
export interface BlogRecentPostsBlock extends BlockBase {
|
|
975
|
+
type: "blogRecentPosts";
|
|
976
|
+
props: {
|
|
977
|
+
/** Título do widget (ex: "Posts Recentes") */
|
|
978
|
+
title?: string;
|
|
979
|
+
/** Quantidade de posts a exibir */
|
|
980
|
+
count?: number;
|
|
981
|
+
/** Posts hidratados pela contentHydration */
|
|
982
|
+
posts?: Array<{
|
|
983
|
+
title: string;
|
|
984
|
+
slug: string;
|
|
985
|
+
date?: string;
|
|
986
|
+
image?: string;
|
|
987
|
+
category?: string;
|
|
988
|
+
}>;
|
|
989
|
+
/** Mostrar miniatura */
|
|
990
|
+
showThumbnail?: boolean;
|
|
991
|
+
/** Mostrar data */
|
|
992
|
+
showDate?: boolean;
|
|
993
|
+
/** Mostrar badge de categoria */
|
|
994
|
+
showCategory?: boolean;
|
|
995
|
+
};
|
|
996
|
+
}
|
|
997
|
+
/**
|
|
998
|
+
* BlogTagCloud - Widget com nuvem de tags do blog
|
|
999
|
+
*/
|
|
1000
|
+
export interface BlogTagCloudBlock extends BlockBase {
|
|
1001
|
+
type: "blogTagCloud";
|
|
1002
|
+
props: {
|
|
1003
|
+
/** Título do widget (ex: "Tags") */
|
|
1004
|
+
title?: string;
|
|
1005
|
+
/** Tags hidratadas pela contentHydration — array de {name, count} */
|
|
1006
|
+
tags?: Array<{
|
|
1007
|
+
name: string;
|
|
1008
|
+
count: number;
|
|
1009
|
+
}>;
|
|
1010
|
+
/** Estilo: "badges" | "list" */
|
|
1011
|
+
variant?: "badges" | "list";
|
|
1012
|
+
};
|
|
1013
|
+
}
|
|
959
1014
|
/**
|
|
960
1015
|
* ProductShowcase - Seção de produtos com layout alternado
|
|
961
1016
|
*/
|
|
@@ -1107,7 +1162,7 @@ export interface FormSelectBlock extends BlockBase {
|
|
|
1107
1162
|
/**
|
|
1108
1163
|
* Union type de todos os blocos
|
|
1109
1164
|
*/
|
|
1110
|
-
export type Block = ContainerBlock | StackBlock | GridBlock | BoxBlock | SpacerBlock | HeadingBlock | TextBlock | ImageBlock | ButtonBlock | LinkBlock | DividerBlock | BadgeBlock | IconBlock | AvatarBlock | VideoBlock | SocialLinksBlock | CardBlock | SectionBlock | HeroBlock | FeatureBlock | FeatureGridBlock | PricingBlock | PricingCardBlock | TestimonialBlock | TestimonialGridBlock | FaqBlock | FaqItemBlock | CtaBlock | StatsBlock | StatItemBlock | LogoCloudBlock | NavbarBlock | FooterBlock | CountdownBlock | CarouselBlock | BlogCardBlock | BlogCardGridBlock | TeamCardBlock | TeamGridBlock | CourseCardGridBlock | CategoryCardGridBlock | BlogPostCardBlock | BlogPostGridBlock | BlogPostDetailBlock | BlogCategoryFilterBlock | BlogSearchBarBlock | ProductShowcaseBlock | AboutSectionBlock | ContactSectionBlock | FormBlock | InputBlock | TextareaBlock | FormSelectBlock;
|
|
1165
|
+
export type Block = ContainerBlock | StackBlock | GridBlock | BoxBlock | SpacerBlock | HeadingBlock | TextBlock | ImageBlock | ButtonBlock | LinkBlock | DividerBlock | BadgeBlock | IconBlock | AvatarBlock | VideoBlock | SocialLinksBlock | CardBlock | SectionBlock | HeroBlock | FeatureBlock | FeatureGridBlock | PricingBlock | PricingCardBlock | TestimonialBlock | TestimonialGridBlock | FaqBlock | FaqItemBlock | CtaBlock | StatsBlock | StatItemBlock | LogoCloudBlock | NavbarBlock | FooterBlock | CountdownBlock | CarouselBlock | BlogCardBlock | BlogCardGridBlock | TeamCardBlock | TeamGridBlock | CourseCardGridBlock | CategoryCardGridBlock | BlogPostCardBlock | BlogPostGridBlock | BlogPostDetailBlock | BlogCategoryFilterBlock | BlogSearchBarBlock | BlogRecentPostsBlock | BlogTagCloudBlock | ProductShowcaseBlock | AboutSectionBlock | ContactSectionBlock | FormBlock | InputBlock | TextareaBlock | FormSelectBlock;
|
|
1111
1166
|
/**
|
|
1112
1167
|
* Utility type: extract the block interface for a given BlockType
|
|
1113
1168
|
*/
|