@hilum/ui 0.1.1 → 0.1.3

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.
Files changed (92) hide show
  1. package/README.md +23 -4
  2. package/dist/chunk-J2QQDUF4.js +204 -0
  3. package/dist/chunk-J2QQDUF4.js.map +1 -0
  4. package/dist/create-theme.d.ts +27 -0
  5. package/dist/create-theme.js +172 -0
  6. package/dist/create-theme.js.map +1 -0
  7. package/dist/index.d.ts +21 -8
  8. package/dist/index.js +393 -381
  9. package/dist/index.js.map +1 -1
  10. package/dist/tokens.css +59 -50
  11. package/dist/tokens.d.ts +46 -38
  12. package/dist/tokens.js +1 -191
  13. package/dist/tokens.js.map +1 -1
  14. package/llms.txt +1514 -0
  15. package/package.json +11 -7
  16. package/src/components/accordion.tsx +5 -5
  17. package/src/components/action-panel.tsx +6 -6
  18. package/src/components/activity-feed.tsx +4 -4
  19. package/src/components/alert-dialog.tsx +3 -3
  20. package/src/components/alert.tsx +4 -4
  21. package/src/components/avatar-stack.tsx +2 -2
  22. package/src/components/avatar.tsx +2 -2
  23. package/src/components/badge.tsx +6 -5
  24. package/src/components/breadcrumb.tsx +5 -5
  25. package/src/components/button-group.tsx +4 -4
  26. package/src/components/button.tsx +6 -5
  27. package/src/components/calendar.tsx +7 -7
  28. package/src/components/card-heading.tsx +3 -3
  29. package/src/components/card.tsx +3 -3
  30. package/src/components/chart.tsx +11 -11
  31. package/src/components/checkbox.tsx +1 -1
  32. package/src/components/color-input.tsx +7 -7
  33. package/src/components/color-picker.tsx +5 -5
  34. package/src/components/combobox.tsx +10 -10
  35. package/src/components/command-palette.tsx +11 -11
  36. package/src/components/command.tsx +13 -13
  37. package/src/components/context-menu.tsx +15 -16
  38. package/src/components/data-table.tsx +6 -6
  39. package/src/components/date-picker.tsx +9 -4
  40. package/src/components/description-list.tsx +8 -8
  41. package/src/components/dialog.tsx +3 -3
  42. package/src/components/drawer.tsx +5 -5
  43. package/src/components/dropdown-menu.tsx +15 -16
  44. package/src/components/empty-state.tsx +3 -3
  45. package/src/components/field.tsx +13 -6
  46. package/src/components/grid-list.tsx +12 -12
  47. package/src/components/hover-card.tsx +1 -1
  48. package/src/components/input-group.tsx +8 -8
  49. package/src/components/input-number.tsx +7 -7
  50. package/src/components/input-otp.tsx +3 -3
  51. package/src/components/input.tsx +5 -4
  52. package/src/components/kbd.tsx +1 -1
  53. package/src/components/label.tsx +1 -1
  54. package/src/components/menubar.tsx +21 -22
  55. package/src/components/native-select.tsx +4 -4
  56. package/src/components/navigation-menu.tsx +10 -10
  57. package/src/components/notification.tsx +10 -10
  58. package/src/components/page-heading.tsx +8 -8
  59. package/src/components/pagination.tsx +1 -1
  60. package/src/components/progress.tsx +1 -1
  61. package/src/components/property-row.tsx +1 -1
  62. package/src/components/radio-card.tsx +6 -6
  63. package/src/components/radio-group.tsx +3 -3
  64. package/src/components/resizable.tsx +3 -3
  65. package/src/components/scroll-area.tsx +1 -1
  66. package/src/components/section-heading.tsx +3 -3
  67. package/src/components/select.tsx +11 -11
  68. package/src/components/separator.tsx +1 -1
  69. package/src/components/sheet.tsx +3 -3
  70. package/src/components/sidebar.tsx +19 -19
  71. package/src/components/skeleton.tsx +1 -1
  72. package/src/components/slider.tsx +1 -1
  73. package/src/components/sonner.tsx +5 -5
  74. package/src/components/stacked-list.tsx +4 -4
  75. package/src/components/stat-card.tsx +6 -6
  76. package/src/components/steps.tsx +13 -12
  77. package/src/components/switch.tsx +1 -1
  78. package/src/components/table.tsx +9 -9
  79. package/src/components/tabs.tsx +2 -2
  80. package/src/components/textarea.tsx +4 -4
  81. package/src/components/toggle.tsx +8 -8
  82. package/src/components/tooltip.tsx +1 -1
  83. package/src/index.ts +3 -2
  84. package/src/tokens/tokens.ts +54 -40
  85. package/src/components/__tests__/data.test.tsx +0 -180
  86. package/src/components/__tests__/disclosure.test.tsx +0 -198
  87. package/src/components/__tests__/display.test.tsx +0 -262
  88. package/src/components/__tests__/feedback.test.tsx +0 -138
  89. package/src/components/__tests__/form.test.tsx +0 -297
  90. package/src/components/__tests__/layout.test.tsx +0 -388
  91. package/src/components/__tests__/overlay.test.tsx +0 -90
  92. package/src/components/__tests__/primitives.test.tsx +0 -248
