@tenerife.music/ui 4.0.0 → 5.0.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.
@@ -1,4523 +0,0 @@
1
- import './colors-BRUYtnG-.cjs';
2
- import './index-4rLh47Jk.cjs';
3
- import './typography-BsoBDDcG.cjs';
4
-
5
- /**
6
- * Alert Component Tokens
7
- *
8
- * Component-level design tokens for Alert component.
9
- * Maps foundation tokens (spacing, radius) to alert-specific usage.
10
- *
11
- * All values reference foundation tokens to ensure consistency across the design system.
12
- */
13
- /**
14
- * Alert Component Tokens
15
- *
16
- * Defines spacing, sizing, and visual tokens for Alert component.
17
- * Values are mapped to Tailwind utility classes for direct use.
18
- */
19
- declare const ALERT_TOKENS: {
20
- /**
21
- * Padding for alert content
22
- */
23
- readonly padding: "p-md";
24
- /**
25
- * Border radius for alerts
26
- */
27
- readonly radius: "rounded-lg";
28
- /**
29
- * Border token
30
- * Base border style
31
- */
32
- readonly border: "border";
33
- /**
34
- * Icon size within alerts
35
- */
36
- readonly iconSize: "size-4";
37
- /**
38
- * Variant-based token structure
39
- * Organized by variant for token-driven styling
40
- */
41
- readonly variant: {
42
- readonly default: {
43
- readonly background: "bg-[hsl(var(--tm-muted))]";
44
- readonly border: "border-[hsl(var(--tm-border-default))]";
45
- readonly text: "text-[hsl(var(--tm-text-primary))]";
46
- };
47
- readonly primary: {
48
- readonly background: "bg-[hsl(var(--tm-primary))]/10";
49
- readonly border: "border-[hsl(var(--tm-primary))]/20";
50
- readonly text: "text-[hsl(var(--tm-primary-foreground))]";
51
- };
52
- readonly secondary: {
53
- readonly background: "bg-[hsl(var(--tm-secondary))]/10";
54
- readonly border: "border-[hsl(var(--tm-secondary))]/20";
55
- readonly text: "text-[hsl(var(--tm-secondary-foreground))]";
56
- };
57
- readonly accent: {
58
- readonly background: "bg-[hsl(var(--tm-accent))]/10";
59
- readonly border: "border-[hsl(var(--tm-accent))]/20";
60
- readonly text: "text-[hsl(var(--tm-accent-foreground))]";
61
- };
62
- readonly destructive: {
63
- readonly background: "bg-[hsl(var(--tm-destructive))]/10";
64
- readonly border: "border-[hsl(var(--tm-destructive))]/20";
65
- readonly text: "text-[hsl(var(--tm-destructive-foreground))]";
66
- };
67
- };
68
- };
69
-
70
- /**
71
- * Button Component Tokens
72
- *
73
- * Component-level design tokens for Button component.
74
- * Maps foundation tokens (spacing, typography, radius, shadows, motion) to button-specific usage.
75
- *
76
- * @component Button
77
- * @see {@link ../PRIMITIVES/Button/Button.tsx} - Button component implementation
78
- * @see {@link ../PRIMITIVES/Button/Button.stories.tsx} - Storybook examples
79
- *
80
- * @example
81
- * // Basic usage
82
- * <Button>Click Me</Button>
83
- *
84
- * @example
85
- * // With variant
86
- * <Button variant="primary">Primary Button</Button>
87
- *
88
- * @example
89
- * // With size
90
- * <Button size="lg">Large Button</Button>
91
- *
92
- * @example
93
- * // With icons
94
- * <Button leftIcon={<IconSearch />} rightIcon={<IconArrowRight />}>
95
- * Search
96
- * </Button>
97
- *
98
- * @example
99
- * // Icon-only button
100
- * <Button iconOnly size="md" aria-label="Search">
101
- * <IconSearch />
102
- * </Button>
103
- *
104
- * @example
105
- * // Disabled state
106
- * <Button disabled>Disabled Button</Button>
107
- *
108
- * All values reference foundation tokens to ensure consistency across the design system.
109
- *
110
- * Authority Compliance:
111
- * - Motion Authority: Uses MOTION_TOKENS.transitionPreset.colors
112
- * - Radius Authority: References componentRadius.button.md
113
- * - Typography Authority: References fontSize tokens
114
- * - Spacing Authority: References semanticSpacing tokens
115
- * - State Authority: Uses State Matrix CSS variables
116
- * - Interaction Authority: Follows Interaction Authority Contract
117
- *
118
- * @enforcement TUNG_TOKEN_AUTHORITY_EXPANSION_PLAN
119
- * @see docs/architecture/MOTION_AUTHORITY_CONTRACT.md
120
- * @see docs/architecture/RADIUS_AUTHORITY_CONTRACT.md
121
- * @see docs/architecture/TYPOGRAPHY_AUTHORITY_CONTRACT.md
122
- * @see docs/architecture/SPACING_AUTHORITY_CONTRACT.md
123
- */
124
- /**
125
- * Button Component Tokens
126
- *
127
- * Defines all spacing, sizing, typography, and visual tokens for Button component.
128
- * Values are mapped to Tailwind utility classes for direct use in component variants.
129
- */
130
- declare const BUTTON_TOKENS: {
131
- /**
132
- * Button heights by size
133
- * Maps to Tailwind height utilities: h-8, h-9, h-10
134
- *
135
- * @example
136
- * // Small size button (32px height)
137
- * <Button size="sm">Small Button</Button>
138
- *
139
- * @example
140
- * // Medium size button (36px height, default)
141
- * <Button size="md">Medium Button</Button>
142
- *
143
- * @example
144
- * // Large size button (40px height)
145
- * <Button size="lg">Large Button</Button>
146
- */
147
- readonly height: {
148
- readonly sm: "h-8";
149
- readonly md: "h-9";
150
- readonly lg: "h-10";
151
- };
152
- /**
153
- * Button padding by size
154
- * Horizontal and vertical padding values
155
- *
156
- * @example
157
- * // Padding is automatically applied based on size prop
158
- * <Button size="sm">Small Button</Button> // Uses px-sm py-xs
159
- * <Button size="md">Medium Button</Button> // Uses px-md py-sm
160
- * <Button size="lg">Large Button</Button> // Uses px-lg py-md
161
- */
162
- readonly padding: {
163
- readonly horizontal: {
164
- readonly sm: "px-sm";
165
- readonly md: "px-md";
166
- readonly lg: "px-lg";
167
- };
168
- readonly vertical: {
169
- readonly sm: "py-xs";
170
- readonly md: "py-sm";
171
- readonly lg: "py-md";
172
- };
173
- };
174
- /**
175
- * Gap between icon and text by size
176
- * Scales with button size for visual consistency
177
- *
178
- * @example
179
- * // Gap is automatically applied between icon and text
180
- * <Button size="sm" leftIcon={<IconSearch />}>Search</Button> // Uses gap-xs
181
- * <Button size="md" leftIcon={<IconSearch />}>Search</Button> // Uses gap-sm
182
- * <Button size="lg" leftIcon={<IconSearch />}>Search</Button> // Uses gap-md
183
- */
184
- readonly gap: {
185
- readonly sm: "gap-xs";
186
- readonly md: "gap-sm";
187
- readonly lg: "gap-md";
188
- };
189
- /**
190
- * Border radius for all button sizes
191
- * Consistent radius across sizes for visual harmony
192
- *
193
- * @enforcement TUNG_TOKEN_AUTHORITY_EXPANSION_PLAN
194
- * @rule References componentRadius.button.md (6px / 0.375rem) from Radius Authority
195
- * @see docs/architecture/RADIUS_AUTHORITY_CONTRACT.md
196
- */
197
- readonly radius: "rounded-md";
198
- /**
199
- * Icon size within buttons by button size
200
- * Scales proportionally with button size for visual balance
201
- * Contains full SVG selector classes for direct use in CVA
202
- *
203
- * @example
204
- * // Icon size scales automatically with button size
205
- * <Button size="sm" leftIcon={<IconSearch />}>Search</Button> // Icon: 14px
206
- * <Button size="md" leftIcon={<IconSearch />}>Search</Button> // Icon: 16px
207
- * <Button size="lg" leftIcon={<IconSearch />}>Search</Button> // Icon: 20px
208
- */
209
- readonly iconSize: {
210
- readonly sm: "[&_svg]:w-3.5 [&_svg]:h-3.5";
211
- readonly md: "[&_svg]:w-4 [&_svg]:h-4";
212
- readonly lg: "[&_svg]:w-5 [&_svg]:h-5";
213
- };
214
- /**
215
- * Width tokens
216
- * Used for icon-only buttons (square buttons with equal width and height)
217
- *
218
- * @example
219
- * // Width matches height for icon-only buttons
220
- * <Button iconOnly size="sm" aria-label="Search"><IconSearch /></Button> // 32x32px
221
- * <Button iconOnly size="md" aria-label="Search"><IconSearch /></Button> // 36x36px
222
- * <Button iconOnly size="lg" aria-label="Search"><IconSearch /></Button> // 40x40px
223
- */
224
- readonly width: {
225
- readonly sm: "w-8";
226
- readonly md: "w-9";
227
- readonly lg: "w-10";
228
- };
229
- /**
230
- * Padding token for icon-only buttons
231
- * Zero padding required for square dimensions (icon-only buttons have no text, so no padding needed)
232
- * Uses p-0 which is a standard Tailwind class for zero spacing (spacing[0])
233
- *
234
- * @example
235
- * // Icon-only buttons use zero padding for square dimensions
236
- * <Button iconOnly size="md" aria-label="Search">
237
- * <IconSearch />
238
- * </Button>
239
- */
240
- readonly paddingIconOnly: "p-0";
241
- /**
242
- * Font sizes by button size
243
- * References foundation typography fontSize tokens from Typography Authority
244
- *
245
- * @enforcement TUNG_TOKEN_AUTHORITY_EXPANSION_PLAN
246
- * @rule All fontSize values reference Typography Authority tokens
247
- * @see docs/architecture/TYPOGRAPHY_AUTHORITY_CONTRACT.md
248
- *
249
- * @example
250
- * // Small font size (~12px)
251
- * <Button size="sm">Small Text</Button>
252
- *
253
- * @example
254
- * // Medium font size (~14px, default)
255
- * <Button size="md">Medium Text</Button>
256
- *
257
- * @example
258
- * // Large font size (~16px)
259
- * <Button size="lg">Large Text</Button>
260
- */
261
- readonly fontSize: {
262
- /** Small font size (~12px) */
263
- readonly sm: "text-xs";
264
- /** Medium font size (~14px, default) */
265
- readonly md: "text-sm";
266
- /** Large font size (~16px) */
267
- readonly lg: "text-base";
268
- };
269
- /**
270
- * Shadow tokens by variant
271
- * Maps to foundation elevation shadow tokens
272
- */
273
- readonly shadow: {
274
- readonly default: "shadow-sm";
275
- readonly primary: "shadow";
276
- };
277
- /**
278
- * Color tokens for button variants
279
- * Uses semantic color tokens that map to CSS variables
280
- *
281
- * State tokens (hover, active, disabled) use CSS variables from State Matrix.
282
- * All states are injected via updateStateMatrixFromTokens() and consumed via arbitrary values.
283
- * States react to Color Authority changes automatically through State Matrix.
284
- *
285
- * Interaction Authority Rules:
286
- * - Hover (Priority 4): hover: prefix - ONLY when !disabled && !loading && pointer-events:auto
287
- * - Active (Priority 3): active: prefix - ONLY when !disabled && !loading && mousedown
288
- * - Focus (Priority 5): focus-visible: prefix - ONLY when !disabled && keyboard navigation
289
- * - Disabled (Priority 1): disabled: prefix - Blocks ALL interactions
290
- * - Loading (Priority 2): loading: prefix - Blocks hover/active (when implemented)
291
- * - Base (Priority 6): No prefix - Default state, pointer-events: auto
292
- *
293
- * @enforcement TUNG_STATE_AUTHORITY_FOUNDATION_LOCK
294
- * @enforcement TUNG_INTERACTION_AUTHORITY_FOUNDATION
295
- * @rule States use CSS variables, not Tailwind variants
296
- * @rule All state variables follow pattern: --{component}-{variant}-{state}-{property}
297
- * @rule Visual states (colors) are SEPARATE from interaction states (pointer-events)
298
- * @rule Hover MUST work with real mouse cursor, NOT just DevTools force state
299
- * @rule Active MUST activate only on mousedown, NOT on hover
300
- * @rule Focus MUST activate only on keyboard navigation, NOT on mouse click
301
- *
302
- * @example
303
- * // Primary variant - emphasized button with shadow (default)
304
- * <Button variant="primary">Get Started</Button>
305
- *
306
- * @example
307
- * // Secondary variant - secondary button style
308
- * <Button variant="secondary">Learn More</Button>
309
- *
310
- * @example
311
- * // Accent variant - accent color button
312
- * <Button variant="accent">Explore Feature</Button>
313
- *
314
- * @example
315
- * // Outline variant - bordered button
316
- * <Button variant="outline">Cancel</Button>
317
- *
318
- * @example
319
- * // Ghost variant - subtle background button
320
- * <Button variant="ghost">Menu Item</Button>
321
- *
322
- * @example
323
- * // Destructive variant - danger/delete actions
324
- * <Button variant="destructive">Delete</Button>
325
- *
326
- * @see docs/architecture/INTERACTION_AUTHORITY_CONTRACT.md
327
- */
328
- readonly variant: {
329
- /**
330
- * Primary variant - emphasized button with shadow (default variant)
331
- * @example
332
- * <Button variant="primary">Get Started</Button>
333
- */
334
- readonly primary: {
335
- readonly background: "bg-[hsl(var(--button-primary-base-bg))]";
336
- readonly text: "text-primary-foreground";
337
- readonly hover: "hover:bg-[hsl(var(--button-primary-hover-bg))]";
338
- readonly active: "active:bg-[hsl(var(--button-primary-active-bg))]";
339
- readonly focus: "focus-visible:bg-[hsl(var(--button-primary-focus-bg))]";
340
- readonly disabled: {
341
- readonly background: "disabled:bg-[hsl(var(--button-primary-disabled-bg))]";
342
- readonly text: "disabled:text-[hsl(var(--button-primary-disabled-text))]";
343
- };
344
- readonly loading: "bg-[hsl(var(--button-primary-loading-bg))]";
345
- };
346
- /**
347
- * Secondary variant - secondary button style
348
- * @example
349
- * <Button variant="secondary">Learn More</Button>
350
- */
351
- readonly secondary: {
352
- readonly background: "bg-secondary";
353
- readonly text: "text-secondary-foreground";
354
- readonly hover: "hover:bg-[hsl(var(--button-secondary-hover-bg))]";
355
- readonly active: "active:bg-[hsl(var(--button-secondary-active-bg))]";
356
- readonly disabled: {
357
- readonly background: "disabled:bg-[hsl(var(--button-secondary-disabled-bg))]";
358
- readonly text: "disabled:text-[hsl(var(--button-secondary-disabled-text))]";
359
- };
360
- };
361
- /**
362
- * Accent variant - accent color button
363
- * @example
364
- * <Button variant="accent">Explore Feature</Button>
365
- */
366
- readonly accent: {
367
- readonly background: "bg-accent";
368
- readonly text: "text-accent-foreground";
369
- readonly hover: "hover:bg-[hsl(var(--button-accent-hover-bg))]";
370
- readonly active: "active:bg-[hsl(var(--button-accent-active-bg))]";
371
- readonly disabled: {
372
- readonly background: "disabled:bg-[hsl(var(--button-accent-disabled-bg))]";
373
- readonly text: "disabled:text-[hsl(var(--button-accent-disabled-text))]";
374
- };
375
- };
376
- /**
377
- * Outline variant - bordered button
378
- * @example
379
- * <Button variant="outline">Cancel</Button>
380
- */
381
- readonly outline: {
382
- readonly border: "border border-input";
383
- readonly background: "bg-background";
384
- readonly text: "text-foreground";
385
- readonly hover: {
386
- readonly background: "hover:bg-[hsl(var(--button-outline-hover-bg))]";
387
- readonly text: "hover:text-[hsl(var(--button-outline-hover-text))]";
388
- readonly border: "hover:border-[hsl(var(--button-outline-hover-border))]";
389
- };
390
- readonly active: {
391
- readonly background: "active:bg-[hsl(var(--button-outline-active-bg))]";
392
- readonly text: "active:text-[hsl(var(--button-outline-active-text))]";
393
- readonly border: "active:border-[hsl(var(--button-outline-active-border))]";
394
- };
395
- readonly disabled: {
396
- readonly background: "disabled:bg-[hsl(var(--button-outline-disabled-bg))]";
397
- readonly text: "disabled:text-[hsl(var(--button-outline-disabled-text))]";
398
- readonly border: "disabled:border-[hsl(var(--button-outline-disabled-border))]";
399
- };
400
- };
401
- /**
402
- * Ghost variant - subtle background button
403
- * @example
404
- * <Button variant="ghost">Menu Item</Button>
405
- */
406
- readonly ghost: {
407
- readonly background: "bg-muted/10";
408
- readonly text: "text-foreground";
409
- readonly hover: {
410
- readonly background: "hover:bg-[hsl(var(--button-ghost-hover-bg))]";
411
- readonly text: "hover:text-[hsl(var(--button-ghost-hover-text))]";
412
- };
413
- readonly active: {
414
- readonly background: "active:bg-[hsl(var(--button-ghost-active-bg))]";
415
- readonly text: "active:text-[hsl(var(--button-ghost-active-text))]";
416
- };
417
- readonly disabled: {
418
- readonly background: "disabled:bg-[hsl(var(--button-ghost-disabled-bg))]";
419
- readonly text: "disabled:text-[hsl(var(--button-ghost-disabled-text))]";
420
- };
421
- };
422
- /**
423
- * Destructive variant - danger/delete actions
424
- * @example
425
- * <Button variant="destructive">Delete</Button>
426
- */
427
- readonly destructive: {
428
- readonly background: "bg-destructive";
429
- readonly text: "text-destructive-foreground";
430
- readonly hover: "hover:bg-[hsl(var(--button-destructive-hover-bg))]";
431
- readonly active: "active:bg-[hsl(var(--button-destructive-active-bg))]";
432
- readonly disabled: {
433
- readonly background: "disabled:bg-[hsl(var(--button-destructive-disabled-bg))]";
434
- readonly text: "disabled:text-[hsl(var(--button-destructive-disabled-text))]";
435
- };
436
- };
437
- };
438
- /**
439
- * Transition tokens
440
- * References Motion Authority tokens for consistent motion behavior
441
- *
442
- * @enforcement TUNG_TOKEN_AUTHORITY_EXPANSION_PLAN
443
- * @rule Uses MOTION_TOKENS.transitionPreset.colors from Motion Authority
444
- * @rule Motion transitions MUST use canonical motion tokens only
445
- * @see docs/architecture/MOTION_AUTHORITY_CONTRACT.md
446
- */
447
- readonly transition: {
448
- readonly colors: "transition-colors duration-normal ease-out";
449
- };
450
- /**
451
- * Global state tokens
452
- * Shared state tokens that apply across all variants
453
- * Variant-specific states are defined in variant.*.active and variant.*.disabled
454
- *
455
- * @enforcement TUNG_INTERACTION_AUTHORITY_FOUNDATION
456
- * @rule All interaction states MUST follow Interaction Authority Contract
457
- * @rule State priority: disabled > loading > active > hover > focus-visible > base
458
- * @rule Visual states (colors) are SEPARATE from interaction states (pointer-events, cursor)
459
- * @rule All states MUST be browser-native (CSS pseudo-classes), NOT JavaScript-managed
460
- */
461
- readonly state: {
462
- /**
463
- * Disabled state tokens
464
- * Global disabled state tokens (variant-specific overrides in variant.*.disabled)
465
- *
466
- * Interaction Authority Rules:
467
- * - Priority: 1 (Highest) - Blocks ALL interactions
468
- * - MUST block hover, active, and focus states
469
- * - MUST use disabled: prefix (never in base state)
470
- * - Base state MUST have pointer-events: auto (default) for hover to work
471
- *
472
- * @enforcement TUNG_INTERACTION_AUTHORITY_FOUNDATION
473
- * @enforcement TUNG_BUTTON_INTERACTION_FIX
474
- * @rule Interaction Authority: pointer-events is NOT a visual token
475
- * @rule pointer-events-none MUST use disabled: prefix (never in base state)
476
- * @rule Base state MUST have pointer-events: auto (default) for hover to work
477
- * @rule These tokens are applied in base but only activate when element is disabled
478
- * @rule Hover is FORBIDDEN when disabled={true}
479
- * @rule Active is FORBIDDEN when disabled={true}
480
- * @rule Focus is FORBIDDEN when disabled={true} (for interactions)
481
- *
482
- * @example
483
- * // Disabled button with proper accessibility attributes
484
- * <Button disabled>Disabled Button</Button>
485
- *
486
- * @example
487
- * // Disabled button prevents all interactions (hover, active, focus)
488
- * <Button disabled onClick={handleClick}>
489
- * Cannot Click
490
- * </Button>
491
- *
492
- * @see docs/architecture/INTERACTION_AUTHORITY_CONTRACT.md
493
- */
494
- readonly disabled: {
495
- readonly cursor: "disabled:cursor-not-allowed";
496
- readonly pointerEvents: "disabled:pointer-events-none";
497
- };
498
- /**
499
- * Focus state tokens
500
- * Focus ring for keyboard navigation
501
- *
502
- * Interaction Authority Rules:
503
- * - Priority: 5 - Lower than active and hover
504
- * - MUST activate only on keyboard navigation (focus-visible: prefix)
505
- * - MUST NOT activate on mouse click (use :focus-visible, not :focus)
506
- * - MUST be blocked by disabled state
507
- *
508
- * @enforcement TUNG_INTERACTION_AUTHORITY_FOUNDATION
509
- * @rule Focus MUST use focus-visible: prefix (keyboard navigation only)
510
- * @rule Focus MUST be blocked when disabled={true}
511
- * @rule Focus MUST NOT activate on mouse click
512
- *
513
- * @example
514
- * // Focus ring appears automatically on keyboard navigation (Tab key)
515
- * <Button>Focusable Button</Button>
516
- *
517
- * @example
518
- * // Focus is disabled when button is disabled
519
- * <Button disabled>Disabled Button</Button>
520
- *
521
- * @see docs/architecture/INTERACTION_AUTHORITY_CONTRACT.md
522
- */
523
- readonly focus: {
524
- readonly ring: "focus-visible:ring-1 focus-visible:ring-ring";
525
- readonly outline: "focus-visible:outline-none";
526
- };
527
- };
528
- };
529
- /**
530
- * Type exports for Button tokens
531
- */
532
- type ButtonHeight = keyof typeof BUTTON_TOKENS.height;
533
- type ButtonPaddingHorizontal = keyof typeof BUTTON_TOKENS.padding.horizontal;
534
- type ButtonPaddingVertical = keyof typeof BUTTON_TOKENS.padding.vertical;
535
- type ButtonFontSize = keyof typeof BUTTON_TOKENS.fontSize;
536
- type ButtonShadow = keyof typeof BUTTON_TOKENS.shadow;
537
-
538
- /**
539
- * Card Component Tokens
540
- *
541
- * Component-level design tokens for Card component.
542
- * Maps foundation tokens (spacing, radius, shadows) to card-specific usage.
543
- *
544
- * Prepared for future size variants (sm, md, lg).
545
- */
546
- /**
547
- * Card Component Tokens
548
- *
549
- * Defines spacing, radius, and shadow tokens for Card component.
550
- * Values are mapped to Tailwind utility classes for direct use.
551
- */
552
- declare const CARD_TOKENS: {
553
- /**
554
- * Padding for card sections (CardHeader, CardContent, CardFooter)
555
- */
556
- readonly padding: {
557
- readonly sm: "p-sm";
558
- readonly md: "p-lg";
559
- readonly lg: "p-xl";
560
- };
561
- /**
562
- * Border radius for cards
563
- */
564
- readonly radius: {
565
- readonly sm: "rounded-md";
566
- readonly md: "rounded-xl";
567
- readonly lg: "rounded-2xl";
568
- };
569
- /**
570
- * Vertical spacing within card sections
571
- * Used for CardHeader spacing
572
- */
573
- readonly spacing: {
574
- readonly vertical: {
575
- readonly xs: "space-y-xs";
576
- readonly sm: "space-y-sm";
577
- readonly md: "space-y-md";
578
- };
579
- };
580
- /**
581
- * Shadow (elevation) for cards
582
- * Maps to foundation elevation shadow tokens
583
- */
584
- readonly shadow: {
585
- readonly default: "shadow";
586
- readonly sm: "shadow-sm";
587
- readonly md: "shadow-md";
588
- readonly lg: "shadow-lg";
589
- };
590
- /**
591
- * Size-based token structure
592
- * Organized by size for easy access
593
- */
594
- readonly size: {
595
- readonly sm: {
596
- readonly padding: "p-sm";
597
- readonly paddingValue: "sm";
598
- readonly radius: "rounded-md";
599
- readonly radiusValue: "md";
600
- readonly shadow: "shadow-sm";
601
- readonly shadowValue: "sm";
602
- readonly spacing: {
603
- readonly vertical: "space-y-xs";
604
- };
605
- };
606
- readonly md: {
607
- readonly padding: "p-lg";
608
- readonly paddingValue: "lg";
609
- readonly radius: "rounded-xl";
610
- readonly radiusValue: "xl";
611
- readonly shadow: "shadow";
612
- readonly shadowValue: "xs";
613
- readonly spacing: {
614
- readonly vertical: "space-y-xs";
615
- };
616
- };
617
- readonly lg: {
618
- readonly padding: "p-xl";
619
- readonly paddingValue: "xl";
620
- readonly radius: "rounded-2xl";
621
- readonly radiusValue: "2xl";
622
- readonly shadow: "shadow-md";
623
- readonly shadowValue: "md";
624
- readonly spacing: {
625
- readonly vertical: "space-y-sm";
626
- };
627
- };
628
- };
629
- };
630
- /**
631
- * Type exports for Card tokens
632
- */
633
- type CardPadding = keyof typeof CARD_TOKENS.padding;
634
- type CardRadius = keyof typeof CARD_TOKENS.radius;
635
- type CardSpacingVertical = keyof typeof CARD_TOKENS.spacing.vertical;
636
- type CardShadow = keyof typeof CARD_TOKENS.shadow;
637
- type CardSize = keyof typeof CARD_TOKENS.size;
638
-
639
- /**
640
- * Artist Card Component Tokens
641
- *
642
- * Domain-specific design tokens for ArtistCard component.
643
- * Provides artist-specific styling tokens that complement DOMAIN_TOKENS.
644
- * All values reference foundation tokens or other component tokens.
645
- *
646
- * Foundation tokens referenced:
647
- * - DOMAIN_TOKENS: image, spacing, metadata, text from src/tokens/components/domain.ts
648
- * - Layout utilities: flex, positioning, sizing from Tailwind (allowed)
649
- */
650
- /**
651
- * Artist Card Component Tokens
652
- *
653
- * Defines artist-specific tokens for ArtistCard component.
654
- * Values reference DOMAIN_TOKENS and foundation tokens where possible.
655
- */
656
- declare const ARTIST_TOKENS: {
657
- /**
658
- * Image container tokens
659
- * Layout classes for image container wrapper
660
- */
661
- readonly image: {
662
- /**
663
- * Container layout tokens
664
- * Positioning and sizing for image container
665
- */
666
- readonly container: {
667
- /**
668
- * Base container layout
669
- * Relative positioning, full width, overflow hidden
670
- * Uses Tailwind layout utilities (allowed per architecture)
671
- */
672
- readonly layout: "relative w-full overflow-hidden";
673
- };
674
- /**
675
- * Image sizing tokens
676
- * Full width and height for images
677
- */
678
- readonly sizing: {
679
- /**
680
- * Full size image
681
- * Uses Tailwind sizing utilities (allowed per architecture)
682
- */
683
- readonly full: "h-full w-full";
684
- };
685
- /**
686
- * Placeholder container tokens
687
- * Layout for placeholder icon container when no image is provided
688
- */
689
- readonly placeholder: {
690
- /**
691
- * Placeholder container layout
692
- * Flex centering for placeholder icon
693
- * Uses Tailwind layout utilities (allowed per architecture)
694
- */
695
- readonly container: "flex h-full w-full items-center justify-center";
696
- };
697
- };
698
- /**
699
- * Footer border tokens
700
- * Border styling for card footer separator
701
- */
702
- readonly footer: {
703
- /**
704
- * Footer border tokens
705
- * Top border separator for footer section
706
- */
707
- readonly border: {
708
- /**
709
- * Footer border top
710
- * Uses semantic border color token
711
- */
712
- readonly top: "border-t border-border";
713
- };
714
- };
715
- };
716
- /**
717
- * Type exports for Artist Card tokens
718
- */
719
- type ArtistCardImageContainer = typeof ARTIST_TOKENS.image.container;
720
- type ArtistCardImageSizing = typeof ARTIST_TOKENS.image.sizing;
721
- type ArtistCardImagePlaceholder = typeof ARTIST_TOKENS.image.placeholder;
722
- type ArtistCardFooterBorder = typeof ARTIST_TOKENS.footer.border;
723
-
724
- /**
725
- * Domain Component Tokens
726
- *
727
- * Domain-specific design tokens for card components (EventCard, VenueCard, ArtistCard,
728
- * TicketCard, PromoCard, CategoryCard). These tokens provide a consistent foundation
729
- * for card surface styles, layout, images, metadata, badges, price/capacity displays,
730
- * hover/motion states, and skeleton loading states.
731
- *
732
- * All values reference foundation tokens or other component tokens.
733
- * Based on audit requirements from L3_CARD_AUDIT.md.
734
- *
735
- * Foundation tokens referenced:
736
- * - SPACING_TOKENS: semanticSpacing (xs, sm, md, lg, xl, 2xl, 3xl) from src/tokens/spacing.ts
737
- * - RADIUS_TOKENS: borderRadius (xs, sm, md, lg, xl, 2xl, full) from src/tokens/radius.ts
738
- * - TEXT_TOKENS: fontSize, fontWeight from src/tokens/components/text.ts
739
- * - ICON_TOKENS: sizes, colors from src/tokens/components/icon.ts
740
- * - SHADOW_TOKENS: elevationShadows (xs, sm, md, lg, xl, 2xl) from src/tokens/shadows.ts
741
- * - MOTION_TOKENS: transition, transitionPreset from src/tokens/components/motion.ts
742
- * - DATA_TOKENS: skeleton patterns from src/tokens/components/data.ts
743
- */
744
- /**
745
- * Domain Card Component Tokens
746
- *
747
- * Defines all tokens for domain-specific card components.
748
- * Values reference foundation tokens or other component tokens.
749
- */
750
- declare const DOMAIN_TOKENS: {
751
- /**
752
- * Surface tokens for card containers
753
- * Defines background, border, radius, and shadow for card surfaces
754
- */
755
- readonly surface: {
756
- /**
757
- * Background colors
758
- * Maps to semantic color tokens
759
- */
760
- readonly bg: {
761
- readonly default: "bg-card";
762
- readonly hover: "hover:bg-card/95";
763
- };
764
- /**
765
- * Border styles
766
- * Maps to semantic border tokens
767
- */
768
- readonly border: {
769
- readonly default: "border border-border";
770
- readonly hover: "hover:border-primary/20";
771
- };
772
- /**
773
- * Border radius
774
- * References borderRadius.xl (0.75rem / 12px)
775
- * Using Tailwind class "rounded-xl" which maps to borderRadius.xl
776
- */
777
- readonly radius: {
778
- readonly default: "rounded-xl";
779
- };
780
- /**
781
- * Shadow (elevation) tokens
782
- * References elevationShadows.md
783
- * Using Tailwind class "shadow-md" which maps to elevationShadows.md
784
- */
785
- readonly shadow: {
786
- readonly default: "shadow-md";
787
- };
788
- /**
789
- * Elevation change on hover
790
- * References elevationShadows.xl
791
- * Using Tailwind class "hover:shadow-xl" which maps to elevationShadows.xl
792
- */
793
- readonly elevation: {
794
- readonly hover: "hover:shadow-xl";
795
- };
796
- };
797
- /**
798
- * Spacing tokens for card component spacing
799
- * References semanticSpacing tokens
800
- * Note: Tailwind classes are used for component className application
801
- */
802
- readonly spacing: {
803
- /**
804
- * Section spacing - vertical spacing between card sections
805
- */
806
- readonly section: {
807
- readonly titleToSubtitle: "mb-xs";
808
- readonly subtitleToMetadata: "mb-sm";
809
- };
810
- /**
811
- * Badge spacing offsets
812
- */
813
- readonly badges: {
814
- readonly offsetX: "1rem";
815
- readonly offsetY: "1rem";
816
- };
817
- /**
818
- * Image spacing
819
- */
820
- readonly image: {
821
- readonly bottomMargin: "0";
822
- };
823
- /**
824
- * Card vertical gap
825
- */
826
- readonly card: {
827
- readonly verticalGap: "1rem";
828
- };
829
- /**
830
- * Metadata item gap
831
- */
832
- readonly metadata: {
833
- readonly itemGap: "0.25rem";
834
- };
835
- /**
836
- * Footer spacing
837
- */
838
- readonly footer: {
839
- readonly paddingTopDefault: "pt-sm";
840
- readonly paddingTopCompact: "pt-xs";
841
- };
842
- /**
843
- * Button spacing
844
- */
845
- readonly button: {
846
- readonly paddingDefault: "px-md py-xs";
847
- readonly paddingCompact: "px-sm py-xs";
848
- readonly iconMarginLeft: "ml-xs";
849
- };
850
- };
851
- /**
852
- * Layout tokens for card spacing and gaps
853
- * References semanticSpacing tokens
854
- * Note: Tailwind utilities are used for component className application
855
- */
856
- readonly layout: {
857
- /**
858
- * Padding tokens
859
- * References semanticSpacing (md = 16px, sm = 8px)
860
- * Note: "p-md" and "p-sm" are Tailwind utilities that apply semanticSpacing values
861
- */
862
- readonly padding: {
863
- readonly default: "p-md";
864
- readonly compact: "p-sm";
865
- };
866
- /**
867
- * Gap tokens for spacing between card elements
868
- * References semanticSpacing (md = 16px, xs = 4px)
869
- * Note: "gap-md" and "gap-xs" are Tailwind utilities that apply semanticSpacing values
870
- */
871
- readonly gap: {
872
- readonly default: "gap-md";
873
- readonly compact: "gap-xs";
874
- };
875
- };
876
- /**
877
- * Image tokens for card media
878
- * Defines aspect ratio, radius, overlay styles, and placeholder gradients
879
- */
880
- readonly image: {
881
- /**
882
- * Aspect ratio for card images
883
- * Standard 16:9 aspect ratio for card images
884
- */
885
- readonly aspectRatio: "aspect-video";
886
- /**
887
- * Border radius for images
888
- * References borderRadius.xl (0.75rem / 12px) for top corners only
889
- * Using Tailwind class "rounded-t-xl" which maps to borderRadius.xl
890
- */
891
- readonly radius: "rounded-t-xl";
892
- /**
893
- * Overlay gradient tokens for image overlays
894
- * Used for hover states and text readability
895
- * References GRADIENT_TOKENS.overlay.dark
896
- */
897
- readonly overlay: {
898
- readonly gradient: "bg-gradient-to-t from-black/60 via-transparent to-transparent";
899
- };
900
- /**
901
- * Placeholder gradient tokens for image placeholders
902
- * Used when no image URL is provided
903
- * References GRADIENT_TOKENS.surface.muted
904
- */
905
- readonly placeholder: {
906
- readonly gradient: "bg-gradient-to-br from-muted to-muted/50";
907
- };
908
- };
909
- /**
910
- * Text tokens for card text elements
911
- * Defines hover states and line clamping for titles and descriptions
912
- */
913
- readonly text: {
914
- /**
915
- * Hover state tokens for text elements
916
- * Used for interactive text elements like titles
917
- */
918
- readonly hover: {
919
- readonly primary: "group-hover:text-primary";
920
- };
921
- /**
922
- * Line clamp tokens for text truncation
923
- * Used for limiting text to specific number of lines
924
- */
925
- readonly lineClamp: {
926
- readonly one: "line-clamp-1";
927
- readonly two: "line-clamp-2";
928
- readonly three: "line-clamp-3";
929
- };
930
- };
931
- /**
932
- * Metadata tokens for card information displays
933
- * Used for date/time, location, and other metadata patterns
934
- * Maps to TEXT_TOKENS, ICON_TOKENS, and semanticSpacing
935
- */
936
- readonly metadata: {
937
- /**
938
- * Text color tokens
939
- * Maps to semantic text color tokens
940
- */
941
- readonly text: {
942
- readonly primary: "text-foreground";
943
- readonly secondary: "text-[hsl(var(--tm-text-muted))]";
944
- };
945
- /**
946
- * Icon tokens
947
- * Maps to ICON_TOKENS for sizes and colors
948
- */
949
- readonly icon: {
950
- readonly default: "text-[hsl(var(--tm-text-muted))]";
951
- readonly sizeSm: "h-4 w-4";
952
- };
953
- /**
954
- * Spacing tokens for metadata layouts
955
- * References semanticSpacing (xs = 4px, sm = 8px)
956
- * Using Tailwind classes which map to semanticSpacing values
957
- */
958
- readonly spacing: {
959
- readonly vertical: "gap-xs";
960
- readonly horizontal: "gap-sm";
961
- };
962
- };
963
- /**
964
- * Badge tokens for featured/popular badges
965
- * References semanticSpacing, borderRadius, and elevationShadows
966
- */
967
- readonly badges: {
968
- /**
969
- * Badge size tokens (padding)
970
- * References semanticSpacing for padding values
971
- * Using Tailwind classes which map to semanticSpacing values
972
- */
973
- readonly size: {
974
- readonly sm: "px-xs py-xs";
975
- readonly md: "px-sm py-xs";
976
- };
977
- /**
978
- * Badge positioning tokens
979
- * References semanticSpacing for absolute positioning
980
- * Using Tailwind classes which map to semanticSpacing values
981
- */
982
- readonly position: {
983
- readonly default: "right-md top-md";
984
- readonly compact: "right-sm top-sm";
985
- };
986
- /**
987
- * Additional vertical positioning tokens for multi-badge scenarios
988
- * References semanticSpacing for top positioning
989
- * Using Tailwind classes which map to semanticSpacing values
990
- */
991
- readonly positionY: {
992
- readonly xl: "top-xl";
993
- readonly "2xl": "top-2xl";
994
- readonly "3xl": "top-3xl";
995
- };
996
- /**
997
- * Badge surface (background) tokens
998
- * Maps to semantic color tokens
999
- * References GRADIENT_TOKENS.brand.featured for featured badges
1000
- */
1001
- readonly surface: {
1002
- readonly default: "bg-primary";
1003
- readonly featured: "bg-gradient-to-r from-accent-500 to-primary-600";
1004
- };
1005
- /**
1006
- * Badge text color
1007
- * White for contrast on colored backgrounds
1008
- */
1009
- readonly text: {
1010
- readonly color: "text-white";
1011
- };
1012
- /**
1013
- * Badge border radius
1014
- * References borderRadius.full (pill shape)
1015
- * Using Tailwind class "rounded-full" which maps to borderRadius.full
1016
- */
1017
- readonly radius: "rounded-full";
1018
- /**
1019
- * Badge shadow
1020
- * References elevationShadows.lg
1021
- * Using Tailwind class "shadow-lg" which maps to elevationShadows.lg
1022
- */
1023
- readonly shadow: "shadow-lg";
1024
- };
1025
- /**
1026
- * Price/Capacity tokens for displaying price and capacity information
1027
- * Maps to semantic text color tokens and semanticSpacing
1028
- */
1029
- readonly priceCapacity: {
1030
- /**
1031
- * Text color tokens
1032
- * Maps to semantic text color tokens
1033
- */
1034
- readonly text: {
1035
- readonly primary: "text-foreground";
1036
- readonly secondary: "text-[hsl(var(--tm-text-muted))]";
1037
- };
1038
- /**
1039
- * Spacing between price and capacity elements
1040
- * References semanticSpacing.sm (8px)
1041
- * Using Tailwind class "gap-sm" which maps to semanticSpacing.sm
1042
- */
1043
- readonly spacing: "gap-sm";
1044
- };
1045
- /**
1046
- * Motion tokens for hover and interaction states
1047
- * References MOTION_TOKENS for transitions and animations
1048
- */
1049
- readonly motion: {
1050
- /**
1051
- * Hover state tokens
1052
- * References MOTION_TOKENS and elevationShadows
1053
- */
1054
- readonly hover: {
1055
- readonly transition: "transition-all duration-normal ease-in-out";
1056
- readonly scale: "hover:scale-110";
1057
- readonly elevation: "hover:shadow-xl";
1058
- };
1059
- };
1060
- /**
1061
- * Skeleton tokens for loading states
1062
- * References DATA_TOKENS.skeleton for skeleton patterns and semanticSpacing for dimensions
1063
- */
1064
- readonly skeleton: {
1065
- /**
1066
- * Base skeleton wrapper tokens
1067
- * Default styling for skeleton wrapper components
1068
- */
1069
- readonly base: {
1070
- /**
1071
- * Default border radius for skeleton wrapper
1072
- * References DATA_TOKENS.skeleton.radius.text
1073
- */
1074
- readonly radius: "rounded-sm";
1075
- /**
1076
- * Default animation for skeleton wrapper
1077
- * References DATA_TOKENS.skeleton.animation.pulse
1078
- */
1079
- readonly animation: "animate-pulse";
1080
- /**
1081
- * Default background for skeleton wrapper
1082
- * References DATA_TOKENS.skeleton.background.default
1083
- */
1084
- readonly background: "bg-muted";
1085
- };
1086
- /**
1087
- * Image skeleton height
1088
- * Domain-specific: card images need 192px (spacing[48] = 12rem)
1089
- * Note: DATA_TOKENS.skeleton.height.card is 128px, but card images need 192px
1090
- * Using Tailwind class "h-48" which maps to spacing[48] (12rem / 192px)
1091
- */
1092
- readonly image: {
1093
- readonly height: "h-48";
1094
- };
1095
- /**
1096
- * Content gap for skeleton elements
1097
- * References semanticSpacing.md (16px)
1098
- * Using Tailwind class "gap-md" which maps to semanticSpacing.md
1099
- */
1100
- readonly content: {
1101
- readonly gap: "gap-md";
1102
- /**
1103
- * Content width tokens for skeleton elements
1104
- * References DATA_TOKENS where available, uses Tailwind fraction classes for domain-specific values
1105
- */
1106
- readonly width: {
1107
- readonly full: "w-full";
1108
- readonly threeQuarters: "w-3/4";
1109
- readonly half: "w-1/2";
1110
- };
1111
- };
1112
- /**
1113
- * Badge skeleton dimensions
1114
- * Domain-specific values for badge skeleton sizing
1115
- * References spacing values via Tailwind classes
1116
- */
1117
- readonly badge: {
1118
- readonly width: "w-20";
1119
- readonly height: "h-6";
1120
- };
1121
- };
1122
- /**
1123
- * CTA (Call-to-Action) button tokens for domain card components
1124
- * Provides PromoCard-specific CTA button styling tokens
1125
- * These tokens are semantically owned by domain card components, not by the Button component
1126
- * References foundation tokens (spacing, typography, radius, shadows, motion) for consistency
1127
- */
1128
- readonly cta: {
1129
- /**
1130
- * CTA button styling tokens
1131
- * Used by PromoCard and other domain card components for CTA button elements
1132
- */
1133
- readonly button: {
1134
- /**
1135
- * Button heights by size
1136
- * Maps to Tailwind height utilities: h-8, h-9
1137
- */
1138
- readonly height: {
1139
- readonly sm: "h-8";
1140
- readonly md: "h-9";
1141
- };
1142
- /**
1143
- * Button padding by size
1144
- * Horizontal and vertical padding values
1145
- * References semanticSpacing tokens
1146
- */
1147
- readonly padding: {
1148
- readonly horizontal: {
1149
- readonly sm: "px-sm";
1150
- readonly md: "px-md";
1151
- };
1152
- readonly vertical: {
1153
- readonly sm: "py-xs";
1154
- };
1155
- };
1156
- /**
1157
- * Border radius for CTA buttons
1158
- * References borderRadius.md (6px / 0.375rem)
1159
- * Using Tailwind class "rounded-md" which maps to borderRadius.md
1160
- */
1161
- readonly radius: "rounded-md";
1162
- /**
1163
- * Font sizes by button size
1164
- * Maps to foundation typography fontSize tokens
1165
- */
1166
- readonly fontSize: {
1167
- readonly sm: "text-xs";
1168
- readonly md: "text-sm";
1169
- };
1170
- /**
1171
- * Shadow tokens for CTA buttons
1172
- * Maps to foundation elevation shadow tokens
1173
- */
1174
- readonly shadow: {
1175
- readonly primary: "shadow";
1176
- };
1177
- /**
1178
- * Color tokens for CTA button variants
1179
- * Uses semantic color tokens that map to CSS variables
1180
- */
1181
- readonly variant: {
1182
- readonly primary: {
1183
- readonly background: "bg-primary";
1184
- readonly text: "text-primary-foreground";
1185
- readonly hover: "hover:bg-primary/90";
1186
- };
1187
- };
1188
- /**
1189
- * Transition tokens for CTA buttons
1190
- * References MOTION_TOKENS for transitions
1191
- */
1192
- readonly transition: {
1193
- readonly colors: "transition-colors";
1194
- };
1195
- };
1196
- };
1197
- };
1198
- /**
1199
- * Type exports for Domain Card tokens
1200
- */
1201
- type DomainCardSurface = typeof DOMAIN_TOKENS.surface;
1202
- type DomainCardLayout = typeof DOMAIN_TOKENS.layout;
1203
- type DomainCardImage = typeof DOMAIN_TOKENS.image;
1204
- type DomainCardMetadata = typeof DOMAIN_TOKENS.metadata;
1205
- type DomainCardBadge = typeof DOMAIN_TOKENS.badges;
1206
- type DomainCardPriceCapacity = typeof DOMAIN_TOKENS.priceCapacity;
1207
- type DomainCardMotion = typeof DOMAIN_TOKENS.motion;
1208
- type DomainCardSkeleton = typeof DOMAIN_TOKENS.skeleton;
1209
- type DomainCardSkeletonContentWidth = typeof DOMAIN_TOKENS.skeleton.content.width;
1210
-
1211
- /**
1212
- * Input Component Tokens
1213
- *
1214
- * Component-level design tokens for Input component.
1215
- * Maps foundation tokens (spacing, typography, radius, shadows) to input-specific usage.
1216
- * All color values use CSS variables for theme-aware styling.
1217
- *
1218
- * @component Input
1219
- * @see {@link ../PRIMITIVES/Input/Input.tsx} - Input component implementation
1220
- * @see {@link ../PRIMITIVES/Input/Input.stories.tsx} - Storybook examples
1221
- *
1222
- * @example
1223
- * // Basic usage
1224
- * <Input placeholder="Enter text..." />
1225
- *
1226
- * @example
1227
- * // With size
1228
- * <Input size="sm" placeholder="Small input" />
1229
- * <Input size="md" placeholder="Medium input" />
1230
- * <Input size="lg" placeholder="Large input" />
1231
- *
1232
- * @example
1233
- * // With invalid state
1234
- * <Input invalid placeholder="Invalid input" aria-describedby="error-id" />
1235
- *
1236
- * @example
1237
- * // Disabled state
1238
- * <Input disabled placeholder="Disabled input" />
1239
- *
1240
- * @example
1241
- * // Different input types
1242
- * <Input type="email" placeholder="Email" />
1243
- * <Input type="password" placeholder="Password" />
1244
- * <Input type="number" placeholder="Number" />
1245
- *
1246
- * All values reference foundation tokens to ensure consistency across the design system.
1247
- * Values are mapped to Tailwind utility classes for direct use in component variants.
1248
- */
1249
- declare const INPUT_TOKENS: {
1250
- /**
1251
- * Input heights by size
1252
- * Supports sm, md, lg sizes (canonical interactive size scale)
1253
- *
1254
- * @example
1255
- * // Small size input (32px height)
1256
- * <Input size="sm" placeholder="Small input" />
1257
- *
1258
- * @example
1259
- * // Medium size input (36px height, default)
1260
- * <Input size="md" placeholder="Medium input" />
1261
- *
1262
- * @example
1263
- * // Large size input (40px height)
1264
- * <Input size="lg" placeholder="Large input" />
1265
- */
1266
- readonly height: {
1267
- readonly sm: "h-8";
1268
- readonly md: "h-9";
1269
- readonly lg: "h-10";
1270
- };
1271
- /**
1272
- * Input padding by size
1273
- * Horizontal and vertical padding values
1274
- *
1275
- * @example
1276
- * // Padding is automatically applied based on size prop
1277
- * <Input size="sm" placeholder="Small" /> // Uses px-sm py-xs
1278
- * <Input size="md" placeholder="Medium" /> // Uses px-sm py-xs
1279
- * <Input size="lg" placeholder="Large" /> // Uses px-md py-sm
1280
- */
1281
- readonly padding: {
1282
- readonly horizontal: {
1283
- readonly sm: "px-sm";
1284
- readonly md: "px-sm";
1285
- readonly lg: "px-md";
1286
- };
1287
- readonly vertical: {
1288
- readonly sm: "py-xs";
1289
- readonly md: "py-xs";
1290
- readonly lg: "py-sm";
1291
- };
1292
- };
1293
- /**
1294
- * Border radius by size
1295
- *
1296
- * @example
1297
- * // All sizes use the same rounded-md radius (6px)
1298
- * <Input size="sm" placeholder="Small" />
1299
- * <Input size="md" placeholder="Medium" />
1300
- * <Input size="lg" placeholder="Large" />
1301
- */
1302
- readonly radius: {
1303
- readonly sm: "rounded-md";
1304
- readonly md: "rounded-md";
1305
- readonly lg: "rounded-md";
1306
- };
1307
- /**
1308
- * Font sizes by size variant
1309
- * Maps to foundation typography fontSize tokens
1310
- *
1311
- * @example
1312
- * // Small font size (~14px)
1313
- * <Input size="sm" placeholder="Small text" />
1314
- *
1315
- * @example
1316
- * // Medium font size (~16px, default)
1317
- * <Input size="md" placeholder="Medium text" />
1318
- *
1319
- * @example
1320
- * // Large font size (~18px)
1321
- * <Input size="lg" placeholder="Large text" />
1322
- */
1323
- readonly fontSize: {
1324
- /** Small font size (~14px) */
1325
- readonly sm: "text-sm";
1326
- /** Medium font size (~16px, default) */
1327
- readonly md: "text-base";
1328
- /** Large font size (~18px) */
1329
- readonly lg: "text-lg";
1330
- };
1331
- /**
1332
- * Responsive font size (md breakpoint)
1333
- */
1334
- readonly fontSizeResponsive: {
1335
- readonly md: "md:text-sm";
1336
- };
1337
- /**
1338
- * Shadow token
1339
- * Maps to foundation elevation shadow tokens
1340
- *
1341
- * @example
1342
- * // Shadow is automatically applied to inputs
1343
- * <Input placeholder="Input with shadow" />
1344
- */
1345
- readonly shadow: "shadow-sm";
1346
- /**
1347
- * File input tokens
1348
- * Styling for file input elements
1349
- */
1350
- readonly file: {
1351
- readonly text: "text-[hsl(var(--tm-text-primary))]";
1352
- };
1353
- /**
1354
- * Variant-based tokens
1355
- * Border, background, and text colors for different variants
1356
- * All use CSS variable references for theme support
1357
- *
1358
- * @example
1359
- * // Primary variant (if supported)
1360
- * // Uses primary color scheme with primary focus ring
1361
- *
1362
- * @example
1363
- * // Secondary variant (if supported)
1364
- * // Uses secondary color scheme with default focus ring
1365
- *
1366
- * @example
1367
- * // Outline variant (default appearance)
1368
- * // Transparent background with input border color
1369
- * <Input placeholder="Outline input" />
1370
- *
1371
- * @example
1372
- * // Ghost variant (if supported)
1373
- * // Fully transparent with no visible border
1374
- *
1375
- * @example
1376
- * // Destructive variant (if supported)
1377
- * // Uses destructive color scheme for error states
1378
- */
1379
- readonly variant: {
1380
- /** Primary variant tokens */
1381
- readonly primary: {
1382
- readonly border: "border-[hsl(var(--tm-primary))]";
1383
- readonly background: "bg-[hsl(var(--tm-primary))]";
1384
- readonly text: "text-[hsl(var(--tm-primary-foreground))]";
1385
- readonly focus: "focus-visible:shadow-[var(--focus-ring-primary)]";
1386
- };
1387
- /** Secondary variant tokens */
1388
- readonly secondary: {
1389
- readonly border: "border-[hsl(var(--tm-secondary))]";
1390
- readonly background: "bg-[hsl(var(--tm-secondary))]";
1391
- readonly text: "text-[hsl(var(--tm-secondary-foreground))]";
1392
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1393
- };
1394
- /** Outline variant tokens (default) */
1395
- readonly outline: {
1396
- readonly border: "border-[hsl(var(--tm-surface-base))]";
1397
- readonly background: "bg-transparent";
1398
- readonly text: "text-[hsl(var(--tm-text-primary))]";
1399
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1400
- };
1401
- /** Ghost variant tokens */
1402
- readonly ghost: {
1403
- readonly border: "border-transparent";
1404
- readonly background: "bg-transparent";
1405
- readonly text: "text-[hsl(var(--tm-text-primary))]";
1406
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1407
- };
1408
- /** Destructive variant tokens */
1409
- readonly destructive: {
1410
- readonly border: "border-[hsl(var(--tm-destructive))]";
1411
- readonly background: "bg-[hsl(var(--tm-destructive))]";
1412
- readonly text: "text-[hsl(var(--tm-destructive-foreground))]";
1413
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1414
- };
1415
- };
1416
- /**
1417
- * State-based tokens
1418
- * Border, background, and text colors for different states
1419
- * All use CSS variable references for theme support
1420
- *
1421
- * @example
1422
- * // Default state
1423
- * <Input placeholder="Enter text..." />
1424
- *
1425
- * @example
1426
- * // Focus state (automatic on focus)
1427
- * <Input placeholder="Click to focus" />
1428
- *
1429
- * @example
1430
- * // Error state (invalid prop)
1431
- * <Input invalid placeholder="Invalid input" aria-describedby="error-id" />
1432
- *
1433
- * @example
1434
- * // Success state (if supported)
1435
- * // Uses success border color
1436
- *
1437
- * @example
1438
- * // Disabled state
1439
- * <Input disabled placeholder="Disabled input" />
1440
- *
1441
- * @example
1442
- * // Placeholder styling
1443
- * <Input placeholder="Placeholder text" />
1444
- */
1445
- readonly state: {
1446
- readonly border: {
1447
- /** Default border color */
1448
- readonly default: "border-[hsl(var(--tm-surface-base))]";
1449
- /** Focus ring shadow */
1450
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1451
- /** Error state border (when invalid prop is true) */
1452
- readonly error: "border-[hsl(var(--tm-destructive))]";
1453
- /** Success state border */
1454
- readonly success: "border-success";
1455
- /** Disabled state border */
1456
- readonly disabled: "border-[hsl(var(--tm-surface-base))]";
1457
- };
1458
- readonly background: {
1459
- /** Default transparent background */
1460
- readonly default: "bg-transparent";
1461
- /** Disabled background */
1462
- readonly disabled: "bg-transparent";
1463
- };
1464
- readonly text: {
1465
- /** Default text color */
1466
- readonly default: "text-[hsl(var(--tm-text-primary))]";
1467
- /** Placeholder text color */
1468
- readonly placeholder: "placeholder:text-[hsl(var(--tm-text-muted))]";
1469
- /** Disabled text opacity */
1470
- readonly disabled: "disabled:opacity-50";
1471
- };
1472
- };
1473
- /**
1474
- * Icon tokens
1475
- * Size, spacing, and color for icons within inputs
1476
- *
1477
- * @example
1478
- * // Icon size (16px)
1479
- * // Used for icons inside input fields
1480
- *
1481
- * @example
1482
- * // Icon gap (8px spacing)
1483
- * // Spacing between icon and input text
1484
- *
1485
- * @example
1486
- * // Icon padding
1487
- * // Extra padding when icon is present on left or right side
1488
- *
1489
- * @example
1490
- * // Icon color
1491
- * // Uses muted-foreground color for icons
1492
- */
1493
- readonly icon: {
1494
- /** Icon size (16px) */
1495
- readonly size: "size-4";
1496
- /** Gap between icon and text (8px) */
1497
- readonly gap: "gap-sm";
1498
- /** Left padding when icon on left (24px) */
1499
- readonly paddingLeft: "pl-lg";
1500
- /** Right padding when icon on right (24px) */
1501
- readonly paddingRight: "pr-lg";
1502
- /** Icon color (muted foreground) */
1503
- readonly color: "text-[hsl(var(--tm-text-muted))]";
1504
- readonly position: {
1505
- /** Left position */
1506
- readonly left: "left-0";
1507
- /** Right position */
1508
- readonly right: "right-0";
1509
- /** Top position */
1510
- readonly top: "top-0";
1511
- };
1512
- };
1513
- /**
1514
- * Label tokens
1515
- * Spacing and styling for labels
1516
- *
1517
- * @example
1518
- * // Label spacing (8px between label and input)
1519
- * <Label>Email</Label>
1520
- * <Input type="email" placeholder="Enter email" />
1521
- *
1522
- * @example
1523
- * // Required mark color (destructive color for asterisk)
1524
- * <Label>Email <span className="text-destructive">*</span></Label>
1525
- * <Input type="email" required />
1526
- */
1527
- readonly label: {
1528
- /** Spacing between label and input (8px) */
1529
- readonly spacing: "space-y-sm";
1530
- /** Required asterisk color (destructive) */
1531
- readonly requiredMark: "text-destructive";
1532
- };
1533
- /**
1534
- * Width tokens
1535
- * Common width utilities
1536
- *
1537
- * @example
1538
- * // Full width input (100% of container)
1539
- * <Input placeholder="Full width input" className="w-full" />
1540
- */
1541
- readonly width: {
1542
- /** Full width (100%) */
1543
- readonly full: "w-full";
1544
- };
1545
- /**
1546
- * Message tokens
1547
- * Spacing, positioning, and styling for helper text and error messages
1548
- *
1549
- * @example
1550
- * // Helper text spacing (8px below input)
1551
- * <Input placeholder="Enter text" />
1552
- * <Text size="sm" tone="muted">Helper text</Text>
1553
- *
1554
- * @example
1555
- * // Error message
1556
- * <Input invalid placeholder="Invalid input" aria-describedby="error-id" />
1557
- * <Text id="error-id" size="sm" tone="destructive">Error message</Text>
1558
- *
1559
- * @example
1560
- * // Success message
1561
- * <Input placeholder="Valid input" />
1562
- * <Text size="sm" tone="success">Success message</Text>
1563
- *
1564
- * @example
1565
- * // Character counter position
1566
- * // Positioned at bottom-right of input container
1567
- */
1568
- readonly message: {
1569
- /** Spacing between input and message (8px) */
1570
- readonly spacing: "space-y-sm";
1571
- readonly position: {
1572
- /** Bottom position for character counter (8px) */
1573
- readonly bottom: "bottom-sm";
1574
- /** Right position for character counter (8px) */
1575
- readonly right: "right-sm";
1576
- };
1577
- readonly color: {
1578
- /** Default helper text color (muted foreground) */
1579
- readonly default: "text-[hsl(var(--tm-text-muted))]";
1580
- /** Error message color (destructive) - uses semantic foreground token */
1581
- readonly error: "text-[hsl(var(--tm-destructive-foreground))]";
1582
- /** Success message color (semantic success) */
1583
- readonly success: "text-success";
1584
- };
1585
- };
1586
- /**
1587
- * Size-based token structure
1588
- * Organized by size for easy access
1589
- */
1590
- readonly size: {
1591
- readonly sm: {
1592
- readonly height: "h-8";
1593
- readonly padding: {
1594
- readonly horizontal: "px-sm";
1595
- readonly vertical: "py-xs";
1596
- };
1597
- readonly radius: "rounded-md";
1598
- readonly fontSize: "text-sm";
1599
- readonly shadow: "shadow-sm";
1600
- };
1601
- readonly md: {
1602
- readonly height: "h-9";
1603
- readonly padding: {
1604
- readonly horizontal: "px-sm";
1605
- readonly vertical: "py-xs";
1606
- };
1607
- readonly radius: "rounded-md";
1608
- readonly fontSize: "text-base";
1609
- readonly fontSizeResponsive: "md:text-sm";
1610
- readonly shadow: "shadow-sm";
1611
- };
1612
- readonly lg: {
1613
- readonly height: "h-10";
1614
- readonly padding: {
1615
- readonly horizontal: "px-md";
1616
- readonly vertical: "py-sm";
1617
- };
1618
- readonly radius: "rounded-md";
1619
- readonly fontSize: "text-lg";
1620
- readonly shadow: "shadow-sm";
1621
- };
1622
- };
1623
- };
1624
- /**
1625
- * Type exports for Input tokens
1626
- */
1627
- type InputHeight = keyof typeof INPUT_TOKENS.height;
1628
- type InputPaddingHorizontal = keyof typeof INPUT_TOKENS.padding.horizontal;
1629
- type InputPaddingVertical = keyof typeof INPUT_TOKENS.padding.vertical;
1630
- type InputRadius = keyof typeof INPUT_TOKENS.radius;
1631
- type InputFontSize = keyof typeof INPUT_TOKENS.fontSize;
1632
- type InputSize = keyof typeof INPUT_TOKENS.size;
1633
-
1634
- /**
1635
- * Checkbox Component Tokens
1636
- *
1637
- * Component-level design tokens for Checkbox component.
1638
- * Maps foundation tokens (spacing, typography, radius, shadows) to checkbox-specific usage.
1639
- * All color values use CSS variables for theme-aware styling.
1640
- */
1641
- /**
1642
- * Checkbox Component Tokens
1643
- *
1644
- * Defines spacing, sizing, typography, and visual tokens for Checkbox component.
1645
- * All colors use CSS variable references (hsl(var(--token))) for theme-aware styling.
1646
- * Checkbox sizes are typically smaller than input fields.
1647
- */
1648
- declare const CHECKBOX_TOKENS: {
1649
- /**
1650
- * Checkbox sizes by size variant
1651
- * Supports sm, md, lg sizes (canonical interactive scale)
1652
- * Checkboxes are typically square and smaller than input fields
1653
- *
1654
- * NOTE: Size scale restricted to sm|md|lg per canonical interactive size scale (FOUNDATION_LOCK.md).
1655
- * xs and xl sizes removed to comply with Button-defined canonical scale.
1656
- */
1657
- readonly size: {
1658
- readonly sm: {
1659
- readonly width: "w-4";
1660
- readonly height: "h-4";
1661
- readonly radius: "rounded-sm";
1662
- readonly iconSize: "size-3";
1663
- };
1664
- readonly md: {
1665
- readonly width: "w-4.5";
1666
- readonly height: "h-4.5";
1667
- readonly radius: "rounded-md";
1668
- readonly iconSize: "size-3.5";
1669
- };
1670
- readonly lg: {
1671
- readonly width: "w-5";
1672
- readonly height: "h-5";
1673
- readonly radius: "rounded-md";
1674
- readonly iconSize: "size-4";
1675
- };
1676
- };
1677
- /**
1678
- * Variant-based tokens
1679
- * Border, background, and text colors for different variants
1680
- * All use CSS variable references for theme support
1681
- */
1682
- readonly variant: {
1683
- readonly primary: {
1684
- readonly border: "border-[hsl(var(--tm-primary))]";
1685
- readonly background: "bg-[hsl(var(--tm-primary))]";
1686
- readonly text: "text-[hsl(var(--tm-primary-foreground))]";
1687
- readonly focus: "focus-visible:shadow-[var(--focus-ring-primary)]";
1688
- };
1689
- readonly secondary: {
1690
- readonly border: "border-[hsl(var(--tm-secondary))]";
1691
- readonly background: "bg-[hsl(var(--tm-secondary))]";
1692
- readonly text: "text-[hsl(var(--tm-secondary-foreground))]";
1693
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1694
- };
1695
- readonly outline: {
1696
- readonly border: "border-[hsl(var(--tm-surface-base))]";
1697
- readonly background: "bg-transparent";
1698
- readonly text: "text-[hsl(var(--tm-text-primary))]";
1699
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1700
- };
1701
- readonly ghost: {
1702
- readonly border: "border-transparent";
1703
- readonly background: "bg-transparent";
1704
- readonly text: "text-[hsl(var(--tm-text-primary))]";
1705
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1706
- };
1707
- readonly destructive: {
1708
- readonly border: "border-[hsl(var(--tm-destructive))]";
1709
- readonly background: "bg-[hsl(var(--tm-destructive))]";
1710
- readonly text: "text-[hsl(var(--tm-destructive-foreground))]";
1711
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1712
- };
1713
- };
1714
- /**
1715
- * State-based tokens
1716
- * Border, background, and text colors for different states
1717
- * All use CSS variable references for theme support
1718
- */
1719
- readonly state: {
1720
- readonly border: {
1721
- readonly default: "border-[hsl(var(--tm-surface-base))]";
1722
- readonly checked: "border-[hsl(var(--tm-primary))]";
1723
- readonly indeterminate: "border-[hsl(var(--tm-primary))]";
1724
- readonly error: "border-[hsl(var(--tm-destructive))]";
1725
- readonly disabled: "border-[hsl(var(--tm-surface-base))]";
1726
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1727
- };
1728
- readonly background: {
1729
- readonly default: "bg-transparent";
1730
- readonly checked: "bg-[hsl(var(--tm-primary))]";
1731
- readonly indeterminate: "bg-[hsl(var(--tm-primary))]";
1732
- readonly disabled: "bg-transparent";
1733
- readonly disabledChecked: "bg-[hsl(var(--tm-muted))]";
1734
- };
1735
- readonly text: {
1736
- readonly default: "text-[hsl(var(--tm-text-primary))]";
1737
- readonly checked: "text-[hsl(var(--tm-primary-foreground))]";
1738
- readonly indeterminate: "text-[hsl(var(--tm-primary-foreground))]";
1739
- readonly disabled: "disabled:opacity-50";
1740
- };
1741
- };
1742
- /**
1743
- * Icon tokens
1744
- * Size and styling for checkmark icon within checkbox
1745
- * NOTE: Icon sizes restricted to sm|md|lg per canonical interactive size scale
1746
- */
1747
- readonly icon: {
1748
- readonly size: {
1749
- readonly sm: "size-3";
1750
- readonly md: "size-3.5";
1751
- readonly lg: "size-4";
1752
- };
1753
- readonly stroke: "stroke-2";
1754
- readonly color: {
1755
- readonly default: "text-[hsl(var(--tm-primary-foreground))]";
1756
- readonly disabled: "text-[hsl(var(--tm-text-muted))]";
1757
- readonly checkedOutline: "text-[hsl(var(--tm-primary))]";
1758
- readonly checkedGhost: "text-[hsl(var(--tm-primary))]";
1759
- };
1760
- };
1761
- /**
1762
- * Indeterminate indicator tokens
1763
- * Styling for indeterminate state (horizontal line)
1764
- */
1765
- readonly indeterminate: {
1766
- readonly width: "w-2";
1767
- readonly height: "h-0.5";
1768
- readonly color: "bg-[hsl(var(--tm-primary-foreground))]";
1769
- readonly colorOutline: "bg-[hsl(var(--tm-primary))]";
1770
- readonly colorGhost: "bg-[hsl(var(--tm-primary))]";
1771
- };
1772
- /**
1773
- * Shadow token
1774
- * Maps to foundation elevation shadow tokens
1775
- */
1776
- readonly shadow: "shadow-sm";
1777
- /**
1778
- * Transition tokens
1779
- * Smooth transitions for state changes
1780
- * Uses MOTION_TOKENS for canonical motion values
1781
- */
1782
- readonly transition: "transition-all duration-normal ease-in-out";
1783
- };
1784
- /**
1785
- * Type exports for Checkbox tokens
1786
- */
1787
- type CheckboxSize = keyof typeof CHECKBOX_TOKENS.size;
1788
- type CheckboxVariant = keyof typeof CHECKBOX_TOKENS.variant;
1789
- type CheckboxState = keyof typeof CHECKBOX_TOKENS.state.border;
1790
-
1791
- /**
1792
- * Switch Component Tokens
1793
- *
1794
- * Component-level design tokens for Switch component.
1795
- * Maps foundation tokens (spacing, typography, radius, shadows, motion) to switch-specific usage.
1796
- * All color values use CSS variables for theme-aware styling.
1797
- *
1798
- * Switch consists of a track (container) and handle (thumb) that slides within the track.
1799
- */
1800
- /**
1801
- * Switch Component Tokens
1802
- *
1803
- * Defines spacing, sizing, and visual tokens for Switch component.
1804
- * All colors use CSS variable references (hsl(var(--token))) for theme-aware styling.
1805
- * Switch track is wider than tall, with a circular handle that slides within.
1806
- */
1807
- declare const SWITCH_TOKENS: {
1808
- /**
1809
- * Track sizes by size variant
1810
- * Supports xs, sm, md, lg, xl sizes
1811
- * Track is wider than tall (typical switch proportions)
1812
- */
1813
- readonly track: {
1814
- readonly xs: {
1815
- readonly width: "w-8";
1816
- readonly height: "h-4";
1817
- readonly radius: "rounded-full";
1818
- };
1819
- readonly sm: {
1820
- readonly width: "w-9";
1821
- readonly height: "h-5";
1822
- readonly radius: "rounded-full";
1823
- };
1824
- readonly md: {
1825
- readonly width: "w-11";
1826
- readonly height: "h-6";
1827
- readonly radius: "rounded-full";
1828
- };
1829
- readonly lg: {
1830
- readonly width: "w-14";
1831
- readonly height: "h-7";
1832
- readonly radius: "rounded-full";
1833
- };
1834
- readonly xl: {
1835
- readonly width: "w-16";
1836
- readonly height: "h-8";
1837
- readonly radius: "rounded-full";
1838
- };
1839
- };
1840
- /**
1841
- * Handle sizes by size variant
1842
- * Circular thumb that slides within the track
1843
- * Slightly smaller than track height to allow for padding
1844
- */
1845
- readonly handle: {
1846
- readonly xs: {
1847
- readonly width: "w-3";
1848
- readonly height: "h-3";
1849
- readonly radius: "rounded-full";
1850
- readonly translate: "translate-x-4";
1851
- };
1852
- readonly sm: {
1853
- readonly width: "w-4";
1854
- readonly height: "h-4";
1855
- readonly radius: "rounded-full";
1856
- readonly translate: "translate-x-4";
1857
- };
1858
- readonly md: {
1859
- readonly width: "w-5";
1860
- readonly height: "h-5";
1861
- readonly radius: "rounded-full";
1862
- readonly translate: "translate-x-5";
1863
- };
1864
- readonly lg: {
1865
- readonly width: "w-6";
1866
- readonly height: "h-6";
1867
- readonly radius: "rounded-full";
1868
- readonly translate: "translate-x-7";
1869
- };
1870
- readonly xl: {
1871
- readonly width: "w-7";
1872
- readonly height: "h-7";
1873
- readonly radius: "rounded-full";
1874
- readonly translate: "translate-x-8";
1875
- };
1876
- /**
1877
- * Handle positioning tokens
1878
- * For absolute positioning within the track
1879
- */
1880
- readonly position: {
1881
- readonly left: "left-xs";
1882
- readonly top: "top-1/2";
1883
- readonly center: "-translate-y-1/2";
1884
- };
1885
- };
1886
- /**
1887
- * Variant-based tokens
1888
- * Track and handle colors for different variants
1889
- * All use CSS variable references for theme support
1890
- */
1891
- readonly variant: {
1892
- readonly primary: {
1893
- readonly track: {
1894
- readonly unchecked: "bg-[hsl(var(--tm-surface-base))]";
1895
- readonly checked: "bg-[hsl(var(--tm-primary))]";
1896
- };
1897
- readonly handle: {
1898
- readonly unchecked: "bg-[hsl(var(--tm-muted))]";
1899
- readonly checked: "bg-[hsl(var(--tm-primary-foreground))]";
1900
- };
1901
- readonly focus: "focus-visible:shadow-[var(--focus-ring-primary)]";
1902
- };
1903
- readonly secondary: {
1904
- readonly track: {
1905
- readonly unchecked: "bg-[hsl(var(--tm-surface-base))]";
1906
- readonly checked: "bg-[hsl(var(--tm-secondary))]";
1907
- };
1908
- readonly handle: {
1909
- readonly unchecked: "bg-[hsl(var(--tm-muted))]";
1910
- readonly checked: "bg-[hsl(var(--tm-secondary-foreground))]";
1911
- };
1912
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1913
- };
1914
- readonly outline: {
1915
- readonly track: {
1916
- readonly unchecked: "bg-[hsl(var(--tm-surface-base))]";
1917
- readonly checked: "bg-[hsl(var(--tm-primary))]";
1918
- };
1919
- readonly handle: {
1920
- readonly unchecked: "bg-[hsl(var(--tm-muted))]";
1921
- readonly checked: "bg-[hsl(var(--tm-primary-foreground))]";
1922
- };
1923
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1924
- };
1925
- readonly ghost: {
1926
- readonly track: {
1927
- readonly unchecked: "bg-[hsl(var(--tm-muted))]";
1928
- readonly checked: "bg-[hsl(var(--tm-primary))]";
1929
- };
1930
- readonly handle: {
1931
- readonly unchecked: "bg-[hsl(var(--tm-text-muted))]";
1932
- readonly checked: "bg-[hsl(var(--tm-primary-foreground))]";
1933
- };
1934
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1935
- };
1936
- readonly destructive: {
1937
- readonly track: {
1938
- readonly unchecked: "bg-[hsl(var(--tm-surface-base))]";
1939
- readonly checked: "bg-[hsl(var(--tm-destructive))]";
1940
- };
1941
- readonly handle: {
1942
- readonly unchecked: "bg-[hsl(var(--tm-muted))]";
1943
- readonly checked: "bg-[hsl(var(--tm-destructive-foreground))]";
1944
- };
1945
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
1946
- };
1947
- };
1948
- /**
1949
- * State-based tokens
1950
- * Track and handle colors for different states
1951
- * All use CSS variable references for theme support
1952
- */
1953
- readonly state: {
1954
- readonly track: {
1955
- readonly default: "bg-[hsl(var(--tm-surface-base))]";
1956
- readonly checked: "bg-[hsl(var(--tm-primary))]";
1957
- readonly disabled: "bg-[hsl(var(--tm-disabled))]";
1958
- readonly disabledChecked: "bg-[hsl(var(--tm-disabled))]";
1959
- readonly error: "bg-[hsl(var(--tm-destructive))]";
1960
- };
1961
- readonly handle: {
1962
- readonly default: "bg-[hsl(var(--tm-text-muted))]";
1963
- readonly checked: "bg-[hsl(var(--tm-primary-foreground))]";
1964
- readonly disabled: "bg-[hsl(var(--tm-disabled-foreground))]";
1965
- readonly disabledChecked: "bg-[hsl(var(--tm-disabled-foreground))]";
1966
- readonly error: "bg-[hsl(var(--tm-destructive-foreground))]";
1967
- };
1968
- readonly opacity: {
1969
- readonly disabled: "opacity-50";
1970
- };
1971
- };
1972
- /**
1973
- * Transition tokens
1974
- * Smooth transitions for handle animation and state changes
1975
- * Uses MOTION_TOKENS for canonical motion values
1976
- */
1977
- readonly transition: {
1978
- readonly handle: "transition-transform duration-normal ease-in-out";
1979
- readonly track: "transition-colors duration-normal ease-in-out";
1980
- readonly combined: "transition-all duration-normal ease-in-out";
1981
- };
1982
- /**
1983
- * Shadow token
1984
- * Maps to foundation elevation shadow tokens
1985
- */
1986
- readonly shadow: "shadow-sm";
1987
- /**
1988
- * Padding token
1989
- * Space between track edge and handle
1990
- */
1991
- readonly padding: "p-0.5";
1992
- };
1993
- /**
1994
- * Type exports for Switch tokens
1995
- */
1996
- type SwitchSize = keyof typeof SWITCH_TOKENS.track;
1997
- type SwitchVariant = keyof typeof SWITCH_TOKENS.variant;
1998
- type SwitchState = keyof typeof SWITCH_TOKENS.state.track;
1999
-
2000
- /**
2001
- * Radio Component Tokens
2002
- *
2003
- * Component-level design tokens for Radio component.
2004
- * Maps foundation tokens (spacing, typography, radius, shadows) to radio-specific usage.
2005
- * All color values use CSS variables for theme-aware styling.
2006
- */
2007
- /**
2008
- * Radio Component Tokens
2009
- *
2010
- * Defines spacing, sizing, typography, and visual tokens for Radio component.
2011
- * All colors use CSS variable references (hsl(var(--token))) for theme-aware styling.
2012
- * Radio sizes are typically smaller than input fields.
2013
- */
2014
- declare const RADIO_TOKENS: {
2015
- /**
2016
- * Radio sizes by size variant
2017
- * Supports xs, sm, md, lg, xl sizes
2018
- * Radios are typically circular and smaller than input fields
2019
- */
2020
- readonly size: {
2021
- readonly xs: {
2022
- readonly width: "w-3.5";
2023
- readonly height: "h-3.5";
2024
- readonly radius: "rounded-full";
2025
- readonly dotSize: "size-1.5";
2026
- };
2027
- readonly sm: {
2028
- readonly width: "w-4";
2029
- readonly height: "h-4";
2030
- readonly radius: "rounded-full";
2031
- readonly dotSize: "size-2";
2032
- };
2033
- readonly md: {
2034
- readonly width: "w-4.5";
2035
- readonly height: "h-4.5";
2036
- readonly radius: "rounded-full";
2037
- readonly dotSize: "size-2.5";
2038
- };
2039
- readonly lg: {
2040
- readonly width: "w-5";
2041
- readonly height: "h-5";
2042
- readonly radius: "rounded-full";
2043
- readonly dotSize: "size-3";
2044
- };
2045
- readonly xl: {
2046
- readonly width: "w-6";
2047
- readonly height: "h-6";
2048
- readonly radius: "rounded-full";
2049
- readonly dotSize: "size-3.5";
2050
- };
2051
- };
2052
- /**
2053
- * Variant-based tokens
2054
- * Border, background, and text colors for different variants
2055
- * All use CSS variable references for theme support
2056
- */
2057
- readonly variant: {
2058
- readonly primary: {
2059
- readonly border: "border-[hsl(var(--tm-primary))]";
2060
- readonly background: "bg-[hsl(var(--tm-primary))]";
2061
- readonly text: "text-[hsl(var(--tm-primary-foreground))]";
2062
- readonly focus: "focus-visible:shadow-[var(--focus-ring-primary)]";
2063
- };
2064
- readonly secondary: {
2065
- readonly border: "border-[hsl(var(--tm-secondary))]";
2066
- readonly background: "bg-[hsl(var(--tm-secondary))]";
2067
- readonly text: "text-[hsl(var(--tm-secondary-foreground))]";
2068
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
2069
- };
2070
- readonly outline: {
2071
- readonly border: "border-[hsl(var(--tm-surface-base))]";
2072
- readonly background: "bg-transparent";
2073
- readonly text: "text-[hsl(var(--tm-text-primary))]";
2074
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
2075
- };
2076
- readonly ghost: {
2077
- readonly border: "border-transparent";
2078
- readonly background: "bg-transparent";
2079
- readonly text: "text-[hsl(var(--tm-text-primary))]";
2080
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
2081
- };
2082
- readonly destructive: {
2083
- readonly border: "border-[hsl(var(--tm-destructive))]";
2084
- readonly background: "bg-[hsl(var(--tm-destructive))]";
2085
- readonly text: "text-[hsl(var(--tm-destructive-foreground))]";
2086
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
2087
- };
2088
- };
2089
- /**
2090
- * State-based tokens
2091
- * Border, background, and text colors for different states
2092
- * All use CSS variable references for theme support
2093
- */
2094
- readonly state: {
2095
- readonly border: {
2096
- readonly default: "border-[hsl(var(--tm-surface-base))]";
2097
- readonly checked: "border-[hsl(var(--tm-primary))]";
2098
- readonly error: "border-[hsl(var(--tm-destructive))]";
2099
- readonly disabled: "border-[hsl(var(--tm-surface-base))]";
2100
- readonly focus: "focus-visible:shadow-[var(--focus-ring-default)]";
2101
- };
2102
- readonly background: {
2103
- readonly default: "bg-transparent";
2104
- readonly checked: "bg-[hsl(var(--tm-primary))]";
2105
- readonly disabled: "bg-transparent";
2106
- readonly disabledChecked: "bg-[hsl(var(--tm-muted))]";
2107
- };
2108
- readonly text: {
2109
- readonly default: "text-[hsl(var(--tm-text-primary))]";
2110
- readonly checked: "text-[hsl(var(--tm-primary-foreground))]";
2111
- readonly disabled: "disabled:opacity-50";
2112
- };
2113
- };
2114
- /**
2115
- * Dot tokens (inner filled circle indicator)
2116
- * Size and styling for radio dot within radio button
2117
- */
2118
- readonly dot: {
2119
- readonly size: {
2120
- readonly xs: "size-1.5";
2121
- readonly sm: "size-2";
2122
- readonly md: "size-2.5";
2123
- readonly lg: "size-3";
2124
- readonly xl: "size-3.5";
2125
- };
2126
- readonly color: {
2127
- readonly default: "bg-[hsl(var(--tm-primary-foreground))]";
2128
- readonly disabled: "bg-[hsl(var(--tm-text-muted))]";
2129
- };
2130
- readonly radius: "rounded-full";
2131
- };
2132
- /**
2133
- * Shadow token
2134
- * Maps to foundation elevation shadow tokens
2135
- */
2136
- readonly shadow: "shadow-sm";
2137
- /**
2138
- * Transition tokens
2139
- * Smooth transitions for state changes
2140
- * Uses MOTION_TOKENS for canonical motion values
2141
- */
2142
- readonly transition: "transition-all duration-normal ease-in-out";
2143
- };
2144
- /**
2145
- * Type exports for Radio tokens
2146
- */
2147
- type RadioSize = keyof typeof RADIO_TOKENS.size;
2148
- type RadioVariant = keyof typeof RADIO_TOKENS.variant;
2149
- type RadioState = keyof typeof RADIO_TOKENS.state.border;
2150
-
2151
- /**
2152
- * Surface Component Tokens
2153
- *
2154
- * Component-level design tokens for Surface component.
2155
- * Maps foundation tokens (spacing, radius, shadows) to surface-specific usage.
2156
- *
2157
- * Defines tokens for canonical SurfaceVariant names: default, elevated, outlined, filled, subtle.
2158
- * @see docs/architecture/VARIANTS_SIZE_CANON.md for canonical variant dictionary
2159
- */
2160
- /**
2161
- * Surface Component Tokens
2162
- *
2163
- * Defines spacing, radius, and shadow tokens for Surface component variants.
2164
- * Values are mapped to Tailwind utility classes for direct use.
2165
- * Uses canonical SurfaceVariant dictionary: default, elevated, outlined, filled, subtle.
2166
- */
2167
- declare const SURFACE_TOKENS: {
2168
- /**
2169
- * Padding values for surface variants
2170
- * Can be customized per variant if needed
2171
- */
2172
- readonly padding: {
2173
- readonly default: "p-md";
2174
- readonly sm: "p-sm";
2175
- readonly md: "p-md";
2176
- readonly lg: "p-lg";
2177
- };
2178
- /**
2179
- * Border radius for surfaces
2180
- */
2181
- readonly radius: {
2182
- readonly default: "rounded-md";
2183
- readonly sm: "rounded-sm";
2184
- readonly md: "rounded-md";
2185
- readonly lg: "rounded-lg";
2186
- };
2187
- /**
2188
- * Shadow tokens by surface variant
2189
- * Maps to foundation elevation shadow tokens
2190
- * Uses canonical SurfaceVariant names
2191
- */
2192
- readonly shadow: {
2193
- readonly default: "shadow-none";
2194
- readonly elevated: "shadow-sm";
2195
- readonly outlined: "shadow-none";
2196
- readonly filled: "shadow-none";
2197
- readonly subtle: "shadow-none";
2198
- };
2199
- /**
2200
- * Variant-based token structure
2201
- * Organized by variant for easy access
2202
- * Uses canonical SurfaceVariant names: default, elevated, outlined, filled, subtle
2203
- */
2204
- readonly variant: {
2205
- readonly default: {
2206
- readonly padding: "p-md";
2207
- readonly radius: "rounded-md";
2208
- readonly shadow: "shadow-none";
2209
- readonly bg: "bg-background";
2210
- readonly border: "border border-border";
2211
- };
2212
- readonly elevated: {
2213
- readonly padding: "p-md";
2214
- readonly radius: "rounded-md";
2215
- readonly shadow: "shadow-sm";
2216
- readonly bg: "bg-card";
2217
- readonly border: "border border-border";
2218
- };
2219
- readonly outlined: {
2220
- readonly padding: "p-md";
2221
- readonly radius: "rounded-md";
2222
- readonly shadow: "shadow-none";
2223
- readonly bg: "bg-transparent";
2224
- readonly border: "border-2 border-border";
2225
- };
2226
- readonly filled: {
2227
- readonly padding: "p-md";
2228
- readonly radius: "rounded-md";
2229
- readonly shadow: "shadow-none";
2230
- readonly bg: "bg-muted";
2231
- readonly border: "border border-border";
2232
- };
2233
- readonly subtle: {
2234
- readonly padding: "p-md";
2235
- readonly radius: "rounded-md";
2236
- readonly shadow: "shadow-none";
2237
- readonly bg: "bg-muted/30";
2238
- readonly border: "border border-border/50";
2239
- };
2240
- };
2241
- };
2242
- /**
2243
- * Type exports for Surface tokens
2244
- */
2245
- type SurfacePadding = keyof typeof SURFACE_TOKENS.padding;
2246
- type SurfaceRadius = keyof typeof SURFACE_TOKENS.radius;
2247
- type SurfaceShadow = keyof typeof SURFACE_TOKENS.shadow;
2248
- type SurfaceVariant = keyof typeof SURFACE_TOKENS.variant;
2249
-
2250
- /**
2251
- * Panel Component Tokens
2252
- *
2253
- * Component-level design tokens for Panel component.
2254
- * Maps foundation tokens (spacing, radius, shadows) to panel-specific usage.
2255
- *
2256
- * Panel is a lightweight structural surface container that sits between Box and Card
2257
- * in semantic hierarchy. Panel provides surface styling without interactivity.
2258
- *
2259
- * Panel tokens are designed to be lighter than Card tokens (lower elevation, subtler styling).
2260
- */
2261
- /**
2262
- * Panel Component Tokens
2263
- *
2264
- * Defines spacing, radius, tone, background, border, and shadow tokens for Panel component.
2265
- * Values are mapped to Tailwind utility classes for direct use.
2266
- * Uses surface tone variants: default, muted, subtle.
2267
- */
2268
- declare const PANEL_TOKENS: {
2269
- /**
2270
- * Padding values for panels
2271
- * Maps to semantic spacing tokens
2272
- */
2273
- readonly padding: {
2274
- readonly sm: "p-sm";
2275
- readonly md: "p-md";
2276
- readonly lg: "p-lg";
2277
- };
2278
- /**
2279
- * Border radius for panels
2280
- * Maps to borderRadius scale
2281
- */
2282
- readonly radius: {
2283
- readonly sm: "rounded-sm";
2284
- readonly md: "rounded-md";
2285
- readonly lg: "rounded-lg";
2286
- readonly xl: "rounded-xl";
2287
- };
2288
- /**
2289
- * Shadow tokens for panels
2290
- * Panel shadows are minimal or none (below Card elevation)
2291
- * Card uses shadow/shadow-sm/shadow-md, Panel uses shadow-none or shadow-xs
2292
- */
2293
- readonly shadow: {
2294
- readonly none: "shadow-none";
2295
- readonly xs: "shadow-xs";
2296
- };
2297
- /**
2298
- * Tone-based token structure
2299
- * Organized by tone for easy access
2300
- * Uses surface tone variants: default, muted, subtle
2301
- */
2302
- readonly tone: {
2303
- readonly default: {
2304
- readonly padding: "p-md";
2305
- readonly paddingValue: "md";
2306
- readonly radius: "rounded-md";
2307
- readonly radiusValue: "md";
2308
- readonly shadow: "shadow-none";
2309
- readonly bg: "bg-[hsl(var(--tm-surface-base))]";
2310
- readonly border: "border border-[hsl(var(--tm-border-default))]";
2311
- };
2312
- readonly muted: {
2313
- readonly padding: "p-md";
2314
- readonly paddingValue: "md";
2315
- readonly radius: "rounded-md";
2316
- readonly radiusValue: "md";
2317
- readonly shadow: "shadow-none";
2318
- readonly bg: "bg-[hsl(var(--tm-muted))]";
2319
- readonly border: "border border-[hsl(var(--tm-border-default))]";
2320
- };
2321
- readonly subtle: {
2322
- readonly padding: "p-md";
2323
- readonly paddingValue: "md";
2324
- readonly radius: "rounded-md";
2325
- readonly radiusValue: "md";
2326
- readonly shadow: "shadow-none";
2327
- readonly bg: "bg-[hsl(var(--tm-muted))]/50";
2328
- readonly border: "border border-[hsl(var(--tm-border-default))]/50";
2329
- };
2330
- };
2331
- };
2332
- /**
2333
- * Type exports for Panel tokens
2334
- */
2335
- type PanelPadding = keyof typeof PANEL_TOKENS.padding;
2336
- type PanelRadius = keyof typeof PANEL_TOKENS.radius;
2337
- type PanelShadow = keyof typeof PANEL_TOKENS.shadow;
2338
- type PanelTone = keyof typeof PANEL_TOKENS.tone;
2339
-
2340
- /**
2341
- * Text Component Tokens
2342
- *
2343
- * Component-level design tokens for Text component.
2344
- * Maps foundation typography tokens to text-specific usage patterns.
2345
- *
2346
- * These tokens serve as second-level abstractions that reference foundation
2347
- * typography tokens (fontSize, fontWeight, lineHeight, letterSpacing).
2348
- */
2349
- /**
2350
- * Text Component Tokens
2351
- *
2352
- * Defines typography tokens for Text component.
2353
- * All values reference foundation typography tokens to ensure consistency.
2354
- */
2355
- declare const TEXT_TOKENS: {
2356
- /**
2357
- * Font sizes by text size variant
2358
- * Maps to foundation fontSize tokens
2359
- */
2360
- readonly fontSize: {
2361
- readonly xs: "text-xs";
2362
- readonly sm: "text-sm";
2363
- readonly md: "text-base";
2364
- readonly lg: "text-lg";
2365
- readonly xl: "text-xl";
2366
- readonly "2xl": "text-2xl";
2367
- readonly "3xl": "text-3xl";
2368
- readonly "4xl": "text-4xl";
2369
- readonly "5xl": "text-5xl";
2370
- };
2371
- /**
2372
- * Font weights by weight variant
2373
- * Maps to foundation fontWeight tokens
2374
- */
2375
- readonly fontWeight: {
2376
- readonly normal: "font-normal";
2377
- readonly medium: "font-medium";
2378
- readonly semibold: "font-semibold";
2379
- readonly bold: "font-bold";
2380
- };
2381
- /**
2382
- * Line heights (if component-specific)
2383
- * Maps to foundation lineHeight tokens
2384
- */
2385
- readonly lineHeight: {
2386
- readonly none: "leading-none";
2387
- readonly tight: "leading-tight";
2388
- readonly snug: "leading-snug";
2389
- readonly normal: "leading-normal";
2390
- readonly relaxed: "leading-relaxed";
2391
- readonly loose: "leading-loose";
2392
- };
2393
- /**
2394
- * Letter spacing (tracking) values
2395
- * Maps to foundation letterSpacing tokens
2396
- */
2397
- readonly letterSpacing: {
2398
- readonly tighter: "tracking-tighter";
2399
- readonly tight: "tracking-tight";
2400
- readonly normal: "tracking-normal";
2401
- readonly wide: "tracking-wide";
2402
- readonly wider: "tracking-wider";
2403
- readonly widest: "tracking-widest";
2404
- };
2405
- };
2406
- /**
2407
- * Type exports for Text tokens
2408
- */
2409
- type TextFontSize = keyof typeof TEXT_TOKENS.fontSize;
2410
- type TextFontWeight = keyof typeof TEXT_TOKENS.fontWeight;
2411
- type TextLineHeight = keyof typeof TEXT_TOKENS.lineHeight;
2412
- type TextLetterSpacing = keyof typeof TEXT_TOKENS.letterSpacing;
2413
-
2414
- /**
2415
- * Section Component Tokens
2416
- *
2417
- * Component-level design tokens for Section component.
2418
- * Maps foundation tokens (spacing) to section-specific usage for page/landing layout composition.
2419
- *
2420
- * Defines tokens for vertical padding and content spacing within sections.
2421
- */
2422
- /**
2423
- * Section Component Tokens
2424
- *
2425
- * Defines padding and spacing tokens for Section component.
2426
- * Values are mapped to Tailwind utility classes for direct use.
2427
- */
2428
- declare const SECTION_TOKENS: {
2429
- /**
2430
- * Vertical padding for sections
2431
- * Used for spacing between major page sections
2432
- */
2433
- readonly padding: {
2434
- readonly sm: "py-md";
2435
- readonly md: "py-xl";
2436
- readonly lg: "py-2xl";
2437
- readonly xl: "py-3xl";
2438
- };
2439
- /**
2440
- * Gap spacing for content blocks within sections
2441
- * Used for spacing between content elements in a section
2442
- */
2443
- readonly spacing: {
2444
- readonly sm: "gap-sm";
2445
- readonly md: "gap-md";
2446
- readonly lg: "gap-lg";
2447
- readonly xl: "gap-xl";
2448
- };
2449
- };
2450
- /**
2451
- * Type exports for Section tokens
2452
- */
2453
- type SectionPadding = keyof typeof SECTION_TOKENS.padding;
2454
- type SectionGap = keyof typeof SECTION_TOKENS.spacing;
2455
-
2456
- /**
2457
- * Overlay Component Tokens
2458
- *
2459
- * Component-level design tokens for Overlay components (Modal, Dialog, Backdrop).
2460
- * Maps foundation tokens (spacing, radius, shadows, motion) to overlay-specific usage.
2461
- *
2462
- * All values use Tailwind utility classes that map to foundation tokens.
2463
- */
2464
- /**
2465
- * Overlay Component Tokens
2466
- *
2467
- * Defines tokens for backdrop variants, modal sizes, and animations.
2468
- * Values are mapped to Tailwind utility classes for direct use.
2469
- */
2470
- declare const OVERLAY_TOKENS: {
2471
- /**
2472
- * Backdrop tokens by variant
2473
- * Maps to SURFACE_TOKENS for background colors
2474
- */
2475
- readonly backdrop: {
2476
- readonly default: {
2477
- readonly bg: "bg-black/50";
2478
- readonly opacity: "opacity-100";
2479
- };
2480
- readonly blurred: {
2481
- readonly bg: "bg-black/50";
2482
- readonly opacity: "opacity-100";
2483
- readonly backdropFilter: "backdrop-blur-sm";
2484
- };
2485
- readonly transparent: {
2486
- readonly bg: "bg-transparent";
2487
- readonly opacity: "opacity-0";
2488
- };
2489
- };
2490
- /**
2491
- * Modal tokens by size variant
2492
- * Maps to foundation tokens for spacing, radius, and shadows
2493
- */
2494
- readonly modal: {
2495
- readonly radius: {
2496
- readonly sm: "rounded-md";
2497
- readonly md: "rounded-lg";
2498
- readonly lg: "rounded-xl";
2499
- readonly xl: "rounded-2xl";
2500
- readonly fullscreen: "rounded-none";
2501
- };
2502
- readonly padding: {
2503
- readonly sm: "p-md";
2504
- readonly md: "p-lg";
2505
- readonly lg: "p-xl";
2506
- readonly xl: "p-xl";
2507
- };
2508
- readonly shadow: {
2509
- readonly sm: "shadow-md";
2510
- readonly md: "shadow-lg";
2511
- readonly lg: "shadow-xl";
2512
- readonly xl: "shadow-xl";
2513
- };
2514
- readonly maxWidth: {
2515
- readonly sm: "max-w-md";
2516
- readonly md: "max-w-lg";
2517
- readonly lg: "max-w-2xl";
2518
- readonly xl: "max-w-4xl";
2519
- readonly fullscreen: "max-w-full";
2520
- };
2521
- /**
2522
- * Modal surface tokens by variant
2523
- * Token-based styling for all modal surface variants
2524
- */
2525
- readonly surface: {
2526
- readonly primary: {
2527
- readonly bg: "bg-background";
2528
- readonly border: "border border-border";
2529
- };
2530
- readonly secondary: {
2531
- readonly bg: "bg-card";
2532
- readonly border: "border border-border";
2533
- readonly shadow: "shadow-sm";
2534
- };
2535
- readonly tinted: {
2536
- readonly bg: "bg-muted/50";
2537
- readonly border: "border border-border/50";
2538
- };
2539
- readonly bare: {
2540
- readonly bg: "bg-transparent";
2541
- readonly border: "border-none";
2542
- readonly shadow: "shadow-none";
2543
- };
2544
- };
2545
- /**
2546
- * Modal container tokens
2547
- * For backdrop container positioning and layout
2548
- */
2549
- readonly container: {
2550
- readonly layout: "fixed inset-0 z-40 flex items-center justify-center";
2551
- };
2552
- /**
2553
- * Modal position tokens
2554
- * For centering and positioning modal content
2555
- */
2556
- readonly position: {
2557
- readonly center: "left-[50%] top-[50%] -translate-x-1/2 -translate-y-1/2";
2558
- };
2559
- /**
2560
- * Modal transition tokens
2561
- * Maps to motion tokens for appear/disappear animations
2562
- */
2563
- readonly transition: {
2564
- readonly appear: "tm-motion-fade-scale";
2565
- readonly disappear: "tm-motion-fade-scale-out";
2566
- };
2567
- /**
2568
- * Modal section spacing tokens
2569
- * For header, body, and footer spacing
2570
- */
2571
- readonly spacing: {
2572
- readonly header: {
2573
- readonly marginBottom: "mb-md";
2574
- readonly gap: "gap-xs";
2575
- };
2576
- readonly body: {
2577
- readonly layout: "flex-1";
2578
- };
2579
- readonly footer: {
2580
- readonly marginTop: "mt-md";
2581
- readonly gap: "gap-sm";
2582
- };
2583
- };
2584
- };
2585
- /**
2586
- * Animation tokens for overlay enter/exit animations
2587
- * Maps to Motion utility classes
2588
- * Uses CSS-only animations from motion.ts
2589
- */
2590
- readonly animation: {
2591
- readonly enter: {
2592
- readonly duration: "duration-normal";
2593
- readonly easing: "ease-out";
2594
- readonly keyframes: "tm-motion-fade-in";
2595
- readonly scale: "tm-motion-scale-in";
2596
- readonly combined: "tm-motion-fade-scale";
2597
- };
2598
- readonly exit: {
2599
- readonly duration: "duration-fast";
2600
- readonly easing: "ease-in";
2601
- readonly keyframes: "tm-motion-fade-out";
2602
- readonly scale: "tm-motion-scale-out";
2603
- readonly combined: "tm-motion-fade-scale-out";
2604
- };
2605
- };
2606
- /**
2607
- * Drawer tokens by size variant
2608
- * Maps to foundation tokens for spacing, radius, and shadows
2609
- */
2610
- readonly drawer: {
2611
- readonly width: {
2612
- readonly sm: "w-64";
2613
- readonly md: "w-80";
2614
- readonly lg: "w-96";
2615
- };
2616
- readonly height: {
2617
- readonly sm: "h-64";
2618
- readonly md: "h-80";
2619
- readonly lg: "h-96";
2620
- };
2621
- readonly radius: {
2622
- readonly left: {
2623
- readonly sm: "rounded-r-md";
2624
- readonly md: "rounded-r-lg";
2625
- readonly lg: "rounded-r-xl";
2626
- };
2627
- readonly right: {
2628
- readonly sm: "rounded-l-md";
2629
- readonly md: "rounded-l-lg";
2630
- readonly lg: "rounded-l-xl";
2631
- };
2632
- readonly bottom: {
2633
- readonly sm: "rounded-t-md";
2634
- readonly md: "rounded-t-lg";
2635
- readonly lg: "rounded-t-xl";
2636
- };
2637
- };
2638
- readonly padding: {
2639
- readonly sm: "p-md";
2640
- readonly md: "p-lg";
2641
- readonly lg: "p-xl";
2642
- };
2643
- readonly shadow: {
2644
- readonly sm: "shadow-md";
2645
- readonly md: "shadow-lg";
2646
- readonly lg: "shadow-xl";
2647
- };
2648
- readonly animation: {
2649
- readonly left: {
2650
- readonly enter: "tm-motion-slide-right-in";
2651
- readonly exit: "tm-motion-slide-right-out";
2652
- };
2653
- readonly right: {
2654
- readonly enter: "tm-motion-slide-left-in";
2655
- readonly exit: "tm-motion-slide-left-out";
2656
- };
2657
- readonly bottom: {
2658
- readonly enter: "tm-motion-slide-up-in";
2659
- readonly exit: "tm-motion-slide-up-out";
2660
- };
2661
- };
2662
- /**
2663
- * Drawer section spacing tokens
2664
- * For header, body, and footer spacing
2665
- */
2666
- readonly spacing: {
2667
- readonly header: {
2668
- readonly marginBottom: "mb-md";
2669
- readonly gap: "gap-xs";
2670
- };
2671
- readonly footer: {
2672
- readonly marginTop: "mt-md";
2673
- readonly gap: "gap-sm";
2674
- };
2675
- };
2676
- };
2677
- };
2678
- /**
2679
- * Type exports for Overlay tokens
2680
- */
2681
- type OverlayBackdropVariant = keyof typeof OVERLAY_TOKENS.backdrop;
2682
- type OverlayModalSize = keyof typeof OVERLAY_TOKENS.modal.radius;
2683
-
2684
- /**
2685
- * Toast Component Tokens
2686
- *
2687
- * Component-level design tokens for Toast components.
2688
- * Maps foundation tokens (spacing, radius, shadows, motion) to toast-specific usage.
2689
- *
2690
- * All values use Tailwind utility classes that map to foundation tokens.
2691
- */
2692
- /**
2693
- * Toast Component Tokens
2694
- *
2695
- * Defines tokens for toast spacing, radius, shadow, surface variants, and animations.
2696
- * Values are mapped to Tailwind utility classes for direct use.
2697
- */
2698
- declare const TOAST_TOKENS: {
2699
- /**
2700
- * Spacing tokens for toast layout
2701
- * Maps to semanticSpacing tokens
2702
- */
2703
- readonly spacing: {
2704
- readonly gap: "gap-sm";
2705
- readonly padding: "p-md";
2706
- readonly paddingHorizontal: "px-md";
2707
- readonly paddingVertical: "py-md";
2708
- };
2709
- /**
2710
- * Width tokens for toast layout
2711
- * Maps to width utilities
2712
- */
2713
- readonly width: {
2714
- readonly full: "w-full";
2715
- };
2716
- /**
2717
- * Border radius for toasts
2718
- * Maps to componentRadius.toast
2719
- */
2720
- readonly radius: {
2721
- readonly default: "rounded-lg";
2722
- };
2723
- /**
2724
- * Shadow for toasts
2725
- * Maps to elevationShadows
2726
- */
2727
- readonly shadow: {
2728
- readonly default: "shadow-lg";
2729
- };
2730
- /**
2731
- * Surface tokens for toast variants
2732
- * Maps to SURFACE_TOKENS for background colors
2733
- */
2734
- readonly surface: {
2735
- readonly success: "bg-success/10 border-success/20 text-success-foreground";
2736
- readonly info: "bg-info/10 border-info/20 text-info-foreground";
2737
- readonly warning: "bg-warning/10 border-warning/20 text-warning-foreground";
2738
- readonly danger: "bg-destructive/10 border-destructive/20 text-destructive-foreground";
2739
- readonly default: "bg-[hsl(var(--tm-surface-base))] border border-[hsl(var(--tm-border-default))] text-[hsl(var(--tm-text-primary))]";
2740
- };
2741
- /**
2742
- * Animation tokens for toast enter/exit animations
2743
- * Maps to Motion utility classes and Radix data attributes
2744
- * Uses CSS-only animations from motion.ts
2745
- * Radix Toast provides data-[state=open] and data-[state=closed] attributes
2746
- */
2747
- readonly animation: {
2748
- readonly enter: {
2749
- readonly slideUp: "tm-motion-fade-slide-up";
2750
- readonly fadeIn: "tm-motion-fade-in";
2751
- readonly combined: "tm-motion-fade-slide-right";
2752
- };
2753
- readonly exit: {
2754
- readonly slideOutRight: "tm-motion-fade-slide-left-out";
2755
- readonly fadeOut: "tm-motion-fade-out";
2756
- readonly combined: "tm-motion-fade-slide-left-out";
2757
- };
2758
- /**
2759
- * Radix Toast data attribute classes
2760
- * These are applied automatically by Radix based on toast state
2761
- */
2762
- readonly radix: {
2763
- /**
2764
- * Base classes for Radix Toast Root
2765
- * Includes swipe handling and state-based animations
2766
- */
2767
- readonly root: "data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out";
2768
- /**
2769
- * State-based animation classes
2770
- */
2771
- readonly state: {
2772
- readonly open: "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full";
2773
- readonly closed: "data-[state=closed]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full";
2774
- };
2775
- };
2776
- };
2777
- /**
2778
- * Position tokens for toast viewport
2779
- * Maps to spacing tokens for positioning
2780
- */
2781
- readonly position: {
2782
- readonly spacing: {
2783
- readonly top: "top-md";
2784
- readonly right: "right-md";
2785
- readonly bottom: "bottom-md";
2786
- readonly left: "left-md";
2787
- };
2788
- };
2789
- /**
2790
- * Content layout tokens
2791
- * For toast content container
2792
- */
2793
- readonly content: {
2794
- readonly layout: "flex flex-1 items-start";
2795
- readonly gap: "gap-sm";
2796
- readonly verticalSpacing: "space-y-xs";
2797
- };
2798
- /**
2799
- * Title typography tokens
2800
- * Maps to TEXT_TOKENS for font sizing and weight
2801
- */
2802
- readonly title: {
2803
- readonly fontSize: "text-sm";
2804
- readonly fontWeight: "font-semibold";
2805
- };
2806
- /**
2807
- * Description typography tokens
2808
- * Maps to TEXT_TOKENS for font sizing
2809
- */
2810
- readonly description: {
2811
- readonly fontSize: "text-sm";
2812
- readonly opacity: "opacity-90";
2813
- };
2814
- /**
2815
- * Action button tokens
2816
- * For toast action button sizing
2817
- */
2818
- readonly action: {
2819
- readonly height: "h-8";
2820
- readonly padding: "px-xs";
2821
- readonly fontSize: "text-xs";
2822
- };
2823
- /**
2824
- * Dismiss button tokens
2825
- * For toast dismiss button styling
2826
- */
2827
- readonly dismiss: {
2828
- readonly position: "absolute right-xs top-xs";
2829
- readonly size: "h-6 w-6";
2830
- readonly radius: "rounded-md";
2831
- readonly padding: "p-xs";
2832
- readonly transition: "transition-opacity";
2833
- readonly colors: {
2834
- readonly default: "text-[hsl(var(--tm-text-primary))]/50";
2835
- readonly hover: "hover:text-[hsl(var(--tm-text-primary))]";
2836
- };
2837
- readonly states: {
2838
- readonly default: "opacity-0";
2839
- readonly groupHover: "group-hover:opacity-100";
2840
- readonly focus: "focus-visible:opacity-100";
2841
- readonly focusRing: "focus-visible:outline-none focus-visible:ring-1";
2842
- };
2843
- };
2844
- };
2845
- /**
2846
- * Type exports for Toast tokens
2847
- */
2848
- type ToastVariant = keyof typeof TOAST_TOKENS.surface;
2849
-
2850
- /**
2851
- * Notification Component Tokens
2852
- *
2853
- * Component-level design tokens for Notification Center components.
2854
- * Maps foundation tokens (spacing, radius, shadows, motion) to notification-specific usage.
2855
- * Extends toast tokens with additional tokens for panel, grouping, and timeline features.
2856
- *
2857
- * All values use Tailwind utility classes that map to foundation tokens.
2858
- */
2859
- /**
2860
- * Notification Component Tokens
2861
- *
2862
- * Defines tokens for notification spacing, radius, shadow, surface variants, animations,
2863
- * panel configuration, item styling, and timeline features.
2864
- * Values are mapped to Tailwind utility classes for direct use.
2865
- */
2866
- declare const NOTIFICATION_TOKENS: {
2867
- /**
2868
- * Spacing tokens for notification layout
2869
- * Maps to semanticSpacing tokens
2870
- */
2871
- readonly spacing: {
2872
- readonly gap: "gap-sm";
2873
- readonly padding: "p-md";
2874
- readonly paddingHorizontal: "px-md";
2875
- readonly paddingVertical: "py-md";
2876
- readonly itemPadding: "p-sm";
2877
- readonly panelPadding: "p-lg";
2878
- };
2879
- /**
2880
- * Border radius for notifications
2881
- * Maps to componentRadius.notification
2882
- */
2883
- readonly radius: {
2884
- readonly item: "rounded-md";
2885
- readonly panel: "rounded-lg";
2886
- readonly default: "rounded-lg";
2887
- };
2888
- /**
2889
- * Shadow for notifications
2890
- * Maps to elevationShadows
2891
- */
2892
- readonly shadow: {
2893
- readonly item: "shadow-sm";
2894
- readonly panel: "shadow-xl";
2895
- readonly default: "shadow-lg";
2896
- };
2897
- /**
2898
- * Width tokens for notifications
2899
- * Maps to spacing tokens for width constraints
2900
- */
2901
- readonly width: {
2902
- readonly item: "w-full";
2903
- readonly itemMax: "max-w-md";
2904
- readonly panel: "w-full";
2905
- readonly panelSm: "w-sm";
2906
- readonly panelMd: "w-md";
2907
- readonly panelLg: "w-lg";
2908
- readonly panelMaxHeight: "max-h-[calc(100vh-2rem)]";
2909
- };
2910
- /**
2911
- * Item-specific tokens
2912
- * For individual notification items in lists
2913
- */
2914
- readonly item: {
2915
- readonly padding: "p-sm";
2916
- readonly gap: "gap-sm";
2917
- readonly iconSize: "h-5 w-5";
2918
- readonly radius: "rounded-md";
2919
- readonly minHeight: "min-h-[3rem]";
2920
- };
2921
- /**
2922
- * Surface tokens for notification variants
2923
- * Extends toast variants with system and log
2924
- * Maps to SURFACE_TOKENS for background colors
2925
- */
2926
- readonly surface: {
2927
- readonly success: "bg-success/10 border-success/20 text-success-foreground";
2928
- readonly info: "bg-info/10 border-info/20 text-info-foreground";
2929
- readonly warning: "bg-warning/10 border-warning/20 text-warning-foreground";
2930
- readonly danger: "bg-destructive/10 border-destructive/20 text-destructive-foreground";
2931
- readonly system: "bg-[hsl(var(--tm-muted))] border-[hsl(var(--tm-border-default))] text-[hsl(var(--tm-text-primary))]";
2932
- readonly log: "bg-[hsl(var(--tm-surface-base))] border-[hsl(var(--tm-border-default))]/50 text-[hsl(var(--tm-text-muted))]";
2933
- readonly default: "bg-[hsl(var(--tm-surface-base))] border border-[hsl(var(--tm-border-default))] text-[hsl(var(--tm-text-primary))]";
2934
- };
2935
- /**
2936
- * Timeline tokens for grouped notifications
2937
- * Visual timeline indicators for grouped items
2938
- */
2939
- readonly timeline: {
2940
- readonly dotSize: "h-2 w-2";
2941
- readonly lineWidth: "w-0.5";
2942
- readonly gap: "gap-xs";
2943
- };
2944
- /**
2945
- * Animation tokens for notification enter/exit animations
2946
- * Maps to Motion utility classes
2947
- * Uses CSS-only animations from motion.ts
2948
- */
2949
- readonly animation: {
2950
- readonly enter: {
2951
- readonly slideInRight: "tm-motion-fade-slide-right";
2952
- readonly fadeIn: "tm-motion-fade-in";
2953
- readonly combined: "tm-motion-fade-slide-right";
2954
- };
2955
- readonly exit: {
2956
- readonly slideOutRight: "tm-motion-fade-slide-right-out";
2957
- readonly fadeOut: "tm-motion-fade-out";
2958
- readonly combined: "tm-motion-fade-slide-right-out";
2959
- };
2960
- readonly panel: {
2961
- readonly enter: {
2962
- readonly slideInRight: "tm-motion-fade-slide-right";
2963
- readonly fadeIn: "tm-motion-fade-in";
2964
- readonly combined: "tm-motion-fade-slide-right";
2965
- };
2966
- readonly exit: {
2967
- readonly slideOutRight: "tm-motion-fade-slide-right-out";
2968
- readonly fadeOut: "tm-motion-fade-out";
2969
- readonly combined: "tm-motion-fade-slide-right-out";
2970
- };
2971
- };
2972
- };
2973
- /**
2974
- * Panel-specific tokens
2975
- * For the side drawer notification panel
2976
- */
2977
- readonly panel: {
2978
- readonly width: {
2979
- readonly default: "w-md";
2980
- readonly sm: "w-sm";
2981
- readonly md: "w-md";
2982
- readonly lg: "w-lg";
2983
- };
2984
- readonly maxHeight: "max-h-[calc(100vh-2rem)]";
2985
- readonly spacing: {
2986
- readonly gap: "gap-md";
2987
- readonly padding: "p-lg";
2988
- readonly headerPadding: "px-lg py-md";
2989
- };
2990
- readonly radius: {
2991
- readonly default: "rounded-lg";
2992
- readonly topLeft: "rounded-tl-lg";
2993
- readonly topRight: "rounded-tr-lg";
2994
- };
2995
- readonly shadow: {
2996
- readonly default: "shadow-xl";
2997
- };
2998
- readonly backdrop: {
2999
- readonly bg: "bg-black/50";
3000
- readonly blur: "backdrop-blur-sm";
3001
- };
3002
- };
3003
- };
3004
- /**
3005
- * Type exports for Notification tokens
3006
- */
3007
- type NotificationVariant = keyof typeof NOTIFICATION_TOKENS.surface;
3008
- type NotificationPanelWidth = keyof typeof NOTIFICATION_TOKENS.panel.width;
3009
-
3010
- /**
3011
- * Navigation Component Tokens
3012
- *
3013
- * Component-level design tokens for Navigation components (Tabs, SegmentedControl, Breadcrumbs, Pagination, Stepper).
3014
- * Maps foundation tokens (spacing, typography, radius, shadows) to navigation-specific usage.
3015
- *
3016
- * All values reference foundation tokens to ensure consistency across the design system.
3017
- */
3018
- /**
3019
- * Navigation Component Tokens
3020
- *
3021
- * Defines all spacing, sizing, typography, and visual tokens for Navigation components.
3022
- * Values are mapped to Tailwind utility classes for direct use in component variants.
3023
- */
3024
- declare const NAVIGATION_TOKENS: {
3025
- /**
3026
- * Navigation item heights by size
3027
- * Maps to Tailwind height utilities: h-8, h-9, h-10
3028
- */
3029
- readonly sizes: {
3030
- readonly sm: {
3031
- readonly height: "h-8";
3032
- readonly width: "w-8";
3033
- readonly padding: {
3034
- readonly horizontal: "px-sm";
3035
- readonly vertical: "py-xs";
3036
- };
3037
- readonly fontSize: "text-xs";
3038
- readonly gap: "gap-xs";
3039
- };
3040
- readonly md: {
3041
- readonly height: "h-9";
3042
- readonly padding: {
3043
- readonly horizontal: "px-md";
3044
- readonly vertical: "py-sm";
3045
- };
3046
- readonly fontSize: "text-sm";
3047
- readonly gap: "gap-sm";
3048
- };
3049
- readonly lg: {
3050
- readonly height: "h-10";
3051
- readonly padding: {
3052
- readonly horizontal: "px-lg";
3053
- readonly vertical: "py-sm";
3054
- };
3055
- readonly fontSize: "text-base";
3056
- readonly gap: "gap-sm";
3057
- };
3058
- };
3059
- /**
3060
- * Border radius for navigation items
3061
- */
3062
- readonly radius: {
3063
- readonly default: "rounded-md";
3064
- readonly sm: "rounded-sm";
3065
- readonly md: "rounded-md";
3066
- readonly lg: "rounded-lg";
3067
- readonly full: "rounded-full";
3068
- };
3069
- /**
3070
- * Spacing tokens for navigation components
3071
- */
3072
- readonly spacing: {
3073
- readonly itemPadding: {
3074
- readonly sm: "px-sm py-xs";
3075
- readonly md: "px-md py-sm";
3076
- readonly lg: "px-lg py-sm";
3077
- };
3078
- readonly listGap: {
3079
- readonly xs: "gap-xs";
3080
- readonly sm: "gap-sm";
3081
- readonly md: "gap-md";
3082
- readonly lg: "gap-lg";
3083
- };
3084
- readonly content: {
3085
- readonly marginTop: "mt-md";
3086
- };
3087
- };
3088
- /**
3089
- * Typography tokens for navigation components
3090
- */
3091
- readonly typography: {
3092
- readonly default: "text-sm";
3093
- readonly sm: "text-xs";
3094
- readonly md: "text-sm";
3095
- readonly lg: "text-base";
3096
- readonly fontWeight: {
3097
- readonly default: "font-medium";
3098
- readonly normal: "font-normal";
3099
- readonly medium: "font-medium";
3100
- readonly semibold: "font-semibold";
3101
- };
3102
- };
3103
- /**
3104
- * State-based tokens for navigation items
3105
- * Colors, backgrounds, and borders for different states
3106
- */
3107
- readonly states: {
3108
- readonly default: {
3109
- readonly background: "bg-transparent";
3110
- readonly text: "text-[hsl(var(--tm-text-primary))]";
3111
- readonly border: "border-transparent";
3112
- };
3113
- readonly hover: {
3114
- readonly background: "hover:bg-accent";
3115
- readonly text: "hover:text-accent-foreground";
3116
- readonly border: "hover:border-accent";
3117
- };
3118
- readonly active: {
3119
- readonly background: "bg-accent";
3120
- readonly text: "text-accent-foreground";
3121
- readonly border: "border-accent";
3122
- };
3123
- readonly selected: {
3124
- readonly background: "bg-primary";
3125
- readonly text: "text-primary-foreground";
3126
- readonly border: "border-primary";
3127
- };
3128
- readonly disabled: {
3129
- readonly background: "bg-transparent";
3130
- readonly text: "text-[hsl(var(--tm-text-muted))] disabled:opacity-50";
3131
- readonly border: "border-transparent";
3132
- readonly cursor: "disabled:cursor-not-allowed";
3133
- };
3134
- };
3135
- /**
3136
- * Indicator tokens for Tabs component
3137
- * Used for underline/indicator animation
3138
- */
3139
- readonly indicator: {
3140
- readonly height: "h-0.5";
3141
- readonly radius: "rounded-full";
3142
- readonly transition: "transition-all duration-normal ease-out";
3143
- readonly background: "bg-primary";
3144
- readonly position: "absolute bottom-0 left-0 right-0";
3145
- };
3146
- /**
3147
- * Shadow tokens for navigation components
3148
- */
3149
- readonly shadow: {
3150
- readonly none: "shadow-none";
3151
- readonly sm: "shadow-sm";
3152
- readonly default: "shadow-sm";
3153
- readonly md: "shadow";
3154
- };
3155
- /**
3156
- * Focus ring tokens for accessibility
3157
- */
3158
- readonly focus: {
3159
- readonly ring: "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2";
3160
- readonly ringOffset: "focus-visible:ring-offset-2";
3161
- };
3162
- /**
3163
- * Container background tokens
3164
- * For segmented control and tab container backgrounds
3165
- */
3166
- readonly container: {
3167
- readonly background: {
3168
- readonly muted: "bg-muted";
3169
- };
3170
- readonly padding: {
3171
- readonly xs: "p-xs";
3172
- readonly sm: "p-sm";
3173
- };
3174
- };
3175
- /**
3176
- * Border color tokens
3177
- */
3178
- readonly border: {
3179
- readonly muted: "border-muted-foreground";
3180
- };
3181
- };
3182
- /**
3183
- * Type exports for Navigation tokens
3184
- */
3185
- type NavigationSize = keyof typeof NAVIGATION_TOKENS.sizes;
3186
- type NavigationRadius = keyof typeof NAVIGATION_TOKENS.radius;
3187
- type NavigationState = keyof typeof NAVIGATION_TOKENS.states;
3188
- type NavigationShadow = keyof typeof NAVIGATION_TOKENS.shadow;
3189
- type NavigationListGap = keyof typeof NAVIGATION_TOKENS.spacing.listGap;
3190
- type NavigationItemPadding = keyof typeof NAVIGATION_TOKENS.spacing.itemPadding;
3191
-
3192
- /**
3193
- * Menu Component Tokens
3194
- *
3195
- * Component-level design tokens for Menu components (ContextMenu).
3196
- * Maps foundation tokens (spacing, radius, shadows, typography, motion) to menu-specific usage.
3197
- *
3198
- * All values use Tailwind utility classes that map to foundation tokens.
3199
- */
3200
- /**
3201
- * Menu Component Tokens
3202
- *
3203
- * Defines tokens for menu items, content, separators, labels, and indicators.
3204
- * Values are mapped to Tailwind utility classes for direct use.
3205
- */
3206
- declare const MENU_TOKENS: {
3207
- /**
3208
- * Menu item tokens by size
3209
- * Maps to foundation spacing and radius tokens
3210
- */
3211
- readonly item: {
3212
- readonly padding: {
3213
- readonly xs: "px-xs py-xs";
3214
- readonly sm: "px-sm py-sm";
3215
- readonly md: "px-md py-sm";
3216
- };
3217
- readonly radius: {
3218
- readonly sm: "rounded-sm";
3219
- readonly md: "rounded-md";
3220
- };
3221
- readonly gap: {
3222
- readonly xs: "gap-xs";
3223
- readonly sm: "gap-sm";
3224
- };
3225
- readonly height: {
3226
- readonly sm: "h-8";
3227
- readonly md: "h-10";
3228
- readonly lg: "h-12";
3229
- };
3230
- readonly focus: {
3231
- readonly background: "focus-visible:bg-accent/10";
3232
- readonly text: "focus-visible:text-accent-foreground";
3233
- };
3234
- };
3235
- /**
3236
- * Menu content tokens by size
3237
- * Maps to foundation spacing, radius, and shadow tokens
3238
- */
3239
- readonly content: {
3240
- readonly padding: {
3241
- readonly sm: "p-sm";
3242
- readonly md: "p-md";
3243
- };
3244
- readonly radius: {
3245
- readonly sm: "rounded-md";
3246
- readonly md: "rounded-lg";
3247
- };
3248
- readonly shadow: {
3249
- readonly sm: "shadow-md";
3250
- readonly md: "shadow-lg";
3251
- };
3252
- readonly minWidth: {
3253
- readonly sm: "min-w-32";
3254
- readonly md: "min-w-48";
3255
- };
3256
- };
3257
- /**
3258
- * Menu separator tokens
3259
- * Maps to foundation spacing and color tokens
3260
- */
3261
- readonly separator: {
3262
- readonly margin: {
3263
- readonly sm: "my-xs";
3264
- readonly md: "my-sm";
3265
- };
3266
- readonly height: "h-px";
3267
- readonly color: "bg-border";
3268
- };
3269
- /**
3270
- * Menu label tokens
3271
- * Maps to foundation spacing and typography tokens
3272
- */
3273
- readonly label: {
3274
- readonly padding: {
3275
- readonly sm: "px-sm py-xs";
3276
- readonly md: "px-md py-sm";
3277
- };
3278
- readonly textStyle: "text-sm font-semibold";
3279
- readonly textColor: "text-[hsl(var(--tm-muted-foreground))]";
3280
- };
3281
- /**
3282
- * Menu indicator tokens (for checkboxes, radio buttons)
3283
- * Maps to foundation spacing tokens
3284
- */
3285
- readonly indicator: {
3286
- readonly size: {
3287
- readonly sm: "w-4 h-4";
3288
- readonly md: "w-5 h-5";
3289
- };
3290
- readonly offset: {
3291
- readonly sm: "left-xs";
3292
- readonly md: "left-sm";
3293
- };
3294
- };
3295
- };
3296
- /**
3297
- * Type exports for Menu tokens
3298
- */
3299
- type MenuItemPadding = keyof typeof MENU_TOKENS.item.padding;
3300
- type MenuItemRadius = keyof typeof MENU_TOKENS.item.radius;
3301
- type MenuItemGap = keyof typeof MENU_TOKENS.item.gap;
3302
- type MenuItemHeight = keyof typeof MENU_TOKENS.item.height;
3303
- type MenuContentPadding = keyof typeof MENU_TOKENS.content.padding;
3304
- type MenuContentRadius = keyof typeof MENU_TOKENS.content.radius;
3305
- type MenuContentShadow = keyof typeof MENU_TOKENS.content.shadow;
3306
- type MenuContentMinWidth = keyof typeof MENU_TOKENS.content.minWidth;
3307
- type MenuSeparatorMargin = keyof typeof MENU_TOKENS.separator.margin;
3308
- type MenuLabelPadding = keyof typeof MENU_TOKENS.label.padding;
3309
- type MenuIndicatorSize = keyof typeof MENU_TOKENS.indicator.size;
3310
- type MenuIndicatorOffset = keyof typeof MENU_TOKENS.indicator.offset;
3311
-
3312
- /**
3313
- * Popover Component Tokens
3314
- *
3315
- * Component-level design tokens for Popover component.
3316
- * Maps foundation tokens (spacing, radius, shadows, motion) to popover-specific usage.
3317
- *
3318
- * All values use Tailwind utility classes that map to foundation tokens.
3319
- */
3320
- /**
3321
- * Popover Component Tokens
3322
- *
3323
- * Defines tokens for popover content, arrow, and animations.
3324
- * Values are mapped to Tailwind utility classes for direct use.
3325
- */
3326
- declare const POPOVER_TOKENS: {
3327
- /**
3328
- * Popover content tokens by size
3329
- * Maps to foundation spacing, radius, and shadow tokens
3330
- */
3331
- readonly content: {
3332
- readonly border: {
3333
- readonly default: "border";
3334
- readonly color: "border-border";
3335
- };
3336
- readonly background: {
3337
- readonly default: "bg-popover";
3338
- };
3339
- readonly text: {
3340
- readonly default: "text-foreground";
3341
- };
3342
- readonly padding: {
3343
- readonly sm: "p-sm";
3344
- readonly md: "p-md";
3345
- readonly lg: "p-lg";
3346
- };
3347
- readonly radius: {
3348
- readonly sm: "rounded-md";
3349
- readonly md: "rounded-lg";
3350
- };
3351
- readonly shadow: {
3352
- readonly sm: "shadow-md";
3353
- readonly md: "shadow-lg";
3354
- };
3355
- readonly width: {
3356
- readonly xs: "w-40";
3357
- readonly sm: "w-48";
3358
- readonly md: "w-72";
3359
- readonly lg: "w-96";
3360
- readonly xl: "w-[32rem]";
3361
- };
3362
- };
3363
- /**
3364
- * Popover arrow tokens
3365
- * Maps to foundation spacing tokens
3366
- */
3367
- readonly arrow: {
3368
- readonly size: {
3369
- readonly sm: "w-2 h-2";
3370
- readonly md: "w-3 h-3";
3371
- };
3372
- readonly offset: {
3373
- readonly sm: "-translate-x-1/2";
3374
- readonly md: "-translate-x-1/2";
3375
- };
3376
- };
3377
- /**
3378
- * Animation tokens for popover enter/exit animations
3379
- * Maps to Motion utility classes
3380
- * Uses CSS-only animations from motion.ts
3381
- */
3382
- readonly animation: {
3383
- readonly enter: "tm-motion-fade-scale";
3384
- readonly exit: "tm-motion-fade-scale-out";
3385
- };
3386
- };
3387
- /**
3388
- * Type exports for Popover tokens
3389
- */
3390
- type PopoverContentPadding = keyof typeof POPOVER_TOKENS.content.padding;
3391
- type PopoverContentRadius = keyof typeof POPOVER_TOKENS.content.radius;
3392
- type PopoverContentShadow = keyof typeof POPOVER_TOKENS.content.shadow;
3393
- type PopoverContentWidth = keyof typeof POPOVER_TOKENS.content.width;
3394
- type PopoverArrowSize = keyof typeof POPOVER_TOKENS.arrow.size;
3395
- type PopoverArrowOffset = keyof typeof POPOVER_TOKENS.arrow.offset;
3396
-
3397
- /**
3398
- * Tooltip Component Tokens
3399
- *
3400
- * Component-level design tokens for Tooltip component.
3401
- * Maps foundation tokens (spacing, radius, shadows, typography) to tooltip-specific usage.
3402
- *
3403
- * All values use Tailwind utility classes that map to foundation tokens.
3404
- */
3405
- /**
3406
- * Tooltip Component Tokens
3407
- *
3408
- * Defines tokens for tooltip content styling.
3409
- * Values are mapped to Tailwind utility classes for direct use.
3410
- */
3411
- declare const TOOLTIP_TOKENS: {
3412
- /**
3413
- * Tooltip content tokens
3414
- * Maps to foundation spacing, radius, shadow, and typography tokens
3415
- */
3416
- readonly content: {
3417
- readonly border: {
3418
- readonly default: "border";
3419
- readonly color: "border-border";
3420
- };
3421
- readonly background: {
3422
- readonly default: "bg-popover";
3423
- };
3424
- readonly text: {
3425
- readonly default: "text-foreground";
3426
- };
3427
- readonly padding: {
3428
- readonly horizontal: "px-sm";
3429
- readonly vertical: "py-xs";
3430
- };
3431
- readonly radius: {
3432
- readonly sm: "rounded-sm";
3433
- readonly md: "rounded-md";
3434
- };
3435
- readonly shadow: {
3436
- readonly sm: "shadow-sm";
3437
- readonly md: "shadow-md";
3438
- };
3439
- readonly fontSize: {
3440
- readonly sm: "text-sm";
3441
- };
3442
- };
3443
- };
3444
- /**
3445
- * Type exports for Tooltip tokens
3446
- */
3447
- type TooltipContentRadius = keyof typeof TOOLTIP_TOKENS.content.radius;
3448
- type TooltipContentShadow = keyof typeof TOOLTIP_TOKENS.content.shadow;
3449
-
3450
- /**
3451
- * Data Component Tokens
3452
- *
3453
- * Component-level design tokens for Skeleton component only.
3454
- *
3455
- * Note: Other data components (Table, DataList, EmptyState, Pagination) have their own
3456
- * isolated token domains:
3457
- * - TABLE_TOKENS (src/tokens/components/table.ts)
3458
- * - DATA_LIST_TOKENS (src/tokens/components/data-list.ts)
3459
- * - EMPTY_STATE_TOKENS (src/tokens/components/empty-state.ts)
3460
- * - PAGINATION_TOKENS (src/tokens/components/pagination.ts)
3461
- *
3462
- * Maps foundation tokens (spacing, typography, radius, shadows) to skeleton-specific usage.
3463
- * All values reference foundation tokens to ensure consistency across the design system.
3464
- */
3465
- /**
3466
- * Data Component Tokens (Skeleton Only)
3467
- *
3468
- * Defines all spacing, sizing, typography, and visual tokens for Skeleton component.
3469
- * Values are mapped to Tailwind utility classes for direct use in component variants.
3470
- */
3471
- declare const DATA_TOKENS: {
3472
- /**
3473
- * Skeleton Component Tokens
3474
- */
3475
- readonly skeleton: {
3476
- /**
3477
- * Skeleton heights by variant
3478
- * Maps to Tailwind height utilities
3479
- */
3480
- readonly height: {
3481
- readonly text: "h-4";
3482
- readonly circle: "h-10 w-10";
3483
- readonly block: "h-20";
3484
- readonly card: "h-32";
3485
- readonly inline: "h-4";
3486
- };
3487
- /**
3488
- * Border radius by variant
3489
- * Maps to foundation borderRadius tokens
3490
- */
3491
- readonly radius: {
3492
- readonly text: "rounded-sm";
3493
- readonly circle: "rounded-full";
3494
- readonly block: "rounded-md";
3495
- readonly card: "rounded-xl";
3496
- readonly inline: "rounded-sm";
3497
- };
3498
- /**
3499
- * Animation tokens
3500
- * Uses motion tokens for animations
3501
- */
3502
- readonly animation: {
3503
- readonly pulse: "animate-pulse";
3504
- readonly fade: "animate-pulse";
3505
- };
3506
- /**
3507
- * Background color tokens
3508
- * Uses semantic color tokens
3509
- */
3510
- readonly background: {
3511
- readonly default: "bg-muted";
3512
- readonly subtle: "bg-muted/50";
3513
- };
3514
- /**
3515
- * Width tokens for skeleton variants
3516
- */
3517
- readonly width: {
3518
- readonly full: "w-full";
3519
- readonly inline: "inline-block";
3520
- };
3521
- };
3522
- };
3523
- /**
3524
- * Type exports for Data tokens (Skeleton only)
3525
- */
3526
- type SkeletonVariant = keyof typeof DATA_TOKENS.skeleton.height;
3527
- type SkeletonAnimation = keyof typeof DATA_TOKENS.skeleton.animation;
3528
- type SkeletonBackground = keyof typeof DATA_TOKENS.skeleton.background;
3529
-
3530
- /**
3531
- * Table Component Tokens
3532
- *
3533
- * Component-level design tokens for Table component.
3534
- * Maps foundation tokens (spacing, typography, radius, shadows) to table-specific usage.
3535
- *
3536
- * All values reference foundation tokens to ensure consistency across the design system.
3537
- *
3538
- * This is an isolated token domain - tokens are specific to Table component only.
3539
- * No other components should import or use TABLE_TOKENS.
3540
- */
3541
- /**
3542
- * Table Component Tokens
3543
- *
3544
- * Defines all spacing, sizing, typography, and visual tokens for Table component.
3545
- * Values are mapped to Tailwind utility classes for direct use in component variants.
3546
- */
3547
- declare const TABLE_TOKENS: {
3548
- /**
3549
- * Table row heights by size
3550
- * Maps to Tailwind height utilities
3551
- */
3552
- readonly rowHeight: {
3553
- readonly sm: "h-8";
3554
- readonly md: "h-10";
3555
- readonly lg: "h-12";
3556
- };
3557
- /**
3558
- * Table cell and header padding by size
3559
- * Maps to semantic spacing tokens
3560
- */
3561
- readonly padding: {
3562
- readonly cell: {
3563
- readonly sm: "p-xs";
3564
- readonly md: "p-sm";
3565
- readonly lg: "p-md";
3566
- };
3567
- readonly header: {
3568
- readonly sm: "px-xs py-sm";
3569
- readonly md: "px-sm py-md";
3570
- readonly lg: "px-md py-lg";
3571
- };
3572
- };
3573
- /**
3574
- * Gap between table cells (horizontal spacing)
3575
- */
3576
- readonly gap: {
3577
- readonly sm: "gap-xs";
3578
- readonly md: "gap-sm";
3579
- };
3580
- /**
3581
- * Border radius for table
3582
- */
3583
- readonly radius: {
3584
- readonly default: "rounded-md";
3585
- };
3586
- /**
3587
- * Shadow tokens for table
3588
- * Maps to foundation elevation shadow tokens
3589
- */
3590
- readonly shadow: {
3591
- readonly none: "shadow-none";
3592
- readonly subtle: "shadow-sm";
3593
- };
3594
- /**
3595
- * Typography tokens for table headers and cells
3596
- * Maps to foundation typography fontSize tokens
3597
- */
3598
- readonly typography: {
3599
- readonly header: {
3600
- readonly fontSize: "text-sm";
3601
- readonly fontWeight: "font-semibold";
3602
- };
3603
- readonly cell: {
3604
- readonly fontSize: "text-sm";
3605
- readonly fontWeight: "font-normal";
3606
- };
3607
- };
3608
- /**
3609
- * Color tokens for table states
3610
- * Uses semantic color tokens
3611
- */
3612
- readonly colors: {
3613
- readonly border: "border-[hsl(var(--tm-border-default))]";
3614
- readonly rowHover: "hover:bg-muted/50";
3615
- readonly rowSelected: "bg-muted";
3616
- };
3617
- /**
3618
- * Border tokens for table
3619
- */
3620
- readonly border: {
3621
- readonly bottom: "border-b";
3622
- };
3623
- /**
3624
- * Layout tokens for table container and base styles
3625
- */
3626
- readonly layout: {
3627
- readonly overflow: "overflow-x-auto";
3628
- readonly table: "w-full border-collapse";
3629
- };
3630
- /**
3631
- * Sticky header tokens
3632
- * For sticky header positioning and styling
3633
- */
3634
- readonly sticky: {
3635
- readonly header: "sticky top-0 z-10 bg-[hsl(var(--tm-surface-base))]";
3636
- };
3637
- /**
3638
- * Expandable row tokens
3639
- * For expandable content styling
3640
- */
3641
- readonly expandable: {
3642
- readonly padding: "p-md";
3643
- readonly container: "p-0";
3644
- readonly transition: "overflow-hidden transition-all duration-normal ease-in-out";
3645
- readonly expanded: "max-h-[100vh] opacity-100";
3646
- readonly collapsed: "max-h-0 opacity-0";
3647
- readonly cursor: "cursor-pointer";
3648
- readonly content: {
3649
- readonly expanded: "block";
3650
- readonly collapsed: "hidden";
3651
- };
3652
- };
3653
- /**
3654
- * Loading state tokens
3655
- * For loading state cell styling
3656
- */
3657
- readonly loading: {
3658
- readonly cellPadding: "p-sm";
3659
- readonly skeletonWidth: "w-full";
3660
- };
3661
- /**
3662
- * Empty state tokens
3663
- * For empty state cell styling
3664
- */
3665
- readonly empty: {
3666
- readonly padding: "p-8";
3667
- };
3668
- /**
3669
- * Sortable header tokens
3670
- * For sortable header styling and interactions
3671
- */
3672
- readonly sortable: {
3673
- readonly hover: "hover:bg-muted/50";
3674
- readonly gap: "gap-2";
3675
- readonly cursor: "cursor-pointer select-none";
3676
- readonly container: "flex items-center";
3677
- readonly icon: {
3678
- readonly base: "inline-flex size-4 items-center text-[hsl(var(--tm-text-muted))] transition-transform";
3679
- readonly rotated: "rotate-180";
3680
- readonly inactive: "opacity-30";
3681
- };
3682
- };
3683
- };
3684
- /**
3685
- * Type exports for Table tokens
3686
- */
3687
- type TableRowHeight = keyof typeof TABLE_TOKENS.rowHeight;
3688
- type TableCellPadding = keyof typeof TABLE_TOKENS.padding.cell;
3689
- type TableHeaderPadding = keyof typeof TABLE_TOKENS.padding.header;
3690
- type TableGap = keyof typeof TABLE_TOKENS.gap;
3691
- type TableShadow = keyof typeof TABLE_TOKENS.shadow;
3692
-
3693
- /**
3694
- * SimpleTable Component Tokens
3695
- *
3696
- * Component-level design tokens for SimpleTable component.
3697
- * Maps foundation tokens (spacing, typography, radius) to simple-table-specific usage.
3698
- *
3699
- * All values use Tailwind utility classes that map to foundation tokens.
3700
- */
3701
- /**
3702
- * SimpleTable Component Tokens
3703
- *
3704
- * Defines tokens for simple table spacing, typography, and layout by size.
3705
- * Values are mapped to Tailwind utility classes for direct use.
3706
- */
3707
- declare const SIMPLETABLE_TOKENS: {
3708
- /**
3709
- * Cell padding by size
3710
- * Maps to semanticSpacing tokens
3711
- */
3712
- readonly padding: {
3713
- readonly cell: {
3714
- readonly sm: "p-xs";
3715
- readonly md: "p-sm";
3716
- readonly lg: "p-md";
3717
- };
3718
- readonly header: {
3719
- readonly sm: "px-xs py-xs";
3720
- readonly md: "px-sm py-sm";
3721
- readonly lg: "px-md py-md";
3722
- };
3723
- };
3724
- /**
3725
- * Typography tokens for table headers and cells by size
3726
- * Maps to fontSize and fontWeight tokens
3727
- */
3728
- readonly typography: {
3729
- readonly header: {
3730
- readonly sm: "text-xs font-medium text-[hsl(var(--tm-text-muted))]";
3731
- readonly md: "text-sm font-medium text-[hsl(var(--tm-text-muted))]";
3732
- readonly lg: "text-base font-medium text-[hsl(var(--tm-text-muted))]";
3733
- };
3734
- readonly cell: {
3735
- readonly sm: "text-xs";
3736
- readonly md: "text-sm";
3737
- readonly lg: "text-base";
3738
- };
3739
- };
3740
- /**
3741
- * Layout tokens for table container and base styles
3742
- */
3743
- readonly layout: {
3744
- readonly overflow: "overflow-x-auto";
3745
- readonly table: "w-full border-collapse";
3746
- };
3747
- /**
3748
- * Border tokens for table
3749
- */
3750
- readonly border: {
3751
- readonly bottom: "border-b";
3752
- readonly color: "border-[hsl(var(--tm-border-default))]";
3753
- };
3754
- /**
3755
- * State tokens for table rows
3756
- */
3757
- readonly state: {
3758
- readonly rowHover: "hover:bg-muted/50";
3759
- };
3760
- /**
3761
- * Text alignment tokens
3762
- */
3763
- readonly alignment: {
3764
- readonly left: "text-left";
3765
- };
3766
- };
3767
-
3768
- /**
3769
- * DataList Component Tokens
3770
- *
3771
- * Component-level design tokens for DataList component.
3772
- * Maps foundation tokens (spacing, typography) to data-list-specific usage.
3773
- *
3774
- * All values reference foundation tokens to ensure consistency across the design system.
3775
- *
3776
- * This is an isolated token domain - tokens are specific to DataList component only.
3777
- * No other components should import or use DATA_LIST_TOKENS.
3778
- */
3779
- /**
3780
- * DataList Component Tokens
3781
- *
3782
- * Defines all spacing, sizing, typography, and visual tokens for DataList component.
3783
- * Values are mapped to Tailwind utility classes for direct use in component variants.
3784
- */
3785
- declare const DATA_LIST_TOKENS: {
3786
- /**
3787
- * Spacing tokens for DataList
3788
- * Maps to semantic spacing tokens
3789
- */
3790
- readonly spacing: {
3791
- readonly gap: "gap-md";
3792
- readonly padding: "p-md";
3793
- };
3794
- /**
3795
- * Label width tokens (for desktop horizontal layout)
3796
- * Maps to Tailwind width utilities
3797
- */
3798
- readonly labelWidth: {
3799
- readonly sm: "w-24";
3800
- readonly md: "w-32";
3801
- readonly lg: "w-40";
3802
- };
3803
- /**
3804
- * Row padding tokens
3805
- * Maps to semantic spacing tokens
3806
- */
3807
- readonly rowPadding: {
3808
- readonly sm: "py-xs";
3809
- readonly md: "py-sm";
3810
- readonly lg: "py-md";
3811
- };
3812
- /**
3813
- * Item tokens
3814
- * For individual DataList item styling
3815
- */
3816
- readonly item: {
3817
- /**
3818
- * Border tokens for items
3819
- */
3820
- readonly border: "border-b border-border last:border-0";
3821
- /**
3822
- * Responsive layout tokens
3823
- */
3824
- readonly layout: {
3825
- readonly mobile: "flex flex-col";
3826
- readonly desktop: "md:flex-row md:items-center";
3827
- };
3828
- };
3829
- /**
3830
- * Label tokens
3831
- * For DataList label styling
3832
- */
3833
- readonly label: {
3834
- readonly mobile: "mb-1 font-semibold text-foreground";
3835
- readonly desktop: "md:mb-0";
3836
- };
3837
- /**
3838
- * Value tokens
3839
- * For DataList value styling
3840
- */
3841
- readonly value: {
3842
- readonly color: "text-[hsl(var(--tm-text-muted))]";
3843
- readonly flex: "flex-1";
3844
- };
3845
- };
3846
- /**
3847
- * Type exports for DataList tokens
3848
- */
3849
- type DataListLabelWidth = keyof typeof DATA_LIST_TOKENS.labelWidth;
3850
- type DataListRowPadding = keyof typeof DATA_LIST_TOKENS.rowPadding;
3851
-
3852
- /**
3853
- * EmptyState Component Tokens
3854
- *
3855
- * Component-level design tokens for EmptyState component.
3856
- * Maps foundation tokens (spacing, typography, radius) to empty-state-specific usage.
3857
- *
3858
- * All values reference foundation tokens to ensure consistency across the design system.
3859
- *
3860
- * This is an isolated token domain - tokens are specific to EmptyState component only.
3861
- * No other components should import or use EMPTY_STATE_TOKENS.
3862
- */
3863
- /**
3864
- * EmptyState Component Tokens
3865
- *
3866
- * Defines all spacing, sizing, typography, and visual tokens for EmptyState component.
3867
- * Values are mapped to Tailwind utility classes for direct use in component variants.
3868
- */
3869
- declare const EMPTY_STATE_TOKENS: {
3870
- /**
3871
- * Spacing tokens for EmptyState
3872
- * Maps to semantic spacing tokens
3873
- */
3874
- readonly spacing: {
3875
- readonly gap: "gap-md";
3876
- readonly padding: "p-lg";
3877
- readonly action: "mt-2";
3878
- };
3879
- /**
3880
- * Border radius for EmptyState container
3881
- */
3882
- readonly radius: {
3883
- readonly default: "rounded-xl";
3884
- };
3885
- /**
3886
- * Icon sizes by variant
3887
- * Maps to Tailwind size utilities
3888
- */
3889
- readonly icon: {
3890
- readonly size: {
3891
- readonly sm: "size-8";
3892
- readonly md: "size-12";
3893
- readonly lg: "size-16";
3894
- };
3895
- readonly container: "flex items-center justify-center text-[hsl(var(--tm-text-muted))]";
3896
- };
3897
- /**
3898
- * Typography tokens for EmptyState
3899
- * Maps to foundation typography tokens
3900
- */
3901
- readonly typography: {
3902
- readonly title: {
3903
- readonly fontSize: "text-lg";
3904
- readonly fontWeight: "font-semibold";
3905
- readonly color: "text-foreground";
3906
- };
3907
- readonly description: {
3908
- readonly fontSize: "text-sm";
3909
- readonly fontWeight: "font-normal";
3910
- readonly color: "text-[hsl(var(--tm-text-muted))]";
3911
- readonly maxWidth: "max-w-md";
3912
- };
3913
- };
3914
- /**
3915
- * Alignment tokens
3916
- * For text alignment in EmptyState
3917
- */
3918
- readonly alignment: {
3919
- readonly center: "text-center";
3920
- readonly left: "text-left";
3921
- readonly right: "text-right";
3922
- };
3923
- };
3924
- /**
3925
- * Type exports for EmptyState tokens
3926
- */
3927
- type EmptyStateIconSize = keyof typeof EMPTY_STATE_TOKENS.icon.size;
3928
-
3929
- /**
3930
- * Icon Component Tokens
3931
- *
3932
- * Component-level design tokens for Icon component.
3933
- * Maps foundation tokens (spacing, colors) to icon-specific usage.
3934
- *
3935
- * All values reference foundation tokens to ensure consistency across the design system.
3936
- */
3937
- /**
3938
- * Icon Component Tokens
3939
- *
3940
- * Defines all sizing, stroke, and color tokens for Icon component.
3941
- * Values are mapped to Tailwind utility classes for direct use in component variants.
3942
- */
3943
- declare const ICON_TOKENS: {
3944
- /**
3945
- * Icon sizes
3946
- * Maps to Tailwind size utilities for consistent icon sizing
3947
- */
3948
- readonly sizes: {
3949
- readonly xs: "h-2.5 w-2.5";
3950
- readonly sm: "h-3 w-3";
3951
- readonly md: "h-4 w-4";
3952
- readonly lg: "h-5 w-5";
3953
- readonly xl: "h-6 w-6";
3954
- readonly "2xl": "h-8 w-8";
3955
- readonly "3xl": "h-10 w-10";
3956
- readonly "4xl": "h-12 w-12";
3957
- };
3958
- /**
3959
- * Stroke width variants
3960
- * Maps to Tailwind stroke-width utilities
3961
- */
3962
- readonly stroke: {
3963
- readonly thin: "stroke-[1px]";
3964
- readonly normal: "stroke-[1.5px]";
3965
- readonly bold: "stroke-2";
3966
- };
3967
- /**
3968
- * Color variants
3969
- * Maps to semantic text color tokens
3970
- */
3971
- readonly colors: {
3972
- readonly default: "text-[hsl(var(--tm-text-primary))]";
3973
- readonly muted: "text-[hsl(var(--tm-text-muted))]";
3974
- readonly success: "text-success";
3975
- readonly warning: "text-warning";
3976
- readonly danger: "text-destructive";
3977
- readonly info: "text-info";
3978
- };
3979
- };
3980
- /**
3981
- * Type exports for Icon tokens
3982
- */
3983
- type IconSize = keyof typeof ICON_TOKENS.sizes;
3984
- type IconStroke = keyof typeof ICON_TOKENS.stroke;
3985
- type IconColor = keyof typeof ICON_TOKENS.colors;
3986
-
3987
- /**
3988
- * Motion Component Tokens
3989
- *
3990
- * Component-level design tokens for Motion/Animation utilities.
3991
- * Maps foundation motion tokens (durations, easings, transitions) to Tailwind utility classes.
3992
- *
3993
- * All values use Tailwind utility classes that map to foundation motion tokens.
3994
- */
3995
- /**
3996
- * Motion Component Tokens
3997
- *
3998
- * Defines transition, duration, and easing tokens for component usage.
3999
- * Values are mapped to Tailwind utility classes for direct use in components.
4000
- */
4001
- declare const MOTION_TOKENS: {
4002
- /**
4003
- * Transition property tokens
4004
- * Maps to Tailwind transition utilities
4005
- */
4006
- readonly transition: {
4007
- readonly all: "transition-all";
4008
- readonly colors: "transition-colors";
4009
- readonly opacity: "transition-opacity";
4010
- readonly transform: "transition-transform";
4011
- readonly shadow: "transition-shadow";
4012
- readonly none: "transition-none";
4013
- };
4014
- /**
4015
- * Duration tokens
4016
- * Maps to foundation motion duration tokens via Tailwind
4017
- */
4018
- readonly duration: {
4019
- readonly instant: "duration-0";
4020
- readonly fast: "duration-fast";
4021
- readonly normal: "duration-normal";
4022
- readonly slow: "duration-slow";
4023
- readonly slower: "duration-slower";
4024
- readonly slowest: "duration-slowest";
4025
- readonly "75": "duration-75";
4026
- readonly "100": "duration-100";
4027
- readonly "200": "duration-200";
4028
- readonly "250": "duration-250";
4029
- readonly "300": "duration-300";
4030
- readonly "400": "duration-400";
4031
- readonly "500": "duration-500";
4032
- readonly "600": "duration-600";
4033
- readonly "700": "duration-700";
4034
- readonly "800": "duration-800";
4035
- readonly "1000": "duration-1000";
4036
- };
4037
- /**
4038
- * Easing tokens
4039
- * Maps to foundation motion easing tokens via Tailwind
4040
- */
4041
- readonly easing: {
4042
- readonly linear: "ease-linear";
4043
- readonly in: "ease-in";
4044
- readonly out: "ease-out";
4045
- readonly "in-out": "ease-in-out";
4046
- readonly bounce: "ease-bounce";
4047
- readonly elastic: "ease-elastic";
4048
- };
4049
- /**
4050
- * Pre-configured transition tokens
4051
- * Combines duration and easing for common use cases
4052
- */
4053
- readonly transitionPreset: {
4054
- readonly fast: "transition-all duration-fast ease-out";
4055
- readonly normal: "transition-all duration-normal ease-in-out";
4056
- readonly slow: "transition-all duration-slow ease-in-out";
4057
- readonly colors: "transition-colors duration-normal ease-out";
4058
- readonly transform: "transition-transform duration-normal ease-out";
4059
- readonly opacity: "transition-opacity duration-fast ease-out";
4060
- };
4061
- /**
4062
- * Animation tokens
4063
- * Maps to foundation motion animation tokens via Tailwind
4064
- */
4065
- readonly animation: {
4066
- readonly none: "animate-none";
4067
- readonly spin: "animate-spin";
4068
- readonly pulse: "animate-pulse";
4069
- readonly bounce: "animate-bounce";
4070
- readonly ping: "animate-ping";
4071
- readonly shake: "animate-shake";
4072
- readonly fadeIn: "animate-fadeIn";
4073
- readonly fadeOut: "animate-fadeOut";
4074
- readonly slideInUp: "animate-slideInUp";
4075
- readonly slideInDown: "animate-slideInDown";
4076
- readonly slideInLeft: "animate-slideInLeft";
4077
- readonly slideInRight: "animate-slideInRight";
4078
- readonly scaleIn: "animate-scaleIn";
4079
- readonly scaleOut: "animate-scaleOut";
4080
- };
4081
- };
4082
- /**
4083
- * Type exports for Motion tokens
4084
- */
4085
- type MotionTransition = keyof typeof MOTION_TOKENS.transition;
4086
- type MotionDuration = keyof typeof MOTION_TOKENS.duration;
4087
- type MotionEasing = keyof typeof MOTION_TOKENS.easing;
4088
- type MotionTransitionPreset = keyof typeof MOTION_TOKENS.transitionPreset;
4089
- type MotionAnimation = keyof typeof MOTION_TOKENS.animation;
4090
-
4091
- /**
4092
- * CSS Variables Generator
4093
- *
4094
- * Merges all CSS custom properties from all token systems.
4095
- * This file aggregates all CSS variables for injection into the theme system.
4096
- */
4097
- /**
4098
- * All CSS Variables from Tokens
4099
- * Merges all token CSS variables into a single object
4100
- */
4101
- declare const allCSSVariables: {
4102
- readonly "--tm-z-base": "0";
4103
- readonly "--tm-z-dropdown": "1000";
4104
- readonly "--tm-z-sticky": "1100";
4105
- readonly "--tm-z-overlay": "1200";
4106
- readonly "--tm-z-modal": "1300";
4107
- readonly "--tm-z-toast": "1400";
4108
- readonly "--tm-z-tooltip": "1500";
4109
- readonly "--tm-motion-duration-fast": "250ms";
4110
- readonly "--tm-motion-duration-normal": "450ms";
4111
- readonly "--tm-motion-duration-slow": "650ms";
4112
- readonly "--tm-motion-duration-reduced": "0ms";
4113
- readonly "--tm-motion-easing-soft": "cubic-bezier(0.22, 1, 0.36, 1)";
4114
- readonly "--tm-motion-easing-standard": "cubic-bezier(0.4, 0, 0.2, 1)";
4115
- readonly "--tm-motion-easing-emphasized": "cubic-bezier(0.2, 0, 0, 1)";
4116
- readonly "--tm-motion-transition-fast": "250ms cubic-bezier(0.4, 0, 0.2, 1)";
4117
- readonly "--tm-motion-transition-normal": "450ms cubic-bezier(0.4, 0, 0.2, 1)";
4118
- readonly "--tm-motion-transition-slow": "650ms cubic-bezier(0.2, 0, 0, 1)";
4119
- readonly "--tm-motion-transition-soft": "450ms cubic-bezier(0.22, 1, 0.36, 1)";
4120
- readonly "--tm-motion-transition-reduced": "0ms linear";
4121
- readonly "--radius-none": "0";
4122
- readonly "--radius-xs": "0.125rem";
4123
- readonly "--radius-sm": "0.25rem";
4124
- readonly "--radius-base": "0.25rem";
4125
- readonly "--radius-md": "0.375rem";
4126
- readonly "--radius-lg": "0.5rem";
4127
- readonly "--radius-xl": "0.75rem";
4128
- readonly "--radius-2xl": "1rem";
4129
- readonly "--radius-3xl": "1.5rem";
4130
- readonly "--radius-full": "9999px";
4131
- readonly "--radius": "0.375rem";
4132
- readonly "--radius-button": "0.375rem";
4133
- readonly "--radius-card": "0.375rem";
4134
- readonly "--radius-input": "0.375rem";
4135
- readonly "--radius-badge": "0.25rem";
4136
- readonly "--radius-modal": "0.5rem";
4137
- readonly "--radius-tooltip": "0.25rem";
4138
- readonly "--radius-toast": "0.5rem";
4139
- readonly "--radius-chip": "0.25rem";
4140
- readonly "--radius-image": "0.375rem";
4141
- readonly "--shadow-none": "none";
4142
- readonly "--shadow-xs": "0 1px 2px 0 rgb(0 0 0 / 0.05)";
4143
- readonly "--shadow-sm": "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)";
4144
- readonly "--shadow-md": "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
4145
- readonly "--shadow-lg": "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)";
4146
- readonly "--shadow-xl": "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)";
4147
- readonly "--shadow-2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)";
4148
- readonly "--shadow-primary-xs": "0 1px 2px 0 hsl(var(--primary-500) / 0.15)";
4149
- readonly "--shadow-primary-sm": "0 2px 4px 0 hsl(var(--primary-500) / 0.2)";
4150
- readonly "--shadow-primary-md": "0 4px 8px 0 hsl(var(--primary-500) / 0.3)";
4151
- readonly "--shadow-primary-lg": "0 8px 16px 0 hsl(var(--primary-500) / 0.4)";
4152
- readonly "--shadow-primary-xl": "0 12px 24px 0 hsl(var(--primary-500) / 0.5)";
4153
- readonly "--shadow-primary-2xl": "0 16px 32px 0 hsl(var(--primary-500) / 0.6)";
4154
- readonly "--shadow-accent-xs": "0 1px 2px 0 hsl(var(--accent-500) / 0.15)";
4155
- readonly "--shadow-accent-sm": "0 2px 4px 0 hsl(var(--accent-500) / 0.2)";
4156
- readonly "--shadow-accent-md": "0 4px 8px 0 hsl(var(--accent-500) / 0.3)";
4157
- readonly "--shadow-accent-lg": "0 8px 16px 0 hsl(var(--accent-500) / 0.4)";
4158
- readonly "--shadow-accent-xl": "0 12px 24px 0 hsl(var(--accent-500) / 0.5)";
4159
- readonly "--shadow-accent-2xl": "0 16px 32px 0 hsl(var(--accent-500) / 0.6)";
4160
- readonly "--glow-primary": "0 0 20px 0 hsl(var(--primary-500) / 0.5), 0 0 40px 0 hsl(var(--primary-500) / 0.3)";
4161
- readonly "--glow-primary-subtle": "0 0 8px 0 hsl(var(--primary-500) / 0.3)";
4162
- readonly "--glow-primary-medium": "0 0 16px 0 hsl(var(--primary-500) / 0.5)";
4163
- readonly "--glow-primary-strong": "0 0 24px 0 hsl(var(--primary-500) / 0.6)";
4164
- readonly "--glow-accent": "0 0 20px 0 hsl(var(--accent-500) / 0.5), 0 0 40px 0 hsl(var(--accent-500) / 0.3)";
4165
- readonly "--glow-accent-subtle": "0 0 8px 0 hsl(var(--accent-500) / 0.3)";
4166
- readonly "--glow-accent-medium": "0 0 16px 0 hsl(var(--accent-500) / 0.5)";
4167
- readonly "--glow-accent-strong": "0 0 24px 0 hsl(var(--accent-500) / 0.6)";
4168
- readonly "--focus-ring-default": "0 0 0 3px hsl(var(--tm-focus-ring) / 0.5)";
4169
- readonly "--focus-ring-primary": "0 0 0 3px hsl(var(--primary-500) / 0.3)";
4170
- readonly "--focus-ring-accent": "0 0 0 3px hsl(var(--accent-500) / 0.3)";
4171
- readonly "--focus-primary": "0 0 0 3px hsl(var(--primary-500) / 0.3)";
4172
- readonly "--focus-accent": "0 0 0 3px hsl(var(--accent-500) / 0.3)";
4173
- readonly "--spacing-0": "0";
4174
- readonly "--spacing-px": "1px";
4175
- readonly "--spacing-0-5": "0.125rem";
4176
- readonly "--spacing-1": "0.25rem";
4177
- readonly "--spacing-1-5": "0.375rem";
4178
- readonly "--spacing-2": "0.5rem";
4179
- readonly "--spacing-2-5": "0.625rem";
4180
- readonly "--spacing-3": "0.75rem";
4181
- readonly "--spacing-3-5": "0.875rem";
4182
- readonly "--spacing-4": "1rem";
4183
- readonly "--spacing-5": "1.25rem";
4184
- readonly "--spacing-6": "1.5rem";
4185
- readonly "--spacing-7": "1.75rem";
4186
- readonly "--spacing-8": "2rem";
4187
- readonly "--spacing-9": "2.25rem";
4188
- readonly "--spacing-10": "2.5rem";
4189
- readonly "--spacing-11": "2.75rem";
4190
- readonly "--spacing-12": "3rem";
4191
- readonly "--spacing-14": "3.5rem";
4192
- readonly "--spacing-16": "4rem";
4193
- readonly "--spacing-20": "5rem";
4194
- readonly "--spacing-24": "6rem";
4195
- readonly "--spacing-xs": "0.25rem";
4196
- readonly "--spacing-sm": "0.5rem";
4197
- readonly "--spacing-md": "1rem";
4198
- readonly "--spacing-lg": "1.5rem";
4199
- readonly "--spacing-xl": "2rem";
4200
- readonly "--spacing-2xl": "3rem";
4201
- readonly "--spacing-3xl": "4rem";
4202
- readonly "--spacing-4xl": "5rem";
4203
- readonly "--spacing-5xl": "6rem";
4204
- readonly "--spacing-none": "0";
4205
- readonly "--layout-section-xs": "1.5rem";
4206
- readonly "--layout-section-sm": "2rem";
4207
- readonly "--layout-section-md": "3rem";
4208
- readonly "--layout-section-lg": "4rem";
4209
- readonly "--layout-section-xl": "5rem";
4210
- readonly "--layout-section-2xl": "6rem";
4211
- readonly "--layout-container-xs": "0.5rem";
4212
- readonly "--layout-container-sm": "1rem";
4213
- readonly "--layout-container-md": "1.5rem";
4214
- readonly "--layout-container-lg": "2rem";
4215
- readonly "--layout-container-xl": "3rem";
4216
- readonly "--layout-grid-xs": "0.5rem";
4217
- readonly "--layout-grid-sm": "1rem";
4218
- readonly "--layout-grid-md": "1.5rem";
4219
- readonly "--layout-grid-lg": "2rem";
4220
- readonly "--layout-grid-xl": "3rem";
4221
- readonly "--layout-stack-xs": "0.25rem";
4222
- readonly "--layout-stack-sm": "0.5rem";
4223
- readonly "--layout-stack-md": "1rem";
4224
- readonly "--layout-stack-lg": "1.5rem";
4225
- readonly "--layout-stack-xl": "2rem";
4226
- readonly "--layout-component-xs": "0.25rem";
4227
- readonly "--layout-component-sm": "0.5rem";
4228
- readonly "--layout-component-md": "1rem";
4229
- readonly "--layout-component-lg": "1.5rem";
4230
- readonly "--layout-component-xl": "2rem";
4231
- readonly "--font-sans": string;
4232
- readonly "--font-satoshi": string;
4233
- readonly "--font-display": string;
4234
- readonly "--font-serif": string;
4235
- readonly "--font-mono": string;
4236
- readonly "--font-size-xs": "clamp(0.75rem, 0.7rem + 0.125vw, 0.875rem)";
4237
- readonly "--font-size-sm": "clamp(0.875rem, 0.8rem + 0.25vw, 1rem)";
4238
- readonly "--font-size-base": "clamp(1rem, 0.95rem + 0.25vw, 1.125rem)";
4239
- readonly "--font-size-lg": "clamp(1.125rem, 1rem + 0.5vw, 1.25rem)";
4240
- readonly "--font-size-xl": "clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem)";
4241
- readonly "--font-size-2xl": "clamp(1.5rem, 1.25rem + 1.25vw, 2rem)";
4242
- readonly "--font-size-3xl": "clamp(1.875rem, 1.5rem + 1.875vw, 2.5rem)";
4243
- readonly "--font-size-4xl": "clamp(2.25rem, 1.75rem + 2.5vw, 3rem)";
4244
- readonly "--font-size-5xl": "clamp(3rem, 2rem + 5vw, 4rem)";
4245
- readonly "--font-size-6xl": "clamp(3.75rem, 2.5rem + 6.25vw, 5rem)";
4246
- readonly "--font-weight-thin": "100";
4247
- readonly "--font-weight-extralight": "200";
4248
- readonly "--font-weight-light": "300";
4249
- readonly "--font-weight-normal": "400";
4250
- readonly "--font-weight-medium": "500";
4251
- readonly "--font-weight-semibold": "600";
4252
- readonly "--font-weight-bold": "700";
4253
- readonly "--font-weight-extrabold": "800";
4254
- readonly "--font-weight-black": "900";
4255
- readonly "--line-height-none": "1";
4256
- readonly "--line-height-tight": "1.25";
4257
- readonly "--line-height-snug": "1.375";
4258
- readonly "--line-height-normal": "1.5";
4259
- readonly "--line-height-relaxed": "1.625";
4260
- readonly "--line-height-loose": "2";
4261
- readonly "--letter-spacing-tighter": "-0.05em";
4262
- readonly "--letter-spacing-tight": "-0.025em";
4263
- readonly "--letter-spacing-normal": "0em";
4264
- readonly "--letter-spacing-wide": "0.025em";
4265
- readonly "--letter-spacing-wider": "0.05em";
4266
- readonly "--letter-spacing-widest": "0.1em";
4267
- readonly "--tm-border-width-none": "0";
4268
- readonly "--tm-border-width-thin": "1px";
4269
- readonly "--tm-border-width-default": "2px";
4270
- readonly "--tm-border-width-thick": "4px";
4271
- readonly "--primary-50": string;
4272
- readonly "--primary-100": string;
4273
- readonly "--primary-200": string;
4274
- readonly "--primary-300": string;
4275
- readonly "--primary-400": string;
4276
- readonly "--primary-500": string;
4277
- readonly "--primary-600": string;
4278
- readonly "--primary-700": string;
4279
- readonly "--primary-800": string;
4280
- readonly "--primary-900": string;
4281
- readonly "--primary-950": string;
4282
- readonly "--accent-50": string;
4283
- readonly "--accent-100": string;
4284
- readonly "--accent-200": string;
4285
- readonly "--accent-300": string;
4286
- readonly "--accent-400": string;
4287
- readonly "--accent-500": string;
4288
- readonly "--accent-600": string;
4289
- readonly "--accent-700": string;
4290
- readonly "--accent-800": string;
4291
- readonly "--accent-900": string;
4292
- readonly "--accent-950": string;
4293
- readonly "--secondary-50": string;
4294
- readonly "--secondary-100": string;
4295
- readonly "--secondary-200": string;
4296
- readonly "--secondary-300": string;
4297
- readonly "--secondary-400": string;
4298
- readonly "--secondary-500": string;
4299
- readonly "--secondary-600": string;
4300
- readonly "--secondary-700": string;
4301
- readonly "--secondary-800": string;
4302
- readonly "--secondary-900": string;
4303
- readonly "--secondary-950": string;
4304
- };
4305
- /**
4306
- * Generate CSS string from CSS variables
4307
- * Converts CSS variables object to CSS :root block
4308
- */
4309
- declare function generateCSSVariablesCSS(variables: Record<string, string>): string;
4310
- /**
4311
- * All CSS Variables as CSS string
4312
- * Ready for injection into CSS files
4313
- */
4314
- declare const allCSSVariablesCSS: string;
4315
- /**
4316
- * Token System Summary
4317
- * Lists all token systems and their variable counts
4318
- */
4319
- declare const tokenSystemSummary: {
4320
- readonly colors: number;
4321
- readonly borderWidth: number;
4322
- readonly typography: number;
4323
- readonly spacing: number;
4324
- readonly shadows: number;
4325
- readonly radius: number;
4326
- readonly motion: number;
4327
- readonly zIndex: number;
4328
- readonly total: number;
4329
- };
4330
-
4331
- /**
4332
- * Border Width System Tokens
4333
- *
4334
- * Canonical border thickness scale for token-driven UI surfaces.
4335
- */
4336
- /**
4337
- * Border Width Scale
4338
- */
4339
- declare const borderWidth: {
4340
- readonly none: "0";
4341
- readonly thin: "1px";
4342
- readonly default: "2px";
4343
- readonly thick: "4px";
4344
- };
4345
- /**
4346
- * CSS Custom Properties for Border Width
4347
- * These are injected into runtime theme variables.
4348
- */
4349
- declare const borderWidthCSSVariables: {
4350
- readonly "--tm-border-width-none": "0";
4351
- readonly "--tm-border-width-thin": "1px";
4352
- readonly "--tm-border-width-default": "2px";
4353
- readonly "--tm-border-width-thick": "4px";
4354
- };
4355
- /**
4356
- * Type Exports
4357
- */
4358
- type BorderWidthToken = keyof typeof borderWidth;
4359
- type BorderWidthValue = (typeof borderWidth)[BorderWidthToken];
4360
-
4361
- /**
4362
- * Z-Index System Tokens
4363
- *
4364
- * Canonical stacking layers for overlays and positioned UI.
4365
- * Values use a 1000+ scale to avoid collisions with app-level local stacking contexts.
4366
- */
4367
- /**
4368
- * Z-Index Scale
4369
- * Layer ordering: base < dropdown < sticky < overlay < modal < toast < tooltip
4370
- */
4371
- declare const zIndex: {
4372
- readonly base: 0;
4373
- readonly dropdown: 1000;
4374
- readonly sticky: 1100;
4375
- readonly overlay: 1200;
4376
- readonly modal: 1300;
4377
- readonly toast: 1400;
4378
- readonly tooltip: 1500;
4379
- };
4380
- /**
4381
- * CSS Custom Properties for Z-Index
4382
- * These are injected into runtime theme variables.
4383
- */
4384
- declare const zIndexCSSVariables: {
4385
- readonly "--tm-z-base": "0";
4386
- readonly "--tm-z-dropdown": "1000";
4387
- readonly "--tm-z-sticky": "1100";
4388
- readonly "--tm-z-overlay": "1200";
4389
- readonly "--tm-z-modal": "1300";
4390
- readonly "--tm-z-toast": "1400";
4391
- readonly "--tm-z-tooltip": "1500";
4392
- };
4393
- /**
4394
- * Type Exports
4395
- */
4396
- type ZIndexLayer = keyof typeof zIndex;
4397
- type ZIndexValue = (typeof zIndex)[ZIndexLayer];
4398
-
4399
- /**
4400
- * Theme Tokens
4401
- *
4402
- * Central export for UI color tokens.
4403
- * Provides UI_COLORS object for use in components and theme system.
4404
- */
4405
- /**
4406
- * UI Color Tokens
4407
- * Complete color token system for Tenerife UI
4408
- * All values are token-based, not raw Tailwind colors
4409
- */
4410
- declare const UI_COLORS: {
4411
- readonly background: "hsl(var(--tm-surface-base))";
4412
- readonly foreground: "hsl(var(--tm-text-primary))";
4413
- readonly card: {
4414
- readonly DEFAULT: "hsl(var(--tm-surface-raised))";
4415
- readonly foreground: "hsl(var(--tm-text-primary))";
4416
- };
4417
- readonly popover: {
4418
- readonly DEFAULT: "hsl(var(--tm-surface-overlay))";
4419
- readonly foreground: "hsl(var(--tm-text-primary))";
4420
- };
4421
- readonly primary: {
4422
- readonly DEFAULT: "hsl(var(--tm-primary))";
4423
- readonly foreground: "hsl(var(--tm-primary-foreground))";
4424
- readonly 50: "hsl(var(--primary-50))";
4425
- readonly 100: "hsl(var(--primary-100))";
4426
- readonly 200: "hsl(var(--primary-200))";
4427
- readonly 300: "hsl(var(--primary-300))";
4428
- readonly 400: "hsl(var(--primary-400))";
4429
- readonly 500: "hsl(var(--primary-500))";
4430
- readonly 600: "hsl(var(--primary-600))";
4431
- readonly 700: "hsl(var(--primary-700))";
4432
- readonly 800: "hsl(var(--primary-800))";
4433
- readonly 900: "hsl(var(--primary-900))";
4434
- readonly 950: "hsl(var(--primary-950))";
4435
- };
4436
- readonly secondary: {
4437
- readonly DEFAULT: "hsl(var(--tm-secondary))";
4438
- readonly foreground: "hsl(var(--tm-secondary-foreground))";
4439
- readonly 50: "hsl(var(--secondary-50))";
4440
- readonly 100: "hsl(var(--secondary-100))";
4441
- readonly 200: "hsl(var(--secondary-200))";
4442
- readonly 300: "hsl(var(--secondary-300))";
4443
- readonly 400: "hsl(var(--secondary-400))";
4444
- readonly 500: "hsl(var(--secondary-500))";
4445
- readonly 600: "hsl(var(--secondary-600))";
4446
- readonly 700: "hsl(var(--secondary-700))";
4447
- readonly 800: "hsl(var(--secondary-800))";
4448
- readonly 900: "hsl(var(--secondary-900))";
4449
- readonly 950: "hsl(var(--secondary-950))";
4450
- };
4451
- readonly accent: {
4452
- readonly DEFAULT: "hsl(var(--tm-accent))";
4453
- readonly foreground: "hsl(var(--tm-accent-foreground))";
4454
- readonly 50: "hsl(var(--accent-50))";
4455
- readonly 100: "hsl(var(--accent-100))";
4456
- readonly 200: "hsl(var(--accent-200))";
4457
- readonly 300: "hsl(var(--accent-300))";
4458
- readonly 400: "hsl(var(--accent-400))";
4459
- readonly 500: "hsl(var(--accent-500))";
4460
- readonly 600: "hsl(var(--accent-600))";
4461
- readonly 700: "hsl(var(--accent-700))";
4462
- readonly 800: "hsl(var(--accent-800))";
4463
- readonly 900: "hsl(var(--accent-900))";
4464
- readonly 950: "hsl(var(--accent-950))";
4465
- };
4466
- readonly muted: {
4467
- readonly DEFAULT: "hsl(var(--tm-muted))";
4468
- readonly foreground: "hsl(var(--tm-muted-foreground))";
4469
- };
4470
- readonly disabled: {
4471
- readonly DEFAULT: "hsl(var(--tm-disabled))";
4472
- readonly foreground: "hsl(var(--tm-disabled-foreground))";
4473
- };
4474
- readonly destructive: {
4475
- readonly DEFAULT: "hsl(var(--tm-destructive))";
4476
- readonly foreground: "hsl(var(--tm-destructive-foreground))";
4477
- };
4478
- readonly success: {
4479
- readonly DEFAULT: "hsl(var(--tm-status-success))";
4480
- readonly foreground: "hsl(var(--tm-status-success-foreground))";
4481
- };
4482
- readonly error: {
4483
- readonly DEFAULT: "hsl(var(--tm-status-error))";
4484
- readonly foreground: "hsl(var(--tm-status-error-foreground))";
4485
- };
4486
- readonly warning: {
4487
- readonly DEFAULT: "hsl(var(--tm-status-warning))";
4488
- readonly foreground: "hsl(var(--tm-status-warning-foreground))";
4489
- };
4490
- readonly info: {
4491
- readonly DEFAULT: "hsl(var(--tm-status-info))";
4492
- readonly foreground: "hsl(var(--tm-status-info-foreground))";
4493
- };
4494
- readonly surface: {
4495
- readonly base: "hsl(var(--tm-surface-base))";
4496
- readonly elevated1: "hsl(var(--tm-surface-raised))";
4497
- readonly elevated2: "hsl(var(--tm-surface-raised))";
4498
- readonly elevated3: "hsl(var(--tm-surface-raised))";
4499
- readonly overlay: "hsl(var(--tm-surface-overlay))";
4500
- readonly glass: "hsl(var(--tm-surface-overlay))";
4501
- };
4502
- readonly text: {
4503
- readonly primary: "hsl(var(--tm-text-primary))";
4504
- readonly secondary: "hsl(var(--tm-text-secondary))";
4505
- readonly tertiary: "hsl(var(--tm-text-muted))";
4506
- readonly muted: "hsl(var(--tm-text-muted))";
4507
- readonly destructive: "hsl(var(--tm-destructive))";
4508
- readonly accent: "hsl(var(--tm-accent))";
4509
- readonly inverse: "hsl(var(--tm-text-inverse))";
4510
- };
4511
- readonly border: "hsl(var(--tm-border-default))";
4512
- readonly input: "hsl(var(--tm-border-default))";
4513
- readonly ring: "hsl(var(--tm-focus-ring))";
4514
- readonly chart: {
4515
- readonly 1: "hsl(var(--chart-1))";
4516
- readonly 2: "hsl(var(--chart-2))";
4517
- readonly 3: "hsl(var(--chart-3))";
4518
- readonly 4: "hsl(var(--chart-4))";
4519
- readonly 5: "hsl(var(--chart-5))";
4520
- };
4521
- };
4522
-
4523
- export { type NavigationState as $, ALERT_TOKENS as A, BUTTON_TOKENS as B, CARD_TOKENS as C, DATA_TOKENS as D, type EmptyStateIconSize as E, type MenuContentRadius as F, type MenuContentShadow as G, type MenuIndicatorOffset as H, type IconColor as I, type MenuIndicatorSize as J, type MenuItemGap as K, type MenuItemHeight as L, MENU_TOKENS as M, type MenuItemPadding as N, type MenuItemRadius as O, type PanelTone as P, type MenuLabelPadding as Q, type MenuSeparatorMargin as R, MOTION_TOKENS as S, type MotionAnimation as T, type MotionTransitionPreset as U, NAVIGATION_TOKENS as V, type NavigationItemPadding as W, type NavigationListGap as X, type NavigationRadius as Y, type NavigationShadow as Z, type NavigationSize as _, type IconStroke as a, zIndexCSSVariables as a$, NOTIFICATION_TOKENS as a0, type NotificationPanelWidth as a1, type NotificationVariant as a2, OVERLAY_TOKENS as a3, type OverlayBackdropVariant as a4, type OverlayModalSize as a5, PANEL_TOKENS as a6, type PanelPadding as a7, type PanelRadius as a8, type PanelShadow as a9, type TableGap as aA, type TableHeaderPadding as aB, type TableRowHeight as aC, type TableShadow as aD, TEXT_TOKENS as aE, type TextFontSize as aF, type TextFontWeight as aG, type TextLetterSpacing as aH, type TextLineHeight as aI, TOAST_TOKENS as aJ, type ToastVariant as aK, TOOLTIP_TOKENS as aL, type TooltipContentRadius as aM, type TooltipContentShadow as aN, ICON_TOKENS as aO, type IconSize as aP, allCSSVariables as aQ, allCSSVariablesCSS as aR, generateCSSVariablesCSS as aS, tokenSystemSummary as aT, type BorderWidthToken as aU, type BorderWidthValue as aV, borderWidth as aW, borderWidthCSSVariables as aX, type ZIndexLayer as aY, type ZIndexValue as aZ, zIndex as a_, POPOVER_TOKENS as aa, type PopoverArrowOffset as ab, type PopoverArrowSize as ac, type PopoverContentPadding as ad, type PopoverContentRadius as ae, type PopoverContentShadow as af, type PopoverContentWidth as ag, RADIO_TOKENS as ah, type RadioSize as ai, type RadioState as aj, type RadioVariant as ak, SECTION_TOKENS as al, type SectionGap as am, type SectionPadding as an, type SkeletonAnimation as ao, type SkeletonBackground as ap, SURFACE_TOKENS as aq, type SurfacePadding as ar, type SurfaceRadius as as, type SurfaceShadow as at, type SurfaceVariant as au, SWITCH_TOKENS as av, type SwitchSize as aw, type SwitchState as ax, type SwitchVariant as ay, type TableCellPadding as az, type ButtonFontSize as b, UI_COLORS as b0, ARTIST_TOKENS as b1, DATA_LIST_TOKENS as b2, DOMAIN_TOKENS as b3, EMPTY_STATE_TOKENS as b4, SIMPLETABLE_TOKENS as b5, TABLE_TOKENS as b6, type ArtistCardFooterBorder as b7, type ArtistCardImageContainer as b8, type ArtistCardImagePlaceholder as b9, type ArtistCardImageSizing as ba, type DomainCardBadge as bb, type DomainCardImage as bc, type DomainCardLayout as bd, type DomainCardMetadata as be, type DomainCardMotion as bf, type DomainCardPriceCapacity as bg, type DomainCardSkeleton as bh, type DomainCardSkeletonContentWidth as bi, type DomainCardSurface as bj, type MotionDuration as bk, type MotionEasing as bl, type MotionTransition as bm, type SkeletonVariant as bn, type ButtonHeight as c, type ButtonPaddingHorizontal as d, type ButtonPaddingVertical as e, type ButtonShadow as f, type CardPadding as g, type CardRadius as h, type CardShadow as i, type CardSize as j, type CardSpacingVertical as k, CHECKBOX_TOKENS as l, type CheckboxSize as m, type CheckboxState as n, type CheckboxVariant as o, type DataListLabelWidth as p, type DataListRowPadding as q, INPUT_TOKENS as r, type InputFontSize as s, type InputHeight as t, type InputPaddingHorizontal as u, type InputPaddingVertical as v, type InputRadius as w, type InputSize as x, type MenuContentMinWidth as y, type MenuContentPadding as z };