create-email-template 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/README.md +54 -19
- package/SKILL.md +31 -3
- package/dist/block-views-builtin.d.ts.map +1 -1
- package/dist/components/builder/canvas.d.ts.map +1 -1
- package/dist/components/builder/editable-block-renderer.d.ts +5 -0
- package/dist/components/builder/editable-block-renderer.d.ts.map +1 -1
- package/dist/components/builder/settings-dialog.d.ts +7 -0
- package/dist/components/builder/settings-dialog.d.ts.map +1 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/types.d.ts +39 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/core/blocks.d.ts +11 -3
- package/dist/core/blocks.d.ts.map +1 -1
- package/dist/core/render.d.ts.map +1 -1
- package/dist/hooks/use-email-builder.d.ts +1 -0
- package/dist/hooks/use-email-builder.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3577 -2868
- package/dist/index.js.map +1 -1
- package/dist/store/email-builder-provider.d.ts +3 -2
- package/dist/store/email-builder-provider.d.ts.map +1 -1
- package/llms.txt +3 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -47,7 +47,8 @@ export function EditorPage() {
|
|
|
47
47
|
```tsx
|
|
48
48
|
<EmailBuilderProvider
|
|
49
49
|
config={{ /* opciones del builder (todas opcionales) */ }}
|
|
50
|
-
uploadImage={fnUpload}
|
|
50
|
+
uploadImage={fnUpload} // opcional: subida de imágenes
|
|
51
|
+
uploadFile={fnUploadFile} // opcional: subida de documentos (PDF, DOC, XLS…)
|
|
51
52
|
autosave={{ /* opcional: autoguardado */ }}
|
|
52
53
|
>
|
|
53
54
|
```
|
|
@@ -57,9 +58,10 @@ export function EditorPage() {
|
|
|
57
58
|
| Opción | Tipo | Default | Qué hace |
|
|
58
59
|
|---|---|---|---|
|
|
59
60
|
| `blockDefaults` | `Partial<Record<Bloque, Partial<Props>>>` | — | Valores iniciales por tipo de bloque. Se aplican **al arrastrar** el bloque al canvas. |
|
|
60
|
-
| `blockLibrary` | `BlockDefinition[]` | `DEFAULT_BLOCK_LIBRARY` (
|
|
61
|
+
| `blockLibrary` | `BlockDefinition[]` | `DEFAULT_BLOCK_LIBRARY` (26 bloques) | Qué bloques aparecen en la palette y con qué defaultProps. |
|
|
61
62
|
| `palette` | `Partial<EmailPalette>` | `DEFAULT_PALETTE` | Colores base del tema: `INK` (texto), `DARK` (fondos oscuros), `GOLD` (acentos), `CREAM_DIM` (texto secundario). |
|
|
62
|
-
| `defaultSettings` | `Partial<EmailSettings>` | `DEFAULT_SETTINGS` | Fondo de página, grosor
|
|
63
|
+
| `defaultSettings` | `Partial<EmailSettings>` | `DEFAULT_SETTINGS` | Fondo de página, grosor/redondeo del borde, tipografía y **archivos** (`files`). |
|
|
64
|
+
| `files` | `Partial<EmailBuilderFileOptions>` | `{ accept, maxSizeMb: 10, maxCount: 10, warnTotalMb: 5 }` | Límites y formatos aceptados al subir archivos en Ajustes. |
|
|
63
65
|
| `variables` | `EmailVariable[]` | `DEFAULT_VARIABLES` | Etiquetas `{key}` disponibles para el usuario. |
|
|
64
66
|
| `variableSections` | `EmailVariableSection[]` | agrupación única | Agrupa las variables por categoría en el dialog "Etiquetas disponibles". |
|
|
65
67
|
| `sampleContext` | `EmailContext` | `SAMPLE_CONTEXT` | Datos de ejemplo: al previsualizar, `{firstName}` se ve como el valor de aquí. |
|
|
@@ -104,24 +106,20 @@ export function EditorPage() {
|
|
|
104
106
|
>
|
|
105
107
|
```
|
|
106
108
|
|
|
107
|
-
#### Bloques disponibles
|
|
109
|
+
#### Bloques disponibles
|
|
108
110
|
|
|
109
|
-
|
|
111
|
+
**26 bloques**: `header`, `hero`, `heading`, `text`, `list`, `button`, `image`, `quote`,
|
|
112
|
+
`columns`, `container`, `grid`, `divider`, `spacer`, `footer`, `social`, `gallery`, `stats`,
|
|
113
|
+
`pricing`, `product`, `checkout`, `downloads`, `testimonial`, `features`, `avatar`, `code` y
|
|
114
|
+
`link`. Muchos tienen **variantes** (`list`, `footer`, `pricing`, `gallery`, `product`).
|
|
110
115
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
| `button` | `label`, `href` (acepta variables), `backgroundColor?`, `color?`, `blockBackgroundColor?` |
|
|
119
|
-
| `image` | `src`, `alt?`, `width?`, `href?` (si hay `href`, la imagen es clicable) |
|
|
120
|
-
| `quote` | `text`, `author?`, `borderColor?`, `borderWidth?`, `marginLeft?` |
|
|
121
|
-
| `columns` | `columns: { id: string; text: string }[]` |
|
|
122
|
-
| `divider` | `color?`, `height?` |
|
|
123
|
-
| `spacer` | `height?`, `backgroundColor?` |
|
|
124
|
-
| `footer` | `text?`, `brandName?`, `backgroundColor?` |
|
|
116
|
+
Todos aceptan `align`, `backgroundColor`, `paddingY`/`paddingX` (+ overrides por lado),
|
|
117
|
+
`marginTop`/`marginBottom` y `gap`.
|
|
118
|
+
|
|
119
|
+
📖 Props, defaults, variantes y ejemplos de cada uno: el catálogo del core,
|
|
120
|
+
[`create-email-renderer/docs/BLOCKS.md`](../create-email-renderer/docs/BLOCKS.md) (desde npm:
|
|
121
|
+
`node_modules/create-email-renderer/docs/BLOCKS.md`). Es la **única fuente de verdad** y viaja
|
|
122
|
+
con el paquete del renderer.
|
|
125
123
|
|
|
126
124
|
### `uploadImage`
|
|
127
125
|
|
|
@@ -137,6 +135,43 @@ uploadImage={async (file: File) => {
|
|
|
137
135
|
}}
|
|
138
136
|
```
|
|
139
137
|
|
|
138
|
+
### `uploadFile`
|
|
139
|
+
|
|
140
|
+
Se invoca cuando el usuario sube un documento desde **Ajustes** (el engranaje del lienzo). Recibe
|
|
141
|
+
el `File` y debe devolver la **URL pública** donde quedó alojado: el destinatario la usa para
|
|
142
|
+
descargar y tu backend para adjuntarlo al enviar.
|
|
143
|
+
|
|
144
|
+
```tsx
|
|
145
|
+
uploadFile={async (file: File) => {
|
|
146
|
+
const form = new FormData();
|
|
147
|
+
form.append("file", file);
|
|
148
|
+
const res = await fetch("/api/uploads", { method: "POST", body: form });
|
|
149
|
+
const { url } = await res.json();
|
|
150
|
+
return url; // URL pública (R2, S3, tu API…)
|
|
151
|
+
}}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Los archivos quedan en `settings.files` del payload y el bloque **`downloads`** los lista en el
|
|
155
|
+
correo. Cada archivo tiene dos interruptores:
|
|
156
|
+
|
|
157
|
+
| Interruptor | Campo | Para qué |
|
|
158
|
+
|---|---|---|
|
|
159
|
+
| **Adjuntar** | `attach` | Que tu ESP lo adjunte al enviar (el HTML no adjunta nada). |
|
|
160
|
+
| **Enlace** | `link` | Que aparezca en el bloque `downloads` (default `true`). |
|
|
161
|
+
|
|
162
|
+
Contrato del backend:
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
const { content, settings } = parseTemplatePayload(template.payload);
|
|
166
|
+
const attachments = settings.files
|
|
167
|
+
.filter((f) => f.attach)
|
|
168
|
+
.map((f) => ({ filename: f.name, path: f.url })); // p. ej. Resend/SES
|
|
169
|
+
const { html, subject } = await renderTemplateEmail({ subject, payload: template.payload, context });
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
> Sin `uploadFile` la librería usa `URL.createObjectURL` (blob local) para que puedas probar el
|
|
173
|
+
> editor: sirve para previsualizar, **no** para un correo real.
|
|
174
|
+
|
|
140
175
|
---
|
|
141
176
|
|
|
142
177
|
## Autoguardado (`autosave`) y guardado manual
|
package/SKILL.md
CHANGED
|
@@ -66,7 +66,7 @@ consumidor debe importarlo explícitamente; sin él, el editor se ve sin estilos
|
|
|
66
66
|
| `Canvas` / `SortableCanvas` | Lienzo con drag & drop. |
|
|
67
67
|
| `EditableBlockRenderer` | Render editable de un bloque concreto. |
|
|
68
68
|
| `PropertiesPanel` | Panel de propiedades schema-driven. |
|
|
69
|
-
| `InlineTextEditor`, `SelectionToolbar`, `VariablesInfoDialog` | Piezas internas reutilizables. |
|
|
69
|
+
| `InlineTextEditor`, `SelectionToolbar`, `VariablesInfoDialog`, `SettingsDialog` | Piezas internas reutilizables (el dialog de Ajustes gestiona tipografía, fondo y archivos). |
|
|
70
70
|
|
|
71
71
|
### Hooks (siempre dentro de `<EmailBuilderProvider>`)
|
|
72
72
|
|
|
@@ -88,8 +88,34 @@ Acciones: `addBlock(type, index?, location?)`, `removeBlock`, `duplicateBlock`,
|
|
|
88
88
|
### Provider (`EmailBuilderConfig`)
|
|
89
89
|
|
|
90
90
|
`variables`, `variableSections`, `blockLibrary`, `blockDefaults`, `palette`, `defaultSettings`,
|
|
91
|
-
`sampleContext`, `labels`, `historyLimit` (default 50). `autosave` recibe
|
|
92
|
-
`{ onSave, intervalMs (10s), enabled, onSaved }
|
|
91
|
+
`sampleContext`, `files`, `labels`, `historyLimit` (default 50). `autosave` recibe
|
|
92
|
+
`{ onSave, intervalMs (10s), enabled, onSaved }`; `uploadImage` sube imágenes y `uploadFile`
|
|
93
|
+
sube documentos (PDF, DOC, XLS…).
|
|
94
|
+
|
|
95
|
+
### Archivos descargables (`uploadFile` + `settings.files`)
|
|
96
|
+
|
|
97
|
+
El usuario sube archivos en **Ajustes** (el engranaje del lienzo). Quedan en
|
|
98
|
+
`settings.files` del payload y el bloque `downloads` los lista en el correo:
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
<EmailBuilderProvider
|
|
102
|
+
uploadFile={async (file) => {
|
|
103
|
+
const form = new FormData();
|
|
104
|
+
form.append("file", file);
|
|
105
|
+
const res = await fetch("/api/uploads", { method: "POST", body: form });
|
|
106
|
+
const { url } = await res.json();
|
|
107
|
+
return url; // URL PÚBLICA: el destinatario la descarga y tu backend la adjunta
|
|
108
|
+
}}
|
|
109
|
+
config={{ files: { maxSizeMb: 10, maxCount: 10, warnTotalMb: 5 } }} // opcional
|
|
110
|
+
>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
- Cada archivo lleva dos interruptores: **Adjuntar** (`attach`, lo resuelve tu ESP al enviar) y
|
|
114
|
+
**Enlace** (`link`, aparece en el bloque `downloads`). Defaults: `link: true`, `attach: false`.
|
|
115
|
+
- Sin `uploadFile`, la demo usa `URL.createObjectURL` (blob local): sirve para previsualizar,
|
|
116
|
+
**no** para un correo real.
|
|
117
|
+
- Tu backend lee los adjuntos del payload:
|
|
118
|
+
`settings.files.filter((f) => f.attach).map((f) => ({ filename: f.name, path: f.url }))`.
|
|
93
119
|
|
|
94
120
|
## Flujos típicos
|
|
95
121
|
|
|
@@ -143,3 +169,5 @@ await saveNow();
|
|
|
143
169
|
| Estilos raros en tu app | Un selector del CSS de la lib no está scopeado (`check:css-scope` lo vigila). |
|
|
144
170
|
| El canvas muestra una versión vieja | Caché del dev server: borra `node_modules/.vite` y reinicia. |
|
|
145
171
|
| `dirty` no baja | Solo `markSaved()` (autosave o manual) lo limpia. |
|
|
172
|
+
| El bloque de descargas no muestra nada | No hay archivos en Ajustes con el interruptor **Enlace** activo. |
|
|
173
|
+
| El archivo no llega adjunto | El HTML no adjunta: tu backend debe leer `settings.files` con `attach: true`. |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-views-builtin.d.ts","sourceRoot":"","sources":["../src/block-views-builtin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"block-views-builtin.d.ts","sourceRoot":"","sources":["../src/block-views-builtin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAmqBzE,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,MAAM,EACN,qBAAqB,CAAC,UAAU,CAAC,CA4BlC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CA2B1D,CAAA;AAED,eAAO,MAAM,iBAAiB,aAO5B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/components/builder/canvas.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/components/builder/canvas.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,cAAc,GAAI,cAE5B;IACD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,gCAsJA,CAAC"}
|
|
@@ -24,6 +24,11 @@ export declare const EditableFeatures: ({ props, palette }: BlockEditableProps)
|
|
|
24
24
|
export declare const EditableAvatar: ({ props, palette }: BlockEditableProps) => import("react").JSX.Element;
|
|
25
25
|
export declare const EditableCode: ({ props }: BlockEditableProps) => import("react").JSX.Element;
|
|
26
26
|
export declare const EditableLink: ({ props, palette }: BlockEditableProps) => import("react").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* Lista de archivos descargables. Los archivos NO se editan aquí: se suben en
|
|
29
|
+
* Ajustes (`settings.files`); el lienzo solo replica el diseño final.
|
|
30
|
+
*/
|
|
31
|
+
export declare const EditableDownloads: ({ props, palette, labels, }: BlockEditableProps) => import("react").JSX.Element;
|
|
27
32
|
export declare const EditableBlockRenderer: ({ block }: Props) => import("react").JSX.Element | null;
|
|
28
33
|
export {};
|
|
29
34
|
//# sourceMappingURL=editable-block-renderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editable-block-renderer.d.ts","sourceRoot":"","sources":["../../../src/components/builder/editable-block-renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"editable-block-renderer.d.ts","sourceRoot":"","sources":["../../../src/components/builder/editable-block-renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,kBAAkB,CAAA;AAgBrE,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEzE,UAAU,KAAK;IACb,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,eAAO,MAAM,cAAc,GAAI,0BAI5B,kBAAkB,gCA+CpB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,yBAAyB,kBAAkB,gCAqCvE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,yBAAyB,kBAAkB,gCAyB1E,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,yBAAyB,kBAAkB,gCAwBvE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,iCAAiC,kBAAkB,gCAsP/E,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,yBAAyB,kBAAkB,gCAwCzE,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,6BAI3B,kBAAkB,gCAuCpB,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,iCAAiC,kBAAkB,gCAuChF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,WAAW,kBAAkB,gCAe5D,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,WAAW,kBAAkB,gCAO3D,CAAA;AAwBD,eAAO,MAAM,cAAc,GAAI,oBAAoB,kBAAkB,gCAgDpE,CAAA;AA8CD,eAAO,MAAM,eAAe,GAAI,oBAAoB,kBAAkB,gCAqErE,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,oBAAoB,kBAAkB,gCAsBnE,CAAA;AAyKD,eAAO,MAAM,eAAe,GAAI,oBAAoB,kBAAkB,gCAkErE,CAAA;AAiND,eAAO,MAAM,gBAAgB,GAAI,oBAAoB,kBAAkB,gCAoFtE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,oBAAoB,kBAAkB,gCAKrE,CAAA;AA4CD,eAAO,MAAM,mBAAmB,GAAI,oBAAoB,kBAAkB,gCAiCzE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,oBAAoB,kBAAkB,gCA8BtE,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,oBAAoB,kBAAkB,gCAmCpE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,WAAW,kBAAkB,gCAmBzD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,oBAAoB,kBAAkB,gCAalE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,6BAI/B,kBAAkB,gCAsHpB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,WAAW,KAAK,uCAuBrD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-dialog.d.ts","sourceRoot":"","sources":["../../../src/components/builder/settings-dialog.tsx"],"names":[],"mappings":"AAwCA,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACtC;AA8DD,eAAO,MAAM,cAAc,GAAI,wBAAwB,KAAK,gCAuU3D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAejB,eAAO,MAAM,yBAAyB,GACpC,SAAS,kBAAkB,KAC1B,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAejB,eAAO,MAAM,yBAAyB,GACpC,SAAS,kBAAkB,KAC1B,0BA0CF,CAAC"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -4,6 +4,24 @@ import type { EmailVariable, EmailVariableSection } from "../core/variables";
|
|
|
4
4
|
export type DistributivePartial<T> = T extends unknown ? Partial<T> : never;
|
|
5
5
|
/** Sube una imagen y devuelve su URL (R2, S3, tu API, etc.). */
|
|
6
6
|
export type UploadImage = (file: File) => Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Sube un documento (PDF, DOC, XLS…) y devuelve su URL **pública**: el
|
|
9
|
+
* destinatario la usa para descargar y tu backend para adjuntarlo al enviar.
|
|
10
|
+
* Los `blob:`/`data:` locales solo sirven para previsualizar en el editor.
|
|
11
|
+
*/
|
|
12
|
+
export type UploadFile = (file: File) => Promise<string>;
|
|
13
|
+
/** Límites y formatos aceptados por el gestor de archivos de Ajustes. */
|
|
14
|
+
export interface EmailBuilderFileOptions {
|
|
15
|
+
/** Atributo `accept` del input (extensiones/MIME). */
|
|
16
|
+
accept: string;
|
|
17
|
+
/** Tamaño máximo por archivo en MB. */
|
|
18
|
+
maxSizeMb: number;
|
|
19
|
+
/** Cantidad máxima de archivos subidos. */
|
|
20
|
+
maxCount: number;
|
|
21
|
+
/** Avisa (sin bloquear) si el total de adjuntos supera estos MB. */
|
|
22
|
+
warnTotalMb: number;
|
|
23
|
+
}
|
|
24
|
+
export declare const DEFAULT_FILE_OPTIONS: EmailBuilderFileOptions;
|
|
7
25
|
/**
|
|
8
26
|
* Valores por defecto personalizados por tipo de bloque.
|
|
9
27
|
* Se aplican sobre los defaults de la librería (o sobre un `blockLibrary` custom).
|
|
@@ -57,7 +75,24 @@ export interface EmailBuilderLabels {
|
|
|
57
75
|
cardBorderRadius: string;
|
|
58
76
|
fontFamily: string;
|
|
59
77
|
fontCustom: string;
|
|
78
|
+
files: string;
|
|
79
|
+
filesHint: string;
|
|
80
|
+
filesEmpty: string;
|
|
81
|
+
uploadFile: string;
|
|
82
|
+
fileUploaded: string;
|
|
83
|
+
fileUploadError: string;
|
|
84
|
+
fileTooLarge: string;
|
|
85
|
+
fileTypeNotAllowed: string;
|
|
86
|
+
tooManyFiles: string;
|
|
87
|
+
totalSizeWarning: string;
|
|
88
|
+
attachFile: string;
|
|
89
|
+
linkFile: string;
|
|
90
|
+
copyFileUrl: string;
|
|
91
|
+
fileNotPublic: string;
|
|
92
|
+
removeFile: string;
|
|
93
|
+
downloadsHint: string;
|
|
60
94
|
settings: string;
|
|
95
|
+
settingsHint: string;
|
|
61
96
|
deviceMobile: string;
|
|
62
97
|
deviceDesktop: string;
|
|
63
98
|
canvasPreview: string;
|
|
@@ -80,6 +115,8 @@ export interface EmailBuilderConfig {
|
|
|
80
115
|
blockDefaults?: BlockDefaultsMap;
|
|
81
116
|
palette?: Partial<EmailPalette>;
|
|
82
117
|
defaultSettings?: Partial<EmailSettings>;
|
|
118
|
+
/** Límites y formatos de la subida de archivos (Ajustes). */
|
|
119
|
+
files?: Partial<EmailBuilderFileOptions>;
|
|
83
120
|
sampleContext?: EmailContext;
|
|
84
121
|
labels?: Partial<EmailBuilderLabels>;
|
|
85
122
|
/** Profundidad máxima del historial de deshacer. Default: 50. */
|
|
@@ -92,8 +129,10 @@ export interface ResolvedEmailBuilderConfig {
|
|
|
92
129
|
blockMap: Record<EmailBlockType, BlockDefinition>;
|
|
93
130
|
palette: EmailPalette;
|
|
94
131
|
defaultSettings: EmailSettings;
|
|
132
|
+
files: EmailBuilderFileOptions;
|
|
95
133
|
sampleContext: EmailContext;
|
|
96
134
|
uploadImage?: UploadImage;
|
|
135
|
+
uploadFile?: UploadFile;
|
|
97
136
|
labels: EmailBuilderLabels;
|
|
98
137
|
historyLimit: number;
|
|
99
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/blocks.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { EmailBlock, EmailBlockProps, EmailContext, EmailPalette } from "./types";
|
|
2
|
+
import type { EmailBlock, EmailBlockProps, EmailContext, EmailPalette, EmailFileAttachment } from "./types";
|
|
3
3
|
import { type BlockPreviewProps } from "../block-views";
|
|
4
4
|
export declare const alignMap: {
|
|
5
5
|
readonly left: "left";
|
|
@@ -10,6 +10,12 @@ export { alignMap as blockAlignMap };
|
|
|
10
10
|
export declare const blockPadding: (props: EmailBlockProps) => React.CSSProperties;
|
|
11
11
|
/** Padding por lado + márgenes externos (paridad con el render HTML). */
|
|
12
12
|
export declare const blockSpacing: (props: EmailBlockProps) => React.CSSProperties;
|
|
13
|
+
/**
|
|
14
|
+
* Archivos globales del correo (`settings.files`): se suben en Ajustes y el
|
|
15
|
+
* bloque `downloads` los lee de aquí. El contexto los baja por cualquier
|
|
16
|
+
* anidamiento (contenedor/columnas/grid) sin pasarlos por props.
|
|
17
|
+
*/
|
|
18
|
+
export declare const EmailFilesContext: React.Context<EmailFileAttachment[]>;
|
|
13
19
|
/** Preview components react-email por tipo — alimentan el registry de vistas. */
|
|
14
20
|
export declare const PREVIEW_COMPONENTS: Record<string, React.ComponentType<BlockPreviewProps>>;
|
|
15
21
|
export declare const BlockRenderer: ({ block, context, palette, }: {
|
|
@@ -17,15 +23,16 @@ export declare const BlockRenderer: ({ block, context, palette, }: {
|
|
|
17
23
|
context: EmailContext;
|
|
18
24
|
palette?: EmailPalette;
|
|
19
25
|
}) => React.JSX.Element | null;
|
|
20
|
-
export declare const EmailBody: ({ blocks, context, palette, cardBorderWidth, cardBorderRadius, fontFamily, }: {
|
|
26
|
+
export declare const EmailBody: ({ blocks, context, palette, cardBorderWidth, cardBorderRadius, fontFamily, files, }: {
|
|
21
27
|
blocks: EmailBlock[];
|
|
22
28
|
context: EmailContext;
|
|
23
29
|
palette?: EmailPalette;
|
|
24
30
|
cardBorderWidth?: number;
|
|
25
31
|
cardBorderRadius?: number;
|
|
26
32
|
fontFamily?: string;
|
|
33
|
+
files?: EmailFileAttachment[];
|
|
27
34
|
}) => React.JSX.Element;
|
|
28
|
-
export declare const EmailTemplate: ({ blocks, subject, context, palette, pageBackground, cardBorderWidth, cardBorderRadius, fontFamily, }: {
|
|
35
|
+
export declare const EmailTemplate: ({ blocks, subject, context, palette, pageBackground, cardBorderWidth, cardBorderRadius, fontFamily, files, }: {
|
|
29
36
|
blocks: EmailBlock[];
|
|
30
37
|
subject: string;
|
|
31
38
|
context: EmailContext;
|
|
@@ -34,5 +41,6 @@ export declare const EmailTemplate: ({ blocks, subject, context, palette, pageBa
|
|
|
34
41
|
cardBorderWidth?: number;
|
|
35
42
|
cardBorderRadius?: number;
|
|
36
43
|
fontFamily?: string;
|
|
44
|
+
files?: EmailFileAttachment[];
|
|
37
45
|
}) => React.JSX.Element;
|
|
38
46
|
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/core/blocks.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/core/blocks.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EA6BZ,mBAAmB,EACpB,MAAM,SAAS,CAAA;AAKhB,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAErE,eAAO,MAAM,QAAQ;;;;CAIX,CAAA;AAEV,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,CAAA;AAEpC,eAAO,MAAM,YAAY,GAAI,OAAO,eAAe,KAAG,KAAK,CAAC,aAwB3D,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,YAAY,GAAI,OAAO,eAAe,KAAG,KAAK,CAAC,aAY3D,CAAA;AAytBD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,sCAAiD,CAAA;AAykC/E,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CACrC,MAAM,EACN,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CA4BvC,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,8BAI3B;IACD,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB,6BAIA,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,qFAQvB;IACD,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAC9B,sBAsBA,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,8GAU3B;IACD,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAC9B,sBAuBA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAMD,eAAO,MAAM,eAAe,GAAU,kDAMnC,sBAAsB,KAAG,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAMD,eAAO,MAAM,eAAe,GAAU,kDAMnC,sBAAsB,KAAG,OAAO,CAAC,MAAM,CAavC,CAAC"}
|
|
@@ -8,6 +8,7 @@ export declare const useEmailBuilder: () => {
|
|
|
8
8
|
sampleContext: EmailContext;
|
|
9
9
|
labels: import("..").EmailBuilderLabels;
|
|
10
10
|
uploadImage: import("..").UploadImage | undefined;
|
|
11
|
+
uploadFile: import("..").UploadFile | undefined;
|
|
11
12
|
blocks: import("create-email-renderer").EmailBlock[];
|
|
12
13
|
selectedId: string | null;
|
|
13
14
|
propertiesOpen: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-email-builder.d.ts","sourceRoot":"","sources":["../../src/hooks/use-email-builder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AASlD,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"use-email-builder.d.ts","sourceRoot":"","sources":["../../src/hooks/use-email-builder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AASlD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;gBAiBS,CAAC;;;;;;;;;;;;wBAKpB;QAAE,OAAO,CAAC,EAAE,YAAY,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;oBAoBnD,MAAM,YAAY,YAAY,KAAG,MAAM;CAqCjD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,4 +31,5 @@ export * from "./components/builder/properties-panel";
|
|
|
31
31
|
export * from "./components/builder/inline-text-editor";
|
|
32
32
|
export * from "./components/builder/selection-toolbar";
|
|
33
33
|
export * from "./components/builder/variables-info-dialog";
|
|
34
|
+
export * from "./components/builder/settings-dialog";
|
|
34
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,0BAA0B,CAAC;AAGlC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAG9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAC9B,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAG/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,0BAA0B,CAAC;AAGlC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAG9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAC9B,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAG/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC"}
|