@titan-design/react-ui 0.9.3 → 0.11.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 +429 -11
- package/dist/index.d.ts +429 -11
- package/dist/index.js +2386 -885
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2306 -836
- package/dist/index.mjs.map +1 -1
- package/dist/{pages-DyEx-lBf.d.ts → pages-B1hqnGIC.d.ts} +149 -15
- package/dist/{pages-D7hOD4Vj.d.mts → pages-CvsFqNtx.d.mts} +149 -15
- package/dist/pages.d.mts +1 -1
- package/dist/pages.d.ts +1 -1
- package/dist/pages.js +1900 -1609
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +1901 -1610
- 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 +8 -3
- package/src/components/custom/Fatigue/DualGhostSpark.stories.tsx +258 -0
- package/src/components/custom/Fatigue/DualGhostSpark.test.tsx +138 -0
- package/src/components/custom/Fatigue/DualGhostSpark.tsx +208 -0
- package/src/components/custom/Fatigue/FatigueLights.stories.tsx +74 -0
- package/src/components/custom/Fatigue/FatigueLights.test.tsx +33 -0
- package/src/components/custom/Fatigue/FatigueLights.tsx +83 -0
- package/src/components/custom/Fatigue/GhostBand.test.tsx +235 -0
- package/src/components/custom/Fatigue/GhostBand.tsx +246 -0
- package/src/components/custom/Fatigue/GhostBloom.tsx +132 -0
- package/src/components/custom/Fatigue/GhostSpark.stories.tsx +175 -0
- package/src/components/custom/Fatigue/GhostSpark.test.tsx +45 -0
- package/src/components/custom/Fatigue/GhostSpark.tsx +126 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.stories.tsx +126 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.test.tsx +28 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.tsx +86 -0
- package/src/components/custom/Fatigue/LiveFatiguePanel.stories.tsx +95 -0
- package/src/components/custom/Fatigue/LiveFatiguePanel.tsx +151 -0
- package/src/components/custom/Fatigue/README.md +93 -0
- package/src/components/custom/Fatigue/RomProgressionChart.stories.tsx +94 -0
- package/src/components/custom/Fatigue/RomProgressionChart.test.tsx +31 -0
- package/src/components/custom/Fatigue/RomProgressionChart.tsx +132 -0
- package/src/components/custom/Fatigue/SilverRedPalette.stories.tsx +226 -0
- package/src/components/custom/Fatigue/VelocityHero.stories.tsx +70 -0
- package/src/components/custom/Fatigue/VelocityHero.test.tsx +26 -0
- package/src/components/custom/Fatigue/VelocityHero.tsx +46 -0
- package/src/components/custom/Fatigue/VerdictHero.stories.tsx +59 -0
- package/src/components/custom/Fatigue/VerdictHero.test.tsx +49 -0
- package/src/components/custom/Fatigue/VerdictHero.tsx +79 -0
- package/src/components/custom/Fatigue/fatigue-mock.test.ts +59 -0
- package/src/components/custom/Fatigue/fatigue-mock.ts +268 -0
- package/src/components/custom/Fatigue/fatigue-model.ts +129 -0
- package/src/components/custom/Fatigue/fatigue-tokens.test.ts +70 -0
- package/src/components/custom/Fatigue/fatigue-tokens.ts +180 -0
- package/src/components/custom/Fatigue/index.ts +41 -0
- package/src/components/custom/Fatigue/tempo-pacing.test.ts +176 -0
- package/src/components/custom/Fatigue/tempo-pacing.ts +112 -0
- package/src/components/custom/Workout/BaseBadge.tsx +5 -5
- package/src/components/custom/Workout/DualVelocityStrip.test.tsx +685 -0
- package/src/components/custom/Workout/ExerciseCard.test.tsx +4 -4
- package/src/components/custom/Workout/ExerciseCard.tsx +3 -1
- package/src/components/custom/Workout/ExerciseDetailPage.tsx +7 -1
- package/src/components/custom/Workout/README.md +62 -16
- 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/SegmentedBar.stories.tsx +3 -3
- 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.test.tsx +43 -0
- package/src/components/custom/Workout/SessionRail.tsx +55 -18
- package/src/components/custom/Workout/SetRow.test.tsx +6 -6
- package/src/components/custom/Workout/SetRow.tsx +9 -2
- 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/VelocityStrip.compact.stories.tsx +191 -0
- package/src/components/custom/Workout/VelocityStrip.dual.stories.tsx +186 -0
- package/src/components/custom/Workout/VelocityStrip.expanded.stories.tsx +296 -0
- package/src/components/custom/Workout/VelocityStrip.hero.stories.tsx +259 -0
- package/src/components/custom/Workout/VelocityStrip.stories.tsx +217 -250
- package/src/components/custom/Workout/VelocityStrip.test.tsx +196 -79
- package/src/components/custom/Workout/VelocityStrip.tsx +953 -609
- package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +4 -1
- package/src/components/custom/Workout/WorkoutPill.tsx +2 -2
- package/src/components/custom/Workout/index.ts +3 -0
- package/src/components/custom/Workout/velocity-story-kit.tsx +438 -0
- package/src/components/custom/charts/SetBarChart.test.tsx +275 -0
- package/src/components/custom/charts/SetBarChart.tsx +651 -0
- package/src/components/custom/charts/live-rep-growth.ts +91 -0
- package/src/components/custom/index.ts +1 -0
- 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/test/raw-color-patterns.test.ts +71 -0
- package/src/theme/ColorPalettes.stories.tsx +871 -0
- package/src/theme/ColorPrimitives.stories.tsx +300 -0
- package/src/theme/bar-paper.ts +59 -0
- package/src/theme/color-stories.coverage.test.ts +130 -0
- package/src/theme/color-story-kit.tsx +170 -0
- 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/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +0 -254
- package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +0 -145
- package/src/theme/ColorSystem.stories.tsx +0 -323
- package/src/theme/Colors.stories.tsx +0 -323
package/dist/bodymap.js
CHANGED
|
@@ -46,13 +46,24 @@ var primitiveColors = {
|
|
|
46
46
|
200: "#3C3C3C",
|
|
47
47
|
300: "#2C2C2C",
|
|
48
48
|
400: "#1F1F1F",
|
|
49
|
-
500: "#1C1C1C",
|
|
50
|
-
600: "#191919",
|
|
51
|
-
700: "#161616",
|
|
52
|
-
900: "#101010"
|
|
53
|
-
},
|
|
49
|
+
500: "#1C1C1C"},
|
|
54
50
|
// Pure colors
|
|
55
51
|
white: "#FFFFFF"};
|
|
52
|
+
var surfaceRampDark = {
|
|
53
|
+
inset: "#13100D",
|
|
54
|
+
// L*4.5 — sub-shell well / pressed
|
|
55
|
+
background: "#1C1916",
|
|
56
|
+
// L*9 — shell / frame
|
|
57
|
+
base: "#252321",
|
|
58
|
+
// L*13.5 — main content plane
|
|
59
|
+
elevated: "#2C2A28",
|
|
60
|
+
// L*17 — nav / rail
|
|
61
|
+
raised: "#31302F",
|
|
62
|
+
// L*20 — cards
|
|
63
|
+
overlay: "#373635"
|
|
64
|
+
// L*22.5 — hero / popover
|
|
65
|
+
};
|
|
66
|
+
var backgroundFrameDark = "#100D0A";
|
|
56
67
|
var primitiveRamps = {
|
|
57
68
|
red: {
|
|
58
69
|
50: "#FFF4F4",
|
|
@@ -241,10 +252,19 @@ var semanticColorsLight = {
|
|
|
241
252
|
"surface-overlay": primitiveColors.white,
|
|
242
253
|
"surface-input": primitiveColors.neutral[50],
|
|
243
254
|
// Input field background (filled variant)
|
|
255
|
+
// Deepest pressed pit (TD-surface-tokens, S-3) — light-mode counterpart of
|
|
256
|
+
// the dark ramp's `inset` plane; a placeholder pairing, not part of the
|
|
257
|
+
// dark-ramp investigation (surface.contract.test.ts is dark-mode only).
|
|
258
|
+
"surface-inset": primitiveColors.neutral[300],
|
|
244
259
|
// Background colors (background-*)
|
|
245
260
|
"background-base": "#EBEBEB",
|
|
246
261
|
"background-default": primitiveColors.white,
|
|
247
262
|
"background-subtle": primitiveColors.neutral[50],
|
|
263
|
+
// Frame/bezel chrome (TD-surface-tokens, S-3) — top bar + side nav shell,
|
|
264
|
+
// one step below `background-base` (darker still than `surface-inset`
|
|
265
|
+
// above, mirroring the dark-mode ordering). Placeholder pairing for light
|
|
266
|
+
// mode (see dark-mode note on `surface-inset` above).
|
|
267
|
+
"background-frame": primitiveColors.neutral[400],
|
|
248
268
|
// Border colors (border-*)
|
|
249
269
|
"border-default": "#E8E9EB",
|
|
250
270
|
"border-subtle": primitiveColors.neutral[100],
|
|
@@ -260,6 +280,11 @@ var semanticColorsLight = {
|
|
|
260
280
|
// Input field border on focus
|
|
261
281
|
"border-input-error": primitiveColors.red[600],
|
|
262
282
|
// Input field border on error
|
|
283
|
+
// Alpha hairline separators (surface-independent — composite toward black on
|
|
284
|
+
// light surfaces, mirroring the dark-mode white-alpha family). See §4/S-2.
|
|
285
|
+
"hairline-subtle": "rgba(0, 0, 0, 0.06)",
|
|
286
|
+
"hairline-default": "rgba(0, 0, 0, 0.09)",
|
|
287
|
+
"hairline-strong": "rgba(0, 0, 0, 0.14)",
|
|
263
288
|
// Interactive states (interactive-*)
|
|
264
289
|
"interactive-hover": "rgba(55, 65, 81, 0.04)",
|
|
265
290
|
"interactive-focus": "rgba(55, 65, 81, 0.12)",
|
|
@@ -352,25 +377,46 @@ var semanticColorsDark = {
|
|
|
352
377
|
"text-inverse": primitiveColors.neutral[900],
|
|
353
378
|
"text-link": "#828DF8",
|
|
354
379
|
"text-link-hover": primitiveColors.blue[400],
|
|
355
|
-
// Surface colors - dark backgrounds
|
|
356
|
-
|
|
357
|
-
//
|
|
358
|
-
|
|
359
|
-
//
|
|
360
|
-
|
|
361
|
-
//
|
|
362
|
-
|
|
363
|
-
//
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
//
|
|
367
|
-
"
|
|
368
|
-
//
|
|
369
|
-
"
|
|
370
|
-
//
|
|
371
|
-
"
|
|
372
|
-
//
|
|
373
|
-
|
|
380
|
+
// Surface colors - dark backgrounds — warm-tapered DERIVED ramp (TD-surface-tokens,
|
|
381
|
+
// S-1, re-spaced S-3). Shipped verbatim from `deriveSurfaceRamp()` — see
|
|
382
|
+
// `surfaceRampDark` in primitives.ts for the full derivation note. `surface-overlay`
|
|
383
|
+
// and `surface-elevated` are distinct (were both #191919 pre-S-1); `surface-input`
|
|
384
|
+
// tracks one plane above `surface-base`, same relative position as before the remap.
|
|
385
|
+
// `background-base` backs `Surface level="background"` (SurfaceContext.SURFACE_LEVEL_TOKEN),
|
|
386
|
+
// so it takes the ramp's `background` (shell/frame) role, NOT `inset`. The ramp's
|
|
387
|
+
// deepest `inset` plane is now promoted to `surface-inset` below (S-3) — still no
|
|
388
|
+
// `SurfaceLevel` member for it (follow-up, alongside the elevation.ts -1/-2 pressed
|
|
389
|
+
// levels — parallel workstream, not this branch).
|
|
390
|
+
"surface-base": surfaceRampDark.base,
|
|
391
|
+
// main surface (#252321, L*13.5)
|
|
392
|
+
"surface-elevated": surfaceRampDark.elevated,
|
|
393
|
+
// elevated surface (#2C2A28, L*17 — nav/rail)
|
|
394
|
+
"surface-raised": surfaceRampDark.raised,
|
|
395
|
+
// raised surface (#31302F, L*20 — cards)
|
|
396
|
+
"surface-overlay": surfaceRampDark.overlay,
|
|
397
|
+
// overlay surface (#373635, L*22.5 — hero/popover)
|
|
398
|
+
"surface-input": surfaceRampDark.elevated,
|
|
399
|
+
// input surface (#2C2A28 — one plane above base)
|
|
400
|
+
"surface-inset": surfaceRampDark.inset,
|
|
401
|
+
// deepest pressed pit (#13100D, L*4.5 — sub-shell well)
|
|
402
|
+
// Background colors — same ramp, the frame/shell end of it.
|
|
403
|
+
"background-base": surfaceRampDark.background,
|
|
404
|
+
// shell / frame (#1C1916, L*9 — Surface level="background")
|
|
405
|
+
"background-default": surfaceRampDark.base,
|
|
406
|
+
// main background (#252321, L*13.5 — matches surface-base)
|
|
407
|
+
"background-subtle": surfaceRampDark.elevated,
|
|
408
|
+
// subtle background (#2C2A28, L*17 — matches surface-elevated)
|
|
409
|
+
// Frame/bezel chrome (S-3) — the top bar + side nav shell; one step BELOW
|
|
410
|
+
// `background-base`, darker even than `surface-inset` — it exits the content
|
|
411
|
+
// ramp entirely rather than sitting in it. See `backgroundFrameDark` in
|
|
412
|
+
// primitives.ts.
|
|
413
|
+
"background-frame": backgroundFrameDark,
|
|
414
|
+
// frame / bezel (#100D0A, L*3.79)
|
|
415
|
+
// Border colors — `border-subtle` (#1C1C1C) previously collided with
|
|
416
|
+
// `surface-raised` (also #1C1C1C, an invisible border on raised cards). The
|
|
417
|
+
// re-spaced ramp above moved `surface-raised` to #2D2C2B, so this value is now
|
|
418
|
+
// distinct from every surface hex without needing to change it — see
|
|
419
|
+
// `surface.contract.test.ts` R2/R4.
|
|
374
420
|
"border-default": primitiveColors.charcoal[400],
|
|
375
421
|
// default border
|
|
376
422
|
"border-subtle": primitiveColors.charcoal[500],
|
|
@@ -384,6 +430,14 @@ var semanticColorsDark = {
|
|
|
384
430
|
"border-input-hover": primitiveColors.neutral[500],
|
|
385
431
|
"border-input-focus": "#828DF8",
|
|
386
432
|
"border-input-error": primitiveColors.red[500],
|
|
433
|
+
// Alpha hairline separators — the primary separation cue (§4/S-2). Self-
|
|
434
|
+
// normalizing: composites toward white by ~the same amount on ANY plane, so
|
|
435
|
+
// one family works at every elevation instead of per-surface border tokens.
|
|
436
|
+
// Shadows are demoted to floating-overlay use only (not shipped as a fill
|
|
437
|
+
// separator here — see elevation.ts, follow-up S-4).
|
|
438
|
+
"hairline-subtle": "rgba(255, 255, 255, 0.06)",
|
|
439
|
+
"hairline-default": "rgba(255, 255, 255, 0.09)",
|
|
440
|
+
"hairline-strong": "rgba(255, 255, 255, 0.14)",
|
|
387
441
|
// Interactive states
|
|
388
442
|
"interactive-hover": "rgba(255, 255, 255, 0.04)",
|
|
389
443
|
"interactive-focus": "rgba(255, 255, 255, 0.12)",
|