@multiplatform.one/theme 7.82.0 → 7.82.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/theme",
3
- "version": "7.82.0",
3
+ "version": "7.82.2",
4
4
  "description": "Tamagui theme system for multiplatform.one",
5
5
  "keywords": [
6
6
  "multiplatform",
@@ -72,8 +72,8 @@
72
72
  "access": "public"
73
73
  },
74
74
  "dependencies": {
75
- "@multiplatform.one/platform": "^7.82.0",
76
- "@multiplatform.one/store": "^7.82.0",
75
+ "@multiplatform.one/platform": "^7.82.2",
76
+ "@multiplatform.one/store": "^7.82.2",
77
77
  "@tamagui/animations-react-native": "2.7.6",
78
78
  "@tamagui/colors": "2.7.6",
79
79
  "@tamagui/config": "2.7.6",
@@ -89,8 +89,8 @@
89
89
  },
90
90
  "devDependencies": {
91
91
  "@expo/prebuild-config": "55.0.18",
92
- "@multiplatform.one/config": "7.82.0",
93
- "@multiplatform.one/test-utils": "7.82.0",
92
+ "@multiplatform.one/config": "7.82.2",
93
+ "@multiplatform.one/test-utils": "7.82.2",
94
94
  "@tamagui/animations-css": "2.7.6",
95
95
  "@tamagui/animations-reanimated": "2.7.6",
96
96
  "@tamagui/font-inter": "2.7.6",
@@ -57,7 +57,7 @@ describe("LC-148 HAIRLINE-TOKEN: borderWidth small is the theme's hairline", ()
57
57
  });
58
58
 
