@shoppexio/builder-contracts 0.1.0 → 0.1.1

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 (71) hide show
  1. package/dist/builder-contracts.test.js +71 -1
  2. package/dist/builder-settings.d.ts +9 -666
  3. package/dist/builder-settings.d.ts.map +1 -1
  4. package/dist/canonical-settings.d.ts +18 -0
  5. package/dist/canonical-settings.d.ts.map +1 -0
  6. package/dist/canonical-settings.js +106 -0
  7. package/dist/events.d.ts +35 -240
  8. package/dist/events.d.ts.map +1 -1
  9. package/dist/events.js +7 -0
  10. package/dist/fields.d.ts +169 -8
  11. package/dist/fields.d.ts.map +1 -1
  12. package/dist/fields.js +27 -0
  13. package/dist/index.d.ts +7 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +7 -0
  16. package/dist/legacy-manifest.d.ts +11 -0
  17. package/dist/legacy-manifest.d.ts.map +1 -1
  18. package/dist/legacy-manifest.js +106 -16
  19. package/dist/migrations.d.ts.map +1 -1
  20. package/dist/migrations.js +50 -4
  21. package/dist/persistence.d.ts +7 -0
  22. package/dist/persistence.d.ts.map +1 -0
  23. package/dist/persistence.js +58 -0
  24. package/dist/preview-boot.d.ts +68 -0
  25. package/dist/preview-boot.d.ts.map +1 -0
  26. package/dist/preview-boot.js +36 -0
  27. package/dist/preview-protocol.d.ts +227 -459
  28. package/dist/preview-protocol.d.ts.map +1 -1
  29. package/dist/preview-protocol.js +112 -0
  30. package/dist/preview-session-resolve.d.ts +115 -0
  31. package/dist/preview-session-resolve.d.ts.map +1 -0
  32. package/dist/preview-session-resolve.js +25 -0
  33. package/dist/preview-trusted-origins.d.ts +4 -0
  34. package/dist/preview-trusted-origins.d.ts.map +1 -0
  35. package/dist/preview-trusted-origins.js +26 -0
  36. package/dist/storefront-initial-data-html.d.ts +17 -0
  37. package/dist/storefront-initial-data-html.d.ts.map +1 -0
  38. package/dist/storefront-initial-data-html.js +83 -0
  39. package/dist/style-slots.d.ts +49 -151
  40. package/dist/style-slots.d.ts.map +1 -1
  41. package/dist/style-slots.js +75 -29
  42. package/dist/theme-manifest.d.ts +229 -454
  43. package/dist/theme-manifest.d.ts.map +1 -1
  44. package/dist/theme-manifest.js +92 -0
  45. package/dist/theme-schemes.d.ts +10 -0
  46. package/dist/theme-schemes.d.ts.map +1 -0
  47. package/dist/theme-schemes.js +24 -0
  48. package/dist/validation.d.ts +1 -1
  49. package/dist/validation.d.ts.map +1 -1
  50. package/dist/validation.js +18 -9
  51. package/package.json +43 -1
  52. package/src/builder-contracts.test.ts +398 -3
  53. package/src/canonical-settings.ts +156 -0
  54. package/src/events.ts +8 -0
  55. package/src/fields.ts +30 -0
  56. package/src/index.ts +7 -0
  57. package/src/legacy-manifest.ts +107 -16
  58. package/src/migrations.ts +65 -4
  59. package/src/persistence.ts +77 -0
  60. package/src/preview-boot.ts +47 -0
  61. package/src/preview-protocol.test.ts +132 -0
  62. package/src/preview-protocol.ts +122 -0
  63. package/src/preview-session-resolve.ts +34 -0
  64. package/src/preview-trusted-origins.test.ts +24 -0
  65. package/src/preview-trusted-origins.ts +35 -0
  66. package/src/storefront-initial-data-html.test.ts +63 -0
  67. package/src/storefront-initial-data-html.ts +112 -0
  68. package/src/style-slots.ts +96 -31
  69. package/src/theme-manifest.ts +118 -1
  70. package/src/theme-schemes.ts +33 -0
  71. package/src/validation.ts +27 -10
