@jacshuo/onyx 1.4.0 → 2.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/dist/Chart/BarChart.cjs +1 -0
  2. package/dist/Chart/BarChart.css +1 -0
  3. package/dist/Chart/BarChart.d.cts +2 -0
  4. package/dist/Chart/BarChart.d.ts +2 -0
  5. package/dist/Chart/BarChart.js +1 -0
  6. package/dist/Chart/LineChart.cjs +1 -0
  7. package/dist/Chart/LineChart.css +1 -0
  8. package/dist/Chart/LineChart.d.cts +2 -0
  9. package/dist/Chart/LineChart.d.ts +2 -0
  10. package/dist/Chart/LineChart.js +1 -0
  11. package/dist/Chart/PieChart.cjs +1 -0
  12. package/dist/Chart/PieChart.css +1 -0
  13. package/dist/Chart/PieChart.d.cts +2 -0
  14. package/dist/Chart/PieChart.d.ts +2 -0
  15. package/dist/Chart/PieChart.js +1 -0
  16. package/dist/Chart/ScatterChart.cjs +1 -0
  17. package/dist/Chart/ScatterChart.css +1 -0
  18. package/dist/Chart/ScatterChart.d.cts +2 -0
  19. package/dist/Chart/ScatterChart.d.ts +2 -0
  20. package/dist/Chart/ScatterChart.js +1 -0
  21. package/dist/Chart/index.cjs +1 -0
  22. package/dist/Chart/index.css +1 -0
  23. package/dist/Chart/index.d.cts +12 -0
  24. package/dist/Chart/index.d.ts +12 -0
  25. package/dist/Chart/index.js +1 -0
  26. package/dist/DataDisplay/index.d.cts +1 -1
  27. package/dist/DataDisplay/index.d.ts +1 -1
  28. package/dist/Disclosure/index.d.cts +1 -1
  29. package/dist/Disclosure/index.d.ts +1 -1
  30. package/dist/Extras/CinePlayer.cjs +1 -1
  31. package/dist/Extras/CinePlayer.js +1 -1
  32. package/dist/Extras/FileExplorer.cjs +9 -2
  33. package/dist/Extras/FileExplorer.js +9 -2
  34. package/dist/Extras/MiniPlayer.cjs +2 -2
  35. package/dist/Extras/MiniPlayer.js +2 -2
  36. package/dist/Extras/TypewriterText.cjs +1 -0
  37. package/dist/Extras/TypewriterText.css +1 -0
  38. package/dist/Extras/TypewriterText.d.cts +2 -0
  39. package/dist/Extras/TypewriterText.d.ts +2 -0
  40. package/dist/Extras/TypewriterText.js +1 -0
  41. package/dist/Extras/index.cjs +11 -4
  42. package/dist/Extras/index.css +1 -0
  43. package/dist/Extras/index.d.cts +3 -1
  44. package/dist/Extras/index.d.ts +3 -1
  45. package/dist/Extras/index.js +11 -4
  46. package/dist/Feedback/index.d.cts +1 -1
  47. package/dist/Feedback/index.d.ts +1 -1
  48. package/dist/Forms/Form.cjs +1 -1
  49. package/dist/Forms/Form.js +1 -1
  50. package/dist/Forms/index.cjs +1 -1
  51. package/dist/Forms/index.d.cts +1 -1
  52. package/dist/Forms/index.d.ts +1 -1
  53. package/dist/Forms/index.js +1 -1
  54. package/dist/Layout/index.d.cts +1 -1
  55. package/dist/Layout/index.d.ts +1 -1
  56. package/dist/Navigation/index.d.cts +1 -1
  57. package/dist/Navigation/index.d.ts +1 -1
  58. package/dist/Overlay/index.d.cts +1 -1
  59. package/dist/Overlay/index.d.ts +1 -1
  60. package/dist/Primitives/index.d.cts +1 -1
  61. package/dist/Primitives/index.d.ts +1 -1
  62. package/dist/_tsup-dts-rollup.d.cts +481 -11
  63. package/dist/_tsup-dts-rollup.d.ts +481 -11
  64. package/dist/index.cjs +12 -5
  65. package/dist/index.css +1 -0
  66. package/dist/index.d.cts +20 -0
  67. package/dist/index.d.ts +20 -0
  68. package/dist/index.js +12 -5
  69. package/dist/styles/Chart/BarChart.css +44 -0
  70. package/dist/styles/Chart/LineChart.css +72 -0
  71. package/dist/styles/Chart/PieChart.css +56 -0
  72. package/dist/styles/Chart/ScatterChart.css +45 -0
  73. package/dist/styles/Extras/TypewriterText.css +55 -0
  74. package/dist/styles/base.css +149 -18
  75. package/dist/styles/tokens/core.css +10 -0
  76. package/dist/styles.css +353 -18
  77. package/dist/theme.cjs +1 -1
  78. package/dist/theme.d.cts +3 -0
  79. package/dist/theme.d.ts +3 -0
  80. package/dist/theme.js +1 -1
  81. package/package.json +1 -1
