create-email-renderer 0.2.0 → 0.3.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/SKILL.md +32 -4
- package/dist/default-blocks.d.ts.map +1 -1
- package/dist/default-blocks.js +20 -0
- package/dist/default-blocks.js.map +1 -1
- package/dist/html-render.d.ts.map +1 -1
- package/dist/html-render.js +76 -15
- package/dist/html-render.js.map +1 -1
- package/dist/normalize.d.ts +7 -1
- package/dist/normalize.d.ts.map +1 -1
- package/dist/normalize.js +49 -1
- package/dist/normalize.js.map +1 -1
- package/dist/records.d.ts +5 -0
- package/dist/records.d.ts.map +1 -1
- package/dist/records.js +12 -0
- package/dist/records.js.map +1 -1
- package/dist/registry.d.ts +7 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js.map +1 -1
- package/dist/richtext.d.ts +6 -0
- package/dist/richtext.d.ts.map +1 -1
- package/dist/richtext.js +13 -0
- package/dist/richtext.js.map +1 -1
- package/dist/types.d.ts +55 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +77 -0
- package/dist/types.js.map +1 -1
- package/docs/BLOCKS.md +65 -2
- package/docs/MCP.md +3 -0
- package/llms.txt +3 -1
- package/package.json +1 -1
package/dist/normalize.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BlockDefinition, EmailBlock, EmailSettings } from "./types.js";
|
|
1
|
+
import type { BlockDefinition, EmailBlock, EmailFileAttachment, EmailSettings } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Normaliza un array de bloques de origen desconocido (JSON de la BD, import,
|
|
4
4
|
* versión vieja del esquema): descarta tipos que no están en la librería,
|
|
@@ -8,6 +8,12 @@ import type { BlockDefinition, EmailBlock, EmailSettings } from "./types.js";
|
|
|
8
8
|
* La librería por defecto es el registry vivo (built-in + `registerBlock`).
|
|
9
9
|
*/
|
|
10
10
|
export declare const normalizeBlocks: (input: unknown, library?: BlockDefinition[]) => EmailBlock[];
|
|
11
|
+
/**
|
|
12
|
+
* Normaliza `settings.files`: repara ids y tipos, descarta entradas sin URL
|
|
13
|
+
* usable (esquema no permitido), deriva el nombre de la URL si falta y aplica
|
|
14
|
+
* los defaults cuando la clave viene ausente (`link: true`, `attach: false`).
|
|
15
|
+
*/
|
|
16
|
+
export declare const normalizeFiles: (input: unknown) => EmailFileAttachment[];
|
|
11
17
|
/** Normaliza los settings: solo claves conocidas, coacción numérica, defaults. */
|
|
12
18
|
export declare const normalizeSettings: (input: unknown) => EmailSettings;
|
|
13
19
|
//# sourceMappingURL=normalize.d.ts.map
|
package/dist/normalize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,eAAe,EAEf,UAAU,EAGV,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAgLpB;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,EACd,UAAU,eAAe,EAAE,KAC1B,UAAU,EAUZ,CAAC;AAmBF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,mBAAmB,EAuBlE,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,aAyBlD,CAAC"}
|
package/dist/normalize.js
CHANGED
|
@@ -6,7 +6,8 @@ import { DEFAULT_BLOCK_LIBRARY, DEFAULT_SETTINGS, } from "./default-blocks.js";
|
|
|
6
6
|
import { newId } from "./id.js";
|
|
7
7
|
import { getBlockNormalizeProps, listBlockDefinitions } from "./registry.js";
|
|
8
8
|
import { isContainerType } from "./types.js";
|
|
9
|
-
import { coerceNumber, normalizeRecordArray, RECORD_ARRAY_FIELDS, } from "./records.js";
|
|
9
|
+
import { coerceNumber, FILE_FIELDS, normalizeRecordArray, RECORD_ARRAY_FIELDS, } from "./records.js";
|
|
10
|
+
import { isSafeFileUrl } from "./richtext.js";
|
|
10
11
|
// Props de layout opcionales que no viven en los defaults (undefined = heredar
|
|
11
12
|
// el shorthand); aun así deben sobrevivir a la normalización.
|
|
12
13
|
const LAYOUT_KEYS = [
|
|
@@ -166,6 +167,52 @@ export const normalizeBlocks = (input, library) => {
|
|
|
166
167
|
const blockMap = new Map(defs.map((def) => [def.type, def]));
|
|
167
168
|
return normalizeBlockList(input, blockMap, 0);
|
|
168
169
|
};
|
|
170
|
+
/** Tope duro de archivos en un payload (el límite de la UI es configurable). */
|
|
171
|
+
const MAX_NORMALIZED_FILES = 50;
|
|
172
|
+
/** Nombre legible a partir de la URL del archivo (los `data:` no lo tienen). */
|
|
173
|
+
const fileNameFromUrl = (url) => {
|
|
174
|
+
if (/^data:/i.test(url))
|
|
175
|
+
return "archivo";
|
|
176
|
+
const clean = url.split("?")[0].split("#")[0];
|
|
177
|
+
const base = clean.split("/").pop() || "";
|
|
178
|
+
let name = base;
|
|
179
|
+
try {
|
|
180
|
+
name = decodeURIComponent(base);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
name = base;
|
|
184
|
+
}
|
|
185
|
+
return name.slice(0, 120) || "archivo";
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Normaliza `settings.files`: repara ids y tipos, descarta entradas sin URL
|
|
189
|
+
* usable (esquema no permitido), deriva el nombre de la URL si falta y aplica
|
|
190
|
+
* los defaults cuando la clave viene ausente (`link: true`, `attach: false`).
|
|
191
|
+
*/
|
|
192
|
+
export const normalizeFiles = (input) => {
|
|
193
|
+
if (!Array.isArray(input))
|
|
194
|
+
return [];
|
|
195
|
+
const raw = input;
|
|
196
|
+
return normalizeRecordArray(input, [], FILE_FIELDS)
|
|
197
|
+
.map((entry, index) => {
|
|
198
|
+
const source = raw[index];
|
|
199
|
+
const src = source && typeof source === "object"
|
|
200
|
+
? source
|
|
201
|
+
: {};
|
|
202
|
+
const url = String(entry.url ?? "").trim();
|
|
203
|
+
return {
|
|
204
|
+
id: String(entry.id),
|
|
205
|
+
url,
|
|
206
|
+
name: String(entry.name ?? "").trim() || fileNameFromUrl(url),
|
|
207
|
+
size: coerceNumber(entry.size, 0),
|
|
208
|
+
mimeType: String(entry.mimeType ?? "").trim(),
|
|
209
|
+
attach: "attach" in src ? entry.attach === true : false,
|
|
210
|
+
link: "link" in src ? entry.link !== false : true,
|
|
211
|
+
};
|
|
212
|
+
})
|
|
213
|
+
.filter((file) => isSafeFileUrl(file.url))
|
|
214
|
+
.slice(0, MAX_NORMALIZED_FILES);
|
|
215
|
+
};
|
|
169
216
|
/** Normaliza los settings: solo claves conocidas, coacción numérica, defaults. */
|
|
170
217
|
export const normalizeSettings = (input) => {
|
|
171
218
|
const raw = input && typeof input === "object"
|
|
@@ -181,6 +228,7 @@ export const normalizeSettings = (input) => {
|
|
|
181
228
|
fontFamily: typeof raw.fontFamily === "string"
|
|
182
229
|
? raw.fontFamily
|
|
183
230
|
: DEFAULT_SETTINGS.fontFamily,
|
|
231
|
+
files: normalizeFiles(raw.files),
|
|
184
232
|
};
|
|
185
233
|
};
|
|
186
234
|
//# sourceMappingURL=normalize.js.map
|
package/dist/normalize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AAChF,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/records.d.ts
CHANGED
|
@@ -3,6 +3,11 @@ export declare const coerceNumber: (value: unknown, fallback: number) => number;
|
|
|
3
3
|
export type RecordFieldKind = "string" | "number" | "boolean" | "string[]";
|
|
4
4
|
/** Campos de array de registros por clave de prop. */
|
|
5
5
|
export declare const RECORD_ARRAY_FIELDS: Record<string, Record<string, RecordFieldKind>>;
|
|
6
|
+
/**
|
|
7
|
+
* Campos de un archivo de `settings.files`. No vive en `RECORD_ARRAY_FIELDS`
|
|
8
|
+
* porque no es una prop de bloque: lo consume `normalizeFiles`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const FILE_FIELDS: Record<string, RecordFieldKind>;
|
|
6
11
|
/** Normaliza un array de registros con campos conocidos (repara ids/tipos). */
|
|
7
12
|
export declare const normalizeRecordArray: (value: unknown, fallback: Array<Record<string, unknown>>, fields: Record<string, RecordFieldKind>) => Array<Record<string, unknown>>;
|
|
8
13
|
//# sourceMappingURL=records.d.ts.map
|
package/dist/records.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,EAAE,UAAU,MAAM,KAAG,MAI/D,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3E,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAsChC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,GAC/B,OAAO,OAAO,EACd,UAAU,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,QAAQ,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,KACtC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyB/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,EAAE,UAAU,MAAM,KAAG,MAI/D,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3E,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAsChC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAOvD,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,GAC/B,OAAO,OAAO,EACd,UAAU,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,QAAQ,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,KACtC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyB/B,CAAC"}
|
package/dist/records.js
CHANGED
|
@@ -48,6 +48,18 @@ export const RECORD_ARRAY_FIELDS = {
|
|
|
48
48
|
highlighted: "boolean",
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Campos de un archivo de `settings.files`. No vive en `RECORD_ARRAY_FIELDS`
|
|
53
|
+
* porque no es una prop de bloque: lo consume `normalizeFiles`.
|
|
54
|
+
*/
|
|
55
|
+
export const FILE_FIELDS = {
|
|
56
|
+
url: "string",
|
|
57
|
+
name: "string",
|
|
58
|
+
size: "number",
|
|
59
|
+
mimeType: "string",
|
|
60
|
+
attach: "boolean",
|
|
61
|
+
link: "boolean",
|
|
62
|
+
};
|
|
51
63
|
/** Normaliza un array de registros con campos conocidos (repara ids/tipos). */
|
|
52
64
|
export const normalizeRecordArray = (value, fallback, fields) => {
|
|
53
65
|
if (!Array.isArray(value))
|
package/dist/records.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"records.js","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"records.js","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import type { BlockDefinition, EmailBlockProps, EmailContext, EmailPalette } from "./types.js";
|
|
1
|
+
import type { BlockDefinition, EmailBlockProps, EmailContext, EmailPalette, EmailSettings } from "./types.js";
|
|
2
2
|
export interface BlockRenderInput<P = EmailBlockProps> {
|
|
3
3
|
props: P;
|
|
4
4
|
context: EmailContext;
|
|
5
5
|
palette: EmailPalette;
|
|
6
|
+
/**
|
|
7
|
+
* Ajustes globales del correo (puede ser parcial). El bloque `downloads` lee
|
|
8
|
+
* de aquí la lista de archivos subidos en Ajustes (`settings.files`); el resto
|
|
9
|
+
* de bloques lo ignoran.
|
|
10
|
+
*/
|
|
11
|
+
settings?: Partial<EmailSettings>;
|
|
6
12
|
}
|
|
7
13
|
export type BlockRenderHtml<P = EmailBlockProps> = (input: BlockRenderInput<P>) => string;
|
|
8
14
|
export type BlockNormalizeProps = (rawProps: unknown, definition: BlockDefinition) => EmailBlockProps;
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,eAAe;IACnD,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,eAAe,IAAI,CACjD,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KACvB,MAAM,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAChC,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,eAAe,KACxB,eAAe,CAAC;AAErB,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,eAAe;IACpD,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAChC,wEAAwE;IACxE,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAMD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,GAAG,eAAe,EAC/C,cAAc,iBAAiB,CAAC,CAAC,CAAC,KACjC,IAWF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,IAE9C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,MAAM,KACX,iBAAiB,GAAG,SAC8B,CAAC;AAEtD,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,KACX,eAAe,GAAG,SAC0C,CAAC;AAEhE,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,KACX,mBAAmB,GAAG,SAC8C,CAAC;AAExE,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,QAAO,eAAe,EACK,CAAC;AAE7D,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,QAAO,IAErC,CAAC"}
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AA2CA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,YAAkC,EAC5B,EAAE;IACR,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IACpC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE;QAC5B,GAAI,QAAmB;QACvB,GAAI,YAAuB;QAC3B,UAAU;KACW,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAQ,EAAE;IACpD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAY,EACmB,EAAE,CACjC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAkC,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAY,EACiB,EAAE,CAC/B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAyC,CAAC;AAEhE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAY,EACqB,EAAE,CACnC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,cAAiD,CAAC;AAExE,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAsB,EAAE,CAC1D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAE7D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAS,EAAE;IAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC"}
|
package/dist/richtext.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export declare const sanitizeRichText: (html: string) => string;
|
|
2
2
|
export declare const escapeHtml: (text: string) => string;
|
|
3
3
|
export declare const isRichText: (content: string) => boolean;
|
|
4
|
+
/**
|
|
5
|
+
* URLs que aceptamos en un enlace de descarga: `http`, `https` y `data:`
|
|
6
|
+
* (archivos pequeños embebidos). Todo lo demás (`javascript:`, `blob:`,
|
|
7
|
+
* `file:`, `vbscript:`) se descarta en normalize y en render.
|
|
8
|
+
*/
|
|
9
|
+
export declare const isSafeFileUrl: (url: unknown) => boolean;
|
|
4
10
|
export declare const normalizeBlockHtml: (html: string) => string;
|
|
5
11
|
export declare const renderRichText: (content: string) => string;
|
|
6
12
|
//# sourceMappingURL=richtext.d.ts.map
|
package/dist/richtext.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"richtext.d.ts","sourceRoot":"","sources":["../src/richtext.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAe5C,CAAC;AAEL,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAKd,CAAC;AAE7B,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,OACT,CAAC;AAErC,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAKC,CAAC;AAmBpD,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAMhD,CAAC"}
|
|
1
|
+
{"version":3,"file":"richtext.d.ts","sourceRoot":"","sources":["../src/richtext.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAe5C,CAAC;AAEL,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAKd,CAAC;AAE7B,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,OACT,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,OAAO,KAAG,OAK5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAKC,CAAC;AAmBpD,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAMhD,CAAC"}
|
package/dist/richtext.js
CHANGED
|
@@ -39,6 +39,19 @@ export const escapeHtml = (text) => text
|
|
|
39
39
|
.replace(/>/g, ">")
|
|
40
40
|
.replace(/"/g, """);
|
|
41
41
|
export const isRichText = (content) => /<\/?[a-z][\s\S]*>/i.test(content);
|
|
42
|
+
/**
|
|
43
|
+
* URLs que aceptamos en un enlace de descarga: `http`, `https` y `data:`
|
|
44
|
+
* (archivos pequeños embebidos). Todo lo demás (`javascript:`, `blob:`,
|
|
45
|
+
* `file:`, `vbscript:`) se descarta en normalize y en render.
|
|
46
|
+
*/
|
|
47
|
+
export const isSafeFileUrl = (url) => {
|
|
48
|
+
if (typeof url !== "string")
|
|
49
|
+
return false;
|
|
50
|
+
const value = url.trim();
|
|
51
|
+
if (!value)
|
|
52
|
+
return false;
|
|
53
|
+
return /^(https?:|data:)/i.test(value);
|
|
54
|
+
};
|
|
42
55
|
export const normalizeBlockHtml = (html) => html
|
|
43
56
|
.replace(/<div([^>]*)>/gi, "<p$1>")
|
|
44
57
|
.replace(/<\/div>/gi, "</p>")
|
package/dist/richtext.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"richtext.js","sourceRoot":"","sources":["../src/richtext.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,SAAS,GAAG;IAChB,GAAG;IACH,IAAI;IACJ,QAAQ;IACR,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,KAAK;IACL,QAAQ;IACR,MAAM;IACN,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CACvD,YAAY,CAAC,IAAI,EAAE;IACjB,WAAW,EAAE,SAAS;IACtB,iBAAiB,EAAE;QACjB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;QACrC,IAAI,EAAE,CAAC,OAAO,CAAC;KAChB;IACD,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC3C,aAAa,EAAE;QACb,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,0CAA0C;SAClD,CAAC;KACH;CACF,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,IAAI;KACD,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;KACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAW,EAAE,CACrD,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE,CACzD,IAAI;KACD,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC;KAClC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;KAC5B,OAAO,CAAC,iCAAiC,EAAE,eAAe,CAAC;KAC3D,OAAO,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAEpD,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAU,EAAE,CACrD,IAAI;KACD,OAAO,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;KAC/D,OAAO,CACN,sBAAsB,EACtB,8CAA8C,CAC/C;KACA,OAAO,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;KAC7D,OAAO,CACN,wBAAwB,EACxB,oFAAoF,CACrF;KACA,OAAO,CACN,8BAA8B,EAC9B,oFAAoF,CACrF,CAAC;AAEN,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAU,EAAE;IACxD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,SAAS,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;AAC/C,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"richtext.js","sourceRoot":"","sources":["../src/richtext.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,SAAS,GAAG;IAChB,GAAG;IACH,IAAI;IACJ,QAAQ;IACR,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,KAAK;IACL,QAAQ;IACR,MAAM;IACN,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CACvD,YAAY,CAAC,IAAI,EAAE;IACjB,WAAW,EAAE,SAAS;IACtB,iBAAiB,EAAE;QACjB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;QACrC,IAAI,EAAE,CAAC,OAAO,CAAC;KAChB;IACD,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC3C,aAAa,EAAE;QACb,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,0CAA0C;SAClD,CAAC;KACH;CACF,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,IAAI;KACD,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;KACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAW,EAAE,CACrD,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAY,EAAW,EAAE;IACrD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE,CACzD,IAAI;KACD,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC;KAClC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;KAC5B,OAAO,CAAC,iCAAiC,EAAE,eAAe,CAAC;KAC3D,OAAO,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAEpD,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAU,EAAE,CACrD,IAAI;KACD,OAAO,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;KAC/D,OAAO,CACN,sBAAsB,EACtB,8CAA8C,CAC/C;KACA,OAAO,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;KAC7D,OAAO,CACN,wBAAwB,EACxB,oFAAoF,CACrF;KACA,OAAO,CACN,8BAA8B,EAC9B,oFAAoF,CACrF,CAAC;AAEN,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAU,EAAE;IACxD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,SAAS,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;AAC/C,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type EmailBlockType = "header" | "hero" | "heading" | "text" | "list" | "button" | "image" | "quote" | "columns" | "container" | "grid" | "divider" | "spacer" | "footer" | "social" | "gallery" | "stats" | "pricing" | "product" | "testimonial" | "features" | "avatar" | "code" | "link" | "checkout";
|
|
1
|
+
export type EmailBlockType = "header" | "hero" | "heading" | "text" | "list" | "button" | "image" | "quote" | "columns" | "container" | "grid" | "divider" | "spacer" | "footer" | "social" | "gallery" | "stats" | "pricing" | "product" | "testimonial" | "features" | "avatar" | "code" | "link" | "checkout" | "downloads";
|
|
2
2
|
/**
|
|
3
3
|
* Profundidad máxima de anidamiento. 1 = un bloque puede contener hijos, pero
|
|
4
4
|
* esos hijos no pueden volver a contener bloques (sin recursión infinita).
|
|
@@ -287,6 +287,53 @@ export interface CheckoutProps extends BlockCommonProps {
|
|
|
287
287
|
/** Color del borde de la caja y de las líneas de la tabla. */
|
|
288
288
|
borderColor?: string;
|
|
289
289
|
}
|
|
290
|
+
/**
|
|
291
|
+
* Archivo subido en Ajustes (`settings.files`), no en un bloque: se sube una
|
|
292
|
+
* vez y el bloque `downloads` lo lista donde lo pongas.
|
|
293
|
+
*
|
|
294
|
+
* `url` debe ser una URL **pública** (R2/S3/tu API) para que el destinatario
|
|
295
|
+
* pueda descargarlo o tu backend adjuntarlo; los `blob:` del navegador y los
|
|
296
|
+
* `data:` gigantes solo sirven para previsualizar.
|
|
297
|
+
*/
|
|
298
|
+
export interface EmailFileAttachment {
|
|
299
|
+
id: string;
|
|
300
|
+
url: string;
|
|
301
|
+
name: string;
|
|
302
|
+
/** Tamaño en bytes (informativo: se muestra junto al nombre). */
|
|
303
|
+
size?: number;
|
|
304
|
+
/** MIME real del archivo (informativo: elige el ícono). */
|
|
305
|
+
mimeType?: string;
|
|
306
|
+
/** Adjuntar el archivo al correo (lo resuelve tu backend/ESP). */
|
|
307
|
+
attach?: boolean;
|
|
308
|
+
/** Mostrar enlace de descarga en el bloque `downloads` (default `true`). */
|
|
309
|
+
link?: boolean;
|
|
310
|
+
}
|
|
311
|
+
/** Familias de archivo (ícono/etiqueta) del bloque `downloads`. */
|
|
312
|
+
export type FileKind = "pdf" | "doc" | "sheet" | "slides" | "zip" | "image" | "file";
|
|
313
|
+
/** Etiqueta corta por familia (badge del bloque `downloads`). */
|
|
314
|
+
export declare const FILE_KIND_LABELS: Record<FileKind, string>;
|
|
315
|
+
/** Familia de un archivo a partir del nombre/URL y (si hay) su MIME. */
|
|
316
|
+
export declare const fileKind: (nameOrUrl: string, mimeType?: string) => FileKind;
|
|
317
|
+
/** `1536` -> `"1.5 KB"`. Tolerante: valores raros devuelven `""`. */
|
|
318
|
+
export declare const formatBytes: (bytes: unknown) => string;
|
|
319
|
+
export interface DownloadsProps extends BlockCommonProps {
|
|
320
|
+
heading?: string;
|
|
321
|
+
subheading?: string;
|
|
322
|
+
/** Texto del enlace de descarga (default "Descargar"). */
|
|
323
|
+
buttonLabel?: string;
|
|
324
|
+
/** Color del enlace y del badge (default `#d7b227`). */
|
|
325
|
+
accentColor?: string;
|
|
326
|
+
/** Color del borde de la caja y de las filas. */
|
|
327
|
+
borderColor?: string;
|
|
328
|
+
/** Muestra el tamaño de cada archivo (default `true`). */
|
|
329
|
+
showSize?: boolean;
|
|
330
|
+
/** Muestra el badge con el tipo de archivo (default `true`). */
|
|
331
|
+
showIcon?: boolean;
|
|
332
|
+
/** Borde redondeado de la caja (default 8). */
|
|
333
|
+
radius?: number;
|
|
334
|
+
/** Texto cuando aún no hay archivos (vacío = no pintar nada). */
|
|
335
|
+
emptyText?: string;
|
|
336
|
+
}
|
|
290
337
|
export interface TestimonialProps extends BlockCommonProps {
|
|
291
338
|
avatarUrl?: string;
|
|
292
339
|
quote: string;
|
|
@@ -323,7 +370,7 @@ export interface LinkProps extends BlockCommonProps {
|
|
|
323
370
|
href: string;
|
|
324
371
|
color?: string;
|
|
325
372
|
}
|
|
326
|
-
export type EmailBlockProps = HeaderProps | HeroProps | HeadingProps | TextProps | ListProps | ButtonProps | ImageProps | QuoteProps | ColumnsProps | ContainerProps | GridProps | DividerProps | SpacerProps | FooterProps | SocialProps | GalleryProps | StatsProps | PricingProps | ProductProps | TestimonialProps | FeaturesProps | AvatarProps | CodeProps | LinkProps | CheckoutProps;
|
|
373
|
+
export type EmailBlockProps = HeaderProps | HeroProps | HeadingProps | TextProps | ListProps | ButtonProps | ImageProps | QuoteProps | ColumnsProps | ContainerProps | GridProps | DividerProps | SpacerProps | FooterProps | SocialProps | GalleryProps | StatsProps | PricingProps | ProductProps | TestimonialProps | FeaturesProps | AvatarProps | CodeProps | LinkProps | CheckoutProps | DownloadsProps;
|
|
327
374
|
/** Props por tipo de bloque (base del tipado de `blockJson`). */
|
|
328
375
|
export interface BlockPropsMap {
|
|
329
376
|
header: HeaderProps;
|
|
@@ -351,6 +398,7 @@ export interface BlockPropsMap {
|
|
|
351
398
|
code: CodeProps;
|
|
352
399
|
link: LinkProps;
|
|
353
400
|
checkout: CheckoutProps;
|
|
401
|
+
downloads: DownloadsProps;
|
|
354
402
|
}
|
|
355
403
|
export interface EmailBlock {
|
|
356
404
|
id: string;
|
|
@@ -404,6 +452,11 @@ export interface EmailSettings {
|
|
|
404
452
|
* fuente por defecto del cliente.
|
|
405
453
|
*/
|
|
406
454
|
fontFamily: string;
|
|
455
|
+
/**
|
|
456
|
+
* Archivos subidos en Ajustes: el bloque `downloads` los lista y tu backend
|
|
457
|
+
* los adjunta al enviar (`attach`). Nunca se descartan por estar vacío.
|
|
458
|
+
*/
|
|
459
|
+
files: EmailFileAttachment[];
|
|
407
460
|
}
|
|
408
461
|
/** Fuentes seguras (de sistema) para el correo, agrupadas por estilo. */
|
|
409
462
|
export declare const FONT_STACKS: readonly [{
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -42,6 +42,81 @@ export const SOCIAL_ICONS = [
|
|
|
42
42
|
"●",
|
|
43
43
|
"◆",
|
|
44
44
|
];
|
|
45
|
+
/** Etiqueta corta por familia (badge del bloque `downloads`). */
|
|
46
|
+
export const FILE_KIND_LABELS = {
|
|
47
|
+
pdf: "PDF",
|
|
48
|
+
doc: "DOC",
|
|
49
|
+
sheet: "XLS",
|
|
50
|
+
slides: "PPT",
|
|
51
|
+
zip: "ZIP",
|
|
52
|
+
image: "IMG",
|
|
53
|
+
file: "FILE",
|
|
54
|
+
};
|
|
55
|
+
const FILE_KIND_BY_EXTENSION = {
|
|
56
|
+
pdf: "pdf",
|
|
57
|
+
doc: "doc",
|
|
58
|
+
docx: "doc",
|
|
59
|
+
odt: "doc",
|
|
60
|
+
rtf: "doc",
|
|
61
|
+
txt: "doc",
|
|
62
|
+
xls: "sheet",
|
|
63
|
+
xlsx: "sheet",
|
|
64
|
+
csv: "sheet",
|
|
65
|
+
ods: "sheet",
|
|
66
|
+
ppt: "slides",
|
|
67
|
+
pptx: "slides",
|
|
68
|
+
odp: "slides",
|
|
69
|
+
zip: "zip",
|
|
70
|
+
rar: "zip",
|
|
71
|
+
"7z": "zip",
|
|
72
|
+
gz: "zip",
|
|
73
|
+
tar: "zip",
|
|
74
|
+
png: "image",
|
|
75
|
+
jpg: "image",
|
|
76
|
+
jpeg: "image",
|
|
77
|
+
gif: "image",
|
|
78
|
+
webp: "image",
|
|
79
|
+
avif: "image",
|
|
80
|
+
svg: "image",
|
|
81
|
+
bmp: "image",
|
|
82
|
+
};
|
|
83
|
+
const KIND_BY_MIME_PREFIX = [
|
|
84
|
+
["image/", "image"],
|
|
85
|
+
["application/pdf", "pdf"],
|
|
86
|
+
["application/zip", "zip"],
|
|
87
|
+
["application/x-zip", "zip"],
|
|
88
|
+
["application/x-rar", "zip"],
|
|
89
|
+
["application/msword", "doc"],
|
|
90
|
+
["application/vnd.openxmlformats-officedocument.wordprocessingml", "doc"],
|
|
91
|
+
["application/vnd.ms-excel", "sheet"],
|
|
92
|
+
["application/vnd.openxmlformats-officedocument.spreadsheetml", "sheet"],
|
|
93
|
+
["text/csv", "sheet"],
|
|
94
|
+
["application/vnd.ms-powerpoint", "slides"],
|
|
95
|
+
["application/vnd.openxmlformats-officedocument.presentationml", "slides"],
|
|
96
|
+
["text/", "doc"],
|
|
97
|
+
];
|
|
98
|
+
/** Familia de un archivo a partir del nombre/URL y (si hay) su MIME. */
|
|
99
|
+
export const fileKind = (nameOrUrl, mimeType) => {
|
|
100
|
+
const mime = (mimeType || "").toLowerCase().split(";")[0].trim();
|
|
101
|
+
for (const [prefix, kind] of KIND_BY_MIME_PREFIX) {
|
|
102
|
+
if (mime.startsWith(prefix))
|
|
103
|
+
return kind;
|
|
104
|
+
}
|
|
105
|
+
const clean = (nameOrUrl || "").split("?")[0].split("#")[0];
|
|
106
|
+
const ext = clean.includes(".") ? clean.split(".").pop().toLowerCase() : "";
|
|
107
|
+
return FILE_KIND_BY_EXTENSION[ext] ?? "file";
|
|
108
|
+
};
|
|
109
|
+
/** `1536` -> `"1.5 KB"`. Tolerante: valores raros devuelven `""`. */
|
|
110
|
+
export const formatBytes = (bytes) => {
|
|
111
|
+
if (typeof bytes !== "number" || !Number.isFinite(bytes) || bytes <= 0) {
|
|
112
|
+
return "";
|
|
113
|
+
}
|
|
114
|
+
if (bytes < 1024)
|
|
115
|
+
return `${Math.round(bytes)} B`;
|
|
116
|
+
if (bytes < 1024 * 1024)
|
|
117
|
+
return `${(bytes / 1024).toFixed(0)} KB`;
|
|
118
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
119
|
+
};
|
|
45
120
|
/** Fuentes seguras (de sistema) para el correo, agrupadas por estilo. */
|
|
46
121
|
export const FONT_STACKS = [
|
|
47
122
|
{
|
|
@@ -106,6 +181,8 @@ export const EMAIL_BLOCK_TYPES = [
|
|
|
106
181
|
"avatar",
|
|
107
182
|
"code",
|
|
108
183
|
"link",
|
|
184
|
+
"checkout",
|
|
185
|
+
"downloads",
|
|
109
186
|
];
|
|
110
187
|
export const buildBlockMap = (library) => Object.fromEntries(library.map((def) => [def.type, def]));
|
|
111
188
|
export const createBlock = (type, library) => {
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/docs/BLOCKS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Catálogo de bloques — `create-email-renderer`
|
|
2
2
|
|
|
3
|
-
Referencia completa de los **
|
|
3
|
+
Referencia completa de los **26 bloques built-in**: qué hace cada uno, sus props con el default
|
|
4
4
|
real del esquema, sus variantes y un ejemplo copiable con `blockJson`. Si eres una IA leyendo
|
|
5
5
|
esto para generar un correo, empieza por [El payload](#el-payload) y luego baja al bloque que
|
|
6
6
|
necesites.
|
|
@@ -22,7 +22,7 @@ interface EmailTemplatePayload {
|
|
|
22
22
|
|
|
23
23
|
interface EmailBlock {
|
|
24
24
|
id: string; // generado por `blockJson` / normalizado si falta
|
|
25
|
-
type: EmailBlockType; // uno de los
|
|
25
|
+
type: EmailBlockType; // uno de los 26 de este documento
|
|
26
26
|
props: Record<string, unknown>; // props del bloque (ver cada sección)
|
|
27
27
|
}
|
|
28
28
|
```
|
|
@@ -91,6 +91,34 @@ Claves de ejemplo ya presentes en `SAMPLE_CONTEXT`: `name`, `firstName`, `lastNa
|
|
|
91
91
|
| `cardBorderWidth` | `number` (px) | `1` | Borde de la tarjeta del correo (0 = sin marco). |
|
|
92
92
|
| `cardBorderRadius` | `number` (px) | `4` | Redondeo de la tarjeta. |
|
|
93
93
|
| `fontFamily` | `string` | stack de sistema | Tipografía del correo; `""` = no emitir (hereda la del cliente). |
|
|
94
|
+
| `files` | `EmailFileAttachment[]` | `[]` | Archivos subidos (en el editor: **Ajustes**). Los lista el bloque `downloads` y tu backend los adjunta al enviar. |
|
|
95
|
+
|
|
96
|
+
Cada archivo de `settings.files`:
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
interface EmailFileAttachment {
|
|
100
|
+
id: string;
|
|
101
|
+
url: string; // URL PÚBLICA (https/data). Obligatoria.
|
|
102
|
+
name: string; // "guia.pdf" (se deriva de la URL si falta)
|
|
103
|
+
size?: number; // bytes (informativo)
|
|
104
|
+
mimeType?: string; // "application/pdf" (elige el ícono)
|
|
105
|
+
attach?: boolean; // true = adjuntar al correo (lo hace tu ESP)
|
|
106
|
+
link?: boolean; // default true = listarlo en el bloque `downloads`
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Contrato con tu backend/ESP** (los adjuntos no viajan en el HTML):
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
const { content, settings } = parseTemplatePayload(payload); // normaliza y repara
|
|
114
|
+
const attachments = settings.files
|
|
115
|
+
.filter((f) => f.attach)
|
|
116
|
+
.map((f) => ({ filename: f.name, path: f.url })); // p. ej. Resend/SES
|
|
117
|
+
const { html, subject } = await renderTemplateEmail({ subject, payload, context });
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
> Los esquemas permitidos son `http:`, `https:` y `data:`; cualquier otro (`javascript:`, `blob:`)
|
|
121
|
+
> se descarta al normalizar. Los `blob:` del navegador solo sirven para previsualizar.
|
|
94
122
|
|
|
95
123
|
### Anidamiento
|
|
96
124
|
|
|
@@ -449,6 +477,39 @@ Usa un stack monoespaciado propio (gana sobre el `fontFamily` del correo).
|
|
|
449
477
|
|
|
450
478
|
> Sin `href` se pinta como texto (sin `<a>`).
|
|
451
479
|
|
|
480
|
+
## 26. `downloads` — Archivos / Descargas
|
|
481
|
+
|
|
482
|
+
Lista los archivos de **`settings.files`** (los que se suben en Ajustes) con su tipo, nombre,
|
|
483
|
+
tamaño y un enlace de descarga. **No lleva los archivos en las props**: el bloque solo pinta la
|
|
484
|
+
lista, así que subir un archivo en Ajustes lo actualiza en todos los correos que tengan el bloque.
|
|
485
|
+
|
|
486
|
+
| Prop | Tipo | Default |
|
|
487
|
+
|---|---|---|
|
|
488
|
+
| `heading` | `string` | `"Recursos descargables"` |
|
|
489
|
+
| `subheading` | `string` | `""` |
|
|
490
|
+
| `buttonLabel` | `string` | `"Descargar"` |
|
|
491
|
+
| `accentColor` | `string` | `#d7b227` (enlace y badge) |
|
|
492
|
+
| `borderColor` | `string` | `#e3dccb` (caja y filas) |
|
|
493
|
+
| `showIcon` / `showSize` | `boolean` | `true` / `true` |
|
|
494
|
+
| `radius` | `number` (px) | `8` |
|
|
495
|
+
| `emptyText` | `string` | `""` (sin archivos no pinta nada) |
|
|
496
|
+
|
|
497
|
+
Solo aparecen los archivos con `link !== false`; los marcados únicamente como adjunto
|
|
498
|
+
(`attach: true, link: false`) no salen en el HTML. Sin archivos y sin `emptyText` el bloque no
|
|
499
|
+
emite ni un byte (la salida es idéntica a la de una plantilla sin el bloque).
|
|
500
|
+
|
|
501
|
+
```ts
|
|
502
|
+
templateJson(
|
|
503
|
+
[blockJson("downloads", { heading: "Recursos de la semana" })],
|
|
504
|
+
{
|
|
505
|
+
files: [
|
|
506
|
+
{ id: "f1", url: "https://cdn.tu-sitio.com/guia.pdf", name: "Guía.pdf", size: 1536, mimeType: "application/pdf" },
|
|
507
|
+
{ id: "f2", url: "https://cdn.tu-sitio.com/planilla.xlsx", name: "Planilla.xlsx", mimeType: "application/vnd.ms-excel" },
|
|
508
|
+
],
|
|
509
|
+
},
|
|
510
|
+
);
|
|
511
|
+
```
|
|
512
|
+
|
|
452
513
|
---
|
|
453
514
|
|
|
454
515
|
## Reglas prácticas al generar correos
|
|
@@ -465,3 +526,5 @@ Usa un stack monoespaciado propio (gana sobre el `fontFamily` del correo).
|
|
|
465
526
|
7. **Peso**: mantén el HTML por debajo de ~102 KB o Gmail lo recortará ("Ver todo el mensaje").
|
|
466
527
|
8. **Variables**: úsalas en textos y enlaces; no inventes claves fuera del `context` (se quedan
|
|
467
528
|
visibles como `{clave}`).
|
|
529
|
+
9. **Archivos descargables**: van en `settings.files`, no en el bloque; usa URL públicas
|
|
530
|
+
(`https:`) y `attach: true` solo lo que quieras adjuntar de verdad (el HTML no adjunta nada).
|