@@ -1 +1 @@
1
- {"version":3,"file":"builder-settings.d.ts","sourceRoot":"","sources":["../src/builder-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,eAAO,MAAM,YAAY,aAAoD,CAAC;AAC9E,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,qBAAqB,aAAoB,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,eAAe,aAAoD,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBASrB,CAAC;AACZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAIlB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAelB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;mBAQV,CAAC;AACf,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAMvB,CAAC;AACZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAEpE"}
1
+ {"version":3,"file":"builder-settings.d.ts","sourceRoot":"","sources":["../src/builder-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,eAAO,MAAM,YAAY,aAAoD,CAAC;AAC9E,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,qBAAqB,aAAoB,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,eAAe,aAAoD,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,mBAAmB;;;;;;;kBASrB,CAAC;AACZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;;;;;;kBAIlB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;kBAelB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;mBAQV,CAAC;AACf,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAMvB,CAAC;AACZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAEpE"}
@@ -0,0 +1,18 @@
1
+ import type { BuilderSettings } from './builder-settings.ts';
2
+ import type { ThemeManifest } from './theme-manifest.ts';
3
+ export type BuilderSettingsCanonicalizationConflict = {
4
+ pageId: string;
5
+ blockId: string;
6
+ blockType: string;
7
+ alias: string;
8
+ canonicalPath: string;
9
+ };
10
+ export type BuilderSettingsCanonicalizationResult = {
11
+ settings: BuilderSettings;
12
+ migratedAliases: number;
13
+ removedAliases: number;
14
+ conflicts: BuilderSettingsCanonicalizationConflict[];
15
+ };
16
+ export declare function canonicalizeBuilderSettingsForManifest(settings: BuilderSettings, manifest: ThemeManifest): BuilderSettings;
17
+ export declare function canonicalizeBuilderSettingsForManifestWithReport(settings: BuilderSettings, manifest: ThemeManifest): BuilderSettingsCanonicalizationResult;
18
+ //# sourceMappingURL=canonical-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-settings.d.ts","sourceRoot":"","sources":["../src/canonical-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,uCAAuC,GAAG;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG;IAClD,QAAQ,EAAE,eAAe,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,uCAAuC,EAAE,CAAC;CACtD,CAAC;AAEF,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,aAAa,GACtB,eAAe,CAEjB;AAED,wBAAgB,gDAAgD,CAC9D,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,aAAa,GACtB,qCAAqC,CAwBvC"}
@@ -0,0 +1,106 @@
1
+ import { sanitizeBuilderSettingsState } from "./persistence.js";
2
+ export function canonicalizeBuilderSettingsForManifest(settings, manifest) {
3
+ return canonicalizeBuilderSettingsForManifestWithReport(settings, manifest).settings;
4
+ }
5
+ export function canonicalizeBuilderSettingsForManifestWithReport(settings, manifest) {
6
+ const next = sanitizeBuilderSettingsState(cloneBuilderSettings(settings));
7
+ const conflicts = [];
8
+ let migratedAliases = 0;
9
+ let removedAliases = 0;
10
+ for (const [pageId, layout] of Object.entries(next.theme.layout)) {
11
+ for (const block of layout.blocks) {
12
+ const blockDefinition = manifest.blocks[block.type];
13
+ if (!blockDefinition)
14
+ continue;
15
+ const result = canonicalizeBlockSettings(pageId, block, Object.keys(blockDefinition.settings));
16
+ migratedAliases += result.migratedAliases;
17
+ removedAliases += result.removedAliases;
18
+ conflicts.push(...result.conflicts);
19
+ }
20
+ }
21
+ return {
22
+ settings: next,
23
+ migratedAliases,
24
+ removedAliases,
25
+ conflicts,
26
+ };
27
+ }
28
+ function canonicalizeBlockSettings(pageId, block, settingPaths) {
29
+ const aliases = buildAliasMap(block.type, settingPaths);
30
+ const conflicts = [];
31
+ let migratedAliases = 0;
32
+ let removedAliases = 0;
33
+ for (const [alias, canonicalPaths] of aliases.entries()) {
34
+ if (!Object.prototype.hasOwnProperty.call(block.settings, alias)) {
35
+ continue;
36
+ }
37
+ const aliasValue = block.settings[alias];
38
+ if (canonicalPaths.length === 1) {
39
+ const canonicalPath = canonicalPaths[0];
40
+ if (!Object.prototype.hasOwnProperty.call(block.settings, canonicalPath)) {
41
+ block.settings[canonicalPath] = aliasValue;
42
+ migratedAliases += 1;
43
+ }
44
+ else if (!isJsonEqual(block.settings[canonicalPath], aliasValue)) {
45
+ conflicts.push({
46
+ pageId,
47
+ blockId: block.id,
48
+ blockType: block.type,
49
+ alias,
50
+ canonicalPath,
51
+ });
52
+ }
53
+ delete block.settings[alias];
54
+ removedAliases += 1;
55
+ continue;
56
+ }
57
+ const everyCanonicalExists = canonicalPaths.every((canonicalPath) => Object.prototype.hasOwnProperty.call(block.settings, canonicalPath));
58
+ if (everyCanonicalExists) {
59
+ delete block.settings[alias];
60
+ removedAliases += 1;
61
+ }
62
+ }
63
+ return {
64
+ migratedAliases,
65
+ removedAliases,
66
+ conflicts,
67
+ };
68
+ }
69
+ function buildAliasMap(blockType, settingPaths) {
70
+ const aliases = new Map();
71
+ const canonicalPaths = new Set(settingPaths);
72
+ for (const canonicalPath of settingPaths) {
73
+ for (const alias of getLegacyAliases(blockType, canonicalPath)) {
74
+ if (alias === canonicalPath || canonicalPaths.has(alias))
75
+ continue;
76
+ const canonicalAliases = aliases.get(alias) ?? new Set();
77
+ canonicalAliases.add(canonicalPath);
78
+ aliases.set(alias, canonicalAliases);
79
+ }
80
+ }
81
+ return new Map(Array.from(aliases.entries()).map(([alias, paths]) => [alias, Array.from(paths).sort()]));
82
+ }
83
+ function getLegacyAliases(blockType, canonicalPath) {
84
+ const aliases = new Set();
85
+ const shortKey = getShortSettingKey(canonicalPath);
86
+ if (shortKey && shortKey !== canonicalPath) {
87
+ aliases.add(shortKey);
88
+ }
89
+ if (!canonicalPath.includes('.')) {
90
+ aliases.add(`${blockType}.${canonicalPath}`);
91
+ }
92
+ return Array.from(aliases);
93
+ }
94
+ function getShortSettingKey(path) {
95
+ const parts = path.split('.').filter(Boolean);
96
+ return parts.at(-1) ?? path;
97
+ }
98
+ function cloneBuilderSettings(settings) {
99
+ if (typeof structuredClone === 'function') {
100
+ return structuredClone(settings);
101
+ }
102
+ return JSON.parse(JSON.stringify(settings));
103
+ }
104
+ function isJsonEqual(left, right) {
105
+ return JSON.stringify(left) === JSON.stringify(right);
106
+ }
package/dist/events.d.ts CHANGED
@@ -4,8 +4,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4
4
  revision: z.ZodNumber;
5
5
  createdAt: z.ZodString;
6
6
  source: z.ZodEnum<{
7
- dashboard: "dashboard";
8
7
  preview: "preview";
8
+ dashboard: "dashboard";
9
9
  migration: "migration";
10
10
  agent: "agent";
11
11
  }>;
@@ -17,8 +17,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
17
17
  revision: z.ZodNumber;
18
18
  createdAt: z.ZodString;
19
19
  source: z.ZodEnum<{
20
- dashboard: "dashboard";
21
20
  preview: "preview";
21
+ dashboard: "dashboard";
22
22
  migration: "migration";
23
23
  agent: "agent";
24
24
  }>;
@@ -30,8 +30,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
30
30
  revision: z.ZodNumber;
31
31
  createdAt: z.ZodString;
32
32
  source: z.ZodEnum<{
33
- dashboard: "dashboard";
34
33
  preview: "preview";
34
+ dashboard: "dashboard";
35
35
  migration: "migration";
36
36
  agent: "agent";
37
37
  }>;
@@ -43,80 +43,7 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
43
43
  variant: z.ZodOptional<z.ZodString>;
44
44
  visible: z.ZodDefault<z.ZodBoolean>;
45
45
  settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
46
- style_overrides: z.ZodOptional<z.ZodObject<{
47
- 'button.radius': z.ZodOptional<z.ZodObject<{
48
- base: z.ZodNumber;
49
- sm: z.ZodOptional<z.ZodNumber>;
50
- md: z.ZodOptional<z.ZodNumber>;
51
- lg: z.ZodOptional<z.ZodNumber>;
52
- xl: z.ZodOptional<z.ZodNumber>;
53
- }, z.core.$strict>>;
54
- 'button.background': z.ZodOptional<z.ZodString>;
55
- 'button.foreground': z.ZodOptional<z.ZodString>;
56
- 'button.border': z.ZodOptional<z.ZodString>;
57
- 'button.font.weight': z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<100>, z.ZodLiteral<200>, z.ZodLiteral<300>, z.ZodLiteral<400>, z.ZodLiteral<500>, z.ZodLiteral<600>, z.ZodLiteral<700>, z.ZodLiteral<800>, z.ZodLiteral<900>]>>;
58
- 'input.radius': z.ZodOptional<z.ZodObject<{
59
- base: z.ZodNumber;
60
- sm: z.ZodOptional<z.ZodNumber>;
61
- md: z.ZodOptional<z.ZodNumber>;
62
- lg: z.ZodOptional<z.ZodNumber>;
63
- xl: z.ZodOptional<z.ZodNumber>;
64
- }, z.core.$strict>>;
65
- 'input.height': z.ZodOptional<z.ZodObject<{
66
- base: z.ZodNumber;
67
- sm: z.ZodOptional<z.ZodNumber>;
68
- md: z.ZodOptional<z.ZodNumber>;
69
- lg: z.ZodOptional<z.ZodNumber>;
70
- xl: z.ZodOptional<z.ZodNumber>;
71
- }, z.core.$strict>>;
72
- 'input.border': z.ZodOptional<z.ZodString>;
73
- 'input.background': z.ZodOptional<z.ZodString>;
74
- 'input.foreground': z.ZodOptional<z.ZodString>;
75
- 'card.radius': z.ZodOptional<z.ZodObject<{
76
- base: z.ZodNumber;
77
- sm: z.ZodOptional<z.ZodNumber>;
78
- md: z.ZodOptional<z.ZodNumber>;
79
- lg: z.ZodOptional<z.ZodNumber>;
80
- xl: z.ZodOptional<z.ZodNumber>;
81
- }, z.core.$strict>>;
82
- 'card.background': z.ZodOptional<z.ZodString>;
83
- 'card.border': z.ZodOptional<z.ZodString>;
84
- 'section.padding.y': z.ZodOptional<z.ZodObject<{
85
- base: z.ZodNumber;
86
- sm: z.ZodOptional<z.ZodNumber>;
87
- md: z.ZodOptional<z.ZodNumber>;
88
- lg: z.ZodOptional<z.ZodNumber>;
89
- xl: z.ZodOptional<z.ZodNumber>;
90
- }, z.core.$strict>>;
91
- 'section.padding.x': z.ZodOptional<z.ZodObject<{
92
- base: z.ZodNumber;
93
- sm: z.ZodOptional<z.ZodNumber>;
94
- md: z.ZodOptional<z.ZodNumber>;
95
- lg: z.ZodOptional<z.ZodNumber>;
96
- xl: z.ZodOptional<z.ZodNumber>;
97
- }, z.core.$strict>>;
98
- 'container.width': z.ZodOptional<z.ZodObject<{
99
- base: z.ZodNumber;
100
- sm: z.ZodOptional<z.ZodNumber>;
101
- md: z.ZodOptional<z.ZodNumber>;
102
- lg: z.ZodOptional<z.ZodNumber>;
103
- xl: z.ZodOptional<z.ZodNumber>;
104
- }, z.core.$strict>>;
105
- 'color.primary': z.ZodOptional<z.ZodString>;
106
- 'color.accent': z.ZodOptional<z.ZodString>;
107
- 'color.background': z.ZodOptional<z.ZodString>;
108
- 'color.foreground': z.ZodOptional<z.ZodString>;
109
- 'color.muted': z.ZodOptional<z.ZodString>;
110
- 'link.color': z.ZodOptional<z.ZodString>;
111
- 'typography.heading.weight': z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<100>, z.ZodLiteral<200>, z.ZodLiteral<300>, z.ZodLiteral<400>, z.ZodLiteral<500>, z.ZodLiteral<600>, z.ZodLiteral<700>, z.ZodLiteral<800>, z.ZodLiteral<900>]>>;
112
- 'typography.body.size': z.ZodOptional<z.ZodObject<{
113
- base: z.ZodNumber;
114
- sm: z.ZodOptional<z.ZodNumber>;
115
- md: z.ZodOptional<z.ZodNumber>;
116
- lg: z.ZodOptional<z.ZodNumber>;
117
- xl: z.ZodOptional<z.ZodNumber>;
118
- }, z.core.$strict>>;
119
- }, z.core.$strict>>;
46
+ style_overrides: z.ZodOptional<z.ZodType<Partial<Record<import("./style-slots.ts").StyleSlotId, import("./style-slots.ts").StyleSlotValue>>, unknown, z.core.$ZodTypeInternals<Partial<Record<import("./style-slots.ts").StyleSlotId, import("./style-slots.ts").StyleSlotValue>>, unknown>>>;
120
47
  }, z.core.$strict>;