@@ -0,0 +1,44 @@
1
+ /* BarChart animations */
2
+
3
+ /* Vertical: reveal from bottom upward using clip-path */
4
+ @keyframes chart-bar-rise {
5
+ from { clip-path: inset(100% 0 0 0); opacity: 0.5; }
6
+ to { clip-path: inset(0% 0 0 0); opacity: 1; }
7
+ }
8
+
9
+ /* Horizontal: reveal from left rightward using clip-path */
10
+ @keyframes chart-bar-extend {
11
+ from { clip-path: inset(0 100% 0 0); opacity: 0.5; }
12
+ to { clip-path: inset(0 0% 0 0); opacity: 1; }
13
+ }
14
+
15
+ /* Vertical bars */
16
+ .chart-bar-v {
17
+ transition: filter 0.18s ease;
18
+ }
19
+
20
+ .chart-bar-v.chart-bar-animate {
21
+ animation: chart-bar-rise 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
22
+ }
23
+
24
+ /* Horizontal bars */
25
+ .chart-bar-h {
26
+ transition: filter 0.18s ease;
27
+ }
28
+
29
+ .chart-bar-h.chart-bar-animate {
30
+ animation: chart-bar-extend 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
31
+ }
32
+
33
+ /* Hover — pure filter, never touches animation */
34
+ .chart-bar-v:hover,
35
+ .chart-bar-h:hover {
36
+ filter: brightness(1.18);
37
+ cursor: pointer;
38
+ }
39
+
40
+ /* Hidden series bars */
41
+ .chart-bar-hidden {
42
+ opacity: 0;
43
+ pointer-events: none;
44
+ }
@@ -0,0 +1,72 @@
1
+ /* LineChart animations */
2
+
3
+ @keyframes chart-line-draw {
4
+ from {
5
+ stroke-dashoffset: 3000;
6
+ }
7
+ to {
8
+ stroke-dashoffset: 0;
9
+ }
10
+ }
11
+
12
+ @keyframes chart-dot-pop {
13
+ from {
14
+ r: 0;
15
+ opacity: 0;
16
+ }
17
+ to {
18
+ opacity: 1;
19
+ }
20
+ }
21
+
22
+ @keyframes chart-area-fade {
23
+ from {
24
+ opacity: 0;
25
+ }
26
+ to {
27
+ opacity: 1;
28
+ }
29
+ }
30
+
31
+ /* Draw animation applied to line paths and polylines */
32
+ .chart-line-animate {
33
+ stroke-dasharray: 3000;
34
+ stroke-dashoffset: 3000;
35
+ animation: chart-line-draw 1s ease-out forwards;
36
+ }
37
+
38
+ /* Stagger each series */
39
+ .chart-line-animate:nth-child(2) { animation-delay: 0.1s; }
40
+ .chart-line-animate:nth-child(3) { animation-delay: 0.2s; }
41
+ .chart-line-animate:nth-child(4) { animation-delay: 0.3s; }
42
+ .chart-line-animate:nth-child(5) { animation-delay: 0.4s; }
43
+
44
+ /* Area fill entrance */
45
+ .chart-area-animate {
46
+ animation: chart-area-fade 0.8s ease-out forwards;
47
+ opacity: 0;
48
+ }
49
+
50
+ /* Dot entrance animation */
51
+ .chart-dot-animate {
52
+ animation: chart-dot-pop 0.4s ease-out forwards;
53
+ animation-delay: 0.8s;
54
+ opacity: 0;
55
+ }
56
+
57
+ /* Dot hover glow */
58
+ circle.chart-dot {
59
+ transition: r 0.15s ease, filter 0.15s ease;
60
+ cursor: crosshair;
61
+ }
62
+
63
+ circle.chart-dot:hover,
64
+ circle.chart-dot.chart-dot--active {
65
+ filter: drop-shadow(0 0 4px currentColor);
66
+ }
67
+
68
+ /* Crosshair */
69
+ .chart-crosshair {
70
+ pointer-events: none;
71
+ transition: opacity 0.1s ease;
72
+ }
@@ -0,0 +1,56 @@
1
+ /* PieChart animations */
2
+
3
+ @keyframes chart-pie-scale-in {
4
+ from {
5
+ transform: scale(0);
6
+ opacity: 0;
7
+ }
8
+ to {
9
+ transform: scale(1);
10
+ opacity: 1;
11
+ }
12
+ }
13
+
14
+ @keyframes chart-pie-slice-appear {
15
+ from {
16
+ opacity: 0;
17
+ transform: scale(0.7);
18
+ }
19
+ to {
20
+ opacity: 1;
21
+ transform: scale(1);
22
+ }
23
+ }
24
+
25
+ /* Animate entire pie container */
26
+ .chart-pie-animate {
27
+ transform-origin: center;
28
+ animation: chart-pie-scale-in 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
29
+ }
30
+
31
+ /* Each slice entrance with stagger */
32
+ .chart-slice {
33
+ transform-origin: center;
34
+ transition: transform 0.2s ease, filter 0.15s ease;
35
+ cursor: pointer;
36
+ }
37
+
38
+ .chart-slice-animate-0 { animation: chart-pie-slice-appear 0.4s ease-out 0.0s both; }
39
+ .chart-slice-animate-1 { animation: chart-pie-slice-appear 0.4s ease-out 0.06s both; }
40
+ .chart-slice-animate-2 { animation: chart-pie-slice-appear 0.4s ease-out 0.12s both; }
41
+ .chart-slice-animate-3 { animation: chart-pie-slice-appear 0.4s ease-out 0.18s both; }
42
+ .chart-slice-animate-4 { animation: chart-pie-slice-appear 0.4s ease-out 0.24s both; }
43
+ .chart-slice-animate-5 { animation: chart-pie-slice-appear 0.4s ease-out 0.30s both; }
44
+ .chart-slice-animate-6 { animation: chart-pie-slice-appear 0.4s ease-out 0.36s both; }
45
+ .chart-slice-animate-7 { animation: chart-pie-slice-appear 0.4s ease-out 0.42s both; }
46
+
47
+ /* Explosion */
48
+ .chart-slice--exploded {
49
+ filter: brightness(1.12) drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
50
+ }
51
+
52
+ /* Fade out hidden slices */
53
+ .chart-slice--hidden {
54
+ opacity: 0.12;
55
+ pointer-events: none;
56
+ }
@@ -0,0 +1,45 @@
1
+ /* ScatterChart animations */
2
+
3
+ @keyframes chart-dot-fade-in {
4
+ from {
5
+ opacity: 0;
6
+ transform: scale(0);
7
+ }
8
+ to {
9
+ opacity: 1;
10
+ transform: scale(1);
11
+ }
12
+ }
13
+
14
+ .chart-scatter-dot {
15
+ transition: r 0.15s ease, filter 0.15s ease;
16
+ cursor: crosshair;
17
+ }
18
+
19
+ .chart-scatter-dot.chart-scatter-dot--animate {
20
+ animation: chart-dot-fade-in 0.35s ease-out forwards;
21
+ opacity: 0;
22
+ }
23
+
24
+ /* Stagger dots by series */
25
+ .chart-scatter-group:nth-child(1) .chart-scatter-dot { animation-delay: 0.05s; }
26
+ .chart-scatter-group:nth-child(2) .chart-scatter-dot { animation-delay: 0.15s; }
27
+ .chart-scatter-group:nth-child(3) .chart-scatter-dot { animation-delay: 0.25s; }
28
+ .chart-scatter-group:nth-child(4) .chart-scatter-dot { animation-delay: 0.35s; }
29
+
30
+ .chart-scatter-dot:hover {
31
+ filter: drop-shadow(0 0 5px currentColor);
32
+ }
33
+
34
+ /* Cluster ellipse */
35
+ .chart-cluster-ellipse {
36
+ pointer-events: none;
37
+ animation: chart-dot-fade-in 0.4s ease-out forwards;
38
+ opacity: 0;
39
+ }
40
+
41
+ /* Linked line */
42
+ .chart-scatter-link {
43
+ pointer-events: none;
44
+ opacity: 0.4;
45
+ }
@@ -0,0 +1,55 @@
1
+ /* TypewriterText.css — cursor animations */
2
+
3
+ /* ── Block cursor blink ────────────────────────────────── */
4
+ @keyframes tw-blink {
5
+ 0%,
6
+ 100% {
7
+ opacity: 1;
8
+ }
9
+ 50% {
10
+ opacity: 0;
11
+ }
12
+ }
13
+
14
+ /* ── Gentle fade-out on completion ───────────────────────── */
15
+ @keyframes tw-cursor-out {
16
+ 0% {
17
+ opacity: 1;
18
+ }
19
+ 80% {
20
+ opacity: 1;
21
+ }
22
+ 100% {
23
+ opacity: 0;
24
+ }
25
+ }
26
+
27
+ /* ── Base cursor element ─────────────────────────────────── */
28
+ .tw-cursor {
29
+ display: inline-block;
30
+ line-height: 1;
31
+ vertical-align: baseline;
32
+ user-select: none;
33
+ /* Slightly squish to look more like a text-insertion caret */
34
+ transform: scaleY(0.88);
35
+ transform-origin: 50% 90%;
36
+ /* Inherit the parent's color by default — adapts to any theme */
37
+ color: currentColor;
38
+ }
39
+
40
+ /* Thinking / waiting — slow, step-style blink */
41
+ .tw-cursor--blink {
42
+ animation: tw-blink 1s step-end infinite;
43
+ }
44
+
45
+ /* Actively typing — solid, no blink */
46
+ .tw-cursor--solid {
47
+ opacity: 1;
48
+ animation: none;
49
+ }
50
+
51
+ /* Done — fade away */
52
+ .tw-cursor--out {
53
+ animation: tw-cursor-out 0.6s ease-out forwards;
54
+ pointer-events: none;
55
+ }
@@ -81,6 +81,7 @@
81
81
  --container-lg: 32rem;
