@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
@@ -13,8 +13,9 @@
13
13
  </script>
14
14
 
15
15
  <ResizablePrimitive.PaneGroup
16
+ bind:ref
16
17
  bind:this={paneGroup}
17
18
  data-slot="resizable-pane-group"
18
- class={cn("flex h-full w-full data-[direction=vertical]:flex-col", className)}
19
+ class={cn("cn-resizable-panel-group flex h-full w-full data-[direction=vertical]:flex-col", className)}
19
20
  {...restProps}
20
21
  />
@@ -14,11 +14,10 @@
14
14
  <ScrollAreaPrimitive.Scrollbar
15
15
  bind:ref
16
16
  data-slot="scroll-area-scrollbar"
17
+ data-orientation={orientation}
17
18
  {orientation}
18
19
  class={cn(
19
- "flex touch-none p-px transition-colors select-none",
20
- orientation === "vertical" && "h-full w-2.5 border-s border-s-transparent",
21
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
20
+ "flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",
22
21
  className
23
22
  )}
24
23
  {...restProps}
@@ -24,7 +24,7 @@
24
24
  <ScrollAreaPrimitive.Viewport
25
25
  bind:ref={viewportRef}
26
26
  data-slot="scroll-area-viewport"
27
- class="ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1"
27
+ class="cn-scroll-area-viewport focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
28
28
  >
29
29
  {@render children?.()}
30
30
  </ScrollAreaPrimitive.Viewport>
@@ -27,14 +27,14 @@
27
27
  {preventScroll}
28
28
  data-slot="select-content"
29
29
  class={cn(
30
- "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 relative z-50 max-h-(--bits-select-content-available-height) min-w-[8rem] origin-(--bits-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
30
+ "bg-popover text-popover-foreground 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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 relative isolate z-50 min-w-36 overflow-x-hidden overflow-y-auto rounded-lg shadow-md ring-1 duration-100",
31
31
  className
32
32
  )}
33
33
  {...restProps}
34
34
  >
35
35
  <SelectScrollUpButton />
36
36
  <SelectPrimitive.Viewport
37
- class={cn("h-(--bits-select-anchor-height) w-full min-w-(--bits-select-anchor-width) scroll-my-1 p-1")}
37
+ class={cn("h-(--bits-select-anchor-height) w-full min-w-(--bits-select-anchor-width) scroll-my-1")}
38
38
  >
39
39
  {@render children?.()}
40
40
  </SelectPrimitive.Viewport>
@@ -1,7 +1,8 @@
1
1
  <script lang="ts">
2
2
  import { Select as SelectPrimitive } from "bits-ui";
3
+ import { cn } from "../../../utils.js";
3
4
 
4
- let { ref = $bindable(null), ...restProps }: SelectPrimitive.GroupProps = $props();
5
+ let { ref = $bindable(null), class: className, ...restProps }: SelectPrimitive.GroupProps = $props();
5
6
  </script>
6
7
 
7
- <SelectPrimitive.Group bind:ref data-slot="select-group" {...restProps} />
8
+ <SelectPrimitive.Group bind:ref data-slot="select-group" class={cn("scroll-my-1 p-1", className)} {...restProps} />
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
- import CheckIcon from "@lucide/svelte/icons/check";
3
2
  import { Select as SelectPrimitive } from "bits-ui";
4
3
  import { cn, type WithoutChild } from "../../../utils.js";
4
+ import CheckIcon from "@lucide/svelte/icons/check";
5
5
 
