ui-svelte 0.2.12 → 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.
Files changed (98) hide show
  1. package/README.md +2 -2
  2. package/dist/charts/ArcChart.svelte +0 -1
  3. package/dist/control/Fab.svelte +103 -0
  4. package/dist/control/Fab.svelte.d.ts +25 -0
  5. package/dist/control/Record.svelte +0 -3
  6. package/dist/control/ToggleTheme.svelte +1 -1
  7. package/dist/control/Video.svelte +2 -0
  8. package/dist/control/css/btn.css +17 -17
  9. package/dist/control/css/fab.css +84 -0
  10. package/dist/control/css/media.css +7 -7
  11. package/dist/control/css/toggle-group.css +1 -17
  12. package/dist/css/decorations.css +348 -189
  13. package/dist/css/utilities.css +0 -4
  14. package/dist/display/Accordion.svelte +3 -3
  15. package/dist/display/Accordion.svelte.d.ts +1 -1
  16. package/dist/display/Card.svelte +3 -3
  17. package/dist/display/Card.svelte.d.ts +1 -1
  18. package/dist/display/Code.svelte +1 -1
  19. package/dist/display/Collapsible.svelte +3 -3
  20. package/dist/display/Collapsible.svelte.d.ts +1 -1
  21. package/dist/display/Countdown.svelte +169 -0
  22. package/dist/display/Countdown.svelte.d.ts +21 -0
  23. package/dist/display/Item.svelte +12 -0
  24. package/dist/display/Item.svelte.d.ts +2 -0
  25. package/dist/display/Marquee.svelte +0 -2
  26. package/dist/display/Section.svelte +3 -3
  27. package/dist/display/Section.svelte.d.ts +1 -1
  28. package/dist/display/css/accordion.css +14 -14
  29. package/dist/display/css/alert.css +42 -15
  30. package/dist/display/css/avatar.css +36 -36
  31. package/dist/display/css/card.css +108 -36
  32. package/dist/display/css/chip.css +16 -16
  33. package/dist/display/css/collapsible.css +32 -32
  34. package/dist/display/css/countdown.css +206 -0
  35. package/dist/display/css/item.css +24 -0
  36. package/dist/display/css/marquee.css +0 -3
  37. package/dist/display/css/section.css +88 -109
  38. package/dist/display/css/table.css +1 -16
  39. package/dist/form/ColorField.svelte +60 -2
  40. package/dist/form/DragDrop.svelte +317 -87
  41. package/dist/form/DragDrop.svelte.d.ts +1 -0
  42. package/dist/form/Dropzone.svelte +3 -3
  43. package/dist/form/Dropzone.svelte.d.ts +1 -1
  44. package/dist/form/ImageCropper.svelte +135 -4
  45. package/dist/form/RadioGroup.svelte +6 -2
  46. package/dist/form/RadioGroup.svelte.d.ts +1 -1
  47. package/dist/form/Slider.svelte +6 -2
  48. package/dist/form/Slider.svelte.d.ts +1 -1
  49. package/dist/form/TextField.svelte +13 -4
  50. package/dist/form/TextField.svelte.d.ts +3 -2
  51. package/dist/form/Toggle.svelte +6 -2
  52. package/dist/form/Toggle.svelte.d.ts +1 -1
  53. package/dist/form/css/control.css +14 -14
  54. package/dist/form/css/csv-field.css +8 -13
  55. package/dist/form/css/drag-drop.css +90 -127
  56. package/dist/form/css/dropzone.css +8 -8
  57. package/dist/form/css/editor.css +14 -14
  58. package/dist/form/css/image-cropper.css +28 -7
  59. package/dist/form/css/radio-group.css +25 -0
  60. package/dist/form/css/slider.css +36 -0
  61. package/dist/form/css/textarea.css +14 -14
  62. package/dist/form/css/toggle.css +12 -0
  63. package/dist/hooks/use-chat.svelte.js +1 -1
  64. package/dist/hooks/use-form.svelte.js +3 -3
  65. package/dist/hooks/use-search.svelte.js +0 -3
  66. package/dist/icons/index.d.ts +4 -0
  67. package/dist/icons/index.js +4 -0
  68. package/dist/index.css +28 -48
  69. package/dist/index.d.ts +4 -2
  70. package/dist/index.js +3 -1
  71. package/dist/layout/Provider.svelte +5 -5
  72. package/dist/layout/Sidebar.svelte +17 -8
  73. package/dist/layout/Sidebar.svelte.d.ts +2 -1
  74. package/dist/layout/css/app-bar.css +7 -7
  75. package/dist/layout/css/footer.css +7 -7
  76. package/dist/layout/css/sidebar.css +120 -59
  77. package/dist/navigation/BottomNav.svelte +23 -14
  78. package/dist/navigation/css/bottom-nav.css +74 -34
  79. package/dist/navigation/css/nav-menu.css +14 -15
  80. package/dist/navigation/css/side-nav.css +14 -15
  81. package/dist/overlay/AlertDialog.svelte +58 -0
  82. package/dist/overlay/AlertDialog.svelte.d.ts +14 -25
  83. package/dist/overlay/Command.svelte +177 -170
  84. package/dist/overlay/Command.svelte.d.ts +12 -3
  85. package/dist/overlay/Drawer.svelte +4 -4
  86. package/dist/overlay/Drawer.svelte.d.ts +1 -1
  87. package/dist/overlay/Modal.svelte +4 -4
  88. package/dist/overlay/Modal.svelte.d.ts +1 -1
  89. package/dist/overlay/Tooltip.svelte +0 -5
  90. package/dist/overlay/css/command.css +30 -42
  91. package/dist/overlay/css/drawer.css +10 -10
  92. package/dist/overlay/css/modal.css +70 -18
  93. package/dist/overlay/css/toast.css +42 -14
  94. package/dist/overlay/css/tooltip.css +49 -23
  95. package/dist/stores/theme.svelte.js +19 -12
  96. package/package.json +1 -1
  97. package/dist/utils/charts.d.ts +0 -27
  98. package/dist/utils/charts.js +0 -140
