@multiplatform.one/theme 8.2.2 → 8.4.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/cjs/index.gnome.cjs +4 -1
- package/dist/cjs/index.gnome.native.js +3 -0
- package/dist/cjs/index.gnome.native.js.map +1 -1
- package/dist/cjs/menuRow.cjs +1 -1
- package/dist/cjs/menuRow.native.js +1 -1
- package/dist/cjs/theme/accentInk.cjs +6 -2
- package/dist/cjs/theme/accentInk.native.js +6 -2
- package/dist/cjs/theme/accentInk.native.js.map +1 -1
- package/dist/cjs/theme/chartPalette.cjs +3 -3
- package/dist/cjs/theme/chartPalette.native.js +5 -4
- package/dist/cjs/theme/chartPalette.native.js.map +1 -1
- package/dist/cjs/theme/colorRules.cjs +5 -0
- package/dist/cjs/theme/colorRules.native.js +6 -0
- package/dist/cjs/theme/colorRules.native.js.map +1 -1
- package/dist/cjs/theme/controlTiers.cjs +9 -5
- package/dist/cjs/theme/controlTiers.native.js +10 -5
- package/dist/cjs/theme/controlTiers.native.js.map +1 -1
- package/dist/cjs/theme/createThemes.cjs +212 -8
- package/dist/cjs/theme/createThemes.native.js +397 -12
- package/dist/cjs/theme/createThemes.native.js.map +1 -1
- package/dist/cjs/theme/defaults/builderOptions.cjs +9 -4
- package/dist/cjs/theme/defaults/builderOptions.native.js +9 -4
- package/dist/cjs/theme/defaults/builderOptions.native.js.map +1 -1
- package/dist/cjs/theme/fillContrast.cjs +4 -1
- package/dist/cjs/theme/fillContrast.native.js +4 -1
- package/dist/cjs/theme/fillContrast.native.js.map +1 -1
- package/dist/cjs/theme/index.cjs +1 -0
- package/dist/cjs/theme/index.native.js +1 -0
- package/dist/cjs/theme/index.native.js.map +1 -1
- package/dist/cjs/theme/nativeSchemePreference.cjs +2 -1
- package/dist/cjs/theme/nativeSchemePreference.native.js +2 -1
- package/dist/cjs/theme/nativeSchemePreference.native.js.map +1 -1
- package/dist/cjs/theme/nativeTheme.native.js.map +1 -1
- package/dist/cjs/theme/overlaySurfaces.cjs +2 -2
- package/dist/cjs/theme/overlaySurfaces.native.js +2 -2
- package/dist/cjs/theme/overlaySurfaces.native.js.map +1 -1
- package/dist/cjs/theme/readableColor.cjs +20 -9
- package/dist/cjs/theme/readableColor.native.js +20 -9
- package/dist/cjs/theme/readableColor.native.js.map +1 -1
- package/dist/cjs/theme/reducedMotion.cjs +49 -0
- package/dist/cjs/theme/reducedMotion.native.js +81 -0
- package/dist/cjs/theme/reducedMotion.native.js.map +1 -0
- package/dist/cjs/theme/resolveKnobs.cjs +4 -1
- package/dist/cjs/theme/resolveKnobs.native.js +4 -1
- package/dist/cjs/theme/resolveKnobs.native.js.map +1 -1
- package/dist/cjs/theme/tokenNumber.cjs +34 -0
- package/dist/cjs/theme/tokenNumber.native.js +39 -0
- package/dist/cjs/theme/tokenNumber.native.js.map +1 -0
- package/dist/cjs/theme/useResolvedKnobs.cjs +2 -22
- package/dist/cjs/theme/useResolvedKnobs.native.js +2 -30
- package/dist/cjs/theme/useResolvedKnobs.native.js.map +1 -1
- package/dist/esm/index.gnome.mjs +3 -2
- package/dist/esm/index.gnome.mjs.map +1 -1
- package/dist/esm/index.gnome.native.js +3 -2
- package/dist/esm/index.gnome.native.js.map +1 -1
- package/dist/esm/menuRow.mjs +1 -1
- package/dist/esm/menuRow.native.js +1 -1
- package/dist/esm/theme/accentInk.mjs +6 -3
- package/dist/esm/theme/accentInk.mjs.map +1 -1
- package/dist/esm/theme/accentInk.native.js +6 -3
- package/dist/esm/theme/accentInk.native.js.map +1 -1
- package/dist/esm/theme/chartPalette.mjs +3 -3
- package/dist/esm/theme/chartPalette.mjs.map +1 -1
- package/dist/esm/theme/chartPalette.native.js +5 -4
- package/dist/esm/theme/chartPalette.native.js.map +1 -1
- package/dist/esm/theme/colorRules.mjs +5 -1
- package/dist/esm/theme/colorRules.mjs.map +1 -1
- package/dist/esm/theme/colorRules.native.js +6 -1
- package/dist/esm/theme/colorRules.native.js.map +1 -1
- package/dist/esm/theme/controlTiers.mjs +9 -6
- package/dist/esm/theme/controlTiers.mjs.map +1 -1
- package/dist/esm/theme/controlTiers.native.js +10 -6
- package/dist/esm/theme/controlTiers.native.js.map +1 -1
- package/dist/esm/theme/createThemes.mjs +215 -12
- package/dist/esm/theme/createThemes.mjs.map +1 -1
- package/dist/esm/theme/createThemes.native.js +400 -16
- package/dist/esm/theme/createThemes.native.js.map +1 -1
- package/dist/esm/theme/defaults/builderOptions.mjs +10 -6
- package/dist/esm/theme/defaults/builderOptions.mjs.map +1 -1
- package/dist/esm/theme/defaults/builderOptions.native.js +10 -6
- package/dist/esm/theme/defaults/builderOptions.native.js.map +1 -1
- package/dist/esm/theme/fillContrast.mjs +5 -2
- package/dist/esm/theme/fillContrast.mjs.map +1 -1
- package/dist/esm/theme/fillContrast.native.js +5 -2
- package/dist/esm/theme/fillContrast.native.js.map +1 -1
- package/dist/esm/theme/index.mjs +1 -0
- package/dist/esm/theme/index.mjs.map +1 -1
- package/dist/esm/theme/index.native.js +1 -0
- package/dist/esm/theme/index.native.js.map +1 -1
- package/dist/esm/theme/nativeSchemePreference.mjs +2 -1
- package/dist/esm/theme/nativeSchemePreference.mjs.map +1 -1
- package/dist/esm/theme/nativeSchemePreference.native.js +2 -1
- package/dist/esm/theme/nativeSchemePreference.native.js.map +1 -1
- package/dist/esm/theme/nativeTheme.mjs.map +1 -1
- package/dist/esm/theme/nativeTheme.native.js.map +1 -1
- package/dist/esm/theme/overlaySurfaces.mjs +2 -2
- package/dist/esm/theme/overlaySurfaces.native.js +2 -2
- package/dist/esm/theme/readableColor.mjs +20 -9
- package/dist/esm/theme/readableColor.mjs.map +1 -1
- package/dist/esm/theme/readableColor.native.js +20 -9
- package/dist/esm/theme/readableColor.native.js.map +1 -1
- package/dist/esm/theme/reducedMotion.mjs +24 -0
- package/dist/esm/theme/reducedMotion.mjs.map +1 -0
- package/dist/esm/theme/reducedMotion.native.js +53 -0
- package/dist/esm/theme/reducedMotion.native.js.map +1 -0
- package/dist/esm/theme/resolveKnobs.mjs +4 -1
- package/dist/esm/theme/resolveKnobs.mjs.map +1 -1
- package/dist/esm/theme/resolveKnobs.native.js +4 -1
- package/dist/esm/theme/resolveKnobs.native.js.map +1 -1
- package/dist/esm/theme/tokenNumber.mjs +9 -0
- package/dist/esm/theme/tokenNumber.mjs.map +1 -0
- package/dist/esm/theme/tokenNumber.native.js +11 -0
- package/dist/esm/theme/tokenNumber.native.js.map +1 -0
- package/dist/esm/theme/useResolvedKnobs.mjs +2 -22
- package/dist/esm/theme/useResolvedKnobs.mjs.map +1 -1
- package/dist/esm/theme/useResolvedKnobs.native.js +2 -30
- package/dist/esm/theme/useResolvedKnobs.native.js.map +1 -1
- package/package.json +5 -5
- package/src/figma/figmaTokens.spec.ts +2 -1
- package/src/index.gnome.ts +2 -0
- package/src/menuRow.palette.spec.ts +20 -7
- package/src/menuRow.spec.ts +2 -2
- package/src/menuRow.ts +3 -3
- package/src/theme/accentInk.ts +8 -2
- package/src/theme/accentOnSurface.spec.tsx +6 -1
- package/src/theme/chartPalette.spec.ts +2 -2
- package/src/theme/chartPalette.ts +9 -9
- package/src/theme/colorRules.ts +13 -0
- package/src/theme/controlEdges.spec.ts +114 -0
- package/src/theme/controlTiers.ts +18 -9
- package/src/theme/createDefaultThemeConfig.spec.ts +135 -12
- package/src/theme/createThemes.ts +363 -24
- package/src/theme/defaults/builderOptions.ts +25 -8
- package/src/theme/defaults/secondaryInk.spec.ts +10 -5
- package/src/theme/fillContrast.spec.ts +8 -2
- package/src/theme/fillContrast.ts +10 -2
- package/src/theme/houseGround.spec.ts +1 -1
- package/src/theme/index.ts +1 -0
- package/src/theme/nativeSchemePreference.ts +2 -1
- package/src/theme/nativeTheme.tsx +1 -1
- package/src/theme/overlaySurfaces.tsx +2 -2
- package/src/theme/readableColor.ts +23 -11
- package/src/theme/recipes.ts +1 -0
- package/src/theme/reducedMotion.native.spec.ts +28 -0
- package/src/theme/reducedMotion.native.ts +36 -0
- package/src/theme/reducedMotion.ts +27 -0
- package/src/theme/resolveKnobs.spec.ts +4 -4
- package/src/theme/resolveKnobs.ts +6 -4
- package/src/theme/selectionFill.spec.ts +58 -0
- package/src/theme/sheetGrabber.spec.ts +4 -0
- package/src/theme/switchThumb.spec.ts +13 -1
- package/src/theme/themeKeyRegistry.spec.ts +26 -0
- package/src/theme/tokenNumber.spec.tsx +47 -0
- package/src/theme/tokenNumber.ts +18 -0
- package/src/theme/useResolvedKnobs.ts +2 -27
- package/types/index.gnome.d.ts +2 -1
- package/types/index.gnome.d.ts.map +1 -1
- package/types/menuRow.d.ts +5 -5
- package/types/theme/accentInk.d.ts +1 -0
- package/types/theme/accentInk.d.ts.map +1 -1
- package/types/theme/chartPalette.d.ts +2 -2
- package/types/theme/colorRules.d.ts +9 -0
- package/types/theme/colorRules.d.ts.map +1 -1
- package/types/theme/controlTiers.d.ts +11 -5
- package/types/theme/controlTiers.d.ts.map +1 -1
- package/types/theme/createThemes.d.ts +21 -12
- package/types/theme/createThemes.d.ts.map +1 -1
- package/types/theme/defaults/builderOptions.d.ts +9 -1
- package/types/theme/defaults/builderOptions.d.ts.map +1 -1
- package/types/theme/fillContrast.d.ts.map +1 -1
- package/types/theme/index.d.ts +1 -0
- package/types/theme/index.d.ts.map +1 -1
- package/types/theme/nativeSchemePreference.d.ts.map +1 -1
- package/types/theme/nativeTheme.d.ts +1 -1
- package/types/theme/nativeTheme.d.ts.map +1 -1
- package/types/theme/overlaySurfaces.d.ts +2 -2
- package/types/theme/readableColor.d.ts.map +1 -1
- package/types/theme/recipes.d.ts +3 -0
- package/types/theme/recipes.d.ts.map +1 -1
- package/types/theme/reducedMotion.d.ts +3 -0
- package/types/theme/reducedMotion.d.ts.map +1 -0
- package/types/theme/reducedMotion.native.d.ts +3 -0
- package/types/theme/reducedMotion.native.d.ts.map +1 -0
- package/types/theme/resolveKnobs.d.ts.map +1 -1
- package/types/theme/tokenNumber.d.ts +10 -0
- package/types/theme/tokenNumber.d.ts.map +1 -0
- package/types/theme/useResolvedKnobs.d.ts.map +1 -1
|
@@ -120,9 +120,13 @@ function useIdentityInputs() {
|
|
|
120
120
|
const keys = identityKeys(themeName);
|
|
121
121
|
return {
|
|
122
122
|
candidates: keys.map((key) => resolveTokenValue(theme, key)),
|
|
123
|
+
identityInk: resolveTokenValue(theme, "identityInk"),
|
|
123
124
|
accentSteps: accentStepKeys.map((key) => resolveTokenValue(theme, key)),
|
|
124
125
|
c1: resolveTokenValue(theme, "color1"),
|
|
125
126
|
c2: resolveTokenValue(theme, "color2"),
|
|
127
|
+
// A dark overlay paints `$color5` (LC-85, FZ-8400), and accent ink in a
|
|
128
|
+
// Toast, menu or sheet sits on it.
|
|
129
|
+
c5: themeName.startsWith("dark") ? resolveTokenValue(theme, "color5") : undefined,
|
|
126
130
|
ink: resolveTokenValue(theme, "color12") ?? "$color12",
|
|
127
131
|
};
|
|
128
132
|
}
|
|
@@ -138,14 +142,20 @@ function useIdentityInputs() {
|
|
|
138
142
|
* none does.
|
|
139
143
|
*/
|
|
140
144
|
export function useAccentOnSurface(): string {
|
|
141
|
-
const { candidates, accentSteps, c1, c2, ink } = useIdentityInputs();
|
|
145
|
+
const { candidates, accentSteps, c1, c2, c5, ink } = useIdentityInputs();
|
|
142
146
|
const theme = useTamaguiTheme() as unknown as Record<string, { val?: unknown } | undefined>;
|
|
143
147
|
const candidateKey = candidates.join("|");
|
|
144
148
|
const stepKey = accentSteps.join("|");
|
|
145
149
|
const picked = useMemo(
|
|
146
|
-
() =>
|
|
150
|
+
() =>
|
|
151
|
+
resolveAccentOnSurface({
|
|
152
|
+
identity: candidates,
|
|
153
|
+
accentSteps,
|
|
154
|
+
surfaces: c5 ? [c1, c2, c5] : [c1, c2],
|
|
155
|
+
ink,
|
|
156
|
+
}),
|
|
147
157
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
148
|
-
[candidateKey, stepKey, c1, c2, ink],
|
|
158
|
+
[candidateKey, stepKey, c1, c2, c5, ink],
|
|
149
159
|
);
|
|
150
160
|
return isWeb && theme.accentOnSurface?.val === picked ? "$accentOnSurface" : picked;
|
|
151
161
|
}
|
|
@@ -158,12 +168,13 @@ export function useAccentOnSurface(): string {
|
|
|
158
168
|
* {@link useAccentOnSurface} does there.
|
|
159
169
|
*/
|
|
160
170
|
export function useIdentityInkOnSurface(): string {
|
|
161
|
-
const { candidates, c1, c2, ink } = useIdentityInputs();
|
|
162
|
-
const
|
|
171
|
+
const { candidates, identityInk, c1, c2, c5, ink } = useIdentityInputs();
|
|
172
|
+
const identity = identityInk ? [identityInk] : candidates;
|
|
173
|
+
const candidateKey = identity.join("|");
|
|
163
174
|
return useMemo(
|
|
164
|
-
() => resolveIdentityInk({ candidates, surfaces: [c1, c2], ink }),
|
|
175
|
+
() => resolveIdentityInk({ candidates: identity, surfaces: c5 ? [c1, c2, c5] : [c1, c2], ink }),
|
|
165
176
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
166
|
-
[candidateKey, c1, c2, ink],
|
|
177
|
+
[candidateKey, c1, c2, c5, ink],
|
|
167
178
|
);
|
|
168
179
|
}
|
|
169
180
|
|
|
@@ -178,12 +189,13 @@ export function useIdentityHue(): {
|
|
|
178
189
|
c2: string | undefined;
|
|
179
190
|
ink: string;
|
|
180
191
|
} {
|
|
181
|
-
const { candidates, c1, c2, ink } = useIdentityInputs();
|
|
182
|
-
const
|
|
192
|
+
const { candidates, identityInk, c1, c2, c5, ink } = useIdentityInputs();
|
|
193
|
+
const identity = identityInk ? [identityInk] : candidates;
|
|
194
|
+
const candidateKey = identity.join("|");
|
|
183
195
|
const hue = useMemo(
|
|
184
|
-
() => pickIdentityInk(
|
|
196
|
+
() => pickIdentityInk(identity, c5 ? [c1, c2, c5] : [c1, c2]),
|
|
185
197
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
186
|
-
[candidateKey, c1, c2],
|
|
198
|
+
[candidateKey, c1, c2, c5],
|
|
187
199
|
);
|
|
188
200
|
return { hue, c1, c2, ink };
|
|
189
201
|
}
|
package/src/theme/recipes.ts
CHANGED
|
@@ -224,6 +224,7 @@ export interface KnobProps {
|
|
|
224
224
|
*/
|
|
225
225
|
elevationChrome: ElevationChromeProps;
|
|
226
226
|
thumbShadow: ElevationChromeProps;
|
|
227
|
+
trackRing: { boxShadow?: string };
|
|
227
228
|
/** Resolved scheme the fragments were built for (LC-85). */
|
|
228
229
|
scheme: "light" | "dark";
|
|
229
230
|
surface: { backgroundColor: string; borderColor: string; borderWidth: number };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { act, renderHook, waitFor } from "@testing-library/react";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
|
|
4
|
+
const os = vi.hoisted(() => ({
|
|
5
|
+
enabled: true,
|
|
6
|
+
listener: null as ((value: boolean) => void) | null,
|
|
7
|
+
}));
|
|
8
|
+
|
|
9
|
+
vi.mock("react-native", () => ({
|
|
10
|
+
AccessibilityInfo: {
|
|
11
|
+
isReduceMotionEnabled: () => Promise.resolve(os.enabled),
|
|
12
|
+
addEventListener: (_name: string, listener: (value: boolean) => void) => {
|
|
13
|
+
os.listener = listener;
|
|
14
|
+
return { remove: () => {} };
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
const { usePrefersReducedMotion } = await import("./reducedMotion.native");
|
|
20
|
+
|
|
21
|
+
describe("reduced motion on native (LC-68, FZ-8075)", () => {
|
|
22
|
+
it("reads iOS Reduce Motion and follows it when it changes", async () => {
|
|
23
|
+
const { result } = renderHook(() => usePrefersReducedMotion());
|
|
24
|
+
await waitFor(() => expect(result.current).toBe(true));
|
|
25
|
+
act(() => os.listener?.(false));
|
|
26
|
+
expect(result.current).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
import { AccessibilityInfo } from "react-native";
|
|
3
|
+
|
|
4
|
+
let reduced = false;
|
|
5
|
+
let primed = false;
|
|
6
|
+
const listeners = new Set<() => void>();
|
|
7
|
+
|
|
8
|
+
function set(value: boolean) {
|
|
9
|
+
if (value === reduced) return;
|
|
10
|
+
reduced = value;
|
|
11
|
+
for (const notify of listeners) notify();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function prime() {
|
|
15
|
+
if (primed) return;
|
|
16
|
+
primed = true;
|
|
17
|
+
AccessibilityInfo.isReduceMotionEnabled?.()
|
|
18
|
+
.then(set)
|
|
19
|
+
.catch(() => {});
|
|
20
|
+
AccessibilityInfo.addEventListener?.("reduceMotionChanged", set);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function subscribe(notify: () => void) {
|
|
24
|
+
prime();
|
|
25
|
+
listeners.add(notify);
|
|
26
|
+
return () => {
|
|
27
|
+
listeners.delete(notify);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const read = () => reduced;
|
|
32
|
+
|
|
33
|
+
/** iOS Reduce Motion and Android's remove-animations setting (LC-68 on native, FZ-8075). */
|
|
34
|
+
export function usePrefersReducedMotion(): boolean {
|
|
35
|
+
return useSyncExternalStore(subscribe, read, read);
|
|
36
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
|
|
3
|
+
const reducedMotionQuery = "(prefers-reduced-motion: reduce)";
|
|
4
|
+
const serverReducedMotion = () => false;
|
|
5
|
+
|
|
6
|
+
function readReducedMotion(): boolean {
|
|
7
|
+
return typeof window !== "undefined" && !!window.matchMedia?.(reducedMotionQuery).matches;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function subscribeReducedMotion(notify: () => void) {
|
|
11
|
+
if (typeof window === "undefined" || !window.matchMedia) return () => {};
|
|
12
|
+
const mq = window.matchMedia(reducedMotionQuery);
|
|
13
|
+
if (typeof mq.addEventListener === "function") {
|
|
14
|
+
mq.addEventListener("change", notify);
|
|
15
|
+
return () => mq.removeEventListener("change", notify);
|
|
16
|
+
}
|
|
17
|
+
if (typeof mq.addListener === "function") {
|
|
18
|
+
mq.addListener(notify);
|
|
19
|
+
return () => mq.removeListener?.(notify);
|
|
20
|
+
}
|
|
21
|
+
return () => {};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Adopt the OS motion preference after matching the server's initial markup. */
|
|
25
|
+
export function usePrefersReducedMotion(): boolean {
|
|
26
|
+
return useSyncExternalStore(subscribeReducedMotion, readReducedMotion, serverReducedMotion);
|
|
27
|
+
}
|
|
@@ -310,7 +310,7 @@ describe("resolveKnobs", () => {
|
|
|
310
310
|
expect(knobProps.elevation).toBe(key);
|
|
311
311
|
expect(knobProps.cardSurface.backgroundColor).toBe("$background");
|
|
312
312
|
expect(knobProps.elevatedSurface.backgroundColor).toBe(
|
|
313
|
-
scheme === "dark" ? "$
|
|
313
|
+
scheme === "dark" ? "$color5" : "$background",
|
|
314
314
|
);
|
|
315
315
|
expect(knobProps.elevatedSurface.borderColor).toBe(
|
|
316
316
|
scheme === "dark" ? "transparent" : "$borderColor",
|
|
@@ -341,9 +341,9 @@ describe("resolveKnobs", () => {
|
|
|
341
341
|
{ length: 12 },
|
|
342
342
|
(_, index) => themes.dark[`color${index + 1}`].val,
|
|
343
343
|
);
|
|
344
|
-
expect(knobProps.elevatedSurface.backgroundColor).toBe("$
|
|
344
|
+
expect(knobProps.elevatedSurface.backgroundColor).toBe("$color5");
|
|
345
345
|
const cardIndex = palette.indexOf(themes.dark_Card.background.val);
|
|
346
|
-
const overlayIndex = palette.indexOf(themes.dark.
|
|
346
|
+
const overlayIndex = palette.indexOf(themes.dark.color5.val);
|
|
347
347
|
expect(cardIndex).toBeGreaterThanOrEqual(0);
|
|
348
348
|
expect(overlayIndex - cardIndex).toBe(1);
|
|
349
349
|
});
|
|
@@ -459,7 +459,7 @@ describe("resolveKnobs", () => {
|
|
|
459
459
|
const { offsetY, radius } = sizedElevation(getActiveScaleTokens().size[key]);
|
|
460
460
|
expect(knobProps.overlayElevation).toBe(key);
|
|
461
461
|
if (scheme === "dark") {
|
|
462
|
-
expect(knobProps.elevatedSurface.backgroundColor).toBe("$
|
|
462
|
+
expect(knobProps.elevatedSurface.backgroundColor).toBe("$color5");
|
|
463
463
|
expect(knobProps.elevatedSurface.shadowColor).toBeUndefined();
|
|
464
464
|
expect(knobProps.elevatedSurface.style?.boxShadow).toBeUndefined();
|
|
465
465
|
return;
|
|
@@ -456,10 +456,11 @@ function elevationChromeFor(key: SizeKey | undefined): ElevationChromeProps {
|
|
|
456
456
|
};
|
|
457
457
|
}
|
|
458
458
|
|
|
459
|
-
//
|
|
460
|
-
// `$
|
|
461
|
-
//
|
|
462
|
-
|
|
459
|
+
// A dark overlay's fill is the house surface2 step (FZ-8400): the page is
|
|
460
|
+
// `$color1`, Card's surface1 `$color4`, and an overlay one step above that,
|
|
461
|
+
// so a menu still reads over the field or card it opens on. It separates by
|
|
462
|
+
// this lighter fill, with no light edge (HIG, FZ-7944).
|
|
463
|
+
const surface2 = { fill: "$color5" } as const;
|
|
463
464
|
|
|
464
465
|
// `$textMuted` is the theme's secondary ink (LC-152): the most muted ramp
|
|
465
466
|
// step that clears 7:1 on the page and every card tier in its own scheme. A
|
|
@@ -883,6 +884,7 @@ export function resolveKnobs(
|
|
|
883
884
|
overlayElevation: platformElevation(overlayElevationToken),
|
|
884
885
|
elevationChrome,
|
|
885
886
|
thumbShadow: elevationChromeFor("$0.5"),
|
|
887
|
+
trackRing: isWeb ? { boxShadow: "inset 0 0 0 1px var(--switchTrackOffBorder)" } : {},
|
|
886
888
|
scheme,
|
|
887
889
|
surface: {
|
|
888
890
|
backgroundColor: "$background",
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-05, FZ-8400: `$selectFill` and `$selectPress` are the neutral selection
|
|
3
|
+
* tier's fills. A selection fill that resolves to nothing paints no selected
|
|
4
|
+
* row at all, so every theme Tamagui can resolve carries both, the page keeps
|
|
5
|
+
* its `$color4` / `$color5`, and a dark card's own pair steps above its fill.
|
|
6
|
+
*/
|
|
7
|
+
import { configWithoutAnimations } from "@tamagui/config";
|
|
8
|
+
import { createTamagui } from "tamagui";
|
|
9
|
+
import { describe, expect, it } from "vitest";
|
|
10
|
+
import { contrastRatio, normalizeToHex, relativeLuminance } from "./colorRules";
|
|
11
|
+
import { createDefaultThemeConfig } from "./createDefaultThemeConfig";
|
|
12
|
+
|
|
13
|
+
const built = createDefaultThemeConfig({}).tamagui.themes as unknown as Record<
|
|
14
|
+
string,
|
|
15
|
+
Record<string, { val?: string } | string>
|
|
16
|
+
>;
|
|
17
|
+
const config = createTamagui({ ...configWithoutAnimations, themes: built as never });
|
|
18
|
+
const themes = config.themes as unknown as Record<string, Record<string, { val?: string }>>;
|
|
19
|
+
const value = (name: string, key: string) => themes[name]?.[key]?.val;
|
|
20
|
+
const lum = (raw: string) => relativeLuminance(normalizeToHex(raw)!);
|
|
21
|
+
|
|
22
|
+
describe("the LC-05 selection fills resolve in every theme (FZ-8400)", () => {
|
|
23
|
+
const names = Object.keys(themes);
|
|
24
|
+
|
|
25
|
+
it("covers the whole matrix", () => {
|
|
26
|
+
expect(names.length).toBeGreaterThan(400);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it("every theme carries $selectFill and $selectPress", () => {
|
|
30
|
+
const missing = names.filter(
|
|
31
|
+
(name) => !value(name, "selectFill") || !value(name, "selectPress"),
|
|
32
|
+
);
|
|
33
|
+
expect(missing).toEqual([]);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("each scheme and hue page paints its own $color4 and $color5", () => {
|
|
37
|
+
for (const name of names.filter((n) => /^(light|dark)(_[a-z]+)?$/.test(n))) {
|
|
38
|
+
expect(value(name, "selectFill"), name).toBe(value(name, "color4"));
|
|
39
|
+
expect(value(name, "selectPress"), name).toBe(value(name, "color5"));
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("a dark card's selection steps above its own fill", () => {
|
|
44
|
+
// `_accent` and `_active` are inverse control fills, not grounds.
|
|
45
|
+
const cards = names.filter(
|
|
46
|
+
(n) => /^dark(_[a-z]+)?_Card$/.test(n) && !/_(accent|active)_Card$/.test(n),
|
|
47
|
+
);
|
|
48
|
+
expect(cards.length).toBeGreaterThan(5);
|
|
49
|
+
for (const name of cards) {
|
|
50
|
+
const card = value(name, "background")!;
|
|
51
|
+
const fill = value(name, "selectFill")!;
|
|
52
|
+
const press = value(name, "selectPress")!;
|
|
53
|
+
expect(lum(fill), `${name} selectFill over its card`).toBeGreaterThan(lum(card));
|
|
54
|
+
expect(contrastRatio(lum(fill), lum(card)), name).toBeGreaterThan(1.05);
|
|
55
|
+
expect(lum(press), `${name} selectPress over selectFill`).toBeGreaterThan(lum(fill));
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
@@ -6,6 +6,10 @@ describe("sheetGrabber (FZ-8648)", () => {
|
|
|
6
6
|
expect(sheetGrabber).toMatchObject({ width: 36, height: 5, marginTop: 5, alignSelf: "center" });
|
|
7
7
|
});
|
|
8
8
|
|
|
9
|
+
it("draws in the label ink at 30%, iOS's tertiary label, so it reads on a light and a dark sheet", () => {
|
|
10
|
+
expect(sheetGrabber).toMatchObject({ backgroundColor: "$color12", opacity: 0.3 });
|
|
11
|
+
});
|
|
12
|
+
|
|
9
13
|
it("takes no height, so it lands the same above a frame and inside a grab zone", () => {
|
|
10
14
|
expect(sheetGrabber.marginTop + sheetGrabber.height + sheetGrabber.marginBottom).toBe(0);
|
|
11
15
|
});
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
normalizeToHex,
|
|
9
9
|
plateContrastRatio,
|
|
10
10
|
relativeLuminance,
|
|
11
|
+
switchOffGround,
|
|
11
12
|
} from "./colorRules";
|
|
12
13
|
import { createThemesBuilder } from "./createThemes";
|
|
13
14
|
import { defaultAccentTheme } from "./defaults/accent";
|
|
@@ -54,7 +55,14 @@ describe("switch thumb", () => {
|
|
|
54
55
|
const scheme = name.split("_")[0] as "light" | "dark";
|
|
55
56
|
const off = theme.switchTrackOff.val;
|
|
56
57
|
expect(isLightGround(theme.background.val)).toBe(scheme === "light");
|
|
57
|
-
|
|
58
|
+
// LC-172: the band is measured over the ground the switch sits on, the
|
|
59
|
+
// `$color4` card in dark (FZ-8400).
|
|
60
|
+
expect(
|
|
61
|
+
inSwitchOffBand(
|
|
62
|
+
off,
|
|
63
|
+
switchOffGround({ background: theme.background.val, color4: theme.color4.val })!,
|
|
64
|
+
),
|
|
65
|
+
).toBe(true);
|
|
58
66
|
if (scheme === "light") {
|
|
59
67
|
const step = Array.from({ length: 12 }, (_, i) => i + 1).find(
|
|
60
68
|
(n) => theme[`gray${n}`].val === off,
|
|
@@ -66,6 +74,10 @@ describe("switch thumb", () => {
|
|
|
66
74
|
expect(theme.switchTrackOffPress.val).toBe(theme[`gray${Math.min(step + 1, 12)}`].val);
|
|
67
75
|
} else {
|
|
68
76
|
expect(ratio(off, theme.color4.val)).toBeGreaterThanOrEqual(plateContrastRatio);
|
|
77
|
+
expect(ratio(off, theme.color5.val)).toBeGreaterThanOrEqual(plateContrastRatio);
|
|
78
|
+
// A switch on the bare `$color1` page (a toolbar, a row outside a card)
|
|
79
|
+
// still reads as a plate.
|
|
80
|
+
expect(ratio(off, theme.color1.val)).toBeGreaterThanOrEqual(plateContrastRatio);
|
|
69
81
|
const lum = (color: string) => relativeLuminance(normalizeToHex(color) as string);
|
|
70
82
|
expect(lum(theme.switchTrackOffHover.val)).toBeLessThan(lum(off));
|
|
71
83
|
expect(lum(theme.switchTrackOffPress.val)).toBeGreaterThan(lum(off));
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { readThemeKeys } from "@multiplatform.one/config/lint";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { createThemesBuilder, postPassThemeKeys } from "./createThemes";
|
|
4
|
+
import { defaultAccentTheme } from "./defaults/accent";
|
|
5
|
+
import { defaultBaseTheme } from "./defaults/base";
|
|
6
|
+
import { defaultBuilderOptions } from "./defaults/builderOptions";
|
|
7
|
+
|
|
8
|
+
const themes = createThemesBuilder(
|
|
9
|
+
defaultBaseTheme,
|
|
10
|
+
defaultAccentTheme,
|
|
11
|
+
defaultBuilderOptions,
|
|
12
|
+
).themes() as Record<string, Record<string, string>>;
|
|
13
|
+
|
|
14
|
+
const builtKeys = new Set(Object.values(themes).flatMap((theme) => Object.keys(theme)));
|
|
15
|
+
|
|
16
|
+
describe("the `$token` lint knows every built theme key", () => {
|
|
17
|
+
it("resolves every key the built themes carry, post-pass keys included", () => {
|
|
18
|
+
const known = readThemeKeys();
|
|
19
|
+
expect(known.size).toBeGreaterThan(0);
|
|
20
|
+
expect([...builtKeys].filter((key) => !known.has(key))).toEqual([]);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("lists no post-pass key the built themes lack", () => {
|
|
24
|
+
expect(postPassThemeKeys.filter((key) => !builtKeys.has(key))).toEqual([]);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
2
|
+
import { getTokens, getTokenValue } from "tamagui";
|
|
3
|
+
import { beforeAll, describe, expect, expectTypeOf, it } from "vitest";
|
|
4
|
+
import { tokenNumber, type TokenName } from "./tokenNumber";
|
|
5
|
+
|
|
6
|
+
beforeAll(() => {
|
|
7
|
+
renderWithProviders(<></>);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
function published(group: "size" | "space" | "radius" | "zIndex") {
|
|
11
|
+
return Object.keys(getTokens()[group] as Record<string, unknown>);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
describe("tokenNumber (FZ-8409 item 4)", () => {
|
|
15
|
+
it("reads every published size, space, radius and zIndex token by its own name", () => {
|
|
16
|
+
for (const group of ["size", "space", "radius", "zIndex"] as const) {
|
|
17
|
+
const names = published(group);
|
|
18
|
+
expect(names.length).toBeGreaterThan(0);
|
|
19
|
+
for (const name of names) {
|
|
20
|
+
const key = (name.startsWith("$") ? name : `$${name}`) as TokenName;
|
|
21
|
+
expect(tokenNumber(group, key), `${group} ${name}`).toBe(
|
|
22
|
+
Number(getTokenValue(key as Parameters<typeof getTokenValue>[0], group)),
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it("takes an integer name as a number, a negative one included", () => {
|
|
29
|
+
expect(tokenNumber("space", 4)).toBe(tokenNumber("space", "$4"));
|
|
30
|
+
expect(tokenNumber("size", 10)).toBe(tokenNumber("size", "$10"));
|
|
31
|
+
expect(tokenNumber("space", -2)).toBe(tokenNumber("space", "$-2"));
|
|
32
|
+
expect(tokenNumber("space", 4)).toBeGreaterThan(0);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it("returns undefined for a name the scale does not publish", () => {
|
|
36
|
+
expect(tokenNumber("space", 999)).toBeUndefined();
|
|
37
|
+
expect(tokenNumber("radius", "$nope")).toBeUndefined();
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("types every name as a number or a $ token, with no cast at the use site", () => {
|
|
41
|
+
expectTypeOf(tokenNumber).parameter(1).toEqualTypeOf<TokenName>();
|
|
42
|
+
expectTypeOf(tokenNumber).returns.toEqualTypeOf<number | undefined>();
|
|
43
|
+
expectTypeOf<4>().toMatchTypeOf<TokenName>();
|
|
44
|
+
expectTypeOf<"$true">().toMatchTypeOf<TokenName>();
|
|
45
|
+
expectTypeOf<"4px">().not.toMatchTypeOf<TokenName>();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getTokens } from "tamagui";
|
|
2
|
+
|
|
3
|
+
/** A published token name: `$4`, `$0.5`, `$-2`, `$true`, or its integer as a number. */
|
|
4
|
+
export type TokenName = number | `$${string}`;
|
|
5
|
+
|
|
6
|
+
export type NumericTokenGroup = "size" | "space" | "radius" | "zIndex";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The pixel value of a size, space, radius or zIndex token, typed over every
|
|
10
|
+
* name the scale publishes (integer names included), or undefined when the
|
|
11
|
+
* scale has no such token. Replaces `getTokenValue(name as …)` casts.
|
|
12
|
+
*/
|
|
13
|
+
export function tokenNumber(group: NumericTokenGroup, name: TokenName): number | undefined {
|
|
14
|
+
const key = typeof name === "number" ? `$${name}` : name;
|
|
15
|
+
const scale = getTokens()[group] as Record<string, { val?: unknown } | undefined>;
|
|
16
|
+
const value = (scale[key] ?? scale[key.slice(1)])?.val;
|
|
17
|
+
return typeof value === "number" ? value : undefined;
|
|
18
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createContext, useContext, useMemo
|
|
1
|
+
import { createContext, useContext, useMemo } from "react";
|
|
2
2
|
import { type SizeTokens, useThemeName } from "tamagui";
|
|
3
3
|
import { useTouchSurface } from "./useTouchSurface";
|
|
4
4
|
import { defaultKnobs, type Knobs } from "./knobs";
|
|
@@ -8,6 +8,7 @@ import { resolveKnobs } from "./resolveKnobs";
|
|
|
8
8
|
import { usePresetContext } from "./PresetContext";
|
|
9
9
|
import { defaultIntents } from "./intents";
|
|
10
10
|
import { clampSurfaceSize, SurfaceContext } from "./Surface";
|
|
11
|
+
import { usePrefersReducedMotion } from "./reducedMotion";
|
|
11
12
|
|
|
12
13
|
export const IntentContext = createContext<string | null>(null);
|
|
13
14
|
|
|
@@ -15,32 +16,6 @@ export function useIntentContext(): string | null {
|
|
|
15
16
|
return useContext(IntentContext);
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
const reducedMotionQuery = "(prefers-reduced-motion: reduce)";
|
|
19
|
-
const serverReducedMotion = () => false;
|
|
20
|
-
|
|
21
|
-
function readReducedMotion(): boolean {
|
|
22
|
-
return typeof window !== "undefined" && !!window.matchMedia?.(reducedMotionQuery).matches;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function subscribeReducedMotion(notify: () => void) {
|
|
26
|
-
if (typeof window === "undefined" || !window.matchMedia) return () => {};
|
|
27
|
-
const mq = window.matchMedia(reducedMotionQuery);
|
|
28
|
-
if (typeof mq.addEventListener === "function") {
|
|
29
|
-
mq.addEventListener("change", notify);
|
|
30
|
-
return () => mq.removeEventListener("change", notify);
|
|
31
|
-
}
|
|
32
|
-
if (typeof mq.addListener === "function") {
|
|
33
|
-
mq.addListener(notify);
|
|
34
|
-
return () => mq.removeListener?.(notify);
|
|
35
|
-
}
|
|
36
|
-
return () => {};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/** Adopt the OS motion preference after matching the server's initial markup. */
|
|
40
|
-
function usePrefersReducedMotion(): boolean {
|
|
41
|
-
return useSyncExternalStore(subscribeReducedMotion, readReducedMotion, serverReducedMotion);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
19
|
export interface UseResolvedKnobsOptions {
|
|
45
20
|
intent?: string;
|
|
46
21
|
component?: string;
|
package/types/index.gnome.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export { applyColorTheme, Preset } from "./theme/Preset";
|
|
|
20
20
|
export type { PresetProps } from "./theme/Preset";
|
|
21
21
|
export { clampSurfaceSize, compareSizeTokens, sizeTokenBelow, sizeTokenStep, sizeTokenStop, Surface, SurfaceContext, surfaceSizeRank, useBarSurface, useElevatedSurface, useFieldSurface, } from "./theme/Surface";
|
|
22
22
|
export type { SurfaceIntent, SurfaceSize } from "./theme/Surface";
|
|
23
|
-
export { controlTierDisabled, controlTierPaint, controlTierWash, isDarkThemeName, } from "./theme/controlTiers";
|
|
23
|
+
export { controlTierDisabled, controlTierPaint, controlTierWash, controlTrackFill, isDarkThemeName, } from "./theme/controlTiers";
|
|
24
24
|
export type { ControlTier, ControlTierPaint } from "./theme/controlTiers";
|
|
25
25
|
export { AlertDialogContent, AlertDialogOverlay, DialogContent, DialogOverlay, DialogRegionContext, DialogSheetFaceProvider, DialogShowFocus, overlayScrim, PopoverContent, sheetGrabber, sheetGrabberClearance, sheetGrabberZone, useDialogRegionContext, useDialogSheetFace, useIsInDialogRegion, } from "./theme/overlaySurfaces";
|
|
26
26
|
export type { DialogContentProps, DialogRegionContextValue } from "./theme/overlaySurfaces";
|
|
@@ -80,5 +80,6 @@ export type { ThemeSubset } from "./theme/subsetThemes";
|
|
|
80
80
|
export type { SizeKey } from "./theme/scale/scaleInputs";
|
|
81
81
|
export { listHeightForRows } from "./theme/listRows";
|
|
82
82
|
export { useTouchSurface } from "./theme/useTouchSurface";
|
|
83
|
+
export { tokenNumber } from "./theme/tokenNumber";
|
|
83
84
|
export type { GenericFonts, MediaQueryKey, ThemeName } from "@tamagui/web";
|
|
84
85
|
//# sourceMappingURL=index.gnome.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.gnome.d.ts","sourceRoot":"","sources":["../src/index.gnome.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.gnome.d.ts","sourceRoot":"","sources":["../src/index.gnome.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,WAAW,EACX,UAAU,GACX,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,aAAa,EACb,OAAO,EACP,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,cAAc,EACd,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,gCAAgC,EAChC,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,EACb,OAAO,EACP,cAAc,EACd,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAC7B,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,8BAA8B,EAC9B,WAAW,EACX,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,yBAAyB,EACzB,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,eAAe,IAAI,kBAAkB,EACrC,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvF,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
package/types/menuRow.d.ts
CHANGED
|
@@ -40,8 +40,8 @@ export declare const menuRowFrame: {
|
|
|
40
40
|
* The fill is a selection tint one step off the panel toward the ink, the way
|
|
41
41
|
* HIG lifts a selection off its material (FZ-8557, Round 40). Light rests on
|
|
42
42
|
* `$color3` over the white `$color1` panel, a tint and not the `$color4` slab.
|
|
43
|
-
* A dark overlay is `$
|
|
44
|
-
* lighter: a recessed `$color2` read as a hole in the panel. In a colour theme
|
|
43
|
+
* A dark overlay is `$color5` (the house `surface2`, FZ-8400), so dark rests on
|
|
44
|
+
* `$color6`, a step lighter: a recessed `$color2` read as a hole in the panel. In a colour theme
|
|
45
45
|
* both steps carry its hue. Hover and press keep the fill, so a checked row
|
|
46
46
|
* never drops to the transient hover fill. Spread it last on the row so it
|
|
47
47
|
* wins over the consumer's hover and keyboard-cursor fills; a consumer that
|
|
@@ -49,12 +49,12 @@ export declare const menuRowFrame: {
|
|
|
49
49
|
* the consumer's.
|
|
50
50
|
*/
|
|
51
51
|
export declare function menuRowChecked(scheme: ColorScheme): {
|
|
52
|
-
readonly backgroundColor: "$color3" | "$
|
|
52
|
+
readonly backgroundColor: "$color3" | "$color6";
|
|
53
53
|
readonly hoverStyle: {
|
|
54
|
-
readonly backgroundColor: "$color3" | "$
|
|
54
|
+
readonly backgroundColor: "$color3" | "$color6";
|
|
55
55
|
};
|
|
56
56
|
readonly pressStyle: {
|
|
57
|
-
readonly backgroundColor: "$color3" | "$
|
|
57
|
+
readonly backgroundColor: "$color3" | "$color6";
|
|
58
58
|
};
|
|
59
59
|
};
|
|
60
60
|
/** The check mark on a `menuRowChecked` row: the theme's accent (FZ-8557). */
|
|
@@ -24,6 +24,7 @@ export declare function resolveAccentOnSurface({ identity, accentSteps, surfaces
|
|
|
24
24
|
export declare const accentStepKeys: string[];
|
|
25
25
|
/** The identity candidates' keys for `themeName`: a tint's own ramp, else the accent ramp. */
|
|
26
26
|
export declare function identityKeys(themeName: string): string[];
|
|
27
|
+
export declare function pageSurfaces(name: string, values: Record<string, string>): (string | undefined)[];
|
|
27
28
|
/**
|
|
28
29
|
* FZ-9608. Every theme with the ink {@link useAccentOnSurface} picks inside it,
|
|
29
30
|
* as `accentOnSurface`. On web the hook then hands back `$accentOnSurface`, so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accentInk.d.ts","sourceRoot":"","sources":["../../src/theme/accentInk.ts"],"names":[],"mappings":"AAYA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5C;AAYD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAC3C,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACxC,MAAM,GAAG,SAAS,CAiBpB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,EACR,GAAG,GACJ,EAAE;IACD,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,MAAM,CAET;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,GAAG,GACJ,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC7C,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,MAAM,CAkBT;AAED,eAAO,MAAM,cAAc,UAAiE,CAAC;AAE7F,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAKxD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcxC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAaxC"}
|
|
1
|
+
{"version":3,"file":"accentInk.d.ts","sourceRoot":"","sources":["../../src/theme/accentInk.ts"],"names":[],"mappings":"AAYA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5C;AAYD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAC3C,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACxC,MAAM,GAAG,SAAS,CAiBpB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,EACR,GAAG,GACJ,EAAE;IACD,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,MAAM,CAET;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,GAAG,GACJ,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC7C,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,MAAM,CAkBT;AAED,eAAO,MAAM,cAAc,UAAiE,CAAC;AAE7F,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAKxD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAIjG;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcxC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAaxC"}
|
|
@@ -45,8 +45,8 @@ export interface ResolveChartPaletteInput {
|
|
|
45
45
|
/** Ordered alternatives when the identity cannot meet the mark contrast floor. */
|
|
46
46
|
identityCandidates?: readonly (string | undefined)[];
|
|
47
47
|
/**
|
|
48
|
-
* The active colour theme's page and Card fills (`$
|
|
49
|
-
*
|
|
48
|
+
* The active colour theme's page and Card fills (`$background` and the
|
|
49
|
+
* LC-151 card step, the same in every sub-theme of that colour). A
|
|
50
50
|
* tint's surfaces are deeper than the reference whites, so the identity
|
|
51
51
|
* must clear them too, and one palette serves a chart on the page or in a
|
|
52
52
|
* Card.
|
|
@@ -44,6 +44,15 @@ export declare const switchOffFillBand: {
|
|
|
44
44
|
};
|
|
45
45
|
/** A ground is light when its relative luminance is past the midpoint. */
|
|
46
46
|
export declare function isLightGround(ground: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* The ground an off Switch track is measured over (LC-172): the page in light,
|
|
49
|
+
* the `$color4` card or field in dark, where grouped layouts put a switch and
|
|
50
|
+
* where UISwitch composites its system fill over the cell (FZ-8400).
|
|
51
|
+
*/
|
|
52
|
+
export declare function switchOffGround(scope: {
|
|
53
|
+
background?: string;
|
|
54
|
+
color4?: string;
|
|
55
|
+
}): string | undefined;
|
|
47
56
|
/** HIG's system fill at `alpha` composited over `ground`, as an opaque hex colour. */
|
|
48
57
|
export declare function systemFillHex(ground: string, alpha: number): string | null;
|
|
49
58
|
/** HIG's system fill at `alpha` composited over `ground`, as relative luminance. */
|