@dsgraph/core 0.6.3 → 0.7.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/dist/code.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { type Token } from '@dsgraph/schema';
2
2
  import type { DsGraph } from './graph.js';
3
+ import { type Knowledge, type Role } from './knowledge.js';
3
4
  import type { Input } from './resolver/system.js';
4
5
  /**
5
6
  * What a project's code does with the design system: where it reads tokens (`var(--…)`) and where
@@ -97,26 +98,47 @@ export interface NearestToken {
97
98
  /** Within what people cannot tell apart: ΔE < 1, < 0.5px; equal otherwise. */
98
99
  exact: boolean;
99
100
  }
100
- /** What a token is for, by words in its name: text, a background, a border or outline, a shadow. */
101
- declare const ROLES: {
102
- readonly text: RegExp;
103
- readonly background: RegExp;
104
- readonly border: RegExp;
105
- readonly shadow: RegExp;
106
- };
107
- type Role = keyof typeof ROLES;
108
101
  /** The role a CSS property's value plays: `color` is text, `background-color` a background. */
109
102
  export declare function roleOfProperty(property: string): Role | undefined;
110
103
  /**
111
- * Tokens nearest to a value in one context. Deprecated ones go last. Among exact matches, tokens
112
- * made for the property's role come first (`fgColor.accent` for `color`, not `borderColor.accent`).
104
+ * Where a value is written, as far as choosing a token goes: the CSS property, the states the rule
105
+ * applies in (`:hover` → `hover`) and the component it styles (`.button`, `Button.tsx`).
106
+ */
107
+ export interface StyleContext {
108
+ property?: string;
109
+ /** `hover`, `focus`, `active`, `disabled`, `selected`, `visited`; none for the resting state. */
110
+ states?: string[];
111
+ /** Names of the component the code styles, lower case, without separators: `button`, `actionlist`. */
112
+ components?: string[];
113
+ }
114
+ /**
115
+ * The context of a value written in code, for `nearestTokens`: states from the selector or a
116
+ * class's variants, components from the selector's classes (the block of a BEM class) and the file
117
+ * name (`Button.module.css`, `ActionList/Item.tsx`).
118
+ */
119
+ export declare function styleContext(at: {
120
+ file: string;
121
+ property: string;
122
+ selector?: string;
123
+ source?: string;
124
+ }, knowledge?: Knowledge): StyleContext;
125
+ /**
126
+ * Tokens nearest to a value in one context. Deprecated ones go last. Among exact matches, the name
127
+ * decides, in this order:
128
+ * - a token made for another role goes last (`borderColor.accent` for `color`);
129
+ * - the code's state: `control.bgColor.hover` in a `:hover` rule, and in a rule without one, not
130
+ * a token for hover or disabled;
131
+ * - the code's component: `button.bgColor.rest` in `.button` or `Button.tsx`;
132
+ * - the property's role, as the first part of the name before deeper in it (`fgColor.accent`
133
+ * before `selection.fgColor`).
113
134
  * Among equally close tokens, the ones that reference another token (semantic tokens, which follow
114
135
  * themes) come before the primitives that hold the value; then general tokens before component ones
115
136
  * (`fgColor.accent` before `button.outline.fgColor.rest`), and the one others build on first.
137
+ * `context` is a CSS property or a whole `StyleContext` (see `styleContext`); a knowledge pack adds
138
+ * to the words names are read by.
116
139
  */
117
140
  export declare function nearestTokens(graph: DsGraph, parsed: {
118
141
  type: string;
119
142
  value: unknown;
120
- }, input: Input, limit: number, property?: string): NearestToken[];
121
- export {};
143
+ }, input: Input, limit: number, context?: string | StyleContext, knowledge?: Knowledge): NearestToken[];
122
144
  //# sourceMappingURL=code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"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"}
package/dist/code.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { canonicalize } from '@dsgraph/schema';
2
+ import { vocabularyOf } from './knowledge.js';
2
3
  import { normalizeName } from './path.js';
3
4
  import { deltaEOK } from './values/color.js';
4
5
  import { toPx } from './values/dimension.js';
