@tantuui/tokens 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +51 -1
- package/dist/index.d.ts +51 -1
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -2
- package/dist/index.mjs.map +1 -1
- package/dist/tailwind-preset.js +14 -1
- package/dist/tokens.css +19 -0
- package/dist/utilities.css +8 -0
- package/package.json +3 -2
package/dist/index.d.mts
CHANGED
|
@@ -363,6 +363,7 @@ declare const fontFamily: {
|
|
|
363
363
|
* Base: 16px = 1rem
|
|
364
364
|
*/
|
|
365
365
|
declare const fontSize: {
|
|
366
|
+
readonly "3xs": "0.5rem";
|
|
366
367
|
readonly "2xs": "0.625rem";
|
|
367
368
|
readonly xs: "0.75rem";
|
|
368
369
|
readonly sm: "0.875rem";
|
|
@@ -395,12 +396,19 @@ declare const lineHeight: {
|
|
|
395
396
|
readonly relaxed: "1.625";
|
|
396
397
|
readonly loose: "2";
|
|
397
398
|
readonly "3": "0.75rem";
|
|
399
|
+
readonly "3.5": "0.875rem";
|
|
398
400
|
readonly "4": "1rem";
|
|
401
|
+
readonly "4.5": "1.125rem";
|
|
399
402
|
readonly "5": "1.25rem";
|
|
403
|
+
readonly "5.5": "1.375rem";
|
|
400
404
|
readonly "6": "1.5rem";
|
|
405
|
+
readonly "6.5": "1.625rem";
|
|
401
406
|
readonly "7": "1.75rem";
|
|
407
|
+
readonly "7.5": "1.875rem";
|
|
402
408
|
readonly "8": "2rem";
|
|
409
|
+
readonly "8.5": "2.125rem";
|
|
403
410
|
readonly "9": "2.25rem";
|
|
411
|
+
readonly "9.5": "2.375rem";
|
|
404
412
|
readonly "10": "2.5rem";
|
|
405
413
|
};
|
|
406
414
|
declare const letterSpacing: {
|
|
@@ -418,6 +426,7 @@ declare const typography: {
|
|
|
418
426
|
readonly mono: "'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace";
|
|
419
427
|
};
|
|
420
428
|
readonly fontSize: {
|
|
429
|
+
readonly "3xs": "0.5rem";
|
|
421
430
|
readonly "2xs": "0.625rem";
|
|
422
431
|
readonly xs: "0.75rem";
|
|
423
432
|
readonly sm: "0.875rem";
|
|
@@ -450,12 +459,19 @@ declare const typography: {
|
|
|
450
459
|
readonly relaxed: "1.625";
|
|
451
460
|
readonly loose: "2";
|
|
452
461
|
readonly "3": "0.75rem";
|
|
462
|
+
readonly "3.5": "0.875rem";
|
|
453
463
|
readonly "4": "1rem";
|
|
464
|
+
readonly "4.5": "1.125rem";
|
|
454
465
|
readonly "5": "1.25rem";
|
|
466
|
+
readonly "5.5": "1.375rem";
|
|
455
467
|
readonly "6": "1.5rem";
|
|
468
|
+
readonly "6.5": "1.625rem";
|
|
456
469
|
readonly "7": "1.75rem";
|
|
470
|
+
readonly "7.5": "1.875rem";
|
|
457
471
|
readonly "8": "2rem";
|
|
472
|
+
readonly "8.5": "2.125rem";
|
|
458
473
|
readonly "9": "2.25rem";
|
|
474
|
+
readonly "9.5": "2.375rem";
|
|
459
475
|
readonly "10": "2.5rem";
|
|
460
476
|
};
|
|
461
477
|
readonly letterSpacing: {
|
|
@@ -725,6 +741,22 @@ declare const opacity: {
|
|
|
725
741
|
};
|
|
726
742
|
type OpacityTokens = typeof opacity;
|
|
727
743
|
|
|
744
|
+
/**
|
|
745
|
+
* Sizing tokens — fixed heights for interactive controls
|
|
746
|
+
* CSS custom property prefix: --tui-size-*
|
|
747
|
+
*/
|
|
748
|
+
declare const sizing: {
|
|
749
|
+
readonly xxs: "0.875rem";
|
|
750
|
+
readonly xs1: "1rem";
|
|
751
|
+
readonly xs2: "1.25rem";
|
|
752
|
+
readonly xs: "1.5rem";
|
|
753
|
+
readonly sm: "2rem";
|
|
754
|
+
readonly md: "2.25rem";
|
|
755
|
+
readonly lg: "2.625rem";
|
|
756
|
+
readonly xl: "2.875rem";
|
|
757
|
+
};
|
|
758
|
+
type SizingTokens = typeof sizing;
|
|
759
|
+
|
|
728
760
|
/**
|
|
729
761
|
* CSS variable generator
|
|
730
762
|
*
|
|
@@ -1104,6 +1136,7 @@ declare const tokens: {
|
|
|
1104
1136
|
readonly mono: "'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace";
|
|
1105
1137
|
};
|
|
1106
1138
|
readonly fontSize: {
|
|
1139
|
+
readonly "3xs": "0.5rem";
|
|
1107
1140
|
readonly "2xs": "0.625rem";
|
|
1108
1141
|
readonly xs: "0.75rem";
|
|
1109
1142
|
readonly sm: "0.875rem";
|
|
@@ -1136,12 +1169,19 @@ declare const tokens: {
|
|
|
1136
1169
|
readonly relaxed: "1.625";
|
|
1137
1170
|
readonly loose: "2";
|
|
1138
1171
|
readonly "3": "0.75rem";
|
|
1172
|
+
readonly "3.5": "0.875rem";
|
|
1139
1173
|
readonly "4": "1rem";
|
|
1174
|
+
readonly "4.5": "1.125rem";
|
|
1140
1175
|
readonly "5": "1.25rem";
|
|
1176
|
+
readonly "5.5": "1.375rem";
|
|
1141
1177
|
readonly "6": "1.5rem";
|
|
1178
|
+
readonly "6.5": "1.625rem";
|
|
1142
1179
|
readonly "7": "1.75rem";
|
|
1180
|
+
readonly "7.5": "1.875rem";
|
|
1143
1181
|
readonly "8": "2rem";
|
|
1182
|
+
readonly "8.5": "2.125rem";
|
|
1144
1183
|
readonly "9": "2.25rem";
|
|
1184
|
+
readonly "9.5": "2.375rem";
|
|
1145
1185
|
readonly "10": "2.5rem";
|
|
1146
1186
|
};
|
|
1147
1187
|
readonly letterSpacing: {
|
|
@@ -1300,7 +1340,17 @@ declare const tokens: {
|
|
|
1300
1340
|
readonly 95: "0.95";
|
|
1301
1341
|
readonly 100: "1";
|
|
1302
1342
|
};
|
|
1343
|
+
readonly sizing: {
|
|
1344
|
+
readonly xxs: "0.875rem";
|
|
1345
|
+
readonly xs1: "1rem";
|
|
1346
|
+
readonly xs2: "1.25rem";
|
|
1347
|
+
readonly xs: "1.5rem";
|
|
1348
|
+
readonly sm: "2rem";
|
|
1349
|
+
readonly md: "2.25rem";
|
|
1350
|
+
readonly lg: "2.625rem";
|
|
1351
|
+
readonly xl: "2.875rem";
|
|
1352
|
+
};
|
|
1303
1353
|
};
|
|
1304
1354
|
type Tokens = typeof tokens;
|
|
1305
1355
|
|
|
1306
|
-
export { type AnimationTokens, type BorderTokens, type BreakpointTokens, type ColorTokens, type OpacityTokens, type RadiusTokens, type ShadowTokens, type SpacingTokens, type Tokens, type TypographyTokens, type ZIndexTokens, animation, border, borderStyle, borderWidth, breakpoint, color, duration, easing, flattenTokens, fontFamily, fontSize, fontWeight, generateCSSCategory, letterSpacing, lineHeight, opacity, radius, shadow, spacing, toCSSRoot, tokens, typography, zIndex };
|
|
1356
|
+
export { type AnimationTokens, type BorderTokens, type BreakpointTokens, type ColorTokens, type OpacityTokens, type RadiusTokens, type ShadowTokens, type SizingTokens, type SpacingTokens, type Tokens, type TypographyTokens, type ZIndexTokens, animation, border, borderStyle, borderWidth, breakpoint, color, duration, easing, flattenTokens, fontFamily, fontSize, fontWeight, generateCSSCategory, letterSpacing, lineHeight, opacity, radius, shadow, sizing, spacing, toCSSRoot, tokens, typography, zIndex };
|
package/dist/index.d.ts
CHANGED
|
@@ -363,6 +363,7 @@ declare const fontFamily: {
|
|
|
363
363
|
* Base: 16px = 1rem
|
|
364
364
|
*/
|
|
365
365
|
declare const fontSize: {
|
|
366
|
+
readonly "3xs": "0.5rem";
|
|
366
367
|
readonly "2xs": "0.625rem";
|
|
367
368
|
readonly xs: "0.75rem";
|
|
368
369
|
readonly sm: "0.875rem";
|
|
@@ -395,12 +396,19 @@ declare const lineHeight: {
|
|
|
395
396
|
readonly relaxed: "1.625";
|
|
396
397
|
readonly loose: "2";
|
|
397
398
|
readonly "3": "0.75rem";
|
|
399
|
+
readonly "3.5": "0.875rem";
|
|
398
400
|
readonly "4": "1rem";
|
|
401
|
+
readonly "4.5": "1.125rem";
|
|
399
402
|
readonly "5": "1.25rem";
|
|
403
|
+
readonly "5.5": "1.375rem";
|
|
400
404
|
readonly "6": "1.5rem";
|
|
405
|
+
readonly "6.5": "1.625rem";
|
|
401
406
|
readonly "7": "1.75rem";
|
|
407
|
+
readonly "7.5": "1.875rem";
|
|
402
408
|
readonly "8": "2rem";
|
|
409
|
+
readonly "8.5": "2.125rem";
|
|
403
410
|
readonly "9": "2.25rem";
|
|
411
|
+
readonly "9.5": "2.375rem";
|
|
404
412
|
readonly "10": "2.5rem";
|
|
405
413
|
};
|
|
406
414
|
declare const letterSpacing: {
|
|
@@ -418,6 +426,7 @@ declare const typography: {
|
|
|
418
426
|
readonly mono: "'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace";
|
|
419
427
|
};
|
|
420
428
|
readonly fontSize: {
|
|
429
|
+
readonly "3xs": "0.5rem";
|
|
421
430
|
readonly "2xs": "0.625rem";
|
|
422
431
|
readonly xs: "0.75rem";
|
|
423
432
|
readonly sm: "0.875rem";
|
|
@@ -450,12 +459,19 @@ declare const typography: {
|
|
|
450
459
|
readonly relaxed: "1.625";
|
|
451
460
|
readonly loose: "2";
|
|
452
461
|
readonly "3": "0.75rem";
|
|
462
|
+
readonly "3.5": "0.875rem";
|
|
453
463
|
readonly "4": "1rem";
|
|
464
|
+
readonly "4.5": "1.125rem";
|
|
454
465
|
readonly "5": "1.25rem";
|
|
466
|
+
readonly "5.5": "1.375rem";
|
|
455
467
|
readonly "6": "1.5rem";
|
|
468
|
+
readonly "6.5": "1.625rem";
|
|
456
469
|
readonly "7": "1.75rem";
|
|
470
|
+
readonly "7.5": "1.875rem";
|
|
457
471
|
readonly "8": "2rem";
|
|
472
|
+
readonly "8.5": "2.125rem";
|
|
458
473
|
readonly "9": "2.25rem";
|
|
474
|
+
readonly "9.5": "2.375rem";
|
|
459
475
|
readonly "10": "2.5rem";
|
|
460
476
|
};
|
|
461
477
|
readonly letterSpacing: {
|
|
@@ -725,6 +741,22 @@ declare const opacity: {
|
|
|
725
741
|
};
|
|
726
742
|
type OpacityTokens = typeof opacity;
|
|
727
743
|
|
|
744
|
+
/**
|
|
745
|
+
* Sizing tokens — fixed heights for interactive controls
|
|
746
|
+
* CSS custom property prefix: --tui-size-*
|
|
747
|
+
*/
|
|
748
|
+
declare const sizing: {
|
|
749
|
+
readonly xxs: "0.875rem";
|
|
750
|
+
readonly xs1: "1rem";
|
|
751
|
+
readonly xs2: "1.25rem";
|
|
752
|
+
readonly xs: "1.5rem";
|
|
753
|
+
readonly sm: "2rem";
|
|
754
|
+
readonly md: "2.25rem";
|
|
755
|
+
readonly lg: "2.625rem";
|
|
756
|
+
readonly xl: "2.875rem";
|
|
757
|
+
};
|
|
758
|
+
type SizingTokens = typeof sizing;
|
|
759
|
+
|
|
728
760
|
/**
|
|
729
761
|
* CSS variable generator
|
|
730
762
|
*
|
|
@@ -1104,6 +1136,7 @@ declare const tokens: {
|
|
|
1104
1136
|
readonly mono: "'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace";
|
|
1105
1137
|
};
|
|
1106
1138
|
readonly fontSize: {
|
|
1139
|
+
readonly "3xs": "0.5rem";
|
|
1107
1140
|
readonly "2xs": "0.625rem";
|
|
1108
1141
|
readonly xs: "0.75rem";
|
|
1109
1142
|
readonly sm: "0.875rem";
|
|
@@ -1136,12 +1169,19 @@ declare const tokens: {
|
|
|
1136
1169
|
readonly relaxed: "1.625";
|
|
1137
1170
|
readonly loose: "2";
|
|
1138
1171
|
readonly "3": "0.75rem";
|
|
1172
|
+
readonly "3.5": "0.875rem";
|
|
1139
1173
|
readonly "4": "1rem";
|
|
1174
|
+
readonly "4.5": "1.125rem";
|
|
1140
1175
|
readonly "5": "1.25rem";
|
|
1176
|
+
readonly "5.5": "1.375rem";
|
|
1141
1177
|
readonly "6": "1.5rem";
|
|
1178
|
+
readonly "6.5": "1.625rem";
|
|
1142
1179
|
readonly "7": "1.75rem";
|
|
1180
|
+
readonly "7.5": "1.875rem";
|
|
1143
1181
|
readonly "8": "2rem";
|
|
1182
|
+
readonly "8.5": "2.125rem";
|
|
1144
1183
|
readonly "9": "2.25rem";
|
|
1184
|
+
readonly "9.5": "2.375rem";
|
|
1145
1185
|
readonly "10": "2.5rem";
|
|
1146
1186
|
};
|
|
1147
1187
|
readonly letterSpacing: {
|
|
@@ -1300,7 +1340,17 @@ declare const tokens: {
|
|
|
1300
1340
|
readonly 95: "0.95";
|
|
1301
1341
|
readonly 100: "1";
|
|
1302
1342
|
};
|
|
1343
|
+
readonly sizing: {
|
|
1344
|
+
readonly xxs: "0.875rem";
|
|
1345
|
+
readonly xs1: "1rem";
|
|
1346
|
+
readonly xs2: "1.25rem";
|
|
1347
|
+
readonly xs: "1.5rem";
|
|
1348
|
+
readonly sm: "2rem";
|
|
1349
|
+
readonly md: "2.25rem";
|
|
1350
|
+
readonly lg: "2.625rem";
|
|
1351
|
+
readonly xl: "2.875rem";
|
|
1352
|
+
};
|
|
1303
1353
|
};
|
|
1304
1354
|
type Tokens = typeof tokens;
|
|
1305
1355
|
|
|
1306
|
-
export { type AnimationTokens, type BorderTokens, type BreakpointTokens, type ColorTokens, type OpacityTokens, type RadiusTokens, type ShadowTokens, type SpacingTokens, type Tokens, type TypographyTokens, type ZIndexTokens, animation, border, borderStyle, borderWidth, breakpoint, color, duration, easing, flattenTokens, fontFamily, fontSize, fontWeight, generateCSSCategory, letterSpacing, lineHeight, opacity, radius, shadow, spacing, toCSSRoot, tokens, typography, zIndex };
|
|
1356
|
+
export { type AnimationTokens, type BorderTokens, type BreakpointTokens, type ColorTokens, type OpacityTokens, type RadiusTokens, type ShadowTokens, type SizingTokens, type SpacingTokens, type Tokens, type TypographyTokens, type ZIndexTokens, animation, border, borderStyle, borderWidth, breakpoint, color, duration, easing, flattenTokens, fontFamily, fontSize, fontWeight, generateCSSCategory, letterSpacing, lineHeight, opacity, radius, shadow, sizing, spacing, toCSSRoot, tokens, typography, zIndex };
|
package/dist/index.js
CHANGED
|
@@ -430,6 +430,8 @@ var fontFamily = {
|
|
|
430
430
|
mono: "'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace"
|
|
431
431
|
};
|
|
432
432
|
var fontSize = {
|
|
433
|
+
"3xs": "0.5rem",
|
|
434
|
+
// 8px
|
|
433
435
|
"2xs": "0.625rem",
|
|
434
436
|
// 10px
|
|
435
437
|
xs: "0.75rem",
|
|
@@ -474,12 +476,19 @@ var lineHeight = {
|
|
|
474
476
|
relaxed: "1.625",
|
|
475
477
|
loose: "2",
|
|
476
478
|
"3": "0.75rem",
|
|
479
|
+
"3.5": "0.875rem",
|
|
477
480
|
"4": "1rem",
|
|
481
|
+
"4.5": "1.125rem",
|
|
478
482
|
"5": "1.25rem",
|
|
483
|
+
"5.5": "1.375rem",
|
|
479
484
|
"6": "1.5rem",
|
|
485
|
+
"6.5": "1.625rem",
|
|
480
486
|
"7": "1.75rem",
|
|
487
|
+
"7.5": "1.875rem",
|
|
481
488
|
"8": "2rem",
|
|
489
|
+
"8.5": "2.125rem",
|
|
482
490
|
"9": "2.25rem",
|
|
491
|
+
"9.5": "2.375rem",
|
|
483
492
|
"10": "2.5rem"
|
|
484
493
|
};
|
|
485
494
|
var letterSpacing = {
|
|
@@ -707,6 +716,26 @@ var opacity = {
|
|
|
707
716
|
100: "1"
|
|
708
717
|
};
|
|
709
718
|
|
|
719
|
+
// src/tokens/sizing.ts
|
|
720
|
+
var sizing = {
|
|
721
|
+
xxs: "0.875rem",
|
|
722
|
+
// 14px
|
|
723
|
+
xs1: "1rem",
|
|
724
|
+
// 16px
|
|
725
|
+
xs2: "1.25rem",
|
|
726
|
+
// 20px
|
|
727
|
+
xs: "1.5rem",
|
|
728
|
+
// 24px
|
|
729
|
+
sm: "2rem",
|
|
730
|
+
// 32px
|
|
731
|
+
md: "2.25rem",
|
|
732
|
+
// 36px
|
|
733
|
+
lg: "2.625rem",
|
|
734
|
+
// 42px
|
|
735
|
+
xl: "2.875rem"
|
|
736
|
+
// 46px
|
|
737
|
+
};
|
|
738
|
+
|
|
710
739
|
// src/css-generator.ts
|
|
711
740
|
function toKebab(str) {
|
|
712
741
|
return str.replace(/\./g, "_").replace(/([a-z])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").replace(/([a-zA-Z])(\d)/g, "$1-$2").toLowerCase();
|
|
@@ -748,7 +777,8 @@ var tokens = {
|
|
|
748
777
|
zIndex,
|
|
749
778
|
animation,
|
|
750
779
|
breakpoint,
|
|
751
|
-
opacity
|
|
780
|
+
opacity,
|
|
781
|
+
sizing
|
|
752
782
|
};
|
|
753
783
|
|
|
754
784
|
exports.animation = animation;
|
|
@@ -769,6 +799,7 @@ exports.lineHeight = lineHeight;
|
|
|
769
799
|
exports.opacity = opacity;
|
|
770
800
|
exports.radius = radius;
|
|
771
801
|
exports.shadow = shadow;
|
|
802
|
+
exports.sizing = sizing;
|
|
772
803
|
exports.spacing = spacing;
|
|
773
804
|
exports.toCSSRoot = toCSSRoot;
|
|
774
805
|
exports.tokens = tokens;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tokens/color.ts","../src/tokens/spacing.ts","../src/tokens/typography.ts","../src/tokens/radius.ts","../src/tokens/shadow.ts","../src/tokens/border.ts","../src/tokens/zindex.ts","../src/tokens/animation.ts","../src/tokens/breakpoint.ts","../src/tokens/opacity.ts","../src/css-generator.ts","../src/index.ts"],"names":["tokens"],"mappings":";;;AAQO,IAAM,KAAA,GAAQ;AAAA;AAAA,EAGnB,SAAA,EAAW;AAAA;AAAA,IAET,KAAA,EAAO,SAAA;AAAA,IACP,KAAA,EAAO,SAAA;AAAA;AAAA,IAGP,YAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,iBAAA,EAAmB,SAAA;AAAA;AAAA;AAAA,IAGnB,YAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,iBAAA,EAAmB,SAAA;AAAA;AAAA;AAAA,IAGnB,WAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,gBAAA,EAAkB,SAAA;AAAA;AAAA;AAAA,IAGlB,WAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,gBAAA,EAAkB,SAAA;AAAA;AAAA;AAAA,IAGlB,aAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,kBAAA,EAAoB,SAAA;AAAA;AAAA;AAAA,IAGpB,WAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,gBAAA,EAAkB,SAAA;AAAA;AAAA;AAAA,IAGlB,WAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,YAAA,EAAc,SAAA;AAAA,IACd,gBAAA,EAAkB,SAAA;AAAA;AAAA;AAAA,IAGlB,YAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,aAAA,EAAe,SAAA;AAAA,IACf,iBAAA,EAAmB,SAAA;AAAA;AAAA;AAAA,IAGnB,SAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,cAAA,EAAgB,SAAA;AAAA;AAAA,IAGhB,SAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,cAAA,EAAgB,SAAA;AAAA;AAAA,IAGhB,QAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,aAAA,EAAe,SAAA;AAAA;AAAA,IAGf,MAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,WAAA,EAAa,SAAA;AAAA;AAAA,IAGb,MAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,WAAA,EAAa,SAAA;AAAA;AAAA,IAGb,QAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,aAAA,EAAe,SAAA;AAAA;AAAA,IAGf,MAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,WAAA,EAAa,SAAA;AAAA;AAAA,IAGb,QAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,aAAA,EAAe,SAAA;AAAA;AAAA,IAGf,MAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,WAAA,EAAa,SAAA;AAAA;AAAA,IAGb,MAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,QAAA,EAAU;AAAA;AAAA,IAER,MAAA,EAAc,wBAAA;AAAA,IACd,QAAA,EAAc,iCAAA;AAAA,IACd,OAAA,EAAc,kCAAA;AAAA,IACd,SAAA,EAAc,kCAAA;AAAA;AAAA,IAGd,cAAA,EAAiB,wBAAA;AAAA,IACjB,aAAA,EAAiB,iCAAA;AAAA,IACjB,cAAA,EAAiB,kCAAA;AAAA;AAAA,IAGjB,WAAA,EAAiB,kCAAA;AAAA,IACjB,aAAA,EAAiB,iCAAA;AAAA,IACjB,YAAA,EAAiB,iCAAA;AAAA,IACjB,YAAA,EAAiB,kCAAA;AAAA,IACjB,WAAA,EAAiB,wBAAA;AAAA,IACjB,QAAA,EAAiB,iCAAA;AAAA,IACjB,aAAA,EAAiB,iCAAA;AAAA;AAAA,IAGjB,aAAA,EAAiB,kCAAA;AAAA,IACjB,YAAA,EAAiB,kCAAA;AAAA,IACjB,WAAA,EAAiB,iCAAA;AAAA;AAAA,IAGjB,SAAA,EAAiB,kCAAA;AAAA,IACjB,YAAA,EAAiB,wBAAA;AAAA;AAAA,IAGjB,YAAA,EAAiB,iCAAA;AAAA,IACjB,UAAA,EAAiB,iCAAA;AAAA,IACjB,WAAA,EAAiB,iCAAA;AAAA,IACjB,WAAA,EAAiB,gCAAA;AAAA,IACjB,SAAA,EAAiB,wBAAA;AAAA;AAAA,IAGjB,cAAA,EAAiB,8BAAA;AAAA,IACjB,aAAA,EAAiB,6BAAA;AAAA,IACjB,WAAA,EAAiB,8BAAA;AAAA,IAEjB,cAAA,EAAiB,8BAAA;AAAA,IACjB,aAAA,EAAiB,6BAAA;AAAA,IACjB,WAAA,EAAiB,8BAAA;AAAA,IAEjB,aAAA,EAAiB,6BAAA;AAAA,IACjB,YAAA,EAAiB,4BAAA;AAAA,IACjB,UAAA,EAAiB,6BAAA;AAAA,IAEjB,WAAA,EAAiB,2BAAA;AAAA,IACjB,UAAA,EAAiB,0BAAA;AAAA,IACjB,QAAA,EAAiB,2BAAA;AAAA,IAEjB,WAAA,EAAiB,2BAAA;AAAA,IACjB,UAAA,EAAiB,0BAAA;AAAA,IACjB,QAAA,EAAiB,2BAAA;AAAA,IAEjB,aAAA,EAAiB,6BAAA;AAAA,IACjB,YAAA,EAAiB,4BAAA;AAAA,IACjB,UAAA,EAAiB,6BAAA;AAAA,IAEjB,WAAA,EAAiB,2BAAA;AAAA,IACjB,UAAA,EAAiB,0BAAA;AAAA,IACjB,QAAA,EAAiB,2BAAA;AAAA,IAEjB,aAAA,EAAiB,6BAAA;AAAA,IACjB,YAAA,EAAiB,4BAAA;AAAA,IACjB,UAAA,EAAiB,6BAAA;AAAA,IAEjB,WAAA,EAAiB,2BAAA;AAAA,IACjB,UAAA,EAAiB,0BAAA;AAAA,IACjB,QAAA,EAAiB,2BAAA;AAAA,IAEjB,WAAA,EAAiB,2BAAA;AAAA,IACjB,UAAA,EAAiB,0BAAA;AAAA,IACjB,QAAA,EAAiB;AAAA;AAErB;;;ACrVO,IAAM,OAAA,GAAU;AAAA,EACrB,CAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAM,UAAA;AAAA;AAAA,EACN,CAAA,EAAM,SAAA;AAAA;AAAA,EACN,GAAA,EAAM,UAAA;AAAA;AAAA,EACN,CAAA,EAAM,QAAA;AAAA;AAAA,EACN,GAAA,EAAM,UAAA;AAAA;AAAA,EACN,CAAA,EAAM,SAAA;AAAA;AAAA,EACN,GAAA,EAAM,UAAA;AAAA;AAAA,EACN,CAAA,EAAM,MAAA;AAAA;AAAA,EACN,CAAA,EAAM,SAAA;AAAA;AAAA,EACN,CAAA,EAAM,QAAA;AAAA;AAAA,EACN,CAAA,EAAM,SAAA;AAAA;AAAA,EACN,CAAA,EAAM,MAAA;AAAA;AAAA,EACN,CAAA,EAAM,SAAA;AAAA;AAAA,EACN,EAAA,EAAM,QAAA;AAAA;AAAA,EACN,EAAA,EAAM,SAAA;AAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA;AAAA,EACN,EAAA,EAAM,QAAA;AAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA;AAAA;AAAA,EAGN,WAAA,EAAgB,sBAAA;AAAA;AAAA,EAChB,WAAA,EAAgB,sBAAA;AAAA;AAAA,EAChB,WAAA,EAAgB,sBAAA;AAAA;AAAA,EAChB,WAAA,EAAgB,sBAAA;AAAA;AAAA,EAChB,WAAA,EAAgB,sBAAA;AAAA;AAAA,EAChB,SAAA,EAAe,sBAAA;AAAA;AAAA,EACf,SAAA,EAAe,sBAAA;AAAA;AAAA,EACf,SAAA,EAAe,uBAAA;AAAA;AAAA,EACf,WAAA,EAAe,sBAAA;AAAA;AAAA,EACf,WAAA,EAAe,sBAAA;AAAA;AAAA,EACf,YAAA,EAAe,sBAAA;AAAA;AAAA,EACf,OAAA,EAAc,sBAAA;AAAA;AAAA,EACd,OAAA,EAAc,sBAAA;AAAA;AAAA,EACd,OAAA,EAAc,sBAAA;AAAA;AAAA,EACd,QAAA,EAAc,sBAAA;AAAA;AAAA,EACd,QAAA,EAAc,sBAAA;AAAA;AAAA,EACd,QAAA,EAAc;AAAA;AAChB;;;ACzDO,IAAM,UAAA,GAAa;AAAA,EACxB,IAAA,EAAO,8DAAA;AAAA,EACP,KAAA,EAAO,4BAAA;AAAA,EACP,IAAA,EAAO;AACT;AAMO,IAAM,QAAA,GAAW;AAAA,EACtB,KAAA,EAAQ,UAAA;AAAA;AAAA,EACR,EAAA,EAAQ,SAAA;AAAA;AAAA,EACR,EAAA,EAAQ,UAAA;AAAA;AAAA,EACR,EAAA,EAAQ,MAAA;AAAA;AAAA,EACR,EAAA,EAAQ,UAAA;AAAA;AAAA,EACR,EAAA,EAAQ,SAAA;AAAA;AAAA,EACR,KAAA,EAAQ,QAAA;AAAA;AAAA,EACR,KAAA,EAAQ,UAAA;AAAA;AAAA,EACR,KAAA,EAAQ,SAAA;AAAA;AAAA,EACR,KAAA,EAAQ,MAAA;AAAA;AAAA,EACR,KAAA,EAAQ,SAAA;AAAA;AAAA,EACR,KAAA,EAAQ;AAAA;AACV;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,IAAA,EAAY,KAAA;AAAA,EACZ,UAAA,EAAY,KAAA;AAAA,EACZ,KAAA,EAAY,KAAA;AAAA,EACZ,MAAA,EAAY,KAAA;AAAA,EACZ,MAAA,EAAY,KAAA;AAAA,EACZ,QAAA,EAAY,KAAA;AAAA,EACZ,IAAA,EAAY,KAAA;AAAA,EACZ,SAAA,EAAY,KAAA;AAAA,EACZ,KAAA,EAAY;AACd;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,IAAA,EAAU,GAAA;AAAA,EACV,KAAA,EAAU,MAAA;AAAA,EACV,IAAA,EAAU,OAAA;AAAA,EACV,MAAA,EAAU,KAAA;AAAA,EACV,OAAA,EAAU,OAAA;AAAA,EACV,KAAA,EAAU,GAAA;AAAA,EACV,GAAA,EAAU,SAAA;AAAA,EACV,GAAA,EAAU,MAAA;AAAA,EACV,GAAA,EAAU,SAAA;AAAA,EACV,GAAA,EAAU,QAAA;AAAA,EACV,GAAA,EAAU,SAAA;AAAA,EACV,GAAA,EAAU,MAAA;AAAA,EACV,GAAA,EAAU,SAAA;AAAA,EACV,IAAA,EAAU;AACZ;AAEO,IAAM,aAAA,GAAgB;AAAA,EAC3B,OAAA,EAAU,SAAA;AAAA,EACV,KAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAU,KAAA;AAAA,EACV,IAAA,EAAU,SAAA;AAAA,EACV,KAAA,EAAU,QAAA;AAAA,EACV,MAAA,EAAU;AACZ;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF;;;ACtEO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAA,EAAO,KAAA;AAAA,EACP,EAAA,EAAO,UAAA;AAAA;AAAA,EACP,EAAA,EAAO,SAAA;AAAA;AAAA,EACP,EAAA,EAAO,UAAA;AAAA;AAAA,EACP,EAAA,EAAO,QAAA;AAAA;AAAA,EACP,EAAA,EAAO,SAAA;AAAA;AAAA,EACP,KAAA,EAAO,MAAA;AAAA;AAAA,EACP,KAAA,EAAO,QAAA;AAAA;AAAA,EACP,IAAA,EAAO,QAAA;AAAA;AAAA;AAAA,EAGP,OAAA,EAAW,sBAAA;AAAA;AAAA,EACX,MAAA,EAAW,sBAAA;AAAA;AAAA,EACX,KAAA,EAAW,sBAAA;AAAA;AAAA,EACX,IAAA,EAAW,sBAAA;AAAA;AAAA,EACX,KAAA,EAAW,wBAAA;AAAA;AAAA,EACX,MAAA,EAAW,wBAAA;AAAA;AAAA,EACX,KAAA,EAAW,sBAAA;AAAA;AAAA,EACX,OAAA,EAAW;AAAA;AACb;;;ACjBO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAA,EAAM,MAAA;AAAA;AAAA,EAGN,EAAA,EAAM,+BAAA;AAAA,EACN,EAAA,EAAM,iEAAA;AAAA,EACN,EAAA,EAAM,oEAAA;AAAA,EACN,EAAA,EAAM,sEAAA;AAAA,EACN,EAAA,EAAM,uEAAA;AAAA,EACN,KAAA,EAAM,qCAAA;AAAA;AAAA,EAGN,KAAA,EAAO,qCAAA;AAAA;AAAA,EAGP,KAAA,EAAO,oDAAA;AAAA;AAAA,EAGP,UAAA,EAAY,oDAAA;AAAA;AAAA,EAGZ,OAAA,EAAW,sBAAA;AAAA;AAAA,EACX,IAAA,EAAW,sBAAA;AAAA;AAAA,EACX,QAAA,EAAW,sBAAA;AAAA;AAAA,EACX,KAAA,EAAW,sBAAA;AAAA;AAAA,EACX,OAAA,EAAW,sBAAA;AAAA;AAAA,EACX,MAAA,EAAW;AAAA;AACb;;;AC9BO,IAAM,WAAA,GAAc;AAAA,EACzB,CAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAM,OAAA;AAAA,EACN,CAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAM,OAAA;AAAA,EACN,CAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAM,OAAA;AAAA,EACN,CAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAM,OAAA;AAAA,EACN,CAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAM,OAAA;AAAA,EACN,CAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAM,OAAA;AAAA,EACN,CAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,EAAO,MAAA;AAAA;AAAA,EAGP,OAAA,EAAW,2BAAA;AAAA;AAAA,EACX,KAAA,EAAW,2BAAA;AAAA;AAAA,EACX,IAAA,EAAW,2BAAA;AAAA;AAAA,EACX,OAAA,EAAW,2BAAA;AAAA;AAAA,EACX,KAAA,EAAW;AAAA;AACb;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,KAAA,EAAQ,OAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAQ;AACV;AAEO,IAAM,MAAA,GAAS;AAAA,EACpB,KAAA,EAAO,WAAA;AAAA,EACP,KAAA,EAAO;AACT;;;AC9CO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAA,EAAY,IAAA;AAAA,EACZ,IAAA,EAAY,MAAA;AAAA,EACZ,IAAA,EAAY,GAAA;AAAA,EACZ,MAAA,EAAY,GAAA;AAAA,EACZ,QAAA,EAAY,MAAA;AAAA,EACZ,MAAA,EAAY,MAAA;AAAA,EACZ,OAAA,EAAY,MAAA;AAAA,EACZ,KAAA,EAAY,MAAA;AAAA,EACZ,OAAA,EAAY,MAAA;AAAA,EACZ,KAAA,EAAY,MAAA;AAAA,EACZ,OAAA,EAAY;AACd;;;ACZO,IAAM,QAAA,GAAW;AAAA,EACtB,OAAA,EAAY,KAAA;AAAA,EACZ,IAAA,EAAY,OAAA;AAAA,EACZ,MAAA,EAAY,OAAA;AAAA,EACZ,IAAA,EAAY,OAAA;AAAA,EACZ,MAAA,EAAY,OAAA;AAAA,EACZ,OAAA,EAAY,OAAA;AAAA;AAAA,EAGZ,OAAA,EAAY,4BAAA;AAAA;AAAA,EACZ,KAAA,EAAY,0BAAA;AAAA;AAAA,EACZ,KAAA,EAAY,0BAAA;AAAA;AAAA,EACZ,OAAA,EAAY,0BAAA;AAAA;AAAA,EACZ,QAAA,EAAY;AAAA;AACd;AAEO,IAAM,MAAA,GAAS;AAAA,EACpB,MAAA,EAAc,QAAA;AAAA,EACd,EAAA,EAAc,4BAAA;AAAA,EACd,GAAA,EAAc,4BAAA;AAAA,EACd,KAAA,EAAc,8BAAA;AAAA,EACd,MAAA,EAAc,mCAAA;AAAA,EACd,MAAA,EAAc,yCAAA;AAAA;AAAA,EAGd,OAAA,EAAc,wBAAA;AAAA;AAAA,EACd,KAAA,EAAc,qBAAA;AAAA;AAAA,EACd,IAAA,EAAc;AAAA;AAChB;AAEO,IAAM,SAAA,GAAY;AAAA,EACvB,QAAA;AAAA,EACA;AACF;;;AChCO,IAAM,UAAA,GAAa;AAAA,EACxB,EAAA,EAAM,OAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA,EACN,EAAA,EAAM,OAAA;AAAA,EACN,EAAA,EAAM,QAAA;AAAA,EACN,EAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAM;AACR;;;ACRO,IAAM,OAAA,GAAU;AAAA,EACrB,CAAA,EAAM,GAAA;AAAA,EACN,CAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA,EACN,EAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAM,MAAA;AAAA,EACN,GAAA,EAAM;AACR;;;ACNA,SAAS,QAAQ,GAAA,EAAqB;AACpC,EAAA,OAAO,IAGJ,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA,CAElB,QAAQ,iBAAA,EAAmB,OAAO,CAAA,CAClC,OAAA,CAAQ,wBAAwB,OAAO,CAAA,CAEvC,QAAQ,iBAAA,EAAmB,OAAO,EAClC,WAAA,EAAY;AACjB;AASO,SAAS,cACd,GAAA,EACA,MAAA,GAAS,OAAA,EACT,QAAA,GAAqB,EAAC,EACE;AACxB,EAAA,MAAM,SAAiC,EAAC;AAExC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA,EAAG;AAC9C,IAAA,MAAM,OAAA,GAAU,QAAQ,GAAG,CAAA;AAC3B,IAAA,MAAM,OAAA,GAAU,SAAS,QAAA,CAAS,GAAG,IACjC,MAAA,GACA,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA;AAExB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,IAAA,EAAM;AAC/C,MAAA,MAAA,CAAO,OAAO,MAAA,EAAQ,aAAA,CAAc,OAAsB,OAAA,EAAS,EAAE,CAAC,CAAA;AAAA,IACxE,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,OAAO,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA;AAAA,IAChC;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAKO,SAAS,SAAA,CACd,UAAA,EACA,QAAA,GAAW,OAAA,EACH;AACR,EAAA,MAAM,QAAQ,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CACpC,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM,KAAK,IAAI,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,CAAG,CAAA,CAC7C,KAAK,IAAI,CAAA;AACZ,EAAA,OAAO,GAAG,QAAQ,CAAA;AAAA,EAAO,KAAK;AAAA;AAAA,CAAA;AAChC;AAKO,SAAS,oBACd,YAAA,EACAA,OAAAA,EACA,WAAW,OAAA,EACX,QAAA,GAAqB,EAAC,EACd;AACR,EAAA,MAAM,MAAA,GAAS,CAAA,MAAA,EAAS,OAAA,CAAQ,YAAY,CAAC,CAAA,CAAA;AAC7C,EAAA,MAAM,IAAA,GAAO,aAAA,CAAcA,OAAAA,EAAQ,MAAA,EAAQ,QAAQ,CAAA;AACnD,EAAA,OAAO,SAAA,CAAU,MAAM,QAAQ,CAAA;AACjC;;;ACNO,IAAM,MAAA,GAAS;AAAA,EACpB,KAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF","file":"index.js","sourcesContent":["/**\n * Color tokens\n * CSS custom property prefix: --tui-color-*\n *\n * Brand colors use naming: brand-<colorname>-<scale|default>\n * Scale: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950\n * Default = the base color from the brand palette\n */\nexport const color = {\n // ── Primitives (raw scale) ──────────────────────────────────────────\n\n primitive: {\n // ── White / Black (brand colors) ───────────────────────────────────\n white: \"#ffffff\",\n black: \"#000000\",\n\n // ── Brand White (scale from pure white) ────────────────────────────\n brandWhite50: \"#ffffff\",\n brandWhite100: \"#fefefe\",\n brandWhite200: \"#fafafa\",\n brandWhite300: \"#f5f5f5\",\n brandWhite400: \"#ededed\",\n brandWhite500: \"#e0e0e0\",\n brandWhite600: \"#c2c2c2\",\n brandWhite700: \"#9e9e9e\",\n brandWhite800: \"#757575\",\n brandWhite900: \"#4a4a4a\",\n brandWhite950: \"#2b2b2b\",\n brandWhiteDefault: \"#ffffff\", // base from brand palette\n\n // ── Brand Black (scale from pure black) ────────────────────────────\n brandBlack50: \"#f5f5f5\",\n brandBlack100: \"#e8e8e8\",\n brandBlack200: \"#d4d4d4\",\n brandBlack300: \"#b0b0b0\",\n brandBlack400: \"#8a8a8a\",\n brandBlack500: \"#616161\",\n brandBlack600: \"#4a4a4a\",\n brandBlack700: \"#363636\",\n brandBlack800: \"#242424\",\n brandBlack900: \"#141414\",\n brandBlack950: \"#000000\",\n brandBlackDefault: \"#000000\", // base from brand palette\n\n // ── Brand Navy (#0D132B base) ──────────────────────────────────────\n brandNavy50: \"#f3f4f7\",\n brandNavy100: \"#e7e8ef\",\n brandNavy200: \"#cacfe2\",\n brandNavy300: \"#9da8d2\",\n brandNavy400: \"#6377c5\",\n brandNavy500: \"#354eb0\",\n brandNavy600: \"#2c4091\",\n brandNavy700: \"#223272\",\n brandNavy800: \"#1a2656\",\n brandNavy900: \"#121a3b\",\n brandNavy950: \"#0a0e1f\",\n brandNavyDefault: \"#2c4091\", // base from brand palette\n\n // ── Brand Blue (#2563EB base) ──────────────────────────────────────\n brandBlue50: \"#eff4ff\",\n brandBlue100: \"#dbe6fe\",\n brandBlue200: \"#bfd3fe\",\n brandBlue300: \"#93b4fd\",\n brandBlue400: \"#6090fa\",\n brandBlue500: \"#3b6ef6\",\n brandBlue600: \"#2563eb\",\n brandBlue700: \"#1d50d8\",\n brandBlue800: \"#1e41af\",\n brandBlue900: \"#1e398a\",\n brandBlue950: \"#172554\",\n brandBlueDefault: \"#2563EB\", // base from brand palette\n\n // ── Brand Purple (#7C3AED base) ────────────────────────────────────\n brandPurple50: \"#f5f3ff\",\n brandPurple100: \"#ede8ff\",\n brandPurple200: \"#ddd6fe\",\n brandPurple300: \"#c4b5fc\",\n brandPurple400: \"#a78bfa\",\n brandPurple500: \"#8b5cf6\",\n brandPurple600: \"#7c3aed\",\n brandPurple700: \"#6d28d9\",\n brandPurple800: \"#5b21b6\",\n brandPurple900: \"#4c1d95\",\n brandPurple950: \"#2e1065\",\n brandPurpleDefault: \"#7C3AED\", // base from brand palette\n\n // ── Brand Pink (#D946EF base) ──────────────────────────────────────\n brandPink50: \"#fdf4ff\",\n brandPink100: \"#fae8ff\",\n brandPink200: \"#f5d0fe\",\n brandPink300: \"#f0abfc\",\n brandPink400: \"#e879f9\",\n brandPink500: \"#d946ef\",\n brandPink600: \"#c026d3\",\n brandPink700: \"#a21caf\",\n brandPink800: \"#86198f\",\n brandPink900: \"#701a75\",\n brandPink950: \"#4a044e\",\n brandPinkDefault: \"#c026d3\", // base from brand palette\n\n // ── Brand Gray (#4B5563 base) ──────────────────────────────────────\n brandGray50: \"#f9fafb\",\n brandGray100: \"#f3f4f6\",\n brandGray200: \"#e5e7eb\",\n brandGray300: \"#d1d5db\",\n brandGray400: \"#9ca3af\",\n brandGray500: \"#6b7280\",\n brandGray600: \"#4b5563\",\n brandGray700: \"#374151\",\n brandGray800: \"#1f2937\",\n brandGray900: \"#111827\",\n brandGray950: \"#030712\",\n brandGrayDefault: \"#4B5563\", // base from brand palette\n\n // ── Brand Light (#F3F4F6 base) ─────────────────────────────────────\n brandLight50: \"#fdfefe\",\n brandLight100: \"#f9fafb\",\n brandLight200: \"#f3f4f6\",\n brandLight300: \"#e5e7eb\",\n brandLight400: \"#d1d5db\",\n brandLight500: \"#9ca3af\",\n brandLight600: \"#6b7280\",\n brandLight700: \"#4b5563\",\n brandLight800: \"#374151\",\n brandLight900: \"#1f2937\",\n brandLight950: \"#111827\",\n brandLightDefault: \"#F3F4F6\", // base from brand palette\n\n // ── Success (green) ───────────────────────────────────────────────\n success50: \"#f0fdf4\",\n success100: \"#dcfce7\",\n success200: \"#bbf7d0\",\n success300: \"#86efac\",\n success400: \"#4ade80\",\n success500: \"#22c55e\",\n success600: \"#16a34a\",\n success700: \"#15803d\",\n success800: \"#166534\",\n success900: \"#14532d\",\n success950: \"#052e16\",\n successDefault: \"#16a34a\",\n\n // ── Warning (amber) ────────────────────────────────────────────────\n warning50: \"#fffbeb\",\n warning100: \"#fef3c7\",\n warning200: \"#fde68a\",\n warning300: \"#fcd34d\",\n warning400: \"#fbbf24\",\n warning500: \"#f59e0b\",\n warning600: \"#d97706\",\n warning700: \"#b45309\",\n warning800: \"#92400e\",\n warning900: \"#78350f\",\n warning950: \"#451a03\",\n warningDefault: \"#d97706\",\n\n // ── Danger (red) ───────────────────────────────────────────────────\n danger50: \"#fef2f2\",\n danger100: \"#fee2e2\",\n danger200: \"#fecaca\",\n danger300: \"#fca5a5\",\n danger400: \"#f87171\",\n danger500: \"#ef4444\",\n danger600: \"#dc2626\",\n danger700: \"#b91c1c\",\n danger800: \"#991b1b\",\n danger900: \"#7f1d1d\",\n danger950: \"#450a0a\",\n dangerDefault: \"#dc2626\",\n\n // ── Info (blue) ────────────────────────────────────────────────────\n info50: \"#eff6ff\",\n info100: \"#dbeafe\",\n info200: \"#bfdbfe\",\n info300: \"#93c5fd\",\n info400: \"#60a5fa\",\n info500: \"#3b82f6\",\n info600: \"#2563eb\",\n info700: \"#1d4ed8\",\n info800: \"#1e40af\",\n info900: \"#1e3a8a\",\n info950: \"#172554\",\n infoDefault: \"#2563eb\",\n\n // ── Teal (cyan/teal) ───────────────────────────────────────────────\n teal50: \"#f0fdfa\",\n teal100: \"#ccfbf1\",\n teal200: \"#99f6e4\",\n teal300: \"#5eead4\",\n teal400: \"#2dd4bf\",\n teal500: \"#14b8a6\",\n teal600: \"#0d9488\",\n teal700: \"#0f766e\",\n teal800: \"#115e59\",\n teal900: \"#134e4a\",\n teal950: \"#042f2e\",\n tealDefault: \"#0d9488\",\n\n // ── Orange (deep orange) ───────────────────────────────────────────\n orange50: \"#fff7ed\",\n orange100: \"#ffedd5\",\n orange200: \"#fed7aa\",\n orange300: \"#fdba74\",\n orange400: \"#fb923c\",\n orange500: \"#f97316\",\n orange600: \"#ea580c\",\n orange700: \"#c2410c\",\n orange800: \"#9a3412\",\n orange900: \"#7c2d12\",\n orange950: \"#431407\",\n orangeDefault: \"#ea580c\",\n\n // ── Rose (soft red/pink) ───────────────────────────────────────────\n rose50: \"#fff1f2\",\n rose100: \"#ffe4e6\",\n rose200: \"#fecdd3\",\n rose300: \"#fda4af\",\n rose400: \"#fb7185\",\n rose500: \"#f43f5e\",\n rose600: \"#e11d48\",\n rose700: \"#be123c\",\n rose800: \"#9f1239\",\n rose900: \"#881337\",\n rose950: \"#4c0519\",\n roseDefault: \"#e11d48\",\n\n // ── Indigo (deep blue-purple) ──────────────────────────────────────\n indigo50: \"#eef2ff\",\n indigo100: \"#e0e7ff\",\n indigo200: \"#c7d2fe\",\n indigo300: \"#a5b4fc\",\n indigo400: \"#818cf8\",\n indigo500: \"#6366f1\",\n indigo600: \"#4f46e5\",\n indigo700: \"#4338ca\",\n indigo800: \"#3730a3\",\n indigo900: \"#312e81\",\n indigo950: \"#1e1b4b\",\n indigoDefault: \"#4f46e5\",\n\n // ── Mint (fresh green) ─────────────────────────────────────────────\n mint50: \"#ecfdf5\",\n mint100: \"#d1fae5\",\n mint200: \"#a7f3d0\",\n mint300: \"#6ee7b7\",\n mint400: \"#34d399\",\n mint500: \"#10b981\",\n mint600: \"#059669\",\n mint700: \"#047857\",\n mint800: \"#065f46\",\n mint900: \"#064e3b\",\n mint950: \"#022c22\",\n mintDefault: \"#059669\",\n\n // ── Coal (dark neutral state) ──────────────────────────────────────\n coal50: \"#f8fafc\",\n coal100: \"#f1f5f9\",\n coal200: \"#e2e8f0\",\n coal300: \"#cbd5e1\",\n coal400: \"#94a3b8\",\n coal500: \"#64748b\",\n coal600: \"#475569\",\n coal700: \"#334155\",\n coal800: \"#1e293b\",\n coal900: \"#0f172a\",\n coal950: \"#020617\",\n coalDefault: \"#475569\",\n },\n\n // ── Semantic aliases ────────────────────────────────────────────────\n semantic: {\n // Background\n bgBase: \"var(--tui-color-white)\",\n bgSubtle: \"var(--tui-color-brand-black-50)\",\n bgMuted: \"var(--tui-color-brand-black-100)\",\n bgInverse: \"var(--tui-color-brand-black-900)\",\n\n // Surface (cards, panels)\n surfaceDefault: \"var(--tui-color-white)\",\n surfaceRaised: \"var(--tui-color-brand-black-50)\",\n surfaceOverlay: \"var(--tui-color-brand-black-100)\",\n\n // Text\n textPrimary: \"var(--tui-color-brand-black-900)\",\n textSecondary: \"var(--tui-color-brand-gray-600)\",\n textTertiary: \"var(--tui-color-brand-gray-400)\",\n textDisabled: \"var(--tui-color-brand-black-300)\",\n textInverse: \"var(--tui-color-white)\",\n textLink: \"var(--tui-color-brand-blue-600)\",\n textLinkHover: \"var(--tui-color-brand-blue-700)\",\n\n // Border\n borderDefault: \"var(--tui-color-brand-black-200)\",\n borderStrong: \"var(--tui-color-brand-black-400)\",\n borderFocus: \"var(--tui-color-brand-pink-500)\",\n\n // Focus ring\n focusRing: \"var(--tui-color-brand-black-500)\",\n focusRingGap: \"var(--tui-color-white)\",\n\n // Brand interactive (uses brand-pink as primary)\n brandDefault: \"var(--tui-color-brand-pink-600)\",\n brandHover: \"var(--tui-color-brand-pink-700)\",\n brandActive: \"var(--tui-color-brand-pink-800)\",\n brandSubtle: \"var(--tui-color-brand-pink-50)\",\n brandText: \"var(--tui-color-white)\",\n\n // Status\n successDefault: \"var(--tui-color-success-600)\",\n successSubtle: \"var(--tui-color-success-50)\",\n successText: \"var(--tui-color-success-700)\",\n\n warningDefault: \"var(--tui-color-warning-600)\",\n warningSubtle: \"var(--tui-color-warning-50)\",\n warningText: \"var(--tui-color-warning-700)\",\n\n dangerDefault: \"var(--tui-color-danger-600)\",\n dangerSubtle: \"var(--tui-color-danger-50)\",\n dangerText: \"var(--tui-color-danger-700)\",\n\n infoDefault: \"var(--tui-color-info-600)\",\n infoSubtle: \"var(--tui-color-info-50)\",\n infoText: \"var(--tui-color-info-700)\",\n\n tealDefault: \"var(--tui-color-teal-600)\",\n tealSubtle: \"var(--tui-color-teal-50)\",\n tealText: \"var(--tui-color-teal-700)\",\n\n orangeDefault: \"var(--tui-color-orange-600)\",\n orangeSubtle: \"var(--tui-color-orange-50)\",\n orangeText: \"var(--tui-color-orange-700)\",\n\n roseDefault: \"var(--tui-color-rose-600)\",\n roseSubtle: \"var(--tui-color-rose-50)\",\n roseText: \"var(--tui-color-rose-700)\",\n\n indigoDefault: \"var(--tui-color-indigo-600)\",\n indigoSubtle: \"var(--tui-color-indigo-50)\",\n indigoText: \"var(--tui-color-indigo-700)\",\n\n mintDefault: \"var(--tui-color-mint-600)\",\n mintSubtle: \"var(--tui-color-mint-50)\",\n mintText: \"var(--tui-color-mint-700)\",\n\n coalDefault: \"var(--tui-color-coal-600)\",\n coalSubtle: \"var(--tui-color-coal-50)\",\n coalText: \"var(--tui-color-coal-700)\",\n },\n} as const;\n\nexport type ColorTokens = typeof color;\n","/**\n * Spacing tokens — margin, padding, gap, inset\n * CSS custom property prefix: --tui-spacing-*\n *\n * Base unit: 4px (0.25rem)\n * Scale follows a 4pt grid.\n */\nexport const spacing = {\n 0: \"0px\",\n px: \"1px\",\n 0.5: \"0.125rem\", // 2px\n 1: \"0.25rem\", // 4px\n 1.5: \"0.375rem\", // 6px\n 2: \"0.5rem\", // 8px\n 2.5: \"0.625rem\", // 10px\n 3: \"0.75rem\", // 12px\n 3.5: \"0.875rem\", // 14px\n 4: \"1rem\", // 16px\n 5: \"1.25rem\", // 20px\n 6: \"1.5rem\", // 24px\n 7: \"1.75rem\", // 28px\n 8: \"2rem\", // 32px\n 9: \"2.25rem\", // 36px\n 10: \"2.5rem\", // 40px\n 11: \"2.75rem\", // 44px\n 12: \"3rem\", // 48px\n 14: \"3.5rem\", // 56px\n 16: \"4rem\", // 64px\n 20: \"5rem\", // 80px\n 24: \"6rem\", // 96px\n 28: \"7rem\", // 112px\n 32: \"8rem\", // 128px\n 36: \"9rem\", // 144px\n 40: \"10rem\", // 160px\n 44: \"11rem\", // 176px\n 48: \"12rem\", // 192px\n 52: \"13rem\", // 208px\n 56: \"14rem\", // 224px\n 60: \"15rem\", // 240px\n 64: \"16rem\", // 256px\n 72: \"18rem\", // 288px\n 80: \"20rem\", // 320px\n 96: \"24rem\", // 384px\n\n // ── Semantic defaults ────────────────────────────────────────────────\n componentXs: \"var(--tui-spacing-1)\", // tight inner padding (badges)\n componentSm: \"var(--tui-spacing-2)\", // small component padding\n componentMd: \"var(--tui-spacing-3)\", // default component padding\n componentLg: \"var(--tui-spacing-4)\", // large component padding\n componentXl: \"var(--tui-spacing-6)\", // extra-large component padding\n sectionSm: \"var(--tui-spacing-6)\", // small section spacing\n sectionMd: \"var(--tui-spacing-8)\", // default section spacing\n sectionLg: \"var(--tui-spacing-12)\", // large section spacing\n pagePadding: \"var(--tui-spacing-4)\", // page-level side padding\n cardPadding: \"var(--tui-spacing-4)\", // card/panel inner padding\n modalPadding: \"var(--tui-spacing-6)\", // modal/dialog inner padding\n stackSm: \"var(--tui-spacing-2)\", // small vertical stack gap\n stackMd: \"var(--tui-spacing-4)\", // default vertical stack gap\n stackLg: \"var(--tui-spacing-6)\", // large vertical stack gap\n inlineSm: \"var(--tui-spacing-2)\", // small horizontal gap\n inlineMd: \"var(--tui-spacing-3)\", // default horizontal gap\n inlineLg: \"var(--tui-spacing-4)\", // large horizontal gap\n} as const;\n\nexport type SpacingTokens = typeof spacing;\n","/**\n * Typography tokens — font family, size, weight, line-height, letter-spacing\n * CSS custom property prefix: --tui-font-*\n */\n\nexport const fontFamily = {\n sans: \"'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif\",\n serif: \"'Georgia', ui-serif, serif\",\n mono: \"'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace\",\n} as const;\n\n/**\n * Font size scale (rem)\n * Base: 16px = 1rem\n */\nexport const fontSize = {\n \"2xs\": \"0.625rem\", // 10px\n xs: \"0.75rem\", // 12px\n sm: \"0.875rem\", // 14px\n md: \"1rem\", // 16px ← base\n lg: \"1.125rem\", // 18px\n xl: \"1.25rem\", // 20px\n \"2xl\": \"1.5rem\", // 24px\n \"3xl\": \"1.875rem\", // 30px\n \"4xl\": \"2.25rem\", // 36px\n \"5xl\": \"3rem\", // 48px\n \"6xl\": \"3.75rem\", // 60px\n \"7xl\": \"4.5rem\", // 72px\n} as const;\n\nexport const fontWeight = {\n thin: \"100\",\n extralight: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\",\n} as const;\n\nexport const lineHeight = {\n none: \"1\",\n tight: \"1.25\",\n snug: \"1.375\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n \"3\": \"0.75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"9\": \"2.25rem\",\n \"10\": \"2.5rem\",\n} as const;\n\nexport const letterSpacing = {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n} as const;\n\nexport const typography = {\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n} as const;\n\nexport type TypographyTokens = typeof typography;\n","/**\n * Border radius tokens\n * CSS custom property prefix: --tui-radius-*\n */\nexport const radius = {\n none: \"0px\",\n xs: \"0.125rem\", // 2px\n sm: \"0.25rem\", // 4px\n md: \"0.375rem\", // 6px\n lg: \"0.5rem\", // 8px\n xl: \"0.75rem\", // 12px\n \"2xl\": \"1rem\", // 16px\n \"3xl\": \"1.5rem\", // 24px\n full: \"9999px\", // pill / circle\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-radius-md)\", // default component radius\n button: \"var(--tui-radius-md)\", // buttons\n input: \"var(--tui-radius-md)\", // inputs, selects, textareas\n card: \"var(--tui-radius-lg)\", // cards, panels\n badge: \"var(--tui-radius-full)\", // badges, tags, pills\n avatar: \"var(--tui-radius-full)\", // avatar circles\n modal: \"var(--tui-radius-xl)\", // modals, dialogs\n tooltip: \"var(--tui-radius-sm)\", // tooltips, popovers\n} as const;\n\nexport type RadiusTokens = typeof radius;\n","/**\n * Box shadow tokens\n * CSS custom property prefix: --tui-shadow-*\n *\n * Each shadow uses CSS variables internally so dark-mode overrides\n * only need to change the base variables, not every shadow value.\n */\nexport const shadow = {\n none: \"none\",\n\n // Elevation scale\n xs: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n sm: \"0 1px 3px 0 rgb(0 0 0 / 0.10), 0 1px 2px -1px rgb(0 0 0 / 0.10)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.10), 0 8px 10px -6px rgb(0 0 0 / 0.10)\",\n \"2xl\":\"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n\n // Inner\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n\n // Focus ring (used for keyboard focus)\n focus: \"0 0 0 3px var(--tui-color-brand-pink-300, #f0abfc)\",\n\n // Brand focus ring\n focusBrand: \"0 0 0 3px var(--tui-color-brand-pink-400, #e879f9)\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-shadow-sm)\", // default component shadow\n card: \"var(--tui-shadow-md)\", // cards, panels\n dropdown: \"var(--tui-shadow-lg)\", // dropdowns, menus\n modal: \"var(--tui-shadow-xl)\", // modals, dialogs\n tooltip: \"var(--tui-shadow-md)\", // tooltips, popovers\n button: \"var(--tui-shadow-xs)\", // subtle button lift\n} as const;\n\nexport type ShadowTokens = typeof shadow;\n","/**\n * Border width and style tokens\n * CSS custom property prefix: --tui-border-*\n */\nexport const borderWidth = {\n 0: \"0px\",\n 0.5: \"0.5px\",\n 1: \"1px\",\n 1.5: \"1.5px\",\n 2: \"2px\",\n 2.5: \"2.5px\",\n 3: \"3px\",\n 3.5: \"3.5px\",\n 4: \"4px\",\n 4.5: \"4.5px\",\n 5: \"5px\",\n 5.5: \"5.5px\",\n 8: \"8px\",\n none: \"0px\",\n xs: \"0.5px\",\n sm: \"1px\",\n md: \"2px\",\n lg: \"4px\",\n xl: \"6px\",\n \"2xl\": \"12px\",\n \"3xl\": \"18px\",\n \"4xl\": \"24px\",\n \"5xl\": \"30px\",\n \"6xl\": \"36px\",\n \"7xl\": \"42px\",\n \"8xl\": \"48px\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-border-width-1)\", // default border width\n input: \"var(--tui-border-width-1)\", // input/select border\n card: \"var(--tui-border-width-1)\", // card border\n divider: \"var(--tui-border-width-1)\", // horizontal/vertical dividers\n thick: \"var(--tui-border-width-2)\", // emphasized borders\n} as const;\n\nexport const borderStyle = {\n solid: \"solid\",\n dashed: \"dashed\",\n dotted: \"dotted\",\n none: \"none\",\n} as const;\n\nexport const border = {\n width: borderWidth,\n style: borderStyle,\n} as const;\n\nexport type BorderTokens = typeof border;\n","/**\n * Z-index tokens\n * CSS custom property prefix: --tui-z-*\n */\nexport const zIndex = {\n hide: \"-1\",\n auto: \"auto\",\n base: \"0\",\n raised: \"1\",\n dropdown: \"1000\",\n sticky: \"1100\",\n overlay: \"1200\",\n modal: \"1300\",\n popover: \"1400\",\n toast: \"1500\",\n tooltip: \"1600\",\n} as const;\n\nexport type ZIndexTokens = typeof zIndex;\n","/**\n * Animation / transition tokens\n * CSS custom property prefix: --tui-duration-*, --tui-ease-*\n */\nexport const duration = {\n instant: \"0ms\",\n fast: \"100ms\",\n normal: \"200ms\",\n slow: \"300ms\",\n slower: \"500ms\",\n slowest: \"700ms\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-duration-normal)\", // default transition duration\n hover: \"var(--tui-duration-fast)\", // hover state transitions\n modal: \"var(--tui-duration-slow)\", // modal open/close\n tooltip: \"var(--tui-duration-fast)\", // tooltip show/hide\n collapse: \"var(--tui-duration-slow)\", // accordion/collapse\n} as const;\n\nexport const easing = {\n linear: \"linear\",\n in: \"cubic-bezier(0.4, 0, 1, 1)\",\n out: \"cubic-bezier(0, 0, 0.2, 1)\",\n inOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n bounce: \"cubic-bezier(0.34, 1.56, 0.64, 1)\",\n spring: \"cubic-bezier(0.175, 0.885, 0.32, 1.275)\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-ease-in-out)\", // default easing\n enter: \"var(--tui-ease-out)\", // elements entering\n exit: \"var(--tui-ease-in)\", // elements exiting\n} as const;\n\nexport const animation = {\n duration,\n easing,\n} as const;\n\nexport type AnimationTokens = typeof animation;\n","/**\n * Breakpoint tokens\n * Used for media queries and responsive utilities.\n * CSS custom property prefix: --tui-screen-*\n */\nexport const breakpoint = {\n xs: \"320px\",\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\":\"1536px\",\n} as const;\n\nexport type BreakpointTokens = typeof breakpoint;\n","/**\n * Opacity tokens\n * CSS custom property prefix: --tui-opacity-*\n */\nexport const opacity = {\n 0: \"0\",\n 5: \"0.05\",\n 10: \"0.1\",\n 20: \"0.2\",\n 25: \"0.25\",\n 30: \"0.3\",\n 35: \"0.35\",\n 40: \"0.4\",\n 45: \"0.45\",\n 50: \"0.5\",\n 55: \"0.55\",\n 60: \"0.6\",\n 65: \"0.65\",\n 70: \"0.7\",\n 75: \"0.75\",\n 80: \"0.8\",\n 85: \"0.55\",\n 90: \"0.9\",\n 95: \"0.95\",\n 100: \"1\",\n} as const;\n\nexport type OpacityTokens = typeof opacity;\n","/**\n * CSS variable generator\n *\n * Converts token objects into flat CSS custom properties\n * with the `--tui-` prefix.\n *\n * Supports nested objects with kebab-case key joining:\n * color.primitive.primary500 → --tui-color-primary-500\n */\n\ntype TokenValue = string | number;\ntype TokenObject = { [key: string]: TokenValue | TokenObject };\n\n/**\n * Converts a camelCase or PascalCase key segment to kebab-case.\n * e.g. \"primary500\" → \"primary-500\"\n * \"fontFamily\" → \"font-family\"\n * \"2xl\" → \"2xl\" (already fine)\n */\nfunction toKebab(str: string): string {\n return str\n // Decimal dots → underscores: \"0.5\" → \"0_5\"\n // (dots are technically valid in CSS custom props but esbuild's minifier rejects them)\n .replace(/\\./g, \"_\")\n // camelCase → kebab: \"fontFamily\" → \"font-family\"\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n // letter→digit boundary only (NOT digit→letter, so \"2xl\" stays \"2xl\")\n .replace(/([a-zA-Z])(\\d)/g, \"$1-$2\")\n .toLowerCase();\n}\n\n/**\n * Flatten a nested token object to a flat map of CSS variable name → value.\n *\n * @param obj Token object (can be nested)\n * @param prefix Current CSS variable prefix (default: \"--tui\")\n * @param skipKeys Keys to skip one level deep (e.g. \"primitive\" in color)\n */\nexport function flattenTokens(\n obj: TokenObject,\n prefix = \"--tui\",\n skipKeys: string[] = [],\n): Record<string, string> {\n const result: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n const segment = toKebab(key);\n const varName = skipKeys.includes(key)\n ? prefix // collapse this level\n : `${prefix}-${segment}`;\n\n if (typeof value === \"object\" && value !== null) {\n Object.assign(result, flattenTokens(value as TokenObject, varName, []));\n } else {\n result[varName] = String(value);\n }\n }\n\n return result;\n}\n\n/**\n * Render a flat token map to a CSS `:root { }` block string.\n */\nexport function toCSSRoot(\n flatTokens: Record<string, string>,\n selector = \":root\",\n): string {\n const lines = Object.entries(flatTokens)\n .map(([prop, value]) => ` ${prop}: ${value};`)\n .join(\"\\n\");\n return `${selector} {\\n${lines}\\n}\\n`;\n}\n\n/**\n * Generate the full tokens CSS string for a given token category.\n */\nexport function generateCSSCategory(\n categoryName: string,\n tokens: TokenObject,\n selector = \":root\",\n skipKeys: string[] = [],\n): string {\n const prefix = `--tui-${toKebab(categoryName)}`;\n const flat = flattenTokens(tokens, prefix, skipKeys);\n return toCSSRoot(flat, selector);\n}\n","/**\n * @tantuui/tokens — public API\n *\n * Usage:\n * import { color, spacing, typography, tokens } from \"@tantuui/tokens\";\n * import { generateAllCSS } from \"@tantuui/tokens\";\n * import tuiPreset from \"@tantuui/tokens/tailwind-preset\";\n */\n\n// ── Token objects ─────────────────────────────────────────────────────\nexport {\n color,\n type ColorTokens,\n} from \"./tokens/color\";\n\nexport {\n spacing,\n type SpacingTokens,\n} from \"./tokens/spacing\";\n\nexport {\n typography,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n type TypographyTokens,\n} from \"./tokens/typography\";\n\nexport {\n radius,\n type RadiusTokens,\n} from \"./tokens/radius\";\n\nexport {\n shadow,\n type ShadowTokens,\n} from \"./tokens/shadow\";\n\nexport {\n border,\n borderWidth,\n borderStyle,\n type BorderTokens,\n} from \"./tokens/border\";\n\nexport {\n zIndex,\n type ZIndexTokens,\n} from \"./tokens/zindex\";\n\nexport {\n animation,\n duration,\n easing,\n type AnimationTokens,\n} from \"./tokens/animation\";\n\nexport {\n breakpoint,\n type BreakpointTokens,\n} from \"./tokens/breakpoint\";\n\nexport {\n opacity,\n type OpacityTokens,\n} from \"./tokens/opacity\";\n\n// ── Aggregated token object ───────────────────────────────────────────\nimport { color } from \"./tokens/color\";\nimport { spacing } from \"./tokens/spacing\";\nimport { typography } from \"./tokens/typography\";\nimport { radius } from \"./tokens/radius\";\nimport { shadow } from \"./tokens/shadow\";\nimport { border } from \"./tokens/border\";\nimport { zIndex } from \"./tokens/zindex\";\nimport { animation } from \"./tokens/animation\";\nimport { breakpoint } from \"./tokens/breakpoint\";\nimport { opacity } from \"./tokens/opacity\";\n\nexport const tokens = {\n color,\n spacing,\n typography,\n radius,\n shadow,\n border,\n zIndex,\n animation,\n breakpoint,\n opacity,\n} as const;\n\nexport type Tokens = typeof tokens;\n\n// ── CSS generation utilities ──────────────────────────────────────────\nexport {\n flattenTokens,\n toCSSRoot,\n generateCSSCategory,\n} from \"./css-generator\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tokens/color.ts","../src/tokens/spacing.ts","../src/tokens/typography.ts","../src/tokens/radius.ts","../src/tokens/shadow.ts","../src/tokens/border.ts","../src/tokens/zindex.ts","../src/tokens/animation.ts","../src/tokens/breakpoint.ts","../src/tokens/opacity.ts","../src/tokens/sizing.ts","../src/css-generator.ts","../src/index.ts"],"names":["tokens"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Color tokens\n * CSS custom property prefix: --tui-color-*\n *\n * Brand colors use naming: brand-<colorname>-<scale|default>\n * Scale: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950\n * Default = the base color from the brand palette\n */\nexport const color = {\n // ── Primitives (raw scale) ──────────────────────────────────────────\n\n primitive: {\n // ── White / Black (brand colors) ───────────────────────────────────\n white: \"#ffffff\",\n black: \"#000000\",\n\n // ── Brand White (scale from pure white) ────────────────────────────\n brandWhite50: \"#ffffff\",\n brandWhite100: \"#fefefe\",\n brandWhite200: \"#fafafa\",\n brandWhite300: \"#f5f5f5\",\n brandWhite400: \"#ededed\",\n brandWhite500: \"#e0e0e0\",\n brandWhite600: \"#c2c2c2\",\n brandWhite700: \"#9e9e9e\",\n brandWhite800: \"#757575\",\n brandWhite900: \"#4a4a4a\",\n brandWhite950: \"#2b2b2b\",\n brandWhiteDefault: \"#ffffff\", // base from brand palette\n\n // ── Brand Black (scale from pure black) ────────────────────────────\n brandBlack50: \"#f5f5f5\",\n brandBlack100: \"#e8e8e8\",\n brandBlack200: \"#d4d4d4\",\n brandBlack300: \"#b0b0b0\",\n brandBlack400: \"#8a8a8a\",\n brandBlack500: \"#616161\",\n brandBlack600: \"#4a4a4a\",\n brandBlack700: \"#363636\",\n brandBlack800: \"#242424\",\n brandBlack900: \"#141414\",\n brandBlack950: \"#000000\",\n brandBlackDefault: \"#000000\", // base from brand palette\n\n // ── Brand Navy (#0D132B base) ──────────────────────────────────────\n brandNavy50: \"#f3f4f7\",\n brandNavy100: \"#e7e8ef\",\n brandNavy200: \"#cacfe2\",\n brandNavy300: \"#9da8d2\",\n brandNavy400: \"#6377c5\",\n brandNavy500: \"#354eb0\",\n brandNavy600: \"#2c4091\",\n brandNavy700: \"#223272\",\n brandNavy800: \"#1a2656\",\n brandNavy900: \"#121a3b\",\n brandNavy950: \"#0a0e1f\",\n brandNavyDefault: \"#2c4091\", // base from brand palette\n\n // ── Brand Blue (#2563EB base) ──────────────────────────────────────\n brandBlue50: \"#eff4ff\",\n brandBlue100: \"#dbe6fe\",\n brandBlue200: \"#bfd3fe\",\n brandBlue300: \"#93b4fd\",\n brandBlue400: \"#6090fa\",\n brandBlue500: \"#3b6ef6\",\n brandBlue600: \"#2563eb\",\n brandBlue700: \"#1d50d8\",\n brandBlue800: \"#1e41af\",\n brandBlue900: \"#1e398a\",\n brandBlue950: \"#172554\",\n brandBlueDefault: \"#2563EB\", // base from brand palette\n\n // ── Brand Purple (#7C3AED base) ────────────────────────────────────\n brandPurple50: \"#f5f3ff\",\n brandPurple100: \"#ede8ff\",\n brandPurple200: \"#ddd6fe\",\n brandPurple300: \"#c4b5fc\",\n brandPurple400: \"#a78bfa\",\n brandPurple500: \"#8b5cf6\",\n brandPurple600: \"#7c3aed\",\n brandPurple700: \"#6d28d9\",\n brandPurple800: \"#5b21b6\",\n brandPurple900: \"#4c1d95\",\n brandPurple950: \"#2e1065\",\n brandPurpleDefault: \"#7C3AED\", // base from brand palette\n\n // ── Brand Pink (#D946EF base) ──────────────────────────────────────\n brandPink50: \"#fdf4ff\",\n brandPink100: \"#fae8ff\",\n brandPink200: \"#f5d0fe\",\n brandPink300: \"#f0abfc\",\n brandPink400: \"#e879f9\",\n brandPink500: \"#d946ef\",\n brandPink600: \"#c026d3\",\n brandPink700: \"#a21caf\",\n brandPink800: \"#86198f\",\n brandPink900: \"#701a75\",\n brandPink950: \"#4a044e\",\n brandPinkDefault: \"#c026d3\", // base from brand palette\n\n // ── Brand Gray (#4B5563 base) ──────────────────────────────────────\n brandGray50: \"#f9fafb\",\n brandGray100: \"#f3f4f6\",\n brandGray200: \"#e5e7eb\",\n brandGray300: \"#d1d5db\",\n brandGray400: \"#9ca3af\",\n brandGray500: \"#6b7280\",\n brandGray600: \"#4b5563\",\n brandGray700: \"#374151\",\n brandGray800: \"#1f2937\",\n brandGray900: \"#111827\",\n brandGray950: \"#030712\",\n brandGrayDefault: \"#4B5563\", // base from brand palette\n\n // ── Brand Light (#F3F4F6 base) ─────────────────────────────────────\n brandLight50: \"#fdfefe\",\n brandLight100: \"#f9fafb\",\n brandLight200: \"#f3f4f6\",\n brandLight300: \"#e5e7eb\",\n brandLight400: \"#d1d5db\",\n brandLight500: \"#9ca3af\",\n brandLight600: \"#6b7280\",\n brandLight700: \"#4b5563\",\n brandLight800: \"#374151\",\n brandLight900: \"#1f2937\",\n brandLight950: \"#111827\",\n brandLightDefault: \"#F3F4F6\", // base from brand palette\n\n // ── Success (green) ───────────────────────────────────────────────\n success50: \"#f0fdf4\",\n success100: \"#dcfce7\",\n success200: \"#bbf7d0\",\n success300: \"#86efac\",\n success400: \"#4ade80\",\n success500: \"#22c55e\",\n success600: \"#16a34a\",\n success700: \"#15803d\",\n success800: \"#166534\",\n success900: \"#14532d\",\n success950: \"#052e16\",\n successDefault: \"#16a34a\",\n\n // ── Warning (amber) ────────────────────────────────────────────────\n warning50: \"#fffbeb\",\n warning100: \"#fef3c7\",\n warning200: \"#fde68a\",\n warning300: \"#fcd34d\",\n warning400: \"#fbbf24\",\n warning500: \"#f59e0b\",\n warning600: \"#d97706\",\n warning700: \"#b45309\",\n warning800: \"#92400e\",\n warning900: \"#78350f\",\n warning950: \"#451a03\",\n warningDefault: \"#d97706\",\n\n // ── Danger (red) ───────────────────────────────────────────────────\n danger50: \"#fef2f2\",\n danger100: \"#fee2e2\",\n danger200: \"#fecaca\",\n danger300: \"#fca5a5\",\n danger400: \"#f87171\",\n danger500: \"#ef4444\",\n danger600: \"#dc2626\",\n danger700: \"#b91c1c\",\n danger800: \"#991b1b\",\n danger900: \"#7f1d1d\",\n danger950: \"#450a0a\",\n dangerDefault: \"#dc2626\",\n\n // ── Info (blue) ────────────────────────────────────────────────────\n info50: \"#eff6ff\",\n info100: \"#dbeafe\",\n info200: \"#bfdbfe\",\n info300: \"#93c5fd\",\n info400: \"#60a5fa\",\n info500: \"#3b82f6\",\n info600: \"#2563eb\",\n info700: \"#1d4ed8\",\n info800: \"#1e40af\",\n info900: \"#1e3a8a\",\n info950: \"#172554\",\n infoDefault: \"#2563eb\",\n\n // ── Teal (cyan/teal) ───────────────────────────────────────────────\n teal50: \"#f0fdfa\",\n teal100: \"#ccfbf1\",\n teal200: \"#99f6e4\",\n teal300: \"#5eead4\",\n teal400: \"#2dd4bf\",\n teal500: \"#14b8a6\",\n teal600: \"#0d9488\",\n teal700: \"#0f766e\",\n teal800: \"#115e59\",\n teal900: \"#134e4a\",\n teal950: \"#042f2e\",\n tealDefault: \"#0d9488\",\n\n // ── Orange (deep orange) ───────────────────────────────────────────\n orange50: \"#fff7ed\",\n orange100: \"#ffedd5\",\n orange200: \"#fed7aa\",\n orange300: \"#fdba74\",\n orange400: \"#fb923c\",\n orange500: \"#f97316\",\n orange600: \"#ea580c\",\n orange700: \"#c2410c\",\n orange800: \"#9a3412\",\n orange900: \"#7c2d12\",\n orange950: \"#431407\",\n orangeDefault: \"#ea580c\",\n\n // ── Rose (soft red/pink) ───────────────────────────────────────────\n rose50: \"#fff1f2\",\n rose100: \"#ffe4e6\",\n rose200: \"#fecdd3\",\n rose300: \"#fda4af\",\n rose400: \"#fb7185\",\n rose500: \"#f43f5e\",\n rose600: \"#e11d48\",\n rose700: \"#be123c\",\n rose800: \"#9f1239\",\n rose900: \"#881337\",\n rose950: \"#4c0519\",\n roseDefault: \"#e11d48\",\n\n // ── Indigo (deep blue-purple) ──────────────────────────────────────\n indigo50: \"#eef2ff\",\n indigo100: \"#e0e7ff\",\n indigo200: \"#c7d2fe\",\n indigo300: \"#a5b4fc\",\n indigo400: \"#818cf8\",\n indigo500: \"#6366f1\",\n indigo600: \"#4f46e5\",\n indigo700: \"#4338ca\",\n indigo800: \"#3730a3\",\n indigo900: \"#312e81\",\n indigo950: \"#1e1b4b\",\n indigoDefault: \"#4f46e5\",\n\n // ── Mint (fresh green) ─────────────────────────────────────────────\n mint50: \"#ecfdf5\",\n mint100: \"#d1fae5\",\n mint200: \"#a7f3d0\",\n mint300: \"#6ee7b7\",\n mint400: \"#34d399\",\n mint500: \"#10b981\",\n mint600: \"#059669\",\n mint700: \"#047857\",\n mint800: \"#065f46\",\n mint900: \"#064e3b\",\n mint950: \"#022c22\",\n mintDefault: \"#059669\",\n\n // ── Coal (dark neutral state) ──────────────────────────────────────\n coal50: \"#f8fafc\",\n coal100: \"#f1f5f9\",\n coal200: \"#e2e8f0\",\n coal300: \"#cbd5e1\",\n coal400: \"#94a3b8\",\n coal500: \"#64748b\",\n coal600: \"#475569\",\n coal700: \"#334155\",\n coal800: \"#1e293b\",\n coal900: \"#0f172a\",\n coal950: \"#020617\",\n coalDefault: \"#475569\",\n },\n\n // ── Semantic aliases ────────────────────────────────────────────────\n semantic: {\n // Background\n bgBase: \"var(--tui-color-white)\",\n bgSubtle: \"var(--tui-color-brand-black-50)\",\n bgMuted: \"var(--tui-color-brand-black-100)\",\n bgInverse: \"var(--tui-color-brand-black-900)\",\n\n // Surface (cards, panels)\n surfaceDefault: \"var(--tui-color-white)\",\n surfaceRaised: \"var(--tui-color-brand-black-50)\",\n surfaceOverlay: \"var(--tui-color-brand-black-100)\",\n\n // Text\n textPrimary: \"var(--tui-color-brand-black-900)\",\n textSecondary: \"var(--tui-color-brand-gray-600)\",\n textTertiary: \"var(--tui-color-brand-gray-400)\",\n textDisabled: \"var(--tui-color-brand-black-300)\",\n textInverse: \"var(--tui-color-white)\",\n textLink: \"var(--tui-color-brand-blue-600)\",\n textLinkHover: \"var(--tui-color-brand-blue-700)\",\n\n // Border\n borderDefault: \"var(--tui-color-brand-black-200)\",\n borderStrong: \"var(--tui-color-brand-black-400)\",\n borderFocus: \"var(--tui-color-brand-pink-500)\",\n\n // Focus ring\n focusRing: \"var(--tui-color-brand-black-500)\",\n focusRingGap: \"var(--tui-color-white)\",\n\n // Brand interactive (uses brand-pink as primary)\n brandDefault: \"var(--tui-color-brand-pink-600)\",\n brandHover: \"var(--tui-color-brand-pink-700)\",\n brandActive: \"var(--tui-color-brand-pink-800)\",\n brandSubtle: \"var(--tui-color-brand-pink-50)\",\n brandText: \"var(--tui-color-white)\",\n\n // Status\n successDefault: \"var(--tui-color-success-600)\",\n successSubtle: \"var(--tui-color-success-50)\",\n successText: \"var(--tui-color-success-700)\",\n\n warningDefault: \"var(--tui-color-warning-600)\",\n warningSubtle: \"var(--tui-color-warning-50)\",\n warningText: \"var(--tui-color-warning-700)\",\n\n dangerDefault: \"var(--tui-color-danger-600)\",\n dangerSubtle: \"var(--tui-color-danger-50)\",\n dangerText: \"var(--tui-color-danger-700)\",\n\n infoDefault: \"var(--tui-color-info-600)\",\n infoSubtle: \"var(--tui-color-info-50)\",\n infoText: \"var(--tui-color-info-700)\",\n\n tealDefault: \"var(--tui-color-teal-600)\",\n tealSubtle: \"var(--tui-color-teal-50)\",\n tealText: \"var(--tui-color-teal-700)\",\n\n orangeDefault: \"var(--tui-color-orange-600)\",\n orangeSubtle: \"var(--tui-color-orange-50)\",\n orangeText: \"var(--tui-color-orange-700)\",\n\n roseDefault: \"var(--tui-color-rose-600)\",\n roseSubtle: \"var(--tui-color-rose-50)\",\n roseText: \"var(--tui-color-rose-700)\",\n\n indigoDefault: \"var(--tui-color-indigo-600)\",\n indigoSubtle: \"var(--tui-color-indigo-50)\",\n indigoText: \"var(--tui-color-indigo-700)\",\n\n mintDefault: \"var(--tui-color-mint-600)\",\n mintSubtle: \"var(--tui-color-mint-50)\",\n mintText: \"var(--tui-color-mint-700)\",\n\n coalDefault: \"var(--tui-color-coal-600)\",\n coalSubtle: \"var(--tui-color-coal-50)\",\n coalText: \"var(--tui-color-coal-700)\",\n },\n} as const;\n\nexport type ColorTokens = typeof color;\n","/**\n * Spacing tokens — margin, padding, gap, inset\n * CSS custom property prefix: --tui-spacing-*\n *\n * Base unit: 4px (0.25rem)\n * Scale follows a 4pt grid.\n */\nexport const spacing = {\n 0: \"0px\",\n px: \"1px\",\n 0.5: \"0.125rem\", // 2px\n 1: \"0.25rem\", // 4px\n 1.5: \"0.375rem\", // 6px\n 2: \"0.5rem\", // 8px\n 2.5: \"0.625rem\", // 10px\n 3: \"0.75rem\", // 12px\n 3.5: \"0.875rem\", // 14px\n 4: \"1rem\", // 16px\n 5: \"1.25rem\", // 20px\n 6: \"1.5rem\", // 24px\n 7: \"1.75rem\", // 28px\n 8: \"2rem\", // 32px\n 9: \"2.25rem\", // 36px\n 10: \"2.5rem\", // 40px\n 11: \"2.75rem\", // 44px\n 12: \"3rem\", // 48px\n 14: \"3.5rem\", // 56px\n 16: \"4rem\", // 64px\n 20: \"5rem\", // 80px\n 24: \"6rem\", // 96px\n 28: \"7rem\", // 112px\n 32: \"8rem\", // 128px\n 36: \"9rem\", // 144px\n 40: \"10rem\", // 160px\n 44: \"11rem\", // 176px\n 48: \"12rem\", // 192px\n 52: \"13rem\", // 208px\n 56: \"14rem\", // 224px\n 60: \"15rem\", // 240px\n 64: \"16rem\", // 256px\n 72: \"18rem\", // 288px\n 80: \"20rem\", // 320px\n 96: \"24rem\", // 384px\n\n // ── Semantic defaults ────────────────────────────────────────────────\n componentXs: \"var(--tui-spacing-1)\", // tight inner padding (badges)\n componentSm: \"var(--tui-spacing-2)\", // small component padding\n componentMd: \"var(--tui-spacing-3)\", // default component padding\n componentLg: \"var(--tui-spacing-4)\", // large component padding\n componentXl: \"var(--tui-spacing-6)\", // extra-large component padding\n sectionSm: \"var(--tui-spacing-6)\", // small section spacing\n sectionMd: \"var(--tui-spacing-8)\", // default section spacing\n sectionLg: \"var(--tui-spacing-12)\", // large section spacing\n pagePadding: \"var(--tui-spacing-4)\", // page-level side padding\n cardPadding: \"var(--tui-spacing-4)\", // card/panel inner padding\n modalPadding: \"var(--tui-spacing-6)\", // modal/dialog inner padding\n stackSm: \"var(--tui-spacing-2)\", // small vertical stack gap\n stackMd: \"var(--tui-spacing-4)\", // default vertical stack gap\n stackLg: \"var(--tui-spacing-6)\", // large vertical stack gap\n inlineSm: \"var(--tui-spacing-2)\", // small horizontal gap\n inlineMd: \"var(--tui-spacing-3)\", // default horizontal gap\n inlineLg: \"var(--tui-spacing-4)\", // large horizontal gap\n} as const;\n\nexport type SpacingTokens = typeof spacing;\n","/**\n * Typography tokens — font family, size, weight, line-height, letter-spacing\n * CSS custom property prefix: --tui-font-*\n */\n\nexport const fontFamily = {\n sans: \"'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif\",\n serif: \"'Georgia', ui-serif, serif\",\n mono: \"'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace\",\n} as const;\n\n/**\n * Font size scale (rem)\n * Base: 16px = 1rem\n */\nexport const fontSize = {\n \"3xs\": \"0.5rem\", // 8px\n \"2xs\": \"0.625rem\", // 10px\n xs: \"0.75rem\", // 12px\n sm: \"0.875rem\", // 14px\n md: \"1rem\", // 16px ← base\n lg: \"1.125rem\", // 18px\n xl: \"1.25rem\", // 20px\n \"2xl\": \"1.5rem\", // 24px\n \"3xl\": \"1.875rem\", // 30px\n \"4xl\": \"2.25rem\", // 36px\n \"5xl\": \"3rem\", // 48px\n \"6xl\": \"3.75rem\", // 60px\n \"7xl\": \"4.5rem\", // 72px\n} as const;\n\nexport const fontWeight = {\n thin: \"100\",\n extralight: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\",\n} as const;\n\nexport const lineHeight = {\n none: \"1\",\n tight: \"1.25\",\n snug: \"1.375\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n \"3\": \"0.75rem\",\n \"3.5\": \"0.875rem\",\n \"4\": \"1rem\",\n \"4.5\": \"1.125rem\",\n \"5\": \"1.25rem\",\n \"5.5\": \"1.375rem\",\n \"6\": \"1.5rem\",\n \"6.5\": \"1.625rem\",\n \"7\": \"1.75rem\",\n \"7.5\": \"1.875rem\",\n \"8\": \"2rem\",\n \"8.5\": \"2.125rem\",\n \"9\": \"2.25rem\",\n \"9.5\": \"2.375rem\",\n \"10\": \"2.5rem\",\n} as const;\n\nexport const letterSpacing = {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n} as const;\n\nexport const typography = {\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n} as const;\n\nexport type TypographyTokens = typeof typography;\n","/**\n * Border radius tokens\n * CSS custom property prefix: --tui-radius-*\n */\nexport const radius = {\n none: \"0px\",\n xs: \"0.125rem\", // 2px\n sm: \"0.25rem\", // 4px\n md: \"0.375rem\", // 6px\n lg: \"0.5rem\", // 8px\n xl: \"0.75rem\", // 12px\n \"2xl\": \"1rem\", // 16px\n \"3xl\": \"1.5rem\", // 24px\n full: \"9999px\", // pill / circle\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-radius-md)\", // default component radius\n button: \"var(--tui-radius-md)\", // buttons\n input: \"var(--tui-radius-md)\", // inputs, selects, textareas\n card: \"var(--tui-radius-lg)\", // cards, panels\n badge: \"var(--tui-radius-full)\", // badges, tags, pills\n avatar: \"var(--tui-radius-full)\", // avatar circles\n modal: \"var(--tui-radius-xl)\", // modals, dialogs\n tooltip: \"var(--tui-radius-sm)\", // tooltips, popovers\n} as const;\n\nexport type RadiusTokens = typeof radius;\n","/**\n * Box shadow tokens\n * CSS custom property prefix: --tui-shadow-*\n *\n * Each shadow uses CSS variables internally so dark-mode overrides\n * only need to change the base variables, not every shadow value.\n */\nexport const shadow = {\n none: \"none\",\n\n // Elevation scale\n xs: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n sm: \"0 1px 3px 0 rgb(0 0 0 / 0.10), 0 1px 2px -1px rgb(0 0 0 / 0.10)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.10), 0 8px 10px -6px rgb(0 0 0 / 0.10)\",\n \"2xl\":\"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n\n // Inner\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n\n // Focus ring (used for keyboard focus)\n focus: \"0 0 0 3px var(--tui-color-brand-pink-300, #f0abfc)\",\n\n // Brand focus ring\n focusBrand: \"0 0 0 3px var(--tui-color-brand-pink-400, #e879f9)\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-shadow-sm)\", // default component shadow\n card: \"var(--tui-shadow-md)\", // cards, panels\n dropdown: \"var(--tui-shadow-lg)\", // dropdowns, menus\n modal: \"var(--tui-shadow-xl)\", // modals, dialogs\n tooltip: \"var(--tui-shadow-md)\", // tooltips, popovers\n button: \"var(--tui-shadow-xs)\", // subtle button lift\n} as const;\n\nexport type ShadowTokens = typeof shadow;\n","/**\n * Border width and style tokens\n * CSS custom property prefix: --tui-border-*\n */\nexport const borderWidth = {\n 0: \"0px\",\n 0.5: \"0.5px\",\n 1: \"1px\",\n 1.5: \"1.5px\",\n 2: \"2px\",\n 2.5: \"2.5px\",\n 3: \"3px\",\n 3.5: \"3.5px\",\n 4: \"4px\",\n 4.5: \"4.5px\",\n 5: \"5px\",\n 5.5: \"5.5px\",\n 8: \"8px\",\n none: \"0px\",\n xs: \"0.5px\",\n sm: \"1px\",\n md: \"2px\",\n lg: \"4px\",\n xl: \"6px\",\n \"2xl\": \"12px\",\n \"3xl\": \"18px\",\n \"4xl\": \"24px\",\n \"5xl\": \"30px\",\n \"6xl\": \"36px\",\n \"7xl\": \"42px\",\n \"8xl\": \"48px\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-border-width-1)\", // default border width\n input: \"var(--tui-border-width-1)\", // input/select border\n card: \"var(--tui-border-width-1)\", // card border\n divider: \"var(--tui-border-width-1)\", // horizontal/vertical dividers\n thick: \"var(--tui-border-width-2)\", // emphasized borders\n} as const;\n\nexport const borderStyle = {\n solid: \"solid\",\n dashed: \"dashed\",\n dotted: \"dotted\",\n none: \"none\",\n} as const;\n\nexport const border = {\n width: borderWidth,\n style: borderStyle,\n} as const;\n\nexport type BorderTokens = typeof border;\n","/**\n * Z-index tokens\n * CSS custom property prefix: --tui-z-*\n */\nexport const zIndex = {\n hide: \"-1\",\n auto: \"auto\",\n base: \"0\",\n raised: \"1\",\n dropdown: \"1000\",\n sticky: \"1100\",\n overlay: \"1200\",\n modal: \"1300\",\n popover: \"1400\",\n toast: \"1500\",\n tooltip: \"1600\",\n} as const;\n\nexport type ZIndexTokens = typeof zIndex;\n","/**\n * Animation / transition tokens\n * CSS custom property prefix: --tui-duration-*, --tui-ease-*\n */\nexport const duration = {\n instant: \"0ms\",\n fast: \"100ms\",\n normal: \"200ms\",\n slow: \"300ms\",\n slower: \"500ms\",\n slowest: \"700ms\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-duration-normal)\", // default transition duration\n hover: \"var(--tui-duration-fast)\", // hover state transitions\n modal: \"var(--tui-duration-slow)\", // modal open/close\n tooltip: \"var(--tui-duration-fast)\", // tooltip show/hide\n collapse: \"var(--tui-duration-slow)\", // accordion/collapse\n} as const;\n\nexport const easing = {\n linear: \"linear\",\n in: \"cubic-bezier(0.4, 0, 1, 1)\",\n out: \"cubic-bezier(0, 0, 0.2, 1)\",\n inOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n bounce: \"cubic-bezier(0.34, 1.56, 0.64, 1)\",\n spring: \"cubic-bezier(0.175, 0.885, 0.32, 1.275)\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-ease-in-out)\", // default easing\n enter: \"var(--tui-ease-out)\", // elements entering\n exit: \"var(--tui-ease-in)\", // elements exiting\n} as const;\n\nexport const animation = {\n duration,\n easing,\n} as const;\n\nexport type AnimationTokens = typeof animation;\n","/**\n * Breakpoint tokens\n * Used for media queries and responsive utilities.\n * CSS custom property prefix: --tui-screen-*\n */\nexport const breakpoint = {\n xs: \"320px\",\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\":\"1536px\",\n} as const;\n\nexport type BreakpointTokens = typeof breakpoint;\n","/**\n * Opacity tokens\n * CSS custom property prefix: --tui-opacity-*\n */\nexport const opacity = {\n 0: \"0\",\n 5: \"0.05\",\n 10: \"0.1\",\n 20: \"0.2\",\n 25: \"0.25\",\n 30: \"0.3\",\n 35: \"0.35\",\n 40: \"0.4\",\n 45: \"0.45\",\n 50: \"0.5\",\n 55: \"0.55\",\n 60: \"0.6\",\n 65: \"0.65\",\n 70: \"0.7\",\n 75: \"0.75\",\n 80: \"0.8\",\n 85: \"0.55\",\n 90: \"0.9\",\n 95: \"0.95\",\n 100: \"1\",\n} as const;\n\nexport type OpacityTokens = typeof opacity;\n","/**\n * Sizing tokens — fixed heights for interactive controls\n * CSS custom property prefix: --tui-size-*\n */\n\nexport const sizing = {\n xxs: \"0.875rem\", // 14px\n xs1: \"1rem\", // 16px\n xs2: \"1.25rem\", // 20px\n xs: \"1.5rem\", // 24px\n sm: \"2rem\", // 32px\n md: \"2.25rem\", // 36px\n lg: \"2.625rem\", // 42px\n xl: \"2.875rem\", // 46px\n} as const;\n\nexport type SizingTokens = typeof sizing;\n","/**\n * CSS variable generator\n *\n * Converts token objects into flat CSS custom properties\n * with the `--tui-` prefix.\n *\n * Supports nested objects with kebab-case key joining:\n * color.primitive.primary500 → --tui-color-primary-500\n */\n\ntype TokenValue = string | number;\ntype TokenObject = { [key: string]: TokenValue | TokenObject };\n\n/**\n * Converts a camelCase or PascalCase key segment to kebab-case.\n * e.g. \"primary500\" → \"primary-500\"\n * \"fontFamily\" → \"font-family\"\n * \"2xl\" → \"2xl\" (already fine)\n */\nfunction toKebab(str: string): string {\n return str\n // Decimal dots → underscores: \"0.5\" → \"0_5\"\n // (dots are technically valid in CSS custom props but esbuild's minifier rejects them)\n .replace(/\\./g, \"_\")\n // camelCase → kebab: \"fontFamily\" → \"font-family\"\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n // letter→digit boundary only (NOT digit→letter, so \"2xl\" stays \"2xl\")\n .replace(/([a-zA-Z])(\\d)/g, \"$1-$2\")\n .toLowerCase();\n}\n\n/**\n * Flatten a nested token object to a flat map of CSS variable name → value.\n *\n * @param obj Token object (can be nested)\n * @param prefix Current CSS variable prefix (default: \"--tui\")\n * @param skipKeys Keys to skip one level deep (e.g. \"primitive\" in color)\n */\nexport function flattenTokens(\n obj: TokenObject,\n prefix = \"--tui\",\n skipKeys: string[] = [],\n): Record<string, string> {\n const result: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n const segment = toKebab(key);\n const varName = skipKeys.includes(key)\n ? prefix // collapse this level\n : `${prefix}-${segment}`;\n\n if (typeof value === \"object\" && value !== null) {\n Object.assign(result, flattenTokens(value as TokenObject, varName, []));\n } else {\n result[varName] = String(value);\n }\n }\n\n return result;\n}\n\n/**\n * Render a flat token map to a CSS `:root { }` block string.\n */\nexport function toCSSRoot(\n flatTokens: Record<string, string>,\n selector = \":root\",\n): string {\n const lines = Object.entries(flatTokens)\n .map(([prop, value]) => ` ${prop}: ${value};`)\n .join(\"\\n\");\n return `${selector} {\\n${lines}\\n}\\n`;\n}\n\n/**\n * Generate the full tokens CSS string for a given token category.\n */\nexport function generateCSSCategory(\n categoryName: string,\n tokens: TokenObject,\n selector = \":root\",\n skipKeys: string[] = [],\n): string {\n const prefix = `--tui-${toKebab(categoryName)}`;\n const flat = flattenTokens(tokens, prefix, skipKeys);\n return toCSSRoot(flat, selector);\n}\n","/**\n * @tantuui/tokens — public API\n *\n * Usage:\n * import { color, spacing, typography, tokens } from \"@tantuui/tokens\";\n * import { generateAllCSS } from \"@tantuui/tokens\";\n * import tuiPreset from \"@tantuui/tokens/tailwind-preset\";\n */\n\n// ── Token objects ─────────────────────────────────────────────────────\nexport {\n color,\n type ColorTokens,\n} from \"./tokens/color\";\n\nexport {\n spacing,\n type SpacingTokens,\n} from \"./tokens/spacing\";\n\nexport {\n typography,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n type TypographyTokens,\n} from \"./tokens/typography\";\n\nexport {\n radius,\n type RadiusTokens,\n} from \"./tokens/radius\";\n\nexport {\n shadow,\n type ShadowTokens,\n} from \"./tokens/shadow\";\n\nexport {\n border,\n borderWidth,\n borderStyle,\n type BorderTokens,\n} from \"./tokens/border\";\n\nexport {\n zIndex,\n type ZIndexTokens,\n} from \"./tokens/zindex\";\n\nexport {\n animation,\n duration,\n easing,\n type AnimationTokens,\n} from \"./tokens/animation\";\n\nexport {\n breakpoint,\n type BreakpointTokens,\n} from \"./tokens/breakpoint\";\n\nexport {\n opacity,\n type OpacityTokens,\n} from \"./tokens/opacity\";\n\nexport {\n sizing,\n type SizingTokens,\n} from \"./tokens/sizing\";\n\n// ── Aggregated token object ───────────────────────────────────────────\nimport { color } from \"./tokens/color\";\nimport { spacing } from \"./tokens/spacing\";\nimport { typography } from \"./tokens/typography\";\nimport { radius } from \"./tokens/radius\";\nimport { shadow } from \"./tokens/shadow\";\nimport { border } from \"./tokens/border\";\nimport { zIndex } from \"./tokens/zindex\";\nimport { animation } from \"./tokens/animation\";\nimport { breakpoint } from \"./tokens/breakpoint\";\nimport { opacity } from \"./tokens/opacity\";\nimport { sizing } from \"./tokens/sizing\";\n\nexport const tokens = {\n color,\n spacing,\n typography,\n radius,\n shadow,\n border,\n zIndex,\n animation,\n breakpoint,\n opacity,\n sizing,\n} as const;\n\nexport type Tokens = typeof tokens;\n\n// ── CSS generation utilities ──────────────────────────────────────────\nexport {\n flattenTokens,\n toCSSRoot,\n generateCSSCategory,\n} from \"./css-generator\";\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -428,6 +428,8 @@ var fontFamily = {
|
|
|
428
428
|
mono: "'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace"
|
|
429
429
|
};
|
|
430
430
|
var fontSize = {
|
|
431
|
+
"3xs": "0.5rem",
|
|
432
|
+
// 8px
|
|
431
433
|
"2xs": "0.625rem",
|
|
432
434
|
// 10px
|
|
433
435
|
xs: "0.75rem",
|
|
@@ -472,12 +474,19 @@ var lineHeight = {
|
|
|
472
474
|
relaxed: "1.625",
|
|
473
475
|
loose: "2",
|
|
474
476
|
"3": "0.75rem",
|
|
477
|
+
"3.5": "0.875rem",
|
|
475
478
|
"4": "1rem",
|
|
479
|
+
"4.5": "1.125rem",
|
|
476
480
|
"5": "1.25rem",
|
|
481
|
+
"5.5": "1.375rem",
|
|
477
482
|
"6": "1.5rem",
|
|
483
|
+
"6.5": "1.625rem",
|
|
478
484
|
"7": "1.75rem",
|
|
485
|
+
"7.5": "1.875rem",
|
|
479
486
|
"8": "2rem",
|
|
487
|
+
"8.5": "2.125rem",
|
|
480
488
|
"9": "2.25rem",
|
|
489
|
+
"9.5": "2.375rem",
|
|
481
490
|
"10": "2.5rem"
|
|
482
491
|
};
|
|
483
492
|
var letterSpacing = {
|
|
@@ -705,6 +714,26 @@ var opacity = {
|
|
|
705
714
|
100: "1"
|
|
706
715
|
};
|
|
707
716
|
|
|
717
|
+
// src/tokens/sizing.ts
|
|
718
|
+
var sizing = {
|
|
719
|
+
xxs: "0.875rem",
|
|
720
|
+
// 14px
|
|
721
|
+
xs1: "1rem",
|
|
722
|
+
// 16px
|
|
723
|
+
xs2: "1.25rem",
|
|
724
|
+
// 20px
|
|
725
|
+
xs: "1.5rem",
|
|
726
|
+
// 24px
|
|
727
|
+
sm: "2rem",
|
|
728
|
+
// 32px
|
|
729
|
+
md: "2.25rem",
|
|
730
|
+
// 36px
|
|
731
|
+
lg: "2.625rem",
|
|
732
|
+
// 42px
|
|
733
|
+
xl: "2.875rem"
|
|
734
|
+
// 46px
|
|
735
|
+
};
|
|
736
|
+
|
|
708
737
|
// src/css-generator.ts
|
|
709
738
|
function toKebab(str) {
|
|
710
739
|
return str.replace(/\./g, "_").replace(/([a-z])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").replace(/([a-zA-Z])(\d)/g, "$1-$2").toLowerCase();
|
|
@@ -746,9 +775,10 @@ var tokens = {
|
|
|
746
775
|
zIndex,
|
|
747
776
|
animation,
|
|
748
777
|
breakpoint,
|
|
749
|
-
opacity
|
|
778
|
+
opacity,
|
|
779
|
+
sizing
|
|
750
780
|
};
|
|
751
781
|
|
|
752
|
-
export { animation, border, borderStyle, borderWidth, breakpoint, color, duration, easing, flattenTokens, fontFamily, fontSize, fontWeight, generateCSSCategory, letterSpacing, lineHeight, opacity, radius, shadow, spacing, toCSSRoot, tokens, typography, zIndex };
|
|
782
|
+
export { animation, border, borderStyle, borderWidth, breakpoint, color, duration, easing, flattenTokens, fontFamily, fontSize, fontWeight, generateCSSCategory, letterSpacing, lineHeight, opacity, radius, shadow, sizing, spacing, toCSSRoot, tokens, typography, zIndex };
|
|
753
783
|
//# sourceMappingURL=index.mjs.map
|
|
754
784
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tokens/color.ts","../src/tokens/spacing.ts","../src/tokens/typography.ts","../src/tokens/radius.ts","../src/tokens/shadow.ts","../src/tokens/border.ts","../src/tokens/zindex.ts","../src/tokens/animation.ts","../src/tokens/breakpoint.ts","../src/tokens/opacity.ts","../src/css-generator.ts","../src/index.ts"],"names":["tokens"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Color tokens\n * CSS custom property prefix: --tui-color-*\n *\n * Brand colors use naming: brand-<colorname>-<scale|default>\n * Scale: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950\n * Default = the base color from the brand palette\n */\nexport const color = {\n // ── Primitives (raw scale) ──────────────────────────────────────────\n\n primitive: {\n // ── White / Black (brand colors) ───────────────────────────────────\n white: \"#ffffff\",\n black: \"#000000\",\n\n // ── Brand White (scale from pure white) ────────────────────────────\n brandWhite50: \"#ffffff\",\n brandWhite100: \"#fefefe\",\n brandWhite200: \"#fafafa\",\n brandWhite300: \"#f5f5f5\",\n brandWhite400: \"#ededed\",\n brandWhite500: \"#e0e0e0\",\n brandWhite600: \"#c2c2c2\",\n brandWhite700: \"#9e9e9e\",\n brandWhite800: \"#757575\",\n brandWhite900: \"#4a4a4a\",\n brandWhite950: \"#2b2b2b\",\n brandWhiteDefault: \"#ffffff\", // base from brand palette\n\n // ── Brand Black (scale from pure black) ────────────────────────────\n brandBlack50: \"#f5f5f5\",\n brandBlack100: \"#e8e8e8\",\n brandBlack200: \"#d4d4d4\",\n brandBlack300: \"#b0b0b0\",\n brandBlack400: \"#8a8a8a\",\n brandBlack500: \"#616161\",\n brandBlack600: \"#4a4a4a\",\n brandBlack700: \"#363636\",\n brandBlack800: \"#242424\",\n brandBlack900: \"#141414\",\n brandBlack950: \"#000000\",\n brandBlackDefault: \"#000000\", // base from brand palette\n\n // ── Brand Navy (#0D132B base) ──────────────────────────────────────\n brandNavy50: \"#f3f4f7\",\n brandNavy100: \"#e7e8ef\",\n brandNavy200: \"#cacfe2\",\n brandNavy300: \"#9da8d2\",\n brandNavy400: \"#6377c5\",\n brandNavy500: \"#354eb0\",\n brandNavy600: \"#2c4091\",\n brandNavy700: \"#223272\",\n brandNavy800: \"#1a2656\",\n brandNavy900: \"#121a3b\",\n brandNavy950: \"#0a0e1f\",\n brandNavyDefault: \"#2c4091\", // base from brand palette\n\n // ── Brand Blue (#2563EB base) ──────────────────────────────────────\n brandBlue50: \"#eff4ff\",\n brandBlue100: \"#dbe6fe\",\n brandBlue200: \"#bfd3fe\",\n brandBlue300: \"#93b4fd\",\n brandBlue400: \"#6090fa\",\n brandBlue500: \"#3b6ef6\",\n brandBlue600: \"#2563eb\",\n brandBlue700: \"#1d50d8\",\n brandBlue800: \"#1e41af\",\n brandBlue900: \"#1e398a\",\n brandBlue950: \"#172554\",\n brandBlueDefault: \"#2563EB\", // base from brand palette\n\n // ── Brand Purple (#7C3AED base) ────────────────────────────────────\n brandPurple50: \"#f5f3ff\",\n brandPurple100: \"#ede8ff\",\n brandPurple200: \"#ddd6fe\",\n brandPurple300: \"#c4b5fc\",\n brandPurple400: \"#a78bfa\",\n brandPurple500: \"#8b5cf6\",\n brandPurple600: \"#7c3aed\",\n brandPurple700: \"#6d28d9\",\n brandPurple800: \"#5b21b6\",\n brandPurple900: \"#4c1d95\",\n brandPurple950: \"#2e1065\",\n brandPurpleDefault: \"#7C3AED\", // base from brand palette\n\n // ── Brand Pink (#D946EF base) ──────────────────────────────────────\n brandPink50: \"#fdf4ff\",\n brandPink100: \"#fae8ff\",\n brandPink200: \"#f5d0fe\",\n brandPink300: \"#f0abfc\",\n brandPink400: \"#e879f9\",\n brandPink500: \"#d946ef\",\n brandPink600: \"#c026d3\",\n brandPink700: \"#a21caf\",\n brandPink800: \"#86198f\",\n brandPink900: \"#701a75\",\n brandPink950: \"#4a044e\",\n brandPinkDefault: \"#c026d3\", // base from brand palette\n\n // ── Brand Gray (#4B5563 base) ──────────────────────────────────────\n brandGray50: \"#f9fafb\",\n brandGray100: \"#f3f4f6\",\n brandGray200: \"#e5e7eb\",\n brandGray300: \"#d1d5db\",\n brandGray400: \"#9ca3af\",\n brandGray500: \"#6b7280\",\n brandGray600: \"#4b5563\",\n brandGray700: \"#374151\",\n brandGray800: \"#1f2937\",\n brandGray900: \"#111827\",\n brandGray950: \"#030712\",\n brandGrayDefault: \"#4B5563\", // base from brand palette\n\n // ── Brand Light (#F3F4F6 base) ─────────────────────────────────────\n brandLight50: \"#fdfefe\",\n brandLight100: \"#f9fafb\",\n brandLight200: \"#f3f4f6\",\n brandLight300: \"#e5e7eb\",\n brandLight400: \"#d1d5db\",\n brandLight500: \"#9ca3af\",\n brandLight600: \"#6b7280\",\n brandLight700: \"#4b5563\",\n brandLight800: \"#374151\",\n brandLight900: \"#1f2937\",\n brandLight950: \"#111827\",\n brandLightDefault: \"#F3F4F6\", // base from brand palette\n\n // ── Success (green) ───────────────────────────────────────────────\n success50: \"#f0fdf4\",\n success100: \"#dcfce7\",\n success200: \"#bbf7d0\",\n success300: \"#86efac\",\n success400: \"#4ade80\",\n success500: \"#22c55e\",\n success600: \"#16a34a\",\n success700: \"#15803d\",\n success800: \"#166534\",\n success900: \"#14532d\",\n success950: \"#052e16\",\n successDefault: \"#16a34a\",\n\n // ── Warning (amber) ────────────────────────────────────────────────\n warning50: \"#fffbeb\",\n warning100: \"#fef3c7\",\n warning200: \"#fde68a\",\n warning300: \"#fcd34d\",\n warning400: \"#fbbf24\",\n warning500: \"#f59e0b\",\n warning600: \"#d97706\",\n warning700: \"#b45309\",\n warning800: \"#92400e\",\n warning900: \"#78350f\",\n warning950: \"#451a03\",\n warningDefault: \"#d97706\",\n\n // ── Danger (red) ───────────────────────────────────────────────────\n danger50: \"#fef2f2\",\n danger100: \"#fee2e2\",\n danger200: \"#fecaca\",\n danger300: \"#fca5a5\",\n danger400: \"#f87171\",\n danger500: \"#ef4444\",\n danger600: \"#dc2626\",\n danger700: \"#b91c1c\",\n danger800: \"#991b1b\",\n danger900: \"#7f1d1d\",\n danger950: \"#450a0a\",\n dangerDefault: \"#dc2626\",\n\n // ── Info (blue) ────────────────────────────────────────────────────\n info50: \"#eff6ff\",\n info100: \"#dbeafe\",\n info200: \"#bfdbfe\",\n info300: \"#93c5fd\",\n info400: \"#60a5fa\",\n info500: \"#3b82f6\",\n info600: \"#2563eb\",\n info700: \"#1d4ed8\",\n info800: \"#1e40af\",\n info900: \"#1e3a8a\",\n info950: \"#172554\",\n infoDefault: \"#2563eb\",\n\n // ── Teal (cyan/teal) ───────────────────────────────────────────────\n teal50: \"#f0fdfa\",\n teal100: \"#ccfbf1\",\n teal200: \"#99f6e4\",\n teal300: \"#5eead4\",\n teal400: \"#2dd4bf\",\n teal500: \"#14b8a6\",\n teal600: \"#0d9488\",\n teal700: \"#0f766e\",\n teal800: \"#115e59\",\n teal900: \"#134e4a\",\n teal950: \"#042f2e\",\n tealDefault: \"#0d9488\",\n\n // ── Orange (deep orange) ───────────────────────────────────────────\n orange50: \"#fff7ed\",\n orange100: \"#ffedd5\",\n orange200: \"#fed7aa\",\n orange300: \"#fdba74\",\n orange400: \"#fb923c\",\n orange500: \"#f97316\",\n orange600: \"#ea580c\",\n orange700: \"#c2410c\",\n orange800: \"#9a3412\",\n orange900: \"#7c2d12\",\n orange950: \"#431407\",\n orangeDefault: \"#ea580c\",\n\n // ── Rose (soft red/pink) ───────────────────────────────────────────\n rose50: \"#fff1f2\",\n rose100: \"#ffe4e6\",\n rose200: \"#fecdd3\",\n rose300: \"#fda4af\",\n rose400: \"#fb7185\",\n rose500: \"#f43f5e\",\n rose600: \"#e11d48\",\n rose700: \"#be123c\",\n rose800: \"#9f1239\",\n rose900: \"#881337\",\n rose950: \"#4c0519\",\n roseDefault: \"#e11d48\",\n\n // ── Indigo (deep blue-purple) ──────────────────────────────────────\n indigo50: \"#eef2ff\",\n indigo100: \"#e0e7ff\",\n indigo200: \"#c7d2fe\",\n indigo300: \"#a5b4fc\",\n indigo400: \"#818cf8\",\n indigo500: \"#6366f1\",\n indigo600: \"#4f46e5\",\n indigo700: \"#4338ca\",\n indigo800: \"#3730a3\",\n indigo900: \"#312e81\",\n indigo950: \"#1e1b4b\",\n indigoDefault: \"#4f46e5\",\n\n // ── Mint (fresh green) ─────────────────────────────────────────────\n mint50: \"#ecfdf5\",\n mint100: \"#d1fae5\",\n mint200: \"#a7f3d0\",\n mint300: \"#6ee7b7\",\n mint400: \"#34d399\",\n mint500: \"#10b981\",\n mint600: \"#059669\",\n mint700: \"#047857\",\n mint800: \"#065f46\",\n mint900: \"#064e3b\",\n mint950: \"#022c22\",\n mintDefault: \"#059669\",\n\n // ── Coal (dark neutral state) ──────────────────────────────────────\n coal50: \"#f8fafc\",\n coal100: \"#f1f5f9\",\n coal200: \"#e2e8f0\",\n coal300: \"#cbd5e1\",\n coal400: \"#94a3b8\",\n coal500: \"#64748b\",\n coal600: \"#475569\",\n coal700: \"#334155\",\n coal800: \"#1e293b\",\n coal900: \"#0f172a\",\n coal950: \"#020617\",\n coalDefault: \"#475569\",\n },\n\n // ── Semantic aliases ────────────────────────────────────────────────\n semantic: {\n // Background\n bgBase: \"var(--tui-color-white)\",\n bgSubtle: \"var(--tui-color-brand-black-50)\",\n bgMuted: \"var(--tui-color-brand-black-100)\",\n bgInverse: \"var(--tui-color-brand-black-900)\",\n\n // Surface (cards, panels)\n surfaceDefault: \"var(--tui-color-white)\",\n surfaceRaised: \"var(--tui-color-brand-black-50)\",\n surfaceOverlay: \"var(--tui-color-brand-black-100)\",\n\n // Text\n textPrimary: \"var(--tui-color-brand-black-900)\",\n textSecondary: \"var(--tui-color-brand-gray-600)\",\n textTertiary: \"var(--tui-color-brand-gray-400)\",\n textDisabled: \"var(--tui-color-brand-black-300)\",\n textInverse: \"var(--tui-color-white)\",\n textLink: \"var(--tui-color-brand-blue-600)\",\n textLinkHover: \"var(--tui-color-brand-blue-700)\",\n\n // Border\n borderDefault: \"var(--tui-color-brand-black-200)\",\n borderStrong: \"var(--tui-color-brand-black-400)\",\n borderFocus: \"var(--tui-color-brand-pink-500)\",\n\n // Focus ring\n focusRing: \"var(--tui-color-brand-black-500)\",\n focusRingGap: \"var(--tui-color-white)\",\n\n // Brand interactive (uses brand-pink as primary)\n brandDefault: \"var(--tui-color-brand-pink-600)\",\n brandHover: \"var(--tui-color-brand-pink-700)\",\n brandActive: \"var(--tui-color-brand-pink-800)\",\n brandSubtle: \"var(--tui-color-brand-pink-50)\",\n brandText: \"var(--tui-color-white)\",\n\n // Status\n successDefault: \"var(--tui-color-success-600)\",\n successSubtle: \"var(--tui-color-success-50)\",\n successText: \"var(--tui-color-success-700)\",\n\n warningDefault: \"var(--tui-color-warning-600)\",\n warningSubtle: \"var(--tui-color-warning-50)\",\n warningText: \"var(--tui-color-warning-700)\",\n\n dangerDefault: \"var(--tui-color-danger-600)\",\n dangerSubtle: \"var(--tui-color-danger-50)\",\n dangerText: \"var(--tui-color-danger-700)\",\n\n infoDefault: \"var(--tui-color-info-600)\",\n infoSubtle: \"var(--tui-color-info-50)\",\n infoText: \"var(--tui-color-info-700)\",\n\n tealDefault: \"var(--tui-color-teal-600)\",\n tealSubtle: \"var(--tui-color-teal-50)\",\n tealText: \"var(--tui-color-teal-700)\",\n\n orangeDefault: \"var(--tui-color-orange-600)\",\n orangeSubtle: \"var(--tui-color-orange-50)\",\n orangeText: \"var(--tui-color-orange-700)\",\n\n roseDefault: \"var(--tui-color-rose-600)\",\n roseSubtle: \"var(--tui-color-rose-50)\",\n roseText: \"var(--tui-color-rose-700)\",\n\n indigoDefault: \"var(--tui-color-indigo-600)\",\n indigoSubtle: \"var(--tui-color-indigo-50)\",\n indigoText: \"var(--tui-color-indigo-700)\",\n\n mintDefault: \"var(--tui-color-mint-600)\",\n mintSubtle: \"var(--tui-color-mint-50)\",\n mintText: \"var(--tui-color-mint-700)\",\n\n coalDefault: \"var(--tui-color-coal-600)\",\n coalSubtle: \"var(--tui-color-coal-50)\",\n coalText: \"var(--tui-color-coal-700)\",\n },\n} as const;\n\nexport type ColorTokens = typeof color;\n","/**\n * Spacing tokens — margin, padding, gap, inset\n * CSS custom property prefix: --tui-spacing-*\n *\n * Base unit: 4px (0.25rem)\n * Scale follows a 4pt grid.\n */\nexport const spacing = {\n 0: \"0px\",\n px: \"1px\",\n 0.5: \"0.125rem\", // 2px\n 1: \"0.25rem\", // 4px\n 1.5: \"0.375rem\", // 6px\n 2: \"0.5rem\", // 8px\n 2.5: \"0.625rem\", // 10px\n 3: \"0.75rem\", // 12px\n 3.5: \"0.875rem\", // 14px\n 4: \"1rem\", // 16px\n 5: \"1.25rem\", // 20px\n 6: \"1.5rem\", // 24px\n 7: \"1.75rem\", // 28px\n 8: \"2rem\", // 32px\n 9: \"2.25rem\", // 36px\n 10: \"2.5rem\", // 40px\n 11: \"2.75rem\", // 44px\n 12: \"3rem\", // 48px\n 14: \"3.5rem\", // 56px\n 16: \"4rem\", // 64px\n 20: \"5rem\", // 80px\n 24: \"6rem\", // 96px\n 28: \"7rem\", // 112px\n 32: \"8rem\", // 128px\n 36: \"9rem\", // 144px\n 40: \"10rem\", // 160px\n 44: \"11rem\", // 176px\n 48: \"12rem\", // 192px\n 52: \"13rem\", // 208px\n 56: \"14rem\", // 224px\n 60: \"15rem\", // 240px\n 64: \"16rem\", // 256px\n 72: \"18rem\", // 288px\n 80: \"20rem\", // 320px\n 96: \"24rem\", // 384px\n\n // ── Semantic defaults ────────────────────────────────────────────────\n componentXs: \"var(--tui-spacing-1)\", // tight inner padding (badges)\n componentSm: \"var(--tui-spacing-2)\", // small component padding\n componentMd: \"var(--tui-spacing-3)\", // default component padding\n componentLg: \"var(--tui-spacing-4)\", // large component padding\n componentXl: \"var(--tui-spacing-6)\", // extra-large component padding\n sectionSm: \"var(--tui-spacing-6)\", // small section spacing\n sectionMd: \"var(--tui-spacing-8)\", // default section spacing\n sectionLg: \"var(--tui-spacing-12)\", // large section spacing\n pagePadding: \"var(--tui-spacing-4)\", // page-level side padding\n cardPadding: \"var(--tui-spacing-4)\", // card/panel inner padding\n modalPadding: \"var(--tui-spacing-6)\", // modal/dialog inner padding\n stackSm: \"var(--tui-spacing-2)\", // small vertical stack gap\n stackMd: \"var(--tui-spacing-4)\", // default vertical stack gap\n stackLg: \"var(--tui-spacing-6)\", // large vertical stack gap\n inlineSm: \"var(--tui-spacing-2)\", // small horizontal gap\n inlineMd: \"var(--tui-spacing-3)\", // default horizontal gap\n inlineLg: \"var(--tui-spacing-4)\", // large horizontal gap\n} as const;\n\nexport type SpacingTokens = typeof spacing;\n","/**\n * Typography tokens — font family, size, weight, line-height, letter-spacing\n * CSS custom property prefix: --tui-font-*\n */\n\nexport const fontFamily = {\n sans: \"'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif\",\n serif: \"'Georgia', ui-serif, serif\",\n mono: \"'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace\",\n} as const;\n\n/**\n * Font size scale (rem)\n * Base: 16px = 1rem\n */\nexport const fontSize = {\n \"2xs\": \"0.625rem\", // 10px\n xs: \"0.75rem\", // 12px\n sm: \"0.875rem\", // 14px\n md: \"1rem\", // 16px ← base\n lg: \"1.125rem\", // 18px\n xl: \"1.25rem\", // 20px\n \"2xl\": \"1.5rem\", // 24px\n \"3xl\": \"1.875rem\", // 30px\n \"4xl\": \"2.25rem\", // 36px\n \"5xl\": \"3rem\", // 48px\n \"6xl\": \"3.75rem\", // 60px\n \"7xl\": \"4.5rem\", // 72px\n} as const;\n\nexport const fontWeight = {\n thin: \"100\",\n extralight: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\",\n} as const;\n\nexport const lineHeight = {\n none: \"1\",\n tight: \"1.25\",\n snug: \"1.375\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n \"3\": \"0.75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"9\": \"2.25rem\",\n \"10\": \"2.5rem\",\n} as const;\n\nexport const letterSpacing = {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n} as const;\n\nexport const typography = {\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n} as const;\n\nexport type TypographyTokens = typeof typography;\n","/**\n * Border radius tokens\n * CSS custom property prefix: --tui-radius-*\n */\nexport const radius = {\n none: \"0px\",\n xs: \"0.125rem\", // 2px\n sm: \"0.25rem\", // 4px\n md: \"0.375rem\", // 6px\n lg: \"0.5rem\", // 8px\n xl: \"0.75rem\", // 12px\n \"2xl\": \"1rem\", // 16px\n \"3xl\": \"1.5rem\", // 24px\n full: \"9999px\", // pill / circle\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-radius-md)\", // default component radius\n button: \"var(--tui-radius-md)\", // buttons\n input: \"var(--tui-radius-md)\", // inputs, selects, textareas\n card: \"var(--tui-radius-lg)\", // cards, panels\n badge: \"var(--tui-radius-full)\", // badges, tags, pills\n avatar: \"var(--tui-radius-full)\", // avatar circles\n modal: \"var(--tui-radius-xl)\", // modals, dialogs\n tooltip: \"var(--tui-radius-sm)\", // tooltips, popovers\n} as const;\n\nexport type RadiusTokens = typeof radius;\n","/**\n * Box shadow tokens\n * CSS custom property prefix: --tui-shadow-*\n *\n * Each shadow uses CSS variables internally so dark-mode overrides\n * only need to change the base variables, not every shadow value.\n */\nexport const shadow = {\n none: \"none\",\n\n // Elevation scale\n xs: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n sm: \"0 1px 3px 0 rgb(0 0 0 / 0.10), 0 1px 2px -1px rgb(0 0 0 / 0.10)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.10), 0 8px 10px -6px rgb(0 0 0 / 0.10)\",\n \"2xl\":\"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n\n // Inner\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n\n // Focus ring (used for keyboard focus)\n focus: \"0 0 0 3px var(--tui-color-brand-pink-300, #f0abfc)\",\n\n // Brand focus ring\n focusBrand: \"0 0 0 3px var(--tui-color-brand-pink-400, #e879f9)\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-shadow-sm)\", // default component shadow\n card: \"var(--tui-shadow-md)\", // cards, panels\n dropdown: \"var(--tui-shadow-lg)\", // dropdowns, menus\n modal: \"var(--tui-shadow-xl)\", // modals, dialogs\n tooltip: \"var(--tui-shadow-md)\", // tooltips, popovers\n button: \"var(--tui-shadow-xs)\", // subtle button lift\n} as const;\n\nexport type ShadowTokens = typeof shadow;\n","/**\n * Border width and style tokens\n * CSS custom property prefix: --tui-border-*\n */\nexport const borderWidth = {\n 0: \"0px\",\n 0.5: \"0.5px\",\n 1: \"1px\",\n 1.5: \"1.5px\",\n 2: \"2px\",\n 2.5: \"2.5px\",\n 3: \"3px\",\n 3.5: \"3.5px\",\n 4: \"4px\",\n 4.5: \"4.5px\",\n 5: \"5px\",\n 5.5: \"5.5px\",\n 8: \"8px\",\n none: \"0px\",\n xs: \"0.5px\",\n sm: \"1px\",\n md: \"2px\",\n lg: \"4px\",\n xl: \"6px\",\n \"2xl\": \"12px\",\n \"3xl\": \"18px\",\n \"4xl\": \"24px\",\n \"5xl\": \"30px\",\n \"6xl\": \"36px\",\n \"7xl\": \"42px\",\n \"8xl\": \"48px\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-border-width-1)\", // default border width\n input: \"var(--tui-border-width-1)\", // input/select border\n card: \"var(--tui-border-width-1)\", // card border\n divider: \"var(--tui-border-width-1)\", // horizontal/vertical dividers\n thick: \"var(--tui-border-width-2)\", // emphasized borders\n} as const;\n\nexport const borderStyle = {\n solid: \"solid\",\n dashed: \"dashed\",\n dotted: \"dotted\",\n none: \"none\",\n} as const;\n\nexport const border = {\n width: borderWidth,\n style: borderStyle,\n} as const;\n\nexport type BorderTokens = typeof border;\n","/**\n * Z-index tokens\n * CSS custom property prefix: --tui-z-*\n */\nexport const zIndex = {\n hide: \"-1\",\n auto: \"auto\",\n base: \"0\",\n raised: \"1\",\n dropdown: \"1000\",\n sticky: \"1100\",\n overlay: \"1200\",\n modal: \"1300\",\n popover: \"1400\",\n toast: \"1500\",\n tooltip: \"1600\",\n} as const;\n\nexport type ZIndexTokens = typeof zIndex;\n","/**\n * Animation / transition tokens\n * CSS custom property prefix: --tui-duration-*, --tui-ease-*\n */\nexport const duration = {\n instant: \"0ms\",\n fast: \"100ms\",\n normal: \"200ms\",\n slow: \"300ms\",\n slower: \"500ms\",\n slowest: \"700ms\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-duration-normal)\", // default transition duration\n hover: \"var(--tui-duration-fast)\", // hover state transitions\n modal: \"var(--tui-duration-slow)\", // modal open/close\n tooltip: \"var(--tui-duration-fast)\", // tooltip show/hide\n collapse: \"var(--tui-duration-slow)\", // accordion/collapse\n} as const;\n\nexport const easing = {\n linear: \"linear\",\n in: \"cubic-bezier(0.4, 0, 1, 1)\",\n out: \"cubic-bezier(0, 0, 0.2, 1)\",\n inOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n bounce: \"cubic-bezier(0.34, 1.56, 0.64, 1)\",\n spring: \"cubic-bezier(0.175, 0.885, 0.32, 1.275)\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-ease-in-out)\", // default easing\n enter: \"var(--tui-ease-out)\", // elements entering\n exit: \"var(--tui-ease-in)\", // elements exiting\n} as const;\n\nexport const animation = {\n duration,\n easing,\n} as const;\n\nexport type AnimationTokens = typeof animation;\n","/**\n * Breakpoint tokens\n * Used for media queries and responsive utilities.\n * CSS custom property prefix: --tui-screen-*\n */\nexport const breakpoint = {\n xs: \"320px\",\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\":\"1536px\",\n} as const;\n\nexport type BreakpointTokens = typeof breakpoint;\n","/**\n * Opacity tokens\n * CSS custom property prefix: --tui-opacity-*\n */\nexport const opacity = {\n 0: \"0\",\n 5: \"0.05\",\n 10: \"0.1\",\n 20: \"0.2\",\n 25: \"0.25\",\n 30: \"0.3\",\n 35: \"0.35\",\n 40: \"0.4\",\n 45: \"0.45\",\n 50: \"0.5\",\n 55: \"0.55\",\n 60: \"0.6\",\n 65: \"0.65\",\n 70: \"0.7\",\n 75: \"0.75\",\n 80: \"0.8\",\n 85: \"0.55\",\n 90: \"0.9\",\n 95: \"0.95\",\n 100: \"1\",\n} as const;\n\nexport type OpacityTokens = typeof opacity;\n","/**\n * CSS variable generator\n *\n * Converts token objects into flat CSS custom properties\n * with the `--tui-` prefix.\n *\n * Supports nested objects with kebab-case key joining:\n * color.primitive.primary500 → --tui-color-primary-500\n */\n\ntype TokenValue = string | number;\ntype TokenObject = { [key: string]: TokenValue | TokenObject };\n\n/**\n * Converts a camelCase or PascalCase key segment to kebab-case.\n * e.g. \"primary500\" → \"primary-500\"\n * \"fontFamily\" → \"font-family\"\n * \"2xl\" → \"2xl\" (already fine)\n */\nfunction toKebab(str: string): string {\n return str\n // Decimal dots → underscores: \"0.5\" → \"0_5\"\n // (dots are technically valid in CSS custom props but esbuild's minifier rejects them)\n .replace(/\\./g, \"_\")\n // camelCase → kebab: \"fontFamily\" → \"font-family\"\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n // letter→digit boundary only (NOT digit→letter, so \"2xl\" stays \"2xl\")\n .replace(/([a-zA-Z])(\\d)/g, \"$1-$2\")\n .toLowerCase();\n}\n\n/**\n * Flatten a nested token object to a flat map of CSS variable name → value.\n *\n * @param obj Token object (can be nested)\n * @param prefix Current CSS variable prefix (default: \"--tui\")\n * @param skipKeys Keys to skip one level deep (e.g. \"primitive\" in color)\n */\nexport function flattenTokens(\n obj: TokenObject,\n prefix = \"--tui\",\n skipKeys: string[] = [],\n): Record<string, string> {\n const result: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n const segment = toKebab(key);\n const varName = skipKeys.includes(key)\n ? prefix // collapse this level\n : `${prefix}-${segment}`;\n\n if (typeof value === \"object\" && value !== null) {\n Object.assign(result, flattenTokens(value as TokenObject, varName, []));\n } else {\n result[varName] = String(value);\n }\n }\n\n return result;\n}\n\n/**\n * Render a flat token map to a CSS `:root { }` block string.\n */\nexport function toCSSRoot(\n flatTokens: Record<string, string>,\n selector = \":root\",\n): string {\n const lines = Object.entries(flatTokens)\n .map(([prop, value]) => ` ${prop}: ${value};`)\n .join(\"\\n\");\n return `${selector} {\\n${lines}\\n}\\n`;\n}\n\n/**\n * Generate the full tokens CSS string for a given token category.\n */\nexport function generateCSSCategory(\n categoryName: string,\n tokens: TokenObject,\n selector = \":root\",\n skipKeys: string[] = [],\n): string {\n const prefix = `--tui-${toKebab(categoryName)}`;\n const flat = flattenTokens(tokens, prefix, skipKeys);\n return toCSSRoot(flat, selector);\n}\n","/**\n * @tantuui/tokens — public API\n *\n * Usage:\n * import { color, spacing, typography, tokens } from \"@tantuui/tokens\";\n * import { generateAllCSS } from \"@tantuui/tokens\";\n * import tuiPreset from \"@tantuui/tokens/tailwind-preset\";\n */\n\n// ── Token objects ─────────────────────────────────────────────────────\nexport {\n color,\n type ColorTokens,\n} from \"./tokens/color\";\n\nexport {\n spacing,\n type SpacingTokens,\n} from \"./tokens/spacing\";\n\nexport {\n typography,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n type TypographyTokens,\n} from \"./tokens/typography\";\n\nexport {\n radius,\n type RadiusTokens,\n} from \"./tokens/radius\";\n\nexport {\n shadow,\n type ShadowTokens,\n} from \"./tokens/shadow\";\n\nexport {\n border,\n borderWidth,\n borderStyle,\n type BorderTokens,\n} from \"./tokens/border\";\n\nexport {\n zIndex,\n type ZIndexTokens,\n} from \"./tokens/zindex\";\n\nexport {\n animation,\n duration,\n easing,\n type AnimationTokens,\n} from \"./tokens/animation\";\n\nexport {\n breakpoint,\n type BreakpointTokens,\n} from \"./tokens/breakpoint\";\n\nexport {\n opacity,\n type OpacityTokens,\n} from \"./tokens/opacity\";\n\n// ── Aggregated token object ───────────────────────────────────────────\nimport { color } from \"./tokens/color\";\nimport { spacing } from \"./tokens/spacing\";\nimport { typography } from \"./tokens/typography\";\nimport { radius } from \"./tokens/radius\";\nimport { shadow } from \"./tokens/shadow\";\nimport { border } from \"./tokens/border\";\nimport { zIndex } from \"./tokens/zindex\";\nimport { animation } from \"./tokens/animation\";\nimport { breakpoint } from \"./tokens/breakpoint\";\nimport { opacity } from \"./tokens/opacity\";\n\nexport const tokens = {\n color,\n spacing,\n typography,\n radius,\n shadow,\n border,\n zIndex,\n animation,\n breakpoint,\n opacity,\n} as const;\n\nexport type Tokens = typeof tokens;\n\n// ── CSS generation utilities ──────────────────────────────────────────\nexport {\n flattenTokens,\n toCSSRoot,\n generateCSSCategory,\n} from \"./css-generator\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tokens/color.ts","../src/tokens/spacing.ts","../src/tokens/typography.ts","../src/tokens/radius.ts","../src/tokens/shadow.ts","../src/tokens/border.ts","../src/tokens/zindex.ts","../src/tokens/animation.ts","../src/tokens/breakpoint.ts","../src/tokens/opacity.ts","../src/tokens/sizing.ts","../src/css-generator.ts","../src/index.ts"],"names":["tokens"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Color tokens\n * CSS custom property prefix: --tui-color-*\n *\n * Brand colors use naming: brand-<colorname>-<scale|default>\n * Scale: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950\n * Default = the base color from the brand palette\n */\nexport const color = {\n // ── Primitives (raw scale) ──────────────────────────────────────────\n\n primitive: {\n // ── White / Black (brand colors) ───────────────────────────────────\n white: \"#ffffff\",\n black: \"#000000\",\n\n // ── Brand White (scale from pure white) ────────────────────────────\n brandWhite50: \"#ffffff\",\n brandWhite100: \"#fefefe\",\n brandWhite200: \"#fafafa\",\n brandWhite300: \"#f5f5f5\",\n brandWhite400: \"#ededed\",\n brandWhite500: \"#e0e0e0\",\n brandWhite600: \"#c2c2c2\",\n brandWhite700: \"#9e9e9e\",\n brandWhite800: \"#757575\",\n brandWhite900: \"#4a4a4a\",\n brandWhite950: \"#2b2b2b\",\n brandWhiteDefault: \"#ffffff\", // base from brand palette\n\n // ── Brand Black (scale from pure black) ────────────────────────────\n brandBlack50: \"#f5f5f5\",\n brandBlack100: \"#e8e8e8\",\n brandBlack200: \"#d4d4d4\",\n brandBlack300: \"#b0b0b0\",\n brandBlack400: \"#8a8a8a\",\n brandBlack500: \"#616161\",\n brandBlack600: \"#4a4a4a\",\n brandBlack700: \"#363636\",\n brandBlack800: \"#242424\",\n brandBlack900: \"#141414\",\n brandBlack950: \"#000000\",\n brandBlackDefault: \"#000000\", // base from brand palette\n\n // ── Brand Navy (#0D132B base) ──────────────────────────────────────\n brandNavy50: \"#f3f4f7\",\n brandNavy100: \"#e7e8ef\",\n brandNavy200: \"#cacfe2\",\n brandNavy300: \"#9da8d2\",\n brandNavy400: \"#6377c5\",\n brandNavy500: \"#354eb0\",\n brandNavy600: \"#2c4091\",\n brandNavy700: \"#223272\",\n brandNavy800: \"#1a2656\",\n brandNavy900: \"#121a3b\",\n brandNavy950: \"#0a0e1f\",\n brandNavyDefault: \"#2c4091\", // base from brand palette\n\n // ── Brand Blue (#2563EB base) ──────────────────────────────────────\n brandBlue50: \"#eff4ff\",\n brandBlue100: \"#dbe6fe\",\n brandBlue200: \"#bfd3fe\",\n brandBlue300: \"#93b4fd\",\n brandBlue400: \"#6090fa\",\n brandBlue500: \"#3b6ef6\",\n brandBlue600: \"#2563eb\",\n brandBlue700: \"#1d50d8\",\n brandBlue800: \"#1e41af\",\n brandBlue900: \"#1e398a\",\n brandBlue950: \"#172554\",\n brandBlueDefault: \"#2563EB\", // base from brand palette\n\n // ── Brand Purple (#7C3AED base) ────────────────────────────────────\n brandPurple50: \"#f5f3ff\",\n brandPurple100: \"#ede8ff\",\n brandPurple200: \"#ddd6fe\",\n brandPurple300: \"#c4b5fc\",\n brandPurple400: \"#a78bfa\",\n brandPurple500: \"#8b5cf6\",\n brandPurple600: \"#7c3aed\",\n brandPurple700: \"#6d28d9\",\n brandPurple800: \"#5b21b6\",\n brandPurple900: \"#4c1d95\",\n brandPurple950: \"#2e1065\",\n brandPurpleDefault: \"#7C3AED\", // base from brand palette\n\n // ── Brand Pink (#D946EF base) ──────────────────────────────────────\n brandPink50: \"#fdf4ff\",\n brandPink100: \"#fae8ff\",\n brandPink200: \"#f5d0fe\",\n brandPink300: \"#f0abfc\",\n brandPink400: \"#e879f9\",\n brandPink500: \"#d946ef\",\n brandPink600: \"#c026d3\",\n brandPink700: \"#a21caf\",\n brandPink800: \"#86198f\",\n brandPink900: \"#701a75\",\n brandPink950: \"#4a044e\",\n brandPinkDefault: \"#c026d3\", // base from brand palette\n\n // ── Brand Gray (#4B5563 base) ──────────────────────────────────────\n brandGray50: \"#f9fafb\",\n brandGray100: \"#f3f4f6\",\n brandGray200: \"#e5e7eb\",\n brandGray300: \"#d1d5db\",\n brandGray400: \"#9ca3af\",\n brandGray500: \"#6b7280\",\n brandGray600: \"#4b5563\",\n brandGray700: \"#374151\",\n brandGray800: \"#1f2937\",\n brandGray900: \"#111827\",\n brandGray950: \"#030712\",\n brandGrayDefault: \"#4B5563\", // base from brand palette\n\n // ── Brand Light (#F3F4F6 base) ─────────────────────────────────────\n brandLight50: \"#fdfefe\",\n brandLight100: \"#f9fafb\",\n brandLight200: \"#f3f4f6\",\n brandLight300: \"#e5e7eb\",\n brandLight400: \"#d1d5db\",\n brandLight500: \"#9ca3af\",\n brandLight600: \"#6b7280\",\n brandLight700: \"#4b5563\",\n brandLight800: \"#374151\",\n brandLight900: \"#1f2937\",\n brandLight950: \"#111827\",\n brandLightDefault: \"#F3F4F6\", // base from brand palette\n\n // ── Success (green) ───────────────────────────────────────────────\n success50: \"#f0fdf4\",\n success100: \"#dcfce7\",\n success200: \"#bbf7d0\",\n success300: \"#86efac\",\n success400: \"#4ade80\",\n success500: \"#22c55e\",\n success600: \"#16a34a\",\n success700: \"#15803d\",\n success800: \"#166534\",\n success900: \"#14532d\",\n success950: \"#052e16\",\n successDefault: \"#16a34a\",\n\n // ── Warning (amber) ────────────────────────────────────────────────\n warning50: \"#fffbeb\",\n warning100: \"#fef3c7\",\n warning200: \"#fde68a\",\n warning300: \"#fcd34d\",\n warning400: \"#fbbf24\",\n warning500: \"#f59e0b\",\n warning600: \"#d97706\",\n warning700: \"#b45309\",\n warning800: \"#92400e\",\n warning900: \"#78350f\",\n warning950: \"#451a03\",\n warningDefault: \"#d97706\",\n\n // ── Danger (red) ───────────────────────────────────────────────────\n danger50: \"#fef2f2\",\n danger100: \"#fee2e2\",\n danger200: \"#fecaca\",\n danger300: \"#fca5a5\",\n danger400: \"#f87171\",\n danger500: \"#ef4444\",\n danger600: \"#dc2626\",\n danger700: \"#b91c1c\",\n danger800: \"#991b1b\",\n danger900: \"#7f1d1d\",\n danger950: \"#450a0a\",\n dangerDefault: \"#dc2626\",\n\n // ── Info (blue) ────────────────────────────────────────────────────\n info50: \"#eff6ff\",\n info100: \"#dbeafe\",\n info200: \"#bfdbfe\",\n info300: \"#93c5fd\",\n info400: \"#60a5fa\",\n info500: \"#3b82f6\",\n info600: \"#2563eb\",\n info700: \"#1d4ed8\",\n info800: \"#1e40af\",\n info900: \"#1e3a8a\",\n info950: \"#172554\",\n infoDefault: \"#2563eb\",\n\n // ── Teal (cyan/teal) ───────────────────────────────────────────────\n teal50: \"#f0fdfa\",\n teal100: \"#ccfbf1\",\n teal200: \"#99f6e4\",\n teal300: \"#5eead4\",\n teal400: \"#2dd4bf\",\n teal500: \"#14b8a6\",\n teal600: \"#0d9488\",\n teal700: \"#0f766e\",\n teal800: \"#115e59\",\n teal900: \"#134e4a\",\n teal950: \"#042f2e\",\n tealDefault: \"#0d9488\",\n\n // ── Orange (deep orange) ───────────────────────────────────────────\n orange50: \"#fff7ed\",\n orange100: \"#ffedd5\",\n orange200: \"#fed7aa\",\n orange300: \"#fdba74\",\n orange400: \"#fb923c\",\n orange500: \"#f97316\",\n orange600: \"#ea580c\",\n orange700: \"#c2410c\",\n orange800: \"#9a3412\",\n orange900: \"#7c2d12\",\n orange950: \"#431407\",\n orangeDefault: \"#ea580c\",\n\n // ── Rose (soft red/pink) ───────────────────────────────────────────\n rose50: \"#fff1f2\",\n rose100: \"#ffe4e6\",\n rose200: \"#fecdd3\",\n rose300: \"#fda4af\",\n rose400: \"#fb7185\",\n rose500: \"#f43f5e\",\n rose600: \"#e11d48\",\n rose700: \"#be123c\",\n rose800: \"#9f1239\",\n rose900: \"#881337\",\n rose950: \"#4c0519\",\n roseDefault: \"#e11d48\",\n\n // ── Indigo (deep blue-purple) ──────────────────────────────────────\n indigo50: \"#eef2ff\",\n indigo100: \"#e0e7ff\",\n indigo200: \"#c7d2fe\",\n indigo300: \"#a5b4fc\",\n indigo400: \"#818cf8\",\n indigo500: \"#6366f1\",\n indigo600: \"#4f46e5\",\n indigo700: \"#4338ca\",\n indigo800: \"#3730a3\",\n indigo900: \"#312e81\",\n indigo950: \"#1e1b4b\",\n indigoDefault: \"#4f46e5\",\n\n // ── Mint (fresh green) ─────────────────────────────────────────────\n mint50: \"#ecfdf5\",\n mint100: \"#d1fae5\",\n mint200: \"#a7f3d0\",\n mint300: \"#6ee7b7\",\n mint400: \"#34d399\",\n mint500: \"#10b981\",\n mint600: \"#059669\",\n mint700: \"#047857\",\n mint800: \"#065f46\",\n mint900: \"#064e3b\",\n mint950: \"#022c22\",\n mintDefault: \"#059669\",\n\n // ── Coal (dark neutral state) ──────────────────────────────────────\n coal50: \"#f8fafc\",\n coal100: \"#f1f5f9\",\n coal200: \"#e2e8f0\",\n coal300: \"#cbd5e1\",\n coal400: \"#94a3b8\",\n coal500: \"#64748b\",\n coal600: \"#475569\",\n coal700: \"#334155\",\n coal800: \"#1e293b\",\n coal900: \"#0f172a\",\n coal950: \"#020617\",\n coalDefault: \"#475569\",\n },\n\n // ── Semantic aliases ────────────────────────────────────────────────\n semantic: {\n // Background\n bgBase: \"var(--tui-color-white)\",\n bgSubtle: \"var(--tui-color-brand-black-50)\",\n bgMuted: \"var(--tui-color-brand-black-100)\",\n bgInverse: \"var(--tui-color-brand-black-900)\",\n\n // Surface (cards, panels)\n surfaceDefault: \"var(--tui-color-white)\",\n surfaceRaised: \"var(--tui-color-brand-black-50)\",\n surfaceOverlay: \"var(--tui-color-brand-black-100)\",\n\n // Text\n textPrimary: \"var(--tui-color-brand-black-900)\",\n textSecondary: \"var(--tui-color-brand-gray-600)\",\n textTertiary: \"var(--tui-color-brand-gray-400)\",\n textDisabled: \"var(--tui-color-brand-black-300)\",\n textInverse: \"var(--tui-color-white)\",\n textLink: \"var(--tui-color-brand-blue-600)\",\n textLinkHover: \"var(--tui-color-brand-blue-700)\",\n\n // Border\n borderDefault: \"var(--tui-color-brand-black-200)\",\n borderStrong: \"var(--tui-color-brand-black-400)\",\n borderFocus: \"var(--tui-color-brand-pink-500)\",\n\n // Focus ring\n focusRing: \"var(--tui-color-brand-black-500)\",\n focusRingGap: \"var(--tui-color-white)\",\n\n // Brand interactive (uses brand-pink as primary)\n brandDefault: \"var(--tui-color-brand-pink-600)\",\n brandHover: \"var(--tui-color-brand-pink-700)\",\n brandActive: \"var(--tui-color-brand-pink-800)\",\n brandSubtle: \"var(--tui-color-brand-pink-50)\",\n brandText: \"var(--tui-color-white)\",\n\n // Status\n successDefault: \"var(--tui-color-success-600)\",\n successSubtle: \"var(--tui-color-success-50)\",\n successText: \"var(--tui-color-success-700)\",\n\n warningDefault: \"var(--tui-color-warning-600)\",\n warningSubtle: \"var(--tui-color-warning-50)\",\n warningText: \"var(--tui-color-warning-700)\",\n\n dangerDefault: \"var(--tui-color-danger-600)\",\n dangerSubtle: \"var(--tui-color-danger-50)\",\n dangerText: \"var(--tui-color-danger-700)\",\n\n infoDefault: \"var(--tui-color-info-600)\",\n infoSubtle: \"var(--tui-color-info-50)\",\n infoText: \"var(--tui-color-info-700)\",\n\n tealDefault: \"var(--tui-color-teal-600)\",\n tealSubtle: \"var(--tui-color-teal-50)\",\n tealText: \"var(--tui-color-teal-700)\",\n\n orangeDefault: \"var(--tui-color-orange-600)\",\n orangeSubtle: \"var(--tui-color-orange-50)\",\n orangeText: \"var(--tui-color-orange-700)\",\n\n roseDefault: \"var(--tui-color-rose-600)\",\n roseSubtle: \"var(--tui-color-rose-50)\",\n roseText: \"var(--tui-color-rose-700)\",\n\n indigoDefault: \"var(--tui-color-indigo-600)\",\n indigoSubtle: \"var(--tui-color-indigo-50)\",\n indigoText: \"var(--tui-color-indigo-700)\",\n\n mintDefault: \"var(--tui-color-mint-600)\",\n mintSubtle: \"var(--tui-color-mint-50)\",\n mintText: \"var(--tui-color-mint-700)\",\n\n coalDefault: \"var(--tui-color-coal-600)\",\n coalSubtle: \"var(--tui-color-coal-50)\",\n coalText: \"var(--tui-color-coal-700)\",\n },\n} as const;\n\nexport type ColorTokens = typeof color;\n","/**\n * Spacing tokens — margin, padding, gap, inset\n * CSS custom property prefix: --tui-spacing-*\n *\n * Base unit: 4px (0.25rem)\n * Scale follows a 4pt grid.\n */\nexport const spacing = {\n 0: \"0px\",\n px: \"1px\",\n 0.5: \"0.125rem\", // 2px\n 1: \"0.25rem\", // 4px\n 1.5: \"0.375rem\", // 6px\n 2: \"0.5rem\", // 8px\n 2.5: \"0.625rem\", // 10px\n 3: \"0.75rem\", // 12px\n 3.5: \"0.875rem\", // 14px\n 4: \"1rem\", // 16px\n 5: \"1.25rem\", // 20px\n 6: \"1.5rem\", // 24px\n 7: \"1.75rem\", // 28px\n 8: \"2rem\", // 32px\n 9: \"2.25rem\", // 36px\n 10: \"2.5rem\", // 40px\n 11: \"2.75rem\", // 44px\n 12: \"3rem\", // 48px\n 14: \"3.5rem\", // 56px\n 16: \"4rem\", // 64px\n 20: \"5rem\", // 80px\n 24: \"6rem\", // 96px\n 28: \"7rem\", // 112px\n 32: \"8rem\", // 128px\n 36: \"9rem\", // 144px\n 40: \"10rem\", // 160px\n 44: \"11rem\", // 176px\n 48: \"12rem\", // 192px\n 52: \"13rem\", // 208px\n 56: \"14rem\", // 224px\n 60: \"15rem\", // 240px\n 64: \"16rem\", // 256px\n 72: \"18rem\", // 288px\n 80: \"20rem\", // 320px\n 96: \"24rem\", // 384px\n\n // ── Semantic defaults ────────────────────────────────────────────────\n componentXs: \"var(--tui-spacing-1)\", // tight inner padding (badges)\n componentSm: \"var(--tui-spacing-2)\", // small component padding\n componentMd: \"var(--tui-spacing-3)\", // default component padding\n componentLg: \"var(--tui-spacing-4)\", // large component padding\n componentXl: \"var(--tui-spacing-6)\", // extra-large component padding\n sectionSm: \"var(--tui-spacing-6)\", // small section spacing\n sectionMd: \"var(--tui-spacing-8)\", // default section spacing\n sectionLg: \"var(--tui-spacing-12)\", // large section spacing\n pagePadding: \"var(--tui-spacing-4)\", // page-level side padding\n cardPadding: \"var(--tui-spacing-4)\", // card/panel inner padding\n modalPadding: \"var(--tui-spacing-6)\", // modal/dialog inner padding\n stackSm: \"var(--tui-spacing-2)\", // small vertical stack gap\n stackMd: \"var(--tui-spacing-4)\", // default vertical stack gap\n stackLg: \"var(--tui-spacing-6)\", // large vertical stack gap\n inlineSm: \"var(--tui-spacing-2)\", // small horizontal gap\n inlineMd: \"var(--tui-spacing-3)\", // default horizontal gap\n inlineLg: \"var(--tui-spacing-4)\", // large horizontal gap\n} as const;\n\nexport type SpacingTokens = typeof spacing;\n","/**\n * Typography tokens — font family, size, weight, line-height, letter-spacing\n * CSS custom property prefix: --tui-font-*\n */\n\nexport const fontFamily = {\n sans: \"'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif\",\n serif: \"'Georgia', ui-serif, serif\",\n mono: \"'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace\",\n} as const;\n\n/**\n * Font size scale (rem)\n * Base: 16px = 1rem\n */\nexport const fontSize = {\n \"3xs\": \"0.5rem\", // 8px\n \"2xs\": \"0.625rem\", // 10px\n xs: \"0.75rem\", // 12px\n sm: \"0.875rem\", // 14px\n md: \"1rem\", // 16px ← base\n lg: \"1.125rem\", // 18px\n xl: \"1.25rem\", // 20px\n \"2xl\": \"1.5rem\", // 24px\n \"3xl\": \"1.875rem\", // 30px\n \"4xl\": \"2.25rem\", // 36px\n \"5xl\": \"3rem\", // 48px\n \"6xl\": \"3.75rem\", // 60px\n \"7xl\": \"4.5rem\", // 72px\n} as const;\n\nexport const fontWeight = {\n thin: \"100\",\n extralight: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\",\n} as const;\n\nexport const lineHeight = {\n none: \"1\",\n tight: \"1.25\",\n snug: \"1.375\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n \"3\": \"0.75rem\",\n \"3.5\": \"0.875rem\",\n \"4\": \"1rem\",\n \"4.5\": \"1.125rem\",\n \"5\": \"1.25rem\",\n \"5.5\": \"1.375rem\",\n \"6\": \"1.5rem\",\n \"6.5\": \"1.625rem\",\n \"7\": \"1.75rem\",\n \"7.5\": \"1.875rem\",\n \"8\": \"2rem\",\n \"8.5\": \"2.125rem\",\n \"9\": \"2.25rem\",\n \"9.5\": \"2.375rem\",\n \"10\": \"2.5rem\",\n} as const;\n\nexport const letterSpacing = {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n} as const;\n\nexport const typography = {\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n} as const;\n\nexport type TypographyTokens = typeof typography;\n","/**\n * Border radius tokens\n * CSS custom property prefix: --tui-radius-*\n */\nexport const radius = {\n none: \"0px\",\n xs: \"0.125rem\", // 2px\n sm: \"0.25rem\", // 4px\n md: \"0.375rem\", // 6px\n lg: \"0.5rem\", // 8px\n xl: \"0.75rem\", // 12px\n \"2xl\": \"1rem\", // 16px\n \"3xl\": \"1.5rem\", // 24px\n full: \"9999px\", // pill / circle\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-radius-md)\", // default component radius\n button: \"var(--tui-radius-md)\", // buttons\n input: \"var(--tui-radius-md)\", // inputs, selects, textareas\n card: \"var(--tui-radius-lg)\", // cards, panels\n badge: \"var(--tui-radius-full)\", // badges, tags, pills\n avatar: \"var(--tui-radius-full)\", // avatar circles\n modal: \"var(--tui-radius-xl)\", // modals, dialogs\n tooltip: \"var(--tui-radius-sm)\", // tooltips, popovers\n} as const;\n\nexport type RadiusTokens = typeof radius;\n","/**\n * Box shadow tokens\n * CSS custom property prefix: --tui-shadow-*\n *\n * Each shadow uses CSS variables internally so dark-mode overrides\n * only need to change the base variables, not every shadow value.\n */\nexport const shadow = {\n none: \"none\",\n\n // Elevation scale\n xs: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n sm: \"0 1px 3px 0 rgb(0 0 0 / 0.10), 0 1px 2px -1px rgb(0 0 0 / 0.10)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.10), 0 8px 10px -6px rgb(0 0 0 / 0.10)\",\n \"2xl\":\"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n\n // Inner\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n\n // Focus ring (used for keyboard focus)\n focus: \"0 0 0 3px var(--tui-color-brand-pink-300, #f0abfc)\",\n\n // Brand focus ring\n focusBrand: \"0 0 0 3px var(--tui-color-brand-pink-400, #e879f9)\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-shadow-sm)\", // default component shadow\n card: \"var(--tui-shadow-md)\", // cards, panels\n dropdown: \"var(--tui-shadow-lg)\", // dropdowns, menus\n modal: \"var(--tui-shadow-xl)\", // modals, dialogs\n tooltip: \"var(--tui-shadow-md)\", // tooltips, popovers\n button: \"var(--tui-shadow-xs)\", // subtle button lift\n} as const;\n\nexport type ShadowTokens = typeof shadow;\n","/**\n * Border width and style tokens\n * CSS custom property prefix: --tui-border-*\n */\nexport const borderWidth = {\n 0: \"0px\",\n 0.5: \"0.5px\",\n 1: \"1px\",\n 1.5: \"1.5px\",\n 2: \"2px\",\n 2.5: \"2.5px\",\n 3: \"3px\",\n 3.5: \"3.5px\",\n 4: \"4px\",\n 4.5: \"4.5px\",\n 5: \"5px\",\n 5.5: \"5.5px\",\n 8: \"8px\",\n none: \"0px\",\n xs: \"0.5px\",\n sm: \"1px\",\n md: \"2px\",\n lg: \"4px\",\n xl: \"6px\",\n \"2xl\": \"12px\",\n \"3xl\": \"18px\",\n \"4xl\": \"24px\",\n \"5xl\": \"30px\",\n \"6xl\": \"36px\",\n \"7xl\": \"42px\",\n \"8xl\": \"48px\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-border-width-1)\", // default border width\n input: \"var(--tui-border-width-1)\", // input/select border\n card: \"var(--tui-border-width-1)\", // card border\n divider: \"var(--tui-border-width-1)\", // horizontal/vertical dividers\n thick: \"var(--tui-border-width-2)\", // emphasized borders\n} as const;\n\nexport const borderStyle = {\n solid: \"solid\",\n dashed: \"dashed\",\n dotted: \"dotted\",\n none: \"none\",\n} as const;\n\nexport const border = {\n width: borderWidth,\n style: borderStyle,\n} as const;\n\nexport type BorderTokens = typeof border;\n","/**\n * Z-index tokens\n * CSS custom property prefix: --tui-z-*\n */\nexport const zIndex = {\n hide: \"-1\",\n auto: \"auto\",\n base: \"0\",\n raised: \"1\",\n dropdown: \"1000\",\n sticky: \"1100\",\n overlay: \"1200\",\n modal: \"1300\",\n popover: \"1400\",\n toast: \"1500\",\n tooltip: \"1600\",\n} as const;\n\nexport type ZIndexTokens = typeof zIndex;\n","/**\n * Animation / transition tokens\n * CSS custom property prefix: --tui-duration-*, --tui-ease-*\n */\nexport const duration = {\n instant: \"0ms\",\n fast: \"100ms\",\n normal: \"200ms\",\n slow: \"300ms\",\n slower: \"500ms\",\n slowest: \"700ms\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-duration-normal)\", // default transition duration\n hover: \"var(--tui-duration-fast)\", // hover state transitions\n modal: \"var(--tui-duration-slow)\", // modal open/close\n tooltip: \"var(--tui-duration-fast)\", // tooltip show/hide\n collapse: \"var(--tui-duration-slow)\", // accordion/collapse\n} as const;\n\nexport const easing = {\n linear: \"linear\",\n in: \"cubic-bezier(0.4, 0, 1, 1)\",\n out: \"cubic-bezier(0, 0, 0.2, 1)\",\n inOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n bounce: \"cubic-bezier(0.34, 1.56, 0.64, 1)\",\n spring: \"cubic-bezier(0.175, 0.885, 0.32, 1.275)\",\n\n // ── Semantic defaults ────────────────────────────────────────────────\n default: \"var(--tui-ease-in-out)\", // default easing\n enter: \"var(--tui-ease-out)\", // elements entering\n exit: \"var(--tui-ease-in)\", // elements exiting\n} as const;\n\nexport const animation = {\n duration,\n easing,\n} as const;\n\nexport type AnimationTokens = typeof animation;\n","/**\n * Breakpoint tokens\n * Used for media queries and responsive utilities.\n * CSS custom property prefix: --tui-screen-*\n */\nexport const breakpoint = {\n xs: \"320px\",\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\":\"1536px\",\n} as const;\n\nexport type BreakpointTokens = typeof breakpoint;\n","/**\n * Opacity tokens\n * CSS custom property prefix: --tui-opacity-*\n */\nexport const opacity = {\n 0: \"0\",\n 5: \"0.05\",\n 10: \"0.1\",\n 20: \"0.2\",\n 25: \"0.25\",\n 30: \"0.3\",\n 35: \"0.35\",\n 40: \"0.4\",\n 45: \"0.45\",\n 50: \"0.5\",\n 55: \"0.55\",\n 60: \"0.6\",\n 65: \"0.65\",\n 70: \"0.7\",\n 75: \"0.75\",\n 80: \"0.8\",\n 85: \"0.55\",\n 90: \"0.9\",\n 95: \"0.95\",\n 100: \"1\",\n} as const;\n\nexport type OpacityTokens = typeof opacity;\n","/**\n * Sizing tokens — fixed heights for interactive controls\n * CSS custom property prefix: --tui-size-*\n */\n\nexport const sizing = {\n xxs: \"0.875rem\", // 14px\n xs1: \"1rem\", // 16px\n xs2: \"1.25rem\", // 20px\n xs: \"1.5rem\", // 24px\n sm: \"2rem\", // 32px\n md: \"2.25rem\", // 36px\n lg: \"2.625rem\", // 42px\n xl: \"2.875rem\", // 46px\n} as const;\n\nexport type SizingTokens = typeof sizing;\n","/**\n * CSS variable generator\n *\n * Converts token objects into flat CSS custom properties\n * with the `--tui-` prefix.\n *\n * Supports nested objects with kebab-case key joining:\n * color.primitive.primary500 → --tui-color-primary-500\n */\n\ntype TokenValue = string | number;\ntype TokenObject = { [key: string]: TokenValue | TokenObject };\n\n/**\n * Converts a camelCase or PascalCase key segment to kebab-case.\n * e.g. \"primary500\" → \"primary-500\"\n * \"fontFamily\" → \"font-family\"\n * \"2xl\" → \"2xl\" (already fine)\n */\nfunction toKebab(str: string): string {\n return str\n // Decimal dots → underscores: \"0.5\" → \"0_5\"\n // (dots are technically valid in CSS custom props but esbuild's minifier rejects them)\n .replace(/\\./g, \"_\")\n // camelCase → kebab: \"fontFamily\" → \"font-family\"\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n // letter→digit boundary only (NOT digit→letter, so \"2xl\" stays \"2xl\")\n .replace(/([a-zA-Z])(\\d)/g, \"$1-$2\")\n .toLowerCase();\n}\n\n/**\n * Flatten a nested token object to a flat map of CSS variable name → value.\n *\n * @param obj Token object (can be nested)\n * @param prefix Current CSS variable prefix (default: \"--tui\")\n * @param skipKeys Keys to skip one level deep (e.g. \"primitive\" in color)\n */\nexport function flattenTokens(\n obj: TokenObject,\n prefix = \"--tui\",\n skipKeys: string[] = [],\n): Record<string, string> {\n const result: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n const segment = toKebab(key);\n const varName = skipKeys.includes(key)\n ? prefix // collapse this level\n : `${prefix}-${segment}`;\n\n if (typeof value === \"object\" && value !== null) {\n Object.assign(result, flattenTokens(value as TokenObject, varName, []));\n } else {\n result[varName] = String(value);\n }\n }\n\n return result;\n}\n\n/**\n * Render a flat token map to a CSS `:root { }` block string.\n */\nexport function toCSSRoot(\n flatTokens: Record<string, string>,\n selector = \":root\",\n): string {\n const lines = Object.entries(flatTokens)\n .map(([prop, value]) => ` ${prop}: ${value};`)\n .join(\"\\n\");\n return `${selector} {\\n${lines}\\n}\\n`;\n}\n\n/**\n * Generate the full tokens CSS string for a given token category.\n */\nexport function generateCSSCategory(\n categoryName: string,\n tokens: TokenObject,\n selector = \":root\",\n skipKeys: string[] = [],\n): string {\n const prefix = `--tui-${toKebab(categoryName)}`;\n const flat = flattenTokens(tokens, prefix, skipKeys);\n return toCSSRoot(flat, selector);\n}\n","/**\n * @tantuui/tokens — public API\n *\n * Usage:\n * import { color, spacing, typography, tokens } from \"@tantuui/tokens\";\n * import { generateAllCSS } from \"@tantuui/tokens\";\n * import tuiPreset from \"@tantuui/tokens/tailwind-preset\";\n */\n\n// ── Token objects ─────────────────────────────────────────────────────\nexport {\n color,\n type ColorTokens,\n} from \"./tokens/color\";\n\nexport {\n spacing,\n type SpacingTokens,\n} from \"./tokens/spacing\";\n\nexport {\n typography,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n type TypographyTokens,\n} from \"./tokens/typography\";\n\nexport {\n radius,\n type RadiusTokens,\n} from \"./tokens/radius\";\n\nexport {\n shadow,\n type ShadowTokens,\n} from \"./tokens/shadow\";\n\nexport {\n border,\n borderWidth,\n borderStyle,\n type BorderTokens,\n} from \"./tokens/border\";\n\nexport {\n zIndex,\n type ZIndexTokens,\n} from \"./tokens/zindex\";\n\nexport {\n animation,\n duration,\n easing,\n type AnimationTokens,\n} from \"./tokens/animation\";\n\nexport {\n breakpoint,\n type BreakpointTokens,\n} from \"./tokens/breakpoint\";\n\nexport {\n opacity,\n type OpacityTokens,\n} from \"./tokens/opacity\";\n\nexport {\n sizing,\n type SizingTokens,\n} from \"./tokens/sizing\";\n\n// ── Aggregated token object ───────────────────────────────────────────\nimport { color } from \"./tokens/color\";\nimport { spacing } from \"./tokens/spacing\";\nimport { typography } from \"./tokens/typography\";\nimport { radius } from \"./tokens/radius\";\nimport { shadow } from \"./tokens/shadow\";\nimport { border } from \"./tokens/border\";\nimport { zIndex } from \"./tokens/zindex\";\nimport { animation } from \"./tokens/animation\";\nimport { breakpoint } from \"./tokens/breakpoint\";\nimport { opacity } from \"./tokens/opacity\";\nimport { sizing } from \"./tokens/sizing\";\n\nexport const tokens = {\n color,\n spacing,\n typography,\n radius,\n shadow,\n border,\n zIndex,\n animation,\n breakpoint,\n opacity,\n sizing,\n} as const;\n\nexport type Tokens = typeof tokens;\n\n// ── CSS generation utilities ──────────────────────────────────────────\nexport {\n flattenTokens,\n toCSSRoot,\n generateCSSCategory,\n} from \"./css-generator\";\n"]}
|
package/dist/tailwind-preset.js
CHANGED
|
@@ -338,6 +338,12 @@ module.exports = {
|
|
|
338
338
|
"mono": "var(--tui-font-family-mono)"
|
|
339
339
|
},
|
|
340
340
|
"fontSize": {
|
|
341
|
+
"3xs": [
|
|
342
|
+
"var(--tui-font-size-3xs)",
|
|
343
|
+
{
|
|
344
|
+
"lineHeight": "var(--tui-leading-normal)"
|
|
345
|
+
}
|
|
346
|
+
],
|
|
341
347
|
"2xs": [
|
|
342
348
|
"var(--tui-font-size-2xs)",
|
|
343
349
|
{
|
|
@@ -436,7 +442,14 @@ module.exports = {
|
|
|
436
442
|
"snug": "var(--tui-leading-snug)",
|
|
437
443
|
"normal": "var(--tui-leading-normal)",
|
|
438
444
|
"relaxed": "var(--tui-leading-relaxed)",
|
|
439
|
-
"loose": "var(--tui-leading-loose)"
|
|
445
|
+
"loose": "var(--tui-leading-loose)",
|
|
446
|
+
"3.5": "var(--tui-leading-3_5)",
|
|
447
|
+
"4.5": "var(--tui-leading-4_5)",
|
|
448
|
+
"5.5": "var(--tui-leading-5_5)",
|
|
449
|
+
"6.5": "var(--tui-leading-6_5)",
|
|
450
|
+
"7.5": "var(--tui-leading-7_5)",
|
|
451
|
+
"8.5": "var(--tui-leading-8_5)",
|
|
452
|
+
"9.5": "var(--tui-leading-9_5)"
|
|
440
453
|
},
|
|
441
454
|
"letterSpacing": {
|
|
442
455
|
"tighter": "var(--tui-tracking-tighter)",
|
package/dist/tokens.css
CHANGED
|
@@ -569,6 +569,7 @@
|
|
|
569
569
|
}
|
|
570
570
|
|
|
571
571
|
:root {
|
|
572
|
+
--tui-font-size-3xs: 0.5rem;
|
|
572
573
|
--tui-font-size-2xs: 0.625rem;
|
|
573
574
|
--tui-font-size-xs: 0.75rem;
|
|
574
575
|
--tui-font-size-sm: 0.875rem;
|
|
@@ -610,6 +611,13 @@
|
|
|
610
611
|
--tui-leading-normal: 1.5;
|
|
611
612
|
--tui-leading-relaxed: 1.625;
|
|
612
613
|
--tui-leading-loose: 2;
|
|
614
|
+
--tui-leading-3_5: 0.875rem;
|
|
615
|
+
--tui-leading-4_5: 1.125rem;
|
|
616
|
+
--tui-leading-5_5: 1.375rem;
|
|
617
|
+
--tui-leading-6_5: 1.625rem;
|
|
618
|
+
--tui-leading-7_5: 1.875rem;
|
|
619
|
+
--tui-leading-8_5: 2.125rem;
|
|
620
|
+
--tui-leading-9_5: 2.375rem;
|
|
613
621
|
}
|
|
614
622
|
|
|
615
623
|
:root {
|
|
@@ -769,3 +777,14 @@
|
|
|
769
777
|
--tui-opacity-95: 0.95;
|
|
770
778
|
--tui-opacity-100: 1;
|
|
771
779
|
}
|
|
780
|
+
|
|
781
|
+
:root {
|
|
782
|
+
--tui-size-xxs: 0.875rem;
|
|
783
|
+
--tui-size-xs-1: 1rem;
|
|
784
|
+
--tui-size-xs-2: 1.25rem;
|
|
785
|
+
--tui-size-xs: 1.5rem;
|
|
786
|
+
--tui-size-sm: 2rem;
|
|
787
|
+
--tui-size-md: 2.25rem;
|
|
788
|
+
--tui-size-lg: 2.625rem;
|
|
789
|
+
--tui-size-xl: 2.875rem;
|
|
790
|
+
}
|
package/dist/utilities.css
CHANGED
|
@@ -1449,6 +1449,7 @@
|
|
|
1449
1449
|
.tui-gap-inline-md { gap: var(--tui-spacing-inline-md); }
|
|
1450
1450
|
.tui-gap-inline-lg { gap: var(--tui-spacing-inline-lg); }
|
|
1451
1451
|
|
|
1452
|
+
.tui-text-3xs { font-size: var(--tui-font-size-3xs); line-height: var(--tui-leading-normal); }
|
|
1452
1453
|
.tui-text-2xs { font-size: var(--tui-font-size-2xs); line-height: var(--tui-leading-4); }
|
|
1453
1454
|
.tui-text-xs { font-size: var(--tui-font-size-xs); line-height: var(--tui-leading-4); }
|
|
1454
1455
|
.tui-text-sm { font-size: var(--tui-font-size-sm); line-height: var(--tui-leading-5); }
|
|
@@ -2066,6 +2067,13 @@
|
|
|
2066
2067
|
.tui-leading-normal { line-height: var(--tui-leading-normal); }
|
|
2067
2068
|
.tui-leading-relaxed { line-height: var(--tui-leading-relaxed); }
|
|
2068
2069
|
.tui-leading-loose { line-height: var(--tui-leading-loose); }
|
|
2070
|
+
.tui-leading-3_5 { line-height: var(--tui-leading-3_5); }
|
|
2071
|
+
.tui-leading-4_5 { line-height: var(--tui-leading-4_5); }
|
|
2072
|
+
.tui-leading-5_5 { line-height: var(--tui-leading-5_5); }
|
|
2073
|
+
.tui-leading-6_5 { line-height: var(--tui-leading-6_5); }
|
|
2074
|
+
.tui-leading-7_5 { line-height: var(--tui-leading-7_5); }
|
|
2075
|
+
.tui-leading-8_5 { line-height: var(--tui-leading-8_5); }
|
|
2076
|
+
.tui-leading-9_5 { line-height: var(--tui-leading-9_5); }
|
|
2069
2077
|
|
|
2070
2078
|
.tui-tracking-tighter { letter-spacing: var(--tui-tracking-tighter); }
|
|
2071
2079
|
.tui-tracking-tight { letter-spacing: var(--tui-tracking-tight); }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tantuui/tokens",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Framework-agnostic design tokens for TantuUI (--tui-* CSS variables)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -41,7 +41,8 @@
|
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "tsup",
|
|
43
43
|
"dev": "tsup --watch",
|
|
44
|
-
"clean": "rm -rf dist"
|
|
44
|
+
"clean": "rm -rf dist",
|
|
45
|
+
"export:figma": "node scripts/export-figma.js"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"tsup": "^8.0.0",
|