@kayord/ui 2.1.13 → 3.0.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 (292) hide show
  1. package/dist/components/ui/accordion/accordion-content.svelte +7 -2
  2. package/dist/components/ui/accordion/accordion-item.svelte +1 -1
  3. package/dist/components/ui/accordion/accordion-trigger.svelte +9 -3
  4. package/dist/components/ui/accordion/accordion.svelte +14 -2
  5. package/dist/components/ui/alert/alert-action.svelte +15 -0
  6. package/dist/components/ui/alert/alert-action.svelte.d.ts +5 -0
  7. package/dist/components/ui/alert/alert-description.svelte +1 -1
  8. package/dist/components/ui/alert/alert-title.svelte +4 -1
  9. package/dist/components/ui/alert/alert.svelte +2 -2
  10. package/dist/components/ui/alert/alert.svelte.d.ts +2 -2
  11. package/dist/components/ui/alert/index.d.ts +2 -1
  12. package/dist/components/ui/alert/index.js +3 -2
  13. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte +12 -3
  14. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte.d.ts +6 -1
  15. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte +12 -3
  16. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte.d.ts +6 -1
  17. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +4 -1
  18. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte.d.ts +1 -0
  19. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +4 -1
  20. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +4 -1
  21. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +4 -1
  22. package/dist/components/ui/alert-dialog/alert-dialog-media.svelte +23 -0
  23. package/dist/components/ui/alert-dialog/alert-dialog-media.svelte.d.ts +5 -0
  24. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +1 -1
  25. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +4 -1
  26. package/dist/components/ui/alert-dialog/index.d.ts +2 -1
  27. package/dist/components/ui/alert-dialog/index.js +3 -2
  28. package/dist/components/ui/avatar/avatar-badge.svelte +26 -0
  29. package/dist/components/ui/avatar/avatar-badge.svelte.d.ts +5 -0
  30. package/dist/components/ui/avatar/avatar-fallback.svelte +4 -1
  31. package/dist/components/ui/avatar/avatar-group-count.svelte +23 -0
  32. package/dist/components/ui/avatar/avatar-group-count.svelte.d.ts +5 -0
  33. package/dist/components/ui/avatar/avatar-group.svelte +23 -0
  34. package/dist/components/ui/avatar/avatar-group.svelte.d.ts +5 -0
  35. package/dist/components/ui/avatar/avatar-image.svelte +1 -1
  36. package/dist/components/ui/avatar/avatar.svelte +9 -2
  37. package/dist/components/ui/avatar/avatar.svelte.d.ts +4 -1
  38. package/dist/components/ui/avatar/index.d.ts +4 -1
  39. package/dist/components/ui/avatar/index.js +5 -2
  40. package/dist/components/ui/badge/badge.svelte +7 -5
  41. package/dist/components/ui/badge/badge.svelte.d.ts +8 -2
  42. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +3 -3
  43. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +1 -6
  44. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +1 -1
  45. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +1 -1
  46. package/dist/components/ui/breadcrumb/breadcrumb.svelte +8 -1
  47. package/dist/components/ui/button/button.svelte +18 -13
  48. package/dist/components/ui/button/button.svelte.d.ts +11 -5
  49. package/dist/components/ui/button-group/button-group-separator.svelte +4 -1
  50. package/dist/components/ui/button-group/button-group-text.svelte +2 -1
  51. package/dist/components/ui/button-group/button-group.svelte +3 -3
  52. package/dist/components/ui/button-group/button-group.svelte.d.ts +2 -2
  53. package/dist/components/ui/button-group/index.d.ts +2 -2
  54. package/dist/components/ui/button-group/index.js +2 -2
  55. package/dist/components/ui/calendar/calendar-cell.svelte +1 -1
  56. package/dist/components/ui/calendar/calendar-day.svelte +4 -6
  57. package/dist/components/ui/calendar/calendar-grid.svelte +1 -5
  58. package/dist/components/ui/calendar/calendar-month-select.svelte +2 -2
  59. package/dist/components/ui/calendar/calendar-month.svelte +1 -1
  60. package/dist/components/ui/calendar/calendar-next-button.svelte +7 -2
  61. package/dist/components/ui/calendar/calendar-prev-button.svelte +7 -2
  62. package/dist/components/ui/calendar/calendar-year-select.svelte +1 -1
  63. package/dist/components/ui/calendar/calendar.svelte +1 -1
  64. package/dist/components/ui/card/card-action.svelte +1 -1
  65. package/dist/components/ui/card/card-content.svelte +6 -1
  66. package/dist/components/ui/card/card-footer.svelte +1 -1
  67. package/dist/components/ui/card/card-header.svelte +1 -1
  68. package/dist/components/ui/card/card-title.svelte +6 -1
  69. package/dist/components/ui/card/card.svelte +7 -2
  70. package/dist/components/ui/card/card.svelte.d.ts +4 -1
  71. package/dist/components/ui/carousel/carousel-next.svelte +5 -4
  72. package/dist/components/ui/carousel/carousel-previous.svelte +5 -4
  73. package/dist/components/ui/carousel/carousel.svelte +1 -0
  74. package/dist/components/ui/chart/chart-container.svelte +1 -1
  75. package/dist/components/ui/chart/chart-tooltip.svelte +1 -0
  76. package/dist/components/ui/checkbox/checkbox.svelte +5 -5
  77. package/dist/components/ui/command/command-dialog.svelte +12 -10
  78. package/dist/components/ui/command/command-dialog.svelte.d.ts +3 -1
  79. package/dist/components/ui/command/command-group.svelte +4 -1
  80. package/dist/components/ui/command/command-input.svelte +17 -13
  81. package/dist/components/ui/command/command-item.svelte +9 -3
  82. package/dist/components/ui/command/command-list.svelte +1 -1
  83. package/dist/components/ui/command/command-shortcut.svelte +4 -1
  84. package/dist/components/ui/command/command.svelte +1 -1
  85. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +7 -4
  86. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +1 -0
  87. package/dist/components/ui/context-menu/context-menu-content.svelte +1 -1
  88. package/dist/components/ui/context-menu/context-menu-group-heading.svelte +1 -1
  89. package/dist/components/ui/context-menu/context-menu-item.svelte +1 -1
  90. package/dist/components/ui/context-menu/context-menu-label.svelte +1 -1
  91. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +9 -5
  92. package/dist/components/ui/context-menu/context-menu-radio-item.svelte.d.ts +5 -1
  93. package/dist/components/ui/context-menu/context-menu-shortcut.svelte +4 -1
  94. package/dist/components/ui/context-menu/context-menu-sub-content.svelte +1 -1
  95. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +3 -3
  96. package/dist/components/ui/context-menu/context-menu-trigger.svelte +8 -2
  97. package/dist/components/ui/dialog/dialog-close.svelte +2 -2
  98. package/dist/components/ui/dialog/dialog-content.svelte +10 -7
  99. package/dist/components/ui/dialog/dialog-description.svelte +4 -1
  100. package/dist/components/ui/dialog/dialog-footer.svelte +17 -2
  101. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +4 -1
  102. package/dist/components/ui/dialog/dialog-header.svelte +1 -6
  103. package/dist/components/ui/dialog/dialog-overlay.svelte +1 -1
  104. package/dist/components/ui/dialog/dialog-title.svelte +1 -1
  105. package/dist/components/ui/dialog/dialog-trigger.svelte +2 -2
  106. package/dist/components/ui/drawer/drawer-content.svelte +2 -6
  107. package/dist/components/ui/drawer/drawer-header.svelte +9 -1
  108. package/dist/components/ui/drawer/drawer-overlay.svelte +1 -1
  109. package/dist/components/ui/drawer/drawer-title.svelte +1 -1
  110. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +9 -6
  111. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +3 -1
  112. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +1 -1
  113. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +1 -1
  114. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +7 -4
  115. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +4 -1
  116. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +1 -1
  117. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +2 -2
  118. package/dist/components/ui/empty/empty-content.svelte +1 -1
  119. package/dist/components/ui/empty/empty-description.svelte +1 -1
  120. package/dist/components/ui/empty/empty-header.svelte +1 -1
  121. package/dist/components/ui/empty/empty-media.svelte +1 -1
  122. package/dist/components/ui/empty/empty-title.svelte +1 -1
  123. package/dist/components/ui/empty/empty.svelte +1 -1
  124. package/dist/components/ui/field/field-content.svelte +1 -1
  125. package/dist/components/ui/field/field-description.svelte +2 -2
  126. package/dist/components/ui/field/field-error.svelte +1 -1
  127. package/dist/components/ui/field/field-group.svelte +1 -1
  128. package/dist/components/ui/field/field-label.svelte +2 -3
  129. package/dist/components/ui/field/field-legend.svelte +1 -1
  130. package/dist/components/ui/field/field-separator.svelte +1 -1
  131. package/dist/components/ui/field/field-set.svelte +1 -2
  132. package/dist/components/ui/field/field-title.svelte +1 -1
  133. package/dist/components/ui/field/field.svelte +6 -12
  134. package/dist/components/ui/field/field.svelte.d.ts +8 -8
  135. package/dist/components/ui/hover-card/hover-card-content.svelte +1 -1
  136. package/dist/components/ui/index.d.ts +1 -0
  137. package/dist/components/ui/index.js +1 -0
  138. package/dist/components/ui/input/input.svelte +2 -6
  139. package/dist/components/ui/input-group/input-group-addon.svelte +5 -5
  140. package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +2 -2
  141. package/dist/components/ui/input-group/input-group-button.svelte +4 -4
  142. package/dist/components/ui/input-group/input-group-button.svelte.d.ts +2 -2
  143. package/dist/components/ui/input-group/input-group-input.svelte +1 -1
  144. package/dist/components/ui/input-group/input-group-textarea.svelte +1 -1
  145. package/dist/components/ui/input-group/input-group.svelte +1 -15
  146. package/dist/components/ui/input-otp/input-otp-group.svelte +9 -1
  147. package/dist/components/ui/input-otp/input-otp-separator.svelte +14 -2
  148. package/dist/components/ui/input-otp/input-otp-slot.svelte +3 -5
  149. package/dist/components/ui/input-otp/input-otp.svelte +5 -1
  150. package/dist/components/ui/item/item-content.svelte +4 -1
  151. package/dist/components/ui/item/item-description.svelte +1 -2
  152. package/dist/components/ui/item/item-group.svelte +4 -1
  153. package/dist/components/ui/item/item-media.svelte +4 -3
  154. package/dist/components/ui/item/item-media.svelte.d.ts +2 -2
  155. package/dist/components/ui/item/item-separator.svelte +1 -1
  156. package/dist/components/ui/item/item-title.svelte +4 -1
  157. package/dist/components/ui/item/item.svelte +6 -5
  158. package/dist/components/ui/item/item.svelte.d.ts +5 -2
  159. package/dist/components/ui/kbd/kbd.svelte +1 -3
  160. package/dist/components/ui/menubar/menubar-checkbox-item.svelte +13 -8
  161. package/dist/components/ui/menubar/menubar-checkbox-item.svelte.d.ts +1 -0
  162. package/dist/components/ui/menubar/menubar-content.svelte +2 -2
  163. package/dist/components/ui/menubar/menubar-item.svelte +1 -1
  164. package/dist/components/ui/menubar/menubar-label.svelte +1 -1
  165. package/dist/components/ui/menubar/menubar-radio-item.svelte +11 -5
  166. package/dist/components/ui/menubar/menubar-radio-item.svelte.d.ts +5 -1
  167. package/dist/components/ui/menubar/menubar-shortcut.svelte +4 -1
  168. package/dist/components/ui/menubar/menubar-sub-content.svelte +1 -1
  169. package/dist/components/ui/menubar/menubar-sub-trigger.svelte +3 -3
  170. package/dist/components/ui/menubar/menubar-trigger.svelte +1 -1
  171. package/dist/components/ui/menubar/menubar.svelte +1 -1
  172. package/dist/components/ui/native-select/native-select.svelte +15 -10
  173. package/dist/components/ui/native-select/native-select.svelte.d.ts +4 -1
  174. package/dist/components/ui/navigation-menu/navigation-menu-content.svelte +1 -2
  175. package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte +1 -1
  176. package/dist/components/ui/navigation-menu/navigation-menu-item.svelte +1 -1
  177. package/dist/components/ui/navigation-menu/navigation-menu-link.svelte +1 -1
  178. package/dist/components/ui/navigation-menu/navigation-menu-list.svelte +1 -1
  179. package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte +2 -4
  180. package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte.d.ts +1 -1
  181. package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte +1 -1
  182. package/dist/components/ui/navigation-menu/navigation-menu.svelte +1 -2
  183. package/dist/components/ui/pagination/index.d.ts +4 -4
  184. package/dist/components/ui/pagination/index.js +4 -4
  185. package/dist/components/ui/pagination/pagination-content.svelte +1 -6
  186. package/dist/components/ui/pagination/pagination-ellipsis.svelte +7 -4
  187. package/dist/components/ui/pagination/pagination-ellipsis.svelte.d.ts +1 -1
  188. package/dist/components/ui/pagination/pagination-link.svelte +14 -15
  189. package/dist/components/ui/pagination/pagination-link.svelte.d.ts +3 -2
  190. package/dist/components/ui/pagination/pagination-next-button.svelte +9 -11
  191. package/dist/components/ui/pagination/pagination-next.svelte +10 -20
  192. package/dist/components/ui/pagination/pagination-next.svelte.d.ts +13 -2
  193. package/dist/components/ui/pagination/pagination-prev-button.svelte +9 -11
  194. package/dist/components/ui/pagination/pagination-previous.svelte +10 -20
  195. package/dist/components/ui/pagination/pagination-previous.svelte.d.ts +13 -2
  196. package/dist/components/ui/pagination/pagination.svelte +1 -1
  197. package/dist/components/ui/popover/index.d.ts +4 -1
  198. package/dist/components/ui/popover/index.js +5 -2
  199. package/dist/components/ui/popover/popover-content.svelte +1 -1
  200. package/dist/components/ui/popover/popover-description.svelte +15 -0
  201. package/dist/components/ui/popover/popover-description.svelte.d.ts +5 -0
  202. package/dist/components/ui/popover/popover-header.svelte +15 -0
  203. package/dist/components/ui/popover/popover-header.svelte.d.ts +5 -0
  204. package/dist/components/ui/popover/popover-title.svelte +15 -0
  205. package/dist/components/ui/popover/popover-title.svelte.d.ts +5 -0
  206. package/dist/components/ui/progress/progress.svelte +2 -2
  207. package/dist/components/ui/radio-group/radio-group-item.svelte +5 -3
  208. package/dist/components/ui/radio-group/radio-group.svelte +1 -1
  209. package/dist/components/ui/range-calendar/range-calendar-cell.svelte +1 -1
  210. package/dist/components/ui/range-calendar/range-calendar-day.svelte +4 -7
  211. package/dist/components/ui/range-calendar/range-calendar-month-select.svelte +1 -1
  212. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +7 -2
  213. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +7 -2
  214. package/dist/components/ui/range-calendar/range-calendar-year-select.svelte +1 -1
  215. package/dist/components/ui/range-calendar/range-calendar.svelte +1 -1
  216. package/dist/components/ui/resizable/resizable-handle.svelte +2 -5
  217. package/dist/components/ui/resizable/resizable-pane-group.svelte +2 -1
  218. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +2 -3
  219. package/dist/components/ui/scroll-area/scroll-area.svelte +1 -1
  220. package/dist/components/ui/select/select-content.svelte +2 -2
  221. package/dist/components/ui/select/select-group.svelte +3 -2
  222. package/dist/components/ui/select/select-item.svelte +3 -3
  223. package/dist/components/ui/select/select-label.svelte +1 -1
  224. package/dist/components/ui/select/select-scroll-down-button.svelte +6 -3
  225. package/dist/components/ui/select/select-scroll-up-button.svelte +6 -3
  226. package/dist/components/ui/select/select-trigger.svelte +3 -3
  227. package/dist/components/ui/separator/separator.svelte +3 -1
  228. package/dist/components/ui/sheet/sheet-content.svelte +20 -27
  229. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +2 -24
  230. package/dist/components/ui/sheet/sheet-header.svelte +1 -1
  231. package/dist/components/ui/sheet/sheet-overlay.svelte +1 -4
  232. package/dist/components/ui/sheet/sheet-title.svelte +1 -1
  233. package/dist/components/ui/sidebar/sidebar-content.svelte +1 -1
  234. package/dist/components/ui/sidebar/sidebar-group-action.svelte +1 -4
  235. package/dist/components/ui/sidebar/sidebar-group-label.svelte +1 -2
  236. package/dist/components/ui/sidebar/sidebar-inset.svelte +1 -2
  237. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +2 -8
  238. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +1 -6
  239. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +2 -2
  240. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +2 -2
  241. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +1 -5
  242. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +1 -2
  243. package/dist/components/ui/sidebar/sidebar-menu.svelte +1 -1
  244. package/dist/components/ui/sidebar/sidebar-rail.svelte +4 -4
  245. package/dist/components/ui/sidebar/sidebar-separator.svelte +1 -1
  246. package/dist/components/ui/sidebar/sidebar-trigger.svelte +4 -3
  247. package/dist/components/ui/sidebar/sidebar.svelte +3 -3
  248. package/dist/components/ui/skeleton/skeleton.svelte +1 -1
  249. package/dist/components/ui/slider/slider.svelte +8 -8
  250. package/dist/components/ui/sonner/sonner.svelte +6 -6
  251. package/dist/components/ui/spinner/spinner.svelte +18 -4
  252. package/dist/components/ui/spinner/spinner.svelte.d.ts +2 -1
  253. package/dist/components/ui/stepper/ctx.d.ts +8 -0
  254. package/dist/components/ui/stepper/ctx.js +8 -0
  255. package/dist/components/ui/stepper/index.d.ts +8 -0
  256. package/dist/components/ui/stepper/index.js +8 -0
  257. package/dist/components/ui/stepper/stepper-description.svelte +7 -0
  258. package/dist/components/ui/stepper/stepper-description.svelte.d.ts +8 -0
  259. package/dist/components/ui/stepper/stepper-indicator.svelte +45 -0
  260. package/dist/components/ui/stepper/stepper-indicator.svelte.d.ts +10 -0
  261. package/dist/components/ui/stepper/stepper-item.svelte +33 -0
  262. package/dist/components/ui/stepper/stepper-item.svelte.d.ts +9 -0
  263. package/dist/components/ui/stepper/stepper-separator.svelte +28 -0
  264. package/dist/components/ui/stepper/stepper-separator.svelte.d.ts +6 -0
  265. package/dist/components/ui/stepper/stepper-title.svelte +7 -0
  266. package/dist/components/ui/stepper/stepper-title.svelte.d.ts +8 -0
  267. package/dist/components/ui/stepper/stepper-trigger.svelte +35 -0
  268. package/dist/components/ui/stepper/stepper-trigger.svelte.d.ts +10 -0
  269. package/dist/components/ui/stepper/stepper.svelte +35 -0
  270. package/dist/components/ui/stepper/stepper.svelte.d.ts +10 -0
  271. package/dist/components/ui/switch/switch.svelte +7 -5
  272. package/dist/components/ui/switch/switch.svelte.d.ts +5 -1
  273. package/dist/components/ui/table/table-cell.svelte +1 -1
  274. package/dist/components/ui/table/table-head.svelte +1 -1
  275. package/dist/components/ui/table/table-row.svelte +1 -4
  276. package/dist/components/ui/tabs/index.d.ts +2 -2
  277. package/dist/components/ui/tabs/index.js +2 -2
  278. package/dist/components/ui/tabs/tabs-content.svelte +6 -1
  279. package/dist/components/ui/tabs/tabs-list.svelte +29 -5
  280. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +22 -1
  281. package/dist/components/ui/tabs/tabs-trigger.svelte +4 -1
  282. package/dist/components/ui/tabs/tabs.svelte +7 -1
  283. package/dist/components/ui/textarea/textarea.svelte +1 -1
  284. package/dist/components/ui/toggle/toggle.svelte +5 -5
  285. package/dist/components/ui/toggle/toggle.svelte.d.ts +2 -2
  286. package/dist/components/ui/toggle-group/toggle-group-item.svelte +1 -1
  287. package/dist/components/ui/toggle-group/toggle-group.svelte +21 -5
  288. package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +2 -0
  289. package/dist/components/ui/tooltip/tooltip-content.svelte +6 -6
  290. package/dist/components/ui/tooltip/tooltip-provider.svelte +2 -2
  291. package/dist/components/ui/tooltip/tooltip.svelte +4 -1
  292. package/package.json +15 -15
