@titan-design/react-ui 0.9.3 → 0.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/dist/bodymap.js +78 -24
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +78 -24
- package/dist/bodymap.mjs.map +1 -1
- package/dist/index.d.mts +31 -8
- package/dist/index.d.ts +31 -8
- package/dist/index.js +214 -113
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +210 -114
- package/dist/index.mjs.map +1 -1
- package/dist/pages.js +214 -157
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +214 -157
- package/dist/pages.mjs.map +1 -1
- package/dist/theme/index.d.mts +129 -34
- package/dist/theme/index.d.ts +129 -34
- package/dist/theme/index.js +95 -19
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +92 -20
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/tokens-css.js +88 -24
- package/dist/theme/tokens-css.js.map +1 -1
- package/dist/theme/tokens-css.mjs +88 -24
- package/dist/theme/tokens-css.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/custom/Workout/BaseBadge.tsx +5 -5
- package/src/components/custom/Workout/RowInventory.stories.tsx +5 -2
- package/src/components/custom/Workout/S3FullRail.stories.tsx +13 -1
- package/src/components/custom/Workout/SessionHeader.tsx +2 -2
- package/src/components/custom/Workout/SessionRail.stories.tsx +4 -1
- package/src/components/custom/Workout/SessionRail.tsx +5 -5
- package/src/components/custom/Workout/SupersetWrapper.stories.tsx +16 -25
- package/src/components/custom/Workout/SupersetWrapper.tsx +1 -1
- package/src/components/custom/Workout/TempoDisplay.tsx +3 -7
- package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +4 -1
- package/src/components/custom/Workout/WorkoutPill.tsx +2 -2
- package/src/components/ui/surface/Surface.stories.tsx +195 -1
- package/src/components/ui/surface/Surface.test.tsx +148 -9
- package/src/components/ui/surface/Surface.tsx +37 -9
- package/src/components/ui/surface/SurfaceContext.ts +48 -8
- package/src/components/ui/surface/index.ts +1 -0
- package/src/components/ui/surface/surface.contract.test.ts +283 -0
- package/src/theme/ColorSystem.stories.tsx +232 -47
- package/src/theme/config.ts +12 -0
- package/src/theme/elevation.ts +90 -67
- package/src/theme/global.css +35 -9
- package/src/theme/tokens/primitives.ts +40 -0
- package/src/theme/tokens/semantic.ts +63 -14
- package/tailwind.config.js +8 -0
package/dist/index.js
CHANGED
|
@@ -339,6 +339,21 @@ var primitiveColors = {
|
|
|
339
339
|
black: "#000000",
|
|
340
340
|
transparent: "transparent"
|
|
341
341
|
};
|
|
342
|
+
var surfaceRampDark = {
|
|
343
|
+
inset: "#13100D",
|
|
344
|
+
// L*4.5 — sub-shell well / pressed
|
|
345
|
+
background: "#1C1916",
|
|
346
|
+
// L*9 — shell / frame
|
|
347
|
+
base: "#252321",
|
|
348
|
+
// L*13.5 — main content plane
|
|
349
|
+
elevated: "#2C2A28",
|
|
350
|
+
// L*17 — nav / rail
|
|
351
|
+
raised: "#31302F",
|
|
352
|
+
// L*20 — cards
|
|
353
|
+
overlay: "#373635"
|
|
354
|
+
// L*22.5 — hero / popover
|
|
355
|
+
};
|
|
356
|
+
var backgroundFrameDark = "#100D0A";
|
|
342
357
|
var primitiveRamps = {
|
|
343
358
|
red: {
|
|
344
359
|
50: "#FFF4F4",
|
|
@@ -806,10 +821,19 @@ var semanticColorsLight = {
|
|
|
806
821
|
"surface-overlay": primitiveColors.white,
|
|
807
822
|
"surface-input": primitiveColors.neutral[50],
|
|
808
823
|
// Input field background (filled variant)
|
|
824
|
+
// Deepest pressed pit (TD-surface-tokens, S-3) — light-mode counterpart of
|
|
825
|
+
// the dark ramp's `inset` plane; a placeholder pairing, not part of the
|
|
826
|
+
// dark-ramp investigation (surface.contract.test.ts is dark-mode only).
|
|
827
|
+
"surface-inset": primitiveColors.neutral[300],
|
|
809
828
|
// Background colors (background-*)
|
|
810
829
|
"background-base": "#EBEBEB",
|
|
811
830
|
"background-default": primitiveColors.white,
|
|
812
831
|
"background-subtle": primitiveColors.neutral[50],
|
|
832
|
+
// Frame/bezel chrome (TD-surface-tokens, S-3) — top bar + side nav shell,
|
|
833
|
+
// one step below `background-base` (darker still than `surface-inset`
|
|
834
|
+
// above, mirroring the dark-mode ordering). Placeholder pairing for light
|
|
835
|
+
// mode (see dark-mode note on `surface-inset` above).
|
|
836
|
+
"background-frame": primitiveColors.neutral[400],
|
|
813
837
|
// Border colors (border-*)
|
|
814
838
|
"border-default": "#E8E9EB",
|
|
815
839
|
"border-subtle": primitiveColors.neutral[100],
|
|
@@ -825,6 +849,11 @@ var semanticColorsLight = {
|
|
|
825
849
|
// Input field border on focus
|
|
826
850
|
"border-input-error": primitiveColors.red[600],
|
|
827
851
|
// Input field border on error
|
|
852
|
+
// Alpha hairline separators (surface-independent — composite toward black on
|
|
853
|
+
// light surfaces, mirroring the dark-mode white-alpha family). See §4/S-2.
|
|
854
|
+
"hairline-subtle": "rgba(0, 0, 0, 0.06)",
|
|
855
|
+
"hairline-default": "rgba(0, 0, 0, 0.09)",
|
|
856
|
+
"hairline-strong": "rgba(0, 0, 0, 0.14)",
|
|
828
857
|
// Interactive states (interactive-*)
|
|
829
858
|
"interactive-hover": "rgba(55, 65, 81, 0.04)",
|
|
830
859
|
"interactive-focus": "rgba(55, 65, 81, 0.12)",
|
|
@@ -917,25 +946,46 @@ var semanticColorsDark = {
|
|
|
917
946
|
"text-inverse": primitiveColors.neutral[900],
|
|
918
947
|
"text-link": "#828DF8",
|
|
919
948
|
"text-link-hover": primitiveColors.blue[400],
|
|
920
|
-
// Surface colors - dark backgrounds
|
|
921
|
-
|
|
922
|
-
//
|
|
923
|
-
|
|
924
|
-
//
|
|
925
|
-
|
|
926
|
-
//
|
|
927
|
-
|
|
928
|
-
//
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
//
|
|
932
|
-
"
|
|
933
|
-
//
|
|
934
|
-
"
|
|
935
|
-
//
|
|
936
|
-
"
|
|
937
|
-
//
|
|
938
|
-
|
|
949
|
+
// Surface colors - dark backgrounds — warm-tapered DERIVED ramp (TD-surface-tokens,
|
|
950
|
+
// S-1, re-spaced S-3). Shipped verbatim from `deriveSurfaceRamp()` — see
|
|
951
|
+
// `surfaceRampDark` in primitives.ts for the full derivation note. `surface-overlay`
|
|
952
|
+
// and `surface-elevated` are distinct (were both #191919 pre-S-1); `surface-input`
|
|
953
|
+
// tracks one plane above `surface-base`, same relative position as before the remap.
|
|
954
|
+
// `background-base` backs `Surface level="background"` (SurfaceContext.SURFACE_LEVEL_TOKEN),
|
|
955
|
+
// so it takes the ramp's `background` (shell/frame) role, NOT `inset`. The ramp's
|
|
956
|
+
// deepest `inset` plane is now promoted to `surface-inset` below (S-3) — still no
|
|
957
|
+
// `SurfaceLevel` member for it (follow-up, alongside the elevation.ts -1/-2 pressed
|
|
958
|
+
// levels — parallel workstream, not this branch).
|
|
959
|
+
"surface-base": surfaceRampDark.base,
|
|
960
|
+
// main surface (#252321, L*13.5)
|
|
961
|
+
"surface-elevated": surfaceRampDark.elevated,
|
|
962
|
+
// elevated surface (#2C2A28, L*17 — nav/rail)
|
|
963
|
+
"surface-raised": surfaceRampDark.raised,
|
|
964
|
+
// raised surface (#31302F, L*20 — cards)
|
|
965
|
+
"surface-overlay": surfaceRampDark.overlay,
|
|
966
|
+
// overlay surface (#373635, L*22.5 — hero/popover)
|
|
967
|
+
"surface-input": surfaceRampDark.elevated,
|
|
968
|
+
// input surface (#2C2A28 — one plane above base)
|
|
969
|
+
"surface-inset": surfaceRampDark.inset,
|
|
970
|
+
// deepest pressed pit (#13100D, L*4.5 — sub-shell well)
|
|
971
|
+
// Background colors — same ramp, the frame/shell end of it.
|
|
972
|
+
"background-base": surfaceRampDark.background,
|
|
973
|
+
// shell / frame (#1C1916, L*9 — Surface level="background")
|
|
974
|
+
"background-default": surfaceRampDark.base,
|
|
975
|
+
// main background (#252321, L*13.5 — matches surface-base)
|
|
976
|
+
"background-subtle": surfaceRampDark.elevated,
|
|
977
|
+
// subtle background (#2C2A28, L*17 — matches surface-elevated)
|
|
978
|
+
// Frame/bezel chrome (S-3) — the top bar + side nav shell; one step BELOW
|
|
979
|
+
// `background-base`, darker even than `surface-inset` — it exits the content
|
|
980
|
+
// ramp entirely rather than sitting in it. See `backgroundFrameDark` in
|
|
981
|
+
// primitives.ts.
|
|
982
|
+
"background-frame": backgroundFrameDark,
|
|
983
|
+
// frame / bezel (#100D0A, L*3.79)
|
|
984
|
+
// Border colors — `border-subtle` (#1C1C1C) previously collided with
|
|
985
|
+
// `surface-raised` (also #1C1C1C, an invisible border on raised cards). The
|
|
986
|
+
// re-spaced ramp above moved `surface-raised` to #2D2C2B, so this value is now
|
|
987
|
+
// distinct from every surface hex without needing to change it — see
|
|
988
|
+
// `surface.contract.test.ts` R2/R4.
|
|
939
989
|
"border-default": primitiveColors.charcoal[400],
|
|
940
990
|
// default border
|
|
941
991
|
"border-subtle": primitiveColors.charcoal[500],
|
|
@@ -949,6 +999,14 @@ var semanticColorsDark = {
|
|
|
949
999
|
"border-input-hover": primitiveColors.neutral[500],
|
|
950
1000
|
"border-input-focus": "#828DF8",
|
|
951
1001
|
"border-input-error": primitiveColors.red[500],
|
|
1002
|
+
// Alpha hairline separators — the primary separation cue (§4/S-2). Self-
|
|
1003
|
+
// normalizing: composites toward white by ~the same amount on ANY plane, so
|
|
1004
|
+
// one family works at every elevation instead of per-surface border tokens.
|
|
1005
|
+
// Shadows are demoted to floating-overlay use only (not shipped as a fill
|
|
1006
|
+
// separator here — see elevation.ts, follow-up S-4).
|
|
1007
|
+
"hairline-subtle": "rgba(255, 255, 255, 0.06)",
|
|
1008
|
+
"hairline-default": "rgba(255, 255, 255, 0.09)",
|
|
1009
|
+
"hairline-strong": "rgba(255, 255, 255, 0.14)",
|
|
952
1010
|
// Interactive states
|
|
953
1011
|
"interactive-hover": "rgba(255, 255, 255, 0.04)",
|
|
954
1012
|
"interactive-focus": "rgba(255, 255, 255, 0.12)",
|
|
@@ -1478,9 +1536,11 @@ var lightThemeCSSVars = {
|
|
|
1478
1536
|
"--color-surface-base": semanticColorsLight["surface-base"],
|
|
1479
1537
|
"--color-surface-elevated": semanticColorsLight["surface-elevated"],
|
|
1480
1538
|
"--color-surface-raised": semanticColorsLight["surface-raised"],
|
|
1539
|
+
"--color-surface-inset": semanticColorsLight["surface-inset"],
|
|
1481
1540
|
"--color-background-base": semanticColorsLight["background-base"],
|
|
1482
1541
|
"--color-background-default": semanticColorsLight["background-default"],
|
|
1483
1542
|
"--color-background-subtle": semanticColorsLight["background-subtle"],
|
|
1543
|
+
"--color-background-frame": semanticColorsLight["background-frame"],
|
|
1484
1544
|
"--color-border-default": semanticColorsLight["border-default"],
|
|
1485
1545
|
"--color-border-subtle": semanticColorsLight["border-subtle"],
|
|
1486
1546
|
"--color-border-strong": semanticColorsLight["border-strong"],
|
|
@@ -1537,6 +1597,9 @@ var lightThemeCSSVars = {
|
|
|
1537
1597
|
"--color-border-input-hover": semanticColorsLight["border-input-hover"],
|
|
1538
1598
|
"--color-border-input-focus": semanticColorsLight["border-input-focus"],
|
|
1539
1599
|
"--color-border-input-error": semanticColorsLight["border-input-error"],
|
|
1600
|
+
"--color-hairline-subtle": semanticColorsLight["hairline-subtle"],
|
|
1601
|
+
"--color-hairline-default": semanticColorsLight["hairline-default"],
|
|
1602
|
+
"--color-hairline-strong": semanticColorsLight["hairline-strong"],
|
|
1540
1603
|
"--color-interactive-disabled-text": semanticColorsLight["interactive-disabled-text"],
|
|
1541
1604
|
"--color-avatar-background": semanticColorsLight["avatar-background"],
|
|
1542
1605
|
"--color-avatar-text": semanticColorsLight["avatar-text"],
|
|
@@ -1576,9 +1639,11 @@ var darkThemeCSSVars = {
|
|
|
1576
1639
|
"--color-surface-base": semanticColorsDark["surface-base"],
|
|
1577
1640
|
"--color-surface-elevated": semanticColorsDark["surface-elevated"],
|
|
1578
1641
|
"--color-surface-raised": semanticColorsDark["surface-raised"],
|
|
1642
|
+
"--color-surface-inset": semanticColorsDark["surface-inset"],
|
|
1579
1643
|
"--color-background-base": semanticColorsDark["background-base"],
|
|
1580
1644
|
"--color-background-default": semanticColorsDark["background-default"],
|
|
1581
1645
|
"--color-background-subtle": semanticColorsDark["background-subtle"],
|
|
1646
|
+
"--color-background-frame": semanticColorsDark["background-frame"],
|
|
1582
1647
|
"--color-border-default": semanticColorsDark["border-default"],
|
|
1583
1648
|
"--color-border-subtle": semanticColorsDark["border-subtle"],
|
|
1584
1649
|
"--color-border-strong": semanticColorsDark["border-strong"],
|
|
@@ -1635,6 +1700,9 @@ var darkThemeCSSVars = {
|
|
|
1635
1700
|
"--color-border-input-hover": semanticColorsDark["border-input-hover"],
|
|
1636
1701
|
"--color-border-input-focus": semanticColorsDark["border-input-focus"],
|
|
1637
1702
|
"--color-border-input-error": semanticColorsDark["border-input-error"],
|
|
1703
|
+
"--color-hairline-subtle": semanticColorsDark["hairline-subtle"],
|
|
1704
|
+
"--color-hairline-default": semanticColorsDark["hairline-default"],
|
|
1705
|
+
"--color-hairline-strong": semanticColorsDark["hairline-strong"],
|
|
1638
1706
|
"--color-interactive-disabled-text": semanticColorsDark["interactive-disabled-text"],
|
|
1639
1707
|
"--color-avatar-background": semanticColorsDark["avatar-background"],
|
|
1640
1708
|
"--color-avatar-text": semanticColorsDark["avatar-text"],
|
|
@@ -2269,6 +2337,10 @@ function getElevationShadow(baseColor, level, theme, isHovered = false) {
|
|
|
2269
2337
|
elevationShadowCache.set(cacheKey, result);
|
|
2270
2338
|
return result;
|
|
2271
2339
|
}
|
|
2340
|
+
var PRESSED_ELEVATION_LEVEL = -1;
|
|
2341
|
+
function getPressedRecessShadow(fillColor, theme) {
|
|
2342
|
+
return getElevationShadow(fillColor, PRESSED_ELEVATION_LEVEL, theme);
|
|
2343
|
+
}
|
|
2272
2344
|
function getBaseSurfaceColor(theme) {
|
|
2273
2345
|
return theme === "light" ? semanticColorsLight["surface-raised"] : semanticColorsDark["surface-elevated"];
|
|
2274
2346
|
}
|
|
@@ -2571,6 +2643,7 @@ var SURFACE_LEVEL_TOKEN = {
|
|
|
2571
2643
|
raised: "surface-raised",
|
|
2572
2644
|
overlay: "surface-overlay"
|
|
2573
2645
|
};
|
|
2646
|
+
var PRESSED_RAMP = ["inset", "background", "base", "elevated", "raised", "overlay"];
|
|
2574
2647
|
var ON_SURFACE_TOKEN = {
|
|
2575
2648
|
primary: "text-primary",
|
|
2576
2649
|
secondary: "text-secondary",
|
|
@@ -2595,9 +2668,19 @@ function onSurfaceColors(mode) {
|
|
|
2595
2668
|
function useOnSurfaceColor(role = "primary") {
|
|
2596
2669
|
return getSemanticColors(useSurfaceMode())[ON_SURFACE_TOKEN[role]];
|
|
2597
2670
|
}
|
|
2671
|
+
function insetFloor(mode) {
|
|
2672
|
+
const colors = getSemanticColors(mode);
|
|
2673
|
+
return colors["surface-inset"] ?? surfaceRampDark.inset;
|
|
2674
|
+
}
|
|
2598
2675
|
function surfaceBackground(level, mode) {
|
|
2676
|
+
if (level === "inset") return insetFloor(mode);
|
|
2599
2677
|
return getSemanticColors(mode)[SURFACE_LEVEL_TOKEN[level]];
|
|
2600
2678
|
}
|
|
2679
|
+
function pressedLevel(parent) {
|
|
2680
|
+
const index = PRESSED_RAMP.indexOf(parent);
|
|
2681
|
+
const down = Math.max(0, index - 1);
|
|
2682
|
+
return PRESSED_RAMP[down];
|
|
2683
|
+
}
|
|
2601
2684
|
function getTheme() {
|
|
2602
2685
|
if (typeof document === "undefined") return "dark";
|
|
2603
2686
|
return document.documentElement.classList.contains("light") ? "light" : "dark";
|
|
@@ -5296,7 +5379,7 @@ function ToastProvider({
|
|
|
5296
5379
|
return id;
|
|
5297
5380
|
}, [defaultDuration, maxToasts]);
|
|
5298
5381
|
const removeToast = React25.useCallback((id) => {
|
|
5299
|
-
setToasts((prev) => prev.filter((
|
|
5382
|
+
setToasts((prev) => prev.filter((t17) => t17.id !== id));
|
|
5300
5383
|
}, []);
|
|
5301
5384
|
const removeAllToasts = React25.useCallback(() => {
|
|
5302
5385
|
setToasts([]);
|
|
@@ -6049,6 +6132,7 @@ function IconBox({
|
|
|
6049
6132
|
function Surface({
|
|
6050
6133
|
elevation = 0,
|
|
6051
6134
|
level,
|
|
6135
|
+
pressed = false,
|
|
6052
6136
|
glowColor,
|
|
6053
6137
|
glowIntensity,
|
|
6054
6138
|
theme,
|
|
@@ -6062,13 +6146,24 @@ function Surface({
|
|
|
6062
6146
|
const mode = theme ?? inherited.mode;
|
|
6063
6147
|
const isPlane = level != null;
|
|
6064
6148
|
const baseColor = getBaseSurfaceColor(mode);
|
|
6065
|
-
const
|
|
6066
|
-
|
|
6149
|
+
const resolvedLevel = pressed ? pressedLevel(inherited.level) : level ?? inherited.level;
|
|
6150
|
+
let backgroundColor;
|
|
6151
|
+
let shadowStyle;
|
|
6152
|
+
if (pressed) {
|
|
6153
|
+
backgroundColor = surfaceBackground(resolvedLevel, mode);
|
|
6154
|
+
shadowStyle = getPressedRecessShadow(backgroundColor, mode);
|
|
6155
|
+
} else if (isPlane) {
|
|
6156
|
+
backgroundColor = surfaceBackground(level, mode);
|
|
6157
|
+
shadowStyle = {};
|
|
6158
|
+
} else {
|
|
6159
|
+
backgroundColor = getElevationSurface(baseColor, elevation, mode);
|
|
6160
|
+
shadowStyle = getElevationShadow(baseColor, elevation, mode);
|
|
6161
|
+
}
|
|
6067
6162
|
const glowStyle = glowColor ? getGlowShadow(glowColor, glowIntensity) : {};
|
|
6068
|
-
const applyRounded = rounded ?? !isPlane;
|
|
6163
|
+
const applyRounded = rounded ?? (pressed || !isPlane);
|
|
6069
6164
|
const value = React25.useMemo(
|
|
6070
|
-
() => ({ mode, level:
|
|
6071
|
-
[mode,
|
|
6165
|
+
() => ({ mode, level: resolvedLevel }),
|
|
6166
|
+
[mode, resolvedLevel]
|
|
6072
6167
|
);
|
|
6073
6168
|
return /* @__PURE__ */ jsx(SurfaceContext.Provider, { value, children: /* @__PURE__ */ jsx(
|
|
6074
6169
|
reactNative.View,
|
|
@@ -7261,13 +7356,14 @@ function MetricGroup({
|
|
|
7261
7356
|
)
|
|
7262
7357
|
] }, i)) });
|
|
7263
7358
|
}
|
|
7359
|
+
var t = getSemanticColors("dark");
|
|
7264
7360
|
var baseBadgeSizeConfig = {
|
|
7265
7361
|
sm: { fontSize: 9, paddingH: 6, paddingV: 2, iconSize: 10 },
|
|
7266
7362
|
md: { fontSize: 10, paddingH: 8, paddingV: 2, iconSize: 12 },
|
|
7267
7363
|
lg: { fontSize: 12, paddingH: 10, paddingV: 4, iconSize: 14 }
|
|
7268
7364
|
};
|
|
7269
7365
|
var variantColors = {
|
|
7270
|
-
plain: { backgroundColor: "
|
|
7366
|
+
plain: { backgroundColor: t["surface-raised"], borderColor: "#1F1F1F" },
|
|
7271
7367
|
pr: {
|
|
7272
7368
|
backgroundColor: "rgba(255, 121, 0, 0.12)",
|
|
7273
7369
|
borderColor: "rgba(255, 121, 0, 0.3)"
|
|
@@ -7507,11 +7603,11 @@ function PrBadge({
|
|
|
7507
7603
|
}
|
|
7508
7604
|
return badge;
|
|
7509
7605
|
}
|
|
7510
|
-
var
|
|
7606
|
+
var t2 = getSemanticColors("dark");
|
|
7511
7607
|
var solidVariantColors = {
|
|
7512
|
-
success:
|
|
7513
|
-
warning:
|
|
7514
|
-
error:
|
|
7608
|
+
success: t2["status-success"],
|
|
7609
|
+
warning: t2["status-warning"],
|
|
7610
|
+
error: t2["status-error"],
|
|
7515
7611
|
neutral: "#6B7280"
|
|
7516
7612
|
};
|
|
7517
7613
|
var ringVariantStyles = {
|
|
@@ -7551,8 +7647,8 @@ var iconColors2 = {
|
|
|
7551
7647
|
warning: "#6B4000",
|
|
7552
7648
|
error: "#5C1A1A",
|
|
7553
7649
|
neutral: "#D1D5DB",
|
|
7554
|
-
"on-track":
|
|
7555
|
-
deviation:
|
|
7650
|
+
"on-track": t2["status-success"],
|
|
7651
|
+
deviation: t2["status-warning"],
|
|
7556
7652
|
future: "#6B7280"
|
|
7557
7653
|
};
|
|
7558
7654
|
var sizeDimensions = {
|
|
@@ -7873,19 +7969,19 @@ function MetricCell({ children, color, fontSize = 11 }) {
|
|
|
7873
7969
|
}
|
|
7874
7970
|
|
|
7875
7971
|
// src/components/custom/Workout/TempoDisplay.tsx
|
|
7876
|
-
var
|
|
7972
|
+
var t3 = getSemanticColors("dark");
|
|
7877
7973
|
var INTER = "Inter, sans-serif";
|
|
7878
7974
|
var TEXT_TERTIARY = "#6B7280";
|
|
7879
|
-
var STATUS_ERROR =
|
|
7880
|
-
var STATUS_SUCCESS =
|
|
7881
|
-
var STATUS_WARNING =
|
|
7975
|
+
var STATUS_ERROR = t3["status-error"];
|
|
7976
|
+
var STATUS_SUCCESS = t3["status-success"];
|
|
7977
|
+
var STATUS_WARNING = t3["status-warning"];
|
|
7882
7978
|
var ON_TARGET_MS = 100;
|
|
7883
7979
|
function getTempoFillPct(elapsedMs, targetMs) {
|
|
7884
7980
|
if (!targetMs) return 100;
|
|
7885
7981
|
return Math.min(100, elapsedMs / targetMs * 100);
|
|
7886
7982
|
}
|
|
7887
7983
|
function activeNumberTone(elapsedMs, targetMs) {
|
|
7888
|
-
if (targetMs == null) return
|
|
7984
|
+
if (targetMs == null) return t3["text-primary"];
|
|
7889
7985
|
const remainingMs = targetMs - elapsedMs;
|
|
7890
7986
|
if (remainingMs > ON_TARGET_MS) return STATUS_WARNING;
|
|
7891
7987
|
if (remainingMs >= -ON_TARGET_MS) return STATUS_SUCCESS;
|
|
@@ -8037,7 +8133,7 @@ function TempoDisplay({
|
|
|
8037
8133
|
style: {
|
|
8038
8134
|
flexDirection: "row",
|
|
8039
8135
|
alignItems: "center",
|
|
8040
|
-
backgroundColor: "
|
|
8136
|
+
backgroundColor: t3["surface-raised"],
|
|
8041
8137
|
paddingHorizontal: chromePadX,
|
|
8042
8138
|
paddingVertical: chromePadY,
|
|
8043
8139
|
borderRadius: chromeRadius
|
|
@@ -8052,7 +8148,7 @@ function TempoDisplay({
|
|
|
8052
8148
|
fontSize: labelFont,
|
|
8053
8149
|
fontWeight: "500",
|
|
8054
8150
|
// Live-muted green while a rep is running, tertiary at rest.
|
|
8055
|
-
color: live ?
|
|
8151
|
+
color: live ? t3["status-live-muted"] : TEXT_TERTIARY,
|
|
8056
8152
|
letterSpacing: 0.5,
|
|
8057
8153
|
textTransform: "uppercase",
|
|
8058
8154
|
marginRight: Math.round(fontSize * 0.5)
|
|
@@ -8110,7 +8206,7 @@ function TempoDisplay({
|
|
|
8110
8206
|
reactNative.View,
|
|
8111
8207
|
{
|
|
8112
8208
|
style: {
|
|
8113
|
-
backgroundColor: "
|
|
8209
|
+
backgroundColor: t3["surface-overlay"],
|
|
8114
8210
|
borderRadius: 6,
|
|
8115
8211
|
paddingVertical: 8,
|
|
8116
8212
|
paddingHorizontal: 12,
|
|
@@ -8163,13 +8259,13 @@ function TempoDisplay({
|
|
|
8163
8259
|
}
|
|
8164
8260
|
);
|
|
8165
8261
|
}
|
|
8166
|
-
var
|
|
8262
|
+
var t4 = getSemanticColors("dark");
|
|
8167
8263
|
function getDotColor(deviation) {
|
|
8168
8264
|
const abs = Math.abs(deviation);
|
|
8169
|
-
if (deviation < -0.3) return
|
|
8265
|
+
if (deviation < -0.3) return t4["status-success"];
|
|
8170
8266
|
if (abs <= 0.3) return "#6B7280";
|
|
8171
|
-
if (abs <= 0.7) return
|
|
8172
|
-
return
|
|
8267
|
+
if (abs <= 0.7) return t4["status-warning"];
|
|
8268
|
+
return t4["status-error"];
|
|
8173
8269
|
}
|
|
8174
8270
|
function getDeviationDescription(deviation) {
|
|
8175
8271
|
if (deviation < -0.3) return "lighter than planned";
|
|
@@ -8237,19 +8333,19 @@ function DeviationBar({
|
|
|
8237
8333
|
}
|
|
8238
8334
|
);
|
|
8239
8335
|
}
|
|
8240
|
-
var
|
|
8336
|
+
var t5 = getSemanticColors("dark");
|
|
8241
8337
|
var TRACK_BG = "#333333";
|
|
8242
8338
|
var LABEL_COLOR = "#6B7280";
|
|
8243
8339
|
var TARGET_LINE_COLOR = "rgba(33, 150, 243, 0.5)";
|
|
8244
8340
|
var AT_TARGET_GLOW = "0 0 5px 1px rgba(33, 150, 243, 0.35), 0 0 10px 3px rgba(33, 150, 243, 0.15)";
|
|
8245
8341
|
var ZONE = {
|
|
8246
|
-
building:
|
|
8342
|
+
building: t5["status-success"],
|
|
8247
8343
|
// below target ramp-up
|
|
8248
|
-
approaching:
|
|
8344
|
+
approaching: t5["status-warning"],
|
|
8249
8345
|
// nearing target
|
|
8250
|
-
target:
|
|
8346
|
+
target: t5["brand-primary"],
|
|
8251
8347
|
// exactly at target
|
|
8252
|
-
over1:
|
|
8348
|
+
over1: t5["status-error"],
|
|
8253
8349
|
// mild over-target
|
|
8254
8350
|
over2: WORKOUT_TOKENS.intensity.over2,
|
|
8255
8351
|
// moderate over-target
|
|
@@ -8418,12 +8514,12 @@ var MESO_ACCENT_GRADIENT_LIGHT = primitiveRamps.orange[300];
|
|
|
8418
8514
|
var WORKOUT_PILL_DELOAD = primitiveRamps.magenta[600];
|
|
8419
8515
|
|
|
8420
8516
|
// src/components/custom/Workout/WorkoutPill.tsx
|
|
8421
|
-
var
|
|
8517
|
+
var t6 = getSemanticColors("dark");
|
|
8422
8518
|
var statusBgColors = {
|
|
8423
8519
|
completed: "rgba(46,213,115,0.15)",
|
|
8424
8520
|
current: "rgba(255,121,0,0.15)",
|
|
8425
8521
|
next: "transparent",
|
|
8426
|
-
upcoming: "
|
|
8522
|
+
upcoming: t6["surface-raised"],
|
|
8427
8523
|
missed: "rgba(209,67,67,0.1)",
|
|
8428
8524
|
deload: "rgba(186,41,150,0.15)"
|
|
8429
8525
|
};
|
|
@@ -8436,9 +8532,9 @@ var statusBorderStyles = {
|
|
|
8436
8532
|
deload: { borderWidth: 1, borderColor: "rgba(186,41,150,0.3)" }
|
|
8437
8533
|
};
|
|
8438
8534
|
var textColors = {
|
|
8439
|
-
completed:
|
|
8440
|
-
current:
|
|
8441
|
-
next:
|
|
8535
|
+
completed: t6["status-success"],
|
|
8536
|
+
current: t6["brand-primary"],
|
|
8537
|
+
next: t6["brand-primary"],
|
|
8442
8538
|
upcoming: "#6B7280",
|
|
8443
8539
|
missed: "rgba(209,67,67,0.7)",
|
|
8444
8540
|
deload: WORKOUT_PILL_DELOAD
|
|
@@ -9585,13 +9681,13 @@ function VelocityStrip({
|
|
|
9585
9681
|
}
|
|
9586
9682
|
return stripContent;
|
|
9587
9683
|
}
|
|
9588
|
-
var
|
|
9684
|
+
var t7 = getSemanticColors("dark");
|
|
9589
9685
|
var dotColorMap = {
|
|
9590
9686
|
untrained: "#2C2C2C",
|
|
9591
|
-
behind:
|
|
9592
|
-
ontrack:
|
|
9593
|
-
target:
|
|
9594
|
-
over:
|
|
9687
|
+
behind: t7["brand-secondary"],
|
|
9688
|
+
ontrack: t7["status-success"],
|
|
9689
|
+
target: t7["brand-primary"],
|
|
9690
|
+
over: t7["status-error"]
|
|
9595
9691
|
};
|
|
9596
9692
|
function MuscleGroupChip({
|
|
9597
9693
|
name,
|
|
@@ -10294,7 +10390,7 @@ function RestTimer({
|
|
|
10294
10390
|
}
|
|
10295
10391
|
);
|
|
10296
10392
|
}
|
|
10297
|
-
var
|
|
10393
|
+
var t8 = getSemanticColors("dark");
|
|
10298
10394
|
var TIMES = "\xD7";
|
|
10299
10395
|
var AT = "@";
|
|
10300
10396
|
function SetsRepsLoad({
|
|
@@ -10306,8 +10402,8 @@ function SetsRepsLoad({
|
|
|
10306
10402
|
className,
|
|
10307
10403
|
...props
|
|
10308
10404
|
}) {
|
|
10309
|
-
const value =
|
|
10310
|
-
const sep =
|
|
10405
|
+
const value = t8["text-primary"];
|
|
10406
|
+
const sep = t8["text-tertiary"];
|
|
10311
10407
|
return /* @__PURE__ */ jsxs(
|
|
10312
10408
|
reactNative.View,
|
|
10313
10409
|
{
|
|
@@ -10420,14 +10516,14 @@ function ScheduleTiles({ when, now, gap = 1, ...props }) {
|
|
|
10420
10516
|
)
|
|
10421
10517
|
] });
|
|
10422
10518
|
}
|
|
10423
|
-
var
|
|
10519
|
+
var t9 = getSemanticColors("dark");
|
|
10424
10520
|
var INDICATOR_CONFIG = {
|
|
10425
|
-
imbalance: { Icon: ScaleIcon, color:
|
|
10426
|
-
overshoot: { Icon: AlertTriangleIcon, color:
|
|
10427
|
-
"velocity-loss": { Icon: TrendingDownIcon, color:
|
|
10428
|
-
"missed-reps": { Icon: CircleSlashIcon, color:
|
|
10429
|
-
pr: { Icon: AwardIcon, color:
|
|
10430
|
-
info: { Icon: InfoIcon, color:
|
|
10521
|
+
imbalance: { Icon: ScaleIcon, color: t9["status-error"], label: "Left/right imbalance" },
|
|
10522
|
+
overshoot: { Icon: AlertTriangleIcon, color: t9["status-error"], label: "Load overshoot" },
|
|
10523
|
+
"velocity-loss": { Icon: TrendingDownIcon, color: t9["status-warning"], label: "Velocity loss" },
|
|
10524
|
+
"missed-reps": { Icon: CircleSlashIcon, color: t9["status-warning"], label: "Missed reps" },
|
|
10525
|
+
pr: { Icon: AwardIcon, color: t9["status-success"], label: "Personal record" },
|
|
10526
|
+
info: { Icon: InfoIcon, color: t9["status-info"], label: "More info" }
|
|
10431
10527
|
};
|
|
10432
10528
|
var INDICATOR_PRECEDENCE = [
|
|
10433
10529
|
"imbalance",
|
|
@@ -11089,7 +11185,7 @@ function SessionRail({
|
|
|
11089
11185
|
var DEFAULTS = {
|
|
11090
11186
|
label: "SS",
|
|
11091
11187
|
color: getSemanticColors("dark")["brand-primary"],
|
|
11092
|
-
bgBase: "
|
|
11188
|
+
bgBase: getSemanticColors("dark")["background-base"]
|
|
11093
11189
|
};
|
|
11094
11190
|
function SupersetWrapper({
|
|
11095
11191
|
label = DEFAULTS.label,
|
|
@@ -11348,10 +11444,10 @@ function WeekRow({
|
|
|
11348
11444
|
}
|
|
11349
11445
|
);
|
|
11350
11446
|
}
|
|
11351
|
-
var
|
|
11447
|
+
var t10 = getSemanticColors("dark");
|
|
11352
11448
|
var COLORS = {
|
|
11353
|
-
statusSuccess:
|
|
11354
|
-
brandPrimary:
|
|
11449
|
+
statusSuccess: t10["status-success"],
|
|
11450
|
+
brandPrimary: t10["brand-primary"],
|
|
11355
11451
|
borderDefault: "#1F1F1F",
|
|
11356
11452
|
brandPrimarySubtle: "rgba(255,121,0,0.06)"
|
|
11357
11453
|
};
|
|
@@ -11835,12 +11931,12 @@ function PrHistoryModal({
|
|
|
11835
11931
|
}
|
|
11836
11932
|
);
|
|
11837
11933
|
}
|
|
11838
|
-
var
|
|
11839
|
-
var BRAND_PRIMARY9 =
|
|
11934
|
+
var t11 = getSemanticColors("dark");
|
|
11935
|
+
var BRAND_PRIMARY9 = t11["brand-primary"];
|
|
11840
11936
|
var BRAND_PRIMARY_SUBTLE = "rgba(255,121,0,0.12)";
|
|
11841
|
-
var STATUS_SUCCESS2 =
|
|
11842
|
-
var STATUS_WARNING2 =
|
|
11843
|
-
var STATUS_ERROR2 =
|
|
11937
|
+
var STATUS_SUCCESS2 = t11["status-success"];
|
|
11938
|
+
var STATUS_WARNING2 = t11["status-warning"];
|
|
11939
|
+
var STATUS_ERROR2 = t11["status-error"];
|
|
11844
11940
|
var EMOJI_SETS = {
|
|
11845
11941
|
sleep: ["\u{1F634}", "\u{1F610}", "\u{1F642}", "\u{1F60A}", "\u{1F929}"],
|
|
11846
11942
|
soreness: ["\u{1F635}", "\u{1F623}", "\u{1F610}", "\u{1F642}", "\u{1F4AA}"],
|
|
@@ -12030,13 +12126,13 @@ function ReadinessCheck({
|
|
|
12030
12126
|
)
|
|
12031
12127
|
] }) });
|
|
12032
12128
|
}
|
|
12033
|
-
var
|
|
12034
|
-
var BRAND_PRIMARY10 =
|
|
12129
|
+
var t12 = getSemanticColors("dark");
|
|
12130
|
+
var BRAND_PRIMARY10 = t12["brand-primary"];
|
|
12035
12131
|
var BRAND_PRIMARY_DARK2 = MESO_ACCENT_GRADIENT_DARK;
|
|
12036
12132
|
var BRAND_PRIMARY_LIGHT2 = MESO_ACCENT_GRADIENT_LIGHT;
|
|
12037
|
-
var SUCCESS =
|
|
12038
|
-
var WARNING =
|
|
12039
|
-
var ERROR =
|
|
12133
|
+
var SUCCESS = t12["status-success"];
|
|
12134
|
+
var WARNING = t12["status-warning"];
|
|
12135
|
+
var ERROR = t12["status-error"];
|
|
12040
12136
|
var ACCENT_STOPS2 = [BRAND_PRIMARY_DARK2, BRAND_PRIMARY10, BRAND_PRIMARY_LIGHT2];
|
|
12041
12137
|
var CARD_GRADIENT = `linear-gradient(135deg, ${resolveColor("surface-elevated")} 0%, ${resolveColor("surface-raised")} 100%)`;
|
|
12042
12138
|
var GAUGE_GRADIENT = "linear-gradient(90deg, rgba(46,213,115,0.25) 0%, rgba(249,180,21,0.25) 50%, rgba(209,67,67,0.25) 100%)";
|
|
@@ -12407,8 +12503,8 @@ var ERROR_PILL_BORDER = "rgba(209,67,67,0.20)";
|
|
|
12407
12503
|
var PLOT_LEFT = 26;
|
|
12408
12504
|
var TOOLTIP_WIDTH = 124;
|
|
12409
12505
|
function timeOf(dateStr) {
|
|
12410
|
-
const
|
|
12411
|
-
return Number.isNaN(
|
|
12506
|
+
const t17 = Date.parse(dateStr);
|
|
12507
|
+
return Number.isNaN(t17) ? 0 : t17;
|
|
12412
12508
|
}
|
|
12413
12509
|
function formatValue(value) {
|
|
12414
12510
|
return `${Math.round(value)}`;
|
|
@@ -12897,10 +12993,10 @@ function StrengthTrendChart({
|
|
|
12897
12993
|
}
|
|
12898
12994
|
);
|
|
12899
12995
|
}
|
|
12900
|
-
var
|
|
12901
|
-
var STATUS_SUCCESS4 =
|
|
12902
|
-
var STATUS_WARNING4 =
|
|
12903
|
-
var STATUS_INFO =
|
|
12996
|
+
var t13 = getSemanticColors("dark");
|
|
12997
|
+
var STATUS_SUCCESS4 = t13["status-success"];
|
|
12998
|
+
var STATUS_WARNING4 = t13["status-warning"];
|
|
12999
|
+
var STATUS_INFO = t13["status-info"];
|
|
12904
13000
|
var DOT_BORDER = "#F3F4F6";
|
|
12905
13001
|
var BAND_FILL = "rgba(46,213,115,0.1)";
|
|
12906
13002
|
var BAND_EDGE = "rgba(46,213,115,0.45)";
|
|
@@ -12943,8 +13039,8 @@ function interpEdge(pixels, x, key) {
|
|
|
12943
13039
|
const a = pixels[i];
|
|
12944
13040
|
const b = pixels[i + 1];
|
|
12945
13041
|
if (x >= a.x && x <= b.x) {
|
|
12946
|
-
const
|
|
12947
|
-
return a[key] +
|
|
13042
|
+
const t17 = b.x === a.x ? 0 : (x - a.x) / (b.x - a.x);
|
|
13043
|
+
return a[key] + t17 * (b[key] - a[key]);
|
|
12948
13044
|
}
|
|
12949
13045
|
}
|
|
12950
13046
|
return pixels[pixels.length - 1][key];
|
|
@@ -13274,13 +13370,13 @@ function CapacityBandChart({
|
|
|
13274
13370
|
}
|
|
13275
13371
|
);
|
|
13276
13372
|
}
|
|
13277
|
-
var
|
|
13373
|
+
var t14 = getSemanticColors("dark");
|
|
13278
13374
|
function glowShadow(color) {
|
|
13279
13375
|
return `0 0 5px 1px ${alpha(color, 0.3)}, 0 0 10px 3px ${alpha(color, 0.12)}`;
|
|
13280
13376
|
}
|
|
13281
13377
|
var DEFAULT_TRACK_COLOR = primitiveColors.charcoal[200];
|
|
13282
13378
|
var DEFAULT_MARKER_COLOR2 = primitiveColors.white;
|
|
13283
|
-
var TICK_COLOR =
|
|
13379
|
+
var TICK_COLOR = t14["text-tertiary"];
|
|
13284
13380
|
var ZONE_SIZES = {
|
|
13285
13381
|
default: {
|
|
13286
13382
|
trackHeight: 14,
|
|
@@ -13463,7 +13559,7 @@ function ZoneTrack({
|
|
|
13463
13559
|
),
|
|
13464
13560
|
ticks?.map((tick, i) => {
|
|
13465
13561
|
const emphasized = tick.emphasized === true;
|
|
13466
|
-
const lineColor = tick.color ?? (emphasized ?
|
|
13562
|
+
const lineColor = tick.color ?? (emphasized ? t14["brand-primary"] : TICK_COLOR);
|
|
13467
13563
|
const lineWidth = emphasized ? s.tickLineEmphasized : s.tickLineNormal;
|
|
13468
13564
|
return /* @__PURE__ */ jsx(
|
|
13469
13565
|
reactNative.View,
|
|
@@ -13494,7 +13590,7 @@ function ZoneTrack({
|
|
|
13494
13590
|
if (tick.label == null) return null;
|
|
13495
13591
|
const emphasized = tick.emphasized === true;
|
|
13496
13592
|
if (!showTickLabel(i, emphasized)) return null;
|
|
13497
|
-
const labelColor = tick.color ?? (emphasized ?
|
|
13593
|
+
const labelColor = tick.color ?? (emphasized ? t14["brand-primary"] : TICK_COLOR);
|
|
13498
13594
|
const labelNode = /* @__PURE__ */ jsx(
|
|
13499
13595
|
reactNative.Text,
|
|
13500
13596
|
{
|
|
@@ -13680,7 +13776,7 @@ function VolumeLandmarkBar({
|
|
|
13680
13776
|
}
|
|
13681
13777
|
);
|
|
13682
13778
|
}
|
|
13683
|
-
var
|
|
13779
|
+
var t15 = getSemanticColors("dark");
|
|
13684
13780
|
var statusToken = {
|
|
13685
13781
|
productive: "status-success",
|
|
13686
13782
|
threshold: "status-warning",
|
|
@@ -13697,7 +13793,7 @@ var defaultLabel = {
|
|
|
13697
13793
|
stop: "Stop"
|
|
13698
13794
|
};
|
|
13699
13795
|
function statusPillColor(status) {
|
|
13700
|
-
return
|
|
13796
|
+
return t15[statusToken[status]];
|
|
13701
13797
|
}
|
|
13702
13798
|
function StatusPill2({ status, label, className, style, ...props }) {
|
|
13703
13799
|
const color = statusPillColor(status);
|
|
@@ -13730,7 +13826,7 @@ function StatusPill2({ status, label, className, style, ...props }) {
|
|
|
13730
13826
|
}
|
|
13731
13827
|
);
|
|
13732
13828
|
}
|
|
13733
|
-
var
|
|
13829
|
+
var t16 = getSemanticColors("dark");
|
|
13734
13830
|
var categoryToken = {
|
|
13735
13831
|
productive: null,
|
|
13736
13832
|
threshold: "status-warning",
|
|
@@ -13743,7 +13839,7 @@ var floodOpacity = {
|
|
|
13743
13839
|
};
|
|
13744
13840
|
function liveAuraColor(category) {
|
|
13745
13841
|
const token = categoryToken[category];
|
|
13746
|
-
return token ?
|
|
13842
|
+
return token ? t16[token] : null;
|
|
13747
13843
|
}
|
|
13748
13844
|
function LiveAuraFrame({
|
|
13749
13845
|
category,
|
|
@@ -13772,9 +13868,9 @@ function LiveAuraFrame({
|
|
|
13772
13868
|
position: "relative",
|
|
13773
13869
|
overflow: "hidden",
|
|
13774
13870
|
borderRadius: 10,
|
|
13775
|
-
backgroundColor:
|
|
13871
|
+
backgroundColor: t16["background-base"],
|
|
13776
13872
|
borderWidth: 1,
|
|
13777
|
-
borderColor:
|
|
13873
|
+
borderColor: t16["border-default"]
|
|
13778
13874
|
},
|
|
13779
13875
|
style
|
|
13780
13876
|
],
|
|
@@ -14001,28 +14097,28 @@ function Scatter({
|
|
|
14001
14097
|
testID: "scatter-canvas",
|
|
14002
14098
|
style: { position: "absolute", top: 0, left: 0, width, height, overflow: "hidden" },
|
|
14003
14099
|
children: [
|
|
14004
|
-
ticksOf(yd, TICK_COUNT).map((
|
|
14005
|
-
const y = toY(
|
|
14100
|
+
ticksOf(yd, TICK_COUNT).map((t17, i) => {
|
|
14101
|
+
const y = toY(t17);
|
|
14006
14102
|
return /* @__PURE__ */ jsx(
|
|
14007
14103
|
reactNative.View,
|
|
14008
14104
|
{
|
|
14009
14105
|
accessibilityElementsHidden: true,
|
|
14010
14106
|
testID: "scatter-gridline-y",
|
|
14011
14107
|
style: { position: "absolute", left: PLOT_LEFT2, width: innerW, top: y, height: 1, backgroundColor: GRID_LINE2 },
|
|
14012
|
-
children: /* @__PURE__ */ jsx(reactNative.Text, { className: "text-[9px] text-text-tertiary", style: { position: "absolute", left: -PLOT_LEFT2, top: -6, width: PLOT_LEFT2 - 6, textAlign: "right" }, children: formatTick(
|
|
14108
|
+
children: /* @__PURE__ */ jsx(reactNative.Text, { className: "text-[9px] text-text-tertiary", style: { position: "absolute", left: -PLOT_LEFT2, top: -6, width: PLOT_LEFT2 - 6, textAlign: "right" }, children: formatTick(t17) })
|
|
14013
14109
|
},
|
|
14014
14110
|
`y-${i}`
|
|
14015
14111
|
);
|
|
14016
14112
|
}),
|
|
14017
|
-
ticksOf(xd, TICK_COUNT).map((
|
|
14018
|
-
const x = toX(
|
|
14113
|
+
ticksOf(xd, TICK_COUNT).map((t17, i) => {
|
|
14114
|
+
const x = toX(t17);
|
|
14019
14115
|
return /* @__PURE__ */ jsx(
|
|
14020
14116
|
reactNative.View,
|
|
14021
14117
|
{
|
|
14022
14118
|
accessibilityElementsHidden: true,
|
|
14023
14119
|
testID: "scatter-gridline-x",
|
|
14024
14120
|
style: { position: "absolute", top: PLOT_TOP, height: innerH, left: x, width: 1, backgroundColor: GRID_LINE2 },
|
|
14025
|
-
children: /* @__PURE__ */ jsx(reactNative.Text, { className: "text-[9px] text-text-tertiary", style: { position: "absolute", top: innerH + 4, left: -16, width: 32, textAlign: "center" }, children: formatTick(
|
|
14121
|
+
children: /* @__PURE__ */ jsx(reactNative.Text, { className: "text-[9px] text-text-tertiary", style: { position: "absolute", top: innerH + 4, left: -16, width: 32, textAlign: "center" }, children: formatTick(t17) })
|
|
14026
14122
|
},
|
|
14027
14123
|
`x-${i}`
|
|
14028
14124
|
);
|
|
@@ -14157,23 +14253,23 @@ function Gauge2({
|
|
|
14157
14253
|
testID: "gauge",
|
|
14158
14254
|
...props,
|
|
14159
14255
|
children: [
|
|
14160
|
-
ticks.map((
|
|
14256
|
+
ticks.map((t17) => /* @__PURE__ */ jsx(
|
|
14161
14257
|
reactNative.View,
|
|
14162
14258
|
{
|
|
14163
14259
|
accessibilityElementsHidden: true,
|
|
14164
14260
|
testID: "gauge-segment",
|
|
14165
14261
|
style: {
|
|
14166
14262
|
position: "absolute",
|
|
14167
|
-
left:
|
|
14168
|
-
top:
|
|
14263
|
+
left: t17.left - tickThickness / 2,
|
|
14264
|
+
top: t17.top - tickLength / 2,
|
|
14169
14265
|
width: tickThickness,
|
|
14170
14266
|
height: tickLength,
|
|
14171
14267
|
borderRadius: tickThickness / 2,
|
|
14172
|
-
backgroundColor:
|
|
14173
|
-
transform: [{ rotate:
|
|
14268
|
+
backgroundColor: t17.color,
|
|
14269
|
+
transform: [{ rotate: t17.rotate }]
|
|
14174
14270
|
}
|
|
14175
14271
|
},
|
|
14176
|
-
|
|
14272
|
+
t17.key
|
|
14177
14273
|
)),
|
|
14178
14274
|
/* @__PURE__ */ jsxs(reactNative.View, { style: { position: "absolute", top: 0, left: 0, width: size, height: size }, className: "items-center justify-center", children: [
|
|
14179
14275
|
/* @__PURE__ */ jsxs(reactNative.View, { className: "flex-row items-baseline gap-0.5", children: [
|
|
@@ -14707,6 +14803,7 @@ exports.ModalTitle = ModalTitle;
|
|
|
14707
14803
|
exports.MuscleGroupChip = MuscleGroupChip;
|
|
14708
14804
|
exports.NavItem = NavItem;
|
|
14709
14805
|
exports.Overline = Overline;
|
|
14806
|
+
exports.PRESSED_ELEVATION_LEVEL = PRESSED_ELEVATION_LEVEL;
|
|
14710
14807
|
exports.Paragraph = Paragraph;
|
|
14711
14808
|
exports.PasswordInput = PasswordInput;
|
|
14712
14809
|
exports.PersonStandingIcon = PersonStandingIcon;
|
|
@@ -14810,6 +14907,7 @@ exports.ZoneTrack = ZoneTrack;
|
|
|
14810
14907
|
exports.alpha = alpha;
|
|
14811
14908
|
exports.applyThemePreset = applyThemePreset;
|
|
14812
14909
|
exports.audiobookPreset = audiobookPreset;
|
|
14910
|
+
exports.backgroundFrameDark = backgroundFrameDark;
|
|
14813
14911
|
exports.bestTextColor = bestTextColor;
|
|
14814
14912
|
exports.buttonSizes = buttonSizes;
|
|
14815
14913
|
exports.calculateMeanVelocity = calculateMeanVelocity;
|
|
@@ -14848,6 +14946,7 @@ exports.getFieldValidationProps = getFieldValidationProps;
|
|
|
14848
14946
|
exports.getGlowShadow = getGlowShadow;
|
|
14849
14947
|
exports.getHoverColors = getHoverColors;
|
|
14850
14948
|
exports.getLuminance = getLuminance;
|
|
14949
|
+
exports.getPressedRecessShadow = getPressedRecessShadow;
|
|
14851
14950
|
exports.getResultColor = getResultColor;
|
|
14852
14951
|
exports.getSemanticColors = getSemanticColors;
|
|
14853
14952
|
exports.getStatusColor = getStatusColor;
|
|
@@ -14872,6 +14971,7 @@ exports.neumorphicShadows = neumorphicShadows;
|
|
|
14872
14971
|
exports.onSurfaceColors = onSurfaceColors;
|
|
14873
14972
|
exports.paceTone = paceTone;
|
|
14874
14973
|
exports.paceToneColor = paceToneColor;
|
|
14974
|
+
exports.pressedLevel = pressedLevel;
|
|
14875
14975
|
exports.primitiveBorderRadius = primitiveBorderRadius;
|
|
14876
14976
|
exports.primitiveBreakpoints = primitiveBreakpoints;
|
|
14877
14977
|
exports.primitiveColors = primitiveColors;
|
|
@@ -14896,6 +14996,7 @@ exports.shadowColors = shadowColors;
|
|
|
14896
14996
|
exports.statusPillColor = statusPillColor;
|
|
14897
14997
|
exports.surfaceBackground = surfaceBackground;
|
|
14898
14998
|
exports.surfaceGradient = surfaceGradient;
|
|
14999
|
+
exports.surfaceRampDark = surfaceRampDark;
|
|
14899
15000
|
exports.useOnSurfaceColor = useOnSurfaceColor;
|
|
14900
15001
|
exports.useSurface = useSurface;
|
|
14901
15002
|
exports.useSurfaceMode = useSurfaceMode;
|