@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.
Files changed (49) hide show
  1. package/dist/bodymap.js +78 -24
  2. package/dist/bodymap.js.map +1 -1
  3. package/dist/bodymap.mjs +78 -24
  4. package/dist/bodymap.mjs.map +1 -1
  5. package/dist/index.d.mts +31 -8
  6. package/dist/index.d.ts +31 -8
  7. package/dist/index.js +214 -113
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +210 -114
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/pages.js +214 -157
  12. package/dist/pages.js.map +1 -1
  13. package/dist/pages.mjs +214 -157
  14. package/dist/pages.mjs.map +1 -1
  15. package/dist/theme/index.d.mts +129 -34
  16. package/dist/theme/index.d.ts +129 -34
  17. package/dist/theme/index.js +95 -19
  18. package/dist/theme/index.js.map +1 -1
  19. package/dist/theme/index.mjs +92 -20
  20. package/dist/theme/index.mjs.map +1 -1
  21. package/dist/theme/tokens-css.js +88 -24
  22. package/dist/theme/tokens-css.js.map +1 -1
  23. package/dist/theme/tokens-css.mjs +88 -24
  24. package/dist/theme/tokens-css.mjs.map +1 -1
  25. package/package.json +1 -1
  26. package/src/components/custom/Workout/BaseBadge.tsx +5 -5
  27. package/src/components/custom/Workout/RowInventory.stories.tsx +5 -2
  28. package/src/components/custom/Workout/S3FullRail.stories.tsx +13 -1
  29. package/src/components/custom/Workout/SessionHeader.tsx +2 -2
  30. package/src/components/custom/Workout/SessionRail.stories.tsx +4 -1
  31. package/src/components/custom/Workout/SessionRail.tsx +5 -5
  32. package/src/components/custom/Workout/SupersetWrapper.stories.tsx +16 -25
  33. package/src/components/custom/Workout/SupersetWrapper.tsx +1 -1
  34. package/src/components/custom/Workout/TempoDisplay.tsx +3 -7
  35. package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +4 -1
  36. package/src/components/custom/Workout/WorkoutPill.tsx +2 -2
  37. package/src/components/ui/surface/Surface.stories.tsx +195 -1
  38. package/src/components/ui/surface/Surface.test.tsx +148 -9
  39. package/src/components/ui/surface/Surface.tsx +37 -9
  40. package/src/components/ui/surface/SurfaceContext.ts +48 -8
  41. package/src/components/ui/surface/index.ts +1 -0
  42. package/src/components/ui/surface/surface.contract.test.ts +283 -0
  43. package/src/theme/ColorSystem.stories.tsx +232 -47
  44. package/src/theme/config.ts +12 -0
  45. package/src/theme/elevation.ts +90 -67
  46. package/src/theme/global.css +35 -9
  47. package/src/theme/tokens/primitives.ts +40 -0
  48. package/src/theme/tokens/semantic.ts +63 -14
  49. 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
