sv5ui 1.1.3 → 1.3.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 (187) hide show
  1. package/README.md +6 -0
  2. package/dist/Alert/Alert.svelte +33 -22
  3. package/dist/Alert/Alert.svelte.d.ts +1 -1
  4. package/dist/Alert/alert.types.d.ts +4 -0
  5. package/dist/Avatar/Avatar.svelte +72 -46
  6. package/dist/Avatar/avatar.types.d.ts +36 -3
  7. package/dist/Avatar/avatar.variants.d.ts +138 -0
  8. package/dist/Avatar/avatar.variants.js +23 -12
  9. package/dist/Avatar/index.d.ts +1 -1
  10. package/dist/AvatarGroup/AvatarGroup.svelte +11 -6
  11. package/dist/AvatarGroup/AvatarGroup.svelte.d.ts +1 -1
  12. package/dist/AvatarGroup/avatar-group.types.d.ts +18 -3
  13. package/dist/AvatarGroup/avatar-group.variants.d.ts +85 -0
  14. package/dist/AvatarGroup/avatar-group.variants.js +19 -29
  15. package/dist/Badge/Badge.svelte +4 -3
  16. package/dist/Badge/Badge.svelte.d.ts +1 -1
  17. package/dist/Badge/badge.types.d.ts +9 -0
  18. package/dist/Breadcrumb/Breadcrumb.svelte +20 -7
  19. package/dist/Breadcrumb/Breadcrumb.svelte.d.ts +1 -1
  20. package/dist/Breadcrumb/breadcrumb.types.d.ts +5 -1
  21. package/dist/Breadcrumb/breadcrumb.variants.d.ts +15 -5
  22. package/dist/Breadcrumb/breadcrumb.variants.js +7 -3
  23. package/dist/Button/Button.svelte +71 -16
  24. package/dist/Button/Button.svelte.d.ts +0 -1
  25. package/dist/Button/button.types.d.ts +61 -2
  26. package/dist/Calendar/Calendar.svelte +4 -0
  27. package/dist/Calendar/Calendar.svelte.d.ts +1 -1
  28. package/dist/Calendar/calendar.types.d.ts +4 -0
  29. package/dist/Card/Card.svelte +5 -4
  30. package/dist/Card/Card.svelte.d.ts +1 -1
  31. package/dist/Card/card.types.d.ts +5 -1
  32. package/dist/Checkbox/Checkbox.svelte +37 -11
  33. package/dist/Checkbox/Checkbox.svelte.d.ts +1 -1
  34. package/dist/Checkbox/checkbox.types.d.ts +16 -1
  35. package/dist/Checkbox/checkbox.variants.d.ts +90 -0
  36. package/dist/Checkbox/checkbox.variants.js +73 -4
  37. package/dist/CheckboxGroup/CheckboxGroup.svelte +215 -0
  38. package/dist/CheckboxGroup/CheckboxGroup.svelte.d.ts +5 -0
  39. package/dist/CheckboxGroup/checkbox-group.types.d.ts +130 -0
  40. package/dist/CheckboxGroup/checkbox-group.types.js +1 -0
  41. package/dist/CheckboxGroup/checkbox-group.variants.d.ts +553 -0
  42. package/dist/CheckboxGroup/checkbox-group.variants.js +231 -0
  43. package/dist/CheckboxGroup/index.d.ts +2 -0
  44. package/dist/CheckboxGroup/index.js +1 -0
  45. package/dist/Chip/Chip.svelte +3 -2
  46. package/dist/Chip/Chip.svelte.d.ts +1 -1
  47. package/dist/Chip/chip.types.d.ts +5 -1
  48. package/dist/Chip/chip.variants.d.ts +135 -45
  49. package/dist/Chip/chip.variants.js +9 -9
  50. package/dist/ContextMenu/ContextMenu.svelte +87 -77
  51. package/dist/ContextMenu/ContextMenu.svelte.d.ts +1 -1
  52. package/dist/ContextMenu/context-menu.types.d.ts +9 -3
  53. package/dist/ContextMenu/context-menu.types.js +1 -1
  54. package/dist/ContextMenu/context-menu.variants.d.ts +74 -160
  55. package/dist/ContextMenu/context-menu.variants.js +63 -95
  56. package/dist/DropdownMenu/DropdownMenu.svelte +37 -43
  57. package/dist/DropdownMenu/DropdownMenu.svelte.d.ts +1 -1
  58. package/dist/DropdownMenu/dropdown-menu.types.d.ts +9 -3
  59. package/dist/DropdownMenu/dropdown-menu.types.js +1 -1
  60. package/dist/DropdownMenu/dropdown-menu.variants.d.ts +79 -230
  61. package/dist/DropdownMenu/dropdown-menu.variants.js +68 -111
  62. package/dist/DropdownMenu/index.d.ts +1 -1
  63. package/dist/Empty/Empty.svelte +68 -33
  64. package/dist/Empty/Empty.svelte.d.ts +1 -1
  65. package/dist/Empty/empty.types.d.ts +26 -9
  66. package/dist/Empty/empty.variants.d.ts +150 -130
  67. package/dist/Empty/empty.variants.js +33 -324
  68. package/dist/FieldGroup/FieldGroup.svelte +11 -6
  69. package/dist/FieldGroup/FieldGroup.svelte.d.ts +1 -1
  70. package/dist/FieldGroup/field-group.types.d.ts +4 -0
  71. package/dist/FileUpload/FileUpload.svelte +561 -0
  72. package/dist/FileUpload/FileUpload.svelte.d.ts +8 -0
  73. package/dist/FileUpload/file-upload.types.d.ts +164 -0
  74. package/dist/FileUpload/file-upload.types.js +1 -0
  75. package/dist/FileUpload/file-upload.variants.d.ts +397 -0
  76. package/dist/FileUpload/file-upload.variants.js +224 -0
  77. package/dist/FileUpload/index.d.ts +2 -0
  78. package/dist/FileUpload/index.js +1 -0
  79. package/dist/FormField/FormField.svelte +17 -18
  80. package/dist/FormField/FormField.svelte.d.ts +1 -1
  81. package/dist/FormField/form-field.types.d.ts +4 -0
  82. package/dist/Icon/Icon.svelte +13 -7
  83. package/dist/Icon/icon.types.d.ts +18 -9
  84. package/dist/Input/Input.svelte +30 -29
  85. package/dist/Kbd/Kbd.svelte +13 -3
  86. package/dist/Kbd/Kbd.svelte.d.ts +1 -1
  87. package/dist/Kbd/index.d.ts +1 -1
  88. package/dist/Kbd/kbd.types.d.ts +15 -1
  89. package/dist/Kbd/kbd.variants.d.ts +92 -30
  90. package/dist/Kbd/kbd.variants.js +55 -35
  91. package/dist/Kbd/useKbd.svelte.d.ts +2 -2
  92. package/dist/Kbd/useKbd.svelte.js +34 -41
  93. package/dist/Link/Link.svelte +69 -24
  94. package/dist/Link/Link.svelte.d.ts +1 -1
  95. package/dist/Link/link.types.d.ts +26 -8
  96. package/dist/Link/link.variants.d.ts +35 -60
  97. package/dist/Link/link.variants.js +8 -110
  98. package/dist/Modal/Modal.svelte +9 -1
  99. package/dist/Modal/modal.types.d.ts +5 -0
  100. package/dist/Modal/modal.variants.d.ts +5 -0
  101. package/dist/Modal/modal.variants.js +1 -0
  102. package/dist/Pagination/Pagination.svelte +143 -94
  103. package/dist/Pagination/Pagination.svelte.d.ts +1 -1
  104. package/dist/Pagination/index.d.ts +1 -1
  105. package/dist/Pagination/pagination.types.d.ts +21 -2
  106. package/dist/Pagination/pagination.variants.d.ts +21 -387
  107. package/dist/Pagination/pagination.variants.js +63 -59
  108. package/dist/PinInput/PinInput.svelte +150 -0
  109. package/dist/PinInput/PinInput.svelte.d.ts +6 -0
  110. package/dist/PinInput/index.d.ts +2 -0
  111. package/dist/PinInput/index.js +1 -0
  112. package/dist/PinInput/pin-input.types.d.ts +99 -0
  113. package/dist/PinInput/pin-input.types.js +1 -0
  114. package/dist/PinInput/pin-input.variants.d.ts +303 -0
  115. package/dist/PinInput/pin-input.variants.js +196 -0
  116. package/dist/Popover/Popover.svelte +9 -12
  117. package/dist/Popover/Popover.svelte.d.ts +1 -1
  118. package/dist/Popover/popover.types.d.ts +4 -0
  119. package/dist/Popover/popover.variants.d.ts +5 -75
  120. package/dist/Popover/popover.variants.js +6 -16
  121. package/dist/Progress/Progress.svelte +58 -30
  122. package/dist/Progress/progress.types.d.ts +9 -1
  123. package/dist/Progress/progress.variants.d.ts +55 -25
  124. package/dist/Progress/progress.variants.js +34 -28
  125. package/dist/RadioGroup/RadioGroup.svelte +105 -61
  126. package/dist/RadioGroup/RadioGroup.svelte.d.ts +1 -1
  127. package/dist/RadioGroup/radio-group.types.d.ts +16 -1
  128. package/dist/RadioGroup/radio-group.variants.d.ts +90 -0
  129. package/dist/RadioGroup/radio-group.variants.js +73 -4
  130. package/dist/Select/Select.svelte +9 -6
  131. package/dist/Select/Select.svelte.d.ts +1 -1
  132. package/dist/Select/select.types.d.ts +4 -0
  133. package/dist/SelectMenu/SelectMenu.svelte +436 -0
  134. package/dist/SelectMenu/SelectMenu.svelte.d.ts +5 -0
  135. package/dist/SelectMenu/index.d.ts +2 -0
  136. package/dist/SelectMenu/index.js +1 -0
  137. package/dist/SelectMenu/select-menu.types.d.ts +262 -0
  138. package/dist/SelectMenu/select-menu.types.js +1 -0
  139. package/dist/SelectMenu/select-menu.variants.d.ts +759 -0
  140. package/dist/SelectMenu/select-menu.variants.js +33 -0
  141. package/dist/Separator/Separator.svelte +1 -2
  142. package/dist/Separator/separator.variants.d.ts +1 -5
  143. package/dist/Separator/separator.variants.js +2 -2
  144. package/dist/Skeleton/Skeleton.svelte +18 -2
  145. package/dist/Skeleton/Skeleton.svelte.d.ts +1 -1
  146. package/dist/Skeleton/skeleton.types.d.ts +10 -1
  147. package/dist/Slideover/Slideover.svelte +9 -1
  148. package/dist/Slideover/slideover.types.d.ts +5 -0
  149. package/dist/Slideover/slideover.variants.d.ts +20 -5
  150. package/dist/Slideover/slideover.variants.js +4 -29
  151. package/dist/Slider/Slider.svelte +135 -0
  152. package/dist/Slider/Slider.svelte.d.ts +6 -0
  153. package/dist/Slider/index.d.ts +2 -0
  154. package/dist/Slider/index.js +1 -0
  155. package/dist/Slider/slider.types.d.ts +55 -0
  156. package/dist/Slider/slider.types.js +1 -0
  157. package/dist/Slider/slider.variants.d.ts +383 -0
  158. package/dist/Slider/slider.variants.js +102 -0
  159. package/dist/Switch/Switch.svelte +32 -31
  160. package/dist/Switch/Switch.svelte.d.ts +1 -1
  161. package/dist/Switch/switch.types.d.ts +6 -1
  162. package/dist/Switch/switch.variants.js +6 -6
  163. package/dist/Tabs/Tabs.svelte +6 -9
  164. package/dist/Tabs/Tabs.svelte.d.ts +1 -1
  165. package/dist/Tabs/tabs.types.d.ts +4 -0
  166. package/dist/Tabs/tabs.variants.js +2 -0
  167. package/dist/Textarea/Textarea.svelte +26 -25
  168. package/dist/ThemeModeButton/theme-mode-button.types.d.ts +7 -2
  169. package/dist/Timeline/Timeline.svelte +62 -19
  170. package/dist/Timeline/Timeline.svelte.d.ts +1 -1
  171. package/dist/Timeline/index.d.ts +1 -1
  172. package/dist/Timeline/timeline.types.d.ts +8 -0
  173. package/dist/Tooltip/Tooltip.svelte +12 -10
  174. package/dist/Tooltip/Tooltip.svelte.d.ts +1 -1
  175. package/dist/Tooltip/tooltip.types.d.ts +8 -4
  176. package/dist/Tooltip/tooltip.variants.d.ts +10 -75
  177. package/dist/Tooltip/tooltip.variants.js +8 -17
  178. package/dist/User/User.svelte +13 -9
  179. package/dist/User/User.svelte.d.ts +1 -1
  180. package/dist/User/user.types.d.ts +4 -0
  181. package/dist/User/user.variants.d.ts +60 -0
  182. package/dist/User/user.variants.js +13 -1
  183. package/dist/config.d.ts +8 -0
  184. package/dist/config.js +9 -1
  185. package/dist/index.d.ts +5 -0
  186. package/dist/index.js +5 -0
  187. package/package.json +2 -2
