ui-svelte 0.2.4 → 0.2.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 (45) hide show
  1. package/dist/assets/country-flags.d.ts +1 -0
  2. package/dist/assets/country-flags.js +1612 -0
  3. package/dist/charts/ArcChart.svelte +291 -48
  4. package/dist/charts/ArcChart.svelte.d.ts +32 -1
  5. package/dist/charts/Candlestick.svelte +663 -115
  6. package/dist/charts/Candlestick.svelte.d.ts +40 -0
  7. package/dist/charts/css/arc-chart.css +76 -6
  8. package/dist/charts/css/candlestick.css +234 -11
  9. package/dist/control/Button.svelte +3 -1
  10. package/dist/control/Button.svelte.d.ts +1 -0
  11. package/dist/control/IconButton.svelte +3 -1
  12. package/dist/control/IconButton.svelte.d.ts +1 -0
  13. package/dist/control/ToggleGroup.svelte +82 -0
  14. package/dist/control/ToggleGroup.svelte.d.ts +20 -0
  15. package/dist/control/css/toggle-group.css +85 -0
  16. package/dist/css/base.css +23 -43
  17. package/dist/css/utilities.css +45 -0
  18. package/dist/display/AvatarGroup.svelte +59 -0
  19. package/dist/display/AvatarGroup.svelte.d.ts +17 -0
  20. package/dist/display/Code.svelte +14 -7
  21. package/dist/display/Code.svelte.d.ts +1 -0
  22. package/dist/display/Section.svelte +1 -1
  23. package/dist/display/css/avatar-group.css +46 -0
  24. package/dist/display/css/avatar.css +1 -10
  25. package/dist/display/css/badge.css +14 -11
  26. package/dist/form/ComboBox.svelte.d.ts +1 -1
  27. package/dist/form/PhoneField.svelte +8 -4
  28. package/dist/form/Select.svelte.d.ts +1 -1
  29. package/dist/index.css +43 -21
  30. package/dist/index.d.ts +3 -1
  31. package/dist/index.js +3 -1
  32. package/dist/navigation/BottomNav.svelte +43 -16
  33. package/dist/navigation/NavMenu.svelte +25 -4
  34. package/dist/navigation/SideNav.svelte +20 -2
  35. package/dist/navigation/SideNav.svelte.d.ts +2 -0
  36. package/dist/navigation/css/bottom-nav.css +139 -15
  37. package/dist/navigation/css/nav-menu.css +192 -7
  38. package/dist/navigation/css/side-nav.css +80 -0
  39. package/dist/navigation/css/tabs.css +4 -4
  40. package/dist/utils/popover.js +6 -6
  41. package/package.json +2 -2
  42. /package/dist/{form/js → assets}/countries.d.ts +0 -0
  43. /package/dist/{form/js → assets}/countries.js +0 -0
  44. /package/dist/{form/js → assets}/phone-examples.d.ts +0 -0
  45. /package/dist/{form/js → assets}/phone-examples.js +0 -0
@@ -12,8 +12,23 @@
12
12
  }
13
13
 
14
14
  .navmenu-label {
15
- @apply text-sm whitespace-nowrap;
15
+ @apply text-base whitespace-nowrap;
16
16
  @apply font-light hover:font-semibold;
17
+ /* Prevent layout shift on font-weight change */
18
+ display: inline-flex;
19
+ flex-direction: column;
20
+ align-items: center;
21
+ justify-content: center;
22
+
23
+ &::after {
24
+ content: attr(data-text);
25
+ @apply font-semibold;
26
+ height: 0;
27
+ visibility: hidden;
28
+ overflow: hidden;
29
+ user-select: none;
30
+ pointer-events: none;
31
+ }
17
32
  }
18
33
 