- "surface-base": primitiveColors.charcoal[700],
916
- // main surface
917
- "surface-elevated": primitiveColors.charcoal[600],
918
- // elevated surface
919
- "surface-raised": primitiveColors.charcoal[500],
920
- // raised surface
921
- "surface-overlay": primitiveColors.charcoal[600],
922
- // overlay surface
923
- "surface-input": primitiveColors.charcoal[600],
924
- // input surface
925
- // Background colors
926
- "background-base": primitiveColors.charcoal[900],
927
- // darkest charcoal
928
- "background-default": primitiveColors.charcoal[700],
929
- // main background
930
- "background-subtle": primitiveColors.charcoal[500],
931
- // subtle background
932
- // Border colors
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((t16) => t16.id !== id));
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 backgroundColor = isPlane ? surfaceBackground(level, mode) : getElevationSurface(baseColor, elevation, mode);
6060
- const shadowStyle = isPlane ? {} : getElevationShadow(baseColor, elevation, mode);
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: level ?? inherited.level }),
6065
- [mode, level, inherited.level]
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: "#1C1C1C", borderColor: "#1F1F1F" },
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 t = getSemanticColors("dark");
7600
+ var t2 = getSemanticColors("dark");
7505
7601
  var solidVariantColors = {
7506
- success: t["status-success"],
7507
- warning: t["status-warning"],
7508
- error: t["status-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": t["status-success"],
7549
- deviation: t["status-warning"],
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 t2 = getSemanticColors("dark");
7966
+ var t3 = getSemanticColors("dark");
7871
7967
  var INTER = "Inter, sans-serif";
7872
7968
  var TEXT_TERTIARY = "#6B7280";
7873
- var STATUS_ERROR = t2["status-error"];
7874
- var STATUS_SUCCESS = t2["status-success"];
7875
- var STATUS_WARNING = t2["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 t2["text-primary"];
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: "#1C1C1C",
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 ? t2["status-live-muted"] : TEXT_TERTIARY,
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: "#191919",
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 t3 = getSemanticColors("dark");
8256
+ var t4 = getSemanticColors("dark");
8161
8257
  function getDotColor(deviation) {
8162
8258
  const abs = Math.abs(deviation);
8163
- if (deviation < -0.3) return t3["status-success"];
8259
+ if (deviation < -0.3) return t4["status-success"];
8164
8260
  if (abs <= 0.3) return "#6B7280";
8165
- if (abs <= 0.7) return t3["status-warning"];
8166
- return t3["status-error"];
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 t4 = getSemanticColors("dark");
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: t4["status-success"],
8336
+ building: t5["status-success"],
8241
8337
  // below target ramp-up
8242
- approaching: t4["status-warning"],
8338
+ approaching: t5["status-warning"],
8243
8339
  // nearing target
8244
- target: t4["brand-primary"],
8340
+ target: t5["brand-primary"],
8245
8341
  // exactly at target
8246
- over1: t4["status-error"],
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 t5 = getSemanticColors("dark");
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: "#1C1C1C",
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: t5["status-success"],
8434
- current: t5["brand-primary"],
8435
- next: t5["brand-primary"],
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 t6 = getSemanticColors("dark");
9678
+ var t7 = getSemanticColors("dark");
9583
9679
  var dotColorMap = {
9584
9680
  untrained: "#2C2C2C",
9585
- behind: t6["brand-secondary"],
9586
- ontrack: t6["status-success"],
9587
- target: t6["brand-primary"],
9588
- over: t6["status-error"]
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 t7 = getSemanticColors("dark");
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 = t7["text-primary"];
10304
- const sep = t7["text-tertiary"];
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 t8 = getSemanticColors("dark");
10513
+ var t9 = getSemanticColors("dark");
10418
10514
  var INDICATOR_CONFIG = {
10419
- imbalance: { Icon: ScaleIcon, color: t8["status-error"], label: "Left/right imbalance" },
10420
- overshoot: { Icon: AlertTriangleIcon, color: t8["status-error"], label: "Load overshoot" },
10421
- "velocity-loss": { Icon: TrendingDownIcon, color: t8["status-warning"], label: "Velocity loss" },
10422
- "missed-reps": { Icon: CircleSlashIcon, color: t8["status-warning"], label: "Missed reps" },
10423
- pr: { Icon: AwardIcon, color: t8["status-success"], label: "Personal record" },
10424
- info: { Icon: InfoIcon, color: t8["status-info"], label: "More info" }
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: "#101010"
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 t9 = getSemanticColors("dark");
11441
+ var t10 = getSemanticColors("dark");
11346
11442
  var COLORS = {
11347
- statusSuccess: t9["status-success"],
11348
- brandPrimary: t9["brand-primary"],
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 t10 = getSemanticColors("dark");
11833
- var BRAND_PRIMARY9 = t10["brand-primary"];
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 = t10["status-success"];
11836
- var STATUS_WARNING2 = t10["status-warning"];
11837
- var STATUS_ERROR2 = t10["status-error"];
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 t11 = getSemanticColors("dark");
12028
- var BRAND_PRIMARY10 = t11["brand-primary"];
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 = t11["status-success"];
12032
- var WARNING = t11["status-warning"];
12033
- var ERROR = t11["status-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 t16 = Date.parse(dateStr);
12405
- return Number.isNaN(t16) ? 0 : t16;
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 t12 = getSemanticColors("dark");
12895
- var STATUS_SUCCESS4 = t12["status-success"];
12896
- var STATUS_WARNING4 = t12["status-warning"];
12897
- var STATUS_INFO = t12["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 t16 = b.x === a.x ? 0 : (x - a.x) / (b.x - a.x);
12941
- return a[key] + t16 * (b[key] - 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 t13 = getSemanticColors("dark");
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 = t13["text-tertiary"];
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 ? t13["brand-primary"] : TICK_COLOR);
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 ? t13["brand-primary"] : TICK_COLOR);
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 t14 = getSemanticColors("dark");
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 t14[statusToken[status]];
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 t15 = getSemanticColors("dark");
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 ? t15[token] : null;
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: t15["background-base"],
13865
+ backgroundColor: t16["background-base"],
13770
13866
  borderWidth: 1,
13771
- borderColor: t15["border-default"]
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((t16, i) => {
13999
- const y = toY(t16);
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(t16) })
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((t16, i) => {
14012
- const x = toX(t16);
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(t16) })
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((t16) => /* @__PURE__ */ jsx(
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: t16.left - tickThickness / 2,
14162
- top: t16.top - tickLength / 2,
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: t16.color,
14167
- transform: [{ rotate: t16.rotate }]
14262
+ backgroundColor: t17.color,
14263
+ transform: [{ rotate: t17.rotate }]
14168
14264
  }
14169
14265
  },
14170
- t16.key
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