@@ -138,13 +139,6 @@ const COMPATIBLE = {
138
139
  number: ['number', 'fontWeight'],
139
140
  fontWeight: ['fontWeight', 'number'],
140
141
  };
141
- /** What a token is for, by words in its name: text, a background, a border or outline, a shadow. */
142
- const ROLES = {
143
- text: /(^|\.)(fg|foreground|text|ink|content|on|link|icon)(\.|$)/,
144
- background: /(^|\.)(bg|background|surface|canvas|fill|container|layer|backdrop)(\.|$)/,
145
- border: /(^|\.)(border|stroke|outline|divider|separator|ring)(\.|$)/,
146
- shadow: /(^|\.)(shadow|elevation)(\.|$)/,
147
- };
148
142
  /** The role a CSS property's value plays: `color` is text, `background-color` a background. */
149
143
  export function roleOfProperty(property) {
150
144
  const p = property.toLowerCase();
@@ -158,31 +152,148 @@ export function roleOfProperty(property) {
158
152
  return 'shadow';
159
153
  return undefined;
160
154
  }
155
+ /** States in a selector; what `:not()` excludes does not count. */
156
+ const SELECTOR_STATES = [
157
+ [/:hover\b/, 'hover'],
158
+ [/:focus(-visible|-within)?\b/, 'focus'],
159
+ [/:active\b|\[aria-pressed(=["']?true["']?)?\]/, 'active'],
160
+ [/:disabled\b|\[disabled\]|\[aria-disabled(=["']?true["']?)?\]|\.is-disabled\b/, 'disabled'],
161
+ [
162
+ /:checked\b|\[aria-(selected|checked|current)(=["']?(true|page|step)["']?)?\]|\.is-(selected|checked)\b|\[data-state=["']?(checked|on|active)["']?\]/,
163
+ 'selected',
164
+ ],
165
+ [/:visited\b/, 'visited'],
166
+ ];
167
+ /** States of a utility class's variants: `hover:`, `group-focus-visible:`, `aria-disabled:`, `data-[state=checked]:`. */
168
+ function variantStates(source) {
169
+ const m = /^((?:[\w-]+(?:\[[^\]]*\])?:)*)/.exec(source);
170
+ const out = new Set();
171
+ for (const v of (m?.[1] ?? '').split(':').filter(Boolean)) {
172
+ if (/hover/.test(v))
173
+ out.add('hover');
174
+ else if (/focus/.test(v))
175
+ out.add('focus');
176
+ else if (/(^|-)active$|pressed/.test(v))
177
+ out.add('active');
178
+ else if (/disabled/.test(v))
179
+ out.add('disabled');
180
+ else if (/checked|selected|current/.test(v))
181
+ out.add('selected');
182
+ else if (/visited/.test(v))
183
+ out.add('visited');
184
+ }
185
+ return [...out];
186
+ }
187
+ const compact = (name) => normalizeName(name).replace(/\./g, '');
188
+ /**
189
+ * The context of a value written in code, for `nearestTokens`: states from the selector or a
190
+ * class's variants, components from the selector's classes (the block of a BEM class) and the file
191
+ * name (`Button.module.css`, `ActionList/Item.tsx`).
192
+ */
193
+ export function styleContext(at, knowledge) {
194
+ const v = vocabularyOf(knowledge);
195
+ const states = new Set();
196
+ if (at.selector) {
197
+ const sel = at.selector.replace(/:not\([^)]*\)/g, '');
198
+ for (const [re, state] of SELECTOR_STATES)
199
+ if (re.test(sel))
200
+ states.add(state);
201
+ }
202
+ if (at.source)
203
+ for (const s of variantStates(at.source))
204
+ states.add(s);
205
+ const components = new Set();
206
+ const add = (name, isClass) => {
207
+ const c = compact(name);
208
+ const words = normalizeName(name).split('.');
209
+ if (!c || v.generic.has(c) || /^\d/.test(c))
210
+ return;
211
+ // A class that names a state or a role (`.is-active`, `.text`) is not a component.
212
+ if (words.some((w) => v.states.has(w) || v.rest.has(w)) || words[0] === 'is' || words[0] === 'has')
213
+ return;
214
+ if (isClass && Object.values(v.roles).some((re) => re.test(c)))
215
+ return;
216
+ components.add(c);
217
+ };
218
+ for (const cls of at.selector?.match(/\.-?[_a-zA-Z][\w-]*/g) ?? []) {
219
+ const name = cls.slice(1);
220
+ add(name.split(/__|--/)[0], true);
221
+ if (/__|--/.test(name))
222
+ add(name.replace(/--.*$/, ''), true);
223
+ }
224
+ const parts = at.file.split('/');
225
+ const base = parts.at(-1).replace(/(\.(module|styles?|stories|test|spec))*\.[\w]+$/i, '');
226
+ add(base, false);
227
+ // `Button/index.tsx`, `Button/styles.css`: the folder names the component.
228
+ if (parts.length > 1 && v.generic.has(compact(base)))
229
+ add(parts.at(-2), false);
230
+ const ctx = { property: at.property };
231
+ if (states.size)
232
+ ctx.states = [...states].sort();
233
+ if (components.size)
234
+ ctx.components = [...components];
235
+ return ctx;
236
+ }
237
+ /** How a token's name fits the code's states: 2 names the state, 1 says nothing, 0 names another state. */
238
+ function stateScore(words, states, v) {
239
+ const named = new Set(words.map((w) => v.states.get(w)).filter(Boolean));
240
+ if (states.length)
241
+ return states.some((s) => named.has(s)) ? 2 : named.size || words.some((w) => v.rest.has(w)) ? 0 : 1;
242
+ // In the resting state, a token for hover or disabled is the wrong one even with the same value.
243
+ return named.size ? 0 : 1;
244
+ }
245
+ /** Whether a token's name names one of the components: `button` in `button.primary.bgColor`. */
246
+ function componentScore(words, components) {
247
+ if (!components.length)
248
+ return 0;
249
+ for (let i = 0; i < words.length; i++) {
250
+ let joined = '';
251
+ for (let j = i; j < Math.min(words.length, i + 4); j++) {
252
+ joined += words[j];
253
+ if (components.includes(joined))
254
+ return 1;
255
+ }
256
+ }
257
+ return 0;
258
+ }
161
259
  const segments = (id) => id.split('.').length;
162
260
  /**
163
261
  * How well a token's name says it is made for the role: 2 when the name starts with it (`bgColor.*`,
164
262
  * a general token), 1 when it says so further on (`selection.bgColor`), -1 when it names another
165
263
  * role, else 0.
166
264
  */
167
- function roleScore(id, role) {
265
+ function roleScore(id, role, v) {
168
266
  if (!role)
169
267
  return 0;
170
268
  const name = normalizeName(id);
171
- if (ROLES[role].test(name.split('.')[0]))
269
+ const roles = v.roles;
270
+ if (roles[role].test(name.split('.')[0]))
172
271
  return 2;
173
- if (ROLES[role].test(name))
272
+ if (roles[role].test(name))
174
273
  return 1;
175
- return Object.keys(ROLES).some((r) => r !== role && ROLES[r].test(name)) ? -1 : 0;
274
+ return Object.keys(roles).some((r) => r !== role && roles[r].test(name)) ? -1 : 0;
176
275
  }
177
276
  /**
178
- * Tokens nearest to a value in one context. Deprecated ones go last. Among exact matches, tokens
179
- * made for the property's role come first (`fgColor.accent` for `color`, not `borderColor.accent`).
277
+ * Tokens nearest to a value in one context. Deprecated ones go last. Among exact matches, the name
278
+ * decides, in this order:
279
+ * - a token made for another role goes last (`borderColor.accent` for `color`);
280
+ * - the code's state: `control.bgColor.hover` in a `:hover` rule, and in a rule without one, not
281
+ * a token for hover or disabled;
282
+ * - the code's component: `button.bgColor.rest` in `.button` or `Button.tsx`;
283
+ * - the property's role, as the first part of the name before deeper in it (`fgColor.accent`
284
+ * before `selection.fgColor`).
180
285
  * Among equally close tokens, the ones that reference another token (semantic tokens, which follow
181
286
  * themes) come before the primitives that hold the value; then general tokens before component ones
182
287
  * (`fgColor.accent` before `button.outline.fgColor.rest`), and the one others build on first.
288
+ * `context` is a CSS property or a whole `StyleContext` (see `styleContext`); a knowledge pack adds
289
+ * to the words names are read by.
183
290
  */
184
- export function nearestTokens(graph, parsed, input, limit, property) {
185
- const role = property ? roleOfProperty(property) : undefined;
291
+ export function nearestTokens(graph, parsed, input, limit, context, knowledge) {
292
+ const v = vocabularyOf(knowledge);
293
+ const ctx = typeof context === 'string' ? { property: context } : (context ?? {});
294
+ const role = ctx.property ? roleOfProperty(ctx.property) : undefined;
295
+ const states = ctx.states ?? [];
296
+ const components = ctx.components ?? [];
186
297
  const types = COMPATIBLE[parsed.type] ?? [parsed.type];
187
298
  const out = [];
188
299
  const depth = new Map();
@@ -198,9 +309,31 @@ export function nearestTokens(graph, parsed, input, limit, property) {
198
309
  out.push(m);
199
310
  depth.set(m, graph.chain(token.id, input).length);
200
311
  }
312
+ // How a name fits the context, worked out once per exact match: [role ok, state, component, role].
313
+ const fits = new Map();
314
+ const fit = (m) => {
315
+ let f = fits.get(m);
316
+ if (!f) {
317
+ const words = normalizeName(m.token.id).split('.');
318
+ const r = roleScore(m.token.id, role, v);
319
+ f = [r < 0 ? 0 : 1, stateScore(words, states, v), componentScore(words, components), r];
320
+ fits.set(m, f);
321
+ }
322
+ return f;
323
+ };
324
+ const byFit = (a, b) => {
325
+ if (!a.exact || !b.exact)
326
+ return 0;
327
+ const fa = fit(a);
328
+ const fb = fit(b);
329
+ for (let i = 0; i < fa.length; i++)
330
+ if (fa[i] !== fb[i])
331
+ return fb[i] - fa[i];
332
+ return 0;
333
+ };
201
334
  return out
202
335
  .sort((a, b) => Number(a.token.deprecated !== null) - Number(b.token.deprecated !== null) ||
203
- (a.exact && b.exact ? roleScore(b.token.id, role) - roleScore(a.token.id, role) : 0) ||
336
+ byFit(a, b) ||
204
337
  a.distance - b.distance ||
205
338
  Number(depth.get(b) > 1) - Number(depth.get(a) > 1) ||
206
339
  segments(a.token.id) - segments(b.token.id) ||
package/dist/code.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"code.js","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from '@dsgraph/schema';
2
- export { type CodeIndex, type CodeLoc, type Coverage, coverageOf, formatCoverage, type NearestToken, nearestTokens, roleOfProperty, type StyleLiteral, type TokenUse, VarMatcher, valueDistance, varNames, } from './code.js';
2
+ export { type CodeIndex, type CodeLoc, type Coverage, coverageOf, formatCoverage, type NearestToken, nearestTokens, roleOfProperty, type StyleContext, type StyleLiteral, styleContext, type TokenUse, VarMatcher, valueDistance, varNames, } from './code.js';
3
3
  export { DiagnosticBag } from './diagnostics.js';
4
4
  export { type DiffOptions, diff } from './diff/diff.js';
5
5
  export { detectRenames, pathSimilarity, stableIdOf } from './diff/rename.js';
@@ -10,6 +10,7 @@ export { type ResolvedDoc, type ResolvedToken, resolveDoc } from './dtcg/resolve
10
10
  export { DsGraph, type TokenFilter } from './graph.js';
11
11
  export { type ChangeImpact, type Impact, type ImpactSite, impactOf } from './impact.js';
12
12
  export { parseJsonLenient } from './json.js';
13
+ export { type CompiledVocabulary, DEFAULT_VOCABULARY, type Knowledge, type Role, readKnowledge, type Vocabulary, vocabularyOf, } from './knowledge.js';
13
14
  export { NOT_TOKENS } from './not-tokens.js';
14
15
  export { cssVarToName, globToRegExp, matchGlob, matchPath, normalizeName, tokenId } from './path.js';
15
16
  export { getAt, parsePointer, toPointer } from './pointer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from '@dsgraph/schema';
2
- export { coverageOf, formatCoverage, nearestTokens, roleOfProperty, VarMatcher, valueDistance, varNames, } from './code.js';
2
+ export { coverageOf, formatCoverage, nearestTokens, roleOfProperty, styleContext, VarMatcher, valueDistance, varNames, } from './code.js';
3
3
  export { DiagnosticBag } from './diagnostics.js';
4
4
  export { diff } from './diff/diff.js';
5
5
  export { detectRenames, pathSimilarity, stableIdOf } from './diff/rename.js';
@@ -10,6 +10,7 @@ export { resolveDoc } from './dtcg/resolve.js';
10
10
  export { DsGraph } from './graph.js';
11
11
  export { impactOf } from './impact.js';
12
12
  export { parseJsonLenient } from './json.js';
13
+ export { DEFAULT_VOCABULARY, readKnowledge, vocabularyOf, } from './knowledge.js';
13
14
  export { NOT_TOKENS } from './not-tokens.js';
14
15
  export { cssVarToName, globToRegExp, matchGlob, matchPath, normalizeName, tokenId } from './path.js';
15
16
  export { getAt, parsePointer, toPointer } from './pointer.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAIL,UAAU,EACV,cAAc,EAEd,aAAa,EACb,cAAc,EAGd,UAAU,EACV,aAAa,EACb,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAoB,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAgB,eAAe,EAAgC,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAwC,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAE,OAAO,EAAoB,MAAM,YAAY,CAAA;AACtD,OAAO,EAAmD,QAAQ,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACpG,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EACL,YAAY,EACZ,eAAe,EAEf,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAGlB,aAAa,GACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,eAAe,EACf,UAAU,EACV,UAAU,EAGV,IAAI,GAEL,MAAM,WAAW,CAAA;AAClB,OAAO,EAAqB,aAAa,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,EACL,YAAY,EAGZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,UAAU,EACV,QAAQ,EACR,OAAO,GACR,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA2C,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC7G,OAAO,EAAuB,cAAc,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAGL,kBAAkB,EAClB,YAAY,EACZ,WAAW,GAEZ,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAIL,UAAU,EACV,cAAc,EAEd,aAAa,EACb,cAAc,EAGd,YAAY,EAEZ,UAAU,EACV,aAAa,EACb,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAoB,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAgB,eAAe,EAAgC,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAwC,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAE,OAAO,EAAoB,MAAM,YAAY,CAAA;AACtD,OAAO,EAAmD,QAAQ,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAEL,kBAAkB,EAGlB,aAAa,EAEb,YAAY,GACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACpG,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EACL,YAAY,EACZ,eAAe,EAEf,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAGlB,aAAa,GACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,eAAe,EACf,UAAU,EACV,UAAU,EAGV,IAAI,GAEL,MAAM,WAAW,CAAA;AAClB,OAAO,EAAqB,aAAa,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,EACL,YAAY,EAGZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,UAAU,EACV,QAAQ,EACR,OAAO,GACR,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA2C,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC7G,OAAO,EAAuB,cAAc,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAGL,kBAAkB,EAClB,YAAY,EACZ,WAAW,GAEZ,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Words dsgraph reads token and file names by. The engine carries a small neutral vocabulary that
3
+ * any front-end developer would write; a knowledge pack (`dsgraph/knowledge@1`) adds to it. The
4
+ * pack is data, not code: the engine works the same without it, with fewer names understood.
5
+ */
6
+ /** What a color is for, by words in a token's name. */
7
+ export type Role = 'text' | 'background' | 'border' | 'shadow';
8
+ export interface Vocabulary {
9
+ /** Words that name a role: `fg` and `text` for text, `bg` and `surface` for a background. */
10
+ roles: Record<Role, string[]>;
11
+ /** Words in a token's name that name a state, and the state: `hover` → `hover`. */
12
+ states: Record<string, string>;
13
+ /** Words that name the resting state: `button.bgColor.rest` is for no state. */
14
+ rest: string[];
15
+ /** File, folder and class names that say nothing about the component: `index`, `styles`, `root`. */
16
+ generic: string[];
17
+ }
18
+ /** A knowledge pack: what is known about how design systems name things, beyond the defaults. */
19
+ export interface Knowledge {
20
+ schema: 'dsgraph/knowledge@1';
21
+ /** The pack's own version. */
22
+ version: string;
23
+ /** Added to the default vocabulary, never replacing it. */
24
+ vocabulary?: {
25
+ roles?: Partial<Record<Role, string[]>>;
26
+ states?: Record<string, string>;
27
+ rest?: string[];
28
+ generic?: string[];
29
+ };
30
+ }
31
+ export declare const DEFAULT_VOCABULARY: Vocabulary;
32
+ /** A vocabulary ready to match normalized names (`bg.color.hover`). */
33
+ export interface CompiledVocabulary {
34
+ roles: Record<Role, RegExp>;
35
+ states: Map<string, string>;
36
+ rest: Set<string>;
37
+ generic: Set<string>;
38
+ }
39
+ /** Checks that a value is a knowledge pack dsgraph can read; throws a readable error if not. */
40
+ export declare function readKnowledge(value: unknown): Knowledge;
41
+ /** The default vocabulary, with a pack's words added. */
42
+ export declare function vocabularyOf(knowledge?: Knowledge): CompiledVocabulary;
43
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uDAAuD;AACvD,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE9D,MAAM,WAAW,UAAU;IACzB,6FAA6F;IAC7F,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,gFAAgF;IAChF,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,oGAAoG;IACpG,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,iGAAiG;AACjG,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,qBAAqB,CAAA;IAC7B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;CACF;AAED,eAAO,MAAM,kBAAkB,EAAE,UAqDhC,CAAA;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrB;AAoBD,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAWvD;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAkBtE"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Words dsgraph reads token and file names by. The engine carries a small neutral vocabulary that
3
+ * any front-end developer would write; a knowledge pack (`dsgraph/knowledge@1`) adds to it. The
4
+ * pack is data, not code: the engine works the same without it, with fewer names understood.
5
+ */
6
+ export const DEFAULT_VOCABULARY = {
7
+ roles: {
8
+ text: ['fg', 'foreground', 'text', 'ink', 'content', 'on', 'link', 'icon'],
9
+ background: ['bg', 'background', 'surface', 'canvas', 'fill', 'container', 'layer', 'backdrop'],
10
+ border: ['border', 'stroke', 'outline', 'divider', 'separator', 'ring'],
11
+ shadow: ['shadow', 'elevation'],
12
+ },
13
+ states: {
14
+ hover: 'hover',
15
+ focus: 'focus',
16
+ active: 'active',
17
+ disabled: 'disabled',
18
+ selected: 'selected',
19
+ visited: 'visited',
20
+ },
21
+ rest: ['rest'],
22
+ generic: [
23
+ 'index',
24
+ 'style',
25
+ 'styles',
26
+ 'main',
27
+ 'app',
28
+ 'global',
29
+ 'globals',
30
+ 'base',
31
+ 'reset',
32
+ 'util',
33
+ 'utils',
34
+ 'utilities',
35
+ 'common',
36
+ 'shared',
37
+ 'theme',
38
+ 'themes',
39
+ 'tokens',
40
+ 'variables',
41
+ 'vars',
42
+ 'mixins',
43
+ 'snippet',
44
+ 'root',
45
+ 'container',
46
+ 'wrapper',
47
+ 'inner',
48
+ 'src',
49
+ 'lib',
50
+ 'components',
51
+ 'ui',
52
+ 'css',
53
+ 'scss',
54
+ 'sass',
55
+ 'assets',
56
+ 'pages',
57
+ 'views',
58
+ ],
59
+ };
60
+ const ROLES = ['text', 'background', 'border', 'shadow'];
61
+ const literal = (w) => w.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
62
+ const words = (list) => list.map((w) => w.toLowerCase());
63
+ function compile(v) {
64
+ const roles = {};
65
+ for (const r of ROLES)
66
+ roles[r] = new RegExp(`(^|\\.)(${words(v.roles[r]).map(literal).join('|')})(\\.|$)`);
67
+ return {
68
+ roles,
69
+ states: new Map(Object.entries(v.states).map(([w, s]) => [w.toLowerCase(), s])),
70
+ rest: new Set(words(v.rest)),
71
+ generic: new Set(words(v.generic)),
72
+ };
73
+ }
74
+ const BASE = compile(DEFAULT_VOCABULARY);
75
+ const compiled = new WeakMap();
76
+ /** Checks that a value is a knowledge pack dsgraph can read; throws a readable error if not. */
77
+ export function readKnowledge(value) {
78
+ const k = value;
79
+ if (!k || typeof k !== 'object' || k.schema !== 'dsgraph/knowledge@1')
80
+ throw new Error('Not a dsgraph knowledge pack: expected schema "dsgraph/knowledge@1"');
81
+ const v = k.vocabulary ?? {};
82
+ const lists = [...Object.values(v.roles ?? {}), v.rest ?? [], v.generic ?? []];
83
+ if (!lists.every((l) => Array.isArray(l) && l.every((w) => typeof w === 'string')))
84
+ throw new Error('Knowledge pack: vocabulary lists must be arrays of words');
85
+ if (!Object.values(v.states ?? {}).every((s) => typeof s === 'string'))
86
+ throw new Error('Knowledge pack: vocabulary.states maps words to state names');
87
+ return k;
88
+ }
89
+ /** The default vocabulary, with a pack's words added. */
90
+ export function vocabularyOf(knowledge) {
91
+ if (!knowledge?.vocabulary)
92
+ return BASE;
93
+ let c = compiled.get(knowledge);
94
+ if (!c) {
95
+ const add = knowledge.vocabulary;
96
+ const d = DEFAULT_VOCABULARY;
97
+ c = compile({
98
+ roles: Object.fromEntries(ROLES.map((r) => [r, [...d.roles[r], ...(add.roles?.[r] ?? [])]])),
99
+ states: { ...d.states, ...add.states },
100
+ rest: [...d.rest, ...(add.rest ?? [])],
101
+ generic: [...d.generic, ...(add.generic ?? [])],
102
+ });
103
+ compiled.set(knowledge, c);
104
+ }
105
+ return c;
106
+ }
107
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export interface BuildOptions {
14
14
  diagnostics?: DiagnosticBag;
15
15
  meta?: Record<string, unknown>;
16
16
  }
17
- export declare const GENERATOR = "dsgraph@0.6.3";
17
+ export declare const GENERATOR = "dsgraph@0.7.0";
18
18
  /** Builds a canonical snapshot by resolving every permutation of contexts (Resolver 2025.10). */
19
19
  export declare function buildSnapshot(system: TokenSystem, opts?: BuildOptions): Promise<Snapshot>;
20
20
  //# sourceMappingURL=snapshot.d.ts.map
package/dist/snapshot.js CHANGED
@@ -3,7 +3,7 @@ import { DiagnosticBag } from './diagnostics.js';
3
3
  import { matchPath } from './path.js';
4
4
  import { createResolver } from './resolver/resolve.js';
5
5
  import { defaultInput, enumerateInputs, modifiersOf, } from './resolver/system.js';
6
- export const GENERATOR = 'dsgraph@0.6.3';
6
+ export const GENERATOR = 'dsgraph@0.7.0';
7
7
  const inputKey = (input) => canonicalize(input);
8
8
  /** Builds a canonical snapshot by resolving every permutation of contexts (Resolver 2025.10). */
9
9
  export async function buildSnapshot(system, opts = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dsgraph/core",
3
- "version": "0.6.3",
3
+ "version": "0.7.0",
4
4
  "description": "Design-system graph core: DTCG 2025.10 + Resolver parsing, canonical values, snapshots, diff and semver. Isomorphic (browser + Node).",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,7 +27,7 @@
27
27
  "semver"
28
28
  ],
29
29
  "dependencies": {
30
- "@dsgraph/schema": "0.6.3",
30
+ "@dsgraph/schema": "0.7.0",
31
31
  "culori": "4.0.2",
32
32
  "json5": "2.2.3"
33
33
  },