19
34
  .navmenu-arrow {
@@ -33,7 +48,11 @@
33
48
  @apply gap-0.5;
34
49
 
35
50
  .navmenu-item {
36
- @apply gap-1.5 px-3 py-1.5 text-xs;
51
+ @apply gap-1.5 px-3 py-1.5;
52
+
53
+ .navmenu-label {
54
+ @apply text-xs;
55
+ }
37
56
 
38
57
  .navmenu-icon {
39
58
  @apply h-4 w-4;
@@ -49,7 +68,11 @@
49
68
  @apply gap-1;
50
69
 
51
70
  .navmenu-item {
52
- @apply gap-2 px-4 py-2 text-sm;
71
+ @apply gap-2 px-4 py-2;
72
+
73
+ .navmenu-label {
74
+ @apply text-sm;
75
+ }
53
76
 
54
77
  .navmenu-icon {
55
78
  @apply h-5 w-5;
@@ -65,19 +88,101 @@
65
88
  @apply gap-1.5;
66
89
 
67
90
  .navmenu-item {
68
- @apply gap-2.5 px-5 py-2.5 text-base;
91
+ @apply gap-3 px-6 py-3;
92
+
93
+ .navmenu-label {
94
+ @apply text-lg;
95
+ }
69
96
 
70
97
  .navmenu-icon {
71
- @apply h-6 w-6;
98
+ @apply h-7 w-7;
72
99
  }
73
100
 
74
101
  .navmenu-arrow {
75
- @apply h-5 w-5;
102
+ @apply h-6 w-6;
76
103
  }
77
104
  }
78
105
  }
79
106
  }
80
107
 
108
+ .navmenu-popover.is-sm {
109
+ @apply gap-1 p-1.5;
110
+
111
+ .navmenu-submenu-item {
112
+ @apply gap-1.5 px-2 py-1.5;
113
+
114
+ .navmenu-submenu-icon {
115
+ @apply h-4 w-4;
116
+ }
117
+
118
+ .navmenu-submenu-content {
119
+ .navmenu-submenu-label {
120
+ @apply text-xs;
121
+ }
122
+
123
+ .navmenu-submenu-description {
124
+ @apply text-[10px];
125
+ }
126
+ }
127
+ }
128
+
129
+ .navmenu-header {
130
+ @apply px-2 py-1.5 text-[10px];
131
+ }
132
+ }
133
+
134
+ .navmenu-popover.is-md {
135
+ @apply gap-2 p-2;
136
+
137
+ .navmenu-submenu-item {
138
+ @apply gap-2 px-3 py-2;
139
+
140
+ .navmenu-submenu-icon {
141
+ @apply h-5 w-5;
142
+ }
143
+
144
+ .navmenu-submenu-content {
145
+ .navmenu-submenu-label {
146
+ @apply text-sm;
147
+ }
148
+
149
+ .navmenu-submenu-description {
150
+ @apply text-xs;
151
+ }
152
+ }
153
+ }
154
+
155
+ .navmenu-header {
156
+ @apply px-3 py-2 text-xs;
157
+ }
158
+ }
159
+
160
+ .navmenu-popover.is-lg {
161
+ @apply gap-3 p-4;
162
+
163
+ .navmenu-submenu-item {
164
+ @apply gap-3 px-5 py-3;
165
+
166
+ .navmenu-submenu-icon {
167
+ @apply h-7 w-7;
168
+ }
169
+
170
+ .navmenu-submenu-content {
171
+ .navmenu-submenu-label {
172
+ @apply text-lg;
173
+ }
174
+
175
+ .navmenu-submenu-description {
176
+ @apply text-base;
177
+ }
178
+ }
179
+ }
180
+
181
+ .navmenu-header {
182
+ @apply px-5 py-3 text-base;
183
+ }
184
+ }
185
+
81
186
  .navmenu-popover {
82
187
  @apply flex flex-col gap-2 p-2 my-1;
83
188
  @apply bg-background text-on-background rounded-ui;
@@ -135,4 +240,84 @@
135
240
  @apply px-3 py-2 text-xs font-semibold uppercase tracking-wide;
136
241
  }
137
242
  }
138
- }
243
+
244
+ /* Filled state style - hover/active with background colors */
245
+ .navmenu.is-filled .navmenu-item {
246
+ .navmenu-label {
247
+ @apply font-normal hover:font-normal;
248
+ }
249
+
250
+ &:hover {
251
+ @apply bg-muted/50;
252
+ }
253
+
254
+ &.is-active {
255
+ @apply bg-muted;
256
+
257
+ .navmenu-label {
258
+ @apply font-normal;
259
+ }
260
+ }
261
+ }
262
+
263
+ /* Variant colors for filled style */
264
+ .navmenu.is-filled.is-primary {
265
+ .navmenu-item:hover {
266
+ @apply bg-primary/20;
267
+ }
268
+
269
+ .navmenu-item.is-active {
270
+ @apply bg-primary text-on-primary;
271
+ }
272
+ }
273
+
274
+ .navmenu.is-filled.is-secondary {
275
+ .navmenu-item:hover {
276
+ @apply bg-secondary/20;
277
+ }
278
+
279
+ .navmenu-item.is-active {
280
+ @apply bg-secondary text-on-secondary;
281
+ }
282
+ }
283
+
284
+ .navmenu.is-filled.is-success {
285
+ .navmenu-item:hover {
286
+ @apply bg-success/20;
287
+ }
288
+
289
+ .navmenu-item.is-active {
290
+ @apply bg-success text-on-success;
291
+ }
292
+ }
293
+
294
+ .navmenu.is-filled.is-info {
295
+ .navmenu-item:hover {
296
+ @apply bg-info/20;
297
+ }
298
+
299
+ .navmenu-item.is-active {
300
+ @apply bg-info text-on-info;
301
+ }
302
+ }
303
+
304
+ .navmenu.is-filled.is-warning {
305
+ .navmenu-item:hover {
306
+ @apply bg-warning/20;
307
+ }
308
+
309
+ .navmenu-item.is-active {
310
+ @apply bg-warning text-on-warning;
311
+ }
312
+ }
313
+
314
+ .navmenu.is-filled.is-danger {
315
+ .navmenu-item:hover {
316
+ @apply bg-danger/20;
317
+ }
318
+
319
+ .navmenu-item.is-active {
320
+ @apply bg-danger text-on-danger;
321
+ }
322
+ }
323
+ }
@@ -300,4 +300,84 @@
300
300
  }