82
82
  --container-xl: 36rem;
83
83
  --container-2xl: 42rem;
84
+ --container-3xl: 48rem;
84
85
  --container-4xl: 56rem;
85
86
  --container-5xl: 64rem;
86
87
  --text-xs: 0.75rem;
@@ -175,6 +176,14 @@
175
176
  --color-warning-700: var(--color-orange-700);
176
177
  --color-warning-800: var(--color-orange-800);
177
178
  --color-warning-900: var(--color-orange-900);
179
+ --color-chart-1: var(--color-primary-500);
180
+ --color-chart-2: var(--color-success-500);
181
+ --color-chart-3: var(--color-warning-500);
182
+ --color-chart-4: var(--color-danger-500);
183
+ --color-chart-5: var(--color-secondary-400);
184
+ --color-chart-6: var(--color-primary-300);
185
+ --color-chart-7: var(--color-success-300);
186
+ --color-chart-8: var(--color-warning-300);
178
187
  --animate-fade-in: fade-in 150ms ease-out;
179
188
  --animate-scale-in: scale-in 200ms ease-out;
180
189
  --animate-slide-in-right: slide-in-right 300ms ease-out;
@@ -397,9 +406,6 @@
397
406
  .top-1\/2 {
398
407
  top: calc(1 / 2 * 100%);
399
408
  }
