@kubuild/schema 0.8.0 → 0.8.2

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 (49) hide show
  1. package/dist/actions.d.cts +473 -0
  2. package/dist/actions.d.cts.map +1 -0
  3. package/dist/breakpoints.d.cts +35 -0
  4. package/dist/breakpoints.d.cts.map +1 -0
  5. package/dist/builtin-components.d.cts +17 -0
  6. package/dist/builtin-components.d.cts.map +1 -0
  7. package/dist/canonical-props.d.cts +39 -0
  8. package/dist/canonical-props.d.cts.map +1 -0
  9. package/dist/chunk-IXTL6BV4.js +1041 -0
  10. package/dist/chunk-IXTL6BV4.js.map +1 -0
  11. package/dist/document.d.cts +742 -0
  12. package/dist/document.d.cts.map +1 -0
  13. package/dist/document.d.ts +2 -2
  14. package/dist/document.d.ts.map +1 -1
  15. package/dist/fixtures.d.cts +3 -0
  16. package/dist/fixtures.d.cts.map +1 -0
  17. package/dist/fixtures.d.ts +1 -1
  18. package/dist/fixtures.d.ts.map +1 -1
  19. package/dist/form.d.cts +129 -0
  20. package/dist/form.d.cts.map +1 -0
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +13 -0
  23. package/dist/index.d.cts.map +1 -0
  24. package/dist/index.d.ts +12 -12
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/json-schema.d.cts +2066 -0
  29. package/dist/json-schema.d.cts.map +1 -0
  30. package/dist/manifest.d.cts +28 -0
  31. package/dist/manifest.d.cts.map +1 -0
  32. package/dist/template.d.cts +213 -0
  33. package/dist/template.d.cts.map +1 -0
  34. package/dist/template.d.ts +2 -2
  35. package/dist/template.d.ts.map +1 -1
  36. package/dist/theme.d.cts +80 -0
  37. package/dist/theme.d.cts.map +1 -0
  38. package/dist/tracking.d.cts +348 -0
  39. package/dist/tracking.d.cts.map +1 -0
  40. package/dist/types.d.cts +331 -0
  41. package/dist/types.d.cts.map +1 -0
  42. package/dist/validate.cjs.map +1 -1
  43. package/dist/validate.d.cts +16 -0
  44. package/dist/validate.d.cts.map +1 -0
  45. package/dist/validate.d.ts +2 -2
  46. package/dist/validate.d.ts.map +1 -1
  47. package/dist/validate.js +1 -1
  48. package/dist/validate.js.map +1 -1
  49. package/package.json +26 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema.d.cts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ export declare const ManifestAssetItemSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ path: z.ZodString;
