sv5ui 1.6.0 → 1.7.0

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 (33) hide show
  1. package/dist/Calendar/Calendar.svelte +48 -6
  2. package/dist/Calendar/calendar.types.d.ts +19 -0
  3. package/dist/Calendar/calendar.variants.js +2 -1
  4. package/dist/Carousel/Carousel.svelte +279 -0
  5. package/dist/Carousel/Carousel.svelte.d.ts +26 -0
  6. package/dist/Carousel/carousel.types.d.ts +242 -0
  7. package/dist/Carousel/carousel.types.js +1 -0
  8. package/dist/Carousel/carousel.variants.d.ts +408 -0
  9. package/dist/Carousel/carousel.variants.js +88 -0
  10. package/dist/Carousel/index.d.ts +2 -0
  11. package/dist/Carousel/index.js +1 -0
  12. package/dist/FileUpload/FileUpload.svelte +81 -10
  13. package/dist/FileUpload/file-upload.types.d.ts +39 -0
  14. package/dist/FileUpload/index.d.ts +1 -1
  15. package/dist/Modal/Modal.svelte +14 -3
  16. package/dist/Modal/modal.types.d.ts +15 -4
  17. package/dist/Modal/modal.variants.d.ts +110 -20
  18. package/dist/Modal/modal.variants.js +27 -9
  19. package/dist/PinInput/PinInput.svelte +18 -4
  20. package/dist/PinInput/pin-input.types.d.ts +11 -0
  21. package/dist/Select/Select.svelte +98 -28
  22. package/dist/Select/select.types.d.ts +44 -2
  23. package/dist/SelectMenu/SelectMenu.svelte +210 -25
  24. package/dist/SelectMenu/select-menu.types.d.ts +62 -1
  25. package/dist/SelectMenu/select-menu.variants.d.ts +26 -0
  26. package/dist/SelectMenu/select-menu.variants.js +34 -6
  27. package/dist/Slideover/Slideover.svelte +13 -2
  28. package/dist/Slideover/slideover.types.d.ts +14 -3
  29. package/dist/Slideover/slideover.variants.d.ts +85 -5
  30. package/dist/Slideover/slideover.variants.js +42 -12
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.js +1 -0
  33. package/package.json +6 -1
@@ -1,8 +1,17 @@
1
1
  import { type VariantProps } from 'tailwind-variants';
