@skalar-saas/design-system 0.1.160 → 0.2.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 (32) hide show
  1. package/README.md +83 -68
  2. package/dist/design-system.css +1 -1
  3. package/dist/{index-jPW4J51n.cjs → index-CvxKpepD.cjs} +2 -2
  4. package/dist/{index-jPW4J51n.cjs.map → index-CvxKpepD.cjs.map} +1 -1
  5. package/dist/{index-DpOd1Khq.js → index-D9aA2m7f.js} +2 -2
  6. package/dist/{index-DpOd1Khq.js.map → index-D9aA2m7f.js.map} +1 -1
  7. package/dist/{index-wbeGpWS7.js → index-DYdvRd97.js} +6343 -6105
  8. package/dist/index-DYdvRd97.js.map +1 -0
  9. package/dist/{index-CFw7Locn.cjs → index-Ymrs1TGO.cjs} +40 -40
  10. package/dist/index-Ymrs1TGO.cjs.map +1 -0
  11. package/dist/index.d.ts +6 -0
  12. package/dist/index.js +1 -1
  13. package/dist/index.mjs +300 -297
  14. package/dist/shared/ui/ActivityFeed/ActivityFeed.d.ts +44 -0
  15. package/dist/shared/ui/ActivityFeed/index.d.ts +2 -0
  16. package/dist/shared/ui/AlertCallout/AlertCallout.d.ts +37 -0
  17. package/dist/shared/ui/AlertCallout/index.d.ts +2 -0
  18. package/dist/shared/ui/DateRangePicker/DateRangePicker.d.ts +3 -1
  19. package/dist/shared/ui/DateRangePicker/DateRangePicker.stories.d.ts +1 -1
  20. package/dist/shared/ui/OptionsEditor/OptionsEditor.d.ts +32 -0
  21. package/dist/shared/ui/OptionsEditor/index.d.ts +1 -0
  22. package/dist/shared/ui/Planner/Planner.d.ts +11 -1
  23. package/dist/shared/ui/Planner/index.d.ts +1 -1
  24. package/dist/shared/ui/Stepper/Stepper.d.ts +25 -15
  25. package/dist/shared/ui/Switcher/Switcher.d.ts +5 -1
  26. package/package.json +116 -117
  27. package/src/styles/theme.css +536 -536
  28. package/tailwind.preset.js +278 -278
  29. package/dist/index-CFw7Locn.cjs.map +0 -1
  30. package/dist/index-wbeGpWS7.js.map +0 -1
  31. package/src/README.md +0 -110
  32. package/src/styles/README.md +0 -81
