@getvitops/generator 0.9.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1031 -0
- package/README.md +24 -5
- package/assets/bricks/elements/icon.php +102 -0
- package/assets/bricks/elements/split.php +8 -5
- package/assets/bricks/load.php +137 -1
- package/assets/css/animation.css +147 -36
- package/assets/css/global.css +19 -3
- package/assets/css/index.css +8 -0
- package/assets/css/layout-utilities.css +764 -0
- package/assets/css/layout.css +50 -584
- package/assets/css/patterns/carousel.css +3 -3
- package/assets/css/patterns/code.css +2 -2
- package/assets/css/patterns/combobox.css +3 -3
- package/assets/css/patterns/comment.css +1 -1
- package/assets/css/patterns/consent.css +117 -0
- package/assets/css/patterns/copy.css +3 -3
- package/assets/css/patterns/details.css +1 -1
- package/assets/css/patterns/dialog.css +2 -2
- package/assets/css/patterns/drawer.css +2 -2
- package/assets/css/patterns/forms.css +11 -11
- package/assets/css/patterns/grouped.css +1 -1
- package/assets/css/patterns/icon.css +2 -2
- package/assets/css/patterns/list.css +5 -5
- package/assets/css/patterns/media.css +1 -1
- package/assets/css/patterns/nav.css +5 -5
- package/assets/css/patterns/notification.css +3 -3
- package/assets/css/patterns/reveal.css +92 -0
- package/assets/css/patterns/scroll-based.css +1 -1
- package/assets/css/patterns/scroll-target.css +3 -3
- package/assets/css/patterns/sitenav.css +14 -14
- package/assets/css/patterns/split-link.css +4 -4
- package/assets/css/patterns/subgrid.css +7 -2
- package/assets/css/patterns/tag.css +1 -1
- package/assets/css/patterns/text-effects.css +1 -1
- package/assets/css/patterns/theme-editor.css +43 -6
- package/assets/css/patterns/tooltip.css +2 -2
- package/assets/css/patterns/tree.css +3 -3
- package/assets/css/utilities.css +19 -98
- package/assets/js/consent.js +1 -0
- package/assets/js/deferred.js +1 -1
- package/assets/js/editor.js +2 -2
- package/dist/index.d.mts +1218 -376
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +4384 -1784
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -3
- package/schema.json +54 -12
- package/site.schema.json +648 -458
package/dist/index.d.mts
CHANGED
|
@@ -1,25 +1,37 @@
|
|
|
1
1
|
import * as z from "zod/mini";
|
|
2
|
+
import { ContentNode } from "@getvitops/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/schema.d.ts
|
|
4
5
|
declare const DesignSystemSchema: z.ZodMiniObject<{
|
|
5
6
|
$schema: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
7
|
+
meta: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
8
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
9
|
+
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
10
|
+
}, z.z.core.$strict>>;
|
|
6
11
|
colors: z.ZodMiniObject<{
|
|
7
12
|
palette: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
8
13
|
seed: z.ZodMiniString<string>;
|
|
9
14
|
anchors: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
10
|
-
}, z.z.core.$
|
|
15
|
+
}, z.z.core.$strict>, z.ZodMiniObject<{
|
|
11
16
|
tones: z.ZodMiniUnion<readonly [z.ZodMiniArray<z.ZodMiniString<string>>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>;
|
|
12
|
-
}, z.z.core.$
|
|
13
|
-
roles: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string
|
|
17
|
+
}, z.z.core.$strict>]>>;
|
|
18
|
+
roles: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
19
|
+
hue: z.ZodMiniString<string>;
|
|
20
|
+
kind: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
21
|
+
surface: "surface";
|
|
22
|
+
chromatic: "chromatic";
|
|
23
|
+
}>>;
|
|
24
|
+
}, z.z.core.$strict>]>>;
|
|
14
25
|
utilities: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
15
26
|
bg: "bg";
|
|
16
27
|
text: "text";
|
|
28
|
+
icon: "icon";
|
|
17
29
|
border: "border";
|
|
18
30
|
outline: "outline";
|
|
19
31
|
fill: "fill";
|
|
20
32
|
stroke: "stroke";
|
|
21
33
|
}>>>;
|
|
22
|
-
}, z.z.core.$
|
|
34
|
+
}, z.z.core.$strict>;
|
|
23
35
|
shadows: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
24
36
|
fonts: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
25
37
|
typeScale: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
@@ -33,8 +45,8 @@ declare const DesignSystemSchema: z.ZodMiniObject<{
|
|
|
33
45
|
minVw: z.ZodMiniString<string>;
|
|
34
46
|
maxVw: z.ZodMiniString<string>;
|
|
35
47
|
minRatio: z.ZodMiniNumber<number>;
|
|
36
|
-
}, z.z.core.$
|
|
37
|
-
}, z.z.core.$
|
|
48
|
+
}, z.z.core.$strict>>;
|
|
49
|
+
}, z.z.core.$strict>>;
|
|
38
50
|
spaceScale: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
39
51
|
base: z.ZodMiniString<string>;
|
|
40
52
|
ratio: z.ZodMiniNumber<number>;
|
|
@@ -46,8 +58,8 @@ declare const DesignSystemSchema: z.ZodMiniObject<{
|
|
|
46
58
|
minVw: z.ZodMiniString<string>;
|
|
47
59
|
maxVw: z.ZodMiniString<string>;
|
|
48
60
|
minRatio: z.ZodMiniNumber<number>;
|
|
49
|
-
}, z.z.core.$
|
|
50
|
-
}, z.z.core.$
|
|
61
|
+
}, z.z.core.$strict>>;
|
|
62
|
+
}, z.z.core.$strict>>;
|
|
51
63
|
patterns: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
52
64
|
defaults: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
53
65
|
radii: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
@@ -63,25 +75,25 @@ declare const DesignSystemSchema: z.ZodMiniObject<{
|
|
|
63
75
|
base: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
64
76
|
states: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>>;
|
|
65
77
|
roles: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
66
|
-
}, z.z.core.$
|
|
67
|
-
}, z.z.core.$
|
|
78
|
+
}, z.z.core.$strict>>>;
|
|
79
|
+
}, z.z.core.$strict>>;
|
|
68
80
|
typography: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
69
81
|
families: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
70
82
|
roles: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>>;
|
|
71
83
|
headings: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
72
|
-
}, z.z.core.$
|
|
84
|
+
}, z.z.core.$strict>>;
|
|
73
85
|
animations: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
74
86
|
effects: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
75
87
|
kf: z.ZodMiniString<string>;
|
|
76
88
|
css: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>;
|
|
77
89
|
vars: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>;
|
|
78
|
-
}, z.z.core.$
|
|
90
|
+
}, z.z.core.$strict>>>;
|
|
79
91
|
journeys: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
80
92
|
base: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>>;
|
|
81
93
|
compose: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniArray<z.ZodMiniString<string>>>>;
|
|
82
|
-
}, z.z.core.$
|
|
83
|
-
}, z.z.core.$
|
|
84
|
-
}, z.z.core.$
|
|
94
|
+
}, z.z.core.$strict>>;
|
|
95
|
+
}, z.z.core.$strict>>;
|
|
96
|
+
}, z.z.core.$strict>;
|
|
85
97
|
type DesignSystem = z.infer<typeof DesignSystemSchema>;
|
|
86
98
|
/**
|
|
87
99
|
* Stable URL of the published JSON Schema. Resolves once `@getvitops/generator` is on
|
|
@@ -93,23 +105,34 @@ declare const SCHEMA_URL = "https://unpkg.com/@getvitops/generator/schema.json";
|
|
|
93
105
|
declare const jsonSchema: {
|
|
94
106
|
"~standard": z.z.core.ZodStandardSchemaWithJSON<z.ZodMiniObject<{
|
|
95
107
|
$schema: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
108
|
+
meta: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
109
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
110
|
+
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
111
|
+
}, z.z.core.$strict>>;
|
|
96
112
|
colors: z.ZodMiniObject<{
|
|
97
113
|
palette: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
98
114
|
seed: z.ZodMiniString<string>;
|
|
99
115
|
anchors: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
100
|
-
}, z.z.core.$
|
|
116
|
+
}, z.z.core.$strict>, z.ZodMiniObject<{
|
|
101
117
|
tones: z.ZodMiniUnion<readonly [z.ZodMiniArray<z.ZodMiniString<string>>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>;
|
|
102
|
-
}, z.z.core.$
|
|
103
|
-
roles: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string
|
|
118
|
+
}, z.z.core.$strict>]>>;
|
|
119
|
+
roles: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
120
|
+
hue: z.ZodMiniString<string>;
|
|
121
|
+
kind: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
122
|
+
surface: "surface";
|
|
123
|
+
chromatic: "chromatic";
|
|
124
|
+
}>>;
|
|
125
|
+
}, z.z.core.$strict>]>>;
|
|
104
126
|
utilities: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
105
127
|
bg: "bg";
|
|
106
128
|
text: "text";
|
|
129
|
+
icon: "icon";
|
|
107
130
|
border: "border";
|
|
108
131
|
outline: "outline";
|
|
109
132
|
fill: "fill";
|
|
110
133
|
stroke: "stroke";
|
|
111
134
|
}>>>;
|
|
112
|
-
}, z.z.core.$
|
|
135
|
+
}, z.z.core.$strict>;
|
|
113
136
|
shadows: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
114
137
|
fonts: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
115
138
|
typeScale: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
@@ -123,8 +146,8 @@ declare const jsonSchema: {
|
|
|
123
146
|
minVw: z.ZodMiniString<string>;
|
|
124
147
|
maxVw: z.ZodMiniString<string>;
|
|
125
148
|
minRatio: z.ZodMiniNumber<number>;
|
|
126
|
-
}, z.z.core.$
|
|
127
|
-
}, z.z.core.$
|
|
149
|
+
}, z.z.core.$strict>>;
|
|
150
|
+
}, z.z.core.$strict>>;
|
|
128
151
|
spaceScale: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
129
152
|
base: z.ZodMiniString<string>;
|
|
130
153
|
ratio: z.ZodMiniNumber<number>;
|
|
@@ -136,8 +159,8 @@ declare const jsonSchema: {
|
|
|
136
159
|
minVw: z.ZodMiniString<string>;
|
|
137
160
|
maxVw: z.ZodMiniString<string>;
|
|
138
161
|
minRatio: z.ZodMiniNumber<number>;
|
|
139
|
-
}, z.z.core.$
|
|
140
|
-
}, z.z.core.$
|
|
162
|
+
}, z.z.core.$strict>>;
|
|
163
|
+
}, z.z.core.$strict>>;
|
|
141
164
|
patterns: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
142
165
|
defaults: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
143
166
|
radii: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
@@ -153,25 +176,25 @@ declare const jsonSchema: {
|
|
|
153
176
|
base: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
154
177
|
states: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>>;
|
|
155
178
|
roles: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
156
|
-
}, z.z.core.$
|
|
157
|
-
}, z.z.core.$
|
|
179
|
+
}, z.z.core.$strict>>>;
|
|
180
|
+
}, z.z.core.$strict>>;
|
|
158
181
|
typography: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
159
182
|
families: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
160
183
|
roles: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>>;
|
|
161
184
|
headings: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
162
|
-
}, z.z.core.$
|
|
185
|
+
}, z.z.core.$strict>>;
|
|
163
186
|
animations: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
164
187
|
effects: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
165
188
|
kf: z.ZodMiniString<string>;
|
|
166
189
|
css: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>;
|
|
167
190
|
vars: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>;
|
|
168
|
-
}, z.z.core.$
|
|
191
|
+
}, z.z.core.$strict>>>;
|
|
169
192
|
journeys: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
170
193
|
base: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>>;
|
|
171
194
|
compose: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniArray<z.ZodMiniString<string>>>>;
|
|
172
|
-
}, z.z.core.$
|
|
173
|
-
}, z.z.core.$
|
|
174
|
-
}, z.z.core.$
|
|
195
|
+
}, z.z.core.$strict>>;
|
|
196
|
+
}, z.z.core.$strict>>;
|
|
197
|
+
}, z.z.core.$strict>>;
|
|
175
198
|
$schema?: "https://json-schema.org/draft/2020-12/schema" | "http://json-schema.org/draft-07/schema#" | "http://json-schema.org/draft-04/schema#";
|
|
176
199
|
$id: string;
|
|
177
200
|
$anchor?: string;
|
|
@@ -254,142 +277,91 @@ type ValidationResult = {
|
|
|
254
277
|
*/
|
|
255
278
|
declare function validate(input: unknown): ValidationResult;
|
|
256
279
|
//#endregion
|
|
257
|
-
//#region src/
|
|
258
|
-
declare const
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
/**
|
|
334
|
-
* Data shared between the generator (`generate.ts`) and the docs bundle
|
|
335
|
-
* (`docs.ts`). Lives in its own module because `generate.ts` imports `docs.ts` —
|
|
336
|
-
* importing back the other way would be a cycle.
|
|
337
|
-
*/
|
|
338
|
-
/**
|
|
339
|
-
* Selector the dark functional-token flip hangs off.
|
|
340
|
-
*
|
|
341
|
-
* `data-brx-theme` is Bricks' own attribute — Bricks sets it, so it's what the
|
|
342
|
-
* WordPress target needs. Nothing sets it anywhere else, which meant the dark
|
|
343
|
-
* flip was unreachable outside Bricks: the shipped `<color-scheme-toggle>` web
|
|
344
|
-
* component writes `documentElement.dataset.theme` (i.e. `data-theme`), so
|
|
345
|
-
* clicking "Dark" changed an attribute no rule matched. Matching both makes the
|
|
346
|
-
* component work on every target without changing what Bricks already does.
|
|
347
|
-
*
|
|
348
|
-
* Note this covers the explicit choice only — there is deliberately no
|
|
349
|
-
* `prefers-color-scheme` block, so the toggle's "System" position currently
|
|
350
|
-
* resolves to light. Adding one would flip every existing consumer site dark for
|
|
351
|
-
* dark-OS users, which is a product decision, not a bug fix.
|
|
352
|
-
*
|
|
353
|
-
* Shared so the docs quote the selector the generator actually emits.
|
|
354
|
-
*/
|
|
355
|
-
declare const DARK_SEL = ":root[data-brx-theme=\"dark\"], :root[data-theme=\"dark\"]";
|
|
356
|
-
/**
|
|
357
|
-
* Roles the shipped CSS partials reference with NO fallback, so a config that
|
|
358
|
-
* omits one leaves those rules resolving to nothing — an invalid declaration,
|
|
359
|
-
* not a graceful degrade.
|
|
360
|
-
*
|
|
361
|
-
* `colors.roles` is an open record: any name works and generates a full token
|
|
362
|
-
* set, utilities and dark flip. But the framework's own component CSS is
|
|
363
|
-
* written against these six, so "roles are arbitrary" is only half true — they
|
|
364
|
-
* are *extensible*, over a required core. `validate()` warns when one is
|
|
365
|
-
* missing; `required-roles.test.ts` re-derives this list from the partials so
|
|
366
|
-
* it cannot drift as components are added.
|
|
367
|
-
*
|
|
368
|
-
* Kept as a constant rather than scanned at call time because `validate()` is
|
|
369
|
-
* a pure function — the CLI, the Vite plugin and `toJSONSchema` all import it,
|
|
370
|
-
* and none of them should touch the filesystem to answer "is this config ok?".
|
|
371
|
-
*/
|
|
372
|
-
declare const REQUIRED_ROLES: readonly string[];
|
|
373
|
-
/**
|
|
374
|
-
* The functional-token and emphasis-stop suffixes a role resolves to. Shared so
|
|
375
|
-
* the required-roles drift test greps for exactly what the generator emits.
|
|
376
|
-
*/
|
|
377
|
-
declare const ROLE_TOKEN_SUFFIXES: readonly string[];
|
|
378
|
-
/**
|
|
379
|
-
* Pattern base geometry props → per-pattern override-hook shorthand. Each hook
|
|
380
|
-
* wraps the authored value (`padding: var(--p-btn, 0.4em 0.8em)`) so a
|
|
381
|
-
* consumer restyles one pattern by setting one variable. The hook is named after
|
|
382
|
-
* the pattern's key, not its class.
|
|
383
|
-
*/
|
|
384
|
-
declare const BASE_HOOK: Record<string, string>;
|
|
280
|
+
//#region src/site.d.ts
|
|
281
|
+
declare const PostalAddressSchema: z.ZodMiniObject<{
|
|
282
|
+
streetAddress: z.ZodMiniString<string>;
|
|
283
|
+
addressLocality: z.ZodMiniString<string>;
|
|
284
|
+
addressRegion: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
285
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
286
|
+
addressCountry: z.ZodMiniString<string>;
|
|
287
|
+
}, z.z.core.$strip>;
|
|
288
|
+
declare const ContactObjectSchema: z.ZodMiniObject<{
|
|
289
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
290
|
+
email: z.ZodMiniOptional<z.ZodMiniEmail>;
|
|
291
|
+
phone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
292
|
+
address: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
293
|
+
streetAddress: z.ZodMiniString<string>;
|
|
294
|
+
addressLocality: z.ZodMiniString<string>;
|
|
295
|
+
addressRegion: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
296
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
297
|
+
addressCountry: z.ZodMiniString<string>;
|
|
298
|
+
}, z.z.core.$strip>>;
|
|
299
|
+
}, z.z.core.$strip>;
|
|
300
|
+
type PostalAddress = z.infer<typeof PostalAddressSchema>;
|
|
301
|
+
type ContactObject = z.infer<typeof ContactObjectSchema>;
|
|
302
|
+
declare const SiteFontSchema: z.ZodMiniObject<{
|
|
303
|
+
name: z.ZodMiniString<string>;
|
|
304
|
+
provider: z.ZodMiniEnum<{
|
|
305
|
+
google: "google";
|
|
306
|
+
fontsource: "fontsource";
|
|
307
|
+
adobe: "adobe";
|
|
308
|
+
bunny: "bunny";
|
|
309
|
+
fontshare: "fontshare";
|
|
310
|
+
googleicons: "googleicons";
|
|
311
|
+
npm: "npm";
|
|
312
|
+
local: "local";
|
|
313
|
+
}>;
|
|
314
|
+
cssVariable: z.ZodMiniString<string>;
|
|
315
|
+
weights: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniNumber<number>, z.ZodMiniString<string>]>>>;
|
|
316
|
+
styles: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
317
|
+
normal: "normal";
|
|
318
|
+
italic: "italic";
|
|
319
|
+
}>>>;
|
|
320
|
+
subsets: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
321
|
+
fallbacks: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
322
|
+
optimizedFallbacks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
323
|
+
display: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
324
|
+
optional: "optional";
|
|
325
|
+
auto: "auto";
|
|
326
|
+
block: "block";
|
|
327
|
+
swap: "swap";
|
|
328
|
+
fallback: "fallback";
|
|
329
|
+
}>>;
|
|
330
|
+
formats: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
331
|
+
unicodeRange: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
332
|
+
variants: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
333
|
+
src: z.ZodMiniArray<z.ZodMiniString<string>>;
|
|
334
|
+
weight: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniNumber<number>, z.ZodMiniString<string>]>>;
|
|
335
|
+
style: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
336
|
+
normal: "normal";
|
|
337
|
+
italic: "italic";
|
|
338
|
+
}>>;
|
|
339
|
+
unicodeRange: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
340
|
+
display: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
341
|
+
optional: "optional";
|
|
342
|
+
auto: "auto";
|
|
343
|
+
block: "block";
|
|
344
|
+
swap: "swap";
|
|
345
|
+
fallback: "fallback";
|
|
346
|
+
}>>;
|
|
347
|
+
}, z.z.core.$strip>>>;
|
|
348
|
+
preload: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniArray<z.ZodMiniObject<{
|
|
349
|
+
weight: z.ZodMiniUnion<readonly [z.ZodMiniNumber<number>, z.ZodMiniString<string>]>;
|
|
350
|
+
style: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
351
|
+
normal: "normal";
|
|
352
|
+
italic: "italic";
|
|
353
|
+
}>>;
|
|
354
|
+
}, z.z.core.$strip>>]>>;
|
|
355
|
+
}, z.z.core.$strip>;
|
|
385
356
|
/**
|
|
386
|
-
*
|
|
387
|
-
*
|
|
388
|
-
*
|
|
357
|
+
* Which template set the generated legal documents are written against. This is
|
|
358
|
+
* a closed enum rather than a free string because an unrecognised value would
|
|
359
|
+
* otherwise silently fall back to the wrong body of law; `validateSite` rejects
|
|
360
|
+
* anything without a registered template. Add a member here and a matching entry
|
|
361
|
+
* in `legal/templates/index.ts` — the two are checked against each other.
|
|
389
362
|
*/
|
|
390
|
-
declare const
|
|
391
|
-
|
|
392
|
-
//#region src/site.d.ts
|
|
363
|
+
declare const JURISDICTIONS: readonly ["ca"];
|
|
364
|
+
type Jurisdiction = (typeof JURISDICTIONS)[number];
|
|
393
365
|
declare const SiteConfigSchema: z.ZodMiniObject<{
|
|
394
366
|
defaultLocale: z.ZodMiniString<string>;
|
|
395
367
|
locales: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
@@ -557,124 +529,137 @@ declare const SiteConfigSchema: z.ZodMiniObject<{
|
|
|
557
529
|
overrides: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
|
|
558
530
|
}, z.z.core.$strip>>>;
|
|
559
531
|
}, z.z.core.$strip>>;
|
|
560
|
-
designSystem: z.
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
}, z.z.core.$
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
532
|
+
designSystem: z.ZodMiniObject<{
|
|
533
|
+
themes: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
534
|
+
$schema: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniString<string>>>;
|
|
535
|
+
meta: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
536
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
537
|
+
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
538
|
+
}, z.z.core.$strict>>>;
|
|
539
|
+
shadows: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>>;
|
|
540
|
+
fonts: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>>;
|
|
541
|
+
typeScale: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
542
|
+
base: z.ZodMiniString<string>;
|
|
543
|
+
ratio: z.ZodMiniNumber<number>;
|
|
544
|
+
steps: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
545
|
+
names: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
546
|
+
baseStep: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
547
|
+
baseline: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
548
|
+
fluid: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
549
|
+
minVw: z.ZodMiniString<string>;
|
|
550
|
+
maxVw: z.ZodMiniString<string>;
|
|
551
|
+
minRatio: z.ZodMiniNumber<number>;
|
|
552
|
+
}, z.z.core.$strict>>;
|
|
553
|
+
}, z.z.core.$strict>>>;
|
|
554
|
+
spaceScale: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
555
|
+
base: z.ZodMiniString<string>;
|
|
556
|
+
ratio: z.ZodMiniNumber<number>;
|
|
557
|
+
steps: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
558
|
+
names: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
559
|
+
baseStep: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
560
|
+
baseline: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
561
|
+
fluid: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
562
|
+
minVw: z.ZodMiniString<string>;
|
|
563
|
+
maxVw: z.ZodMiniString<string>;
|
|
564
|
+
minRatio: z.ZodMiniNumber<number>;
|
|
565
|
+
}, z.z.core.$strict>>;
|
|
566
|
+
}, z.z.core.$strict>>>;
|
|
567
|
+
patterns: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
568
|
+
defaults: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
569
|
+
radii: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
570
|
+
groups: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>>;
|
|
571
|
+
z: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniNumber<number>>>;
|
|
572
|
+
items: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
573
|
+
group: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
574
|
+
overrides: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
575
|
+
element: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
576
|
+
class: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
577
|
+
fill: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
578
|
+
default_role: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
579
|
+
base: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
580
|
+
states: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>>;
|
|
581
|
+
roles: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
582
|
+
}, z.z.core.$strict>>>;
|
|
583
|
+
}, z.z.core.$strict>>>;
|
|
584
|
+
typography: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
585
|
+
families: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
586
|
+
roles: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>>;
|
|
587
|
+
headings: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
588
|
+
}, z.z.core.$strict>>>;
|
|
589
|
+
animations: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
590
|
+
effects: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
591
|
+
kf: z.ZodMiniString<string>;
|
|
592
|
+
css: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>;
|
|
593
|
+
vars: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>;
|
|
594
|
+
}, z.z.core.$strict>>>;
|
|
595
|
+
journeys: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
596
|
+
base: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>>;
|
|
597
|
+
compose: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniArray<z.ZodMiniString<string>>>>;
|
|
598
|
+
}, z.z.core.$strict>>;
|
|
599
|
+
}, z.z.core.$strict>>>;
|
|
600
|
+
colors: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
601
|
+
palette: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
602
|
+
seed: z.ZodMiniString<string>;
|
|
603
|
+
anchors: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
604
|
+
}, z.z.core.$strict>, z.ZodMiniObject<{
|
|
605
|
+
tones: z.ZodMiniUnion<readonly [z.ZodMiniArray<z.ZodMiniString<string>>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>;
|
|
606
|
+
}, z.z.core.$strict>]>>>;
|
|
607
|
+
roles: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
608
|
+
hue: z.ZodMiniString<string>;
|
|
609
|
+
kind: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
610
|
+
surface: "surface";
|
|
611
|
+
chromatic: "chromatic";
|
|
612
|
+
}>>;
|
|
613
|
+
}, z.z.core.$strict>]>>>;
|
|
614
|
+
utilities: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
615
|
+
bg: "bg";
|
|
616
|
+
text: "text";
|
|
617
|
+
icon: "icon";
|
|
618
|
+
border: "border";
|
|
619
|
+
outline: "outline";
|
|
620
|
+
fill: "fill";
|
|
621
|
+
stroke: "stroke";
|
|
622
|
+
}>>>;
|
|
623
|
+
}, z.z.core.$strict>>;
|
|
624
|
+
displayName: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
|
|
625
|
+
extends: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
626
|
+
}, z.z.core.$strict>>;
|
|
627
|
+
defaultTheme: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
628
|
+
defaultColorScheme: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
629
|
+
light: "light";
|
|
630
|
+
dark: "dark";
|
|
631
|
+
system: "system";
|
|
632
|
+
}>>;
|
|
633
|
+
}, z.z.core.$strict>;
|
|
634
|
+
fonts: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
635
|
+
name: z.ZodMiniString<string>;
|
|
636
|
+
provider: z.ZodMiniEnum<{
|
|
637
|
+
google: "google";
|
|
638
|
+
fontsource: "fontsource";
|
|
639
|
+
adobe: "adobe";
|
|
640
|
+
bunny: "bunny";
|
|
641
|
+
fontshare: "fontshare";
|
|
642
|
+
googleicons: "googleicons";
|
|
643
|
+
npm: "npm";
|
|
644
|
+
local: "local";
|
|
645
|
+
}>;
|
|
646
|
+
cssVariable: z.ZodMiniString<string>;
|
|
647
|
+
weights: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniNumber<number>, z.ZodMiniString<string>]>>>;
|
|
648
|
+
styles: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
649
|
+
normal: "normal";
|
|
650
|
+
italic: "italic";
|
|
651
|
+
}>>>;
|
|
652
|
+
subsets: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
653
|
+
fallbacks: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
654
|
+
optimizedFallbacks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
655
|
+
display: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
656
|
+
optional: "optional";
|
|
657
|
+
auto: "auto";
|
|
658
|
+
block: "block";
|
|
659
|
+
swap: "swap";
|
|
660
|
+
fallback: "fallback";
|
|
661
|
+
}>>;
|
|
662
|
+
formats: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
678
663
|
unicodeRange: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
679
664
|
variants: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
680
665
|
src: z.ZodMiniArray<z.ZodMiniString<string>>;
|
|
@@ -816,6 +801,12 @@ declare const SiteConfigSchema: z.ZodMiniObject<{
|
|
|
816
801
|
googleAnalyticsId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
817
802
|
plausibleDomain: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
818
803
|
googleTagManagerId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
804
|
+
clarityId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
805
|
+
matomo: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
806
|
+
url: z.ZodMiniString<string>;
|
|
807
|
+
siteId: z.ZodMiniString<string>;
|
|
808
|
+
cookies: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
809
|
+
}, z.z.core.$strip>>;
|
|
819
810
|
}, z.z.core.$strip>>;
|
|
820
811
|
notifications: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
821
812
|
email: z.ZodMiniOptional<z.ZodMiniEmail>;
|
|
@@ -830,15 +821,38 @@ declare const SiteConfigSchema: z.ZodMiniObject<{
|
|
|
830
821
|
}, z.z.core.$strip>>;
|
|
831
822
|
}, z.z.core.$strip>>;
|
|
832
823
|
legal: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
824
|
+
jurisdiction: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
825
|
+
ca: "ca";
|
|
826
|
+
}>>;
|
|
833
827
|
privacyPolicy: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
834
828
|
enabled: z.ZodMiniBoolean<boolean>;
|
|
835
829
|
url: z.ZodMiniOptional<z.ZodMiniURL>;
|
|
836
830
|
lastUpdated: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
831
|
+
privacyOfficer: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
832
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
833
|
+
email: z.ZodMiniOptional<z.ZodMiniEmail>;
|
|
834
|
+
phone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
835
|
+
address: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
836
|
+
streetAddress: z.ZodMiniString<string>;
|
|
837
|
+
addressLocality: z.ZodMiniString<string>;
|
|
838
|
+
addressRegion: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
839
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
840
|
+
addressCountry: z.ZodMiniString<string>;
|
|
841
|
+
}, z.z.core.$strip>>;
|
|
842
|
+
}, z.z.core.$strip>]>>;
|
|
843
|
+
retention: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
844
|
+
processors: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
845
|
+
name: z.ZodMiniString<string>;
|
|
846
|
+
purpose: z.ZodMiniString<string>;
|
|
847
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
848
|
+
privacyUrl: z.ZodMiniOptional<z.ZodMiniURL>;
|
|
849
|
+
}, z.z.core.$strip>>>;
|
|
837
850
|
}, z.z.core.$strip>>;
|
|
838
851
|
termsOfService: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
839
852
|
enabled: z.ZodMiniBoolean<boolean>;
|
|
840
853
|
url: z.ZodMiniOptional<z.ZodMiniURL>;
|
|
841
854
|
lastUpdated: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
|
|
855
|
+
governingLaw: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
842
856
|
}, z.z.core.$strip>>;
|
|
843
857
|
cookieConsent: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
844
858
|
enabled: z.ZodMiniBoolean<boolean>;
|
|
@@ -857,6 +871,8 @@ declare const SiteConfigSchema: z.ZodMiniObject<{
|
|
|
857
871
|
icons: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
858
872
|
ui: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
859
873
|
brand: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
874
|
+
weight: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
875
|
+
sprite: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
860
876
|
semantic: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
861
877
|
'fa7-solid': z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
862
878
|
'fa7-regular': z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
@@ -866,7 +882,8 @@ declare const SiteConfigSchema: z.ZodMiniObject<{
|
|
|
866
882
|
'simple-icons': z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
867
883
|
'material-symbols': z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
868
884
|
lucide: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
869
|
-
|
|
885
|
+
ph: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
886
|
+
}, z.z.core.$loose>>;
|
|
870
887
|
favicon: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
871
888
|
source: z.ZodMiniString<string>;
|
|
872
889
|
lowResSource: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
@@ -883,6 +900,8 @@ declare const SiteConfigSchema: z.ZodMiniObject<{
|
|
|
883
900
|
}, z.z.core.$strip>>;
|
|
884
901
|
}, z.z.core.$strip>;
|
|
885
902
|
type SiteConfig = z.infer<typeof SiteConfigSchema>;
|
|
903
|
+
/** One `fonts[]` entry — a serialisable projection of an Astro Fonts API family. */
|
|
904
|
+
type SiteFont = z.infer<typeof SiteFontSchema>;
|
|
886
905
|
declare const SITE_SCHEMA_URL = "https://unpkg.com/@getvitops/generator/site.schema.json";
|
|
887
906
|
/** The published JSON Schema (draft-2020-12), derived from the zod schema. */
|
|
888
907
|
declare const siteJsonSchema: {
|
|
@@ -1053,95 +1072,108 @@ declare const siteJsonSchema: {
|
|
|
1053
1072
|
overrides: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
|
|
1054
1073
|
}, z.z.core.$strip>>>;
|
|
1055
1074
|
}, z.z.core.$strip>>;
|
|
1056
|
-
designSystem: z.
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
}, z.z.core.$
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1075
|
+
designSystem: z.ZodMiniObject<{
|
|
1076
|
+
themes: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
1077
|
+
$schema: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniString<string>>>;
|
|
1078
|
+
meta: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1079
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1080
|
+
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1081
|
+
}, z.z.core.$strict>>>;
|
|
1082
|
+
shadows: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>>;
|
|
1083
|
+
fonts: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>>;
|
|
1084
|
+
typeScale: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1085
|
+
base: z.ZodMiniString<string>;
|
|
1086
|
+
ratio: z.ZodMiniNumber<number>;
|
|
1087
|
+
steps: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
1088
|
+
names: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1089
|
+
baseStep: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
1090
|
+
baseline: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1091
|
+
fluid: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1092
|
+
minVw: z.ZodMiniString<string>;
|
|
1093
|
+
maxVw: z.ZodMiniString<string>;
|
|
1094
|
+
minRatio: z.ZodMiniNumber<number>;
|
|
1095
|
+
}, z.z.core.$strict>>;
|
|
1096
|
+
}, z.z.core.$strict>>>;
|
|
1097
|
+
spaceScale: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1098
|
+
base: z.ZodMiniString<string>;
|
|
1099
|
+
ratio: z.ZodMiniNumber<number>;
|
|
1100
|
+
steps: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
1101
|
+
names: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1102
|
+
baseStep: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
1103
|
+
baseline: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1104
|
+
fluid: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1105
|
+
minVw: z.ZodMiniString<string>;
|
|
1106
|
+
maxVw: z.ZodMiniString<string>;
|
|
1107
|
+
minRatio: z.ZodMiniNumber<number>;
|
|
1108
|
+
}, z.z.core.$strict>>;
|
|
1109
|
+
}, z.z.core.$strict>>>;
|
|
1110
|
+
patterns: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1111
|
+
defaults: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
1112
|
+
radii: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
1113
|
+
groups: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>>;
|
|
1114
|
+
z: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniNumber<number>>>;
|
|
1115
|
+
items: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
1116
|
+
group: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1117
|
+
overrides: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
1118
|
+
element: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1119
|
+
class: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1120
|
+
fill: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
1121
|
+
default_role: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1122
|
+
base: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
1123
|
+
states: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>>;
|
|
1124
|
+
roles: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1125
|
+
}, z.z.core.$strict>>>;
|
|
1126
|
+
}, z.z.core.$strict>>>;
|
|
1127
|
+
typography: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1128
|
+
families: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
1129
|
+
roles: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>>;
|
|
1130
|
+
headings: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
1131
|
+
}, z.z.core.$strict>>>;
|
|
1132
|
+
animations: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1133
|
+
effects: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
1134
|
+
kf: z.ZodMiniString<string>;
|
|
1135
|
+
css: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>;
|
|
1136
|
+
vars: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>;
|
|
1137
|
+
}, z.z.core.$strict>>>;
|
|
1138
|
+
journeys: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1139
|
+
base: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>]>>>>;
|
|
1140
|
+
compose: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniArray<z.ZodMiniString<string>>>>;
|
|
1141
|
+
}, z.z.core.$strict>>;
|
|
1142
|
+
}, z.z.core.$strict>>>;
|
|
1143
|
+
colors: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1144
|
+
palette: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
1145
|
+
seed: z.ZodMiniString<string>;
|
|
1146
|
+
anchors: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
1147
|
+
}, z.z.core.$strict>, z.ZodMiniObject<{
|
|
1148
|
+
tones: z.ZodMiniUnion<readonly [z.ZodMiniArray<z.ZodMiniString<string>>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>;
|
|
1149
|
+
}, z.z.core.$strict>]>>>;
|
|
1150
|
+
roles: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
1151
|
+
hue: z.ZodMiniString<string>;
|
|
1152
|
+
kind: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
1153
|
+
surface: "surface";
|
|
1154
|
+
chromatic: "chromatic";
|
|
1155
|
+
}>>;
|
|
1156
|
+
}, z.z.core.$strict>]>>>;
|
|
1157
|
+
utilities: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
1158
|
+
bg: "bg";
|
|
1159
|
+
text: "text";
|
|
1160
|
+
icon: "icon";
|
|
1161
|
+
border: "border";
|
|
1162
|
+
outline: "outline";
|
|
1163
|
+
fill: "fill";
|
|
1164
|
+
stroke: "stroke";
|
|
1165
|
+
}>>>;
|
|
1166
|
+
}, z.z.core.$strict>>;
|
|
1167
|
+
displayName: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
|
|
1168
|
+
extends: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1169
|
+
}, z.z.core.$strict>>;
|
|
1170
|
+
defaultTheme: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1171
|
+
defaultColorScheme: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
1172
|
+
light: "light";
|
|
1173
|
+
dark: "dark";
|
|
1174
|
+
system: "system";
|
|
1175
|
+
}>>;
|
|
1176
|
+
}, z.z.core.$strict>;
|
|
1145
1177
|
fonts: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
1146
1178
|
name: z.ZodMiniString<string>;
|
|
1147
1179
|
provider: z.ZodMiniEnum<{
|
|
@@ -1312,6 +1344,12 @@ declare const siteJsonSchema: {
|
|
|
1312
1344
|
googleAnalyticsId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1313
1345
|
plausibleDomain: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1314
1346
|
googleTagManagerId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1347
|
+
clarityId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1348
|
+
matomo: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1349
|
+
url: z.ZodMiniString<string>;
|
|
1350
|
+
siteId: z.ZodMiniString<string>;
|
|
1351
|
+
cookies: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
1352
|
+
}, z.z.core.$strip>>;
|
|
1315
1353
|
}, z.z.core.$strip>>;
|
|
1316
1354
|
notifications: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1317
1355
|
email: z.ZodMiniOptional<z.ZodMiniEmail>;
|
|
@@ -1326,15 +1364,38 @@ declare const siteJsonSchema: {
|
|
|
1326
1364
|
}, z.z.core.$strip>>;
|
|
1327
1365
|
}, z.z.core.$strip>>;
|
|
1328
1366
|
legal: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1367
|
+
jurisdiction: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
1368
|
+
ca: "ca";
|
|
1369
|
+
}>>;
|
|
1329
1370
|
privacyPolicy: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1330
1371
|
enabled: z.ZodMiniBoolean<boolean>;
|
|
1331
1372
|
url: z.ZodMiniOptional<z.ZodMiniURL>;
|
|
1332
1373
|
lastUpdated: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1374
|
+
privacyOfficer: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
|
|
1375
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1376
|
+
email: z.ZodMiniOptional<z.ZodMiniEmail>;
|
|
1377
|
+
phone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1378
|
+
address: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1379
|
+
streetAddress: z.ZodMiniString<string>;
|
|
1380
|
+
addressLocality: z.ZodMiniString<string>;
|
|
1381
|
+
addressRegion: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1382
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1383
|
+
addressCountry: z.ZodMiniString<string>;
|
|
1384
|
+
}, z.z.core.$strip>>;
|
|
1385
|
+
}, z.z.core.$strip>]>>;
|
|
1386
|
+
retention: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1387
|
+
processors: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
1388
|
+
name: z.ZodMiniString<string>;
|
|
1389
|
+
purpose: z.ZodMiniString<string>;
|
|
1390
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1391
|
+
privacyUrl: z.ZodMiniOptional<z.ZodMiniURL>;
|
|
1392
|
+
}, z.z.core.$strip>>>;
|
|
1333
1393
|
}, z.z.core.$strip>>;
|
|
1334
1394
|
termsOfService: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1335
1395
|
enabled: z.ZodMiniBoolean<boolean>;
|
|
1336
1396
|
url: z.ZodMiniOptional<z.ZodMiniURL>;
|
|
1337
1397
|
lastUpdated: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
|
|
1398
|
+
governingLaw: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1338
1399
|
}, z.z.core.$strip>>;
|
|
1339
1400
|
cookieConsent: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1340
1401
|
enabled: z.ZodMiniBoolean<boolean>;
|
|
@@ -1353,6 +1414,8 @@ declare const siteJsonSchema: {
|
|
|
1353
1414
|
icons: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1354
1415
|
ui: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1355
1416
|
brand: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1417
|
+
weight: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
1418
|
+
sprite: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
1356
1419
|
semantic: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1357
1420
|
'fa7-solid': z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1358
1421
|
'fa7-regular': z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
@@ -1362,7 +1425,8 @@ declare const siteJsonSchema: {
|
|
|
1362
1425
|
'simple-icons': z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1363
1426
|
'material-symbols': z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1364
1427
|
lucide: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1365
|
-
|
|
1428
|
+
ph: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
1429
|
+
}, z.z.core.$loose>>;
|
|
1366
1430
|
favicon: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
1367
1431
|
source: z.ZodMiniString<string>;
|
|
1368
1432
|
lowResSource: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
@@ -1455,6 +1519,15 @@ type SiteValidationResult = {
|
|
|
1455
1519
|
* These live only here — the published JSON Schema enforces shape, not integrity.
|
|
1456
1520
|
*/
|
|
1457
1521
|
declare function validateSite(input: unknown): SiteValidationResult;
|
|
1522
|
+
/**
|
|
1523
|
+
* Resolve who privacy requests go to: the explicit privacy officer, else the
|
|
1524
|
+
* site contact, else the primary location, else the organization itself.
|
|
1525
|
+
*
|
|
1526
|
+
* Exported because `validateSite` and the legal-document derivation must agree
|
|
1527
|
+
* on it exactly — a config that validates must be one the policy can render, and
|
|
1528
|
+
* two copies of this precedence would drift into a policy with a blank address.
|
|
1529
|
+
*/
|
|
1530
|
+
declare function resolvePrivacyContact(cfg: SiteConfig): ContactObject | undefined;
|
|
1458
1531
|
type DesignSystemEntryT = Partial<DesignSystem> & {
|
|
1459
1532
|
displayName?: unknown;
|
|
1460
1533
|
extends?: string;
|
|
@@ -1469,17 +1542,786 @@ declare function resolveTheme(designSystem: Record<string, DesignSystemEntryT>,
|
|
|
1469
1542
|
/**
|
|
1470
1543
|
* Resolve a raw (already-parsed) config into a validated `SiteConfig`:
|
|
1471
1544
|
* 1. strip YAML nulls,
|
|
1472
|
-
* 2.
|
|
1473
|
-
* 3.
|
|
1545
|
+
* 2. normalise the `designSystem` shorthands to `{ themes: … }`,
|
|
1546
|
+
* 3. apply the active A/B variant's `overrides` (by `siteEnv`),
|
|
1474
1547
|
* 4. validate (shape + cross-field).
|
|
1475
1548
|
* Pure — no YAML/env access. A loader supplies `siteEnv`.
|
|
1549
|
+
*
|
|
1550
|
+
* Steps 2 and 3 are in this order deliberately. Normalising first means an
|
|
1551
|
+
* `abTesting` override always addresses the canonical shape
|
|
1552
|
+
* (`designSystem.themes.<name>`), whatever shorthand the base config used. With
|
|
1553
|
+
* the merge first, an override's key path depended on how the base happened to be
|
|
1554
|
+
* written — so the same patch hit a different place in two configs that were
|
|
1555
|
+
* otherwise equivalent.
|
|
1476
1556
|
*/
|
|
1477
1557
|
declare function resolveSiteConfig(input: unknown, siteEnv?: string): SiteConfig;
|
|
1558
|
+
/**
|
|
1559
|
+
* Is this raw config a `SiteConfig` rather than a bare `design-system.json`?
|
|
1560
|
+
*
|
|
1561
|
+
* The discriminator is **total**, not a heuristic, and both halves are load-
|
|
1562
|
+
* bearing: `SiteConfigSchema` cannot validate without a `designSystem` (a config
|
|
1563
|
+
* lacking one fails `validateSite` with `themes must include a "default" entry`),
|
|
1564
|
+
* and `DesignSystemSchema` is strict, so a `designSystem` key in a design system
|
|
1565
|
+
* is an `unrecognized_keys` error. No document can be read as both, and no
|
|
1566
|
+
* document that is neither reaches here without failing validation anyway.
|
|
1567
|
+
*
|
|
1568
|
+
* Deliberately shape-based rather than filename-based: consumers name this file
|
|
1569
|
+
* whatever suits them (`company.json`, `site.json`, `vitops.config.json`), and a
|
|
1570
|
+
* rule keyed to a name would silently stop working the moment someone renamed it.
|
|
1571
|
+
*/
|
|
1572
|
+
declare function isSiteConfig(raw: unknown): boolean;
|
|
1573
|
+
/** What a config file turned out to hold. */
|
|
1574
|
+
interface ResolvedInput {
|
|
1575
|
+
/** The design system to build from — a resolved theme, if the input was a `SiteConfig`. */
|
|
1576
|
+
designSystem: DesignSystem;
|
|
1577
|
+
/** The site config, when that is what the input was. */
|
|
1578
|
+
site?: SiteConfig;
|
|
1579
|
+
/** Which `themes` key was selected. Absent for a bare `design-system.json`. */
|
|
1580
|
+
theme?: string;
|
|
1581
|
+
}
|
|
1582
|
+
/**
|
|
1583
|
+
* Resolve a raw config of either kind into the design system to build from.
|
|
1584
|
+
*
|
|
1585
|
+
* Every entry point that used to take a `design-system.json` goes through this,
|
|
1586
|
+
* so a consumer who keeps their tokens inside the larger site config points the
|
|
1587
|
+
* same option at that file instead of maintaining a second one. The site config
|
|
1588
|
+
* is handed back too, because the parts of generation that depend on site-level
|
|
1589
|
+
* facts (`designSystem.defaultColorScheme`, the legal documents, the icon
|
|
1590
|
+
* sprite) would otherwise need the same path declared a second time.
|
|
1591
|
+
*
|
|
1592
|
+
* The returned `designSystem` is **not** validated here — the caller does that,
|
|
1593
|
+
* so it can say which file and which theme the errors belong to. Validation of
|
|
1594
|
+
* the site config itself has already happened (`resolveSiteConfig` throws).
|
|
1595
|
+
*/
|
|
1596
|
+
declare function resolveInput(raw: unknown, opts?: {
|
|
1597
|
+
theme?: string;
|
|
1598
|
+
siteEnv?: string;
|
|
1599
|
+
}): ResolvedInput;
|
|
1478
1600
|
/** Strip nulls (YAML `~`/`null`) → undefined so optional fields validate. */
|
|
1479
1601
|
declare function stripNulls(obj: unknown): unknown;
|
|
1480
1602
|
/** Deep-merge `source` into `target` (in place). Arrays replace wholesale. */
|
|
1481
1603
|
declare function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): void;
|
|
1482
1604
|
//#endregion
|
|
1605
|
+
//#region src/tokens.d.ts
|
|
1606
|
+
declare const NUMERIC_STEPS: readonly ["50", "100", "200", "300", "400", "500", "600", "700", "800", "900", "950"];
|
|
1607
|
+
type NumStep = (typeof NUMERIC_STEPS)[number];
|
|
1608
|
+
interface ExpandedHue {
|
|
1609
|
+
/** Numeric steps (sparse for fixed-tone kits). */
|
|
1610
|
+
numeric: Partial<Record<NumStep, string>>;
|
|
1611
|
+
/** True when only authored tones + endpoints exist (no interpolation). */
|
|
1612
|
+
sparse?: boolean;
|
|
1613
|
+
/**
|
|
1614
|
+
* Steps the author pinned, and how far each sits from the ladder's lightness.
|
|
1615
|
+
* A pinned colour is reproduced exactly, so a large value here is legal — but
|
|
1616
|
+
* it means this hue reads heavier or lighter than its siblings at that step,
|
|
1617
|
+
* which the generator surfaces as a warning.
|
|
1618
|
+
*/
|
|
1619
|
+
deviations?: Partial<Record<NumStep, number>>;
|
|
1620
|
+
}
|
|
1621
|
+
/** Expand every palette hue into its numeric scale. */
|
|
1622
|
+
declare function expandPalette(raw: Record<string, unknown>): Record<string, ExpandedHue>;
|
|
1623
|
+
/** Which shape of token set a role gets. */
|
|
1624
|
+
type RoleKind = 'surface' | 'chromatic';
|
|
1625
|
+
/**
|
|
1626
|
+
* Map a token key to its CSS custom property for a given role.
|
|
1627
|
+
*
|
|
1628
|
+
* `on` is the one irregular case: the foreground for a filled surface reads
|
|
1629
|
+
* `--color-text-on-<role>`, with the role *after* `on`, because it names what it
|
|
1630
|
+
* sits on rather than what it is.
|
|
1631
|
+
*
|
|
1632
|
+
* The utility class name is this minus the `--color-` prefix, which is why the
|
|
1633
|
+
* emitter and the linter can both derive their vocabulary from one function.
|
|
1634
|
+
*/
|
|
1635
|
+
declare function tokenVar(role: string, key: string): string;
|
|
1636
|
+
/** The class name a token key produces for a role (`bg-danger-solid`, …). */
|
|
1637
|
+
declare const tokenClass: (role: string, key: string) => string;
|
|
1638
|
+
interface FunctionalRole {
|
|
1639
|
+
role: string;
|
|
1640
|
+
hue: string;
|
|
1641
|
+
kind: RoleKind;
|
|
1642
|
+
/** token key → CSS value, per appearance. */
|
|
1643
|
+
light: Record<string, string>;
|
|
1644
|
+
dark: Record<string, string>;
|
|
1645
|
+
}
|
|
1646
|
+
/** Resolve the token set for one role over its hue. */
|
|
1647
|
+
declare function functionalRole(role: string, hueName: string, hue: ExpandedHue, kind?: RoleKind): FunctionalRole;
|
|
1648
|
+
/**
|
|
1649
|
+
* APCA targets. `TEXT` is the body-text bar; `SECONDARY` covers text on a
|
|
1650
|
+
* non-primary surface and de-emphasised text. `NON_TEXT` is the icon/boundary
|
|
1651
|
+
* tier — the APCA analogue of WCAG's 3:1, where a glyph may run more vivid than
|
|
1652
|
+
* text because shape carries meaning alongside contrast.
|
|
1653
|
+
*/
|
|
1654
|
+
declare const CONTRAST: {
|
|
1655
|
+
readonly TEXT: 75;
|
|
1656
|
+
readonly SECONDARY: 60;
|
|
1657
|
+
readonly NON_TEXT: 45;
|
|
1658
|
+
};
|
|
1659
|
+
//#endregion
|
|
1660
|
+
//#region src/generate.d.ts
|
|
1661
|
+
type Format = 'bricks' | 'css' | 'tailwind' | 'design';
|
|
1662
|
+
/**
|
|
1663
|
+
* Formats that emit a stylesheet. `design` is the odd one out — it emits a
|
|
1664
|
+
* single `DESIGN.md` brief and no CSS at all — so anything that expects to
|
|
1665
|
+
* import the generator's output (the Vite plugin's injected stylesheet, the
|
|
1666
|
+
* Astro integration) types against this narrower set.
|
|
1667
|
+
*/
|
|
1668
|
+
type StylesheetFormat = Exclude<Format, 'design'>;
|
|
1669
|
+
interface GenerateOptions {
|
|
1670
|
+
/**
|
|
1671
|
+
* The config to build from — a path, or an already-parsed object.
|
|
1672
|
+
*
|
|
1673
|
+
* **Either kind is accepted.** A bare `design-system.json`, or the larger
|
|
1674
|
+
* `SiteConfig` that embeds one (commonly `company.json` / `site.json`), in
|
|
1675
|
+
* which case the design system is `designSystem.themes[theme]` with its
|
|
1676
|
+
* `extends` chain resolved. The two are told apart by shape, not by filename —
|
|
1677
|
+
* see `isSiteConfig`.
|
|
1678
|
+
*
|
|
1679
|
+
* Passing a site config here also supplies `site`, so the site-level facts
|
|
1680
|
+
* generation depends on (`designSystem.defaultColorScheme`, the legal
|
|
1681
|
+
* documents, the icon sprite) don't need the same path declared twice. Each of
|
|
1682
|
+
* those is still gated on a field in that config, so nothing new appears
|
|
1683
|
+
* unless the config asks for it.
|
|
1684
|
+
*/
|
|
1685
|
+
input: string | DesignSystem | SiteConfig;
|
|
1686
|
+
/** Output target. Default: 'bricks'. */
|
|
1687
|
+
format?: Format;
|
|
1688
|
+
/** Directory to write outputs into. Default: 'dist'. */
|
|
1689
|
+
outDir?: string;
|
|
1690
|
+
/** Override the framework asset root (advanced/testing). */
|
|
1691
|
+
assetsDir?: string;
|
|
1692
|
+
/**
|
|
1693
|
+
* Which `designSystem.themes` entry to build. Default: the config's
|
|
1694
|
+
* `defaultTheme`, else `default`. An error on a bare `design-system.json`,
|
|
1695
|
+
* which holds one design system and no themes map.
|
|
1696
|
+
*/
|
|
1697
|
+
theme?: string;
|
|
1698
|
+
/**
|
|
1699
|
+
* Environment whose A/B variant applies to the site config, wherever it came
|
|
1700
|
+
* from (`input` or `site`). Default: `'production'`.
|
|
1701
|
+
*/
|
|
1702
|
+
siteEnv?: string;
|
|
1703
|
+
/**
|
|
1704
|
+
* The site config, when it is a *different* file from `input` — enabling
|
|
1705
|
+
* legal-document output into `<outDir>/legal/*.html` and supplying
|
|
1706
|
+
* `designSystem.defaultColorScheme`.
|
|
1707
|
+
*
|
|
1708
|
+
* Redundant when `input` is already a site config; set both and this one wins.
|
|
1709
|
+
*/
|
|
1710
|
+
site?: string | SiteConfig;
|
|
1711
|
+
/**
|
|
1712
|
+
* Emit the `prefers-color-scheme: dark` block (see `BuildOptions`).
|
|
1713
|
+
*
|
|
1714
|
+
* Normally this comes from the site config's `designSystem.defaultColorScheme: "system"`, which
|
|
1715
|
+
* is where the fact belongs. This is the escape hatch for consumers with a
|
|
1716
|
+
* `design-system.json` and no site config at all: requiring a whole
|
|
1717
|
+
* `SiteConfig` — which must carry a full `designSystem` — to set one boolean
|
|
1718
|
+
* would be out of proportion. Set explicitly, it wins over the site config.
|
|
1719
|
+
*/
|
|
1720
|
+
systemColorScheme?: boolean;
|
|
1721
|
+
}
|
|
1722
|
+
interface GenerateResult {
|
|
1723
|
+
format: Format;
|
|
1724
|
+
outDir: string;
|
|
1725
|
+
written: string[];
|
|
1726
|
+
}
|
|
1727
|
+
interface ColorUtility {
|
|
1728
|
+
/** Class name, without the leading dot. */
|
|
1729
|
+
cls: string;
|
|
1730
|
+
/** CSS property the class sets. */
|
|
1731
|
+
prop: string;
|
|
1732
|
+
/** `var(--…)` reference the class resolves to. */
|
|
1733
|
+
value: string;
|
|
1734
|
+
}
|
|
1735
|
+
/**
|
|
1736
|
+
* Every role colour utility, each class name emitted EXACTLY once.
|
|
1737
|
+
*
|
|
1738
|
+
* There is now a single axis. The target lives *inside* the token name, so
|
|
1739
|
+
* `bg-danger-muted` and `text-danger-muted` are different tokens and the
|
|
1740
|
+
* collision the old plane/stop precedence rule existed to arbitrate cannot
|
|
1741
|
+
* arise. Both the css/bricks and tailwind paths render from this one list, which
|
|
1742
|
+
* is what keeps the three formats in step; `format-parity.test.ts` holds them
|
|
1743
|
+
* there.
|
|
1744
|
+
*
|
|
1745
|
+
* The class name IS the token name minus `--color-`, so there is no separate
|
|
1746
|
+
* naming rule to drift — see `tokenClass` in tokens.ts.
|
|
1747
|
+
*/
|
|
1748
|
+
declare function roleColorUtilities(roles: readonly FunctionalRole[], utilities: readonly string[]): ColorUtility[];
|
|
1749
|
+
declare function generate(options: GenerateOptions): Promise<GenerateResult>;
|
|
1750
|
+
//#endregion
|
|
1751
|
+
//#region src/docs.d.ts
|
|
1752
|
+
/**
|
|
1753
|
+
* Build the OKF docs bundle for a config. Returns a `{ relPath: content }` map;
|
|
1754
|
+
* the caller writes it wherever the bundle should live (e.g. `<outDir>/docs`).
|
|
1755
|
+
*/
|
|
1756
|
+
declare function generateDocs(ds: DesignSystem, assetsDir: string): Record<string, string>;
|
|
1757
|
+
//#endregion
|
|
1758
|
+
//#region ../../node_modules/.pnpm/@iconify+types@2.0.0/node_modules/@iconify/types/types.d.ts
|
|
1759
|
+
/**
|
|
1760
|
+
* Icon dimensions.
|
|
1761
|
+
*
|
|
1762
|
+
* Used in:
|
|
1763
|
+
* icon (as is)
|
|
1764
|
+
* alias (overwrite icon's properties)
|
|
1765
|
+
* root of JSON file (default values)
|
|
1766
|
+
*/
|
|
1767
|
+
interface IconifyDimenisons {
|
|
1768
|
+
// Left position of viewBox.
|
|
1769
|
+
// Defaults to 0.
|
|
1770
|
+
left?: number; // Top position of viewBox.
|
|
1771
|
+
// Defaults to 0.
|
|
1772
|
+
top?: number; // Width of viewBox.
|
|
1773
|
+
// Defaults to 16.
|
|
1774
|
+
width?: number; // Height of viewBox.
|
|
1775
|
+
// Defaults to 16.
|
|
1776
|
+
height?: number;
|
|
1777
|
+
}
|
|
1778
|
+
/**
|
|
1779
|
+
* Icon transformations.
|
|
1780
|
+
*
|
|
1781
|
+
* Used in:
|
|
1782
|
+
* icon (as is)
|
|
1783
|
+
* alias (merged with icon's properties)
|
|
1784
|
+
*/
|
|
1785
|
+
interface IconifyTransformations {
|
|
1786
|
+
// Number of 90 degrees rotations.
|
|
1787
|
+
// 0 = 0, 1 = 90deg and so on.
|
|
1788
|
+
// Defaults to 0.
|
|
1789
|
+
// When merged (such as alias + icon), result is icon.rotation + alias.rotation.
|
|
1790
|
+
rotate?: number; // Horizontal flip.
|
|
1791
|
+
// Defaults to false.
|
|
1792
|
+
// When merged, result is icon.hFlip !== alias.hFlip
|
|
1793
|
+
hFlip?: boolean; // Vertical flip. (see hFlip comments)
|
|
1794
|
+
vFlip?: boolean;
|
|
1795
|
+
}
|
|
1796
|
+
/**
|
|
1797
|
+
* Combination of dimensions and transformations.
|
|
1798
|
+
*/
|
|
1799
|
+
interface IconifyOptional extends IconifyDimenisons, IconifyTransformations { //
|
|
1800
|
+
}
|
|
1801
|
+
/**
|
|
1802
|
+
* Alias.
|
|
1803
|
+
*/
|
|
1804
|
+
interface IconifyAlias extends IconifyOptional {
|
|
1805
|
+
// Parent icon index without prefix, required.
|
|
1806
|
+
parent: string; // IconifyOptional properties.
|
|
1807
|
+
// Alias should have only properties that it overrides.
|
|
1808
|
+
// Transformations are merged, not overridden. See IconifyTransformations comments.
|
|
1809
|
+
}
|
|
1810
|
+
/**
|
|
1811
|
+
* Icon.
|
|
1812
|
+
*/
|
|
1813
|
+
interface IconifyIcon extends IconifyOptional {
|
|
1814
|
+
// Icon body: <path d="..." />, required.
|
|
1815
|
+
body: string; // IconifyOptional properties.
|
|
1816
|
+
// If property is missing in JSON file, look in root object for default value.
|
|
1817
|
+
}
|
|
1818
|
+
/**
|
|
1819
|
+
* Icon with optional parameters that are provided by API and affect only search
|
|
1820
|
+
*/
|
|
1821
|
+
interface APIIconAttributes {
|
|
1822
|
+
// True if icon is hidden.
|
|
1823
|
+
// Used in icon sets to keep icons that no longer exist, but should still be accessible
|
|
1824
|
+
// from API, preventing websites from breaking when icon is removed by developer.
|
|
1825
|
+
hidden?: boolean;
|
|
1826
|
+
}
|
|
1827
|
+
interface ExtendedIconifyIcon extends IconifyIcon, APIIconAttributes {}
|
|
1828
|
+
interface ExtendedIconifyAlias extends IconifyAlias, APIIconAttributes {}
|
|
1829
|
+
/**
|
|
1830
|
+
* "icons" field of JSON file.
|
|
1831
|
+
*/
|
|
1832
|
+
interface IconifyIcons {
|
|
1833
|
+
// Index is name of icon, without prefix. Value is ExtendedIconifyIcon object.
|
|
1834
|
+
[index: string]: ExtendedIconifyIcon;
|
|
1835
|
+
}
|
|
1836
|
+
/**
|
|
1837
|
+
* "aliases" field of JSON file.
|
|
1838
|
+
*/
|
|
1839
|
+
interface IconifyAliases {
|
|
1840
|
+
// Index is name of icon, without prefix. Value is ExtendedIconifyAlias object.
|
|
1841
|
+
[index: string]: ExtendedIconifyAlias;
|
|
1842
|
+
}
|
|
1843
|
+
/**
|
|
1844
|
+
* Icon set information block.
|
|
1845
|
+
*/
|
|
1846
|
+
interface IconifyInfo {
|
|
1847
|
+
// Icon set name.
|
|
1848
|
+
name: string; // Total number of icons.
|
|
1849
|
+
total?: number; // Version string.
|
|
1850
|
+
version?: string; // Author information.
|
|
1851
|
+
author: {
|
|
1852
|
+
// Author name.
|
|
1853
|
+
name: string; // Link to author's website or icon set website.
|
|
1854
|
+
url?: string;
|
|
1855
|
+
}; // License
|
|
1856
|
+
license: {
|
|
1857
|
+
// Human readable license.
|
|
1858
|
+
title: string; // SPDX license identifier.
|
|
1859
|
+
spdx?: string; // License URL.
|
|
1860
|
+
url?: string;
|
|
1861
|
+
}; // Array of icons that should be used for samples in icon sets list.
|
|
1862
|
+
samples?: string[]; // Icon grid: number or array of numbers.
|
|
1863
|
+
height?: number | number[]; // Display height for samples: 16 - 24
|
|
1864
|
+
displayHeight?: number; // Category on Iconify collections list.
|
|
1865
|
+
category?: string; // List of tags to group similar icon sets.
|
|
1866
|
+
tags?: string[]; // Palette status. True if icons have predefined color scheme, false if icons use currentColor.
|
|
1867
|
+
// Ideally, icon set should not mix icons with and without palette to simplify search.
|
|
1868
|
+
palette?: boolean; // If true, icon set should not appear in icon sets list.
|
|
1869
|
+
hidden?: boolean;
|
|
1870
|
+
}
|
|
1871
|
+
/**
|
|
1872
|
+
* Optional themes, old format.
|
|
1873
|
+
*
|
|
1874
|
+
* Deprecated because format is unnecessary complicated. Key is meaningless, suffixes and prefixes are mixed together.
|
|
1875
|
+
*/
|
|
1876
|
+
interface LegacyIconifyThemes {
|
|
1877
|
+
// Key is unique string.
|
|
1878
|
+
[index: string]: {
|
|
1879
|
+
// Theme title.
|
|
1880
|
+
title: string; // Icon prefix or suffix, including dash. All icons that start with prefix and end with suffix belong to theme.
|
|
1881
|
+
prefix?: string; // Example: 'baseline-'
|
|
1882
|
+
suffix?: string; // Example: '-filled'
|
|
1883
|
+
};
|
|
1884
|
+
}
|
|
1885
|
+
/**
|
|
1886
|
+
* Characters used in font.
|
|
1887
|
+
*/
|
|
1888
|
+
interface IconifyChars {
|
|
1889
|
+
// Index is character, such as "f000".
|
|
1890
|
+
// Value is icon name.
|
|
1891
|
+
[index: string]: string;
|
|
1892
|
+
}
|
|
1893
|
+
/**
|
|
1894
|
+
* Icon categories
|
|
1895
|
+
*/
|
|
1896
|
+
interface IconifyCategories {
|
|
1897
|
+
// Index is category title, such as "Weather".
|
|
1898
|
+
// Value is array of icons that belong to that category.
|
|
1899
|
+
// Each icon can belong to multiple categories or no categories.
|
|
1900
|
+
[index: string]: string[];
|
|
1901
|
+
}
|
|
1902
|
+
/**
|
|
1903
|
+
* Meta data stored in JSON file, used for browsing icon set.
|
|
1904
|
+
*/
|
|
1905
|
+
interface IconifyMetaData {
|
|
1906
|
+
// Icon set information block. Used for public icon sets, can be skipped for private icon sets.
|
|
1907
|
+
info?: IconifyInfo; // Characters used in font. Used for searching by character for icon sets imported from font, exporting icon set to font.
|
|
1908
|
+
chars?: IconifyChars; // Categories. Used for filtering icons.
|
|
1909
|
+
categories?: IconifyCategories; // Optional themes (old format).
|
|
1910
|
+
themes?: LegacyIconifyThemes; // Optional themes (new format). Key is prefix or suffix, value is title.
|
|
1911
|
+
prefixes?: Record<string, string>;
|
|
1912
|
+
suffixes?: Record<string, string>;
|
|
1913
|
+
}
|
|
1914
|
+
/**
|
|
1915
|
+
* JSON structure, contains only icon data
|
|
1916
|
+
*/
|
|
1917
|
+
interface IconifyJSONIconsData extends IconifyDimenisons {
|
|
1918
|
+
// Prefix for icons in JSON file, required.
|
|
1919
|
+
prefix: string; // API provider, optional.
|
|
1920
|
+
provider?: string; // List of icons, required.
|
|
1921
|
+
icons: IconifyIcons; // Optional aliases.
|
|
1922
|
+
aliases?: IconifyAliases; // IconifyDimenisons properties that are used as default viewbox for icons when icon is missing value.
|
|
1923
|
+
// If viewbox exists in both icon and root, use value from icon.
|
|
1924
|
+
// This is used to reduce duplication.
|
|
1925
|
+
}
|
|
1926
|
+
/**
|
|
1927
|
+
* JSON structure.
|
|
1928
|
+
*
|
|
1929
|
+
* All optional values can exist in root of JSON file, used as defaults.
|
|
1930
|
+
*/
|
|
1931
|
+
interface IconifyJSON extends IconifyJSONIconsData, IconifyMetaData {
|
|
1932
|
+
// Last modification time of icons. Unix time stamp in seconds.
|
|
1933
|
+
// Time is calculated only for icon data, ignoring metadata.
|
|
1934
|
+
// Used to invalidate icons cache in components.
|
|
1935
|
+
lastModified?: number; // Optional list of missing icons. Returned by Iconify API when querying for icons that do not exist.
|
|
1936
|
+
not_found?: string[];
|
|
1937
|
+
}
|
|
1938
|
+
//#endregion
|
|
1939
|
+
//#region src/icons-sprite.d.ts
|
|
1940
|
+
interface IconSpriteOptions {
|
|
1941
|
+
/** Exactly `generateIconInclude()`'s shape: collection → icon names. */
|
|
1942
|
+
include: Record<string, string[]>;
|
|
1943
|
+
/**
|
|
1944
|
+
* Extra ids pointing at an already-included icon, e.g. `{ 'icon-menu': 'ph:list' }`,
|
|
1945
|
+
* so a consumer can reference a semantic name without knowing the set.
|
|
1946
|
+
*/
|
|
1947
|
+
aliases?: Record<string, string>;
|
|
1948
|
+
/**
|
|
1949
|
+
* Directory to resolve `@iconify-json/*` from. Defaults to `process.cwd()`.
|
|
1950
|
+
*
|
|
1951
|
+
* Load-bearing: the collections are the CONSUMER's dependency, not this
|
|
1952
|
+
* package's, so a bare `import('@iconify-json/ph/…')` from inside the
|
|
1953
|
+
* generator resolves against the generator's own node_modules and misses them
|
|
1954
|
+
* entirely — which reads as "not installed" on a project that has them.
|
|
1955
|
+
*/
|
|
1956
|
+
resolveFrom?: string;
|
|
1957
|
+
/** Injected in tests so the emitter can run without any @iconify-json/* installed. */
|
|
1958
|
+
loadSet?: (prefix: string) => Promise<IconifyJSON | null>;
|
|
1959
|
+
}
|
|
1960
|
+
interface IconSpriteResult {
|
|
1961
|
+
svg: string;
|
|
1962
|
+
/** Every `<symbol>` id emitted, in order. */
|
|
1963
|
+
ids: string[];
|
|
1964
|
+
/** `prefix:name` entries that were asked for but not found. */
|
|
1965
|
+
missing: string[];
|
|
1966
|
+
}
|
|
1967
|
+
/**
|
|
1968
|
+
* `ph:caret-down` → `ph--caret-down`.
|
|
1969
|
+
*
|
|
1970
|
+
* The one place this grammar lives. `Icon.astro` mirrors it and `icon.test.ts`
|
|
1971
|
+
* guards the pair, because a drift here resolves `<use>` to nothing and renders
|
|
1972
|
+
* as an empty box rather than an error.
|
|
1973
|
+
*/
|
|
1974
|
+
declare function spriteId(qualified: string): string;
|
|
1975
|
+
declare function buildIconSprite(o: IconSpriteOptions): Promise<IconSpriteResult>;
|
|
1976
|
+
/**
|
|
1977
|
+
* One icon's renderable parts, for inlining into markup.
|
|
1978
|
+
*
|
|
1979
|
+
* Exists because `<Icon />` cannot go through astro-icon: its `./components`
|
|
1980
|
+
* entry is a TypeScript file that Vite must transform, so it can only be
|
|
1981
|
+
* reached by a statically-analysable import — and a static import is exactly
|
|
1982
|
+
* what made the optional peer mandatory for anyone rendering Popover, Details
|
|
1983
|
+
* or Drawer. Reading the collection directly sidesteps the peer entirely and
|
|
1984
|
+
* shares this file's loader with the sprite, so both paths draw the same glyph.
|
|
1985
|
+
*/
|
|
1986
|
+
declare function loadIconSvg(qualified: string, opts?: {
|
|
1987
|
+
resolveFrom?: string;
|
|
1988
|
+
loadSet?: (prefix: string) => Promise<IconifyJSON | null>;
|
|
1989
|
+
}): Promise<{
|
|
1990
|
+
viewBox: string;
|
|
1991
|
+
body: string;
|
|
1992
|
+
} | null>;
|
|
1993
|
+
//#endregion
|
|
1994
|
+
//#region src/shared.d.ts
|
|
1995
|
+
/**
|
|
1996
|
+
* Data shared between the generator (`generate.ts`) and the docs bundle
|
|
1997
|
+
* (`docs.ts`). Lives in its own module because `generate.ts` imports `docs.ts` —
|
|
1998
|
+
* importing back the other way would be a cycle.
|
|
1999
|
+
*/
|
|
2000
|
+
/**
|
|
2001
|
+
* Selector the dark functional-token flip hangs off.
|
|
2002
|
+
*
|
|
2003
|
+
* `data-brx-theme` is Bricks' own attribute — Bricks sets it, so it's what the
|
|
2004
|
+
* WordPress target needs. Nothing sets it anywhere else, which meant the dark
|
|
2005
|
+
* flip was unreachable outside Bricks: the shipped `<color-scheme-toggle>` web
|
|
2006
|
+
* component writes `documentElement.dataset.theme` (i.e. `data-theme`), so
|
|
2007
|
+
* clicking "Dark" changed an attribute no rule matched. Matching both makes the
|
|
2008
|
+
* component work on every target without changing what Bricks already does.
|
|
2009
|
+
*
|
|
2010
|
+
* This covers the EXPLICIT choice. The OS preference is a second, opt-in block —
|
|
2011
|
+
* see `SYSTEM_DARK_SEL` — because turning it on flips a site dark for dark-OS
|
|
2012
|
+
* users, which is the site's decision rather than the design system's.
|
|
2013
|
+
*
|
|
2014
|
+
* Shared so the docs quote the selector the generator actually emits.
|
|
2015
|
+
*/
|
|
2016
|
+
declare const DARK_SEL = ":root[data-brx-theme=\"dark\"], :root[data-theme=\"dark\"]";
|
|
2017
|
+
/**
|
|
2018
|
+
* Roles the shipped CSS partials reference with NO fallback, so a config that
|
|
2019
|
+
* omits one leaves those rules resolving to nothing — an invalid declaration,
|
|
2020
|
+
* not a graceful degrade.
|
|
2021
|
+
*
|
|
2022
|
+
* `colors.roles` is an open record: any name works and generates a full token
|
|
2023
|
+
* set, utilities and dark flip. But the framework's own component CSS is
|
|
2024
|
+
* written against these six, so "roles are arbitrary" is only half true — they
|
|
2025
|
+
* are *extensible*, over a required core. `validate()` warns when one is
|
|
2026
|
+
* missing; `required-roles.test.ts` re-derives this list from the partials so
|
|
2027
|
+
* it cannot drift as components are added.
|
|
2028
|
+
*
|
|
2029
|
+
* Kept as a constant rather than scanned at call time because `validate()` is
|
|
2030
|
+
* a pure function — the CLI, the Vite plugin and `toJSONSchema` all import it,
|
|
2031
|
+
* and none of them should touch the filesystem to answer "is this config ok?".
|
|
2032
|
+
*/
|
|
2033
|
+
declare const REQUIRED_ROLES: readonly string[];
|
|
2034
|
+
/**
|
|
2035
|
+
* Every token key a role can resolve to, across both role kinds. Shared so the
|
|
2036
|
+
* required-roles drift test greps for exactly what the generator emits.
|
|
2037
|
+
*
|
|
2038
|
+
* These are *keys*, not var names: the role sits in the middle of the property
|
|
2039
|
+
* (`--color-bg-danger-muted`), so compose them with `tokenVar()` from `tokens.ts`
|
|
2040
|
+
* rather than concatenating by hand.
|
|
2041
|
+
*/
|
|
2042
|
+
declare const ROLE_TOKEN_KEYS: readonly string[];
|
|
2043
|
+
/** How a role is authored in `colors.roles`: a bare hue, or a hue plus its kind. */
|
|
2044
|
+
type RoleSpec = string | {
|
|
2045
|
+
hue: string;
|
|
2046
|
+
kind?: 'surface' | 'chromatic' | undefined;
|
|
2047
|
+
};
|
|
2048
|
+
/** The palette hue a role points at, through either authoring form. */
|
|
2049
|
+
declare const roleHue: (spec: RoleSpec) => string;
|
|
2050
|
+
/**
|
|
2051
|
+
* A role's kind. The bare-string shorthand means `chromatic`, because signal
|
|
2052
|
+
* colours are the common case and surfaces are the two or three you name once.
|
|
2053
|
+
*/
|
|
2054
|
+
declare const roleKind: (spec: RoleSpec) => "surface" | "chromatic";
|
|
2055
|
+
/**
|
|
2056
|
+
* Pattern base geometry props → per-pattern override-hook shorthand. Each hook
|
|
2057
|
+
* wraps the authored value (`padding: var(--p-btn, 0.4em 0.8em)`) so a
|
|
2058
|
+
* consumer restyles one pattern by setting one variable. The hook is named after
|
|
2059
|
+
* the pattern's key, not its class.
|
|
2060
|
+
*/
|
|
2061
|
+
declare const BASE_HOOK: Record<string, string>;
|
|
2062
|
+
/**
|
|
2063
|
+
* Framework utility classes whose names collide with Tailwind's own defaults.
|
|
2064
|
+
* The `tailwind` format strips any rule targeting these — Tailwind provides
|
|
2065
|
+
* them, so consumers use Tailwind's utilities for these names instead.
|
|
2066
|
+
*/
|
|
2067
|
+
declare const TW_CLASH: ReadonlySet<string>;
|
|
2068
|
+
//#endregion
|
|
2069
|
+
//#region src/legal/providers.d.ts
|
|
2070
|
+
interface Processor {
|
|
2071
|
+
/** The provider as a reader would recognise it. */
|
|
2072
|
+
name: string;
|
|
2073
|
+
/** Reads after "for": "…to Stripe for payment processing". */
|
|
2074
|
+
purpose: string;
|
|
2075
|
+
/** Reads inside a sentence: "…including the United States". */
|
|
2076
|
+
country?: string | undefined;
|
|
2077
|
+
privacyUrl?: string | undefined;
|
|
2078
|
+
/**
|
|
2079
|
+
* Cookies this provider sets. An empty array is meaningful and not the same as
|
|
2080
|
+
* `undefined`: it asserts the provider is cookieless (Plausible), which the
|
|
2081
|
+
* cookie notice states positively rather than omitting.
|
|
2082
|
+
*/
|
|
2083
|
+
cookies?: string[] | undefined;
|
|
2084
|
+
/** A user-facing opt-out, when the provider offers one. */
|
|
2085
|
+
optOut?: string | undefined;
|
|
2086
|
+
}
|
|
2087
|
+
/**
|
|
2088
|
+
* The providers the config can imply. Keyed for testability — a test can assert
|
|
2089
|
+
* a given config resolves to a given key without matching on prose.
|
|
2090
|
+
*/
|
|
2091
|
+
declare const KNOWN_PROCESSORS: {
|
|
2092
|
+
googleAnalytics: {
|
|
2093
|
+
name: string;
|
|
2094
|
+
purpose: string;
|
|
2095
|
+
country: string;
|
|
2096
|
+
privacyUrl: string;
|
|
2097
|
+
cookies: string[];
|
|
2098
|
+
optOut: string;
|
|
2099
|
+
};
|
|
2100
|
+
googleTagManager: {
|
|
2101
|
+
name: string;
|
|
2102
|
+
purpose: string;
|
|
2103
|
+
country: string;
|
|
2104
|
+
privacyUrl: string;
|
|
2105
|
+
cookies: never[];
|
|
2106
|
+
};
|
|
2107
|
+
plausible: {
|
|
2108
|
+
name: string;
|
|
2109
|
+
purpose: string;
|
|
2110
|
+
country: string;
|
|
2111
|
+
privacyUrl: string;
|
|
2112
|
+
cookies: never[];
|
|
2113
|
+
};
|
|
2114
|
+
clarity: {
|
|
2115
|
+
name: string;
|
|
2116
|
+
purpose: string;
|
|
2117
|
+
country: string;
|
|
2118
|
+
privacyUrl: string;
|
|
2119
|
+
cookies: string[];
|
|
2120
|
+
optOut: string;
|
|
2121
|
+
};
|
|
2122
|
+
matomo: {
|
|
2123
|
+
name: string;
|
|
2124
|
+
purpose: string;
|
|
2125
|
+
privacyUrl: string;
|
|
2126
|
+
cookies: string[];
|
|
2127
|
+
};
|
|
2128
|
+
matomoCookieless: {
|
|
2129
|
+
name: string;
|
|
2130
|
+
purpose: string;
|
|
2131
|
+
privacyUrl: string;
|
|
2132
|
+
cookies: never[];
|
|
2133
|
+
};
|
|
2134
|
+
turnstile: {
|
|
2135
|
+
name: string;
|
|
2136
|
+
purpose: string;
|
|
2137
|
+
country: string;
|
|
2138
|
+
privacyUrl: string;
|
|
2139
|
+
cookies: string[];
|
|
2140
|
+
};
|
|
2141
|
+
cloudflare: {
|
|
2142
|
+
name: string;
|
|
2143
|
+
purpose: string;
|
|
2144
|
+
country: string;
|
|
2145
|
+
privacyUrl: string;
|
|
2146
|
+
cookies: never[];
|
|
2147
|
+
};
|
|
2148
|
+
vercel: {
|
|
2149
|
+
name: string;
|
|
2150
|
+
purpose: string;
|
|
2151
|
+
country: string;
|
|
2152
|
+
privacyUrl: string;
|
|
2153
|
+
cookies: never[];
|
|
2154
|
+
};
|
|
2155
|
+
netlify: {
|
|
2156
|
+
name: string;
|
|
2157
|
+
purpose: string;
|
|
2158
|
+
country: string;
|
|
2159
|
+
privacyUrl: string;
|
|
2160
|
+
cookies: never[];
|
|
2161
|
+
};
|
|
2162
|
+
};
|
|
2163
|
+
type KnownProcessorKey = keyof typeof KNOWN_PROCESSORS;
|
|
2164
|
+
/**
|
|
2165
|
+
* Which known providers this config implies, in a stable order (analytics →
|
|
2166
|
+
* security → hosting) so the rendered sentence doesn't churn between builds.
|
|
2167
|
+
*
|
|
2168
|
+
* Returns keys rather than processors so a caller can test the detection
|
|
2169
|
+
* independently of the prose attached to it.
|
|
2170
|
+
*/
|
|
2171
|
+
declare function detectProcessorKeys(site: SiteConfig): KnownProcessorKey[];
|
|
2172
|
+
/**
|
|
2173
|
+
* Every processor this policy must disclose: the ones implied by the config,
|
|
2174
|
+
* then the ones the consumer declared.
|
|
2175
|
+
*
|
|
2176
|
+
* Consumer entries come last and are never deduplicated against the built-ins —
|
|
2177
|
+
* an explicit declaration is a statement of fact we have no grounds to drop.
|
|
2178
|
+
*/
|
|
2179
|
+
declare function resolveProcessors(site: SiteConfig): Processor[];
|
|
2180
|
+
//#endregion
|
|
2181
|
+
//#region src/legal/derive.d.ts
|
|
2182
|
+
/**
|
|
2183
|
+
* The facts every legal template renders from.
|
|
2184
|
+
*
|
|
2185
|
+
* List-shaped fields are `string[]`, not pre-joined strings, because they land
|
|
2186
|
+
* in bullet positions: a template that splices an empty string into a list emits
|
|
2187
|
+
* a stray `-` bullet, and that is exactly the kind of silent breakage a
|
|
2188
|
+
* published policy must not have.
|
|
2189
|
+
*/
|
|
2190
|
+
interface PolicyVars {
|
|
2191
|
+
businessName: string;
|
|
2192
|
+
url: string;
|
|
2193
|
+
/** Reads after "at": "…contact our Privacy Officer at <this>." */
|
|
2194
|
+
mailingAddress: string;
|
|
2195
|
+
lastUpdated: string | undefined;
|
|
2196
|
+
/** Extra retention sentence, when the consumer stated one. */
|
|
2197
|
+
retention: string | undefined;
|
|
2198
|
+
/** A consumer-supplied governing-law phrase, which wins over the two below. */
|
|
2199
|
+
governingLaw: string | undefined;
|
|
2200
|
+
/** Province/territory, spelled out — "Ontario", never "ON". */
|
|
2201
|
+
governingProvince: string | undefined;
|
|
2202
|
+
governingCountry: string;
|
|
2203
|
+
/** Circumstances in which personal information is collected. */
|
|
2204
|
+
collectionReasons: string[];
|
|
2205
|
+
/** Categories of personal information collected. */
|
|
2206
|
+
piiCollected: string[];
|
|
2207
|
+
/** What the browser sends automatically. */
|
|
2208
|
+
techInfo: string[];
|
|
2209
|
+
/** Why that technical information is used. */
|
|
2210
|
+
techInfoPurposes: string[];
|
|
2211
|
+
/** What cookies track. */
|
|
2212
|
+
cookieTracked: string[];
|
|
2213
|
+
/** Why cookies are used. */
|
|
2214
|
+
cookiePurposes: string[];
|
|
2215
|
+
/** A sentence about the consent tool, or `undefined` when there is none. */
|
|
2216
|
+
cookieTool: string | undefined;
|
|
2217
|
+
/** How collected information is used. */
|
|
2218
|
+
usePurposes: string[];
|
|
2219
|
+
/** Choices a visitor has. */
|
|
2220
|
+
optOutOptions: string[];
|
|
2221
|
+
/** The subset of `optOutOptions` about cookies — an e-mail unsubscribe link is
|
|
2222
|
+
* not a cookie choice, and listing it in a cookie notice reads as padding. */
|
|
2223
|
+
cookieOptOutOptions: string[];
|
|
2224
|
+
processors: Processor[];
|
|
2225
|
+
/** Reads after "including": "…the United States and the European Union". */
|
|
2226
|
+
countries: string | undefined;
|
|
2227
|
+
consentModel: 'opt-in' | 'opt-out' | 'none';
|
|
2228
|
+
cookieCategories: string[];
|
|
2229
|
+
}
|
|
2230
|
+
declare function derivePolicyVars(site: SiteConfig): PolicyVars;
|
|
2231
|
+
//#endregion
|
|
2232
|
+
//#region src/legal/templates/cookies.ca.d.ts
|
|
2233
|
+
declare function cookiesCa(v: PolicyVars): string;
|
|
2234
|
+
//#endregion
|
|
2235
|
+
//#region src/legal/templates/privacy.ca.d.ts
|
|
2236
|
+
declare function privacyCa(v: PolicyVars): string;
|
|
2237
|
+
//#endregion
|
|
2238
|
+
//#region src/legal/templates/terms.ca.d.ts
|
|
2239
|
+
declare function termsCa(v: PolicyVars): string;
|
|
2240
|
+
//#endregion
|
|
2241
|
+
//#region src/legal/templates/index.d.ts
|
|
2242
|
+
type LegalDoc = 'privacy' | 'terms' | 'cookies';
|
|
2243
|
+
type DocSet = Record<LegalDoc, (v: PolicyVars) => string>;
|
|
2244
|
+
declare const TEMPLATES: {
|
|
2245
|
+
ca: {
|
|
2246
|
+
privacy: typeof privacyCa;
|
|
2247
|
+
terms: typeof termsCa;
|
|
2248
|
+
cookies: typeof cookiesCa;
|
|
2249
|
+
};
|
|
2250
|
+
};
|
|
2251
|
+
/** Stable output order, independent of which docs a given config enables. */
|
|
2252
|
+
declare const DOC_ORDER: LegalDoc[];
|
|
2253
|
+
/** Output filename stem per document — also the Bricks shortcode's allowlist. */
|
|
2254
|
+
declare const DOC_SLUGS: Record<LegalDoc, string>;
|
|
2255
|
+
//#endregion
|
|
2256
|
+
//#region src/legal/render.d.ts
|
|
2257
|
+
interface Span {
|
|
2258
|
+
text: string;
|
|
2259
|
+
strong?: boolean;
|
|
2260
|
+
code?: boolean;
|
|
2261
|
+
}
|
|
2262
|
+
type Block = {
|
|
2263
|
+
kind: 'heading';
|
|
2264
|
+
level: 1 | 2 | 3;
|
|
2265
|
+
spans: Span[];
|
|
2266
|
+
} | {
|
|
2267
|
+
kind: 'paragraph';
|
|
2268
|
+
spans: Span[];
|
|
2269
|
+
} | {
|
|
2270
|
+
kind: 'list';
|
|
2271
|
+
items: Span[][];
|
|
2272
|
+
} | {
|
|
2273
|
+
kind: 'quote';
|
|
2274
|
+
spans: Span[];
|
|
2275
|
+
};
|
|
2276
|
+
/** Markdown (our subset) → blocks. Throws on anything it does not model. */
|
|
2277
|
+
declare function parseMarkdown(md: string): Block[];
|
|
2278
|
+
/**
|
|
2279
|
+
* Blocks → `ContentNode[]`, the framework-agnostic tree the site config already
|
|
2280
|
+
* uses for `templates` of type `nodes` and `NodeRenderer.astro` already renders.
|
|
2281
|
+
*/
|
|
2282
|
+
declare function toContentNodes(blocks: Block[]): ContentNode[];
|
|
2283
|
+
declare function toHtmlFragment(blocks: Block[]): string;
|
|
2284
|
+
/**
|
|
2285
|
+
* Blocks → EmDash Portable Text, matching the shape already seeded in
|
|
2286
|
+
* `packages/create/templates/emdash/seed/seed.json`.
|
|
2287
|
+
*
|
|
2288
|
+
* Two deliberate mappings:
|
|
2289
|
+
* - the `# ` heading is **dropped** — in EmDash the page title is a field
|
|
2290
|
+
* (`data.title`), and repeating it as the first content block renders twice;
|
|
2291
|
+
* - the review blockquote becomes a `vitops.banner` with `tone: "warning"`,
|
|
2292
|
+
* which is exactly the block the hand-written placeholder pages used.
|
|
2293
|
+
*
|
|
2294
|
+
* `_key`s are derived from position rather than randomness, so regenerating an
|
|
2295
|
+
* unchanged config produces an identical seed and a clean diff.
|
|
2296
|
+
*/
|
|
2297
|
+
declare function toPortableText(blocks: Block[], prefix: string): unknown[];
|
|
2298
|
+
//#endregion
|
|
2299
|
+
//#region src/legal/index.d.ts
|
|
2300
|
+
type LegalOutput = 'md' | 'html' | 'portable-text';
|
|
2301
|
+
interface GenerateLegalOptions {
|
|
2302
|
+
/** Which documents to render. Defaults to those enabled in the config. */
|
|
2303
|
+
docs?: LegalDoc[];
|
|
2304
|
+
/** Output format. Default `md`. */
|
|
2305
|
+
output?: LegalOutput;
|
|
2306
|
+
}
|
|
2307
|
+
/** Which documents the config asks for, in a stable order. */
|
|
2308
|
+
declare function enabledDocs(site: SiteConfig): LegalDoc[];
|
|
2309
|
+
/** Render one document to markdown. The other outputs derive from this. */
|
|
2310
|
+
declare function renderMarkdown(site: SiteConfig, doc: LegalDoc, vars?: PolicyVars): string;
|
|
2311
|
+
/**
|
|
2312
|
+
* Render one document as a `ContentNode` tree — the framework-agnostic shape the
|
|
2313
|
+
* site config already uses for `templates` of type `nodes`, so an Astro consumer
|
|
2314
|
+
* can hand it to `NodeRenderer` instead of injecting a string of HTML.
|
|
2315
|
+
*/
|
|
2316
|
+
declare function renderNodes(site: SiteConfig, doc: LegalDoc): ContentNode[];
|
|
2317
|
+
/**
|
|
2318
|
+
* Every enabled legal document, keyed by output path.
|
|
2319
|
+
*
|
|
2320
|
+
* Documents are keyed by filename (`privacy-policy.md`) rather than by document
|
|
2321
|
+
* id so a caller can write the map verbatim.
|
|
2322
|
+
*/
|
|
2323
|
+
declare function generateLegal(site: SiteConfig, opts?: GenerateLegalOptions): Record<string, string>;
|
|
2324
|
+
//#endregion
|
|
1483
2325
|
//#region src/index.d.ts
|
|
1484
2326
|
/**
|
|
1485
2327
|
* A minimal but complete starter design system, used by `vitops init`. It
|
|
@@ -1488,5 +2330,5 @@ declare function deepMerge(target: Record<string, unknown>, source: Record<strin
|
|
|
1488
2330
|
*/
|
|
1489
2331
|
declare function defaultConfig(): DesignSystem;
|
|
1490
2332
|
//#endregion
|
|
1491
|
-
export { BASE_HOOK, type ColorUtility, DARK_SEL, type DesignSystem, DesignSystemSchema, type ExpandedHue, type Format, type FunctionalRole, type GenerateOptions, type GenerateResult, REQUIRED_ROLES,
|
|
2333
|
+
export { BASE_HOOK, type Block, CONTRAST, type ColorUtility, type ContactObject, DARK_SEL, DOC_ORDER, DOC_SLUGS, type DesignSystem, DesignSystemSchema, type DocSet, type ExpandedHue, type Format, type FunctionalRole, type GenerateLegalOptions, type GenerateOptions, type GenerateResult, type IconSpriteOptions, type IconSpriteResult, JURISDICTIONS, type Jurisdiction, KNOWN_PROCESSORS, type KnownProcessorKey, type LegalDoc, type LegalOutput, NUMERIC_STEPS, type PolicyVars, type PostalAddress, type Processor, REQUIRED_ROLES, ROLE_TOKEN_KEYS, type ResolvedInput, type RoleKind, type RoleSpec, SCHEMA_URL, SITE_SCHEMA_URL, type SiteConfig, SiteConfigSchema, type SiteFont, SiteFontSchema, type SiteValidationResult, type Span, type StylesheetFormat, TEMPLATES, TW_CLASH, type ValidationResult, buildIconSprite, deepMerge, defaultConfig, derivePolicyVars, detectProcessorKeys, enabledDocs, expandPalette, functionalRole, generate, generateDocs, generateLegal, isSiteConfig, jsonSchema, loadIconSvg, parseMarkdown, renderMarkdown, renderNodes, resolveInput, resolvePrivacyContact, resolveProcessors, resolveSiteConfig, resolveTheme, roleColorUtilities, roleHue, roleKind, siteJsonSchema, spriteId, stripNulls, toContentNodes, toHtmlFragment, toPortableText, tokenClass, tokenVar, validate, validateSite };
|
|
1492
2334
|
//# sourceMappingURL=index.d.mts.map
|