@psnext/design-system 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +126 -0
  2. package/dist/AiChatPanel.cjs +1603 -0
  3. package/dist/AiChatPanel.cjs.map +1 -0
  4. package/dist/AiChatPanel.js +1526 -0
  5. package/dist/AiChatPanel.js.map +1 -0
  6. package/dist/BodhiLogo.cjs +240 -0
  7. package/dist/BodhiLogo.cjs.map +1 -0
  8. package/dist/BodhiLogo.js +194 -0
  9. package/dist/BodhiLogo.js.map +1 -0
  10. package/dist/Skeleton.cjs +19 -0
  11. package/dist/Skeleton.cjs.map +1 -0
  12. package/dist/Skeleton.js +14 -0
  13. package/dist/Skeleton.js.map +1 -0
  14. package/dist/SustainLogo.cjs +415 -0
  15. package/dist/SustainLogo.cjs.map +1 -0
  16. package/dist/SustainLogo.js +378 -0
  17. package/dist/SustainLogo.js.map +1 -0
  18. package/dist/contexts/index.cjs +60 -0
  19. package/dist/contexts/index.cjs.map +1 -0
  20. package/dist/contexts/index.d.cts +23 -0
  21. package/dist/contexts/index.d.cts.map +1 -0
  22. package/dist/contexts/index.d.ts +23 -0
  23. package/dist/contexts/index.d.ts.map +1 -0
  24. package/dist/contexts/index.js +58 -0
  25. package/dist/contexts/index.js.map +1 -0
  26. package/dist/index.cjs +273 -0
  27. package/dist/index.d.cts +1440 -0
  28. package/dist/index.d.cts.map +1 -0
  29. package/dist/index.d.ts +1440 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +7 -0
  32. package/dist/index2.d.cts +16 -0
  33. package/dist/index2.d.cts.map +1 -0
  34. package/dist/index2.d.ts +16 -0
  35. package/dist/index2.d.ts.map +1 -0
  36. package/dist/layouts/index.cjs +13 -0
  37. package/dist/layouts/index.d.cts +133 -0
  38. package/dist/layouts/index.d.cts.map +1 -0
  39. package/dist/layouts/index.d.ts +133 -0
  40. package/dist/layouts/index.d.ts.map +1 -0
  41. package/dist/layouts/index.js +2 -0
  42. package/dist/layouts.cjs +3245 -0
  43. package/dist/layouts.cjs.map +1 -0
  44. package/dist/layouts.js +3180 -0
  45. package/dist/layouts.js.map +1 -0
  46. package/dist/patterns/index.cjs +7375 -0
  47. package/dist/patterns/index.cjs.map +1 -0
  48. package/dist/patterns/index.d.cts +418 -0
  49. package/dist/patterns/index.d.cts.map +1 -0
  50. package/dist/patterns/index.d.ts +418 -0
  51. package/dist/patterns/index.d.ts.map +1 -0
  52. package/dist/patterns/index.js +7344 -0
  53. package/dist/patterns/index.js.map +1 -0
  54. package/dist/primitives/index.cjs +256 -0
  55. package/dist/primitives/index.d.cts +2 -0
  56. package/dist/primitives/index.d.ts +2 -0
  57. package/dist/primitives/index.js +5 -0
  58. package/dist/primitives.cjs +4292 -0
  59. package/dist/primitives.cjs.map +1 -0
  60. package/dist/primitives.js +2807 -0
  61. package/dist/primitives.js.map +1 -0
  62. package/dist/styles/base/colors.css +300 -0
  63. package/dist/styles/base/component-tokens.css +240 -0
  64. package/dist/styles/base/elevation.css +7 -0
  65. package/dist/styles/base/fonts.css +14 -0
  66. package/dist/styles/base/global.css +305 -0
  67. package/dist/styles/base/radius.css +22 -0
  68. package/dist/styles/base/semantic-aliases.css +53 -0
  69. package/dist/styles/base/spacing.css +33 -0
  70. package/dist/styles/base/typography.css +48 -0
  71. package/dist/styles/generated/bodhi-vars.css +34 -0
  72. package/dist/styles/generated/dark.css +87 -0
  73. package/dist/styles/generated/light.css +87 -0
  74. package/dist/styles/generated/slingshot-vars.css +34 -0
  75. package/dist/styles/generated/sustain-vars.css +34 -0
  76. package/dist/styles/index.css +32 -0
  77. package/dist/styles/theme.css +65 -0
  78. package/dist/styles/themes/bodhi.css +166 -0
  79. package/dist/styles/themes/slingshot.css +144 -0
  80. package/dist/styles/themes/sustain.css +130 -0
  81. package/package.json +131 -0