400
- .top-2 {
401
- top: calc(var(--spacing) * 2);
402
- }
403
409
  .top-4 {
404
410
  top: calc(var(--spacing) * 4);
405
411
  }
@@ -418,9 +424,6 @@
418
424
  .right-0 {
419
425
  right: calc(var(--spacing) * 0);
420
426
  }
421
- .right-2 {
422
- right: calc(var(--spacing) * 2);
423
- }
424
427
  .right-3 {
425
428
  right: calc(var(--spacing) * 3);
426
429
  }
@@ -442,9 +445,6 @@
442
445
  .bottom-0 {
443
446
  bottom: calc(var(--spacing) * 0);
444
447
  }
445
- .bottom-2 {
446
- bottom: calc(var(--spacing) * 2);
447
- }
448
448
  .bottom-4 {
449
449
  bottom: calc(var(--spacing) * 4);
450
450
  }
@@ -460,9 +460,6 @@
460
460
  .left-1\/2 {
461
461
  left: calc(1 / 2 * 100%);
462
462
  }
463
- .left-2 {
464
- left: calc(var(--spacing) * 2);
465
- }
466
463
  .left-3 {
467
464
  left: calc(var(--spacing) * 3);
468
465
  }
@@ -586,6 +583,9 @@
586
583
  .mr-2 {
587
584
  margin-right: calc(var(--spacing) * 2);
588
585
  }