301
301
  }
302
302
  }
303
+
304
+ /* Solid state style - hover/active with background colors */
305
+ .sidenav.is-solid .sidenav-item {
306
+ .sidenav-content .sidenav-label {
307
+ @apply font-normal hover:font-normal;
308
+ }
309
+
310
+ &:hover {
311
+ @apply bg-muted/50;
312
+ }
313
+
314
+ &.is-active {
315
+ @apply bg-muted;
316
+
317
+ .sidenav-content .sidenav-label {
318
+ @apply font-normal;
319
+ }
320
+ }
321
+ }
322
+
323
+ /* Variant colors for solid style */
324
+ .sidenav.is-solid.is-primary {
325
+ .sidenav-item:hover {
326
+ @apply bg-primary/20;
327
+ }
328
+
329
+ .sidenav-item.is-active {
330
+ @apply bg-primary text-on-primary;
331
+ }
332
+ }
333
+
334
+ .sidenav.is-solid.is-secondary {
335
+ .sidenav-item:hover {
336
+ @apply bg-secondary/20;
337
+ }
338
+
339
+ .sidenav-item.is-active {
340
+ @apply bg-secondary text-on-secondary;
341
+ }
342
+ }
343
+
344
+ .sidenav.is-solid.is-success {
345
+ .sidenav-item:hover {
346
+ @apply bg-success/20;
347
+ }
348
+
349
+ .sidenav-item.is-active {
350
+ @apply bg-success text-on-success;
351
+ }
352
+ }
353
+
354
+ .sidenav.is-solid.is-info {
355
+ .sidenav-item:hover {
356
+ @apply bg-info/20;
357
+ }
358
+
359
+ .sidenav-item.is-active {
360
+ @apply bg-info text-on-info;
361
+ }
362
+ }
363
+
364
+ .sidenav.is-solid.is-warning {
365
+ .sidenav-item:hover {
366
+ @apply bg-warning/20;
367
+ }
368
+
369
+ .sidenav-item.is-active {
370
+ @apply bg-warning text-on-warning;
371
+ }
372
+ }
373
+
374
+ .sidenav.is-solid.is-danger {
375
+ .sidenav-item:hover {
376
+ @apply bg-danger/20;
377
+ }
378
+
379
+ .sidenav-item.is-active {
380
+ @apply bg-danger text-on-danger;
381
+ }
382
+ }
303
383
  }
@@ -2,19 +2,19 @@
2
2
  .tabs {
3
3
  @apply flex relative;
4
4
  &.is-top {
5
- @apply flex-col;
5
+ @apply flex-col gap-2;
6
6
  }
7
7
  &.is-bottom {
8
- @apply flex-col-reverse;
8
+ @apply flex-col-reverse gap-2;
9
9
  }
10
10
  &.is-start {
11
- @apply flex-row h-fit gap-1;
11
+ @apply flex-row h-fit gap-2;
12
12
  .tabs-list {
13
13
  @apply flex-col;
14
14
  }
15
15
  }
16
16
  &.is-end {
17
- @apply flex-row-reverse h-fit gap-1;
17
+ @apply flex-row-reverse h-fit gap-2;
18
18
  .tabs-list {
19
19
  @apply flex-col;
20
20
  }
@@ -1,17 +1,17 @@
1
1
  export const popover = (node) => {
2
2
  const targetEl = document.body;
3
- const hadScroll = document.documentElement.scrollHeight > window.innerHeight;
4
3
  node.id = 'popover';
5
4
  targetEl?.appendChild(node);
6
- if (hadScroll) {
7
- targetEl.classList.add('had-scroll');
5
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
6
+ if (scrollbarWidth > 0) {
7
+ document.body.style.paddingRight = `${scrollbarWidth}px`;
8
8
  }
9
+ document.body.style.overflow = 'hidden';
9
10
  return {
10
11
  destroy() {
11
- if (hadScroll) {
12
- targetEl.classList.remove('had-scroll');
13
- }
14
12
  node.remove();
13
+ document.body.style.overflow = '';
14
+ document.body.style.paddingRight = '';
15
15
  }
16
16
  };
17
17
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ui-svelte",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "author": {
5
5
  "name": "SappsDev",
6
6
  "email": "info@sappsdev.com"
@@ -66,4 +66,4 @@
66
66
  "svelte": "./dist/index.js",
67
67
  "type": "module",
68
68
  "types": "./dist/index.d.ts"
69
- }
69
+ }
File without changes
File without changes
File without changes
File without changes