@texuli/spec 0.4.0 → 0.5.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/README.md +12 -10
- package/dist/generated/typescript/blueprint.d.ts +1 -1
- package/dist/generated/typescript/blueprint.js +1 -1
- package/dist/generated/typescript/catalog-schema.js +1 -1
- package/dist/generated/typescript/diagnostics.js +1 -1
- package/dist/generated/typescript/manifest.js +1 -1
- package/dist/generated/typescript/vocabulary.d.ts +44 -2
- package/dist/generated/typescript/vocabulary.js +6 -2
- package/dist/generated/typescript/workflow.js +1 -1
- package/dist/migrations/0.4.0-0.5.0.d.ts +8 -0
- package/dist/migrations/0.4.0-0.5.0.js +11 -0
- package/dist/migrations/index.js +2 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,9 +14,9 @@ by Texuli's Kotlin Multiplatform twin. The package is framework-free: no
|
|
|
14
14
|
DOM, no Svelte, no Node APIs and no runtime dependencies.
|
|
15
15
|
|
|
16
16
|
> **Status: 0.x release.** Texuli is in development. The packages are
|
|
17
|
-
> published to npm as `0.
|
|
18
|
-
> stable release). Under 0.x, a new minor (`0.
|
|
19
|
-
> changes, so pin the exact version or use `^0.
|
|
17
|
+
> published to npm as `0.5.0`, a pre-1.0 release (1.0.0 will be the first
|
|
18
|
+
> stable release). Under 0.x, a new minor (`0.6.0`) may contain breaking
|
|
19
|
+
> changes, so pin the exact version or use `^0.5.0`, which accepts only 0.5.x.
|
|
20
20
|
|
|
21
21
|
> **New in `0.4.0`.** `@texuli/spec@0.4.0` carries **spec 0.4.0**: spec
|
|
22
22
|
> 0.3.0 (state, bindings, closed actions, `reorder`, workflow graphs), spec
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
validateInstance,
|
|
57
57
|
} from '@texuli/spec';
|
|
58
58
|
|
|
59
|
-
SPEC_VERSION; // the spec version: '0.4.0'
|
|
59
|
+
SPEC_VERSION; // the spec version: '0.5.0' in @texuli/spec@0.5.0 ('0.4.0' in @texuli/spec@0.4.0)
|
|
60
60
|
SPEC_COMPONENT_IDS.includes('alert'); // true: the closed component vocabulary
|
|
61
61
|
|
|
62
62
|
// The dialect validator: a closed subset of JSON Schema 2020-12.
|
|
@@ -88,7 +88,7 @@ import { type Schema, type SpecCatalog, validateBlueprint } from '@texuli/spec';
|
|
|
88
88
|
import { migrateBlueprint } from '@texuli/spec/migrate';
|
|
89
89
|
import { validateWorkflowGraph } from '@texuli/spec/workflow';
|
|
90
90
|
|
|
91
|
-
const migrated = migrateBlueprint(blueprint); // 0.2.0 → 0.3.0 → 0.4.0; never throws
|
|
91
|
+
const migrated = migrateBlueprint(blueprint); // 0.2.0 → 0.3.0 → 0.4.0 → 0.5.0; never throws
|
|
92
92
|
const result = validateBlueprint(migrated.blueprint, {
|
|
93
93
|
blueprintSchema: blueprintSchemaJson as Schema,
|
|
94
94
|
catalog: componentsJson as SpecCatalog,
|
|
@@ -190,11 +190,13 @@ catalog hash, and from 0.3.0 may declare the exact spec version it was
|
|
|
190
190
|
written for (`spec`; omitted means 0.2.0). `migrateBlueprint`
|
|
191
191
|
(`@texuli/spec/migrate`) brings an
|
|
192
192
|
envelope up to the current spec with pure, per-version steps
|
|
193
|
-
(`src/migrations/`: `0.2.0 → 0.3.0
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
`
|
|
197
|
-
`
|
|
193
|
+
(`src/migrations/`: `0.2.0 → 0.3.0`, `0.3.0 → 0.4.0` and `0.4.0 → 0.5.0`,
|
|
194
|
+
each of which only stamps `spec`); a compatible version range is planned,
|
|
195
|
+
not built. `@texuli/spec@0.5.0` carries spec `0.5.0`, which adds the
|
|
196
|
+
`data-cohort-table`, `data-notification-inbox`, `data-filter-builder` and
|
|
197
|
+
`time-field` catalog ids; `@texuli/spec@0.4.0` carried spec `0.4.0` (digest
|
|
198
|
+
`fac29f542b16ddb78ab401c508e5b8346f655991c56e25aa811f4931661a8cb3`). Every
|
|
199
|
+
pin is in `versions.json`.
|
|
198
200
|
|
|
199
201
|
The full rules (the digest, `versions.json` pins, regeneration and the
|
|
200
202
|
conformance harness) are in
|
|
@@ -213,7 +213,7 @@ export interface BlueprintEnvelope {
|
|
|
213
213
|
/**
|
|
214
214
|
* The spec version the envelope was written for. Omitted means 0.2.0; migrateBlueprint stamps it.
|
|
215
215
|
*/
|
|
216
|
-
spec?: '0.3.0' | '0.4.0';
|
|
216
|
+
spec?: '0.3.0' | '0.4.0' | '0.5.0';
|
|
217
217
|
/**
|
|
218
218
|
* Local state declarations (ADR-008), at most 64. Names, counts and per-type rules are checked by
|
|
219
219
|
* the validator.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/blueprint.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.5.0, digest 1ba15e8b082f68140c4b2768b8fd69c9f760e655dd117fac756f356a71525b2d
|
|
3
3
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/catalog.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.5.0, digest 1ba15e8b082f68140c4b2768b8fd69c9f760e655dd117fac756f356a71525b2d
|
|
3
3
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/diagnostics.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.5.0, digest 1ba15e8b082f68140c4b2768b8fd69c9f760e655dd117fac756f356a71525b2d
|
|
3
3
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/manifest.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.5.0, digest 1ba15e8b082f68140c4b2768b8fd69c9f760e655dd117fac756f356a71525b2d
|
|
3
3
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** The built catalog this vocabulary was projected from. */
|
|
2
|
-
export declare const SPEC_CATALOG_HASH = "
|
|
2
|
+
export declare const SPEC_CATALOG_HASH = "4ac7ecedd1c59d1999a9f7eea2f523c7653fececb97258a478f09253f6b6057f";
|
|
3
3
|
/** Every closed component id, sorted. */
|
|
4
|
-
export declare const SPEC_COMPONENT_IDS: readonly ["action-form", "alert", "alert-dialog", "analytics-grid", "app-nav", "badge", "banner", "blocks-code", "blocks-data", "blocks-diagram", "blocks-embed", "blocks-interactive", "blocks-map", "blocks-media", "blocks-structure", "blocks-text", "breadcrumb", "button", "button-group", "callout", "card", "charts-area", "charts-bar", "charts-bubble", "charts-bullet", "charts-canvas-renderer", "charts-cartesian", "charts-combo", "charts-donut", "charts-funnel", "charts-gauge", "charts-geo-map", "charts-geo-point-map", "charts-heatmap", "charts-line", "charts-network", "charts-pie", "charts-progress-ring", "charts-sankey", "charts-scatter", "charts-sparkline", "charts-stacked-bar", "charts-sunburst", "charts-treemap", "chat-message", "chat-thread", "checkbox", "chip", "code", "combobox", "command-palette", "content-layout", "context-menu", "context-menu-trigger", "control-choice", "control-filter", "control-slider", "control-toggle", "data-board", "data-calendar", "data-files", "data-grid", "data-map", "data-timeline", "data-tree-view", "deck-slide", "description", "detail-panel", "dialog", "drawer", "dropdown-menu", "dropdown-menu-content", "dropdown-menu-item", "dropdown-menu-trigger", "empty-state", "error-state", "field", "field-error", "flow-action", "flow-view", "form", "form-field", "form-submit", "host-region", "hover-card", "hover-card-content", "icon-button", "inline-text", "input", "input-group", "kbd", "kpi", "label", "layout-auth-split", "layout-blog", "layout-card", "layout-chrome", "layout-dashboard-grid", "layout-deck", "layout-doc", "layout-docs", "layout-drawer", "layout-dual-sidebar", "layout-editorial", "layout-grid", "layout-host", "layout-landing", "layout-marketing", "layout-page", "layout-pricing", "layout-row", "layout-settings", "layout-sidebar", "layout-split", "layout-stack", "layout-tile", "layout-top-nav", "layout-wizard", "media-composition-canvas", "media-composition-svg", "media-image", "menubar", "menubar-trigger", "multi-select", "nav-icon", "navigation-menu", "pagination", "popover", "popover-content", "radio", "radio-group", "responsive-modal", "screen-outlet", "select", "select-content", "select-group", "select-item", "select-label", "select-portal", "select-separator", "select-trigger", "select-value", "select-viewport", "sheet", "sidebar", "sortable-list", "split-view", "stat", "stepper", "switch", "table", "tag", "text-counter", "textarea", "timeline", "toaster", "tooltip", "workflow-graph"];
|
|
4
|
+
export declare const SPEC_COMPONENT_IDS: readonly ["action-form", "alert", "alert-dialog", "analytics-grid", "app-nav", "badge", "banner", "blocks-code", "blocks-data", "blocks-diagram", "blocks-embed", "blocks-interactive", "blocks-map", "blocks-media", "blocks-structure", "blocks-text", "breadcrumb", "button", "button-group", "callout", "card", "charts-area", "charts-bar", "charts-bubble", "charts-bullet", "charts-canvas-renderer", "charts-cartesian", "charts-combo", "charts-donut", "charts-funnel", "charts-gauge", "charts-geo-map", "charts-geo-point-map", "charts-heatmap", "charts-line", "charts-network", "charts-pie", "charts-progress-ring", "charts-sankey", "charts-scatter", "charts-sparkline", "charts-stacked-bar", "charts-sunburst", "charts-treemap", "chat-message", "chat-thread", "checkbox", "chip", "code", "combobox", "command-palette", "content-layout", "context-menu", "context-menu-trigger", "control-choice", "control-filter", "control-slider", "control-toggle", "data-board", "data-calendar", "data-cohort-table", "data-files", "data-filter-builder", "data-grid", "data-map", "data-notification-inbox", "data-timeline", "data-tree-view", "deck-slide", "description", "detail-panel", "dialog", "drawer", "dropdown-menu", "dropdown-menu-content", "dropdown-menu-item", "dropdown-menu-trigger", "empty-state", "error-state", "field", "field-error", "flow-action", "flow-view", "form", "form-field", "form-submit", "host-region", "hover-card", "hover-card-content", "icon-button", "inline-text", "input", "input-group", "kbd", "kpi", "label", "layout-auth-split", "layout-blog", "layout-card", "layout-chrome", "layout-dashboard-grid", "layout-deck", "layout-doc", "layout-docs", "layout-drawer", "layout-dual-sidebar", "layout-editorial", "layout-grid", "layout-host", "layout-landing", "layout-marketing", "layout-page", "layout-pricing", "layout-row", "layout-settings", "layout-sidebar", "layout-split", "layout-stack", "layout-tile", "layout-top-nav", "layout-wizard", "media-composition-canvas", "media-composition-svg", "media-image", "menubar", "menubar-trigger", "multi-select", "nav-icon", "navigation-menu", "pagination", "popover", "popover-content", "radio", "radio-group", "responsive-modal", "screen-outlet", "select", "select-content", "select-group", "select-item", "select-label", "select-portal", "select-separator", "select-trigger", "select-value", "select-viewport", "sheet", "sidebar", "sortable-list", "split-view", "stat", "stepper", "switch", "table", "tag", "text-counter", "textarea", "time-field", "timeline", "toaster", "tooltip", "workflow-graph"];
|
|
5
5
|
export type SpecComponentId = (typeof SPEC_COMPONENT_IDS)[number];
|
|
6
6
|
/** The props a blueprint may set on each component (platform extensions left out). */
|
|
7
7
|
export interface SpecComponentProps {
|
|
@@ -481,12 +481,31 @@ export interface SpecComponentProps {
|
|
|
481
481
|
timeZone?: string;
|
|
482
482
|
view?: 'month' | 'week' | 'day' | 'agenda';
|
|
483
483
|
};
|
|
484
|
+
'data-cohort-table': {
|
|
485
|
+
average?: boolean;
|
|
486
|
+
caption: string;
|
|
487
|
+
captionHidden?: boolean;
|
|
488
|
+
density?: 'compact' | 'default' | 'comfortable';
|
|
489
|
+
heat?: boolean;
|
|
490
|
+
locale?: string;
|
|
491
|
+
max?: number;
|
|
492
|
+
periods?: readonly unknown[];
|
|
493
|
+
rows: readonly unknown[];
|
|
494
|
+
valueKind?: 'rate' | 'count';
|
|
495
|
+
};
|
|
484
496
|
'data-files': {
|
|
485
497
|
density?: 'comfortable' | 'compact';
|
|
486
498
|
entries: readonly unknown[];
|
|
487
499
|
label: string;
|
|
488
500
|
layout?: 'grid' | 'list';
|
|
489
501
|
};
|
|
502
|
+
'data-filter-builder': {
|
|
503
|
+
disabled?: boolean;
|
|
504
|
+
fields: readonly unknown[];
|
|
505
|
+
label: string;
|
|
506
|
+
maxDepth?: number;
|
|
507
|
+
value?: Readonly<Record<string, unknown>>;
|
|
508
|
+
};
|
|
490
509
|
'data-grid': {
|
|
491
510
|
caption: string;
|
|
492
511
|
columns: readonly unknown[];
|
|
@@ -500,6 +519,15 @@ export interface SpecComponentProps {
|
|
|
500
519
|
listPlacement?: 'side' | 'below';
|
|
501
520
|
markers: readonly unknown[];
|
|
502
521
|
};
|
|
522
|
+
'data-notification-inbox': {
|
|
523
|
+
filter?: 'all' | 'unread';
|
|
524
|
+
headingLevel?: number;
|
|
525
|
+
items: readonly unknown[];
|
|
526
|
+
locale?: string;
|
|
527
|
+
markReadOnOpen?: boolean;
|
|
528
|
+
now?: string;
|
|
529
|
+
timeZone?: string;
|
|
530
|
+
};
|
|
503
531
|
'data-timeline': {
|
|
504
532
|
dependencies?: readonly unknown[];
|
|
505
533
|
label: string;
|
|
@@ -1088,6 +1116,20 @@ export interface SpecComponentProps {
|
|
|
1088
1116
|
rows?: number;
|
|
1089
1117
|
value?: string;
|
|
1090
1118
|
};
|
|
1119
|
+
'time-field': {
|
|
1120
|
+
description?: string;
|
|
1121
|
+
disabled?: boolean;
|
|
1122
|
+
error?: string;
|
|
1123
|
+
hourCycle?: number;
|
|
1124
|
+
label: string;
|
|
1125
|
+
labels?: Readonly<Record<string, unknown>>;
|
|
1126
|
+
locale?: string;
|
|
1127
|
+
minuteStep?: number;
|
|
1128
|
+
name?: string;
|
|
1129
|
+
required?: boolean;
|
|
1130
|
+
size?: 'sm' | 'md';
|
|
1131
|
+
value?: string;
|
|
1132
|
+
};
|
|
1091
1133
|
timeline: {
|
|
1092
1134
|
hrefTrust?: 'developer' | 'untrusted';
|
|
1093
1135
|
items?: readonly unknown[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Generated by @texuli/spec from catalog/components.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.5.0, digest 1ba15e8b082f68140c4b2768b8fd69c9f760e655dd117fac756f356a71525b2d
|
|
3
3
|
/** The built catalog this vocabulary was projected from. */
|
|
4
|
-
export const SPEC_CATALOG_HASH = '
|
|
4
|
+
export const SPEC_CATALOG_HASH = '4ac7ecedd1c59d1999a9f7eea2f523c7653fececb97258a478f09253f6b6057f';
|
|
5
5
|
/** Every closed component id, sorted. */
|
|
6
6
|
export const SPEC_COMPONENT_IDS = [
|
|
7
7
|
'action-form',
|
|
@@ -64,9 +64,12 @@ export const SPEC_COMPONENT_IDS = [
|
|
|
64
64
|
'control-toggle',
|
|
65
65
|
'data-board',
|
|
66
66
|
'data-calendar',
|
|
67
|
+
'data-cohort-table',
|
|
67
68
|
'data-files',
|
|
69
|
+
'data-filter-builder',
|
|
68
70
|
'data-grid',
|
|
69
71
|
'data-map',
|
|
72
|
+
'data-notification-inbox',
|
|
70
73
|
'data-timeline',
|
|
71
74
|
'data-tree-view',
|
|
72
75
|
'deck-slide',
|
|
@@ -158,6 +161,7 @@ export const SPEC_COMPONENT_IDS = [
|
|
|
158
161
|
'tag',
|
|
159
162
|
'text-counter',
|
|
160
163
|
'textarea',
|
|
164
|
+
'time-field',
|
|
161
165
|
'timeline',
|
|
162
166
|
'toaster',
|
|
163
167
|
'tooltip',
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by @texuli/spec from schemas/workflow.schema.json. Do not edit: run the spec generator.
|
|
2
|
-
// Spec 0.
|
|
2
|
+
// Spec 0.5.0, digest 1ba15e8b082f68140c4b2768b8fd69c9f760e655dd117fac756f356a71525b2d
|
|
3
3
|
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SpecMigration } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* 0.4.0 → 0.5.0 is additive (PLAN_009 catalog coverage): the catalog gains
|
|
4
|
+
* the data-cohort-table, data-notification-inbox and data-filter-builder
|
|
5
|
+
* ids and the app-tier time-field id. Every 0.4.0 envelope is a valid 0.5.0
|
|
6
|
+
* envelope, so the step only stamps `spec`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const migration040to050: SpecMigration;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0.4.0 → 0.5.0 is additive (PLAN_009 catalog coverage): the catalog gains
|
|
3
|
+
* the data-cohort-table, data-notification-inbox and data-filter-builder
|
|
4
|
+
* ids and the app-tier time-field id. Every 0.4.0 envelope is a valid 0.5.0
|
|
5
|
+
* envelope, so the step only stamps `spec`.
|
|
6
|
+
*/
|
|
7
|
+
export const migration040to050 = Object.freeze({
|
|
8
|
+
from: '0.4.0',
|
|
9
|
+
to: '0.5.0',
|
|
10
|
+
migrate: (envelope) => ({ ...envelope, spec: '0.5.0' }),
|
|
11
|
+
});
|
package/dist/migrations/index.js
CHANGED
|
@@ -2,12 +2,14 @@ import { isRecord } from "../dialect.js";
|
|
|
2
2
|
import { SPEC_VERSION } from "../version.js";
|
|
3
3
|
import { migration020to030 } from "./0.2.0-0.3.0.js";
|
|
4
4
|
import { migration030to040 } from "./0.3.0-0.4.0.js";
|
|
5
|
+
import { migration040to050 } from "./0.4.0-0.5.0.js";
|
|
5
6
|
/** The version an envelope without `spec` was written for. */
|
|
6
7
|
export const UNDECLARED_SPEC_VERSION = '0.2.0';
|
|
7
8
|
/** Every step, in order; each `to` is the next step's `from`. */
|
|
8
9
|
export const SPEC_MIGRATIONS = Object.freeze([
|
|
9
10
|
migration020to030,
|
|
10
11
|
migration030to040,
|
|
12
|
+
migration040to050,
|
|
11
13
|
]);
|
|
12
14
|
/**
|
|
13
15
|
* Bring a blueprint envelope up to `target` (the current spec by default)
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The semantic version of the spec documents in this package. */
|
|
2
|
-
export declare const SPEC_VERSION = "0.
|
|
2
|
+
export declare const SPEC_VERSION = "0.5.0";
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The semantic version of the spec documents in this package. */
|
|
2
|
-
export const SPEC_VERSION = '0.
|
|
2
|
+
export const SPEC_VERSION = '0.5.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@texuli/spec",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "The schema-first blueprint contract: JSON schemas, the catalog vocabulary, deterministic TypeScript and Kotlin projections, and the conformance harness.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"svelte",
|