586
+ .mr-4 {
587
+ margin-right: calc(var(--spacing) * 4);
588
+ }
589
589
  .mb-\(--form-header-mb\) {
590
590
  margin-bottom: var(--form-header-mb);
591
591
  }
@@ -595,6 +595,9 @@
595
595
  .mb-1 {
596
596
  margin-bottom: calc(var(--spacing) * 1);
597
597
  }
598
+ .mb-1\.5 {
599
+ margin-bottom: calc(var(--spacing) * 1.5);
600
+ }
598
601
  .mb-2 {
599
602
  margin-bottom: calc(var(--spacing) * 2);
600
603
  }
@@ -604,6 +607,9 @@
604
607
  .mb-4 {
605
608
  margin-bottom: calc(var(--spacing) * 4);
606
609
  }
610
+ .mb-5 {
611
+ margin-bottom: calc(var(--spacing) * 5);
612
+ }
607
613
  .mb-6 {
608
614
  margin-bottom: calc(var(--spacing) * 6);
609
615
  }
@@ -778,6 +784,15 @@
778
784
  .min-h-50 {
779
785
  min-height: calc(var(--spacing) * 50);
780
786
  }
787
+ .min-h-52 {
788
+ min-height: calc(var(--spacing) * 52);
789
+ }
790
+ .min-h-\[2\.5rem\] {
791
+ min-height: 2.5rem;
792
+ }
793
+ .min-h-\[3rem\] {
794
+ min-height: 3rem;
795
+ }
781
796
  .min-h-\[60px\] {
782
797
  min-height: 60px;
783
798
  }
@@ -892,6 +907,9 @@
892
907
  .max-w-2xl {
893
908
  max-width: var(--container-2xl);
894
909
  }
910
+ .max-w-3xl {
911
+ max-width: var(--container-3xl);
912
+ }
895
913
  .max-w-4xl {
896
914
  max-width: var(--container-4xl);
897
915
  }
@@ -949,21 +967,18 @@
949
967
  .min-w-44 {
950
968
  min-width: calc(var(--spacing) * 44);
951
969
  }
970
+ .min-w-\[280px\] {
971
+ min-width: 280px;
972
+ }
952
973
  .min-w-lg {
953
974
  min-width: var(--container-lg);
954
975
  }
