@forumone/throughline-design-system 1.5.0 → 1.6.0-next-d8178f0
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 +6 -0
- package/dist/contract/index.d.ts +1 -0
- package/dist/contract/index.d.ts.map +1 -1
- package/dist/contract/index.js +1 -0
- package/dist/contract/index.js.map +1 -1
- package/dist/contract/lint.d.ts.map +1 -1
- package/dist/contract/lint.js +50 -0
- package/dist/contract/lint.js.map +1 -1
- package/dist/contract/manifest.d.ts +266 -3
- package/dist/contract/manifest.d.ts.map +1 -1
- package/dist/contract/manifest.js +10 -2
- package/dist/contract/manifest.js.map +1 -1
- package/dist/contract/primitive.d.ts +275 -0
- package/dist/contract/primitive.d.ts.map +1 -0
- package/dist/contract/primitive.js +124 -0
- package/dist/contract/primitive.js.map +1 -0
- package/dist/contract/schema.d.ts +10 -4
- package/dist/contract/schema.d.ts.map +1 -1
- package/dist/contract/schema.js +10 -4
- package/dist/contract/schema.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @forumone/throughline-design-system
|
|
2
2
|
|
|
3
|
+
## 1.6.0-next-d8178f0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- d8178f0: Contract 1.1.0 adds `primitives` to the manifest: layout and content building blocks that a composed section can be made of, but that never become blocks on their own. A `PrimitiveContract` declares closed-set `props` (`token`, `enum` or `boolean`), `slots` for a layout primitive, and `content` for a content primitive. `lintManifest` checks that every token a primitive allows exists and belongs to the prop's token group. Manifests at 1.0.0 still load, as having no primitives. Before this, an unknown top-level key was stripped silently.
|
|
8
|
+
|
|
3
9
|
## 1.5.0
|
|
4
10
|
|
|
5
11
|
## 1.4.0
|
package/dist/contract/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/contract/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/contract/lint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,WAAgB,GAAG,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/contract/lint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,WAAgB,GAAG,SAAS,EAAE,CA0EvF;AAoDD,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAwB5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAMnF"}
|
package/dist/contract/lint.js
CHANGED
|
@@ -71,6 +71,56 @@ export function lintManifest(manifest, options = {}) {
|
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
+
issues.push(...lintPrimitives(manifest, tokenNames));
|
|
75
|
+
return issues;
|
|
76
|
+
}
|
|
77
|
+
/*
|
|
78
|
+
A primitive's props are closed sets, and the safety of everything built from
|
|
79
|
+
them rests on those sets being real: a token a primitive offers that the token
|
|
80
|
+
table does not have would reach a page as `var(--nothing)`. So every allowed
|
|
81
|
+
token must exist, and must be in the group the prop says it draws from — a
|
|
82
|
+
spacing prop offering a colour is a mistake in the primitive, not a choice.
|
|
83
|
+
|
|
84
|
+
A primitive may not share a name with a component either: a recipe node names
|
|
85
|
+
one or the other, and an ambiguous name is a node nobody can resolve.
|
|
86
|
+
*/
|
|
87
|
+
function lintPrimitives(manifest, tokenNames) {
|
|
88
|
+
const issues = [];
|
|
89
|
+
const categoryOf = new Map(manifest.tokens.map((t) => [t.name, t.category]));
|
|
90
|
+
for (const [name, primitive] of Object.entries(manifest.primitives ?? {})) {
|
|
91
|
+
if (name in manifest.components) {
|
|
92
|
+
issues.push({
|
|
93
|
+
severity: 'error',
|
|
94
|
+
component: name,
|
|
95
|
+
rule: 'primitives.name',
|
|
96
|
+
message: `"${name}" is both a component and a primitive`,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
for (const [propName, prop] of Object.entries(primitive.props)) {
|
|
100
|
+
if (prop.type !== 'token')
|
|
101
|
+
continue;
|
|
102
|
+
for (const token of prop.allowed) {
|
|
103
|
+
if (!tokenNames.has(token)) {
|
|
104
|
+
issues.push({
|
|
105
|
+
severity: 'error',
|
|
106
|
+
component: name,
|
|
107
|
+
rule: 'primitives.props.tokens',
|
|
108
|
+
message: `Prop "${propName}" allows unknown token "${token}"`,
|
|
109
|
+
});
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
const category = categoryOf.get(token);
|
|
113
|
+
if (category !== undefined && category !== prop.tokenGroup) {
|
|
114
|
+
issues.push({
|
|
115
|
+
severity: 'error',
|
|
116
|
+
component: name,
|
|
117
|
+
rule: 'primitives.props.tokenGroup',
|
|
118
|
+
message: `Prop "${propName}" draws from "${prop.tokenGroup}" but allows "${token}", a ${category} token`,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
74
124
|
return issues;
|
|
75
125
|
}
|
|
76
126
|
/** Formats lint issues as a multi-line string suitable for CI output. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/contract/lint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/contract/lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ declare const TokenDefinitionSchema: z.ZodObject<{
|
|
|
15
15
|
export type TokenDefinition = z.infer<typeof TokenDefinitionSchema>;
|
|
16
16
|
export declare const ManifestSchema: z.ZodObject<{
|
|
17
17
|
/** The contract schema version this manifest satisfies. */
|
|
18
|
-
contractVersion: z.
|
|
18
|
+
contractVersion: z.ZodEnum<["1.0.0", "1.1.0"]>;
|
|
19
19
|
/** Metadata about the design system. */
|
|
20
20
|
designSystem: z.ZodObject<{
|
|
21
21
|
name: z.ZodString;
|
|
@@ -297,6 +297,207 @@ export declare const ManifestSchema: z.ZodObject<{
|
|
|
297
297
|
requiresAnalytics?: boolean | undefined;
|
|
298
298
|
} | undefined;
|
|
299
299
|
}>>;
|
|
300
|
+
/**
|
|
301
|
+
* Building blocks a composed section may be made of, keyed by name: layout
|
|
302
|
+
* primitives and small content pieces. Never blocks on their own, which is
|
|
303
|
+
* why they are not in `components`. Since 1.1.0; a manifest without them has
|
|
304
|
+
* none.
|
|
305
|
+
*/
|
|
306
|
+
primitives: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
|
|
307
|
+
name: z.ZodString;
|
|
308
|
+
kind: z.ZodEnum<["layout", "content"]>;
|
|
309
|
+
description: z.ZodString;
|
|
310
|
+
renders: z.ZodOptional<z.ZodString>;
|
|
311
|
+
props: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
312
|
+
type: z.ZodLiteral<"token">;
|
|
313
|
+
tokenGroup: z.ZodString;
|
|
314
|
+
allowed: z.ZodArray<z.ZodString, "atleastone">;
|
|
315
|
+
default: z.ZodOptional<z.ZodString>;
|
|
316
|
+
description: z.ZodOptional<z.ZodString>;
|
|
317
|
+
}, "strip", z.ZodTypeAny, {
|
|
318
|
+
type: "token";
|
|
319
|
+
tokenGroup: string;
|
|
320
|
+
allowed: [string, ...string[]];
|
|
321
|
+
default?: string | undefined;
|
|
322
|
+
description?: string | undefined;
|
|
323
|
+
}, {
|
|
324
|
+
type: "token";
|
|
325
|
+
tokenGroup: string;
|
|
326
|
+
allowed: [string, ...string[]];
|
|
327
|
+
default?: string | undefined;
|
|
328
|
+
description?: string | undefined;
|
|
329
|
+
}>, z.ZodObject<{
|
|
330
|
+
type: z.ZodLiteral<"enum">;
|
|
331
|
+
values: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "atleastone">;
|
|
332
|
+
default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
333
|
+
description: z.ZodOptional<z.ZodString>;
|
|
334
|
+
}, "strip", z.ZodTypeAny, {
|
|
335
|
+
type: "enum";
|
|
336
|
+
values: [string | number, ...(string | number)[]];
|
|
337
|
+
default?: string | number | undefined;
|
|
338
|
+
description?: string | undefined;
|
|
339
|
+
}, {
|
|
340
|
+
type: "enum";
|
|
341
|
+
values: [string | number, ...(string | number)[]];
|
|
342
|
+
default?: string | number | undefined;
|
|
343
|
+
description?: string | undefined;
|
|
344
|
+
}>, z.ZodObject<{
|
|
345
|
+
type: z.ZodLiteral<"boolean">;
|
|
346
|
+
default: z.ZodOptional<z.ZodBoolean>;
|
|
347
|
+
description: z.ZodOptional<z.ZodString>;
|
|
348
|
+
}, "strip", z.ZodTypeAny, {
|
|
349
|
+
type: "boolean";
|
|
350
|
+
default?: boolean | undefined;
|
|
351
|
+
description?: string | undefined;
|
|
352
|
+
}, {
|
|
353
|
+
type: "boolean";
|
|
354
|
+
default?: boolean | undefined;
|
|
355
|
+
description?: string | undefined;
|
|
356
|
+
}>]>>>;
|
|
357
|
+
slots: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
358
|
+
description: z.ZodString;
|
|
359
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
360
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
361
|
+
}, "strip", z.ZodTypeAny, {
|
|
362
|
+
required: boolean;
|
|
363
|
+
description: string;
|
|
364
|
+
max?: number | undefined;
|
|
365
|
+
}, {
|
|
366
|
+
description: string;
|
|
367
|
+
required?: boolean | undefined;
|
|
368
|
+
max?: number | undefined;
|
|
369
|
+
}>>>;
|
|
370
|
+
content: z.ZodOptional<z.ZodObject<{
|
|
371
|
+
type: z.ZodEnum<["text", "richtext", "link", "image"]>;
|
|
372
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
373
|
+
}, "strip", z.ZodTypeAny, {
|
|
374
|
+
type: "link" | "text" | "richtext" | "image";
|
|
375
|
+
required: boolean;
|
|
376
|
+
}, {
|
|
377
|
+
type: "link" | "text" | "richtext" | "image";
|
|
378
|
+
required?: boolean | undefined;
|
|
379
|
+
}>>;
|
|
380
|
+
}, "strip", z.ZodTypeAny, {
|
|
381
|
+
name: string;
|
|
382
|
+
description: string;
|
|
383
|
+
kind: "layout" | "content";
|
|
384
|
+
props: Record<string, {
|
|
385
|
+
type: "token";
|
|
386
|
+
tokenGroup: string;
|
|
387
|
+
allowed: [string, ...string[]];
|
|
388
|
+
default?: string | undefined;
|
|
389
|
+
description?: string | undefined;
|
|
390
|
+
} | {
|
|
391
|
+
type: "enum";
|
|
392
|
+
values: [string | number, ...(string | number)[]];
|
|
393
|
+
default?: string | number | undefined;
|
|
394
|
+
description?: string | undefined;
|
|
395
|
+
} | {
|
|
396
|
+
type: "boolean";
|
|
397
|
+
default?: boolean | undefined;
|
|
398
|
+
description?: string | undefined;
|
|
399
|
+
}>;
|
|
400
|
+
slots: Record<string, {
|
|
401
|
+
required: boolean;
|
|
402
|
+
description: string;
|
|
403
|
+
max?: number | undefined;
|
|
404
|
+
}>;
|
|
405
|
+
content?: {
|
|
406
|
+
type: "link" | "text" | "richtext" | "image";
|
|
407
|
+
required: boolean;
|
|
408
|
+
} | undefined;
|
|
409
|
+
renders?: string | undefined;
|
|
410
|
+
}, {
|
|
411
|
+
name: string;
|
|
412
|
+
description: string;
|
|
413
|
+
kind: "layout" | "content";
|
|
414
|
+
content?: {
|
|
415
|
+
type: "link" | "text" | "richtext" | "image";
|
|
416
|
+
required?: boolean | undefined;
|
|
417
|
+
} | undefined;
|
|
418
|
+
renders?: string | undefined;
|
|
419
|
+
props?: Record<string, {
|
|
420
|
+
type: "token";
|
|
421
|
+
tokenGroup: string;
|
|
422
|
+
allowed: [string, ...string[]];
|
|
423
|
+
default?: string | undefined;
|
|
424
|
+
description?: string | undefined;
|
|
425
|
+
} | {
|
|
426
|
+
type: "enum";
|
|
427
|
+
values: [string | number, ...(string | number)[]];
|
|
428
|
+
default?: string | number | undefined;
|
|
429
|
+
description?: string | undefined;
|
|
430
|
+
} | {
|
|
431
|
+
type: "boolean";
|
|
432
|
+
default?: boolean | undefined;
|
|
433
|
+
description?: string | undefined;
|
|
434
|
+
}> | undefined;
|
|
435
|
+
slots?: Record<string, {
|
|
436
|
+
description: string;
|
|
437
|
+
required?: boolean | undefined;
|
|
438
|
+
max?: number | undefined;
|
|
439
|
+
}> | undefined;
|
|
440
|
+
}>, {
|
|
441
|
+
name: string;
|
|
442
|
+
description: string;
|
|
443
|
+
kind: "layout" | "content";
|
|
444
|
+
props: Record<string, {
|
|
445
|
+
type: "token";
|
|
446
|
+
tokenGroup: string;
|
|
447
|
+
allowed: [string, ...string[]];
|
|
448
|
+
default?: string | undefined;
|
|
449
|
+
description?: string | undefined;
|
|
450
|
+
} | {
|
|
451
|
+
type: "enum";
|
|
452
|
+
values: [string | number, ...(string | number)[]];
|
|
453
|
+
default?: string | number | undefined;
|
|
454
|
+
description?: string | undefined;
|
|
455
|
+
} | {
|
|
456
|
+
type: "boolean";
|
|
457
|
+
default?: boolean | undefined;
|
|
458
|
+
description?: string | undefined;
|
|
459
|
+
}>;
|
|
460
|
+
slots: Record<string, {
|
|
461
|
+
required: boolean;
|
|
462
|
+
description: string;
|
|
463
|
+
max?: number | undefined;
|
|
464
|
+
}>;
|
|
465
|
+
content?: {
|
|
466
|
+
type: "link" | "text" | "richtext" | "image";
|
|
467
|
+
required: boolean;
|
|
468
|
+
} | undefined;
|
|
469
|
+
renders?: string | undefined;
|
|
470
|
+
}, {
|
|
471
|
+
name: string;
|
|
472
|
+
description: string;
|
|
473
|
+
kind: "layout" | "content";
|
|
474
|
+
content?: {
|
|
475
|
+
type: "link" | "text" | "richtext" | "image";
|
|
476
|
+
required?: boolean | undefined;
|
|
477
|
+
} | undefined;
|
|
478
|
+
renders?: string | undefined;
|
|
479
|
+
props?: Record<string, {
|
|
480
|
+
type: "token";
|
|
481
|
+
tokenGroup: string;
|
|
482
|
+
allowed: [string, ...string[]];
|
|
483
|
+
default?: string | undefined;
|
|
484
|
+
description?: string | undefined;
|
|
485
|
+
} | {
|
|
486
|
+
type: "enum";
|
|
487
|
+
values: [string | number, ...(string | number)[]];
|
|
488
|
+
default?: string | number | undefined;
|
|
489
|
+
description?: string | undefined;
|
|
490
|
+
} | {
|
|
491
|
+
type: "boolean";
|
|
492
|
+
default?: boolean | undefined;
|
|
493
|
+
description?: string | undefined;
|
|
494
|
+
}> | undefined;
|
|
495
|
+
slots?: Record<string, {
|
|
496
|
+
description: string;
|
|
497
|
+
required?: boolean | undefined;
|
|
498
|
+
max?: number | undefined;
|
|
499
|
+
}> | undefined;
|
|
500
|
+
}>>>;
|
|
300
501
|
/** Build metadata. */
|
|
301
502
|
build: z.ZodObject<{
|
|
302
503
|
timestamp: z.ZodString;
|
|
@@ -366,7 +567,7 @@ export declare const ManifestSchema: z.ZodObject<{
|
|
|
366
567
|
value: string;
|
|
367
568
|
category: string;
|
|
368
569
|
}[];
|
|
369
|
-
contractVersion: "1.0.0";
|
|
570
|
+
contractVersion: "1.1.0" | "1.0.0";
|
|
370
571
|
designSystem: {
|
|
371
572
|
name: string;
|
|
372
573
|
version: string;
|
|
@@ -374,6 +575,37 @@ export declare const ManifestSchema: z.ZodObject<{
|
|
|
374
575
|
homepage?: string | undefined;
|
|
375
576
|
storybookUrl?: string | undefined;
|
|
376
577
|
};
|
|
578
|
+
primitives: Record<string, {
|
|
579
|
+
name: string;
|
|
580
|
+
description: string;
|
|
581
|
+
kind: "layout" | "content";
|
|
582
|
+
props: Record<string, {
|
|
583
|
+
type: "token";
|
|
584
|
+
tokenGroup: string;
|
|
585
|
+
allowed: [string, ...string[]];
|
|
586
|
+
default?: string | undefined;
|
|
587
|
+
description?: string | undefined;
|
|
588
|
+
} | {
|
|
589
|
+
type: "enum";
|
|
590
|
+
values: [string | number, ...(string | number)[]];
|
|
591
|
+
default?: string | number | undefined;
|
|
592
|
+
description?: string | undefined;
|
|
593
|
+
} | {
|
|
594
|
+
type: "boolean";
|
|
595
|
+
default?: boolean | undefined;
|
|
596
|
+
description?: string | undefined;
|
|
597
|
+
}>;
|
|
598
|
+
slots: Record<string, {
|
|
599
|
+
required: boolean;
|
|
600
|
+
description: string;
|
|
601
|
+
max?: number | undefined;
|
|
602
|
+
}>;
|
|
603
|
+
content?: {
|
|
604
|
+
type: "link" | "text" | "richtext" | "image";
|
|
605
|
+
required: boolean;
|
|
606
|
+
} | undefined;
|
|
607
|
+
renders?: string | undefined;
|
|
608
|
+
}>;
|
|
377
609
|
build: {
|
|
378
610
|
timestamp: string;
|
|
379
611
|
source?: string | undefined;
|
|
@@ -436,7 +668,7 @@ export declare const ManifestSchema: z.ZodObject<{
|
|
|
436
668
|
value: string;
|
|
437
669
|
category: string;
|
|
438
670
|
}[];
|
|
439
|
-
contractVersion: "1.0.0";
|
|
671
|
+
contractVersion: "1.1.0" | "1.0.0";
|
|
440
672
|
designSystem: {
|
|
441
673
|
name: string;
|
|
442
674
|
version: string;
|
|
@@ -448,6 +680,37 @@ export declare const ManifestSchema: z.ZodObject<{
|
|
|
448
680
|
timestamp: string;
|
|
449
681
|
source?: string | undefined;
|
|
450
682
|
};
|
|
683
|
+
primitives?: Record<string, {
|
|
684
|
+
name: string;
|
|
685
|
+
description: string;
|
|
686
|
+
kind: "layout" | "content";
|
|
687
|
+
content?: {
|
|
688
|
+
type: "link" | "text" | "richtext" | "image";
|
|
689
|
+
required?: boolean | undefined;
|
|
690
|
+
} | undefined;
|
|
691
|
+
renders?: string | undefined;
|
|
692
|
+
props?: Record<string, {
|
|
693
|
+
type: "token";
|
|
694
|
+
tokenGroup: string;
|
|
695
|
+
allowed: [string, ...string[]];
|
|
696
|
+
default?: string | undefined;
|
|
697
|
+
description?: string | undefined;
|
|
698
|
+
} | {
|
|
699
|
+
type: "enum";
|
|
700
|
+
values: [string | number, ...(string | number)[]];
|
|
701
|
+
default?: string | number | undefined;
|
|
702
|
+
description?: string | undefined;
|
|
703
|
+
} | {
|
|
704
|
+
type: "boolean";
|
|
705
|
+
default?: boolean | undefined;
|
|
706
|
+
description?: string | undefined;
|
|
707
|
+
}> | undefined;
|
|
708
|
+
slots?: Record<string, {
|
|
709
|
+
description: string;
|
|
710
|
+
required?: boolean | undefined;
|
|
711
|
+
max?: number | undefined;
|
|
712
|
+
}> | undefined;
|
|
713
|
+
}> | undefined;
|
|
451
714
|
}>;
|
|
452
715
|
export type Manifest = z.infer<typeof ManifestSchema>;
|
|
453
716
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/contract/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/contract/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;EAIzB,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,eAAO,MAAM,cAAc;IACzB,2DAA2D;;IAG3D,wCAAwC;;;;;;;;;;;;;;;;;;;;IASxC,+EAA+E;;;;;;;;;;;;;;IAG/E,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGhC;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKtB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { PrimitiveContractSchema } from './primitive.js';
|
|
3
|
+
import { ComponentContractSchema, SUPPORTED_CONTRACT_VERSIONS } from './schema.js';
|
|
3
4
|
const TokenDefinitionSchema = z.object({
|
|
4
5
|
name: z.string(),
|
|
5
6
|
value: z.string(),
|
|
@@ -7,7 +8,7 @@ const TokenDefinitionSchema = z.object({
|
|
|
7
8
|
});
|
|
8
9
|
export const ManifestSchema = z.object({
|
|
9
10
|
/** The contract schema version this manifest satisfies. */
|
|
10
|
-
contractVersion: z.
|
|
11
|
+
contractVersion: z.enum(SUPPORTED_CONTRACT_VERSIONS),
|
|
11
12
|
/** Metadata about the design system. */
|
|
12
13
|
designSystem: z.object({
|
|
13
14
|
name: z.string(),
|
|
@@ -20,6 +21,13 @@ export const ManifestSchema = z.object({
|
|
|
20
21
|
tokens: z.array(TokenDefinitionSchema),
|
|
21
22
|
/** Components keyed by name. */
|
|
22
23
|
components: z.record(z.string(), ComponentContractSchema),
|
|
24
|
+
/**
|
|
25
|
+
* Building blocks a composed section may be made of, keyed by name: layout
|
|
26
|
+
* primitives and small content pieces. Never blocks on their own, which is
|
|
27
|
+
* why they are not in `components`. Since 1.1.0; a manifest without them has
|
|
28
|
+
* none.
|
|
29
|
+
*/
|
|
30
|
+
primitives: z.record(z.string(), PrimitiveContractSchema).default({}),
|
|
23
31
|
/** Build metadata. */
|
|
24
32
|
build: z.object({
|
|
25
33
|
timestamp: z.string().datetime(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/contract/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/contract/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAElF,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,2DAA2D;IAC3D,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC;IAEpD,wCAAwC;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KAC1C,CAAC;IAEF,+EAA+E;IAC/E,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAEtC,gCAAgC;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC;IAEzD;;;;;OAKG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAErE,sBAAsB;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;CACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const PrimitivePropSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
3
|
+
type: z.ZodLiteral<"token">;
|
|
4
|
+
/** The token category the values come from, e.g. `spacing`. */
|
|
5
|
+
tokenGroup: z.ZodString;
|
|
6
|
+
/** The token names allowed, by name without `--`. Every one must exist. */
|
|
7
|
+
allowed: z.ZodArray<z.ZodString, "atleastone">;
|
|
8
|
+
default: z.ZodOptional<z.ZodString>;
|
|
9
|
+
description: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
type: "token";
|
|
12
|
+
tokenGroup: string;
|
|
13
|
+
allowed: [string, ...string[]];
|
|
14
|
+
default?: string | undefined;
|
|
15
|
+
description?: string | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
type: "token";
|
|
18
|
+
tokenGroup: string;
|
|
19
|
+
allowed: [string, ...string[]];
|
|
20
|
+
default?: string | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
}>, z.ZodObject<{
|
|
23
|
+
type: z.ZodLiteral<"enum">;
|
|
24
|
+
values: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "atleastone">;
|
|
25
|
+
default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
26
|
+
description: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
type: "enum";
|
|
29
|
+
values: [string | number, ...(string | number)[]];
|
|
30
|
+
default?: string | number | undefined;
|
|
31
|
+
description?: string | undefined;
|
|
32
|
+
}, {
|
|
33
|
+
type: "enum";
|
|
34
|
+
values: [string | number, ...(string | number)[]];
|
|
35
|
+
default?: string | number | undefined;
|
|
36
|
+
description?: string | undefined;
|
|
37
|
+
}>, z.ZodObject<{
|
|
38
|
+
type: z.ZodLiteral<"boolean">;
|
|
39
|
+
default: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
description: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, "strip", z.ZodTypeAny, {
|
|
42
|
+
type: "boolean";
|
|
43
|
+
default?: boolean | undefined;
|
|
44
|
+
description?: string | undefined;
|
|
45
|
+
}, {
|
|
46
|
+
type: "boolean";
|
|
47
|
+
default?: boolean | undefined;
|
|
48
|
+
description?: string | undefined;
|
|
49
|
+
}>]>;
|
|
50
|
+
export type PrimitiveProp = z.infer<typeof PrimitivePropSchema>;
|
|
51
|
+
export declare const PrimitiveSlotSchema: z.ZodObject<{
|
|
52
|
+
description: z.ZodString;
|
|
53
|
+
/** Whether a recipe must put something here. */
|
|
54
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
55
|
+
/** At most this many nodes; absent means any number. */
|
|
56
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
}, "strip", z.ZodTypeAny, {
|
|
58
|
+
required: boolean;
|
|
59
|
+
description: string;
|
|
60
|
+
max?: number | undefined;
|
|
61
|
+
}, {
|
|
62
|
+
description: string;
|
|
63
|
+
required?: boolean | undefined;
|
|
64
|
+
max?: number | undefined;
|
|
65
|
+
}>;
|
|
66
|
+
export type PrimitiveSlot = z.infer<typeof PrimitiveSlotSchema>;
|
|
67
|
+
/** The content field kinds a content primitive can show. A subset of a contract's field types. */
|
|
68
|
+
export declare const PrimitiveContentTypeSchema: z.ZodEnum<["text", "richtext", "link", "image"]>;
|
|
69
|
+
export declare const PrimitiveContractSchema: z.ZodEffects<z.ZodObject<{
|
|
70
|
+
name: z.ZodString;
|
|
71
|
+
/** `layout` arranges other nodes; `content` shows one content field. */
|
|
72
|
+
kind: z.ZodEnum<["layout", "content"]>;
|
|
73
|
+
description: z.ZodString;
|
|
74
|
+
/** The design-system export it renders, when that differs from `name`. */
|
|
75
|
+
renders: z.ZodOptional<z.ZodString>;
|
|
76
|
+
props: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
77
|
+
type: z.ZodLiteral<"token">;
|
|
78
|
+
/** The token category the values come from, e.g. `spacing`. */
|
|
79
|
+
tokenGroup: z.ZodString;
|
|
80
|
+
/** The token names allowed, by name without `--`. Every one must exist. */
|
|
81
|
+
allowed: z.ZodArray<z.ZodString, "atleastone">;
|
|
82
|
+
default: z.ZodOptional<z.ZodString>;
|
|
83
|
+
description: z.ZodOptional<z.ZodString>;
|
|
84
|
+
}, "strip", z.ZodTypeAny, {
|
|
85
|
+
type: "token";
|
|
86
|
+
tokenGroup: string;
|
|
87
|
+
allowed: [string, ...string[]];
|
|
88
|
+
default?: string | undefined;
|
|
89
|
+
description?: string | undefined;
|
|
90
|
+
}, {
|
|
91
|
+
type: "token";
|
|
92
|
+
tokenGroup: string;
|
|
93
|
+
allowed: [string, ...string[]];
|
|
94
|
+
default?: string | undefined;
|
|
95
|
+
description?: string | undefined;
|
|
96
|
+
}>, z.ZodObject<{
|
|
97
|
+
type: z.ZodLiteral<"enum">;
|
|
98
|
+
values: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "atleastone">;
|
|
99
|
+
default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
100
|
+
description: z.ZodOptional<z.ZodString>;
|
|
101
|
+
}, "strip", z.ZodTypeAny, {
|
|
102
|
+
type: "enum";
|
|
103
|
+
values: [string | number, ...(string | number)[]];
|
|
104
|
+
default?: string | number | undefined;
|
|
105
|
+
description?: string | undefined;
|
|
106
|
+
}, {
|
|
107
|
+
type: "enum";
|
|
108
|
+
values: [string | number, ...(string | number)[]];
|
|
109
|
+
default?: string | number | undefined;
|
|
110
|
+
description?: string | undefined;
|
|
111
|
+
}>, z.ZodObject<{
|
|
112
|
+
type: z.ZodLiteral<"boolean">;
|
|
113
|
+
default: z.ZodOptional<z.ZodBoolean>;
|
|
114
|
+
description: z.ZodOptional<z.ZodString>;
|
|
115
|
+
}, "strip", z.ZodTypeAny, {
|
|
116
|
+
type: "boolean";
|
|
117
|
+
default?: boolean | undefined;
|
|
118
|
+
description?: string | undefined;
|
|
119
|
+
}, {
|
|
120
|
+
type: "boolean";
|
|
121
|
+
default?: boolean | undefined;
|
|
122
|
+
description?: string | undefined;
|
|
123
|
+
}>]>>>;
|
|
124
|
+
/** Where child nodes go, by slot name. `children` is the unnamed one. */
|
|
125
|
+
slots: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
126
|
+
description: z.ZodString;
|
|
127
|
+
/** Whether a recipe must put something here. */
|
|
128
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
129
|
+
/** At most this many nodes; absent means any number. */
|
|
130
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
131
|
+
}, "strip", z.ZodTypeAny, {
|
|
132
|
+
required: boolean;
|
|
133
|
+
description: string;
|
|
134
|
+
max?: number | undefined;
|
|
135
|
+
}, {
|
|
136
|
+
description: string;
|
|
137
|
+
required?: boolean | undefined;
|
|
138
|
+
max?: number | undefined;
|
|
139
|
+
}>>>;
|
|
140
|
+
/** A content primitive's field: what kind, and whether a recipe must bind one. */
|
|
141
|
+
content: z.ZodOptional<z.ZodObject<{
|
|
142
|
+
type: z.ZodEnum<["text", "richtext", "link", "image"]>;
|
|
143
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
144
|
+
}, "strip", z.ZodTypeAny, {
|
|
145
|
+
type: "link" | "text" | "richtext" | "image";
|
|
146
|
+
required: boolean;
|
|
147
|
+
}, {
|
|
148
|
+
type: "link" | "text" | "richtext" | "image";
|
|
149
|
+
required?: boolean | undefined;
|
|
150
|
+
}>>;
|
|
151
|
+
}, "strip", z.ZodTypeAny, {
|
|
152
|
+
name: string;
|
|
153
|
+
description: string;
|
|
154
|
+
kind: "layout" | "content";
|
|
155
|
+
props: Record<string, {
|
|
156
|
+
type: "token";
|
|
157
|
+
tokenGroup: string;
|
|
158
|
+
allowed: [string, ...string[]];
|
|
159
|
+
default?: string | undefined;
|
|
160
|
+
description?: string | undefined;
|
|
161
|
+
} | {
|
|
162
|
+
type: "enum";
|
|
163
|
+
values: [string | number, ...(string | number)[]];
|
|
164
|
+
default?: string | number | undefined;
|
|
165
|
+
description?: string | undefined;
|
|
166
|
+
} | {
|
|
167
|
+
type: "boolean";
|
|
168
|
+
default?: boolean | undefined;
|
|
169
|
+
description?: string | undefined;
|
|
170
|
+
}>;
|
|
171
|
+
slots: Record<string, {
|
|
172
|
+
required: boolean;
|
|
173
|
+
description: string;
|
|
174
|
+
max?: number | undefined;
|
|
175
|
+
}>;
|
|
176
|
+
content?: {
|
|
177
|
+
type: "link" | "text" | "richtext" | "image";
|
|
178
|
+
required: boolean;
|
|
179
|
+
} | undefined;
|
|
180
|
+
renders?: string | undefined;
|
|
181
|
+
}, {
|
|
182
|
+
name: string;
|
|
183
|
+
description: string;
|
|
184
|
+
kind: "layout" | "content";
|
|
185
|
+
content?: {
|
|
186
|
+
type: "link" | "text" | "richtext" | "image";
|
|
187
|
+
required?: boolean | undefined;
|
|
188
|
+
} | undefined;
|
|
189
|
+
renders?: string | undefined;
|
|
190
|
+
props?: Record<string, {
|
|
191
|
+
type: "token";
|
|
192
|
+
tokenGroup: string;
|
|
193
|
+
allowed: [string, ...string[]];
|
|
194
|
+
default?: string | undefined;
|
|
195
|
+
description?: string | undefined;
|
|
196
|
+
} | {
|
|
197
|
+
type: "enum";
|
|
198
|
+
values: [string | number, ...(string | number)[]];
|
|
199
|
+
default?: string | number | undefined;
|
|
200
|
+
description?: string | undefined;
|
|
201
|
+
} | {
|
|
202
|
+
type: "boolean";
|
|
203
|
+
default?: boolean | undefined;
|
|
204
|
+
description?: string | undefined;
|
|
205
|
+
}> | undefined;
|
|
206
|
+
slots?: Record<string, {
|
|
207
|
+
description: string;
|
|
208
|
+
required?: boolean | undefined;
|
|
209
|
+
max?: number | undefined;
|
|
210
|
+
}> | undefined;
|
|
211
|
+
}>, {
|
|
212
|
+
name: string;
|
|
213
|
+
description: string;
|
|
214
|
+
kind: "layout" | "content";
|
|
215
|
+
props: Record<string, {
|
|
216
|
+
type: "token";
|
|
217
|
+
tokenGroup: string;
|
|
218
|
+
allowed: [string, ...string[]];
|
|
219
|
+
default?: string | undefined;
|
|
220
|
+
description?: string | undefined;
|
|
221
|
+
} | {
|
|
222
|
+
type: "enum";
|
|
223
|
+
values: [string | number, ...(string | number)[]];
|
|
224
|
+
default?: string | number | undefined;
|
|
225
|
+
description?: string | undefined;
|
|
226
|
+
} | {
|
|
227
|
+
type: "boolean";
|
|
228
|
+
default?: boolean | undefined;
|
|
229
|
+
description?: string | undefined;
|
|
230
|
+
}>;
|
|
231
|
+
slots: Record<string, {
|
|
232
|
+
required: boolean;
|
|
233
|
+
description: string;
|
|
234
|
+
max?: number | undefined;
|
|
235
|
+
}>;
|
|
236
|
+
content?: {
|
|
237
|
+
type: "link" | "text" | "richtext" | "image";
|
|
238
|
+
required: boolean;
|
|
239
|
+
} | undefined;
|
|
240
|
+
renders?: string | undefined;
|
|
241
|
+
}, {
|
|
242
|
+
name: string;
|
|
243
|
+
description: string;
|
|
244
|
+
kind: "layout" | "content";
|
|
245
|
+
content?: {
|
|
246
|
+
type: "link" | "text" | "richtext" | "image";
|
|
247
|
+
required?: boolean | undefined;
|
|
248
|
+
} | undefined;
|
|
249
|
+
renders?: string | undefined;
|
|
250
|
+
props?: Record<string, {
|
|
251
|
+
type: "token";
|
|
252
|
+
tokenGroup: string;
|
|
253
|
+
allowed: [string, ...string[]];
|
|
254
|
+
default?: string | undefined;
|
|
255
|
+
description?: string | undefined;
|
|
256
|
+
} | {
|
|
257
|
+
type: "enum";
|
|
258
|
+
values: [string | number, ...(string | number)[]];
|
|
259
|
+
default?: string | number | undefined;
|
|
260
|
+
description?: string | undefined;
|
|
261
|
+
} | {
|
|
262
|
+
type: "boolean";
|
|
263
|
+
default?: boolean | undefined;
|
|
264
|
+
description?: string | undefined;
|
|
265
|
+
}> | undefined;
|
|
266
|
+
slots?: Record<string, {
|
|
267
|
+
description: string;
|
|
268
|
+
required?: boolean | undefined;
|
|
269
|
+
max?: number | undefined;
|
|
270
|
+
}> | undefined;
|
|
271
|
+
}>;
|
|
272
|
+
export type PrimitiveContract = z.infer<typeof PrimitiveContractSchema>;
|
|
273
|
+
/** What an author writes in a `.primitive.ts`, before defaults are applied. */
|
|
274
|
+
export type PrimitiveContractInput = z.input<typeof PrimitiveContractSchema>;
|
|
275
|
+
//# sourceMappingURL=primitive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../../src/contract/primitive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAiDvB,eAAO,MAAM,mBAAmB;;IArB9B,+DAA+D;;IAE/D,2EAA2E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuB3E,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,mBAAmB;;IAE9B,gDAAgD;;IAEhD,wDAAwD;;;;;;;;;;EAExD,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,kGAAkG;AAClG,eAAO,MAAM,0BAA0B,kDAAgD,CAAA;AAEvF,eAAO,MAAM,uBAAuB;;IAGhC,wEAAwE;;;IAGxE,0EAA0E;;;;QAhD5E,+DAA+D;;QAE/D,2EAA2E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiDzE,yEAAyE;;;QApB3E,gDAAgD;;QAEhD,wDAAwD;;;;;;;;;;;IAoBtD,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDlF,CAAA;AAEJ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/*
|
|
3
|
+
A primitive: a building block a composed section (a "recipe", forumone-2026#801)
|
|
4
|
+
may be made of, but that is never a block on its own.
|
|
5
|
+
|
|
6
|
+
Layout primitives — a section band, a constrained column, a grid, a stack —
|
|
7
|
+
are deliberately absent from `components`, so the CMS can never place a bare
|
|
8
|
+
grid on a page as though it were content. A recipe needs them anyway, to say
|
|
9
|
+
how its content is arranged. So they get a contract of their own, in a
|
|
10
|
+
section of the manifest of their own, which `generateBlocks` never reads.
|
|
11
|
+
|
|
12
|
+
What a primitive declares is what a recipe may set, and nothing else:
|
|
13
|
+
|
|
14
|
+
- **props**, each one a closed set. A spacing prop names the tokens it takes,
|
|
15
|
+
an enum its values, a number its range. There is no free-form string, no
|
|
16
|
+
`className`, no `style`: a recipe can only say what the design system
|
|
17
|
+
already lets it say, which is the whole safety argument for letting a
|
|
18
|
+
marketer compose one without a code review.
|
|
19
|
+
- **slots**, where other nodes go. A layout primitive has them; a content
|
|
20
|
+
primitive has none.
|
|
21
|
+
- **content**, for a content primitive (a heading, a run of text, a button,
|
|
22
|
+
an image): the kind of content field it shows, which a recipe binds to one
|
|
23
|
+
of its own fields.
|
|
24
|
+
*/
|
|
25
|
+
const TokenPropSchema = z.object({
|
|
26
|
+
type: z.literal('token'),
|
|
27
|
+
/** The token category the values come from, e.g. `spacing`. */
|
|
28
|
+
tokenGroup: z.string().min(1),
|
|
29
|
+
/** The token names allowed, by name without `--`. Every one must exist. */
|
|
30
|
+
allowed: z.array(z.string().min(1)).nonempty(),
|
|
31
|
+
default: z.string().optional(),
|
|
32
|
+
description: z.string().optional(),
|
|
33
|
+
});
|
|
34
|
+
const EnumPropSchema = z.object({
|
|
35
|
+
type: z.literal('enum'),
|
|
36
|
+
values: z.array(z.union([z.string().min(1), z.number()])).nonempty(),
|
|
37
|
+
default: z.union([z.string(), z.number()]).optional(),
|
|
38
|
+
description: z.string().optional(),
|
|
39
|
+
});
|
|
40
|
+
const BooleanPropSchema = z.object({
|
|
41
|
+
type: z.literal('boolean'),
|
|
42
|
+
default: z.boolean().optional(),
|
|
43
|
+
description: z.string().optional(),
|
|
44
|
+
});
|
|
45
|
+
export const PrimitivePropSchema = z.discriminatedUnion('type', [
|
|
46
|
+
TokenPropSchema,
|
|
47
|
+
EnumPropSchema,
|
|
48
|
+
BooleanPropSchema,
|
|
49
|
+
]);
|
|
50
|
+
export const PrimitiveSlotSchema = z.object({
|
|
51
|
+
description: z.string().min(1),
|
|
52
|
+
/** Whether a recipe must put something here. */
|
|
53
|
+
required: z.boolean().default(false),
|
|
54
|
+
/** At most this many nodes; absent means any number. */
|
|
55
|
+
max: z.number().int().positive().optional(),
|
|
56
|
+
});
|
|
57
|
+
/** The content field kinds a content primitive can show. A subset of a contract's field types. */
|
|
58
|
+
export const PrimitiveContentTypeSchema = z.enum(['text', 'richtext', 'link', 'image']);
|
|
59
|
+
export const PrimitiveContractSchema = z
|
|
60
|
+
.object({
|
|
61
|
+
name: z.string().min(1).regex(/^[A-Z][A-Za-z0-9]+$/, 'Primitive names must be PascalCase'),
|
|
62
|
+
/** `layout` arranges other nodes; `content` shows one content field. */
|
|
63
|
+
kind: z.enum(['layout', 'content']),
|
|
64
|
+
description: z.string().min(20).max(280),
|
|
65
|
+
/** The design-system export it renders, when that differs from `name`. */
|
|
66
|
+
renders: z.string().optional(),
|
|
67
|
+
props: z.record(z.string(), PrimitivePropSchema).default({}),
|
|
68
|
+
/** Where child nodes go, by slot name. `children` is the unnamed one. */
|
|
69
|
+
slots: z.record(z.string(), PrimitiveSlotSchema).default({}),
|
|
70
|
+
/** A content primitive's field: what kind, and whether a recipe must bind one. */
|
|
71
|
+
content: z
|
|
72
|
+
.object({
|
|
73
|
+
type: PrimitiveContentTypeSchema,
|
|
74
|
+
required: z.boolean().default(true),
|
|
75
|
+
})
|
|
76
|
+
.optional(),
|
|
77
|
+
})
|
|
78
|
+
.superRefine((primitive, ctx) => {
|
|
79
|
+
if (primitive.kind === 'content' && !primitive.content) {
|
|
80
|
+
ctx.addIssue({
|
|
81
|
+
code: z.ZodIssueCode.custom,
|
|
82
|
+
path: ['content'],
|
|
83
|
+
message: `"${primitive.name}" is a content primitive, so it says what kind of content it shows.`,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
if (primitive.kind === 'content' && Object.keys(primitive.slots).length > 0) {
|
|
87
|
+
ctx.addIssue({
|
|
88
|
+
code: z.ZodIssueCode.custom,
|
|
89
|
+
path: ['slots'],
|
|
90
|
+
message: `"${primitive.name}" is a content primitive, so nothing nests inside it.`,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (primitive.kind === 'layout' && primitive.content) {
|
|
94
|
+
ctx.addIssue({
|
|
95
|
+
code: z.ZodIssueCode.custom,
|
|
96
|
+
path: ['content'],
|
|
97
|
+
message: `"${primitive.name}" is a layout primitive: its content is what its slots hold.`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
if (primitive.kind === 'layout' && Object.keys(primitive.slots).length === 0) {
|
|
101
|
+
ctx.addIssue({
|
|
102
|
+
code: z.ZodIssueCode.custom,
|
|
103
|
+
path: ['slots'],
|
|
104
|
+
message: `"${primitive.name}" is a layout primitive with nowhere to put anything.`,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
for (const [name, prop] of Object.entries(primitive.props)) {
|
|
108
|
+
if (prop.type === 'enum' && prop.default !== undefined && !prop.values.includes(prop.default)) {
|
|
109
|
+
ctx.addIssue({
|
|
110
|
+
code: z.ZodIssueCode.custom,
|
|
111
|
+
path: ['props', name, 'default'],
|
|
112
|
+
message: `The default "${prop.default}" is not one of "${name}"'s values.`,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
if (prop.type === 'token' && prop.default !== undefined && !prop.allowed.includes(prop.default)) {
|
|
116
|
+
ctx.addIssue({
|
|
117
|
+
code: z.ZodIssueCode.custom,
|
|
118
|
+
path: ['props', name, 'default'],
|
|
119
|
+
message: `The default "${prop.default}" is not one of the tokens "${name}" allows.`,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=primitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../src/contract/primitive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
|
-
* The current version of the contract schema.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* The current version of the contract schema. Manifests declare the version
|
|
4
|
+
* they satisfy so the loader can reject one it does not understand loudly.
|
|
5
|
+
*
|
|
6
|
+
* 1.1.0 added `primitives` (forumone-2026#801), an optional section, so a 1.0.0
|
|
7
|
+
* manifest is still a valid 1.1.0 one with none. A minor bump stays readable:
|
|
8
|
+
* {@link SUPPORTED_CONTRACT_VERSIONS} lists every version the loader accepts,
|
|
9
|
+
* and a breaking change starts a new major that drops the old ones.
|
|
6
10
|
*/
|
|
7
|
-
export declare const CONTRACT_VERSION = "1.
|
|
11
|
+
export declare const CONTRACT_VERSION = "1.1.0";
|
|
12
|
+
/** Every contract version a manifest may declare and still load. */
|
|
13
|
+
export declare const SUPPORTED_CONTRACT_VERSIONS: readonly ["1.0.0", "1.1.0"];
|
|
8
14
|
declare const FieldTypeSchema: z.ZodEnum<["text", "richtext", "link", "image", "video", "select", "group", "array", "boolean", "number"]>;
|
|
9
15
|
declare const PlacementSchema: z.ZodEnum<["page", "section", "inline"]>;
|
|
10
16
|
declare const CategorySchema: z.ZodEnum<["hero", "section", "card", "media", "cta", "navigation", "data", "form", "utility"]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/contract/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/contract/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,UAAU,CAAA;AAEvC,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,6BAA8B,CAAA;AAEtE,QAAA,MAAM,eAAe,4GAWnB,CAAA;AAEF,QAAA,MAAM,eAAe,0CAAwC,CAAA;AAE7D,QAAA,MAAM,cAAc,iGAUlB,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,QAAA,MAAM,WAAW,uGAUf,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;IACrC,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAA;CAChC,CAAA;AAED,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,EAAE,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;CACrC,CAAA;AAqED,eAAO,MAAM,uBAAuB;;;IAIlC;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFH,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAExD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,MAAM,CAE3F;AACD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA"}
|
package/dist/contract/schema.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
|
-
* The current version of the contract schema.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* The current version of the contract schema. Manifests declare the version
|
|
4
|
+
* they satisfy so the loader can reject one it does not understand loudly.
|
|
5
|
+
*
|
|
6
|
+
* 1.1.0 added `primitives` (forumone-2026#801), an optional section, so a 1.0.0
|
|
7
|
+
* manifest is still a valid 1.1.0 one with none. A minor bump stays readable:
|
|
8
|
+
* {@link SUPPORTED_CONTRACT_VERSIONS} lists every version the loader accepts,
|
|
9
|
+
* and a breaking change starts a new major that drops the old ones.
|
|
6
10
|
*/
|
|
7
|
-
export const CONTRACT_VERSION = '1.
|
|
11
|
+
export const CONTRACT_VERSION = '1.1.0';
|
|
12
|
+
/** Every contract version a manifest may declare and still load. */
|
|
13
|
+
export const SUPPORTED_CONTRACT_VERSIONS = ['1.0.0', '1.1.0'];
|
|
8
14
|
const FieldTypeSchema = z.enum([
|
|
9
15
|
'text',
|
|
10
16
|
'richtext',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/contract/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/contract/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forumone/throughline-design-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0-next-d8178f0",
|
|
4
4
|
"description": "The design-system side of Throughline: the component contract and manifest a design system publishes, its linter, and the Payload blocks, rendering and admin components generated from it.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|