59
59
  it("every other stop keeps the theme's own edge colour", () => {
60
- for (const borderWidth of ["none", "medium", "large"] as const) {
60
+ for (const borderWidth of ["medium", "large"] as const) {
61
61
  expect(edges({ borderWidth })).toEqual({
62
62
  borderRadius: "$borderColor",
63
63
  surface: "$borderColor",
@@ -68,6 +68,16 @@ describe("LC-148 HAIRLINE-TOKEN: borderWidth small is the theme's hairline", ()
68
68
  }
69
69
  });
70
70
 
71
+ it("an overlay floored to the hairline at none paints the small stop's colour (LC-85)", () => {
72
+ expect(edges({ borderWidth: "none" })).toEqual({
73
+ borderRadius: "$borderColor",
74
+ surface: "$borderColor",
75
+ controlBorderOutlined: "$borderColor",
76
+ elevatedSurface: "$borderColorHairline",
77
+ });
78
+ expect(edges({ borderWidth: "none" }, "dark").elevatedSurface).toBe("transparent");
79
+ });
80
+
71
81
  it("a component's own edge colour takes the same step at small, and only there (FZ-7797)", () => {
72
82
  expect(edgeColorAt("$borderColor", "small")).toBe("$borderColorHairline");
73
83
  expect(edgeColorAt("$color6", "small")).toBe("$color5");
@@ -743,15 +743,16 @@ describe("resolveKnobs", () => {
743
743
  expect(flat.borderWidth).toBe(hairlineBorderWidth);
744
744
  });
745
745
 
746
- it("cardSurface edge follows borderWidth none (Axiom 3) and stays a hairline otherwise", () => {
747
- expect(
748
- resolveKnobs(knobsWith({ borderWidth: "none" })).knobProps.cardSurface.borderWidth,
749
- ).toBe(0);
750
- for (const borderWidth of ["small", "medium", "large"] as const) {
751
- expect(resolveKnobs(knobsWith({ borderWidth })).knobProps.cardSurface.borderWidth).toBe(
752
- hairlineBorderWidth,
753
- );
746
+ it("cardSurface edge is 0 at none, the hairline at small and medium, the stop at large", () => {
747
+ const card = (borderWidth: Knobs["borderWidth"]) =>
748
+ resolveKnobs(knobsWith({ borderWidth })).knobProps.cardSurface;
749
+ expect(card("none").borderWidth).toBe(0);
750
+ for (const borderWidth of ["small", "medium"] as const) {
751
+ expect(card(borderWidth).borderWidth).toBe(hairlineBorderWidth);
752
+ expect(card(borderWidth).borderColor).toBe("$borderColorHairline");
754
753
  }
754
+ expect(card("large").borderWidth).toBe(2);
755
+ expect(card("large").borderColor).toBe("$borderColor");
755
756
  });
756
757
 
757
758
  it("cardSurface tracks the borderRadius knob (cap bites at full: 44px > the 16px panelPadding)", () => {
@@ -1087,7 +1088,7 @@ describe("resolveKnobs", () => {
1087
1088
  "light",
1088
1089
  );
1089
1090
  expect(light.knobProps.elevatedSurface.borderWidth).toBe(hairlineBorderWidth);
1090
- expect(light.knobProps.elevatedSurface.borderColor).toBe("$borderColor");
1091
+ expect(light.knobProps.elevatedSurface.borderColor).toBe("$borderColorHairline");
1091
1092
  const dark = resolveKnobs(
1092
1093
  knobsWith({ fillStyle: "filled", borderWidth: "none" }),
1093
1094
  undefined,
@@ -707,6 +707,11 @@ export function resolveKnobs(
707
707
  const overlayElevationToken = overlayElevationMap[knobs.elevation];
708
708
  const overlayPaintProps = elevationPaint(overlayElevationToken);
709
709
  const overlayEdgeWidth = Math.max(borderWidthValue, borderWidthMap.small);
710
+ // LC-85's floor is the small stop, so the floored edge takes its colour too.
711
+ const overlayEdge = (color: string) =>
712
+ (smallEdge || knobs.borderWidth === "none") && overlayEdgeWidth >= borderWidthMap.medium
713
+ ? fainterEdge(color)
714
+ : color;
710
715
  const elevationChrome = elevationChromeFor(elevationToken);
711
716
  const textAccentColor = textAccentColorMap[knobs.textAccent] ?? "$color";
712
717
  // One input surface (DF-19 / Axiom 5 ONE SOURCE): Timeline's composer,
@@ -790,8 +795,14 @@ export function resolveKnobs(
790
795
  }
791
796
  : {
792
797
  backgroundColor: "$background",
793
- borderColor: edgeColorAt("$borderColor", "small"),
794
- borderWidth: knobs.borderWidth === "none" ? 0 : borderWidthMap.small,
798
+ borderColor:
799
+ knobs.borderWidth === "large" ? "$borderColor" : edgeColorAt("$borderColor", "small"),
800
+ borderWidth:
801
+ knobs.borderWidth === "none"
802
+ ? 0
803
+ : knobs.borderWidth === "large"
804
+ ? borderWidthMap.large
805
+ : borderWidthMap.small,
795
806
  borderRadius: containerRadiusValue,
796
807
  padding: paddingToken,
797
808
  ...cardLiftFor(cardElevationMap[knobs.elevation], scheme),
@@ -800,8 +811,8 @@ export function resolveKnobs(
800
811
  elevatedSurface: painted
801
812
  ? {
802
813
  backgroundColor: "$background",
803
- borderColor: edge("$borderColor", Math.max(borderWidthValue, borderWidthMap.small)),
804
- borderWidth: Math.max(borderWidthValue, borderWidthMap.small),
814
+ borderColor: overlayEdge("$borderColor"),
815
+ borderWidth: overlayEdgeWidth,
805
816
  borderRadius: radiusToken,
806
817
  elevation: undefined,
807
818
  ...scaleSmoothing,
@@ -810,7 +821,7 @@ export function resolveKnobs(
810
821
  backgroundColor: scheme === "dark" ? surface2.fill : "$background",
811
822
  // Light: an overlay fills the page's own white, so it always keeps at
812
823
  // least the hairline, even on a chromeless preset (FZ-8116).
813
- borderColor: scheme === "dark" ? "transparent" : edge("$borderColor", overlayEdgeWidth),
824
+ borderColor: scheme === "dark" ? "transparent" : overlayEdge("$borderColor"),
814
825
  // Dark draws no edge at all: on iOS a transparent border on a sheet
815
826
  // mounted under a light OS painted the light $borderColor (FZ-8116).
816
827
  borderWidth: scheme === "dark" ? 0 : overlayEdgeWidth,
@@ -1 +1 @@
1
- {"version":3,"file":"resolveKnobs.d.ts","sourceRoot":"","sources":["../../src/theme/resolveKnobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveKnobs.d.ts","sourceRoot":"","sources":["../../src/theme/resolveKnobs.ts"],"names":[],"mappings":"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"}