@useinsider/guido 3.2.0-beta.caa22bf → 3.2.0-beta.ccaf9f5

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 (79) hide show
  1. package/README.md +0 -92
  2. package/dist/@types/config/schemas.js +94 -150
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +75 -75
  5. package/dist/composables/useCortexBlueprintBridge.js +38 -0
  6. package/dist/composables/useEmailTemplateApplier.js +41 -0
  7. package/dist/composables/useRecommendation.js +26 -46
  8. package/dist/composables/useSave.js +18 -21
  9. package/dist/composables/useStripo.js +16 -14
  10. package/dist/config/compiler/recommendationCompilerRules.js +27 -27
  11. package/dist/config/migrator/index.js +9 -9
  12. package/dist/config/migrator/radioButtonMigrator.js +44 -64
  13. package/dist/config/migrator/recommendationMigrator.js +290 -74
  14. package/dist/enums/displayConditions.js +80 -0
  15. package/dist/enums/extensions/recommendationBlock.js +1 -2
  16. package/dist/extensions/Blocks/RadioButton/template.js +1 -1
  17. package/dist/extensions/Blocks/Recommendation/block.js +32 -35
  18. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +5 -5
  19. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +24 -25
  20. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +181 -228
  21. package/dist/extensions/Blocks/Recommendation/services/configService.js +29 -65
  22. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +90 -130
  23. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  24. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +8 -8
  25. package/dist/extensions/Blocks/Recommendation/templates/utils.js +1 -1
  26. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +22 -13
  27. package/dist/guido.css +1 -1
  28. package/dist/node_modules/valibot/dist/index.js +235 -450
  29. package/dist/src/@types/config/defaults.d.ts +1 -5
  30. package/dist/src/@types/config/index.d.ts +3 -3
  31. package/dist/src/@types/config/schemas.d.ts +0 -213
  32. package/dist/src/@types/config/types.d.ts +1 -9
  33. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  34. package/dist/src/composables/useConfig.d.ts +0 -56
  35. package/dist/src/composables/useCortexBlueprintBridge.d.ts +17 -0
  36. package/dist/src/composables/useEmailTemplateApplier.d.ts +21 -0
  37. package/dist/src/composables/useRecommendation.d.ts +1 -10
  38. package/dist/src/config/migrator/index.d.ts +1 -2
  39. package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -13
  40. package/dist/src/enums/displayConditions.d.ts +2 -0
  41. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  42. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +0 -10
  43. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +0 -34
  44. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +1 -1
  45. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +3 -0
  46. package/dist/src/library.d.ts +1 -1
  47. package/dist/src/stores/config.d.ts +0 -504
  48. package/dist/utils/templatePreparation.js +32 -72
  49. package/package.json +1 -5
  50. package/dist/composables/validators/useCouponBlockValidator.js +0 -24
  51. package/dist/config/migrator/recommendation/compositionMapper.js +0 -98
  52. package/dist/config/migrator/recommendation/extractors.js +0 -27
  53. package/dist/config/migrator/recommendation/htmlBuilder.js +0 -496
  54. package/dist/config/migrator/recommendation/parseLegacyConfig.js +0 -33
  55. package/dist/config/migrator/recommendation/settingsMapper.js +0 -70
  56. package/dist/config/migrator/recommendation/themeMapper.js +0 -93
  57. package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMap.js +0 -21
  58. package/dist/src/composables/useRecommendation.test.d.ts +0 -1
  59. package/dist/src/composables/validators/useCouponBlockValidator.d.ts +0 -3
  60. package/dist/src/config/migrator/recommendation/compositionMapper.d.ts +0 -2
  61. package/dist/src/config/migrator/recommendation/compositionMapper.test.d.ts +0 -1
  62. package/dist/src/config/migrator/recommendation/extractors.d.ts +0 -7
  63. package/dist/src/config/migrator/recommendation/extractors.test.d.ts +0 -1
  64. package/dist/src/config/migrator/recommendation/htmlBuilder.d.ts +0 -11
  65. package/dist/src/config/migrator/recommendation/parseLegacyConfig.d.ts +0 -15
  66. package/dist/src/config/migrator/recommendation/parseLegacyConfig.test.d.ts +0 -1
  67. package/dist/src/config/migrator/recommendation/settingsMapper.d.ts +0 -7
  68. package/dist/src/config/migrator/recommendation/settingsMapper.test.d.ts +0 -1
  69. package/dist/src/config/migrator/recommendation/themeMapper.d.ts +0 -5
  70. package/dist/src/config/migrator/recommendation/themeMapper.test.d.ts +0 -1
  71. package/dist/src/config/migrator/recommendation/types.d.ts +0 -205
  72. package/dist/src/config/migrator/recommendationMigrator.test.d.ts +0 -1
  73. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.test.d.ts +0 -1
  74. package/dist/src/extensions/Blocks/Recommendation/services/configService.test.d.ts +0 -1
  75. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.d.ts +0 -21
  76. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.test.d.ts +0 -1
  77. package/dist/src/utils/htmlEscape.d.ts +0 -5
  78. package/dist/src/utils/htmlEscape.test.d.ts +0 -1
  79. package/dist/utils/htmlEscape.js +0 -13