@@ -21,29 +21,29 @@ get along, so we shut typescript up by casting `value` to `never`.
21
21
  data-slot="slider"
22
22
  {orientation}
23
23
  class={cn(
24
- "relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
24
+ "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col",
25
25
  className
26
26
  )}
27
27
  {...restProps}
28
28
  >
29
- {#snippet children({ thumbs })}
29
+ {#snippet children({ thumbItems })}
30
30
  <span
31
- data-orientation={orientation}
32
31
  data-slot="slider-track"
32
+ data-orientation={orientation}
33
33
  class={cn(
34
- "bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
34
+ "bg-muted bg-muted relative grow overflow-hidden rounded-full data-horizontal:h-1 data-horizontal:w-full data-horizontal:w-full data-vertical:h-full data-vertical:h-full data-vertical:w-1"
35
35
  )}
36
36
  >
37
37
  <SliderPrimitive.Range
38
38
  data-slot="slider-range"
39
- class={cn("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")}
39
+ class={cn("bg-primary absolute select-none data-horizontal:h-full data-vertical:w-full")}
40
40
  />
41
41
  </span>
42
- {#each thumbs as thumb (thumb)}
42
+ {#each thumbItems as thumb (thumb)}
43
43
  <SliderPrimitive.Thumb
44
44
  data-slot="slider-thumb"
45
- index={thumb}
46
- class="border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
45
+ index={thumb.index}
46
+ class="border-ring ring-ring/50 relative block size-3 shrink-0 rounded-full border bg-white transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50"
47
47
  />
48
48
  {/each}
49
49
  {/snippet}
@@ -1,13 +1,12 @@
1
1
  <script lang="ts">
2
- import CircleCheckIcon from "@lucide/svelte/icons/circle-check";
3
- import InfoIcon from "@lucide/svelte/icons/info";
2
+ import { Toaster as Sonner, type ToasterProps as SonnerProps } from "svelte-sonner";
3
+ import { mode } from "mode-watcher";
4
4
  import Loader2Icon from "@lucide/svelte/icons/loader-2";
5
+ import CircleCheckIcon from "@lucide/svelte/icons/circle-check";
5
6
  import OctagonXIcon from "@lucide/svelte/icons/octagon-x";
7
+ import InfoIcon from "@lucide/svelte/icons/info";
6
8
  import TriangleAlertIcon from "@lucide/svelte/icons/triangle-alert";
7
9
 
8
- import { Toaster as Sonner, type ToasterProps as SonnerProps } from "svelte-sonner";
9
- import { mode } from "mode-watcher";
10
-
11
10
  let { ...restProps }: SonnerProps = $props();
12
11
  </script>
13
12
 
@@ -16,7 +15,8 @@
16
15
  class="toaster group"
17
16
  style="--normal-bg: var(--color-popover); --normal-text: var(--color-popover-foreground); --normal-border: var(--color-border);"
18
17
  {...restProps}
19
- >{#snippet loadingIcon()}
18
+ >
19
+ {#snippet loadingIcon()}
20
20
  <Loader2Icon class="size-4 animate-spin" />
21
21
  {/snippet}
22
22
  {#snippet successIcon()}
@@ -1,9 +1,23 @@
1
1
  <script lang="ts">
2
2
  import { cn } from "../../../utils.js";
3
3
  import Loader2Icon from "@lucide/svelte/icons/loader-2";
4
- import type { ComponentProps } from "svelte";
5
-
6
- let { class: className, ...restProps }: ComponentProps<typeof Loader2Icon> = $props();
4
+ import type { SVGAttributes } from "svelte/elements";
5
+ let {
6
+ class: className,
7
+ role = "status",
8
+ // we add color and stroke for compatibility with different icon libraries props
9
+ color,
10
+ stroke,
11
+ "aria-label": ariaLabel = "Loading",
12
+ ...restProps
13
+ }: SVGAttributes<SVGSVGElement> = $props();
7
14
  </script>
8
15
 
9
- <Loader2Icon role="status" aria-label="Loading" class={cn("size-4 animate-spin", className)} {...restProps} />
16
+ <Loader2Icon
17
+ {role}
18
+ color={color === null ? undefined : color}
19
+ stroke={stroke === null ? undefined : stroke}
20
+ aria-label={ariaLabel}
21
+ class={cn("size-4 animate-spin", className)}
22
+ {...restProps as any}
23
+ />
@@ -1,3 +1,4 @@
1
- declare const Spinner: import("svelte").Component<import("@lucide/svelte").IconProps, {}, "">;
1
+ import type { SVGAttributes } from "svelte/elements";
2
+ declare const Spinner: import("svelte").Component<SVGAttributes<SVGSVGElement>, {}, "">;
2
3
  type Spinner = ReturnType<typeof Spinner>;
3
4
  export default Spinner;
@@ -0,0 +1,8 @@
1
+ type StepperContext = {
2
+ activeStep: () => number;
3
+ setStep: (step: number) => void;
4
+ orientation: () => "horizontal" | "vertical";
5
+ };
6
+ export declare function setStepperContext(props: StepperContext): void;
7
+ export declare function getStepperContext(): StepperContext;
8
+ export {};
@@ -0,0 +1,8 @@
1
+ import { getContext, setContext } from "svelte";
2
+ const STEPPER_KEY = Symbol("stepper");
3
+ export function setStepperContext(props) {
4
+ setContext(STEPPER_KEY, props);
5
+ }
6
+ export function getStepperContext() {
7
+ return getContext(STEPPER_KEY);
8
+ }
@@ -0,0 +1,8 @@
1
+ import Stepper from "./stepper.svelte";
2
+ import StepperItem from "./stepper-item.svelte";
3
+ import StepperTrigger from "./stepper-trigger.svelte";
4
+ import StepperIndicator from "./stepper-indicator.svelte";
5
+ import StepperSeparator from "./stepper-separator.svelte";
6
+ import StepperTitle from "./stepper-title.svelte";
7
+ import StepperDescription from "./stepper-description.svelte";
8
+ export { Stepper as Root, StepperItem as Item, StepperTrigger as Trigger, StepperIndicator as Indicator, StepperSeparator as Separator, StepperTitle as Title, StepperDescription as Description, };
@@ -0,0 +1,8 @@
1
+ import Stepper from "./stepper.svelte";
2
+ import StepperItem from "./stepper-item.svelte";
3
+ import StepperTrigger from "./stepper-trigger.svelte";
4
+ import StepperIndicator from "./stepper-indicator.svelte";
5
+ import StepperSeparator from "./stepper-separator.svelte";
6
+ import StepperTitle from "./stepper-title.svelte";
7
+ import StepperDescription from "./stepper-description.svelte";
8
+ export { Stepper as Root, StepperItem as Item, StepperTrigger as Trigger, StepperIndicator as Indicator, StepperSeparator as Separator, StepperTitle as Title, StepperDescription as Description, };
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { cn } from "../../../utils";
3
+ import type { Snippet } from "svelte";
4
+ let { class: className, children }: { class?: string; children: Snippet } = $props();
5
+ </script>
6
+
7
+ <p class={cn("text-muted-foreground text-xs", className)}>{@render children()}</p>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ class?: string;
4
+ children: Snippet;
5
+ };
6
+ declare const StepperDescription: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type StepperDescription = ReturnType<typeof StepperDescription>;
8
+ export default StepperDescription;
@@ -0,0 +1,45 @@
1
+ <script lang="ts">
2
+ import { cn } from "../../../utils";
3
+ import { Check } from "@lucide/svelte";
4
+ import { getStepperContext } from "./ctx";
5
+ import type { Snippet } from "svelte";
6
+
7
+ let {
8
+ step,
9
+ class: className,
10
+ children,
11
+ success,
12
+ }: {
13
+ step: number;
14
+ class?: string;
15
+ children?: Snippet;
16
+ success?: Snippet;
17
+ } = $props();
18
+
19
+ const ctx = getStepperContext();
20
+
21
+ let isCompleted = $derived(step < ctx.activeStep());
22
+ let isActive = $derived(step === ctx.activeStep());
23
+ </script>
24
+
25
+ <div
26
+ class={cn(
27
+ "relative flex h-10 w-10 items-center justify-center rounded-full border-2 text-sm font-semibold transition-colors duration-200",
28
+ isActive && "border-primary text-primary ring-primary/20 ring-2 ring-offset-2",
29
+ isCompleted && "border-primary bg-primary text-primary-foreground",
30
+ !isActive && !isCompleted && "border-muted-foreground/25 text-muted-foreground",
31
+ className
32
+ )}
33
+ >
34
+ {#if isCompleted}
35
+ {#if success}
36
+ {@render success()}
37
+ {:else}
38
+ <Check class="h-5 w-5" />
39
+ {/if}
40
+ {:else if children}
41
+ {@render children()}
42
+ {:else}
43
+ {step + 1}
44
+ {/if}
45
+ </div>
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ step: number;
4
+ class?: string;
5
+ children?: Snippet;
6
+ success?: Snippet;
7
+ };
8
+ declare const StepperIndicator: import("svelte").Component<$$ComponentProps, {}, "">;
9
+ type StepperIndicator = ReturnType<typeof StepperIndicator>;
10
+ export default StepperIndicator;
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import { cn } from "../../../utils";
3
+ import { getStepperContext } from "./ctx";
4
+ import type { Snippet } from "svelte";
5
+
6
+ let {
7
+ step,
8
+ class: className,
9
+ children,
10
+ }: {
11
+ step: number;
12
+ class?: string;
13
+ children: Snippet;
14
+ } = $props();
15
+
16
+ const ctx = getStepperContext();
17
+
18
+ let isCompleted = $derived(step < ctx.activeStep());
19
+ let isActive = $derived(step === ctx.activeStep());
20
+ let isVertical = $derived(ctx.orientation() === "vertical");
21
+ </script>
22
+
23
+ <div
24
+ data-state={isActive ? "active" : isCompleted ? "completed" : "inactive"}
25
+ class={cn(
26
+ "group flex items-center",
27
+ !isVertical && "flex-1 gap-4 last:flex-none",
28
+ isVertical && "relative flex-col items-start gap-0",
29
+ className
30
+ )}
31
+ >
32
+ {@render children()}
33
+ </div>
@@ -0,0 +1,9 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ step: number;
4
+ class?: string;
5
+ children: Snippet;
6
+ };
7
+ declare const StepperItem: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type StepperItem = ReturnType<typeof StepperItem>;
9
+ export default StepperItem;
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import { cn } from "../../../utils";
3
+ import { getStepperContext } from "./ctx";
4
+
5
+ let { class: className }: { class?: string } = $props();
6
+ const ctx = getStepperContext();
7
+ let isVertical = $derived(ctx.orientation() === "vertical");
8
+ </script>
9
+
10
+ <div
11
+ class={cn(
12
+ "bg-muted flex-1",
13
+
14
+ !isVertical && "-mt-8 mr-4 ml-4 h-[2px]",
15
+
16
+ isVertical && "absolute top-14 -bottom-4 left-[27px] w-[2px]",
17
+
18
+ className
19
+ )}
20
+ >
21
+ <div
22
+ class={cn(
23
+ "bg-primary transition-all duration-200 ease-in-out",
24
+ !isVertical && "h-full w-full origin-left scale-x-0 group-data-[state=completed]:scale-x-100",
25
+ isVertical && "h-full w-full origin-top scale-y-0 group-data-[state=completed]:scale-y-100"
26
+ )}
27
+ />
28
+ </div>
@@ -0,0 +1,6 @@
1
+ type $$ComponentProps = {
2
+ class?: string;
3
+ };
4
+ declare const StepperSeparator: import("svelte").Component<$$ComponentProps, {}, "">;
5
+ type StepperSeparator = ReturnType<typeof StepperSeparator>;
6
+ export default StepperSeparator;
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { cn } from "../../../utils";
3
+ import type { Snippet } from "svelte";
4
+ let { class: className, children }: { class?: string; children: Snippet } = $props();
5
+ </script>
6
+
7
+ <h3 class={cn("text-sm leading-none font-medium", className)}>{@render children()}</h3>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ class?: string;
4
+ children: Snippet;
5
+ };
6
+ declare const StepperTitle: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type StepperTitle = ReturnType<typeof StepperTitle>;
8
+ export default StepperTitle;
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ import { cn } from "../../../utils";
3
+ import { Button } from "../button";
4
+ import { getStepperContext } from "./ctx";
5
+ import type { Snippet } from "svelte";
6
+
7
+ let {
8
+ step,
9
+ class: className,
10
+ children,
11
+ ...rest
12
+ }: {
13
+ step: number;
14
+ class?: string;
15
+ children: Snippet;
16
+ [key: string]: any;
17
+ } = $props();
18
+
19
+ const ctx = getStepperContext();
20
+ let isVertical = $derived(ctx.orientation() === "vertical");
21
+ </script>
22
+
23
+ <Button
24
+ variant="ghost"
25
+ onclick={() => ctx.setStep(step)}
26
+ class={cn(
27
+ "flex h-auto items-center justify-center gap-3 p-2 hover:bg-transparent",
28
+ !isVertical && "flex-col",
29
+ isVertical && "flex-row justify-start",
30
+ className
31
+ )}
32
+ {...rest}
33
+ >
34
+ {@render children()}
35
+ </Button>
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ step: number;
4
+ class?: string;
5
+ children: Snippet;
6
+ [key: string]: any;
7
+ };
8
+ declare const StepperTrigger: import("svelte").Component<$$ComponentProps, {}, "">;
9
+ type StepperTrigger = ReturnType<typeof StepperTrigger>;
10
+ export default StepperTrigger;
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ import { cn } from "../../../utils";
3
+ import { setStepperContext } from "./ctx";
4
+ import type { Snippet } from "svelte";
5
+
6
+ let {
7
+ value = $bindable(0),
8
+ orientation = "horizontal",
9
+ class: className,
10
+ children,
11
+ }: {
12
+ value: number;
13
+ orientation?: "horizontal" | "vertical";
14
+ class?: string;
15
+ children: Snippet;
16
+ } = $props();
17
+
18
+ setStepperContext({
19
+ activeStep: () => value,
20
+ setStep: (s: number) => {
21
+ value = s;
22
+ },
23
+ orientation: () => orientation,
24
+ });
25
+ </script>
26
+
27
+ <div
28
+ class={cn(
29
+ "flex w-full gap-4",
30
+ orientation === "vertical" ? "flex-col" : "flex-row items-start justify-between",
31
+ className
32
+ )}
33
+ >
34
+ {@render children()}
35
+ </div>
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ value: number;
4
+ orientation?: "horizontal" | "vertical";
5
+ class?: string;
6
+ children: Snippet;
7
+ };
8
+ declare const Stepper: import("svelte").Component<$$ComponentProps, {}, "value">;
9
+ type Stepper = ReturnType<typeof Stepper>;
10
+ export default Stepper;
@@ -6,24 +6,26 @@
6
6
  ref = $bindable(null),
7
7
  class: className,
8
8
  checked = $bindable(false),
9
+ size = "default",
9
10
  ...restProps
10
- }: WithoutChildrenOrChild<SwitchPrimitive.RootProps> = $props();
11
+ }: WithoutChildrenOrChild<SwitchPrimitive.RootProps> & {
12
+ size?: "sm" | "default";
13
+ } = $props();
11
14
  </script>
12
15
 
13
16
  <SwitchPrimitive.Root
14
17
  bind:ref
15
18
  bind:checked
16
19
  data-slot="switch"
20
+ data-size={size}
17
21
  class={cn(
18
- "data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
22
+ "data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px]",
19
23
  className
20
24
  )}
21
25
  {...restProps}
22
26
  >
23
27
  <SwitchPrimitive.Thumb
24
28
  data-slot="switch-thumb"
25
- class={cn(
26
- "bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
27
- )}
29
+ class="bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 rtl:data-[state=checked]:translate-x-[calc(-100%)]"
28
30
  />
29
31
  </SwitchPrimitive.Root>
@@ -1,4 +1,8 @@
1
1
  import { Switch as SwitchPrimitive } from "bits-ui";
2
- declare const Switch: import("svelte").Component<Omit<Omit<SwitchPrimitive.RootProps, "child">, "children">, {}, "ref" | "checked">;
2
+ import { type WithoutChildrenOrChild } from "../../../utils.js";
3
+ type $$ComponentProps = WithoutChildrenOrChild<SwitchPrimitive.RootProps> & {
4
+ size?: "sm" | "default";
5
+ };
6
+ declare const Switch: import("svelte").Component<$$ComponentProps, {}, "ref" | "checked">;
3
7
  type Switch = ReturnType<typeof Switch>;
4
8
  export default Switch;
@@ -8,7 +8,7 @@
8
8
  <td
9
9
  bind:this={ref}
10
10
  data-slot="table-cell"
11
- class={cn("bg-clip-padding p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pe-0", className)}
11
+ class={cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className)}
12
12
  {...restProps}