955
976
  .flex-1 {
956
977
  flex: 1;
957
978
  }
958
- .shrink {
959
- flex-shrink: 1;
960
- }
961
979
  .shrink-0 {
962
980
  flex-shrink: 0;
963
981
  }
964
- .grow {
965
- flex-grow: 1;
966
- }
967
982
  .-translate-x-1\/2 {
968
983
  --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
969
984
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1117,6 +1132,9 @@
1117
1132
  .appearance-none {
1118
1133
  appearance: none;
1119
1134
  }
1135
+ .grid-cols-1 {
1136
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1137
+ }
1120
1138
  .grid-cols-2 {
1121
1139
  grid-template-columns: repeat(2, minmax(0, 1fr));
1122
1140
  }
@@ -1177,6 +1195,9 @@
1177
1195
  .gap-\(--form-row-gap-sm\) {
1178
1196
  gap: var(--form-row-gap-sm);
1179
1197
  }
1198
+ .gap-0 {
1199
+ gap: calc(var(--spacing) * 0);
1200
+ }
1180
1201
  .gap-0\.5 {
1181
1202
  gap: calc(var(--spacing) * 0.5);
1182
1203
  }
@@ -1391,6 +1412,9 @@
1391
1412
  .rounded-none {
1392
1413
  border-radius: 0;
1393
1414
  }
1415
+ .rounded-sm {
1416
+ border-radius: var(--radius-sm);
1417
+ }
1394
1418
  .rounded-xl {
1395
1419
  border-radius: var(--radius-xl);
1396
1420
  }
@@ -1523,6 +1547,9 @@
1523
1547
  .border-primary-600 {
1524
1548
  border-color: var(--color-primary-600);
1525
1549
  }
1550
+ .border-primary-700 {
1551
+ border-color: var(--color-primary-700);
1552
+ }
1526
1553
  .border-secondary-200 {
1527
1554
  border-color: var(--color-secondary-200);
1528
1555
  }
@@ -1646,6 +1673,9 @@
1646
1673
  .bg-danger-100 {
1647
1674
  background-color: var(--color-danger-100);
1648
1675
  }
1676
+ .bg-danger-400 {
1677
+ background-color: var(--color-danger-400);
1678
+ }
1649
1679
  .bg-danger-500 {
1650
1680
  background-color: var(--color-danger-500);
1651
1681
  }
@@ -1715,6 +1745,9 @@
1715
1745
  .bg-success-100 {
1716
1746
  background-color: var(--color-success-100);
1717
1747
  }
1748
+ .bg-success-400 {
1749
+ background-color: var(--color-success-400);
1750
+ }
1718
1751
  .bg-success-500 {
1719
1752
  background-color: var(--color-success-500);
1720
1753
  }
@@ -1730,6 +1763,9 @@
1730
1763
  .bg-warning-100 {
1731
1764
  background-color: var(--color-warning-100);
1732
1765
  }
1766
+ .bg-warning-400 {
1767
+ background-color: var(--color-warning-400);
1768
+ }
1733
1769
  .bg-warning-500 {
1734
1770
  background-color: var(--color-warning-500);
1735
1771
  }
@@ -1768,6 +1804,10 @@
1768
1804
  }
1769
1805
  background-image: linear-gradient(var(--tw-gradient-stops));
1770
1806
  }
