@jacshuo/onyx 1.4.1 → 2.1.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.
- package/dist/Chart/BarChart.cjs +1 -0
- package/dist/Chart/BarChart.css +1 -0
- package/dist/Chart/BarChart.d.cts +2 -0
- package/dist/Chart/BarChart.d.ts +2 -0
- package/dist/Chart/BarChart.js +1 -0
- package/dist/Chart/LineChart.cjs +1 -0
- package/dist/Chart/LineChart.css +1 -0
- package/dist/Chart/LineChart.d.cts +2 -0
- package/dist/Chart/LineChart.d.ts +2 -0
- package/dist/Chart/LineChart.js +1 -0
- package/dist/Chart/PieChart.cjs +1 -0
- package/dist/Chart/PieChart.css +1 -0
- package/dist/Chart/PieChart.d.cts +2 -0
- package/dist/Chart/PieChart.d.ts +2 -0
- package/dist/Chart/PieChart.js +1 -0
- package/dist/Chart/ScatterChart.cjs +1 -0
- package/dist/Chart/ScatterChart.css +1 -0
- package/dist/Chart/ScatterChart.d.cts +2 -0
- package/dist/Chart/ScatterChart.d.ts +2 -0
- package/dist/Chart/ScatterChart.js +1 -0
- package/dist/Chart/index.cjs +1 -0
- package/dist/Chart/index.css +1 -0
- package/dist/Chart/index.d.cts +12 -0
- package/dist/Chart/index.d.ts +12 -0
- package/dist/Chart/index.js +1 -0
- package/dist/DataDisplay/CodeBlock.cjs +2 -2
- package/dist/DataDisplay/CodeBlock.js +2 -2
- package/dist/DataDisplay/List.cjs +1 -1
- package/dist/DataDisplay/List.js +1 -1
- package/dist/DataDisplay/MetricCard.cjs +1 -0
- package/dist/DataDisplay/MetricCard.d.cts +3 -0
- package/dist/DataDisplay/MetricCard.d.ts +3 -0
- package/dist/DataDisplay/MetricCard.js +1 -0
- package/dist/DataDisplay/Stat.cjs +1 -0
- package/dist/DataDisplay/Stat.d.cts +3 -0
- package/dist/DataDisplay/Stat.d.ts +3 -0
- package/dist/DataDisplay/Stat.js +1 -0
- package/dist/DataDisplay/Table.cjs +1 -1
- package/dist/DataDisplay/Table.js +1 -1
- package/dist/DataDisplay/Tree.cjs +1 -1
- package/dist/DataDisplay/Tree.js +1 -1
- package/dist/DataDisplay/index.cjs +2 -2
- package/dist/DataDisplay/index.d.cts +7 -1
- package/dist/DataDisplay/index.d.ts +7 -1
- package/dist/DataDisplay/index.js +2 -2
- package/dist/Disclosure/index.d.cts +1 -1
- package/dist/Disclosure/index.d.ts +1 -1
- package/dist/Extras/CommandPalette.cjs +1 -0
- package/dist/Extras/CommandPalette.css +1 -0
- package/dist/Extras/CommandPalette.d.cts +4 -0
- package/dist/Extras/CommandPalette.d.ts +4 -0
- package/dist/Extras/CommandPalette.js +1 -0
- package/dist/Extras/FileExplorer.cjs +2 -2
- package/dist/Extras/FileExplorer.js +2 -2
- package/dist/Extras/Timeline.cjs +1 -0
- package/dist/Extras/Timeline.css +1 -0
- package/dist/Extras/Timeline.d.cts +6 -0
- package/dist/Extras/Timeline.d.ts +6 -0
- package/dist/Extras/Timeline.js +1 -0
- package/dist/Extras/TypewriterText.cjs +1 -0
- package/dist/Extras/TypewriterText.css +1 -0
- package/dist/Extras/TypewriterText.d.cts +2 -0
- package/dist/Extras/TypewriterText.d.ts +2 -0
- package/dist/Extras/TypewriterText.js +1 -0
- package/dist/Extras/index.cjs +4 -4
- package/dist/Extras/index.css +1 -0
- package/dist/Extras/index.d.cts +12 -1
- package/dist/Extras/index.d.ts +12 -1
- package/dist/Extras/index.js +4 -4
- package/dist/Feedback/Alert.cjs +1 -1
- package/dist/Feedback/Alert.js +1 -1
- package/dist/Feedback/ProgressBar.cjs +1 -1
- package/dist/Feedback/ProgressBar.js +1 -1
- package/dist/Feedback/Skeleton.cjs +1 -0
- package/dist/Feedback/Skeleton.d.cts +2 -0
- package/dist/Feedback/Skeleton.d.ts +2 -0
- package/dist/Feedback/Skeleton.js +1 -0
- package/dist/Feedback/Spin.cjs +2 -2
- package/dist/Feedback/Spin.js +2 -2
- package/dist/Feedback/Toast.cjs +1 -0
- package/dist/Feedback/Toast.d.cts +11 -0
- package/dist/Feedback/Toast.d.ts +11 -0
- package/dist/Feedback/Toast.js +1 -0
- package/dist/Feedback/index.cjs +2 -2
- package/dist/Feedback/index.d.cts +12 -1
- package/dist/Feedback/index.d.ts +12 -1
- package/dist/Feedback/index.js +2 -2
- package/dist/Forms/Select.cjs +1 -0
- package/dist/Forms/Select.css +1 -0
- package/dist/Forms/Select.d.cts +3 -0
- package/dist/Forms/Select.d.ts +3 -0
- package/dist/Forms/Select.js +1 -0
- package/dist/Forms/index.d.cts +1 -1
- package/dist/Forms/index.d.ts +1 -1
- package/dist/Layout/index.d.cts +1 -1
- package/dist/Layout/index.d.ts +1 -1
- package/dist/Navigation/Breadcrumb.cjs +1 -0
- package/dist/Navigation/Breadcrumb.d.cts +3 -0
- package/dist/Navigation/Breadcrumb.d.ts +3 -0
- package/dist/Navigation/Breadcrumb.js +1 -0
- package/dist/Navigation/Header.cjs +1 -1
- package/dist/Navigation/Header.js +1 -1
- package/dist/Navigation/Pagination.cjs +1 -0
- package/dist/Navigation/Pagination.d.cts +2 -0
- package/dist/Navigation/Pagination.d.ts +2 -0
- package/dist/Navigation/Pagination.js +1 -0
- package/dist/Navigation/RibbonBar.cjs +1 -0
- package/dist/Navigation/RibbonBar.d.cts +6 -0
- package/dist/Navigation/RibbonBar.d.ts +6 -0
- package/dist/Navigation/RibbonBar.js +1 -0
- package/dist/Navigation/index.cjs +2 -2
- package/dist/Navigation/index.d.cts +9 -1
- package/dist/Navigation/index.d.ts +9 -1
- package/dist/Navigation/index.js +2 -2
- package/dist/Overlay/ContextMenu.cjs +1 -0
- package/dist/Overlay/ContextMenu.d.cts +3 -0
- package/dist/Overlay/ContextMenu.d.ts +3 -0
- package/dist/Overlay/ContextMenu.js +1 -0
- package/dist/Overlay/Drawer.cjs +1 -0
- package/dist/Overlay/Drawer.css +1 -0
- package/dist/Overlay/Drawer.d.cts +10 -0
- package/dist/Overlay/Drawer.d.ts +10 -0
- package/dist/Overlay/Drawer.js +1 -0
- package/dist/Overlay/index.cjs +1 -1
- package/dist/Overlay/index.css +1 -0
- package/dist/Overlay/index.d.cts +9 -1
- package/dist/Overlay/index.d.ts +9 -1
- package/dist/Overlay/index.js +1 -1
- package/dist/Primitives/Avatar.cjs +1 -0
- package/dist/Primitives/Avatar.d.cts +4 -0
- package/dist/Primitives/Avatar.d.ts +4 -0
- package/dist/Primitives/Avatar.js +1 -0
- package/dist/Primitives/Badge.cjs +1 -1
- package/dist/Primitives/Badge.js +1 -1
- package/dist/Primitives/Button.cjs +1 -1
- package/dist/Primitives/Button.js +1 -1
- package/dist/Primitives/Checkbox.cjs +1 -1
- package/dist/Primitives/Checkbox.js +1 -1
- package/dist/Primitives/Dropdown.cjs +1 -1
- package/dist/Primitives/Dropdown.js +1 -1
- package/dist/Primitives/DropdownButton.cjs +1 -1
- package/dist/Primitives/DropdownButton.js +1 -1
- package/dist/Primitives/Indicator.cjs +1 -1
- package/dist/Primitives/Indicator.js +1 -1
- package/dist/Primitives/Input.cjs +1 -1
- package/dist/Primitives/Input.js +1 -1
- package/dist/Primitives/Label.cjs +1 -1
- package/dist/Primitives/Label.js +1 -1
- package/dist/Primitives/Radio.cjs +1 -1
- package/dist/Primitives/Radio.js +1 -1
- package/dist/Primitives/Slider.cjs +1 -0
- package/dist/Primitives/Slider.css +1 -0
- package/dist/Primitives/Slider.d.cts +4 -0
- package/dist/Primitives/Slider.d.ts +4 -0
- package/dist/Primitives/Slider.js +1 -0
- package/dist/Primitives/Switch.cjs +1 -1
- package/dist/Primitives/Switch.js +1 -1
- package/dist/Primitives/Tag.cjs +1 -0
- package/dist/Primitives/Tag.d.cts +2 -0
- package/dist/Primitives/Tag.d.ts +2 -0
- package/dist/Primitives/Tag.js +1 -0
- package/dist/Primitives/index.cjs +1 -1
- package/dist/Primitives/index.css +1 -0
- package/dist/Primitives/index.d.cts +7 -1
- package/dist/Primitives/index.d.ts +7 -1
- package/dist/Primitives/index.js +1 -1
- package/dist/_tsup-dts-rollup.d.cts +1447 -12
- package/dist/_tsup-dts-rollup.d.ts +1447 -12
- package/dist/index.cjs +5 -5
- package/dist/index.css +1 -0
- package/dist/index.d.cts +89 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.js +5 -5
- package/dist/styles/Chart/BarChart.css +44 -0
- package/dist/styles/Chart/LineChart.css +72 -0
- package/dist/styles/Chart/PieChart.css +56 -0
- package/dist/styles/Chart/ScatterChart.css +45 -0
- package/dist/styles/DataDisplay/MetricCard.css +1 -0
- package/dist/styles/DataDisplay/Stat.css +1 -0
- package/dist/styles/Extras/CommandPalette.css +65 -0
- package/dist/styles/Extras/Timeline.css +52 -0
- package/dist/styles/Extras/TypewriterText.css +55 -0
- package/dist/styles/Feedback/Skeleton.css +37 -0
- package/dist/styles/Feedback/Toast.css +77 -0
- package/dist/styles/Forms/Select.css +36 -0
- package/dist/styles/Navigation/RibbonBar.css +1 -0
- package/dist/styles/Overlay/ContextMenu.css +1 -0
- package/dist/styles/Overlay/Drawer.css +52 -0
- package/dist/styles/Primitives/Slider.css +4 -0
- package/dist/styles/Primitives/Tag.css +1 -0
- package/dist/styles/base.css +1152 -0
- package/dist/styles/tokens/core.css +10 -0
- package/dist/styles.css +1570 -3
- package/dist/theme.cjs +1 -1
- package/dist/theme.d.cts +10 -0
- package/dist/theme.d.ts +10 -0
- package/dist/theme.js +1 -1
- 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 @@
|
|
|
1
|
+
/* MetricCard component-local styles */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* Stat component-local styles */
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/* ── Backdrop ─────────────────────────────────────────── */
|
|
2
|
+
|
|
3
|
+
.cmd-backdrop {
|
|
4
|
+
background: rgba(0, 0, 0, 0.4);
|
|
5
|
+
backdrop-filter: blur(2px);
|
|
6
|
+
animation: cmd-backdrop-in 120ms ease-out both;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@keyframes cmd-backdrop-in {
|
|
10
|
+
from {
|
|
11
|
+
opacity: 0;
|
|
12
|
+
}
|
|
13
|
+
to {
|
|
14
|
+
opacity: 1;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* ── Panel ────────────────────────────────────────────── */
|
|
19
|
+
|
|
20
|
+
.cmd-panel {
|
|
21
|
+
animation: cmd-panel-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@keyframes cmd-panel-in {
|
|
25
|
+
from {
|
|
26
|
+
opacity: 0;
|
|
27
|
+
transform: scale(0.96) translateY(-10px);
|
|
28
|
+
}
|
|
29
|
+
to {
|
|
30
|
+
opacity: 1;
|
|
31
|
+
transform: scale(1) translateY(0);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* ── Items ────────────────────────────────────────────── */
|
|
36
|
+
|
|
37
|
+
.cmd-item {
|
|
38
|
+
cursor: default;
|
|
39
|
+
user-select: none;
|
|
40
|
+
transition: background-color 80ms ease, color 80ms ease;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* ── Results scrollbar ────────────────────────────────── */
|
|
44
|
+
|
|
45
|
+
#cmd-results {
|
|
46
|
+
scrollbar-width: thin;
|
|
47
|
+
scrollbar-color: var(--color-primary-300) transparent;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#cmd-results::-webkit-scrollbar {
|
|
51
|
+
width: 4px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#cmd-results::-webkit-scrollbar-track {
|
|
55
|
+
background: transparent;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
#cmd-results::-webkit-scrollbar-thumb {
|
|
59
|
+
background: var(--color-primary-300);
|
|
60
|
+
border-radius: 2px;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.dark #cmd-results::-webkit-scrollbar-thumb {
|
|
64
|
+
background: var(--color-primary-700);
|
|
65
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* Timeline component-local styles */
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
── Timeline design tokens ─────────────────────────────────────────────────
|
|
5
|
+
Override any of these CSS custom properties to retheme the component
|
|
6
|
+
without touching source code. Place overrides in your global CSS or
|
|
7
|
+
inside a `.dark` / branded-theme selector.
|
|
8
|
+
*/
|
|
9
|
+
:root {
|
|
10
|
+
/* Active card: holo aurora + spinning border ─────────────────────────── */
|
|
11
|
+
--tl-holo-base: var(--color-primary-600); /* base sweep (slate-600) */
|
|
12
|
+
--tl-holo-mid: var(--color-primary-400); /* fade-out (slate-400) */
|
|
13
|
+
--tl-holo-indigo: var(--color-indigo-400); /* first accent (indigo-400)*/
|
|
14
|
+
--tl-holo-violet: var(--color-violet-300); /* peak accent (violet-300) */
|
|
15
|
+
--tl-holo-cyan: var(--color-cyan-400); /* shimmer (cyan-400) */
|
|
16
|
+
|
|
17
|
+
/* Ambient glow — complete-status cards ───────────────────────────────── */
|
|
18
|
+
--tl-glow-complete-1: var(--color-success-600); /* emerald-600 inner sweep */
|
|
19
|
+
--tl-glow-complete-2: var(--color-success-400); /* emerald-400 mid sweep */
|
|
20
|
+
|
|
21
|
+
/* Ambient glow — error-status cards ─────────────────────────────────── */
|
|
22
|
+
--tl-glow-error-1: var(--color-danger-600); /* rose-600 inner sweep */
|
|
23
|
+
--tl-glow-error-2: var(--color-danger-400); /* rose-400 mid sweep */
|
|
24
|
+
--tl-glow-error-3: var(--color-danger-300); /* rose-300 outer edge */
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/*
|
|
28
|
+
Animates the `from` angle of conic-gradient() directly.
|
|
29
|
+
This avoids rotating *elements* (which clips at corners on non-square cards);
|
|
30
|
+
the gradient rotates in-place instead, giving a clean sweep on any aspect ratio.
|
|
31
|
+
*/
|
|
32
|
+
@property --tl-angle {
|
|
33
|
+
syntax: "<angle>";
|
|
34
|
+
initial-value: 0deg;
|
|
35
|
+
inherits: false;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@keyframes tl-holo-spin {
|
|
39
|
+
to { --tl-angle: 360deg; }
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@keyframes tl-breathe {
|
|
43
|
+
0%, 100% { opacity: 0.42; }
|
|
44
|
+
50% { opacity: 0.9; }
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Slow ambient pulse for non-active status cards */
|
|
48
|
+
@keyframes tl-glow-pulse {
|
|
49
|
+
0%, 100% { opacity: 0.12; }
|
|
50
|
+
50% { opacity: 0.24; }
|
|
51
|
+
}
|
|
52
|
+
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
@keyframes skeleton-shimmer {
|
|
2
|
+
0% {
|
|
3
|
+
background-position: -200% 0;
|
|
4
|
+
}
|
|
5
|
+
100% {
|
|
6
|
+
background-position: 200% 0;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@utility skeleton-base {
|
|
11
|
+
display: block;
|
|
12
|
+
flex-shrink: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@utility skeleton-text {
|
|
16
|
+
height: 1em;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@utility skeleton-wave {
|
|
20
|
+
background-image: linear-gradient(
|
|
21
|
+
90deg,
|
|
22
|
+
var(--color-secondary-200) 25%,
|
|
23
|
+
var(--color-secondary-100) 50%,
|
|
24
|
+
var(--color-secondary-200) 75%
|
|
25
|
+
);
|
|
26
|
+
background-size: 200% 100%;
|
|
27
|
+
animation: skeleton-shimmer 1.6s ease-in-out infinite;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.dark .skeleton-wave {
|
|
31
|
+
background-image: linear-gradient(
|
|
32
|
+
90deg,
|
|
33
|
+
var(--color-secondary-700) 25%,
|
|
34
|
+
var(--color-secondary-600) 50%,
|
|
35
|
+
var(--color-secondary-700) 75%
|
|
36
|
+
);
|
|
37
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/* ── Toast CSS ──────────────────────────────────────────── */
|
|
2
|
+
|
|
3
|
+
/* Exit keyframes — directional slide-out */
|
|
4
|
+
@keyframes toast-slide-out-right {
|
|
5
|
+
from { opacity: 1; transform: translateX(0); }
|
|
6
|
+
to { opacity: 0; transform: translateX(110%); }
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@keyframes toast-slide-out-left {
|
|
10
|
+
from { opacity: 1; transform: translateX(0); }
|
|
11
|
+
to { opacity: 0; transform: translateX(-110%); }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@keyframes toast-slide-out-up {
|
|
15
|
+
from { opacity: 1; transform: translateY(0); }
|
|
16
|
+
to { opacity: 0; transform: translateY(-50%); }
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@keyframes toast-slide-out-down {
|
|
20
|
+
from { opacity: 1; transform: translateY(0); }
|
|
21
|
+
to { opacity: 0; transform: translateY(50%); }
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* Height-collapsing wrapper animation */
|
|
25
|
+
@keyframes toast-height-collapse {
|
|
26
|
+
0% { max-height: 320px; }
|
|
27
|
+
100% { max-height: 0; }
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* ── Item base layout ────────────────────────────────── */
|
|
31
|
+
|
|
32
|
+
.toast-item {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: flex-start;
|
|
35
|
+
gap: 0.75rem;
|
|
36
|
+
border-radius: 0.5rem;
|
|
37
|
+
padding: 0.875rem 1rem;
|
|
38
|
+
width: 20rem;
|
|
39
|
+
max-width: calc(100vw - 2rem);
|
|
40
|
+
box-shadow:
|
|
41
|
+
0 4px 16px rgba(0 0 0 / 0.18),
|
|
42
|
+
0 1px 4px rgba(0 0 0 / 0.1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* ── Wrapper: height-collapse on exit ───────────────── */
|
|
46
|
+
|
|
47
|
+
.toast-wrapper {
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.toast-wrapper-exiting {
|
|
52
|
+
animation: toast-height-collapse 0.32s ease forwards;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* ── Per-direction item exit animations ─────────────── */
|
|
56
|
+
|
|
57
|
+
.toast-exit-right .toast-item {
|
|
58
|
+
animation: toast-slide-out-right 0.32s ease forwards;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.toast-exit-left .toast-item {
|
|
62
|
+
animation: toast-slide-out-left 0.32s ease forwards;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.toast-exit-up .toast-item {
|
|
66
|
+
animation: toast-slide-out-up 0.32s ease forwards;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.toast-exit-down .toast-item {
|
|
70
|
+
animation: toast-slide-out-down 0.32s ease forwards;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* ── Action button base ──────────────────────────────── */
|
|
74
|
+
|
|
75
|
+
.toast-action-btn {
|
|
76
|
+
cursor: pointer;
|
|
77
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* ── Dropdown list animation ──────────────────────────── */
|
|
2
|
+
|
|
3
|
+
.select-list {
|
|
4
|
+
animation: select-list-in 150ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@keyframes select-list-in {
|
|
8
|
+
from {
|
|
9
|
+
opacity: 0;
|
|
10
|
+
transform: translateY(-6px) scale(0.98);
|
|
11
|
+
}
|
|
12
|
+
to {
|
|
13
|
+
opacity: 1;
|
|
14
|
+
transform: translateY(0) scale(1);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* ── Scrollbar ────────────────────────────────────────── */
|
|
19
|
+
|
|
20
|
+
.select-list {
|
|
21
|
+
scrollbar-width: thin;
|
|
22
|
+
scrollbar-color: var(--color-primary-300) transparent;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.select-list::-webkit-scrollbar {
|
|
26
|
+
width: 4px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.select-list::-webkit-scrollbar-thumb {
|
|
30
|
+
background: var(--color-primary-300);
|
|
31
|
+
border-radius: 2px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.dark .select-list::-webkit-scrollbar-thumb {
|
|
35
|
+
background: var(--color-primary-700);
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* RibbonBar component-local styles */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* ContextMenu component-local styles */
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* ── Backdrop ─────────────────────────────────────────── */
|
|
2
|
+
|
|
3
|
+
.drawer-backdrop {
|
|
4
|
+
animation: drawer-backdrop-in 180ms ease-out both;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@keyframes drawer-backdrop-in {
|
|
8
|
+
from { opacity: 0; }
|
|
9
|
+
to { opacity: 1; }
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* ── Panel slide-in animations ────────────────────────── */
|
|
13
|
+
|
|
14
|
+
.drawer-panel {
|
|
15
|
+
will-change: transform;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.drawer-enter-right {
|
|
19
|
+
animation: drawer-slide-in-right 260ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.drawer-enter-left {
|
|
23
|
+
animation: drawer-slide-in-left 260ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.drawer-enter-top {
|
|
27
|
+
animation: drawer-slide-in-top 260ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.drawer-enter-bottom {
|
|
31
|
+
animation: drawer-slide-in-bottom 260ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@keyframes drawer-slide-in-right {
|
|
35
|
+
from { transform: translateX(100%); }
|
|
36
|
+
to { transform: translateX(0); }
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@keyframes drawer-slide-in-left {
|
|
40
|
+
from { transform: translateX(-100%); }
|
|
41
|
+
to { transform: translateX(0); }
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@keyframes drawer-slide-in-top {
|
|
45
|
+
from { transform: translateY(-100%); }
|
|
46
|
+
to { transform: translateY(0); }
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@keyframes drawer-slide-in-bottom {
|
|
50
|
+
from { transform: translateY(100%); }
|
|
51
|
+
to { transform: translateY(0); }
|
|
52
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* Tag component-local styles */
|