@kayord/ui 2.1.14 → 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 (272) 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/input/input.svelte +2 -6
  137. package/dist/components/ui/input-group/input-group-addon.svelte +5 -5
  138. package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +2 -2
  139. package/dist/components/ui/input-group/input-group-button.svelte +4 -4
  140. package/dist/components/ui/input-group/input-group-button.svelte.d.ts +2 -2
  141. package/dist/components/ui/input-group/input-group-input.svelte +1 -1
  142. package/dist/components/ui/input-group/input-group-textarea.svelte +1 -1
  143. package/dist/components/ui/input-group/input-group.svelte +1 -15
  144. package/dist/components/ui/input-otp/input-otp-group.svelte +9 -1
  145. package/dist/components/ui/input-otp/input-otp-separator.svelte +14 -2
  146. package/dist/components/ui/input-otp/input-otp-slot.svelte +3 -5
  147. package/dist/components/ui/input-otp/input-otp.svelte +5 -1
  148. package/dist/components/ui/item/item-content.svelte +4 -1
  149. package/dist/components/ui/item/item-description.svelte +1 -2
  150. package/dist/components/ui/item/item-group.svelte +4 -1
  151. package/dist/components/ui/item/item-media.svelte +4 -3
  152. package/dist/components/ui/item/item-media.svelte.d.ts +2 -2
  153. package/dist/components/ui/item/item-separator.svelte +1 -1
  154. package/dist/components/ui/item/item-title.svelte +4 -1
  155. package/dist/components/ui/item/item.svelte +6 -5
  156. package/dist/components/ui/item/item.svelte.d.ts +5 -2
  157. package/dist/components/ui/kbd/kbd.svelte +1 -3
  158. package/dist/components/ui/menubar/menubar-checkbox-item.svelte +13 -8
  159. package/dist/components/ui/menubar/menubar-checkbox-item.svelte.d.ts +1 -0
  160. package/dist/components/ui/menubar/menubar-content.svelte +2 -2
  161. package/dist/components/ui/menubar/menubar-item.svelte +1 -1
  162. package/dist/components/ui/menubar/menubar-label.svelte +1 -1
  163. package/dist/components/ui/menubar/menubar-radio-item.svelte +11 -5
  164. package/dist/components/ui/menubar/menubar-radio-item.svelte.d.ts +5 -1
  165. package/dist/components/ui/menubar/menubar-shortcut.svelte +4 -1
  166. package/dist/components/ui/menubar/menubar-sub-content.svelte +1 -1
  167. package/dist/components/ui/menubar/menubar-sub-trigger.svelte +3 -3
  168. package/dist/components/ui/menubar/menubar-trigger.svelte +1 -1
  169. package/dist/components/ui/menubar/menubar.svelte +1 -1
  170. package/dist/components/ui/native-select/native-select.svelte +15 -10
  171. package/dist/components/ui/native-select/native-select.svelte.d.ts +4 -1
  172. package/dist/components/ui/navigation-menu/navigation-menu-content.svelte +1 -2
  173. package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte +1 -1
  174. package/dist/components/ui/navigation-menu/navigation-menu-item.svelte +1 -1
  175. package/dist/components/ui/navigation-menu/navigation-menu-link.svelte +1 -1
  176. package/dist/components/ui/navigation-menu/navigation-menu-list.svelte +1 -1
  177. package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte +2 -4
  178. package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte.d.ts +1 -1
  179. package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte +1 -1
  180. package/dist/components/ui/navigation-menu/navigation-menu.svelte +1 -2
  181. package/dist/components/ui/pagination/index.d.ts +4 -4
  182. package/dist/components/ui/pagination/index.js +4 -4
  183. package/dist/components/ui/pagination/pagination-content.svelte +1 -6
  184. package/dist/components/ui/pagination/pagination-ellipsis.svelte +7 -4
  185. package/dist/components/ui/pagination/pagination-ellipsis.svelte.d.ts +1 -1
  186. package/dist/components/ui/pagination/pagination-link.svelte +14 -15
  187. package/dist/components/ui/pagination/pagination-link.svelte.d.ts +3 -2
  188. package/dist/components/ui/pagination/pagination-next-button.svelte +9 -11
  189. package/dist/components/ui/pagination/pagination-next.svelte +10 -20
  190. package/dist/components/ui/pagination/pagination-next.svelte.d.ts +13 -2
  191. package/dist/components/ui/pagination/pagination-prev-button.svelte +9 -11
  192. package/dist/components/ui/pagination/pagination-previous.svelte +10 -20
  193. package/dist/components/ui/pagination/pagination-previous.svelte.d.ts +13 -2
  194. package/dist/components/ui/pagination/pagination.svelte +1 -1
  195. package/dist/components/ui/popover/index.d.ts +4 -1
  196. package/dist/components/ui/popover/index.js +5 -2
  197. package/dist/components/ui/popover/popover-content.svelte +1 -1
  198. package/dist/components/ui/popover/popover-description.svelte +15 -0
  199. package/dist/components/ui/popover/popover-description.svelte.d.ts +5 -0
  200. package/dist/components/ui/popover/popover-header.svelte +15 -0
  201. package/dist/components/ui/popover/popover-header.svelte.d.ts +5 -0
  202. package/dist/components/ui/popover/popover-title.svelte +15 -0
  203. package/dist/components/ui/popover/popover-title.svelte.d.ts +5 -0
  204. package/dist/components/ui/progress/progress.svelte +2 -2
  205. package/dist/components/ui/radio-group/radio-group-item.svelte +5 -3
  206. package/dist/components/ui/radio-group/radio-group.svelte +1 -1
  207. package/dist/components/ui/range-calendar/range-calendar-cell.svelte +1 -1
  208. package/dist/components/ui/range-calendar/range-calendar-day.svelte +4 -7
  209. package/dist/components/ui/range-calendar/range-calendar-month-select.svelte +1 -1
  210. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +7 -2
  211. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +7 -2
  212. package/dist/components/ui/range-calendar/range-calendar-year-select.svelte +1 -1
  213. package/dist/components/ui/range-calendar/range-calendar.svelte +1 -1
  214. package/dist/components/ui/resizable/resizable-handle.svelte +2 -5
  215. package/dist/components/ui/resizable/resizable-pane-group.svelte +2 -1
  216. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +2 -3
  217. package/dist/components/ui/scroll-area/scroll-area.svelte +1 -1
  218. package/dist/components/ui/select/select-content.svelte +2 -2
  219. package/dist/components/ui/select/select-group.svelte +3 -2
  220. package/dist/components/ui/select/select-item.svelte +3 -3
  221. package/dist/components/ui/select/select-label.svelte +1 -1
  222. package/dist/components/ui/select/select-scroll-down-button.svelte +6 -3
  223. package/dist/components/ui/select/select-scroll-up-button.svelte +6 -3
  224. package/dist/components/ui/select/select-trigger.svelte +3 -3
  225. package/dist/components/ui/separator/separator.svelte +3 -1
  226. package/dist/components/ui/sheet/sheet-content.svelte +20 -27
  227. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +2 -24
  228. package/dist/components/ui/sheet/sheet-header.svelte +1 -1
  229. package/dist/components/ui/sheet/sheet-overlay.svelte +1 -4
  230. package/dist/components/ui/sheet/sheet-title.svelte +1 -1
  231. package/dist/components/ui/sidebar/sidebar-content.svelte +1 -1
  232. package/dist/components/ui/sidebar/sidebar-group-action.svelte +1 -4
  233. package/dist/components/ui/sidebar/sidebar-group-label.svelte +1 -2
  234. package/dist/components/ui/sidebar/sidebar-inset.svelte +1 -2
  235. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +2 -8
  236. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +1 -6
  237. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +2 -2
  238. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +2 -2
  239. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +1 -5
  240. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +1 -2
  241. package/dist/components/ui/sidebar/sidebar-menu.svelte +1 -1
  242. package/dist/components/ui/sidebar/sidebar-rail.svelte +4 -4
  243. package/dist/components/ui/sidebar/sidebar-separator.svelte +1 -1
  244. package/dist/components/ui/sidebar/sidebar-trigger.svelte +3 -3
  245. package/dist/components/ui/sidebar/sidebar.svelte +3 -3
  246. package/dist/components/ui/skeleton/skeleton.svelte +1 -1
  247. package/dist/components/ui/slider/slider.svelte +8 -8
  248. package/dist/components/ui/sonner/sonner.svelte +6 -6
  249. package/dist/components/ui/spinner/spinner.svelte +18 -4
  250. package/dist/components/ui/spinner/spinner.svelte.d.ts +2 -1
  251. package/dist/components/ui/switch/switch.svelte +7 -5
  252. package/dist/components/ui/switch/switch.svelte.d.ts +5 -1
  253. package/dist/components/ui/table/table-cell.svelte +1 -1
  254. package/dist/components/ui/table/table-head.svelte +1 -1
  255. package/dist/components/ui/table/table-row.svelte +1 -4
  256. package/dist/components/ui/tabs/index.d.ts +2 -2
  257. package/dist/components/ui/tabs/index.js +2 -2
  258. package/dist/components/ui/tabs/tabs-content.svelte +6 -1
  259. package/dist/components/ui/tabs/tabs-list.svelte +29 -5
  260. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +22 -1
  261. package/dist/components/ui/tabs/tabs-trigger.svelte +4 -1
  262. package/dist/components/ui/tabs/tabs.svelte +7 -1
  263. package/dist/components/ui/textarea/textarea.svelte +1 -1
  264. package/dist/components/ui/toggle/toggle.svelte +5 -5
  265. package/dist/components/ui/toggle/toggle.svelte.d.ts +2 -2
  266. package/dist/components/ui/toggle-group/toggle-group-item.svelte +1 -1
  267. package/dist/components/ui/toggle-group/toggle-group.svelte +21 -5
  268. package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +2 -0
  269. package/dist/components/ui/tooltip/tooltip-content.svelte +6 -6
  270. package/dist/components/ui/tooltip/tooltip-provider.svelte +2 -2
  271. package/dist/components/ui/tooltip/tooltip.svelte +4 -1
  272. package/package.json +15 -15
