@tenerife.music/ui 1.0.13 → 1.0.16
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/README.md +113 -419
- package/dist/{colors-CVA7_16U.d.cts → colors-BrFmCQv-.d.cts} +6 -1
- package/dist/{colors-CVA7_16U.d.ts → colors-BrFmCQv-.d.ts} +6 -1
- package/dist/{index-BgXvioll.d.cts → index-DPWxsWs3.d.cts} +861 -228
- package/dist/{index-Bv4wWj9I.d.ts → index-DPWxsWs3.d.ts} +861 -228
- package/dist/index.cjs +2196 -1132
- package/dist/index.d.cts +451 -127
- package/dist/index.d.ts +451 -127
- package/dist/index.mjs +2196 -1133
- package/dist/preset.cjs +29 -57
- package/dist/preset.mjs +29 -57
- package/dist/styles.css +3637 -57
- package/dist/theme/index.cjs +1305 -127
- package/dist/theme/index.d.cts +2 -2
- package/dist/theme/index.d.ts +2 -2
- package/dist/theme/index.mjs +1304 -126
- package/dist/tokens/index.cjs +628 -442
- package/dist/tokens/index.d.cts +89 -2
- package/dist/tokens/index.d.ts +89 -2
- package/dist/tokens/index.mjs +628 -443
- package/package.json +57 -53
package/dist/tokens/index.cjs
CHANGED
|
@@ -7,13 +7,18 @@ var primaryColors = {
|
|
|
7
7
|
100: "210 40% 96%",
|
|
8
8
|
200: "217 32.6% 17.5%",
|
|
9
9
|
300: "216 28% 26%",
|
|
10
|
-
400: "215 25%
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
400: "215 25% 30%",
|
|
11
|
+
// Adjusted for better progression
|
|
12
|
+
500: "215 20% 38%",
|
|
13
|
+
// Adjusted for better progression
|
|
14
|
+
600: "215 16% 45%",
|
|
15
|
+
// Adjusted for better progression
|
|
16
|
+
700: "216 12% 35%",
|
|
17
|
+
// Rebalanced for semantic strength (L* ~35)
|
|
18
|
+
800: "217 10% 28%",
|
|
19
|
+
// Adjusted for proper progression
|
|
20
|
+
900: "222 47.4% 18%",
|
|
21
|
+
// Adjusted for better progression
|
|
17
22
|
950: "222 84% 4.9%"
|
|
18
23
|
// Darkest blue
|
|
19
24
|
};
|
|
@@ -23,12 +28,15 @@ var accentColors = {
|
|
|
23
28
|
200: "280 60% 85%",
|
|
24
29
|
300: "280 55% 75%",
|
|
25
30
|
400: "280 50% 65%",
|
|
26
|
-
500: "280
|
|
27
|
-
//
|
|
28
|
-
600: "259 65%
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
500: "280 65% 72%",
|
|
32
|
+
// Adjusted for WCAG AA contrast (4.5:1) with dark text in night mode
|
|
33
|
+
600: "259 65% 59%",
|
|
34
|
+
// Default accent - lightened for better contrast vs secondary (L* ~59, was 52, 15 delta from secondary-600)
|
|
35
|
+
700: "259 60% 44%",
|
|
36
|
+
// Active state - rebalanced for semantic strength (L* ~44, 12 delta from secondary-700)
|
|
37
|
+
800: "259 55% 38%",
|
|
38
|
+
// Adjusted for proper progression
|
|
39
|
+
900: "259 50% 32%",
|
|
32
40
|
950: "259 45% 30%"
|
|
33
41
|
};
|
|
34
42
|
var secondaryColors = {
|
|
@@ -37,12 +45,15 @@ var secondaryColors = {
|
|
|
37
45
|
200: "173 100% 85%",
|
|
38
46
|
300: "173 100% 70%",
|
|
39
47
|
400: "173 100% 55%",
|
|
40
|
-
500: "173 100%
|
|
41
|
-
//
|
|
42
|
-
600: "173 100%
|
|
43
|
-
|
|
48
|
+
500: "173 100% 45%",
|
|
49
|
+
// Adjusted for better scale progression
|
|
50
|
+
600: "173 100% 44%",
|
|
51
|
+
// Default secondary - rebalanced for better contrast vs primary (L* ~44, was 38)
|
|
52
|
+
700: "173 95% 32%",
|
|
53
|
+
// Active state - rebalanced for semantic strength (L* ~32)
|
|
44
54
|
800: "173 90% 22%",
|
|
45
|
-
|
|
55
|
+
// Primary variant - darkened for dominance (L* ~22, was 26)
|
|
56
|
+
900: "173 85% 20%",
|
|
46
57
|
950: "173 80% 12%"
|
|
47
58
|
};
|
|
48
59
|
var surfaceColors = {
|
|
@@ -135,13 +146,13 @@ var chartColors = {
|
|
|
135
146
|
var textColors = {
|
|
136
147
|
day: {
|
|
137
148
|
primary: "0 0% 9%",
|
|
138
|
-
// Almost black
|
|
149
|
+
// Almost black (neutral-900 equivalent)
|
|
139
150
|
secondary: "0 0% 45%",
|
|
140
151
|
// Medium gray
|
|
141
152
|
tertiary: "0 0% 65%",
|
|
142
153
|
// Light gray
|
|
143
|
-
muted: "0 0%
|
|
144
|
-
// Muted gray
|
|
154
|
+
muted: "0 0% 42%",
|
|
155
|
+
// Muted gray - adjusted for WCAG AA contrast (4.5:1) on surface.elevated2
|
|
145
156
|
inverse: "0 0% 100%"
|
|
146
157
|
// White (for dark backgrounds)
|
|
147
158
|
},
|
|
@@ -453,6 +464,139 @@ var ALERT_TOKENS = {
|
|
|
453
464
|
}
|
|
454
465
|
};
|
|
455
466
|
|
|
467
|
+
// src/tokens/components/motion.ts
|
|
468
|
+
var MOTION_TOKENS = {
|
|
469
|
+
/**
|
|
470
|
+
* Transition property tokens
|
|
471
|
+
* Maps to Tailwind transition utilities
|
|
472
|
+
*/
|
|
473
|
+
transition: {
|
|
474
|
+
all: "transition-all",
|
|
475
|
+
// All properties
|
|
476
|
+
colors: "transition-colors",
|
|
477
|
+
// Color properties only
|
|
478
|
+
opacity: "transition-opacity",
|
|
479
|
+
// Opacity only
|
|
480
|
+
transform: "transition-transform",
|
|
481
|
+
// Transform only
|
|
482
|
+
shadow: "transition-shadow",
|
|
483
|
+
// Box shadow only
|
|
484
|
+
none: "transition-none"
|
|
485
|
+
// No transition
|
|
486
|
+
},
|
|
487
|
+
/**
|
|
488
|
+
* Duration tokens
|
|
489
|
+
* Maps to foundation motion duration tokens via Tailwind
|
|
490
|
+
*/
|
|
491
|
+
duration: {
|
|
492
|
+
instant: "duration-0",
|
|
493
|
+
// 0ms
|
|
494
|
+
fast: "duration-fast",
|
|
495
|
+
// 150ms - maps to motion.durations.fast
|
|
496
|
+
normal: "duration-normal",
|
|
497
|
+
// 300ms - maps to motion.durations.normal
|
|
498
|
+
slow: "duration-slow",
|
|
499
|
+
// 500ms - maps to motion.durations.slow
|
|
500
|
+
slower: "duration-slower",
|
|
501
|
+
// 700ms - maps to motion.durations.slower
|
|
502
|
+
slowest: "duration-slowest",
|
|
503
|
+
// 1000ms - maps to motion.durations.slowest
|
|
504
|
+
// Granular durations
|
|
505
|
+
"75": "duration-75",
|
|
506
|
+
// 75ms
|
|
507
|
+
"100": "duration-100",
|
|
508
|
+
// 100ms
|
|
509
|
+
"200": "duration-200",
|
|
510
|
+
// 200ms
|
|
511
|
+
"250": "duration-250",
|
|
512
|
+
// 250ms
|
|
513
|
+
"300": "duration-300",
|
|
514
|
+
// 300ms
|
|
515
|
+
"400": "duration-400",
|
|
516
|
+
// 400ms
|
|
517
|
+
"500": "duration-500",
|
|
518
|
+
// 500ms
|
|
519
|
+
"600": "duration-600",
|
|
520
|
+
// 600ms
|
|
521
|
+
"700": "duration-700",
|
|
522
|
+
// 700ms
|
|
523
|
+
"800": "duration-800",
|
|
524
|
+
// 800ms
|
|
525
|
+
"1000": "duration-1000"
|
|
526
|
+
// 1000ms
|
|
527
|
+
},
|
|
528
|
+
/**
|
|
529
|
+
* Easing tokens
|
|
530
|
+
* Maps to foundation motion easing tokens via Tailwind
|
|
531
|
+
*/
|
|
532
|
+
easing: {
|
|
533
|
+
linear: "ease-linear",
|
|
534
|
+
// Linear easing
|
|
535
|
+
in: "ease-in",
|
|
536
|
+
// Ease in
|
|
537
|
+
out: "ease-out",
|
|
538
|
+
// Ease out (recommended for most UI)
|
|
539
|
+
"in-out": "ease-in-out",
|
|
540
|
+
// Ease in-out
|
|
541
|
+
bounce: "ease-bounce",
|
|
542
|
+
// Bounce easing
|
|
543
|
+
elastic: "ease-elastic"
|
|
544
|
+
// Elastic easing
|
|
545
|
+
},
|
|
546
|
+
/**
|
|
547
|
+
* Pre-configured transition tokens
|
|
548
|
+
* Combines duration and easing for common use cases
|
|
549
|
+
*/
|
|
550
|
+
transitionPreset: {
|
|
551
|
+
fast: "transition-all duration-fast ease-out",
|
|
552
|
+
// Fast transition
|
|
553
|
+
normal: "transition-all duration-normal ease-in-out",
|
|
554
|
+
// Normal transition (default)
|
|
555
|
+
slow: "transition-all duration-slow ease-in-out",
|
|
556
|
+
// Slow transition
|
|
557
|
+
colors: "transition-colors duration-normal ease-out",
|
|
558
|
+
// Color transitions (common)
|
|
559
|
+
transform: "transition-transform duration-normal ease-out",
|
|
560
|
+
// Transform transitions
|
|
561
|
+
opacity: "transition-opacity duration-fast ease-out"
|
|
562
|
+
// Opacity transitions
|
|
563
|
+
},
|
|
564
|
+
/**
|
|
565
|
+
* Animation tokens
|
|
566
|
+
* Maps to foundation motion animation tokens via Tailwind
|
|
567
|
+
*/
|
|
568
|
+
animation: {
|
|
569
|
+
none: "animate-none",
|
|
570
|
+
// No animation
|
|
571
|
+
spin: "animate-spin",
|
|
572
|
+
// Spin animation
|
|
573
|
+
pulse: "animate-pulse",
|
|
574
|
+
// Pulse animation
|
|
575
|
+
bounce: "animate-bounce",
|
|
576
|
+
// Bounce animation
|
|
577
|
+
ping: "animate-ping",
|
|
578
|
+
// Ping animation
|
|
579
|
+
shake: "animate-shake",
|
|
580
|
+
// Shake animation
|
|
581
|
+
fadeIn: "animate-fadeIn",
|
|
582
|
+
// Fade in
|
|
583
|
+
fadeOut: "animate-fadeOut",
|
|
584
|
+
// Fade out
|
|
585
|
+
slideInUp: "animate-slideInUp",
|
|
586
|
+
// Slide in from bottom
|
|
587
|
+
slideInDown: "animate-slideInDown",
|
|
588
|
+
// Slide in from top
|
|
589
|
+
slideInLeft: "animate-slideInLeft",
|
|
590
|
+
// Slide in from right
|
|
591
|
+
slideInRight: "animate-slideInRight",
|
|
592
|
+
// Slide in from left
|
|
593
|
+
scaleIn: "animate-scaleIn",
|
|
594
|
+
// Scale in
|
|
595
|
+
scaleOut: "animate-scaleOut"
|
|
596
|
+
// Scale out
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
|
|
456
600
|
// src/tokens/components/button.ts
|
|
457
601
|
var BUTTON_TOKENS = {
|
|
458
602
|
/**
|
|
@@ -485,25 +629,48 @@ var BUTTON_TOKENS = {
|
|
|
485
629
|
vertical: {
|
|
486
630
|
sm: "py-xs",
|
|
487
631
|
// 4px (0.25rem) - maps to semanticSpacing.xs
|
|
488
|
-
md: "py-sm"
|
|
632
|
+
md: "py-sm",
|
|
489
633
|
// 8px (0.5rem) - maps to semanticSpacing.sm
|
|
634
|
+
lg: "py-md"
|
|
635
|
+
// 16px (1rem) - maps to semanticSpacing.md - standardized for visual distinction
|
|
490
636
|
}
|
|
491
637
|
},
|
|
492
638
|
/**
|
|
493
|
-
* Gap between icon and text
|
|
639
|
+
* Gap between icon and text by size
|
|
640
|
+
* Scales with button size for visual consistency
|
|
494
641
|
*/
|
|
495
|
-
gap:
|
|
496
|
-
|
|
642
|
+
gap: {
|
|
643
|
+
sm: "gap-xs",
|
|
644
|
+
// 4px (0.25rem) - smaller gap for small buttons
|
|
645
|
+
md: "gap-sm",
|
|
646
|
+
// 8px (0.5rem) - medium gap for medium buttons
|
|
647
|
+
lg: "gap-md"
|
|
648
|
+
// 16px (1rem) - larger gap for large buttons
|
|
649
|
+
},
|
|
497
650
|
/**
|
|
498
651
|
* Border radius for all button sizes
|
|
652
|
+
* Consistent radius across sizes for visual harmony
|
|
653
|
+
*
|
|
654
|
+
* @enforcement TUNG_TOKEN_AUTHORITY_EXPANSION_PLAN
|
|
655
|
+
* @rule References componentRadius.button.md (6px / 0.375rem) from Radius Authority
|
|
656
|
+
* @see docs/architecture/RADIUS_AUTHORITY_CONTRACT.md
|
|
499
657
|
*/
|
|
500
658
|
radius: "rounded-md",
|
|
501
|
-
// 6px
|
|
659
|
+
// References componentRadius.button.md (6px / 0.375rem) - Radius Authority compliant
|
|
502
660
|
/**
|
|
503
|
-
* Icon size within buttons
|
|
661
|
+
* Icon size within buttons by button size
|
|
662
|
+
* Scales proportionally with button size for visual balance
|
|
504
663
|
*/
|
|
505
|
-
iconSize:
|
|
506
|
-
|
|
664
|
+
iconSize: {
|
|
665
|
+
sm: "size-3.5",
|
|
666
|
+
// 14px (0.875rem) - smaller icon for small buttons
|
|
667
|
+
md: "size-4",
|
|
668
|
+
// 16px (1rem) - medium icon for medium buttons
|
|
669
|
+
lg: "size-5",
|
|
670
|
+
// 20px (1.25rem) - larger icon for large buttons
|
|
671
|
+
icon: "size-4"
|
|
672
|
+
// 16px (1rem) - medium icon for icon-only buttons
|
|
673
|
+
},
|
|
507
674
|
/**
|
|
508
675
|
* Width tokens
|
|
509
676
|
*/
|
|
@@ -513,15 +680,19 @@ var BUTTON_TOKENS = {
|
|
|
513
680
|
},
|
|
514
681
|
/**
|
|
515
682
|
* Font sizes by button size
|
|
516
|
-
*
|
|
683
|
+
* References foundation typography fontSize tokens from Typography Authority
|
|
684
|
+
*
|
|
685
|
+
* @enforcement TUNG_TOKEN_AUTHORITY_EXPANSION_PLAN
|
|
686
|
+
* @rule All fontSize values reference Typography Authority tokens
|
|
687
|
+
* @see docs/architecture/TYPOGRAPHY_AUTHORITY_CONTRACT.md
|
|
517
688
|
*/
|
|
518
689
|
fontSize: {
|
|
519
690
|
sm: "text-xs",
|
|
520
|
-
//
|
|
691
|
+
// References fontSize.xs[0] from Typography Authority (~12px)
|
|
521
692
|
md: "text-sm",
|
|
522
|
-
//
|
|
523
|
-
lg: "text-
|
|
524
|
-
//
|
|
693
|
+
// References fontSize.sm[0] from Typography Authority (~14px)
|
|
694
|
+
lg: "text-base"
|
|
695
|
+
// References fontSize.base[0] from Typography Authority (~16px)
|
|
525
696
|
},
|
|
526
697
|
/**
|
|
527
698
|
* Shadow tokens by variant
|
|
@@ -536,50 +707,137 @@ var BUTTON_TOKENS = {
|
|
|
536
707
|
/**
|
|
537
708
|
* Color tokens for button variants
|
|
538
709
|
* Uses semantic color tokens that map to CSS variables
|
|
710
|
+
*
|
|
711
|
+
* State tokens (hover, active, disabled) use CSS variables from State Matrix.
|
|
712
|
+
* All states are injected via updateStateMatrixFromTokens() and consumed via arbitrary values.
|
|
713
|
+
* States react to Color Authority changes automatically through State Matrix.
|
|
714
|
+
*
|
|
715
|
+
* Interaction Authority Rules:
|
|
716
|
+
* - Hover (Priority 4): hover: prefix - ONLY when !disabled && !loading && pointer-events:auto
|
|
717
|
+
* - Active (Priority 3): active: prefix - ONLY when !disabled && !loading && mousedown
|
|
718
|
+
* - Focus (Priority 5): focus-visible: prefix - ONLY when !disabled && keyboard navigation
|
|
719
|
+
* - Disabled (Priority 1): disabled: prefix - Blocks ALL interactions
|
|
720
|
+
* - Loading (Priority 2): loading: prefix - Blocks hover/active (when implemented)
|
|
721
|
+
* - Base (Priority 6): No prefix - Default state, pointer-events: auto
|
|
722
|
+
*
|
|
723
|
+
* @enforcement TUNG_STATE_AUTHORITY_FOUNDATION_LOCK
|
|
724
|
+
* @enforcement TUNG_INTERACTION_AUTHORITY_FOUNDATION
|
|
725
|
+
* @rule States use CSS variables, not Tailwind variants
|
|
726
|
+
* @rule All state variables follow pattern: --{component}-{variant}-{state}-{property}
|
|
727
|
+
* @rule Visual states (colors) are SEPARATE from interaction states (pointer-events)
|
|
728
|
+
* @rule Hover MUST work with real mouse cursor, NOT just DevTools force state
|
|
729
|
+
* @rule Active MUST activate only on mousedown, NOT on hover
|
|
730
|
+
* @rule Focus MUST activate only on keyboard navigation, NOT on mouse click
|
|
731
|
+
*
|
|
732
|
+
* @see docs/architecture/INTERACTION_AUTHORITY_CONTRACT.md
|
|
539
733
|
*/
|
|
540
734
|
variant: {
|
|
541
735
|
primary: {
|
|
542
|
-
background: "bg-primary",
|
|
543
|
-
// Primary background
|
|
736
|
+
background: "bg-[hsl(var(--button-primary-base-bg))]",
|
|
737
|
+
// Primary base background - CSS variable from State Matrix
|
|
544
738
|
text: "text-primary-foreground",
|
|
545
739
|
// Primary text using CSS var
|
|
546
|
-
hover: "hover:bg-primary
|
|
547
|
-
// Primary hover
|
|
740
|
+
hover: "hover:bg-[hsl(var(--button-primary-hover-bg))]",
|
|
741
|
+
// Primary hover - CSS variable from State Matrix (Priority 4: blocked by disabled/loading)
|
|
742
|
+
active: "active:bg-[hsl(var(--button-primary-active-bg))]",
|
|
743
|
+
// Primary active - CSS variable from State Matrix (Priority 3: blocked by disabled/loading, priority over hover)
|
|
744
|
+
focus: "focus-visible:bg-[hsl(var(--button-primary-focus-bg))]",
|
|
745
|
+
// Primary focus - CSS variable from State Matrix (Priority 5: keyboard navigation only)
|
|
746
|
+
disabled: {
|
|
747
|
+
background: "disabled:bg-[hsl(var(--button-primary-disabled-bg))]",
|
|
748
|
+
// Disabled background - CSS variable from State Matrix (Priority 1: blocks all)
|
|
749
|
+
text: "disabled:text-[hsl(var(--button-primary-disabled-text))]"
|
|
750
|
+
// Disabled text - CSS variable from State Matrix
|
|
751
|
+
},
|
|
752
|
+
loading: "bg-[hsl(var(--button-primary-loading-bg))]"
|
|
753
|
+
// Primary loading - CSS variable from State Matrix (Priority 2: blocks hover/active, used with aria-busy/data-loading when implemented)
|
|
548
754
|
},
|
|
549
755
|
secondary: {
|
|
550
756
|
background: "bg-secondary",
|
|
551
757
|
// Secondary background using CSS var
|
|
552
758
|
text: "text-secondary-foreground",
|
|
553
759
|
// Secondary text using CSS var
|
|
554
|
-
hover: "hover:bg-secondary
|
|
555
|
-
// Secondary hover
|
|
760
|
+
hover: "hover:bg-[hsl(var(--button-secondary-hover-bg))]",
|
|
761
|
+
// Secondary hover - CSS variable from State Matrix
|
|
762
|
+
active: "active:bg-[hsl(var(--button-secondary-active-bg))]",
|
|
763
|
+
// Secondary active - CSS variable from State Matrix
|
|
764
|
+
disabled: {
|
|
765
|
+
background: "disabled:bg-[hsl(var(--button-secondary-disabled-bg))]",
|
|
766
|
+
// Disabled background - CSS variable from State Matrix
|
|
767
|
+
text: "disabled:text-[hsl(var(--button-secondary-disabled-text))]"
|
|
768
|
+
// Disabled text - CSS variable from State Matrix
|
|
769
|
+
}
|
|
556
770
|
},
|
|
557
771
|
accent: {
|
|
558
772
|
background: "bg-accent",
|
|
559
773
|
// Accent background using CSS var
|
|
560
774
|
text: "text-accent-foreground",
|
|
561
775
|
// Accent text using CSS var
|
|
562
|
-
hover: "hover:bg-accent
|
|
563
|
-
// Accent hover
|
|
776
|
+
hover: "hover:bg-[hsl(var(--button-accent-hover-bg))]",
|
|
777
|
+
// Accent hover - CSS variable from State Matrix
|
|
778
|
+
active: "active:bg-[hsl(var(--button-accent-active-bg))]",
|
|
779
|
+
// Accent active - CSS variable from State Matrix
|
|
780
|
+
disabled: {
|
|
781
|
+
background: "disabled:bg-[hsl(var(--button-accent-disabled-bg))]",
|
|
782
|
+
// Disabled background - CSS variable from State Matrix
|
|
783
|
+
text: "disabled:text-[hsl(var(--button-accent-disabled-text))]"
|
|
784
|
+
// Disabled text - CSS variable from State Matrix
|
|
785
|
+
}
|
|
564
786
|
},
|
|
565
787
|
outline: {
|
|
566
788
|
border: "border border-input",
|
|
567
789
|
// Input border using CSS var
|
|
568
790
|
background: "bg-background",
|
|
569
791
|
// Background using CSS var
|
|
792
|
+
text: "text-foreground",
|
|
793
|
+
// Foreground text using CSS var
|
|
570
794
|
hover: {
|
|
571
|
-
background: "hover:bg-
|
|
572
|
-
//
|
|
573
|
-
text: "hover:text-
|
|
574
|
-
//
|
|
795
|
+
background: "hover:bg-[hsl(var(--button-outline-hover-bg))]",
|
|
796
|
+
// Outline hover background - CSS variable from State Matrix
|
|
797
|
+
text: "hover:text-[hsl(var(--button-outline-hover-text))]",
|
|
798
|
+
// Outline hover text - CSS variable from State Matrix
|
|
799
|
+
border: "hover:border-[hsl(var(--button-outline-hover-border))]"
|
|
800
|
+
// Outline hover border - CSS variable from State Matrix
|
|
801
|
+
},
|
|
802
|
+
active: {
|
|
803
|
+
background: "active:bg-[hsl(var(--button-outline-active-bg))]",
|
|
804
|
+
// Outline active background - CSS variable from State Matrix
|
|
805
|
+
text: "active:text-[hsl(var(--button-outline-active-text))]",
|
|
806
|
+
// Outline active text - CSS variable from State Matrix
|
|
807
|
+
border: "active:border-[hsl(var(--button-outline-active-border))]"
|
|
808
|
+
// Outline active border - CSS variable from State Matrix
|
|
809
|
+
},
|
|
810
|
+
disabled: {
|
|
811
|
+
background: "disabled:bg-[hsl(var(--button-outline-disabled-bg))]",
|
|
812
|
+
// Disabled background - CSS variable from State Matrix
|
|
813
|
+
text: "disabled:text-[hsl(var(--button-outline-disabled-text))]",
|
|
814
|
+
// Disabled text - CSS variable from State Matrix
|
|
815
|
+
border: "disabled:border-[hsl(var(--button-outline-disabled-border))]"
|
|
816
|
+
// Disabled border - CSS variable from State Matrix
|
|
575
817
|
}
|
|
576
818
|
},
|
|
577
819
|
ghost: {
|
|
820
|
+
background: "bg-transparent",
|
|
821
|
+
// Transparent background
|
|
822
|
+
text: "text-foreground",
|
|
823
|
+
// Foreground text using CSS var
|
|
578
824
|
hover: {
|
|
579
|
-
background: "hover:bg-
|
|
580
|
-
//
|
|
581
|
-
text: "hover:text-
|
|
582
|
-
//
|
|
825
|
+
background: "hover:bg-[hsl(var(--button-ghost-hover-bg))]",
|
|
826
|
+
// Ghost hover background - CSS variable from State Matrix
|
|
827
|
+
text: "hover:text-[hsl(var(--button-ghost-hover-text))]"
|
|
828
|
+
// Ghost hover text - CSS variable from State Matrix
|
|
829
|
+
},
|
|
830
|
+
active: {
|
|
831
|
+
background: "active:bg-[hsl(var(--button-ghost-active-bg))]",
|
|
832
|
+
// Ghost active background - CSS variable from State Matrix
|
|
833
|
+
text: "active:text-[hsl(var(--button-ghost-active-text))]"
|
|
834
|
+
// Ghost active text - CSS variable from State Matrix
|
|
835
|
+
},
|
|
836
|
+
disabled: {
|
|
837
|
+
background: "disabled:bg-[hsl(var(--button-ghost-disabled-bg))]",
|
|
838
|
+
// Disabled background - CSS variable from State Matrix
|
|
839
|
+
text: "disabled:text-[hsl(var(--button-ghost-disabled-text))]"
|
|
840
|
+
// Disabled text - CSS variable from State Matrix
|
|
583
841
|
}
|
|
584
842
|
},
|
|
585
843
|
destructive: {
|
|
@@ -587,16 +845,94 @@ var BUTTON_TOKENS = {
|
|
|
587
845
|
// Destructive background using CSS var
|
|
588
846
|
text: "text-destructive-foreground",
|
|
589
847
|
// Destructive text using CSS var
|
|
590
|
-
hover: "hover:bg-destructive
|
|
591
|
-
// Destructive hover
|
|
848
|
+
hover: "hover:bg-[hsl(var(--button-destructive-hover-bg))]",
|
|
849
|
+
// Destructive hover - CSS variable from State Matrix
|
|
850
|
+
active: "active:bg-[hsl(var(--button-destructive-active-bg))]",
|
|
851
|
+
// Destructive active - CSS variable from State Matrix
|
|
852
|
+
disabled: {
|
|
853
|
+
background: "disabled:bg-[hsl(var(--button-destructive-disabled-bg))]",
|
|
854
|
+
// Disabled background - CSS variable from State Matrix
|
|
855
|
+
text: "disabled:text-[hsl(var(--button-destructive-disabled-text))]"
|
|
856
|
+
// Disabled text - CSS variable from State Matrix
|
|
857
|
+
}
|
|
592
858
|
}
|
|
593
859
|
},
|
|
594
860
|
/**
|
|
595
861
|
* Transition tokens
|
|
862
|
+
* References Motion Authority tokens for consistent motion behavior
|
|
863
|
+
*
|
|
864
|
+
* @enforcement TUNG_TOKEN_AUTHORITY_EXPANSION_PLAN
|
|
865
|
+
* @rule Uses MOTION_TOKENS.transitionPreset.colors from Motion Authority
|
|
866
|
+
* @rule Motion transitions MUST use canonical motion tokens only
|
|
867
|
+
* @see docs/architecture/MOTION_AUTHORITY_CONTRACT.md
|
|
596
868
|
*/
|
|
597
869
|
transition: {
|
|
598
|
-
colors:
|
|
599
|
-
//
|
|
870
|
+
colors: MOTION_TOKENS.transitionPreset.colors
|
|
871
|
+
// "transition-colors duration-normal ease-out" - Motion Authority compliant
|
|
872
|
+
},
|
|
873
|
+
/**
|
|
874
|
+
* Global state tokens
|
|
875
|
+
* Shared state tokens that apply across all variants
|
|
876
|
+
* Variant-specific states are defined in variant.*.active and variant.*.disabled
|
|
877
|
+
*
|
|
878
|
+
* @enforcement TUNG_INTERACTION_AUTHORITY_FOUNDATION
|
|
879
|
+
* @rule All interaction states MUST follow Interaction Authority Contract
|
|
880
|
+
* @rule State priority: disabled > loading > active > hover > focus-visible > base
|
|
881
|
+
* @rule Visual states (colors) are SEPARATE from interaction states (pointer-events, cursor)
|
|
882
|
+
* @rule All states MUST be browser-native (CSS pseudo-classes), NOT JavaScript-managed
|
|
883
|
+
*/
|
|
884
|
+
state: {
|
|
885
|
+
/**
|
|
886
|
+
* Disabled state tokens
|
|
887
|
+
* Global disabled state tokens (variant-specific overrides in variant.*.disabled)
|
|
888
|
+
*
|
|
889
|
+
* Interaction Authority Rules:
|
|
890
|
+
* - Priority: 1 (Highest) - Blocks ALL interactions
|
|
891
|
+
* - MUST block hover, active, and focus states
|
|
892
|
+
* - MUST use disabled: prefix (never in base state)
|
|
893
|
+
* - Base state MUST have pointer-events: auto (default) for hover to work
|
|
894
|
+
*
|
|
895
|
+
* @enforcement TUNG_INTERACTION_AUTHORITY_FOUNDATION
|
|
896
|
+
* @enforcement TUNG_BUTTON_INTERACTION_FIX
|
|
897
|
+
* @rule Interaction Authority: pointer-events is NOT a visual token
|
|
898
|
+
* @rule pointer-events-none MUST use disabled: prefix (never in base state)
|
|
899
|
+
* @rule Base state MUST have pointer-events: auto (default) for hover to work
|
|
900
|
+
* @rule These tokens are applied in base but only activate when element is disabled
|
|
901
|
+
* @rule Hover is FORBIDDEN when disabled={true}
|
|
902
|
+
* @rule Active is FORBIDDEN when disabled={true}
|
|
903
|
+
* @rule Focus is FORBIDDEN when disabled={true} (for interactions)
|
|
904
|
+
*
|
|
905
|
+
* @see docs/architecture/INTERACTION_AUTHORITY_CONTRACT.md
|
|
906
|
+
*/
|
|
907
|
+
disabled: {
|
|
908
|
+
cursor: "disabled:cursor-not-allowed",
|
|
909
|
+
// Disabled cursor style (only applies when disabled)
|
|
910
|
+
pointerEvents: "disabled:pointer-events-none"
|
|
911
|
+
// Disable pointer events (only applies when disabled)
|
|
912
|
+
},
|
|
913
|
+
/**
|
|
914
|
+
* Focus state tokens
|
|
915
|
+
* Focus ring for keyboard navigation
|
|
916
|
+
*
|
|
917
|
+
* Interaction Authority Rules:
|
|
918
|
+
* - Priority: 5 - Lower than active and hover
|
|
919
|
+
* - MUST activate only on keyboard navigation (focus-visible: prefix)
|
|
920
|
+
* - MUST NOT activate on mouse click (use :focus-visible, not :focus)
|
|
921
|
+
* - MUST be blocked by disabled state
|
|
922
|
+
*
|
|
923
|
+
* @enforcement TUNG_INTERACTION_AUTHORITY_FOUNDATION
|
|
924
|
+
* @rule Focus MUST use focus-visible: prefix (keyboard navigation only)
|
|
925
|
+
* @rule Focus MUST be blocked when disabled={true}
|
|
926
|
+
* @rule Focus MUST NOT activate on mouse click
|
|
927
|
+
*
|
|
928
|
+
* @see docs/architecture/INTERACTION_AUTHORITY_CONTRACT.md
|
|
929
|
+
*/
|
|
930
|
+
focus: {
|
|
931
|
+
ring: "focus-visible:ring-1 focus-visible:ring-ring",
|
|
932
|
+
// Focus ring using semantic ring color
|
|
933
|
+
outline: "focus-visible:outline-none"
|
|
934
|
+
// Remove default outline (replaced by ring)
|
|
935
|
+
}
|
|
600
936
|
}
|
|
601
937
|
};
|
|
602
938
|
|
|
@@ -684,6 +1020,68 @@ var CARD_TOKENS = {
|
|
|
684
1020
|
}
|
|
685
1021
|
};
|
|
686
1022
|
|
|
1023
|
+
// src/tokens/components/artist.ts
|
|
1024
|
+
var ARTIST_TOKENS = {
|
|
1025
|
+
/**
|
|
1026
|
+
* Image container tokens
|
|
1027
|
+
* Layout classes for image container wrapper
|
|
1028
|
+
*/
|
|
1029
|
+
image: {
|
|
1030
|
+
/**
|
|
1031
|
+
* Container layout tokens
|
|
1032
|
+
* Positioning and sizing for image container
|
|
1033
|
+
*/
|
|
1034
|
+
container: {
|
|
1035
|
+
/**
|
|
1036
|
+
* Base container layout
|
|
1037
|
+
* Relative positioning, full width, overflow hidden
|
|
1038
|
+
* Uses Tailwind layout utilities (allowed per architecture)
|
|
1039
|
+
*/
|
|
1040
|
+
layout: "relative w-full overflow-hidden"
|
|
1041
|
+
},
|
|
1042
|
+
/**
|
|
1043
|
+
* Image sizing tokens
|
|
1044
|
+
* Full width and height for images
|
|
1045
|
+
*/
|
|
1046
|
+
sizing: {
|
|
1047
|
+
/**
|
|
1048
|
+
* Full size image
|
|
1049
|
+
* Uses Tailwind sizing utilities (allowed per architecture)
|
|
1050
|
+
*/
|
|
1051
|
+
full: "h-full w-full"
|
|
1052
|
+
},
|
|
1053
|
+
/**
|
|
1054
|
+
* Placeholder container tokens
|
|
1055
|
+
* Layout for placeholder icon container when no image is provided
|
|
1056
|
+
*/
|
|
1057
|
+
placeholder: {
|
|
1058
|
+
/**
|
|
1059
|
+
* Placeholder container layout
|
|
1060
|
+
* Flex centering for placeholder icon
|
|
1061
|
+
* Uses Tailwind layout utilities (allowed per architecture)
|
|
1062
|
+
*/
|
|
1063
|
+
container: "flex h-full w-full items-center justify-center"
|
|
1064
|
+
}
|
|
1065
|
+
},
|
|
1066
|
+
/**
|
|
1067
|
+
* Footer border tokens
|
|
1068
|
+
* Border styling for card footer separator
|
|
1069
|
+
*/
|
|
1070
|
+
footer: {
|
|
1071
|
+
/**
|
|
1072
|
+
* Footer border tokens
|
|
1073
|
+
* Top border separator for footer section
|
|
1074
|
+
*/
|
|
1075
|
+
border: {
|
|
1076
|
+
/**
|
|
1077
|
+
* Footer border top
|
|
1078
|
+
* Uses semantic border color token
|
|
1079
|
+
*/
|
|
1080
|
+
top: "border-t border-border"
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
};
|
|
1084
|
+
|
|
687
1085
|
// src/tokens/spacing.ts
|
|
688
1086
|
var spacing = {
|
|
689
1087
|
// Zero spacing
|
|
@@ -946,101 +1344,6 @@ var tailwindSpacingConfig = {
|
|
|
946
1344
|
|
|
947
1345
|
// src/tokens/components/data.ts
|
|
948
1346
|
var DATA_TOKENS = {
|
|
949
|
-
/**
|
|
950
|
-
* Table Component Tokens
|
|
951
|
-
*/
|
|
952
|
-
table: {
|
|
953
|
-
/**
|
|
954
|
-
* Table row heights by size
|
|
955
|
-
* Maps to Tailwind height utilities
|
|
956
|
-
*/
|
|
957
|
-
rowHeight: {
|
|
958
|
-
sm: "h-8",
|
|
959
|
-
// 32px (2rem) - compact rows
|
|
960
|
-
md: "h-10",
|
|
961
|
-
// 40px (2.5rem) - default rows
|
|
962
|
-
lg: "h-12"
|
|
963
|
-
// 48px (3rem) - spacious rows
|
|
964
|
-
},
|
|
965
|
-
/**
|
|
966
|
-
* Table cell and header padding by size
|
|
967
|
-
* Maps to semantic spacing tokens
|
|
968
|
-
*/
|
|
969
|
-
padding: {
|
|
970
|
-
cell: {
|
|
971
|
-
sm: "p-xs",
|
|
972
|
-
// 4px (0.25rem) - maps to semanticSpacing.xs
|
|
973
|
-
md: "p-sm",
|
|
974
|
-
// 8px (0.5rem) - maps to semanticSpacing.sm
|
|
975
|
-
lg: "p-md"
|
|
976
|
-
// 16px (1rem) - maps to semanticSpacing.md
|
|
977
|
-
},
|
|
978
|
-
header: {
|
|
979
|
-
sm: "px-xs py-sm",
|
|
980
|
-
// 4px horizontal, 8px vertical
|
|
981
|
-
md: "px-sm py-md",
|
|
982
|
-
// 8px horizontal, 16px vertical
|
|
983
|
-
lg: "px-md py-lg"
|
|
984
|
-
// 16px horizontal, 24px vertical
|
|
985
|
-
}
|
|
986
|
-
},
|
|
987
|
-
/**
|
|
988
|
-
* Gap between table cells (horizontal spacing)
|
|
989
|
-
*/
|
|
990
|
-
gap: {
|
|
991
|
-
sm: "gap-xs",
|
|
992
|
-
// 4px (0.25rem) - maps to semanticSpacing.xs
|
|
993
|
-
md: "gap-sm"
|
|
994
|
-
// 8px (0.5rem) - maps to semanticSpacing.sm
|
|
995
|
-
},
|
|
996
|
-
/**
|
|
997
|
-
* Border radius for table
|
|
998
|
-
*/
|
|
999
|
-
radius: {
|
|
1000
|
-
default: "rounded-md"
|
|
1001
|
-
// 6px (0.375rem) - maps to borderRadius.md
|
|
1002
|
-
},
|
|
1003
|
-
/**
|
|
1004
|
-
* Shadow tokens for table
|
|
1005
|
-
* Maps to foundation elevation shadow tokens
|
|
1006
|
-
*/
|
|
1007
|
-
shadow: {
|
|
1008
|
-
none: "shadow-none",
|
|
1009
|
-
// No shadow
|
|
1010
|
-
subtle: "shadow-sm"
|
|
1011
|
-
// Maps to elevationShadows.sm
|
|
1012
|
-
},
|
|
1013
|
-
/**
|
|
1014
|
-
* Typography tokens for table headers and cells
|
|
1015
|
-
* Maps to foundation typography fontSize tokens
|
|
1016
|
-
*/
|
|
1017
|
-
typography: {
|
|
1018
|
-
header: {
|
|
1019
|
-
fontSize: "text-sm",
|
|
1020
|
-
// Maps to fontSize.sm[0]
|
|
1021
|
-
fontWeight: "font-semibold"
|
|
1022
|
-
// Maps to fontWeight.semibold
|
|
1023
|
-
},
|
|
1024
|
-
cell: {
|
|
1025
|
-
fontSize: "text-sm",
|
|
1026
|
-
// Maps to fontSize.sm[0]
|
|
1027
|
-
fontWeight: "font-normal"
|
|
1028
|
-
// Maps to fontWeight.normal
|
|
1029
|
-
}
|
|
1030
|
-
},
|
|
1031
|
-
/**
|
|
1032
|
-
* Color tokens for table states
|
|
1033
|
-
* Uses semantic color tokens
|
|
1034
|
-
*/
|
|
1035
|
-
colors: {
|
|
1036
|
-
border: "border-border",
|
|
1037
|
-
// Border color
|
|
1038
|
-
rowHover: "hover:bg-muted/50",
|
|
1039
|
-
// Row hover background
|
|
1040
|
-
rowSelected: "bg-muted"
|
|
1041
|
-
// Selected row background
|
|
1042
|
-
}
|
|
1043
|
-
},
|
|
1044
1347
|
/**
|
|
1045
1348
|
* Skeleton Component Tokens
|
|
1046
1349
|
*/
|
|
@@ -1106,97 +1409,6 @@ var DATA_TOKENS = {
|
|
|
1106
1409
|
inline: "inline-block"
|
|
1107
1410
|
// Inline block display
|
|
1108
1411
|
}
|
|
1109
|
-
},
|
|
1110
|
-
/**
|
|
1111
|
-
* EmptyState Component Tokens
|
|
1112
|
-
*/
|
|
1113
|
-
emptyState: {
|
|
1114
|
-
/**
|
|
1115
|
-
* Spacing tokens for EmptyState
|
|
1116
|
-
* Maps to semantic spacing tokens
|
|
1117
|
-
*/
|
|
1118
|
-
spacing: {
|
|
1119
|
-
gap: "gap-md",
|
|
1120
|
-
// 16px (1rem) - gap between elements - maps to semanticSpacing.md
|
|
1121
|
-
padding: "p-lg"
|
|
1122
|
-
// 24px (1.5rem) - container padding - maps to semanticSpacing.lg
|
|
1123
|
-
},
|
|
1124
|
-
/**
|
|
1125
|
-
* Border radius for EmptyState container
|
|
1126
|
-
*/
|
|
1127
|
-
radius: {
|
|
1128
|
-
default: "rounded-xl"
|
|
1129
|
-
// 12px (0.75rem) - maps to borderRadius.xl
|
|
1130
|
-
},
|
|
1131
|
-
/**
|
|
1132
|
-
* Icon sizes by variant
|
|
1133
|
-
* Maps to Tailwind size utilities
|
|
1134
|
-
*/
|
|
1135
|
-
iconSize: {
|
|
1136
|
-
sm: "size-8",
|
|
1137
|
-
// 32px (2rem)
|
|
1138
|
-
md: "size-12",
|
|
1139
|
-
// 48px (3rem)
|
|
1140
|
-
lg: "size-16"
|
|
1141
|
-
// 64px (4rem)
|
|
1142
|
-
},
|
|
1143
|
-
/**
|
|
1144
|
-
* Typography tokens for EmptyState
|
|
1145
|
-
* Maps to foundation typography tokens
|
|
1146
|
-
*/
|
|
1147
|
-
typography: {
|
|
1148
|
-
title: {
|
|
1149
|
-
fontSize: "text-lg",
|
|
1150
|
-
// Maps to fontSize.lg[0]
|
|
1151
|
-
fontWeight: "font-semibold"
|
|
1152
|
-
// Maps to fontWeight.semibold
|
|
1153
|
-
},
|
|
1154
|
-
description: {
|
|
1155
|
-
fontSize: "text-sm",
|
|
1156
|
-
// Maps to fontSize.sm[0]
|
|
1157
|
-
fontWeight: "font-normal"
|
|
1158
|
-
// Maps to fontWeight.normal
|
|
1159
|
-
}
|
|
1160
|
-
}
|
|
1161
|
-
},
|
|
1162
|
-
/**
|
|
1163
|
-
* DataList Component Tokens
|
|
1164
|
-
*/
|
|
1165
|
-
dataList: {
|
|
1166
|
-
/**
|
|
1167
|
-
* Spacing tokens for DataList
|
|
1168
|
-
* Maps to semantic spacing tokens
|
|
1169
|
-
*/
|
|
1170
|
-
spacing: {
|
|
1171
|
-
gap: "gap-md",
|
|
1172
|
-
// 16px (1rem) - gap between items - maps to semanticSpacing.md
|
|
1173
|
-
padding: "p-md"
|
|
1174
|
-
// 16px (1rem) - container padding - maps to semanticSpacing.md
|
|
1175
|
-
},
|
|
1176
|
-
/**
|
|
1177
|
-
* Label width tokens (for desktop horizontal layout)
|
|
1178
|
-
* Maps to Tailwind width utilities
|
|
1179
|
-
*/
|
|
1180
|
-
labelWidth: {
|
|
1181
|
-
sm: "w-24",
|
|
1182
|
-
// 96px (6rem) - small label width
|
|
1183
|
-
md: "w-32",
|
|
1184
|
-
// 128px (8rem) - default label width
|
|
1185
|
-
lg: "w-40"
|
|
1186
|
-
// 160px (10rem) - large label width
|
|
1187
|
-
},
|
|
1188
|
-
/**
|
|
1189
|
-
* Row padding tokens
|
|
1190
|
-
* Maps to semantic spacing tokens
|
|
1191
|
-
*/
|
|
1192
|
-
rowPadding: {
|
|
1193
|
-
sm: "py-xs",
|
|
1194
|
-
// 4px (0.25rem) - maps to semanticSpacing.xs
|
|
1195
|
-
md: "py-sm",
|
|
1196
|
-
// 8px (0.5rem) - maps to semanticSpacing.sm
|
|
1197
|
-
lg: "py-md"
|
|
1198
|
-
// 16px (1rem) - maps to semanticSpacing.md
|
|
1199
|
-
}
|
|
1200
1412
|
}
|
|
1201
1413
|
};
|
|
1202
1414
|
|
|
@@ -1256,139 +1468,6 @@ var ICON_TOKENS = {
|
|
|
1256
1468
|
}
|
|
1257
1469
|
};
|
|
1258
1470
|
|
|
1259
|
-
// src/tokens/components/motion.ts
|
|
1260
|
-
var MOTION_TOKENS = {
|
|
1261
|
-
/**
|
|
1262
|
-
* Transition property tokens
|
|
1263
|
-
* Maps to Tailwind transition utilities
|
|
1264
|
-
*/
|
|
1265
|
-
transition: {
|
|
1266
|
-
all: "transition-all",
|
|
1267
|
-
// All properties
|
|
1268
|
-
colors: "transition-colors",
|
|
1269
|
-
// Color properties only
|
|
1270
|
-
opacity: "transition-opacity",
|
|
1271
|
-
// Opacity only
|
|
1272
|
-
transform: "transition-transform",
|
|
1273
|
-
// Transform only
|
|
1274
|
-
shadow: "transition-shadow",
|
|
1275
|
-
// Box shadow only
|
|
1276
|
-
none: "transition-none"
|
|
1277
|
-
// No transition
|
|
1278
|
-
},
|
|
1279
|
-
/**
|
|
1280
|
-
* Duration tokens
|
|
1281
|
-
* Maps to foundation motion duration tokens via Tailwind
|
|
1282
|
-
*/
|
|
1283
|
-
duration: {
|
|
1284
|
-
instant: "duration-0",
|
|
1285
|
-
// 0ms
|
|
1286
|
-
fast: "duration-fast",
|
|
1287
|
-
// 150ms - maps to motion.durations.fast
|
|
1288
|
-
normal: "duration-normal",
|
|
1289
|
-
// 300ms - maps to motion.durations.normal
|
|
1290
|
-
slow: "duration-slow",
|
|
1291
|
-
// 500ms - maps to motion.durations.slow
|
|
1292
|
-
slower: "duration-slower",
|
|
1293
|
-
// 700ms - maps to motion.durations.slower
|
|
1294
|
-
slowest: "duration-slowest",
|
|
1295
|
-
// 1000ms - maps to motion.durations.slowest
|
|
1296
|
-
// Granular durations
|
|
1297
|
-
"75": "duration-75",
|
|
1298
|
-
// 75ms
|
|
1299
|
-
"100": "duration-100",
|
|
1300
|
-
// 100ms
|
|
1301
|
-
"200": "duration-200",
|
|
1302
|
-
// 200ms
|
|
1303
|
-
"250": "duration-250",
|
|
1304
|
-
// 250ms
|
|
1305
|
-
"300": "duration-300",
|
|
1306
|
-
// 300ms
|
|
1307
|
-
"400": "duration-400",
|
|
1308
|
-
// 400ms
|
|
1309
|
-
"500": "duration-500",
|
|
1310
|
-
// 500ms
|
|
1311
|
-
"600": "duration-600",
|
|
1312
|
-
// 600ms
|
|
1313
|
-
"700": "duration-700",
|
|
1314
|
-
// 700ms
|
|
1315
|
-
"800": "duration-800",
|
|
1316
|
-
// 800ms
|
|
1317
|
-
"1000": "duration-1000"
|
|
1318
|
-
// 1000ms
|
|
1319
|
-
},
|
|
1320
|
-
/**
|
|
1321
|
-
* Easing tokens
|
|
1322
|
-
* Maps to foundation motion easing tokens via Tailwind
|
|
1323
|
-
*/
|
|
1324
|
-
easing: {
|
|
1325
|
-
linear: "ease-linear",
|
|
1326
|
-
// Linear easing
|
|
1327
|
-
in: "ease-in",
|
|
1328
|
-
// Ease in
|
|
1329
|
-
out: "ease-out",
|
|
1330
|
-
// Ease out (recommended for most UI)
|
|
1331
|
-
"in-out": "ease-in-out",
|
|
1332
|
-
// Ease in-out
|
|
1333
|
-
bounce: "ease-bounce",
|
|
1334
|
-
// Bounce easing
|
|
1335
|
-
elastic: "ease-elastic"
|
|
1336
|
-
// Elastic easing
|
|
1337
|
-
},
|
|
1338
|
-
/**
|
|
1339
|
-
* Pre-configured transition tokens
|
|
1340
|
-
* Combines duration and easing for common use cases
|
|
1341
|
-
*/
|
|
1342
|
-
transitionPreset: {
|
|
1343
|
-
fast: "transition-all duration-fast ease-out",
|
|
1344
|
-
// Fast transition
|
|
1345
|
-
normal: "transition-all duration-normal ease-in-out",
|
|
1346
|
-
// Normal transition (default)
|
|
1347
|
-
slow: "transition-all duration-slow ease-in-out",
|
|
1348
|
-
// Slow transition
|
|
1349
|
-
colors: "transition-colors duration-normal ease-out",
|
|
1350
|
-
// Color transitions (common)
|
|
1351
|
-
transform: "transition-transform duration-normal ease-out",
|
|
1352
|
-
// Transform transitions
|
|
1353
|
-
opacity: "transition-opacity duration-fast ease-out"
|
|
1354
|
-
// Opacity transitions
|
|
1355
|
-
},
|
|
1356
|
-
/**
|
|
1357
|
-
* Animation tokens
|
|
1358
|
-
* Maps to foundation motion animation tokens via Tailwind
|
|
1359
|
-
*/
|
|
1360
|
-
animation: {
|
|
1361
|
-
none: "animate-none",
|
|
1362
|
-
// No animation
|
|
1363
|
-
spin: "animate-spin",
|
|
1364
|
-
// Spin animation
|
|
1365
|
-
pulse: "animate-pulse",
|
|
1366
|
-
// Pulse animation
|
|
1367
|
-
bounce: "animate-bounce",
|
|
1368
|
-
// Bounce animation
|
|
1369
|
-
ping: "animate-ping",
|
|
1370
|
-
// Ping animation
|
|
1371
|
-
shake: "animate-shake",
|
|
1372
|
-
// Shake animation
|
|
1373
|
-
fadeIn: "animate-fadeIn",
|
|
1374
|
-
// Fade in
|
|
1375
|
-
fadeOut: "animate-fadeOut",
|
|
1376
|
-
// Fade out
|
|
1377
|
-
slideInUp: "animate-slideInUp",
|
|
1378
|
-
// Slide in from bottom
|
|
1379
|
-
slideInDown: "animate-slideInDown",
|
|
1380
|
-
// Slide in from top
|
|
1381
|
-
slideInLeft: "animate-slideInLeft",
|
|
1382
|
-
// Slide in from right
|
|
1383
|
-
slideInRight: "animate-slideInRight",
|
|
1384
|
-
// Slide in from left
|
|
1385
|
-
scaleIn: "animate-scaleIn",
|
|
1386
|
-
// Scale in
|
|
1387
|
-
scaleOut: "animate-scaleOut"
|
|
1388
|
-
// Scale out
|
|
1389
|
-
}
|
|
1390
|
-
};
|
|
1391
|
-
|
|
1392
1471
|
// src/tokens/components/domain.ts
|
|
1393
1472
|
var DOMAIN_TOKENS = {
|
|
1394
1473
|
/**
|
|
@@ -1541,7 +1620,7 @@ var DOMAIN_TOKENS = {
|
|
|
1541
1620
|
},
|
|
1542
1621
|
/**
|
|
1543
1622
|
* Image tokens for card media
|
|
1544
|
-
* Defines aspect ratio, radius, and
|
|
1623
|
+
* Defines aspect ratio, radius, overlay styles, and placeholder gradients
|
|
1545
1624
|
*/
|
|
1546
1625
|
image: {
|
|
1547
1626
|
/**
|
|
@@ -1564,6 +1643,40 @@ var DOMAIN_TOKENS = {
|
|
|
1564
1643
|
overlay: {
|
|
1565
1644
|
gradient: "bg-gradient-to-t from-black/60 via-transparent to-transparent"
|
|
1566
1645
|
// Gradient overlay for image hover states
|
|
1646
|
+
},
|
|
1647
|
+
/**
|
|
1648
|
+
* Placeholder gradient tokens for image placeholders
|
|
1649
|
+
* Used when no image URL is provided
|
|
1650
|
+
*/
|
|
1651
|
+
placeholder: {
|
|
1652
|
+
gradient: "bg-gradient-to-br from-muted to-muted/50"
|
|
1653
|
+
// Placeholder gradient background
|
|
1654
|
+
}
|
|
1655
|
+
},
|
|
1656
|
+
/**
|
|
1657
|
+
* Text tokens for card text elements
|
|
1658
|
+
* Defines hover states and line clamping for titles and descriptions
|
|
1659
|
+
*/
|
|
1660
|
+
text: {
|
|
1661
|
+
/**
|
|
1662
|
+
* Hover state tokens for text elements
|
|
1663
|
+
* Used for interactive text elements like titles
|
|
1664
|
+
*/
|
|
1665
|
+
hover: {
|
|
1666
|
+
primary: "group-hover:text-primary"
|
|
1667
|
+
// Hover state for primary text color
|
|
1668
|
+
},
|
|
1669
|
+
/**
|
|
1670
|
+
* Line clamp tokens for text truncation
|
|
1671
|
+
* Used for limiting text to specific number of lines
|
|
1672
|
+
*/
|
|
1673
|
+
lineClamp: {
|
|
1674
|
+
one: "line-clamp-1",
|
|
1675
|
+
// Single line clamp
|
|
1676
|
+
two: "line-clamp-2",
|
|
1677
|
+
// Two line clamp
|
|
1678
|
+
three: "line-clamp-3"
|
|
1679
|
+
// Three line clamp
|
|
1567
1680
|
}
|
|
1568
1681
|
},
|
|
1569
1682
|
/**
|
|
@@ -1786,6 +1899,94 @@ var DOMAIN_TOKENS = {
|
|
|
1786
1899
|
height: "h-6"
|
|
1787
1900
|
// References spacing[6] (1.5rem / 24px) via Tailwind
|
|
1788
1901
|
}
|
|
1902
|
+
},
|
|
1903
|
+
/**
|
|
1904
|
+
* CTA (Call-to-Action) button tokens for domain card components
|
|
1905
|
+
* Provides PromoCard-specific CTA button styling tokens
|
|
1906
|
+
* These tokens are semantically owned by domain card components, not by the Button component
|
|
1907
|
+
* References foundation tokens (spacing, typography, radius, shadows, motion) for consistency
|
|
1908
|
+
*/
|
|
1909
|
+
cta: {
|
|
1910
|
+
/**
|
|
1911
|
+
* CTA button styling tokens
|
|
1912
|
+
* Used by PromoCard and other domain card components for CTA button elements
|
|
1913
|
+
*/
|
|
1914
|
+
button: {
|
|
1915
|
+
/**
|
|
1916
|
+
* Button heights by size
|
|
1917
|
+
* Maps to Tailwind height utilities: h-8, h-9
|
|
1918
|
+
*/
|
|
1919
|
+
height: {
|
|
1920
|
+
sm: "h-8",
|
|
1921
|
+
// 32px (2rem) - compact size
|
|
1922
|
+
md: "h-9"
|
|
1923
|
+
// 36px (2.25rem) - default size
|
|
1924
|
+
},
|
|
1925
|
+
/**
|
|
1926
|
+
* Button padding by size
|
|
1927
|
+
* Horizontal and vertical padding values
|
|
1928
|
+
* References semanticSpacing tokens
|
|
1929
|
+
*/
|
|
1930
|
+
padding: {
|
|
1931
|
+
horizontal: {
|
|
1932
|
+
sm: "px-sm",
|
|
1933
|
+
// 8px (0.5rem) - maps to semanticSpacing.sm
|
|
1934
|
+
md: "px-md"
|
|
1935
|
+
// 16px (1rem) - maps to semanticSpacing.md
|
|
1936
|
+
},
|
|
1937
|
+
vertical: {
|
|
1938
|
+
sm: "py-xs"
|
|
1939
|
+
// 4px (0.25rem) - maps to semanticSpacing.xs
|
|
1940
|
+
}
|
|
1941
|
+
},
|
|
1942
|
+
/**
|
|
1943
|
+
* Border radius for CTA buttons
|
|
1944
|
+
* References borderRadius.md (6px / 0.375rem)
|
|
1945
|
+
* Using Tailwind class "rounded-md" which maps to borderRadius.md
|
|
1946
|
+
*/
|
|
1947
|
+
radius: "rounded-md",
|
|
1948
|
+
// References borderRadius.md via Tailwind
|
|
1949
|
+
/**
|
|
1950
|
+
* Font sizes by button size
|
|
1951
|
+
* Maps to foundation typography fontSize tokens
|
|
1952
|
+
*/
|
|
1953
|
+
fontSize: {
|
|
1954
|
+
sm: "text-xs",
|
|
1955
|
+
// Maps to fontSize.xs[0]
|
|
1956
|
+
md: "text-sm"
|
|
1957
|
+
// Maps to fontSize.sm[0]
|
|
1958
|
+
},
|
|
1959
|
+
/**
|
|
1960
|
+
* Shadow tokens for CTA buttons
|
|
1961
|
+
* Maps to foundation elevation shadow tokens
|
|
1962
|
+
*/
|
|
1963
|
+
shadow: {
|
|
1964
|
+
primary: "shadow"
|
|
1965
|
+
// Maps to elevationShadows.xs (primary variant uses shadow)
|
|
1966
|
+
},
|
|
1967
|
+
/**
|
|
1968
|
+
* Color tokens for CTA button variants
|
|
1969
|
+
* Uses semantic color tokens that map to CSS variables
|
|
1970
|
+
*/
|
|
1971
|
+
variant: {
|
|
1972
|
+
primary: {
|
|
1973
|
+
background: "bg-primary",
|
|
1974
|
+
// Primary background using CSS var
|
|
1975
|
+
text: "text-primary-foreground",
|
|
1976
|
+
// Primary text using CSS var
|
|
1977
|
+
hover: "hover:bg-primary/90"
|
|
1978
|
+
// Primary hover using CSS var
|
|
1979
|
+
}
|
|
1980
|
+
},
|
|
1981
|
+
/**
|
|
1982
|
+
* Transition tokens for CTA buttons
|
|
1983
|
+
* References MOTION_TOKENS for transitions
|
|
1984
|
+
*/
|
|
1985
|
+
transition: {
|
|
1986
|
+
colors: "transition-colors"
|
|
1987
|
+
// Color transition using motion tokens
|
|
1988
|
+
}
|
|
1989
|
+
}
|
|
1789
1990
|
}
|
|
1790
1991
|
};
|
|
1791
1992
|
|
|
@@ -1889,40 +2090,6 @@ var INPUT_TOKENS = {
|
|
|
1889
2090
|
text: "text-[hsl(var(--foreground))]"
|
|
1890
2091
|
// File input text color using CSS var
|
|
1891
2092
|
},
|
|
1892
|
-
/**
|
|
1893
|
-
* Select listbox tokens
|
|
1894
|
-
* Styling for select dropdown container
|
|
1895
|
-
*/
|
|
1896
|
-
selectListbox: {
|
|
1897
|
-
border: "border border-[hsl(var(--border))]",
|
|
1898
|
-
// Border color using CSS var
|
|
1899
|
-
background: "bg-[hsl(var(--popover))]",
|
|
1900
|
-
// Background using CSS var
|
|
1901
|
-
text: "text-[hsl(var(--popover-foreground))]",
|
|
1902
|
-
// Text color using CSS var
|
|
1903
|
-
radius: "rounded-md",
|
|
1904
|
-
// Radius token (6px)
|
|
1905
|
-
shadow: "shadow-md"
|
|
1906
|
-
// Shadow token
|
|
1907
|
-
},
|
|
1908
|
-
/**
|
|
1909
|
-
* Select option tokens
|
|
1910
|
-
* Styling for select option items
|
|
1911
|
-
*/
|
|
1912
|
-
selectOption: {
|
|
1913
|
-
focus: {
|
|
1914
|
-
background: "focus:bg-[hsl(var(--accent))]",
|
|
1915
|
-
// Focus background using CSS var
|
|
1916
|
-
text: "focus:text-[hsl(var(--accent-foreground))]"
|
|
1917
|
-
// Focus text using CSS var
|
|
1918
|
-
},
|
|
1919
|
-
selected: {
|
|
1920
|
-
background: "bg-[hsl(var(--accent))]",
|
|
1921
|
-
// Selected background using CSS var
|
|
1922
|
-
text: "text-[hsl(var(--accent-foreground))]"
|
|
1923
|
-
// Selected text using CSS var
|
|
1924
|
-
}
|
|
1925
|
-
},
|
|
1926
2093
|
/**
|
|
1927
2094
|
* Variant-based tokens
|
|
1928
2095
|
* Border, background, and text colors for different variants
|
|
@@ -2910,8 +3077,16 @@ var TEXT_TOKENS = {
|
|
|
2910
3077
|
// Maps to fontSize.base[0]
|
|
2911
3078
|
lg: "text-lg",
|
|
2912
3079
|
// Maps to fontSize.lg[0]
|
|
2913
|
-
xl: "text-xl"
|
|
3080
|
+
xl: "text-xl",
|
|
2914
3081
|
// Maps to fontSize.xl[0]
|
|
3082
|
+
"2xl": "text-2xl",
|
|
3083
|
+
// Maps to fontSize.2xl[0]
|
|
3084
|
+
"3xl": "text-3xl",
|
|
3085
|
+
// Maps to fontSize.3xl[0]
|
|
3086
|
+
"4xl": "text-4xl",
|
|
3087
|
+
// Maps to fontSize.4xl[0]
|
|
3088
|
+
"5xl": "text-5xl"
|
|
3089
|
+
// Maps to fontSize.5xl[0]
|
|
2915
3090
|
},
|
|
2916
3091
|
/**
|
|
2917
3092
|
* Font weights by weight variant
|
|
@@ -2936,6 +3111,8 @@ var TEXT_TOKENS = {
|
|
|
2936
3111
|
// Maps to lineHeight.none
|
|
2937
3112
|
tight: "leading-tight",
|
|
2938
3113
|
// Maps to lineHeight.tight
|
|
3114
|
+
snug: "leading-snug",
|
|
3115
|
+
// Maps to lineHeight.snug
|
|
2939
3116
|
normal: "leading-normal",
|
|
2940
3117
|
// Maps to lineHeight.normal
|
|
2941
3118
|
relaxed: "leading-relaxed",
|
|
@@ -3459,9 +3636,9 @@ var TOAST_TOKENS = {
|
|
|
3459
3636
|
// Default opacity (hidden)
|
|
3460
3637
|
groupHover: "group-hover:opacity-100",
|
|
3461
3638
|
// Visible on group hover
|
|
3462
|
-
focus: "focus:opacity-100",
|
|
3639
|
+
focus: "focus-visible:opacity-100",
|
|
3463
3640
|
// Visible on focus
|
|
3464
|
-
focusRing: "focus:outline-none focus:ring-1"
|
|
3641
|
+
focusRing: "focus-visible:outline-none focus-visible:ring-1"
|
|
3465
3642
|
// Focus ring styling
|
|
3466
3643
|
}
|
|
3467
3644
|
}
|
|
@@ -4203,19 +4380,27 @@ var DROPDOWN_TOKENS = {
|
|
|
4203
4380
|
// 256px
|
|
4204
4381
|
}
|
|
4205
4382
|
},
|
|
4383
|
+
/**
|
|
4384
|
+
* Width tokens
|
|
4385
|
+
* Common width utilities
|
|
4386
|
+
*/
|
|
4387
|
+
width: {
|
|
4388
|
+
full: "w-full"
|
|
4389
|
+
// Full width (100%)
|
|
4390
|
+
},
|
|
4206
4391
|
/**
|
|
4207
4392
|
* Item tokens by size
|
|
4208
4393
|
* Individual menu item
|
|
4209
4394
|
*/
|
|
4210
4395
|
item: {
|
|
4211
4396
|
background: {
|
|
4212
|
-
focus: "focus:bg-[hsl(var(--accent))]",
|
|
4397
|
+
focus: "focus-visible:bg-[hsl(var(--accent))]",
|
|
4213
4398
|
// Focus background using CSS var
|
|
4214
4399
|
selected: "bg-[hsl(var(--accent))]"
|
|
4215
4400
|
// Selected background using CSS var
|
|
4216
4401
|
},
|
|
4217
4402
|
text: {
|
|
4218
|
-
focus: "focus:text-[hsl(var(--accent-foreground))]",
|
|
4403
|
+
focus: "focus-visible:text-[hsl(var(--accent-foreground))]",
|
|
4219
4404
|
// Focus text using CSS var
|
|
4220
4405
|
selected: "text-[hsl(var(--accent-foreground))]"
|
|
4221
4406
|
// Selected text using CSS var
|
|
@@ -4473,9 +4658,9 @@ var SELECT_TOKENS = {
|
|
|
4473
4658
|
// 8px (0.5rem) from left
|
|
4474
4659
|
},
|
|
4475
4660
|
focus: {
|
|
4476
|
-
background: "focus:bg-[hsl(var(--accent))]",
|
|
4661
|
+
background: "focus-visible:bg-[hsl(var(--accent))]",
|
|
4477
4662
|
// Focus background using CSS var
|
|
4478
|
-
text: "focus:text-[hsl(var(--accent-foreground))]"
|
|
4663
|
+
text: "focus-visible:text-[hsl(var(--accent-foreground))]"
|
|
4479
4664
|
// Focus text using CSS var
|
|
4480
4665
|
},
|
|
4481
4666
|
selected: {
|
|
@@ -5065,54 +5250,54 @@ var transitions = {
|
|
|
5065
5250
|
var keyframes = {
|
|
5066
5251
|
// Fade animations
|
|
5067
5252
|
fadeIn: {
|
|
5068
|
-
from: { opacity: 0 },
|
|
5069
|
-
to: { opacity: 1 }
|
|
5253
|
+
from: { opacity: "0" },
|
|
5254
|
+
to: { opacity: "1" }
|
|
5070
5255
|
},
|
|
5071
5256
|
fadeOut: {
|
|
5072
|
-
from: { opacity: 1 },
|
|
5073
|
-
to: { opacity: 0 }
|
|
5257
|
+
from: { opacity: "1" },
|
|
5258
|
+
to: { opacity: "0" }
|
|
5074
5259
|
},
|
|
5075
5260
|
// Slide animations
|
|
5076
5261
|
slideInUp: {
|
|
5077
|
-
from: { transform: "translateY(100%)", opacity: 0 },
|
|
5078
|
-
to: { transform: "translateY(0)", opacity: 1 }
|
|
5262
|
+
from: { transform: "translateY(100%)", opacity: "0" },
|
|
5263
|
+
to: { transform: "translateY(0)", opacity: "1" }
|
|
5079
5264
|
},
|
|
5080
5265
|
slideInDown: {
|
|
5081
|
-
from: { transform: "translateY(-100%)", opacity: 0 },
|
|
5082
|
-
to: { transform: "translateY(0)", opacity: 1 }
|
|
5266
|
+
from: { transform: "translateY(-100%)", opacity: "0" },
|
|
5267
|
+
to: { transform: "translateY(0)", opacity: "1" }
|
|
5083
5268
|
},
|
|
5084
5269
|
slideInLeft: {
|
|
5085
|
-
from: { transform: "translateX(-100%)", opacity: 0 },
|
|
5086
|
-
to: { transform: "translateX(0)", opacity: 1 }
|
|
5270
|
+
from: { transform: "translateX(-100%)", opacity: "0" },
|
|
5271
|
+
to: { transform: "translateX(0)", opacity: "1" }
|
|
5087
5272
|
},
|
|
5088
5273
|
slideInRight: {
|
|
5089
|
-
from: { transform: "translateX(100%)", opacity: 0 },
|
|
5090
|
-
to: { transform: "translateX(0)", opacity: 1 }
|
|
5274
|
+
from: { transform: "translateX(100%)", opacity: "0" },
|
|
5275
|
+
to: { transform: "translateX(0)", opacity: "1" }
|
|
5091
5276
|
},
|
|
5092
5277
|
slideOutUp: {
|
|
5093
|
-
from: { transform: "translateY(0)", opacity: 1 },
|
|
5094
|
-
to: { transform: "translateY(-100%)", opacity: 0 }
|
|
5278
|
+
from: { transform: "translateY(0)", opacity: "1" },
|
|
5279
|
+
to: { transform: "translateY(-100%)", opacity: "0" }
|
|
5095
5280
|
},
|
|
5096
5281
|
slideOutDown: {
|
|
5097
|
-
from: { transform: "translateY(0)", opacity: 1 },
|
|
5098
|
-
to: { transform: "translateY(100%)", opacity: 0 }
|
|
5282
|
+
from: { transform: "translateY(0)", opacity: "1" },
|
|
5283
|
+
to: { transform: "translateY(100%)", opacity: "0" }
|
|
5099
5284
|
},
|
|
5100
5285
|
slideOutLeft: {
|
|
5101
|
-
from: { transform: "translateX(0)", opacity: 1 },
|
|
5102
|
-
to: { transform: "translateX(-100%)", opacity: 0 }
|
|
5286
|
+
from: { transform: "translateX(0)", opacity: "1" },
|
|
5287
|
+
to: { transform: "translateX(-100%)", opacity: "0" }
|
|
5103
5288
|
},
|
|
5104
5289
|
slideOutRight: {
|
|
5105
|
-
from: { transform: "translateX(0)", opacity: 1 },
|
|
5106
|
-
to: { transform: "translateX(100%)", opacity: 0 }
|
|
5290
|
+
from: { transform: "translateX(0)", opacity: "1" },
|
|
5291
|
+
to: { transform: "translateX(100%)", opacity: "0" }
|
|
5107
5292
|
},
|
|
5108
5293
|
// Scale animations
|
|
5109
5294
|
scaleIn: {
|
|
5110
|
-
from: { transform: "scale(0.95)", opacity: 0 },
|
|
5111
|
-
to: { transform: "scale(1)", opacity: 1 }
|
|
5295
|
+
from: { transform: "scale(0.95)", opacity: "0" },
|
|
5296
|
+
to: { transform: "scale(1)", opacity: "1" }
|
|
5112
5297
|
},
|
|
5113
5298
|
scaleOut: {
|
|
5114
|
-
from: { transform: "scale(1)", opacity: 1 },
|
|
5115
|
-
to: { transform: "scale(0.95)", opacity: 0 }
|
|
5299
|
+
from: { transform: "scale(1)", opacity: "1" },
|
|
5300
|
+
to: { transform: "scale(0.95)", opacity: "0" }
|
|
5116
5301
|
},
|
|
5117
5302
|
scaleUp: {
|
|
5118
5303
|
from: { transform: "scale(1)" },
|
|
@@ -5133,8 +5318,8 @@ var keyframes = {
|
|
|
5133
5318
|
},
|
|
5134
5319
|
// Pulse and bounce
|
|
5135
5320
|
pulse: {
|
|
5136
|
-
"0%, 100%": { opacity: 1 },
|
|
5137
|
-
"50%": { opacity: 0.5 }
|
|
5321
|
+
"0%, 100%": { opacity: "1" },
|
|
5322
|
+
"50%": { opacity: "0.5" }
|
|
5138
5323
|
},
|
|
5139
5324
|
bounce: {
|
|
5140
5325
|
"0%, 100%": {
|
|
@@ -5156,7 +5341,7 @@ var keyframes = {
|
|
|
5156
5341
|
ping: {
|
|
5157
5342
|
"75%, 100%": {
|
|
5158
5343
|
transform: "scale(2)",
|
|
5159
|
-
opacity: 0
|
|
5344
|
+
opacity: "0"
|
|
5160
5345
|
}
|
|
5161
5346
|
},
|
|
5162
5347
|
// Accordion animations (for Radix UI)
|
|
@@ -6117,6 +6302,7 @@ var tokenSystemSummary = {
|
|
|
6117
6302
|
var UI_COLORS = tailwindThemeColors;
|
|
6118
6303
|
|
|
6119
6304
|
exports.ALERT_TOKENS = ALERT_TOKENS;
|
|
6305
|
+
exports.ARTIST_TOKENS = ARTIST_TOKENS;
|
|
6120
6306
|
exports.BUTTON_TOKENS = BUTTON_TOKENS;
|
|
6121
6307
|
exports.CARD_TOKENS = CARD_TOKENS;
|
|
6122
6308
|
exports.CHECKBOX_TOKENS = CHECKBOX_TOKENS;
|