ui-svelte 0.2.1 → 0.2.3

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 (75) hide show
  1. package/dist/charts/ArcChart.svelte +3 -3
  2. package/dist/charts/ArcChart.svelte.d.ts +1 -1
  3. package/dist/charts/AreaChart.svelte +3 -3
  4. package/dist/charts/AreaChart.svelte.d.ts +1 -1
  5. package/dist/charts/BarChart.svelte +3 -3
  6. package/dist/charts/BarChart.svelte.d.ts +1 -1
  7. package/dist/charts/Candlestick.svelte +3 -3
  8. package/dist/charts/Candlestick.svelte.d.ts +1 -1
  9. package/dist/charts/LineChart.svelte +3 -3
  10. package/dist/charts/LineChart.svelte.d.ts +1 -1
  11. package/dist/charts/PieChart.svelte +3 -3
  12. package/dist/charts/PieChart.svelte.d.ts +1 -1
  13. package/dist/control/Button.svelte +2 -8
  14. package/dist/control/Button.svelte.d.ts +0 -2
  15. package/dist/control/IconButton.svelte +0 -3
  16. package/dist/control/IconButton.svelte.d.ts +0 -1
  17. package/dist/control/css/btn.css +0 -4
  18. package/dist/css/base.css +262 -45
  19. package/dist/css/utilities.css +0 -4
  20. package/dist/display/Accordion.svelte +3 -3
  21. package/dist/display/Accordion.svelte.d.ts +1 -1
  22. package/dist/display/Alert.svelte +0 -2
  23. package/dist/display/Card.svelte +4 -17
  24. package/dist/display/Card.svelte.d.ts +1 -3
  25. package/dist/display/Carousel.svelte +3 -3
  26. package/dist/display/Carousel.svelte.d.ts +1 -1
  27. package/dist/display/ChatBox.svelte +3 -3
  28. package/dist/display/ChatBox.svelte.d.ts +1 -1
  29. package/dist/display/Code.svelte +28 -11
  30. package/dist/display/Code.svelte.d.ts +5 -3
  31. package/dist/display/Collapsible.svelte +3 -3
  32. package/dist/display/Collapsible.svelte.d.ts +1 -1
  33. package/dist/display/Empty.svelte +11 -5
  34. package/dist/display/Marquee.svelte +3 -3
  35. package/dist/display/Marquee.svelte.d.ts +1 -1
  36. package/dist/display/Section.svelte +3 -3
  37. package/dist/display/Section.svelte.d.ts +1 -1
  38. package/dist/display/css/alert.css +1 -1
  39. package/dist/display/css/card.css +7 -126
  40. package/dist/display/css/code.css +7 -1
  41. package/dist/display/css/section.css +5 -1
  42. package/dist/form/ComboBox.svelte +17 -17
  43. package/dist/form/ComboBox.svelte.d.ts +2 -2
  44. package/dist/form/Select.svelte +3 -3
  45. package/dist/form/Select.svelte.d.ts +1 -1
  46. package/dist/form/TextField.svelte +4 -6
  47. package/dist/form/TextField.svelte.d.ts +2 -2
  48. package/dist/form/css/control.css +1 -1
  49. package/dist/hooks/use-search.svelte.d.ts +2 -1
  50. package/dist/index.css +2 -1
  51. package/dist/index.d.ts +6 -4
  52. package/dist/index.js +5 -4
  53. package/dist/layout/AppBar.svelte +3 -3
  54. package/dist/layout/AppBar.svelte.d.ts +1 -1
  55. package/dist/layout/Footer.svelte +3 -3
  56. package/dist/layout/Footer.svelte.d.ts +1 -1
  57. package/dist/layout/Sidebar.svelte +4 -11
  58. package/dist/layout/Sidebar.svelte.d.ts +1 -1
  59. package/dist/navigation/BottomNav.svelte +80 -0
  60. package/dist/navigation/FooterGroup.svelte +51 -0
  61. package/dist/navigation/FooterGroup.svelte.d.ts +15 -0
  62. package/dist/{layout/FooterLinks.svelte → navigation/FooterNav.svelte} +2 -2
  63. package/dist/navigation/FooterNav.svelte.d.ts +11 -0
  64. package/dist/navigation/SideNav.svelte +17 -16
  65. package/dist/navigation/SideNav.svelte.d.ts +33 -0
  66. package/dist/navigation/Tabs.svelte +3 -3
  67. package/dist/navigation/Tabs.svelte.d.ts +1 -1
  68. package/dist/navigation/css/bottom-nav.css +134 -0
  69. package/dist/navigation/css/footer-group.css +27 -0
  70. package/dist/{layout/css/footer-links.css → navigation/css/footer-nav.css} +3 -3
  71. package/package.json +2 -2
  72. package/dist/layout/FooterLinks.svelte.d.ts +0 -11
  73. package/dist/navigation/BottomNav.svelte.d.ts +0 -26
  74. /package/dist/{types.d.ts → types.svelte.d.ts} +0 -0
  75. /package/dist/{types.js → types.svelte.js} +0 -0