5
+ mimeType: z.ZodString;
6
+ size: z.ZodNumber;
7
+ checksum: z.ZodOptional<z.ZodString>;
8
+ }, z.core.$strip>;
9
+ export type ManifestAssetItem = z.infer<typeof ManifestAssetItemSchema>;
10
+ export declare const ManifestSchema: z.ZodObject<{
11
+ schema: z.ZodDefault<z.ZodLiteral<"stora.page">>;
12
+ schemaVersion: z.ZodDefault<z.ZodString>;
13
+ packageVersion: z.ZodDefault<z.ZodString>;
14
+ builderCompatibility: z.ZodDefault<z.ZodString>;
15
+ requiredComponents: z.ZodDefault<z.ZodArray<z.ZodString>>;
16
+ requiredCapabilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
17
+ assets: z.ZodDefault<z.ZodArray<z.ZodObject<{
18
+ id: z.ZodString;
19
+ path: z.ZodString;
20
+ mimeType: z.ZodString;
21
+ size: z.ZodNumber;
22
+ checksum: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strip>>>;
24
+ createdAt: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>;
26
+ export type Manifest = z.infer<typeof ManifestSchema>;
27
+ export declare function isManifest(value: unknown): value is Manifest;
28
+ //# sourceMappingURL=manifest.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.cts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB;;;;;;iBAMlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;iBASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D"}
@@ -0,0 +1,213 @@
1
+ import { z } from 'zod';
2
+ import { type AssetReference } from './document.cjs';
3
+ /**
4
+ * Validates a string as a safe URL or safe asset path.
5
+ */
6
+ export declare function isSafeThumbnailUrl(url: string): boolean;
7
+ /**
8
+ * Safe Thumbnail URL String Schema
9
+ */
10
+ export declare const SafeThumbnailUrlSchema: z.ZodString;
11
+ /**
12
+ * Safe Thumbnail Object Schema
13
+ */
14
+ export declare const SafeThumbnailObjectSchema: z.ZodObject<{
15
+ url: z.ZodString;
16
+ alt: z.ZodOptional<z.ZodString>;
17
+ width: z.ZodOptional<z.ZodNumber>;
18
+ height: z.ZodOptional<z.ZodNumber>;
19
+ }, z.core.$strip>;
20
+ export type SafeThumbnailObject = z.infer<typeof SafeThumbnailObjectSchema>;
21
+ /**
22
+ * Safe Thumbnail Schema (AssetReference | safe URL string | safe thumbnail object)
23
+ */
24
+ export declare const SafeThumbnailSchema: z.ZodUnion<readonly [z.ZodObject<{
25
+ type: z.ZodLiteral<"asset">;
26
+ assetId: z.ZodString;
27
+ filename: z.ZodOptional<z.ZodString>;
28
+ mimeType: z.ZodOptional<z.ZodString>;
29
+ fallbackUrl: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strip>, z.ZodObject<{
31
+ url: z.ZodString;
32
+ alt: z.ZodOptional<z.ZodString>;
33
+ width: z.ZodOptional<z.ZodNumber>;
34
+ height: z.ZodOptional<z.ZodNumber>;
35
+ }, z.core.$strip>, z.ZodString]>;
36
+ export type SafeThumbnail = AssetReference | SafeThumbnailObject | string;
37
+ /**
38
+ * Template Package Reference Schema
39
+ * Points to an external or archived .stora / JSON package file.
40
+ */
41
+ export declare const TemplatePackageRefSchema: z.ZodObject<{
42
+ path: z.ZodOptional<z.ZodString>;
43
+ url: z.ZodOptional<z.ZodString>;
44
+ checksum: z.ZodOptional<z.ZodString>;
45
+ format: z.ZodDefault<z.ZodEnum<{
46
+ json: "json";
47
+ stora: "stora";
48
+ }>>;
49
+ }, z.core.$strip>;
50
+ export type TemplatePackageRef = z.infer<typeof TemplatePackageRefSchema>;
51
+ /**
52
+ * Template Requirements Schema
53
+ * Declares custom components and host capabilities required by this template.
54
+ */
55
+ export declare const TemplateRequirementsSchema: z.ZodObject<{
56
+ requiredComponents: z.ZodDefault<z.ZodArray<z.ZodString>>;
57
+ requiredCapabilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
58
+ }, z.core.$strip>;
59
+ export type TemplateRequirements = z.infer<typeof TemplateRequirementsSchema>;
60
+ /**
61
+ * Template Record Schema v1
62
+ * Represents a reusable page template with full metadata, safe thumbnail,
63
+ * component/capability requirements, and snapshot document / package reference.
64
+ */
65
+ export declare const TemplateRecordSchema: z.ZodObject<{
66
+ id: z.ZodString;
67
+ name: z.ZodString;
68
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
69
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
70
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
71
+ thumbnail: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
72
+ type: z.ZodLiteral<"asset">;
73
+ assetId: z.ZodString;
74
+ filename: z.ZodOptional<z.ZodString>;
75
+ mimeType: z.ZodOptional<z.ZodString>;
76
+ fallbackUrl: z.ZodOptional<z.ZodString>;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ url: z.ZodString;
79
+ alt: z.ZodOptional<z.ZodString>;
80
+ width: z.ZodOptional<z.ZodNumber>;
81
+ height: z.ZodOptional<z.ZodNumber>;
82
+ }, z.core.$strip>, z.ZodString]>>;
83
+ author: z.ZodDefault<z.ZodOptional<z.ZodString>>;
84
+ version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
85
+ document: z.ZodOptional<z.ZodObject<{
86
+ schema: z.ZodLiteral<"stora.page">;
87
+ version: z.ZodDefault<z.ZodString>;
88
+ metadata: z.ZodOptional<z.ZodObject<{
89
+ title: z.ZodDefault<z.ZodString>;
90
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
91
+ author: z.ZodDefault<z.ZodOptional<z.ZodString>>;
92
+ createdAt: z.ZodOptional<z.ZodString>;
93
+ updatedAt: z.ZodOptional<z.ZodString>;
94
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
95
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
96
+ version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
97
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
98
+ tracking: z.ZodOptional<z.ZodObject<{
99
+ enabled: z.ZodDefault<z.ZodBoolean>;
100
+ debugMode: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
101
+ autoPageView: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
102
+ defaultDelivery: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
103
+ both: "both";
104
+ client_only: "client_only";
105
+ server_only: "server_only";
106
+ }>>>;
107
+ providers: z.ZodDefault<z.ZodOptional<z.ZodObject<{
108
+ meta: z.ZodOptional<z.ZodObject<{
109
+ enabled: z.ZodDefault<z.ZodBoolean>;
110
+ credentialId: z.ZodOptional<z.ZodString>;
111
+ pixelId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
112
+ capiEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
113
+ testEventCode: z.ZodDefault<z.ZodOptional<z.ZodString>>;
114
+ }, z.core.$strip>>;
115
+ google: z.ZodOptional<z.ZodObject<{
116
+ enabled: z.ZodDefault<z.ZodBoolean>;
117
+ credentialId: z.ZodOptional<z.ZodString>;
118
+ measurementId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
119
+ }, z.core.$strip>>;
120
+ gtm: z.ZodOptional<z.ZodObject<{
121
+ enabled: z.ZodDefault<z.ZodBoolean>;
122
+ credentialId: z.ZodOptional<z.ZodString>;
123
+ containerId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
124
+ }, z.core.$strip>>;
125
+ tiktok: z.ZodOptional<z.ZodObject<{
126
+ enabled: z.ZodDefault<z.ZodBoolean>;
127
+ credentialId: z.ZodOptional<z.ZodString>;
128
+ pixelId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
129
+ eventsApiEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
130
+ testEventCode: z.ZodDefault<z.ZodOptional<z.ZodString>>;
131
+ }, z.core.$strip>>;
132
+ custom: z.ZodOptional<z.ZodObject<{
133
+ enabled: z.ZodDefault<z.ZodBoolean>;
134
+ credentialId: z.ZodOptional<z.ZodString>;
135
+ }, z.core.$strip>>;
136
+ }, z.core.$strip>>>;
137
+ }, z.core.$strip>>;
138
+ }, z.core.$strip>>;
139
+ tracking: z.ZodOptional<z.ZodObject<{
140
+ enabled: z.ZodDefault<z.ZodBoolean>;
141
+ debugMode: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
142
+ autoPageView: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
143
+ defaultDelivery: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
144
+ both: "both";
145
+ client_only: "client_only";
146
+ server_only: "server_only";
147
+ }>>>;
148
+ providers: z.ZodDefault<z.ZodOptional<z.ZodObject<{
149
+ meta: z.ZodOptional<z.ZodObject<{
150
+ enabled: z.ZodDefault<z.ZodBoolean>;
151
+ credentialId: z.ZodOptional<z.ZodString>;
152
+ pixelId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
153
+ capiEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
154
+ testEventCode: z.ZodDefault<z.ZodOptional<z.ZodString>>;
155
+ }, z.core.$strip>>;
156
+ google: z.ZodOptional<z.ZodObject<{
157
+ enabled: z.ZodDefault<z.ZodBoolean>;
158
+ credentialId: z.ZodOptional<z.ZodString>;
159
+ measurementId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
160
+ }, z.core.$strip>>;
161
+ gtm: z.ZodOptional<z.ZodObject<{
162
+ enabled: z.ZodDefault<z.ZodBoolean>;
163
+ credentialId: z.ZodOptional<z.ZodString>;
164
+ containerId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
165
+ }, z.core.$strip>>;
166
+ tiktok: z.ZodOptional<z.ZodObject<{
167
+ enabled: z.ZodDefault<z.ZodBoolean>;
168
+ credentialId: z.ZodOptional<z.ZodString>;
169
+ pixelId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
170
+ eventsApiEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
171
+ testEventCode: z.ZodDefault<z.ZodOptional<z.ZodString>>;
172
+ }, z.core.$strip>>;
173
+ custom: z.ZodOptional<z.ZodObject<{
174
+ enabled: z.ZodDefault<z.ZodBoolean>;
175
+ credentialId: z.ZodOptional<z.ZodString>;
176
+ }, z.core.$strip>>;
177
+ }, z.core.$strip>>>;
178
+ }, z.core.$strip>>;
179
+ theme: z.ZodOptional<z.ZodObject<{
180
+ colors: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
181
+ fonts: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
182
+ radii: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
183
+ spacing: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
184
+ }, z.core.$strip>>;
185
+ document: z.ZodType<import("./document.cjs").RootPageNode, unknown, z.core.$ZodTypeInternals<import("./document.cjs").RootPageNode, unknown>>;
186
+ }, z.core.$strip>>;
187
+ packageReference: z.ZodOptional<z.ZodObject<{
188
+ path: z.ZodOptional<z.ZodString>;
189
+ url: z.ZodOptional<z.ZodString>;
190
+ checksum: z.ZodOptional<z.ZodString>;
191
+ format: z.ZodDefault<z.ZodEnum<{
192
+ json: "json";
193
+ stora: "stora";
194
+ }>>;
195
+ }, z.core.$strip>>;
196
+ requirements: z.ZodDefault<z.ZodObject<{
197
+ requiredComponents: z.ZodDefault<z.ZodArray<z.ZodString>>;
198
+ requiredCapabilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
199
+ }, z.core.$strip>>;
200
+ createdAt: z.ZodOptional<z.ZodString>;
201
+ updatedAt: z.ZodOptional<z.ZodString>;
202
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
203
+ }, z.core.$strip>;
204
+ export type TemplateRecord = z.infer<typeof TemplateRecordSchema>;
205
+ /**
206
+ * Type guard for TemplateRecord
207
+ */
208
+ export declare function isTemplateRecord(value: unknown): value is TemplateRecord;
209
+ /**
210
+ * Type guard for SafeThumbnail
211
+ */
212
+ export declare function isSafeThumbnail(value: unknown): value is SafeThumbnail;
213
+ //# sourceMappingURL=template.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.cts","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAA4C,KAAK,cAAc,EAAqB,MAAM,eAAe,CAAC;AASjH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,aAGlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;iBAKpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;gCAI9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;iBAKnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { type AssetReference } from './document';
2
+ import { type AssetReference } from './document.js';
3
3
  /**
4
4
  * Validates a string as a safe URL or safe asset path.
5
5
  */