13
13
  >
14
14
  {@render children?.()}
@@ -9,7 +9,7 @@
9
9
  bind:this={ref}
10
10
  data-slot="table-head"
11
11
  class={cn(
12
- "text-foreground h-10 bg-clip-padding px-2 text-start align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pe-0",
12
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",
13
13
  className
14
14
  )}
15
15
  {...restProps}
@@ -13,10 +13,7 @@
13
13
  <tr
14
14
  bind:this={ref}
15
15
  data-slot="table-row"
16
- class={cn(
17
- "hover:[&,&>svelte-css-wrapper]:[&>th,td]:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
18
- className
19
- )}
16
+ class={cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className)}
20
17
  {...restProps}
21
18
  >
22
19
  {@render children?.()}
@@ -1,5 +1,5 @@
1
1
  import Root from "./tabs.svelte";
2
2
  import Content from "./tabs-content.svelte";
3
- import List from "./tabs-list.svelte";
3
+ import List, { tabsListVariants, type TabsListVariant } from "./tabs-list.svelte";
4
4
  import Trigger from "./tabs-trigger.svelte";
5
- export { Root, Content, List, Trigger, Root as Tabs, Content as TabsContent, List as TabsList, Trigger as TabsTrigger, };
5
+ export { Root, Content, List, Trigger, tabsListVariants, type TabsListVariant, Root as Tabs, Content as TabsContent, List as TabsList, Trigger as TabsTrigger, };
@@ -1,7 +1,7 @@
1
1
  import Root from "./tabs.svelte";