121
48
  index: z.ZodOptional<z.ZodNumber>;
122
49
  }, z.core.$strict>, z.ZodObject<{
@@ -124,8 +51,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
124
51
  revision: z.ZodNumber;
125
52
  createdAt: z.ZodString;
126
53
  source: z.ZodEnum<{
127
- dashboard: "dashboard";
128
54
  preview: "preview";
55
+ dashboard: "dashboard";
129
56
  migration: "migration";
130
57
  agent: "agent";
131
58
  }>;
@@ -138,88 +65,15 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
138
65
  variant: z.ZodOptional<z.ZodString>;
139
66
  visible: z.ZodDefault<z.ZodBoolean>;
140
67
  settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
141
- style_overrides: z.ZodOptional<z.ZodObject<{
142
- 'button.radius': z.ZodOptional<z.ZodObject<{
143
- base: z.ZodNumber;
144
- sm: z.ZodOptional<z.ZodNumber>;
145
- md: z.ZodOptional<z.ZodNumber>;
146
- lg: z.ZodOptional<z.ZodNumber>;
147
- xl: z.ZodOptional<z.ZodNumber>;
148
- }, z.core.$strict>>;
149
- 'button.background': z.ZodOptional<z.ZodString>;
150
- 'button.foreground': z.ZodOptional<z.ZodString>;
151
- 'button.border': z.ZodOptional<z.ZodString>;
152
- 'button.font.weight': z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<100>, z.ZodLiteral<200>, z.ZodLiteral<300>, z.ZodLiteral<400>, z.ZodLiteral<500>, z.ZodLiteral<600>, z.ZodLiteral<700>, z.ZodLiteral<800>, z.ZodLiteral<900>]>>;
153
- 'input.radius': z.ZodOptional<z.ZodObject<{
154
- base: z.ZodNumber;
155
- sm: z.ZodOptional<z.ZodNumber>;
156
- md: z.ZodOptional<z.ZodNumber>;
157
- lg: z.ZodOptional<z.ZodNumber>;
158
- xl: z.ZodOptional<z.ZodNumber>;
159
- }, z.core.$strict>>;
160
- 'input.height': z.ZodOptional<z.ZodObject<{
161
- base: z.ZodNumber;
162
- sm: z.ZodOptional<z.ZodNumber>;
163
- md: z.ZodOptional<z.ZodNumber>;
164
- lg: z.ZodOptional<z.ZodNumber>;
165
- xl: z.ZodOptional<z.ZodNumber>;
166
- }, z.core.$strict>>;
167
- 'input.border': z.ZodOptional<z.ZodString>;
168
- 'input.background': z.ZodOptional<z.ZodString>;
169
- 'input.foreground': z.ZodOptional<z.ZodString>;
170
- 'card.radius': z.ZodOptional<z.ZodObject<{
171
- base: z.ZodNumber;
172
- sm: z.ZodOptional<z.ZodNumber>;
173
- md: z.ZodOptional<z.ZodNumber>;
174
- lg: z.ZodOptional<z.ZodNumber>;
175
- xl: z.ZodOptional<z.ZodNumber>;
176
- }, z.core.$strict>>;
177
- 'card.background': z.ZodOptional<z.ZodString>;
178
- 'card.border': z.ZodOptional<z.ZodString>;
179
- 'section.padding.y': z.ZodOptional<z.ZodObject<{
180
- base: z.ZodNumber;
181
- sm: z.ZodOptional<z.ZodNumber>;
182
- md: z.ZodOptional<z.ZodNumber>;
183
- lg: z.ZodOptional<z.ZodNumber>;
184
- xl: z.ZodOptional<z.ZodNumber>;
185
- }, z.core.$strict>>;
186
- 'section.padding.x': z.ZodOptional<z.ZodObject<{
187
- base: z.ZodNumber;
188
- sm: z.ZodOptional<z.ZodNumber>;
189
- md: z.ZodOptional<z.ZodNumber>;
190
- lg: z.ZodOptional<z.ZodNumber>;
191
- xl: z.ZodOptional<z.ZodNumber>;
192
- }, z.core.$strict>>;
193
- 'container.width': z.ZodOptional<z.ZodObject<{
194
- base: z.ZodNumber;
195
- sm: z.ZodOptional<z.ZodNumber>;
196
- md: z.ZodOptional<z.ZodNumber>;
197
- lg: z.ZodOptional<z.ZodNumber>;
198
- xl: z.ZodOptional<z.ZodNumber>;
199
- }, z.core.$strict>>;
200
- 'color.primary': z.ZodOptional<z.ZodString>;
201
- 'color.accent': z.ZodOptional<z.ZodString>;
202
- 'color.background': z.ZodOptional<z.ZodString>;
203
- 'color.foreground': z.ZodOptional<z.ZodString>;
204
- 'color.muted': z.ZodOptional<z.ZodString>;
205
- 'link.color': z.ZodOptional<z.ZodString>;
206
- 'typography.heading.weight': z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<100>, z.ZodLiteral<200>, z.ZodLiteral<300>, z.ZodLiteral<400>, z.ZodLiteral<500>, z.ZodLiteral<600>, z.ZodLiteral<700>, z.ZodLiteral<800>, z.ZodLiteral<900>]>>;
207
- 'typography.body.size': z.ZodOptional<z.ZodObject<{
208
- base: z.ZodNumber;
209
- sm: z.ZodOptional<z.ZodNumber>;
210
- md: z.ZodOptional<z.ZodNumber>;
211
- lg: z.ZodOptional<z.ZodNumber>;
212
- xl: z.ZodOptional<z.ZodNumber>;
213
- }, z.core.$strict>>;
214
- }, z.core.$strict>>;
68
+ style_overrides: z.ZodOptional<z.ZodType<Partial<Record<import("./style-slots.ts").StyleSlotId, import("./style-slots.ts").StyleSlotValue>>, unknown, z.core.$ZodTypeInternals<Partial<Record<import("./style-slots.ts").StyleSlotId, import("./style-slots.ts").StyleSlotValue>>, unknown>>>;
215
69
  }, z.core.$strict>;