6
6
  let {
7
7
  ref = $bindable(null),
@@ -18,7 +18,7 @@
18
18
  {value}
19
19
  data-slot="select-item"
20
20
  class={cn(
21
- "data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 ps-2 pe-8 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 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
21
+ "focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground focus:bg-accent data-highlighted:bg-accent data-highlighted:text-accent-foreground focus:text-accent-foreground relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 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 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
22
22
  className
23
23
  )}
24
24
  {...restProps}
@@ -26,7 +26,7 @@
26
26
  {#snippet children({ selected, highlighted })}
27
27
  <span class="absolute end-2 flex size-3.5 items-center justify-center">
28
28
  {#if selected}
29
- <CheckIcon class="size-4" />
29
+ <CheckIcon class="cn-select-item-indicator-icon" />
30
30
  {/if}
31
31
  </span>
32
32
  {#if childrenProp}
@@ -13,7 +13,7 @@
13
13
  <div
14
14
  bind:this={ref}
15
15
  data-slot="select-label"
16
- class={cn("text-muted-foreground px-2 py-1.5 text-xs", className)}
16
+ class={cn("text-muted-foreground px-1.5 py-1 text-xs", className)}
17
17
  {...restProps}
18
18
  >
19
19
  {@render children?.()}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
- import ChevronDownIcon from "@lucide/svelte/icons/chevron-down";
3
2
  import { Select as SelectPrimitive } from "bits-ui";
4
3
  import { cn, type WithoutChildrenOrChild } from "../../../utils.js";
4
+ import ChevronDownIcon from "@lucide/svelte/icons/chevron-down";
5
5
 
6
6
  let {
7
7
  ref = $bindable(null),
@@ -13,8 +13,11 @@
13
13
  <SelectPrimitive.ScrollDownButton
14
14
  bind:ref
15
15
  data-slot="select-scroll-down-button"
16
- class={cn("flex cursor-default items-center justify-center py-1", className)}
16
+ class={cn(
17
+ "bg-popover bottom-0 z-10 flex w-full cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4",
18
+ className
19
+ )}
17
20
  {...restProps}
18
21
  >
19
- <ChevronDownIcon class="size-4" />
22
+ <ChevronDownIcon />
20
23
  </SelectPrimitive.ScrollDownButton>
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
- import ChevronUpIcon from "@lucide/svelte/icons/chevron-up";
3
2
  import { Select as SelectPrimitive } from "bits-ui";
4
3
  import { cn, type WithoutChildrenOrChild } from "../../../utils.js";
4
+ import ChevronUpIcon from "@lucide/svelte/icons/chevron-up";
5
5
 
6
6
  let {
7
7
  ref = $bindable(null),
@@ -13,8 +13,11 @@
13
13
  <SelectPrimitive.ScrollUpButton
14
14
  bind:ref
15
15
  data-slot="select-scroll-up-button"
16
- class={cn("flex cursor-default items-center justify-center py-1", className)}
16
+ class={cn(
17
+ "bg-popover top-0 z-10 flex w-full cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4",
18
+ className
19
+ )}
17
20
  {...restProps}
18
21
  >
19
- <ChevronUpIcon class="size-4" />
22
+ <ChevronUpIcon />
20
23
  </SelectPrimitive.ScrollUpButton>
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { Select as SelectPrimitive } from "bits-ui";
3
- import ChevronDownIcon from "@lucide/svelte/icons/chevron-down";
4
3
  import { cn, type WithoutChild } from "../../../utils.js";
4
+ import ChevronDownIcon from "@lucide/svelte/icons/chevron-down";
5
5
 
6
6
  let {
7
7
  ref = $bindable(null),
@@ -19,11 +19,11 @@
19
19
  data-slot="select-trigger"
20
20
  data-size={size}
21
21
  class={cn(
22
- "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]: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 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none select-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
22
+ "border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 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 flex w-fit items-center justify-between gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_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
- <ChevronDownIcon class="size-4 opacity-50" />
28
+ <ChevronDownIcon class="text-muted-foreground pointer-events-none size-4" />
29
29
  </SelectPrimitive.Trigger>
@@ -14,7 +14,9 @@
14
14
  bind:ref
15
15
  data-slot={dataSlot}
16
16
  class={cn(
17
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:min-h-full data-[orientation=vertical]:w-px",
17
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px",
18
+ // this is different in shadcn/ui but self-stretch breaks things for us
19
+ "data-[orientation=vertical]:h-full",
18
20
  className
19
21
  )}
20
22
  {...restProps}
@@ -1,31 +1,14 @@
1
1
  <script lang="ts" module>
2
- import { tv, type VariantProps } from "tailwind-variants";
3
- export const sheetVariants = tv({
4
- base: "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
5
- variants: {
6
- side: {
7
- top: "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
8
- bottom:
9
- "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
10
- left: "data-[state=closed]:slide-out-to-start data-[state=open]:slide-in-from-start inset-y-0 start-0 h-full w-3/4 border-e sm:max-w-sm",
11
- right:
12
- "data-[state=closed]:slide-out-to-end data-[state=open]:slide-in-from-end inset-y-0 end-0 h-full w-3/4 border-s sm:max-w-sm",
13
- },
14
- },
15
- defaultVariants: {
16
- side: "right",
17
- },
18
- });
19
-
20
- export type Side = VariantProps<typeof sheetVariants>["side"];
2
+ export type Side = "top" | "right" | "bottom" | "left";
21
3
  </script>
22
4
 
23
5
  <script lang="ts">
24
6
  import { Dialog as SheetPrimitive } from "bits-ui";
25
- import XIcon from "@lucide/svelte/icons/x";
26
7
  import type { Snippet } from "svelte";
27
8
  import SheetPortal from "./sheet-portal.svelte";
28
9
  import SheetOverlay from "./sheet-overlay.svelte";
10
+ import { Button } from "../button/index.js";
11
+ import XIcon from "@lucide/svelte/icons/x";
29
12
  import { cn, type WithoutChildrenOrChild } from "../../../utils.js";
30
13
  import type { ComponentProps } from "svelte";
31
14
 
@@ -33,12 +16,14 @@
33
16
  ref = $bindable(null),
34
17
  class: className,
35
18
  side = "right",
19
+ showCloseButton = true,
36
20
  portalProps,
37
21
  children,
38
22
  ...restProps
39
23
  }: WithoutChildrenOrChild<SheetPrimitive.ContentProps> & {
40
24
  portalProps?: WithoutChildrenOrChild<ComponentProps<typeof SheetPortal>>;
41
25
  side?: Side;
26
+ showCloseButton?: boolean;
42
27
  children: Snippet;
43
28
  } = $props();
44
29
  </script>
@@ -48,15 +33,23 @@
48
33
  <SheetPrimitive.Content
49
34
  bind:ref
50
35
  data-slot="sheet-content"
51
- class={cn(sheetVariants({ side }), className)}
36
+ data-side={side}
37
+ class={cn(
38
+ "bg-background data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10 fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
39
+ className
40
+ )}
52
41
  {...restProps}
53
42
  >
54
43
  {@render children?.()}
55
- <SheetPrimitive.Close
56
- class="ring-offset-background focus-visible:ring-ring absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none"
57
- >
58
- <XIcon class="size-4" />
59
- <span class="sr-only">Close</span>
60
- </SheetPrimitive.Close>
44
+ {#if showCloseButton}
45
+ <SheetPrimitive.Close data-slot="sheet-close">
46
+ {#snippet child({ props })}
47
+ <Button variant="ghost" class="absolute top-3 right-3" size="icon-sm" {...props}>
48
+ <XIcon />
49
+ <span class="sr-only">Close</span>
50
+ </Button>
51
+ {/snippet}
52
+ </SheetPrimitive.Close>
53
+ {/if}
61
54
  </SheetPrimitive.Content>
62
55
  </SheetPortal>
@@ -1,27 +1,4 @@
1
- import { type VariantProps } from "tailwind-variants";
2
- export declare const sheetVariants: import("tailwind-variants").TVReturnType<{
3
- side: {
4
- top: string;
5
- bottom: string;
6
- left: string;
7
- right: string;
8
- };
9
- }, undefined, "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", {
10
- side: {
11
- top: string;
12
- bottom: string;
13
- left: string;
14
- right: string;
15
- };
16
- }, undefined, import("tailwind-variants").TVReturnType<{
17
- side: {
18
- top: string;
19
- bottom: string;
20
- left: string;
21
- right: string;
22
- };
23
- }, undefined, "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", unknown, unknown, undefined>>;
24
- export type Side = VariantProps<typeof sheetVariants>["side"];
1
+ export type Side = "top" | "right" | "bottom" | "left";
25
2
  import { Dialog as SheetPrimitive } from "bits-ui";
26
3
  import type { Snippet } from "svelte";
27
4
  import SheetPortal from "./sheet-portal.svelte";
@@ -30,6 +7,7 @@ import type { ComponentProps } from "svelte";
30
7
  type $$ComponentProps = WithoutChildrenOrChild<SheetPrimitive.ContentProps> & {
31
8
  portalProps?: WithoutChildrenOrChild<ComponentProps<typeof SheetPortal>>;
32
9
  side?: Side;
10
+ showCloseButton?: boolean;
33
11
  children: Snippet;
34
12
  };
35
13
  declare const SheetContent: import("svelte").Component<$$ComponentProps, {}, "ref">;
@@ -10,6 +10,6 @@
10
10
  }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
11
  </script>
12
12
 
13
- <div bind:this={ref} data-slot="sheet-header" class={cn("flex flex-col gap-1.5 p-4", className)} {...restProps}>
13
+ <div bind:this={ref} data-slot="sheet-header" class={cn("flex flex-col gap-0.5 p-4", className)} {...restProps}>
14
14
  {@render children?.()}
15
15
  </div>
@@ -8,9 +8,6 @@
8
8
  <SheetPrimitive.Overlay
9
9
  bind:ref
10
10
  data-slot="sheet-overlay"
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",
13
- className
14
- )}
11
+ class={cn("fixed inset-0 z-50 bg-black/10 supports-backdrop-filter:backdrop-blur-xs", className)}
15
12
  {...restProps}
16
13
  />
@@ -8,6 +8,6 @@
8
8
  <SheetPrimitive.Title
9
9
  bind:ref
10
10
  data-slot="sheet-title"
11
- class={cn("text-foreground font-semibold", className)}
11
+ class={cn("text-foreground text-base font-medium", className)}
12
12
  {...restProps}
13
13
  />
@@ -15,7 +15,7 @@
15
15
  data-slot="sidebar-content"
16
16
  data-sidebar="content"
17
17
  class={cn(
18
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
18
+ "no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
19
19
  className
20
20
  )}
21
21
  {...restProps}
@@ -15,10 +15,7 @@
15
15
 
16
16
  const mergedProps = $derived({
17
17
  class: cn(
18
- "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
19
- // Increases the hit area of the button on mobile.
20
- "after:absolute after:-inset-2 md:after:hidden",
21
- "group-data-[collapsible=icon]:hidden",
18
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-md p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0",
22
19
  className
23
20
  ),
24
21
  "data-slot": "sidebar-group-action",
@@ -15,8 +15,7 @@
15
15
 
16
16
  const mergedProps = $derived({
17
17
  class: cn(
18
- "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
19
- "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
18
+ "text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0",
20
19
  className
21
20
  ),
22
21
  "data-slot": "sidebar-group-label",
@@ -14,8 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="sidebar-inset"
16
16
  class={cn(
17
- "bg-background relative flex w-full flex-1 flex-col",
18
- "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2",
17
+ "bg-background relative flex w-full flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
19
18
  className
20
19
  )}
21
20
  {...restProps}
@@ -17,15 +17,9 @@
17
17
 
18
18
  const mergedProps = $derived({
19
19
  class: cn(
20
- "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
21
- // Increases the hit area of the button on mobile.
22
- "after:absolute after:-inset-2 md:after:hidden",
23
- "peer-data-[size=sm]/menu-button:top-1",
24
- "peer-data-[size=default]/menu-button:top-1.5",
25
- "peer-data-[size=lg]/menu-button:top-2.5",
26
- "group-data-[collapsible=icon]:hidden",
20
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0",
27
21
  showOnHover &&
28
- "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",
22
+ "peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-open:opacity-100 md:opacity-0",
29
23
  className
30
24
  ),
31
25
  "data-slot": "sidebar-menu-action",
@@ -15,12 +15,7 @@
15
15
  data-slot="sidebar-menu-badge"
16
16
  data-sidebar="menu-badge"
17
17
  class={cn(
18
- "text-sidebar-foreground pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none",
19
- "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
20
- "peer-data-[size=sm]/menu-button:top-1",
21
- "peer-data-[size=default]/menu-button:top-1.5",
22
- "peer-data-[size=lg]/menu-button:top-2.5",
23
- "group-data-[collapsible=icon]:hidden",
18
+ "text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1",
24
19
  className
25
20
  )}
26
21
  {...restProps}
@@ -2,12 +2,12 @@
2
2
  import { tv, type VariantProps } from "tailwind-variants";
3
3
 
4
4
  export const sidebarMenuButtonVariants = tv({
5
- base: "peer/menu-button ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground flex w-full items-center gap-2 overflow-clip rounded-md p-2 text-start text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
5
+ base: "ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",
6
6
  variants: {
7
7
  variant: {
8
8
  default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
9
9
  outline:
10
- "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]",
10
+ "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]",
11
11
  },
12
12
  size: {
13
13
  default: "h-8 text-sm",
@@ -9,7 +9,7 @@ export declare const sidebarMenuButtonVariants: import("tailwind-variants").TVRe
9
9
  sm: string;
10
10
  lg: string;
11
11
  };
12
- }, undefined, "peer/menu-button ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground flex w-full items-center gap-2 overflow-clip rounded-md p-2 text-start text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
12
+ }, undefined, "ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate", {
13
13
  variant: {
14
14
  default: string;
15
15
  outline: string;
@@ -29,7 +29,7 @@ export declare const sidebarMenuButtonVariants: import("tailwind-variants").TVRe
29
29
  sm: string;
30
30
  lg: string;
31
31
  };
32
- }, undefined, "peer/menu-button ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground flex w-full items-center gap-2 overflow-clip rounded-md p-2 text-start text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", unknown, unknown, undefined>>;
32
+ }, undefined, "ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate", unknown, unknown, undefined>>;
33
33
  export type SidebarMenuButtonVariant = VariantProps<typeof sidebarMenuButtonVariants>["variant"];
34
34
  export type SidebarMenuButtonSize = VariantProps<typeof sidebarMenuButtonVariants>["size"];
35
35
  import * as Tooltip from "../tooltip/index.js";
@@ -19,11 +19,7 @@
19
19
 
20
20
  const mergedProps = $derived({
21
21
  class: cn(
22
- "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
23
- "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
24
- size === "sm" && "text-xs",
25
- size === "md" && "text-sm",
26
- "group-data-[collapsible=icon]:hidden",
22
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0",
27
23
  className
28
24
  ),
29
25
  "data-slot": "sidebar-menu-sub-button",
@@ -15,8 +15,7 @@
15
15
  data-slot="sidebar-menu-sub"
16
16
  data-sidebar="menu-sub"
17
17
  class={cn(
18
- "border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s px-2.5 py-0.5",
19
- "group-data-[collapsible=icon]:hidden",
18
+ "border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",
20
19
  className
21
20
  )}
22
21
  {...restProps}
@@ -14,7 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="sidebar-menu"
16
16
  data-sidebar="menu"
17
- class={cn("flex w-full min-w-0 flex-col gap-1", className)}
17
+ class={cn("flex w-full min-w-0 flex-col gap-0", className)}
18
18
  {...restProps}
19
19
  >
20
20
  {@render children?.()}
@@ -22,12 +22,12 @@
22
22
  onclick={sidebar.toggle}
23
23
  title="Toggle Sidebar"
24
24
  class={cn(
25
- "hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-end-4 group-data-[side=right]:start-0 after:absolute after:inset-y-0 after:start-[calc(1/2*100%-1px)] after:w-[2px] sm:flex",
25
+ "hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex",
26
26
  "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
27
27
  "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
28
- "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full",
29
- "[[data-side=left][data-collapsible=offcanvas]_&]:-end-2",
30
- "[[data-side=right][data-collapsible=offcanvas]_&]:-start-2",
28
+ "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full",
29
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
30
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
31
31
  className
32
32
  )}
33
33
  {...restProps}
@@ -10,6 +10,6 @@
10
10
  bind:ref
11
11
  data-slot="sidebar-separator"
12
12
  data-sidebar="separator"
13
- class={cn("bg-sidebar-border", className)}
13
+ class={cn("bg-sidebar-border mx-2 w-auto", className)}
14
14
  {...restProps}
15
15
  />
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { Button } from "../button/index.js";
3
- import { cn } from "../../../utils.js";
4
3
  import PanelLeftIcon from "@lucide/svelte/icons/panel-left";
4
+ import { cn } from "../../../utils.js";
5
5
  import type { ComponentProps } from "svelte";
6
6
  import { useSidebar } from "./context.svelte.js";
7
7
 
@@ -18,11 +18,12 @@
18
18
  </script>
19
19
 
20
20
  <Button
21
+ bind:ref
21
22
  data-sidebar="trigger"
22
23
  data-slot="sidebar-trigger"
23
24
  variant="ghost"
24
- size="icon"
25
- class={cn("size-7", className)}
25
+ size="icon-sm"
26
+ class={cn("cn-sidebar-trigger", className)}
26
27
  type="button"
27
28
  onclick={(e) => {
28
29
  onclick?.(e);
@@ -37,7 +37,7 @@
37
37
  data-sidebar="sidebar"
38
38
  data-slot="sidebar"
39
39
  data-mobile="true"
40
- class="bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden"
40
+ class={cn("bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden", className)}
41
41
  style="--sidebar-width: {SIDEBAR_WIDTH_MOBILE};"
42
42
  {side}
43
43
  >
@@ -68,7 +68,7 @@
68
68
  "group-data-[collapsible=offcanvas]:w-0",
69
69
  "group-data-[side=right]:rotate-180",
70
70
  variant === "floating" || variant === "inset"
71
- ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
71
+ ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
72
72
  : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
73
73
  )}
74
74
  ></div>
@@ -90,7 +90,7 @@
90
90
  <div
91
91
  data-sidebar="sidebar"
92
92
  data-slot="sidebar-inner"
93
- class="bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"
93
+ class="bg-sidebar group-data-[variant=floating]:ring-sidebar-border flex size-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1"
94
94
  >
95
95
  {@render children?.()}
96
96
  </div>
@@ -12,6 +12,6 @@
12
12
  <div
13
13
  bind:this={ref}
14
14
  data-slot="skeleton"
15
- class={cn("bg-accent animate-pulse rounded-md", className)}
15
+ class={cn("bg-muted animate-pulse rounded-md", className)}
16
16
  {...restProps}
17
17
  ></div>