@one-million-lines/email-builder 0.1.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +211 -0
  4. package/dist/App.d.ts +1 -0
  5. package/dist/core/aiActions.d.ts +52 -0
  6. package/dist/core/plugins.d.ts +26 -0
  7. package/dist/core/renderer.d.ts +2 -0
  8. package/dist/core/theme.d.ts +3 -0
  9. package/dist/core/types.d.ts +150 -0
  10. package/dist/core/utils.d.ts +3 -0
  11. package/dist/core/validation.d.ts +810 -0
  12. package/dist/editor/Canvas.d.ts +1 -0
  13. package/dist/editor/LeftSidebar.d.ts +1 -0
  14. package/dist/editor/RecommendationsPanel.d.ts +6 -0
  15. package/dist/editor/RightSidebar.d.ts +1 -0
  16. package/dist/editor/TemplatesModal.d.ts +6 -0
  17. package/dist/editor/TopBar.d.ts +1 -0
  18. package/dist/email-builder.cjs +80 -0
  19. package/dist/email-builder.cjs.map +1 -0
  20. package/dist/email-builder.js +8766 -0
  21. package/dist/email-builder.js.map +1 -0
  22. package/dist/index.d.ts +35 -0
  23. package/dist/modules/basic.d.ts +2 -0
  24. package/dist/modules/content.d.ts +2 -0
  25. package/dist/modules/cta.d.ts +2 -0
  26. package/dist/modules/defaultModules.d.ts +14 -0
  27. package/dist/modules/ecommerce.d.ts +2 -0
  28. package/dist/modules/feature.d.ts +2 -0
  29. package/dist/modules/footer.d.ts +2 -0
  30. package/dist/modules/header.d.ts +2 -0
  31. package/dist/modules/helpers.d.ts +89 -0
  32. package/dist/modules/menu.d.ts +2 -0
  33. package/dist/modules/registry.d.ts +24 -0
  34. package/dist/modules/social.d.ts +2 -0
  35. package/dist/modules/transactional.d.ts +2 -0
  36. package/dist/plugins/imageUploader/index.d.ts +36 -0
  37. package/dist/recommendations/logic.d.ts +99 -0
  38. package/dist/store/emailStore.d.ts +42 -0
  39. package/dist/styles.css +1 -0
  40. package/dist/templates/abandonedCart.d.ts +3 -0
  41. package/dist/templates/blogDigest.d.ts +3 -0
  42. package/dist/templates/eventInvite.d.ts +3 -0
  43. package/dist/templates/flashSale.d.ts +3 -0
  44. package/dist/templates/index.d.ts +2 -0
  45. package/dist/templates/orderReceipt.d.ts +3 -0
  46. package/dist/templates/productLaunch.d.ts +3 -0
  47. package/dist/templates/registry.d.ts +25 -0
  48. package/dist/templates/weeklyNewsletter.d.ts +3 -0
  49. package/dist/templates/welcomeOnboarding.d.ts +3 -0
  50. package/dist/themes/defaultThemes.d.ts +7 -0
  51. package/package.json +91 -0