package/dist/tokens.css CHANGED
@@ -1,17 +1,19 @@
1
1
  /* Hilum UI tokens — generated by scripts/build-tokens.mjs. Do not edit by hand. */
2
2
 
3
+ @source "../src";
4
+
3
5
  @theme {
4
- --color-taupe-50: #f9f7f5;
5
- --color-taupe-100: #f2eeea;
6
- --color-taupe-200: #e3dcd4;
7
- --color-taupe-300: #c9beb3;
8
- --color-taupe-400: #a8978a;
9
- --color-taupe-500: #7d6960;
10
- --color-taupe-600: #5d4e47;
11
- --color-taupe-700: #4a3d38;
12
- --color-taupe-800: #332924;
13
- --color-taupe-900: #26181a;
14
- --color-taupe-950: #160e0a;
6
+ --color-ground-50: #fafafa;
7
+ --color-ground-100: #f5f5f5;
8
+ --color-ground-200: #e5e5e5;
9
+ --color-ground-300: #d4d4d4;
10
+ --color-ground-400: #a3a3a3;
11
+ --color-ground-500: #737373;
12
+ --color-ground-600: #525252;
13
+ --color-ground-700: #404040;
14
+ --color-ground-800: #262626;
15
+ --color-ground-900: #171717;
16
+ --color-ground-950: #0a0a0a;
15
17
  --color-purple-50: #fdf0ff;
16
18
  --color-purple-100: #f5d6ff;
17
19
  --color-purple-200: #e8a8ff;
@@ -45,7 +47,7 @@
45
47
  --radius-base: 0.5rem;
46
48
  --radius-sm: calc(0.5rem - 4px);
47
49
  --radius-md: calc(0.5rem - 2px);
48
- --radius-lg: 0.5rem;
50
+ --radius-lg: calc(0.5rem + 2px);
49
51
  --radius-xl: calc(0.5rem + 4px);
50
52
  --radius-full: 9999px;
51
53
 
@@ -55,6 +57,13 @@
55
57
  --animate-accordion-down: accordion-down 0.2s ease-out;
56
58
  --animate-accordion-up: accordion-up 0.2s ease-out;
57
59
  --animate-caret-blink: caret-blink 1.25s ease-out infinite;
60
+
61
+ --z-dropdown: 40;
62
+ --z-sticky: 50;
63
+ --z-fixed: 60;
64
+ --z-modal: 100;
65
+ --z-popover: 110;
66
+ --z-tooltip: 120;
58
67
  }
59
68
 
