@oddkin/workbench 0.0.0-stage → 1.0.0-beta.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/LICENSE +21 -0
- package/README.md +36 -2
- package/dist/app/copy.d.ts +43 -0
- package/dist/app/copy.d.ts.map +1 -0
- package/dist/app/copy.js +47 -0
- package/dist/app/copy.js.map +1 -0
- package/dist/app/define.d.ts +3 -0
- package/dist/app/define.d.ts.map +1 -0
- package/dist/app/define.js +10 -0
- package/dist/app/define.js.map +1 -0
- package/dist/app/details.d.ts +22 -0
- package/dist/app/details.d.ts.map +1 -0
- package/dist/app/details.js +16 -0
- package/dist/app/details.js.map +1 -0
- package/dist/app/index.d.ts +12 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +9 -0
- package/dist/app/index.js.map +1 -0
- package/dist/app/routes.d.ts +26 -0
- package/dist/app/routes.d.ts.map +1 -0
- package/dist/app/routes.js +94 -0
- package/dist/app/routes.js.map +1 -0
- package/dist/app/search.d.ts +17 -0
- package/dist/app/search.d.ts.map +1 -0
- package/dist/app/search.js +52 -0
- package/dist/app/search.js.map +1 -0
- package/dist/app/shell.d.ts +29 -0
- package/dist/app/shell.d.ts.map +1 -0
- package/dist/app/shell.js +435 -0
- package/dist/app/shell.js.map +1 -0
- package/dist/app/styles.d.ts +2 -0
- package/dist/app/styles.d.ts.map +1 -0
- package/dist/app/styles.js +373 -0
- package/dist/app/styles.js.map +1 -0
- package/dist/app/theme-studio.d.ts +12 -0
- package/dist/app/theme-studio.d.ts.map +1 -0
- package/dist/app/theme-studio.js +14 -0
- package/dist/app/theme-studio.js.map +1 -0
- package/dist/app/views.d.ts +34 -0
- package/dist/app/views.d.ts.map +1 -0
- package/dist/app/views.js +230 -0
- package/dist/app/views.js.map +1 -0
- package/dist/config/index.d.ts +170 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +148 -0
- package/dist/config/index.js.map +1 -0
- package/dist/conformance/button.d.ts +2 -0
- package/dist/conformance/button.d.ts.map +1 -0
- package/dist/conformance/button.js +233 -0
- package/dist/conformance/button.js.map +1 -0
- package/dist/conformance/index.d.ts +107 -0
- package/dist/conformance/index.d.ts.map +1 -0
- package/dist/conformance/index.js +60 -0
- package/dist/conformance/index.js.map +1 -0
- package/dist/data/build.d.ts +36 -0
- package/dist/data/build.d.ts.map +1 -0
- package/dist/data/build.js +248 -0
- package/dist/data/build.js.map +1 -0
- package/dist/data/import-map.d.ts +53 -0
- package/dist/data/import-map.d.ts.map +1 -0
- package/dist/data/import-map.js +160 -0
- package/dist/data/import-map.js.map +1 -0
- package/dist/data/index.d.ts +14 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +10 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/theme-studio.d.ts +21 -0
- package/dist/data/theme-studio.d.ts.map +1 -0
- package/dist/data/theme-studio.js +116 -0
- package/dist/data/theme-studio.js.map +1 -0
- package/dist/data/types.d.ts +169 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/data/types.js +4 -0
- package/dist/data/types.js.map +1 -0
- package/dist/examples/index.d.ts +101 -0
- package/dist/examples/index.d.ts.map +1 -0
- package/dist/examples/index.js +106 -0
- package/dist/examples/index.js.map +1 -0
- package/dist/frame/index.d.ts +9 -0
- package/dist/frame/index.d.ts.map +1 -0
- package/dist/frame/index.js +468 -0
- package/dist/frame/index.js.map +1 -0
- package/dist/internal/diagnostics.d.ts +17 -0
- package/dist/internal/diagnostics.d.ts.map +1 -0
- package/dist/internal/diagnostics.js +19 -0
- package/dist/internal/diagnostics.js.map +1 -0
- package/dist/node/bin.d.ts +3 -0
- package/dist/node/bin.d.ts.map +1 -0
- package/dist/node/bin.js +12 -0
- package/dist/node/bin.js.map +1 -0
- package/dist/node/cli.d.ts +17 -0
- package/dist/node/cli.d.ts.map +1 -0
- package/dist/node/cli.js +198 -0
- package/dist/node/cli.js.map +1 -0
- package/dist/node/config.d.ts +28 -0
- package/dist/node/config.d.ts.map +1 -0
- package/dist/node/config.js +80 -0
- package/dist/node/config.js.map +1 -0
- package/dist/node/generated.d.ts +19 -0
- package/dist/node/generated.d.ts.map +1 -0
- package/dist/node/generated.js +109 -0
- package/dist/node/generated.js.map +1 -0
- package/dist/node/html.d.ts +35 -0
- package/dist/node/html.d.ts.map +1 -0
- package/dist/node/html.js +51 -0
- package/dist/node/html.js.map +1 -0
- package/dist/node/index.d.ts +24 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +15 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/inputs.d.ts +24 -0
- package/dist/node/inputs.d.ts.map +1 -0
- package/dist/node/inputs.js +259 -0
- package/dist/node/inputs.js.map +1 -0
- package/dist/node/packages.d.ts +35 -0
- package/dist/node/packages.d.ts.map +1 -0
- package/dist/node/packages.js +87 -0
- package/dist/node/packages.js.map +1 -0
- package/dist/node/preload.d.ts +10 -0
- package/dist/node/preload.d.ts.map +1 -0
- package/dist/node/preload.js +61 -0
- package/dist/node/preload.js.map +1 -0
- package/dist/node/server.d.ts +42 -0
- package/dist/node/server.d.ts.map +1 -0
- package/dist/node/server.js +369 -0
- package/dist/node/server.js.map +1 -0
- package/dist/node/static.d.ts +33 -0
- package/dist/node/static.d.ts.map +1 -0
- package/dist/node/static.js +141 -0
- package/dist/node/static.js.map +1 -0
- package/dist/node/workbench.d.ts +43 -0
- package/dist/node/workbench.d.ts.map +1 -0
- package/dist/node/workbench.js +183 -0
- package/dist/node/workbench.js.map +1 -0
- package/dist/pages/build.d.ts +22 -0
- package/dist/pages/build.d.ts.map +1 -0
- package/dist/pages/build.js +363 -0
- package/dist/pages/build.js.map +1 -0
- package/dist/pages/defaults.d.ts +16 -0
- package/dist/pages/defaults.d.ts.map +1 -0
- package/dist/pages/defaults.js +88 -0
- package/dist/pages/defaults.js.map +1 -0
- package/dist/pages/index.d.ts +14 -0
- package/dist/pages/index.d.ts.map +1 -0
- package/dist/pages/index.js +10 -0
- package/dist/pages/index.js.map +1 -0
- package/dist/pages/navigation.d.ts +48 -0
- package/dist/pages/navigation.d.ts.map +1 -0
- package/dist/pages/navigation.js +83 -0
- package/dist/pages/navigation.js.map +1 -0
- package/dist/pages/types.d.ts +143 -0
- package/dist/pages/types.d.ts.map +1 -0
- package/dist/pages/types.js +3 -0
- package/dist/pages/types.js.map +1 -0
- package/dist/panels/catalog-define.d.ts +3 -0
- package/dist/panels/catalog-define.d.ts.map +1 -0
- package/dist/panels/catalog-define.js +7 -0
- package/dist/panels/catalog-define.js.map +1 -0
- package/dist/panels/catalog.d.ts +33 -0
- package/dist/panels/catalog.d.ts.map +1 -0
- package/dist/panels/catalog.js +54 -0
- package/dist/panels/catalog.js.map +1 -0
- package/dist/panels/component-define.d.ts +3 -0
- package/dist/panels/component-define.d.ts.map +1 -0
- package/dist/panels/component-define.js +6 -0
- package/dist/panels/component-define.js.map +1 -0
- package/dist/panels/component-detail.d.ts +46 -0
- package/dist/panels/component-detail.d.ts.map +1 -0
- package/dist/panels/component-detail.js +1120 -0
- package/dist/panels/component-detail.js.map +1 -0
- package/dist/panels/component.d.ts +17 -0
- package/dist/panels/component.d.ts.map +1 -0
- package/dist/panels/component.js +10 -0
- package/dist/panels/component.js.map +1 -0
- package/dist/panels/foundation-define.d.ts +3 -0
- package/dist/panels/foundation-define.d.ts.map +1 -0
- package/dist/panels/foundation-define.js +6 -0
- package/dist/panels/foundation-define.js.map +1 -0
- package/dist/panels/foundation-detail.d.ts +23 -0
- package/dist/panels/foundation-detail.d.ts.map +1 -0
- package/dist/panels/foundation-detail.js +216 -0
- package/dist/panels/foundation-detail.js.map +1 -0
- package/dist/panels/foundation.d.ts +15 -0
- package/dist/panels/foundation.d.ts.map +1 -0
- package/dist/panels/foundation.js +9 -0
- package/dist/panels/foundation.js.map +1 -0
- package/dist/panels/model.d.ts +173 -0
- package/dist/panels/model.d.ts.map +1 -0
- package/dist/panels/model.js +462 -0
- package/dist/panels/model.js.map +1 -0
- package/dist/panels/styles.d.ts +3 -0
- package/dist/panels/styles.d.ts.map +1 -0
- package/dist/panels/styles.js +316 -0
- package/dist/panels/styles.js.map +1 -0
- package/dist/panels/theme-model.d.ts +49 -0
- package/dist/panels/theme-model.d.ts.map +1 -0
- package/dist/panels/theme-model.js +146 -0
- package/dist/panels/theme-model.js.map +1 -0
- package/dist/panels/theme-studio.d.ts +32 -0
- package/dist/panels/theme-studio.d.ts.map +1 -0
- package/dist/panels/theme-studio.js +312 -0
- package/dist/panels/theme-studio.js.map +1 -0
- package/dist/preview/frame.d.ts +44 -0
- package/dist/preview/frame.d.ts.map +1 -0
- package/dist/preview/frame.js +250 -0
- package/dist/preview/frame.js.map +1 -0
- package/dist/preview/index.d.ts +26 -0
- package/dist/preview/index.d.ts.map +1 -0
- package/dist/preview/index.js +58 -0
- package/dist/preview/index.js.map +1 -0
- package/dist/preview/theme-generation.d.ts +33 -0
- package/dist/preview/theme-generation.d.ts.map +1 -0
- package/dist/preview/theme-generation.js +48 -0
- package/dist/preview/theme-generation.js.map +1 -0
- package/dist/protocol/index.d.ts +207 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +261 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/testing/index.d.ts +47 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +145 -0
- package/dist/testing/index.js.map +1 -0
- package/package.json +118 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/app/views.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@oddkin/workbench/config` — `defineWorkbenchConfig` and `defineDocs` with types matching the
|
|
3
|
+
* `workbench-config.v1` and `docs-content.v1` schemas, plus default resolution and validation.
|
|
4
|
+
* DOM-free. Values here describe presentation; generated facts always come from metadata
|
|
5
|
+
* and token inspection (ADR 0024).
|
|
6
|
+
*/
|
|
7
|
+
import { type WorkbenchDiagnostic } from '../internal/diagnostics.js';
|
|
8
|
+
export type { WorkbenchDiagnostic } from '../internal/diagnostics.js';
|
|
9
|
+
export type Routing = 'history' | 'hash';
|
|
10
|
+
export type ProductPlacement = 'foundations' | 'primary';
|
|
11
|
+
export type ProductSource = {
|
|
12
|
+
readonly theme: string;
|
|
13
|
+
readonly product: string;
|
|
14
|
+
} | {
|
|
15
|
+
readonly package: string;
|
|
16
|
+
readonly export?: string;
|
|
17
|
+
} | {
|
|
18
|
+
readonly manifest: string;
|
|
19
|
+
readonly version: string;
|
|
20
|
+
};
|
|
21
|
+
export interface WorkbenchConfig {
|
|
22
|
+
readonly $schema?: string;
|
|
23
|
+
readonly library: {
|
|
24
|
+
readonly packages: readonly string[];
|
|
25
|
+
readonly cem?: readonly string[];
|
|
26
|
+
};
|
|
27
|
+
readonly branding?: {
|
|
28
|
+
readonly name?: string;
|
|
29
|
+
readonly logo?: string;
|
|
30
|
+
readonly theme?: string;
|
|
31
|
+
readonly links?: readonly {
|
|
32
|
+
readonly label: string;
|
|
33
|
+
readonly href: string;
|
|
34
|
+
}[];
|
|
35
|
+
};
|
|
36
|
+
readonly hosting?: {
|
|
37
|
+
readonly basePath?: string;
|
|
38
|
+
readonly routing?: Routing;
|
|
39
|
+
};
|
|
40
|
+
readonly navigation?: {
|
|
41
|
+
readonly home?: boolean;
|
|
42
|
+
/** Ordered section ids; defaults to foundations, components, theme-studio. */
|
|
43
|
+
readonly primary?: readonly string[];
|
|
44
|
+
readonly legacyRedirects?: boolean;
|
|
45
|
+
};
|
|
46
|
+
readonly categories?: {
|
|
47
|
+
readonly definitions?: readonly {
|
|
48
|
+
readonly id: string;
|
|
49
|
+
readonly label: string;
|
|
50
|
+
readonly description?: string;
|
|
51
|
+
readonly order?: number;
|
|
52
|
+
}[];
|
|
53
|
+
/** tag → category id overrides. */
|
|
54
|
+
readonly assign?: Readonly<Record<string, string>>;
|
|
55
|
+
readonly fallback?: string;
|
|
56
|
+
};
|
|
57
|
+
readonly themeStudio?: {
|
|
58
|
+
readonly enabled?: boolean;
|
|
59
|
+
readonly route?: string;
|
|
60
|
+
readonly themeConfig?: string;
|
|
61
|
+
readonly preview?: {
|
|
62
|
+
readonly recipe?: string;
|
|
63
|
+
readonly roles?: Readonly<Record<string, string | {
|
|
64
|
+
readonly component: string;
|
|
65
|
+
readonly example?: string;
|
|
66
|
+
readonly adapter?: string;
|
|
67
|
+
}>>;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
readonly products?: {
|
|
71
|
+
readonly enabled?: boolean;
|
|
72
|
+
readonly placement?: readonly ProductPlacement[];
|
|
73
|
+
readonly sources?: readonly {
|
|
74
|
+
readonly id: string;
|
|
75
|
+
readonly from: ProductSource;
|
|
76
|
+
}[];
|
|
77
|
+
readonly discovery?: {
|
|
78
|
+
readonly workspace?: boolean;
|
|
79
|
+
readonly exclude?: readonly string[];
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
readonly content?: {
|
|
83
|
+
readonly files?: readonly string[];
|
|
84
|
+
readonly locales?: readonly string[];
|
|
85
|
+
readonly defaultLocale?: string;
|
|
86
|
+
};
|
|
87
|
+
readonly assets?: readonly string[];
|
|
88
|
+
}
|
|
89
|
+
/** A configuration with every default applied. */
|
|
90
|
+
export interface ResolvedWorkbenchConfig {
|
|
91
|
+
readonly library: WorkbenchConfig['library'];
|
|
92
|
+
readonly branding: NonNullable<WorkbenchConfig['branding']>;
|
|
93
|
+
readonly hosting: {
|
|
94
|
+
readonly basePath: string;
|
|
95
|
+
readonly routing: Routing;
|
|
96
|
+
};
|
|
97
|
+
readonly navigation: {
|
|
98
|
+
readonly home: boolean;
|
|
99
|
+
readonly primary: readonly string[];
|
|
100
|
+
readonly legacyRedirects: boolean;
|
|
101
|
+
};
|
|
102
|
+
readonly categories: {
|
|
103
|
+
readonly definitions: NonNullable<NonNullable<WorkbenchConfig['categories']>['definitions']>;
|
|
104
|
+
readonly assign: Readonly<Record<string, string>>;
|
|
105
|
+
readonly fallback: string;
|
|
106
|
+
};
|
|
107
|
+
readonly themeStudio: {
|
|
108
|
+
readonly enabled: boolean;
|
|
109
|
+
readonly route: string;
|
|
110
|
+
readonly themeConfig?: string;
|
|
111
|
+
readonly preview: NonNullable<NonNullable<WorkbenchConfig['themeStudio']>['preview']>;
|
|
112
|
+
};
|
|
113
|
+
readonly products: {
|
|
114
|
+
readonly enabled: boolean;
|
|
115
|
+
readonly placement: readonly ProductPlacement[];
|
|
116
|
+
readonly sources: NonNullable<NonNullable<WorkbenchConfig['products']>['sources']>;
|
|
117
|
+
readonly discovery: {
|
|
118
|
+
readonly workspace: boolean;
|
|
119
|
+
readonly exclude: readonly string[];
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
readonly content: NonNullable<WorkbenchConfig['content']>;
|
|
123
|
+
readonly assets: readonly string[];
|
|
124
|
+
}
|
|
125
|
+
/** Identity with types, for `oddkin.config.ts`. */
|
|
126
|
+
export declare function defineWorkbenchConfig(config: WorkbenchConfig): WorkbenchConfig;
|
|
127
|
+
export declare const DEFAULT_PRIMARY: readonly ['foundations', 'components', 'theme-studio'];
|
|
128
|
+
export declare const KNOWN_SECTIONS: string[];
|
|
129
|
+
/**
|
|
130
|
+
* Validate a configuration (from `oddkin.config.*` or JSON) and apply defaults. Returns
|
|
131
|
+
* `config: undefined` when there are errors.
|
|
132
|
+
*/
|
|
133
|
+
export declare function resolveWorkbenchConfig(input: unknown): {
|
|
134
|
+
config: ResolvedWorkbenchConfig | undefined;
|
|
135
|
+
diagnostics: WorkbenchDiagnostic[];
|
|
136
|
+
};
|
|
137
|
+
export declare const DOCS_SCHEMA = "https://oddkin.dev/schemas/docs-content/v1.json";
|
|
138
|
+
export interface SectionContent {
|
|
139
|
+
readonly title?: string;
|
|
140
|
+
readonly guidance?: string;
|
|
141
|
+
readonly visible?: boolean;
|
|
142
|
+
readonly order?: number;
|
|
143
|
+
/** `example:<tag>/<name>` references. */
|
|
144
|
+
readonly examples?: readonly string[];
|
|
145
|
+
}
|
|
146
|
+
export interface PageContent {
|
|
147
|
+
readonly title?: string;
|
|
148
|
+
readonly eyebrow?: string;
|
|
149
|
+
readonly summary?: string;
|
|
150
|
+
readonly intro?: string;
|
|
151
|
+
readonly tags?: readonly string[];
|
|
152
|
+
/** ISO date (YYYY-MM-DD), declared by the author. */
|
|
153
|
+
readonly updated?: string;
|
|
154
|
+
readonly order?: number;
|
|
155
|
+
readonly visible?: boolean;
|
|
156
|
+
readonly useFor?: readonly string[];
|
|
157
|
+
readonly notFor?: readonly string[];
|
|
158
|
+
readonly sections?: Readonly<Record<string, SectionContent>>;
|
|
159
|
+
}
|
|
160
|
+
export interface DocsContent {
|
|
161
|
+
readonly schema: typeof DOCS_SCHEMA;
|
|
162
|
+
readonly locale?: string;
|
|
163
|
+
/** Renamed page/section id → current id. */
|
|
164
|
+
readonly aliases?: Readonly<Record<string, string>>;
|
|
165
|
+
/** Keyed by stable page id (`foundations/spacing`, `components/<tag>`, `theme-studio`). */
|
|
166
|
+
readonly pages: Readonly<Record<string, PageContent>>;
|
|
167
|
+
}
|
|
168
|
+
/** Identity with types, for `oddkin.docs.ts`; fills in the schema id. */
|
|
169
|
+
export declare function defineDocs(content: Omit<DocsContent, 'schema'>): DocsContent;
|
|
170
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@oddkin/workbench/config` — `defineWorkbenchConfig` and `defineDocs` with types matching the
|
|
3
|
+
* `workbench-config.v1` and `docs-content.v1` schemas, plus default resolution and validation.
|
|
4
|
+
* DOM-free. Values here describe presentation; generated facts always come from metadata
|
|
5
|
+
* and token inspection (ADR 0024).
|
|
6
|
+
*/
|
|
7
|
+
import { DiagnosticList, isObject } from '../internal/diagnostics.js';
|
|
8
|
+
/** Identity with types, for `oddkin.config.ts`. */
|
|
9
|
+
export function defineWorkbenchConfig(config) {
|
|
10
|
+
return config;
|
|
11
|
+
}
|
|
12
|
+
export const DEFAULT_PRIMARY = ['foundations', 'components', 'theme-studio'];
|
|
13
|
+
export const KNOWN_SECTIONS = [
|
|
14
|
+
'home',
|
|
15
|
+
'foundations',
|
|
16
|
+
'components',
|
|
17
|
+
'theme-studio',
|
|
18
|
+
'products',
|
|
19
|
+
'guides',
|
|
20
|
+
];
|
|
21
|
+
const TOP_LEVEL = new Set([
|
|
22
|
+
'$schema',
|
|
23
|
+
'library',
|
|
24
|
+
'branding',
|
|
25
|
+
'hosting',
|
|
26
|
+
'navigation',
|
|
27
|
+
'categories',
|
|
28
|
+
'themeStudio',
|
|
29
|
+
'products',
|
|
30
|
+
'content',
|
|
31
|
+
'assets',
|
|
32
|
+
]);
|
|
33
|
+
const BASE_PATH = /^\/(.*\/)?$/;
|
|
34
|
+
/**
|
|
35
|
+
* Validate a configuration (from `oddkin.config.*` or JSON) and apply defaults. Returns
|
|
36
|
+
* `config: undefined` when there are errors.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveWorkbenchConfig(input) {
|
|
39
|
+
const out = new DiagnosticList();
|
|
40
|
+
if (!isObject(input)) {
|
|
41
|
+
out.error('config.invalid', 'The Workbench configuration must be an object.');
|
|
42
|
+
return { config: undefined, diagnostics: out.items };
|
|
43
|
+
}
|
|
44
|
+
for (const key of Object.keys(input)) {
|
|
45
|
+
if (TOP_LEVEL.has(key))
|
|
46
|
+
continue;
|
|
47
|
+
out.error('config.key.unknown', key === 'playground'
|
|
48
|
+
? 'There is no Playground destination: interactive examples live on each component page. Remove "playground"; legacy /playground links redirect to Components.'
|
|
49
|
+
: `Unknown configuration key "${key}".`, `/${key}`);
|
|
50
|
+
}
|
|
51
|
+
const c = input;
|
|
52
|
+
const packages = c.library?.packages;
|
|
53
|
+
if (!Array.isArray(packages) ||
|
|
54
|
+
packages.length === 0 ||
|
|
55
|
+
!packages.every((p) => typeof p === 'string')) {
|
|
56
|
+
out.error('config.library.missing', 'library.packages must list at least one package to document.', '/library/packages');
|
|
57
|
+
}
|
|
58
|
+
const basePath = c.hosting?.basePath ?? '/';
|
|
59
|
+
if (!BASE_PATH.test(basePath)) {
|
|
60
|
+
out.error('config.basePath.invalid', `hosting.basePath "${basePath}" must start and end with "/" (for example "/docs/").`, '/hosting/basePath');
|
|
61
|
+
}
|
|
62
|
+
const routing = c.hosting?.routing ?? 'history';
|
|
63
|
+
if (routing !== 'history' && routing !== 'hash') {
|
|
64
|
+
out.error('config.routing.invalid', 'hosting.routing must be "history" or "hash".', '/hosting/routing');
|
|
65
|
+
}
|
|
66
|
+
const primary = c.navigation?.primary ?? DEFAULT_PRIMARY;
|
|
67
|
+
primary.forEach((section, i) => {
|
|
68
|
+
if (!KNOWN_SECTIONS.includes(section)) {
|
|
69
|
+
out.warn('config.navigation.unknown', `navigation.primary entry "${section}" is not a Workbench section (${KNOWN_SECTIONS.join(', ')}).`, `/navigation/primary/${i}`);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
const definitions = c.categories?.definitions ?? [];
|
|
73
|
+
const seen = new Set();
|
|
74
|
+
definitions.forEach((d, i) => {
|
|
75
|
+
if (seen.has(d.id)) {
|
|
76
|
+
out.error('config.category.duplicate', `Category id "${d.id}" is defined twice.`, `/categories/definitions/${i}`);
|
|
77
|
+
}
|
|
78
|
+
seen.add(d.id);
|
|
79
|
+
});
|
|
80
|
+
for (const [tag, id] of Object.entries(c.categories?.assign ?? {})) {
|
|
81
|
+
if (!seen.has(id)) {
|
|
82
|
+
out.error('config.category.unknown', `categories.assign maps <${tag}> to "${id}", which is not in categories.definitions.`, `/categories/assign/${tag}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const route = c.themeStudio?.route ?? '/theme-studio';
|
|
86
|
+
if (!route.startsWith('/')) {
|
|
87
|
+
out.error('config.route.invalid', `themeStudio.route "${route}" must start with "/".`, '/themeStudio/route');
|
|
88
|
+
}
|
|
89
|
+
const placement = c.products?.placement ?? ['foundations'];
|
|
90
|
+
placement.forEach((p, i) => {
|
|
91
|
+
if (p !== 'foundations' && p !== 'primary') {
|
|
92
|
+
out.error('config.products.placement', `products.placement "${String(p)}" must be "foundations" or "primary".`, `/products/placement/${i}`);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
const productIds = new Set();
|
|
96
|
+
(c.products?.sources ?? []).forEach((source, i) => {
|
|
97
|
+
if (productIds.has(source.id)) {
|
|
98
|
+
out.error('config.product.duplicate', `Product id "${source.id}" is configured twice.`, `/products/sources/${i}`);
|
|
99
|
+
}
|
|
100
|
+
productIds.add(source.id);
|
|
101
|
+
});
|
|
102
|
+
if (out.hasErrors)
|
|
103
|
+
return { config: undefined, diagnostics: out.items };
|
|
104
|
+
const themeConfig = c.themeStudio?.themeConfig;
|
|
105
|
+
return {
|
|
106
|
+
config: {
|
|
107
|
+
library: c.library,
|
|
108
|
+
branding: c.branding ?? {},
|
|
109
|
+
hosting: { basePath, routing },
|
|
110
|
+
navigation: {
|
|
111
|
+
home: c.navigation?.home ?? false,
|
|
112
|
+
primary,
|
|
113
|
+
legacyRedirects: c.navigation?.legacyRedirects ?? true,
|
|
114
|
+
},
|
|
115
|
+
categories: {
|
|
116
|
+
definitions,
|
|
117
|
+
assign: c.categories?.assign ?? {},
|
|
118
|
+
fallback: c.categories?.fallback ?? 'Other components',
|
|
119
|
+
},
|
|
120
|
+
themeStudio: {
|
|
121
|
+
enabled: c.themeStudio?.enabled ?? true,
|
|
122
|
+
route,
|
|
123
|
+
...(themeConfig === undefined ? {} : { themeConfig }),
|
|
124
|
+
preview: c.themeStudio?.preview ?? {},
|
|
125
|
+
},
|
|
126
|
+
products: {
|
|
127
|
+
enabled: c.products?.enabled ?? false,
|
|
128
|
+
placement,
|
|
129
|
+
sources: c.products?.sources ?? [],
|
|
130
|
+
discovery: {
|
|
131
|
+
workspace: c.products?.discovery?.workspace ?? false,
|
|
132
|
+
exclude: c.products?.discovery?.exclude ?? [],
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
content: c.content ?? {},
|
|
136
|
+
assets: c.assets ?? [],
|
|
137
|
+
},
|
|
138
|
+
diagnostics: out.items,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
// Authored content (oddkin.docs.ts / Markdown front matter), docs-content.v1
|
|
143
|
+
export const DOCS_SCHEMA = 'https://oddkin.dev/schemas/docs-content/v1.json';
|
|
144
|
+
/** Identity with types, for `oddkin.docs.ts`; fills in the schema id. */
|
|
145
|
+
export function defineDocs(content) {
|
|
146
|
+
return { schema: DOCS_SCHEMA, ...content };
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/conformance/button.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,iBAAiB,uCAuN5B,CAAC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance suite for the `odd-button` foundation contract. Implementation-agnostic: it
|
|
3
|
+
* reaches the element only through its tag, public properties, native events, and the
|
|
4
|
+
* documented `control` anatomy role (a native, focusable `<button>`).
|
|
5
|
+
*/
|
|
6
|
+
import { defineConformance } from './index.js';
|
|
7
|
+
const control = (ctx, host) => {
|
|
8
|
+
const part = ctx.adapter.part(host, 'control');
|
|
9
|
+
ctx.expect(part !== null, 'the implementation exposes its control').toBe(true);
|
|
10
|
+
return part;
|
|
11
|
+
};
|
|
12
|
+
const countClicks = (host) => {
|
|
13
|
+
const counter = { count: 0 };
|
|
14
|
+
host.addEventListener('click', () => counter.count++);
|
|
15
|
+
return counter;
|
|
16
|
+
};
|
|
17
|
+
export const buttonConformance = defineConformance({
|
|
18
|
+
id: 'oddkin.button',
|
|
19
|
+
version: '0.1.0',
|
|
20
|
+
contract: { component: 'component:odd-button', versions: '0.x' },
|
|
21
|
+
description: 'Interaction contract shared by odd-button and its product implementations.',
|
|
22
|
+
requires: {
|
|
23
|
+
properties: [
|
|
24
|
+
'appearance',
|
|
25
|
+
'size',
|
|
26
|
+
'type',
|
|
27
|
+
'disabled',
|
|
28
|
+
'loading',
|
|
29
|
+
'fullWidth',
|
|
30
|
+
'name',
|
|
31
|
+
'value',
|
|
32
|
+
'label',
|
|
33
|
+
],
|
|
34
|
+
events: ['click'],
|
|
35
|
+
slots: ['', 'start', 'end'],
|
|
36
|
+
anatomy: ['control'],
|
|
37
|
+
},
|
|
38
|
+
cases: [
|
|
39
|
+
{
|
|
40
|
+
id: 'properties-attributes',
|
|
41
|
+
title: 'Attributes convert to properties; boolean and enum state reflects',
|
|
42
|
+
kind: 'assertion',
|
|
43
|
+
async run(ctx) {
|
|
44
|
+
const host = (await ctx.mount({
|
|
45
|
+
attributes: { appearance: 'primary', 'full-width': '' },
|
|
46
|
+
content: 'Go',
|
|
47
|
+
}));
|
|
48
|
+
ctx.expect(host['appearance']).toBe('primary');
|
|
49
|
+
ctx.expect(host['fullWidth']).toBe(true);
|
|
50
|
+
host['disabled'] = true;
|
|
51
|
+
host['size'] = 'lg';
|
|
52
|
+
await ctx.adapter.settle(host);
|
|
53
|
+
ctx.expect(host.hasAttribute('disabled')).toBe(true);
|
|
54
|
+
ctx.expect(host.getAttribute('size')).toBe('lg');
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 'native-control',
|
|
59
|
+
title: 'The control is a native button and the default slot names it',
|
|
60
|
+
kind: 'assertion',
|
|
61
|
+
async run(ctx) {
|
|
62
|
+
const host = await ctx.mount({ content: 'Save' });
|
|
63
|
+
const part = control(ctx, host);
|
|
64
|
+
ctx.expect(part.localName).toBe('button');
|
|
65
|
+
ctx.expect(part.type).toBe('button');
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'keyboard-activation',
|
|
70
|
+
title: 'Click, Enter, and Space each dispatch one click at the host',
|
|
71
|
+
kind: 'assertion',
|
|
72
|
+
async run(ctx) {
|
|
73
|
+
const host = await ctx.mount({ content: 'Save' });
|
|
74
|
+
const clicks = countClicks(host);
|
|
75
|
+
await ctx.user.click(host);
|
|
76
|
+
host.focus();
|
|
77
|
+
await ctx.user.keyboard('{Enter}');
|
|
78
|
+
await ctx.user.keyboard(' ');
|
|
79
|
+
ctx.expect(clicks.count).toBe(3);
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: 'focus',
|
|
84
|
+
title: 'Focusing the host focuses the control',
|
|
85
|
+
kind: 'assertion',
|
|
86
|
+
async run(ctx) {
|
|
87
|
+
const host = await ctx.mount({ content: 'Save' });
|
|
88
|
+
host.focus();
|
|
89
|
+
const active = host.shadowRoot?.activeElement ?? document.activeElement;
|
|
90
|
+
ctx.expect(active).toBe(control(ctx, host));
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: 'disabled',
|
|
95
|
+
title: 'Disabled ignores activation and is not focusable',
|
|
96
|
+
kind: 'assertion',
|
|
97
|
+
async run(ctx) {
|
|
98
|
+
const host = await ctx.mount({ attributes: { disabled: '' }, content: 'Save' });
|
|
99
|
+
const clicks = countClicks(host);
|
|
100
|
+
host.click();
|
|
101
|
+
control(ctx, host).click();
|
|
102
|
+
host.focus();
|
|
103
|
+
ctx.expect(clicks.count).toBe(0);
|
|
104
|
+
ctx.expect(host.shadowRoot?.activeElement ?? null).toBe(null);
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: 'loading',
|
|
109
|
+
title: 'Loading ignores activation but stays focusable and exposes aria-disabled',
|
|
110
|
+
kind: 'assertion',
|
|
111
|
+
async run(ctx) {
|
|
112
|
+
const host = await ctx.mount({ attributes: { loading: '' }, content: 'Save' });
|
|
113
|
+
const clicks = countClicks(host);
|
|
114
|
+
host.focus();
|
|
115
|
+
await ctx.user.keyboard('{Enter}');
|
|
116
|
+
host.click();
|
|
117
|
+
ctx.expect(clicks.count).toBe(0);
|
|
118
|
+
ctx.expect(host.shadowRoot?.activeElement).toBe(control(ctx, host));
|
|
119
|
+
ctx.expect(control(ctx, host).getAttribute('aria-disabled')).toBe('true');
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
id: 'form-submission',
|
|
124
|
+
title: 'type="submit" submits its form once, including name and value',
|
|
125
|
+
kind: 'assertion',
|
|
126
|
+
async run(ctx) {
|
|
127
|
+
const host = await ctx.mount({
|
|
128
|
+
attributes: { type: 'submit', name: 'intent', value: 'save' },
|
|
129
|
+
content: 'Save',
|
|
130
|
+
within: '<form><input name="q" value="a">{{element}}</form>',
|
|
131
|
+
});
|
|
132
|
+
const form = host.closest('form');
|
|
133
|
+
const submitted = [];
|
|
134
|
+
form.addEventListener('submit', (event) => {
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
submitted.push([...new FormData(form, event.submitter)]);
|
|
137
|
+
});
|
|
138
|
+
await ctx.user.click(host);
|
|
139
|
+
await ctx.nextTask();
|
|
140
|
+
ctx.expect(submitted).toEqual([
|
|
141
|
+
[
|
|
142
|
+
['q', 'a'],
|
|
143
|
+
['intent', 'save'],
|
|
144
|
+
],
|
|
145
|
+
]);
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
id: 'cancelled-click',
|
|
150
|
+
title: 'A cancelled click does not submit',
|
|
151
|
+
kind: 'assertion',
|
|
152
|
+
async run(ctx) {
|
|
153
|
+
const host = await ctx.mount({
|
|
154
|
+
attributes: { type: 'submit' },
|
|
155
|
+
content: 'Save',
|
|
156
|
+
within: '<form>{{element}}</form>',
|
|
157
|
+
});
|
|
158
|
+
let submits = 0;
|
|
159
|
+
host.closest('form').addEventListener('submit', (event) => {
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
submits++;
|
|
162
|
+
});
|
|
163
|
+
host.addEventListener('click', (event) => event.preventDefault());
|
|
164
|
+
await ctx.user.click(host);
|
|
165
|
+
await ctx.nextTask();
|
|
166
|
+
ctx.expect(submits).toBe(0);
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
id: 'reconnect',
|
|
171
|
+
title: 'Reconnecting neither leaks owned work nor duplicates activation',
|
|
172
|
+
kind: 'invariant',
|
|
173
|
+
change: 'reconnect',
|
|
174
|
+
async run(ctx) {
|
|
175
|
+
const host = await ctx.mount({
|
|
176
|
+
attributes: { type: 'submit' },
|
|
177
|
+
content: 'Save',
|
|
178
|
+
within: '<form>{{element}}</form>',
|
|
179
|
+
});
|
|
180
|
+
const form = host.closest('form');
|
|
181
|
+
const parent = host.parentNode;
|
|
182
|
+
const before = ctx.ownedWork();
|
|
183
|
+
for (let i = 0; i < 5; i++) {
|
|
184
|
+
host.remove();
|
|
185
|
+
parent.append(host);
|
|
186
|
+
await ctx.adapter.settle(host);
|
|
187
|
+
}
|
|
188
|
+
ctx.expect(ctx.ownedWork()).toEqual(before);
|
|
189
|
+
let submits = 0;
|
|
190
|
+
form.addEventListener('submit', (event) => {
|
|
191
|
+
event.preventDefault();
|
|
192
|
+
submits++;
|
|
193
|
+
});
|
|
194
|
+
await ctx.user.click(host);
|
|
195
|
+
await ctx.nextTask();
|
|
196
|
+
ctx.expect(submits).toBe(1);
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
id: 'programmatic-updates',
|
|
201
|
+
title: 'Programmatic property changes dispatch no user-intent events',
|
|
202
|
+
kind: 'invariant',
|
|
203
|
+
change: 'programmatic',
|
|
204
|
+
async run(ctx) {
|
|
205
|
+
const host = (await ctx.mount({ content: 'Save' }));
|
|
206
|
+
const events = [];
|
|
207
|
+
for (const type of ['click', 'input', 'change'])
|
|
208
|
+
host.addEventListener(type, () => events.push(type));
|
|
209
|
+
host['appearance'] = 'ghost';
|
|
210
|
+
host['value'] = 'x';
|
|
211
|
+
host['loading'] = true;
|
|
212
|
+
host['disabled'] = true;
|
|
213
|
+
await ctx.adapter.settle(host);
|
|
214
|
+
ctx.expect(events).toEqual([]);
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: 'theme-value',
|
|
219
|
+
title: 'A theme-value change keeps the control node and applies',
|
|
220
|
+
kind: 'invariant',
|
|
221
|
+
change: 'theme-value',
|
|
222
|
+
async run(ctx) {
|
|
223
|
+
const host = await ctx.mount({ content: 'Save' });
|
|
224
|
+
const before = control(ctx, host);
|
|
225
|
+
host.parentElement.style.setProperty('--odd-button-radius', '0px');
|
|
226
|
+
await ctx.adapter.settle(host);
|
|
227
|
+
ctx.expect(control(ctx, host)).toBe(before);
|
|
228
|
+
ctx.expect(getComputedStyle(before).borderTopLeftRadius).toBe('0px');
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
],
|
|
232
|
+
});
|
|
233
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/conformance/button.ts"],"names":[],"mappings":"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"}
|