package/dist/css/base.css CHANGED
@@ -30,153 +30,357 @@
30
30
  @supports not selector(::-webkit-scrollbar) {
31
31
  * {
32
32
  scrollbar-width: thin;
33
- scrollbar-color: color-mix(in oklch, currentColor 80%, transparent)
34
- color-mix(in oklch, currentColor 20%, transparent);
33
+ scrollbar-color: color-mix(in oklch, currentColor 80%, transparent) color-mix(in oklch, currentColor 20%, transparent);
35
34
  }
36
35
 
37
36
  body {
38
- scrollbar-color: color-mix(in oklch, currentColor 80%, transparent)
39
- color-mix(in oklch, currentColor 20%, transparent);
37
+ scrollbar-color: color-mix(in oklch, currentColor 80%, transparent) color-mix(in oklch, currentColor 20%, transparent);
40
38
  }
41
39
  }
42
40
 
41
+ /* Base headings - responsive typography without margins */
43
42
  h1 {
44
- @apply text-4xl font-extrabold lg:text-5xl;
43
+ @apply font-extrabold tracking-tight;
44
+ @apply text-[1.875rem] md:text-4xl lg:text-5xl;
45
+ @apply leading-9 md:leading-10 lg:leading-12;
45
46
  }
46
47
 
47
48
  h2 {
48
- @apply text-3xl font-semibold;
49
+ @apply font-semibold tracking-tight;
50
+ @apply text-xl md:text-2xl lg:text-[1.875rem];
51
+ @apply leading-7 md:leading-8 lg:leading-10;
49
52
  }
50
53
 
51
54
  h3 {
52
- @apply text-2xl font-semibold;
55
+ @apply font-semibold tracking-tight;
56
+ @apply text-lg md:text-xl lg:text-2xl;
57
+ @apply leading-7 md:leading-8 lg:leading-9;
53
58
  }
54
59
 
55
60
  h4 {
56
- @apply text-xl font-semibold;
61
+ @apply font-semibold tracking-tight;
62
+ @apply text-base md:text-lg lg:text-xl;
63
+ @apply leading-6 md:leading-7 lg:leading-7;
57
64
  }
58
65
 
59
66
  h5 {
60
- @apply text-lg font-semibold;
67
+ @apply font-semibold tracking-tight;
68
+ @apply text-sm md:text-base lg:text-lg;
69
+ @apply leading-5 md:leading-6 lg:leading-7;
61
70
  }
62
71
 
63
72
  h6 {
64
- @apply text-base font-semibold;
73
+ @apply font-semibold tracking-tight;
74
+ @apply text-xs md:text-sm lg:text-base;
75
+ @apply leading-4 md:leading-5 lg:leading-6;
65
76
  }
66
77
 
78
+ /* Text formatting */
67
79
  strong {
68
80
  @apply font-semibold;
69
81
  }
70
82
 
83
+ em {
84
+ @apply italic;
85
+ }
86
+
87
+ /* Utility classes */
71
88
  .snippet {
72
- @apply relative rounded bg-muted text-on-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold;
89
+ @apply relative rounded bg-muted text-on-muted font-mono font-semibold;
90
+ @apply px-[0.3rem] py-[0.2rem];
91
+ @apply text-[0.75rem] md:text-[0.875rem] lg:text-base;
73
92
  }
74
93
 
