@multiplatform.one/theme 7.90.0 → 7.90.2
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/figma/figmaTokens.cjs +1 -1
- package/dist/cjs/figma/figmaTokens.native.js +1 -1
- package/dist/cjs/figma/figmaTokens.native.js.map +1 -1
- package/dist/cjs/theme/createThemes.cjs +49 -40
- package/dist/cjs/theme/createThemes.native.js +72 -68
- package/dist/cjs/theme/createThemes.native.js.map +1 -1
- package/dist/esm/figma/figmaTokens.mjs +1 -1
- package/dist/esm/figma/figmaTokens.mjs.map +1 -1
- package/dist/esm/figma/figmaTokens.native.js +1 -1
- package/dist/esm/figma/figmaTokens.native.js.map +1 -1
- package/dist/esm/theme/createThemes.mjs +49 -40
- package/dist/esm/theme/createThemes.mjs.map +1 -1
- package/dist/esm/theme/createThemes.native.js +72 -68
- package/dist/esm/theme/createThemes.native.js.map +1 -1
- package/package.json +5 -5
- package/src/figma/figmaTokens.ts +1 -1
- package/src/theme/Tint.stories.tsx +2 -2
- package/src/theme/createThemes.ts +58 -31
- package/types/theme/createThemes.d.ts.map +1 -1
|
@@ -859,6 +859,60 @@ const houseAccentKeys = [
|
|
|
859
859
|
"selectedColor",
|
|
860
860
|
] as const;
|
|
861
861
|
|
|
862
|
+
type HouseAccent = {
|
|
863
|
+
accent: Record<(typeof houseAccentKeys)[number], string>;
|
|
864
|
+
accentSteps: Record<string, string>;
|
|
865
|
+
};
|
|
866
|
+
|
|
867
|
+
function isFullRamp(steps: (string | undefined)[]): steps is string[] {
|
|
868
|
+
return !steps.includes(undefined);
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
function houseAccentOf(
|
|
872
|
+
base: Record<string, string>,
|
|
873
|
+
blue: Record<string, string>,
|
|
874
|
+
): HouseAccent | null {
|
|
875
|
+
const steps = Array.from({ length: 12 }, (_, index) => base[`accent${index + 1}`]);
|
|
876
|
+
if (!isAchromaticRamp(steps)) return null;
|
|
877
|
+
const ramp: (string | undefined)[] = Array.from(
|
|
878
|
+
{ length: 12 },
|
|
879
|
+
(_, index) => base[`blue${index + 1}`] || undefined,
|
|
880
|
+
);
|
|
881
|
+
const surfaces = [base.color1, base.color2, base.color3, base.color4].map(luminanceOf);
|
|
882
|
+
if (!isFullRamp(ramp) || surfaces.includes(null)) return null;
|
|
883
|
+
const holdsInk = (lum: number) =>
|
|
884
|
+
surfaces.every((surface) => contrastRatio(lum, surface as number) >= aaTextContrastRatio);
|
|
885
|
+
return {
|
|
886
|
+
accent: {
|
|
887
|
+
accentBackground: blue.accentBackground,
|
|
888
|
+
accentColor:
|
|
889
|
+
walkToHoldingInk(ramp[10], ramp[11], holdsInk) ??
|
|
890
|
+
nearestHoldingStep(ramp[10], ramp, holdsInk),
|
|
891
|
+
selectedBackground: blue.selectedBackground,
|
|
892
|
+
selectedColor: blue.selectedColor,
|
|
893
|
+
},
|
|
894
|
+
accentSteps: Object.fromEntries(ramp.map((step, index) => [`accent${index + 1}`, step])),
|
|
895
|
+
};
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
function heldTheme(
|
|
899
|
+
name: string,
|
|
900
|
+
theme: Record<string, string>,
|
|
901
|
+
scheme: "light" | "dark",
|
|
902
|
+
base: Record<string, string>,
|
|
903
|
+
solid: Record<string, string>,
|
|
904
|
+
{ accent, accentSteps }: HouseAccent,
|
|
905
|
+
): Record<string, string> | null {
|
|
906
|
+
if (name === scheme) return { ...theme, ...accent, ...accentSteps };
|
|
907
|
+
const [, scope] = name.split("_");
|
|
908
|
+
if (!name.startsWith(`${scheme}_`) || (childrenHues as readonly string[]).includes(scope))
|
|
909
|
+
return null;
|
|
910
|
+
if (scope === "accent") return { ...solid };
|
|
911
|
+
const followed = houseAccentKeys.filter((key) => key in theme && theme[key] === base[key]);
|
|
912
|
+
if (followed.length === 0) return null;
|
|
913
|
+
return { ...theme, ...Object.fromEntries(followed.map((key) => [key, accent[key]])) };
|
|
914
|
+
}
|
|
915
|
+
|
|
862
916
|
/**
|
|
863
917
|
* FZ-10073 (Clay, rv_4ef347aae208f200: "Neutral gray"). The house look is the
|
|
864
918
|
* scheme root: v5's grey page and white cards (LC-151) under Apple's system
|
|
@@ -879,38 +933,11 @@ function holdHouseAccent(
|
|
|
879
933
|
const blue = themes[`${scheme}_blue`];
|
|
880
934
|
const solid = themes[`${scheme}_blue_accent`];
|
|
881
935
|
if (!base || !blue || !solid) continue;
|
|
882
|
-
const
|
|
883
|
-
if (!
|
|
884
|
-
const ramp = Array.from({ length: 12 }, (_, index) => base[`blue${index + 1}`]);
|
|
885
|
-
const surfaces = [base.color1, base.color2, base.color3, base.color4].map(luminanceOf);
|
|
886
|
-
if (ramp.some((step) => !step) || surfaces.some((lum) => lum === null)) continue;
|
|
887
|
-
const holdsInk = (lum: number) =>
|
|
888
|
-
surfaces.every((surface) => contrastRatio(lum, surface as number) >= aaTextContrastRatio);
|
|
889
|
-
const accent: Record<(typeof houseAccentKeys)[number], string> = {
|
|
890
|
-
accentBackground: blue.accentBackground,
|
|
891
|
-
accentColor:
|
|
892
|
-
walkToHoldingInk(ramp[10], ramp[11], holdsInk) ??
|
|
893
|
-
nearestHoldingStep(ramp[10], ramp, holdsInk),
|
|
894
|
-
selectedBackground: blue.selectedBackground,
|
|
895
|
-
selectedColor: blue.selectedColor,
|
|
896
|
-
};
|
|
897
|
-
const accentSteps = Object.fromEntries(ramp.map((step, index) => [`accent${index + 1}`, step]));
|
|
936
|
+
const house = houseAccentOf(base, blue);
|
|
937
|
+
if (!house) continue;
|
|
898
938
|
for (const [name, theme] of Object.entries(themes)) {
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
continue;
|
|
902
|
-
}
|
|
903
|
-
const [, scope] = name.split("_");
|
|
904
|
-
if (!name.startsWith(`${scheme}_`) || (childrenHues as readonly string[]).includes(scope))
|
|
905
|
-
continue;
|
|
906
|
-
if (scope === "accent") {
|
|
907
|
-
out[name] = { ...solid };
|
|
908
|
-
continue;
|
|
909
|
-
}
|
|
910
|
-
const followed = houseAccentKeys.filter((key) => key in theme && theme[key] === base[key]);
|
|
911
|
-
if (followed.length > 0) {
|
|
912
|
-
out[name] = { ...theme, ...Object.fromEntries(followed.map((key) => [key, accent[key]])) };
|
|
913
|
-
}
|
|
939
|
+
const held = heldTheme(name, theme, scheme, base, solid, house);
|
|
940
|
+
if (held) out[name] = held;
|
|
914
941
|
}
|
|
915
942
|
}
|
|
916
943
|
return out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createThemes.d.ts","sourceRoot":"","sources":["../../src/theme/createThemes.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,IAAI,mBAAmB,EACpC,MAAM,wBAAwB,CAAC;AAsBhC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,CAAC;AAqDxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG1B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAevB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;;CAI3B,CAAC;AAEX,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,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/E,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACvF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACzF;
|
|
1
|
+
{"version":3,"file":"createThemes.d.ts","sourceRoot":"","sources":["../../src/theme/createThemes.ts"],"names":[],"mappings":"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"}
|