@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.
- package/README.md +11 -362
- package/package.json +1 -1
- package/dist/Link-B8gB8LrX.d.cts +0 -78
- package/dist/Link-Dg9GiZzj.d.ts +0 -78
- package/dist/agent-contract/index.d.cts +0 -133
- package/dist/ai/index.d.cts +0 -202
- package/dist/colors-BRUYtnG-.d.cts +0 -298
- package/dist/colors-BRUYtnG-.d.ts +0 -298
- package/dist/engine/index.d.cts +0 -135
- package/dist/extensions/next/index.d.cts +0 -37
- package/dist/index-4rLh47Jk.d.cts +0 -1460
- package/dist/index-B9bPI2VR.d.cts +0 -4523
- package/dist/index-Cgj5md_p.d.ts +0 -4523
- package/dist/index-DzJQZ5GE.d.ts +0 -1460
- package/dist/index.d.cts +0 -11680
- package/dist/preset.d.cts +0 -21
- package/dist/safe-native-DQVUNMW7.d.cts +0 -32
- package/dist/safe-native-DQVUNMW7.d.ts +0 -32
- package/dist/styles.cjs +0 -2
- package/dist/styles.d.cts +0 -2
- package/dist/styles.d.ts +0 -2
- package/dist/styles.mjs +0 -1
- package/dist/theme/index.d.cts +0 -368
- package/dist/tokens/index.d.cts +0 -4
- package/dist/types-BBXB5_Tj.d.ts +0 -407
- package/dist/types-BEG5B5HA.d.cts +0 -138
- package/dist/types-C9zHIyTu.d.ts +0 -80
- package/dist/types-CNgJi1zK.d.ts +0 -138
- package/dist/types-CeNHa-BU.d.cts +0 -12
- package/dist/types-CeNHa-BU.d.ts +0 -12
- package/dist/types-CoqbRddt.d.cts +0 -80
- package/dist/types-kjA4Koki.d.cts +0 -407
- package/dist/typography-BsoBDDcG.d.cts +0 -1216
- package/dist/typography-BsoBDDcG.d.ts +0 -1216
- package/dist/ui-node-union-BNt_iPQO.d.cts +0 -272
- package/dist/ui-node-union-BdALN0FB.d.ts +0 -272
|
@@ -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 };
|