@tantuui/tokens 0.0.1-rc1 → 0.0.1-rc3

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/base.css CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * TantuUI Base Styles
3
3
  * Minimal CSS reset that uses --tui-* variables.
4
- * @import "@tantu/tokens/css/base"
4
+ * @import "@tantuui/tokens/css/base"
5
5
  */
6
6
 
7
7
  @import "./tokens.css";
package/dist/index.d.mts CHANGED
@@ -756,12 +756,12 @@ declare function toCSSRoot(flatTokens: Record<string, string>, selector?: string
756
756
  declare function generateCSSCategory(categoryName: string, tokens: TokenObject, selector?: string, skipKeys?: string[]): string;
757
757
 
758
758
  /**
759
- * @tantu/tokens — public API
759
+ * @tantuui/tokens — public API
760
760
  *
761
761
  * Usage:
762
- * import { color, spacing, typography, tokens } from "@tantu/tokens";
763
- * import { generateAllCSS } from "@tantu/tokens";
764
- * import tuiPreset from "@tantu/tokens/tailwind-preset";
762
+ * import { color, spacing, typography, tokens } from "@tantuui/tokens";
763
+ * import { generateAllCSS } from "@tantuui/tokens";
764
+ * import tuiPreset from "@tantuui/tokens/tailwind-preset";
765
765
  */
766
766
 
767
767
  declare const tokens: {
package/dist/index.d.ts CHANGED
@@ -756,12 +756,12 @@ declare function toCSSRoot(flatTokens: Record<string, string>, selector?: string
756
756
  declare function generateCSSCategory(categoryName: string, tokens: TokenObject, selector?: string, skipKeys?: string[]): string;
757
757
 
758
758
  /**
759
- * @tantu/tokens — public API
759
+ * @tantuui/tokens — public API
760
760
  *
761
761
  * Usage:
762
- * import { color, spacing, typography, tokens } from "@tantu/tokens";
763
- * import { generateAllCSS } from "@tantu/tokens";
764
- * import tuiPreset from "@tantu/tokens/tailwind-preset";
762
+ * import { color, spacing, typography, tokens } from "@tantuui/tokens";
763
+ * import { generateAllCSS } from "@tantuui/tokens";
764
+ * import tuiPreset from "@tantuui/tokens/tailwind-preset";
765
765
  */
766
766
 
767
767
  declare const 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 * @tantu/tokens — public API\n *\n * Usage:\n * import { color, spacing, typography, tokens } from \"@tantu/tokens\";\n * import { generateAllCSS } from \"@tantu/tokens\";\n * import tuiPreset from \"@tantu/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/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 +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 * @tantu/tokens — public API\n *\n * Usage:\n * import { color, spacing, typography, tokens } from \"@tantu/tokens\";\n * import { generateAllCSS } from \"@tantu/tokens\";\n * import tuiPreset from \"@tantu/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/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"]}
@@ -5,8 +5,8 @@
5
5
  * and dynamically injects matching CSS rules.
6
6
  *
7
7
  * Usage:
8
- * import "@tantu/tokens/runtime"; // ESM
9
- * <script src="@tantu/tokens/runtime"></script> // HTML
8
+ * import "@tantuui/tokens/runtime"; // ESM
9
+ * <script src="@tantuui/tokens/runtime"></script> // HTML
10
10
  *
11
11
  * Supports:
12
12
  * tui-p-[10px] → padding: 10px
package/dist/runtime.d.ts CHANGED
@@ -5,8 +5,8 @@
5
5
  * and dynamically injects matching CSS rules.
6
6
  *
7
7
  * Usage:
8
- * import "@tantu/tokens/runtime"; // ESM
9
- * <script src="@tantu/tokens/runtime"></script> // HTML
8
+ * import "@tantuui/tokens/runtime"; // ESM
9
+ * <script src="@tantuui/tokens/runtime"></script> // HTML
10
10
  *
11
11
  * Supports:
12
12
  * tui-p-[10px] → padding: 10px
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/runtime.ts"],"names":[],"mappings":";;;AAkCA,IAAM,YAAA,GAAkD;AAAA,EACtD,GAAA,EAAU,SAAA;AAAA,EACV,IAAA,EAAU,CAAC,cAAA,EAAgB,eAAe,CAAA;AAAA,EAC1C,IAAA,EAAU,CAAC,aAAA,EAAe,gBAAgB,CAAA;AAAA,EAC1C,IAAA,EAAU,aAAA;AAAA,EACV,IAAA,EAAU,eAAA;AAAA,EACV,IAAA,EAAU,gBAAA;AAAA,EACV,IAAA,EAAU,cAAA;AAAA,EACV,GAAA,EAAU,QAAA;AAAA,EACV,IAAA,EAAU,CAAC,aAAA,EAAe,cAAc,CAAA;AAAA,EACxC,IAAA,EAAU,CAAC,YAAA,EAAc,eAAe,CAAA;AAAA,EACxC,IAAA,EAAU,YAAA;AAAA,EACV,IAAA,EAAU,cAAA;AAAA,EACV,IAAA,EAAU,eAAA;AAAA,EACV,IAAA,EAAU,aAAA;AAAA,EACV,GAAA,EAAU,OAAA;AAAA,EACV,GAAA,EAAU,QAAA;AAAA,EACV,OAAA,EAAU,WAAA;AAAA,EACV,OAAA,EAAU,WAAA;AAAA,EACV,OAAA,EAAU,YAAA;AAAA,EACV,OAAA,EAAU,YAAA;AAAA,EACV,KAAA,EAAU,KAAA;AAAA,EACV,MAAA,EAAU,WAAA;AAAA,EACV,SAAA,EAAU,aAAA;AAAA,EACV,SAAA,EAAU,eAAA;AAAA,EACV,QAAA,EAAU,cAAA;AAAA,EACV,KAAA,EAAU,KAAA;AAAA,EACV,OAAA,EAAU,OAAA;AAAA,EACV,QAAA,EAAU,QAAA;AAAA,EACV,MAAA,EAAU,MAAA;AAAA,EACV,OAAA,EAAU,OAAA;AAAA,EACV,GAAA,EAAU;AACZ,CAAA;AAIA,IAAM,WAAA,GAAc,6BAAA;AAGpB,IAAM,cAAA,uBAAqB,GAAA,EAAY;AAGvC,IAAI,OAAA,GAAmC,IAAA;AAEvC,SAAS,eAAA,GAAoC;AAC3C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAA,GAAU,QAAA,CAAS,cAAc,OAAO,CAAA;AACxC,IAAA,OAAA,CAAQ,YAAA,CAAa,oBAAoB,EAAE,CAAA;AAC3C,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,OAAO,CAAA;AAAA,EACnC;AACA,EAAA,OAAO,OAAA;AACT;AAMA,SAAS,eAAe,GAAA,EAAqB;AAC3C,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,sBAAA,EAAwB,MAAM,CAAA;AACnD;AAKA,SAAS,aAAa,SAAA,EAAyB;AAC7C,EAAA,IAAI,cAAA,CAAe,GAAA,CAAI,SAAS,CAAA,EAAG;AAEnC,EAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,KAAA,CAAM,WAAW,CAAA;AACzC,EAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,EAAA,MAAM,GAAG,IAAA,EAAM,KAAK,CAAA,GAAI,KAAA;AACxB,EAAA,MAAM,aAAA,GAAgB,aAAa,IAAI,CAAA;AACvC,EAAA,IAAI,CAAC,aAAA,EAAe;AAGpB,EAAA,cAAA,CAAe,IAAI,SAAS,CAAA;AAG5B,EAAA,MAAM,QAAA,GAAW,CAAA,CAAA,EAAI,cAAA,CAAe,SAAS,CAAC,CAAA,CAAA;AAC9C,EAAA,IAAI,YAAA;AAEJ,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA,EAAG;AAChC,IAAA,YAAA,GAAe,aAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,EAAG,CAAC,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AAAA,EACrE,CAAA,MAAO;AACL,IAAA,YAAA,GAAe,CAAA,EAAG,aAAa,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA;AAAA,EAC3C;AAEA,EAAA,MAAM,IAAA,GAAO,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,YAAY,CAAA,GAAA,CAAA;AAG1C,EAAA,MAAM,QAAQ,eAAA,EAAgB;AAC9B,EAAA,KAAA,CAAM,eAAe,IAAA,GAAO,IAAA;AAC9B;AAKA,SAAS,YAAY,EAAA,EAAmB;AACtC,EAAA,MAAM,UAAU,EAAA,CAAG,SAAA;AACnB,EAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAEjC,EAAA,KAAA,MAAW,GAAA,IAAO,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,EAAG;AACtC,IAAA,IAAI,IAAI,UAAA,CAAW,MAAM,KAAK,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,EAAG;AAC/C,MAAA,YAAA,CAAa,GAAG,CAAA;AAAA,IAClB;AAAA,EACF;AAGA,EAAA,KAAA,MAAW,KAAA,IAAS,GAAG,QAAA,EAAU;AAC/B,IAAA,WAAA,CAAY,KAAK,CAAA;AAAA,EACnB;AACF;AAKA,SAAS,IAAA,GAAa;AACpB,EAAA,IAAI,OAAO,MAAA,KAAW,WAAA,IAAe,OAAO,aAAa,WAAA,EAAa;AAGtE,EAAA,WAAA,CAAY,SAAS,eAAe,CAAA;AAGpC,EAAA,MAAM,QAAA,GAAW,IAAI,gBAAA,CAAiB,CAAC,SAAA,KAAc;AACnD,IAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,MAAA,IAAI,QAAA,CAAS,SAAS,WAAA,EAAa;AACjC,QAAA,KAAA,MAAW,IAAA,IAAQ,SAAS,UAAA,EAAY;AACtC,UAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,YAAA,WAAA,CAAY,IAAI,CAAA;AAAA,UAClB;AAAA,QACF;AAAA,MACF,WAAW,QAAA,CAAS,IAAA,KAAS,YAAA,IAAgB,QAAA,CAAS,kBAAkB,OAAA,EAAS;AAC/E,QAAA,IAAI,QAAA,CAAS,kBAAkB,OAAA,EAAS;AACtC,UAAA,WAAA,CAAY,SAAS,MAAM,CAAA;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,QAAA,CAAS,OAAA,CAAQ,SAAS,eAAA,EAAiB;AAAA,IACzC,SAAA,EAAW,IAAA;AAAA,IACX,OAAA,EAAS,IAAA;AAAA,IACT,UAAA,EAAY,IAAA;AAAA,IACZ,eAAA,EAAiB,CAAC,OAAO;AAAA,GAC1B,CAAA;AACH;AAGA,IAAI,OAAO,aAAa,WAAA,EAAa;AACnC,EAAA,IAAI,QAAA,CAAS,eAAe,SAAA,EAAW;AACrC,IAAA,QAAA,CAAS,gBAAA,CAAiB,oBAAoB,IAAI,CAAA;AAAA,EACpD,CAAA,MAAO;AACL,IAAA,IAAA,EAAK;AAAA,EACP;AACF","file":"runtime.js","sourcesContent":["/**\n * TantuUI Runtime JIT\n *\n * Scans the DOM for tui-* arbitrary value classes (e.g. tui-p-[10px], tui-w-[350px])\n * and dynamically injects matching CSS rules.\n *\n * Usage:\n * import \"@tantu/tokens/runtime\"; // ESM\n * <script src=\"@tantu/tokens/runtime\"></script> // HTML\n *\n * Supports:\n * tui-p-[10px] → padding: 10px\n * tui-px-[1rem] → padding-left: 1rem; padding-right: 1rem\n * tui-m-[20px] → margin: 20px\n * tui-mt-[8px] → margin-top: 8px\n * tui-w-[350px] → width: 350px\n * tui-h-[100vh] → height: 100vh\n * tui-gap-[12px] → gap: 12px\n * tui-text-[15px] → font-size: 15px\n * tui-rounded-[8px] → border-radius: 8px\n * tui-border-[3px] → border-width: 3px\n * tui-top-[10px] → top: 10px\n * tui-left-[20%] → left: 20%\n * tui-max-w-[600px] → max-width: 600px\n * tui-min-h-[100vh] → min-height: 100vh\n * tui-leading-[1.8] → line-height: 1.8\n * tui-z-[999] → z-index: 999\n *\n * Works with calc:\n * tui-w-[calc(100%-260px)] → width: calc(100% - 260px)\n * tui-h-[calc(100vh-64px)] → height: calc(100vh - 64px)\n */\n\n// Map of prefix → CSS property/properties\nconst PROPERTY_MAP: Record<string, string | string[]> = {\n \"p\": \"padding\",\n \"px\": [\"padding-left\", \"padding-right\"],\n \"py\": [\"padding-top\", \"padding-bottom\"],\n \"pt\": \"padding-top\",\n \"pr\": \"padding-right\",\n \"pb\": \"padding-bottom\",\n \"pl\": \"padding-left\",\n \"m\": \"margin\",\n \"mx\": [\"margin-left\", \"margin-right\"],\n \"my\": [\"margin-top\", \"margin-bottom\"],\n \"mt\": \"margin-top\",\n \"mr\": \"margin-right\",\n \"mb\": \"margin-bottom\",\n \"ml\": \"margin-left\",\n \"w\": \"width\",\n \"h\": \"height\",\n \"min-w\": \"min-width\",\n \"max-w\": \"max-width\",\n \"min-h\": \"min-height\",\n \"max-h\": \"max-height\",\n \"gap\": \"gap\",\n \"text\": \"font-size\",\n \"leading\":\"line-height\",\n \"rounded\":\"border-radius\",\n \"border\": \"border-width\",\n \"top\": \"top\",\n \"right\": \"right\",\n \"bottom\": \"bottom\",\n \"left\": \"left\",\n \"inset\": \"inset\",\n \"z\": \"z-index\",\n};\n\n// Regex to match: tui-<prop>-[<value>]\n// Captures: prop name and value inside brackets\nconst CLASS_REGEX = /^tui-([\\w-]+)-\\[([^\\]]+)\\]$/;\n\n// Cache of already-generated rules to avoid duplicates\nconst generatedRules = new Set<string>();\n\n// The <style> element where we inject rules\nlet styleEl: HTMLStyleElement | null = null;\n\nfunction getStyleElement(): HTMLStyleElement {\n if (!styleEl) {\n styleEl = document.createElement(\"style\");\n styleEl.setAttribute(\"data-tui-runtime\", \"\");\n document.head.appendChild(styleEl);\n }\n return styleEl;\n}\n\n/**\n * Escape special characters in class name for use in a CSS selector.\n * [ ] % ( ) must be escaped.\n */\nfunction escapeSelector(cls: string): string {\n return cls.replace(/([[\\]()%.,#:>+~\\/])/g, \"\\\\$1\");\n}\n\n/**\n * Process a single class name — if it matches tui-*-[value], generate CSS.\n */\nfunction processClass(className: string): void {\n if (generatedRules.has(className)) return;\n\n const match = className.match(CLASS_REGEX);\n if (!match) return;\n\n const [, prop, value] = match;\n const cssProperties = PROPERTY_MAP[prop];\n if (!cssProperties) return;\n\n // Mark as generated\n generatedRules.add(className);\n\n // Build the CSS rule\n const selector = `.${escapeSelector(className)}`;\n let declarations: string;\n\n if (Array.isArray(cssProperties)) {\n declarations = cssProperties.map((p) => `${p}: ${value}`).join(\"; \");\n } else {\n declarations = `${cssProperties}: ${value}`;\n }\n\n const rule = `${selector} { ${declarations}; }`;\n\n // Inject into <style>\n const sheet = getStyleElement();\n sheet.textContent += rule + \"\\n\";\n}\n\n/**\n * Scan an element and all its descendants for tui-*-[value] classes.\n */\nfunction scanElement(el: Element): void {\n const classes = el.className;\n if (typeof classes !== \"string\") return;\n\n for (const cls of classes.split(/\\s+/)) {\n if (cls.startsWith(\"tui-\") && cls.includes(\"[\")) {\n processClass(cls);\n }\n }\n\n // Scan children\n for (const child of el.children) {\n scanElement(child);\n }\n}\n\n/**\n * Initialize: scan existing DOM + observe for new elements.\n */\nfunction init(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") return;\n\n // Scan existing DOM\n scanElement(document.documentElement);\n\n // Watch for new elements or class changes\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === \"childList\") {\n for (const node of mutation.addedNodes) {\n if (node instanceof Element) {\n scanElement(node);\n }\n }\n } else if (mutation.type === \"attributes\" && mutation.attributeName === \"class\") {\n if (mutation.target instanceof Element) {\n scanElement(mutation.target);\n }\n }\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\"class\"],\n });\n}\n\n// Auto-initialize when the script loads\nif (typeof document !== \"undefined\") {\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n}\n\nexport { init, processClass, scanElement };\n"]}
1
+ {"version":3,"sources":["../src/runtime.ts"],"names":[],"mappings":"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","file":"runtime.js","sourcesContent":["/**\n * TantuUI Runtime JIT\n *\n * Scans the DOM for tui-* arbitrary value classes (e.g. tui-p-[10px], tui-w-[350px])\n * and dynamically injects matching CSS rules.\n *\n * Usage:\n * import \"@tantuui/tokens/runtime\"; // ESM\n * <script src=\"@tantuui/tokens/runtime\"></script> // HTML\n *\n * Supports:\n * tui-p-[10px] → padding: 10px\n * tui-px-[1rem] → padding-left: 1rem; padding-right: 1rem\n * tui-m-[20px] → margin: 20px\n * tui-mt-[8px] → margin-top: 8px\n * tui-w-[350px] → width: 350px\n * tui-h-[100vh] → height: 100vh\n * tui-gap-[12px] → gap: 12px\n * tui-text-[15px] → font-size: 15px\n * tui-rounded-[8px] → border-radius: 8px\n * tui-border-[3px] → border-width: 3px\n * tui-top-[10px] → top: 10px\n * tui-left-[20%] → left: 20%\n * tui-max-w-[600px] → max-width: 600px\n * tui-min-h-[100vh] → min-height: 100vh\n * tui-leading-[1.8] → line-height: 1.8\n * tui-z-[999] → z-index: 999\n *\n * Works with calc:\n * tui-w-[calc(100%-260px)] → width: calc(100% - 260px)\n * tui-h-[calc(100vh-64px)] → height: calc(100vh - 64px)\n */\n\n// Map of prefix → CSS property/properties\nconst PROPERTY_MAP: Record<string, string | string[]> = {\n \"p\": \"padding\",\n \"px\": [\"padding-left\", \"padding-right\"],\n \"py\": [\"padding-top\", \"padding-bottom\"],\n \"pt\": \"padding-top\",\n \"pr\": \"padding-right\",\n \"pb\": \"padding-bottom\",\n \"pl\": \"padding-left\",\n \"m\": \"margin\",\n \"mx\": [\"margin-left\", \"margin-right\"],\n \"my\": [\"margin-top\", \"margin-bottom\"],\n \"mt\": \"margin-top\",\n \"mr\": \"margin-right\",\n \"mb\": \"margin-bottom\",\n \"ml\": \"margin-left\",\n \"w\": \"width\",\n \"h\": \"height\",\n \"min-w\": \"min-width\",\n \"max-w\": \"max-width\",\n \"min-h\": \"min-height\",\n \"max-h\": \"max-height\",\n \"gap\": \"gap\",\n \"text\": \"font-size\",\n \"leading\":\"line-height\",\n \"rounded\":\"border-radius\",\n \"border\": \"border-width\",\n \"top\": \"top\",\n \"right\": \"right\",\n \"bottom\": \"bottom\",\n \"left\": \"left\",\n \"inset\": \"inset\",\n \"z\": \"z-index\",\n};\n\n// Regex to match: tui-<prop>-[<value>]\n// Captures: prop name and value inside brackets\nconst CLASS_REGEX = /^tui-([\\w-]+)-\\[([^\\]]+)\\]$/;\n\n// Cache of already-generated rules to avoid duplicates\nconst generatedRules = new Set<string>();\n\n// The <style> element where we inject rules\nlet styleEl: HTMLStyleElement | null = null;\n\nfunction getStyleElement(): HTMLStyleElement {\n if (!styleEl) {\n styleEl = document.createElement(\"style\");\n styleEl.setAttribute(\"data-tui-runtime\", \"\");\n document.head.appendChild(styleEl);\n }\n return styleEl;\n}\n\n/**\n * Escape special characters in class name for use in a CSS selector.\n * [ ] % ( ) must be escaped.\n */\nfunction escapeSelector(cls: string): string {\n return cls.replace(/([[\\]()%.,#:>+~\\/])/g, \"\\\\$1\");\n}\n\n/**\n * Process a single class name — if it matches tui-*-[value], generate CSS.\n */\nfunction processClass(className: string): void {\n if (generatedRules.has(className)) return;\n\n const match = className.match(CLASS_REGEX);\n if (!match) return;\n\n const [, prop, value] = match;\n const cssProperties = PROPERTY_MAP[prop];\n if (!cssProperties) return;\n\n // Mark as generated\n generatedRules.add(className);\n\n // Build the CSS rule\n const selector = `.${escapeSelector(className)}`;\n let declarations: string;\n\n if (Array.isArray(cssProperties)) {\n declarations = cssProperties.map((p) => `${p}: ${value}`).join(\"; \");\n } else {\n declarations = `${cssProperties}: ${value}`;\n }\n\n const rule = `${selector} { ${declarations}; }`;\n\n // Inject into <style>\n const sheet = getStyleElement();\n sheet.textContent += rule + \"\\n\";\n}\n\n/**\n * Scan an element and all its descendants for tui-*-[value] classes.\n */\nfunction scanElement(el: Element): void {\n const classes = el.className;\n if (typeof classes !== \"string\") return;\n\n for (const cls of classes.split(/\\s+/)) {\n if (cls.startsWith(\"tui-\") && cls.includes(\"[\")) {\n processClass(cls);\n }\n }\n\n // Scan children\n for (const child of el.children) {\n scanElement(child);\n }\n}\n\n/**\n * Initialize: scan existing DOM + observe for new elements.\n */\nfunction init(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") return;\n\n // Scan existing DOM\n scanElement(document.documentElement);\n\n // Watch for new elements or class changes\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === \"childList\") {\n for (const node of mutation.addedNodes) {\n if (node instanceof Element) {\n scanElement(node);\n }\n }\n } else if (mutation.type === \"attributes\" && mutation.attributeName === \"class\") {\n if (mutation.target instanceof Element) {\n scanElement(mutation.target);\n }\n }\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\"class\"],\n });\n}\n\n// Auto-initialize when the script loads\nif (typeof document !== \"undefined\") {\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n}\n\nexport { init, processClass, scanElement };\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/runtime.ts"],"names":[],"mappings":"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","file":"runtime.mjs","sourcesContent":["/**\n * TantuUI Runtime JIT\n *\n * Scans the DOM for tui-* arbitrary value classes (e.g. tui-p-[10px], tui-w-[350px])\n * and dynamically injects matching CSS rules.\n *\n * Usage:\n * import \"@tantu/tokens/runtime\"; // ESM\n * <script src=\"@tantu/tokens/runtime\"></script> // HTML\n *\n * Supports:\n * tui-p-[10px] → padding: 10px\n * tui-px-[1rem] → padding-left: 1rem; padding-right: 1rem\n * tui-m-[20px] → margin: 20px\n * tui-mt-[8px] → margin-top: 8px\n * tui-w-[350px] → width: 350px\n * tui-h-[100vh] → height: 100vh\n * tui-gap-[12px] → gap: 12px\n * tui-text-[15px] → font-size: 15px\n * tui-rounded-[8px] → border-radius: 8px\n * tui-border-[3px] → border-width: 3px\n * tui-top-[10px] → top: 10px\n * tui-left-[20%] → left: 20%\n * tui-max-w-[600px] → max-width: 600px\n * tui-min-h-[100vh] → min-height: 100vh\n * tui-leading-[1.8] → line-height: 1.8\n * tui-z-[999] → z-index: 999\n *\n * Works with calc:\n * tui-w-[calc(100%-260px)] → width: calc(100% - 260px)\n * tui-h-[calc(100vh-64px)] → height: calc(100vh - 64px)\n */\n\n// Map of prefix → CSS property/properties\nconst PROPERTY_MAP: Record<string, string | string[]> = {\n \"p\": \"padding\",\n \"px\": [\"padding-left\", \"padding-right\"],\n \"py\": [\"padding-top\", \"padding-bottom\"],\n \"pt\": \"padding-top\",\n \"pr\": \"padding-right\",\n \"pb\": \"padding-bottom\",\n \"pl\": \"padding-left\",\n \"m\": \"margin\",\n \"mx\": [\"margin-left\", \"margin-right\"],\n \"my\": [\"margin-top\", \"margin-bottom\"],\n \"mt\": \"margin-top\",\n \"mr\": \"margin-right\",\n \"mb\": \"margin-bottom\",\n \"ml\": \"margin-left\",\n \"w\": \"width\",\n \"h\": \"height\",\n \"min-w\": \"min-width\",\n \"max-w\": \"max-width\",\n \"min-h\": \"min-height\",\n \"max-h\": \"max-height\",\n \"gap\": \"gap\",\n \"text\": \"font-size\",\n \"leading\":\"line-height\",\n \"rounded\":\"border-radius\",\n \"border\": \"border-width\",\n \"top\": \"top\",\n \"right\": \"right\",\n \"bottom\": \"bottom\",\n \"left\": \"left\",\n \"inset\": \"inset\",\n \"z\": \"z-index\",\n};\n\n// Regex to match: tui-<prop>-[<value>]\n// Captures: prop name and value inside brackets\nconst CLASS_REGEX = /^tui-([\\w-]+)-\\[([^\\]]+)\\]$/;\n\n// Cache of already-generated rules to avoid duplicates\nconst generatedRules = new Set<string>();\n\n// The <style> element where we inject rules\nlet styleEl: HTMLStyleElement | null = null;\n\nfunction getStyleElement(): HTMLStyleElement {\n if (!styleEl) {\n styleEl = document.createElement(\"style\");\n styleEl.setAttribute(\"data-tui-runtime\", \"\");\n document.head.appendChild(styleEl);\n }\n return styleEl;\n}\n\n/**\n * Escape special characters in class name for use in a CSS selector.\n * [ ] % ( ) must be escaped.\n */\nfunction escapeSelector(cls: string): string {\n return cls.replace(/([[\\]()%.,#:>+~\\/])/g, \"\\\\$1\");\n}\n\n/**\n * Process a single class name — if it matches tui-*-[value], generate CSS.\n */\nfunction processClass(className: string): void {\n if (generatedRules.has(className)) return;\n\n const match = className.match(CLASS_REGEX);\n if (!match) return;\n\n const [, prop, value] = match;\n const cssProperties = PROPERTY_MAP[prop];\n if (!cssProperties) return;\n\n // Mark as generated\n generatedRules.add(className);\n\n // Build the CSS rule\n const selector = `.${escapeSelector(className)}`;\n let declarations: string;\n\n if (Array.isArray(cssProperties)) {\n declarations = cssProperties.map((p) => `${p}: ${value}`).join(\"; \");\n } else {\n declarations = `${cssProperties}: ${value}`;\n }\n\n const rule = `${selector} { ${declarations}; }`;\n\n // Inject into <style>\n const sheet = getStyleElement();\n sheet.textContent += rule + \"\\n\";\n}\n\n/**\n * Scan an element and all its descendants for tui-*-[value] classes.\n */\nfunction scanElement(el: Element): void {\n const classes = el.className;\n if (typeof classes !== \"string\") return;\n\n for (const cls of classes.split(/\\s+/)) {\n if (cls.startsWith(\"tui-\") && cls.includes(\"[\")) {\n processClass(cls);\n }\n }\n\n // Scan children\n for (const child of el.children) {\n scanElement(child);\n }\n}\n\n/**\n * Initialize: scan existing DOM + observe for new elements.\n */\nfunction init(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") return;\n\n // Scan existing DOM\n scanElement(document.documentElement);\n\n // Watch for new elements or class changes\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === \"childList\") {\n for (const node of mutation.addedNodes) {\n if (node instanceof Element) {\n scanElement(node);\n }\n }\n } else if (mutation.type === \"attributes\" && mutation.attributeName === \"class\") {\n if (mutation.target instanceof Element) {\n scanElement(mutation.target);\n }\n }\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\"class\"],\n });\n}\n\n// Auto-initialize when the script loads\nif (typeof document !== \"undefined\") {\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n}\n\nexport { init, processClass, scanElement };\n"]}
1
+ {"version":3,"sources":["../src/runtime.ts"],"names":[],"mappings":"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","file":"runtime.mjs","sourcesContent":["/**\n * TantuUI Runtime JIT\n *\n * Scans the DOM for tui-* arbitrary value classes (e.g. tui-p-[10px], tui-w-[350px])\n * and dynamically injects matching CSS rules.\n *\n * Usage:\n * import \"@tantuui/tokens/runtime\"; // ESM\n * <script src=\"@tantuui/tokens/runtime\"></script> // HTML\n *\n * Supports:\n * tui-p-[10px] → padding: 10px\n * tui-px-[1rem] → padding-left: 1rem; padding-right: 1rem\n * tui-m-[20px] → margin: 20px\n * tui-mt-[8px] → margin-top: 8px\n * tui-w-[350px] → width: 350px\n * tui-h-[100vh] → height: 100vh\n * tui-gap-[12px] → gap: 12px\n * tui-text-[15px] → font-size: 15px\n * tui-rounded-[8px] → border-radius: 8px\n * tui-border-[3px] → border-width: 3px\n * tui-top-[10px] → top: 10px\n * tui-left-[20%] → left: 20%\n * tui-max-w-[600px] → max-width: 600px\n * tui-min-h-[100vh] → min-height: 100vh\n * tui-leading-[1.8] → line-height: 1.8\n * tui-z-[999] → z-index: 999\n *\n * Works with calc:\n * tui-w-[calc(100%-260px)] → width: calc(100% - 260px)\n * tui-h-[calc(100vh-64px)] → height: calc(100vh - 64px)\n */\n\n// Map of prefix → CSS property/properties\nconst PROPERTY_MAP: Record<string, string | string[]> = {\n \"p\": \"padding\",\n \"px\": [\"padding-left\", \"padding-right\"],\n \"py\": [\"padding-top\", \"padding-bottom\"],\n \"pt\": \"padding-top\",\n \"pr\": \"padding-right\",\n \"pb\": \"padding-bottom\",\n \"pl\": \"padding-left\",\n \"m\": \"margin\",\n \"mx\": [\"margin-left\", \"margin-right\"],\n \"my\": [\"margin-top\", \"margin-bottom\"],\n \"mt\": \"margin-top\",\n \"mr\": \"margin-right\",\n \"mb\": \"margin-bottom\",\n \"ml\": \"margin-left\",\n \"w\": \"width\",\n \"h\": \"height\",\n \"min-w\": \"min-width\",\n \"max-w\": \"max-width\",\n \"min-h\": \"min-height\",\n \"max-h\": \"max-height\",\n \"gap\": \"gap\",\n \"text\": \"font-size\",\n \"leading\":\"line-height\",\n \"rounded\":\"border-radius\",\n \"border\": \"border-width\",\n \"top\": \"top\",\n \"right\": \"right\",\n \"bottom\": \"bottom\",\n \"left\": \"left\",\n \"inset\": \"inset\",\n \"z\": \"z-index\",\n};\n\n// Regex to match: tui-<prop>-[<value>]\n// Captures: prop name and value inside brackets\nconst CLASS_REGEX = /^tui-([\\w-]+)-\\[([^\\]]+)\\]$/;\n\n// Cache of already-generated rules to avoid duplicates\nconst generatedRules = new Set<string>();\n\n// The <style> element where we inject rules\nlet styleEl: HTMLStyleElement | null = null;\n\nfunction getStyleElement(): HTMLStyleElement {\n if (!styleEl) {\n styleEl = document.createElement(\"style\");\n styleEl.setAttribute(\"data-tui-runtime\", \"\");\n document.head.appendChild(styleEl);\n }\n return styleEl;\n}\n\n/**\n * Escape special characters in class name for use in a CSS selector.\n * [ ] % ( ) must be escaped.\n */\nfunction escapeSelector(cls: string): string {\n return cls.replace(/([[\\]()%.,#:>+~\\/])/g, \"\\\\$1\");\n}\n\n/**\n * Process a single class name — if it matches tui-*-[value], generate CSS.\n */\nfunction processClass(className: string): void {\n if (generatedRules.has(className)) return;\n\n const match = className.match(CLASS_REGEX);\n if (!match) return;\n\n const [, prop, value] = match;\n const cssProperties = PROPERTY_MAP[prop];\n if (!cssProperties) return;\n\n // Mark as generated\n generatedRules.add(className);\n\n // Build the CSS rule\n const selector = `.${escapeSelector(className)}`;\n let declarations: string;\n\n if (Array.isArray(cssProperties)) {\n declarations = cssProperties.map((p) => `${p}: ${value}`).join(\"; \");\n } else {\n declarations = `${cssProperties}: ${value}`;\n }\n\n const rule = `${selector} { ${declarations}; }`;\n\n // Inject into <style>\n const sheet = getStyleElement();\n sheet.textContent += rule + \"\\n\";\n}\n\n/**\n * Scan an element and all its descendants for tui-*-[value] classes.\n */\nfunction scanElement(el: Element): void {\n const classes = el.className;\n if (typeof classes !== \"string\") return;\n\n for (const cls of classes.split(/\\s+/)) {\n if (cls.startsWith(\"tui-\") && cls.includes(\"[\")) {\n processClass(cls);\n }\n }\n\n // Scan children\n for (const child of el.children) {\n scanElement(child);\n }\n}\n\n/**\n * Initialize: scan existing DOM + observe for new elements.\n */\nfunction init(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") return;\n\n // Scan existing DOM\n scanElement(document.documentElement);\n\n // Watch for new elements or class changes\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === \"childList\") {\n for (const node of mutation.addedNodes) {\n if (node instanceof Element) {\n scanElement(node);\n }\n }\n } else if (mutation.type === \"attributes\" && mutation.attributeName === \"class\") {\n if (mutation.target instanceof Element) {\n scanElement(mutation.target);\n }\n }\n }\n });\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\"class\"],\n });\n}\n\n// Auto-initialize when the script loads\nif (typeof document !== \"undefined\") {\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n}\n\nexport { init, processClass, scanElement };\n"]}
@@ -3,11 +3,11 @@
3
3
  * Generated — do not edit manually.
4
4
  *
5
5
  * Usage in tailwind.config.js:
6
- * const tuiPreset = require("@tantu/tokens/tailwind-preset");
6
+ * const tuiPreset = require("@tantuui/tokens/tailwind-preset");
7
7
  * module.exports = { presets: [tuiPreset], ... };
8
8
  *
9
9
  * Or ESM:
10
- * import tuiPreset from "@tantu/tokens/tailwind-preset";
10
+ * import tuiPreset from "@tantuui/tokens/tailwind-preset";
11
11
  */
12
12
  module.exports = {
13
13
  "theme": {
package/dist/tokens.css CHANGED
@@ -4,7 +4,7 @@
4
4
  * Prefix: --tui-*
5
5
  *
6
6
  * Usage (any framework):
7
- * @import "@tantu/tokens/css";
7
+ * @import "@tantuui/tokens/css";
8
8
  */
9
9
 
10
10
  :root {
@@ -4,7 +4,7 @@
4
4
  * Prefix: tui-*
5
5
  *
6
6
  * Use these classes directly without Tailwind:
7
- * @import "@tantu/tokens/css/utilities";
7
+ * @import "@tantuui/tokens/css/utilities";
8
8
  *
9
9
  * <div class="tui-bg-primary-600 tui-text-white tui-p-4 tui-rounded-lg">
10
10
  */
package/package.json CHANGED
@@ -1,7 +1,16 @@
1
1
  {
2
2
  "name": "@tantuui/tokens",
3
- "version": "0.0.1-rc1",
3
+ "version": "0.0.1-rc3",
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",
@@ -21,8 +30,14 @@
21
30
  }
22
31
  },
23
32
  "files": [
24
- "dist"
33
+ "dist",
34
+ "README.md"
25
35
  ],
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/pawan-rocks/tantuUI",
39
+ "directory": "packages/tokens"
40
+ },
26
41
  "scripts": {
27
42
  "build": "tsup",
28
43
  "dev": "tsup --watch",