@@ -10,28 +10,18 @@ export const popoverVariants = tv({
10
10
  arrow: ''
11
11
  },
12
12
  variants: {
13
- side: {
14
- top: {
15
- content: 'data-[state=open]:animate-[slide-in-from-bottom_150ms_ease-out] data-[state=closed]:animate-[slide-in-from-top_100ms_ease-in_reverse]'
16
- },
17
- right: {
18
- content: 'data-[state=open]:animate-[slide-in-from-left_150ms_ease-out] data-[state=closed]:animate-[slide-in-from-right_100ms_ease-in_reverse]'
19
- },
20
- bottom: {
21
- content: 'data-[state=open]:animate-[slide-in-from-top_150ms_ease-out] data-[state=closed]:animate-[slide-in-from-bottom_100ms_ease-in_reverse]'
22
- },
23
- left: {
24
- content: 'data-[state=open]:animate-[slide-in-from-right_150ms_ease-out] data-[state=closed]:animate-[slide-in-from-left_100ms_ease-in_reverse]'
25
- }
26
- },
27
13
  transition: {
28
14
  true: {
29
- content: 'data-[state=open]:animate-[fade-in_150ms_ease-out,scale-in_150ms_ease-out] data-[state=closed]:animate-[fade-out_100ms_ease-in,scale-out_100ms_ease-in]'
15
+ content: [
16
+ 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',
17
+ 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',
18
+ 'data-[side=top]:slide-in-from-bottom-2 data-[side=right]:slide-in-from-left-2',
19
+ 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2'
20
+ ]
30
21
  }
31
22
  }
32
23
  },
33
24
  defaultVariants: {
34
- side: 'bottom',
35
25
  transition: true
36
26
  }
37
27
  });
