@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,10 +13,15 @@
13
13
  <AccordionPrimitive.Content
14
14
  bind:ref
15
15
  data-slot="accordion-content"
16
- class="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"
16
+ class="data-open:animate-accordion-down data-closed:animate-accordion-up overflow-hidden text-sm"
17
17
  {...restProps}
18
18
  >
19
- <div class={cn("pt-0 pb-4", className)}>
19
+ <div
20
+ class={cn(
21
+ "[&_a]:hover:text-foreground pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4",
22
+ className
23
+ )}
24
+ >
20
25
  {@render children?.()}
21
26
  </div>
22
27
  </AccordionPrimitive.Content>
@@ -8,6 +8,6 @@
8
8
  <AccordionPrimitive.Item
9
9
  bind:ref
10
10
  data-slot="accordion-item"
11
- class={cn("border-b last:border-b-0", className)}
11
+ class={cn("not-last:border-b", className)}
12
12
  {...restProps}
13
13
  />
@@ -1,7 +1,8 @@
1
1
  <script lang="ts">
2
2
  import { Accordion as AccordionPrimitive } 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
+ import ChevronUpIcon from "@lucide/svelte/icons/chevron-up";
5
6
 
6
7
  let {
7
8
  ref = $bindable(null),
@@ -19,14 +20,19 @@
19
20
  data-slot="accordion-trigger"
20
21
  bind:ref
21
22
  class={cn(
22
- "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-start text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
23
+ "focus-visible:ring-ring/50 focus-visible:border-ring focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4",
23
24
  className
24
25
  )}
25
26
  {...restProps}
26
27
  >
27
28
  {@render children?.()}
28
29
  <ChevronDownIcon
29
- class="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
30
+ data-slot="accordion-trigger-icon"
31
+ class="cn-accordion-trigger-icon pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"
32
+ />
33
+ <ChevronUpIcon
34
+ data-slot="accordion-trigger-icon"
35
+ class="cn-accordion-trigger-icon pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"
30
36
  />
31
37
  </AccordionPrimitive.Trigger>
32
38
  </AccordionPrimitive.Header>
@@ -1,7 +1,19 @@
1
1
  <script lang="ts">
2
2
  import { Accordion as AccordionPrimitive } from "bits-ui";
3
+ import { cn } from "../../../utils.js";
3
4
 
4
- let { ref = $bindable(null), value = $bindable(), ...restProps }: AccordionPrimitive.RootProps = $props();
5
+ let {
6
+ ref = $bindable(null),
7
+ value = $bindable(),
8
+ class: className,
9
+ ...restProps
10
+ }: AccordionPrimitive.RootProps = $props();
5
11
  </script>
6
12
 
7
- <AccordionPrimitive.Root bind:ref bind:value={value as never} data-slot="accordion" {...restProps} />
13
+ <AccordionPrimitive.Root
14
+ bind:ref
15
+ bind:value={value as never}
16
+ data-slot="accordion"
17
+ class={cn("cn-accordion flex w-full flex-col", className)}
18
+ {...restProps}
19
+ />
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { cn, type WithElementRef } from "../../../utils.js";
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div bind:this={ref} data-slot="alert-action" class={cn("absolute top-2 right-2", className)} {...restProps}>
14
+ {@render children?.()}
15
+ </div>
@@ -0,0 +1,5 @@
1
+ import type { HTMLAttributes } from "svelte/elements";
2
+ import { type WithElementRef } from "../../../utils.js";
3
+ declare const AlertAction: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
+ type AlertAction = ReturnType<typeof AlertAction>;
5
+ export default AlertAction;
@@ -14,7 +14,7 @@
14
14
  bind:this={ref}
15
15
  data-slot="alert-description"
16
16
  class={cn(
17
- "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
17
+ "text-muted-foreground [&_a]:hover:text-foreground text-sm text-balance md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4",
18
18
  className
19
19
  )}
20
20
  {...restProps}
@@ -13,7 +13,10 @@
13
13
  <div
14
14
  bind:this={ref}
15
15
  data-slot="alert-title"
16
- class={cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", className)}
16
+ class={cn(
17
+ "[&_a]:hover:text-foreground font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3",
18
+ className
19
+ )}
17
20
  {...restProps}
18
21
  >
19
22
  {@render children?.()}
@@ -2,12 +2,12 @@
2
2
  import { type VariantProps, tv } from "tailwind-variants";
3
3
 
4
4
  export const alertVariants = tv({
5
- base: "relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
5
+ base: "grid gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 group/alert relative w-full",
6
6
  variants: {
7
7
  variant: {
8
8
  default: "bg-card text-card-foreground",
9
9
  destructive:
10
- "text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current",
10
+ "text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current",
11
11
  },
12
12
  },
13
13
  defaultVariants: {
@@ -4,7 +4,7 @@ export declare const alertVariants: import("tailwind-variants").TVReturnType<{
4
4
  default: string;
5
5
  destructive: string;
6
6
  };
7
- }, undefined, "relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current", {
7
+ }, undefined, "grid gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 group/alert relative w-full", {
8
8
  variant: {
9
9
  default: string;
10
10
  destructive: string;
@@ -14,7 +14,7 @@ export declare const alertVariants: import("tailwind-variants").TVReturnType<{
14
14
  default: string;
15
15
  destructive: string;
16
16
  };
17
- }, undefined, "relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current", unknown, unknown, undefined>>;
17
+ }, undefined, "grid gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 group/alert relative w-full", unknown, unknown, undefined>>;
18
18
  export type AlertVariant = VariantProps<typeof alertVariants>["variant"];
19
19
  import type { HTMLAttributes } from "svelte/elements";
20
20
  import { type WithElementRef } from "../../../utils.js";
@@ -1,5 +1,6 @@
1
1
  import Root from "./alert.svelte";
2
2
  import Description from "./alert-description.svelte";
3
3
  import Title from "./alert-title.svelte";
4
+ import Action from "./alert-action.svelte";
4
5
  export { alertVariants, type AlertVariant } from "./alert.svelte";
5
- export { Root, Description, Title, Root as Alert, Description as AlertDescription, Title as AlertTitle, };
6
+ export { Root, Description, Title, Action, Root as Alert, Description as AlertDescription, Title as AlertTitle, Action as AlertAction, };
@@ -1,7 +1,8 @@
1
1
  import Root from "./alert.svelte";
2
2
  import Description from "./alert-description.svelte";
3
3
  import Title from "./alert-title.svelte";
4
+ import Action from "./alert-action.svelte";
4
5
  export { alertVariants } from "./alert.svelte";
5
- export { Root, Description, Title,
6
+ export { Root, Description, Title, Action,
6
7
  //
7
- Root as Alert, Description as AlertDescription, Title as AlertTitle, };
8
+ Root as Alert, Description as AlertDescription, Title as AlertTitle, Action as AlertAction, };
@@ -1,14 +1,23 @@
1
1
  <script lang="ts">
2
2
  import { AlertDialog as AlertDialogPrimitive } from "bits-ui";
3
- import { buttonVariants } from "../button/index.js";
3
+ import { buttonVariants, type ButtonVariant, type ButtonSize } from "../button/index.js";
4
4
  import { cn } from "../../../utils.js";
5
5
 
6
- let { ref = $bindable(null), class: className, ...restProps }: AlertDialogPrimitive.ActionProps = $props();
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ variant = "default",
10
+ size = "default",
11
+ ...restProps
12
+ }: AlertDialogPrimitive.ActionProps & {
13
+ variant?: ButtonVariant;
14
+ size?: ButtonSize;
15
+ } = $props();
7
16
  </script>
8
17
 
9
18
  <AlertDialogPrimitive.Action
10
19
  bind:ref
11
20
  data-slot="alert-dialog-action"
12
- class={cn(buttonVariants(), className)}
21
+ class={cn(buttonVariants({ variant, size }), "cn-alert-dialog-action", className)}
13
22
  {...restProps}
14
23
  />
@@ -1,4 +1,9 @@
1
1
  import { AlertDialog as AlertDialogPrimitive } from "bits-ui";
2
- declare const AlertDialogAction: import("svelte").Component<AlertDialogPrimitive.TriggerProps, {}, "ref">;
2
+ import { type ButtonVariant, type ButtonSize } from "../button/index.js";
3
+ type $$ComponentProps = AlertDialogPrimitive.ActionProps & {
4
+ variant?: ButtonVariant;
5
+ size?: ButtonSize;
6
+ };
7
+ declare const AlertDialogAction: import("svelte").Component<$$ComponentProps, {}, "ref">;
3
8
  type AlertDialogAction = ReturnType<typeof AlertDialogAction>;
4
9
  export default AlertDialogAction;
@@ -1,14 +1,23 @@
1
1
  <script lang="ts">
2
2
  import { AlertDialog as AlertDialogPrimitive } from "bits-ui";
3
- import { buttonVariants } from "../button/index.js";
3
+ import { buttonVariants, type ButtonVariant, type ButtonSize } from "../button/index.js";
4
4
  import { cn } from "../../../utils.js";
5
5
 
6
- let { ref = $bindable(null), class: className, ...restProps }: AlertDialogPrimitive.CancelProps = $props();
6
+ let {
7
+ ref = $bindable(null),
8
+ class: className,
9
+ variant = "outline",
10
+ size = "default",
11
+ ...restProps
12
+ }: AlertDialogPrimitive.CancelProps & {
13
+ variant?: ButtonVariant;
14
+ size?: ButtonSize;
15
+ } = $props();
7
16
  </script>
8
17
 
9
18
  <AlertDialogPrimitive.Cancel
10
19
  bind:ref
11
20
  data-slot="alert-dialog-cancel"
12
- class={cn(buttonVariants({ variant: "outline" }), className)}
21
+ class={cn(buttonVariants({ variant, size }), "cn-alert-dialog-cancel", className)}
13
22
  {...restProps}
14
23
  />
@@ -1,4 +1,9 @@
1
1
  import { AlertDialog as AlertDialogPrimitive } from "bits-ui";
2
- declare const AlertDialogCancel: import("svelte").Component<AlertDialogPrimitive.TriggerProps, {}, "ref">;
2
+ import { type ButtonVariant, type ButtonSize } from "../button/index.js";
3
+ type $$ComponentProps = AlertDialogPrimitive.CancelProps & {
4
+ variant?: ButtonVariant;
5
+ size?: ButtonSize;
6
+ };
7
+ declare const AlertDialogCancel: import("svelte").Component<$$ComponentProps, {}, "ref">;
3
8
  type AlertDialogCancel = ReturnType<typeof AlertDialogCancel>;
4
9
  export default AlertDialogCancel;
@@ -8,9 +8,11 @@
8
8
  let {
9
9
  ref = $bindable(null),
10
10
  class: className,
11
+ size = "default",
11
12
  portalProps,
12
13
  ...restProps
13
14
  }: WithoutChild<AlertDialogPrimitive.ContentProps> & {
15
+ size?: "default" | "sm";
14
16
  portalProps?: WithoutChildrenOrChild<ComponentProps<typeof AlertDialogPortal>>;
15
17
  } = $props();
16
18
  </script>
@@ -20,8 +22,9 @@
20
22
  <AlertDialogPrimitive.Content
21
23
  bind:ref
22
24
  data-slot="alert-dialog-content"
25
+ data-size={size}
23
26
  class={cn(
24
- "bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
27
+ "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 bg-background ring-foreground/10 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-4 ring-1 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm",
25
28
  className
26
29
  )}
27
30
  {...restProps}
@@ -3,6 +3,7 @@ import AlertDialogPortal from "./alert-dialog-portal.svelte";
3
3
  import { type WithoutChild, type WithoutChildrenOrChild } from "../../../utils.js";
4
4
  import type { ComponentProps } from "svelte";
5
5
  type $$ComponentProps = WithoutChild<AlertDialogPrimitive.ContentProps> & {
6
+ size?: "default" | "sm";
6
7
  portalProps?: WithoutChildrenOrChild<ComponentProps<typeof AlertDialogPortal>>;
7
8
  };
8
9
  declare const AlertDialogContent: import("svelte").Component<$$ComponentProps, {}, "ref">;
@@ -8,6 +8,9 @@
8
8
  <AlertDialogPrimitive.Description
9
9
  bind:ref
10
10
  data-slot="alert-dialog-description"
11
- class={cn("text-muted-foreground text-sm", className)}
11
+ class={cn(
12
+ "text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3",
13
+ className
14
+ )}
12
15
  {...restProps}
13
16
  />
@@ -13,7 +13,10 @@
13
13
  <div
14
14
  bind:this={ref}
15
15
  data-slot="alert-dialog-footer"
16
- class={cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className)}
16
+ class={cn(
17
+ "bg-muted/50 -mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",
18
+ className
19
+ )}
17
20
  {...restProps}
18
21
  >
19
22
  {@render children?.()}
@@ -13,7 +13,10 @@
13
13
  <div
14
14
  bind:this={ref}
15
15
  data-slot="alert-dialog-header"
16
- class={cn("flex flex-col gap-2 text-center sm:text-start", className)}
16
+ class={cn(
17
+ "grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",
18
+ className
19
+ )}
17
20
  {...restProps}
18
21
  >
19
22
  {@render children?.()}
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { cn, type WithElementRef } from "../../../utils.js";
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="alert-dialog-media"
16
+ class={cn(
17
+ "bg-muted mb-2 inline-flex size-10 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,5 @@
1
+ import type { HTMLAttributes } from "svelte/elements";
2
+ import { type WithElementRef } from "../../../utils.js";
3
+ declare const AlertDialogMedia: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
+ type AlertDialogMedia = ReturnType<typeof AlertDialogMedia>;
5
+ export default AlertDialogMedia;
@@ -9,7 +9,7 @@
9
9
  bind:ref
10
10
  data-slot="alert-dialog-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 duration-100 supports-backdrop-filter:backdrop-blur-xs",
13
13
  className
14
14
  )}
15
15
  {...restProps}
@@ -8,6 +8,9 @@
8
8
  <AlertDialogPrimitive.Title
9
9
  bind:ref
10
10
  data-slot="alert-dialog-title"
11
- class={cn("text-lg font-semibold", className)}
11
+ class={cn(
12
+ "text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",
13
+ className
14
+ )}
12
15
  {...restProps}
13
16
  />
@@ -9,4 +9,5 @@ import Header from "./alert-dialog-header.svelte";
9
9
  import Overlay from "./alert-dialog-overlay.svelte";
10
10
  import Content from "./alert-dialog-content.svelte";
11
11
  import Description from "./alert-dialog-description.svelte";
12
- export { Root, Title, Action, Cancel, Portal, Footer, Header, Trigger, Overlay, Content, Description, Root as AlertDialog, Title as AlertDialogTitle, Action as AlertDialogAction, Cancel as AlertDialogCancel, Portal as AlertDialogPortal, Footer as AlertDialogFooter, Header as AlertDialogHeader, Trigger as AlertDialogTrigger, Overlay as AlertDialogOverlay, Content as AlertDialogContent, Description as AlertDialogDescription, };
12
+ import Media from "./alert-dialog-media.svelte";
13
+ export { Root, Title, Action, Cancel, Portal, Footer, Header, Trigger, Overlay, Content, Description, Media, Root as AlertDialog, Title as AlertDialogTitle, Action as AlertDialogAction, Cancel as AlertDialogCancel, Portal as AlertDialogPortal, Footer as AlertDialogFooter, Header as AlertDialogHeader, Trigger as AlertDialogTrigger, Overlay as AlertDialogOverlay, Content as AlertDialogContent, Description as AlertDialogDescription, Media as AlertDialogMedia, };
@@ -9,6 +9,7 @@ import Header from "./alert-dialog-header.svelte";
9
9
  import Overlay from "./alert-dialog-overlay.svelte";
10
10
  import Content from "./alert-dialog-content.svelte";
11
11
  import Description from "./alert-dialog-description.svelte";
12
- export { Root, Title, Action, Cancel, Portal, Footer, Header, Trigger, Overlay, Content, Description,
12
+ import Media from "./alert-dialog-media.svelte";
13
+ export { Root, Title, Action, Cancel, Portal, Footer, Header, Trigger, Overlay, Content, Description, Media,
13
14
  //
14
- Root as AlertDialog, Title as AlertDialogTitle, Action as AlertDialogAction, Cancel as AlertDialogCancel, Portal as AlertDialogPortal, Footer as AlertDialogFooter, Header as AlertDialogHeader, Trigger as AlertDialogTrigger, Overlay as AlertDialogOverlay, Content as AlertDialogContent, Description as AlertDialogDescription, };
15
+ Root as AlertDialog, Title as AlertDialogTitle, Action as AlertDialogAction, Cancel as AlertDialogCancel, Portal as AlertDialogPortal, Footer as AlertDialogFooter, Header as AlertDialogHeader, Trigger as AlertDialogTrigger, Overlay as AlertDialogOverlay, Content as AlertDialogContent, Description as AlertDialogDescription, Media as AlertDialogMedia, };
@@ -0,0 +1,26 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { cn, type WithElementRef } from "../../../utils.js";
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLSpanElement>> = $props();
11
+ </script>
12
+
13
+ <span
14
+ bind:this={ref}
15
+ data-slot="avatar-badge"
16
+ class={cn(
17
+ "bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-blend-color ring-2 select-none",
18
+ "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
19
+ "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
20
+ "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
21
+ className
22
+ )}
23
+ {...restProps}
24
+ >
25
+ {@render children?.()}
26
+ </span>
@@ -0,0 +1,5 @@
1
+ import type { HTMLAttributes } from "svelte/elements";
2
+ import { type WithElementRef } from "../../../utils.js";
3
+ declare const AvatarBadge: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLSpanElement>>, {}, "ref">;
4
+ type AvatarBadge = ReturnType<typeof AvatarBadge>;
5
+ export default AvatarBadge;
@@ -8,6 +8,9 @@
8
8
  <AvatarPrimitive.Fallback
9
9
  bind:ref
10
10
  data-slot="avatar-fallback"
11
- class={cn("bg-muted flex size-full items-center justify-center rounded-full", className)}
11
+ class={cn(
12
+ "bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs",
13
+ className
14
+ )}
12
15
  {...restProps}
13
16
  />
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { cn, type WithElementRef } from "../../../utils.js";
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="avatar-group-count"
16
+ class={cn(
17
+ "bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,5 @@
1
+ import type { HTMLAttributes } from "svelte/elements";
2
+ import { type WithElementRef } from "../../../utils.js";
3
+ declare const AvatarGroupCount: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
+ type AvatarGroupCount = ReturnType<typeof AvatarGroupCount>;
5
+ export default AvatarGroupCount;
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { cn, type WithElementRef } from "../../../utils.js";
4
+
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="avatar-group"
16
+ class={cn(
17
+ "cn-avatar-group *:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,5 @@
1
+ import type { HTMLAttributes } from "svelte/elements";
2
+ import { type WithElementRef } from "../../../utils.js";
3
+ declare const AvatarGroup: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLDivElement>>, {}, "ref">;
4
+ type AvatarGroup = ReturnType<typeof AvatarGroup>;
5
+ export default AvatarGroup;
@@ -8,6 +8,6 @@
8
8
  <AvatarPrimitive.Image
9
9
  bind:ref
10
10
  data-slot="avatar-image"
11
- class={cn("aspect-square size-full", className)}
11
+ class={cn("aspect-square size-full rounded-full object-cover", className)}
12
12
  {...restProps}
13
13
  />
@@ -5,15 +5,22 @@
5
5
  let {
6
6
  ref = $bindable(null),
7
7
  loadingStatus = $bindable("loading"),
8
+ size = "default",
8
9
  class: className,
9
10
  ...restProps
10
- }: AvatarPrimitive.RootProps = $props();
11
+ }: AvatarPrimitive.RootProps & {
12
+ size?: "default" | "sm" | "lg";
13
+ } = $props();
11
14
  </script>
12
15
 
13
16
  <AvatarPrimitive.Root
14
17
  bind:ref
15
18
  bind:loadingStatus
16
19
  data-slot="avatar"
17
- class={cn("relative flex size-8 shrink-0 overflow-hidden rounded-full", className)}
20
+ data-size={size}
21
+ class={cn(
22
+ "after:border-border group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten",
23
+ className
24
+ )}
18
25
  {...restProps}
19
26
  />
@@ -1,4 +1,7 @@
1
1
  import { Avatar as AvatarPrimitive } from "bits-ui";
2
- declare const Avatar: import("svelte").Component<AvatarPrimitive.RootProps, {}, "ref" | "loadingStatus">;
2
+ type $$ComponentProps = AvatarPrimitive.RootProps & {
3
+ size?: "default" | "sm" | "lg";
4
+ };
5
+ declare const Avatar: import("svelte").Component<$$ComponentProps, {}, "ref" | "loadingStatus">;
3
6
  type Avatar = ReturnType<typeof Avatar>;
4
7
  export default Avatar;
@@ -1,4 +1,7 @@
1
1
  import Root from "./avatar.svelte";
2
2
  import Image from "./avatar-image.svelte";
3
3
  import Fallback from "./avatar-fallback.svelte";
4
- export { Root, Image, Fallback, Root as Avatar, Image as AvatarImage, Fallback as AvatarFallback, };
4
+ import Badge from "./avatar-badge.svelte";
5
+ import Group from "./avatar-group.svelte";
6
+ import GroupCount from "./avatar-group-count.svelte";
7
+ export { Root, Image, Fallback, Badge, Group, GroupCount, Root as Avatar, Image as AvatarImage, Fallback as AvatarFallback, Badge as AvatarBadge, Group as AvatarGroup, GroupCount as AvatarGroupCount, };
@@ -1,6 +1,9 @@
1
1
  import Root from "./avatar.svelte";
2
2
  import Image from "./avatar-image.svelte";
3
3
  import Fallback from "./avatar-fallback.svelte";
4
- export { Root, Image, Fallback,
4
+ import Badge from "./avatar-badge.svelte";
5
+ import Group from "./avatar-group.svelte";
6
+ import GroupCount from "./avatar-group-count.svelte";
7
+ export { Root, Image, Fallback, Badge, Group, GroupCount,
5
8
  //
6
- Root as Avatar, Image as AvatarImage, Fallback as AvatarFallback, };
9
+ Root as Avatar, Image as AvatarImage, Fallback as AvatarFallback, Badge as AvatarBadge, Group as AvatarGroup, GroupCount as AvatarGroupCount, };
@@ -2,14 +2,16 @@
2
2
  import { type VariantProps, tv } from "tailwind-variants";
3
3
 
4
4
  export const badgeVariants = tv({
5
- base: "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",
5
+ base: "h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none",
6
6
  variants: {
7
7
  variant: {
8
- default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90 border-transparent",
9
- secondary: "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent",
8
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
9
+ secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
10
10
  destructive:
11
- "bg-destructive [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/70 border-transparent text-white",
12
- outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
11
+ "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",
12
+ outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
13
+ ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
14
+ link: "text-primary underline-offset-4 hover:underline",
13
15
  },
14
16
  },
15
17
  defaultVariants: {