@@ -1,73 +1,60 @@
1
1
  @layer components {
2
- .command-dialog {
3
- @apply fixed inset-0 z-50;
4
- @apply flex flex-col justify-start items-center pt-[15vh];
5
-
6
- .command-overlay {
7
- @apply absolute inset-0 bg-overlay;
8
- }
9
-
10
- .command {
11
- @apply relative flex flex-col rounded-box max-w-xl w-full max-h-[60vh];
12
- @apply shadow-lg overflow-hidden;
13
- @apply bg-background text-on-background;
14
- }
15
- }
16
-
17
- .command-search {
18
- @apply relative flex items-center w-full gap-3 px-4 py-3;
19
- @apply border-b border-muted;
20
- }
21
-
22
- .command-search-icon {
23
- @apply h-5 w-auto text-on-muted shrink-0;
24
- }
25
-
26
- .command-search-input {
27
- @apply flex-1 border-none outline-none bg-transparent text-on-background;
28
- @apply placeholder:text-on-muted/70 text-base;
29
- }
30
-
31
2
  .command-kbd {
32
- @apply hidden md:flex items-center gap-1 text-xs text-on-muted;
3
+ @apply hidden md:flex items-center gap-1.5 text-xs text-on-muted/70 shrink-0;
33
4
  }
34
5
 
35
6
  .command-kbd kbd {
36
- @apply px-1.5 py-0.5 bg-muted rounded text-[10px] font-mono uppercase;
7
+ @apply px-1.5 py-0.5 bg-muted/50 rounded text-[10px] font-mono uppercase;
8
+ @apply border border-muted/30;
37
9
  }
38
10
 
39
11
  .command-results {
40
- @apply flex-1 overflow-y-auto p-2;
12
+ @apply w-full flex flex-col min-w-md;
41
13
  @apply max-h-80;
42
14
  }
43
-
44
15
  .command-group {
45
- @apply mb-2;
16
+ @apply flex flex-col;
17
+
18
+ &:not(:first-child) {
19
+ @apply mt-3 pt-3 border-t border-muted/15;
20
+ }
46
21
  }
47
22
 
48
23
  .command-group-label {
49
- @apply px-2 py-1.5 text-xs font-medium text-on-muted uppercase tracking-wide;
24
+ @apply flex items-center gap-2;
25
+ @apply px-2.5 py-1.5 mb-1;
26
+ @apply text-sm font-medium uppercase tracking-wide;
27
+ }
28
+
29
+ .command-group-icon {
30
+ @apply size-3.5 opacity-70;
31
+ }
32
+
33
+ .command-group-items {
34
+ @apply flex flex-col gap-0.5;
50
35
  }
51
36
 
52
37
  .command-empty {
53
- @apply flex items-center justify-center py-8 text-sm text-on-muted;
38
+ @apply flex items-center justify-center;
39
+ @apply py-10 text-sm text-on-muted/50;
54
40
  }
55
41
 
56
42
  .command-loading {
57
- @apply flex items-center justify-center gap-2 py-8 text-sm text-on-muted;
43
+ @apply flex items-center justify-center gap-2;
44
+ @apply py-10 text-sm text-on-muted/50;
58
45
  }
59
46
 
60
47
  .command-loading-spinner {
61
48
  @apply size-4 animate-spin;
62
49
  }
63
50
 
64
- .command-footer {
65
- @apply flex items-center justify-between px-4 py-2;
66
- @apply border-t border-muted/30 text-xs text-on-muted;
51
+ .command-shortcuts {
52
+ @apply flex items-center justify-between w-full px-3 py-2;
53
+ @apply border-t border-muted/20 text-xs text-on-muted/60;
67
54
  }
68
55
 
69
56
  .command-shortcut {
70
- @apply flex items-center gap-2;
57
+ @apply flex items-center gap-3;
71
58
  }
72
59
 
73
60
  .command-shortcut-item {
@@ -75,6 +62,7 @@
75
62
  }
76
63
 
77
64
  .command-shortcut-item kbd {
78
- @apply px-1.5 py-0.5 bg-muted/20 rounded text-[10px] font-mono;
65
+ @apply px-1 py-0.5 bg-muted/30 rounded text-[10px] font-mono;
66
+ @apply border border-muted/20;
79
67
  }
80
68
  }
@@ -7,7 +7,7 @@
7
7
  @apply absolute inset-0 bg-overlay;
8
8
  }
