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.
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,eAAe,EAEf,UAAU,EAGV,aAAa,EACd,MAAM,YAAY,CAAC;AAgLpB;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,EACd,UAAU,eAAe,EAAE,KAC1B,UAAU,EAUZ,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,aAwBlD,CAAC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
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
@@ -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))
@@ -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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"}
@@ -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;
@@ -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,EACb,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;CACvB;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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAoCA,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"}
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"}
@@ -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
@@ -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, "&gt;")
40
40
  .replace(/"/g, "&quot;");
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>")
@@ -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 [{
@@ -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;AA6BhC;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,WAAW;IACX,SAAS;IACT,MAAM;IACN,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CACvD,IAAI,KAAK,WAAW;IACpB,IAAI,KAAK,SAAS;IAClB,IAAI,KAAK,MAAM;IACf,IAAI,KAAK,QAAQ,CAAC;AA+EpB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC;AAyFF,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC;AAqTF,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,SAAS;QAChB,KAAK,EACH,4FAA4F;KAC/F;IACD;QACE,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,gDAAgD;KACxD;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,6BAA6B;KACrC;IACD;QACE,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,qCAAqC;KAC7C;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,mCAAmC;KAC3C;IACD;QACE,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,iCAAiC;KACzC;IACD;QACE,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,mCAAmC;KAC3C;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AASvD,MAAM,CAAC,MAAM,iBAAiB,GAAqB;IACjD,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,SAAS;IACT,WAAW;IACX,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,SAAS;IACT,aAAa;IACb,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAA0B,EACe,EAAE,CAC3C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAGvD,CAAC;AAEJ,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAoB,EACpB,OAA0B,EACd,EAAE;IACd,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,KAAK,EAAE;QACX,IAAI;QACJ,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE;KACrC,CAAC;AACJ,CAAC,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 **25 bloques built-in**: qué hace cada uno, sus props con el default
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 de este documento
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).