@@ -1,536 +1,536 @@
1
- /**
2
- * =========================================
3
- * SKALAR DESIGN SYSTEM - NEW TOKEN SYSTEM
4
- * =========================================
5
- *
6
- * Importable theme: token definitions (:root / .dark) + @theme mapping.
7
- * Sin `@import "tailwindcss"` a propósito, para que un consumidor pueda
8
- * importar este archivo DESPUÉS de su propio `@import "tailwindcss"` sin
9
- * duplicarlo. El build del DS lo importa vía globals.css.
10
- */
11
-
12
- /* ========================================= */
13
- /* BASE TOKENS - LIGHT THEME (DEFAULT) */
14
- /* ========================================= */
15
-
16
- :root {
17
- /* Fonts */
18
- --font-inter: 'Inter', sans-serif;
19
- --font-space-grotesk: 'Space Grotesk', sans-serif;
20
-
21
- /* ========================================= */
22
- /* PRIMITIVE COLORS */
23
- /* ========================================= */
24
-
25
- --black: #000;
26
- --white: #FFF;
27
- --black-uniform: #000;
28
- --white-uniform: #FFF;
29
-
30
- /* ========================================= */
31
- /* SURFACE TOKENS */
32
- /* Use for backgrounds, cards, containers */
33
- /* ========================================= */
34
-
35
- --surface-bg: #F9F9FA;
36
- --surface-1: #F0F1F5;
37
- --surface-2: #E8EBF0;
38
- --surface-3: #D8DDE5;
39
- --surface-4: #CACFDB;
40
-
41
- /* ========================================= */
42
- /* TEXT EMPHASIS TOKENS */
43
- /* Use for text colors based on hierarchy */
44
- /* ========================================= */
45
-
46
- --disabled: #BFC6D4;
47
- --placeholder: #667085;
48
- --low-em: #5A606B;
49
- --med-em: #2F343C;
50
- --high-em: #22262E;
51
-
52
- /* ========================================= */
53
- /* BRAND TOKENS */
54
- /* Primary brand colors */
55
- /* ========================================= */
56
-
57
- --brand-primary-main: #0A0F15;
58
- --brand-primary-main-special: #0A0F15;
59
-
60
- --brand-primary-accent-special: #191E25;
61
- --brand-primary-accent-3: #262C35;
62
-
63
- --brand-secondary-main: #2563EB;
64
- --brand-secondary-accent-3: #3B76F6;
65
-
66
- /* ========================================= */
67
- /* SEMANTIC STATUS TOKENS - WARNING */
68
- /* ========================================= */
69
-
70
- --warning-em: #FB6E0A;
71
- --warning-main: #FC9E0B;
72
- --warning-accent-3: #FDC82C;
73
- --warning-accent-1: #FEDE82;
74
- --warning-accent-0: #FFF8E1;
75
-
76
- /* ========================================= */
77
- /* SEMANTIC STATUS TOKENS - SUCCESS */
78
- /* ========================================= */
79
-
80
- --success-em: #054F31;
81
- --success-main: #039855;
82
- --success-accent-3: #32D583;
83
- --success-accent-2: #A6F4C5;
84
- --success-accent-1: #ECFDF3;
85
-
86
- /* ========================================= */
87
- /* SEMANTIC STATUS TOKENS - INFO */
88
- /* ========================================= */
89
-
90
- --info-em: #3362C2;
91
- --info-main: #3A85E8;
92
- --info-accent-3: #50A3F9;
93
- --info-accent-2: #94C9FC;
94
- --info-accent-1: #E4F2FE;
95
-
96
- /* ========================================= */
97
- /* SEMANTIC STATUS TOKENS - DANGER */
98
- /* ========================================= */
99
-
100
- --danger-em: #DE2424;
101
- --danger-main: #F03D3D;
102
- --danger-accent-3: #FF7373;
103
- --danger-accent-2: #FFE0E0;
104
- --danger-accent-1: #FEF2F2;
105
-
106
- /* ========================================= */
107
- /* SPACING SYSTEM */
108
- /* ========================================= */
109
-
110
- --spacing-0: 0px;
111
- --spacing-1: 2px;
112
- --spacing-2: 4px;
113
- --spacing-3: 6px;
114
- --spacing-4: 8px;
115
- --spacing-5: 10px;
116
- --spacing-6: 12px;
117
- --spacing-7: 14px;
118
- --spacing-8: 16px;
119
- --spacing-9: 20px;
120
- --spacing-10: 24px;
121
- --spacing-11: 28px;
122
- --spacing-12: 32px;
123
- --spacing-13: 40px;
124
- --spacing-14: 48px;
125
- --spacing-15: 64px;
126
- --spacing-16: 80px;
127
- --spacing-17: 96px;
128
- --spacing-18: 128px;
129
- --spacing-19: 180px;
130
- --spacing-20: 192px;
131
- --spacing-21: 224px;
132
- --spacing-22: 256px;
133
- --spacing-23: 320px;
134
- --spacing-24: 384px;
135
- --spacing-25: 480px;
136
- --spacing-26: 560px;
137
-
138
- /* ========================================= */
139
- /* SHADOW SYSTEM */
140
- /* Use for elevations and depth */
141
- /* ========================================= */
142
-
143
- --shadow-e1: 0px 4px 12px -2px rgba(0, 0, 0, 0.08);
144
- --shadow-e2: 0px 8px 24px -4px rgba(0, 0, 0, 0.12);
145
- --shadow-e3: 0px 12px 32px -6px rgba(0, 0, 0, 0.16);
146
-
147
- /* ========================================= */
148
- /* LAYOUT SYSTEM */
149
- /* Container, Sidebar, and Navbar tokens */
150
- /* ========================================= */
151
-
152
- /* Container Max Widths */
153
- --layout-container-max-width: 1400px;
154
- --layout-container-narrow: 896px;
155
- --layout-container-medium: 1152px;
156
- --layout-container-wide: 1600px;
157
-
158
- /* Container Padding (responsive) */
159
- --layout-container-padding-mobile: 16px;
160
- --layout-container-padding-tablet: 24px;
161
- --layout-container-padding-desktop: 32px;
162
- --layout-container-padding-desktop-lg: 48px;
163
-
164
- /* Sidebar Dimensions */
165
- --layout-sidebar-width: 280px;
166
- --layout-sidebar-collapsed: 64px;
167
- --layout-sidebar-navigation: 240px;
168
-
169
- /* Navbar Dimensions */
170
- --layout-navbar-header-height: 60px;
171
- --layout-navbar-tabs-height: 48px;
172
- --layout-navbar-total-height: 108px;
173
-
174
- }
175
-
176
- /* ========================================= */
177
- /* DARK MODE THEME */
178
- /* ========================================= */
179
-
180
- .dark {
181
- /* Primitive colors - INVERTED */
182
- --black: #FFF;
183
- --white: #000;
184
-
185
- /* Surface tokens - Dark backgrounds */
186
- --surface-bg: #0A0A0A;
187
- --surface-1: #131313;
188
- --surface-2: #1F1F1F;
189
- --surface-3: #292929;
190
- --surface-4: #333333;
191
-
192
- /* Text emphasis - Lighter for dark backgrounds */
193
- --disabled: #565656;
194
- --placeholder: #C4C4C4;
195
- --low-em: #7E7E7E;
196
- --med-em: #C3C3C3;
197
- --high-em: #FFF;
198
-
199
- /* Brand tokens - Adjusted for dark mode */
200
- --brand-primary-main: #3B414C;
201
- --brand-primary-main-special: #1F1F1F;
202
-
203
- --brand-primary-accent-special: #333333;
204
- --brand-primary-accent-3: #262C35;
205
-
206
- --brand-secondary-main: #2563EB;
207
- --brand-secondary-accent-3: #3B76F6;
208
-
209
- /* Warning tokens - Dark mode variants */
210
- --warning-em: #FED350;
211
- --warning-main: #FDBE12;
212
- --warning-accent-3: #FDB10C;
213
- --warning-accent-1: #FEDE82;
214
- --warning-accent-0: #3A2A06;
215
-
216
- /* Success tokens - Dark mode variants */
217
- --success-em: #6CE9A6;
218
- --success-main: #12B76A;
219
- --success-accent-3: #039855;
220
- --success-accent-2: #054F31;
221
- --success-accent-1: #053321;
222
-
223
- /* Info tokens - Dark mode variants */
224
- --info-em: #6CB3FA;
225
- --info-main: #3C93F7;
226
- --info-accent-3: #3A85E8;
227
- --info-accent-2: #2C43A3;
228
- --info-accent-1: #3560C2;
229
-
230
- /* Danger tokens - Dark mode variants */
231
- --danger-em: #FFA9A9;
232
- --danger-main: #F03D3D;
233
- --danger-accent-3: #DE2424;
234
- --danger-accent-2: #3F1E1E;
235
- --danger-accent-1: #371C1C;
236
-
237
- /* Canvas tokens - Dark mode */
238
- --canvas-container-bg: #0a0a0a;
239
- --canvas-bg: #111111;
240
- --canvas-grid-bg: #0f0f0f;
241
- --canvas-grid-line: #2a2a2a;
242
- --canvas-grid-center-line: #181818;
243
- }
244
-
245
- /* ========================================= */
246
- /* TAILWIND THEME INTEGRATION */
247
- /* ========================================= */
248
-
249
- @theme inline {
250
- /* Font families */
251
- --font-family-inter: var(--font-inter);
252
- --font-family-space-grotesk: var(--font-space-grotesk);
253
-
254
- /* Primitive colors */
255
- --color-black: var(--black);
256
- --color-white: var(--white);
257
-
258
- --color-black-uniform: var(--black-uniform);
259
- --color-white-uniform: var(--white-uniform);
260
-
261
-
262
- /* Surface colors */
263
- --color-surface-bg: var(--surface-bg);
264
- --color-surface-1: var(--surface-1);
265
- --color-surface-2: var(--surface-2);
266
- --color-surface-3: var(--surface-3);
267
- --color-surface-4: var(--surface-4);
268
-
269
- /* Text emphasis */
270
- --color-disabled: var(--disabled);
271
- --color-placeholder: var(--placeholder);
272
- --color-low-em: var(--low-em);
273
- --color-med-em: var(--med-em);
274
- --color-high-em: var(--high-em);
275
-
276
- /* Brand colors */
277
- --color-brand-primary-main: var(--brand-primary-main);
278
- --color-brand-primary-main-special: var(--brand-primary-main-special);
279
- --color-brand-primary-accent-special: var(--brand-primary-accent-special);
280
- --color-brand-primary-accent-3: var(--brand-primary-accent-3);
281
- --color-brand-secondary-main: var(--brand-secondary-main);
282
- --color-brand-secondary-accent-3: var(--brand-secondary-accent-3);
283
-
284
- /* Warning colors */
285
- --color-warning-em: var(--warning-em);
286
- --color-warning-main: var(--warning-main);
287
- --color-warning-accent-3: var(--warning-accent-3);
288
- --color-warning-accent-1: var(--warning-accent-1);
289
- --color-warning-accent-0: var(--warning-accent-0);
290
-
291
- /* Success colors */
292
- --color-success-em: var(--success-em);
293
- --color-success-main: var(--success-main);
294
- --color-success-accent-3: var(--success-accent-3);
295
- --color-success-accent-2: var(--success-accent-2);
296
- --color-success-accent-1: var(--success-accent-1);
297
-
298
- /* Info colors */
299
- --color-info-em: var(--info-em);
300
- --color-info-main: var(--info-main);
301
- --color-info-accent-3: var(--info-accent-3);
302
- --color-info-accent-2: var(--info-accent-2);
303
- --color-info-accent-1: var(--info-accent-1);
304
-
305
- /* Danger colors */
306
- --color-danger-em: var(--danger-em);
307
- --color-danger-main: var(--danger-main);
308
- --color-danger-accent-3: var(--danger-accent-3);
309
- --color-danger-accent-2: var(--danger-accent-2);
310
- --color-danger-accent-1: var(--danger-accent-1);
311
-
312
- /* Spacing */
313
- --spacing-0: 0px;
314
- --spacing-1: 2px;
315
- --spacing-2: 4px;
316
- --spacing-3: 6px;
317
- --spacing-4: 8px;
318
- --spacing-5: 10px;
319
- --spacing-6: 12px;
320
- --spacing-7: 14px;
321
- --spacing-8: 16px;
322
- --spacing-9: 20px;
323
- --spacing-10: 24px;
324
- --spacing-11: 28px;
325
- --spacing-12: 32px;
326
- --spacing-13: 40px;
327
- --spacing-14: 48px;
328
- --spacing-15: 64px;
329
- --spacing-16: 80px;
330
- --spacing-17: 96px;
331
- --spacing-18: 128px;
332
- --spacing-19: 180px;
333
- --spacing-20: 192px;
334
- --spacing-21: 224px;
335
- --spacing-22: 256px;
336
- --spacing-23: 320px;
337
- --spacing-24: 384px;
338
- --spacing-25: 480px;
339
- --spacing-26: 560px;
340
-
341
- /* Border Radius */
342
- --radius-0: 0px;
343
- --radius-1: 2px;
344
- --radius-2: 4px;
345
- --radius-3: 6px;
346
- --radius-4: 8px;
347
- --radius-5: 10px;
348
- --radius-6: 12px;
349
- --radius-7: 14px;
350
- --radius-8: 16px;
351
- --radius-9: 20px;
352
- --radius-10: 24px;
353
- --radius-11: 28px;
354
- --radius-12: 32px;
355
- --radius-13: 40px;
356
- --radius-14: 48px;
357
- --radius-15: 64px;
358
- --radius-16: 80px;
359
- --radius-17: 96px;
360
- --radius-18: 128px;
361
- --radius-19: 180px;
362
- --radius-20: 192px;
363
- --radius-21: 224px;
364
- --radius-22: 256px;
365
- --radius-23: 320px;
366
- --radius-24: 384px;
367
- --radius-25: 480px;
368
- --radius-26: 560px;
369
-
370
- /* Shadows */
371
- --shadow-e1: var(--shadow-e1);
372
- --shadow-e2: var(--shadow-e2);
373
- --shadow-e3: var(--shadow-e3);
374
-
375
- /* ========================================= */
376
- /* LAYOUT SYSTEM */
377
- /* ========================================= */
378
-
379
- /* Container Max Widths */
380
- --max-width-container: var(--layout-container-max-width);
381
- --max-width-container-narrow: var(--layout-container-narrow);
382
- --max-width-container-medium: var(--layout-container-medium);
383
- --max-width-container-wide: var(--layout-container-wide);
384
-
385
- /* Container Padding */
386
- --padding-container-mobile: var(--layout-container-padding-mobile);
387
- --padding-container-tablet: var(--layout-container-padding-tablet);
388
- --padding-container-desktop: var(--layout-container-padding-desktop);
389
- --padding-container-desktop-lg: var(--layout-container-padding-desktop-lg);
390
-
391
- /* Sidebar Widths */
392
- --width-sidebar: var(--layout-sidebar-width);
393
- --width-sidebar-collapsed: var(--layout-sidebar-collapsed);
394
- --width-sidebar-nav: var(--layout-sidebar-navigation);
395
-
396
- /* Navbar Heights */
397
- --height-navbar: var(--layout-navbar-total-height);
398
- --height-navbar-header: var(--layout-navbar-header-height);
399
- --height-navbar-tabs: var(--layout-navbar-tabs-height);
400
-
401
- }
402
-
403
- /* ========================================= */
404
- /* BASE STYLES */
405
- /* ========================================= */
406
-
407
- body {
408
- background: var(--surface-bg);
409
- color: var(--high-em);
410
- font-family: var(--font-inter), system-ui, sans-serif;
411
- }
412
-
413
- /* ========================================= */
414
- /* ANIMATIONS */
415
- /* ========================================= */
416
-
417
- @keyframes typing-dot {
418
- 0%,
419
- 60%,
420
- 100% {
421
- opacity: 0.3;
422
- transform: translateY(0) scale(0.8);
423
- }
424
- 30% {
425
- opacity: 1;
426
- transform: translateY(-4px) scale(1);
427
- }
428
- }
429
-
430
- @layer utilities {
431
- .ds-scrollbar {
432
- scrollbar-width: thin;
433
- scrollbar-color: var(--surface-3) var(--surface-1);
434
- }
435
-
436
- .ds-scrollbar::-webkit-scrollbar {
437
- width: 7px;
438
- height: 7px;
439
- }
440
-
441
- .ds-scrollbar::-webkit-scrollbar-track {
442
- background: var(--surface-1);
443
- }
444
-
445
- .ds-scrollbar::-webkit-scrollbar-thumb {
446
- background: var(--surface-3);
447
- border-radius: 999px;
448
- }
449
-
450
- .ds-scrollbar::-webkit-scrollbar-thumb:hover {
451
- background: var(--surface-4);
452
- }
453
-
454
- .animate-typing-dot {
455
- animation: typing-dot 1.4s infinite ease-in-out;
456
- }
457
-
458
- /* Responsive flex direction utilities with proper specificity */
459
- .flex-col-to-row {
460
- flex-direction: column;
461
- @media (min-width: 1024px) {
462
- flex-direction: row;
463
- }
464
- }
465
-
466
- .flex-col-to-row-md {
467
- flex-direction: column;
468
- @media (min-width: 768px) {
469
- flex-direction: row;
470
- }
471
- }
472
-
473
- /* Panel Layout animations - LEFT side */
474
- .animate-panel-enter {
475
- animation: panel-enter 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
476
- }
477
-
478
- .animate-panel-exit {
479
- animation: panel-exit 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards;
480
- }
481
-
482
- /* Panel Layout animations - RIGHT side */
483
- .animate-panel-enter-right {
484
- animation: panel-enter-right 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
485
- }
486
-
487
- .animate-panel-exit-right {
488
- animation: panel-exit-right 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards;
489
- }
490
- }
491
-
492
- /* Panel enter/exit animations - LEFT side */
493
- @keyframes panel-enter {
494
- from {
495
- opacity: 0;
496
- transform: translateX(-10px);
497
- }
498
- to {
499
- opacity: 1;
500
- transform: translateX(0);
501
- }
502
- }
503
-
504
- @keyframes panel-exit {
505
- from {
506
- opacity: 1;
507
- transform: translateX(0);
508
- }
509
- to {
510
- opacity: 0;
511
- transform: translateX(-10px);
512
- }
513
- }
514
-
515
- /* Panel enter/exit animations - RIGHT side */
516
- @keyframes panel-enter-right {
517
- from {
518
- opacity: 0;
519
- transform: translateX(10px);
520
- }
521
- to {
522
- opacity: 1;
523
- transform: translateX(0);
524
- }
525
- }
526
-
527
- @keyframes panel-exit-right {
528
- from {
529
- opacity: 1;
530
- transform: translateX(0);
531
- }
532
- to {
533
- opacity: 0;
534
- transform: translateX(10px);
535
- }
536
- }
1
+ /**
2
+ * =========================================
3
+ * SKALAR DESIGN SYSTEM - NEW TOKEN SYSTEM
4
+ * =========================================
5
+ *
6
+ * Importable theme: token definitions (:root / .dark) + @theme mapping.
7
+ * Sin `@import "tailwindcss"` a propósito, para que un consumidor pueda
8
+ * importar este archivo DESPUÉS de su propio `@import "tailwindcss"` sin
9
+ * duplicarlo. El build del DS lo importa vía globals.css.
10
+ */
11
+
12
+ /* ========================================= */
13
+ /* BASE TOKENS - LIGHT THEME (DEFAULT) */
14
+ /* ========================================= */
15
+
16
+ :root {
17
+ /* Fonts */
18
+ --font-inter: 'Inter', sans-serif;
19
+ --font-space-grotesk: 'Space Grotesk', sans-serif;
20
+
21
+ /* ========================================= */
22
+ /* PRIMITIVE COLORS */
23
+ /* ========================================= */
24
+
25
+ --black: #000;
26
+ --white: #FFF;
27
+ --black-uniform: #000;
28
+ --white-uniform: #FFF;
29
+
30
+ /* ========================================= */
31
+ /* SURFACE TOKENS */
32
+ /* Use for backgrounds, cards, containers */
33
+ /* ========================================= */
34
+
35
+ --surface-bg: #F9F9FA;
36
+ --surface-1: #F0F1F5;
37
+ --surface-2: #E8EBF0;
38
+ --surface-3: #D8DDE5;
39
+ --surface-4: #CACFDB;
40
+
41
+ /* ========================================= */
42
+ /* TEXT EMPHASIS TOKENS */
43
+ /* Use for text colors based on hierarchy */
44
+ /* ========================================= */
45
+
46
+ --disabled: #BFC6D4;
47
+ --placeholder: #667085;
48
+ --low-em: #5A606B;
49
+ --med-em: #2F343C;
50
+ --high-em: #22262E;
51
+
52
+ /* ========================================= */
53
+ /* BRAND TOKENS */
54
+ /* Primary brand colors */
55
+ /* ========================================= */
56
+
57
+ --brand-primary-main: #0A0F15;
58
+ --brand-primary-main-special: #0A0F15;
59
+
60
+ --brand-primary-accent-special: #191E25;
61
+ --brand-primary-accent-3: #262C35;
62
+
63
+ --brand-secondary-main: #2563EB;
64
+ --brand-secondary-accent-3: #3B76F6;
65
+
66
+ /* ========================================= */
67
+ /* SEMANTIC STATUS TOKENS - WARNING */
68
+ /* ========================================= */
69
+
70
+ --warning-em: #FB6E0A;
71
+ --warning-main: #FC9E0B;
72
+ --warning-accent-3: #FDC82C;
73
+ --warning-accent-1: #FEDE82;
74
+ --warning-accent-0: #FFF8E1;
75
+
76
+ /* ========================================= */
77
+ /* SEMANTIC STATUS TOKENS - SUCCESS */
78
+ /* ========================================= */
79
+
80
+ --success-em: #054F31;
81
+ --success-main: #039855;
82
+ --success-accent-3: #32D583;
83
+ --success-accent-2: #A6F4C5;
84
+ --success-accent-1: #ECFDF3;
85
+
86
+ /* ========================================= */
87
+ /* SEMANTIC STATUS TOKENS - INFO */
88
+ /* ========================================= */
89
+
90
+ --info-em: #3362C2;
91
+ --info-main: #3A85E8;
92
+ --info-accent-3: #50A3F9;
93
+ --info-accent-2: #94C9FC;
94
+ --info-accent-1: #E4F2FE;
95
+
96
+ /* ========================================= */
97
+ /* SEMANTIC STATUS TOKENS - DANGER */
98
+ /* ========================================= */
99
+
100
+ --danger-em: #DE2424;
101
+ --danger-main: #F03D3D;
102
+ --danger-accent-3: #FF7373;
103
+ --danger-accent-2: #FFE0E0;
104
+ --danger-accent-1: #FEF2F2;
105
+
106
+ /* ========================================= */
107
+ /* SPACING SYSTEM */
108
+ /* ========================================= */
109
+
110
+ --spacing-0: 0px;
111
+ --spacing-1: 2px;
112
+ --spacing-2: 4px;
113
+ --spacing-3: 6px;
114
+ --spacing-4: 8px;
115
+ --spacing-5: 10px;
116
+ --spacing-6: 12px;
117
+ --spacing-7: 14px;
118
+ --spacing-8: 16px;
119
+ --spacing-9: 20px;
120
+ --spacing-10: 24px;
121
+ --spacing-11: 28px;
122
+ --spacing-12: 32px;
123
+ --spacing-13: 40px;
124
+ --spacing-14: 48px;
125
+ --spacing-15: 64px;
126
+ --spacing-16: 80px;
127
+ --spacing-17: 96px;
128
+ --spacing-18: 128px;
129
+ --spacing-19: 180px;
130
+ --spacing-20: 192px;
131
+ --spacing-21: 224px;
132
+ --spacing-22: 256px;
133
+ --spacing-23: 320px;
134
+ --spacing-24: 384px;
135
+ --spacing-25: 480px;
136
+ --spacing-26: 560px;
137
+
138
+ /* ========================================= */
139
+ /* SHADOW SYSTEM */
140
+ /* Use for elevations and depth */
141
+ /* ========================================= */
142
+
143
+ --shadow-e1: 0px 4px 12px -2px rgba(0, 0, 0, 0.08);
144
+ --shadow-e2: 0px 8px 24px -4px rgba(0, 0, 0, 0.12);
145
+ --shadow-e3: 0px 12px 32px -6px rgba(0, 0, 0, 0.16);
146
+
147
+ /* ========================================= */
148
+ /* LAYOUT SYSTEM */
149
+ /* Container, Sidebar, and Navbar tokens */
150
+ /* ========================================= */
151
+
152
+ /* Container Max Widths */
153
+ --layout-container-max-width: 1400px;
154
+ --layout-container-narrow: 896px;
155
+ --layout-container-medium: 1152px;
156
+ --layout-container-wide: 1600px;
157
+
158
+ /* Container Padding (responsive) */
159
+ --layout-container-padding-mobile: 16px;
160
+ --layout-container-padding-tablet: 24px;
161
+ --layout-container-padding-desktop: 32px;
162
+ --layout-container-padding-desktop-lg: 48px;
163
+
164
+ /* Sidebar Dimensions */
165
+ --layout-sidebar-width: 280px;
166
+ --layout-sidebar-collapsed: 64px;
167
+ --layout-sidebar-navigation: 240px;
168
+
169
+ /* Navbar Dimensions */
170
+ --layout-navbar-header-height: 60px;
171
+ --layout-navbar-tabs-height: 48px;
172
+ --layout-navbar-total-height: 108px;
173
+
174
+ }
175
+
176
+ /* ========================================= */
177
+ /* DARK MODE THEME */
178
+ /* ========================================= */
179
+
180
+ .dark {
181
+ /* Primitive colors - INVERTED */
182
+ --black: #FFF;
183
+ --white: #000;
184
+
185
+ /* Surface tokens - Dark backgrounds */
186
+ --surface-bg: #0A0A0A;
187
+ --surface-1: #131313;
188
+ --surface-2: #1F1F1F;
189
+ --surface-3: #292929;
190
+ --surface-4: #333333;
191
+
192
+ /* Text emphasis - Lighter for dark backgrounds */
193
+ --disabled: #565656;
194
+ --placeholder: #C4C4C4;
195
+ --low-em: #7E7E7E;
196
+ --med-em: #C3C3C3;
197
+ --high-em: #FFF;
198
+
199
+ /* Brand tokens - Adjusted for dark mode */
200
+ --brand-primary-main: #3B414C;
201
+ --brand-primary-main-special: #1F1F1F;
202
+
203
+ --brand-primary-accent-special: #333333;
204
+ --brand-primary-accent-3: #262C35;
205
+
206
+ --brand-secondary-main: #2563EB;
207
+ --brand-secondary-accent-3: #3B76F6;
208
+
209
+ /* Warning tokens - Dark mode variants */
210
+ --warning-em: #FED350;
211
+ --warning-main: #FDBE12;
212
+ --warning-accent-3: #FDB10C;
213
+ --warning-accent-1: #FEDE82;
214
+ --warning-accent-0: #3A2A06;
215
+
216
+ /* Success tokens - Dark mode variants */
217
+ --success-em: #6CE9A6;
218
+ --success-main: #12B76A;
219
+ --success-accent-3: #039855;
220
+ --success-accent-2: #054F31;
221
+ --success-accent-1: #053321;
222
+
223
+ /* Info tokens - Dark mode variants */
224
+ --info-em: #6CB3FA;
225
+ --info-main: #3C93F7;
226
+ --info-accent-3: #3A85E8;
227
+ --info-accent-2: #2C43A3;
228
+ --info-accent-1: #3560C2;
229
+
230
+ /* Danger tokens - Dark mode variants */
231
+ --danger-em: #FFA9A9;
232
+ --danger-main: #F03D3D;
233
+ --danger-accent-3: #DE2424;
234
+ --danger-accent-2: #3F1E1E;
235
+ --danger-accent-1: #371C1C;
236
+
237
+ /* Canvas tokens - Dark mode */
238
+ --canvas-container-bg: #0a0a0a;
239
+ --canvas-bg: #111111;
240
+ --canvas-grid-bg: #0f0f0f;
241
+ --canvas-grid-line: #2a2a2a;
242
+ --canvas-grid-center-line: #181818;
243
+ }
244
+
245
+ /* ========================================= */
246
+ /* TAILWIND THEME INTEGRATION */
247
+ /* ========================================= */
248
+
249
+ @theme inline {
250
+ /* Font families */
251
+ --font-family-inter: var(--font-inter);
252
+ --font-family-space-grotesk: var(--font-space-grotesk);
253
+
254
+ /* Primitive colors */
255
+ --color-black: var(--black);
256
+ --color-white: var(--white);
257
+
258
+ --color-black-uniform: var(--black-uniform);
259
+ --color-white-uniform: var(--white-uniform);
260
+
261
+
262
+ /* Surface colors */
263
+ --color-surface-bg: var(--surface-bg);
264
+ --color-surface-1: var(--surface-1);
265
+ --color-surface-2: var(--surface-2);
266
+ --color-surface-3: var(--surface-3);
267
+ --color-surface-4: var(--surface-4);
268
+
269
+ /* Text emphasis */
270
+ --color-disabled: var(--disabled);
271
+ --color-placeholder: var(--placeholder);
272
+ --color-low-em: var(--low-em);
273
+ --color-med-em: var(--med-em);
274
+ --color-high-em: var(--high-em);
275
+
276
+ /* Brand colors */
277
+ --color-brand-primary-main: var(--brand-primary-main);
278
+ --color-brand-primary-main-special: var(--brand-primary-main-special);
279
+ --color-brand-primary-accent-special: var(--brand-primary-accent-special);
280
+ --color-brand-primary-accent-3: var(--brand-primary-accent-3);
281
+ --color-brand-secondary-main: var(--brand-secondary-main);
282
+ --color-brand-secondary-accent-3: var(--brand-secondary-accent-3);
283
+
284
+ /* Warning colors */
285
+ --color-warning-em: var(--warning-em);
286
+ --color-warning-main: var(--warning-main);
287
+ --color-warning-accent-3: var(--warning-accent-3);
288
+ --color-warning-accent-1: var(--warning-accent-1);
289
+ --color-warning-accent-0: var(--warning-accent-0);
290
+
291
+ /* Success colors */
292
+ --color-success-em: var(--success-em);
293
+ --color-success-main: var(--success-main);
294
+ --color-success-accent-3: var(--success-accent-3);
295
+ --color-success-accent-2: var(--success-accent-2);
296
+ --color-success-accent-1: var(--success-accent-1);
297
+
298
+ /* Info colors */
299
+ --color-info-em: var(--info-em);
300
+ --color-info-main: var(--info-main);
301
+ --color-info-accent-3: var(--info-accent-3);
302
+ --color-info-accent-2: var(--info-accent-2);
303
+ --color-info-accent-1: var(--info-accent-1);
304
+
305
+ /* Danger colors */
306
+ --color-danger-em: var(--danger-em);
307
+ --color-danger-main: var(--danger-main);
308
+ --color-danger-accent-3: var(--danger-accent-3);
309
+ --color-danger-accent-2: var(--danger-accent-2);
310
+ --color-danger-accent-1: var(--danger-accent-1);
311
+
312
+ /* Spacing */
313
+ --spacing-0: 0px;
314
+ --spacing-1: 2px;
315
+ --spacing-2: 4px;
316
+ --spacing-3: 6px;
317
+ --spacing-4: 8px;
318
+ --spacing-5: 10px;
319
+ --spacing-6: 12px;
320
+ --spacing-7: 14px;
321
+ --spacing-8: 16px;
322
+ --spacing-9: 20px;
323
+ --spacing-10: 24px;
324
+ --spacing-11: 28px;
325
+ --spacing-12: 32px;
326
+ --spacing-13: 40px;
327
+ --spacing-14: 48px;
328
+ --spacing-15: 64px;
329
+ --spacing-16: 80px;
330
+ --spacing-17: 96px;
331
+ --spacing-18: 128px;
332
+ --spacing-19: 180px;
333
+ --spacing-20: 192px;
334
+ --spacing-21: 224px;
335
+ --spacing-22: 256px;
336
+ --spacing-23: 320px;
337
+ --spacing-24: 384px;
338
+ --spacing-25: 480px;
339
+ --spacing-26: 560px;
340
+
341
+ /* Border Radius */
342
+ --radius-0: 0px;
343
+ --radius-1: 2px;
344
+ --radius-2: 4px;
345
+ --radius-3: 6px;
346
+ --radius-4: 8px;
347
+ --radius-5: 10px;
348
+ --radius-6: 12px;
349
+ --radius-7: 14px;
350
+ --radius-8: 16px;
351
+ --radius-9: 20px;
352
+ --radius-10: 24px;
353
+ --radius-11: 28px;
354
+ --radius-12: 32px;
355
+ --radius-13: 40px;
356
+ --radius-14: 48px;
357
+ --radius-15: 64px;
358
+ --radius-16: 80px;
359
+ --radius-17: 96px;
360
+ --radius-18: 128px;
361
+ --radius-19: 180px;
362
+ --radius-20: 192px;
363
+ --radius-21: 224px;
364
+ --radius-22: 256px;
365
+ --radius-23: 320px;
366
+ --radius-24: 384px;
367
+ --radius-25: 480px;
368
+ --radius-26: 560px;
369
+
370
+ /* Shadows */
371
+ --shadow-e1: var(--shadow-e1);
372
+ --shadow-e2: var(--shadow-e2);
373
+ --shadow-e3: var(--shadow-e3);
374
+
375
+ /* ========================================= */
376
+ /* LAYOUT SYSTEM */
377
+ /* ========================================= */
378
+
379
+ /* Container Max Widths */
380
+ --max-width-container: var(--layout-container-max-width);
381
+ --max-width-container-narrow: var(--layout-container-narrow);
382
+ --max-width-container-medium: var(--layout-container-medium);
383
+ --max-width-container-wide: var(--layout-container-wide);
384
+
385
+ /* Container Padding */
386
+ --padding-container-mobile: var(--layout-container-padding-mobile);
387
+ --padding-container-tablet: var(--layout-container-padding-tablet);
388
+ --padding-container-desktop: var(--layout-container-padding-desktop);
389
+ --padding-container-desktop-lg: var(--layout-container-padding-desktop-lg);
390
+
391
+ /* Sidebar Widths */
392
+ --width-sidebar: var(--layout-sidebar-width);
393
+ --width-sidebar-collapsed: var(--layout-sidebar-collapsed);
394
+ --width-sidebar-nav: var(--layout-sidebar-navigation);
395
+
396
+ /* Navbar Heights */
397
+ --height-navbar: var(--layout-navbar-total-height);
398
+ --height-navbar-header: var(--layout-navbar-header-height);
399
+ --height-navbar-tabs: var(--layout-navbar-tabs-height);
400
+
401
+ }
402
+
403
+ /* ========================================= */
404
+ /* BASE STYLES */
405
+ /* ========================================= */
406
+
407
+ body {
408
+ background: var(--surface-bg);
409
+ color: var(--high-em);
410
+ font-family: var(--font-inter), system-ui, sans-serif;
411
+ }
412
+
413
+ /* ========================================= */
414
+ /* ANIMATIONS */
415
+ /* ========================================= */
416
+
417
+ @keyframes typing-dot {
418
+ 0%,
419
+ 60%,
420
+ 100% {
421
+ opacity: 0.3;
422
+ transform: translateY(0) scale(0.8);
423
+ }
424
+ 30% {
425
+ opacity: 1;
426
+ transform: translateY(-4px) scale(1);
427
+ }
428
+ }
429
+
430
+ @layer utilities {
431
+ .ds-scrollbar {
432
+ scrollbar-width: thin;
433
+ scrollbar-color: var(--surface-3) var(--surface-1);
434
+ }
435
+
436
+ .ds-scrollbar::-webkit-scrollbar {
437
+ width: 7px;
438
+ height: 7px;
439
+ }
440
+
441
+ .ds-scrollbar::-webkit-scrollbar-track {
442
+ background: var(--surface-1);
443
+ }
444
+
445
+ .ds-scrollbar::-webkit-scrollbar-thumb {
446
+ background: var(--surface-3);
447
+ border-radius: 999px;
448
+ }
449
+
450
+ .ds-scrollbar::-webkit-scrollbar-thumb:hover {
451
+ background: var(--surface-4);
452
+ }
453
+
454
+ .animate-typing-dot {
455
+ animation: typing-dot 1.4s infinite ease-in-out;
456
+ }
457
+
458
+ /* Responsive flex direction utilities with proper specificity */
459
+ .flex-col-to-row {
460
+ flex-direction: column;
461
+ @media (min-width: 1024px) {
462
+ flex-direction: row;
463
+ }
464
+ }
465
+
466
+ .flex-col-to-row-md {
467
+ flex-direction: column;
468
+ @media (min-width: 768px) {
469
+ flex-direction: row;
470
+ }
471
+ }
472
+
473
+ /* Panel Layout animations - LEFT side */
474
+ .animate-panel-enter {
475
+ animation: panel-enter 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
476
+ }
477
+
478
+ .animate-panel-exit {
479
+ animation: panel-exit 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards;
480
+ }
481
+
482
+ /* Panel Layout animations - RIGHT side */
483
+ .animate-panel-enter-right {
484
+ animation: panel-enter-right 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
485
+ }
486
+
487
+ .animate-panel-exit-right {
488
+ animation: panel-exit-right 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards;
489
+ }
490
+ }
491
+
492
+ /* Panel enter/exit animations - LEFT side */
493
+ @keyframes panel-enter {
494
+ from {
495
+ opacity: 0;
496
+ transform: translateX(-10px);
497
+ }
498
+ to {
499
+ opacity: 1;
500
+ transform: translateX(0);
501
+ }
502
+ }
503
+
504
+ @keyframes panel-exit {
505
+ from {
506
+ opacity: 1;
507
+ transform: translateX(0);
508
+ }
509
+ to {
510
+ opacity: 0;
511
+ transform: translateX(-10px);
512
+ }
513
+ }
514
+
515
+ /* Panel enter/exit animations - RIGHT side */
516
+ @keyframes panel-enter-right {
517
+ from {
518
+ opacity: 0;
519
+ transform: translateX(10px);
520
+ }
521
+ to {
522
+ opacity: 1;
523
+ transform: translateX(0);
524
+ }
525
+ }
526
+
527
+ @keyframes panel-exit-right {
528
+ from {
529
+ opacity: 1;
530
+ transform: translateX(0);
531
+ }
532
+ to {
533
+ opacity: 0;
534
+ transform: translateX(10px);
535
+ }
536
+ }