9
9
  .drawer {
10
- @apply absolute flex flex-col;
10
+ @apply absolute flex flex-col max-w-screen;
11
11
  @apply transition-all duration-300 ease-in-out;
12
12
 
13
13
  &.is-start {
@@ -36,27 +36,27 @@
36
36
 
37
37
  &.is-soft {
38
38
  &.is-primary {
39
- @apply bg-on-primary text-primary;
39
+ @apply bg-soft-primary text-primary;
40
40
  }
41
41
  &.is-secondary {
42
- @apply bg-on-secondary text-secondary;
42
+ @apply bg-soft-secondary text-secondary;
43
43
  }
44
44
  &.is-muted {
45
- @apply bg-muted text-on-muted;
45
+ @apply bg-soft-muted text-on-muted;
46
46
  }
47
47
  &.is-success {
48
- @apply bg-on-success text-success;
48
+ @apply bg-soft-success text-success;
49
49
  }
50
50
  &.is-info {
51
- @apply bg-on-info text-info;
51
+ @apply bg-soft-info text-info;
52
52
  }
53
53
  &.is-warning {
54
- @apply bg-on-warning text-warning;
54
+ @apply bg-soft-warning text-warning;
55
55
  }
56
56
  &.is-danger {
57
- @apply bg-on-danger text-danger;
57
+ @apply bg-soft-danger text-danger;
58
58
  }
59
- &.is-default {
59
+ &.is-background {
60
60
  @apply bg-background text-on-background;
61
61
  }
62
62
  &.is-surface {
@@ -86,7 +86,7 @@
86
86
  &.is-danger {
87
87
  @apply bg-danger text-on-danger;
88
88
  }
89
- &.is-default {
89
+ &.is-background {
90
90
  @apply bg-background text-on-background;
91
91
  }
92
92
  &.is-surface {
@@ -9,27 +9,63 @@
9
9
  @apply relative flex flex-col rounded-box max-w-[95vw] max-h-[95vh];
10
10
 
11
11
  &.is-soft {
12
- &.is-primary { @apply bg-on-primary text-primary; }
13
- &.is-secondary { @apply bg-on-secondary text-secondary; }
14
- &.is-muted { @apply bg-muted text-on-muted; }
15
- &.is-success { @apply bg-on-success text-success; }
16
- &.is-info { @apply bg-on-info text-info; }
17
- &.is-warning { @apply bg-on-warning text-warning; }
18
- &.is-danger { @apply bg-on-danger text-danger; }
19
- &.is-default { @apply bg-background text-on-background; }
20
- &.is-surface { @apply bg-surface text-on-surface; }
12
+ &.is-primary {
13
+ @apply bg-soft-primary text-primary;
14
+ }
15
+ &.is-secondary {
16
+ @apply bg-soft-secondary text-secondary;
17
+ }
18
+ &.is-muted {
19
+ @apply bg-soft-muted text-on-muted;
20
+ }
21
+ &.is-success {
22
+ @apply bg-soft-success text-success;
23
+ }
24
+ &.is-info {
25
+ @apply bg-soft-info text-info;
26
+ }
27
+ &.is-warning {
28
+ @apply bg-soft-warning text-warning;
29
+ }
30
+ &.is-danger {
31
+ @apply bg-soft-danger text-danger;
32
+ }
33
+ &.is-background {
34
+ @apply bg-background text-on-background;
35
+ }
36
+ &.is-surface {
37
+ @apply bg-surface text-on-surface;
38
+ }
21
39
  }
22
40
 
23
41
  &.is-solid {
24
- &.is-primary { @apply bg-primary text-on-primary; }
25
- &.is-secondary { @apply bg-secondary text-on-secondary; }
26
- &.is-muted { @apply bg-on-muted text-muted; }
27
- &.is-success { @apply bg-success text-on-success; }
28
- &.is-info { @apply bg-info text-on-info; }
29
- &.is-warning { @apply bg-warning text-on-warning; }
30
- &.is-danger { @apply bg-danger text-on-danger; }
31
- &.is-default { @apply bg-background text-on-background; }
32
- &.is-surface { @apply bg-surface text-on-surface; }
42
+ &.is-primary {
43
+ @apply bg-primary text-on-primary;
44
+ }
45
+ &.is-secondary {
46
+ @apply bg-secondary text-on-secondary;
47
+ }
48
+ &.is-muted {
49
+ @apply bg-on-muted text-muted;
50
+ }
51
+ &.is-success {
52
+ @apply bg-success text-on-success;
53
+ }
54
+ &.is-info {
55
+ @apply bg-info text-on-info;
56
+ }
57
+ &.is-warning {
58
+ @apply bg-warning text-on-warning;
59
+ }
60
+ &.is-danger {
61
+ @apply bg-danger text-on-danger;
62
+ }
63
+ &.is-background {
64
+ @apply bg-background text-on-background;
65
+ }
66
+ &.is-surface {
67
+ @apply bg-surface text-on-surface;
68
+ }
33
69
  }
34
70
 
35
71
  .modal-body {
@@ -48,4 +84,20 @@
48
84
  @apply absolute top-1 right-1 float-right z-50 size-6 p-1 hover:bg-muted rounded-full flex items-center justify-center text-on-muted hover:text-danger cursor-pointer;
49
85
  }
50
86
  }
87
+ .alert-dialog-title {
88
+ font-size: 1.125rem;
89
+ font-weight: 600;
90
+ margin: 0;
91
+ }
92
+
93
+ .alert-dialog-description {
94
+ color: var(--on-muted);
95
+ margin: 0;
96
+ }
97
+
98
+ .alert-dialog-actions {
99
+ display: flex;
100
+ gap: 0.75rem;
101
+ justify-content: flex-end;
102
+ }
51
103
  }
@@ -32,23 +32,51 @@
32
32
  z-index: calc(50 + var(--toast-index));
33
33
 
34
34
  &.is-soft {
35
- &.is-primary { @apply bg-on-primary text-primary; }
36
- &.is-secondary { @apply bg-on-secondary text-secondary; }
37
- &.is-muted { @apply bg-muted text-on-muted; }
38
- &.is-success { @apply bg-on-success text-success; }
39
- &.is-info { @apply bg-on-info text-info; }
40
- &.is-warning { @apply bg-on-warning text-warning; }
41
- &.is-danger { @apply bg-on-danger text-danger; }
35
+ &.is-primary {
36
+ @apply bg-soft-primary text-primary;
37
+ }
38
+ &.is-secondary {
39
+ @apply bg-soft-secondary text-secondary;
40
+ }
41
+ &.is-muted {
42
+ @apply bg-soft-muted text-on-muted;
43
+ }
44
+ &.is-success {
45
+ @apply bg-soft-success text-success;
46
+ }
47
+ &.is-info {
48
+ @apply bg-soft-info text-info;
49
+ }
50
+ &.is-warning {
51
+ @apply bg-soft-warning text-warning;
52
+ }
53
+ &.is-danger {
54
+ @apply bg-soft-danger text-danger;
55
+ }
42
56
  }
43
57
 
44
58
  &.is-solid {
45
- &.is-primary { @apply bg-primary text-on-primary; }
46
- &.is-secondary { @apply bg-secondary text-on-secondary; }
47
- &.is-muted { @apply bg-on-muted text-muted; }
48
- &.is-success { @apply bg-success text-on-success; }
49
- &.is-info { @apply bg-info text-on-info; }
50
- &.is-warning { @apply bg-warning text-on-warning; }
51
- &.is-danger { @apply bg-danger text-on-danger; }
59
+ &.is-primary {
60
+ @apply bg-primary text-on-primary;
61
+ }
62
+ &.is-secondary {
63
+ @apply bg-secondary text-on-secondary;
64
+ }
65
+ &.is-muted {
66
+ @apply bg-on-muted text-muted;
67
+ }
68
+ &.is-success {
69
+ @apply bg-success text-on-success;
70
+ }
71
+ &.is-info {
72
+ @apply bg-info text-on-info;
73
+ }
74
+ &.is-warning {
75
+ @apply bg-warning text-on-warning;
76
+ }
77
+ &.is-danger {
78
+ @apply bg-danger text-on-danger;
79
+ }
52
80
  }
53
81
 
54
82
  .toast-icon {
@@ -1,5 +1,4 @@
1
1
  @layer components {
2
-
3
2
  .tooltip {
4
3
  @apply relative w-fit;
5
4
  }
@@ -19,7 +18,6 @@
19
18
  }
20
19
  }
21
20
 
22
-
23
21
  .tooltip-arrow {
24
22
  @apply absolute w-2 h-2 rotate-45;
25
23
  }
@@ -44,63 +42,91 @@
44
42
 
45
43
  .tooltip-popover.is-soft {
46
44
  &.is-primary {
47
- @apply bg-on-primary text-primary;
48
- & .tooltip-arrow { @apply bg-on-primary; }
45
+ @apply bg-soft-primary text-primary;
46
+ & .tooltip-arrow {
47
+ @apply bg-soft-primary;
48
+ }
49
49
  }
50
50
  &.is-secondary {
51
- @apply bg-on-secondary text-secondary;
52
- & .tooltip-arrow { @apply bg-on-secondary; }
51
+ @apply bg-soft-secondary text-secondary;
52
+ & .tooltip-arrow {
53
+ @apply bg-soft-secondary;
54
+ }
53
55
  }
54
56
  &.is-muted {
55
- @apply bg-muted text-on-muted;
56
- & .tooltip-arrow { @apply bg-muted; }
57
+ @apply bg-soft-muted text-on-muted;
58
+ & .tooltip-arrow {
59
+ @apply bg-soft-muted;
60
+ }
57
61
  }
58
62
  &.is-success {
59
- @apply bg-on-success text-success;
60
- & .tooltip-arrow { @apply bg-on-success; }
63
+ @apply bg-soft-success text-success;
64
+ & .tooltip-arrow {
65
+ @apply bg-soft-success;
66
+ }
61
67
  }
62
68
  &.is-info {
63
- @apply bg-on-info text-info;
64
- & .tooltip-arrow { @apply bg-on-info; }
69
+ @apply bg-soft-info text-info;
70
+ & .tooltip-arrow {
71
+ @apply bg-soft-info;
72
+ }
65
73
  }
66
74
  &.is-warning {
67
- @apply bg-on-warning text-warning;
68
- & .tooltip-arrow { @apply bg-on-warning; }
75
+ @apply bg-soft-warning text-warning;
76
+ & .tooltip-arrow {
77
+ @apply bg-soft-warning;
78
+ }
69
79
  }
70
80
  &.is-danger {
71
- @apply bg-on-danger text-danger;
72
- & .tooltip-arrow { @apply bg-on-danger; }
81
+ @apply bg-soft-danger text-danger;
82
+ & .tooltip-arrow {
83
+ @apply bg-soft-danger;
84
+ }
73
85
  }
74
86
  }
75
87
 
76
88
  .tooltip-popover.is-solid {
77
89
  &.is-primary {
78
90
  @apply bg-primary text-on-primary;
79
- & .tooltip-arrow { @apply bg-primary; }
91
+ & .tooltip-arrow {
92
+ @apply bg-primary;
93
+ }
80
94
  }
81
95
  &.is-secondary {
82
96
  @apply bg-secondary text-on-secondary;
83
- & .tooltip-arrow { @apply bg-secondary; }
97
+ & .tooltip-arrow {
98
+ @apply bg-secondary;
99
+ }
84
100
  }
85
101
  &.is-muted {
86
102
  @apply bg-on-muted text-muted;
87
- & .tooltip-arrow { @apply bg-on-muted; }
103
+ & .tooltip-arrow {
104
+ @apply bg-on-muted;
105
+ }
88
106
  }
89
107
  &.is-success {
90
108
  @apply bg-success text-on-success;
91
- & .tooltip-arrow { @apply bg-success; }
109
+ & .tooltip-arrow {
110
+ @apply bg-success;
111
+ }
92
112
  }
93
113
  &.is-info {
94
114
  @apply bg-info text-on-info;
95
- & .tooltip-arrow { @apply bg-info; }
115
+ & .tooltip-arrow {
116
+ @apply bg-info;
117
+ }
96
118
  }
97
119
  &.is-warning {
98
120
  @apply bg-warning text-on-warning;
99
- & .tooltip-arrow { @apply bg-warning; }
121
+ & .tooltip-arrow {
122
+ @apply bg-warning;
123
+ }
100
124
  }
101
125
  &.is-danger {
102
126
  @apply bg-danger text-on-danger;
103
- & .tooltip-arrow { @apply bg-danger; }
127
+ & .tooltip-arrow {
128
+ @apply bg-danger;
129
+ }
104
130
  }
105
131
  }
106
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
- if (typeof window !== 'undefined') {
23
- const htmlElement = document.documentElement;
24
- if (isDark) {
25
- htmlElement.classList.add(DARK_CLASS);
26
- }
27
- else {
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
- initializeTheme();
33
+ if (typeof document !== 'undefined') {
34
+ initializeTheme();
35
+ }
33
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,11 +45,13 @@ const switchTheme = () => {
40
45
  else {
41
46
  htmlElement.classList.remove(DARK_CLASS);
42
47
  }
43
- if (typeof window !== 'undefined') {
48
+ if (typeof localStorage !== 'undefined') {
44
49
  localStorage.setItem(THEME_STORAGE_KEY, themeState);
45
50
  }
46
51
  };
47
52
  const toggleTheme = () => {
53
+ if (typeof document === 'undefined')
54
+ return;
48
55
  if (!document.startViewTransition) {
49
56
  switchTheme();
50
57
  }
@@ -60,7 +67,7 @@ const toggleTheme = () => {
60
67
  else {
61
68
  htmlElement.classList.remove(DARK_CLASS);
62
69
  }
63
- if (typeof window !== 'undefined') {
70
+ if (typeof localStorage !== 'undefined') {
64
71
  localStorage.setItem(THEME_STORAGE_KEY, themeState);
65
72
  }
66
73
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ui-svelte",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "author": {
5
5
  "name": "SappsDev",
6
6
  "email": "info@sappsdev.com"
@@ -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[];