75
94
  .link {
76
- @apply hover:text-primary underline underline-offset-4;
95
+ @apply font-medium text-primary underline underline-offset-4;
96
+ @apply hover:text-primary/80 transition-colors;
77
97
  }
78
98
 
79
99
  .tiny {
80
- @apply text-xs font-medium leading-none;
100
+ @apply font-medium leading-none;
101
+ @apply text-[0.625rem] md:text-xs lg:text-xs;
81
102
  }
82
103
 
83
104
  .lead {
84
- @apply text-lg;
105
+ @apply text-base md:text-lg lg:text-xl;
106
+ @apply leading-7 md:leading-8 lg:leading-8;
85
107
  }
86
108
 
87
109
  .label {
88
- @apply text-sm select-none font-medium;
110
+ @apply select-none font-medium;
111
+ @apply text-xs md:text-sm lg:text-sm;
89
112
  }
90
113
 
91
114
  .hero-title {
92
- @apply text-4xl font-semibold leading-tight tracking-tight;
93
- @apply md:text-5xl lg:text-6xl xl:text-7xl;
115
+ @apply font-semibold leading-tight tracking-tight;
116
+ @apply text-4xl md:text-5xl lg:text-6xl xl:text-7xl;
94
117
  }
95
118
 
96
119
  .hero-subtitle {
97
- @apply text-lg font-light text-on-muted;
98
- @apply md:text-xl lg:text-2xl;
120
+ @apply font-light text-on-muted;
121
+ @apply text-lg md:text-xl lg:text-2xl;
99
122
  }
100
123
 
124
+ /* Blockquote - keeping minimal spacing */
101
125
  blockquote {
102
- @apply mt-2 border-l-2 pl-6 italic;
126
+ @apply border-l-2 border-muted italic;
127
+ @apply pl-4 md:pl-5 lg:pl-6;
103
128
  }
104
129
 