2
2
  export declare const slideoverVariants: import("tailwind-variants").TVReturnType<{
3
3
  transition: {
4
- true: {
4
+ none: {};
5
+ fade: {
6
+ overlay: string;
7
+ content: string;
8
+ };
9
+ slide: {
10
+ overlay: string;
11
+ };
12
+ scale: {
5
13
  overlay: string;
14
+ content: string;
6
15
  };
7
16
  };
8
17
  side: {
@@ -19,6 +28,13 @@ export declare const slideoverVariants: import("tailwind-variants").TVReturnType
19
28
  content: string;
20
29
  };
21
30
  };
31
+ size: {
32
+ sm: {};
33
+ md: {};
34
+ lg: {};
35
+ xl: {};
36
+ full: {};
37
+ };
22
38
  inset: {
23
39
  true: {};
24
40
  false: {
@@ -43,9 +59,18 @@ export declare const slideoverVariants: import("tailwind-variants").TVReturnType
43
59
  close: string;
44
60
  }, undefined, {
45
61
  transition: {
46
- true: {
62
+ none: {};
63
+ fade: {
64
+ overlay: string;
65
+ content: string;
66
+ };
67
+ slide: {
47
68
  overlay: string;
48
69
  };
70
+ scale: {
71
+ overlay: string;
72
+ content: string;
73
+ };
49
74
  };
50
75
  side: {
51
76
  top: {
@@ -61,6 +86,13 @@ export declare const slideoverVariants: import("tailwind-variants").TVReturnType
61
86
  content: string;
62
87
  };
63
88
  };
89
+ size: {
90
+ sm: {};
91
+ md: {};
92
+ lg: {};
93
+ xl: {};
94
+ full: {};
95
+ };
64
96
  inset: {
65
97
  true: {};
66
98
  false: {
@@ -85,9 +117,18 @@ export declare const slideoverVariants: import("tailwind-variants").TVReturnType
85
117
  close: string;
86
118
  }, import("tailwind-variants").TVReturnType<{
87
119
  transition: {
88
- true: {
120
+ none: {};
121
+ fade: {
122
+ overlay: string;
123
+ content: string;
124
+ };
125
+ slide: {
89
126
  overlay: string;
90
127
  };
128
+ scale: {
129
+ overlay: string;
130
+ content: string;
131
+ };
91
132
  };
92
133
  side: {
93
134
  top: {
@@ -103,6 +144,13 @@ export declare const slideoverVariants: import("tailwind-variants").TVReturnType
103
144
  content: string;
104
145
  };
105
146
  };
147
+ size: {
148
+ sm: {};
149
+ md: {};
150
+ lg: {};
151
+ xl: {};
152
+ full: {};
153
+ };
106
154
  inset: {
107
155
  true: {};
108
156
  false: {
@@ -131,8 +179,17 @@ export type SlideoverSlots = keyof ReturnType<typeof slideoverVariants>;
131
179
  export declare const slideoverDefaults: {
132
180
  defaultVariants: import("tailwind-variants").TVDefaultVariants<{
133
181
  transition: {
134
- true: {
182
+ none: {};
183
+ fade: {
184
+ overlay: string;
185
+ content: string;
186
+ };
187
+ slide: {
188
+ overlay: string;
189
+ };
190
+ scale: {
135
191
  overlay: string;
192
+ content: string;
136
193
  };
137
194
  };
138
195
  side: {
@@ -149,6 +206,13 @@ export declare const slideoverDefaults: {
149
206
  content: string;
150
207
  };
151
208
  };
209
+ size: {
210
+ sm: {};
211
+ md: {};
212
+ lg: {};
213
+ xl: {};
214
+ full: {};
215
+ };
152
216
  inset: {
153
217
  true: {};
154
218
  false: {
@@ -173,9 +237,18 @@ export declare const slideoverDefaults: {
173
237
  close: string;
174
238
  }, {
175
239
  transition: {
176
- true: {
240
+ none: {};
241
+ fade: {
242
+ overlay: string;
243
+ content: string;
244
+ };
245
+ slide: {
177
246
  overlay: string;
178
247
  };
248
+ scale: {
249
+ overlay: string;
250
+ content: string;
251
+ };
179
252
  };
180
253
  side: {
181
254
  top: {
@@ -191,6 +264,13 @@ export declare const slideoverDefaults: {
191
264
  content: string;
192
265
  };
193
266
  };
267
+ size: {
268
+ sm: {};
269
+ md: {};
270
+ lg: {};
271
+ xl: {};
272
+ full: {};
273
+ };
194
274
  inset: {
195
275
  true: {};
196
276
  false: {
@@ -14,24 +14,40 @@ export const slideoverVariants = tv({
14
14
  },
15
15
  variants: {
16
16
  transition: {
17
- true: {
17
+ none: {},
18
+ fade: {
19
+ overlay: 'data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_150ms_ease-in]',
20
+ content: 'data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_150ms_ease-in]'
21
+ },
22
+ slide: {
18
23
  overlay: 'data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_150ms_ease-in]'
24
+ },
25
+ scale: {
26
+ overlay: 'data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_150ms_ease-in]',
27
+ content: 'data-[state=open]:animate-[scale-in_200ms_cubic-bezier(0.32,0.72,0,1)] data-[state=closed]:animate-[scale-out_150ms_cubic-bezier(0.32,0.72,0,1)]'
19
28
  }
20
29
  },
21
30
  side: {
22
31
  top: {
23
- content: 'fixed top-0 inset-x-0 max-h-[90dvh]'
32
+ content: 'fixed top-0 inset-x-0'
24
33
  },
25
34
  right: {
26
- content: 'fixed right-0 inset-y-0 w-full max-w-md'
35
+ content: 'fixed right-0 inset-y-0 w-full'
27
36
  },
28
37
  bottom: {
29
- content: 'fixed bottom-0 inset-x-0 max-h-[90dvh]'
38
+ content: 'fixed bottom-0 inset-x-0'
30
39
  },
31
40
  left: {
32
- content: 'fixed left-0 inset-y-0 w-full max-w-md'
41
+ content: 'fixed left-0 inset-y-0 w-full'
33
42
  }
34
43
  },
44
+ size: {
45
+ sm: {},
46
+ md: {},
47
+ lg: {},
48
+ xl: {},
49
+ full: {}
50
+ },
35
51
  inset: {
36
52
  true: {},
37
53
  false: {
@@ -45,39 +61,52 @@ export const slideoverVariants = tv({
45
61
  }
46
62
  },
47
63
  compoundVariants: [
64
+ // Side-specific slide animations
48
65
  {
49
- transition: true,
66
+ transition: 'slide',
50
67
  side: 'top',
51
68
  class: {
52
69
  content: 'data-[state=open]:animate-[slide-in-full-top_200ms_ease-out,fade-in_200ms_ease-out] data-[state=closed]:animate-[slide-out-full-top_150ms_ease-in,fade-out_150ms_ease-in]'
53
70
  }
54
71
  },
55
72
  {
56
- transition: true,
73
+ transition: 'slide',
57
74
  side: 'right',
58
75
  class: {
59
76
  content: 'data-[state=open]:animate-[slide-in-full-right_200ms_ease-out,fade-in_200ms_ease-out] data-[state=closed]:animate-[slide-out-full-right_150ms_ease-in,fade-out_150ms_ease-in]'
60
77
  }
61
78
  },
62
79
  {
63
- transition: true,
80
+ transition: 'slide',
64
81
  side: 'bottom',
65
82
  class: {
66
83
  content: 'data-[state=open]:animate-[slide-in-full-bottom_200ms_ease-out,fade-in_200ms_ease-out] data-[state=closed]:animate-[slide-out-full-bottom_150ms_ease-in,fade-out_150ms_ease-in]'
67
84
  }
68
85
  },
69
86
  {
70
- transition: true,
87
+ transition: 'slide',
71
88
  side: 'left',
72
89
  class: {
73
90
  content: 'data-[state=open]:animate-[slide-in-full-left_200ms_ease-out,fade-in_200ms_ease-out] data-[state=closed]:animate-[slide-out-full-left_150ms_ease-in,fade-out_150ms_ease-in]'
74
91
  }
75
92
  },
93
+ // Sizes — left/right control width, top/bottom control height
94
+ { side: ['left', 'right'], size: 'sm', class: { content: 'max-w-sm' } },
95
+ { side: ['left', 'right'], size: 'md', class: { content: 'max-w-md' } },
96
+ { side: ['left', 'right'], size: 'lg', class: { content: 'max-w-lg' } },
97
+ { side: ['left', 'right'], size: 'xl', class: { content: 'max-w-xl' } },
98
+ { side: ['left', 'right'], size: 'full', class: { content: 'max-w-full' } },
99
+ { side: ['top', 'bottom'], size: 'sm', class: { content: 'max-h-[40dvh]' } },
100
+ { side: ['top', 'bottom'], size: 'md', class: { content: 'max-h-[60dvh]' } },
101
+ { side: ['top', 'bottom'], size: 'lg', class: { content: 'max-h-[75dvh]' } },
102
+ { side: ['top', 'bottom'], size: 'xl', class: { content: 'max-h-[90dvh]' } },
103
+ { side: ['top', 'bottom'], size: 'full', class: { content: 'max-h-full' } },
104
+ // Inset positioning + rounded corners + shadow ring per side
76
105
  {
77
106
  inset: true,
78
107
  side: 'top',
79
108
  class: {
80
- content: 'top-4 inset-x-4 max-h-[calc(90dvh-2rem)] rounded-xl shadow-lg ring ring-outline-variant'
109
+ content: 'top-4 inset-x-4 rounded-xl shadow-lg ring ring-outline-variant'
81
110
  }
82
111
  },
83
112
  {
@@ -91,7 +120,7 @@ export const slideoverVariants = tv({
91
120
  inset: true,
92
121
  side: 'bottom',
93
122
  class: {
94
- content: 'bottom-4 inset-x-4 max-h-[calc(90dvh-2rem)] rounded-xl shadow-lg ring ring-outline-variant'
123
+ content: 'bottom-4 inset-x-4 rounded-xl shadow-lg ring ring-outline-variant'
95
124
  }
96
125
  },
97
126
  {
@@ -103,8 +132,9 @@ export const slideoverVariants = tv({
103
132
  }
104
133
  ],
105
134
  defaultVariants: {
106
- transition: true,
135
+ transition: 'slide',
107
136
  side: 'right',
137
+ size: 'md',
108
138
  inset: false,
109
139
  overlay: true
110
140
  }
package/dist/index.d.ts CHANGED
@@ -46,6 +46,7 @@ export * from './PinInput/index.js';
46
46
  export * from './ThemeModeButton/index.js';
47
47
  export * from './Table/index.js';
48
48
  export * from './Toast/index.js';
49
+ export * from './Carousel/index.js';
49
50
  export * from './hooks/index.js';
50
51
  export { defineConfig } from './config.js';
51
52
  export type { UIConfig } from './config.js';
package/dist/index.js CHANGED
@@ -47,6 +47,7 @@ export * from './PinInput/index.js';
47
47
  export * from './ThemeModeButton/index.js';
48
48
  export * from './Table/index.js';
49
49
  export * from './Toast/index.js';
50
+ export * from './Carousel/index.js';
50
51
  // Composables
51
52
  export * from './hooks/index.js';
52
53
  // Configuration
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sv5ui",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "A modern Svelte 5 UI component library with Tailwind CSS",
5
5
  "author": "ndlabdev",
6
6
  "license": "MIT",
@@ -122,6 +122,11 @@
122
122
  "@internationalized/date": "^3.11.0",
123
123
  "@standard-schema/spec": "^1.1.0",
124
124
  "bits-ui": "^2.15.4",
125
+ "embla-carousel": "^8.6.0",
126
+ "embla-carousel-autoplay": "^8.6.0",
127
+ "embla-carousel-class-names": "^8.6.0",
128
+ "embla-carousel-fade": "^8.6.0",
129
+ "embla-carousel-svelte": "^8.6.0",
125
130
  "svelte-sonner": "^1.1.0",
126
131
  "tailwind-merge": "^3.4.0",
127
132
  "tailwind-variants": "^3.2.2",