vobi_document 1.0.2 → 1.1.1

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 (96) hide show
  1. package/README.md +23 -6
  2. package/dist/blocks.cjs +108 -0
  3. package/dist/blocks.cjs.map +1 -0
  4. package/dist/blocks.d.cts +214 -0
  5. package/dist/blocks.d.ts +214 -0
  6. package/dist/blocks.js +7 -0
  7. package/dist/blocks.js.map +1 -0
  8. package/dist/catalogContext-DenbX-OW.d.cts +15 -0
  9. package/dist/catalogContext-HGMU-w_4.d.ts +15 -0
  10. package/dist/chunk-26DSIOEY.cjs +68 -0
  11. package/dist/chunk-26DSIOEY.cjs.map +1 -0
  12. package/dist/chunk-3FTKM37U.cjs +1354 -0
  13. package/dist/chunk-3FTKM37U.cjs.map +1 -0
  14. package/dist/chunk-CZB7F2LA.js +90 -0
  15. package/dist/chunk-CZB7F2LA.js.map +1 -0
  16. package/dist/chunk-ERKU5FDV.cjs +407 -0
  17. package/dist/chunk-ERKU5FDV.cjs.map +1 -0
  18. package/dist/chunk-FKX46GKE.cjs +36 -0
  19. package/dist/chunk-FKX46GKE.cjs.map +1 -0
  20. package/dist/chunk-GR76U6FP.cjs +194 -0
  21. package/dist/chunk-GR76U6FP.cjs.map +1 -0
  22. package/dist/chunk-I22MGPXO.cjs +117 -0
  23. package/dist/chunk-I22MGPXO.cjs.map +1 -0
  24. package/dist/chunk-JYSA6IM5.js +1327 -0
  25. package/dist/chunk-JYSA6IM5.js.map +1 -0
  26. package/dist/chunk-L5FXGEKX.cjs +114 -0
  27. package/dist/chunk-L5FXGEKX.cjs.map +1 -0
  28. package/dist/chunk-LNBAFOVK.cjs +14 -0
  29. package/dist/chunk-LNBAFOVK.cjs.map +1 -0
  30. package/dist/chunk-M6FQVH76.js +824 -0
  31. package/dist/chunk-M6FQVH76.js.map +1 -0
  32. package/dist/chunk-MUSSJOOA.js +109 -0
  33. package/dist/chunk-MUSSJOOA.js.map +1 -0
  34. package/dist/chunk-N3IDPT3B.js +182 -0
  35. package/dist/chunk-N3IDPT3B.js.map +1 -0
  36. package/dist/chunk-OJZJJEJX.js +904 -0
  37. package/dist/chunk-OJZJJEJX.js.map +1 -0
  38. package/dist/chunk-PLQNNXS2.js +382 -0
  39. package/dist/chunk-PLQNNXS2.js.map +1 -0
  40. package/dist/chunk-QJ5W5EED.cjs +94 -0
  41. package/dist/chunk-QJ5W5EED.cjs.map +1 -0
  42. package/dist/chunk-QYBWIJXZ.js +98 -0
  43. package/dist/chunk-QYBWIJXZ.js.map +1 -0
  44. package/dist/chunk-RO3Y2MSU.cjs +844 -0
  45. package/dist/chunk-RO3Y2MSU.cjs.map +1 -0
  46. package/dist/chunk-RZOR3HOA.cjs +933 -0
  47. package/dist/chunk-RZOR3HOA.cjs.map +1 -0
  48. package/dist/chunk-SOIYSSU3.js +108 -0
  49. package/dist/chunk-SOIYSSU3.js.map +1 -0
  50. package/dist/chunk-SP5LCPDG.cjs +119 -0
  51. package/dist/chunk-SP5LCPDG.cjs.map +1 -0
  52. package/dist/chunk-W52ULJCW.js +61 -0
  53. package/dist/chunk-W52ULJCW.js.map +1 -0
  54. package/dist/chunk-ZOJBDFKU.js +12 -0
  55. package/dist/chunk-ZOJBDFKU.js.map +1 -0
  56. package/dist/editor.cjs +60 -0
  57. package/dist/editor.cjs.map +1 -0
  58. package/dist/editor.d.cts +190 -0
  59. package/dist/editor.d.ts +190 -0
  60. package/dist/editor.js +7 -0
  61. package/dist/editor.js.map +1 -0
  62. package/dist/index.cjs +436 -3753
  63. package/dist/index.cjs.map +1 -1
  64. package/dist/index.d.cts +72 -7892
  65. package/dist/index.d.ts +72 -7892
  66. package/dist/index.js +22 -3662
  67. package/dist/index.js.map +1 -1
  68. package/dist/messages-Bi0JxNIH.d.cts +23 -0
  69. package/dist/messages-Bi0JxNIH.d.ts +23 -0
  70. package/dist/print.cjs +354 -0
  71. package/dist/print.cjs.map +1 -0
  72. package/dist/print.d.cts +43 -0
  73. package/dist/print.d.ts +43 -0
  74. package/dist/print.js +336 -0
  75. package/dist/print.js.map +1 -0
  76. package/dist/puck.cjs +8 -8
  77. package/dist/puck.cjs.map +1 -1
  78. package/dist/render.cjs +72 -0
  79. package/dist/render.cjs.map +1 -0
  80. package/dist/render.d.cts +93 -0
  81. package/dist/render.d.ts +93 -0
  82. package/dist/render.js +7 -0
  83. package/dist/render.js.map +1 -0
  84. package/dist/theme-BuEFpQeZ.d.cts +112 -0
  85. package/dist/theme-BuEFpQeZ.d.ts +112 -0
  86. package/dist/types-BgIugNWW.d.cts +25 -0
  87. package/dist/types-BgIugNWW.d.ts +25 -0
  88. package/dist/types-CvKSS1Sy.d.cts +38 -0
  89. package/dist/types-CvKSS1Sy.d.ts +38 -0
  90. package/dist/variables.cjs +111 -0
  91. package/dist/variables.cjs.map +1 -0
  92. package/dist/variables.d.cts +106 -0
  93. package/dist/variables.d.ts +106 -0
  94. package/dist/variables.js +6 -0
  95. package/dist/variables.js.map +1 -0
  96. package/package.json +39 -8
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ var chunkSP5LCPDG_cjs = require('./chunk-SP5LCPDG.cjs');
4
+
5
+ // src/variables/format.ts
6
+ var brl = new Intl.NumberFormat("pt-BR", { style: "currency", currency: "BRL" });
7
+ var decimal = new Intl.NumberFormat("pt-BR");
8
+ var date = new Intl.DateTimeFormat("pt-BR");
9
+ function toNumber(value) {
10
+ const n = typeof value === "string" ? Number(value) : value;
11
+ return typeof n === "number" && Number.isFinite(n) ? n : null;
12
+ }
13
+ var DATE_ONLY = /^(\d{4})-(\d{2})-(\d{2})(?:T00:00(?::00(?:\.000)?)?Z)?$/;
14
+ var DIGITS = /\D/g;
15
+ var CPF = /^(\d{3})(\d{3})(\d{3})(\d{2})$/;
16
+ var CNPJ = /^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
17
+ var PHONE = /^(?:55)?(\d{2})(\d{4,5})(\d{4})$/;
18
+ var ZIPCODE = /^(\d{5})(\d{3})$/;
19
+ function toDate(raw) {
20
+ if (raw instanceof Date) return raw;
21
+ const match = DATE_ONLY.exec(String(raw));
22
+ if (match) return new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3]));
23
+ return new Date(raw);
24
+ }
25
+ function toDocument(raw) {
26
+ const digits = raw.replace(DIGITS, "");
27
+ const cpf = CPF.exec(digits);
28
+ if (cpf) return `${cpf[1]}.${cpf[2]}.${cpf[3]}-${cpf[4]}`;
29
+ const cnpj = CNPJ.exec(digits);
30
+ if (cnpj) return `${cnpj[1]}.${cnpj[2]}.${cnpj[3]}/${cnpj[4]}-${cnpj[5]}`;
31
+ return raw;
32
+ }
33
+ function toPhone(raw) {
34
+ const match = PHONE.exec(raw.replace(DIGITS, ""));
35
+ return match ? `(${match[1]}) ${match[2]}-${match[3]}` : raw;
36
+ }
37
+ function toZipcode(raw) {
38
+ const match = ZIPCODE.exec(raw.replace(DIGITS, ""));
39
+ return match ? `${match[1]}-${match[2]}` : raw;
40
+ }
41
+ function formatValue(type, raw) {
42
+ if (raw === null || raw === void 0) return "";
43
+ switch (type) {
44
+ case "currency": {
45
+ const n = toNumber(raw);
46
+ return n === null ? "" : brl.format(n);
47
+ }
48
+ case "number": {
49
+ const n = toNumber(raw);
50
+ return n === null ? "" : decimal.format(n);
51
+ }
52
+ case "date": {
53
+ const d = toDate(raw);
54
+ return Number.isNaN(d.getTime()) ? "" : date.format(d);
55
+ }
56
+ case "document":
57
+ return toDocument(String(raw));
58
+ case "phone":
59
+ return toPhone(String(raw));
60
+ case "zipcode":
61
+ return toZipcode(String(raw));
62
+ case "boolean":
63
+ return raw ? "Sim" : "N\xE3o";
64
+ case "string":
65
+ default:
66
+ return String(raw);
67
+ }
68
+ }
69
+
70
+ // src/variables/resolve.ts
71
+ function formatResolvedValues(defs, raw) {
72
+ const resolved = {};
73
+ defs.forEach((def) => {
74
+ const value = def.key in raw ? raw[def.key] : def.default;
75
+ if (value === void 0 || value === null) return;
76
+ const formatted = formatValue(def.type, value);
77
+ if (formatted !== "") resolved[def.key] = formatted;
78
+ });
79
+ return resolved;
80
+ }
81
+ async function resolveDocumentVariables(node, catalog, resolver, ctx) {
82
+ const keys = chunkSP5LCPDG_cjs.extractBindingKeys(node);
83
+ if (keys.length === 0) return {};
84
+ const raw = await resolver(keys, ctx);
85
+ const byKey = new Map(catalog.map((def) => [def.key, def]));
86
+ const defs = keys.map((key) => byKey.get(key) ?? { key, label: key, type: "string", model: "outros" });
87
+ return formatResolvedValues(defs, raw);
88
+ }
89
+
90
+ exports.formatResolvedValues = formatResolvedValues;
91
+ exports.formatValue = formatValue;
92
+ exports.resolveDocumentVariables = resolveDocumentVariables;
93
+ //# sourceMappingURL=chunk-QJ5W5EED.cjs.map
94
+ //# sourceMappingURL=chunk-QJ5W5EED.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/variables/format.ts","../src/variables/resolve.ts"],"names":["extractBindingKeys"],"mappings":"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","file":"chunk-QJ5W5EED.cjs","sourcesContent":["import type { VariableType } from './types';\n\nconst brl = new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' });\nconst decimal = new Intl.NumberFormat('pt-BR');\nconst date = new Intl.DateTimeFormat('pt-BR');\n\nfunction toNumber(value: unknown): number | null {\n const n = typeof value === 'string' ? Number(value) : (value as number);\n return typeof n === 'number' && Number.isFinite(n) ? n : null;\n}\n\n// `YYYY-MM-DD` e o timestamp de meia-noite UTC que o Sequelize serializa para colunas DATE.\nconst DATE_ONLY = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T00:00(?::00(?:\\.000)?)?Z)?$/;\n\nconst DIGITS = /\\D/g;\nconst CPF = /^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/;\nconst CNPJ = /^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})$/;\nconst PHONE = /^(?:55)?(\\d{2})(\\d{4,5})(\\d{4})$/;\nconst ZIPCODE = /^(\\d{5})(\\d{3})$/;\n\n// Só-data é parseada como data LOCAL — new Date(string) seria UTC e voltaria um dia (docs/variables.md).\nfunction toDate(raw: unknown): Date {\n if (raw instanceof Date) return raw;\n const match = DATE_ONLY.exec(String(raw));\n if (match) return new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n return new Date(raw as string);\n}\n\n// Documento e telefone chegam crus do banco, com ou sem máscara. Sem match, devolve o\n// valor original — melhor exibir o cru do que esconder o dado.\nfunction toDocument(raw: string): string {\n const digits = raw.replace(DIGITS, '');\n const cpf = CPF.exec(digits);\n if (cpf) return `${cpf[1]}.${cpf[2]}.${cpf[3]}-${cpf[4]}`;\n const cnpj = CNPJ.exec(digits);\n if (cnpj) return `${cnpj[1]}.${cnpj[2]}.${cnpj[3]}/${cnpj[4]}-${cnpj[5]}`;\n return raw;\n}\n\n// DDI 55 é descartado na máscara: telefone gravado com e sem DDI aparece igual.\nfunction toPhone(raw: string): string {\n const match = PHONE.exec(raw.replace(DIGITS, ''));\n return match ? `(${match[1]}) ${match[2]}-${match[3]}` : raw;\n}\n\nfunction toZipcode(raw: string): string {\n const match = ZIPCODE.exec(raw.replace(DIGITS, ''));\n return match ? `${match[1]}-${match[2]}` : raw;\n}\n\n/** Format a raw resolved value by its catalog type, pt-BR. preview == PDF. */\nexport function formatValue(type: VariableType, raw: unknown): string {\n if (raw === null || raw === undefined) return '';\n\n switch (type) {\n case 'currency': {\n const n = toNumber(raw);\n return n === null ? '' : brl.format(n);\n }\n case 'number': {\n const n = toNumber(raw);\n return n === null ? '' : decimal.format(n);\n }\n case 'date': {\n const d = toDate(raw);\n return Number.isNaN(d.getTime()) ? '' : date.format(d);\n }\n case 'document':\n return toDocument(String(raw));\n case 'phone':\n return toPhone(String(raw));\n case 'zipcode':\n return toZipcode(String(raw));\n case 'boolean':\n return raw ? 'Sim' : 'Não';\n case 'string':\n default:\n return String(raw);\n }\n}\n","import { extractBindingKeys } from './bindings';\nimport { formatValue } from './format';\nimport type { ResolvedVariables, VariableContext, VariableDef, VariableResolver } from './types';\n\n/**\n * Formata valores crus por tipo do catálogo. Keys sem valor ficam FORA do mapa\n * (`undefined` = \"não resolvida\" — ver docs/variables.md).\n */\nexport function formatResolvedValues(defs: VariableDef[], raw: Record<string, unknown>): ResolvedVariables {\n const resolved: ResolvedVariables = {};\n defs.forEach(def => {\n const value = def.key in raw ? raw[def.key] : def.default;\n if (value === undefined || value === null) return;\n const formatted = formatValue(def.type, value);\n if (formatted !== '') resolved[def.key] = formatted;\n });\n return resolved;\n}\n\n/** Resolve os bindings de `node` em strings pt-BR formatadas (preview == PDF). */\nexport async function resolveDocumentVariables(\n node: unknown,\n catalog: VariableDef[],\n resolver: VariableResolver,\n ctx: VariableContext\n): Promise<ResolvedVariables> {\n const keys = extractBindingKeys(node);\n if (keys.length === 0) return {};\n\n const raw = await resolver(keys, ctx);\n const byKey = new Map(catalog.map(def => [def.key, def]));\n const defs = keys.map(key => byKey.get(key) ?? { key, label: key, type: 'string' as const, model: 'outros' });\n return formatResolvedValues(defs, raw);\n}\n"]}
@@ -0,0 +1,98 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+
3
+ // src/editor/blockIcons.tsx
4
+ var base = {
5
+ width: 16,
6
+ height: 16,
7
+ viewBox: "0 0 24 24",
8
+ fill: "none",
9
+ stroke: "currentColor",
10
+ strokeWidth: 2,
11
+ strokeLinecap: "round",
12
+ strokeLinejoin: "round"
13
+ };
14
+ function TextIcon() {
15
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("path", { d: "M4 6h16M4 12h16M4 18h10" }) });
16
+ }
17
+ function ImageIcon() {
18
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
19
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "4", width: "18", height: "16", rx: "2" }),
20
+ /* @__PURE__ */ jsx("circle", { cx: "8.5", cy: "9.5", r: "1.5" }),
21
+ /* @__PURE__ */ jsx("path", { d: "m21 16-5-5L5 20" })
22
+ ] });
23
+ }
24
+ function ButtonIcon() {
25
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("rect", { x: "3", y: "8", width: "18", height: "8", rx: "4" }) });
26
+ }
27
+ function DividerIcon() {
28
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("path", { d: "M3 12h18" }) });
29
+ }
30
+ function PageBreakIcon() {
31
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
32
+ /* @__PURE__ */ jsx("path", { d: "M6 4h8l4 4v4M6 4v6M3 14h18", strokeDasharray: "0 0" }),
33
+ /* @__PURE__ */ jsx("path", { d: "M3 14h18", strokeDasharray: "3 3" }),
34
+ /* @__PURE__ */ jsx("path", { d: "M6 18v2M18 18v2" })
35
+ ] });
36
+ }
37
+ function TableIcon() {
38
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
39
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "4", width: "18", height: "16", rx: "1" }),
40
+ /* @__PURE__ */ jsx("path", { d: "M3 10h18M3 15h18M9 4v16M15 4v16" })
41
+ ] });
42
+ }
43
+ function ImageGridIcon() {
44
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
45
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "8", height: "8", rx: "1" }),
46
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "3", width: "8", height: "8", rx: "1" }),
47
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "13", width: "8", height: "8", rx: "1" }),
48
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "13", width: "8", height: "8", rx: "1" })
49
+ ] });
50
+ }
51
+ function IconTextIcon() {
52
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
53
+ /* @__PURE__ */ jsx("circle", { cx: "6", cy: "12", r: "3" }),
54
+ /* @__PURE__ */ jsx("path", { d: "M12 9h9M12 14h6" })
55
+ ] });
56
+ }
57
+ function ImageTextIcon() {
58
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
59
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "6", width: "7", height: "12", rx: "1" }),
60
+ /* @__PURE__ */ jsx("path", { d: "M13 8h8M13 12h8M13 16h5" })
61
+ ] });
62
+ }
63
+ function TwoColumnsIcon() {
64
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
65
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "4", width: "8", height: "16", rx: "1" }),
66
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "4", width: "8", height: "16", rx: "1" })
67
+ ] });
68
+ }
69
+ function BlockIcon() {
70
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
71
+ /* @__PURE__ */ jsx("rect", { x: "4", y: "4", width: "7", height: "7", rx: "1" }),
72
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "4", width: "7", height: "7", rx: "1" }),
73
+ /* @__PURE__ */ jsx("rect", { x: "4", y: "13", width: "7", height: "7", rx: "1" }),
74
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "13", width: "7", height: "7", rx: "1" })
75
+ ] });
76
+ }
77
+ function HeadingIcon() {
78
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("path", { d: "M6 4v16M18 4v16M6 12h12" }) });
79
+ }
80
+ function ListIcon() {
81
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("path", { d: "M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" }) });
82
+ }
83
+ function QuoteIcon() {
84
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
85
+ /* @__PURE__ */ jsx("path", { d: "M4 5v14" }),
86
+ /* @__PURE__ */ jsx("path", { d: "M10 8h9M10 12h9M10 16h6" })
87
+ ] });
88
+ }
89
+ function SpacerIcon() {
90
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
91
+ /* @__PURE__ */ jsx("path", { d: "M4 5h16M4 19h16M12 9v6" }),
92
+ /* @__PURE__ */ jsx("path", { d: "m9 12 3-3 3 3M9 16l3 3 3-3" })
93
+ ] });
94
+ }
95
+
96
+ export { BlockIcon, ButtonIcon, DividerIcon, HeadingIcon, IconTextIcon, ImageGridIcon, ImageIcon, ImageTextIcon, ListIcon, PageBreakIcon, QuoteIcon, SpacerIcon, TableIcon, TextIcon, TwoColumnsIcon };
97
+ //# sourceMappingURL=chunk-QYBWIJXZ.js.map
98
+ //# sourceMappingURL=chunk-QYBWIJXZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/editor/blockIcons.tsx"],"names":[],"mappings":"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","file":"chunk-QYBWIJXZ.js","sourcesContent":["import type { ReactNode } from 'react';\n\nconst base = {\n width: 16,\n height: 16,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const\n};\n\nexport function TextIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M4 6h16M4 12h16M4 18h10\" />\n </svg>\n );\n}\n\nexport function ImageIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" />\n <circle cx=\"8.5\" cy=\"9.5\" r=\"1.5\" />\n <path d=\"m21 16-5-5L5 20\" />\n </svg>\n );\n}\n\nexport function ButtonIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"8\" width=\"18\" height=\"8\" rx=\"4\" />\n </svg>\n );\n}\n\nexport function DividerIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M3 12h18\" />\n </svg>\n );\n}\n\nexport function PageBreakIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M6 4h8l4 4v4M6 4v6M3 14h18\" strokeDasharray=\"0 0\" />\n <path d=\"M3 14h18\" strokeDasharray=\"3 3\" />\n <path d=\"M6 18v2M18 18v2\" />\n </svg>\n );\n}\n\nexport function TableIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"1\" />\n <path d=\"M3 10h18M3 15h18M9 4v16M15 4v16\" />\n </svg>\n );\n}\n\nexport function ImageGridIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"3\" width=\"8\" height=\"8\" rx=\"1\" />\n <rect x=\"13\" y=\"3\" width=\"8\" height=\"8\" rx=\"1\" />\n <rect x=\"3\" y=\"13\" width=\"8\" height=\"8\" rx=\"1\" />\n <rect x=\"13\" y=\"13\" width=\"8\" height=\"8\" rx=\"1\" />\n </svg>\n );\n}\n\nexport function IconTextIcon(): ReactNode {\n return (\n <svg {...base}>\n <circle cx=\"6\" cy=\"12\" r=\"3\" />\n <path d=\"M12 9h9M12 14h6\" />\n </svg>\n );\n}\n\nexport function ImageTextIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"6\" width=\"7\" height=\"12\" rx=\"1\" />\n <path d=\"M13 8h8M13 12h8M13 16h5\" />\n </svg>\n );\n}\n\nexport function TwoColumnsIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"4\" width=\"8\" height=\"16\" rx=\"1\" />\n <rect x=\"13\" y=\"4\" width=\"8\" height=\"16\" rx=\"1\" />\n </svg>\n );\n}\n\n/** Generic fallback for blocks that don't declare an icon. */\nexport function BlockIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"4\" y=\"4\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"13\" y=\"4\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"4\" y=\"13\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"13\" y=\"13\" width=\"7\" height=\"7\" rx=\"1\" />\n </svg>\n );\n}\n\nexport function HeadingIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M6 4v16M18 4v16M6 12h12\" />\n </svg>\n );\n}\n\nexport function ListIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01\" />\n </svg>\n );\n}\n\nexport function QuoteIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M4 5v14\" />\n <path d=\"M10 8h9M10 12h9M10 16h6\" />\n </svg>\n );\n}\n\nexport function SpacerIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M4 5h16M4 19h16M12 9v6\" />\n <path d=\"m9 12 3-3 3 3M9 16l3 3 3-3\" />\n </svg>\n );\n}\n"]}