105
130
  .prose {
131
+ /* Base font size and line height - responsive */
132
+ @apply text-sm md:text-base lg:text-lg;
133
+ @apply leading-6 md:leading-7 lg:leading-8;
134
+
135
+ /* Headings */
106
136
  h1 {
107
- @apply scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl;
137
+ @apply scroll-m-20 font-extrabold tracking-tight;
138
+ @apply text-[1.875rem] md:text-4xl lg:text-5xl;
139
+ @apply leading-9 md:leading-10 lg:leading-12;
140
+ @apply mt-0 mb-3 md:mb-4 lg:mb-5;
108
141
  }
109
142
 
110
143
  h2 {
111
- @apply scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0;
144
+ @apply scroll-m-20 font-semibold tracking-tight transition-colors;
145
+ @apply text-xl md:text-2xl lg:text-[1.875rem];
146
+ @apply leading-7 md:leading-8 lg:leading-10;
147
+ @apply mt-4 md:mt-5 lg:mt-6 mb-2 md:mb-3 lg:mb-3;
148
+ @apply border-b pb-2;
149
+
150
+ &:first-child {
151
+ @apply mt-0;
152
+ }
112
153
  }
113
154
 
114
155
  h3 {
115
- @apply scroll-m-20 text-2xl font-semibold tracking-tight;
156
+ @apply scroll-m-20 font-semibold tracking-tight;
157
+ @apply text-lg md:text-xl lg:text-2xl;
158
+ @apply leading-7 md:leading-8 lg:leading-9;
159
+ @apply mt-3 md:mt-4 lg:mt-5 mb-1.5 md:mb-2 lg:mb-2;
116
160
  }
117
161
 
118
162
  h4 {
119
- @apply scroll-m-20 text-xl font-semibold tracking-tight;
163
+ @apply scroll-m-20 font-semibold tracking-tight;
164
+ @apply text-base md:text-lg lg:text-xl;
165
+ @apply leading-6 md:leading-7 lg:leading-7;
166
+ @apply mt-3 md:mt-3 lg:mt-4 mb-1.5;
120
167
  }
121
168
 
122
169
  h5 {
123
- @apply scroll-m-20 text-lg font-semibold tracking-tight;
170
+ @apply scroll-m-20 font-semibold tracking-tight;
171
+ @apply text-sm md:text-base lg:text-lg;
172
+ @apply leading-5 md:leading-6 lg:leading-7;
173
+ @apply mt-3 md:mt-3 lg:mt-4 mb-1.5;
124
174
  }
125
175
 
126
176
  h6 {
127
- @apply scroll-m-20 text-base font-semibold tracking-tight;
177
+ @apply scroll-m-20 font-semibold tracking-tight;
178
+ @apply text-xs md:text-sm lg:text-base;
179
+ @apply leading-4 md:leading-5 lg:leading-6;
180
+ @apply mt-3 md:mt-3 lg:mt-4 mb-1.5;
128
181
  }
129
182
 
183
+ /* Reset margins after headings */
184
+ h2+*,
185
+ h3+*,
186
+ h4+* {
187
+ @apply mt-0;
188
+ }
189
+
190
+ /* Paragraphs */
130
191
  p {
131
- @apply leading-7 text-on-muted;
132
- &:not(:first-child) {
133
- @apply mt-2 md:mt-3;
134
- }
192
+ @apply text-on-muted;
193
+ @apply mt-4 md:mt-5 lg:mt-6 mb-4 md:mb-5 lg:mb-6;
194
+ }
195
+
196
+ /* Lead paragraph */
197
+ [class~='lead'] {
198
+ @apply text-base md:text-lg lg:text-xl;
199
+ @apply leading-7 md:leading-8 lg:leading-8;
200
+ @apply mt-4 md:mt-6 lg:mt-6 mb-4 md:mb-6 lg:mb-6;
201
+ }
202
+
203
+ /* Lists */
204
+ ul,
205
+ ol {
206
+ @apply mt-4 md:mt-5 lg:mt-6 mb-4 md:mb-5 lg:mb-6;
207
+ @apply pl-5.5 md:pl-6.5 lg:pl-6.5;
135
208
  }
136
209
 
137
210
  ul {
138
- @apply my-6 ml-6 list-disc space-y-2;
211
+ @apply list-disc;
139
212
  }
140
213
 
141
214
  ol {
142
- @apply my-6 ml-6 list-decimal space-y-2;
215
+ @apply list-decimal;
143
216
  }
144
217
 
145
218
  li {
146
- @apply leading-7;
147
- > ul,
148
- > ol {
149
- @apply my-2;
150
- }
219
+ @apply mt-1 md:mt-2 lg:mt-2 mb-1 md:mb-2 lg:mb-2;
220
+ @apply pl-1.5 md:pl-1.5 lg:pl-1.5;
221
+ }
222
+
223
+ >ul>li p,
224
+ >ol>li p {
225
+ @apply mt-2 md:mt-3 lg:mt-3 mb-2 md:mb-3 lg:mb-3;
226
+ }
227
+
228
+ >ul>li>p:first-child,
229
+ >ol>li>p:first-child {
230
+ @apply mt-4 md:mt-5 lg:mt-5;
231
+ }
232
+
233
+ >ul>li>p:last-child,
234
+ >ol>li>p:last-child {
235
+ @apply mb-4 md:mb-5 lg:mb-5;
236
+ }
237
+
238
+ ul ul,
239
+ ul ol,
240
+ ol ul,
241
+ ol ol {
242
+ @apply mt-2 md:mt-3 lg:mb-3 mb-2 md:mb-3;
243
+ }
244
+
245
+ /* Definition lists */
246
+ dl {
247
+ @apply mt-4 md:mt-5 lg:mt-6 mb-4 md:mb-5 lg:mb-6;
248
+ }
249
+
250
+ dt {
251
+ @apply font-semibold mt-4 md:mt-5 lg:mt-5;
252
+ }
253
+
254
+ dd {
255
+ @apply mt-1 md:mt-2 lg:mt-2;
256
+ @apply pl-5.5 md:pl-6.5 lg:pl-6.5;
151
257
  }
152
258
 
259
+ /* Links */
153
260
  a {
154
- @apply font-medium text-primary underline underline-offset-4 hover:text-primary/80 transition-colors;
261
+ @apply font-medium text-primary underline underline-offset-4;
262
+ @apply hover:text-primary/80 transition-colors;
155
263
  }
156
264
 
265
+ /* Inline code */
157
266
  code {
158
- @apply relative rounded bg-muted text-on-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold;
267
+ @apply relative rounded bg-muted text-on-muted font-mono font-semibold;
268
+ @apply px-[0.3rem] py-[0.2rem];
269
+ @apply text-[0.75rem] md:text-[0.875rem] lg:text-base;
270
+ }
271
+
272
+ h2 code {
273
+ @apply text-[0.875rem] md:text-[1.3125rem] lg:text-[1.625rem];
274
+ }
275
+
276
+ h3 code {
277
+ @apply text-base md:text-[1.125rem] lg:text-[1.3125rem];
159
278
  }
160
279
 
280
+ /* Code blocks */
161
281
  pre {
162
- @apply my-6 overflow-x-auto rounded-lg bg-muted text-on-muted p-4;
282
+ @apply overflow-x-auto rounded-lg bg-muted text-on-muted;
283
+ @apply mt-5 md:mt-6 lg:mt-8 mb-5 md:mb-6 lg:mb-8;
284
+ @apply pt-2 md:pt-3 lg:pt-3 pb-2 md:pb-3 lg:pb-3;
285
+ @apply px-3 md:px-4 lg:px-4;
286
+ @apply text-[0.75rem] md:text-[0.875rem] lg:text-base;
287
+ @apply leading-5 md:leading-6 lg:leading-7;
288
+
163
289
  code {
164
290
  @apply bg-transparent p-0;
165
291
  }
166
292
  }
167
293
 
294
+ /* Blockquotes */
168
295
  blockquote {
169
- @apply my-6 border-l-4 border-muted pl-6 italic text-on-muted;
296
+ @apply border-l-4 border-muted italic text-on-muted;
297
+ @apply mt-6 md:mt-8 lg:mt-10 mb-6 md:mb-8 lg:mb-10;
298
+ @apply pl-5 md:pl-5 lg:pl-6;
170
299
  }
171
300
 
301
+ /* Horizontal rules */
172
302
  hr {
173
- @apply my-8 border-muted;
303
+ @apply border-muted;
304
+ @apply my-10 md:my-12 lg:my-12;
174
305
  }
175
306
 
176
- img {
177
- @apply my-6 rounded-ui;
307
+ hr+* {
308
+ @apply mt-0;
178
309
  }
179
310
 
311
+ /* Images and media */
312
+ img,
313
+ video,
314
+ picture {
315
+ @apply mt-6 md:mt-8 lg:mt-8 mb-6 md:mb-8 lg:mb-8;
316
+ @apply rounded-ui;
317
+ }
318
+
319
+ picture>img {
320
+ @apply mt-0 mb-0;
321
+ }
322
+
323
+ /* Figures */
324
+ figure {
325
+ @apply mt-6 md:mt-8 lg:mt-8 mb-6 md:mb-8 lg:mb-8;
326
+ }
327
+
328
+ figure>* {
329
+ @apply mt-0 mb-0;
330
+ }
331
+
332
+ figcaption {
333
+ @apply text-[0.75rem] md:text-[0.875rem] lg:text-[0.875rem];
334
+ @apply leading-4 md:leading-5 lg:leading-5;
335
+ @apply mt-2 md:mt-3 lg:mt-3;
336
+ }
337
+
338
+ /* Tables */
339
+ table {
340
+ @apply w-full text-left;
341
+ @apply text-[0.75rem] md:text-[0.875rem] lg:text-base;
342
+ @apply leading-4.5 md:leading-6 lg:leading-6;
343
+ }
344
+
345
+ thead th {
346
+ @apply font-semibold align-bottom;
347
+ @apply px-2 md:px-2 lg:px-2 pb-2 md:pb-2 lg:pb-2;
348
+ }
349
+
350
+ thead th:first-child {
351
+ @apply pl-0;
352
+ }
353
+
354
+ thead th:last-child {
355
+ @apply pr-0;
356
+ }
357
+
358
+ tbody td,
359
+ tfoot td {
360
+ @apply align-baseline;
361
+ @apply px-2 md:px-2 lg:px-2 py-2 md:py-2 lg:py-2;
362
+ }
363
+
364
+ tbody td:first-child,
365
+ tfoot td:first-child {
366
+ @apply pl-0;
367
+ }
368
+
369
+ tbody td:last-child,
370
+ tfoot td:last-child {
371
+ @apply pr-0;
372
+ }
373
+
374
+ /* Keyboard input */
375
+ kbd {
376
+ @apply font-mono font-semibold;
377
+ @apply rounded bg-muted text-on-muted;
378
+ @apply text-[0.75rem] md:text-[0.875rem] lg:text-base;
379
+ @apply px-1.5 md:px-1.5 lg:px-2;
380
+ @apply py-0.5 md:py-0.75 lg:py-1;
381
+ }
382
+
383
+ /* Text formatting */
180
384
  strong {
181
385
  @apply font-semibold;
182
386
  }
@@ -184,9 +388,22 @@
184
388
  em {
185
389
  @apply italic;
186
390
  }
391
+
392
+ /* Reset first and last child margins */
393
+ > :first-child {
394
+ @apply mt-0;
395
+ }
396
+
397
+ > :last-child {
398
+ @apply mb-0;
399
+ }
187
400
  }
188
401
 
189
402
  .icon {
190
403
  @apply h-full w-auto;
191
404
  }
192
- }
405
+
406
+ .boxed {
407
+ @apply container mx-auto;
408
+ }
409
+ }
@@ -5,10 +5,6 @@
5
5
  }
