@design-parity/diff 0.1.5 → 0.1.7
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/config.d.ts +10 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -3
- package/dist/config.js.map +1 -1
- package/dist/semantic.d.ts +6 -3
- package/dist/semantic.d.ts.map +1 -1
- package/dist/semantic.js +15 -6
- package/dist/semantic.js.map +1 -1
- package/dist/tokens.d.ts +12 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +63 -15
- package/dist/tokens.js.map +1 -1
- package/package.json +3 -3
package/dist/config.d.ts
CHANGED
|
@@ -37,7 +37,16 @@ export interface DiffConfig {
|
|
|
37
37
|
*/
|
|
38
38
|
visualDimTolerancePx: number;
|
|
39
39
|
}
|
|
40
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* The committed defaults: near-exact tokens, sensitive visual diff.
|
|
42
|
+
*
|
|
43
|
+
* Spacing/radius carry a **1dp** allowance because a candidate's token values are
|
|
44
|
+
* measured back from pixel bounds, so they inherit the renderer's density
|
|
45
|
+
* rounding — an 18dp circle radius captured at 2.625× comes back as `18.1dp`, a
|
|
46
|
+
* 16dp gap may land a fraction off. This mirrors {@link visualDimTolerancePx}'s
|
|
47
|
+
* rationale on the visual side; 1dp absorbs that snap while still failing real
|
|
48
|
+
* drift (design tokens snap to a ≥2dp grid, so a true difference clears it).
|
|
49
|
+
*/
|
|
41
50
|
export declare const defaultDiffConfig: DiffConfig;
|
|
42
51
|
/** Merge a partial override over the committed defaults. */
|
|
43
52
|
export declare function resolveConfig(override?: Partial<DiffConfig>): DiffConfig;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,UAAU;IACzB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,UAAU;IACzB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAM/B,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAGxE"}
|
package/dist/config.js
CHANGED
|
@@ -10,10 +10,19 @@
|
|
|
10
10
|
* factors) are *not* here — they belong to `@design-parity/checks` and are
|
|
11
11
|
* configured through {@link DiffOptions.checksConfig}.
|
|
12
12
|
*/
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* The committed defaults: near-exact tokens, sensitive visual diff.
|
|
15
|
+
*
|
|
16
|
+
* Spacing/radius carry a **1dp** allowance because a candidate's token values are
|
|
17
|
+
* measured back from pixel bounds, so they inherit the renderer's density
|
|
18
|
+
* rounding — an 18dp circle radius captured at 2.625× comes back as `18.1dp`, a
|
|
19
|
+
* 16dp gap may land a fraction off. This mirrors {@link visualDimTolerancePx}'s
|
|
20
|
+
* rationale on the visual side; 1dp absorbs that snap while still failing real
|
|
21
|
+
* drift (design tokens snap to a ≥2dp grid, so a true difference clears it).
|
|
22
|
+
*/
|
|
14
23
|
export const defaultDiffConfig = {
|
|
15
|
-
spacingTolerance:
|
|
16
|
-
radiusTolerance:
|
|
24
|
+
spacingTolerance: 1,
|
|
25
|
+
radiusTolerance: 1,
|
|
17
26
|
pixelThreshold: 0.05,
|
|
18
27
|
visualWarnRatio: 0,
|
|
19
28
|
visualDimTolerancePx: 8,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8BH
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8BH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,gBAAgB,EAAE,CAAC;IACnB,eAAe,EAAE,CAAC;IAClB,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,CAAC;IAClB,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAAC,QAA8B;IAC1D,IAAI,CAAC,QAAQ;QAAE,OAAO,iBAAiB,CAAC;IACxC,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,QAAQ,EAAE,CAAC;AAC/C,CAAC"}
|
package/dist/semantic.d.ts
CHANGED
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* A {@link DesignReference} carries images + tokens but no semantic tree, so the
|
|
5
5
|
* deltas we can assert deterministically are coverage-shaped: does the candidate
|
|
6
|
-
* render every theme the reference exposes, and
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* render every theme the reference exposes, and does its tree expose accessible
|
|
7
|
+
* content at all (any roled node, any labelled node — the minimum an a11y tree
|
|
8
|
+
* needs)? We check the whole tree, not the root node: a screen's root is a
|
|
9
|
+
* layout container that legitimately carries no role/label of its own, with the
|
|
10
|
+
* real semantics on its descendants. Deeper a11y lives in the checks provider
|
|
11
|
+
* (issue #10).
|
|
9
12
|
*/
|
|
10
13
|
import type { CandidateRender, DesignReference, Finding, Theme } from "@design-parity/core";
|
|
11
14
|
/** Themes the reference exposes, in first-seen order. */
|
package/dist/semantic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,OAAO,EAEP,KAAK,EACN,MAAM,qBAAqB,CAAC;AAE7B,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,SAAS,EAAE,eAAe,GAAG,KAAK,EAAE,CAEnE;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,SAAS,EAAE,eAAe,GAAG,KAAK,EAAE,CAEnE;AAgBD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,eAAe,GACzB,OAAO,EAAE,CAqCX"}
|
package/dist/semantic.js
CHANGED
|
@@ -14,6 +14,12 @@ function uniqueThemes(themes) {
|
|
|
14
14
|
}
|
|
15
15
|
return out;
|
|
16
16
|
}
|
|
17
|
+
/** Whether any node in the subtree satisfies `pred`. */
|
|
18
|
+
function someNode(node, pred) {
|
|
19
|
+
if (pred(node))
|
|
20
|
+
return true;
|
|
21
|
+
return (node.children ?? []).some((child) => someNode(child, pred));
|
|
22
|
+
}
|
|
17
23
|
export function diffSemantics(reference, candidate) {
|
|
18
24
|
const findings = [];
|
|
19
25
|
const have = candidateThemes(candidate);
|
|
@@ -27,21 +33,24 @@ export function diffSemantics(reference, candidate) {
|
|
|
27
33
|
});
|
|
28
34
|
}
|
|
29
35
|
}
|
|
36
|
+
// Coverage, tree-wide: a candidate that produced no roles / no labels anywhere
|
|
37
|
+
// is missing its a11y tree. The root itself is a layout container and is
|
|
38
|
+
// expected to carry neither — assert on the subtree, not the root node.
|
|
30
39
|
const root = candidate.semantics.root;
|
|
31
|
-
if (!root.role) {
|
|
40
|
+
if (!someNode(root, (n) => !!n.role)) {
|
|
32
41
|
findings.push({
|
|
33
42
|
kind: "semantic",
|
|
34
43
|
severity: "warn",
|
|
35
|
-
message: "candidate
|
|
36
|
-
detail: { node: "
|
|
44
|
+
message: "candidate exposes no accessibility roles",
|
|
45
|
+
detail: { node: "tree", field: "role" },
|
|
37
46
|
});
|
|
38
47
|
}
|
|
39
|
-
if (!root.label) {
|
|
48
|
+
if (!someNode(root, (n) => !!n.label)) {
|
|
40
49
|
findings.push({
|
|
41
50
|
kind: "semantic",
|
|
42
51
|
severity: "warn",
|
|
43
|
-
message: "candidate
|
|
44
|
-
detail: { node: "
|
|
52
|
+
message: "candidate exposes no accessible labels",
|
|
53
|
+
detail: { node: "tree", field: "label" },
|
|
45
54
|
});
|
|
46
55
|
}
|
|
47
56
|
return findings;
|
package/dist/semantic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"AAoBA,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAC,SAA0B;IACxD,OAAO,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAC,SAA0B;IACxD,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,MAAgC;IACpD,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wDAAwD;AACxD,SAAS,QAAQ,CAAC,IAAkB,EAAE,IAAkC;IACtE,IAAI,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAA0B,EAC1B,SAA0B;IAE1B,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,uBAAuB,KAAK,sCAAsC;gBAC3E,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,yEAAyE;IACzE,wEAAwE;IACxE,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,0CAA0C;YACnD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACxC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,wCAAwC;YACjD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;SACzC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/tokens.d.ts
CHANGED
|
@@ -13,7 +13,18 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { type DesignTokens, type Finding, type SemanticNode, type TokenAliasMap } from "@design-parity/core";
|
|
15
15
|
import type { DiffConfig } from "./config.js";
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Flatten every node's tokens into one bag, keeping every *distinct* value.
|
|
18
|
+
*
|
|
19
|
+
* A candidate's tree carries one resolved colour/spacing/radius per node, all
|
|
20
|
+
* under the same generic role keys (`bg`/`fg`/`corner`/`gap`) — a plain spread
|
|
21
|
+
* would let each node clobber the last, leaving a single value to match the
|
|
22
|
+
* reference's many named tokens (so a screen with a dozen colours collapses to
|
|
23
|
+
* one `bg` + one `fg`, and everything else falsely reports "missing"). Instead,
|
|
24
|
+
* on a key collision with a *different* value we keep both: the newcomer lands
|
|
25
|
+
* under a derived key (`bg#2`, …) so the value/role matchers below can still find
|
|
26
|
+
* it. Repeats of a value already present (modulo colour alpha) are deduped.
|
|
27
|
+
*/
|
|
17
28
|
export declare function collectTokens(root: SemanticNode): DesignTokens;
|
|
18
29
|
/** Fold a token name to an alias-lookup key: last `/`-segment, lowercased. */
|
|
19
30
|
export declare function aliasKey(name: string): string;
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAInB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAInB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAQ9D;AAsDD,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOhF;AA+BD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,YAAY,GAAG,SAAS,EACnC,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,EAAE,CA6EX;AAkGD,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAKzD"}
|
package/dist/tokens.js
CHANGED
|
@@ -12,7 +12,18 @@
|
|
|
12
12
|
* keys rather than the reference's names (compose-ai-tools#1897).
|
|
13
13
|
*/
|
|
14
14
|
import { materialColorRole, materialTypeRole, } from "@design-parity/core";
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Flatten every node's tokens into one bag, keeping every *distinct* value.
|
|
17
|
+
*
|
|
18
|
+
* A candidate's tree carries one resolved colour/spacing/radius per node, all
|
|
19
|
+
* under the same generic role keys (`bg`/`fg`/`corner`/`gap`) — a plain spread
|
|
20
|
+
* would let each node clobber the last, leaving a single value to match the
|
|
21
|
+
* reference's many named tokens (so a screen with a dozen colours collapses to
|
|
22
|
+
* one `bg` + one `fg`, and everything else falsely reports "missing"). Instead,
|
|
23
|
+
* on a key collision with a *different* value we keep both: the newcomer lands
|
|
24
|
+
* under a derived key (`bg#2`, …) so the value/role matchers below can still find
|
|
25
|
+
* it. Repeats of a value already present (modulo colour alpha) are deduped.
|
|
26
|
+
*/
|
|
16
27
|
export function collectTokens(root) {
|
|
17
28
|
const out = {};
|
|
18
29
|
const visit = (node) => {
|
|
@@ -27,13 +38,39 @@ function mergeInto(target, src) {
|
|
|
27
38
|
if (!src)
|
|
28
39
|
return;
|
|
29
40
|
if (src.spacing)
|
|
30
|
-
target.spacing =
|
|
41
|
+
target.spacing = preserveDistinct(target.spacing, src.spacing, (a, b) => a === b);
|
|
31
42
|
if (src.radius)
|
|
32
|
-
target.radius =
|
|
43
|
+
target.radius = preserveDistinct(target.radius, src.radius, (a, b) => a === b);
|
|
33
44
|
if (src.colors)
|
|
34
|
-
target.colors =
|
|
45
|
+
target.colors = preserveDistinct(target.colors, src.colors, colorsEqual);
|
|
35
46
|
if (src.typography)
|
|
36
|
-
target.typography =
|
|
47
|
+
target.typography = preserveDistinct(target.typography, src.typography, typographyEqual);
|
|
48
|
+
}
|
|
49
|
+
/** Drop the `#<n>` disambiguation suffix to recover a key's role family. */
|
|
50
|
+
function baseKey(key) {
|
|
51
|
+
return key.replace(/#\d+$/, "");
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Merge `src` into `base`, preserving distinct values within each role family.
|
|
55
|
+
* A value equal (per `eq`) to one already present under the same base key is
|
|
56
|
+
* dropped; a genuinely new value for an occupied key is kept under `<key>#<n>`.
|
|
57
|
+
*/
|
|
58
|
+
function preserveDistinct(base, src, eq) {
|
|
59
|
+
const out = { ...base };
|
|
60
|
+
for (const [key, value] of Object.entries(src)) {
|
|
61
|
+
const family = Object.entries(out).filter(([k]) => baseKey(k) === key);
|
|
62
|
+
if (family.length === 0) {
|
|
63
|
+
out[key] = value;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (family.some(([, existing]) => eq(existing, value)))
|
|
67
|
+
continue;
|
|
68
|
+
let n = 2;
|
|
69
|
+
while (`${key}#${n}` in out)
|
|
70
|
+
n++;
|
|
71
|
+
out[`${key}#${n}`] = value;
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
37
74
|
}
|
|
38
75
|
function typographyEqual(a, b) {
|
|
39
76
|
return (a.fontFamily === b.fontFamily &&
|
|
@@ -201,25 +238,36 @@ function numericValueMatch(want, tolerance, candidate) {
|
|
|
201
238
|
}
|
|
202
239
|
return best;
|
|
203
240
|
}
|
|
204
|
-
/**
|
|
205
|
-
|
|
206
|
-
|
|
241
|
+
/**
|
|
242
|
+
* Which "ground" a colour role paints on: `fg` (text/icon — `onPrimary`, `fg`),
|
|
243
|
+
* `bg` (a fill — `surface`, `bg`, a container), or `any` for an M3 **accent**
|
|
244
|
+
* base role (`primary`/`secondary`/`tertiary`/`error`) used both as a fill *and*
|
|
245
|
+
* as accent text/icon, so it may legitimately surface under either ground.
|
|
246
|
+
*/
|
|
247
|
+
function colorGround(name) {
|
|
248
|
+
if (baseKey(name) === "fg" || /^on[A-Z]/.test(name))
|
|
249
|
+
return "fg";
|
|
250
|
+
if (/^(primary|secondary|tertiary|error)$/i.test(baseKey(name)))
|
|
251
|
+
return "any";
|
|
252
|
+
return "bg";
|
|
207
253
|
}
|
|
208
254
|
/**
|
|
209
|
-
* Find a candidate colour matching `want` under the same
|
|
255
|
+
* Find a candidate colour matching `want` under the same ground as the spec
|
|
210
256
|
* token `name`. The candidate's per-node colours collapse onto generic role
|
|
211
|
-
* keys (`fg`/`bg`) when its theme can't name them, so a foreground spec token
|
|
212
|
-
*
|
|
213
|
-
* background token likewise)
|
|
257
|
+
* keys (`fg`/`bg`) when its theme can't name them, so a foreground spec token is
|
|
258
|
+
* satisfied by any foreground candidate value of the same colour (and a
|
|
259
|
+
* background token likewise); an accent base role matches either. Returns the
|
|
260
|
+
* matching value, or `undefined`.
|
|
214
261
|
*/
|
|
215
262
|
function roleMatch(name, want, candidate) {
|
|
216
263
|
if (!candidate)
|
|
217
264
|
return undefined;
|
|
218
|
-
const
|
|
265
|
+
const wantGround = colorGround(name);
|
|
219
266
|
for (const [key, value] of Object.entries(candidate)) {
|
|
220
|
-
|
|
267
|
+
const candGround = colorGround(key);
|
|
268
|
+
const groundsAgree = wantGround === "any" || candGround === "any" || candGround === wantGround;
|
|
269
|
+
if (groundsAgree && colorsEqual(value, want))
|
|
221
270
|
return value;
|
|
222
|
-
}
|
|
223
271
|
}
|
|
224
272
|
return undefined;
|
|
225
273
|
}
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAML,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAI7B
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design-parity/diff",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Source-agnostic diff engine: consume a (DesignReference, CandidateRender) pair and emit a deterministic Verdict — a11y + i18n first, then token compliance, then visual diff.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"test": "vitest run"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@design-parity/checks": "^0.1.
|
|
21
|
-
"@design-parity/core": "^0.1.
|
|
20
|
+
"@design-parity/checks": "^0.1.7",
|
|
21
|
+
"@design-parity/core": "^0.1.7",
|
|
22
22
|
"pixelmatch": "^7.1.0",
|
|
23
23
|
"pngjs": "^7.0.0"
|
|
24
24
|
},
|