@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.
Files changed (223) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -2
  3. package/dist/app/copy.d.ts +43 -0
  4. package/dist/app/copy.d.ts.map +1 -0
  5. package/dist/app/copy.js +47 -0
  6. package/dist/app/copy.js.map +1 -0
  7. package/dist/app/define.d.ts +3 -0
  8. package/dist/app/define.d.ts.map +1 -0
  9. package/dist/app/define.js +10 -0
  10. package/dist/app/define.js.map +1 -0
  11. package/dist/app/details.d.ts +22 -0
  12. package/dist/app/details.d.ts.map +1 -0
  13. package/dist/app/details.js +16 -0
  14. package/dist/app/details.js.map +1 -0
  15. package/dist/app/index.d.ts +12 -0
  16. package/dist/app/index.d.ts.map +1 -0
  17. package/dist/app/index.js +9 -0
  18. package/dist/app/index.js.map +1 -0
  19. package/dist/app/routes.d.ts +26 -0
  20. package/dist/app/routes.d.ts.map +1 -0
  21. package/dist/app/routes.js +94 -0
  22. package/dist/app/routes.js.map +1 -0
  23. package/dist/app/search.d.ts +17 -0
  24. package/dist/app/search.d.ts.map +1 -0
  25. package/dist/app/search.js +52 -0
  26. package/dist/app/search.js.map +1 -0
  27. package/dist/app/shell.d.ts +29 -0
  28. package/dist/app/shell.d.ts.map +1 -0
  29. package/dist/app/shell.js +435 -0
  30. package/dist/app/shell.js.map +1 -0
  31. package/dist/app/styles.d.ts +2 -0
  32. package/dist/app/styles.d.ts.map +1 -0
  33. package/dist/app/styles.js +373 -0
  34. package/dist/app/styles.js.map +1 -0
  35. package/dist/app/theme-studio.d.ts +12 -0
  36. package/dist/app/theme-studio.d.ts.map +1 -0
  37. package/dist/app/theme-studio.js +14 -0
  38. package/dist/app/theme-studio.js.map +1 -0
  39. package/dist/app/views.d.ts +34 -0
  40. package/dist/app/views.d.ts.map +1 -0
  41. package/dist/app/views.js +230 -0
  42. package/dist/app/views.js.map +1 -0
  43. package/dist/config/index.d.ts +170 -0
  44. package/dist/config/index.d.ts.map +1 -0
  45. package/dist/config/index.js +148 -0
  46. package/dist/config/index.js.map +1 -0
  47. package/dist/conformance/button.d.ts +2 -0
  48. package/dist/conformance/button.d.ts.map +1 -0
  49. package/dist/conformance/button.js +233 -0
  50. package/dist/conformance/button.js.map +1 -0
  51. package/dist/conformance/index.d.ts +107 -0
  52. package/dist/conformance/index.d.ts.map +1 -0
  53. package/dist/conformance/index.js +60 -0
  54. package/dist/conformance/index.js.map +1 -0
  55. package/dist/data/build.d.ts +36 -0
  56. package/dist/data/build.d.ts.map +1 -0
  57. package/dist/data/build.js +248 -0
  58. package/dist/data/build.js.map +1 -0
  59. package/dist/data/import-map.d.ts +53 -0
  60. package/dist/data/import-map.d.ts.map +1 -0
  61. package/dist/data/import-map.js +160 -0
  62. package/dist/data/import-map.js.map +1 -0
  63. package/dist/data/index.d.ts +14 -0
  64. package/dist/data/index.d.ts.map +1 -0
  65. package/dist/data/index.js +10 -0
  66. package/dist/data/index.js.map +1 -0
  67. package/dist/data/theme-studio.d.ts +21 -0
  68. package/dist/data/theme-studio.d.ts.map +1 -0
  69. package/dist/data/theme-studio.js +116 -0
  70. package/dist/data/theme-studio.js.map +1 -0
  71. package/dist/data/types.d.ts +169 -0
  72. package/dist/data/types.d.ts.map +1 -0
  73. package/dist/data/types.js +4 -0
  74. package/dist/data/types.js.map +1 -0
  75. package/dist/examples/index.d.ts +101 -0
  76. package/dist/examples/index.d.ts.map +1 -0
  77. package/dist/examples/index.js +106 -0
  78. package/dist/examples/index.js.map +1 -0
  79. package/dist/frame/index.d.ts +9 -0
  80. package/dist/frame/index.d.ts.map +1 -0
  81. package/dist/frame/index.js +468 -0
  82. package/dist/frame/index.js.map +1 -0
  83. package/dist/internal/diagnostics.d.ts +17 -0
  84. package/dist/internal/diagnostics.d.ts.map +1 -0
  85. package/dist/internal/diagnostics.js +19 -0
  86. package/dist/internal/diagnostics.js.map +1 -0
  87. package/dist/node/bin.d.ts +3 -0
  88. package/dist/node/bin.d.ts.map +1 -0
  89. package/dist/node/bin.js +12 -0
  90. package/dist/node/bin.js.map +1 -0
  91. package/dist/node/cli.d.ts +17 -0
  92. package/dist/node/cli.d.ts.map +1 -0
  93. package/dist/node/cli.js +198 -0
  94. package/dist/node/cli.js.map +1 -0
  95. package/dist/node/config.d.ts +28 -0
  96. package/dist/node/config.d.ts.map +1 -0
  97. package/dist/node/config.js +80 -0
  98. package/dist/node/config.js.map +1 -0
  99. package/dist/node/generated.d.ts +19 -0
  100. package/dist/node/generated.d.ts.map +1 -0
  101. package/dist/node/generated.js +109 -0
  102. package/dist/node/generated.js.map +1 -0
  103. package/dist/node/html.d.ts +35 -0
  104. package/dist/node/html.d.ts.map +1 -0
  105. package/dist/node/html.js +51 -0
  106. package/dist/node/html.js.map +1 -0
  107. package/dist/node/index.d.ts +24 -0
  108. package/dist/node/index.d.ts.map +1 -0
  109. package/dist/node/index.js +15 -0
  110. package/dist/node/index.js.map +1 -0
  111. package/dist/node/inputs.d.ts +24 -0
  112. package/dist/node/inputs.d.ts.map +1 -0
  113. package/dist/node/inputs.js +259 -0
  114. package/dist/node/inputs.js.map +1 -0
  115. package/dist/node/packages.d.ts +35 -0
  116. package/dist/node/packages.d.ts.map +1 -0
  117. package/dist/node/packages.js +87 -0
  118. package/dist/node/packages.js.map +1 -0
  119. package/dist/node/preload.d.ts +10 -0
  120. package/dist/node/preload.d.ts.map +1 -0
  121. package/dist/node/preload.js +61 -0
  122. package/dist/node/preload.js.map +1 -0
  123. package/dist/node/server.d.ts +42 -0
  124. package/dist/node/server.d.ts.map +1 -0
  125. package/dist/node/server.js +369 -0
  126. package/dist/node/server.js.map +1 -0
  127. package/dist/node/static.d.ts +33 -0
  128. package/dist/node/static.d.ts.map +1 -0
  129. package/dist/node/static.js +141 -0
  130. package/dist/node/static.js.map +1 -0
  131. package/dist/node/workbench.d.ts +43 -0
  132. package/dist/node/workbench.d.ts.map +1 -0
  133. package/dist/node/workbench.js +183 -0
  134. package/dist/node/workbench.js.map +1 -0
  135. package/dist/pages/build.d.ts +22 -0
  136. package/dist/pages/build.d.ts.map +1 -0
  137. package/dist/pages/build.js +363 -0
  138. package/dist/pages/build.js.map +1 -0
  139. package/dist/pages/defaults.d.ts +16 -0
  140. package/dist/pages/defaults.d.ts.map +1 -0
  141. package/dist/pages/defaults.js +88 -0
  142. package/dist/pages/defaults.js.map +1 -0
  143. package/dist/pages/index.d.ts +14 -0
  144. package/dist/pages/index.d.ts.map +1 -0
  145. package/dist/pages/index.js +10 -0
  146. package/dist/pages/index.js.map +1 -0
  147. package/dist/pages/navigation.d.ts +48 -0
  148. package/dist/pages/navigation.d.ts.map +1 -0
  149. package/dist/pages/navigation.js +83 -0
  150. package/dist/pages/navigation.js.map +1 -0
  151. package/dist/pages/types.d.ts +143 -0
  152. package/dist/pages/types.d.ts.map +1 -0
  153. package/dist/pages/types.js +3 -0
  154. package/dist/pages/types.js.map +1 -0
  155. package/dist/panels/catalog-define.d.ts +3 -0
  156. package/dist/panels/catalog-define.d.ts.map +1 -0
  157. package/dist/panels/catalog-define.js +7 -0
  158. package/dist/panels/catalog-define.js.map +1 -0
  159. package/dist/panels/catalog.d.ts +33 -0
  160. package/dist/panels/catalog.d.ts.map +1 -0
  161. package/dist/panels/catalog.js +54 -0
  162. package/dist/panels/catalog.js.map +1 -0
  163. package/dist/panels/component-define.d.ts +3 -0
  164. package/dist/panels/component-define.d.ts.map +1 -0
  165. package/dist/panels/component-define.js +6 -0
  166. package/dist/panels/component-define.js.map +1 -0
  167. package/dist/panels/component-detail.d.ts +46 -0
  168. package/dist/panels/component-detail.d.ts.map +1 -0
  169. package/dist/panels/component-detail.js +1120 -0
  170. package/dist/panels/component-detail.js.map +1 -0
  171. package/dist/panels/component.d.ts +17 -0
  172. package/dist/panels/component.d.ts.map +1 -0
  173. package/dist/panels/component.js +10 -0
  174. package/dist/panels/component.js.map +1 -0
  175. package/dist/panels/foundation-define.d.ts +3 -0
  176. package/dist/panels/foundation-define.d.ts.map +1 -0
  177. package/dist/panels/foundation-define.js +6 -0
  178. package/dist/panels/foundation-define.js.map +1 -0
  179. package/dist/panels/foundation-detail.d.ts +23 -0
  180. package/dist/panels/foundation-detail.d.ts.map +1 -0
  181. package/dist/panels/foundation-detail.js +216 -0
  182. package/dist/panels/foundation-detail.js.map +1 -0
  183. package/dist/panels/foundation.d.ts +15 -0
  184. package/dist/panels/foundation.d.ts.map +1 -0
  185. package/dist/panels/foundation.js +9 -0
  186. package/dist/panels/foundation.js.map +1 -0
  187. package/dist/panels/model.d.ts +173 -0
  188. package/dist/panels/model.d.ts.map +1 -0
  189. package/dist/panels/model.js +462 -0
  190. package/dist/panels/model.js.map +1 -0
  191. package/dist/panels/styles.d.ts +3 -0
  192. package/dist/panels/styles.d.ts.map +1 -0
  193. package/dist/panels/styles.js +316 -0
  194. package/dist/panels/styles.js.map +1 -0
  195. package/dist/panels/theme-model.d.ts +49 -0
  196. package/dist/panels/theme-model.d.ts.map +1 -0
  197. package/dist/panels/theme-model.js +146 -0
  198. package/dist/panels/theme-model.js.map +1 -0
  199. package/dist/panels/theme-studio.d.ts +32 -0
  200. package/dist/panels/theme-studio.d.ts.map +1 -0
  201. package/dist/panels/theme-studio.js +312 -0
  202. package/dist/panels/theme-studio.js.map +1 -0
  203. package/dist/preview/frame.d.ts +44 -0
  204. package/dist/preview/frame.d.ts.map +1 -0
  205. package/dist/preview/frame.js +250 -0
  206. package/dist/preview/frame.js.map +1 -0
  207. package/dist/preview/index.d.ts +26 -0
  208. package/dist/preview/index.d.ts.map +1 -0
  209. package/dist/preview/index.js +58 -0
  210. package/dist/preview/index.js.map +1 -0
  211. package/dist/preview/theme-generation.d.ts +33 -0
  212. package/dist/preview/theme-generation.d.ts.map +1 -0
  213. package/dist/preview/theme-generation.js +48 -0
  214. package/dist/preview/theme-generation.js.map +1 -0
  215. package/dist/protocol/index.d.ts +207 -0
  216. package/dist/protocol/index.d.ts.map +1 -0
  217. package/dist/protocol/index.js +261 -0
  218. package/dist/protocol/index.js.map +1 -0
  219. package/dist/testing/index.d.ts +47 -0
  220. package/dist/testing/index.d.ts.map +1 -0
  221. package/dist/testing/index.js +145 -0
  222. package/dist/testing/index.js.map +1 -0
  223. package/package.json +118 -4
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Import maps from package `exports` (workbench.md §2.1): the shell and each preview frame load
3
+ * published package files as they are, without a bundler, and resolve bare specifiers through an
4
+ * import map generated from the packages in their module graph.
5
+ */
6
+ import { DiagnosticList, isObject } from '../internal/diagnostics.js';
7
+ /** The URL prefix of a package root under `base`. */
8
+ export function packageRoot(pkg, options) {
9
+ return options.versioned
10
+ ? `${options.base}${pkg.name}@${pkg.version ?? '0.0.0'}/`
11
+ : `${options.base}${pkg.name}/`;
12
+ }
13
+ /** Development first, so previews and the shell keep their diagnostics. */
14
+ export const DEFAULT_CONDITIONS = ['development', 'browser', 'import'];
15
+ /** Resolve one export target: a path, `null` (excluded), or `undefined` (no condition applies). */
16
+ export function resolveTarget(target, conditions) {
17
+ if (typeof target === 'string')
18
+ return target;
19
+ if (target === null)
20
+ return null;
21
+ if (Array.isArray(target)) {
22
+ for (const item of target) {
23
+ const resolved = resolveTarget(item, conditions);
24
+ if (resolved !== undefined)
25
+ return resolved;
26
+ }
27
+ return undefined;
28
+ }
29
+ if (isObject(target)) {
30
+ for (const [condition, value] of Object.entries(target)) {
31
+ if (condition !== 'default' && !conditions.has(condition))
32
+ continue;
33
+ const resolved = resolveTarget(value, conditions);
34
+ if (resolved !== undefined)
35
+ return resolved;
36
+ }
37
+ }
38
+ return undefined;
39
+ }
40
+ /** `exports` as a subpath map, or `undefined` when the package declares none. */
41
+ function subpaths(pkg, out) {
42
+ const { exports } = pkg;
43
+ if (exports === undefined)
44
+ return undefined;
45
+ if (typeof exports === 'string' || Array.isArray(exports) || exports === null)
46
+ return { '.': exports };
47
+ if (!isObject(exports)) {
48
+ out.warn('data.importMap.exports', `${pkg.name}: "exports" is not a string, array, or object.`, `/${pkg.name}/exports`);
49
+ return {};
50
+ }
51
+ const keys = Object.keys(exports);
52
+ const relative = keys.filter((key) => key.startsWith('.'));
53
+ if (relative.length === 0)
54
+ return { '.': exports };
55
+ if (relative.length !== keys.length) {
56
+ out.warn('data.importMap.exports', `${pkg.name}: "exports" mixes subpaths and conditions; Node rejects it, so it is skipped.`, `/${pkg.name}/exports`);
57
+ return {};
58
+ }
59
+ return exports;
60
+ }
61
+ /**
62
+ * The package-relative file (`./dist/x.js`) that an export subpath (`.` or `./x`) resolves to,
63
+ * as Node resolves it: exact keys first, then the pattern with the longest prefix. Without
64
+ * `exports`, every file is reachable and `.` is `module`, `main`, or `./index.js`.
65
+ */
66
+ export function resolveExport(pkg, subpath, conditions = DEFAULT_CONDITIONS) {
67
+ const map = subpaths(pkg, new DiagnosticList());
68
+ if (map === undefined) {
69
+ if (subpath !== '.')
70
+ return subpath;
71
+ const main = pkg.module ?? pkg.main ?? './index.js';
72
+ return main.startsWith('./') ? main : `./${main}`;
73
+ }
74
+ const active = new Set(conditions);
75
+ const relative = (target) => typeof target === 'string' && target.startsWith('./') ? target : undefined;
76
+ if (Object.hasOwn(map, subpath))
77
+ return relative(resolveTarget(map[subpath], active));
78
+ let best;
79
+ for (const key of Object.keys(map)) {
80
+ const star = key.indexOf('*');
81
+ if (star === -1)
82
+ continue;
83
+ const prefix = key.slice(0, star);
84
+ const suffix = key.slice(star + 1);
85
+ const matches = subpath.length >= prefix.length + suffix.length &&
86
+ subpath.startsWith(prefix) &&
87
+ subpath.endsWith(suffix);
88
+ if (matches && (!best || prefix.length > best.prefix.length))
89
+ best = { key, prefix, suffix };
90
+ }
91
+ if (!best)
92
+ return undefined;
93
+ const target = relative(resolveTarget(map[best.key], active));
94
+ const match = subpath.slice(best.prefix.length, subpath.length - best.suffix.length);
95
+ return target?.replaceAll('*', match);
96
+ }
97
+ /**
98
+ * The import map for `packages`, in the order given: a package name seen again (another copy of
99
+ * the same package) is skipped with a diagnostic, since one document can load one copy per
100
+ * specifier. Subpath patterns become prefix mappings when the prefix mapping is exact.
101
+ */
102
+ export function createImportMap(packages, options) {
103
+ if (!options.base.endsWith('/'))
104
+ throw new TypeError(`createImportMap: base "${options.base}" must end with "/".`);
105
+ const out = new DiagnosticList();
106
+ const conditions = new Set(options.conditions ?? DEFAULT_CONDITIONS);
107
+ const imports = {};
108
+ const seen = new Map();
109
+ for (const pkg of packages) {
110
+ if (seen.has(pkg.name)) {
111
+ const first = seen.get(pkg.name);
112
+ if (first !== pkg.version) {
113
+ out.warn('data.importMap.duplicate', `${pkg.name} is in the module graph as ${first ?? 'an unversioned copy'} and ${pkg.version ?? 'an unversioned copy'}; the document loads ${first ?? 'the first'} only.`, `/${pkg.name}`);
114
+ }
115
+ continue;
116
+ }
117
+ seen.set(pkg.name, pkg.version);
118
+ const root = packageRoot(pkg, options);
119
+ const map = subpaths(pkg, out);
120
+ if (map === undefined) {
121
+ const main = pkg.module ?? pkg.main;
122
+ if (main)
123
+ imports[pkg.name] = root + main.replace(/^\.\//, '');
124
+ imports[`${pkg.name}/`] = root;
125
+ continue;
126
+ }
127
+ for (const [key, target] of Object.entries(map)) {
128
+ if (key === './package.json')
129
+ continue;
130
+ const resolved = resolveTarget(target, conditions);
131
+ if (typeof resolved !== 'string')
132
+ continue;
133
+ if (!resolved.startsWith('./')) {
134
+ out.warn('data.importMap.target', `${pkg.name}: export "${key}" points at "${resolved}", which is not a relative path; skipped.`, `/${pkg.name}/exports/${key}`);
135
+ continue;
136
+ }
137
+ const star = key.indexOf('*');
138
+ if (star === -1) {
139
+ imports[key === '.' ? pkg.name : `${pkg.name}/${key.slice(2)}`] = root + resolved.slice(2);
140
+ continue;
141
+ }
142
+ const keyPrefix = key.slice(0, star);
143
+ const targetStar = resolved.indexOf('*');
144
+ const targetPrefix = resolved.slice(0, targetStar);
145
+ if (targetStar === -1 ||
146
+ !keyPrefix.endsWith('/') ||
147
+ !targetPrefix.endsWith('/') ||
148
+ key.slice(star + 1) !== resolved.slice(targetStar + 1)) {
149
+ out.warn('data.importMap.pattern', `${pkg.name}: export pattern "${key}" → "${resolved}" has no exact import-map prefix; skipped.`, `/${pkg.name}/exports/${key}`);
150
+ continue;
151
+ }
152
+ imports[`${pkg.name}/${keyPrefix.slice(2)}`] = root + targetPrefix.slice(2);
153
+ }
154
+ }
155
+ const sorted = {};
156
+ for (const key of Object.keys(imports).sort())
157
+ sorted[key] = imports[key];
158
+ return { importMap: { imports: sorted }, diagnostics: out.items };
159
+ }
160
+ //# sourceMappingURL=import-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-map.js","sourceRoot":"","sources":["../../src/data/import-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `@oddkin/workbench/data` — the Workbench index and per-page data files built from analyzer
3
+ * outputs, configuration, authored content, and token inspection, plus import maps from package
4
+ * `exports` (workbench.md §2.1). DOM-free; the Node tooling writes these files and the shell
5
+ * reads them.
6
+ */
7
+ export { buildWorkbenchData, pageFile, serializeData } from './build.js';
8
+ export type { WorkbenchDataInput } from './build.js';
9
+ export { createImportMap, DEFAULT_CONDITIONS, packageRoot, resolveExport, resolveTarget, } from './import-map.js';
10
+ export type { ImportMap, ImportMapOptions, PackageManifest } from './import-map.js';
11
+ export { DATA_VERSION, INDEX_FORMAT, PAGE_FORMAT } from './types.js';
12
+ export type { BasicPageData, ComponentPageData, ExampleSetLike, FoundationPageData, InspectedTokenLike, JsonObject, LibraryInput, PageData, TokenInspectionLike, WorkbenchBranding, WorkbenchData, WorkbenchIndex, } from './types.js';
13
+ export type { WorkbenchDiagnostic } from '../internal/diagnostics.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `@oddkin/workbench/data` — the Workbench index and per-page data files built from analyzer
3
+ * outputs, configuration, authored content, and token inspection, plus import maps from package
4
+ * `exports` (workbench.md §2.1). DOM-free; the Node tooling writes these files and the shell
5
+ * reads them.
6
+ */
7
+ export { buildWorkbenchData, pageFile, serializeData } from './build.js';
8
+ export { createImportMap, DEFAULT_CONDITIONS, packageRoot, resolveExport, resolveTarget, } from './import-map.js';
9
+ export { DATA_VERSION, INDEX_FORMAT, PAGE_FORMAT } from './types.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Theme Studio's page data (workbench.md §6): the baseline theme configuration, the generation
3
+ * worker, and the specimen roles, each mapped to a documented component through an example that
4
+ * claims the role (`previewRoles`) or through `themeStudio.preview.roles`; never by tag name alone.
5
+ */
6
+ import type { ResolvedWorkbenchConfig } from '../config/index.js';
7
+ import type { DiagnosticList } from '../internal/diagnostics.js';
8
+ import { type ComponentPageData, type JsonObject, type ThemeStudioPageData } from './types.js';
9
+ /** The default `theme-specimen` recipe's roles, in display order, with their captions. */
10
+ export declare const SPECIMEN_ROLES: Readonly<Record<string, string>>;
11
+ /** What dev tooling loaded for Theme Studio. */
12
+ export interface ThemeStudioInput {
13
+ /** The baseline configuration's JSON model (`loadConfig`). */
14
+ readonly config?: JsonObject;
15
+ /** Where it came from, as written in the Workbench configuration. */
16
+ readonly source?: string;
17
+ /** URL of the generation worker module. */
18
+ readonly worker?: string;
19
+ }
20
+ export declare function themeStudioPage(id: string, components: readonly ComponentPageData[], config: ResolvedWorkbenchConfig, input: ThemeStudioInput, out: DiagnosticList): ThemeStudioPageData;
21
+ //# sourceMappingURL=theme-studio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-studio.d.ts","sourceRoot":"","sources":["../../src/data/theme-studio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAEf,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AAEpB,0FAA0F;AAC1F,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY3D,CAAC;AAEF,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,iBAAiB,EAAE,EACxC,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,cAAc,GAClB,mBAAmB,CA0GrB"}
@@ -0,0 +1,116 @@
1
+ import { presets } from '../panels/model.js';
2
+ import { DATA_VERSION, PAGE_FORMAT, } from './types.js';
3
+ /** The default `theme-specimen` recipe's roles, in display order, with their captions. */
4
+ export const SPECIMEN_ROLES = {
5
+ surface: 'Surface',
6
+ heading: 'Heading',
7
+ bodyText: 'Body text',
8
+ link: 'Link',
9
+ badge: 'Badge',
10
+ textInput: 'Text input',
11
+ checkbox: 'Checkbox',
12
+ switch: 'Switch',
13
+ primaryAction: 'Primary action',
14
+ secondaryAction: 'Secondary action',
15
+ navigation: 'Navigation',
16
+ };
17
+ const roleId = (value) => value.replace(/^role:/, '');
18
+ export function themeStudioPage(id, components, config, input, out) {
19
+ const registration = (page) => {
20
+ const value = page.enrichment?.['registration'];
21
+ return typeof value === 'string' ? value : undefined;
22
+ };
23
+ const role = (name, page, exampleName, source) => {
24
+ const entry = registration(page);
25
+ const all = presets(page);
26
+ const example = exampleName
27
+ ? all.find((p) => p.name === exampleName)
28
+ : (all.find((p) => p.name === 'default') ?? all.find((p) => p.state && !p.incorrect));
29
+ if (!entry || !example?.state)
30
+ return undefined;
31
+ return {
32
+ role: name,
33
+ label: SPECIMEN_ROLES[name] ?? name,
34
+ tag: page.tag,
35
+ registration: entry,
36
+ example: example.id,
37
+ properties: example.state.properties,
38
+ attributes: example.state.attributes,
39
+ slots: example.state.slots,
40
+ source,
41
+ };
42
+ };
43
+ // Roles claimed by examples; a role claimed by two components stays unmapped.
44
+ const claims = new Map();
45
+ for (const page of components)
46
+ for (const example of page.examples) {
47
+ const roles = example['previewRoles'];
48
+ const name = example['name'];
49
+ if (!Array.isArray(roles) || typeof name !== 'string')
50
+ continue;
51
+ for (const r of roles)
52
+ if (typeof r === 'string')
53
+ claims.set(roleId(r), [...(claims.get(roleId(r)) ?? []), { page, example: name }]);
54
+ }
55
+ const missing = [];
56
+ const byTag = new Map(components.map((page) => [page.tag, page]));
57
+ const mapped = new Map();
58
+ for (const [name, target] of Object.entries(config.themeStudio.preview.roles ?? {})) {
59
+ const tag = typeof target === 'string' ? target : target.component;
60
+ const page = byTag.get(tag);
61
+ const resolved = page && role(name, page, typeof target === 'string' ? undefined : target.example, 'config');
62
+ if (resolved)
63
+ mapped.set(name, resolved);
64
+ else
65
+ out.warn('data.themeStudio.role', `themeStudio.preview.roles.${name}: <${tag}> is not a documented component with a registration entry and that example.`, `/themeStudio/preview/roles/${name}`);
66
+ }
67
+ for (const [name, claimants] of claims) {
68
+ if (mapped.has(name))
69
+ continue;
70
+ const tags = [...new Set(claimants.map((c) => c.page.tag))];
71
+ const only = claimants[0];
72
+ if (tags.length === 1 && claimants.length === 1 && only) {
73
+ const resolved = role(name, only.page, only.example, 'example');
74
+ if (resolved)
75
+ mapped.set(name, resolved);
76
+ }
77
+ else
78
+ missing.push({
79
+ item: `role:${name}`,
80
+ supply: `themeStudio.preview.roles.${name} (claimed by ${claimants.map((c) => `${c.page.tag}/${c.example}`).join(', ')})`,
81
+ });
82
+ }
83
+ const order = Object.keys(SPECIMEN_ROLES);
84
+ const rank = (name) => (order.includes(name) ? order.indexOf(name) : order.length);
85
+ const roles = [...mapped.values()].sort((a, b) => rank(a.role) - rank(b.role) || a.role.localeCompare(b.role));
86
+ for (const name of order)
87
+ if (!mapped.has(name) && !claims.has(name))
88
+ missing.push({
89
+ item: `role:${name}`,
90
+ supply: `an example with previewRoles: ['${name}'], or themeStudio.preview.roles.${name}`,
91
+ });
92
+ if (!input.config)
93
+ missing.unshift({
94
+ item: 'config',
95
+ supply: 'themeStudio.themeConfig (a theme configuration file)',
96
+ });
97
+ if (!input.worker)
98
+ missing.unshift({
99
+ item: 'generator',
100
+ supply: 'a documented package that depends on @oddkin/tokens (its ./generate export)',
101
+ });
102
+ return {
103
+ format: PAGE_FORMAT,
104
+ version: DATA_VERSION,
105
+ id,
106
+ kind: 'tool',
107
+ studio: {
108
+ ...(input.config ? { config: input.config } : {}),
109
+ ...(input.source ? { source: input.source } : {}),
110
+ ...(input.worker ? { worker: input.worker } : {}),
111
+ roles,
112
+ missing,
113
+ },
114
+ };
115
+ }
116
+ //# sourceMappingURL=theme-studio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-studio.js","sourceRoot":"","sources":["../../src/data/theme-studio.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,WAAW,GAKZ,MAAM,YAAY,CAAC;AAEpB,0FAA0F;AAC1F,MAAM,CAAC,MAAM,cAAc,GAAqC;IAC9D,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,gBAAgB;IAC/B,eAAe,EAAE,kBAAkB;IACnC,UAAU,EAAE,YAAY;CACzB,CAAC;AAYF,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAE9D,MAAM,UAAU,eAAe,CAC7B,EAAU,EACV,UAAwC,EACxC,MAA+B,EAC/B,KAAuB,EACvB,GAAmB;IAEnB,MAAM,YAAY,GAAG,CAAC,IAAuB,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC;QAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CACX,IAAY,EACZ,IAAuB,EACvB,WAA+B,EAC/B,MAA8B,EACJ,EAAE;QAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,WAAW;YACzB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;YACzC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK;YAAE,OAAO,SAAS,CAAC;QAChD,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI;YACnC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,OAAO,CAAC,EAA6B;YAC9C,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;YACpC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;YAC1B,MAAM;SACP,CAAC;IACJ,CAAC,CAAC;IAEF,8EAA8E;IAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0D,CAAC;IACjF,KAAK,MAAM,IAAI,IAAI,UAAU;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAChE,KAAK,MAAM,CAAC,IAAI,KAAK;gBACnB,IAAI,OAAO,CAAC,KAAK,QAAQ;oBACvB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;IAEH,MAAM,OAAO,GAAuC,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACpF,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GACZ,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9F,IAAI,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;;YAEvC,GAAG,CAAC,IAAI,CACN,uBAAuB,EACvB,6BAA6B,IAAI,MAAM,GAAG,6EAA6E,EACvH,8BAA8B,IAAI,EAAE,CACrC,CAAC;IACN,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAChE,IAAI,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;;YACC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,QAAQ,IAAI,EAAE;gBACpB,MAAM,EAAE,6BAA6B,IAAI,gBAAgB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC1H,CAAC,CAAC;IACP,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3F,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACtE,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,QAAQ,IAAI,EAAE;gBACpB,MAAM,EAAE,mCAAmC,IAAI,oCAAoC,IAAI,EAAE;aAC1F,CAAC,CAAC;IACP,IAAI,CAAC,KAAK,CAAC,MAAM;QACf,OAAO,CAAC,OAAO,CAAC;YACd,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,sDAAsD;SAC/D,CAAC,CAAC;IACL,IAAI,CAAC,KAAK,CAAC,MAAM;QACf,OAAO,CAAC,OAAO,CAAC;YACd,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,6EAA6E;SACtF,CAAC,CAAC;IAEL,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,YAAY;QACrB,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACN,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,KAAK;YACL,OAAO;SACR;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Workbench data files (workbench.md §2.1): a small index the shell loads first, and one data
3
+ * file per page that its route loads lazily. Internal formats shared by the Node tooling and the
4
+ * browser shell of the same Workbench version; `version` changes when a shape changes.
5
+ */
6
+ import type { WorkbenchDiagnostic } from '../internal/diagnostics.js';
7
+ import type { JsonValue } from '../protocol/index.js';
8
+ import type { CemPackage, OddkinMetadataLike, PageKind, PageRegistry } from '../pages/types.js';
9
+ export declare const INDEX_FORMAT = "oddkin.workbench-index";
10
+ export declare const PAGE_FORMAT = "oddkin.workbench-page";
11
+ export declare const DATA_VERSION = 1;
12
+ /** A JSON object as read from a published file. */
13
+ export type JsonObject = {
14
+ readonly [key: string]: unknown;
15
+ };
16
+ /** One documented package and its published outputs. */
17
+ export interface LibraryInput {
18
+ readonly name: string;
19
+ readonly version: string;
20
+ /** Its standard Custom Elements Manifest (`customElements`). */
21
+ readonly cem?: CemPackage;
22
+ /** Its `oddkin.metadata.json`, when the package publishes Oddkin enrichment. */
23
+ readonly metadata?: OddkinMetadataLike;
24
+ /** Authored example sets as data (`toExamplesJSON()` of each `defineExamples` module). */
25
+ readonly examples?: readonly ExampleSetLike[];
26
+ }
27
+ /** One component's examples as plain data (`@oddkin/workbench/examples` `ExamplesJSON`). */
28
+ export interface ExampleSetLike {
29
+ readonly component: string;
30
+ readonly examples: Readonly<Record<string, JsonObject>>;
31
+ }
32
+ /** A token as published by a token inspection (`@oddkin/tokens/inspect/*.json`). */
33
+ export interface InspectedTokenLike {
34
+ readonly name: string;
35
+ readonly cssVariable?: string;
36
+ readonly category?: string;
37
+ readonly type?: string;
38
+ readonly origin?: string;
39
+ readonly definition?: unknown;
40
+ readonly value?: unknown;
41
+ readonly description?: string;
42
+ }
43
+ export interface TokenInspectionLike {
44
+ readonly theme?: string;
45
+ readonly tokens: readonly InspectedTokenLike[];
46
+ }
47
+ export interface WorkbenchBranding {
48
+ readonly name: string;
49
+ readonly logo?: string;
50
+ readonly links: readonly {
51
+ readonly label: string;
52
+ readonly href: string;
53
+ }[];
54
+ }
55
+ export interface WorkbenchIndex {
56
+ readonly format: typeof INDEX_FORMAT;
57
+ readonly version: typeof DATA_VERSION;
58
+ readonly branding: WorkbenchBranding;
59
+ /** The documented packages, in configuration order. */
60
+ readonly libraries: readonly {
61
+ readonly name: string;
62
+ readonly version: string;
63
+ readonly prefix?: string;
64
+ }[];
65
+ readonly registry: PageRegistry;
66
+ /** Page id → its data file, relative to the index. Visible pages only. */
67
+ readonly pages: Readonly<Record<string, string>>;
68
+ readonly diagnostics: readonly WorkbenchDiagnostic[];
69
+ }
70
+ interface PageDataBase {
71
+ readonly format: typeof PAGE_FORMAT;
72
+ readonly version: typeof DATA_VERSION;
73
+ readonly id: string;
74
+ }
75
+ /** A component page: its published facts, verbatim, for the detail panels to present. */
76
+ export interface ComponentPageData extends PageDataBase {
77
+ readonly kind: 'component';
78
+ readonly tag: string;
79
+ /** The package whose manifest declares the element. */
80
+ readonly package: string;
81
+ /** The CEM module that declares it. */
82
+ readonly module: string;
83
+ /** The CEM declaration, verbatim. */
84
+ readonly declaration: JsonObject;
85
+ /** The Oddkin enrichment entry, verbatim, when published. */
86
+ readonly enrichment?: JsonObject;
87
+ /**
88
+ * Authored examples for the element (metadata `examples`), verbatim, with their ids. When the
89
+ * example set was loaded, `definition` holds its values (label, props, attributes, slots,
90
+ * preset, guidance, incorrect, `hasFixture`).
91
+ */
92
+ readonly examples: readonly JsonObject[];
93
+ /**
94
+ * The tokens the component reads (`tokenReads`), resolved from the token inspection in their
95
+ * order. A token missing from the inspection keeps only its name (`missing: true`).
96
+ */
97
+ readonly tokens?: readonly (InspectedTokenLike & {
98
+ readonly missing?: true;
99
+ })[];
100
+ /**
101
+ * Authored content for the page (`oddkin.docs.ts`): intended use and section guidance. Absent
102
+ * when nothing is authored.
103
+ */
104
+ readonly authored?: {
105
+ readonly useFor?: readonly string[];
106
+ readonly notFor?: readonly string[];
107
+ readonly guidance?: string;
108
+ };
109
+ }
110
+ /** A foundation page: its metadata and the referenced tokens from the token inspection. */
111
+ export interface FoundationPageData extends PageDataBase {
112
+ readonly kind: 'foundation';
113
+ /** The foundation's metadata entry, verbatim. */
114
+ readonly foundation: JsonObject;
115
+ /**
116
+ * The tokens the foundation lists, in its order. A token missing from the inspection keeps
117
+ * only its name (`missing: true`); its value is never guessed.
118
+ */
119
+ readonly tokens: readonly (InspectedTokenLike & {
120
+ readonly missing?: true;
121
+ })[];
122
+ }
123
+ /** Overview, tool, products, and home pages: their content comes from the index for now. */
124
+ export interface BasicPageData extends PageDataBase {
125
+ readonly kind: Exclude<PageKind, 'component' | 'foundation'>;
126
+ }
127
+ /** A specimen role played by a documented component in one of its examples. */
128
+ export interface SpecimenRole {
129
+ readonly role: string;
130
+ /** Visible caption. */
131
+ readonly label: string;
132
+ readonly tag: string;
133
+ /** The component's published registration entry. */
134
+ readonly registration: string;
135
+ /** The example whose values the specimen uses. */
136
+ readonly example: `example:${string}/${string}`;
137
+ readonly properties: Readonly<Record<string, JsonValue>>;
138
+ readonly attributes: Readonly<Record<string, string>>;
139
+ readonly slots: Readonly<Record<string, string>>;
140
+ /** Mapped by `themeStudio.preview.roles` or claimed by the example (`previewRoles`). */
141
+ readonly source: 'config' | 'example';
142
+ }
143
+ /** Theme Studio (workbench.md ?6): the baseline configuration, its generator, and specimens. */
144
+ export interface ThemeStudioPageData extends PageDataBase {
145
+ readonly kind: 'tool';
146
+ readonly studio: {
147
+ /** The baseline theme configuration's JSON model. */
148
+ readonly config?: JsonObject;
149
+ /** The configuration file, as `themeStudio.themeConfig` names it. */
150
+ readonly source?: string;
151
+ /** URL of the generation worker (the library's own `@oddkin/tokens/generate`). */
152
+ readonly worker?: string;
153
+ readonly roles: readonly SpecimenRole[];
154
+ /** Absent inputs, each with what supplies it; shown on the page, never guessed. */
155
+ readonly missing: readonly {
156
+ readonly item: string;
157
+ readonly supply: string;
158
+ }[];
159
+ };
160
+ }
161
+ export type PageData = ComponentPageData | FoundationPageData | ThemeStudioPageData | BasicPageData;
162
+ export interface WorkbenchData {
163
+ readonly index: WorkbenchIndex;
164
+ /** Page id → data, for every entry of `index.pages`. */
165
+ readonly pages: Readonly<Record<string, PageData>>;
166
+ }
167
+ /** Re-exported for callers that build the registry input themselves. */
168
+ export type { CemPackage, OddkinMetadataLike };
169
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export const INDEX_FORMAT = 'oddkin.workbench-index';
2
+ export const PAGE_FORMAT = 'oddkin.workbench-page';
3
+ export const DATA_VERSION = 1;
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC"}