1807
+ .bg-gradient-to-br {
1808
+ --tw-gradient-position: to bottom right in oklab;
1809
+ background-image: linear-gradient(var(--tw-gradient-stops));
1810
+ }
1771
1811
  .from-black\/70 {
1772
1812
  --tw-gradient-from: color-mix(in srgb, #000 70%, transparent);
1773
1813
  @supports (color: color-mix(in lab, red, red)) {
@@ -1789,6 +1829,10 @@
1789
1829
  }
1790
1830
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
1791
1831
  }
1832
+ .from-primary-500 {
1833
+ --tw-gradient-from: var(--color-primary-500);
1834
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
1835
+ }
1792
1836
  .via-black\/40 {
1793
1837
  --tw-gradient-via: color-mix(in srgb, #000 40%, transparent);
1794
1838
  @supports (color: color-mix(in lab, red, red)) {
@@ -1805,6 +1849,10 @@
1805
1849
  --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
1806
1850
  --tw-gradient-stops: var(--tw-gradient-via-stops);
1807
1851
  }
1852
+ .to-primary-700 {
1853
+ --tw-gradient-to: var(--color-primary-700);
1854
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
1855
+ }
1808
1856
  .to-transparent {
1809
1857
  --tw-gradient-to: transparent;
1810
1858
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
@@ -1908,6 +1956,9 @@
1908
1956
  .py-4 {
1909
1957
  padding-block: calc(var(--spacing) * 4);
1910
1958
  }
1959
+ .py-6 {
1960
+ padding-block: calc(var(--spacing) * 6);
1961
+ }
1911
1962
  .py-16 {
1912
1963
  padding-block: calc(var(--spacing) * 16);
1913
1964
  }
@@ -2010,6 +2061,9 @@
2010
2061
  .font-mono {
2011
2062
  font-family: var(--font-mono);
2012
2063
  }
2064
+ .font-sans {
2065
+ font-family: var(--font-sans);
2066
+ }
2013
2067
  .text-2xl {
2014
2068
  font-size: var(--text-2xl);
2015
2069
  line-height: var(--tw-leading, var(--text-2xl--line-height));
@@ -2119,6 +2173,9 @@
2119
2173
  .whitespace-pre {
2120
2174
  white-space: pre;
2121
2175
  }
2176
+ .whitespace-pre-wrap {
2177
+ white-space: pre-wrap;
2178
+ }
2122
2179
  .text-\(--accent\) {
2123
2180
  color: var(--accent);
2124
2181
  }
@@ -2185,9 +2242,18 @@
2185
2242
  .text-green-500 {
2186
2243
  color: var(--color-green-500);
2187
2244
  }
2245
+ .text-primary-50 {
2246
+ color: var(--color-primary-50);
2247
+ }
2188
2248
  .text-primary-100 {
2189
2249
  color: var(--color-primary-100);
2190
2250
  }
2251
+ .text-primary-200 {
2252
+ color: var(--color-primary-200);
2253
+ }
2254
+ .text-primary-300 {
2255
+ color: var(--color-primary-300);
2256
+ }
2191
2257
  .text-primary-400 {
2192
2258
  color: var(--color-primary-400);
2193
2259
  }
@@ -2221,6 +2287,12 @@
2221
2287
  .text-secondary-100 {
2222
2288
  color: var(--color-secondary-100);
2223
2289
  }
2290
+ .text-secondary-200 {
2291
+ color: var(--color-secondary-200);
2292
+ }
2293
+ .text-secondary-300 {
2294
+ color: var(--color-secondary-300);
2295
+ }
2224
2296
  .text-secondary-400 {
2225
2297
  color: var(--color-secondary-400);
2226
2298
  }
@@ -2454,6 +2526,10 @@
2454
2526
  -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
2455
2527
  backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
2456
2528
  }
2529
+ .backdrop-filter {
2530
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
2531
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
2532
+ }
2457
2533
  .transition {
2458
2534
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
2459
2535
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -2474,6 +2550,11 @@
2474
2550
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2475
2551
  transition-duration: var(--tw-duration, var(--default-transition-duration));
2476
2552
  }
2553
+ .transition-\[width\,opacity\] {
2554
+ transition-property: width,opacity;
2555
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2556
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2557
+ }
2477
2558
  .transition-\[width\] {
2478
2559
  transition-property: width;
2479
2560
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -2719,6 +2800,13 @@
2719
2800
  }
2720
2801
  }
2721
2802
  }
2803
+ .hover\:border-primary-300 {
2804
+ &:hover {
2805
+ @media (hover: hover) {
2806
+ border-color: var(--color-primary-300);
2807
+ }
2808
+ }
2809
+ }
2722
2810
  .hover\:bg-\(--fe-surface-hover\) {
2723
2811
  &:hover {
2724
2812
  @media (hover: hover) {
@@ -3409,6 +3497,14 @@
3409
3497
  border-color: var(--color-primary-700);
3410
3498
  }
3411
3499
  }
3500
+ .dark\:border-primary-700\/50 {
3501
+ &:where(.dark, .dark *) {
3502
+ border-color: color-mix(in srgb, oklch(37.2% 0.044 257.287) 50%, transparent);
3503
+ @supports (color: color-mix(in lab, red, red)) {
3504
+ border-color: color-mix(in oklab, var(--color-primary-700) 50%, transparent);
3505
+ }
3506
+ }
3507
+ }
3412
3508
  .dark\:border-primary-800 {
3413
3509
  &:where(.dark, .dark *) {
3414
3510
  border-color: var(--color-primary-800);
@@ -3734,6 +3830,11 @@
3734
3830
  color: var(--color-secondary-600);
3735
3831
  }
3736
3832
  }
3833
+ .dark\:text-secondary-700 {
3834
+ &:where(.dark, .dark *) {
3835
+ color: var(--color-secondary-700);
3836
+ }
3837
+ }
3737
3838
  .dark\:text-success-200 {
3738
3839
  &:where(.dark, .dark *) {
3739
3840
  color: var(--color-success-200);
@@ -3779,6 +3880,15 @@
3779
3880
  }
3780
3881
  }
3781
3882
  }
3883
+ .dark\:hover\:border-primary-600 {
3884
+ &:where(.dark, .dark *) {
3885
+ &:hover {
3886
+ @media (hover: hover) {
3887
+ border-color: var(--color-primary-600);
3888
+ }
3889
+ }
3890
+ }
3891
+ }
3782
3892
  .dark\:hover\:bg-danger-900\/20 {
3783
3893
  &:where(.dark, .dark *) {
3784
3894
  &:hover {
@@ -3824,6 +3934,15 @@
3824
3934
  }
3825
3935
  }
3826
3936
  }
3937
+ .dark\:hover\:bg-primary-500 {
3938
+ &:where(.dark, .dark *) {
3939
+ &:hover {
3940
+ @media (hover: hover) {
3941
+ background-color: var(--color-primary-500);
3942
+ }
3943
+ }
3944
+ }
3945
+ }
3827
3946
  .dark\:hover\:bg-primary-600 {
3828
3947
  &:where(.dark, .dark *) {
3829
3948
  &:hover {
@@ -3875,6 +3994,18 @@
3875
3994
  }
3876
3995
  }
3877
3996
  }
3997
+ .dark\:hover\:bg-primary-800\/40 {
3998
+ &:where(.dark, .dark *) {
3999
+ &:hover {
4000
+ @media (hover: hover) {
4001
+ background-color: color-mix(in srgb, oklch(27.9% 0.041 260.031) 40%, transparent);
4002
+ @supports (color: color-mix(in lab, red, red)) {
4003
+ background-color: color-mix(in oklab, var(--color-primary-800) 40%, transparent);
4004
+ }
4005
+ }
4006
+ }
4007
+ }
4008
+ }
3878
4009
  .dark\:hover\:bg-primary-800\/50 {
3879
4010
  &:where(.dark, .dark *) {
3880
4011
  &:hover {
@@ -53,4 +53,14 @@
53
53
  --color-warning-700: var(--color-orange-700);
54
54
  --color-warning-800: var(--color-orange-800);
55
55
  --color-warning-900: var(--color-orange-900);
56
+
57
+ /* Chart palette — semantic color rotation for series */
58
+ --color-chart-1: var(--color-primary-500);
59
+ --color-chart-2: var(--color-success-500);
60
+ --color-chart-3: var(--color-warning-500);
61
+ --color-chart-4: var(--color-danger-500);
62
+ --color-chart-5: var(--color-secondary-400);
63
+ --color-chart-6: var(--color-primary-300);
64
+ --color-chart-7: var(--color-success-300);
65
+ --color-chart-8: var(--color-warning-300);
56
66
  }