ui-svelte 0.2.11 → 0.2.13
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/README.md +2 -2
- package/dist/charts/ArcChart.svelte +9 -14
- package/dist/charts/ArcChart.svelte.d.ts +3 -3
- package/dist/charts/AreaChart.svelte +347 -118
- package/dist/charts/AreaChart.svelte.d.ts +33 -4
- package/dist/charts/BarChart.svelte +288 -66
- package/dist/charts/BarChart.svelte.d.ts +26 -1
- package/dist/charts/Candlestick.svelte +53 -50
- package/dist/charts/Candlestick.svelte.d.ts +8 -8
- package/dist/charts/LineChart.svelte +391 -91
- package/dist/charts/LineChart.svelte.d.ts +26 -3
- package/dist/charts/PieChart.svelte +333 -92
- package/dist/charts/PieChart.svelte.d.ts +33 -5
- package/dist/charts/css/arc-chart.css +3 -3
- package/dist/charts/css/area-chart.css +127 -29
- package/dist/charts/css/bar-chart.css +114 -8
- package/dist/charts/css/candlestick.css +2 -0
- package/dist/charts/css/line-chart.css +111 -13
- package/dist/charts/css/pie-chart.css +92 -20
- package/dist/control/Audio.svelte +86 -44
- package/dist/control/Audio.svelte.d.ts +4 -1
- package/dist/control/Button.svelte +18 -27
- package/dist/control/Button.svelte.d.ts +3 -2
- package/dist/control/Fab.svelte +103 -0
- package/dist/control/Fab.svelte.d.ts +25 -0
- package/dist/control/IconButton.svelte +17 -27
- package/dist/control/IconButton.svelte.d.ts +3 -3
- package/dist/control/Image.svelte +123 -0
- package/dist/control/Image.svelte.d.ts +13 -0
- package/dist/control/Record.svelte +141 -98
- package/dist/control/Record.svelte.d.ts +2 -1
- package/dist/control/ToggleGroup.svelte +22 -8
- package/dist/control/ToggleGroup.svelte.d.ts +2 -1
- package/dist/control/ToggleTheme.svelte +13 -11
- package/dist/control/ToggleTheme.svelte.d.ts +3 -2
- package/dist/control/Video.svelte +57 -29
- package/dist/control/Video.svelte.d.ts +1 -0
- package/dist/control/css/btn.css +200 -152
- package/dist/control/css/fab.css +84 -0
- package/dist/control/css/image.css +56 -0
- package/dist/control/css/media.css +95 -30
- package/dist/control/css/toggle-group.css +253 -84
- package/dist/control/css/video.css +1 -14
- package/dist/css/animations.css +5 -9
- package/dist/css/base.css +13 -347
- package/dist/css/decorations.css +561 -0
- package/dist/css/rich-text.css +485 -0
- package/dist/css/transitions.css +158 -0
- package/dist/css/typography.css +291 -0
- package/dist/css/utilities.css +0 -4
- package/dist/display/Accordion.svelte +28 -4
- package/dist/display/Accordion.svelte.d.ts +2 -1
- package/dist/display/Alert.svelte +32 -12
- package/dist/display/Alert.svelte.d.ts +2 -3
- package/dist/display/Avatar.svelte +23 -18
- package/dist/display/Avatar.svelte.d.ts +4 -1
- package/dist/display/AvatarGroup.svelte +20 -18
- package/dist/display/AvatarGroup.svelte.d.ts +6 -3
- package/dist/display/Badge.svelte +11 -4
- package/dist/display/Badge.svelte.d.ts +2 -1
- package/dist/display/Card.svelte +15 -14
- package/dist/display/Card.svelte.d.ts +2 -3
- package/dist/display/Carousel.svelte +130 -99
- package/dist/display/Carousel.svelte.d.ts +6 -4
- package/dist/display/ChatBox.svelte +245 -106
- package/dist/display/ChatBox.svelte.d.ts +32 -5
- package/dist/display/Chip.svelte +31 -17
- package/dist/display/Chip.svelte.d.ts +3 -2
- package/dist/display/Code.svelte +7 -4
- package/dist/display/Code.svelte.d.ts +1 -0
- package/dist/display/Collapsible.svelte +30 -4
- package/dist/display/Collapsible.svelte.d.ts +2 -1
- package/dist/display/Countdown.svelte +169 -0
- package/dist/display/Countdown.svelte.d.ts +21 -0
- package/dist/display/Empty.svelte +37 -3
- package/dist/display/Empty.svelte.d.ts +3 -0
- package/dist/display/Item.svelte +42 -11
- package/dist/display/Item.svelte.d.ts +4 -2
- package/dist/display/Map.svelte +488 -0
- package/dist/display/Map.svelte.d.ts +44 -0
- package/dist/display/Marquee.svelte +0 -2
- package/dist/display/Section.svelte +14 -12
- package/dist/display/Section.svelte.d.ts +2 -3
- package/dist/display/Skeleton.svelte +32 -0
- package/dist/display/Skeleton.svelte.d.ts +10 -0
- package/dist/display/Table.svelte +94 -132
- package/dist/display/Table.svelte.d.ts +10 -1
- package/dist/display/css/accordion.css +349 -52
- package/dist/display/css/alert.css +38 -18
- package/dist/display/css/avatar-group.css +38 -75
- package/dist/display/css/avatar.css +139 -121
- package/dist/display/css/badge.css +50 -27
- package/dist/display/css/card.css +123 -71
- package/dist/display/css/carousel.css +25 -5
- package/dist/display/css/chat-box.css +158 -26
- package/dist/display/css/chip.css +142 -68
- package/dist/display/css/code.css +2 -6
- package/dist/display/css/collapsible.css +349 -45
- package/dist/display/css/countdown.css +206 -0
- package/dist/display/css/divider.css +8 -6
- package/dist/display/css/empty.css +7 -0
- package/dist/display/css/item.css +330 -84
- package/dist/display/css/map.css +164 -0
- package/dist/display/css/marquee.css +0 -3
- package/dist/display/css/section.css +89 -65
- package/dist/display/css/skeleton.css +58 -0
- package/dist/display/css/table.css +309 -193
- package/dist/form/Checkbox.svelte +11 -5
- package/dist/form/Checkbox.svelte.d.ts +2 -1
- package/dist/form/ColorField.svelte +601 -0
- package/dist/form/ColorField.svelte.d.ts +29 -0
- package/dist/form/ComboBox.svelte +24 -9
- package/dist/form/ComboBox.svelte.d.ts +2 -2
- package/dist/form/CsvField.svelte +62 -136
- package/dist/form/CsvField.svelte.d.ts +2 -2
- package/dist/form/DateField.svelte +33 -15
- package/dist/form/DateField.svelte.d.ts +2 -1
- package/dist/form/DateRange.svelte +436 -0
- package/dist/form/DateRange.svelte.d.ts +24 -0
- package/dist/form/DragDrop.svelte +578 -0
- package/dist/form/DragDrop.svelte.d.ts +33 -0
- package/dist/form/Dropzone.svelte +28 -8
- package/dist/form/Dropzone.svelte.d.ts +2 -2
- package/dist/form/Editor.svelte +626 -0
- package/dist/form/Editor.svelte.d.ts +50 -0
- package/dist/form/ImageCropper.svelte +422 -61
- package/dist/form/ImageCropper.svelte.d.ts +15 -1
- package/dist/form/{PasswordStrength.svelte → PasswordField.svelte} +58 -24
- package/dist/form/{PasswordStrength.svelte.d.ts → PasswordField.svelte.d.ts} +6 -5
- package/dist/form/PhoneField.svelte +26 -14
- package/dist/form/PhoneField.svelte.d.ts +4 -3
- package/dist/form/PinField.svelte +39 -31
- package/dist/form/PinField.svelte.d.ts +3 -3
- package/dist/form/RadioGroup.svelte +9 -5
- package/dist/form/RadioGroup.svelte.d.ts +1 -1
- package/dist/form/Select.svelte +20 -19
- package/dist/form/Select.svelte.d.ts +2 -2
- package/dist/form/Slider.svelte +10 -4
- package/dist/form/Slider.svelte.d.ts +2 -1
- package/dist/form/TextField.svelte +29 -11
- package/dist/form/TextField.svelte.d.ts +5 -4
- package/dist/form/Textarea.svelte +15 -6
- package/dist/form/Textarea.svelte.d.ts +2 -2
- package/dist/form/Toggle.svelte +7 -3
- package/dist/form/Toggle.svelte.d.ts +1 -1
- package/dist/form/css/checkbox.css +18 -2
- package/dist/form/css/color-field.css +141 -0
- package/dist/form/css/control.css +193 -82
- package/dist/form/css/csv-field.css +221 -0
- package/dist/form/css/date-range.css +122 -0
- package/dist/form/css/date.css +24 -2
- package/dist/form/css/drag-drop.css +234 -0
- package/dist/form/css/dropzone.css +153 -34
- package/dist/form/css/editor.css +367 -0
- package/dist/form/css/field.css +4 -0
- package/dist/form/css/image-cropper.css +242 -20
- package/dist/form/css/radio-group.css +26 -1
- package/dist/form/css/select.css +2 -2
- package/dist/form/css/slider.css +37 -0
- package/dist/form/css/textarea.css +178 -75
- package/dist/form/css/toggle.css +15 -3
- package/dist/hooks/use-chat.svelte.js +1 -1
- package/dist/hooks/use-form.svelte.js +3 -3
- package/dist/hooks/use-search.svelte.js +0 -3
- package/dist/hooks/use-table.svelte.d.ts +1 -0
- package/dist/hooks/use-table.svelte.js +6 -0
- package/dist/icons/index.d.ts +34 -2
- package/dist/icons/index.js +36 -4
- package/dist/index.css +44 -49
- package/dist/index.d.ts +14 -4
- package/dist/index.js +13 -3
- package/dist/layout/AppBar.svelte +22 -14
- package/dist/layout/AppBar.svelte.d.ts +2 -1
- package/dist/layout/Footer.svelte +19 -11
- package/dist/layout/Footer.svelte.d.ts +2 -1
- package/dist/layout/Provider.svelte +32 -9
- package/dist/layout/Provider.svelte.d.ts +3 -1
- package/dist/layout/Sidebar.svelte +17 -8
- package/dist/layout/Sidebar.svelte.d.ts +2 -1
- package/dist/layout/css/app-bar.css +63 -66
- package/dist/layout/css/footer.css +62 -65
- package/dist/layout/css/sidebar.css +120 -59
- package/dist/navigation/BottomNav.svelte +51 -14
- package/dist/navigation/FooterGroup.svelte +1 -1
- package/dist/navigation/NavMenu.svelte +47 -23
- package/dist/navigation/NavMenu.svelte.d.ts +29 -0
- package/dist/navigation/Pagination.svelte +158 -0
- package/dist/navigation/Pagination.svelte.d.ts +18 -0
- package/dist/navigation/SideNav.svelte +30 -25
- package/dist/navigation/SideNav.svelte.d.ts +2 -3
- package/dist/navigation/Tabs.svelte +17 -7
- package/dist/navigation/Tabs.svelte.d.ts +2 -2
- package/dist/navigation/css/bottom-nav.css +319 -257
- package/dist/navigation/css/footer-group.css +1 -1
- package/dist/navigation/css/footer-nav.css +1 -1
- package/dist/navigation/css/nav-menu.css +331 -106
- package/dist/navigation/css/pagination.css +74 -0
- package/dist/navigation/css/side-nav.css +514 -75
- package/dist/navigation/css/tabs.css +246 -52
- package/dist/overlay/AlertDialog.svelte +58 -0
- package/dist/overlay/AlertDialog.svelte.d.ts +14 -25
- package/dist/overlay/Command.svelte +347 -0
- package/dist/overlay/Command.svelte.d.ts +33 -25
- package/dist/overlay/Drawer.svelte +49 -21
- package/dist/overlay/Drawer.svelte.d.ts +2 -2
- package/dist/overlay/Dropdown.svelte +3 -3
- package/dist/overlay/Modal.svelte +51 -16
- package/dist/overlay/Modal.svelte.d.ts +3 -3
- package/dist/overlay/Toast.svelte +41 -17
- package/dist/overlay/Toast.svelte.d.ts +1 -1
- package/dist/overlay/Tooltip.svelte +36 -27
- package/dist/overlay/Tooltip.svelte.d.ts +2 -2
- package/dist/overlay/css/command.css +68 -0
- package/dist/overlay/css/drawer.css +63 -24
- package/dist/overlay/css/dropdown.css +1 -1
- package/dist/overlay/css/hovercard.css +1 -1
- package/dist/overlay/css/modal.css +79 -27
- package/dist/overlay/css/toast.css +40 -24
- package/dist/overlay/css/tooltip.css +110 -67
- package/dist/stores/theme.svelte.js +44 -12
- package/dist/stores/toast.svelte.d.ts +4 -4
- package/dist/stores/toast.svelte.js +2 -2
- package/package.json +1 -1
- package/dist/utils/charts.d.ts +0 -27
- package/dist/utils/charts.js +0 -140
|
@@ -5,85 +5,128 @@
|
|
|
5
5
|
|
|
6
6
|
.tooltip-popover {
|
|
7
7
|
@apply flex items-center gap-2 px-3 py-2;
|
|
8
|
-
@apply rounded-
|
|
8
|
+
@apply rounded-box text-sm;
|
|
9
9
|
@apply invisible opacity-0 transition-opacity duration-300 ease-in-out;
|
|
10
10
|
@apply shadow shadow-muted;
|
|
11
11
|
@apply whitespace-nowrap;
|
|
12
12
|
position: fixed;
|
|
13
13
|
z-index: 9999;
|
|
14
14
|
pointer-events: none;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.tooltip-popover.is-active {
|
|
18
|
-
@apply visible opacity-100;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.tooltip-popover.is-primary {
|
|
22
|
-
@apply bg-on-primary text-primary;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.tooltip-popover.is-solid.is-primary {
|
|
26
|
-
@apply bg-primary text-on-primary;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.tooltip-popover.is-secondary {
|
|
30
|
-
@apply bg-on-secondary text-secondary;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.tooltip-popover.is-solid.is-secondary {
|
|
34
|
-
@apply bg-secondary text-on-secondary;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.tooltip-popover.is-muted {
|
|
38
|
-
@apply bg-muted text-on-muted;
|
|
39
|
-
}
|
|
40
15
|
|
|
41
|
-
|
|
42
|
-
|
|
16
|
+
&.is-active {
|
|
17
|
+
@apply visible opacity-100;
|
|
18
|
+
}
|
|
43
19
|
}
|
|
44
20
|
|
|
45
21
|
.tooltip-arrow {
|
|
46
22
|
@apply absolute w-2 h-2 rotate-45;
|
|
47
|
-
position: absolute;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.tooltip-arrow.is-primary {
|
|
51
|
-
@apply bg-on-primary;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.tooltip-arrow.is-solid.is-primary {
|
|
55
|
-
@apply bg-primary;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.tooltip-arrow.is-secondary {
|
|
59
|
-
@apply bg-on-secondary;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.tooltip-arrow.is-solid.is-secondary {
|
|
63
|
-
@apply bg-secondary;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.tooltip-arrow.is-muted {
|
|
67
|
-
@apply bg-muted;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.tooltip-arrow.is-solid.is-muted {
|
|
71
|
-
@apply bg-on-muted;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.tooltip-popover.position-top .tooltip-arrow {
|
|
75
|
-
@apply -bottom-1 left-1/2 -translate-x-1/2;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.tooltip-popover.position-bottom .tooltip-arrow {
|
|
79
|
-
@apply -top-1 left-1/2 -translate-x-1/2;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.tooltip-popover.position-start .tooltip-arrow {
|
|
83
|
-
@apply -right-1 top-1/2 -translate-y-1/2;
|
|
84
23
|
}
|
|
85
24
|
|
|
86
|
-
.tooltip-popover
|
|
87
|
-
|
|
25
|
+
.tooltip-popover {
|
|
26
|
+
&.position-top .tooltip-arrow {
|
|
27
|
+
@apply -bottom-1 left-1/2 -translate-x-1/2;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.position-bottom .tooltip-arrow {
|
|
31
|
+
@apply -top-1 left-1/2 -translate-x-1/2;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&.position-start .tooltip-arrow {
|
|
35
|
+
@apply -right-1 top-1/2 -translate-y-1/2;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&.position-end .tooltip-arrow {
|
|
39
|
+
@apply -left-1 top-1/2 -translate-y-1/2;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.tooltip-popover.is-soft {
|
|
44
|
+
&.is-primary {
|
|
45
|
+
@apply bg-soft-primary text-primary;
|
|
46
|
+
& .tooltip-arrow {
|
|
47
|
+
@apply bg-soft-primary;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
&.is-secondary {
|
|
51
|
+
@apply bg-soft-secondary text-secondary;
|
|
52
|
+
& .tooltip-arrow {
|
|
53
|
+
@apply bg-soft-secondary;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
&.is-muted {
|
|
57
|
+
@apply bg-soft-muted text-on-muted;
|
|
58
|
+
& .tooltip-arrow {
|
|
59
|
+
@apply bg-soft-muted;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
&.is-success {
|
|
63
|
+
@apply bg-soft-success text-success;
|
|
64
|
+
& .tooltip-arrow {
|
|
65
|
+
@apply bg-soft-success;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
&.is-info {
|
|
69
|
+
@apply bg-soft-info text-info;
|
|
70
|
+
& .tooltip-arrow {
|
|
71
|
+
@apply bg-soft-info;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
&.is-warning {
|
|
75
|
+
@apply bg-soft-warning text-warning;
|
|
76
|
+
& .tooltip-arrow {
|
|
77
|
+
@apply bg-soft-warning;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
&.is-danger {
|
|
81
|
+
@apply bg-soft-danger text-danger;
|
|
82
|
+
& .tooltip-arrow {
|
|
83
|
+
@apply bg-soft-danger;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.tooltip-popover.is-solid {
|
|
89
|
+
&.is-primary {
|
|
90
|
+
@apply bg-primary text-on-primary;
|
|
91
|
+
& .tooltip-arrow {
|
|
92
|
+
@apply bg-primary;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
&.is-secondary {
|
|
96
|
+
@apply bg-secondary text-on-secondary;
|
|
97
|
+
& .tooltip-arrow {
|
|
98
|
+
@apply bg-secondary;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
&.is-muted {
|
|
102
|
+
@apply bg-on-muted text-muted;
|
|
103
|
+
& .tooltip-arrow {
|
|
104
|
+
@apply bg-on-muted;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
&.is-success {
|
|
108
|
+
@apply bg-success text-on-success;
|
|
109
|
+
& .tooltip-arrow {
|
|
110
|
+
@apply bg-success;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
&.is-info {
|
|
114
|
+
@apply bg-info text-on-info;
|
|
115
|
+
& .tooltip-arrow {
|
|
116
|
+
@apply bg-info;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
&.is-warning {
|
|
120
|
+
@apply bg-warning text-on-warning;
|
|
121
|
+
& .tooltip-arrow {
|
|
122
|
+
@apply bg-warning;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
&.is-danger {
|
|
126
|
+
@apply bg-danger text-on-danger;
|
|
127
|
+
& .tooltip-arrow {
|
|
128
|
+
@apply bg-danger;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
88
131
|
}
|
|
89
132
|
}
|
|
@@ -3,7 +3,7 @@ const DARK_CLASS = 'dark';
|
|
|
3
3
|
let themeState = $state('light');
|
|
4
4
|
let isDark = $state(false);
|
|
5
5
|
const getInitialTheme = () => {
|
|
6
|
-
if (typeof window === 'undefined') {
|
|
6
|
+
if (typeof window === 'undefined' || typeof localStorage === 'undefined') {
|
|
7
7
|
return 'light';
|
|
8
8
|
}
|
|
9
9
|
const storedTheme = localStorage.getItem(THEME_STORAGE_KEY);
|
|
@@ -16,21 +16,26 @@ const getInitialTheme = () => {
|
|
|
16
16
|
return 'light';
|
|
17
17
|
};
|
|
18
18
|
const initializeTheme = () => {
|
|
19
|
+
if (typeof document === 'undefined') {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
19
22
|
const initialTheme = getInitialTheme();
|
|
20
23
|
themeState = initialTheme;
|
|
21
24
|
isDark = initialTheme === 'dark';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
htmlElement.classList.remove(DARK_CLASS);
|
|
29
|
-
}
|
|
25
|
+
const htmlElement = document.documentElement;
|
|
26
|
+
if (isDark) {
|
|
27
|
+
htmlElement.classList.add(DARK_CLASS);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
htmlElement.classList.remove(DARK_CLASS);
|
|
30
31
|
}
|
|
31
32
|
};
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
if (typeof document !== 'undefined') {
|
|
34
|
+
initializeTheme();
|
|
35
|
+
}
|
|
36
|
+
const switchTheme = () => {
|
|
37
|
+
if (typeof document === 'undefined')
|
|
38
|
+
return;
|
|
34
39
|
themeState = themeState === 'light' ? 'dark' : 'light';
|
|
35
40
|
isDark = themeState === 'dark';
|
|
36
41
|
const htmlElement = document.documentElement;
|
|
@@ -40,10 +45,37 @@ const toggleTheme = () => {
|
|
|
40
45
|
else {
|
|
41
46
|
htmlElement.classList.remove(DARK_CLASS);
|
|
42
47
|
}
|
|
43
|
-
if (typeof
|
|
48
|
+
if (typeof localStorage !== 'undefined') {
|
|
44
49
|
localStorage.setItem(THEME_STORAGE_KEY, themeState);
|
|
45
50
|
}
|
|
46
51
|
};
|
|
52
|
+
const toggleTheme = () => {
|
|
53
|
+
if (typeof document === 'undefined')
|
|
54
|
+
return;
|
|
55
|
+
if (!document.startViewTransition) {
|
|
56
|
+
switchTheme();
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
document.documentElement.classList.add('theme-transitioning');
|
|
60
|
+
const transition = document.startViewTransition(() => {
|
|
61
|
+
themeState = themeState === 'light' ? 'dark' : 'light';
|
|
62
|
+
isDark = themeState === 'dark';
|
|
63
|
+
const htmlElement = document.documentElement;
|
|
64
|
+
if (isDark) {
|
|
65
|
+
htmlElement.classList.add(DARK_CLASS);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
htmlElement.classList.remove(DARK_CLASS);
|
|
69
|
+
}
|
|
70
|
+
if (typeof localStorage !== 'undefined') {
|
|
71
|
+
localStorage.setItem(THEME_STORAGE_KEY, themeState);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
transition.finished.finally(() => {
|
|
75
|
+
document.documentElement.classList.remove('theme-transitioning');
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
};
|
|
47
79
|
export const theme = {
|
|
48
80
|
get state() {
|
|
49
81
|
return themeState;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IconData } from "../index.js";
|
|
2
2
|
export interface ToastMessage {
|
|
3
3
|
id: string;
|
|
4
|
-
icon?:
|
|
4
|
+
icon?: IconData;
|
|
5
5
|
title?: string;
|
|
6
6
|
description: string;
|
|
7
7
|
duration?: number;
|
|
8
8
|
position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
variant?: 'solid' | 'soft';
|
|
10
|
+
color: 'primary' | 'secondary' | 'muted' | 'success' | 'info' | 'danger' | 'warning';
|
|
11
11
|
}
|
|
12
12
|
export declare const toast: {
|
|
13
13
|
readonly messages: ToastMessage[];
|
|
@@ -8,11 +8,11 @@ const toastShow = (message) => {
|
|
|
8
8
|
id,
|
|
9
9
|
title: message.title,
|
|
10
10
|
description: message.description,
|
|
11
|
-
|
|
11
|
+
color: message.color || 'info',
|
|
12
12
|
duration: message.duration || 0,
|
|
13
13
|
icon: message.icon,
|
|
14
14
|
position: message.position,
|
|
15
|
-
|
|
15
|
+
variant: message.variant || 'soft'
|
|
16
16
|
};
|
|
17
17
|
toastMessages = [...toastMessages, newMessage];
|
|
18
18
|
if (newMessage.duration && newMessage.duration > 0) {
|
package/package.json
CHANGED
package/dist/utils/charts.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { BandScale, ChartMargin, Scale } from '../types.js';
|
|
2
|
-
export declare function calculateDomain(data: any[], key: string): [number, number];
|
|
3
|
-
export declare function createLinearScale(domain: [number, number], range: [number, number]): Scale;
|
|
4
|
-
export declare function createBandScale(domain: string[], range: [number, number], padding?: number): BandScale;
|
|
5
|
-
export declare const DEFAULT_MARGIN: ChartMargin;
|
|
6
|
-
export declare function getChartDimensions(width: number, height: number, margin: ChartMargin): {
|
|
7
|
-
width: number;
|
|
8
|
-
height: number;
|
|
9
|
-
};
|
|
10
|
-
export declare function generateGridLines(domain: [number, number], scale: Scale, count?: number): Array<{
|
|
11
|
-
value: number;
|
|
12
|
-
position: number;
|
|
13
|
-
}>;
|
|
14
|
-
export declare function polarToCartesian(centerX: number, centerY: number, radius: number, angleInDegrees: number): {
|
|
15
|
-
x: number;
|
|
16
|
-
y: number;
|
|
17
|
-
};
|
|
18
|
-
export declare function createArcPath(centerX: number, centerY: number, radius: number, startAngle: number, endAngle: number, innerRadius?: number): string;
|
|
19
|
-
export declare function createSmoothPath(points: Array<{
|
|
20
|
-
x: number;
|
|
21
|
-
y: number;
|
|
22
|
-
}>): string;
|
|
23
|
-
export declare function createLinearPath(points: Array<{
|
|
24
|
-
x: number;
|
|
25
|
-
y: number;
|
|
26
|
-
}>): string;
|
|
27
|
-
export declare function generateColors(count: number): string[];
|
package/dist/utils/charts.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
export function calculateDomain(data, key) {
|
|
2
|
-
const values = data.map((d) => Number(d[key])).filter((v) => !isNaN(v));
|
|
3
|
-
if (values.length === 0)
|
|
4
|
-
return [0, 1];
|
|
5
|
-
const min = Math.min(...values);
|
|
6
|
-
const max = Math.max(...values);
|
|
7
|
-
const padding = (max - min) * 0.1;
|
|
8
|
-
return [Math.min(0, min - padding), max + padding];
|
|
9
|
-
}
|
|
10
|
-
export function createLinearScale(domain, range) {
|
|
11
|
-
const [domainMin, domainMax] = domain;
|
|
12
|
-
const [rangeMin, rangeMax] = range;
|
|
13
|
-
return (value) => {
|
|
14
|
-
if (domainMax === domainMin)
|
|
15
|
-
return rangeMin;
|
|
16
|
-
const ratio = (value - domainMin) / (domainMax - domainMin);
|
|
17
|
-
return rangeMin + ratio * (rangeMax - rangeMin);
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
export function createBandScale(domain, range, padding = 0.1) {
|
|
21
|
-
const [rangeMin, rangeMax] = range;
|
|
22
|
-
const rangeSize = rangeMax - rangeMin;
|
|
23
|
-
const step = rangeSize / domain.length;
|
|
24
|
-
const bandwidth = step * (1 - padding);
|
|
25
|
-
const paddingOuter = (step * padding) / 2;
|
|
26
|
-
const scale = (value) => {
|
|
27
|
-
const index = domain.indexOf(value);
|
|
28
|
-
return rangeMin + paddingOuter + index * step;
|
|
29
|
-
};
|
|
30
|
-
scale.bandwidth = () => bandwidth;
|
|
31
|
-
scale.step = () => step;
|
|
32
|
-
return scale;
|
|
33
|
-
}
|
|
34
|
-
export const DEFAULT_MARGIN = {
|
|
35
|
-
top: 20,
|
|
36
|
-
right: 30,
|
|
37
|
-
bottom: 40,
|
|
38
|
-
left: 40
|
|
39
|
-
};
|
|
40
|
-
export function getChartDimensions(width, height, margin) {
|
|
41
|
-
return {
|
|
42
|
-
width: width - margin.left - margin.right,
|
|
43
|
-
height: height - margin.top - margin.bottom
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
export function generateGridLines(domain, scale, count = 5) {
|
|
47
|
-
const [min, max] = domain;
|
|
48
|
-
return Array.from({ length: count + 1 }, (_, i) => {
|
|
49
|
-
const value = min + ((max - min) * i) / count;
|
|
50
|
-
return {
|
|
51
|
-
value,
|
|
52
|
-
position: scale(value)
|
|
53
|
-
};
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
export function polarToCartesian(centerX, centerY, radius, angleInDegrees) {
|
|
57
|
-
const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;
|
|
58
|
-
return {
|
|
59
|
-
x: centerX + radius * Math.cos(angleInRadians),
|
|
60
|
-
y: centerY + radius * Math.sin(angleInRadians)
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
export function createArcPath(centerX, centerY, radius, startAngle, endAngle, innerRadius = 0) {
|
|
64
|
-
const start = polarToCartesian(centerX, centerY, radius, endAngle);
|
|
65
|
-
const end = polarToCartesian(centerX, centerY, radius, startAngle);
|
|
66
|
-
const largeArcFlag = endAngle - startAngle <= 180 ? '0' : '1';
|
|
67
|
-
if (innerRadius > 0) {
|
|
68
|
-
// Donut/doughnut chart
|
|
69
|
-
const innerStart = polarToCartesian(centerX, centerY, innerRadius, endAngle);
|
|
70
|
-
const innerEnd = polarToCartesian(centerX, centerY, innerRadius, startAngle);
|
|
71
|
-
return [
|
|
72
|
-
'M',
|
|
73
|
-
start.x,
|
|
74
|
-
start.y,
|
|
75
|
-
'A',
|
|
76
|
-
radius,
|
|
77
|
-
radius,
|
|
78
|
-
0,
|
|
79
|
-
largeArcFlag,
|
|
80
|
-
0,
|
|
81
|
-
end.x,
|
|
82
|
-
end.y,
|
|
83
|
-
'L',
|
|
84
|
-
innerEnd.x,
|
|
85
|
-
innerEnd.y,
|
|
86
|
-
'A',
|
|
87
|
-
innerRadius,
|
|
88
|
-
innerRadius,
|
|
89
|
-
0,
|
|
90
|
-
largeArcFlag,
|
|
91
|
-
1,
|
|
92
|
-
innerStart.x,
|
|
93
|
-
innerStart.y,
|
|
94
|
-
'Z'
|
|
95
|
-
].join(' ');
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
return [
|
|
99
|
-
'M',
|
|
100
|
-
centerX,
|
|
101
|
-
centerY,
|
|
102
|
-
'L',
|
|
103
|
-
start.x,
|
|
104
|
-
start.y,
|
|
105
|
-
'A',
|
|
106
|
-
radius,
|
|
107
|
-
radius,
|
|
108
|
-
0,
|
|
109
|
-
largeArcFlag,
|
|
110
|
-
0,
|
|
111
|
-
end.x,
|
|
112
|
-
end.y,
|
|
113
|
-
'Z'
|
|
114
|
-
].join(' ');
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
export function createSmoothPath(points) {
|
|
118
|
-
if (points.length === 0)
|
|
119
|
-
return '';
|
|
120
|
-
if (points.length === 1)
|
|
121
|
-
return `M ${points[0].x} ${points[0].y}`;
|
|
122
|
-
let path = `M ${points[0].x} ${points[0].y}`;
|
|
123
|
-
for (let i = 1; i < points.length; i++) {
|
|
124
|
-
const prev = points[i - 1];
|
|
125
|
-
const curr = points[i];
|
|
126
|
-
const controlPointX = (prev.x + curr.x) / 2;
|
|
127
|
-
path += ` Q ${controlPointX} ${prev.y} ${curr.x} ${curr.y}`;
|
|
128
|
-
}
|
|
129
|
-
return path;
|
|
130
|
-
}
|
|
131
|
-
export function createLinearPath(points) {
|
|
132
|
-
if (points.length === 0)
|
|
133
|
-
return '';
|
|
134
|
-
return points
|
|
135
|
-
.map((point, i) => (i === 0 ? `M ${point.x} ${point.y}` : `L ${point.x} ${point.y}`))
|
|
136
|
-
.join(' ');
|
|
137
|
-
}
|
|
138
|
-
export function generateColors(count) {
|
|
139
|
-
return Array.from({ length: count }, (_, i) => `hsl(${(i * 360) / count}, 70%, 50%)`);
|
|
140
|
-
}
|