216
70
  }, z.core.$strict>, z.ZodObject<{
217
71
  id: z.ZodString;
218
72
  revision: z.ZodNumber;
219
73
  createdAt: z.ZodString;
220
74
  source: z.ZodEnum<{
221
- dashboard: "dashboard";
222
75
  preview: "preview";
76
+ dashboard: "dashboard";
223
77
  migration: "migration";
224
78
  agent: "agent";
225
79
  }>;
@@ -231,8 +85,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
231
85
  revision: z.ZodNumber;
232
86
  createdAt: z.ZodString;
233
87
  source: z.ZodEnum<{
234
- dashboard: "dashboard";
235
88
  preview: "preview";
89
+ dashboard: "dashboard";
236
90
  migration: "migration";
237
91
  agent: "agent";
238
92
  }>;
@@ -244,8 +98,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
244
98
  revision: z.ZodNumber;
245
99
  createdAt: z.ZodString;
246
100
  source: z.ZodEnum<{
247
- dashboard: "dashboard";
248
101
  preview: "preview";
102
+ dashboard: "dashboard";
249
103
  migration: "migration";
250
104
  agent: "agent";
251
105
  }>;
@@ -258,8 +112,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
258
112
  revision: z.ZodNumber;
259
113
  createdAt: z.ZodString;
260
114
  source: z.ZodEnum<{
261
- dashboard: "dashboard";
262
115
  preview: "preview";
116
+ dashboard: "dashboard";
263
117
  migration: "migration";
264
118
  agent: "agent";
265
119
  }>;
@@ -272,8 +126,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
272
126
  revision: z.ZodNumber;
273
127
  createdAt: z.ZodString;
274
128
  source: z.ZodEnum<{
275
- dashboard: "dashboard";
276
129
  preview: "preview";
130
+ dashboard: "dashboard";
277
131
  migration: "migration";
278
132
  agent: "agent";
279
133
  }>;
@@ -287,13 +141,13 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
287
141
  revision: z.ZodNumber;
288
142
  createdAt: z.ZodString;
289
143
  source: z.ZodEnum<{
290
- dashboard: "dashboard";
291
144
  preview: "preview";
145
+ dashboard: "dashboard";
292
146
  migration: "migration";
293
147
  agent: "agent";
294
148
  }>;
295
149
  type: z.ZodLiteral<"style.slot.set">;
296
- slotId: z.ZodEnum<{
150
+ slotId: z.ZodUnion<readonly [z.ZodEnum<{
297
151
  "button.radius": "button.radius";
298
152
  "button.background": "button.background";
299
153
  "button.foreground": "button.foreground";
@@ -318,7 +172,7 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
318
172
  "link.color": "link.color";
319
173
  "typography.heading.weight": "typography.heading.weight";
320
174
  "typography.body.size": "typography.body.size";
321
- }>;
175
+ }>, z.ZodString]>;
322
176
  value: z.ZodUnknown;
323
177
  blockId: z.ZodOptional<z.ZodString>;
324
178
  breakpoint: z.ZodOptional<z.ZodEnum<{
@@ -333,13 +187,13 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
333
187
  revision: z.ZodNumber;
334
188
  createdAt: z.ZodString;
335
189
  source: z.ZodEnum<{
336
- dashboard: "dashboard";
337
190
  preview: "preview";
191
+ dashboard: "dashboard";
338
192
  migration: "migration";
339
193
  agent: "agent";
340
194
  }>;
341
195
  type: z.ZodLiteral<"style.slot.reset">;
342
- slotId: z.ZodEnum<{
196
+ slotId: z.ZodUnion<readonly [z.ZodEnum<{
343
197
  "button.radius": "button.radius";
344
198
  "button.background": "button.background";
345
199
  "button.foreground": "button.foreground";
@@ -364,7 +218,7 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
364
218
  "link.color": "link.color";
365
219
  "typography.heading.weight": "typography.heading.weight";
366
220
  "typography.body.size": "typography.body.size";
367
- }>;
221
+ }>, z.ZodString]>;
368
222
  blockId: z.ZodOptional<z.ZodString>;
369
223
  breakpoint: z.ZodOptional<z.ZodEnum<{
370
224
  base: "base";
@@ -378,8 +232,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
378
232
  revision: z.ZodNumber;
379
233
  createdAt: z.ZodString;
380
234
  source: z.ZodEnum<{
381
- dashboard: "dashboard";
382
235
  preview: "preview";
236
+ dashboard: "dashboard";
383
237
  migration: "migration";
384
238
  agent: "agent";
385
239
  }>;
@@ -396,80 +250,7 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
396
250
  variant: z.ZodOptional<z.ZodString>;
397
251
  visible: z.ZodDefault<z.ZodBoolean>;
398
252
  settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
399
- style_overrides: z.ZodOptional<z.ZodObject<{
400
- 'button.radius': z.ZodOptional<z.ZodObject<{
401
- base: z.ZodNumber;
402
- sm: z.ZodOptional<z.ZodNumber>;
403
- md: z.ZodOptional<z.ZodNumber>;
404
- lg: z.ZodOptional<z.ZodNumber>;
405
- xl: z.ZodOptional<z.ZodNumber>;
406
- }, z.core.$strict>>;
407
- 'button.background': z.ZodOptional<z.ZodString>;
408
- 'button.foreground': z.ZodOptional<z.ZodString>;
409
- 'button.border': z.ZodOptional<z.ZodString>;
410
- 'button.font.weight': z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<100>, z.ZodLiteral<200>, z.ZodLiteral<300>, z.ZodLiteral<400>, z.ZodLiteral<500>, z.ZodLiteral<600>, z.ZodLiteral<700>, z.ZodLiteral<800>, z.ZodLiteral<900>]>>;
411
- 'input.radius': z.ZodOptional<z.ZodObject<{
412
- base: z.ZodNumber;
413
- sm: z.ZodOptional<z.ZodNumber>;
414
- md: z.ZodOptional<z.ZodNumber>;
415
- lg: z.ZodOptional<z.ZodNumber>;
416
- xl: z.ZodOptional<z.ZodNumber>;
417
- }, z.core.$strict>>;
418
- 'input.height': z.ZodOptional<z.ZodObject<{
419
- base: z.ZodNumber;
420
- sm: z.ZodOptional<z.ZodNumber>;
421
- md: z.ZodOptional<z.ZodNumber>;
422
- lg: z.ZodOptional<z.ZodNumber>;
423
- xl: z.ZodOptional<z.ZodNumber>;
424
- }, z.core.$strict>>;
425
- 'input.border': z.ZodOptional<z.ZodString>;
426
- 'input.background': z.ZodOptional<z.ZodString>;
427
- 'input.foreground': z.ZodOptional<z.ZodString>;
428
- 'card.radius': z.ZodOptional<z.ZodObject<{
429
- base: z.ZodNumber;
430
- sm: z.ZodOptional<z.ZodNumber>;
431
- md: z.ZodOptional<z.ZodNumber>;
432
- lg: z.ZodOptional<z.ZodNumber>;
433
- xl: z.ZodOptional<z.ZodNumber>;
434
- }, z.core.$strict>>;
435
- 'card.background': z.ZodOptional<z.ZodString>;
436
- 'card.border': z.ZodOptional<z.ZodString>;
437
- 'section.padding.y': z.ZodOptional<z.ZodObject<{
438
- base: z.ZodNumber;
439
- sm: z.ZodOptional<z.ZodNumber>;
440
- md: z.ZodOptional<z.ZodNumber>;
441
- lg: z.ZodOptional<z.ZodNumber>;
442
- xl: z.ZodOptional<z.ZodNumber>;
443
- }, z.core.$strict>>;
444
- 'section.padding.x': z.ZodOptional<z.ZodObject<{
445
- base: z.ZodNumber;
446
- sm: z.ZodOptional<z.ZodNumber>;
447
- md: z.ZodOptional<z.ZodNumber>;
448
- lg: z.ZodOptional<z.ZodNumber>;
449
- xl: z.ZodOptional<z.ZodNumber>;
450
- }, z.core.$strict>>;
451
- 'container.width': z.ZodOptional<z.ZodObject<{
452
- base: z.ZodNumber;
453
- sm: z.ZodOptional<z.ZodNumber>;
454
- md: z.ZodOptional<z.ZodNumber>;
455
- lg: z.ZodOptional<z.ZodNumber>;
456
- xl: z.ZodOptional<z.ZodNumber>;
457
- }, z.core.$strict>>;
458
- 'color.primary': z.ZodOptional<z.ZodString>;
459
- 'color.accent': z.ZodOptional<z.ZodString>;
460
- 'color.background': z.ZodOptional<z.ZodString>;
461
- 'color.foreground': z.ZodOptional<z.ZodString>;
462
- 'color.muted': z.ZodOptional<z.ZodString>;
463
- 'link.color': z.ZodOptional<z.ZodString>;
464
- 'typography.heading.weight': z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<100>, z.ZodLiteral<200>, z.ZodLiteral<300>, z.ZodLiteral<400>, z.ZodLiteral<500>, z.ZodLiteral<600>, z.ZodLiteral<700>, z.ZodLiteral<800>, z.ZodLiteral<900>]>>;
465
- 'typography.body.size': z.ZodOptional<z.ZodObject<{
466
- base: z.ZodNumber;
467
- sm: z.ZodOptional<z.ZodNumber>;
468
- md: z.ZodOptional<z.ZodNumber>;
469
- lg: z.ZodOptional<z.ZodNumber>;
470
- xl: z.ZodOptional<z.ZodNumber>;
471
- }, z.core.$strict>>;
472
- }, z.core.$strict>>;
253
+ style_overrides: z.ZodOptional<z.ZodType<Partial<Record<import("./style-slots.ts").StyleSlotId, import("./style-slots.ts").StyleSlotValue>>, unknown, z.core.$ZodTypeInternals<Partial<Record<import("./style-slots.ts").StyleSlotId, import("./style-slots.ts").StyleSlotValue>>, unknown>>>;
473
254
  }, z.core.$strict>>>;