@@ -0,0 +1,300 @@
1
+ /* ============================================================
2
+ Raw Color Collection — Single Source of Truth
3
+ Source: src/design-system/tokens/colors.tokens.json (Mode 1)
4
+
5
+ These are raw primitive values only.
6
+ DO NOT use these directly in components.
7
+ Components must consume semantic tokens from theme.css / theme files.
8
+ ============================================================ */
9
+
10
+ :root {
11
+ /* ── Absolute ─────────────────────────────────────────── */
12
+ --color-white: #ffffff;
13
+ --color-black: #000000;
14
+
15
+ /* ── Neutral ──────────────────────────────────────────── */
16
+ --color-neutral-50: #fafafa;
17
+ --color-neutral-100: #f5f5f5;
18
+ --color-neutral-200: #e5e5e5;
19
+ --color-neutral-300: #d4d4d4;
20
+ --color-neutral-400: #a3a3a3;
21
+ --color-neutral-500: #737373;
22
+ --color-neutral-600: #525252;
23
+ --color-neutral-700: #404040;
24
+ --color-neutral-800: #262626;
25
+ --color-neutral-900: #171717;
26
+ --color-neutral-950: #0a0a0a;
27
+
28
+ /* ── Gray ─────────────────────────────────────────────── */
29
+ --color-gray-50: #f9fafb;
30
+ --color-gray-100: #f3f4f6;
31
+ --color-gray-200: #e5e7eb;
32
+ --color-gray-300: #d1d5db;
33
+ --color-gray-400: #9ca3af;
34
+ --color-gray-500: #6b7280;
35
+ --color-gray-600: #4b5563;
36
+ --color-gray-700: #374151;
37
+ --color-gray-800: #1f2937;
38
+ --color-gray-900: #111827;
39
+ --color-gray-950: #030712;
40
+
41
+ /* ── Slate ────────────────────────────────────────────── */
42
+ --color-slate-50: #f8fafc;
43
+ --color-slate-100: #f1f5f9;
44
+ --color-slate-200: #e2e8f0;
45
+ --color-slate-300: #cbd5e1;
46
+ --color-slate-400: #94a3b8;
47
+ --color-slate-500: #64748b;
48
+ --color-slate-600: #475569;
49
+ --color-slate-700: #334155;
50
+ --color-slate-800: #1e293b;
51
+ --color-slate-900: #0f172a;
52
+ --color-slate-950: #020617;
53
+
54
+ /* ── Zinc ─────────────────────────────────────────────── */
55
+ --color-zinc-50: #fafafa;
56
+ --color-zinc-100: #f4f4f5;
57
+ --color-zinc-200: #e4e4e7;
58
+ --color-zinc-300: #d4d4d8;
59
+ --color-zinc-400: #a1a1aa;
60
+ --color-zinc-500: #71717a;
61
+ --color-zinc-600: #52525b;
62
+ --color-zinc-700: #3f3f46;
63
+ --color-zinc-800: #27272a;
64
+ --color-zinc-900: #18181b;
65
+ --color-zinc-950: #09090b;
66
+
67
+ /* ── Stone ────────────────────────────────────────────── */
68
+ --color-stone-50: #fafaf9;
69
+ --color-stone-100: #f5f5f4;
70
+ --color-stone-200: #e7e5e4;
71
+ --color-stone-300: #d6d3d1;
72
+ --color-stone-400: #a8a29e;
73
+ --color-stone-500: #78716c;
74
+ --color-stone-600: #57534e;
75
+ --color-stone-700: #44403c;
76
+ --color-stone-800: #292524;
77
+ --color-stone-900: #1c1917;
78
+ --color-stone-950: #0c0a09;
79
+
80
+ /* ── Red — Slingshot brand ────────────────────────────── */
81
+ --color-red-50: #fef2f5;
82
+ --color-red-100: #fde6ea;
83
+ --color-red-200: #fbccd6;
84
+ --color-red-300: #f699ac;
85
+ --color-red-400: #f26783;
86
+ --color-red-500: #e90130;
87
+ --color-red-600: #d2012b;
88
+ --color-red-700: #bc0126;
89
+ --color-red-800: #8d011d;
90
+ --color-red-900: #6c0016;
91
+ --color-red-950: #3d000d;
92
+
93
+ /* ── Orange ───────────────────────────────────────────── */
94
+ --color-orange-50: #fff7ed;
95
+ --color-orange-100: #ffedd5;
96
+ --color-orange-200: #fed7aa;
97
+ --color-orange-300: #fdba74;
98
+ --color-orange-400: #fb923c;
99
+ --color-orange-500: #f97316;
100
+ --color-orange-600: #ea580c;
101
+ --color-orange-700: #c2410c;
102
+ --color-orange-800: #9a3412;
103
+ --color-orange-900: #7c2d12;
104
+ --color-orange-950: #431407;
105
+
106
+ /* ── Amber ────────────────────────────────────────────── */
107
+ --color-amber-50: #fffbeb;
108
+ --color-amber-100: #fef3c7;
109
+ --color-amber-200: #fde68a;
110
+ --color-amber-300: #fcd34d;
111
+ --color-amber-400: #fbbf24;
112
+ --color-amber-500: #f59e0b;
113
+ --color-amber-600: #d97706;
114
+ --color-amber-700: #b45309;
115
+ --color-amber-800: #92400e;
116
+ --color-amber-900: #78350f;
117
+ --color-amber-950: #451a03;
118
+
119
+ /* ── Yellow ───────────────────────────────────────────── */
120
+ --color-yellow-50: #fefce8;
121
+ --color-yellow-100: #fef9c3;
122
+ --color-yellow-200: #fef08a;
123
+ --color-yellow-300: #fde047;
124
+ --color-yellow-400: #facc15;
125
+ --color-yellow-500: #eab308;
126
+ --color-yellow-600: #ca8a04;
127
+ --color-yellow-700: #a16207;
128
+ --color-yellow-800: #854d0e;
129
+ --color-yellow-900: #713f12;
130
+ --color-yellow-950: #422006;
131
+
132
+ /* ── Lime ─────────────────────────────────────────────── */
133
+ --color-lime-50: #f7fee7;
134
+ --color-lime-100: #ecfccb;
135
+ --color-lime-200: #d9f99d;
136
+ --color-lime-300: #bef264;
137
+ --color-lime-400: #a3e635;
138
+ --color-lime-500: #84cc16;
139
+ --color-lime-600: #65a30d;
140
+ --color-lime-700: #4d7c0f;
141
+ --color-lime-800: #3f6212;
142
+ --color-lime-900: #365314;
143
+ --color-lime-950: #1a2e05;
144
+
145
+ /* ── Green ────────────────────────────────────────────── */
146
+ --color-green-50: #f0fdf4;
147
+ --color-green-100: #dcfce7;
148
+ --color-green-200: #bbf7d0;
149
+ --color-green-300: #86efac;
150
+ --color-green-400: #4ade80;
151
+ --color-green-500: #22c55e;
152
+ --color-green-600: #16a34a;
153
+ --color-green-700: #15803d;
154
+ --color-green-800: #166534;
155
+ --color-green-900: #14532d;
156
+ --color-green-950: #052e16;
157
+
158
+ /* ── Emerald ──────────────────────────────────────────── */
159
+ --color-emerald-50: #ecfdf5;
160
+ --color-emerald-100: #d1fae5;
161
+ --color-emerald-200: #a7f3d0;
162
+ --color-emerald-300: #6ee7b7;
163
+ --color-emerald-400: #34d399;
164
+ --color-emerald-500: #10b981;
165
+ --color-emerald-600: #059669;
166
+ --color-emerald-700: #047857;
167
+ --color-emerald-800: #065f46;
168
+ --color-emerald-900: #064e3b;
169
+ --color-emerald-950: #022c22;
170
+
171
+ /* ── Teal ─────────────────────────────────────────────── */
172
+ --color-teal-50: #f0fdfa;
173
+ --color-teal-100: #ccfbf1;
174
+ --color-teal-200: #99f6e4;
175
+ --color-teal-300: #5eead4;
176
+ --color-teal-400: #2dd4bf;
177
+ --color-teal-500: #14b8a6;
178
+ --color-teal-600: #0d9488;
179
+ --color-teal-700: #0f766e;
180
+ --color-teal-800: #115e59;
181
+ --color-teal-900: #134e4a;
182
+ --color-teal-950: #042f2e;
183
+
184
+ /* ── Cyan ─────────────────────────────────────────────── */
185
+ --color-cyan-50: #ecfeff;
186
+ --color-cyan-100: #cffafe;
187
+ --color-cyan-200: #a5f3fc;
188
+ --color-cyan-300: #67e8f9;
189
+ --color-cyan-400: #22d3ee;
190
+ --color-cyan-500: #06b6d4;
191
+ --color-cyan-600: #0891b2;
192
+ --color-cyan-700: #0e7490;
193
+ --color-cyan-800: #155e75;
194
+ --color-cyan-900: #164e63;
195
+ --color-cyan-950: #083344;
196
+
197
+ /* ── Sky ──────────────────────────────────────────────── */
198
+ --color-sky-50: #f0f9ff;
199
+ --color-sky-100: #e0f2fe;
200
+ --color-sky-200: #bae6fd;
201
+ --color-sky-300: #7dd3fc;
202
+ --color-sky-400: #38bdf8;
203
+ --color-sky-500: #0ea5e9;
204
+ --color-sky-600: #0284c7;
205
+ --color-sky-700: #0369a1;
206
+ --color-sky-800: #075985;
207
+ --color-sky-900: #0c4a6e;
208
+ --color-sky-950: #082f49;
209
+
210
+ /* ── Blue — Bodhi brand ───────────────────────────────── */
211
+ --color-blue-50: #eff6ff;
212
+ --color-blue-100: #dbeafe;
213
+ --color-blue-200: #bfdbfe;
214
+ --color-blue-300: #93c5fd;
215
+ --color-blue-400: #60a5fa;
216
+ --color-blue-500: #3b82f6;
217
+ --color-blue-600: #2563eb;
218
+ --color-blue-700: #1d4ed8;
219
+ --color-blue-800: #1e40af;
220
+ --color-blue-900: #1e3a8a;
221
+ --color-blue-950: #172554;
222
+
223
+ /* ── Indigo ───────────────────────────────────────────── */
224
+ --color-indigo-50: #eef2ff;
225
+ --color-indigo-100: #e0e7ff;
226
+ --color-indigo-200: #c7d2fe;
227
+ --color-indigo-300: #a5b4fc;
228
+ --color-indigo-400: #818cf8;
229
+ --color-indigo-500: #6366f1;
230
+ --color-indigo-600: #4f46e5;
231
+ --color-indigo-700: #4338ca;
232
+ --color-indigo-800: #3730a3;
233
+ --color-indigo-900: #312e81;
234
+ --color-indigo-950: #1e1b4b;
235
+
236
+ /* ── Violet — Sustain brand ───────────────────────────── */
237
+ --color-violet-50: #f5f3ff;
238
+ --color-violet-100: #ede9fe;
239
+ --color-violet-200: #ddd6fe;
240
+ --color-violet-300: #c4b5fd;
241
+ --color-violet-400: #a78bfa;
242
+ --color-violet-500: #8b5cf6;
243
+ --color-violet-600: #7c3aed;
244
+ --color-violet-700: #6d28d9;
245
+ --color-violet-800: #5b21b6;
246
+ --color-violet-900: #4c1d95;
247
+ --color-violet-950: #2e1065;
248
+
249
+ /* ── Purple ───────────────────────────────────────────── */
250
+ --color-purple-50: #faf5ff;
251
+ --color-purple-100: #f3e8ff;
252
+ --color-purple-200: #e9d5ff;
253
+ --color-purple-300: #d8b4fe;
254
+ --color-purple-400: #c084fc;
255
+ --color-purple-500: #a855f7;
256
+ --color-purple-600: #9333ea;
257
+ --color-purple-700: #7e22ce;
258
+ --color-purple-800: #6b21a8;
259
+ --color-purple-900: #581c87;
260
+ --color-purple-950: #3b0764;
261
+
262
+ /* ── Fuchsia ──────────────────────────────────────────── */
263
+ --color-fuchsia-50: #fdf4ff;
264
+ --color-fuchsia-100: #fae8ff;
265
+ --color-fuchsia-200: #f5d0fe;
266
+ --color-fuchsia-300: #f0abfc;
267
+ --color-fuchsia-400: #e879f9;
268
+ --color-fuchsia-500: #d946ef;
269
+ --color-fuchsia-600: #c026d3;
270
+ --color-fuchsia-700: #a21caf;
271
+ --color-fuchsia-800: #86198f;
272
+ --color-fuchsia-900: #701a75;
273
+ --color-fuchsia-950: #4a044e;
274
+
275
+ /* ── Pink ─────────────────────────────────────────────── */
276
+ --color-pink-50: #fdf2f8;
277
+ --color-pink-100: #fce7f3;
278
+ --color-pink-200: #fbcfe8;
279
+ --color-pink-300: #f9a8d4;
280
+ --color-pink-400: #f472b6;
281
+ --color-pink-500: #ec4899;
282
+ --color-pink-600: #db2777;
283
+ --color-pink-700: #be185d;
284
+ --color-pink-800: #9d174d;
285
+ --color-pink-900: #831843;
286
+ --color-pink-950: #500724;
287
+
288
+ /* ── Rose ─────────────────────────────────────────────── */
289
+ --color-rose-50: #fff1f2;
290
+ --color-rose-100: #ffe4e6;
291
+ --color-rose-200: #fecdd3;
292
+ --color-rose-300: #fda4af;
293
+ --color-rose-400: #fb7185;
294
+ --color-rose-500: #f43f5e;
295
+ --color-rose-600: #e11d48;
296
+ --color-rose-700: #be123c;
297
+ --color-rose-800: #9f1239;
298
+ --color-rose-900: #881337;
299
+ --color-rose-950: #4c0519;
300
+ }
@@ -0,0 +1,240 @@
1
+ /* ============================================================
2
+ Component Tokens
3
+ Hand-maintained tokens for specific components.
4
+ These reference semantic aliases and raw color tokens above.
5
+ ============================================================ */
6
+
7
+ /* ── Light mode ─────────────────────────────────────────── */
8
+ :root {
9
+ /* Charts */
10
+ --chart-1: var(--color-orange-500);
11
+ --chart-2: var(--color-teal-600);
12
+ --chart-3: var(--color-cyan-900);
13
+ --chart-4: var(--color-amber-400);
14
+ --chart-5: var(--color-amber-500);
15
+
16
+ /* Glass morphism */
17
+ --glass-heavy: rgba(255, 255, 255, 0.6);
18
+ --glass-strong: rgba(255, 255, 255, 0.6);
19
+ --glass-subtle: rgba(255, 255, 255, 0.2);
20
+ --glass-light: rgba(255, 255, 255, 0.4);
21
+ --glass-medium: rgba(255, 255, 255, 0.5);
22
+
23
+ /* Navigation */
24
+ --nav-active-bg: var(--color-white);
25
+
26
+ /* Tiles */
27
+ --tile-bg: var(--color-white);
28
+ --tile-hover-bg: rgba(255, 255, 255, 0.4);
29
+ --tile-button-bg: var(--color-white);
30
+ --tile-button-hover-bg: var(--color-gray-900);
31
+ --tile-button-hover-text: var(--color-gray-50);
32
+
33
+ /* Background gradient (default: Slingshot light) */
34
+ --gradient-stop-0: var(--color-slate-200);
35
+ --gradient-stop-1: var(--color-red-200);
36
+ --gradient-stop-2: var(--color-slate-200);
37
+ --radial-gradient-bg: radial-gradient(
38
+ circle at 90% 10%,
39
+ var(--gradient-stop-0) 0%,
40
+ var(--gradient-stop-1) 25%,
41
+ var(--gradient-stop-2) 60%
42
+ );
43
+
44
+ /* Tooltip */
45
+ --tooltip-bg: var(--color-gray-800);
46
+ --tooltip-foreground: var(--color-white);
47
+
48
+ /* Badges */
49
+ --badge-default-bg: rgba(0, 0, 0, 0.05);
50
+ --badge-default-border: var(--border);
51
+ --badge-default-text: var(--foreground);
52
+ --badge-info-bg: var(--color-sky-200);
53
+ --badge-info-text: var(--foreground);
54
+ --badge-success-bg: var(--color-lime-100);
55
+ --badge-success-text: var(--color-lime-900);
56
+ --badge-warning-bg: var(--color-orange-100);
57
+ --badge-warning-text: var(--color-orange-950);
58
+ --badge-danger-bg: var(--color-rose-100);
59
+ --badge-danger-text: var(--color-red-800);
60
+ --badge-muted-bg: var(--muted);
61
+ --badge-muted-text: var(--foreground);
62
+
63
+ /* Alert / Banner */
64
+ --alert-warning-bg: var(--color-orange-100);
65
+ --alert-warning-foreground: var(--color-orange-800);
66
+ --success-banner-bg: var(--color-lime-100);
67
+ --success-banner-foreground: var(--color-lime-800);
68
+ --success-banner-icon: var(--color-lime-800);
69
+ --info-banner-bg: var(--color-sky-100);
70
+ --info-banner-title: var(--color-sky-800);
71
+ --info-banner-text: var(--muted-foreground);
72
+ --info-banner-icon: var(--color-sky-800);
73
+
74
+ /* Progress */
75
+ --progress-analyzing: var(--color-sky-200);
76
+ --progress-ingesting: var(--color-orange-200);
77
+ --progress-track: var(--muted);
78
+
79
+ /* Tabs */
80
+ --tab-counter-warning: var(--color-orange-200);
81
+ --tab-counter-danger: var(--color-rose-200);
82
+ --tab-counter-text: var(--foreground);
83
+ --tab-active-bg: var(--background);
84
+ --tab-container-bg: var(--muted);
85
+
86
+ /* Switch */
87
+ --switch-active-bg: var(--color-lime-600);
88
+ --switch-inactive-bg: var(--color-gray-300);
89
+ --switch-thumb: var(--color-white);
90
+
91
+ /* Rich checkbox */
92
+ --checkbox-active-bg: var(--primary);
93
+ --checkbox-active-border: var(--muted-foreground);
94
+ --checkbox-inactive-bg: var(--background);
95
+ --checkbox-inactive-border: var(--ring);
96
+ --checkbox-item-bg: var(--muted);
97
+
98
+ /* Toast — error */
99
+ --toast-error-bg: var(--color-rose-100);
100
+ --toast-error-title: var(--color-red-700);
101
+ --toast-error-text: var(--color-gray-500);
102
+ --toast-error-close-hover: rgba(0, 0, 0, 0.08);
103
+
104
+ /* Toast — warning */
105
+ --toast-warning-bg: var(--color-orange-100);
106
+ --toast-warning-title: var(--color-orange-800);
107
+ --toast-warning-text: var(--color-gray-500);
108
+ --toast-warning-btn-bg: rgba(255, 255, 255, 0.1);
109
+ --toast-warning-btn-border: var(--color-gray-300);
110
+ --toast-warning-btn-text: var(--color-gray-950);
111
+ --toast-warning-btn-hover-bg: rgba(0, 0, 0, 0.05);
112
+
113
+ /* Toast — success */
114
+ --toast-success-bg: var(--color-lime-100);
115
+ --toast-success-title: var(--color-lime-800);
116
+ --toast-success-text: var(--color-gray-500);
117
+ --toast-success-close-hover: rgba(0, 0, 0, 0.08);
118
+
119
+ /* Toast — delete */
120
+ --toast-delete-bg: var(--color-rose-100);
121
+
122
+ /* Toast — info */
123
+ --toast-info-bg: var(--color-sky-100);
124
+ --toast-info-title: var(--color-sky-800);
125
+ --toast-info-text: var(--color-gray-500);
126
+ --toast-info-close-hover: rgba(0, 0, 0, 0.08);
127
+
128
+ --toast-close-icon: var(--color-gray-950);
129
+
130
+ /* Chat glow */
131
+ --chat-glow-1: var(--color-red-500);
132
+ --chat-glow-2: var(--color-orange-500);
133
+ --chat-glow-3: var(--color-amber-400);
134
+ --chat-glow-shadow: rgba(233, 1, 48, 0.25);
135
+ --chat-glow-shadow-outer: rgba(249, 115, 22, 0.12);
136
+
137
+ /* Overlay — modal/drawer scrim (Dialog, Sheet, AlertDialog) */
138
+ --overlay: rgba(0, 0, 0, 0.5);
139
+ }
140
+
141
+ /* ── Dark mode overrides ─────────────────────────────────── */
142
+ html.dark {
143
+ --chart-1: var(--color-orange-500);
144
+ --chart-2: var(--color-teal-600);
145
+ --chart-3: var(--color-cyan-900);
146
+ --chart-4: var(--color-amber-400);
147
+ --chart-5: var(--color-amber-500);
148
+
149
+ --glass-heavy: rgba(31, 40, 50, 0.8);
150
+ --glass-strong: rgba(31, 40, 50, 0.8);
151
+ --glass-subtle: rgba(31, 40, 50, 0.3);
152
+ --glass-light: rgba(31, 40, 50, 0.5);
153
+ --glass-medium: rgba(55, 65, 81, 0.5);
154
+
155
+ --nav-active-bg: var(--color-gray-700);
156
+ --tile-bg: var(--color-gray-800);
157
+ --tile-hover-bg: rgba(31, 40, 50, 0.4);
158
+ --tile-button-bg: var(--color-gray-800);
159
+ --tile-button-hover-bg: var(--color-gray-50);
160
+ --tile-button-hover-text: var(--color-gray-900);
161
+
162
+ --gradient-stop-0: var(--color-gray-950);
163
+ --gradient-stop-1: var(--color-red-950);
164
+ --gradient-stop-2: var(--color-gray-950);
165
+
166
+ --tooltip-bg: var(--color-gray-50);
167
+ --tooltip-foreground: var(--color-gray-900);
168
+
169
+ --badge-default-bg: rgba(255, 255, 255, 0.05);
170
+ --badge-default-border: var(--color-gray-700);
171
+ --badge-default-text: var(--color-gray-50);
172
+ --badge-info-bg: var(--color-sky-800);
173
+ --badge-info-text: var(--color-gray-100);
174
+ --badge-success-bg: var(--color-lime-900);
175
+ --badge-success-text: var(--color-gray-100);
176
+ --badge-warning-bg: var(--color-orange-950);
177
+ --badge-warning-text: var(--color-gray-100);
178
+ --badge-danger-bg: var(--color-red-800);
179
+ --badge-danger-text: var(--color-gray-100);
180
+ --badge-muted-bg: var(--color-gray-800);
181
+ --badge-muted-text: var(--color-gray-100);
182
+
183
+ --alert-warning-bg: var(--color-orange-950);
184
+ --alert-warning-foreground: var(--color-orange-300);
185
+ --success-banner-bg: var(--color-lime-900);
186
+ --success-banner-foreground: var(--color-lime-300);
187
+ --success-banner-icon: var(--color-lime-300);
188
+ --info-banner-bg: var(--color-sky-900);
189
+ --info-banner-title: var(--color-sky-300);
190
+ --info-banner-text: var(--muted-foreground);
191
+ --info-banner-icon: var(--color-sky-300);
192
+
193
+ --progress-analyzing: var(--color-sky-800);
194
+ --progress-ingesting: var(--color-orange-800);
195
+ --progress-track: var(--color-gray-900);
196
+
197
+ --tab-counter-warning: var(--color-orange-800);
198
+ --tab-counter-danger: var(--color-red-800);
199
+ --tab-counter-text: var(--color-gray-100);
200
+ --tab-active-bg: var(--card);
201
+ --tab-container-bg: rgba(255, 255, 255, 0.05);
202
+
203
+ --switch-inactive-bg: var(--color-gray-700);
204
+
205
+ --checkbox-inactive-bg: var(--card);
206
+ --checkbox-inactive-border: var(--border);
207
+ --checkbox-item-bg: rgba(255, 255, 255, 0.05);
208
+
209
+ --toast-error-bg: var(--color-red-800);
210
+ --toast-error-title: var(--color-rose-300);
211
+ --toast-error-text: var(--color-gray-400);
212
+ --toast-error-close-hover: rgba(255, 255, 255, 0.1);
213
+
214
+ --toast-warning-bg: var(--color-orange-950);
215
+ --toast-warning-title: var(--color-orange-300);
216
+ --toast-warning-text: var(--color-gray-400);
217
+ --toast-warning-btn-bg: rgba(255, 255, 255, 0.1);
218
+ --toast-warning-btn-border: var(--color-gray-600);
219
+ --toast-warning-btn-text: var(--color-gray-50);
220
+ --toast-warning-btn-hover-bg: rgba(255, 255, 255, 0.15);
221
+
222
+ --toast-success-bg: var(--color-lime-950);
223
+ --toast-success-title: var(--color-lime-300);
224
+ --toast-success-text: var(--color-gray-400);
225
+ --toast-success-close-hover: rgba(255, 255, 255, 0.1);
226
+
227
+ --toast-delete-bg: var(--color-red-800);
228
+
229
+ --toast-info-bg: var(--color-sky-900);
230
+ --toast-info-title: var(--color-sky-300);
231
+ --toast-info-text: var(--color-gray-400);
232
+ --toast-info-close-hover: rgba(255, 255, 255, 0.1);
233
+
234
+ --toast-close-icon: var(--color-gray-50);
235
+
236
+ --chat-glow-shadow: rgba(233, 1, 48, 0.35);
237
+ --chat-glow-shadow-outer: rgba(249, 115, 22, 0.2);
238
+
239
+ --overlay: rgba(0, 0, 0, 0.5);
240
+ }
@@ -0,0 +1,7 @@
1
+ /* ============================================================
2
+ Elevation / Shadow Tokens
3
+ ============================================================ */
4
+
5
+ :root {
6
+ --elevation-sm: 0px 1px 3px 0px rgba(31, 40, 50, 0.1), 0px 1px 2px 0px rgba(31, 40, 50, 0.1);
7
+ }
@@ -0,0 +1,14 @@
1
+ /*
2
+ * Brand fonts — matches the designer's setup exactly: Outfit (heading) + Inter
3
+ * (body). Geist Mono (the --font-mono token) is intentionally NOT loaded, just
4
+ * like the original, so monospace text falls back to the system font.
5
+ *
6
+ * NOTE: this @import only works when this file is loaded BEFORE any other CSS
7
+ * rules. Once a consumer bundles the design-system styles after Tailwind
8
+ * (`@import "tailwindcss"`), CSS spec drops it (an @import must precede other
9
+ * rules) and the fonts silently fall back. So consuming apps MUST load the
10
+ * fonts via a <link> in their HTML <head> — see the package README
11
+ * ("Fonts (required)"). The apps in this repo do exactly that
12
+ * (apps/prototype/index.html, apps/storybook/.storybook/preview-head.html).
13
+ */
14
+ @import url("https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&family=Inter:wght@100..900&display=swap");