svelte-comp 1.3.3 → 1.3.6

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 (138) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +101 -100
  3. package/dist/App.svelte +507 -507
  4. package/dist/Container.svelte +59 -59
  5. package/dist/app.css +234 -235
  6. package/dist/app.d.ts +10 -0
  7. package/dist/lib/Accordion.svelte +155 -155
  8. package/dist/lib/Badge.svelte +44 -44
  9. package/dist/lib/Button.svelte +185 -170
  10. package/dist/lib/Calendar.svelte +384 -384
  11. package/dist/lib/Card.svelte +103 -103
  12. package/dist/lib/Carousel.svelte +293 -293
  13. package/dist/lib/Carousel.svelte.d.ts +1 -1
  14. package/dist/lib/CheckBox.svelte +210 -210
  15. package/dist/lib/CodeView.svelte +308 -307
  16. package/dist/lib/ColorPicker.svelte +159 -159
  17. package/dist/lib/ContextMenu.svelte +328 -322
  18. package/dist/lib/DatePicker.svelte +246 -246
  19. package/dist/lib/Dialog.svelte +233 -233
  20. package/dist/lib/Field.svelte +299 -299
  21. package/dist/lib/FilePicker.svelte +295 -240
  22. package/dist/lib/FilePicker.svelte.d.ts +6 -1
  23. package/dist/lib/Form.svelte +438 -438
  24. package/dist/lib/Hamburger.svelte +217 -217
  25. package/dist/lib/InstallPWA.svelte +94 -94
  26. package/dist/lib/Menu.svelte +623 -623
  27. package/dist/lib/NoticeBase.svelte +140 -140
  28. package/dist/lib/PaginatedCard.svelte +73 -73
  29. package/dist/lib/Pagination.svelte +119 -119
  30. package/dist/lib/PrimaryColorSelect.svelte +111 -111
  31. package/dist/lib/ProgressBar.svelte +141 -141
  32. package/dist/lib/ProgressCircle.svelte +190 -190
  33. package/dist/lib/Radio.svelte +189 -189
  34. package/dist/lib/SearchInput.svelte +104 -104
  35. package/dist/lib/Select.svelte +524 -524
  36. package/dist/lib/Slider.svelte +253 -253
  37. package/dist/lib/Splitter.svelte +159 -150
  38. package/dist/lib/Switch.svelte +168 -167
  39. package/dist/lib/Table.svelte +299 -299
  40. package/dist/lib/Tabs.svelte +213 -213
  41. package/dist/lib/ThemeToggle.svelte +128 -127
  42. package/dist/lib/TimePicker.svelte +312 -312
  43. package/dist/lib/TimePickerNew.svelte +634 -0
  44. package/dist/lib/TimePickerNew.svelte.d.ts +49 -0
  45. package/dist/lib/Toast.svelte +123 -123
  46. package/dist/lib/Tooltip.svelte +110 -110
  47. package/dist/lib/Topbar.svelte +107 -107
  48. package/dist/lib/__tests__/Accordion.test.d.ts +1 -0
  49. package/dist/lib/__tests__/Accordion.test.js +171 -0
  50. package/dist/lib/__tests__/Badge.test.d.ts +1 -0
  51. package/dist/lib/__tests__/Badge.test.js +41 -0
  52. package/dist/lib/__tests__/Button.test.d.ts +1 -0
  53. package/dist/lib/__tests__/Button.test.js +269 -0
  54. package/dist/lib/__tests__/Calendar.test.d.ts +1 -0
  55. package/dist/lib/__tests__/Calendar.test.js +171 -0
  56. package/dist/lib/__tests__/Card.test.d.ts +1 -0
  57. package/dist/lib/__tests__/Card.test.js +148 -0
  58. package/dist/lib/__tests__/Carousel.test.d.ts +1 -0
  59. package/dist/lib/__tests__/Carousel.test.js +439 -0
  60. package/dist/lib/__tests__/CheckBox.test.d.ts +1 -0
  61. package/dist/lib/__tests__/CheckBox.test.js +152 -0
  62. package/dist/lib/__tests__/CodeView.test.d.ts +1 -0
  63. package/dist/lib/__tests__/CodeView.test.js +157 -0
  64. package/dist/lib/__tests__/ColorPicker.test.d.ts +1 -0
  65. package/dist/lib/__tests__/ColorPicker.test.js +93 -0
  66. package/dist/lib/__tests__/ContextMenu.test.d.ts +1 -0
  67. package/dist/lib/__tests__/ContextMenu.test.js +67 -0
  68. package/dist/lib/__tests__/DatePicker.test.d.ts +1 -0
  69. package/dist/lib/__tests__/DatePicker.test.js +108 -0
  70. package/dist/lib/__tests__/Dialog.test.d.ts +1 -0
  71. package/dist/lib/__tests__/Dialog.test.js +183 -0
  72. package/dist/lib/__tests__/Field.test.d.ts +1 -0
  73. package/dist/lib/__tests__/Field.test.js +190 -0
  74. package/dist/lib/__tests__/FilePicker.test.d.ts +1 -0
  75. package/dist/lib/__tests__/FilePicker.test.js +179 -0
  76. package/dist/lib/__tests__/Form.integration.test.d.ts +1 -0
  77. package/dist/lib/__tests__/Form.integration.test.js +158 -0
  78. package/dist/lib/__tests__/Form.test.d.ts +1 -0
  79. package/dist/lib/__tests__/Form.test.js +463 -0
  80. package/dist/lib/__tests__/Hamburger.test.d.ts +1 -0
  81. package/dist/lib/__tests__/Hamburger.test.js +161 -0
  82. package/dist/lib/__tests__/InstallPWA.test.d.ts +1 -0
  83. package/dist/lib/__tests__/InstallPWA.test.js +15 -0
  84. package/dist/lib/__tests__/Menu.test.d.ts +1 -0
  85. package/dist/lib/__tests__/Menu.test.js +285 -0
  86. package/dist/lib/__tests__/NoticeBase.test.d.ts +1 -0
  87. package/dist/lib/__tests__/NoticeBase.test.js +60 -0
  88. package/dist/lib/__tests__/PaginatedCard.test.d.ts +1 -0
  89. package/dist/lib/__tests__/PaginatedCard.test.js +89 -0
  90. package/dist/lib/__tests__/Pagination.test.d.ts +1 -0
  91. package/dist/lib/__tests__/Pagination.test.js +168 -0
  92. package/dist/lib/__tests__/PrimaryColorSelect.test.d.ts +1 -0
  93. package/dist/lib/__tests__/PrimaryColorSelect.test.js +92 -0
  94. package/dist/lib/__tests__/ProgressBar.test.d.ts +1 -0
  95. package/dist/lib/__tests__/ProgressBar.test.js +69 -0
  96. package/dist/lib/__tests__/ProgressCircle.test.d.ts +1 -0
  97. package/dist/lib/__tests__/ProgressCircle.test.js +71 -0
  98. package/dist/lib/__tests__/Radio.test.d.ts +1 -0
  99. package/dist/lib/__tests__/Radio.test.js +127 -0
  100. package/dist/lib/__tests__/SearchInput.test.d.ts +1 -0
  101. package/dist/lib/__tests__/SearchInput.test.js +80 -0
  102. package/dist/lib/__tests__/Select.test.d.ts +1 -0
  103. package/dist/lib/__tests__/Select.test.js +408 -0
  104. package/dist/lib/__tests__/Slider.test.d.ts +1 -0
  105. package/dist/lib/__tests__/Slider.test.js +213 -0
  106. package/dist/lib/__tests__/Splitter.test.d.ts +1 -0
  107. package/dist/lib/__tests__/Splitter.test.js +87 -0
  108. package/dist/lib/__tests__/Switch.test.d.ts +1 -0
  109. package/dist/lib/__tests__/Switch.test.js +97 -0
  110. package/dist/lib/__tests__/Table.test.d.ts +1 -0
  111. package/dist/lib/__tests__/Table.test.js +349 -0
  112. package/dist/lib/__tests__/Tabs.test.d.ts +1 -0
  113. package/dist/lib/__tests__/Tabs.test.js +262 -0
  114. package/dist/lib/__tests__/ThemeToggle.test.d.ts +1 -0
  115. package/dist/lib/__tests__/ThemeToggle.test.js +84 -0
  116. package/dist/lib/__tests__/TimePicker.test.d.ts +1 -0
  117. package/dist/lib/__tests__/TimePicker.test.js +146 -0
  118. package/dist/lib/__tests__/TimePickerNew.test.d.ts +1 -0
  119. package/dist/lib/__tests__/TimePickerNew.test.js +322 -0
  120. package/dist/lib/__tests__/Toast.test.d.ts +1 -0
  121. package/dist/lib/__tests__/Toast.test.js +135 -0
  122. package/dist/lib/__tests__/Tooltip.test.d.ts +1 -0
  123. package/dist/lib/__tests__/Tooltip.test.js +171 -0
  124. package/dist/lib/__tests__/Topbar.test.d.ts +1 -0
  125. package/dist/lib/__tests__/Topbar.test.js +25 -0
  126. package/dist/lib/__tests__/setupLangContext.d.ts +1 -0
  127. package/dist/lib/__tests__/setupLangContext.js +65 -0
  128. package/dist/lib/__tests__/storage.test.d.ts +1 -0
  129. package/dist/lib/__tests__/storage.test.js +124 -0
  130. package/dist/lib/__tests__/utils.test.d.ts +1 -0
  131. package/dist/lib/__tests__/utils.test.js +11 -0
  132. package/dist/lib/index.d.ts +1 -0
  133. package/dist/lib/index.js +1 -0
  134. package/dist/lib/lang.d.ts +4 -0
  135. package/dist/lib/lang.js +4 -0
  136. package/dist/styles.css +234 -232
  137. package/dist/utils/index.js +15 -4
  138. package/package.json +52 -52