474
255
  }, z.core.$strict>>;
475
256
  seo: z.ZodOptional<z.ZodObject<{
@@ -482,8 +263,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
482
263
  revision: z.ZodNumber;
483
264
  createdAt: z.ZodString;
484
265
  source: z.ZodEnum<{
485
- dashboard: "dashboard";
486
266
  preview: "preview";
267
+ dashboard: "dashboard";
487
268
  migration: "migration";
488
269
  agent: "agent";
489
270
  }>;
@@ -494,8 +275,8 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
494
275
  revision: z.ZodNumber;
495
276
  createdAt: z.ZodString;
496
277
  source: z.ZodEnum<{
497
- dashboard: "dashboard";
498
278
  preview: "preview";
279
+ dashboard: "dashboard";
499
280
  migration: "migration";
500
281
  agent: "agent";
501
282
  }>;
@@ -507,6 +288,20 @@ export declare const BuilderEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
507
288
  imprint: "imprint";
508
289
  }>;
509
290
  value: z.ZodString;
291
+ }, z.core.$strict>, z.ZodObject<{
292
+ id: z.ZodString;
293
+ revision: z.ZodNumber;
294
+ createdAt: z.ZodString;
295
+ source: z.ZodEnum<{
296
+ preview: "preview";
297
+ dashboard: "dashboard";
298
+ migration: "migration";
299
+ agent: "agent";
300
+ }>;
301
+ type: z.ZodLiteral<"preset.apply">;
302
+ pageId: z.ZodString;
303
+ presetId: z.ZodString;
304
+ blockId: z.ZodOptional<z.ZodString>;
510
305
  }, z.core.$strict>], "type">;
511
306
  export type BuilderEvent = z.infer<typeof BuilderEventSchema>;
512
307
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAwG5B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAe7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AA+G5B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAgB7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
package/dist/events.js CHANGED
@@ -86,6 +86,12 @@ const TermsSetEventSchema = EventBaseSchema.extend({
86
86
  key: z.enum(['termsOfService', 'privacyPolicy', 'refundPolicy', 'imprint']),
87
87
  value: z.string(),
88
88
  }).strict();
89
+ const PresetApplyEventSchema = EventBaseSchema.extend({
90
+ type: z.literal('preset.apply'),
91
+ pageId: PageIdSchema,
92
+ presetId: z.string().min(1),
93
+ blockId: z.string().min(1).optional(),
94
+ }).strict();
89
95
  export const BuilderEventSchema = z.discriminatedUnion('type', [
90
96
  ContentSetEventSchema,
91
97
  ListSetEventSchema,
@@ -101,4 +107,5 @@ export const BuilderEventSchema = z.discriminatedUnion('type', [
101
107
  PageUpsertEventSchema,
102
108
  PageRemoveEventSchema,
103
109
  TermsSetEventSchema,
110
+ PresetApplyEventSchema,
104
111
  ]);