60
69
  @theme inline {
@@ -85,52 +94,52 @@
85
94
 
86
95
  :root {
87
96
  --background: #ffffff;
88
- --foreground: #26181a;
97
+ --foreground: #171717;
89
98
  --card: #ffffff;
90
- --card-foreground: #26181a;
91
- --surface: #f9f7f5;
92
- --surface-foreground: #332924;
93
- --border: #f2eeea;
94
- --input: #f2eeea;
95
- --muted: #f9f7f5;
96
- --muted-foreground: #7d6960;
99
+ --card-foreground: #171717;
100
+ --surface: #fafafa;
101
+ --surface-foreground: #262626;
102
+ --border: #f5f5f5;
103
+ --input: #f5f5f5;
104
+ --muted: #fafafa;
105
+ --muted-foreground: #737373;
97
106
  --accent: #fdf0ff;
98
107
  --accent-foreground: #740092;
99
108
  --primary: #c100f1;
100
109
  --primary-foreground: #ffffff;
101
- --secondary: #f9f7f5;
102
- --secondary-foreground: #4a3d38;
110
+ --secondary: #fafafa;
111
+ --secondary-foreground: #404040;
103
112
  --destructive: #dc2626;
104
113
  --destructive-foreground: #ffffff;
105
114
  --success: #CDEA19;
106
- --success-foreground: #26181a;
115
+ --success-foreground: #171717;
107
116
  --warning: #fff5bf;
108
- --warning-foreground: #26181a;
117
+ --warning-foreground: #171717;
109
118
  --ring: #c100f1;
110
119
  }
111
120
 
112
121
  @media (prefers-color-scheme: dark) {
113
122
  :root:not([data-theme="light"]) {
114
- --background: #160e0a;
115
- --foreground: #f9f7f5;
116
- --card: #26181a;
117
- --card-foreground: #f9f7f5;
118
- --surface: #26181a;
119
- --surface-foreground: #f2eeea;
120
- --border: #332924;
121
- --input: #332924;
122
- --muted: #26181a;
123
- --muted-foreground: #a8978a;
123
+ --background: #0a0a0a;
124
+ --foreground: #fafafa;
125
+ --card: #171717;
126
+ --card-foreground: #fafafa;
127
+ --surface: #171717;
128
+ --surface-foreground: #f5f5f5;
129
+ --border: #262626;
130
+ --input: #262626;
131
+ --muted: #171717;
132
+ --muted-foreground: #a3a3a3;
124
133
  --accent: #330040;
125
134
  --accent-foreground: #f5d6ff;
126
135
  --primary: #c100f1;
127
136
  --primary-foreground: #ffffff;
128
- --secondary: #26181a;
129
- --secondary-foreground: #f2eeea;
137
+ --secondary: #171717;
138
+ --secondary-foreground: #f5f5f5;
130
139
  --destructive: #ef4444;
131
140
  --destructive-foreground: #ffffff;
132
141
  --success: #CDEA19;
133
- --success-foreground: #160e0a;
142
+ --success-foreground: #0a0a0a;
134
143
  --warning: #221600;
135
144
  --warning-foreground: #fffad0;
136
145
  --ring: #c100f1;
@@ -138,26 +147,26 @@
138
147
  }
139
148
 
140
149
  [data-theme="dark"] {
141
- --background: #160e0a;
142
- --foreground: #f9f7f5;
143
- --card: #26181a;
144
- --card-foreground: #f9f7f5;
145
- --surface: #26181a;
146
- --surface-foreground: #f2eeea;
147
- --border: #332924;
148
- --input: #332924;
149
- --muted: #26181a;
150
- --muted-foreground: #a8978a;
150
+ --background: #0a0a0a;
151
+ --foreground: #fafafa;
152
+ --card: #171717;
153
+ --card-foreground: #fafafa;
154
+ --surface: #171717;
155
+ --surface-foreground: #f5f5f5;
156
+ --border: #262626;
157
+ --input: #262626;
158
+ --muted: #171717;
159
+ --muted-foreground: #a3a3a3;
151
160
  --accent: #330040;
152
161
  --accent-foreground: #f5d6ff;
153
162
  --primary: #c100f1;
154
163
  --primary-foreground: #ffffff;
155
- --secondary: #26181a;
156
- --secondary-foreground: #f2eeea;
164
+ --secondary: #171717;
165
+ --secondary-foreground: #f5f5f5;
157
166
  --destructive: #ef4444;
158
167
  --destructive-foreground: #ffffff;
159
168
  --success: #CDEA19;
160
- --success-foreground: #160e0a;
169
+ --success-foreground: #0a0a0a;
161
170
  --warning: #221600;
162
171
  --warning-foreground: #fffad0;
163
172
  --ring: #c100f1;
package/dist/tokens.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  declare const tokens: {
2
- readonly taupe: {
3
- readonly 50: "#f9f7f5";
4
- readonly 100: "#f2eeea";
5
- readonly 200: "#e3dcd4";
6
- readonly 300: "#c9beb3";
7
- readonly 400: "#a8978a";
8
- readonly 500: "#7d6960";
9
- readonly 600: "#5d4e47";
10
- readonly 700: "#4a3d38";
11
- readonly 800: "#332924";
12
- readonly 900: "#26181a";
13
- readonly 950: "#160e0a";
2
+ readonly ground: {
3
+ readonly 50: "#fafafa";
4
+ readonly 100: "#f5f5f5";
5
+ readonly 200: "#e5e5e5";
6
+ readonly 300: "#d4d4d4";
7
+ readonly 400: "#a3a3a3";
8
+ readonly 500: "#737373";
9
+ readonly 600: "#525252";
10
+ readonly 700: "#404040";
11
+ readonly 800: "#262626";
12
+ readonly 900: "#171717";
13
+ readonly 950: "#0a0a0a";
14
14
  };
15
15
  readonly butter: {
16
16
  readonly 50: "#ffffe8";
@@ -46,50 +46,50 @@ declare const tokens: {
46
46
  readonly semantic: {
47
47
  readonly light: {
48
48
  readonly background: "#ffffff";
49
- readonly foreground: "#26181a";
49
+ readonly foreground: "#171717";
50
50
  readonly card: "#ffffff";
51
- readonly cardForeground: "#26181a";
52
- readonly surface: "#f9f7f5";
53
- readonly surfaceForeground: "#332924";
54
- readonly border: "#f2eeea";
55
- readonly input: "#f2eeea";
56
- readonly muted: "#f9f7f5";
57
- readonly mutedForeground: "#7d6960";
51
+ readonly cardForeground: "#171717";
52
+ readonly surface: "#fafafa";
53
+ readonly surfaceForeground: "#262626";
54
+ readonly border: "#f5f5f5";
55
+ readonly input: "#f5f5f5";
56
+ readonly muted: "#fafafa";
57
+ readonly mutedForeground: "#737373";
58
58
  readonly accent: "#fdf0ff";
59
59
  readonly accentForeground: "#740092";
60
60
  readonly primary: "#c100f1";
61
61
  readonly primaryForeground: "#ffffff";
62
- readonly secondary: "#f9f7f5";
63
- readonly secondaryForeground: "#4a3d38";
62
+ readonly secondary: "#fafafa";
63
+ readonly secondaryForeground: "#404040";
64
64
  readonly destructive: "#dc2626";
65
65
  readonly destructiveForeground: "#ffffff";
66
66
  readonly success: "#CDEA19";
67
- readonly successForeground: "#26181a";
67
+ readonly successForeground: "#171717";
68
68
  readonly warning: "#fff5bf";
69
- readonly warningForeground: "#26181a";
69
+ readonly warningForeground: "#171717";
70
70
  readonly ring: "#c100f1";
71
71
  };
72
72
  readonly dark: {
73
- readonly background: "#160e0a";
74
- readonly foreground: "#f9f7f5";
75
- readonly card: "#26181a";
76
- readonly cardForeground: "#f9f7f5";
77
- readonly surface: "#26181a";
78
- readonly surfaceForeground: "#f2eeea";
79
- readonly border: "#332924";
80
- readonly input: "#332924";
81
- readonly muted: "#26181a";
82
- readonly mutedForeground: "#a8978a";
73
+ readonly background: "#0a0a0a";
74
+ readonly foreground: "#fafafa";
75
+ readonly card: "#171717";
76
+ readonly cardForeground: "#fafafa";
77
+ readonly surface: "#171717";
78
+ readonly surfaceForeground: "#f5f5f5";
79
+ readonly border: "#262626";
80
+ readonly input: "#262626";
81
+ readonly muted: "#171717";
82
+ readonly mutedForeground: "#a3a3a3";
83
83
  readonly accent: "#330040";
84
84
  readonly accentForeground: "#f5d6ff";
85
85
  readonly primary: "#c100f1";
86
86
  readonly primaryForeground: "#ffffff";
87
- readonly secondary: "#26181a";
88
- readonly secondaryForeground: "#f2eeea";
87
+ readonly secondary: "#171717";
88
+ readonly secondaryForeground: "#f5f5f5";
89
89
  readonly destructive: "#ef4444";
90
90
  readonly destructiveForeground: "#ffffff";
91
91
  readonly success: "#CDEA19";
92
- readonly successForeground: "#160e0a";
92
+ readonly successForeground: "#0a0a0a";
93
93
  readonly warning: "#221600";
94
94
  readonly warningForeground: "#fffad0";
95
95
  readonly ring: "#c100f1";
@@ -169,10 +169,18 @@ declare const tokens: {
169
169
  readonly base: "0.5rem";
170
170
  readonly sm: "calc(0.5rem - 4px)";
171
171
  readonly md: "calc(0.5rem - 2px)";
172
- readonly lg: "0.5rem";
172
+ readonly lg: "calc(0.5rem + 2px)";
173
173
  readonly xl: "calc(0.5rem + 4px)";
174
174
  readonly full: "9999px";
175
175
  };
176
+ readonly zIndex: {
177
+ readonly dropdown: 40;
178
+ readonly sticky: 50;
179
+ readonly fixed: 60;
180
+ readonly modal: 100;
181
+ readonly popover: 110;
182
+ readonly tooltip: 120;
183
+ };
176
184
  readonly shadow: {
177
185
  readonly natural: "0 0px 0px 1px rgba(0, 0, 0, 0.06), 0 1px 1px -0.5px rgba(0, 0, 0, 0.06), 0 3px 3px -1.5px rgba(0, 0, 0, 0.06)";
178
186
  readonly elevated: "0 0px 0px 1px rgba(0, 0, 0, 0.06), 0 1px 1px -0.5px rgba(0, 0, 0, 0.06), 0 3px 3px -1.5px rgba(0, 0, 0, 0.06), 0 6px 6px -3px rgba(0, 0, 0, 0.06), 0 12px 12px -6px rgba(0, 0, 0, 0.04), 0 24px 24px -12px rgba(0, 0, 0, 0.04), 0 24px 24px 2px rgba(0, 0, 0, 0.1)";
package/dist/tokens.js CHANGED
@@ -1,193 +1,3 @@
1
- // src/tokens/tokens.ts
2
- var tokens = {
3
- /* ============================================================== *
4
- * PALETTE — concrete colors *
5
- * ============================================================== */
6
- taupe: {
7
- 50: "#f9f7f5",
8
- 100: "#f2eeea",
9
- 200: "#e3dcd4",
10
- 300: "#c9beb3",
11
- 400: "#a8978a",
12
- 500: "#7d6960",
13
- 600: "#5d4e47",
14
- 700: "#4a3d38",
15
- 800: "#332924",
16
- 900: "#26181a",
17
- 950: "#160e0a"
18
- },
19
- // Pale lemon — anchor: butter-200 = #FFF5BF
20
- butter: {
21
- 50: "#ffffe8",
22
- 100: "#fffad0",
23
- 200: "#fff5bf",
24
- 300: "#fde870",
25
- 400: "#f6d42a",
26
- 500: "#dab010",
27
- 600: "#a88008",
28
- 700: "#7c5c04",
29
- 800: "#543e02",
30
- 900: "#382801",
31
- 950: "#221600"
32
- },
33
- // Vivid purple — anchor: purple-500 = #C100F1 (brand.primary)
34
- purple: {
35
- 50: "#fdf0ff",
36
- 100: "#f5d6ff",
37
- 200: "#e8a8ff",
38
- 300: "#d870f9",
39
- 400: "#c840f6",
40
- 500: "#c100f1",
41
- 600: "#9c00c0",
42
- 700: "#740092",
43
- 800: "#4e0062",
44
- 900: "#330040",
45
- 950: "#200028"
46
- },
47
- // Legacy functional colors — used by components not yet migrated to the new palette.
48
- brand: {
49
- primary: "#C100F1",
50
- // purple-500
51
- secondary: "#FFF5BF"
52
- // butter-200
53
- },
54
- destructive: "#dc2626",
55
- // red-600
56
- /* ============================================================== *
57
- * SEMANTIC — what components reference *
58
- * ============================================================== */
59
- semantic: {
60
- light: {
61
- background: "#ffffff",
62
- foreground: "#26181a",
63
- // taupe-900
64
- card: "#ffffff",
65
- cardForeground: "#26181a",
66
- surface: "#f9f7f5",
67
- // taupe-50
68
- surfaceForeground: "#332924",
69
- // taupe-800
70
- border: "#f2eeea",
71
- // taupe-100
72
- input: "#f2eeea",
73
- muted: "#f9f7f5",
74
- mutedForeground: "#7d6960",
75
- // taupe-500
76
- accent: "#fdf0ff",
77
- // purple-50
78
- accentForeground: "#740092",
79
- // purple-700
80
- primary: "#c100f1",
81
- // purple-500 = brand.primary
82
- primaryForeground: "#ffffff",
83
- secondary: "#f9f7f5",
84
- // taupe-50
85
- secondaryForeground: "#4a3d38",
86
- // taupe-700
87
- destructive: "#dc2626",
88
- destructiveForeground: "#ffffff",
89
- success: "#CDEA19",
90
- // lime — functional semantic only
91
- successForeground: "#26181a",
92
- warning: "#fff5bf",
93
- // butter-200 = brand.secondary
94
- warningForeground: "#26181a",
95
- // taupe-900
96
- ring: "#c100f1"
97
- // purple-500 = brand.primary
98
- },
99
- dark: {
100
- background: "#160e0a",
101
- // taupe-950
102
- foreground: "#f9f7f5",
103
- // taupe-50
104
- card: "#26181a",
105
- // taupe-900
106
- cardForeground: "#f9f7f5",
107
- surface: "#26181a",
108
- surfaceForeground: "#f2eeea",
109
- border: "#332924",
110
- // taupe-800
111
- input: "#332924",
112
- muted: "#26181a",
113
- mutedForeground: "#a8978a",
114
- // taupe-400
115
- accent: "#330040",
116
- // purple-900
117
- accentForeground: "#f5d6ff",
118
- // purple-100
119
- primary: "#c100f1",
120
- // purple-500 — brand stays consistent (D8)
121
- primaryForeground: "#ffffff",
122
- secondary: "#26181a",
123
- secondaryForeground: "#f2eeea",
124
- destructive: "#ef4444",
125
- // red-500 (slightly lighter for dark)
126
- destructiveForeground: "#ffffff",
127
- success: "#CDEA19",
128
- // lime — functional semantic only
129
- successForeground: "#160e0a",
130
- warning: "#221600",
131
- // butter-950 surface
132
- warningForeground: "#fffad0",
133
- // butter-100
134
- ring: "#c100f1"
135
- // purple-500 = brand.primary
136
- }
137
- },
138
- /* ============================================================== *
139
- * TYPOGRAPHY *
140
- * ============================================================== */
141
- fontFamily: {
142
- sans: 'Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
143
- serif: '"Instrument Serif", ui-serif, Georgia, serif',
144
- mono: 'ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace'
145
- },
146
- /** Type scale utilities — emitted as Tailwind v4 `@utility` blocks. */
147
- typeScale: {
148
- "display-xl": { family: "serif", size: "3rem", weight: 400, lineHeight: "1.15" },
149
- display: { family: "serif", size: "2.25rem", weight: 400, lineHeight: "1.15" },
150
- "heading-xl": { family: "serif", size: "1.875rem", weight: 400, lineHeight: "1.2" },
151
- heading: { family: "serif", size: "1.5rem", weight: 400, lineHeight: "1.2" },
152
- subheading: { family: "serif", size: "1.25rem", weight: 400, lineHeight: "1.4" },
153
- "body-lg": { family: "sans", size: "1rem", weight: 400, lineHeight: "1.625" },
154
- body: { family: "sans", size: "0.875rem", weight: 400, lineHeight: "1.625" },
155
- caption: { family: "sans", size: "0.75rem", weight: 400, lineHeight: "1.625" },
156
- "caption-xs": { family: "sans", size: "0.625rem", weight: 400, lineHeight: "1.625" },
157
- label: {
158
- family: "sans",
159
- size: "0.75rem",
160
- weight: 600,
161
- lineHeight: "1",
162
- letterSpacing: "0.1em",
163
- textTransform: "uppercase"
164
- }
165
- },
166
- /* ============================================================== *
167
- * GEOMETRY *
168
- * ============================================================== */
169
- radius: {
170
- base: "0.5rem",
171
- sm: "calc(0.5rem - 4px)",
172
- md: "calc(0.5rem - 2px)",
173
- lg: "0.5rem",
174
- xl: "calc(0.5rem + 4px)",
175
- full: "9999px"
176
- },
177
- shadow: {
178
- natural: "0 0px 0px 1px rgba(0, 0, 0, 0.06), 0 1px 1px -0.5px rgba(0, 0, 0, 0.06), 0 3px 3px -1.5px rgba(0, 0, 0, 0.06)",
179
- elevated: "0 0px 0px 1px rgba(0, 0, 0, 0.06), 0 1px 1px -0.5px rgba(0, 0, 0, 0.06), 0 3px 3px -1.5px rgba(0, 0, 0, 0.06), 0 6px 6px -3px rgba(0, 0, 0, 0.06), 0 12px 12px -6px rgba(0, 0, 0, 0.04), 0 24px 24px -12px rgba(0, 0, 0, 0.04), 0 24px 24px 2px rgba(0, 0, 0, 0.1)"
180
- },
181
- /* ============================================================== *
182
- * ANIMATION *
183
- * ============================================================== */
184
- animation: {
185
- "accordion-down": "accordion-down 0.2s ease-out",
186
- "accordion-up": "accordion-up 0.2s ease-out",
187
- "caret-blink": "caret-blink 1.25s ease-out infinite"
188
- }
189
- };
190
-
191
- export { tokens };
1
+ export { tokens } from './chunk-J2QQDUF4.js';
192
2
  //# sourceMappingURL=tokens.js.map
193
3
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tokens/tokens.ts"],"names":[],"mappings":"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","file":"tokens.js","sourcesContent":["// @hilum/ui/tokens — JS-first design tokens (D6).\n//\n// This module is the single source of truth for the Hilum visual identity.\n// A build step (scripts/build-tokens.mjs) reads the compiled output of this\n// file and emits dist/tokens.css for consumers to `@import`.\n//\n// Brand model: D8 — fully fixed. No per-app overrides.\n// Color modes: D7 — light + dark, both auto (`prefers-color-scheme`) and\n// explicit via `[data-theme]`.\n//\n// Core brand colors:\n// brand.primary #C100F1 — vivid purple — purple-500 on the scale below\n// brand.secondary #FFF5BF — pale lemon — butter-200 on the scale below\n//\n// taupe — neutral spine for text, borders, and structure (unchanged)\n\nexport const tokens = {\n /* ============================================================== *\n * PALETTE — concrete colors *\n * ============================================================== */\n\n taupe: {\n 50: \"#f9f7f5\",\n 100: \"#f2eeea\",\n 200: \"#e3dcd4\",\n 300: \"#c9beb3\",\n 400: \"#a8978a\",\n 500: \"#7d6960\",\n 600: \"#5d4e47\",\n 700: \"#4a3d38\",\n 800: \"#332924\",\n 900: \"#26181a\",\n 950: \"#160e0a\",\n },\n\n // Pale lemon — anchor: butter-200 = #FFF5BF\n butter: {\n 50: \"#ffffe8\",\n 100: \"#fffad0\",\n 200: \"#fff5bf\",\n 300: \"#fde870\",\n 400: \"#f6d42a\",\n 500: \"#dab010\",\n 600: \"#a88008\",\n 700: \"#7c5c04\",\n 800: \"#543e02\",\n 900: \"#382801\",\n 950: \"#221600\",\n },\n\n // Vivid purple — anchor: purple-500 = #C100F1 (brand.primary)\n purple: {\n 50: \"#fdf0ff\",\n 100: \"#f5d6ff\",\n 200: \"#e8a8ff\",\n 300: \"#d870f9\",\n 400: \"#c840f6\",\n 500: \"#c100f1\",\n 600: \"#9c00c0\",\n 700: \"#740092\",\n 800: \"#4e0062\",\n 900: \"#330040\",\n 950: \"#200028\",\n },\n\n // Legacy functional colors — used by components not yet migrated to the new palette.\n brand: {\n primary: \"#C100F1\", // purple-500\n secondary: \"#FFF5BF\", // butter-200\n },\n\n destructive: \"#dc2626\", // red-600\n\n /* ============================================================== *\n * SEMANTIC — what components reference *\n * ============================================================== */\n\n semantic: {\n light: {\n background: \"#ffffff\",\n foreground: \"#26181a\", // taupe-900\n card: \"#ffffff\",\n cardForeground: \"#26181a\",\n surface: \"#f9f7f5\", // taupe-50\n surfaceForeground: \"#332924\", // taupe-800\n border: \"#f2eeea\", // taupe-100\n input: \"#f2eeea\",\n muted: \"#f9f7f5\",\n mutedForeground: \"#7d6960\", // taupe-500\n accent: \"#fdf0ff\", // purple-50\n accentForeground: \"#740092\", // purple-700\n primary: \"#c100f1\", // purple-500 = brand.primary\n primaryForeground: \"#ffffff\",\n secondary: \"#f9f7f5\", // taupe-50\n secondaryForeground: \"#4a3d38\", // taupe-700\n destructive: \"#dc2626\",\n destructiveForeground: \"#ffffff\",\n success: \"#CDEA19\", // lime — functional semantic only\n successForeground: \"#26181a\",\n warning: \"#fff5bf\", // butter-200 = brand.secondary\n warningForeground: \"#26181a\", // taupe-900\n ring: \"#c100f1\", // purple-500 = brand.primary\n },\n dark: {\n background: \"#160e0a\", // taupe-950\n foreground: \"#f9f7f5\", // taupe-50\n card: \"#26181a\", // taupe-900\n cardForeground: \"#f9f7f5\",\n surface: \"#26181a\",\n surfaceForeground: \"#f2eeea\",\n border: \"#332924\", // taupe-800\n input: \"#332924\",\n muted: \"#26181a\",\n mutedForeground: \"#a8978a\", // taupe-400\n accent: \"#330040\", // purple-900\n accentForeground: \"#f5d6ff\", // purple-100\n primary: \"#c100f1\", // purple-500 — brand stays consistent (D8)\n primaryForeground: \"#ffffff\",\n secondary: \"#26181a\",\n secondaryForeground: \"#f2eeea\",\n destructive: \"#ef4444\", // red-500 (slightly lighter for dark)\n destructiveForeground: \"#ffffff\",\n success: \"#CDEA19\", // lime — functional semantic only\n successForeground: \"#160e0a\",\n warning: \"#221600\", // butter-950 surface\n warningForeground: \"#fffad0\", // butter-100\n ring: \"#c100f1\", // purple-500 = brand.primary\n },\n },\n\n /* ============================================================== *\n * TYPOGRAPHY *\n * ============================================================== */\n\n fontFamily: {\n sans: 'Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n serif: '\"Instrument Serif\", ui-serif, Georgia, serif',\n mono: 'ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Consolas\", monospace',\n },\n\n /** Type scale utilities — emitted as Tailwind v4 `@utility` blocks. */\n typeScale: {\n \"display-xl\": { family: \"serif\", size: \"3rem\", weight: 400, lineHeight: \"1.15\" },\n display: { family: \"serif\", size: \"2.25rem\", weight: 400, lineHeight: \"1.15\" },\n \"heading-xl\": { family: \"serif\", size: \"1.875rem\", weight: 400, lineHeight: \"1.2\" },\n heading: { family: \"serif\", size: \"1.5rem\", weight: 400, lineHeight: \"1.2\" },\n subheading: { family: \"serif\", size: \"1.25rem\", weight: 400, lineHeight: \"1.4\" },\n \"body-lg\": { family: \"sans\", size: \"1rem\", weight: 400, lineHeight: \"1.625\" },\n body: { family: \"sans\", size: \"0.875rem\", weight: 400, lineHeight: \"1.625\" },\n caption: { family: \"sans\", size: \"0.75rem\", weight: 400, lineHeight: \"1.625\" },\n \"caption-xs\": { family: \"sans\", size: \"0.625rem\", weight: 400, lineHeight: \"1.625\" },\n label: {\n family: \"sans\",\n size: \"0.75rem\",\n weight: 600,\n lineHeight: \"1\",\n letterSpacing: \"0.1em\",\n textTransform: \"uppercase\" as const,\n },\n },\n\n /* ============================================================== *\n * GEOMETRY *\n * ============================================================== */\n\n radius: {\n base: \"0.5rem\",\n sm: \"calc(0.5rem - 4px)\",\n md: \"calc(0.5rem - 2px)\",\n lg: \"0.5rem\",\n xl: \"calc(0.5rem + 4px)\",\n full: \"9999px\",\n },\n\n shadow: {\n natural:\n \"0 0px 0px 1px rgba(0, 0, 0, 0.06), 0 1px 1px -0.5px rgba(0, 0, 0, 0.06), 0 3px 3px -1.5px rgba(0, 0, 0, 0.06)\",\n elevated:\n \"0 0px 0px 1px rgba(0, 0, 0, 0.06), 0 1px 1px -0.5px rgba(0, 0, 0, 0.06), 0 3px 3px -1.5px rgba(0, 0, 0, 0.06), 0 6px 6px -3px rgba(0, 0, 0, 0.06), 0 12px 12px -6px rgba(0, 0, 0, 0.04), 0 24px 24px -12px rgba(0, 0, 0, 0.04), 0 24px 24px 2px rgba(0, 0, 0, 0.1)\",\n },\n\n /* ============================================================== *\n * ANIMATION *\n * ============================================================== */\n\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"caret-blink\": \"caret-blink 1.25s ease-out infinite\",\n },\n} as const;\n\nexport type Tokens = typeof tokens;\nexport type SemanticTokens = typeof tokens.semantic.light;\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"tokens.js"}