2
2
  import Content from "./tabs-content.svelte";
3
- import List from "./tabs-list.svelte";
3
+ import List, { tabsListVariants } from "./tabs-list.svelte";
4
4
  import Trigger from "./tabs-trigger.svelte";
5
- export { Root, Content, List, Trigger,
5
+ export { Root, Content, List, Trigger, tabsListVariants,
6
6
  //
7
7
  Root as Tabs, Content as TabsContent, List as TabsList, Trigger as TabsTrigger, };
@@ -5,4 +5,9 @@
5
5
  let { ref = $bindable(null), class: className, ...restProps }: TabsPrimitive.ContentProps = $props();
6
6
  </script>
7
7
 
8
- <TabsPrimitive.Content bind:ref data-slot="tabs-content" class={cn("flex-1 outline-none", className)} {...restProps} />
8
+ <TabsPrimitive.Content
9
+ bind:ref
10
+ data-slot="tabs-content"
11
+ class={cn("flex-1 text-sm outline-none", className)}
12
+ {...restProps}
13
+ />
@@ -1,16 +1,40 @@
1
+ <script lang="ts" module>
2
+ import { tv, type VariantProps } from "tailwind-variants";
3
+
4
+ export const tabsListVariants = tv({
5
+ base: "rounded-lg p-[3px] group-data-horizontal/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",
6
+ variants: {
7
+ variant: {
8
+ default: "cn-tabs-list-variant-default bg-muted",
9
+ line: "cn-tabs-list-variant-line gap-1 bg-transparent",
10
+ },
11
+ },
12
+ defaultVariants: {
13
+ variant: "default",
14
+ },
15
+ });
16
+
17
+ export type TabsListVariant = VariantProps<typeof tabsListVariants>["variant"];
18
+ </script>
19
+
1
20
  <script lang="ts">
2
21
  import { Tabs as TabsPrimitive } from "bits-ui";
3
22
  import { cn } from "../../../utils.js";
4
23
 
5
- let { ref = $bindable(null), class: className, ...restProps }: TabsPrimitive.ListProps = $props();
24
+ let {
25
+ ref = $bindable(null),
26
+ variant = "default",
27
+ class: className,
28
+ ...restProps
29
+ }: TabsPrimitive.ListProps & {
30
+ variant?: TabsListVariant;
31
+ } = $props();
6
32
  </script>
7
33
 
8
34
  <TabsPrimitive.List
9
35
  bind:ref
10
36
  data-slot="tabs-list"
11
- class={cn(
12
- "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
13
- className
14
- )}
37
+ data-variant={variant}
38
+ class={cn(tabsListVariants({ variant }), className)}
15
39
  {...restProps}
16
40
  />
@@ -1,4 +1,25 @@
1
+ import { type VariantProps } from "tailwind-variants";
2
+ export declare const tabsListVariants: import("tailwind-variants").TVReturnType<{
3
+ variant: {
4
+ default: string;
5
+ line: string;
6
+ };
7
+ }, undefined, "rounded-lg p-[3px] group-data-horizontal/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col", {
8
+ variant: {
9
+ default: string;
10
+ line: string;
11
+ };
12
+ }, undefined, import("tailwind-variants").TVReturnType<{
13
+ variant: {
14
+ default: string;
15
+ line: string;
16
+ };
17
+ }, undefined, "rounded-lg p-[3px] group-data-horizontal/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col", unknown, unknown, undefined>>;
18
+ export type TabsListVariant = VariantProps<typeof tabsListVariants>["variant"];
1
19
  import { Tabs as TabsPrimitive } from "bits-ui";
2
- declare const TabsList: import("svelte").Component<TabsPrimitive.ListProps, {}, "ref">;
20
+ type $$ComponentProps = TabsPrimitive.ListProps & {
21
+ variant?: TabsListVariant;
22
+ };
23
+ declare const TabsList: import("svelte").Component<$$ComponentProps, {}, "ref">;
3
24
  type TabsList = ReturnType<typeof TabsList>;
4
25
  export default TabsList;
@@ -9,7 +9,10 @@
9
9
  bind:ref
10
10
  data-slot="tabs-trigger"
11
11
  class={cn(
12
- "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
12
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
13
+ "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent",
14
+ "data-active:bg-background dark:data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 data-active:text-foreground",
15
+ "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
13
16
  className
14
17
  )}
15
18
  {...restProps}
@@ -10,4 +10,10 @@
10
10
  }: TabsPrimitive.RootProps = $props();
11
11
  </script>
12
12
 
13
- <TabsPrimitive.Root bind:ref bind:value data-slot="tabs" class={cn("flex flex-col gap-2", className)} {...restProps} />
13
+ <TabsPrimitive.Root
14
+ bind:ref
15
+ bind:value
16
+ data-slot="tabs"
17
+ class={cn("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col", className)}
18
+ {...restProps}
19
+ />
@@ -15,7 +15,7 @@
15
15
  bind:this={ref}
16
16
  data-slot={dataSlot}
17
17
  class={cn(
18
- "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
18
+ "border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full rounded-lg border bg-transparent px-2.5 py-2 text-base transition-colors outline-none focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm",
19
19
  className
20
20
  )}
21
21
  bind:value