package/dist/styles.css CHANGED
@@ -1,232 +1,234 @@
1
- /* src/styles.css */
2
- @source "../node_modules/svelte-comp/**/*";
3
-
4
- @custom-variant dark (&:where(.dark, .dark *));
5
-
6
- @theme {
7
- /* COLORS — TEXT */
8
- --color-text-default: oklch(15% 0 0deg);
9
- --color-text-muted: oklch(60% 0 0deg);
10
- --color-text-danger: oklch(92% 0.05 25deg);
11
- --color-text-success: oklch(92% 0.05 150deg);
12
- --color-text-warning: oklch(95% 0.05 90deg);
13
- --color-text-link: oklch(35% 0.3 250deg);
14
- --color-text-red: oklch(50% 0.25 30deg);
15
-
16
- /* COLORS — BG */
17
- --color-bg-page: oklch(98% 0 0deg);
18
- --color-bg-surface: oklch(100% 0 0deg);
19
- --color-bg-primary: oklch(62.3% 0.214 259.8deg);
20
- --color-primary: var(--color-bg-primary);
21
- --color-bg-secondary: oklch(80% 0 0deg);
22
- --color-bg-danger: oklch(60% 0.25 30deg);
23
- --color-bg-success: oklch(55% 0.2 150deg);
24
- --color-bg-warning: oklch(75% 0.2 70deg);
25
- --color-bg-muted: oklch(90% 0 0deg);
26
-
27
- /* INTERACTION STATES */
28
- --color-bg-hover: oklch(94% 0 0deg);
29
- --color-bg-active: oklch(88% 0 0deg);
30
-
31
- /* BORDER */
32
- --border-color-default: oklch(85% 0 0deg);
33
- --border-color-primary: oklch(50% 0.19 259.8deg);
34
- --border-color-strong: oklch(75% 0 0deg);
35
- --border-color-focus: oklch(68.7% 0.14 237.5deg);
36
-
37
- /* SHADOW */
38
- --shadow-color: oklch(0% 0 0deg / 0.15);
39
-
40
- /* SPACING */
41
- --spacing-xs: 0.25rem;
42
- --spacing-sm: 0.5rem;
43
- --spacing-md: 1rem;
44
- --spacing-lg: 1.5rem;
45
- --spacing-xl: 2rem;
46
-
47
- /* TYPOGRAPHY */
48
- --font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
49
- --font-mono: "Fira Code", "Consolas", "Monaco", monospace;
50
-
51
- /* FONT WEIGHTS */
52
- --font-weight-normal: 400;
53
- --font-weight-medium: 500;
54
- --font-weight-semibold: 600;
55
- --font-weight-bold: 700;
56
-
57
- /* TEXT SIZES */
58
- --text-xs: 0.75rem;
59
- --text-sm: 0.875rem;
60
- --text-md: 1rem;
61
- --text-lg: 1.125rem;
62
- --text-xl: 1.25rem;
63
-
64
- /* LINE HEIGHT & LETTER SPACING */
65
- --line-height-tight: 1.1;
66
- --line-height-normal: 1.4;
67
- --line-height-relaxed: 1.6;
68
- --letter-spacing-tight: -0.01em;
69
- --letter-spacing-normal: 0;
70
- --letter-spacing-wide: 0.02em;
71
-
72
- /* RADIUS */
73
- --radius-sm: 0.125rem;
74
- --radius-md: 0.375rem;
75
- --radius-lg: 0.5rem;
76
- --radius-xl: 0.75rem;
77
- --radius-2xl: 1rem;
78
- --radius-full: 9999px;
79
-
80
- /* TRANSITIONS */
81
- --transition-fast: 150ms;
82
- --transition-normal: 300ms;
83
- --transition-slow: 500ms;
84
- --timing-default: ease-in-out;
85
-
86
- /* OPACITY */
87
- --opacity-disabled: 0.5;
88
- --opacity-hover: 0.9;
89
- --opacity-overlay: 0.7;
90
-
91
- /* Z-INDEX */
92
- --z-base: 0;
93
- --z-dropdown: 10;
94
- --z-overlay: 50;
95
- --z-modal: 100;
96
- --z-toast: 200;
97
- }
98
-
99
- .dark {
100
- /* COLORS — TEXT */
101
- --color-text-default: oklch(98% 0 0deg);
102
- --color-text-muted: oklch(60% 0 0deg);
103
- --color-text-danger: oklch(98% 0.02 25deg);
104
- --color-text-success: oklch(92% 0.05 150deg);
105
- --color-text-warning: oklch(95% 0.05 90deg);
106
- --color-text-link: oklch(65% 0.3 250deg);
107
- --color-text-red: oklch(50% 0.25 30deg);
108
-
109
- /* COLORS BG */
110
- --color-bg-page: oklch(15% 0 0deg);
111
- --color-bg-surface: oklch(26% 0 0deg);
112
- --color-bg-primary: oklch(42% 0.19 259.8deg);
113
- --color-primary: var(--color-bg-primary);
114
- --color-bg-secondary: oklch(45% 0 0deg);
115
- --color-bg-danger: oklch(50% 0.25 30deg);
116
- --color-bg-success: oklch(45% 0.2 150deg);
117
- --color-bg-warning: oklch(65% 0.2 70deg);
118
- --color-bg-muted: oklch(30% 0 0deg);
119
-
120
- /* INTERACTION STATES */
121
- --color-bg-hover: oklch(25% 0 0deg);
122
- --color-bg-active: oklch(18% 0 0deg);
123
-
124
- /* BORDER */
125
- --border-color-default: oklch(35% 0 0deg);
126
- --border-color-primary: oklch(50% 0.17 259.8deg);
127
- --border-color-strong: oklch(45% 0 0deg);
128
- --border-color-focus: oklch(68.7% 0.14 237.5deg);
129
-
130
- /* SHADOW */
131
- --shadow-color: oklch(0% 0 0deg / 0.6);
132
-
133
- /* OPACITY */
134
- --opacity-disabled: 0.4;
135
- --opacity-hover: 0.85;
136
- --opacity-overlay: 0.6;
137
- }
138
-
139
- /* SCROLLBARS */
140
- ::-webkit-scrollbar {
141
- width: 4px;
142
- height: 4px;
143
- }
144
-
145
- ::-webkit-scrollbar-track {
146
- background: transparent;
147
- }
148
-
149
- ::-webkit-scrollbar-thumb {
150
- background: var(--color-bg-secondary);
151
- border-radius: 3px;
152
- }
153
-
154
- ::-webkit-scrollbar-thumb:hover {
155
- background: oklch(from var(--color-bg-secondary) l c h / 0.8);
156
- }
157
-
158
- @supports (scrollbar-width: thin) {
159
- * {
160
- scrollbar-width: thin;
161
- scrollbar-color: var(--color-bg-secondary) transparent;
162
- }
163
-
164
- .dark * {
165
- scrollbar-color: oklch(from var(--color-bg-secondary) l c h / 0.7)
166
- transparent;
167
- }
168
- }
169
-
170
- .dark ::-webkit-scrollbar-thumb {
171
- background: oklch(from var(--color-bg-secondary) l c h / 0.7);
172
- }
173
-
174
- /* ----------------------------- */
175
- /* 🎨 Primary color palettes */
176
- /* ----------------------------- */
177
-
178
- [data-primary="default"] {
179
- --color-primary: oklch(62.3% 0.214 259.8deg);
180
- --color-bg-primary: var(--color-primary);
181
- --border-color-primary: var(--color-primary);
182
- --border-color-focus: var(--color-primary);
183
- }
184
-
185
- [data-primary="cyan"] {
186
- --color-primary: oklch(86.5% 0.127 207.078);
187
- --color-bg-primary: var(--color-primary);
188
- --border-color-primary: var(--color-primary);
189
- --border-color-focus: var(--color-primary);
190
- }
191
-
192
- [data-primary="red"] {
193
- --color-primary: oklch(58% 0.24 30deg);
194
- --color-bg-primary: var(--color-primary);
195
- --border-color-primary: var(--color-primary);
196
- --border-color-focus: var(--color-primary);
197
- }
198
-
199
- [data-primary="green"] {
200
- --color-primary: oklch(65% 0.22 140deg);
201
- --color-bg-primary: var(--color-primary);
202
- --border-color-primary: var(--color-primary);
203
- --border-color-focus: var(--color-primary);
204
- }
205
-
206
- [data-primary="yellow"] {
207
- --color-primary: oklch(75% 0.18 90deg);
208
- --color-bg-primary: var(--color-primary);
209
- --border-color-primary: var(--color-primary);
210
- --border-color-focus: var(--color-primary);
211
- }
212
-
213
- [data-primary="pink"] {
214
- --color-primary: oklch(70% 0.25 350deg);
215
- --color-bg-primary: var(--color-primary);
216
- --border-color-primary: var(--color-primary);
217
- --border-color-focus: var(--color-primary);
218
- }
219
-
220
- [data-primary="orange"] {
221
- --color-primary: oklch(72% 0.22 60deg);
222
- --color-bg-primary: var(--color-primary);
223
- --border-color-primary: var(--color-primary);
224
- --border-color-focus: var(--color-primary);
225
- }
226
-
227
- [data-primary="purple"] {
228
- --color-primary: oklch(55% 0.22 290deg);
229
- --color-bg-primary: var(--color-primary);
230
- --border-color-primary: var(--color-primary);
231
- --border-color-focus: var(--color-primary);
232
- }
1
+ /* src/styles.css */
2
+ @source "../node_modules/svelte-comp/**/*";
3
+
4
+ @custom-variant dark (&:where(.dark, .dark *));
5
+
6
+ @theme {
7
+ /* COLORS — TEXT */
8
+ --color-text-default: oklch(15% 0 0deg);
9
+ --color-text-muted: oklch(60% 0 0deg);
10
+ --color-text-danger: oklch(92% 0.05 25deg);
11
+ --color-text-success: oklch(92% 0.05 150deg);
12
+ --color-text-warning: oklch(95% 0.05 90deg);
13
+ --color-text-link: oklch(35% 0.3 250deg);
14
+ --color-text-red: oklch(50% 0.25 30deg);
15
+ --color-text-inverse: oklch(100% 0 0deg);
16
+
17
+ /* COLORS BG */
18
+ --color-bg-page: oklch(98% 0 0deg);
19
+ --color-bg-surface: oklch(100% 0 0deg);
20
+ --color-bg-primary: oklch(62.3% 0.214 259.8deg);
21
+ --color-primary: var(--color-bg-primary);
22
+ --color-bg-secondary: oklch(80% 0 0deg);
23
+ --color-bg-danger: oklch(60% 0.25 30deg);
24
+ --color-bg-success: oklch(55% 0.2 150deg);
25
+ --color-bg-warning: oklch(75% 0.2 70deg);
26
+ --color-bg-muted: oklch(90% 0 0deg);
27
+
28
+ /* INTERACTION STATES */
29
+ --color-bg-hover: oklch(94% 0 0deg);
30
+ --color-bg-active: oklch(88% 0 0deg);
31
+
32
+ /* BORDER */
33
+ --border-color-default: oklch(85% 0 0deg);
34
+ --border-color-primary: oklch(50% 0.19 259.8deg);
35
+ --border-color-strong: oklch(75% 0 0deg);
36
+ --border-color-focus: oklch(68.7% 0.14 237.5deg);
37
+
38
+ /* SHADOW */
39
+ --shadow-color: oklch(0% 0 0deg / 0.15);
40
+
41
+ /* SPACING */
42
+ --spacing-xs: 0.25rem;
43
+ --spacing-sm: 0.5rem;
44
+ --spacing-md: 1rem;
45
+ --spacing-lg: 1.5rem;
46
+ --spacing-xl: 2rem;
47
+
48
+ /* TYPOGRAPHY */
49
+ --font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
50
+ --font-mono: "Fira Code", "Consolas", "Monaco", monospace;
51
+
52
+ /* FONT WEIGHTS */
53
+ --font-weight-normal: 400;
54
+ --font-weight-medium: 500;
55
+ --font-weight-semibold: 600;
56
+ --font-weight-bold: 700;
57
+
58
+ /* TEXT SIZES */
59
+ --text-xs: 0.75rem;
60
+ --text-sm: 0.875rem;
61
+ --text-md: 1rem;
62
+ --text-lg: 1.125rem;
63
+ --text-xl: 1.25rem;
64
+
65
+ /* LINE HEIGHT & LETTER SPACING */
66
+ --line-height-tight: 1.1;
67
+ --line-height-normal: 1.4;
68
+ --line-height-relaxed: 1.6;
69
+ --letter-spacing-tight: -0.01em;
70
+ --letter-spacing-normal: 0;
71
+ --letter-spacing-wide: 0.02em;
72
+
73
+ /* RADIUS */
74
+ --radius-sm: 0.125rem;
75
+ --radius-md: 0.375rem;
76
+ --radius-lg: 0.5rem;
77
+ --radius-xl: 0.75rem;
78
+ --radius-2xl: 1rem;
79
+ --radius-full: 9999px;
80
+
81
+ /* TRANSITIONS */
82
+ --transition-fast: 150ms;
83
+ --transition-normal: 300ms;
84
+ --transition-slow: 500ms;
85
+ --timing-default: ease-in-out;
86
+
87
+ /* OPACITY */
88
+ --opacity-disabled: 0.5;
89
+ --opacity-hover: 0.9;
90
+ --opacity-overlay: 0.7;
91
+
92
+ /* Z-INDEX */
93
+ --z-base: 0;
94
+ --z-dropdown: 10;
95
+ --z-overlay: 50;
96
+ --z-modal: 100;
97
+ --z-toast: 200;
98
+ }
99
+
100
+ .dark {
101
+ /* COLORS TEXT */
102
+ --color-text-default: oklch(98% 0 0deg);
103
+ --color-text-muted: oklch(60% 0 0deg);
104
+ --color-text-danger: oklch(98% 0.02 25deg);
105
+ --color-text-success: oklch(92% 0.05 150deg);
106
+ --color-text-warning: oklch(95% 0.05 90deg);
107
+ --color-text-link: oklch(65% 0.3 250deg);
108
+ --color-text-red: oklch(50% 0.25 30deg);
109
+ --color-text-inverse: oklch(100% 0 0deg);
110
+
111
+ /* COLORS BG */
112
+ --color-bg-page: oklch(15% 0 0deg);
113
+ --color-bg-surface: oklch(26% 0 0deg);
114
+ --color-bg-primary: oklch(42% 0.19 259.8deg);
115
+ --color-primary: var(--color-bg-primary);
116
+ --color-bg-secondary: oklch(45% 0 0deg);
117
+ --color-bg-danger: oklch(50% 0.25 30deg);
118
+ --color-bg-success: oklch(45% 0.2 150deg);
119
+ --color-bg-warning: oklch(65% 0.2 70deg);
120
+ --color-bg-muted: oklch(30% 0 0deg);
121
+
122
+ /* INTERACTION STATES */
123
+ --color-bg-hover: oklch(25% 0 0deg);
124
+ --color-bg-active: oklch(18% 0 0deg);
125
+
126
+ /* BORDER */
127
+ --border-color-default: oklch(35% 0 0deg);
128
+ --border-color-primary: oklch(50% 0.17 259.8deg);
129
+ --border-color-strong: oklch(45% 0 0deg);
130
+ --border-color-focus: oklch(68.7% 0.14 237.5deg);
131
+
132
+ /* SHADOW */
133
+ --shadow-color: oklch(0% 0 0deg / 0.6);
134
+
135
+ /* OPACITY */
136
+ --opacity-disabled: 0.4;
137
+ --opacity-hover: 0.85;
138
+ --opacity-overlay: 0.6;
139
+ }
140
+
141
+ /* SCROLLBARS */
142
+ ::-webkit-scrollbar {
143
+ width: 4px;
144
+ height: 4px;
145
+ }
146
+
147
+ ::-webkit-scrollbar-track {
148
+ background: transparent;
149
+ }
150
+
151
+ ::-webkit-scrollbar-thumb {
152
+ background: var(--color-bg-secondary);
153
+ border-radius: 3px;
154
+ }
155
+
156
+ ::-webkit-scrollbar-thumb:hover {
157
+ background: oklch(from var(--color-bg-secondary) l c h / 0.8);
158
+ }
159
+
160
+ @supports (scrollbar-width: thin) {
161
+ * {
162
+ scrollbar-width: thin;
163
+ scrollbar-color: var(--color-bg-secondary) transparent;
164
+ }
165
+
166
+ .dark * {
167
+ scrollbar-color: oklch(from var(--color-bg-secondary) l c h / 0.7)
168
+ transparent;
169
+ }
170
+ }
171
+
172
+ .dark ::-webkit-scrollbar-thumb {
173
+ background: oklch(from var(--color-bg-secondary) l c h / 0.7);
174
+ }
175
+
176
+ /* ----------------------------- */
177
+ /* 🎨 Primary color palettes */
178
+ /* ----------------------------- */
179
+
180
+ [data-primary="default"] {
181
+ --color-primary: oklch(62.3% 0.214 259.8deg);
182
+ --color-bg-primary: var(--color-primary);
183
+ --border-color-primary: var(--color-primary);
184
+ --border-color-focus: var(--color-primary);
185
+ }
186
+
187
+ [data-primary="cyan"] {
188
+ --color-primary: oklch(86.5% 0.127 207.078);
189
+ --color-bg-primary: var(--color-primary);
190
+ --border-color-primary: var(--color-primary);
191
+ --border-color-focus: var(--color-primary);
192
+ }
193
+
194
+ [data-primary="red"] {
195
+ --color-primary: oklch(58% 0.24 30deg);
196
+ --color-bg-primary: var(--color-primary);
197
+ --border-color-primary: var(--color-primary);
198
+ --border-color-focus: var(--color-primary);
199
+ }
200
+
201
+ [data-primary="green"] {
202
+ --color-primary: oklch(65% 0.22 140deg);
203
+ --color-bg-primary: var(--color-primary);
204
+ --border-color-primary: var(--color-primary);
205
+ --border-color-focus: var(--color-primary);
206
+ }
207
+
208
+ [data-primary="yellow"] {
209
+ --color-primary: oklch(75% 0.18 90deg);
210
+ --color-bg-primary: var(--color-primary);
211
+ --border-color-primary: var(--color-primary);
212
+ --border-color-focus: var(--color-primary);
213
+ }
214
+
215
+ [data-primary="pink"] {
216
+ --color-primary: oklch(70% 0.25 350deg);
217
+ --color-bg-primary: var(--color-primary);
218
+ --border-color-primary: var(--color-primary);
219
+ --border-color-focus: var(--color-primary);
220
+ }
221
+
222
+ [data-primary="orange"] {
223
+ --color-primary: oklch(72% 0.22 60deg);
224
+ --color-bg-primary: var(--color-primary);
225
+ --border-color-primary: var(--color-primary);
226
+ --border-color-focus: var(--color-primary);
227
+ }
228
+
229
+ [data-primary="purple"] {
230
+ --color-primary: oklch(55% 0.22 290deg);
231
+ --color-bg-primary: var(--color-primary);
232
+ --border-color-primary: var(--color-primary);
233
+ --border-color-focus: var(--color-primary);
234
+ }
@@ -1,4 +1,4 @@
1
- // src/lib/utils/index.ts
1
+ // src/utils/index.ts
2
2
  var __assign = (this && this.__assign) || function () {
3
3
  __assign = Object.assign || function(t) {
4
4
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -75,11 +75,13 @@ export function times(count, fn) {
75
75
  // FORMAT FILE SIZE
76
76
  // -------------------------------------------------------------------------------
77
77
  export function formatFileSize(bytes) {
78
+ if (!Number.isFinite(bytes) || bytes < 0)
79
+ return "0 Bytes";
78
80
  if (bytes === 0)
79
81
  return "0 Bytes";
80
82
  var k = 1024;
81
83
  var sizes = ["Bytes", "KB", "MB", "GB"];
82
- var i = Math.floor(Math.log(bytes) / Math.log(k));
84
+ var i = Math.min(sizes.length - 1, Math.floor(Math.log(bytes) / Math.log(k)));
83
85
  return "".concat(parseFloat((bytes / Math.pow(k, i)).toFixed(2)), " ").concat(sizes[i]);
84
86
  }
85
87
  // -------------------------------------------------------------------------------
@@ -116,8 +118,17 @@ export function throttle(fn, limit) {
116
118
  // -------------------------------------------------------------------------------
117
119
  // STORAGE HELPERS
118
120
  // -------------------------------------------------------------------------------
119
- var hasBrowserStorage = typeof window !== "undefined" && !!window.localStorage;
120
- var getLocalStorage = function () { return (hasBrowserStorage ? window.localStorage : null); };
121
+ var getLocalStorage = function () {
122
+ var _a;
123
+ if (typeof window === "undefined")
124
+ return null;
125
+ try {
126
+ return (_a = window.localStorage) !== null && _a !== void 0 ? _a : null;
127
+ }
128
+ catch (_b) {
129
+ return null;
130
+ }
131
+ };
121
132
  export var storage = {
122
133
  get: function (key, defaultValue) {
123
134
  var ls = getLocalStorage();
package/package.json CHANGED
@@ -1,52 +1,52 @@
1
- {
2
- "name": "svelte-comp",
3
- "version": "1.3.3",
4
- "license": "MIT",
5
- "description": "A comprehensive component library built on Svelte 5 (runes) with design tokens (tailwind), accessibility focus, and TypeScript support",
6
- "devDependencies": {
7
- "@sveltejs/package": "^2.5.7",
8
- "@sveltejs/vite-plugin-svelte": "^6.2.1",
9
- "@tailwindcss/vite": "^4.1.17",
10
- "@tsconfig/svelte": "^5.0.4",
11
- "@types/node": "^24.5.2",
12
- "@types/prismjs": "^1.26.5",
13
- "prettier": "^3.7.4",
14
- "prettier-plugin-svelte": "^3.4.0",
15
- "prismjs": "^1.30.0",
16
- "svelte": "^5.39.6",
17
- "svelte-check": "^4.3.4",
18
- "tailwindcss": "^4.1.17",
19
- "typescript": "^5.9.3",
20
- "vite": "^7.2.1"
21
- },
22
- "exports": {
23
- ".": {
24
- "svelte": "./dist/lib/index.js",
25
- "types": "./dist/lib/index.d.ts"
26
- },
27
- "./styles.css": "./dist/styles.css"
28
- },
29
- "files": [
30
- "dist",
31
- "dist/styles.css"
32
- ],
33
- "keywords": [
34
- "svelte",
35
- "svelte5",
36
- "svelte-components",
37
- "tailwind",
38
- "ui-library"
39
- ],
40
- "peerDependencies": {
41
- "svelte": "^5.0.0"
42
- },
43
- "scripts": {
44
- "build": "svelte-package --input src",
45
- "prepublishOnly": "npm run build",
46
- "dev": "vite",
47
- "check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json"
48
- },
49
- "svelte": "./dist/lib/index.js",
50
- "type": "module",
51
- "types": "./dist/lib/index.d.ts"
52
- }
1
+ {
2
+ "name": "svelte-comp",
3
+ "version": "1.3.6",
4
+ "license": "MIT",
5
+ "description": "A comprehensive component library built on Svelte 5 (runes) with design tokens (tailwind), accessibility focus, and TypeScript support",
6
+ "devDependencies": {
7
+ "@sveltejs/package": "^2.5.7",
8
+ "@sveltejs/vite-plugin-svelte": "^6.2.4",
9
+ "@tailwindcss/vite": "^4.2.4",
10
+ "@tsconfig/svelte": "^5.0.8",
11
+ "@types/node": "^24.12.2",
12
+ "@types/prismjs": "^1.26.6",
13
+ "prettier": "^3.8.3",
14
+ "prettier-plugin-svelte": "^3.5.1",
15
+ "prismjs": "^1.30.0",
16
+ "svelte": "^5.55.5",
17
+ "svelte-check": "^4.4.6",
18
+ "tailwindcss": "^4.2.4",
19
+ "typescript": "^5.9.3",
20
+ "vite": "^7.3.2"
21
+ },
22
+ "exports": {
23
+ ".": {
24
+ "svelte": "./dist/lib/index.js",
25
+ "types": "./dist/lib/index.d.ts"
26
+ },
27
+ "./styles.css": "./dist/styles.css"
28
+ },
29
+ "files": [
30
+ "dist",
31
+ "dist/styles.css"
32
+ ],
33
+ "keywords": [
34
+ "svelte",
35
+ "svelte5",
36
+ "svelte-components",
37
+ "tailwind",
38
+ "ui-library"
39
+ ],
40
+ "peerDependencies": {
41
+ "svelte": "^5.0.0"
42
+ },
43
+ "scripts": {
44
+ "build": "svelte-package --input src",
45
+ "prepublishOnly": "npm run build",
46
+ "dev": "vite",
47
+ "check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json"
48
+ },
49
+ "svelte": "./dist/lib/index.js",
50
+ "type": "module",
51
+ "types": "./dist/lib/index.d.ts"
52
+ }