@@ -10,6 +10,14 @@
10
10
  }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
11
  </script>
12
12
 
13
- <div bind:this={ref} data-slot="drawer-header" class={cn("flex flex-col gap-1.5 p-4", className)} {...restProps}>
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="drawer-header"
16
+ class={cn(
17
+ "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
14
22
  {@render children?.()}
15
23
  </div>
@@ -9,7 +9,7 @@
9
9
  bind:ref
10
10
  data-slot="drawer-overlay"
11
11
  class={cn(
12
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
12
+ "data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 supports-backdrop-filter:backdrop-blur-xs",
13
13
  className
14
14
  )}
15
15
  {...restProps}
@@ -8,6 +8,6 @@
8
8
  <DrawerPrimitive.Title
9
9
  bind:ref
10
10
  data-slot="drawer-title"
11
- class={cn("text-foreground font-semibold", className)}
11
+ class={cn("text-foreground text-base font-medium", className)}
12
12
  {...restProps}
13
13
  />
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui";
3
- import CheckIcon from "@lucide/svelte/icons/check";
4
3
  import MinusIcon from "@lucide/svelte/icons/minus";
4
+ import CheckIcon from "@lucide/svelte/icons/check";
5
5
  import { cn, type WithoutChildrenOrChild } from "../../../utils.js";
6
6
  import type { Snippet } from "svelte";
7
7
 
@@ -23,17 +23,20 @@
23
23
  bind:indeterminate
24
24
  data-slot="dropdown-menu-checkbox-item"
25
25
  class={cn(
26
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
26
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-inset:pl-7 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
27
27
  className
28
28
  )}
29
29
  {...restProps}
30
30
  >
31
31
  {#snippet children({ checked, indeterminate })}
32
- <span class="pointer-events-none absolute start-2 flex size-3.5 items-center justify-center">
32
+ <span
33
+ class="pointer-events-none absolute right-2 flex items-center justify-center"
34
+ data-slot="dropdown-menu-checkbox-item-indicator"
35
+ >
33
36
  {#if indeterminate}
34
- <MinusIcon class="size-4" />
35
- {:else}
36
- <CheckIcon class={cn("size-4", !checked && "text-transparent")} />
37
+ <MinusIcon />
38
+ {:else if checked}
39
+ <CheckIcon />
37
40
  {/if}
38
41
  </span>
39
42
  {@render childrenProp?.()}
@@ -7,6 +7,7 @@
7
7
  let {
8
8
  ref = $bindable(null),
9
9
  sideOffset = 4,
10
+ align = "start",
10
11
  portalProps,
11
12
  class: className,
12
13
  ...restProps
@@ -20,8 +21,9 @@
20
21
  bind:ref
21
22
  data-slot="dropdown-menu-content"
22
23
  {sideOffset}
24
+ {align}
23
25
  class={cn(
24
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--bits-dropdown-menu-content-available-height) min-w-[8rem] origin-(--bits-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md outline-none",
26
+ "data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 w-(--bits-dropdown-menu-anchor-width) min-w-32 overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100 outline-none data-closed:overflow-hidden",
25
27
  className
26
28
  )}
27
29
  {...restProps}
@@ -20,7 +20,7 @@
20
20
  data-inset={inset}
21
21
  data-variant={variant}
22
22
  class={cn(
23
- "data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:data-highlighted:bg-destructive/10 dark:data-[variant=destructive]:data-highlighted:bg-destructive/20 data-[variant=destructive]:data-highlighted:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:ps-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
23
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
24
24
  className
25
25
  )}
26
26
  {...restProps}
@@ -17,7 +17,7 @@
17
17
  bind:this={ref}
18
18
  data-slot="dropdown-menu-label"
19
19
  data-inset={inset}
20
- class={cn("px-2 py-1.5 text-sm font-semibold data-[inset]:ps-8", className)}
20
+ class={cn("text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:pl-7 data-[inset]:pl-8", className)}
21
21
  {...restProps}
22
22
  >
23
23
  {@render children?.()}
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui";
3
- import CircleIcon from "@lucide/svelte/icons/circle";
3
+ import CheckIcon from "@lucide/svelte/icons/check";
4
4
  import { cn, type WithoutChild } from "../../../utils.js";
5
5
 
6
6
  let {
@@ -15,15 +15,18 @@
15
15
  bind:ref
16
16
  data-slot="dropdown-menu-radio-item"
17
17
  class={cn(
18
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
18
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-inset:pl-7 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
19
19
  className
20
20
  )}
21
21
  {...restProps}
22
22
  >
23
23
  {#snippet children({ checked })}
24
- <span class="pointer-events-none absolute start-2 flex size-3.5 items-center justify-center">
24
+ <span
25
+ class="pointer-events-none absolute right-2 flex items-center justify-center"
26
+ data-slot="dropdown-menu-radio-item-indicator"
27
+ >
25
28
  {#if checked}
26
- <CircleIcon class="size-2 fill-current" />
29
+ <CheckIcon />
27
30
  {/if}
28
31
  </span>
29
32
  {@render childrenProp?.({ checked })}
@@ -13,7 +13,10 @@
13
13
  <span
14
14
  bind:this={ref}
15
15
  data-slot="dropdown-menu-shortcut"
16
- class={cn("text-muted-foreground ms-auto text-xs tracking-widest", className)}
16
+ class={cn(
17
+ "text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest",
18
+ className
19
+ )}
17
20
  {...restProps}
18
21
  >
19
22
  {@render children?.()}
@@ -9,7 +9,7 @@
9
9
  bind:ref
10
10
  data-slot="dropdown-menu-sub-content"
11
11
  class={cn(
12
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--bits-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
12
+ "data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground w-auto min-w-[96px] rounded-lg p-1 shadow-lg ring-1 duration-100",
13
13
  className
14
14
  )}
15
15
  {...restProps}
@@ -19,11 +19,11 @@
19
19
  data-slot="dropdown-menu-sub-trigger"
20
20
  data-inset={inset}
21
21
  class={cn(
22
- "data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:ps-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
22
+ "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
23
23
  className
24
24
  )}
25
25
  {...restProps}
26
26
  >
27
27
  {@render children?.()}
28
- <ChevronRightIcon class="ms-auto size-4" />
28
+ <ChevronRightIcon class="ml-auto" />
29
29
  </DropdownMenuPrimitive.SubTrigger>
@@ -13,7 +13,7 @@
13
13
  <div
14
14
  bind:this={ref}
15
15
  data-slot="empty-content"
16
- class={cn("flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance", className)}
16
+ class={cn("flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm text-balance", className)}
17
17
  {...restProps}
18
18
  >
19
19
  {@render children?.()}
@@ -14,7 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="empty-description"
16
16
  class={cn(
17
- "text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4",
17
+ "text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4",
18
18
  className
19
19
  )}
20
20
  {...restProps}
@@ -13,7 +13,7 @@
13
13
  <div
14
14
  bind:this={ref}
15
15
  data-slot="empty-header"
16
- class={cn("flex max-w-sm flex-col items-center gap-2 text-center", className)}
16
+ class={cn("flex max-w-sm flex-col items-center gap-2", className)}
17
17
  {...restProps}
18
18
  >
19
19
  {@render children?.()}
@@ -6,7 +6,7 @@
6
6
  variants: {
7
7
  variant: {
8
8
  default: "bg-transparent",
9
- icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6",
9
+ icon: "bg-muted text-foreground flex size-8 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-4",
10
10
  },
11
11
  },
12
12
  defaultVariants: {
@@ -10,6 +10,6 @@
10
10
  }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
11
  </script>
12
12
 
13
- <div bind:this={ref} data-slot="empty-title" class={cn("text-lg font-medium tracking-tight", className)} {...restProps}>
13
+ <div bind:this={ref} data-slot="empty-title" class={cn("text-sm font-medium tracking-tight", className)} {...restProps}>
14
14
  {@render children?.()}
15
15
  </div>
@@ -14,7 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="empty"
16
16
  class={cn(
17
- "flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12",
17
+ "flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border-dashed p-6 text-center text-balance",
18
18
  className
19
19
  )}
20
20
  {...restProps}
@@ -13,7 +13,7 @@
13
13
  <div
14
14
  bind:this={ref}
15
15
  data-slot="field-content"
16
- class={cn("group/field-content flex flex-1 flex-col gap-1.5 leading-snug", className)}
16
+ class={cn("group/field-content flex flex-1 flex-col gap-0.5 leading-snug", className)}
17
17
  {...restProps}
18
18
  >
19
19
  {@render children?.()}
@@ -14,8 +14,8 @@
14
14
  bind:this={ref}
15
15
  data-slot="field-description"
16
16
  class={cn(
17
- "text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
18
- "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5",
17
+ "text-muted-foreground text-left text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance [[data-variant=legend]+&]:-mt-1.5",
18
+ "last:mt-0 nth-last-2:-mt-1",
19
19
  "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
20
20
  className
21
21
  )}
@@ -46,7 +46,7 @@
46
46
  {:else if singleErrorMessage}
47
47
  {singleErrorMessage}
48
48
  {:else if isMultipleErrors}
49
- <ul class="ms-4 flex list-disc flex-col gap-1">
49
+ <ul class="ml-4 flex list-disc flex-col gap-1">
50
50
  {#each errors ?? [] as error, index (index)}
51
51
  {#if error?.message}
52
52
  <li>{error.message}</li>
@@ -14,7 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="field-group"
16
16
  class={cn(
17
- "group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",
17
+ "group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4",
18
18
  className
19
19
  )}
20
20
  {...restProps}
@@ -10,9 +10,8 @@
10
10
  bind:ref
11
11
  data-slot="field-label"
12
12
  class={cn(
13
- "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
14
- "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4",
15
- "has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",
13
+ "has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5",
14
+ "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",
16
15
  className
17
16
  )}
18
17
  {...restProps}
@@ -17,7 +17,7 @@
17
17
  bind:this={ref}
18
18
  data-slot="field-legend"
19
19
  data-variant={variant}
20
- class={cn("mb-3 font-medium", "data-[variant=legend]:text-base", "data-[variant=label]:text-sm", className)}
20
+ class={cn("mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", className)}
21
21
  {...restProps}
22
22
  >
23
23
  {@render children?.()}
@@ -26,7 +26,7 @@
26
26
  <Separator class="absolute inset-0 top-1/2" />
27
27
  {#if children}
28
28
  <span
29
- class="bg-background text-muted-foreground relative mx-auto block w-fit px-2"
29
+ class="text-muted-foreground bg-background relative mx-auto block w-fit px-2"
30
30
  data-slot="field-separator-content"
31
31
  >
32
32
  {@render children()}
@@ -14,8 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="field-set"
16
16
  class={cn(
17
- "flex flex-col gap-6",
18
- "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
17
+ "flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
19
18
  className
20
19
  )}
21
20
  {...restProps}
@@ -12,7 +12,7 @@
12
12
 
13
13
  <div
14
14
  bind:this={ref}
15
- data-slot="field-title"
15
+ data-slot="field-label"
16
16
  class={cn(
17
17
  "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",
18
18
  className
@@ -2,20 +2,14 @@
2
2
  import { tv, type VariantProps } from "tailwind-variants";
3
3
 
4
4
  export const fieldVariants = tv({
5
- base: "group/field data-[invalid=true]:text-destructive flex w-full gap-3",
5
+ base: "data-[invalid=true]:text-destructive gap-2 group/field flex w-full",
6
6
  variants: {
7
7
  orientation: {
8
- vertical: "flex-col [&>*]:w-full [&>.sr-only]:w-auto",
9
- horizontal: [
10
- "flex-row items-center",
11
- "[&>[data-slot=field-label]]:flex-auto",
12
- "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
13
- ],
14
- responsive: [
15
- "flex-col @md/field-group:flex-row @md/field-group:items-center [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto",
16
- "@md/field-group:[&>[data-slot=field-label]]:flex-auto",
17
- "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
18
- ],
8
+ vertical: "cn-field-orientation-vertical flex-col [&>*]:w-full [&>.sr-only]:w-auto",
9
+ horizontal:
10
+ "cn-field-orientation-horizontal flex-row items-center has-[>[data-slot=field-content]]:items-start [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
11
+ responsive:
12
+ "cn-field-orientation-responsive flex-col @md/field-group:flex-row @md/field-group:items-center @md/field-group:has-[>[data-slot=field-content]]:items-start [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
19
13
  },
20
14
  },
21
15
  defaultVariants: {
@@ -2,22 +2,22 @@ import { type VariantProps } from "tailwind-variants";
2
2
  export declare const fieldVariants: import("tailwind-variants").TVReturnType<{
3
3
  orientation: {
4
4
  vertical: string;
5
- horizontal: string[];
6
- responsive: string[];
5
+ horizontal: string;
6
+ responsive: string;
7
7
  };
8
- }, undefined, "group/field data-[invalid=true]:text-destructive flex w-full gap-3", {
8
+ }, undefined, "data-[invalid=true]:text-destructive gap-2 group/field flex w-full", {
9
9
  orientation: {
10
10
  vertical: string;
11
- horizontal: string[];
12
- responsive: string[];
11
+ horizontal: string;
12
+ responsive: string;
13
13
  };
14
14
  }, undefined, import("tailwind-variants").TVReturnType<{
15
15
  orientation: {
16
16
  vertical: string;
17
- horizontal: string[];
18
- responsive: string[];
17
+ horizontal: string;
18
+ responsive: string;
19
19
  };
20
- }, undefined, "group/field data-[invalid=true]:text-destructive flex w-full gap-3", unknown, unknown, undefined>>;
20
+ }, undefined, "data-[invalid=true]:text-destructive gap-2 group/field flex w-full", unknown, unknown, undefined>>;
21
21
  export type FieldOrientation = VariantProps<typeof fieldVariants>["orientation"];
22
22
  import { type WithElementRef } from "../../../utils.js";
23
23
  import type { HTMLAttributes } from "svelte/elements";
@@ -23,7 +23,7 @@
23
23
  {align}
24
24
  {sideOffset}
25
25
  class={cn(
26
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 z-50 mt-3 w-64 rounded-md border p-4 shadow-md outline-hidden outline-none",
26
+ "data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 w-64 origin-(--transform-origin) rounded-lg p-2.5 text-sm shadow-md ring-1 outline-hidden duration-100",
27
27
  className
28
28
  )}
29
29
  {...restProps}
@@ -24,9 +24,7 @@
24
24
  bind:this={ref}
25
25
  data-slot={dataSlot}
26
26
  class={cn(
27
- "selection:bg-primary dark:bg-input/30 selection:text-primary-foreground border-input ring-offset-background placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 pt-1.5 text-sm font-medium shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50",
28
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
29
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
27
+ "dark:bg-input/30 border-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 disabled:bg-input/50 dark:disabled:bg-input/80 file:text-foreground placeholder:text-muted-foreground h-8 w-full min-w-0 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm",
30
28
  className
31
29
  )}
32
30
  type="file"
@@ -39,9 +37,7 @@
39
37
  bind:this={ref}
40
38
  data-slot={dataSlot}
41
39
  class={cn(
42
- "border-input bg-background selection:bg-primary dark:bg-input/30 selection:text-primary-foreground ring-offset-background placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
43
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
44
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
40
+ "dark:bg-input/30 border-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 disabled:bg-input/50 dark:disabled:bg-input/80 file:text-foreground placeholder:text-muted-foreground h-8 w-full min-w-0 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm",
45
41
  className
46
42
  )}
47
43
  {type}
@@ -1,14 +1,14 @@
1
1
  <script lang="ts" module>
2
2
  import { tv, type VariantProps } from "tailwind-variants";
3
3
  export const inputGroupAddonVariants = tv({
4
- base: "text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",
4
+ base: "text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none",
5
5
  variants: {
6
6
  align: {
7
- "inline-start": "order-first ps-3 has-[>button]:ms-[-0.45rem] has-[>kbd]:ms-[-0.35rem]",
8
- "inline-end": "order-last pe-3 has-[>button]:me-[-0.45rem] has-[>kbd]:me-[-0.35rem]",
7
+ "inline-start": "pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem] order-first",
8
+ "inline-end": "pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem] order-last",
9
9
  "block-start":
10
- "order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3",
11
- "block-end": "order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3",
10
+ "px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start",
11
+ "block-end": "px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start",
12
12
  },
13
13
  },
14
14
  defaultVariants: {
@@ -6,7 +6,7 @@ export declare const inputGroupAddonVariants: import("tailwind-variants").TVRetu
6
6
  "block-start": string;
7
7
  "block-end": string;
8
8
  };
9
- }, undefined, "text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", {
9
+ }, undefined, "text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none", {
10
10
  align: {
11
11
  "inline-start": string;
12
12
  "inline-end": string;
@@ -20,7 +20,7 @@ export declare const inputGroupAddonVariants: import("tailwind-variants").TVRetu
20
20
  "block-start": string;
21
21
  "block-end": string;
22
22
  };
23
- }, undefined, "text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", unknown, unknown, undefined>>;
23
+ }, undefined, "text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none", unknown, unknown, undefined>>;
24
24
  export type InputGroupAddonAlign = VariantProps<typeof inputGroupAddonVariants>["align"];
25
25
  import { type WithElementRef } from "../../../utils.js";
26
26
  import type { HTMLAttributes } from "svelte/elements";
@@ -2,12 +2,12 @@
2
2
  import { tv, type VariantProps } from "tailwind-variants";
3
3
 
4
4
  const inputGroupButtonVariants = tv({
5
- base: "flex items-center gap-2 text-sm shadow-none",
5
+ base: "gap-2 text-sm flex items-center shadow-none",
6
6
  variants: {
7
7
  size: {
8
- xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",
9
- sm: "h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5",
10
- "icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
8
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
9
+ sm: "cn-input-group-button-size-sm",
10
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0",
11
11
  "icon-sm": "size-8 p-0 has-[>svg]:p-0",
12
12
  },
13
13
  },
@@ -6,7 +6,7 @@ declare const inputGroupButtonVariants: import("tailwind-variants").TVReturnType
6
6
  "icon-xs": string;
7
7
  "icon-sm": string;
8
8
  };
9
- }, undefined, "flex items-center gap-2 text-sm shadow-none", {
9
+ }, undefined, "gap-2 text-sm flex items-center shadow-none", {
10
10
  size: {
11
11
  xs: string;
12
12
  sm: string;
@@ -20,7 +20,7 @@ declare const inputGroupButtonVariants: import("tailwind-variants").TVReturnType
20
20
  "icon-xs": string;
21
21
  "icon-sm": string;
22
22
  };
23
- }, undefined, "flex items-center gap-2 text-sm shadow-none", unknown, unknown, undefined>>;
23
+ }, undefined, "gap-2 text-sm flex items-center shadow-none", unknown, unknown, undefined>>;
24
24
  export type InputGroupButtonSize = VariantProps<typeof inputGroupButtonVariants>["size"];
25
25
  import type { ComponentProps } from "svelte";
26
26
  import { Button } from "../button/index.js";
@@ -15,7 +15,7 @@
15
15
  bind:ref
16
16
  data-slot="input-group-control"
17
17
  class={cn(
18
- "flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",
18
+ "flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent",
19
19
  className
20
20
  )}
21
21
  bind:value
@@ -15,7 +15,7 @@
15
15
  bind:ref
16
16
  data-slot="input-group-control"
17
17
  class={cn(
18
- "flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",
18
+ "flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent",
19
19
  className
20
20
  )}
21
21
  bind:value
@@ -15,21 +15,7 @@
15
15
  data-slot="input-group"
16
16
  role="group"
17
17
  class={cn(
18
- "group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none",
19
- "h-9 has-[>textarea]:h-auto",
20
-
21
- // Variants based on alignment.
22
- "has-[>[data-align=inline-start]]:[&>input]:ps-2",
23
- "has-[>[data-align=inline-end]]:[&>input]:pe-2",
24
- "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3",
25
- "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3",
26
-
27
- // Focus state.
28
- "has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]",
29
-
30
- // Error state.
31
- "has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",
32
-
18
+ "group/input-group border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-input/50 dark:has-disabled:bg-input/80 relative flex h-8 w-full min-w-0 items-center rounded-lg border transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",
33
19
  className
34
20
  )}
35
21
  {...props}
@@ -10,6 +10,14 @@
10
10
  }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
11
  </script>
12
12
 
13
- <div bind:this={ref} data-slot="input-otp-group" class={cn("flex items-center", className)} {...restProps}>
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="input-otp-group"
16
+ class={cn(
17
+ "has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive flex items-center rounded-lg has-aria-invalid:ring-3",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
14
22
  {@render children?.()}
15
23
  </div>
@@ -1,12 +1,24 @@
1
1
  <script lang="ts">
2
2
  import type { HTMLAttributes } from "svelte/elements";
3
3
  import type { WithElementRef } from "../../../utils.js";
4
+ import { cn } from "../../../utils.js";
4
5
  import MinusIcon from "@lucide/svelte/icons/minus";
5
6
 
6
- let { ref = $bindable(null), children, ...restProps }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
7
+ let {
8
+ ref = $bindable(null),
9
+ class: className,
10
+ children,
11
+ ...restProps
12
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
7
13
  </script>
8
14
 
9
- <div bind:this={ref} data-slot="input-otp-separator" role="separator" {...restProps}>
15
+ <div
16
+ bind:this={ref}
17
+ data-slot="input-otp-separator"
18
+ role="separator"
19
+ class={cn("flex items-center [&_svg:not([class*='size-'])]:size-4", className)}
20
+ {...restProps}
21
+ >
10
22
  {#if children}
11
23
  {@render children?.()}
12
24
  {:else}