@titan-design/react-ui 0.11.0 → 0.12.1
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 +173 -343
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +173 -343
- package/dist/bodymap.mjs.map +1 -1
- package/dist/index.d.mts +27 -22
- package/dist/index.d.ts +27 -22
- package/dist/index.js +366 -561
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +360 -553
- package/dist/index.mjs.map +1 -1
- package/dist/pages.js +242 -407
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +242 -407
- package/dist/pages.mjs.map +1 -1
- package/dist/theme/index.d.mts +250 -1157
- package/dist/theme/index.d.ts +250 -1157
- package/dist/theme/index.js +234 -408
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +227 -399
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/tokens-css.js +141 -140
- package/dist/theme/tokens-css.js.map +1 -1
- package/dist/theme/tokens-css.mjs +141 -140
- package/dist/theme/tokens-css.mjs.map +1 -1
- package/dist/theme/tokens.d.mts +904 -0
- package/dist/theme/tokens.d.ts +904 -0
- package/dist/theme/tokens.js +856 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/theme/tokens.mjs +833 -0
- package/dist/theme/tokens.mjs.map +1 -0
- package/package.json +7 -1
- package/src/arch/Architecture.stories.tsx +9 -9
- package/src/components/custom/DateTime/DateTime.stories.tsx +1 -1
- package/src/components/custom/Fatigue/DualGhostSpark.stories.tsx +3 -3
- package/src/components/custom/Fatigue/FatigueLights.stories.tsx +2 -2
- package/src/components/custom/Fatigue/GhostSpark.stories.tsx +3 -3
- package/src/components/custom/Fatigue/LiveFatigueCard.tsx +1 -1
- package/src/components/custom/Fatigue/LiveFatiguePanel.stories.tsx +2 -2
- package/src/components/custom/Fatigue/RomProgressionChart.stories.tsx +2 -2
- package/src/components/custom/Fatigue/SilverRedPalette.stories.tsx +4 -4
- package/src/components/custom/Fatigue/VelocityHero.stories.tsx +3 -3
- package/src/components/custom/Fatigue/VerdictHero.stories.tsx +2 -2
- package/src/components/custom/Fatigue/fatigue-tokens.ts +12 -12
- package/src/components/custom/Sidebar/Sidebar.tsx +4 -4
- package/src/components/custom/Table/Table.tsx +2 -2
- package/src/components/custom/Workout/ActiveWorkoutPage.tsx +3 -3
- package/src/components/custom/Workout/BaseBadge.test.tsx +6 -1
- package/src/components/custom/Workout/BaseBadge.tsx +1 -1
- package/src/components/custom/Workout/BodyMap.tsx +2 -2
- package/src/components/custom/Workout/BodyMapDetailPanel.tsx +2 -2
- package/src/components/custom/Workout/DeviationBar.test.tsx +2 -1
- package/src/components/custom/Workout/DeviationBar.tsx +3 -2
- package/src/components/custom/Workout/ExerciseCard.test.tsx +3 -3
- package/src/components/custom/Workout/ExerciseCard.tsx +2 -2
- package/src/components/custom/Workout/ExerciseDetailPage.tsx +4 -4
- package/src/components/custom/Workout/InputBar.tsx +2 -2
- package/src/components/custom/Workout/LiveAuraFrame.stories.tsx +1 -1
- package/src/components/custom/Workout/LiveAuraFrame.test.tsx +1 -1
- package/src/components/custom/Workout/LiveAuraFrame.tsx +3 -3
- package/src/components/custom/Workout/MesoCard.tsx +3 -1
- package/src/components/custom/Workout/MuscleGroupChip.tsx +4 -3
- package/src/components/custom/Workout/PrHistoryModal.tsx +2 -2
- package/src/components/custom/Workout/ProgramPlanningPage.tsx +1 -1
- package/src/components/custom/Workout/README.md +1 -1
- package/src/components/custom/Workout/ReadinessCheck.tsx +2 -2
- package/src/components/custom/Workout/RestTimer.tsx +2 -2
- package/src/components/custom/Workout/S3SetTypes.stories.tsx +3 -3
- package/src/components/custom/Workout/SessionHeader.stories.tsx +2 -2
- package/src/components/custom/Workout/SessionHeader.tsx +1 -1
- package/src/components/custom/Workout/SessionRail.stories.tsx +2 -2
- package/src/components/custom/Workout/SessionRail.tsx +13 -5
- package/src/components/custom/Workout/SetBar.tsx +3 -3
- package/src/components/custom/Workout/SetRow.test.tsx +6 -3
- package/src/components/custom/Workout/StatusDot.tsx +5 -4
- package/src/components/custom/Workout/StrengthTrendChart.tsx +1 -1
- package/src/components/custom/Workout/TrainingStatusPage.tsx +2 -2
- package/src/components/custom/Workout/VelocityStrip.test.tsx +5 -2
- package/src/components/custom/Workout/VelocityStrip.tsx +4 -4
- package/src/components/custom/Workout/VolumeLandmarkBar.tsx +3 -3
- package/src/components/custom/Workout/WeightBadge.test.tsx +6 -1
- package/src/components/custom/Workout/WeightBadge.tsx +2 -1
- package/src/components/custom/Workout/WorkoutCard.tsx +3 -1
- package/src/components/custom/Workout/WorkoutPill.tsx +5 -2
- package/src/components/custom/Workout/ZoneTrack.tsx +4 -4
- package/src/components/custom/Workout/setHeadingKit.tsx +14 -8
- package/src/components/custom/Workout/velocity-story-kit.tsx +2 -2
- package/src/components/custom/charts/SetBarChart.tsx +3 -3
- package/src/components/custom/stepper/Stepper.stories.tsx +1 -1
- package/src/components/custom/stepper/Stepper.tsx +3 -3
- package/src/components/shell/DeviceMenu.tsx +2 -2
- package/src/components/shell/README.md +1 -1
- package/src/components/shell/SessionRailSpecimen.stories.tsx +1 -1
- package/src/components/shell/SideNav.tsx +1 -1
- package/src/components/shell/TopBar.tsx +1 -1
- package/src/components/ui/autocomplete/Autocomplete.stories.tsx +1 -1
- package/src/components/ui/autocomplete/Autocomplete.tsx +1 -1
- package/src/components/ui/avatar/Avatar.tsx +2 -2
- package/src/components/ui/badge/Badge.tsx +2 -2
- package/src/components/ui/card/Card.tsx +3 -3
- package/src/components/ui/checkbox/Checkbox.tsx +1 -1
- package/src/components/ui/collapse/Collapse.tsx +1 -1
- package/src/components/ui/data-row/DataRow.stories.tsx +1 -1
- package/src/components/ui/drawer/Drawer.tsx +3 -3
- package/src/components/ui/form-field/FormField.tsx +1 -1
- package/src/components/ui/help-tip/HelpTip.tsx +1 -1
- package/src/components/ui/menu/Menu.tsx +2 -2
- package/src/components/ui/pill/Pill.tsx +2 -2
- package/src/components/ui/popover/Popover.stories.tsx +2 -2
- package/src/components/ui/popover/Popover.tsx +1 -1
- package/src/components/ui/progress/Progress.tsx +3 -3
- package/src/components/ui/radio/Radio.stories.tsx +1 -1
- package/src/components/ui/radio/Radio.tsx +4 -4
- package/src/components/ui/select/Select.tsx +3 -3
- package/src/components/ui/surface/Surface.stories.tsx +3 -3
- package/src/components/ui/surface/Surface.test.tsx +32 -19
- package/src/components/ui/surface/Surface.tsx +3 -3
- package/src/components/ui/surface/SurfaceContext.ts +19 -29
- package/src/components/ui/surface/surface.contract.test.ts +58 -45
- package/src/components/ui/switch/Switch.tsx +1 -1
- package/src/components/ui/tabs/Tabs.tsx +2 -2
- package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +5 -5
- package/src/components/ui/toolbar-button/ToolbarButton.test.tsx +1 -1
- package/src/components/ui/toolbar-button/ToolbarButton.tsx +36 -22
- package/src/stories/PresetShowcase.stories.tsx +21 -21
- package/src/theme/ColorPalettes.stories.tsx +41 -38
- package/src/theme/ColorPrimitives.stories.tsx +89 -41
- package/src/theme/Depth.stories.tsx +312 -0
- package/src/theme/DepthCalibration.stories.tsx +655 -0
- package/src/theme/ThemeProvider.tsx +1 -1
- package/src/theme/barrel.ts +7 -14
- package/src/theme/color-stories.coverage.test.ts +15 -20
- package/src/theme/color-story-kit.tsx +1 -1
- package/src/theme/color-utils.ts +197 -0
- package/src/theme/config.ts +0 -8
- package/src/theme/depth-calibration.test.tsx +97 -0
- package/src/theme/elevation.test.ts +62 -1
- package/src/theme/elevation.ts +34 -8
- package/src/theme/global.css +47 -53
- package/src/theme/grey-ramp.test.ts +166 -0
- package/src/theme/materials.test.ts +106 -0
- package/src/theme/materials.ts +211 -0
- package/src/theme/presets/audiobook.ts +4 -4
- package/src/theme/presets/types.ts +3 -3
- package/src/theme/semantic-contrast.test.ts +83 -0
- package/src/theme/token-export-guard.test.ts +104 -0
- package/src/theme/tokens/primitives.ts +63 -116
- package/src/theme/tokens/semantic.ts +130 -82
- package/src/utils/colors.ts +1 -1
- package/tailwind.config.js +2 -5
- package/src/theme/bar-paper.ts +0 -59
- package/src/theme/shadows.stories.tsx +0 -523
- package/src/theme/shadows.ts +0 -439
package/dist/index.d.mts
CHANGED
|
@@ -2,8 +2,10 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import React__default, { ReactNode } from 'react';
|
|
4
4
|
import { ViewProps, PressableProps, View, TextInputProps, TextInput, ImageSourcePropType, ModalProps as ModalProps$1, TextProps } from 'react-native';
|
|
5
|
-
import { ThemeMode
|
|
6
|
-
export { CATEGORICAL_CVD_SAFE_MAX, CategoricalVariant,
|
|
5
|
+
import { ThemeMode } from './theme/tokens.mjs';
|
|
6
|
+
export { CATEGORICAL_CVD_SAFE_MAX, CategoricalVariant, SURFACE_PLANE_STEPS, bestTextColor, buttonSizes, categoricalPalette, discreteRainbow, divergingScale, getCategoricalColor, getDiscreteRainbowColor, getSemanticColors, greyRamp, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveSpacing, primitiveTypography, primitiveZIndex, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort } from './theme/tokens.mjs';
|
|
7
|
+
import { ElevationLevel, GlowIntensity } from './theme/index.mjs';
|
|
8
|
+
export { ComponentType, CssPropertyEntry, CssPropertyManifest, ElevationConfig, FLOATING_ELEVATION_MIN, GradientStyle, ManifestValidationResult, PRESSED_ELEVATION_LEVEL, ShadowIntensity, ThemeConfig, ThemePreset, ThemePresetColors, ThemePresetFonts, ThemePresetRadii, ThemePresetShadows, ThemeProviderMode, ThemeProviderProps, VariantAxes, VariantOverride, applyThemePreset, audiobookPreset, barPaper, componentElevationRanges, darkThemeCSSVars, darken, defaultPreset, elevationSystem, getBaseSurfaceColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getPressedRecessShadow, getThemeCSSVars, getValidatedElevation, gluestackConfig, grainForTone, grainOpacityForTone, hexToRgb, hsvToRgb, insetWell, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, paperSheet, resolveColor, rgbToHex, rgbToHsv, surfaceGradient, validateCssPropertyManifest } from './theme/index.mjs';
|
|
7
9
|
import { S as SetStripSet, E as ExerciseIndicatorKind, a as SetRowProps } from './pages-CvsFqNtx.mjs';
|
|
8
10
|
export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, C as CapacityBandChart, g as CapacityBandChartProps, h as CapacityBandDataPoint, i as CapacityBandProjection, D as DualVelocityStream, j as DualVelocityStrip, k as DualVelocityStripProps, l as ExerciseCard, m as ExerciseCardProps, n as ExerciseDetailEntry, o as ExerciseDetailHeader, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, s as ExerciseIndicator, t as ExerciseIndicatorProps, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, I as INDICATOR_PRECEDENCE, M as Meso, x as MesoCard, y as MesoCardProps, z as MesoProgressBar, B as MesoProgressBarProps, F as MesoStatus, G as MesoVolumeHeatmapEntry, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, N as ProgramPlanningPageProps, O as ProgramSelection, Q as SET_STRIP_VARIABLE_COLOR, R as SET_STRIP_ZONES, T as SetBar, U as SetBarProps, V as SetRow, W as SetRowState, X as SetRowUnit, Y as StrengthTrendChart, Z as StrengthTrendChartMesoBoundary, _ as StrengthTrendChartProps, $ as StrengthTrendDataPoint, a0 as VbtSummary, a1 as VelocitySet, a2 as VelocityStrip, a3 as VelocityStripProps, a4 as VelocityZoneBandProp, a5 as WeekRow, a6 as WeekRowProps, a7 as WeekRowWorkout, a8 as WorkoutCard, a9 as WorkoutCardProps, aa as WorkoutDot, ab as WorkoutDotStatus, ac as WorkoutGroup, ad as WorkoutMuscleGroup, ae as WorkoutMuscleVolumeStatus, af as WorkoutPill, ag as WorkoutPillProps, ah as WorkoutPillStatus, ai as WorkoutProgress, aj as WorkoutStatus, ak as calculateMeanVelocity, al as calculateVelocityLoss, am as getVelocityZoneColor, an as getVelocityZoneName, ao as resolveIndicator, ap as velocityZoneColor } from './pages-CvsFqNtx.mjs';
|
|
9
11
|
export { M as MesoStatusBadge, a as MesoStatusBadgeVariant, b as MesoStatusCard, c as MesoStatusCardProps, d as MesoStatusCoaching, e as MesoStatusGauge, f as MesoStatusMetric, g as MesoStatusNextTarget } from './MesoStatusCard-CQk71hSi.mjs';
|
|
@@ -1295,7 +1297,7 @@ interface SelectProps<T = string> extends ViewProps {
|
|
|
1295
1297
|
*/
|
|
1296
1298
|
declare function Select<T extends string = string>({ value, values, onChange, onChangeMulti, isMulti, placeholder, isDisabled, isInvalid, options, variant, className, ...props }: SelectProps<T>): react_jsx_runtime.JSX.Element;
|
|
1297
1299
|
|
|
1298
|
-
type ToolbarButtonVariant = 'default' | '
|
|
1300
|
+
type ToolbarButtonVariant = 'default' | 'raised';
|
|
1299
1301
|
type ToolbarButtonSize = 'sm' | 'md' | 'lg';
|
|
1300
1302
|
interface ToolbarButtonContextType {
|
|
1301
1303
|
isOpen: boolean;
|
|
@@ -2023,15 +2025,18 @@ declare function IconBox({ icon: Icon, color, size, className, ...props }: IconB
|
|
|
2023
2025
|
* no new hexes. Darkest → lightest:
|
|
2024
2026
|
* inset (#13100D) < background (#1C1916) < base (#252321) < elevated (#2A2827) < raised (#2D2C2B) < overlay (#302F2E)
|
|
2025
2027
|
*
|
|
2026
|
-
* `
|
|
2027
|
-
* `<Surface pressed>` clamps at (see {@link pressedLevel})
|
|
2028
|
-
*
|
|
2029
|
-
* `
|
|
2028
|
+
* `frame` is the bezel the ramp sits inside — the top bar / side nav chrome —
|
|
2029
|
+
* and the floor a `<Surface pressed>` clamps at (see {@link pressedLevel}).
|
|
2030
|
+
*
|
|
2031
|
+
* It replaced a separate `inset` level in TD-07.14. That level was RETIRED, not
|
|
2032
|
+
* renamed: at ΔE 1.10 from the frame it was an imperceptible duplicate, which is
|
|
2033
|
+
* exactly why pressed (surface − 1) kept collapsing into it.
|
|
2030
2034
|
*/
|
|
2031
|
-
type SurfaceLevel = '
|
|
2035
|
+
type SurfaceLevel = 'frame' | 'background' | 'base' | 'elevated' | 'raised' | 'overlay';
|
|
2032
2036
|
/** On-surface neutral text roles, resolved for the current surface + theme. */
|
|
2033
2037
|
type OnSurfaceRole = 'primary' | 'secondary' | 'tertiary';
|
|
2034
2038
|
declare const SURFACE_LEVEL_TOKEN: {
|
|
2039
|
+
readonly frame: "background-frame";
|
|
2035
2040
|
readonly background: "background-base";
|
|
2036
2041
|
readonly base: "surface-base";
|
|
2037
2042
|
readonly elevated: "surface-elevated";
|
|
@@ -2063,9 +2068,9 @@ declare function surfaceBackground(level: SurfaceLevel, mode: ThemeMode): string
|
|
|
2063
2068
|
/**
|
|
2064
2069
|
* The level a `<Surface pressed>` resolves to: its parent's level stepped one
|
|
2065
2070
|
* index DOWN the ramp — the symmetric twin of a raised surface stepping up —
|
|
2066
|
-
* clamped at the `
|
|
2071
|
+
* clamped at the `frame` floor so a pressed surface never underflows the bezel.
|
|
2067
2072
|
* overlay→raised, raised→elevated, elevated→base, base→background,
|
|
2068
|
-
* background→
|
|
2073
|
+
* background→frame, frame→frame (clamped).
|
|
2069
2074
|
* Pressed exposes ONE level of depth only (no pressed-2).
|
|
2070
2075
|
*/
|
|
2071
2076
|
declare function pressedLevel(parent: SurfaceLevel): SurfaceLevel;
|
|
@@ -2078,7 +2083,7 @@ interface SurfaceProps extends ViewProps {
|
|
|
2078
2083
|
*/
|
|
2079
2084
|
elevation?: ElevationLevel;
|
|
2080
2085
|
/**
|
|
2081
|
-
* Named
|
|
2086
|
+
* Named grey plane (shell / rail / stage). Sets the background directly
|
|
2082
2087
|
* from a semantic surface token — reaching the darker nav/page planes the
|
|
2083
2088
|
* lighten model can't — and drops the default rounding + auto shadow so the
|
|
2084
2089
|
* plane reads full-bleed. Composable with `elevation`'s glow.
|
|
@@ -2110,7 +2115,7 @@ interface SurfaceProps extends ViewProps {
|
|
|
2110
2115
|
* A container that OWNS its background and establishes an on-surface colour
|
|
2111
2116
|
* context. Two grounded ways to pick the background:
|
|
2112
2117
|
* - `elevation` (numeric): the raised-card model — lighten-from-base + shadow.
|
|
2113
|
-
* - `level` (named): a flat
|
|
2118
|
+
* - `level` (named): a flat grey plane straight from a semantic token,
|
|
2114
2119
|
* for the shell / rail / stage backgrounds.
|
|
2115
2120
|
* Either way, descendants read the surface via {@link useOnSurfaceColor} /
|
|
2116
2121
|
* {@link useSurfaceMode} rather than hard-coding `getSemanticColors('dark')`.
|
|
@@ -3295,7 +3300,7 @@ interface SessionHeaderProps extends ViewProps {
|
|
|
3295
3300
|
* done, coloured green/amber against the elapsed-vs-budget pace, with a live marker),
|
|
3296
3301
|
* a mono `n/total sets` label and a ⏱ elapsed readout. Upcoming (`next` set), the tiles
|
|
3297
3302
|
* become Date/Time/Until, the bar is the empty plan shape, and the readout shows the
|
|
3298
|
-
* planned duration. Rendered on the raised
|
|
3303
|
+
* planned duration. Rendered on the raised grey plane; presentational. Composes
|
|
3299
3304
|
* {@link MetricTiles} / {@link ScheduleTiles} + {@link SegmentedProgressBar} +
|
|
3300
3305
|
* {@link TimerReadout}.
|
|
3301
3306
|
*/
|
|
@@ -3548,7 +3553,7 @@ interface ZoneTrackProps extends ViewProps {
|
|
|
3548
3553
|
trackHeight?: number;
|
|
3549
3554
|
/** How far a needle marker overhangs the track top + bottom, in px. Overrides the `size` default (6 default / 9 wall). */
|
|
3550
3555
|
needleOverhang?: number;
|
|
3551
|
-
/** Muted colour of the track behind / beyond the fill. Default a
|
|
3556
|
+
/** Muted colour of the track behind / beyond the fill. Default a grey step. */
|
|
3552
3557
|
trackColor?: string;
|
|
3553
3558
|
className?: string;
|
|
3554
3559
|
}
|
|
@@ -3676,7 +3681,7 @@ interface LiveAuraFrameProps extends ViewProps {
|
|
|
3676
3681
|
declare function liveAuraColor(category: LiveAuraCategory): string | null;
|
|
3677
3682
|
/**
|
|
3678
3683
|
* Full-surface color-flood frame tied to a coaching category. Wraps `children`
|
|
3679
|
-
* on a
|
|
3684
|
+
* on a grey base and layers a radial wash (amber at threshold, red at stop)
|
|
3680
3685
|
* as a decorative, pointer-transparent overlay. The wash uses a solid
|
|
3681
3686
|
* `backgroundColor` fallback (native) plus a web-only `backgroundImage` radial
|
|
3682
3687
|
* gradient; both derive from the same semantic token via `alpha()`.
|
|
@@ -4018,9 +4023,9 @@ declare const STATE_LABEL: Record<FatigueVerdictState, string>;
|
|
|
4018
4023
|
* language: eccentric magenta, concentric cyan, hold and idle in the grey family.
|
|
4019
4024
|
*
|
|
4020
4025
|
* The idle grey has to read as BAND MATERIAL (a pause the lifter held), not as a
|
|
4021
|
-
* hole in the strip: at
|
|
4026
|
+
* hole in the strip: at grey[300] it sat inside the surface-ramp's own value
|
|
4022
4027
|
* range (`surface-raised` #31302F) so a short pause between ECC and CON read as a
|
|
4023
|
-
* gap.
|
|
4028
|
+
* gap. grey[200] clears every content plane while staying quieter than the two
|
|
4024
4029
|
* saturated phase tones, so the band reads contiguous and the phases still lead.
|
|
4025
4030
|
*
|
|
4026
4031
|
* `hold` stays GREY rather than taking a hue of its own. It was briefly amber, which
|
|
@@ -4032,15 +4037,15 @@ declare const STATE_LABEL: Record<FatigueVerdictState, string>;
|
|
|
4032
4037
|
*
|
|
4033
4038
|
* Hold and idle are separated by VALUE rather than hue, plus the `HOLD` label and the
|
|
4034
4039
|
* fact that a hold PACES (it has a prescribed duration) while idle never fills:
|
|
4035
|
-
* unfilled hold
|
|
4036
|
-
* idle
|
|
4037
|
-
* filled hold
|
|
4040
|
+
* unfilled hold grey[300] — darker than idle
|
|
4041
|
+
* idle grey[200]
|
|
4042
|
+
* filled hold grey[100] — brighter than idle
|
|
4038
4043
|
* so a hold reads apart from dead time at any fill level, including the narrow runs
|
|
4039
4044
|
* where the label drops out.
|
|
4040
4045
|
*/
|
|
4041
4046
|
declare const PHASE_AXIS_COLOR: Record<SamplePhase, string>;
|
|
4042
4047
|
/** On-track / at-or-above-working. */
|
|
4043
|
-
declare const SILVER: "#
|
|
4048
|
+
declare const SILVER: "#D4D1CE";
|
|
4044
4049
|
declare const RED_LIGHT: "#F77175";
|
|
4045
4050
|
declare const RED_MID: "#D14343";
|
|
4046
4051
|
declare const RED_DEEP: "#7E1002";
|
|
@@ -4049,7 +4054,7 @@ declare const GRIND_THRESHOLD = 0.35;
|
|
|
4049
4054
|
/** A quiet grey the controlled line dims toward as it drifts (never a colour): a dimmed
|
|
4050
4055
|
* cool grey in the SAME neutral family as SILVER, so a fully-drifted line reads dim-silver
|
|
4051
4056
|
* rather than sinking toward black. Shared with the ROM chart. */
|
|
4052
|
-
declare const DRIFT_GREY: "#
|
|
4057
|
+
declare const DRIFT_GREY: "#5A5958";
|
|
4053
4058
|
/**
|
|
4054
4059
|
* The ghost-spark current-line tint from the two control-aware signals — silver/red.
|
|
4055
4060
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,10 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import React__default, { ReactNode } from 'react';
|
|
4
4
|
import { ViewProps, PressableProps, View, TextInputProps, TextInput, ImageSourcePropType, ModalProps as ModalProps$1, TextProps } from 'react-native';
|
|
5
|
-
import { ThemeMode
|
|
6
|
-
export { CATEGORICAL_CVD_SAFE_MAX, CategoricalVariant,
|
|
5
|
+
import { ThemeMode } from './theme/tokens.js';
|
|
6
|
+
export { CATEGORICAL_CVD_SAFE_MAX, CategoricalVariant, SURFACE_PLANE_STEPS, bestTextColor, buttonSizes, categoricalPalette, discreteRainbow, divergingScale, getCategoricalColor, getDiscreteRainbowColor, getSemanticColors, greyRamp, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveSpacing, primitiveTypography, primitiveZIndex, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort } from './theme/tokens.js';
|
|
7
|
+
import { ElevationLevel, GlowIntensity } from './theme/index.js';
|
|
8
|
+
export { ComponentType, CssPropertyEntry, CssPropertyManifest, ElevationConfig, FLOATING_ELEVATION_MIN, GradientStyle, ManifestValidationResult, PRESSED_ELEVATION_LEVEL, ShadowIntensity, ThemeConfig, ThemePreset, ThemePresetColors, ThemePresetFonts, ThemePresetRadii, ThemePresetShadows, ThemeProviderMode, ThemeProviderProps, VariantAxes, VariantOverride, applyThemePreset, audiobookPreset, barPaper, componentElevationRanges, darkThemeCSSVars, darken, defaultPreset, elevationSystem, getBaseSurfaceColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getPressedRecessShadow, getThemeCSSVars, getValidatedElevation, gluestackConfig, grainForTone, grainOpacityForTone, hexToRgb, hsvToRgb, insetWell, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, paperSheet, resolveColor, rgbToHex, rgbToHsv, surfaceGradient, validateCssPropertyManifest } from './theme/index.js';
|
|
7
9
|
import { S as SetStripSet, E as ExerciseIndicatorKind, a as SetRowProps } from './pages-B1hqnGIC.js';
|
|
8
10
|
export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, C as CapacityBandChart, g as CapacityBandChartProps, h as CapacityBandDataPoint, i as CapacityBandProjection, D as DualVelocityStream, j as DualVelocityStrip, k as DualVelocityStripProps, l as ExerciseCard, m as ExerciseCardProps, n as ExerciseDetailEntry, o as ExerciseDetailHeader, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, s as ExerciseIndicator, t as ExerciseIndicatorProps, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, I as INDICATOR_PRECEDENCE, M as Meso, x as MesoCard, y as MesoCardProps, z as MesoProgressBar, B as MesoProgressBarProps, F as MesoStatus, G as MesoVolumeHeatmapEntry, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, N as ProgramPlanningPageProps, O as ProgramSelection, Q as SET_STRIP_VARIABLE_COLOR, R as SET_STRIP_ZONES, T as SetBar, U as SetBarProps, V as SetRow, W as SetRowState, X as SetRowUnit, Y as StrengthTrendChart, Z as StrengthTrendChartMesoBoundary, _ as StrengthTrendChartProps, $ as StrengthTrendDataPoint, a0 as VbtSummary, a1 as VelocitySet, a2 as VelocityStrip, a3 as VelocityStripProps, a4 as VelocityZoneBandProp, a5 as WeekRow, a6 as WeekRowProps, a7 as WeekRowWorkout, a8 as WorkoutCard, a9 as WorkoutCardProps, aa as WorkoutDot, ab as WorkoutDotStatus, ac as WorkoutGroup, ad as WorkoutMuscleGroup, ae as WorkoutMuscleVolumeStatus, af as WorkoutPill, ag as WorkoutPillProps, ah as WorkoutPillStatus, ai as WorkoutProgress, aj as WorkoutStatus, ak as calculateMeanVelocity, al as calculateVelocityLoss, am as getVelocityZoneColor, an as getVelocityZoneName, ao as resolveIndicator, ap as velocityZoneColor } from './pages-B1hqnGIC.js';
|
|
9
11
|
export { M as MesoStatusBadge, a as MesoStatusBadgeVariant, b as MesoStatusCard, c as MesoStatusCardProps, d as MesoStatusCoaching, e as MesoStatusGauge, f as MesoStatusMetric, g as MesoStatusNextTarget } from './MesoStatusCard-CQk71hSi.js';
|
|
@@ -1295,7 +1297,7 @@ interface SelectProps<T = string> extends ViewProps {
|
|
|
1295
1297
|
*/
|
|
1296
1298
|
declare function Select<T extends string = string>({ value, values, onChange, onChangeMulti, isMulti, placeholder, isDisabled, isInvalid, options, variant, className, ...props }: SelectProps<T>): react_jsx_runtime.JSX.Element;
|
|
1297
1299
|
|
|
1298
|
-
type ToolbarButtonVariant = 'default' | '
|
|
1300
|
+
type ToolbarButtonVariant = 'default' | 'raised';
|
|
1299
1301
|
type ToolbarButtonSize = 'sm' | 'md' | 'lg';
|
|
1300
1302
|
interface ToolbarButtonContextType {
|
|
1301
1303
|
isOpen: boolean;
|
|
@@ -2023,15 +2025,18 @@ declare function IconBox({ icon: Icon, color, size, className, ...props }: IconB
|
|
|
2023
2025
|
* no new hexes. Darkest → lightest:
|
|
2024
2026
|
* inset (#13100D) < background (#1C1916) < base (#252321) < elevated (#2A2827) < raised (#2D2C2B) < overlay (#302F2E)
|
|
2025
2027
|
*
|
|
2026
|
-
* `
|
|
2027
|
-
* `<Surface pressed>` clamps at (see {@link pressedLevel})
|
|
2028
|
-
*
|
|
2029
|
-
* `
|
|
2028
|
+
* `frame` is the bezel the ramp sits inside — the top bar / side nav chrome —
|
|
2029
|
+
* and the floor a `<Surface pressed>` clamps at (see {@link pressedLevel}).
|
|
2030
|
+
*
|
|
2031
|
+
* It replaced a separate `inset` level in TD-07.14. That level was RETIRED, not
|
|
2032
|
+
* renamed: at ΔE 1.10 from the frame it was an imperceptible duplicate, which is
|
|
2033
|
+
* exactly why pressed (surface − 1) kept collapsing into it.
|
|
2030
2034
|
*/
|
|
2031
|
-
type SurfaceLevel = '
|
|
2035
|
+
type SurfaceLevel = 'frame' | 'background' | 'base' | 'elevated' | 'raised' | 'overlay';
|
|
2032
2036
|
/** On-surface neutral text roles, resolved for the current surface + theme. */
|
|
2033
2037
|
type OnSurfaceRole = 'primary' | 'secondary' | 'tertiary';
|
|
2034
2038
|
declare const SURFACE_LEVEL_TOKEN: {
|
|
2039
|
+
readonly frame: "background-frame";
|
|
2035
2040
|
readonly background: "background-base";
|
|
2036
2041
|
readonly base: "surface-base";
|
|
2037
2042
|
readonly elevated: "surface-elevated";
|
|
@@ -2063,9 +2068,9 @@ declare function surfaceBackground(level: SurfaceLevel, mode: ThemeMode): string
|
|
|
2063
2068
|
/**
|
|
2064
2069
|
* The level a `<Surface pressed>` resolves to: its parent's level stepped one
|
|
2065
2070
|
* index DOWN the ramp — the symmetric twin of a raised surface stepping up —
|
|
2066
|
-
* clamped at the `
|
|
2071
|
+
* clamped at the `frame` floor so a pressed surface never underflows the bezel.
|
|
2067
2072
|
* overlay→raised, raised→elevated, elevated→base, base→background,
|
|
2068
|
-
* background→
|
|
2073
|
+
* background→frame, frame→frame (clamped).
|
|
2069
2074
|
* Pressed exposes ONE level of depth only (no pressed-2).
|
|
2070
2075
|
*/
|
|
2071
2076
|
declare function pressedLevel(parent: SurfaceLevel): SurfaceLevel;
|
|
@@ -2078,7 +2083,7 @@ interface SurfaceProps extends ViewProps {
|
|
|
2078
2083
|
*/
|
|
2079
2084
|
elevation?: ElevationLevel;
|
|
2080
2085
|
/**
|
|
2081
|
-
* Named
|
|
2086
|
+
* Named grey plane (shell / rail / stage). Sets the background directly
|
|
2082
2087
|
* from a semantic surface token — reaching the darker nav/page planes the
|
|
2083
2088
|
* lighten model can't — and drops the default rounding + auto shadow so the
|
|
2084
2089
|
* plane reads full-bleed. Composable with `elevation`'s glow.
|
|
@@ -2110,7 +2115,7 @@ interface SurfaceProps extends ViewProps {
|
|
|
2110
2115
|
* A container that OWNS its background and establishes an on-surface colour
|
|
2111
2116
|
* context. Two grounded ways to pick the background:
|
|
2112
2117
|
* - `elevation` (numeric): the raised-card model — lighten-from-base + shadow.
|
|
2113
|
-
* - `level` (named): a flat
|
|
2118
|
+
* - `level` (named): a flat grey plane straight from a semantic token,
|
|
2114
2119
|
* for the shell / rail / stage backgrounds.
|
|
2115
2120
|
* Either way, descendants read the surface via {@link useOnSurfaceColor} /
|
|
2116
2121
|
* {@link useSurfaceMode} rather than hard-coding `getSemanticColors('dark')`.
|
|
@@ -3295,7 +3300,7 @@ interface SessionHeaderProps extends ViewProps {
|
|
|
3295
3300
|
* done, coloured green/amber against the elapsed-vs-budget pace, with a live marker),
|
|
3296
3301
|
* a mono `n/total sets` label and a ⏱ elapsed readout. Upcoming (`next` set), the tiles
|
|
3297
3302
|
* become Date/Time/Until, the bar is the empty plan shape, and the readout shows the
|
|
3298
|
-
* planned duration. Rendered on the raised
|
|
3303
|
+
* planned duration. Rendered on the raised grey plane; presentational. Composes
|
|
3299
3304
|
* {@link MetricTiles} / {@link ScheduleTiles} + {@link SegmentedProgressBar} +
|
|
3300
3305
|
* {@link TimerReadout}.
|
|
3301
3306
|
*/
|
|
@@ -3548,7 +3553,7 @@ interface ZoneTrackProps extends ViewProps {
|
|
|
3548
3553
|
trackHeight?: number;
|
|
3549
3554
|
/** How far a needle marker overhangs the track top + bottom, in px. Overrides the `size` default (6 default / 9 wall). */
|
|
3550
3555
|
needleOverhang?: number;
|
|
3551
|
-
/** Muted colour of the track behind / beyond the fill. Default a
|
|
3556
|
+
/** Muted colour of the track behind / beyond the fill. Default a grey step. */
|
|
3552
3557
|
trackColor?: string;
|
|
3553
3558
|
className?: string;
|
|
3554
3559
|
}
|
|
@@ -3676,7 +3681,7 @@ interface LiveAuraFrameProps extends ViewProps {
|
|
|
3676
3681
|
declare function liveAuraColor(category: LiveAuraCategory): string | null;
|
|
3677
3682
|
/**
|
|
3678
3683
|
* Full-surface color-flood frame tied to a coaching category. Wraps `children`
|
|
3679
|
-
* on a
|
|
3684
|
+
* on a grey base and layers a radial wash (amber at threshold, red at stop)
|
|
3680
3685
|
* as a decorative, pointer-transparent overlay. The wash uses a solid
|
|
3681
3686
|
* `backgroundColor` fallback (native) plus a web-only `backgroundImage` radial
|
|
3682
3687
|
* gradient; both derive from the same semantic token via `alpha()`.
|
|
@@ -4018,9 +4023,9 @@ declare const STATE_LABEL: Record<FatigueVerdictState, string>;
|
|
|
4018
4023
|
* language: eccentric magenta, concentric cyan, hold and idle in the grey family.
|
|
4019
4024
|
*
|
|
4020
4025
|
* The idle grey has to read as BAND MATERIAL (a pause the lifter held), not as a
|
|
4021
|
-
* hole in the strip: at
|
|
4026
|
+
* hole in the strip: at grey[300] it sat inside the surface-ramp's own value
|
|
4022
4027
|
* range (`surface-raised` #31302F) so a short pause between ECC and CON read as a
|
|
4023
|
-
* gap.
|
|
4028
|
+
* gap. grey[200] clears every content plane while staying quieter than the two
|
|
4024
4029
|
* saturated phase tones, so the band reads contiguous and the phases still lead.
|
|
4025
4030
|
*
|
|
4026
4031
|
* `hold` stays GREY rather than taking a hue of its own. It was briefly amber, which
|
|
@@ -4032,15 +4037,15 @@ declare const STATE_LABEL: Record<FatigueVerdictState, string>;
|
|
|
4032
4037
|
*
|
|
4033
4038
|
* Hold and idle are separated by VALUE rather than hue, plus the `HOLD` label and the
|
|
4034
4039
|
* fact that a hold PACES (it has a prescribed duration) while idle never fills:
|
|
4035
|
-
* unfilled hold
|
|
4036
|
-
* idle
|
|
4037
|
-
* filled hold
|
|
4040
|
+
* unfilled hold grey[300] — darker than idle
|
|
4041
|
+
* idle grey[200]
|
|
4042
|
+
* filled hold grey[100] — brighter than idle
|
|
4038
4043
|
* so a hold reads apart from dead time at any fill level, including the narrow runs
|
|
4039
4044
|
* where the label drops out.
|
|
4040
4045
|
*/
|
|
4041
4046
|
declare const PHASE_AXIS_COLOR: Record<SamplePhase, string>;
|
|
4042
4047
|
/** On-track / at-or-above-working. */
|
|
4043
|
-
declare const SILVER: "#
|
|
4048
|
+
declare const SILVER: "#D4D1CE";
|
|
4044
4049
|
declare const RED_LIGHT: "#F77175";
|
|
4045
4050
|
declare const RED_MID: "#D14343";
|
|
4046
4051
|
declare const RED_DEEP: "#7E1002";
|
|
@@ -4049,7 +4054,7 @@ declare const GRIND_THRESHOLD = 0.35;
|
|
|
4049
4054
|
/** A quiet grey the controlled line dims toward as it drifts (never a colour): a dimmed
|
|
4050
4055
|
* cool grey in the SAME neutral family as SILVER, so a fully-drifted line reads dim-silver
|
|
4051
4056
|
* rather than sinking toward black. Shared with the ROM chart. */
|
|
4052
|
-
declare const DRIFT_GREY: "#
|
|
4057
|
+
declare const DRIFT_GREY: "#5A5958";
|
|
4053
4058
|
/**
|
|
4054
4059
|
* The ghost-spark current-line tint from the two control-aware signals — silver/red.
|
|
4055
4060
|
*
|