@@ -0,0 +1,810 @@
1
+ import { z } from 'zod';
2
+ export declare const moduleSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ type: z.ZodString;
5
+ name: z.ZodString;
6
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
7
+ children: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
8
+ id: z.ZodString;
9
+ type: z.ZodLiteral<"text">;
10
+ role: z.ZodOptional<z.ZodString>;
11
+ content: z.ZodString;
12
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ type: "text";
15
+ id: string;
16
+ content: string;
17
+ role?: string | undefined;
18
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
19
+ }, {
20
+ type: "text";
21
+ id: string;
22
+ content: string;
23
+ role?: string | undefined;
24
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
25
+ }>, z.ZodObject<{
26
+ id: z.ZodString;
27
+ type: z.ZodLiteral<"image">;
28
+ src: z.ZodString;
29
+ alt: z.ZodOptional<z.ZodString>;
30
+ link: z.ZodOptional<z.ZodString>;
31
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ type: "image";
34
+ id: string;
35
+ src: string;
36
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
37
+ alt?: string | undefined;
38
+ link?: string | undefined;
39
+ }, {
40
+ type: "image";
41
+ id: string;
42
+ src: string;
43
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
44
+ alt?: string | undefined;
45
+ link?: string | undefined;
46
+ }>, z.ZodObject<{
47
+ id: z.ZodString;
48
+ type: z.ZodLiteral<"button">;
49
+ label: z.ZodString;
50
+ link: z.ZodString;
51
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ type: "button";
54
+ id: string;
55
+ link: string;
56
+ label: string;
57
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
58
+ }, {
59
+ type: "button";
60
+ id: string;
61
+ link: string;
62
+ label: string;
63
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
64
+ }>, z.ZodObject<{
65
+ id: z.ZodString;
66
+ type: z.ZodLiteral<"spacer">;
67
+ height: z.ZodNumber;
68
+ }, "strip", z.ZodTypeAny, {
69
+ type: "spacer";
70
+ id: string;
71
+ height: number;
72
+ }, {
73
+ type: "spacer";
74
+ id: string;
75
+ height: number;
76
+ }>, z.ZodObject<{
77
+ id: z.ZodString;
78
+ type: z.ZodLiteral<"divider">;
79
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ type: "divider";
82
+ id: string;
83
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
84
+ }, {
85
+ type: "divider";
86
+ id: string;
87
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
88
+ }>, z.ZodObject<{
89
+ id: z.ZodString;
90
+ type: z.ZodLiteral<"productGrid">;
91
+ products: z.ZodArray<z.ZodObject<{
92
+ id: z.ZodString;
93
+ image: z.ZodString;
94
+ imageAlt: z.ZodOptional<z.ZodString>;
95
+ name: z.ZodString;
96
+ oldPrice: z.ZodOptional<z.ZodString>;
97
+ finalPrice: z.ZodString;
98
+ description: z.ZodOptional<z.ZodString>;
99
+ link: z.ZodOptional<z.ZodString>;
100
+ buttonLabel: z.ZodOptional<z.ZodString>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ image: string;
103
+ id: string;
104
+ name: string;
105
+ finalPrice: string;
106
+ link?: string | undefined;
107
+ imageAlt?: string | undefined;
108
+ oldPrice?: string | undefined;
109
+ description?: string | undefined;
110
+ buttonLabel?: string | undefined;
111
+ }, {
112
+ image: string;
113
+ id: string;
114
+ name: string;
115
+ finalPrice: string;
116
+ link?: string | undefined;
117
+ imageAlt?: string | undefined;
118
+ oldPrice?: string | undefined;
119
+ description?: string | undefined;
120
+ buttonLabel?: string | undefined;
121
+ }>, "many">;
122
+ columns: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
123
+ showOldPrice: z.ZodBoolean;
124
+ showButton: z.ZodBoolean;
125
+ showDescription: z.ZodBoolean;
126
+ buttonLabel: z.ZodOptional<z.ZodString>;
127
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ type: "productGrid";
130
+ id: string;
131
+ products: {
132
+ image: string;
133
+ id: string;
134
+ name: string;
135
+ finalPrice: string;
136
+ link?: string | undefined;
137
+ imageAlt?: string | undefined;
138
+ oldPrice?: string | undefined;
139
+ description?: string | undefined;
140
+ buttonLabel?: string | undefined;
141
+ }[];
142
+ columns: 1 | 2 | 3;
143
+ showOldPrice: boolean;
144
+ showButton: boolean;
145
+ showDescription: boolean;
146
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
147
+ buttonLabel?: string | undefined;
148
+ }, {
149
+ type: "productGrid";
150
+ id: string;
151
+ products: {
152
+ image: string;
153
+ id: string;
154
+ name: string;
155
+ finalPrice: string;
156
+ link?: string | undefined;
157
+ imageAlt?: string | undefined;
158
+ oldPrice?: string | undefined;
159
+ description?: string | undefined;
160
+ buttonLabel?: string | undefined;
161
+ }[];
162
+ columns: 1 | 2 | 3;
163
+ showOldPrice: boolean;
164
+ showButton: boolean;
165
+ showDescription: boolean;
166
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
167
+ buttonLabel?: string | undefined;
168
+ }>]>, "many">;
169
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
170
+ }, "strip", z.ZodTypeAny, {
171
+ type: string;
172
+ id: string;
173
+ name: string;
174
+ children: ({
175
+ type: "text";
176
+ id: string;
177
+ content: string;
178
+ role?: string | undefined;
179
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
180
+ } | {
181
+ type: "image";
182
+ id: string;
183
+ src: string;
184
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
185
+ alt?: string | undefined;
186
+ link?: string | undefined;
187
+ } | {
188
+ type: "button";
189
+ id: string;
190
+ link: string;
191
+ label: string;
192
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
193
+ } | {
194
+ type: "spacer";
195
+ id: string;
196
+ height: number;
197
+ } | {
198
+ type: "divider";
199
+ id: string;
200
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
201
+ } | {
202
+ type: "productGrid";
203
+ id: string;
204
+ products: {
205
+ image: string;
206
+ id: string;
207
+ name: string;
208
+ finalPrice: string;
209
+ link?: string | undefined;
210
+ imageAlt?: string | undefined;
211
+ oldPrice?: string | undefined;
212
+ description?: string | undefined;
213
+ buttonLabel?: string | undefined;
214
+ }[];
215
+ columns: 1 | 2 | 3;
216
+ showOldPrice: boolean;
217
+ showButton: boolean;
218
+ showDescription: boolean;
219
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
220
+ buttonLabel?: string | undefined;
221
+ })[];
222
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
223
+ data?: Record<string, any> | undefined;
224
+ }, {
225
+ type: string;
226
+ id: string;
227
+ name: string;
228
+ children: ({
229
+ type: "text";
230
+ id: string;
231
+ content: string;
232
+ role?: string | undefined;
233
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
234
+ } | {
235
+ type: "image";
236
+ id: string;
237
+ src: string;
238
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
239
+ alt?: string | undefined;
240
+ link?: string | undefined;
241
+ } | {
242
+ type: "button";
243
+ id: string;
244
+ link: string;
245
+ label: string;
246
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
247
+ } | {
248
+ type: "spacer";
249
+ id: string;
250
+ height: number;
251
+ } | {
252
+ type: "divider";
253
+ id: string;
254
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
255
+ } | {
256
+ type: "productGrid";
257
+ id: string;
258
+ products: {
259
+ image: string;
260
+ id: string;
261
+ name: string;
262
+ finalPrice: string;
263
+ link?: string | undefined;
264
+ imageAlt?: string | undefined;
265
+ oldPrice?: string | undefined;
266
+ description?: string | undefined;
267
+ buttonLabel?: string | undefined;
268
+ }[];
269
+ columns: 1 | 2 | 3;
270
+ showOldPrice: boolean;
271
+ showButton: boolean;
272
+ showDescription: boolean;
273
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
274
+ buttonLabel?: string | undefined;
275
+ })[];
276
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
277
+ data?: Record<string, any> | undefined;
278
+ }>;
279
+ export declare const themeSchema: z.ZodObject<{
280
+ id: z.ZodString;
281
+ name: z.ZodString;
282
+ tokens: z.ZodObject<{
283
+ colors: z.ZodRecord<z.ZodString, z.ZodString>;
284
+ fonts: z.ZodRecord<z.ZodString, z.ZodString>;
285
+ spacing: z.ZodRecord<z.ZodString, z.ZodNumber>;
286
+ radius: z.ZodRecord<z.ZodString, z.ZodNumber>;
287
+ }, "strip", z.ZodTypeAny, {
288
+ colors: Record<string, string>;
289
+ fonts: Record<string, string>;
290
+ spacing: Record<string, number>;
291
+ radius: Record<string, number>;
292
+ }, {
293
+ colors: Record<string, string>;
294
+ fonts: Record<string, string>;
295
+ spacing: Record<string, number>;
296
+ radius: Record<string, number>;
297
+ }>;
298
+ }, "strip", z.ZodTypeAny, {
299
+ id: string;
300
+ name: string;
301
+ tokens: {
302
+ colors: Record<string, string>;
303
+ fonts: Record<string, string>;
304
+ spacing: Record<string, number>;
305
+ radius: Record<string, number>;
306
+ };
307
+ }, {
308
+ id: string;
309
+ name: string;
310
+ tokens: {
311
+ colors: Record<string, string>;
312
+ fonts: Record<string, string>;
313
+ spacing: Record<string, number>;
314
+ radius: Record<string, number>;
315
+ };
316
+ }>;
317
+ export declare const documentSchema: z.ZodObject<{
318
+ version: z.ZodString;
319
+ meta: z.ZodObject<{
320
+ name: z.ZodString;
321
+ previewText: z.ZodString;
322
+ }, "strip", z.ZodTypeAny, {
323
+ name: string;
324
+ previewText: string;
325
+ }, {
326
+ name: string;
327
+ previewText: string;
328
+ }>;
329
+ theme: z.ZodObject<{
330
+ id: z.ZodString;
331
+ name: z.ZodString;
332
+ tokens: z.ZodObject<{
333
+ colors: z.ZodRecord<z.ZodString, z.ZodString>;
334
+ fonts: z.ZodRecord<z.ZodString, z.ZodString>;
335
+ spacing: z.ZodRecord<z.ZodString, z.ZodNumber>;
336
+ radius: z.ZodRecord<z.ZodString, z.ZodNumber>;
337
+ }, "strip", z.ZodTypeAny, {
338
+ colors: Record<string, string>;
339
+ fonts: Record<string, string>;
340
+ spacing: Record<string, number>;
341
+ radius: Record<string, number>;
342
+ }, {
343
+ colors: Record<string, string>;
344
+ fonts: Record<string, string>;
345
+ spacing: Record<string, number>;
346
+ radius: Record<string, number>;
347
+ }>;
348
+ }, "strip", z.ZodTypeAny, {
349
+ id: string;
350
+ name: string;
351
+ tokens: {
352
+ colors: Record<string, string>;
353
+ fonts: Record<string, string>;
354
+ spacing: Record<string, number>;
355
+ radius: Record<string, number>;
356
+ };
357
+ }, {
358
+ id: string;
359
+ name: string;
360
+ tokens: {
361
+ colors: Record<string, string>;
362
+ fonts: Record<string, string>;
363
+ spacing: Record<string, number>;
364
+ radius: Record<string, number>;
365
+ };
366
+ }>;
367
+ settings: z.ZodObject<{
368
+ width: z.ZodNumber;
369
+ backgroundColor: z.ZodString;
370
+ contentBackgroundColor: z.ZodString;
371
+ }, "strip", z.ZodTypeAny, {
372
+ width: number;
373
+ backgroundColor: string;
374
+ contentBackgroundColor: string;
375
+ }, {
376
+ width: number;
377
+ backgroundColor: string;
378
+ contentBackgroundColor: string;
379
+ }>;
380
+ modules: z.ZodArray<z.ZodObject<{
381
+ id: z.ZodString;
382
+ type: z.ZodString;
383
+ name: z.ZodString;
384
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
385
+ children: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
386
+ id: z.ZodString;
387
+ type: z.ZodLiteral<"text">;
388
+ role: z.ZodOptional<z.ZodString>;
389
+ content: z.ZodString;
390
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
391
+ }, "strip", z.ZodTypeAny, {
392
+ type: "text";
393
+ id: string;
394
+ content: string;
395
+ role?: string | undefined;
396
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
397
+ }, {
398
+ type: "text";
399
+ id: string;
400
+ content: string;
401
+ role?: string | undefined;
402
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
403
+ }>, z.ZodObject<{
404
+ id: z.ZodString;
405
+ type: z.ZodLiteral<"image">;
406
+ src: z.ZodString;
407
+ alt: z.ZodOptional<z.ZodString>;
408
+ link: z.ZodOptional<z.ZodString>;
409
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
410
+ }, "strip", z.ZodTypeAny, {
411
+ type: "image";
412
+ id: string;
413
+ src: string;
414
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
415
+ alt?: string | undefined;
416
+ link?: string | undefined;
417
+ }, {
418
+ type: "image";
419
+ id: string;
420
+ src: string;
421
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
422
+ alt?: string | undefined;
423
+ link?: string | undefined;
424
+ }>, z.ZodObject<{
425
+ id: z.ZodString;
426
+ type: z.ZodLiteral<"button">;
427
+ label: z.ZodString;
428
+ link: z.ZodString;
429
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
430
+ }, "strip", z.ZodTypeAny, {
431
+ type: "button";
432
+ id: string;
433
+ link: string;
434
+ label: string;
435
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
436
+ }, {
437
+ type: "button";
438
+ id: string;
439
+ link: string;
440
+ label: string;
441
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
442
+ }>, z.ZodObject<{
443
+ id: z.ZodString;
444
+ type: z.ZodLiteral<"spacer">;
445
+ height: z.ZodNumber;
446
+ }, "strip", z.ZodTypeAny, {
447
+ type: "spacer";
448
+ id: string;
449
+ height: number;
450
+ }, {
451
+ type: "spacer";
452
+ id: string;
453
+ height: number;
454
+ }>, z.ZodObject<{
455
+ id: z.ZodString;
456
+ type: z.ZodLiteral<"divider">;
457
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
458
+ }, "strip", z.ZodTypeAny, {
459
+ type: "divider";
460
+ id: string;
461
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
462
+ }, {
463
+ type: "divider";
464
+ id: string;
465
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
466
+ }>, z.ZodObject<{
467
+ id: z.ZodString;
468
+ type: z.ZodLiteral<"productGrid">;
469
+ products: z.ZodArray<z.ZodObject<{
470
+ id: z.ZodString;
471
+ image: z.ZodString;
472
+ imageAlt: z.ZodOptional<z.ZodString>;
473
+ name: z.ZodString;
474
+ oldPrice: z.ZodOptional<z.ZodString>;
475
+ finalPrice: z.ZodString;
476
+ description: z.ZodOptional<z.ZodString>;
477
+ link: z.ZodOptional<z.ZodString>;
478
+ buttonLabel: z.ZodOptional<z.ZodString>;
479
+ }, "strip", z.ZodTypeAny, {
480
+ image: string;
481
+ id: string;
482
+ name: string;
483
+ finalPrice: string;
484
+ link?: string | undefined;
485
+ imageAlt?: string | undefined;
486
+ oldPrice?: string | undefined;
487
+ description?: string | undefined;
488
+ buttonLabel?: string | undefined;
489
+ }, {
490
+ image: string;
491
+ id: string;
492
+ name: string;
493
+ finalPrice: string;
494
+ link?: string | undefined;
495
+ imageAlt?: string | undefined;
496
+ oldPrice?: string | undefined;
497
+ description?: string | undefined;
498
+ buttonLabel?: string | undefined;
499
+ }>, "many">;
500
+ columns: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
501
+ showOldPrice: z.ZodBoolean;
502
+ showButton: z.ZodBoolean;
503
+ showDescription: z.ZodBoolean;
504
+ buttonLabel: z.ZodOptional<z.ZodString>;
505
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodAny>]>>>;
506
+ }, "strip", z.ZodTypeAny, {
507
+ type: "productGrid";
508
+ id: string;
509
+ products: {
510
+ image: string;
511
+ id: string;
512
+ name: string;
513
+ finalPrice: string;
514
+ link?: string | undefined;
515
+ imageAlt?: string | undefined;
516
+ oldPrice?: string | undefined;
517
+ description?: string | undefined;
518
+ buttonLabel?: string | undefined;
519
+ }[];
520
+ columns: 1 | 2 | 3;
521
+ showOldPrice: boolean;
522
+ showButton: boolean;
523
+ showDescription: boolean;
524
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
525
+ buttonLabel?: string | undefined;
526
+ }, {
527
+ type: "productGrid";
528
+ id: string;
529
+ products: {
530
+ image: string;
531
+ id: string;
532
+ name: string;
533
+ finalPrice: string;
534
+ link?: string | undefined;
535
+ imageAlt?: string | undefined;
536
+ oldPrice?: string | undefined;
537
+ description?: string | undefined;
538
+ buttonLabel?: string | undefined;
539
+ }[];
540
+ columns: 1 | 2 | 3;
541
+ showOldPrice: boolean;
542
+ showButton: boolean;
543
+ showDescription: boolean;
544
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
545
+ buttonLabel?: string | undefined;
546
+ }>]>, "many">;
547
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
548
+ }, "strip", z.ZodTypeAny, {
549
+ type: string;
550
+ id: string;
551
+ name: string;
552
+ children: ({
553
+ type: "text";
554
+ id: string;
555
+ content: string;
556
+ role?: string | undefined;
557
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
558
+ } | {
559
+ type: "image";
560
+ id: string;
561
+ src: string;
562
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
563
+ alt?: string | undefined;
564
+ link?: string | undefined;
565
+ } | {
566
+ type: "button";
567
+ id: string;
568
+ link: string;
569
+ label: string;
570
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
571
+ } | {
572
+ type: "spacer";
573
+ id: string;
574
+ height: number;
575
+ } | {
576
+ type: "divider";
577
+ id: string;
578
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
579
+ } | {
580
+ type: "productGrid";
581
+ id: string;
582
+ products: {
583
+ image: string;
584
+ id: string;
585
+ name: string;
586
+ finalPrice: string;
587
+ link?: string | undefined;
588
+ imageAlt?: string | undefined;
589
+ oldPrice?: string | undefined;
590
+ description?: string | undefined;
591
+ buttonLabel?: string | undefined;
592
+ }[];
593
+ columns: 1 | 2 | 3;
594
+ showOldPrice: boolean;
595
+ showButton: boolean;
596
+ showDescription: boolean;
597
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
598
+ buttonLabel?: string | undefined;
599
+ })[];
600
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
601
+ data?: Record<string, any> | undefined;
602
+ }, {
603
+ type: string;
604
+ id: string;
605
+ name: string;
606
+ children: ({
607
+ type: "text";
608
+ id: string;
609
+ content: string;
610
+ role?: string | undefined;
611
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
612
+ } | {
613
+ type: "image";
614
+ id: string;
615
+ src: string;
616
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
617
+ alt?: string | undefined;
618
+ link?: string | undefined;
619
+ } | {
620
+ type: "button";
621
+ id: string;
622
+ link: string;
623
+ label: string;
624
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
625
+ } | {
626
+ type: "spacer";
627
+ id: string;
628
+ height: number;
629
+ } | {
630
+ type: "divider";
631
+ id: string;
632
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
633
+ } | {
634
+ type: "productGrid";
635
+ id: string;
636
+ products: {
637
+ image: string;
638
+ id: string;
639
+ name: string;
640
+ finalPrice: string;
641
+ link?: string | undefined;
642
+ imageAlt?: string | undefined;
643
+ oldPrice?: string | undefined;
644
+ description?: string | undefined;
645
+ buttonLabel?: string | undefined;
646
+ }[];
647
+ columns: 1 | 2 | 3;
648
+ showOldPrice: boolean;
649
+ showButton: boolean;
650
+ showDescription: boolean;
651
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
652
+ buttonLabel?: string | undefined;
653
+ })[];
654
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
655
+ data?: Record<string, any> | undefined;
656
+ }>, "many">;
657
+ }, "strip", z.ZodTypeAny, {
658
+ version: string;
659
+ meta: {
660
+ name: string;
661
+ previewText: string;
662
+ };
663
+ theme: {
664
+ id: string;
665
+ name: string;
666
+ tokens: {
667
+ colors: Record<string, string>;
668
+ fonts: Record<string, string>;
669
+ spacing: Record<string, number>;
670
+ radius: Record<string, number>;
671
+ };
672
+ };
673
+ settings: {
674
+ width: number;
675
+ backgroundColor: string;
676
+ contentBackgroundColor: string;
677
+ };
678
+ modules: {
679
+ type: string;
680
+ id: string;
681
+ name: string;
682
+ children: ({
683
+ type: "text";
684
+ id: string;
685
+ content: string;
686
+ role?: string | undefined;
687
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
688
+ } | {
689
+ type: "image";
690
+ id: string;
691
+ src: string;
692
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
693
+ alt?: string | undefined;
694
+ link?: string | undefined;
695
+ } | {
696
+ type: "button";
697
+ id: string;
698
+ link: string;
699
+ label: string;
700
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
701
+ } | {
702
+ type: "spacer";
703
+ id: string;
704
+ height: number;
705
+ } | {
706
+ type: "divider";
707
+ id: string;
708
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
709
+ } | {
710
+ type: "productGrid";
711
+ id: string;
712
+ products: {
713
+ image: string;
714
+ id: string;
715
+ name: string;
716
+ finalPrice: string;
717
+ link?: string | undefined;
718
+ imageAlt?: string | undefined;
719
+ oldPrice?: string | undefined;
720
+ description?: string | undefined;
721
+ buttonLabel?: string | undefined;
722
+ }[];
723
+ columns: 1 | 2 | 3;
724
+ showOldPrice: boolean;
725
+ showButton: boolean;
726
+ showDescription: boolean;
727
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
728
+ buttonLabel?: string | undefined;
729
+ })[];
730
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
731
+ data?: Record<string, any> | undefined;
732
+ }[];
733
+ }, {
734
+ version: string;
735
+ meta: {
736
+ name: string;
737
+ previewText: string;
738
+ };
739
+ theme: {
740
+ id: string;
741
+ name: string;
742
+ tokens: {
743
+ colors: Record<string, string>;
744
+ fonts: Record<string, string>;
745
+ spacing: Record<string, number>;
746
+ radius: Record<string, number>;
747
+ };
748
+ };
749
+ settings: {
750
+ width: number;
751
+ backgroundColor: string;
752
+ contentBackgroundColor: string;
753
+ };
754
+ modules: {
755
+ type: string;
756
+ id: string;
757
+ name: string;
758
+ children: ({
759
+ type: "text";
760
+ id: string;
761
+ content: string;
762
+ role?: string | undefined;
763
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
764
+ } | {
765
+ type: "image";
766
+ id: string;
767
+ src: string;
768
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
769
+ alt?: string | undefined;
770
+ link?: string | undefined;
771
+ } | {
772
+ type: "button";
773
+ id: string;
774
+ link: string;
775
+ label: string;
776
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
777
+ } | {
778
+ type: "spacer";
779
+ id: string;
780
+ height: number;
781
+ } | {
782
+ type: "divider";
783
+ id: string;
784
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
785
+ } | {
786
+ type: "productGrid";
787
+ id: string;
788
+ products: {
789
+ image: string;
790
+ id: string;
791
+ name: string;
792
+ finalPrice: string;
793
+ link?: string | undefined;
794
+ imageAlt?: string | undefined;
795
+ oldPrice?: string | undefined;
796
+ description?: string | undefined;
797
+ buttonLabel?: string | undefined;
798
+ }[];
799
+ columns: 1 | 2 | 3;
800
+ showOldPrice: boolean;
801
+ showButton: boolean;
802
+ showDescription: boolean;
803
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
804
+ buttonLabel?: string | undefined;
805
+ })[];
806
+ style?: Record<string, string | number | boolean | Record<string, any>> | undefined;
807
+ data?: Record<string, any> | undefined;
808
+ }[];
809
+ }>;
810
+ export type ValidatedDocument = z.infer<typeof documentSchema>;