@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.mjs
CHANGED
|
@@ -333,6 +333,21 @@ var primitiveColors = {
|
|
|
333
333
|
black: "#000000",
|
|
334
334
|
transparent: "transparent"
|
|
335
335
|
};
|
|
336
|
+
var surfaceRampDark = {
|
|
337
|
+
inset: "#13100D",
|
|
338
|
+
// L*4.5 — sub-shell well / pressed
|
|
339
|
+
background: "#1C1916",
|
|
340
|
+
// L*9 — shell / frame
|
|
341
|
+
base: "#252321",
|
|
342
|
+
// L*13.5 — main content plane
|
|
343
|
+
elevated: "#2C2A28",
|
|
344
|
+
// L*17 — nav / rail
|
|
345
|
+
raised: "#31302F",
|
|
346
|
+
// L*20 — cards
|
|
347
|
+
overlay: "#373635"
|
|
348
|
+
// L*22.5 — hero / popover
|
|
349
|
+
};
|
|
350
|
+
var backgroundFrameDark = "#100D0A";
|
|
336
351
|
var primitiveRamps = {
|
|
337
352
|
red: {
|
|
338
353
|
50: "#FFF4F4",
|
|
@@ -800,10 +815,19 @@ var semanticColorsLight = {
|
|
|
800
815
|
"surface-overlay": primitiveColors.white,
|
|
801
816
|
"surface-input": primitiveColors.neutral[50],
|
|
802
817
|
// Input field background (filled variant)
|
|
818
|
+
// Deepest pressed pit (TD-surface-tokens, S-3) — light-mode counterpart of
|
|
819
|
+
// the dark ramp's `inset` plane; a placeholder pairing, not part of the
|
|
820
|
+
// dark-ramp investigation (surface.contract.test.ts is dark-mode only).
|
|
821
|
+
"surface-inset": primitiveColors.neutral[300],
|
|
803
822
|
// Background colors (background-*)
|
|
804
823
|
"background-base": "#EBEBEB",
|
|
805
824
|
"background-default": primitiveColors.white,
|
|
806
825
|
"background-subtle": primitiveColors.neutral[50],
|
|
826
|
+
// Frame/bezel chrome (TD-surface-tokens, S-3) — top bar + side nav shell,
|
|
827
|
+
// one step below `background-base` (darker still than `surface-inset`
|
|
828
|
+
// above, mirroring the dark-mode ordering). Placeholder pairing for light
|
|
829
|
+
// mode (see dark-mode note on `surface-inset` above).
|
|
830
|
+
"background-frame": primitiveColors.neutral[400],
|
|
807
831
|
// Border colors (border-*)
|
|
808
832
|
"border-default": "#E8E9EB",
|
|
809
833
|
"border-subtle": primitiveColors.neutral[100],
|
|
@@ -819,6 +843,11 @@ var semanticColorsLight = {
|
|
|
819
843
|
// Input field border on focus
|
|
820
844
|
"border-input-error": primitiveColors.red[600],
|
|
821
845
|
// Input field border on error
|
|
846
|
+
// Alpha hairline separators (surface-independent — composite toward black on
|
|
847
|
+
// light surfaces, mirroring the dark-mode white-alpha family). See §4/S-2.
|
|
848
|
+
"hairline-subtle": "rgba(0, 0, 0, 0.06)",
|
|
849
|
+
"hairline-default": "rgba(0, 0, 0, 0.09)",
|
|
850
|
+
"hairline-strong": "rgba(0, 0, 0, 0.14)",
|
|
822
851
|
// Interactive states (interactive-*)
|
|
823
852
|
"interactive-hover": "rgba(55, 65, 81, 0.04)",
|
|
824
853
|
"interactive-focus": "rgba(55, 65, 81, 0.12)",
|
|
@@ -911,25 +940,46 @@ var semanticColorsDark = {
|
|
|
911
940
|
"text-inverse": primitiveColors.neutral[900],
|
|
912
941
|
"text-link": "#828DF8",
|
|
913
942
|
"text-link-hover": primitiveColors.blue[400],
|
|
914
|
-
// Surface colors - dark backgrounds
|
|
915
|
-
|
|
916
|
-
//
|
|
917
|
-
|
|
918
|
-
//
|
|
919
|
-
|
|
920
|
-
//
|
|
921
|
-
|
|
922
|
-
//
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
//
|
|
926
|
-
"
|
|
927
|
-
//
|
|
928
|
-
"
|
|
929
|
-
//
|
|
930
|
-
"
|
|
931
|
-
//
|
|
932
|
-
|
|
943
|
+
// Surface colors - dark backgrounds — warm-tapered DERIVED ramp (TD-surface-tokens,
|
|
944
|
+
// S-1, re-spaced S-3). Shipped verbatim from `deriveSurfaceRamp()` — see
|
|
945
|
+
// `surfaceRampDark` in primitives.ts for the full derivation note. `surface-overlay`
|
|
946
|
+
// and `surface-elevated` are distinct (were both #191919 pre-S-1); `surface-input`
|
|
947
|
+
// tracks one plane above `surface-base`, same relative position as before the remap.
|
|
948
|
+
// `background-base` backs `Surface level="background"` (SurfaceContext.SURFACE_LEVEL_TOKEN),
|
|
949
|
+
// so it takes the ramp's `background` (shell/frame) role, NOT `inset`. The ramp's
|
|
950
|
+
// deepest `inset` plane is now promoted to `surface-inset` below (S-3) — still no
|
|
951
|
+
// `SurfaceLevel` member for it (follow-up, alongside the elevation.ts -1/-2 pressed
|
|
952
|
+
// levels — parallel workstream, not this branch).
|
|
953
|
+
"surface-base": surfaceRampDark.base,
|
|
954
|
+
// main surface (#252321, L*13.5)
|
|
955
|
+
"surface-elevated": surfaceRampDark.elevated,
|
|
956
|
+
// elevated surface (#2C2A28, L*17 — nav/rail)
|
|
957
|
+
"surface-raised": surfaceRampDark.raised,
|
|
958
|
+
// raised surface (#31302F, L*20 — cards)
|
|
959
|
+
"surface-overlay": surfaceRampDark.overlay,
|
|
960
|
+
// overlay surface (#373635, L*22.5 — hero/popover)
|
|
961
|
+
"surface-input": surfaceRampDark.elevated,
|
|
962
|
+
// input surface (#2C2A28 — one plane above base)
|
|
963
|
+
"surface-inset": surfaceRampDark.inset,
|
|
964
|
+
// deepest pressed pit (#13100D, L*4.5 — sub-shell well)
|
|
965
|
+
// Background colors — same ramp, the frame/shell end of it.
|
|
966
|
+
"background-base": surfaceRampDark.background,
|
|
967
|
+
// shell / frame (#1C1916, L*9 — Surface level="background")
|
|
968
|
+
"background-default": surfaceRampDark.base,
|
|
969
|
+
// main background (#252321, L*13.5 — matches surface-base)
|
|
970
|
+
"background-subtle": surfaceRampDark.elevated,
|
|
971
|
+
// subtle background (#2C2A28, L*17 — matches surface-elevated)
|
|
972
|
+
// Frame/bezel chrome (S-3) — the top bar + side nav shell; one step BELOW
|
|
973
|
+
// `background-base`, darker even than `surface-inset` — it exits the content
|
|
974
|
+
// ramp entirely rather than sitting in it. See `backgroundFrameDark` in
|
|
975
|
+
// primitives.ts.
|
|
976
|
+
"background-frame": backgroundFrameDark,
|
|
977
|
+
// frame / bezel (#100D0A, L*3.79)
|
|
978
|
+
// Border colors — `border-subtle` (#1C1C1C) previously collided with
|
|
979
|
+
// `surface-raised` (also #1C1C1C, an invisible border on raised cards). The
|
|
980
|
+
// re-spaced ramp above moved `surface-raised` to #2D2C2B, so this value is now
|
|
981
|
+
// distinct from every surface hex without needing to change it — see
|
|
982
|
+
// `surface.contract.test.ts` R2/R4.
|
|
933
983
|
"border-default": primitiveColors.charcoal[400],
|
|
934
984
|
// default border
|
|
935
985
|
"border-subtle": primitiveColors.charcoal[500],
|
|
@@ -943,6 +993,14 @@ var semanticColorsDark = {
|
|
|
943
993
|
"border-input-hover": primitiveColors.neutral[500],
|
|
944
994
|
"border-input-focus": "#828DF8",
|
|
945
995
|
"border-input-error": primitiveColors.red[500],
|
|
996
|
+
// Alpha hairline separators — the primary separation cue (§4/S-2). Self-
|
|
997
|
+
// normalizing: composites toward white by ~the same amount on ANY plane, so
|
|
998
|
+
// one family works at every elevation instead of per-surface border tokens.
|
|
999
|
+
// Shadows are demoted to floating-overlay use only (not shipped as a fill
|
|
1000
|
+
// separator here — see elevation.ts, follow-up S-4).
|
|
1001
|
+
"hairline-subtle": "rgba(255, 255, 255, 0.06)",
|
|
1002
|
+
"hairline-default": "rgba(255, 255, 255, 0.09)",
|
|
1003
|
+
"hairline-strong": "rgba(255, 255, 255, 0.14)",
|
|
946
1004
|
// Interactive states
|
|
947
1005
|
"interactive-hover": "rgba(255, 255, 255, 0.04)",
|
|
948
1006
|
"interactive-focus": "rgba(255, 255, 255, 0.12)",
|
|
@@ -1472,9 +1530,11 @@ var lightThemeCSSVars = {
|
|
|
1472
1530
|
"--color-surface-base": semanticColorsLight["surface-base"],
|
|
1473
1531
|
"--color-surface-elevated": semanticColorsLight["surface-elevated"],
|
|
1474
1532
|
"--color-surface-raised": semanticColorsLight["surface-raised"],
|
|
1533
|
+
"--color-surface-inset": semanticColorsLight["surface-inset"],
|
|
1475
1534
|
"--color-background-base": semanticColorsLight["background-base"],
|
|
1476
1535
|
"--color-background-default": semanticColorsLight["background-default"],
|
|
1477
1536
|
"--color-background-subtle": semanticColorsLight["background-subtle"],
|
|
1537
|
+
"--color-background-frame": semanticColorsLight["background-frame"],
|
|
1478
1538
|
"--color-border-default": semanticColorsLight["border-default"],
|
|
1479
1539
|
"--color-border-subtle": semanticColorsLight["border-subtle"],
|
|
1480
1540
|
"--color-border-strong": semanticColorsLight["border-strong"],
|
|
@@ -1531,6 +1591,9 @@ var lightThemeCSSVars = {
|
|
|
1531
1591
|
"--color-border-input-hover": semanticColorsLight["border-input-hover"],
|
|
1532
1592
|
"--color-border-input-focus": semanticColorsLight["border-input-focus"],
|
|
1533
1593
|
"--color-border-input-error": semanticColorsLight["border-input-error"],
|
|
1594
|
+
"--color-hairline-subtle": semanticColorsLight["hairline-subtle"],
|
|
1595
|
+
"--color-hairline-default": semanticColorsLight["hairline-default"],
|
|
1596
|
+
"--color-hairline-strong": semanticColorsLight["hairline-strong"],
|
|
1534
1597
|
"--color-interactive-disabled-text": semanticColorsLight["interactive-disabled-text"],
|
|
1535
1598
|
"--color-avatar-background": semanticColorsLight["avatar-background"],
|
|
1536
1599
|
"--color-avatar-text": semanticColorsLight["avatar-text"],
|
|
@@ -1570,9 +1633,11 @@ var darkThemeCSSVars = {
|
|
|
1570
1633
|
"--color-surface-base": semanticColorsDark["surface-base"],
|
|
1571
1634
|
"--color-surface-elevated": semanticColorsDark["surface-elevated"],
|
|
1572
1635
|
"--color-surface-raised": semanticColorsDark["surface-raised"],
|
|
1636
|
+
"--color-surface-inset": semanticColorsDark["surface-inset"],
|
|
1573
1637
|
"--color-background-base": semanticColorsDark["background-base"],
|
|
1574
1638
|
"--color-background-default": semanticColorsDark["background-default"],
|
|
1575
1639
|
"--color-background-subtle": semanticColorsDark["background-subtle"],
|
|
1640
|
+
"--color-background-frame": semanticColorsDark["background-frame"],
|
|
1576
1641
|
"--color-border-default": semanticColorsDark["border-default"],
|
|
1577
1642
|
"--color-border-subtle": semanticColorsDark["border-subtle"],
|
|
1578
1643
|
"--color-border-strong": semanticColorsDark["border-strong"],
|
|
@@ -1629,6 +1694,9 @@ var darkThemeCSSVars = {
|
|
|
1629
1694
|
"--color-border-input-hover": semanticColorsDark["border-input-hover"],
|
|
1630
1695
|
"--color-border-input-focus": semanticColorsDark["border-input-focus"],
|
|
1631
1696
|
"--color-border-input-error": semanticColorsDark["border-input-error"],
|
|
1697
|
+
"--color-hairline-subtle": semanticColorsDark["hairline-subtle"],
|
|
1698
|
+
"--color-hairline-default": semanticColorsDark["hairline-default"],
|
|
1699
|
+
"--color-hairline-strong": semanticColorsDark["hairline-strong"],
|
|
1632
1700
|
"--color-interactive-disabled-text": semanticColorsDark["interactive-disabled-text"],
|
|
1633
1701
|
"--color-avatar-background": semanticColorsDark["avatar-background"],
|
|
1634
1702
|
"--color-avatar-text": semanticColorsDark["avatar-text"],
|
|
@@ -2263,6 +2331,10 @@ function getElevationShadow(baseColor, level, theme, isHovered = false) {
|
|
|
2263
2331
|
elevationShadowCache.set(cacheKey, result);
|
|
2264
2332
|
return result;
|
|
2265
2333
|
}
|
|
2334
|
+
var PRESSED_ELEVATION_LEVEL = -1;
|
|
2335
|
+
function getPressedRecessShadow(fillColor, theme) {
|
|
2336
|
+
return getElevationShadow(fillColor, PRESSED_ELEVATION_LEVEL, theme);
|
|
2337
|
+
}
|
|
2266
2338
|
function getBaseSurfaceColor(theme) {
|
|
2267
2339
|
return theme === "light" ? semanticColorsLight["surface-raised"] : semanticColorsDark["surface-elevated"];
|
|
2268
2340
|
}
|
|
@@ -2565,6 +2637,7 @@ var SURFACE_LEVEL_TOKEN = {
|
|
|
2565
2637
|
raised: "surface-raised",
|
|
2566
2638
|
overlay: "surface-overlay"
|
|
2567
2639
|
};
|
|
2640
|
+
var PRESSED_RAMP = ["inset", "background", "base", "elevated", "raised", "overlay"];
|
|
2568
2641
|
var ON_SURFACE_TOKEN = {
|
|
2569
2642
|
primary: "text-primary",
|
|
2570
2643
|
secondary: "text-secondary",
|
|
@@ -2589,9 +2662,19 @@ function onSurfaceColors(mode) {
|
|
|
2589
2662
|
function useOnSurfaceColor(role = "primary") {
|
|
2590
2663
|
return getSemanticColors(useSurfaceMode())[ON_SURFACE_TOKEN[role]];
|
|
2591
2664
|
}
|
|
2665
|
+
function insetFloor(mode) {
|
|
2666
|
+
const colors = getSemanticColors(mode);
|
|
2667
|
+
return colors["surface-inset"] ?? surfaceRampDark.inset;
|
|
2668
|
+
}
|
|
2592
2669
|
function surfaceBackground(level, mode) {
|
|
2670
|
+
if (level === "inset") return insetFloor(mode);
|
|
2593
2671
|
return getSemanticColors(mode)[SURFACE_LEVEL_TOKEN[level]];
|
|
2594
2672
|
}
|
|
2673
|
+
function pressedLevel(parent) {
|
|
2674
|
+
const index = PRESSED_RAMP.indexOf(parent);
|
|
2675
|
+
const down = Math.max(0, index - 1);
|
|
2676
|
+
return PRESSED_RAMP[down];
|
|
2677
|
+
}
|
|
2595
2678
|
function getTheme() {
|
|
2596
2679
|
if (typeof document === "undefined") return "dark";
|
|
2597
2680
|
return document.documentElement.classList.contains("light") ? "light" : "dark";
|
|
@@ -5290,7 +5373,7 @@ function ToastProvider({
|
|
|
5290
5373
|
return id;
|
|
5291
5374
|
}, [defaultDuration, maxToasts]);
|
|
5292
5375
|
const removeToast = useCallback((id) => {
|
|
5293
|
-
setToasts((prev) => prev.filter((
|
|
5376
|
+
setToasts((prev) => prev.filter((t17) => t17.id !== id));
|
|
5294
5377
|
}, []);
|
|
5295
5378
|
const removeAllToasts = useCallback(() => {
|
|
5296
5379
|
setToasts([]);
|
|
@@ -6043,6 +6126,7 @@ function IconBox({
|
|
|
6043
6126
|
function Surface({
|
|
6044
6127
|
elevation = 0,
|
|
6045
6128
|
level,
|
|
6129
|
+
pressed = false,
|
|
6046
6130
|
glowColor,
|
|
6047
6131
|
glowIntensity,
|
|
6048
6132
|
theme,
|
|
@@ -6056,13 +6140,24 @@ function Surface({
|
|
|
6056
6140
|
const mode = theme ?? inherited.mode;
|
|
6057
6141
|
const isPlane = level != null;
|
|
6058
6142
|
const baseColor = getBaseSurfaceColor(mode);
|
|
6059
|
-
const
|
|
6060
|
-
|
|
6143
|
+
const resolvedLevel = pressed ? pressedLevel(inherited.level) : level ?? inherited.level;
|
|
6144
|
+
let backgroundColor;
|
|
6145
|
+
let shadowStyle;
|
|
6146
|
+
if (pressed) {
|
|
6147
|
+
backgroundColor = surfaceBackground(resolvedLevel, mode);
|
|
6148
|
+
shadowStyle = getPressedRecessShadow(backgroundColor, mode);
|
|
6149
|
+
} else if (isPlane) {
|
|
6150
|
+
backgroundColor = surfaceBackground(level, mode);
|
|
6151
|
+
shadowStyle = {};
|
|
6152
|
+
} else {
|
|
6153
|
+
backgroundColor = getElevationSurface(baseColor, elevation, mode);
|
|
6154
|
+
shadowStyle = getElevationShadow(baseColor, elevation, mode);
|
|
6155
|
+
}
|
|
6061
6156
|
const glowStyle = glowColor ? getGlowShadow(glowColor, glowIntensity) : {};
|
|
6062
|
-
const applyRounded = rounded ?? !isPlane;
|
|
6157
|
+
const applyRounded = rounded ?? (pressed || !isPlane);
|
|
6063
6158
|
const value = useMemo(
|
|
6064
|
-
() => ({ mode, level:
|
|
6065
|
-
[mode,
|
|
6159
|
+
() => ({ mode, level: resolvedLevel }),
|
|
6160
|
+
[mode, resolvedLevel]
|
|
6066
6161
|
);
|
|
6067
6162
|
return /* @__PURE__ */ jsx(SurfaceContext.Provider, { value, children: /* @__PURE__ */ jsx(
|
|
6068
6163
|
View,
|
|
@@ -7255,13 +7350,14 @@ function MetricGroup({
|
|
|
7255
7350
|
)
|
|
7256
7351
|
] }, i)) });
|
|
7257
7352
|
}
|
|
7353
|
+
var t = getSemanticColors("dark");
|
|
7258
7354
|
var baseBadgeSizeConfig = {
|
|
7259
7355
|
sm: { fontSize: 9, paddingH: 6, paddingV: 2, iconSize: 10 },
|
|
7260
7356
|
md: { fontSize: 10, paddingH: 8, paddingV: 2, iconSize: 12 },
|
|
7261
7357
|
lg: { fontSize: 12, paddingH: 10, paddingV: 4, iconSize: 14 }
|
|
7262
7358
|
};
|
|
7263
7359
|
var variantColors = {
|
|
7264
|
-
plain: { backgroundColor: "
|
|
7360
|
+
plain: { backgroundColor: t["surface-raised"], borderColor: "#1F1F1F" },
|
|
7265
7361
|
pr: {
|
|
7266
7362
|
backgroundColor: "rgba(255, 121, 0, 0.12)",
|
|
7267
7363
|
borderColor: "rgba(255, 121, 0, 0.3)"
|
|
@@ -7501,11 +7597,11 @@ function PrBadge({
|
|
|
7501
7597
|
}
|
|
7502
7598
|
return badge;
|
|
7503
7599
|
}
|
|
7504
|
-
var
|
|
7600
|
+
var t2 = getSemanticColors("dark");
|
|
7505
7601
|
var solidVariantColors = {
|
|
7506
|
-
success:
|
|
7507
|
-
warning:
|
|
7508
|
-
error:
|
|
7602
|
+
success: t2["status-success"],
|
|
7603
|
+
warning: t2["status-warning"],
|
|
7604
|
+
error: t2["status-error"],
|
|
7509
7605
|
neutral: "#6B7280"
|
|
7510
7606
|
};
|
|
7511
7607
|
var ringVariantStyles = {
|
|
@@ -7545,8 +7641,8 @@ var iconColors2 = {
|
|
|
7545
7641
|
warning: "#6B4000",
|
|
7546
7642
|
error: "#5C1A1A",
|
|
7547
7643
|
neutral: "#D1D5DB",
|
|
7548
|
-
"on-track":
|
|
7549
|
-
deviation:
|
|
7644
|
+
"on-track": t2["status-success"],
|
|
7645
|
+
deviation: t2["status-warning"],
|
|
7550
7646
|
future: "#6B7280"
|
|
7551
7647
|
};
|
|
7552
7648
|
var sizeDimensions = {
|
|
@@ -7867,19 +7963,19 @@ function MetricCell({ children, color, fontSize = 11 }) {
|
|
|
7867
7963
|
}
|
|
7868
7964
|
|
|
7869
7965
|
// src/components/custom/Workout/TempoDisplay.tsx
|
|
7870
|
-
var
|
|
7966
|
+
var t3 = getSemanticColors("dark");
|
|
7871
7967
|
var INTER = "Inter, sans-serif";
|
|
7872
7968
|
var TEXT_TERTIARY = "#6B7280";
|
|
7873
|
-
var STATUS_ERROR =
|
|
7874
|
-
var STATUS_SUCCESS =
|
|
7875
|
-
var STATUS_WARNING =
|
|
7969
|
+
var STATUS_ERROR = t3["status-error"];
|
|
7970
|
+
var STATUS_SUCCESS = t3["status-success"];
|
|
7971
|
+
var STATUS_WARNING = t3["status-warning"];
|
|
7876
7972
|
var ON_TARGET_MS = 100;
|
|
7877
7973
|
function getTempoFillPct(elapsedMs, targetMs) {
|
|
7878
7974
|
if (!targetMs) return 100;
|
|
7879
7975
|
return Math.min(100, elapsedMs / targetMs * 100);
|
|
7880
7976
|
}
|
|
7881
7977
|
function activeNumberTone(elapsedMs, targetMs) {
|
|
7882
|
-
if (targetMs == null) return
|
|
7978
|
+
if (targetMs == null) return t3["text-primary"];
|
|
7883
7979
|
const remainingMs = targetMs - elapsedMs;
|
|
7884
7980
|
if (remainingMs > ON_TARGET_MS) return STATUS_WARNING;
|
|
7885
7981
|
if (remainingMs >= -ON_TARGET_MS) return STATUS_SUCCESS;
|
|
@@ -8031,7 +8127,7 @@ function TempoDisplay({
|
|
|
8031
8127
|
style: {
|
|
8032
8128
|
flexDirection: "row",
|
|
8033
8129
|
alignItems: "center",
|
|
8034
|
-
backgroundColor: "
|
|
8130
|
+
backgroundColor: t3["surface-raised"],
|
|
8035
8131
|
paddingHorizontal: chromePadX,
|
|
8036
8132
|
paddingVertical: chromePadY,
|
|
8037
8133
|
borderRadius: chromeRadius
|
|
@@ -8046,7 +8142,7 @@ function TempoDisplay({
|
|
|
8046
8142
|
fontSize: labelFont,
|
|
8047
8143
|
fontWeight: "500",
|
|
8048
8144
|
// Live-muted green while a rep is running, tertiary at rest.
|
|
8049
|
-
color: live ?
|
|
8145
|
+
color: live ? t3["status-live-muted"] : TEXT_TERTIARY,
|
|
8050
8146
|
letterSpacing: 0.5,
|
|
8051
8147
|
textTransform: "uppercase",
|
|
8052
8148
|
marginRight: Math.round(fontSize * 0.5)
|
|
@@ -8104,7 +8200,7 @@ function TempoDisplay({
|
|
|
8104
8200
|
View,
|
|
8105
8201
|
{
|
|
8106
8202
|
style: {
|
|
8107
|
-
backgroundColor: "
|
|
8203
|
+
backgroundColor: t3["surface-overlay"],
|
|
8108
8204
|
borderRadius: 6,
|
|
8109
8205
|
paddingVertical: 8,
|
|
8110
8206
|
paddingHorizontal: 12,
|
|
@@ -8157,13 +8253,13 @@ function TempoDisplay({
|
|
|
8157
8253
|
}
|
|
8158
8254
|
);
|
|
8159
8255
|
}
|
|
8160
|
-
var
|
|
8256
|
+
var t4 = getSemanticColors("dark");
|
|
8161
8257
|
function getDotColor(deviation) {
|
|
8162
8258
|
const abs = Math.abs(deviation);
|
|
8163
|
-
if (deviation < -0.3) return
|
|
8259
|
+
if (deviation < -0.3) return t4["status-success"];
|
|
8164
8260
|
if (abs <= 0.3) return "#6B7280";
|
|
8165
|
-
if (abs <= 0.7) return
|
|
8166
|
-
return
|
|
8261
|
+
if (abs <= 0.7) return t4["status-warning"];
|
|
8262
|
+
return t4["status-error"];
|
|
8167
8263
|
}
|
|
8168
8264
|
function getDeviationDescription(deviation) {
|
|
8169
8265
|
if (deviation < -0.3) return "lighter than planned";
|
|
@@ -8231,19 +8327,19 @@ function DeviationBar({
|
|
|
8231
8327
|
}
|
|
8232
8328
|
);
|
|
8233
8329
|
}
|
|
8234
|
-
var
|
|
8330
|
+
var t5 = getSemanticColors("dark");
|
|
8235
8331
|
var TRACK_BG = "#333333";
|
|
8236
8332
|
var LABEL_COLOR = "#6B7280";
|
|
8237
8333
|
var TARGET_LINE_COLOR = "rgba(33, 150, 243, 0.5)";
|
|
8238
8334
|
var AT_TARGET_GLOW = "0 0 5px 1px rgba(33, 150, 243, 0.35), 0 0 10px 3px rgba(33, 150, 243, 0.15)";
|
|
8239
8335
|
var ZONE = {
|
|
8240
|
-
building:
|
|
8336
|
+
building: t5["status-success"],
|
|
8241
8337
|
// below target ramp-up
|
|
8242
|
-
approaching:
|
|
8338
|
+
approaching: t5["status-warning"],
|
|
8243
8339
|
// nearing target
|
|
8244
|
-
target:
|
|
8340
|
+
target: t5["brand-primary"],
|
|
8245
8341
|
// exactly at target
|
|
8246
|
-
over1:
|
|
8342
|
+
over1: t5["status-error"],
|
|
8247
8343
|
// mild over-target
|
|
8248
8344
|
over2: WORKOUT_TOKENS.intensity.over2,
|
|
8249
8345
|
// moderate over-target
|
|
@@ -8412,12 +8508,12 @@ var MESO_ACCENT_GRADIENT_LIGHT = primitiveRamps.orange[300];
|
|
|
8412
8508
|
var WORKOUT_PILL_DELOAD = primitiveRamps.magenta[600];
|
|
8413
8509
|
|
|
8414
8510
|
// src/components/custom/Workout/WorkoutPill.tsx
|
|
8415
|
-
var
|
|
8511
|
+
var t6 = getSemanticColors("dark");
|
|
8416
8512
|
var statusBgColors = {
|
|
8417
8513
|
completed: "rgba(46,213,115,0.15)",
|
|
8418
8514
|
current: "rgba(255,121,0,0.15)",
|
|
8419
8515
|
next: "transparent",
|
|
8420
|
-
upcoming: "
|
|
8516
|
+
upcoming: t6["surface-raised"],
|
|
8421
8517
|
missed: "rgba(209,67,67,0.1)",
|
|
8422
8518
|
deload: "rgba(186,41,150,0.15)"
|
|
8423
8519
|
};
|
|
@@ -8430,9 +8526,9 @@ var statusBorderStyles = {
|
|
|
8430
8526
|
deload: { borderWidth: 1, borderColor: "rgba(186,41,150,0.3)" }
|
|
8431
8527
|
};
|
|
8432
8528
|
var textColors = {
|
|
8433
|
-
completed:
|
|
8434
|
-
current:
|
|
8435
|
-
next:
|
|
8529
|
+
completed: t6["status-success"],
|
|
8530
|
+
current: t6["brand-primary"],
|
|
8531
|
+
next: t6["brand-primary"],
|
|
8436
8532
|
upcoming: "#6B7280",
|
|
8437
8533
|
missed: "rgba(209,67,67,0.7)",
|
|
8438
8534
|
deload: WORKOUT_PILL_DELOAD
|
|
@@ -9579,13 +9675,13 @@ function VelocityStrip({
|
|
|
9579
9675
|
}
|
|
9580
9676
|
return stripContent;
|
|
9581
9677
|
}
|
|
9582
|
-
var
|
|
9678
|
+
var t7 = getSemanticColors("dark");
|
|
9583
9679
|
var dotColorMap = {
|
|
9584
9680
|
untrained: "#2C2C2C",
|
|
9585
|
-
behind:
|
|
9586
|
-
ontrack:
|
|
9587
|
-
target:
|
|
9588
|
-
over:
|
|
9681
|
+
behind: t7["brand-secondary"],
|
|
9682
|
+
ontrack: t7["status-success"],
|
|
9683
|
+
target: t7["brand-primary"],
|
|
9684
|
+
over: t7["status-error"]
|
|
9589
9685
|
};
|
|
9590
9686
|
function MuscleGroupChip({
|
|
9591
9687
|
name,
|
|
@@ -10288,7 +10384,7 @@ function RestTimer({
|
|
|
10288
10384
|
}
|
|
10289
10385
|
);
|
|
10290
10386
|
}
|
|
10291
|
-
var
|
|
10387
|
+
var t8 = getSemanticColors("dark");
|
|
10292
10388
|
var TIMES = "\xD7";
|
|
10293
10389
|
var AT = "@";
|
|
10294
10390
|
function SetsRepsLoad({
|
|
@@ -10300,8 +10396,8 @@ function SetsRepsLoad({
|
|
|
10300
10396
|
className,
|
|
10301
10397
|
...props
|
|
10302
10398
|
}) {
|
|
10303
|
-
const value =
|
|
10304
|
-
const sep =
|
|
10399
|
+
const value = t8["text-primary"];
|
|
10400
|
+
const sep = t8["text-tertiary"];
|
|
10305
10401
|
return /* @__PURE__ */ jsxs(
|
|
10306
10402
|
View,
|
|
10307
10403
|
{
|
|
@@ -10414,14 +10510,14 @@ function ScheduleTiles({ when, now, gap = 1, ...props }) {
|
|
|
10414
10510
|
)
|
|
10415
10511
|
] });
|
|
10416
10512
|
}
|
|
10417
|
-
var
|
|
10513
|
+
var t9 = getSemanticColors("dark");
|
|
10418
10514
|
var INDICATOR_CONFIG = {
|
|
10419
|
-
imbalance: { Icon: ScaleIcon, color:
|
|
10420
|
-
overshoot: { Icon: AlertTriangleIcon, color:
|
|
10421
|
-
"velocity-loss": { Icon: TrendingDownIcon, color:
|
|
10422
|
-
"missed-reps": { Icon: CircleSlashIcon, color:
|
|
10423
|
-
pr: { Icon: AwardIcon, color:
|
|
10424
|
-
info: { Icon: InfoIcon, color:
|
|
10515
|
+
imbalance: { Icon: ScaleIcon, color: t9["status-error"], label: "Left/right imbalance" },
|
|
10516
|
+
overshoot: { Icon: AlertTriangleIcon, color: t9["status-error"], label: "Load overshoot" },
|
|
10517
|
+
"velocity-loss": { Icon: TrendingDownIcon, color: t9["status-warning"], label: "Velocity loss" },
|
|
10518
|
+
"missed-reps": { Icon: CircleSlashIcon, color: t9["status-warning"], label: "Missed reps" },
|
|
10519
|
+
pr: { Icon: AwardIcon, color: t9["status-success"], label: "Personal record" },
|
|
10520
|
+
info: { Icon: InfoIcon, color: t9["status-info"], label: "More info" }
|
|
10425
10521
|
};
|
|
10426
10522
|
var INDICATOR_PRECEDENCE = [
|
|
10427
10523
|
"imbalance",
|
|
@@ -11083,7 +11179,7 @@ function SessionRail({
|
|
|
11083
11179
|
var DEFAULTS = {
|
|
11084
11180
|
label: "SS",
|
|
11085
11181
|
color: getSemanticColors("dark")["brand-primary"],
|
|
11086
|
-
bgBase: "
|
|
11182
|
+
bgBase: getSemanticColors("dark")["background-base"]
|
|
11087
11183
|
};
|
|
11088
11184
|
function SupersetWrapper({
|
|
11089
11185
|
label = DEFAULTS.label,
|
|
@@ -11342,10 +11438,10 @@ function WeekRow({
|
|
|
11342
11438
|
}
|
|
11343
11439
|
);
|
|
11344
11440
|
}
|
|
11345
|
-
var
|
|
11441
|
+
var t10 = getSemanticColors("dark");
|
|
11346
11442
|
var COLORS = {
|
|
11347
|
-
statusSuccess:
|
|
11348
|
-
brandPrimary:
|
|
11443
|
+
statusSuccess: t10["status-success"],
|
|
11444
|
+
brandPrimary: t10["brand-primary"],
|
|
11349
11445
|
borderDefault: "#1F1F1F",
|
|
11350
11446
|
brandPrimarySubtle: "rgba(255,121,0,0.06)"
|
|
11351
11447
|
};
|
|
@@ -11829,12 +11925,12 @@ function PrHistoryModal({
|
|
|
11829
11925
|
}
|
|
11830
11926
|
);
|
|
11831
11927
|
}
|
|
11832
|
-
var
|
|
11833
|
-
var BRAND_PRIMARY9 =
|
|
11928
|
+
var t11 = getSemanticColors("dark");
|
|
11929
|
+
var BRAND_PRIMARY9 = t11["brand-primary"];
|
|
11834
11930
|
var BRAND_PRIMARY_SUBTLE = "rgba(255,121,0,0.12)";
|
|
11835
|
-
var STATUS_SUCCESS2 =
|
|
11836
|
-
var STATUS_WARNING2 =
|
|
11837
|
-
var STATUS_ERROR2 =
|
|
11931
|
+
var STATUS_SUCCESS2 = t11["status-success"];
|
|
11932
|
+
var STATUS_WARNING2 = t11["status-warning"];
|
|
11933
|
+
var STATUS_ERROR2 = t11["status-error"];
|
|
11838
11934
|
var EMOJI_SETS = {
|
|
11839
11935
|
sleep: ["\u{1F634}", "\u{1F610}", "\u{1F642}", "\u{1F60A}", "\u{1F929}"],
|
|
11840
11936
|
soreness: ["\u{1F635}", "\u{1F623}", "\u{1F610}", "\u{1F642}", "\u{1F4AA}"],
|
|
@@ -12024,13 +12120,13 @@ function ReadinessCheck({
|
|
|
12024
12120
|
)
|
|
12025
12121
|
] }) });
|
|
12026
12122
|
}
|
|
12027
|
-
var
|
|
12028
|
-
var BRAND_PRIMARY10 =
|
|
12123
|
+
var t12 = getSemanticColors("dark");
|
|
12124
|
+
var BRAND_PRIMARY10 = t12["brand-primary"];
|
|
12029
12125
|
var BRAND_PRIMARY_DARK2 = MESO_ACCENT_GRADIENT_DARK;
|
|
12030
12126
|
var BRAND_PRIMARY_LIGHT2 = MESO_ACCENT_GRADIENT_LIGHT;
|
|
12031
|
-
var SUCCESS =
|
|
12032
|
-
var WARNING =
|
|
12033
|
-
var ERROR =
|
|
12127
|
+
var SUCCESS = t12["status-success"];
|
|
12128
|
+
var WARNING = t12["status-warning"];
|
|
12129
|
+
var ERROR = t12["status-error"];
|
|
12034
12130
|
var ACCENT_STOPS2 = [BRAND_PRIMARY_DARK2, BRAND_PRIMARY10, BRAND_PRIMARY_LIGHT2];
|
|
12035
12131
|
var CARD_GRADIENT = `linear-gradient(135deg, ${resolveColor("surface-elevated")} 0%, ${resolveColor("surface-raised")} 100%)`;
|
|
12036
12132
|
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%)";
|
|
@@ -12401,8 +12497,8 @@ var ERROR_PILL_BORDER = "rgba(209,67,67,0.20)";
|
|
|
12401
12497
|
var PLOT_LEFT = 26;
|
|
12402
12498
|
var TOOLTIP_WIDTH = 124;
|
|
12403
12499
|
function timeOf(dateStr) {
|
|
12404
|
-
const
|
|
12405
|
-
return Number.isNaN(
|
|
12500
|
+
const t17 = Date.parse(dateStr);
|
|
12501
|
+
return Number.isNaN(t17) ? 0 : t17;
|
|
12406
12502
|
}
|
|
12407
12503
|
function formatValue(value) {
|
|
12408
12504
|
return `${Math.round(value)}`;
|
|
@@ -12891,10 +12987,10 @@ function StrengthTrendChart({
|
|
|
12891
12987
|
}
|
|
12892
12988
|
);
|
|
12893
12989
|
}
|
|
12894
|
-
var
|
|
12895
|
-
var STATUS_SUCCESS4 =
|
|
12896
|
-
var STATUS_WARNING4 =
|
|
12897
|
-
var STATUS_INFO =
|
|
12990
|
+
var t13 = getSemanticColors("dark");
|
|
12991
|
+
var STATUS_SUCCESS4 = t13["status-success"];
|
|
12992
|
+
var STATUS_WARNING4 = t13["status-warning"];
|
|
12993
|
+
var STATUS_INFO = t13["status-info"];
|
|
12898
12994
|
var DOT_BORDER = "#F3F4F6";
|
|
12899
12995
|
var BAND_FILL = "rgba(46,213,115,0.1)";
|
|
12900
12996
|
var BAND_EDGE = "rgba(46,213,115,0.45)";
|
|
@@ -12937,8 +13033,8 @@ function interpEdge(pixels, x, key) {
|
|
|
12937
13033
|
const a = pixels[i];
|
|
12938
13034
|
const b = pixels[i + 1];
|
|
12939
13035
|
if (x >= a.x && x <= b.x) {
|
|
12940
|
-
const
|
|
12941
|
-
return a[key] +
|
|
13036
|
+
const t17 = b.x === a.x ? 0 : (x - a.x) / (b.x - a.x);
|
|
13037
|
+
return a[key] + t17 * (b[key] - a[key]);
|
|
12942
13038
|
}
|
|
12943
13039
|
}
|
|
12944
13040
|
return pixels[pixels.length - 1][key];
|
|
@@ -13268,13 +13364,13 @@ function CapacityBandChart({
|
|
|
13268
13364
|
}
|
|
13269
13365
|
);
|
|
13270
13366
|
}
|
|
13271
|
-
var
|
|
13367
|
+
var t14 = getSemanticColors("dark");
|
|
13272
13368
|
function glowShadow(color) {
|
|
13273
13369
|
return `0 0 5px 1px ${alpha(color, 0.3)}, 0 0 10px 3px ${alpha(color, 0.12)}`;
|
|
13274
13370
|
}
|
|
13275
13371
|
var DEFAULT_TRACK_COLOR = primitiveColors.charcoal[200];
|
|
13276
13372
|
var DEFAULT_MARKER_COLOR2 = primitiveColors.white;
|
|
13277
|
-
var TICK_COLOR =
|
|
13373
|
+
var TICK_COLOR = t14["text-tertiary"];
|
|
13278
13374
|
var ZONE_SIZES = {
|
|
13279
13375
|
default: {
|
|
13280
13376
|
trackHeight: 14,
|
|
@@ -13457,7 +13553,7 @@ function ZoneTrack({
|
|
|
13457
13553
|
),
|
|
13458
13554
|
ticks?.map((tick, i) => {
|
|
13459
13555
|
const emphasized = tick.emphasized === true;
|
|
13460
|
-
const lineColor = tick.color ?? (emphasized ?
|
|
13556
|
+
const lineColor = tick.color ?? (emphasized ? t14["brand-primary"] : TICK_COLOR);
|
|
13461
13557
|
const lineWidth = emphasized ? s.tickLineEmphasized : s.tickLineNormal;
|
|
13462
13558
|
return /* @__PURE__ */ jsx(
|
|
13463
13559
|
View,
|
|
@@ -13488,7 +13584,7 @@ function ZoneTrack({
|
|
|
13488
13584
|
if (tick.label == null) return null;
|
|
13489
13585
|
const emphasized = tick.emphasized === true;
|
|
13490
13586
|
if (!showTickLabel(i, emphasized)) return null;
|
|
13491
|
-
const labelColor = tick.color ?? (emphasized ?
|
|
13587
|
+
const labelColor = tick.color ?? (emphasized ? t14["brand-primary"] : TICK_COLOR);
|
|
13492
13588
|
const labelNode = /* @__PURE__ */ jsx(
|
|
13493
13589
|
Text,
|
|
13494
13590
|
{
|
|
@@ -13674,7 +13770,7 @@ function VolumeLandmarkBar({
|
|
|
13674
13770
|
}
|
|
13675
13771
|
);
|
|
13676
13772
|
}
|
|
13677
|
-
var
|
|
13773
|
+
var t15 = getSemanticColors("dark");
|
|
13678
13774
|
var statusToken = {
|
|
13679
13775
|
productive: "status-success",
|
|
13680
13776
|
threshold: "status-warning",
|
|
@@ -13691,7 +13787,7 @@ var defaultLabel = {
|
|
|
13691
13787
|
stop: "Stop"
|
|
13692
13788
|
};
|
|
13693
13789
|
function statusPillColor(status) {
|
|
13694
|
-
return
|
|
13790
|
+
return t15[statusToken[status]];
|
|
13695
13791
|
}
|
|
13696
13792
|
function StatusPill2({ status, label, className, style, ...props }) {
|
|
13697
13793
|
const color = statusPillColor(status);
|
|
@@ -13724,7 +13820,7 @@ function StatusPill2({ status, label, className, style, ...props }) {
|
|
|
13724
13820
|
}
|
|
13725
13821
|
);
|
|
13726
13822
|
}
|
|
13727
|
-
var
|
|
13823
|
+
var t16 = getSemanticColors("dark");
|
|
13728
13824
|
var categoryToken = {
|
|
13729
13825
|
productive: null,
|
|
13730
13826
|
threshold: "status-warning",
|
|
@@ -13737,7 +13833,7 @@ var floodOpacity = {
|
|
|
13737
13833
|
};
|
|
13738
13834
|
function liveAuraColor(category) {
|
|
13739
13835
|
const token = categoryToken[category];
|
|
13740
|
-
return token ?
|
|
13836
|
+
return token ? t16[token] : null;
|
|
13741
13837
|
}
|
|
13742
13838
|
function LiveAuraFrame({
|
|
13743
13839
|
category,
|
|
@@ -13766,9 +13862,9 @@ function LiveAuraFrame({
|
|
|
13766
13862
|
position: "relative",
|
|
13767
13863
|
overflow: "hidden",
|
|
13768
13864
|
borderRadius: 10,
|
|
13769
|
-
backgroundColor:
|
|
13865
|
+
backgroundColor: t16["background-base"],
|
|
13770
13866
|
borderWidth: 1,
|
|
13771
|
-
borderColor:
|
|
13867
|
+
borderColor: t16["border-default"]
|
|
13772
13868
|
},
|
|
13773
13869
|
style
|
|
13774
13870
|
],
|
|
@@ -13995,28 +14091,28 @@ function Scatter({
|
|
|
13995
14091
|
testID: "scatter-canvas",
|
|
13996
14092
|
style: { position: "absolute", top: 0, left: 0, width, height, overflow: "hidden" },
|
|
13997
14093
|
children: [
|
|
13998
|
-
ticksOf(yd, TICK_COUNT).map((
|
|
13999
|
-
const y = toY(
|
|
14094
|
+
ticksOf(yd, TICK_COUNT).map((t17, i) => {
|
|
14095
|
+
const y = toY(t17);
|
|
14000
14096
|
return /* @__PURE__ */ jsx(
|
|
14001
14097
|
View,
|
|
14002
14098
|
{
|
|
14003
14099
|
accessibilityElementsHidden: true,
|
|
14004
14100
|
testID: "scatter-gridline-y",
|
|
14005
14101
|
style: { position: "absolute", left: PLOT_LEFT2, width: innerW, top: y, height: 1, backgroundColor: GRID_LINE2 },
|
|
14006
|
-
children: /* @__PURE__ */ jsx(Text, { className: "text-[9px] text-text-tertiary", style: { position: "absolute", left: -PLOT_LEFT2, top: -6, width: PLOT_LEFT2 - 6, textAlign: "right" }, children: formatTick(
|
|
14102
|
+
children: /* @__PURE__ */ jsx(Text, { className: "text-[9px] text-text-tertiary", style: { position: "absolute", left: -PLOT_LEFT2, top: -6, width: PLOT_LEFT2 - 6, textAlign: "right" }, children: formatTick(t17) })
|
|
14007
14103
|
},
|
|
14008
14104
|
`y-${i}`
|
|
14009
14105
|
);
|
|
14010
14106
|
}),
|
|
14011
|
-
ticksOf(xd, TICK_COUNT).map((
|
|
14012
|
-
const x = toX(
|
|
14107
|
+
ticksOf(xd, TICK_COUNT).map((t17, i) => {
|
|
14108
|
+
const x = toX(t17);
|
|
14013
14109
|
return /* @__PURE__ */ jsx(
|
|
14014
14110
|
View,
|
|
14015
14111
|
{
|
|
14016
14112
|
accessibilityElementsHidden: true,
|
|
14017
14113
|
testID: "scatter-gridline-x",
|
|
14018
14114
|
style: { position: "absolute", top: PLOT_TOP, height: innerH, left: x, width: 1, backgroundColor: GRID_LINE2 },
|
|
14019
|
-
children: /* @__PURE__ */ jsx(Text, { className: "text-[9px] text-text-tertiary", style: { position: "absolute", top: innerH + 4, left: -16, width: 32, textAlign: "center" }, children: formatTick(
|
|
14115
|
+
children: /* @__PURE__ */ jsx(Text, { className: "text-[9px] text-text-tertiary", style: { position: "absolute", top: innerH + 4, left: -16, width: 32, textAlign: "center" }, children: formatTick(t17) })
|
|
14020
14116
|
},
|
|
14021
14117
|
`x-${i}`
|
|
14022
14118
|
);
|
|
@@ -14151,23 +14247,23 @@ function Gauge2({
|
|
|
14151
14247
|
testID: "gauge",
|
|
14152
14248
|
...props,
|
|
14153
14249
|
children: [
|
|
14154
|
-
ticks.map((
|
|
14250
|
+
ticks.map((t17) => /* @__PURE__ */ jsx(
|
|
14155
14251
|
View,
|
|
14156
14252
|
{
|
|
14157
14253
|
accessibilityElementsHidden: true,
|
|
14158
14254
|
testID: "gauge-segment",
|
|
14159
14255
|
style: {
|
|
14160
14256
|
position: "absolute",
|
|
14161
|
-
left:
|
|
14162
|
-
top:
|
|
14257
|
+
left: t17.left - tickThickness / 2,
|
|
14258
|
+
top: t17.top - tickLength / 2,
|
|
14163
14259
|
width: tickThickness,
|
|
14164
14260
|
height: tickLength,
|
|
14165
14261
|
borderRadius: tickThickness / 2,
|
|
14166
|
-
backgroundColor:
|
|
14167
|
-
transform: [{ rotate:
|
|
14262
|
+
backgroundColor: t17.color,
|
|
14263
|
+
transform: [{ rotate: t17.rotate }]
|
|
14168
14264
|
}
|
|
14169
14265
|
},
|
|
14170
|
-
|
|
14266
|
+
t17.key
|
|
14171
14267
|
)),
|
|
14172
14268
|
/* @__PURE__ */ jsxs(View, { style: { position: "absolute", top: 0, left: 0, width: size, height: size }, className: "items-center justify-center", children: [
|
|
14173
14269
|
/* @__PURE__ */ jsxs(View, { className: "flex-row items-baseline gap-0.5", children: [
|
|
@@ -14587,6 +14683,6 @@ function composeValidators(...validators) {
|
|
|
14587
14683
|
};
|
|
14588
14684
|
}
|
|
14589
14685
|
|
|
14590
|
-
export { Accordion, AccordionButton, AccordionItem, AccordionPanel, ActivityIcon, Alert, AlertDescription, AlertTitle, AlertTriangleIcon, Autocomplete, Avatar, AvatarBadge, AvatarGroup, AwardIcon, Badge, BadgeText, BaseBadge, BluetoothIcon, BrandLockup, BreadcrumbItem, Breadcrumbs, Button, ButtonIcon, ButtonSpinner, ButtonText, CATEGORICAL_CVD_SAFE_MAX, CapacityBandChart, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardSkeleton, CardTitle, Checkbox, CheckboxGroup, Chip, CircleSlashIcon, CircularProgress, CircularTimer, Collapse, CollapseButton, CollapseContent, DashboardShell, DataRow, DateTime, DeviationBar, DeviceIndicator, DeviceMenu, DeviceRow, Divider, Drawer, DrawerBody, DrawerFooter, DrawerHeader, DumbbellIcon, EmptyState, ExerciseCard, ExerciseCardHeading, ExerciseHeading, ExerciseIndicator, FatigueMeter, FormActions, FormField, FormRow, FormSection, Gauge2 as Gauge, HStack, Heading, HelpTip, HistoryIcon, INDICATOR_PRECEDENCE, IconBox, Indicator, InfoIcon, Input, InputBar, InputGroup, IntensityBar, Label, LabelWithHelp, LayersIcon, Link, ListItem, ListItemContent, ListItemDivider, ListItemIcon, ListItemTrailing, LiveAuraFrame, METRIC_FONT, Menu, MenuDivider, MenuGroup, MenuItem, MenuList, MenuTrigger, MesoCard, MesoProgressBar, MesoStatusCard, Metric, MetricCell, MetricGroup, MetricTiles, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalTitle, MuscleGroupChip, NavItem, Overline, Paragraph, PasswordInput, PersonStandingIcon, Pill, PlaceholderStrip, Popover, PopoverCloseButton, PopoverContent, PopoverTrigger, PrBadge, PrHistoryModal, Progress, ProgressSteps, Radio, RadioGroup, ReadinessCheck, RestTimer, SET_STRIP_VARIABLE_COLOR, SET_STRIP_ZONES, SURFACE_LEVEL_TOKEN, ScaleIcon, Scatter, ScheduleTiles, Section, SectionContent, SectionHeader, SegmentedBar, SegmentedProgressBar, Select, SessionHeader, SessionRail, SessionStatePill, SetBar, SetRow, SetStrip, SetTableHeader, SetsRepsLoad, SideNav, Sidebar, SidebarContent, SidebarDivider, SidebarFooter, SidebarHeader, SidebarItem, SidebarSection, Skeleton, SkeletonCard, SkeletonCircle, SkeletonListItem, SkeletonText, Sparkline, Spinner, Stack, StarIcon, StatusDot, StatusPill2 as StatusPill, StepContent, StepIndicator, StepLabel, Stepper, Step as StepperStep, StrengthTrendChart, SupersetWrapper, Surface, SurfaceContext, SvgIcon, Switch, Tab, TabList, TabPanel, TabPanels, Table, TableBody, TableCell, TableHeader, TableHeaderCell, TablePagination, TableRow, Tabs, TempoDisplay, Tile, TimerReadout, Toast, ToastProvider, ToolbarButton, ToolbarButtonGroup, Tooltip, TopBar, Treemap, TrendingDownIcon, Typography, VStack, VelocityStrip, VoltrasMark, VolumeLandmarkBar, WeekRow, WeightBadge, WorkoutCard, WorkoutPill, ZoneTrack, alpha, applyThemePreset, audiobookPreset, bestTextColor, buttonSizes, calculateMeanVelocity, calculateVelocityLoss, categoricalPalette, cn, componentElevationRanges, composeValidators, createFieldId, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultNavItems, defaultPreset, discreteRainbow, divergingScale, elevationSystem, formatDateTime, formatDuration, formatPrescription, formatSignedPct, formatVelocity, getBaseSurfaceColor, getCategoricalColor, getContrastText, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getFieldAriaProps, getFieldValidationProps, getGlowShadow, getHoverColors, getLuminance, getResultColor, getSemanticColors, getStatusColor, getThemeCSSVars, getValidatedElevation, getVelocityZoneColor, getVelocityZoneName, gluestackConfig, hasMaxLength, hasMinLength, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, isEmpty, isValidEmail, lightThemeCSSVars, lighten, linearGradient, liveAuraColor, neumorphicShadows, onSurfaceColors, paceTone, paceToneColor, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, resolveIndicator, rgbToHex, rgbToHsv, roundRpe, roundTempo, roundWeight, rpeColor, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, statusPillColor, surfaceBackground, surfaceGradient, useOnSurfaceColor, useSurface, useSurfaceMode, useTable, useTimer, useToast, useToolbarButton, validateCssPropertyManifest, validationRules, velocityZoneColor };
|
|
14686
|
+
export { Accordion, AccordionButton, AccordionItem, AccordionPanel, ActivityIcon, Alert, AlertDescription, AlertTitle, AlertTriangleIcon, Autocomplete, Avatar, AvatarBadge, AvatarGroup, AwardIcon, Badge, BadgeText, BaseBadge, BluetoothIcon, BrandLockup, BreadcrumbItem, Breadcrumbs, Button, ButtonIcon, ButtonSpinner, ButtonText, CATEGORICAL_CVD_SAFE_MAX, CapacityBandChart, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardSkeleton, CardTitle, Checkbox, CheckboxGroup, Chip, CircleSlashIcon, CircularProgress, CircularTimer, Collapse, CollapseButton, CollapseContent, DashboardShell, DataRow, DateTime, DeviationBar, DeviceIndicator, DeviceMenu, DeviceRow, Divider, Drawer, DrawerBody, DrawerFooter, DrawerHeader, DumbbellIcon, EmptyState, ExerciseCard, ExerciseCardHeading, ExerciseHeading, ExerciseIndicator, FatigueMeter, FormActions, FormField, FormRow, FormSection, Gauge2 as Gauge, HStack, Heading, HelpTip, HistoryIcon, INDICATOR_PRECEDENCE, IconBox, Indicator, InfoIcon, Input, InputBar, InputGroup, IntensityBar, Label, LabelWithHelp, LayersIcon, Link, ListItem, ListItemContent, ListItemDivider, ListItemIcon, ListItemTrailing, LiveAuraFrame, METRIC_FONT, Menu, MenuDivider, MenuGroup, MenuItem, MenuList, MenuTrigger, MesoCard, MesoProgressBar, MesoStatusCard, Metric, MetricCell, MetricGroup, MetricTiles, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalTitle, MuscleGroupChip, NavItem, Overline, PRESSED_ELEVATION_LEVEL, Paragraph, PasswordInput, PersonStandingIcon, Pill, PlaceholderStrip, Popover, PopoverCloseButton, PopoverContent, PopoverTrigger, PrBadge, PrHistoryModal, Progress, ProgressSteps, Radio, RadioGroup, ReadinessCheck, RestTimer, SET_STRIP_VARIABLE_COLOR, SET_STRIP_ZONES, SURFACE_LEVEL_TOKEN, ScaleIcon, Scatter, ScheduleTiles, Section, SectionContent, SectionHeader, SegmentedBar, SegmentedProgressBar, Select, SessionHeader, SessionRail, SessionStatePill, SetBar, SetRow, SetStrip, SetTableHeader, SetsRepsLoad, SideNav, Sidebar, SidebarContent, SidebarDivider, SidebarFooter, SidebarHeader, SidebarItem, SidebarSection, Skeleton, SkeletonCard, SkeletonCircle, SkeletonListItem, SkeletonText, Sparkline, Spinner, Stack, StarIcon, StatusDot, StatusPill2 as StatusPill, StepContent, StepIndicator, StepLabel, Stepper, Step as StepperStep, StrengthTrendChart, SupersetWrapper, Surface, SurfaceContext, SvgIcon, Switch, Tab, TabList, TabPanel, TabPanels, Table, TableBody, TableCell, TableHeader, TableHeaderCell, TablePagination, TableRow, Tabs, TempoDisplay, Tile, TimerReadout, Toast, ToastProvider, ToolbarButton, ToolbarButtonGroup, Tooltip, TopBar, Treemap, TrendingDownIcon, Typography, VStack, VelocityStrip, VoltrasMark, VolumeLandmarkBar, WeekRow, WeightBadge, WorkoutCard, WorkoutPill, ZoneTrack, alpha, applyThemePreset, audiobookPreset, backgroundFrameDark, bestTextColor, buttonSizes, calculateMeanVelocity, calculateVelocityLoss, categoricalPalette, cn, componentElevationRanges, composeValidators, createFieldId, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultNavItems, defaultPreset, discreteRainbow, divergingScale, elevationSystem, formatDateTime, formatDuration, formatPrescription, formatSignedPct, formatVelocity, getBaseSurfaceColor, getCategoricalColor, getContrastText, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getFieldAriaProps, getFieldValidationProps, getGlowShadow, getHoverColors, getLuminance, getPressedRecessShadow, getResultColor, getSemanticColors, getStatusColor, getThemeCSSVars, getValidatedElevation, getVelocityZoneColor, getVelocityZoneName, gluestackConfig, hasMaxLength, hasMinLength, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, isEmpty, isValidEmail, lightThemeCSSVars, lighten, linearGradient, liveAuraColor, neumorphicShadows, onSurfaceColors, paceTone, paceToneColor, pressedLevel, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, resolveIndicator, rgbToHex, rgbToHsv, roundRpe, roundTempo, roundWeight, rpeColor, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, statusPillColor, surfaceBackground, surfaceGradient, surfaceRampDark, useOnSurfaceColor, useSurface, useSurfaceMode, useTable, useTimer, useToast, useToolbarButton, validateCssPropertyManifest, validationRules, velocityZoneColor };
|
|
14591
14687
|
//# sourceMappingURL=index.mjs.map
|
|
14592
14688
|
//# sourceMappingURL=index.mjs.map
|