@@ -24,30 +24,51 @@
24
24
  ui,
25
25
  class: className,
26
26
  statusSlot,
27
+ stepSlot,
27
28
  ...restProps
28
29
  }: Props = $props()
29
30
 
30
- const maxValue = $derived(Array.isArray(max) ? max.length - 1 : max)
31
- const percent = $derived(
32
- value !== null ? Math.round((Math.min(value, maxValue) / maxValue) * 100) : 0
33
- )
34
31
  const isIndeterminate = $derived(value === null)
35
- const state = $derived(isIndeterminate ? 'indeterminate' : 'determinate')
32
+ const hasSteps = $derived(Array.isArray(max))
33
+
34
+ const realMax = $derived.by(() => {
35
+ if (isIndeterminate || !max) return undefined
36
+ if (Array.isArray(max)) return max.length - 1
37
+ return Number(max)
38
+ })
39
+
40
+ const percent = $derived.by(() => {
41
+ if (isIndeterminate) return undefined
42
+ if (value! < 0) return 0
43
+ if (value! > (realMax ?? 100)) return 100
44
+ return Math.round((value! / (realMax ?? 100)) * 100)
45
+ })
36
46
 
37
47
  const indicatorStyle = $derived.by(() => {
38
- if (isIndeterminate) return ''
48
+ if (percent === undefined) return ''
39
49
  const offset = 100 - percent
40
- if (orientation === 'horizontal') {
41
- return inverted
42
- ? `transform: translateX(${offset}%);`
43
- : `transform: translateX(-${offset}%);`
50
+ if (orientation === 'vertical') {
51
+ return `transform: translateY(${inverted ? '' : '-'}${offset}%);`
44
52
  }
45
- // Vertical: fill from bottom to top (positive Y = down)
46
- return inverted
47
- ? `transform: translateY(-${offset}%);`
48
- : `transform: translateY(${offset}%);`
53
+ return `transform: translateX(${inverted ? '' : '-'}${offset}%);`
49
54
  })
50
55
 
56
+ const statusStyle = $derived.by(() => {
57
+ const val = `${Math.max(percent ?? 0, 0)}%`
58
+ return orientation === 'vertical' ? `height: ${val};` : `width: ${val};`
59
+ })
60
+
61
+ function stepVariant(index: number): 'active' | 'first' | 'last' | 'other' {
62
+ const isActive = index === Number(value)
63
+ const isFirst = index === 0
64
+ const isLast = index === realMax
65
+
66
+ if (isActive && !isFirst) return 'active'
67
+ if (isFirst && isActive) return 'first'
68
+ if (isLast && isActive) return 'last'
69
+ return 'other'
70
+ }
71
+
51
72
  const classes = $derived.by(() => {
52
73
  const slots = progressVariants({ animation, color, size, orientation, inverted })
53
74
  return {
@@ -55,24 +76,25 @@
55
76
  base: slots.base({ class: [config.slots.base, ui?.base] }),
56
77
  indicator: slots.indicator({ class: [config.slots.indicator, ui?.indicator] }),
57
78
  status: slots.status({ class: [config.slots.status, ui?.status] }),
58
- stepsBase: slots.steps({ class: [config.slots.steps, ui?.steps] }),
59
- stepActive: progressVariants({ size, step: 'active' }).steps(),
60
- stepOther: progressVariants({ size, step: 'other' }).steps()
79
+ steps: slots.steps({ class: [config.slots.steps, ui?.steps] })
61
80
  }
62
81
  })
82
+
83
+ const state = $derived(isIndeterminate ? 'indeterminate' : 'determinate')
63
84
  </script>
64
85
 
65
86
  <Progress.Root
66
87
  bind:ref
67
88
  value={value ?? undefined}
68
- max={maxValue}
89
+ max={realMax}
69
90
  class={classes.root}
91
+ data-orientation={orientation}
70
92
  {...restProps}
71
93
  >
72
- {#if status && !Array.isArray(max)}
73
- <div class={classes.status} style={isIndeterminate ? '' : `width: ${percent}%;`}>
94
+ {#if !isIndeterminate && status}
95
+ <div class={classes.status} style={statusStyle}>
74
96
  {#if statusSlot}
75
- {@render statusSlot({ percent })}
97
+ {@render statusSlot({ percent: percent ?? 0 })}
76
98
  {:else}
77
99
  {percent}%
78
100
  {/if}
@@ -83,16 +105,22 @@
83
105
  <div class={classes.indicator} data-state={state} style={indicatorStyle}></div>
84
106
  </div>
85
107
 
86
- {#if Array.isArray(max)}
87
- <div class={classes.stepsBase}>
108
+ {#if hasSteps && Array.isArray(max)}
109
+ <div class={classes.steps}>
88
110
  {#each max as step, index (index)}
89
- <span
90
- class={value !== null && index <= value
91
- ? classes.stepActive
92
- : classes.stepOther}
93
- >
94
- {step}
95
- </span>
111
+ {@const stepClass = progressVariants({
112
+ size,
113
+ orientation,
114
+ inverted,
115
+ step: stepVariant(index)
116
+ }).step({ class: [config.slots.step, ui?.step] })}
117
+ <div class={stepClass}>
118
+ {#if stepSlot}
119
+ {@render stepSlot({ step, index })}
120
+ {:else}
121
+ {step}
122
+ {/if}
123
+ </div>
96
124
  {/each}
97
125
  </div>
98
126
  {/if}
@@ -46,7 +46,7 @@ export type ProgressProps = Omit<Progress.RootProps, 'max'> & {
46
46
  animation?: NonNullable<ProgressVariantProps['animation']>;
47
47
  /**
48
48
  * Override styles for specific progress slots.
49
- * Available slots: root, base, indicator, status, steps.
49
+ * Available slots: root, base, indicator, status, steps, step.
50
50
  */
51
51
  ui?: Partial<Record<ProgressSlots, ClassNameValue>>;
52
52
  /**
@@ -60,4 +60,12 @@ export type ProgressProps = Omit<Progress.RootProps, 'max'> & {
60
60
  statusSlot?: Snippet<[{
61
61
  percent: number;
62
62
  }]>;
63
+ /**
64
+ * Custom content rendered for each step label.
65
+ * Takes precedence over the default step text.
66
+ */
67
+ stepSlot?: Snippet<[{
68
+ step: string;
69
+ index: number;
70
+ }]>;
63
71
  };
@@ -64,27 +64,32 @@ export declare const progressVariants: import("tailwind-variants").TVReturnType<
64
64
  };
65
65
  step: {
66
66
  active: {
67
- steps: string;
67
+ step: string;
68
+ };
69
+ first: {
70
+ step: string;
68
71
  };
69
- first: string;
70
72
  other: {
71
- steps: string;
73
+ step: string;
74
+ };
75
+ last: {
76
+ step: string;
72
77
  };
73
- last: string;
74
78
  };
75
79
  orientation: {
76
80
  horizontal: {
77
81
  root: string;
78
82
  base: string;
83
+ status: string;
79
84
  };
80
85
  vertical: {
81
86
  root: string;
82
87
  base: string;
88
+ status: string;
83
89
  };
84
90
  };
85
91
  inverted: {
86
92
  true: {
87
- root: string;
88
93
  status: string;
89
94
  };
90
95
  };
@@ -94,6 +99,7 @@ export declare const progressVariants: import("tailwind-variants").TVReturnType<
94
99
  indicator: string;
95
100
  status: string;
96
101
  steps: string;
102
+ step: string;
97
103
  }, undefined, {
98
104
  animation: {
99
105
  carousel: string;
@@ -159,27 +165,32 @@ export declare const progressVariants: import("tailwind-variants").TVReturnType<
159
165
  };
160
166
  step: {
161
167
  active: {
162
- steps: string;
168
+ step: string;
169
+ };
170
+ first: {
171
+ step: string;
163
172
  };
164
- first: string;
165
173
  other: {
166
- steps: string;
174
+ step: string;
175
+ };
176
+ last: {
177
+ step: string;
167
178
  };
168
- last: string;
169
179
  };
170
180
  orientation: {
171
181
  horizontal: {
172
182
  root: string;
173
183
  base: string;
184
+ status: string;
174
185
  };
175
186
  vertical: {
176
187
  root: string;
177
188
  base: string;
189
+ status: string;
178
190
  };
179
191
  };
180
192
  inverted: {
181
193
  true: {
182
- root: string;
183
194
  status: string;
184
195
  };
185
196
  };
@@ -189,6 +200,7 @@ export declare const progressVariants: import("tailwind-variants").TVReturnType<
189
200
  indicator: string;
190
201
  status: string;
191
202
  steps: string;
203
+ step: string;
192
204
  }, import("tailwind-variants").TVReturnType<{
193
205
  animation: {
194
206
  carousel: string;
@@ -254,27 +266,32 @@ export declare const progressVariants: import("tailwind-variants").TVReturnType<
254
266
  };
255
267
  step: {
256
268
  active: {
257
- steps: string;
269
+ step: string;
270
+ };
271
+ first: {
272
+ step: string;
258
273
  };
259
- first: string;
260
274
  other: {
261
- steps: string;
275
+ step: string;
276
+ };
277
+ last: {
278
+ step: string;
262
279
  };
263
- last: string;
264
280
  };
265
281
  orientation: {
266
282
  horizontal: {
267
283
  root: string;
268
284
  base: string;
285
+ status: string;
269
286
  };
270
287
  vertical: {
271
288
  root: string;
272
289
  base: string;
290
+ status: string;
273
291
  };
274
292
  };
275
293
  inverted: {
276
294
  true: {
277
- root: string;
278
295
  status: string;
279
296
  };
280
297
  };
@@ -284,6 +301,7 @@ export declare const progressVariants: import("tailwind-variants").TVReturnType<
284
301
  indicator: string;
285
302
  status: string;
286
303
  steps: string;
304
+ step: string;
287
305
  }, undefined, unknown, unknown, undefined>>;
288
306
  export type ProgressVariantProps = VariantProps<typeof progressVariants>;
289
307
  export type ProgressSlots = keyof ReturnType<typeof progressVariants>;
@@ -353,27 +371,32 @@ export declare const progressDefaults: {
353
371
  };
354
372
  step: {
355
373
  active: {
356
- steps: string;
374
+ step: string;
375
+ };
376
+ first: {
377
+ step: string;
357
378
  };
358
- first: string;
359
379
  other: {
360
- steps: string;
380
+ step: string;
381
+ };
382
+ last: {
383
+ step: string;
361
384
  };
362
- last: string;
363
385
  };
364
386
  orientation: {
365
387
  horizontal: {
366
388
  root: string;
367
389
  base: string;
390
+ status: string;
368
391
  };
369
392
  vertical: {
370
393
  root: string;
371
394
  base: string;
395
+ status: string;
372
396
  };
373
397
  };
374
398
  inverted: {
375
399
  true: {
376
- root: string;
377
400
  status: string;
378
401
  };
379
402
  };
@@ -383,6 +406,7 @@ export declare const progressDefaults: {
383
406
  indicator: string;
384
407
  status: string;
385
408
  steps: string;
409
+ step: string;
386
410
  }, {
387
411
  animation: {
388
412
  carousel: string;
@@ -448,27 +472,32 @@ export declare const progressDefaults: {
448
472
  };
449
473
  step: {
450
474
  active: {
451
- steps: string;
475
+ step: string;
476
+ };
477
+ first: {
478
+ step: string;
452
479
  };
453
- first: string;
454
480
  other: {
455
- steps: string;
481
+ step: string;
482
+ };
483
+ last: {
484
+ step: string;
456
485
  };
457
- last: string;
458
486
  };
459
487
  orientation: {
460
488
  horizontal: {
461
489
  root: string;
462
490
  base: string;
491
+ status: string;
463
492
  };
464
493
  vertical: {
465
494
  root: string;
466
495
  base: string;
496
+ status: string;
467
497
  };
468
498
  };
469
499
  inverted: {
470
500
  true: {
471
- root: string;
472
501
  status: string;
473
502
  };
474
503
  };
@@ -478,6 +507,7 @@ export declare const progressDefaults: {
478
507
  indicator: string;
479
508
  status: string;
480
509
  steps: string;
510
+ step: string;
481
511
  }>;
482
512
  slots: Partial<Record<ProgressSlots, string>>;
483
513
  };
@@ -4,8 +4,9 @@ export const progressVariants = tv({
4
4
  root: 'gap-2',
5
5
  base: 'relative overflow-hidden rounded-full bg-surface-container-highest',
6
6
  indicator: 'rounded-full size-full transition-transform duration-200 ease-out',
7
- status: 'text-end transition-[width] duration-200 text-on-surface-variant',
8
- steps: 'flex justify-between'
7
+ status: 'flex text-on-surface-variant transition-[width] duration-200',
8
+ steps: 'grid items-end',
9
+ step: 'truncate text-end row-start-1 col-start-1 transition-opacity'
9
10
  },
10
11
  variants: {
11
12
  animation: {
@@ -72,32 +73,53 @@ export const progressVariants = tv({
72
73
  },
73
74
  step: {
74
75
  active: {
75
- steps: 'text-on-surface'
76
+ step: 'opacity-100'
77
+ },
78
+ first: {
79
+ step: 'opacity-100 text-on-surface-variant'
76
80
  },
77
- first: '',
78
81
  other: {
79
- steps: 'text-on-surface-variant'
82
+ step: 'opacity-0'
80
83
  },
81
- last: ''
84
+ last: {
85
+ step: ''
86
+ }
82
87
  },
83
88
  orientation: {
84
89
  horizontal: {
85
- root: 'flex flex-col',
86
- base: 'w-full'
90
+ root: 'w-full flex flex-col',
91
+ base: 'w-full',
92
+ status: 'flex-row items-center justify-end min-w-fit'
87
93
  },
88
94
  vertical: {
89
- root: 'flex flex-row-reverse h-full',
90
- base: 'h-full'
95
+ root: 'h-full flex flex-row-reverse',
96
+ base: 'h-full',
97
+ status: 'flex-col justify-end min-h-fit'
91
98
  }
92
99
  },
93
100
  inverted: {
94
101
  true: {
95
- root: 'flex-col-reverse',
96
- status: 'text-start'
102
+ status: 'self-end'
97
103
  }
98
104
  }
99
105
  },
100
106
  compoundVariants: [
107
+ {
108
+ inverted: true,
109
+ orientation: 'horizontal',
110
+ class: {
111
+ step: 'text-start',
112
+ status: 'flex-row-reverse'
113
+ }
114
+ },
115
+ {
116
+ inverted: true,
117
+ orientation: 'vertical',
118
+ class: {
119
+ steps: 'items-start',
120
+ status: 'flex-col-reverse'
121
+ }
122
+ },
101
123
  { orientation: 'horizontal', size: '2xs', class: { base: 'h-px' } },
102
124
  { orientation: 'horizontal', size: 'xs', class: { base: 'h-0.5' } },
103
125
  { orientation: 'horizontal', size: 'sm', class: { base: 'h-1' } },
@@ -167,22 +189,6 @@ export const progressVariants = tv({
167
189
  class: {
168
190
  indicator: 'data-[state=indeterminate]:animate-[elastic-vertical_2s_ease-in-out_infinite]'
169
191
  }
170
- },
171
- {
172
- inverted: true,
173
- orientation: 'horizontal',
174
- class: {
175
- step: 'text-start',
176
- status: 'flex-row-reverse'
177
- }
178
- },
179
- {
180
- inverted: true,
181
- orientation: 'vertical',
182
- class: {
183
- steps: 'items-start',
184
- status: 'flex-col-reverse'
185
- }
186
192
  }
187
193
  ],
188
194
  defaultVariants: {