@@ -182,7 +182,7 @@ export declare const TemplateRecordSchema: z.ZodObject<{
182
182
  radii: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
183
183
  spacing: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
184
184
  }, z.core.$strip>>;
185
- document: z.ZodType<import("./document").RootPageNode, unknown, z.core.$ZodTypeInternals<import("./document").RootPageNode, unknown>>;
185
+ document: z.ZodType<import("./document.js").RootPageNode, unknown, z.core.$ZodTypeInternals<import("./document.js").RootPageNode, unknown>>;
186
186
  }, z.core.$strip>>;
187
187
  packageReference: z.ZodOptional<z.ZodObject<{
188
188
  path: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAA4C,KAAK,cAAc,EAAqB,MAAM,YAAY,CAAC;AAS9G;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,aAGlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;iBAKpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;gCAI9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;iBAKnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAA4C,KAAK,cAAc,EAAqB,MAAM,eAAe,CAAC;AASjH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,aAGlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;iBAKpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;gCAI9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;iBAKnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
@@ -0,0 +1,80 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Document Theme / Design Tokens (STORA-551)
4
+ *
5
+ * A theme is a small, portable set of named design tokens stored on the document
6
+ * (`PageDocument.theme`). The renderer emits every token as a CSS custom property on
7
+ * the page root, and node styles reference tokens with a plain CSS `var()` string:
8
+ *
9
+ * styles.base.backgroundColor = 'var(--kb-color-primary)'
10
+ *
11
+ * Because the reference is an ordinary CSS value it passes the existing style
12
+ * validation, renders unchanged in inline styles, generated CSS and exported HTML,
13
+ * and falls back gracefully (to the property's initial value) when a token is absent.
14
+ *
15
+ * Token groups map to custom-property prefixes:
16
+ * colors -> --kb-color-<key>
17
+ * fonts -> --kb-font-<key>
18
+ * radii -> --kb-radius-<key>
19
+ * spacing -> --kb-space-<key>
20
+ *
21
+ * Security: token keys are restricted to a safe identifier alphabet and token values
22
+ * are screened like style values, and additionally may not contain characters that can
23
+ * terminate a CSS declaration/rule or open markup (`; { } < > \`), since values end up
24
+ * inside a `<style>` block in generated HTML.
25
+ */
26
+ export declare const THEME_TOKEN_GROUPS: readonly ["colors", "fonts", "radii", "spacing"];
27
+ export type ThemeTokenGroup = (typeof THEME_TOKEN_GROUPS)[number];
28
+ /** CSS custom-property prefix per token group. */
29
+ export declare const THEME_TOKEN_CSS_PREFIX: Readonly<Record<ThemeTokenGroup, string>>;
30
+ /** True when `key` can be used as a theme token key (and custom-property suffix). */
31
+ export declare function isSafeThemeTokenKey(key: unknown): key is string;
32
+ /**
33
+ * True when `value` is safe to emit as a CSS custom-property value. Numbers are allowed
34
+ * (finite only); strings must be short and free of injection vectors.
35
+ */
36
+ export declare function isSafeThemeTokenValue(value: unknown): value is string | number;
37
+ export declare const ThemeTokenKeySchema: z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
38
+ export declare const ThemeTokenValueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
39
+ export type ThemeTokenValue = z.infer<typeof ThemeTokenValueSchema>;
40
+ export declare const ThemeTokenMapSchema: z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
41
+ export type ThemeTokenMap = Record<string, ThemeTokenValue>;
42
+ export declare const ThemeSchema: z.ZodObject<{
43
+ colors: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
44
+ fonts: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
45
+ radii: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
46
+ spacing: z.ZodOptional<z.ZodRecord<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
47
+ }, z.core.$strip>;
48
+ export type Theme = z.infer<typeof ThemeSchema>;
49
+ /**
50
+ * Builds the custom-property name for a token, e.g. `('colors', 'primary')` ->
51
+ * `--kb-color-primary`. Returns `null` for unsafe keys.
52
+ */
53
+ export declare function themeTokenCssVarName(group: ThemeTokenGroup, key: string): string | null;
54
+ /**
55
+ * Builds the style value that references a token, e.g. `var(--kb-color-primary)`.
56
+ * This is the canonical token reference format stored in node styles.
57
+ */
58
+ export declare function themeTokenRef(group: ThemeTokenGroup, key: string): string;
59
+ /**
60
+ * Parses a token reference style value back into `{ group, key }`, or `null` when the
61
+ * value is not a theme token reference.
62
+ */
63
+ export declare function parseThemeTokenRef(value: unknown): {
64
+ group: ThemeTokenGroup;
65
+ key: string;
66
+ } | null;
67
+ /**
68
+ * Merges theme layers left-to-right (later layers win per token). Used to apply a host
69
+ * runtime override on top of the document theme without mutating either. Unsafe tokens in
70
+ * any layer are skipped, so an invalid override never clobbers a valid lower-layer value.
71
+ */
72
+ export declare function mergeThemes(...layers: Array<Partial<Theme> | undefined | null>): Theme;
73
+ /**
74
+ * Flattens a theme into `[customPropertyName, value]` pairs, silently dropping any
75
+ * token whose key or value is unsafe. Safe to call on unvalidated input (e.g. a host
76
+ * runtime override), which is why it re-checks every entry.
77
+ */
78
+ export declare function themeToCssVariables(theme: Partial<Theme> | undefined | null): Array<[string, string]>;
79
+ export declare function isTheme(value: unknown): value is Theme;
80
+ //# sourceMappingURL=theme.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.cts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,eAAO,MAAM,kBAAkB,kDAAmD,CAAC;AAEnF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAK3E,CAAC;AAQH,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,CAO9E;AAED,eAAO,MAAM,mBAAmB,mFAG9B,CAAC;AAEH,eAAO,MAAM,qBAAqB,iDAOhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,mBAAmB,iJAAuD,CAAC;AAExF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE5D,eAAO,MAAM,WAAW;;;;;iBAKtB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMzE;AAWD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKjG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,CActF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,GACvC,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkBzB;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAEtD"}