@multiplatform.one/theme 7.7.6 → 7.10.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/package.json +5 -5
- package/src/audit/constraintAudit.spec.ts +157 -0
- package/src/audit/constraintAudit.ts +154 -35
- package/src/audit/constraintScope.spec.ts +48 -0
- package/src/audit/index.ts +16 -0
- package/src/audit/themeMatrix.spec.ts +292 -1
- package/src/audit/themeMatrix.ts +1015 -22
- package/src/theme/Intent.stories.tsx +88 -0
- package/src/theme/Preset.stories.tsx +80 -0
- package/src/theme/Surface.spec.tsx +6 -0
- package/src/theme/Surface.stories.tsx +91 -0
- package/src/theme/ThemeProvider.stories.tsx +50 -0
- package/src/theme/Tint.stories.tsx +98 -0
- package/src/theme/chartPalette.spec.ts +128 -5
- package/src/theme/chartPalette.ts +105 -22
- package/src/theme/colorRules.spec.ts +92 -39
- package/src/theme/colorRules.ts +4 -6
- package/src/theme/createDefaultThemeConfig.ts +1 -1
- package/src/theme/createThemes.ts +58 -3
- package/src/theme/devtools/ColorLineVisualizer.stories.tsx +36 -0
- package/src/theme/devtools/ThemeDevtoolsPanel.stories.tsx +16 -0
- package/src/theme/glyphPaint.spec.ts +14 -0
- package/src/theme/glyphPaint.ts +2 -1
- package/src/theme/intent.spec.tsx +1 -0
- package/src/theme/layoutTokensHooks.spec.tsx +1 -0
- package/src/theme/recipeInputs.ts +9 -9
- package/src/theme/resolveKnobs.spec.ts +2 -2
- package/src/theme/sizeLadder.spec.ts +19 -10
- package/src/theme/sizeRecipes.ts +2 -2
- package/src/theme/themeValue.spec.ts +2 -2
- package/src/theme/useResolvedKnobsBehavior.spec.tsx +6 -0
- package/types/audit/constraintAudit.d.ts +17 -1
- package/types/audit/constraintAudit.d.ts.map +1 -1
- package/types/audit/index.d.ts +2 -2
- package/types/audit/index.d.ts.map +1 -1
- package/types/audit/themeMatrix.d.ts +135 -2
- package/types/audit/themeMatrix.d.ts.map +1 -1
- package/types/theme/chartPalette.d.ts +6 -4
- package/types/theme/chartPalette.d.ts.map +1 -1
- package/types/theme/colorRules.d.ts +3 -3
- package/types/theme/colorRules.d.ts.map +1 -1
- package/types/theme/createThemes.d.ts +1 -1
- package/types/theme/createThemes.d.ts.map +1 -1
- package/types/theme/glyphPaint.d.ts.map +1 -1
- package/types/theme/recipeInputs.d.ts +8 -8
- package/types/theme/recipeInputs.d.ts.map +1 -1
- package/types/theme/sizeRecipes.d.ts +2 -2
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* a theme sets `{ baseHeight }` and drops the table — it is not the
|
|
10
10
|
* default ladder and is not a signed-off divergence (MPO-46 / R6).
|
|
11
11
|
*
|
|
12
|
-
* Radius steps with the size token. The borderRadius knob
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Radius steps with the size token. The borderRadius knob overrides the
|
|
13
|
+
* painted corners while internal gap stays on the size recipe. `radiusPx`
|
|
14
|
+
* on inputs is the $4 / medium default (9).
|
|
15
15
|
*
|
|
16
16
|
* Tamagui `createThemes` / theme-builder still emits COLOR palettes only.
|
|
17
17
|
* Do not stuff recipe keys into `getTheme()` / `themes`.
|
|
@@ -63,8 +63,8 @@ export type SizeRecipeTokenTable = Partial<Record<SizeRecipeToken, SizeRecipeTok
|
|
|
63
63
|
|
|
64
64
|
/**
|
|
65
65
|
* borderRadius knob stops (px). Mirrors the v5 radius tokens the knob
|
|
66
|
-
* already resolves ($0/$2/$4/$6/$12 = 0/5/9/16/50).
|
|
67
|
-
*
|
|
66
|
+
* already resolves ($0/$2/$4/$6/$12 = 0/5/9/16/50). These shape overrides
|
|
67
|
+
* do not retarget the control's internal gap.
|
|
68
68
|
*/
|
|
69
69
|
export const SIZE_RECIPE_RADIUS_STOPS = {
|
|
70
70
|
none: 0,
|
|
@@ -451,7 +451,7 @@ export function recipeFromTokenChannels(
|
|
|
451
451
|
};
|
|
452
452
|
}
|
|
453
453
|
|
|
454
|
-
/**
|
|
454
|
+
/** Explicit recipe transformation; ordinary control shape changes use resolveControlRadius. */
|
|
455
455
|
export function applyRadiusStop<T extends { gap: number }>(
|
|
456
456
|
recipe: T,
|
|
457
457
|
stop: SizeRecipeRadiusStop,
|
|
@@ -472,8 +472,8 @@ export const SIZE_RECIPE_RADIUS_TOKEN_TO_STOP = {
|
|
|
472
472
|
* Painted control radius + inner gap.
|
|
473
473
|
*
|
|
474
474
|
* Default `medium` follows the size table (gap == radius at that token).
|
|
475
|
-
*
|
|
476
|
-
*
|
|
475
|
+
* Other borderRadius stops override the corners only. Internal spacing
|
|
476
|
+
* continues to group the icon and label at the recipe's size (LC-79).
|
|
477
477
|
*/
|
|
478
478
|
export function resolveControlRadius(
|
|
479
479
|
recipe: SizeRecipe,
|
|
@@ -483,7 +483,7 @@ export function resolveControlRadius(
|
|
|
483
483
|
return { radius: recipe.gap, gap: recipe.gap };
|
|
484
484
|
}
|
|
485
485
|
const px = SIZE_RECIPE_RADIUS_STOPS[stop];
|
|
486
|
-
return { radius: px, gap:
|
|
486
|
+
return { radius: px, gap: recipe.gap };
|
|
487
487
|
}
|
|
488
488
|
|
|
489
489
|
function generateTouchHeights(
|
|
@@ -1134,8 +1134,8 @@ describe("applyDensity", () => {
|
|
|
1134
1134
|
});
|
|
1135
1135
|
|
|
1136
1136
|
it("names which gap density moves: the LAYOUT gap, never the recipe gap (LC-79)", () => {
|
|
1137
|
-
// `control.gap`
|
|
1138
|
-
//
|
|
1137
|
+
// `control.gap` retains the size-table grouping across density and shape.
|
|
1138
|
+
// The gap a reader sees tighten is `knobProps.gap`, the
|
|
1139
1139
|
// space-ramp one, and it only moves once `applyDensity` has stepped
|
|
1140
1140
|
// `space` — `resolveKnobs` alone is a pure token mapper.
|
|
1141
1141
|
const comfortable = resolveKnobs(applyDensity(knobsWith({ space: "medium" })));
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* MPO-46 / MPO-19 X1/X2 — the size ladder is the measured Tamagui v5 table
|
|
3
3
|
* (R6: real TABLE, no escape). padX / label / icon / radius at $2/$3/$4/$6
|
|
4
4
|
* come from tamagui-rendered-reference.md §6.1; Input padX is §6.2
|
|
5
|
-
* (one space half-step below the button). gap
|
|
6
|
-
*
|
|
5
|
+
* (one space half-step below the button). Default gap equals size-table
|
|
6
|
+
* radius; borderRadius shape overrides preserve that internal spacing.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { describe, expect, it } from "vitest";
|
|
@@ -61,7 +61,7 @@ describe("MPO-46 size ladder — measured table, not a ratio (R6)", () => {
|
|
|
61
61
|
});
|
|
62
62
|
});
|
|
63
63
|
|
|
64
|
-
describe("MPO-46 gap
|
|
64
|
+
describe("MPO-46 default size-table gap and explicit recipe transformation", () => {
|
|
65
65
|
it("holds at every size step", () => {
|
|
66
66
|
const generated = generateSizeRecipes();
|
|
67
67
|
for (const token of Object.keys(generated.recipes)) {
|
|
@@ -72,7 +72,7 @@ describe("MPO-46 gap == radius", () => {
|
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
74
|
|
|
75
|
-
it("
|
|
75
|
+
it("can explicitly retarget an authored recipe gap to a radius stop", () => {
|
|
76
76
|
const stops = Object.keys(SIZE_RECIPE_RADIUS_STOPS) as SizeRecipeRadiusStop[];
|
|
77
77
|
for (const token of ["$2", "$3", "$4", "$5", "$6"] as const) {
|
|
78
78
|
const recipe = sizeRecipeForToken(token);
|
|
@@ -94,11 +94,20 @@ describe("MPO-46 resolveControlRadius", () => {
|
|
|
94
94
|
expect(six.gap).toBe(16);
|
|
95
95
|
});
|
|
96
96
|
|
|
97
|
-
it("
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
97
|
+
it("corner shape preserves the size recipe's icon-label grouping", () => {
|
|
98
|
+
for (const family of ["control", "controlCompact"] as const) {
|
|
99
|
+
for (const token of ["$2", "$3", "$4", "$6"]) {
|
|
100
|
+
const recipe = sizeRecipeForToken(token, { family });
|
|
101
|
+
for (const stop of Object.keys(SIZE_RECIPE_RADIUS_STOPS) as SizeRecipeRadiusStop[]) {
|
|
102
|
+
const resolved = resolveControlRadius(recipe, stop);
|
|
103
|
+
expect(resolved.gap, `${family} ${token} ${stop}`).toBe(recipe.gap);
|
|
104
|
+
expect(resolved.gap).toBeGreaterThan(0);
|
|
105
|
+
expect(resolved.gap).toBeLessThanOrEqual(recipe.iconSize);
|
|
106
|
+
expect(resolved.radius).toBe(
|
|
107
|
+
stop === "medium" ? recipe.gap : SIZE_RECIPE_RADIUS_STOPS[stop],
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
103
112
|
});
|
|
104
113
|
});
|
package/src/theme/sizeRecipes.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Coordinated control-size recipes (LC-75 SIZE-RECIPE, LC-80 RECIPE-INPUTS).
|
|
3
3
|
*
|
|
4
4
|
* The default ladder is the measured Tamagui v5 table in recipeInputs
|
|
5
|
-
* (padX / font / icon / radius per size token).
|
|
6
|
-
*
|
|
5
|
+
* (padX / font / icon / radius per size token). Default gap equals the
|
|
6
|
+
* size-table radius; corner shape overrides leave that spacing intact.
|
|
7
7
|
* A linear ratio is only the `{ baseHeight }` fallback — not a
|
|
8
8
|
* documented divergence (MPO-46 / R6).
|
|
9
9
|
*
|
|
@@ -32,7 +32,7 @@ describe("isResolvableThemeValue", () => {
|
|
|
32
32
|
["currentColor", "keyword"],
|
|
33
33
|
["rebeccapurple", "named colour"],
|
|
34
34
|
[0.5, "number"],
|
|
35
|
-
])("accepts %s (%s)", (value) => {
|
|
35
|
+
])("accepts %s (%s)", (value, _kind) => {
|
|
36
36
|
expect(isResolvableThemeValue(value)).toBe(true);
|
|
37
37
|
});
|
|
38
38
|
|
|
@@ -45,7 +45,7 @@ describe("isResolvableThemeValue", () => {
|
|
|
45
45
|
["bakcground", "a typo"],
|
|
46
46
|
["$", "a bare dollar"],
|
|
47
47
|
[{}, "an object"],
|
|
48
|
-
])("rejects %s (%s)", (value) => {
|
|
48
|
+
])("rejects %s (%s)", (value, _kind) => {
|
|
49
49
|
expect(isResolvableThemeValue(value)).toBe(false);
|
|
50
50
|
});
|
|
51
51
|
|
|
@@ -16,6 +16,12 @@ import type { Preset as PresetType } from "./preset.types";
|
|
|
16
16
|
import { PresetContext, type PresetContextValue } from "./PresetContext";
|
|
17
17
|
import { useResolvedKnobs } from "./useResolvedKnobs";
|
|
18
18
|
|
|
19
|
+
// These knob behavior tests hold the color scheme constant.
|
|
20
|
+
vi.mock(import("tamagui"), async (importOriginal) => ({
|
|
21
|
+
...(await importOriginal()),
|
|
22
|
+
useThemeName: () => "light",
|
|
23
|
+
}));
|
|
24
|
+
|
|
19
25
|
let originalMatchMedia: typeof window.matchMedia;
|
|
20
26
|
|
|
21
27
|
function stubMatchMedia(
|
|
@@ -22,6 +22,8 @@ export interface TextPropertyAudit {
|
|
|
22
22
|
export interface ElementAudit {
|
|
23
23
|
/** Human-readable element descriptor */
|
|
24
24
|
label: string;
|
|
25
|
+
/** Stable DOM position within the audited surface, distinct for sibling controls. */
|
|
26
|
+
key?: string;
|
|
25
27
|
/** Tag name */
|
|
26
28
|
tag: string;
|
|
27
29
|
/** id attribute if present */
|
|
@@ -30,6 +32,10 @@ export interface ElementAudit {
|
|
|
30
32
|
classes: string[];
|
|
31
33
|
/** Audited properties (only populated when value is non-default/non-zero) */
|
|
32
34
|
borderRadius?: PropertyAudit;
|
|
35
|
+
borderTopLeftRadius?: PropertyAudit;
|
|
36
|
+
borderTopRightRadius?: PropertyAudit;
|
|
37
|
+
borderBottomRightRadius?: PropertyAudit;
|
|
38
|
+
borderBottomLeftRadius?: PropertyAudit;
|
|
33
39
|
borderWidth?: PropertyAudit;
|
|
34
40
|
gap?: PropertyAudit;
|
|
35
41
|
rowGap?: PropertyAudit;
|
|
@@ -69,6 +75,16 @@ export interface AuditReport {
|
|
|
69
75
|
/** All audited elements (including compliant ones) */
|
|
70
76
|
elements: ElementAudit[];
|
|
71
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Gap (inner spacing) knob → pixel value
|
|
80
|
+
* Source: gapMap in resolveKnobs.ts ($2, $4, $5 space tokens)
|
|
81
|
+
*/
|
|
82
|
+
export declare const GAP_KNOB: Record<string, number>;
|
|
83
|
+
/**
|
|
84
|
+
* Gap large (gapLg) knob → pixel value
|
|
85
|
+
* Source: gapLgMap in resolveKnobs.ts ($3, $5, $6 space tokens)
|
|
86
|
+
*/
|
|
87
|
+
export declare const GAP_LG_KNOB: Record<string, number>;
|
|
72
88
|
/**
|
|
73
89
|
* Runs the constraint audit in the browser.
|
|
74
90
|
*
|
|
@@ -79,5 +95,5 @@ export interface AuditReport {
|
|
|
79
95
|
*
|
|
80
96
|
* Returns an AuditReport object describing all structural CSS violations.
|
|
81
97
|
*/
|
|
82
|
-
export declare function runConstraintAudit(): AuditReport;
|
|
98
|
+
export declare function runConstraintAudit(rootSelector?: string): AuditReport;
|
|
83
99
|
//# sourceMappingURL=constraintAudit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraintAudit.d.ts","sourceRoot":"","sources":["../../src/audit/constraintAudit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,uCAAuC;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"constraintAudit.d.ts","sourceRoot":"","sources":["../../src/audit/constraintAudit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,mBAAmB,CAAC,EAAE,aAAa,CAAC;IACpC,oBAAoB,CAAC,EAAE,aAAa,CAAC;IACrC,uBAAuB,CAAC,EAAE,aAAa,CAAC;IACxC,sBAAsB,CAAC,EAAE,aAAa,CAAC;IACvC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,uCAAuC;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AA6ED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI9C,CAAC;AAmJF;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAipBrE"}
|
package/types/audit/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ export type { AuditReport, AuditSummary, ElementAudit, PropertyAudit, TextProper
|
|
|
2
2
|
export { runConstraintAudit } from "./constraintAudit";
|
|
3
3
|
export type { AuditDiff, ElementDiff, PropertyDiff } from "./diffReport";
|
|
4
4
|
export { diffAuditReports, formatAuditReport } from "./diffReport";
|
|
5
|
-
export type { GeometryDiff, GeometryMove, MatrixElementGeometry, MatrixRect, MatrixSnapshot, MatrixTextSample, NoBreakageInput, NoBreakageResult, TextContrastResult, TextContrastViolation, } from "./themeMatrix";
|
|
6
|
-
export { auditSignatures, captureMatrixSnapshot, diffGeometry, evaluateNoBreakage, evaluateTextContrast, } from "./themeMatrix";
|
|
5
|
+
export type { ChartKind, ChartProofResult, ChartProofViolation, ChartUnmeasurableReason, MatrixChartPaint, MatrixChartSample, GeometryDiff, GeometryMove, IconContrastResult, IconContrastViolation, IconExclusion, IconUnmeasurableReason, IconUnverified, MatrixElementGeometry, MatrixIconSample, MatrixRect, MatrixSnapshot, MatrixTextSample, NoBreakageInput, NoBreakageResult, TextContrastResult, TextContrastViolation, } from "./themeMatrix";
|
|
6
|
+
export { auditSignatures, captureMatrixSnapshot, diffGeometry, evaluateNoBreakage, evaluateIconContrast, evaluateChartProof, chartProofSignatures, iconContrastSignatures, evaluateTextContrast, } from "./themeMatrix";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|
|
@@ -18,13 +18,21 @@
|
|
|
18
18
|
* NOT asserted there. What must hold in every preset cell: the story
|
|
19
19
|
* renders, structural values stay on the knob scales
|
|
20
20
|
* (runConstraintAudit off-scale count vs the default cell), and text
|
|
21
|
-
* ink keeps the WCAG floor (evaluateTextContrast).
|
|
21
|
+
* ink keeps the WCAG floor (evaluateTextContrast). Conveying SVG
|
|
22
|
+
* glyphs also receive an absolute 3:1 gate in every matrix cell.
|
|
22
23
|
*
|
|
23
24
|
* MEASURING RULE: every text assertion here measures TEXT NODES — the
|
|
24
25
|
* computed style of the element that DIRECTLY contains the text, and the
|
|
25
26
|
* Range-measured rect of the text itself — never the story frame. The
|
|
26
27
|
* frame's font-family is always Inter and its colour is not the ink
|
|
27
28
|
* (that trap shipped three wrong tickets: MPO-40/44/48).
|
|
29
|
+
* SVG measurements read descendant fill/stroke, including opacity. The
|
|
30
|
+
* bounded model handles single-ink shapes over a resolved solid backdrop;
|
|
31
|
+
* gradients, masks, filters, multicolor and unsupported group composition
|
|
32
|
+
* stay named and unverified. Explicitly declared charts route to a separate
|
|
33
|
+
* proof channel measuring ordered mark paint and SVG text. Geometry claims
|
|
34
|
+
* without a measured certificate stay unverified. Image-file SVGs, CSS glyphs and icon fonts
|
|
35
|
+
* are outside this channel's coverage.
|
|
28
36
|
*
|
|
29
37
|
* `captureMatrixSnapshot` is completely self-contained (no imports, no
|
|
30
38
|
* closures) so it can be passed straight to Playwright's
|
|
@@ -68,11 +76,120 @@ export interface MatrixTextSample {
|
|
|
68
76
|
fontWeightNum: number;
|
|
69
77
|
rect: MatrixRect;
|
|
70
78
|
}
|
|
79
|
+
export type IconExclusion = "disabled-control" | "decorative-standalone" | "hidden";
|
|
80
|
+
export type IconUnmeasurableReason = "unresolved-backdrop" | "masked-or-filtered" | "use-indirection" | "unsupported-paint" | "unsupported-compositing" | "multicolor" | "no-paint";
|
|
81
|
+
export interface MatrixIconSample {
|
|
82
|
+
key: string;
|
|
83
|
+
/** Name of the control owning this glyph, or the standalone SVG's name. */
|
|
84
|
+
context: string;
|
|
85
|
+
status: "conveying" | IconExclusion;
|
|
86
|
+
background: string;
|
|
87
|
+
backgroundResolved: boolean;
|
|
88
|
+
overImage: boolean;
|
|
89
|
+
/** Actual descendant ink, alpha-composited over the effective backdrop. */
|
|
90
|
+
paint?: string;
|
|
91
|
+
paintKinds?: Array<"fill" | "stroke">;
|
|
92
|
+
shapeCount: number;
|
|
93
|
+
distinctPaints: number;
|
|
94
|
+
unmeasurable?: IconUnmeasurableReason;
|
|
95
|
+
rect: MatrixRect;
|
|
96
|
+
}
|
|
97
|
+
export interface IconContrastViolation {
|
|
98
|
+
key: string;
|
|
99
|
+
context: string;
|
|
100
|
+
paint: string;
|
|
101
|
+
background: string;
|
|
102
|
+
ratio: number;
|
|
103
|
+
required: number;
|
|
104
|
+
}
|
|
105
|
+
export interface IconUnverified {
|
|
106
|
+
key: string;
|
|
107
|
+
context: string;
|
|
108
|
+
reason: IconUnmeasurableReason;
|
|
109
|
+
}
|
|
110
|
+
export interface IconContrastResult {
|
|
111
|
+
/** Absolute verdict. Unverified conveying paint cannot produce a pass. */
|
|
112
|
+
ok: boolean;
|
|
113
|
+
candidates: number;
|
|
114
|
+
measured: number;
|
|
115
|
+
violations: IconContrastViolation[];
|
|
116
|
+
unverified: IconUnverified[];
|
|
117
|
+
excludedDisabled: number;
|
|
118
|
+
excludedDecorative: number;
|
|
119
|
+
excludedHidden: number;
|
|
120
|
+
}
|
|
121
|
+
export type ChartKind = "bar" | "pie" | "donut" | "line" | "area";
|
|
122
|
+
export type ChartUnmeasurableReason = IconUnmeasurableReason | "unknown-kind" | "no-marks" | "hidden-chart" | "unverified-separation" | "incomplete-datum-text" | "unsupported-overlap";
|
|
123
|
+
export interface MatrixChartPaint {
|
|
124
|
+
key: string;
|
|
125
|
+
label: string;
|
|
126
|
+
background: string;
|
|
127
|
+
paint?: string;
|
|
128
|
+
unmeasurable?: ChartUnmeasurableReason;
|
|
129
|
+
}
|
|
130
|
+
export interface MatrixChartSample {
|
|
131
|
+
key: string;
|
|
132
|
+
kind: string;
|
|
133
|
+
context: string;
|
|
134
|
+
label: string;
|
|
135
|
+
background: string;
|
|
136
|
+
backgroundResolved: boolean;
|
|
137
|
+
marks: MatrixChartPaint[];
|
|
138
|
+
labels: MatrixChartPaint[];
|
|
139
|
+
/** Explicit thin axis/grid lines. Never treated as data-mark ink. */
|
|
140
|
+
chrome?: MatrixChartPaint[];
|
|
141
|
+
/** Painted drawables outside the declared mark/text/chrome channels. */
|
|
142
|
+
unaccountedPaint?: MatrixChartPaint[];
|
|
143
|
+
/** A component declaration is recorded, never accepted as geometry proof. */
|
|
144
|
+
separation: {
|
|
145
|
+
declared: boolean;
|
|
146
|
+
method?: "rect-bounds" | "eroded-arc";
|
|
147
|
+
minimumGapPx?: number;
|
|
148
|
+
};
|
|
149
|
+
datumText: {
|
|
150
|
+
declared: boolean;
|
|
151
|
+
expected: number;
|
|
152
|
+
observed: number;
|
|
153
|
+
complete: boolean;
|
|
154
|
+
viewId?: string;
|
|
155
|
+
expectedValues?: string;
|
|
156
|
+
verification?: "opened-dialog";
|
|
157
|
+
failure?: string;
|
|
158
|
+
};
|
|
159
|
+
unmeasurable?: ChartUnmeasurableReason;
|
|
160
|
+
}
|
|
161
|
+
export interface ChartProofViolation {
|
|
162
|
+
key: string;
|
|
163
|
+
context: string;
|
|
164
|
+
rule: "mark-backdrop" | "adjacent-pair" | "axis-text" | "missing-label";
|
|
165
|
+
paint?: string;
|
|
166
|
+
background?: string;
|
|
167
|
+
ratio?: number;
|
|
168
|
+
required?: number;
|
|
169
|
+
}
|
|
170
|
+
export interface ChartProofResult {
|
|
171
|
+
ok: boolean;
|
|
172
|
+
candidates: number;
|
|
173
|
+
measured: number;
|
|
174
|
+
marksMeasured: number;
|
|
175
|
+
labelsMeasured: number;
|
|
176
|
+
byKind: Record<string, number>;
|
|
177
|
+
violations: ChartProofViolation[];
|
|
178
|
+
unverified: Array<{
|
|
179
|
+
key: string;
|
|
180
|
+
context: string;
|
|
181
|
+
reason: ChartUnmeasurableReason;
|
|
182
|
+
}>;
|
|
183
|
+
}
|
|
71
184
|
export interface MatrixSnapshot {
|
|
72
185
|
/** False when the story root is missing or empty — always a failure. */
|
|
73
186
|
storyRendered: boolean;
|
|
74
187
|
geometry: MatrixElementGeometry[];
|
|
75
188
|
textSamples: MatrixTextSample[];
|
|
189
|
+
iconSamples: MatrixIconSample[];
|
|
190
|
+
chartSamples: MatrixChartSample[];
|
|
191
|
+
/** All top-level SVG roots inside the audited story, including hidden roots. */
|
|
192
|
+
svgRootCount: number;
|
|
76
193
|
}
|
|
77
194
|
export interface GeometryMove {
|
|
78
195
|
key: string;
|
|
@@ -102,7 +219,7 @@ export interface TextContrastResult {
|
|
|
102
219
|
violations: TextContrastViolation[];
|
|
103
220
|
}
|
|
104
221
|
/**
|
|
105
|
-
* Captures
|
|
222
|
+
* Captures geometry, direct text ink and SVG glyph paint in the rendered story.
|
|
106
223
|
*
|
|
107
224
|
* Self-contained by construction — pass directly to
|
|
108
225
|
* `page.evaluate(captureMatrixSnapshot)`.
|
|
@@ -126,6 +243,13 @@ export declare function diffGeometry(before: MatrixSnapshot, after: MatrixSnapsh
|
|
|
126
243
|
* silently dropped.
|
|
127
244
|
*/
|
|
128
245
|
export declare function evaluateTextContrast(samples: MatrixTextSample[]): TextContrastResult;
|
|
246
|
+
/** A bounded single-ink SVG assertion. Unsupported compositions stay unverified. */
|
|
247
|
+
export declare function evaluateIconContrast(samples: MatrixIconSample[]): IconContrastResult;
|
|
248
|
+
/** Stable named findings for both absolute cell failures and preset attribution. */
|
|
249
|
+
export declare function iconContrastSignatures(result: IconContrastResult): string[];
|
|
250
|
+
/** Bounded chart proof. Declarations route samples; measured paint decides. */
|
|
251
|
+
export declare function evaluateChartProof(samples: MatrixChartSample[]): ChartProofResult;
|
|
252
|
+
export declare function chartProofSignatures(result: ChartProofResult): string[];
|
|
129
253
|
/** One matrix cell's no-breakage inputs (preset axis). */
|
|
130
254
|
export interface NoBreakageInput {
|
|
131
255
|
storyRendered: boolean;
|
|
@@ -147,6 +271,14 @@ export interface NoBreakageInput {
|
|
|
147
271
|
baselineContrastViolations: number;
|
|
148
272
|
/** The DEFAULT-preset cell's contrast result, for naming the new misses. */
|
|
149
273
|
baselineContrast?: TextContrastResult;
|
|
274
|
+
/**
|
|
275
|
+
* Supply both for icon attribution. Existing text-only callers may omit both;
|
|
276
|
+
* their verdict does not assert icon contrast. The matrix runner supplies both.
|
|
277
|
+
*/
|
|
278
|
+
icons?: IconContrastResult;
|
|
279
|
+
baselineIcons?: IconContrastResult;
|
|
280
|
+
charts?: ChartProofResult;
|
|
281
|
+
baselineCharts?: ChartProofResult;
|
|
150
282
|
}
|
|
151
283
|
/**
|
|
152
284
|
* Flattens a `runConstraintAudit` report into one signature per violation,
|
|
@@ -154,6 +286,7 @@ export interface NoBreakageInput {
|
|
|
154
286
|
* broke rather than by how many things broke.
|
|
155
287
|
*/
|
|
156
288
|
export declare function auditSignatures(violations: Array<{
|
|
289
|
+
key?: string;
|
|
157
290
|
label: string;
|
|
158
291
|
violations: string[];
|
|
159
292
|
}>): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeMatrix.d.ts","sourceRoot":"","sources":["../../src/audit/themeMatrix.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"themeMatrix.d.ts","sourceRoot":"","sources":["../../src/audit/themeMatrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - `single` — every mark of a single-series chart takes the theme identity:
|
|
9
9
|
* the active accent, or the tint solid when a tint sub-theme is active
|
|
10
10
|
* (the palette re-anchors under tint exactly like the neutral ramp does).
|
|
11
|
-
* - `categorical` — identity-led list of sanctioned Radix
|
|
11
|
+
* - `categorical` — identity-led list of sanctioned Radix solids for
|
|
12
12
|
* multi-series data. Slot 0 is the theme identity; the fixed hue cycle
|
|
13
13
|
* fills the rest, dropping hues indistinguishable from the identity so
|
|
14
14
|
* adjacent series stay tellable-apart under every tint.
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* semantic ramps ($red/$green/$yellow), tint-independent, scheme-aware.
|
|
17
17
|
*
|
|
18
18
|
* Values resolve from the same Radix scales the theme builder splats into the
|
|
19
|
-
* base themes, so `categorical[1]` under `light` equals `$
|
|
19
|
+
* base themes, so `categorical[1]` under `light` equals `$blue10`, and they
|
|
20
20
|
* stay resolvable on native and under tint sub-themes (which only carry the
|
|
21
21
|
* re-ramped neutral family).
|
|
22
22
|
*/
|
|
@@ -38,10 +38,12 @@ export interface ResolveChartPaletteInput {
|
|
|
38
38
|
scheme: "light" | "dark";
|
|
39
39
|
/**
|
|
40
40
|
* Resolved theme-identity solid — `accentBackground` in base themes, the
|
|
41
|
-
* re-ramped `$color9` under a tint.
|
|
42
|
-
* when missing
|
|
41
|
+
* re-ramped `$color9` under a tint. Tries the ordered candidates, then
|
|
42
|
+
* falls back to violet when missing, unparseable or below the contrast floor.
|
|
43
43
|
*/
|
|
44
44
|
identitySolid?: string;
|
|
45
|
+
/** Ordered alternatives when the identity cannot meet the mark contrast floor. */
|
|
46
|
+
identityCandidates?: readonly (string | undefined)[];
|
|
45
47
|
}
|
|
46
48
|
/**
|
|
47
49
|
* Pure palette resolution — see {@link ChartPalette} for the contract.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartPalette.d.ts","sourceRoot":"","sources":["../../src/theme/chartPalette.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chartPalette.d.ts","sourceRoot":"","sources":["../../src/theme/chartPalette.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sEAAsE;IACtE,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;CACtD;AAkJD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CAyBjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAe9C"}
|
|
@@ -40,7 +40,7 @@ export interface ContrastReport {
|
|
|
40
40
|
/** The colors actually measured, as normalized 6-digit hex. */
|
|
41
41
|
foreground: string;
|
|
42
42
|
background: string;
|
|
43
|
-
/** WCAG 2.x ratio
|
|
43
|
+
/** Unrounded WCAG 2.x ratio. Round only when formatting a display value. */
|
|
44
44
|
ratio: number;
|
|
45
45
|
floor: number;
|
|
46
46
|
pass: boolean;
|
|
@@ -49,8 +49,8 @@ export interface ContrastReport {
|
|
|
49
49
|
* Measure one pair against its floor. Throws when a color cannot be reduced
|
|
50
50
|
* to an opaque hex: an alpha color has no contrast of its own and the house
|
|
51
51
|
* ramps are fully opaque, so an unmeasurable pair is a genuine failure,
|
|
52
|
-
* never a skip.
|
|
53
|
-
*
|
|
52
|
+
* never a skip. Compare the actual ratio: rounding before classification
|
|
53
|
+
* can turn a below-floor pair into a passing one.
|
|
54
54
|
*/
|
|
55
55
|
export declare function measureContrast(pair: ContrastPair): ContrastReport;
|
|
56
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorRules.d.ts","sourceRoot":"","sources":["../../src/theme/colorRules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAYH,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6BzD;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,yCAAyC;AACzC,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAWvC,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"colorRules.d.ts","sourceRoot":"","sources":["../../src/theme/colorRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export interface GetThemeProps {
|
|
|
26
26
|
}
|
|
27
27
|
export interface CreateThemesBuilderOptions {
|
|
28
28
|
grandChildrenThemes?: CreateThemesProps["grandChildrenThemes"];
|
|
29
|
-
getTheme?: (props: GetThemeProps) => Record<string, string | number>;
|
|
29
|
+
getTheme?: (props: GetThemeProps) => Record<string, string | number | null | undefined>;
|
|
30
30
|
}
|
|
31
31
|
export declare const tintHueNames: Set<string>;
|
|
32
32
|
export declare function createThemesBuilder(baseTheme: BaseThemeBuilderDefinition, accentTheme: ThemeBuilderDefinition, options?: CreateThemesBuilderOptions): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createThemes.d.ts","sourceRoot":"","sources":["../../src/theme/createThemes.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"createThemes.d.ts","sourceRoot":"","sources":["../../src/theme/createThemes.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAqEhC,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB,CACrC,WAAW,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACvC,YAAY,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE;IAExC,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B,CACzC,WAAW,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACvC,YAAY,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACxC,WAAW,SAAS,OAAO,GAAG,OAAO,EACrC,YAAY,SAAS,OAAO,GAAG,OAAO,CACtC,SAAQ,sBAAsB,CAAC,WAAW,EAAE,YAAY,CAAC;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACzF;AA8BD,eAAO,MAAM,YAAY,aA6BvB,CAAC;AA0DH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,0BAA0B,EACrC,WAAW,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,0BAA0B;;aAmLzB,CAAC,SAAS,MAAM,QAAQ,CAAC,SAAS,sBAAsB,GAuB1D,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE;;+BAAkC;EAG7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glyphPaint.d.ts","sourceRoot":"","sources":["../../src/theme/glyphPaint.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,EAC7C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"glyphPaint.d.ts","sourceRoot":"","sources":["../../src/theme/glyphPaint.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,EAC7C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,CAyBR;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpD"}
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* a theme sets `{ baseHeight }` and drops the table — it is not the
|
|
10
10
|
* default ladder and is not a signed-off divergence (MPO-46 / R6).
|
|
11
11
|
*
|
|
12
|
-
* Radius steps with the size token. The borderRadius knob
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Radius steps with the size token. The borderRadius knob overrides the
|
|
13
|
+
* painted corners while internal gap stays on the size recipe. `radiusPx`
|
|
14
|
+
* on inputs is the $4 / medium default (9).
|
|
15
15
|
*
|
|
16
16
|
* Tamagui `createThemes` / theme-builder still emits COLOR palettes only.
|
|
17
17
|
* Do not stuff recipe keys into `getTheme()` / `themes`.
|
|
@@ -38,8 +38,8 @@ export type SizeRecipeTokenChannels = {
|
|
|
38
38
|
export type SizeRecipeTokenTable = Partial<Record<SizeRecipeToken, SizeRecipeTokenChannels>>;
|
|
39
39
|
/**
|
|
40
40
|
* borderRadius knob stops (px). Mirrors the v5 radius tokens the knob
|
|
41
|
-
* already resolves ($0/$2/$4/$6/$12 = 0/5/9/16/50).
|
|
42
|
-
*
|
|
41
|
+
* already resolves ($0/$2/$4/$6/$12 = 0/5/9/16/50). These shape overrides
|
|
42
|
+
* do not retarget the control's internal gap.
|
|
43
43
|
*/
|
|
44
44
|
export declare const SIZE_RECIPE_RADIUS_STOPS: {
|
|
45
45
|
readonly none: 0;
|
|
@@ -181,7 +181,7 @@ export declare function resolveSizeRecipeInputs(partial?: Partial<SizeRecipeInpu
|
|
|
181
181
|
export declare const mergeRecipeInputs: typeof resolveSizeRecipeInputs;
|
|
182
182
|
export declare function sizeRecipeFromHeight(height: number, ratios?: SizeRecipeRatios): SizeRecipe;
|
|
183
183
|
export declare function recipeFromTokenChannels(height: number, channels: SizeRecipeTokenChannels): SizeRecipe;
|
|
184
|
-
/**
|
|
184
|
+
/** Explicit recipe transformation; ordinary control shape changes use resolveControlRadius. */
|
|
185
185
|
export declare function applyRadiusStop<T extends {
|
|
186
186
|
gap: number;
|
|
187
187
|
}>(recipe: T, stop: SizeRecipeRadiusStop): T;
|
|
@@ -197,8 +197,8 @@ export declare const SIZE_RECIPE_RADIUS_TOKEN_TO_STOP: {
|
|
|
197
197
|
* Painted control radius + inner gap.
|
|
198
198
|
*
|
|
199
199
|
* Default `medium` follows the size table (gap == radius at that token).
|
|
200
|
-
*
|
|
201
|
-
*
|
|
200
|
+
* Other borderRadius stops override the corners only. Internal spacing
|
|
201
|
+
* continues to group the icon and label at the recipe's size (LC-79).
|
|
202
202
|
*/
|
|
203
203
|
export declare function resolveControlRadius(recipe: SizeRecipe, stop?: SizeRecipeRadiusStop): {
|
|
204
204
|
radius: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipeInputs.d.ts","sourceRoot":"","sources":["../../src/theme/recipeInputs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"recipeInputs.d.ts","sourceRoot":"","sources":["../../src/theme/recipeInputs.ts"],"names":[],"mappings":"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"}
|