package/README.md CHANGED
@@ -113,12 +113,6 @@ const config: GuidoConfigInput = {
113
113
  preselectedDynamicContent?: DynamicContent[],
114
114
  selectedUnsubscribePages?: number[],
115
115
  forceRecreate?: boolean, // Default: false - Force recreate template in Stripo storage
116
- migration?: {
117
- // Legacy block configs keyed by block ID. Consumed once by the migrator
118
- // when upgrading templates authored with v1 block formats. See the
119
- // "Template Migration" section below.
120
- recommendationConfigs?: Record<string, LegacyRecommendationConfig>,
121
- },
122
116
  },
123
117
 
124
118
  // Optional: Editor settings
@@ -333,90 +327,6 @@ const config: GuidoConfigInput = {
333
327
 
334
328
  ---
335
329
 
336
- ## Template Migration
337
-
338
- When a template was authored with **v1 block formats** (notably the legacy recommendation block), Guido needs additional context that cannot be recovered from the saved HTML alone — things like filter rules, recommendation strategies, currency settings, locale, and pinned product IDs.
339
-
340
- Pass that context once via `template.migration` when loading the template. The migrator consumes it during initial render to upgrade legacy blocks to the current format. After migration, the field has no effect on editor behavior — you can keep passing it (it's idempotent on already-migrated templates) or omit it.
341
-
342
- > **When to provide this:** Only when loading templates created before the v2 recommendation block was rolled out. New templates do not need it.
343
-
344
- ### `recommendationConfigs`
345
-
346
- A dictionary keyed by the legacy block's element ID. Each entry preserves the v1 block's runtime config so the migrator can hydrate the upgraded block.
347
-
348
- ```typescript
349
- const config: GuidoConfigInput = {
350
- identity: { templateId: 'tpl-123', userId: 'user-456' },
351
- partner: { name: 'acme' },
352
- template: {
353
- html: legacyHtml,
354
- css: legacyCss,
355
- migration: {
356
- recommendationConfigs: {
357
- // Key = legacy block element id (also present as `id` in the entry)
358
- 'recommendation-1700000000000': {
359
- id: 1700000000000,
360
- // Filter-driven block — productIds is empty, filters/strategy drive selection
361
- productIds: [],
362
- filters: [{ field: 'category', op: 'eq', value: 'shoes' }],
363
- strategy: 'newArrivals',
364
- shuffleProducts: false,
365
- sendProductRequestFlag: true,
366
-
367
- // Display & locale
368
- currency: 'EUR',
369
- currencySettings: { decimal: ',', thousand: '.', alignment: 'left' },
370
- language: 'nl_NL',
371
- decimalCount: 2,
372
-
373
- // Layout
374
- cardsInRow: 2,
375
- orientation: 'vertical',
376
- textTrimming: true,
377
- unresponsive: false,
378
- mobileLeftPadding: 0,
379
- mobileRightPadding: 0,
380
-
381
- // Snapshot of products as they were rendered in the legacy email
382
- recommendedProducts: [/* ...legacy product objects... */],
383
- },
384
- },
385
- },
386
- },
387
- };
388
- ```
389
-
390
- All fields on a `LegacyRecommendationConfig` entry are optional — pass whatever your storage layer has for that block. Unknown keys are preserved and forwarded to the migrator unchanged, so partner-specific extensions continue to round-trip.
391
-
392
- ### Field reference
393
-
394
- | Field | Type | Purpose |
395
- |-------|------|---------|
396
- | `id` | `number` | Block ID (matches the dictionary key and legacy HTML element id) |
397
- | `productIds` | `unknown[]` | Pinned product IDs — empty when filter-driven |
398
- | `filters` | `unknown[]` | Filter rules driving product selection |
399
- | `strategy` | `string` | Recommendation strategy key (e.g. `'newArrivals'`) |
400
- | `shuffleProducts` | `boolean` | Whether to randomize product order |
401
- | `sendProductRequestFlag` | `boolean` | Whether the block requested live products at send time |
402
- | `currency` | `string` | Currency code (e.g. `'EUR'`) |
403
- | `currencySettings` | `unknown` | Separators, alignment, decimals |
404
- | `language` | `string` | Locale (e.g. `'nl_NL'`) |
405
- | `decimalCount` | `string \| number` | Decimal places for price display |
406
- | `cardsInRow` | `number` | Product cards per row |
407
- | `orientation` | `'vertical' \| 'horizontal'` | Layout orientation |
408
- | `size` | `string \| number` | Size variant marker (legacy) |
409
- | `verticalResponsiveness` | `boolean` | Vertical responsiveness flag (legacy `size=1` variants) |
410
- | `blockType` | `string` | Block type marker used by some legacy variants |
411
- | `textTrimming` | `boolean` | Whether long text is trimmed |
412
- | `unresponsive` | `boolean` | Disable responsive scaling |
413
- | `mobileLeftPadding` / `mobileRightPadding` | `number` | Mobile-only horizontal padding |
414
- | `recommendedProducts` | `unknown[]` | Snapshot of products rendered by the legacy block |
415
-
416
- > **Note on data shape:** The schema uses `looseObject` because v1 partner data shapes vary across deployments. Some entries carry `verticalResponsiveness`, others carry `blockType` / `orientation` / `size`. Pass whatever you have — the migrator will use what it recognizes and preserve the rest.
417
-
418
- ---
419
-
420
330
  ## HTML Compiler Rules
421
331
 
422
332
  Add custom rules to transform HTML during export:
@@ -472,8 +382,6 @@ import type {
472
382
  IdentityConfig,
473
383
  PartnerConfig,
474
384
  TemplateConfig,
475
- TemplateMigrationConfig,
476
- LegacyRecommendationConfig,
477
385
  EditorConfig,
478
386
  UIConfig,
479
387
  FeaturesConfig,
@@ -1,59 +1,59 @@
1
- import { ModuleFolderDefaults as S } from "../../enums/defaults.js";
2
- import { object as o, number as n, optional as e, string as t, pipe as p, picklist as l, minLength as b, custom as h, boolean as a, array as c, record as k, looseObject as y, literal as i, variant as g, union as f, unknown as s } from "../../node_modules/valibot/dist/index.js";
3
- const d = {
1
+ import { ModuleFolderDefaults as b } from "../../enums/defaults.js";
2
+ import { object as o, number as p, optional as e, string as t, pipe as u, picklist as n, minLength as d, custom as S, boolean as a, array as c, literal as l, variant as k } from "../../node_modules/valibot/dist/index.js";
3
+ const m = {
4
4
  /** Promotional/marketing emails */
5
5
  PROMOTIONAL: 1,
6
6
  /** Transactional/system emails */
7
7
  TRANSACTIONAL: 2
8
- }, r = {
8
+ }, s = {
9
9
  /** Standard email campaigns */
10
10
  EMAIL: 60,
11
11
  /** Architect journey builder */
12
12
  ARCHITECT: 49,
13
13
  /** Unsubscribe page builder */
14
14
  UNSUBSCRIBE_PAGES: 97
15
- }, R = o({
15
+ }, h = o({
16
16
  /** Unique identifier for the template being edited */
17
- templateId: p(
17
+ templateId: u(
18
18
  t(),
19
- b(1, "templateId is required")
19
+ d(1, "templateId is required")
20
20
  ),
21
21
  /** Unique identifier for the user editing the template */
22
- userId: p(
22
+ userId: u(
23
23
  t(),
24
- b(1, "userId is required")
24
+ d(1, "userId is required")
25
25
  ),
26
26
  /** Optional variation ID for A/B testing */
27
27
  variationId: e(t())
28
- }), C = o({
28
+ }), y = o({
29
29
  /** Fallback font name (e.g., "Georgia") */
30
30
  name: t(),
31
31
  /** Fallback font family (e.g., "serif" or "sans-serif") */
32
32
  family: t()
33
- }), T = o({
33
+ }), f = o({
34
34
  /** Partner/organization name (required) */
35
- name: p(
35
+ name: u(
36
36
  t(),
37
- b(1, "partner.name is required")
37
+ d(1, "partner.name is required")
38
38
  ),
39
39
  /** Product type identifier */
40
40
  productType: e(
41
- l([
42
- r.EMAIL,
43
- r.ARCHITECT,
44
- r.UNSUBSCRIBE_PAGES
41
+ n([
42
+ s.EMAIL,
43
+ s.ARCHITECT,
44
+ s.UNSUBSCRIBE_PAGES
45
45
  ]),
46
- r.EMAIL
46
+ s.EMAIL
47
47
  ),
48
48
  /** Message type (promotional or transactional) */
49
49
  messageType: e(
50
- l([d.PROMOTIONAL, d.TRANSACTIONAL]),
51
- d.PROMOTIONAL
50
+ n([m.PROMOTIONAL, m.TRANSACTIONAL]),
51
+ m.PROMOTIONAL
52
52
  ),
53
53
  /** Display name for the current user */
54
54
  username: e(t(), "Guido User"),
55
55
  /** Fallback font settings from partner settings — used to match backend size calculation */
56
- fallbackFont: e(C)
56
+ fallbackFont: e(y)
57
57
  }), A = o({
58
58
  /** Display text for the dynamic content */
59
59
  text: t(),
@@ -68,59 +68,7 @@ const d = {
68
68
  value: t()
69
69
  })
70
70
  )
71
- }), I = y({
72
- /** Block ID (matches the dictionary key and the legacy HTML element id) */
73
- id: e(n()),
74
- /** Decimal places for price display (legacy data may use string or number) */
75
- decimalCount: e(f([t(), n()])),
76
- /** Pinned product IDs (empty array when filter-driven) */
77
- productIds: e(c(s())),
78
- /** Whether the block requested live products at send time */
79
- sendProductRequestFlag: e(a()),
80
- /** Whether to randomize product order */
81
- shuffleProducts: e(a()),
82
- /** Filter rules driving product selection */
83
- filters: e(c(s())),
84
- /** Currency code (e.g. 'EUR') — sometimes absent in legacy data */
85
- currency: e(t()),
86
- /** Currency display settings (separators, alignment, decimals) */
87
- currencySettings: e(s()),
88
- /** Locale (e.g. 'nl_NL') */
89
- language: e(t()),
90
- /** Recommendation strategy key (e.g. 'newArrivals') */
91
- strategy: e(t()),
92
- /** Snapshot of products as rendered by the legacy block */
93
- recommendedProducts: e(c(s())),
94
- /** Number of product cards per row */
95
- cardsInRow: e(n()),
96
- /** Mobile-only padding (right) */
97
- mobileRightPadding: e(n()),
98
- /** Mobile-only padding (left) */
99
- mobileLeftPadding: e(n()),
100
- /** Disable responsive scaling */
101
- unresponsive: e(a()),
102
- /** Layout orientation ('vertical' | 'horizontal') */
103
- orientation: e(t()),
104
- /** Whether long text is trimmed */
105
- textTrimming: e(a()),
106
- /** Block type marker used by some legacy variants */
107
- blockType: e(t()),
108
- /** Size variant marker (legacy data may use string or number) */
109
- size: e(f([t(), n()])),
110
- /** Vertical responsiveness flag (legacy size=1 variants) */
111
- verticalResponsiveness: e(a())
112
- }), E = o({
113
- /**
114
- * Legacy recommendation block configs keyed by block ID.
115
- * Pass this when loading a template authored with the v1
116
- * recommendation block so the migrator can preserve filters,
117
- * strategy, currency, locale, and layout data.
118
- */
119
- recommendationConfigs: e(
120
- k(t(), I),
121
- {}
122
- )
123
- }), L = o({
71
+ }), R = o({
124
72
  /** Initial HTML content */
125
73
  html: e(t(), ""),
126
74
  /** Initial CSS content */
@@ -133,35 +81,33 @@ const d = {
133
81
  /** Valid custom field attribute names from the partner's categorized fields */
134
82
  customFieldAttributes: e(c(t()), []),
135
83
  /** Selected unsubscribe page IDs */
136
- selectedUnsubscribePages: e(c(n()), []),
84
+ selectedUnsubscribePages: e(c(p()), []),
137
85
  /** Force recreate template in Stripo storage (use true when updating externally modified templates) */
138
- forceRecreate: e(a(), !1),
139
- /** Migration-only inputs (legacy block configs) */
140
- migration: e(E, {})
141
- }), O = o({
86
+ forceRecreate: e(a(), !1)
87
+ }), C = o({
142
88
  /** Sender display name */
143
89
  senderName: e(t(), ""),
144
90
  /** Email subject line */
145
91
  subject: e(t(), "")
146
- }), M = o({
92
+ }), T = o({
147
93
  /** Locale for the editor UI */
148
94
  locale: e(t(), "en"),
149
95
  /** Path to translations object */
150
96
  translationsPath: e(t(), "window.trans[Object.keys(window.trans)[0]]"),
151
97
  /** Migration date for template compatibility */
152
- migrationDate: e(n(), 1759696858),
98
+ migrationDate: e(p(), 1759696858),
153
99
  /** Email header settings */
154
- emailHeader: e(O, { senderName: "", subject: "" }),
100
+ emailHeader: e(C, { senderName: "", subject: "" }),
155
101
  /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
156
- savedModulesFolderName: e(t(), S.SAVED_MODULES),
102
+ savedModulesFolderName: e(t(), b.SAVED_MODULES),
157
103
  /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
158
- defaultModulesFolderName: e(t(), S.DEFAULT_MODULES)
159
- }), P = o({
104
+ defaultModulesFolderName: e(t(), b.DEFAULT_MODULES)
105
+ }), I = o({
160
106
  /** Whether to show the header bar */
161
107
  showHeader: e(a(), !0),
162
108
  /** Custom label for back button (if shown) */
163
109
  backButtonLabel: e(t())
164
- }), v = o({
110
+ }), E = o({
165
111
  /** Enable dynamic content insertion */
166
112
  dynamicContent: e(a(), !0),
167
113
  /** Enable save as template functionality */
@@ -178,7 +124,7 @@ const d = {
178
124
  modulesDisabled: e(a(), !1),
179
125
  /** Enable Liquid template syntax */
180
126
  liquidSyntax: e(a(), !1)
181
- }), N = l([
127
+ }), g = n([
182
128
  "amp-accordion",
183
129
  "amp-carousel",
184
130
  "amp-form-controls",
@@ -192,7 +138,7 @@ const d = {
192
138
  "text-block",
193
139
  "timer-block",
194
140
  "video-block"
195
- ]), D = l([
141
+ ]), O = n([
196
142
  "dynamic-content",
197
143
  "checkbox-block",
198
144
  "radio-button-block",
@@ -200,121 +146,119 @@ const d = {
200
146
  "unsubscribe-block",
201
147
  "coupon-block",
202
148
  "items-block"
203
- ]), x = o({
149
+ ]), L = o({
204
150
  /** Default blocks to exclude from the editor */
205
151
  excludeDefaults: e(
206
- c(N),
152
+ c(g),
207
153
  []
208
154
  ),
209
155
  /** Custom blocks to include in the editor */
210
156
  includeCustoms: e(
211
- c(D),
157
+ c(O),
212
158
  []
213
159
  )
214
- }), m = o({
160
+ }), r = o({
215
161
  /** Unique identifier for the rule */
216
162
  id: t(),
217
163
  /** Human-readable description */
218
164
  description: e(t()),
219
165
  /** Priority for rule ordering (lower = earlier) */
220
- priority: n()
221
- }), F = o({
222
- ...m.entries,
223
- type: i("replace"),
166
+ priority: p()
167
+ }), M = o({
168
+ ...r.entries,
169
+ type: l("replace"),
224
170
  /** String to search for */
225
171
  search: t(),
226
172
  /** Replacement string */
227
173
  replacement: t(),
228
174
  /** Replace all occurrences (default: false) */
229
175
  replaceAll: e(a())
230
- }), U = o({
231
- ...m.entries,
232
- type: i("regex"),
176
+ }), N = o({
177
+ ...r.entries,
178
+ type: l("regex"),
233
179
  /** Regex pattern string */
234
180
  pattern: t(),
235
181
  /** Replacement string (supports $1, $2, etc.) */
236
182
  replacement: t(),
237
183
  /** Regex flags (e.g., 'gi') */
238
184
  flags: e(t())
239
- }), B = o({
240
- ...m.entries,
241
- type: i("remove"),
185
+ }), D = o({
186
+ ...r.entries,
187
+ type: l("remove"),
242
188
  /** Strings or patterns to remove */
243
189
  targets: c(t())
244
- }), w = o({
245
- ...m.entries,
246
- type: i("custom"),
190
+ }), v = o({
191
+ ...r.entries,
192
+ type: l("custom"),
247
193
  /** Custom processor function */
248
- processor: h(
249
- (u) => typeof u == "function",
194
+ processor: S(
195
+ (i) => typeof i == "function",
250
196
  "processor must be a function"
251
197
  )
252
- }), H = g("type", [
253
- F,
254
- U,
255
- B,
256
- w
257
- ]), j = o({
198
+ }), x = k("type", [
199
+ M,
200
+ N,
201
+ D,
202
+ v
203
+ ]), U = o({
258
204
  /** Custom compiler rules to apply */
259
- customRules: e(c(H), []),
205
+ customRules: e(c(x), []),
260
206
  /** Skip default compiler rules */
261
207
  ignoreDefaultRules: e(a(), !1)
262
- }), q = o({
208
+ }), B = o({
263
209
  /**
264
210
  * External validation handler called before save completes.
265
211
  * Return false to cancel the save operation.
266
212
  */
267
213
  externalValidation: e(
268
- h(
269
- (u) => typeof u == "function",
214
+ S(
215
+ (i) => typeof i == "function",
270
216
  "externalValidation must be a function"
271
217
  )
272
218
  )
273
- }), V = o({
219
+ }), H = o({
274
220
  // Required sections
275
221
  /** Identity configuration (required) */
276
- identity: R,
222
+ identity: h,
277
223
  /** Partner configuration (required) */
278
- partner: T,
224
+ partner: f,
279
225
  // Optional sections (with defaults)
280
226
  /** Template content and presets */
281
- template: e(L, {}),
227
+ template: e(R, {}),
282
228
  /** Editor settings */
283
- editor: e(M, {}),
229
+ editor: e(T, {}),
284
230
  /** UI configuration */
285
- ui: e(P, {}),
231
+ ui: e(I, {}),
286
232
  /** Feature toggles */
287
- features: e(v, {}),
233
+ features: e(E, {}),
288
234
  /** Block configuration */
289
- blocks: e(x, {}),
235
+ blocks: e(L, {}),
290
236
  /** Compiler configuration */
291
- compiler: e(j, {}),
237
+ compiler: e(U, {}),
292
238
  /** Callbacks and event handlers */
293
- callbacks: e(q, {})
239
+ callbacks: e(B, {})
294
240
  });
295
241
  export {
296
- x as BlocksSchema,
297
- q as CallbacksSchema,
298
- H as CompilerRuleSchema,
299
- j as CompilerSchema,
300
- D as CustomBlockTypeSchema,
301
- w as CustomRuleSchema,
302
- N as DefaultBlockTypeSchema,
242
+ L as BlocksSchema,
243
+ B as CallbacksSchema,
244
+ x as CompilerRuleSchema,
245
+ U as CompilerSchema,
246
+ O as CustomBlockTypeSchema,
247
+ v as CustomRuleSchema,
248
+ g as DefaultBlockTypeSchema,
303
249
  A as DynamicContentSchema,
304
- M as EditorSchema,
305
- O as EmailHeaderSchema,
306
- C as FallbackFontSchema,
307
- v as FeaturesSchema,
308
- V as GuidoConfigSchema,
309
- R as IdentitySchema,
310
- I as LegacyRecommendationConfigSchema,
311
- d as MessageType,
312
- T as PartnerSchema,
313
- r as ProductType,
314
- U as RegexRuleSchema,
315
- B as RemoveRuleSchema,
316
- F as ReplaceRuleSchema,
317
- E as TemplateMigrationSchema,
318
- L as TemplateSchema,
319
- P as UISchema
250
+ T as EditorSchema,
251
+ C as EmailHeaderSchema,
252
+ y as FallbackFontSchema,
253
+ E as FeaturesSchema,
254
+ H as GuidoConfigSchema,
255
+ h as IdentitySchema,
256
+ m as MessageType,
257
+ f as PartnerSchema,
258
+ s as ProductType,
259
+ N as RegexRuleSchema,
260
+ D as RemoveRuleSchema,
261
+ M as ReplaceRuleSchema,
262
+ R as TemplateSchema,
263
+ I as UISchema
320
264
  };
@@ -12,7 +12,7 @@ var t = function() {
12
12
  n,
13
13
  !1,
14
14
  null,
15
- "428c209a"
15
+ "55ed300a"
16
16
  );
17
17
  const u = s.exports;
18
18
  export {