@tantuui/tokens 0.0.2-rc1 → 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 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":"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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 \"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
@@ -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"]}
@@ -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
+ }
@@ -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,7 +1,16 @@
1
1
  {
2
2
  "name": "@tantuui/tokens",
3
- "version": "0.0.2-rc1",
3
+ "version": "0.0.2",
4
4
  "description": "Framework-agnostic design tokens for TantuUI (--tui-* CSS variables)",
5
+ "license": "MIT",
6
+ "keywords": [
7
+ "design-tokens",
8
+ "css-variables",
9
+ "design-system",
10
+ "tantuui",
11
+ "tailwind-preset",
12
+ "theming"
13
+ ],
5
14
  "main": "dist/index.js",
6
15
  "module": "dist/index.mjs",
7
16
  "types": "dist/index.d.ts",
@@ -32,7 +41,8 @@
32
41
  "scripts": {
33
42
  "build": "tsup",
34
43
  "dev": "tsup --watch",
35
- "clean": "rm -rf dist"
44
+ "clean": "rm -rf dist",
45
+ "export:figma": "node scripts/export-figma.js"
36
46
  },
37
47
  "devDependencies": {
38
48
  "tsup": "^8.0.0",