6
6
  }
7
7
 
8
- @utility boxed {
9
- @apply container mx-auto;
10
- }
11
-
12
8
  @utility row {
13
9
  @apply flex flex-row;
14
10
  }
@@ -18,7 +18,7 @@
18
18
  items: AccordionItem[];
19
19
  variant?: 'primary' | 'secondary' | 'muted' | 'outline';
20
20
  multiple?: boolean;
21
- class?: string;
21
+ rootClass?: string;
22
22
  itemClass?: string;
23
23
  headerClass?: string;
24
24
  contentClass?: string;
@@ -28,7 +28,7 @@
28
28
  items = [],
29
29
  variant = 'muted',
30
30
  multiple = false,
31
- class: className,
31
+ rootClass,
32
32
  itemClass,
33
33
  headerClass,
34
34
  contentClass
@@ -65,7 +65,7 @@
65
65
  }
66
66
  </script>
67
67
 
68
- <div class={cn('accordion', variants[variant], className)}>
68
+ <div class={cn('accordion', variants[variant], rootClass)}>
69
69
  {#each items as item}
70
70
  <div class={cn('accordion-item', itemClass, item.disabled && 'is-disabled')}>
71
71
  <!-- svelte-ignore a11y_click_events_have_key_events -->
@@ -10,7 +10,7 @@ type Props = {
10
10
  items: AccordionItem[];
11
11
  variant?: 'primary' | 'secondary' | 'muted' | 'outline';
12
12
  multiple?: boolean;
13
- class?: string;
13
+ rootClass?: string;
14
14
  itemClass?: string;
15
15
  headerClass?: string;
16
16
  contentClass?: string;
@@ -60,6 +60,4 @@
60
60
  </div>
61
61
  {/if}
62
62
  </div>
63
-
64
- <div class="alert-end"></div>
65
63
  </div>
@@ -6,7 +6,6 @@
6
6
  children: Snippet;
7
7
  header?: Snippet;
8
8
  footer?: Snippet;
9
- class?: string;
10
9
  cover?: string;
11
10
  variant?:
12
11
  | 'primary'
@@ -19,6 +18,7 @@
19
18
  | 'surface'
20
19
  | 'outlined'
21
20
  | 'ghost';
21
+ rootClass?: string;
22
22
  headerClass?: string;
23
23
  footerClass?: string;
24
24
  bodyClass?: string;
@@ -26,15 +26,13 @@
26
26
  overlayClass?: string;
27
27
  isSolid?: boolean;
28
28
  hasOverlay?: boolean;
29
- hasDivider?: boolean;
30
- hasShadow?: boolean;
31
29
  };
32
30
 
33
31
  const {
34
32
  children,
35
33
  header,
36
34
  footer,
37
- class: className,
35
+ rootClass,
38
36
  cover,
39
37
  variant = 'outlined',
40
38
  headerClass,
@@ -43,9 +41,7 @@
43
41
  coverClass,
44
42
  overlayClass,
45
43
  isSolid,
46
- hasOverlay,
47
- hasDivider,
48
- hasShadow
44
+ hasOverlay
49
45
  }: Props = $props();
50
46
 
51
47
  const variantClasses = {
@@ -62,16 +58,7 @@
62
58
  };
63
59
  </script>
64
60
 
65
- <div
66
- class={cn(
67
- 'card',
68
- variantClasses[variant],
69
- hasDivider && 'has-divider',
70
- hasShadow && 'has-shadow',
71
- isSolid && 'is-solid',
72
- className
73
- )}
74
- >
61
+ <div class={cn('card', variantClasses[variant], isSolid && 'is-solid', rootClass)}>
75
62
  {#if cover}
76
63
  <img src={cover} alt="cover" class={cn('card-cover', coverClass)} />
77
64
  {/if}
@@ -3,9 +3,9 @@ type Props = {
3
3
  children: Snippet;
4
4
  header?: Snippet;
5
5
  footer?: Snippet;
6
- class?: string;
7
6
  cover?: string;
8
7
  variant?: 'primary' | 'secondary' | 'muted' | 'success' | 'info' | 'warning' | 'danger' | 'surface' | 'outlined' | 'ghost';
8
+ rootClass?: string;
9
9
  headerClass?: string;
10
10
  footerClass?: string;
11
11
  bodyClass?: string;
@@ -13,8 +13,6 @@ type Props = {
13
13
  overlayClass?: string;
14
14
  isSolid?: boolean;
15
15
  hasOverlay?: boolean;
16
- hasDivider?: boolean;
17
- hasShadow?: boolean;
18
16
  };
19
17
  declare const Card: import("svelte").Component<Props, {}, "">;
20
18
  type Card = ReturnType<typeof Card>;
@@ -28,13 +28,13 @@
28
28
  variant?: 'primary' | 'secondary' | 'muted' | 'default';
29
29
  size?: 'sm' | 'md' | 'lg';
30
30
  indicatorType?: 'bar' | 'dot';
31
- class?: string;
31
+ rootClass?: string;
32
32
  slideClass?: string;
33
33
  onSlideChange?: (index: number) => void;
34
34
  };
35
35
 
36
36
  const {
37
- class: className,
37
+ rootClass,
38
38
  slideClass,
39
39
  slides = [],
40
40
  autoplay = false,
@@ -256,7 +256,7 @@
256
256
  });
257
257
  </script>
258
258
 
259
- <div class={cn('carousel', isVertical && 'is-vertical', className)}>
259
+ <div class={cn('carousel', isVertical && 'is-vertical', rootClass)}>
260
260
  <!-- svelte-ignore a11y_no_static_element_interactions -->
261
261
  <div
262
262
  class="carousel-viewport"
@@ -16,7 +16,7 @@ type Props = {
16
16
  variant?: 'primary' | 'secondary' | 'muted' | 'default';
17
17
  size?: 'sm' | 'md' | 'lg';
18
18
  indicatorType?: 'bar' | 'dot';
19
- class?: string;
19
+ rootClass?: string;
20
20
  slideClass?: string;
21
21
  onSlideChange?: (index: number) => void;
22
22
  };
@@ -13,7 +13,7 @@
13
13
  import type { Snippet } from 'svelte';
14
14
 
15
15
  type Props = {
16
- class?: string;
16
+ rootClass?: string;
17
17
  chat: ChatState;
18
18
  currentUserId: string;
19
19
  variant?:
@@ -35,7 +35,7 @@
35
35
  };
36
36
 
37
37
  let {
38
- class: className,
38
+ rootClass,
39
39
  chat,
40
40
  currentUserId,
41
41
  variant = 'primary',
@@ -124,7 +124,7 @@
124
124
  });
125
125
  </script>
126
126
 
127
- <div class={cn('chatbox', `chatbox-${variant}`, className)}>
127
+ <div class={cn('chatbox', `chatbox-${variant}`, rootClass)}>
128
128
  <!-- Header -->
129
129
  <div class="chatbox-header">
130
130
  <div class="chatbox-header-start">
@@ -1,7 +1,7 @@
1
1
  import type { ChatState } from '../hooks/use-chat.svelte.js';
2
2
  import type { Snippet } from 'svelte';
3
3
  type Props = {
4
- class?: string;
4
+ rootClass?: string;
5
5
  chat: ChatState;
6
6
  currentUserId: string;
7
7
  variant?: 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger' | 'muted' | 'outlined';