@brumaombra/ui-vintage 0.7.8 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +308 -48
  2. package/module.mjs +1 -1
  3. package/package.json +2 -1
  4. package/src/components/background-grid/BackgroundGrid.vue +11 -2
  5. package/src/components/background-grid/index.ts +2 -2
  6. package/src/components/blog/AllPostsSection.vue +25 -9
  7. package/src/components/blog/BlogFAQSection.vue +8 -3
  8. package/src/components/blog/BlogHeaderSection.vue +14 -11
  9. package/src/components/blog/BlogInfoSection.vue +13 -11
  10. package/src/components/blog/BlogSectionTitle.vue +5 -5
  11. package/src/components/blog/CategoriesList.vue +11 -3
  12. package/src/components/blog/CategoriesSection.vue +11 -3
  13. package/src/components/blog/CategoryCard.vue +10 -8
  14. package/src/components/blog/HeaderCarousel.vue +24 -15
  15. package/src/components/blog/PostCard.vue +16 -11
  16. package/src/components/blog/PostsList.vue +12 -3
  17. package/src/components/blog/SocialShareSidebar.vue +11 -11
  18. package/src/components/blog/TableOfContents.vue +29 -13
  19. package/src/components/busy-indicator/BusyIndicator.vue +2 -2
  20. package/src/components/busy-indicator/busy-indicator-state.ts +11 -12
  21. package/src/components/busy-indicator/index.ts +3 -3
  22. package/src/components/card-grid/CardGrid.vue +25 -11
  23. package/src/components/chip/Chip.vue +15 -15
  24. package/src/components/chip/index.ts +2 -2
  25. package/src/components/confirm-dialog/ConfirmDialog.vue +9 -9
  26. package/src/components/confirm-dialog/confirm-dialog-state.ts +15 -14
  27. package/src/components/confirm-dialog/index.ts +3 -12
  28. package/src/components/content/BlogList.vue +11 -8
  29. package/src/components/content/BlogTable.vue +18 -14
  30. package/src/components/content/ProseHr.vue +10 -7
  31. package/src/components/content/Terminal.vue +70 -0
  32. package/src/components/content/index.ts +2 -1
  33. package/src/components/dashboard-shell/DashboardShell.vue +43 -64
  34. package/src/components/dashboard-shell/index.ts +2 -2
  35. package/src/components/data-list/DataList.vue +11 -13
  36. package/src/components/data-list/DataListItem.vue +9 -11
  37. package/src/components/data-list/DataListLabel.vue +9 -11
  38. package/src/components/data-list/DataListText.vue +9 -11
  39. package/src/components/data-list/DataListValue.vue +9 -11
  40. package/src/components/data-list/index.ts +5 -5
  41. package/src/components/empty-state-card/EmptyStateCard.vue +21 -11
  42. package/src/components/error-page/ErrorPage.vue +24 -27
  43. package/src/components/error-page/index.ts +2 -2
  44. package/src/components/info-card/InfoCard.vue +17 -11
  45. package/src/components/landing/index.ts +6 -6
  46. package/src/components/landing/landing-content/LandingContent.vue +5 -7
  47. package/src/components/landing/landing-content/index.ts +2 -2
  48. package/src/components/landing/landing-footer/LandingFooter.vue +26 -29
  49. package/src/components/landing/landing-footer/index.ts +3 -3
  50. package/src/components/landing/landing-navbar/LandingNavbar.vue +15 -17
  51. package/src/components/landing/landing-navbar/index.ts +2 -2
  52. package/src/components/landing/landing-shell/LandingShell.vue +10 -13
  53. package/src/components/landing/landing-shell/index.ts +2 -2
  54. package/src/components/language-flag/LanguageFlag.vue +6 -5
  55. package/src/components/language-flag/index.ts +1 -0
  56. package/src/components/language-selector/LanguageSelector.vue +20 -21
  57. package/src/components/load-more-button/LoadMoreButton.vue +18 -14
  58. package/src/components/loading-state-card/LoadingStateCard.vue +13 -9
  59. package/src/components/message-dialog/MessageDialog.vue +19 -19
  60. package/src/components/message-dialog/index.ts +3 -11
  61. package/src/components/message-dialog/message-dialog-state.ts +12 -11
  62. package/src/components/message-toast/MessageToast.vue +16 -16
  63. package/src/components/message-toast/index.ts +2 -9
  64. package/src/components/message-toast/message-toast-state.ts +9 -9
  65. package/src/components/page-header/PageHeader.vue +8 -5
  66. package/src/components/progress-component/ProgressComponent.vue +13 -10
  67. package/src/components/single-value-card/SingleValueCard.vue +22 -19
  68. package/src/components/slider-form-component/SliderFormComponent.vue +11 -20
  69. package/src/components/slider-form-component/index.ts +2 -2
  70. package/src/components/switch-form-component/SwitchFormComponent.vue +7 -9
  71. package/src/components/switch-form-component/index.ts +2 -2
  72. package/src/components/text-link/TextLink.vue +11 -7
  73. package/src/components/ui/accordion/Accordion.vue +10 -13
  74. package/src/components/ui/accordion/index.ts +1 -1
  75. package/src/components/ui/alert/Alert.vue +11 -10
  76. package/src/components/ui/alert/AlertDescription.vue +9 -8
  77. package/src/components/ui/alert/AlertTitle.vue +9 -8
  78. package/src/components/ui/alert/index.ts +10 -10
  79. package/src/components/ui/alert-dialog/AlertDialog.vue +13 -9
  80. package/src/components/ui/alert-dialog/AlertDialogAction.vue +14 -12
  81. package/src/components/ui/alert-dialog/AlertDialogCancel.vue +14 -16
  82. package/src/components/ui/alert-dialog/AlertDialogContent.vue +24 -27
  83. package/src/components/ui/alert-dialog/AlertDialogDescription.vue +13 -13
  84. package/src/components/ui/alert-dialog/AlertDialogFooter.vue +9 -12
  85. package/src/components/ui/alert-dialog/AlertDialogHeader.vue +9 -8
  86. package/src/components/ui/alert-dialog/AlertDialogTitle.vue +13 -11
  87. package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +8 -7
  88. package/src/components/ui/alert-dialog/index.ts +9 -9
  89. package/src/components/ui/badge/Badge.vue +11 -12
  90. package/src/components/ui/badge/index.ts +1 -1
  91. package/src/components/ui/breadcrumb/Breadcrumb.vue +9 -12
  92. package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +15 -19
  93. package/src/components/ui/breadcrumb/BreadcrumbItem.vue +10 -12
  94. package/src/components/ui/breadcrumb/BreadcrumbLink.vue +13 -17
  95. package/src/components/ui/breadcrumb/BreadcrumbList.vue +10 -12
  96. package/src/components/ui/breadcrumb/BreadcrumbPage.vue +10 -15
  97. package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +14 -18
  98. package/src/components/ui/breadcrumb/index.ts +7 -7
  99. package/src/components/ui/busy/Busy.vue +36 -29
  100. package/src/components/ui/busy/index.ts +1 -1
  101. package/src/components/ui/button/Button.vue +18 -19
  102. package/src/components/ui/button/index.ts +54 -35
  103. package/src/components/ui/calendar/Calendar.vue +167 -121
  104. package/src/components/ui/calendar/CalendarCell.vue +18 -17
  105. package/src/components/ui/calendar/CalendarCellTrigger.vue +31 -33
  106. package/src/components/ui/calendar/CalendarGrid.vue +14 -17
  107. package/src/components/ui/calendar/CalendarGridBody.vue +9 -11
  108. package/src/components/ui/calendar/CalendarGridHead.vue +10 -12
  109. package/src/components/ui/calendar/CalendarGridRow.vue +14 -16
  110. package/src/components/ui/calendar/CalendarHeadCell.vue +18 -17
  111. package/src/components/ui/calendar/CalendarHeader.vue +18 -17
  112. package/src/components/ui/calendar/CalendarHeading.vue +18 -22
  113. package/src/components/ui/calendar/CalendarNextButton.vue +29 -26
  114. package/src/components/ui/calendar/CalendarPrevButton.vue +29 -26
  115. package/src/components/ui/calendar/index.ts +17 -13
  116. package/src/components/ui/card/Card.vue +21 -13
  117. package/src/components/ui/card/CardAction.vue +12 -7
  118. package/src/components/ui/card/CardContent.vue +8 -7
  119. package/src/components/ui/card/CardDescription.vue +16 -7
  120. package/src/components/ui/card/CardFooter.vue +8 -7
  121. package/src/components/ui/card/CardHeader.vue +12 -7
  122. package/src/components/ui/card/CardText.vue +12 -7
  123. package/src/components/ui/card/CardTitle.vue +9 -7
  124. package/src/components/ui/card/index.ts +8 -8
  125. package/src/components/ui/command/Command.vue +71 -61
  126. package/src/components/ui/command/CommandDialog.vue +33 -23
  127. package/src/components/ui/command/CommandEmpty.vue +19 -20
  128. package/src/components/ui/command/CommandGroup.vue +32 -35
  129. package/src/components/ui/command/CommandInput.vue +25 -21
  130. package/src/components/ui/command/CommandItem.vue +62 -59
  131. package/src/components/ui/command/CommandList.vue +21 -18
  132. package/src/components/ui/command/CommandSeparator.vue +13 -11
  133. package/src/components/ui/command/CommandShortcut.vue +13 -8
  134. package/src/components/ui/command/index.ts +24 -20
  135. package/src/components/ui/date-picker/DatePicker.vue +46 -37
  136. package/src/components/ui/date-picker/index.ts +2 -2
  137. package/src/components/ui/date-time-picker/DateTimePicker.vue +99 -95
  138. package/src/components/ui/date-time-picker/index.ts +2 -2
  139. package/src/components/ui/dialog/Dialog.vue +12 -9
  140. package/src/components/ui/dialog/DialogClose.vue +8 -10
  141. package/src/components/ui/dialog/DialogContent.vue +36 -42
  142. package/src/components/ui/dialog/DialogDescription.vue +16 -11
  143. package/src/components/ui/dialog/DialogFooter.vue +13 -12
  144. package/src/components/ui/dialog/DialogHeader.vue +9 -8
  145. package/src/components/ui/dialog/DialogOverlay.vue +16 -11
  146. package/src/components/ui/dialog/DialogScrollContent.vue +47 -45
  147. package/src/components/ui/dialog/DialogTitle.vue +13 -12
  148. package/src/components/ui/dialog/DialogTrigger.vue +8 -7
  149. package/src/components/ui/dialog/index.ts +10 -10
  150. package/src/components/ui/field/Field.vue +12 -14
  151. package/src/components/ui/field/FieldContent.vue +13 -11
  152. package/src/components/ui/field/FieldDescription.vue +15 -13
  153. package/src/components/ui/field/FieldError.vue +43 -40
  154. package/src/components/ui/field/FieldGroup.vue +13 -11
  155. package/src/components/ui/field/FieldLabel.vue +16 -14
  156. package/src/components/ui/field/FieldLegend.vue +16 -14
  157. package/src/components/ui/field/FieldSeparator.vue +17 -15
  158. package/src/components/ui/field/FieldSet.vue +14 -12
  159. package/src/components/ui/field/FieldTitle.vue +13 -11
  160. package/src/components/ui/field/index.ts +36 -36
  161. package/src/components/ui/input/Input.vue +23 -20
  162. package/src/components/ui/input/index.ts +1 -1
  163. package/src/components/ui/label/Label.vue +16 -15
  164. package/src/components/ui/label/index.ts +1 -1
  165. package/src/components/ui/native-select/NativeSelect.vue +31 -41
  166. package/src/components/ui/native-select/NativeSelectOptGroup.vue +8 -7
  167. package/src/components/ui/native-select/NativeSelectOption.vue +8 -7
  168. package/src/components/ui/native-select/index.ts +3 -3
  169. package/src/components/ui/popover/Popover.vue +12 -9
  170. package/src/components/ui/popover/PopoverAnchor.vue +8 -7
  171. package/src/components/ui/popover/PopoverContent.vue +27 -31
  172. package/src/components/ui/popover/PopoverTrigger.vue +8 -7
  173. package/src/components/ui/popover/index.ts +4 -4
  174. package/src/components/ui/progress/Progress.vue +18 -32
  175. package/src/components/ui/progress/index.ts +1 -1
  176. package/src/components/ui/scroll-area/ScrollArea.vue +23 -26
  177. package/src/components/ui/scroll-area/ScrollBar.vue +22 -26
  178. package/src/components/ui/scroll-area/index.ts +2 -2
  179. package/src/components/ui/select/Select.vue +12 -9
  180. package/src/components/ui/select/SelectContent.vue +39 -40
  181. package/src/components/ui/select/SelectGroup.vue +8 -7
  182. package/src/components/ui/select/SelectItem.vue +36 -41
  183. package/src/components/ui/select/SelectItemContent.vue +22 -15
  184. package/src/components/ui/select/SelectItemText.vue +8 -7
  185. package/src/components/ui/select/SelectLabel.vue +10 -9
  186. package/src/components/ui/select/SelectScrollDownButton.vue +21 -17
  187. package/src/components/ui/select/SelectScrollUpButton.vue +21 -17
  188. package/src/components/ui/select/SelectSeparator.vue +11 -9
  189. package/src/components/ui/select/SelectTrigger.vue +27 -25
  190. package/src/components/ui/select/SelectValue.vue +8 -7
  191. package/src/components/ui/select/SelectValueContent.vue +30 -18
  192. package/src/components/ui/select/index.ts +13 -13
  193. package/src/components/ui/separator/Separator.vue +17 -18
  194. package/src/components/ui/separator/index.ts +1 -1
  195. package/src/components/ui/sheet/Sheet.vue +12 -9
  196. package/src/components/ui/sheet/SheetClose.vue +8 -7
  197. package/src/components/ui/sheet/SheetContent.vue +36 -37
  198. package/src/components/ui/sheet/SheetDescription.vue +12 -11
  199. package/src/components/ui/sheet/SheetFooter.vue +8 -7
  200. package/src/components/ui/sheet/SheetHeader.vue +8 -7
  201. package/src/components/ui/sheet/SheetOverlay.vue +16 -11
  202. package/src/components/ui/sheet/SheetTitle.vue +12 -11
  203. package/src/components/ui/sheet/SheetTrigger.vue +8 -7
  204. package/src/components/ui/sheet/index.ts +8 -8
  205. package/src/components/ui/sidebar/Sidebar.vue +68 -61
  206. package/src/components/ui/sidebar/SidebarContent.vue +13 -8
  207. package/src/components/ui/sidebar/SidebarFooter.vue +13 -8
  208. package/src/components/ui/sidebar/SidebarGroup.vue +13 -8
  209. package/src/components/ui/sidebar/SidebarGroupAction.vue +16 -16
  210. package/src/components/ui/sidebar/SidebarGroupContent.vue +9 -8
  211. package/src/components/ui/sidebar/SidebarGroupLabel.vue +15 -14
  212. package/src/components/ui/sidebar/SidebarHeader.vue +13 -8
  213. package/src/components/ui/sidebar/SidebarInput.vue +14 -12
  214. package/src/components/ui/sidebar/SidebarInset.vue +14 -12
  215. package/src/components/ui/sidebar/SidebarMenu.vue +9 -8
  216. package/src/components/ui/sidebar/SidebarMenuAction.vue +25 -23
  217. package/src/components/ui/sidebar/SidebarMenuBadge.vue +19 -17
  218. package/src/components/ui/sidebar/SidebarMenuButton.vue +33 -32
  219. package/src/components/ui/sidebar/SidebarMenuButtonChild.vue +19 -18
  220. package/src/components/ui/sidebar/SidebarMenuItem.vue +9 -8
  221. package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +17 -12
  222. package/src/components/ui/sidebar/SidebarMenuSub.vue +14 -12
  223. package/src/components/ui/sidebar/SidebarMenuSubButton.vue +24 -21
  224. package/src/components/ui/sidebar/SidebarMenuSubItem.vue +9 -8
  225. package/src/components/ui/sidebar/SidebarProvider.vue +63 -53
  226. package/src/components/ui/sidebar/SidebarRail.vue +20 -18
  227. package/src/components/ui/sidebar/SidebarSeparator.vue +10 -9
  228. package/src/components/ui/sidebar/SidebarTrigger.vue +15 -14
  229. package/src/components/ui/sidebar/index.ts +62 -58
  230. package/src/components/ui/sidebar/utils.ts +16 -16
  231. package/src/components/ui/skeleton/Skeleton.vue +12 -9
  232. package/src/components/ui/skeleton/index.ts +1 -1
  233. package/src/components/ui/slider/Slider.vue +24 -19
  234. package/src/components/ui/slider/index.ts +1 -1
  235. package/src/components/ui/switch/Switch.vue +26 -23
  236. package/src/components/ui/switch/index.ts +1 -1
  237. package/src/components/ui/table/Table.vue +11 -10
  238. package/src/components/ui/table/TableBody.vue +9 -11
  239. package/src/components/ui/table/TableCaption.vue +9 -11
  240. package/src/components/ui/table/TableCell.vue +13 -16
  241. package/src/components/ui/table/TableEmpty.vue +22 -25
  242. package/src/components/ui/table/TableFooter.vue +13 -11
  243. package/src/components/ui/table/TableHead.vue +13 -11
  244. package/src/components/ui/table/TableHeader.vue +9 -11
  245. package/src/components/ui/table/TableRow.vue +13 -11
  246. package/src/components/ui/table/index.ts +9 -9
  247. package/src/components/ui/tabs/Tabs.vue +18 -18
  248. package/src/components/ui/tabs/TabsContent.vue +14 -15
  249. package/src/components/ui/tabs/TabsList.vue +18 -18
  250. package/src/components/ui/tabs/TabsTrigger.vue +19 -20
  251. package/src/components/ui/tabs/index.ts +4 -4
  252. package/src/components/ui/textarea/Textarea.vue +23 -20
  253. package/src/components/ui/textarea/index.ts +1 -1
  254. package/src/components/ui/time-picker/TimePicker.vue +33 -38
  255. package/src/components/ui/time-picker/index.ts +2 -2
  256. package/src/components/ui/tooltip/Tooltip.vue +12 -9
  257. package/src/components/ui/tooltip/TooltipContent.vue +28 -20
  258. package/src/components/ui/tooltip/TooltipProvider.vue +9 -8
  259. package/src/components/ui/tooltip/TooltipTrigger.vue +8 -7
  260. package/src/components/ui/tooltip/index.ts +4 -4
  261. package/src/i18n/de.json +5 -0
  262. package/src/i18n/en.json +5 -0
  263. package/src/i18n/es.json +5 -0
  264. package/src/i18n/fr.json +5 -0
  265. package/src/i18n/it.json +5 -0
  266. package/src/i18n/ja.json +5 -0
  267. package/src/i18n/pt.json +5 -0
  268. package/src/i18n/ru.json +5 -0
  269. package/src/i18n/zh.json +5 -0
  270. package/src/lib/common-types.ts +2 -0
  271. package/src/lib/i18n.ts +0 -5
  272. package/src/runtime/{ui-vintage-i18n-plugin.js → ui-vintage-i18n-plugin.ts} +30 -8
@@ -1,64 +1,68 @@
1
- import type { ClassProp } from "class-variance-authority/types"
2
- import type { HTMLAttributes } from "vue"
3
- import { cva } from "class-variance-authority"
1
+ import type { ClassProp } from 'class-variance-authority/types';
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cva } from 'class-variance-authority';
4
4
 
5
- export interface SidebarProps {
6
- side?: "left" | "right"
7
- variant?: "sidebar" | "floating" | "inset"
8
- collapsible?: "offcanvas" | "icon" | "none"
9
- compact?: boolean
10
- class?: HTMLAttributes["class"]
11
- }
5
+ export { default as Sidebar } from './Sidebar.vue';
6
+ export { default as SidebarContent } from './SidebarContent.vue';
7
+ export { default as SidebarFooter } from './SidebarFooter.vue';
8
+ export { default as SidebarGroup } from './SidebarGroup.vue';
9
+ export { default as SidebarGroupAction } from './SidebarGroupAction.vue';
10
+ export { default as SidebarGroupContent } from './SidebarGroupContent.vue';
11
+ export { default as SidebarGroupLabel } from './SidebarGroupLabel.vue';
12
+ export { default as SidebarHeader } from './SidebarHeader.vue';
13
+ export { default as SidebarInput } from './SidebarInput.vue';
14
+ export { default as SidebarInset } from './SidebarInset.vue';
15
+ export { default as SidebarMenu } from './SidebarMenu.vue';
16
+ export { default as SidebarMenuAction } from './SidebarMenuAction.vue';
17
+ export { default as SidebarMenuBadge } from './SidebarMenuBadge.vue';
18
+ export { default as SidebarMenuButton } from './SidebarMenuButton.vue';
19
+ export { default as SidebarMenuItem } from './SidebarMenuItem.vue';
20
+ export { default as SidebarMenuSkeleton } from './SidebarMenuSkeleton.vue';
21
+ export { default as SidebarMenuSub } from './SidebarMenuSub.vue';
22
+ export { default as SidebarMenuSubButton } from './SidebarMenuSubButton.vue';
23
+ export { default as SidebarMenuSubItem } from './SidebarMenuSubItem.vue';
24
+ export { default as SidebarProvider } from './SidebarProvider.vue';
25
+ export { default as SidebarRail } from './SidebarRail.vue';
26
+ export { default as SidebarSeparator } from './SidebarSeparator.vue';
27
+ export { default as SidebarTrigger } from './SidebarTrigger.vue';
12
28
 
13
- export { default as Sidebar } from "./Sidebar.vue"
14
- export { default as SidebarContent } from "./SidebarContent.vue"
15
- export { default as SidebarFooter } from "./SidebarFooter.vue"
16
- export { default as SidebarGroup } from "./SidebarGroup.vue"
17
- export { default as SidebarGroupAction } from "./SidebarGroupAction.vue"
18
- export { default as SidebarGroupContent } from "./SidebarGroupContent.vue"
19
- export { default as SidebarGroupLabel } from "./SidebarGroupLabel.vue"
20
- export { default as SidebarHeader } from "./SidebarHeader.vue"
21
- export { default as SidebarInput } from "./SidebarInput.vue"
22
- export { default as SidebarInset } from "./SidebarInset.vue"
23
- export { default as SidebarMenu } from "./SidebarMenu.vue"
24
- export { default as SidebarMenuAction } from "./SidebarMenuAction.vue"
25
- export { default as SidebarMenuBadge } from "./SidebarMenuBadge.vue"
26
- export { default as SidebarMenuButton } from "./SidebarMenuButton.vue"
27
- export { default as SidebarMenuItem } from "./SidebarMenuItem.vue"
28
- export { default as SidebarMenuSkeleton } from "./SidebarMenuSkeleton.vue"
29
- export { default as SidebarMenuSub } from "./SidebarMenuSub.vue"
30
- export { default as SidebarMenuSubButton } from "./SidebarMenuSubButton.vue"
31
- export { default as SidebarMenuSubItem } from "./SidebarMenuSubItem.vue"
32
- export { default as SidebarProvider } from "./SidebarProvider.vue"
33
- export { default as SidebarRail } from "./SidebarRail.vue"
34
- export { default as SidebarSeparator } from "./SidebarSeparator.vue"
35
- export { default as SidebarTrigger } from "./SidebarTrigger.vue"
29
+ export { useSidebar } from './utils';
36
30
 
37
- export { useSidebar } from "./utils"
31
+ export interface SidebarProps {
32
+ side?: 'left' | 'right';
33
+ variant?: 'sidebar' | 'floating' | 'inset';
34
+ collapsible?: 'offcanvas' | 'icon' | 'none';
35
+ compact?: boolean;
36
+ class?: HTMLAttributes['class'];
37
+ }
38
38
 
39
39
  export type SidebarMenuButtonVariants = {
40
- variant?: "default" | "outline" | null | undefined
41
- size?: "default" | "sm" | "lg" | null | undefined
42
- }
40
+ variant?: 'default' | 'outline' | null | undefined;
41
+ size?: 'default' | 'sm' | 'lg' | null | undefined;
42
+ };
43
43
 
44
- export const sidebarMenuButtonVariants: (props?: SidebarMenuButtonVariants & ClassProp) => string = cva(
45
- "peer/menu-button flex w-full items-center gap-2 rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,min-height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-semibold data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! group-data-[compact=true]/sidebar-wrapper:gap-1.5 group-data-[compact=true]/sidebar-wrapper:p-2.5 group-data-[compact=true]/sidebar-wrapper:[&>svg]:size-3.5 [&>svg]:size-4 [&>svg]:shrink-0",
46
- {
47
- variants: {
48
- variant: {
49
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
50
- outline:
51
- "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]",
52
- },
53
- size: {
54
- default: "min-h-8 text-sm group-data-[compact=true]/sidebar-wrapper:min-h-7 group-data-[compact=true]/sidebar-wrapper:text-xs group-data-[compact=true]/sidebar-wrapper:py-3",
55
- sm: "min-h-7 text-xs group-data-[compact=true]/sidebar-wrapper:min-h-6 group-data-[compact=true]/sidebar-wrapper:py-2.5",
56
- lg: "min-h-12 text-sm group-data-[compact=true]/sidebar-wrapper:min-h-10 group-data-[collapsible=icon]:p-0!",
57
- },
58
- },
59
- defaultVariants: {
60
- variant: "default",
61
- size: "default",
62
- },
63
- },
64
- )
44
+ export const sidebarMenuButtonVariants: (
45
+ props?: SidebarMenuButtonVariants & ClassProp
46
+ ) => string = cva(
47
+ 'peer/menu-button flex w-full items-center gap-2 rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,min-height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-semibold data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! group-data-[compact=true]/sidebar-wrapper:gap-1.5 group-data-[compact=true]/sidebar-wrapper:p-2.5 group-data-[compact=true]/sidebar-wrapper:[&>svg]:size-3.5 [&>svg]:size-4 [&>svg]:shrink-0',
48
+ {
49
+ variants: {
50
+ variant: {
51
+ default:
52
+ 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',
53
+ outline:
54
+ 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]'
55
+ },
56
+ size: {
57
+ default:
58
+ 'min-h-8 text-sm group-data-[compact=true]/sidebar-wrapper:min-h-7 group-data-[compact=true]/sidebar-wrapper:text-xs group-data-[compact=true]/sidebar-wrapper:py-3',
59
+ sm: 'min-h-7 text-xs group-data-[compact=true]/sidebar-wrapper:min-h-6 group-data-[compact=true]/sidebar-wrapper:py-2.5',
60
+ lg: 'min-h-12 text-sm group-data-[compact=true]/sidebar-wrapper:min-h-10 group-data-[collapsible=icon]:p-0!'
61
+ }
62
+ },
63
+ defaultVariants: {
64
+ variant: 'default',
65
+ size: 'default'
66
+ }
67
+ }
68
+ );
@@ -1,19 +1,19 @@
1
- import type { ComputedRef, Ref } from "vue"
2
- import { createContext } from "reka-ui"
1
+ import type { ComputedRef, Ref } from 'vue';
2
+ import { createContext } from 'reka-ui';
3
3
 
4
- export const SIDEBAR_COOKIE_NAME = "sidebar_state"
5
- export const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7
6
- export const SIDEBAR_WIDTH = "16rem"
7
- export const SIDEBAR_WIDTH_MOBILE = "18rem"
8
- export const SIDEBAR_WIDTH_ICON = "3rem"
9
- export const SIDEBAR_KEYBOARD_SHORTCUT = "b"
4
+ export const SIDEBAR_COOKIE_NAME = 'sidebar_state';
5
+ export const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
6
+ export const SIDEBAR_WIDTH = '16rem';
7
+ export const SIDEBAR_WIDTH_MOBILE = '18rem';
8
+ export const SIDEBAR_WIDTH_ICON = '3rem';
9
+ export const SIDEBAR_KEYBOARD_SHORTCUT = 'b';
10
10
 
11
11
  export const [useSidebar, provideSidebarContext] = createContext<{
12
- state: ComputedRef<"expanded" | "collapsed">
13
- open: Ref<boolean>
14
- setOpen: (value: boolean) => void
15
- isMobile: Ref<boolean>
16
- openMobile: Ref<boolean>
17
- setOpenMobile: (value: boolean) => void
18
- toggleSidebar: () => void
19
- }>("Sidebar")
12
+ state: ComputedRef<'expanded' | 'collapsed'>;
13
+ open: Ref<boolean>;
14
+ setOpen: (value: boolean) => void;
15
+ isMobile: Ref<boolean>;
16
+ openMobile: Ref<boolean>;
17
+ setOpenMobile: (value: boolean) => void;
18
+ toggleSidebar: () => void;
19
+ }>('Sidebar');
@@ -1,14 +1,17 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
- interface SkeletonProps {
6
- class?: HTMLAttributes["class"]
7
- }
8
-
9
- const props = defineProps<SkeletonProps>()
5
+ // Props
6
+ const props = defineProps<{
7
+ class?: HTMLAttributes['class'];
8
+ }>();
10
9
  </script>
11
10
 
12
11
  <template>
13
- <div data-slot="skeleton" :class="cn(props.class, 'animate-pulse rounded border border-(--border-light) bg-(--bg-surface-light) transition-colors duration-300 ease-in-out dark:border-(--border-dark) dark:bg-(--bg-surface-dark)',)" />
14
- </template>
12
+ <div data-slot="skeleton" :class="cn(
13
+ props.class,
14
+ 'animate-pulse rounded border border-(--border-light) bg-(--bg-surface-light) transition-colors duration-300 ease-in-out dark:border-(--border-dark) dark:bg-(--bg-surface-dark)'
15
+ )
16
+ " />
17
+ </template>
@@ -1 +1 @@
1
- export { default as Skeleton } from "./Skeleton.vue"
1
+ export { default as Skeleton } from './Skeleton.vue';
@@ -1,27 +1,32 @@
1
1
  <script setup lang="ts">
2
- import type { SliderRootEmits, SliderRootProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import { SliderRange, SliderRoot, SliderThumb, SliderTrack, useForwardPropsEmits } from "reka-ui"
6
- import { cn } from "../../../lib/utils"
2
+ import type { SliderRootEmits, SliderRootProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { SliderRange, SliderRoot, SliderThumb, SliderTrack, useForwardPropsEmits } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
7
7
 
8
- const props = defineProps<SliderRootProps & { class?: HTMLAttributes["class"] }>()
9
- const emits = defineEmits<SliderRootEmits>()
8
+ // Props
9
+ const props = defineProps<SliderRootProps & {
10
+ class?: HTMLAttributes['class'];
11
+ }>();
10
12
 
11
- const delegatedProps = reactiveOmit(props, "class")
13
+ // Emits
14
+ const emits = defineEmits<SliderRootEmits>();
12
15
 
13
- const forwarded = useForwardPropsEmits(delegatedProps, emits)
16
+ const delegatedProps = reactiveOmit(props, 'class');
17
+ const forwarded = useForwardPropsEmits(delegatedProps, emits);
14
18
  </script>
15
19
 
16
20
  <template>
17
- <SliderRoot v-slot="{ modelValue }" data-slot="slider" :class="cn(
18
- 'relative flex w-full cursor-pointer touch-none items-center select-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',
19
- props.class,
20
- )" v-bind="forwarded">
21
- <SliderTrack data-slot="slider-track" class="bg-muted relative grow overflow-hidden rounded data-[orientation=horizontal]:h-2 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2">
22
- <SliderRange data-slot="slider-range" class="bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full" />
23
- </SliderTrack>
21
+ <SliderRoot v-slot="{ modelValue }" data-slot="slider" :class="cn(
22
+ 'relative flex w-full cursor-pointer touch-none items-center select-none data-disabled:cursor-not-allowed data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',
23
+ props.class
24
+ )
25
+ " v-bind="forwarded">
26
+ <SliderTrack data-slot="slider-track" class="bg-muted relative grow overflow-hidden rounded data-[orientation=horizontal]:h-2 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2">
27
+ <SliderRange data-slot="slider-range" class="bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full" />
28
+ </SliderTrack>
24
29
 
25
- <SliderThumb v-for="(_, key) in modelValue" :key="key" data-slot="slider-thumb" class="bg-white border-primary ring-ring/50 block size-5 shrink-0 rounded border shadow-sm transition-[color,box-shadow,transform] hover:scale-105 hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50" />
26
- </SliderRoot>
27
- </template>
30
+ <SliderThumb v-for="(_, key) in modelValue" :key="key" data-slot="slider-thumb" class="bg-white border-primary ring-ring/50 block size-5 shrink-0 rounded border shadow-sm transition-[color,box-shadow,transform] hover:scale-105 hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50" />
31
+ </SliderRoot>
32
+ </template>
@@ -1 +1 @@
1
- export { default as Slider } from "./Slider.vue"
1
+ export { default as Slider } from './Slider.vue';
@@ -1,30 +1,33 @@
1
1
  <script setup lang="ts">
2
- import type { SwitchRootEmits, SwitchRootProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import {
6
- SwitchRoot,
7
- SwitchThumb,
8
- useForwardPropsEmits,
9
- } from "reka-ui"
10
- import { cn } from "../../../lib/utils"
2
+ import type { SwitchRootEmits, SwitchRootProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { SwitchRoot, SwitchThumb, useForwardPropsEmits } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
11
7
 
12
- const props = defineProps<SwitchRootProps & { class?: HTMLAttributes["class"] }>()
8
+ // Props
9
+ const props = defineProps<SwitchRootProps & {
10
+ class?: HTMLAttributes['class'];
11
+ }>();
13
12
 
14
- const emits = defineEmits<SwitchRootEmits>()
13
+ // Emits
14
+ const emits = defineEmits<SwitchRootEmits>();
15
15
 
16
- const delegatedProps = reactiveOmit(props, "class")
17
-
18
- const forwarded = useForwardPropsEmits(delegatedProps, emits)
16
+ const delegatedProps = reactiveOmit(props, 'class');
17
+ const forwarded = useForwardPropsEmits(delegatedProps, emits);
19
18
  </script>
20
19
 
21
20
  <template>
22
- <SwitchRoot v-slot="slotProps" data-slot="switch" v-bind="forwarded" :class="cn(
23
- 'peer relative inline-flex h-7 w-12 shrink-0 cursor-pointer items-center rounded border border-(--border-light) bg-(--button-secondary-light) transition-all duration-200 outline-none focus-visible:border-(--border-hover-light) focus-visible:ring-0 disabled:cursor-not-allowed disabled:opacity-60 data-[state=checked]:border-(--button-primary-light) data-[state=checked]:bg-(--bg-selected-light) dark:border-(--border-dark) dark:bg-(--button-secondary-dark) dark:focus-visible:border-(--border-hover-dark) dark:data-[state=checked]:border-(--button-primary-dark) dark:data-[state=checked]:bg-(--bg-selected-dark)',
24
- props.class,
25
- )">
26
- <SwitchThumb data-slot="switch-thumb" :class="cn('pointer-events-none absolute left-[4px] top-1/2 block h-4 w-4 -translate-y-1/2 rounded-[0.2rem] bg-(--text-secondary-light) ring-0 transition-all duration-200 data-[state=checked]:translate-x-6 data-[state=checked]:bg-(--button-primary-light) dark:bg-(--text-secondary-dark) dark:data-[state=checked]:bg-(--button-primary-dark)')">
27
- <slot name="thumb" v-bind="slotProps" />
28
- </SwitchThumb>
29
- </SwitchRoot>
30
- </template>
21
+ <SwitchRoot v-slot="slotProps" data-slot="switch" v-bind="forwarded" :class="cn(
22
+ 'peer relative inline-flex h-7 w-12 shrink-0 cursor-pointer items-center rounded border border-(--border-light) bg-(--button-secondary-light) transition-all duration-200 outline-none focus-visible:border-(--border-hover-light) focus-visible:ring-0 disabled:cursor-not-allowed disabled:opacity-60 data-[state=checked]:border-(--button-primary-light) data-[state=checked]:bg-(--bg-selected-light) dark:border-(--border-dark) dark:bg-(--button-secondary-dark) dark:focus-visible:border-(--border-hover-dark) dark:data-[state=checked]:border-(--button-primary-dark) dark:data-[state=checked]:bg-(--bg-selected-dark)',
23
+ props.class
24
+ )
25
+ ">
26
+ <SwitchThumb data-slot="switch-thumb" :class="cn(
27
+ 'pointer-events-none absolute left-1 top-1/2 block h-4 w-4 -translate-y-1/2 rounded-[0.2rem] bg-(--text-secondary-light) ring-0 transition-all duration-200 data-[state=checked]:translate-x-6 data-[state=checked]:bg-(--button-primary-light) dark:bg-(--text-secondary-dark) dark:data-[state=checked]:bg-(--button-primary-dark)'
28
+ )
29
+ ">
30
+ <slot name="thumb" v-bind="slotProps" />
31
+ </SwitchThumb>
32
+ </SwitchRoot>
33
+ </template>
@@ -1 +1 @@
1
- export { default as Switch } from "./Switch.vue"
1
+ export { default as Switch } from './Switch.vue';
@@ -1,16 +1,17 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <div data-slot="table-container" class="relative w-full overflow-auto">
12
- <table data-slot="table" :class="cn('w-full caption-bottom text-sm', props.class)">
13
- <slot />
14
- </table>
15
- </div>
16
- </template>
12
+ <div data-slot="table-container" class="relative w-full overflow-auto">
13
+ <table data-slot="table" :class="cn('w-full caption-bottom text-sm', props.class)">
14
+ <slot />
15
+ </table>
16
+ </div>
17
+ </template>
@@ -1,17 +1,15 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <tbody
12
- data-slot="table-body"
13
- :class="cn('[&_tr:last-child]:border-0', props.class)"
14
- >
15
- <slot />
16
- </tbody>
17
- </template>
12
+ <tbody data-slot="table-body" :class="cn('[&_tr:last-child]:border-0', props.class)">
13
+ <slot />
14
+ </tbody>
15
+ </template>
@@ -1,17 +1,15 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <caption
12
- data-slot="table-caption"
13
- :class="cn('text-muted-foreground mt-4 text-sm', props.class)"
14
- >
15
- <slot />
16
- </caption>
17
- </template>
12
+ <caption data-slot="table-caption" :class="cn('text-muted-foreground mt-4 text-sm', props.class)">
13
+ <slot />
14
+ </caption>
15
+ </template>
@@ -1,22 +1,19 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <td
12
- data-slot="table-cell"
13
- :class="
14
- cn(
15
- 'px-2 py-3 max-w-[300px] text-xs md:text-sm align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',
16
- props.class,
17
- )
18
- "
19
- >
20
- <slot />
21
- </td>
22
- </template>
12
+ <td data-slot="table-cell" :class="cn(
13
+ 'px-2 py-3 max-w-75 text-xs md:text-sm align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 *:[[role=checkbox]]:translate-y-0.5',
14
+ props.class
15
+ )
16
+ ">
17
+ <slot />
18
+ </td>
19
+ </template>
@@ -1,34 +1,31 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { reactiveOmit } from "@vueuse/core"
4
- import { cn } from "../../../lib/utils"
5
- import TableCell from "./TableCell.vue"
6
- import TableRow from "./TableRow.vue"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { cn } from '../../../lib/utils';
5
+ import TableCell from './TableCell.vue';
6
+ import TableRow from './TableRow.vue';
7
7
 
8
+ // Props
8
9
  const props = withDefaults(defineProps<{
9
- class?: HTMLAttributes["class"]
10
- colspan?: number
10
+ class?: HTMLAttributes['class'];
11
+ colspan?: number;
11
12
  }>(), {
12
- colspan: 1,
13
- })
13
+ colspan: 1
14
+ });
14
15
 
15
- const delegatedProps = reactiveOmit(props, "class")
16
+ const delegatedProps = reactiveOmit(props, 'class');
16
17
  </script>
17
18
 
18
19
  <template>
19
- <TableRow>
20
- <TableCell
21
- :class="
22
- cn(
23
- 'p-4 whitespace-nowrap align-middle text-sm text-foreground',
24
- props.class,
20
+ <TableRow>
21
+ <TableCell :class="cn(
22
+ 'p-4 whitespace-nowrap align-middle text-sm text-foreground',
23
+ props.class
25
24
  )
26
- "
27
- v-bind="delegatedProps"
28
- >
29
- <div class="flex items-center justify-center py-10">
30
- <slot />
31
- </div>
32
- </TableCell>
33
- </TableRow>
34
- </template>
25
+ " v-bind="delegatedProps">
26
+ <div class="flex items-center justify-center py-10">
27
+ <slot />
28
+ </div>
29
+ </TableCell>
30
+ </TableRow>
31
+ </template>
@@ -1,17 +1,19 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <tfoot
12
- data-slot="table-footer"
13
- :class="cn('bg-muted/50 border-t border-border font-semibold [&>tr]:last:border-b-0', props.class)"
14
- >
15
- <slot />
16
- </tfoot>
17
- </template>
12
+ <tfoot data-slot="table-footer" :class="cn(
13
+ 'bg-muted/50 border-t border-border font-semibold [&>tr]:last:border-b-0',
14
+ props.class
15
+ )
16
+ ">
17
+ <slot />
18
+ </tfoot>
19
+ </template>
@@ -1,17 +1,19 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <th
12
- data-slot="table-head"
13
- :class="cn('text-foreground h-10 px-2 max-w-[300px] text-left align-middle font-semibold whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]', props.class)"
14
- >
15
- <slot />
16
- </th>
17
- </template>
12
+ <th data-slot="table-head" :class="cn(
13
+ 'text-foreground h-10 px-2 max-w-75 text-left align-middle font-semibold whitespace-nowrap [&:has([role=checkbox])]:pr-0 *:[[role=checkbox]]:translate-y-0.5',
14
+ props.class
15
+ )
16
+ ">
17
+ <slot />
18
+ </th>
19
+ </template>
@@ -1,17 +1,15 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <thead
12
- data-slot="table-header"
13
- :class="cn('[&_tr]:border-b [&_tr]:border-border', props.class)"
14
- >
15
- <slot />
16
- </thead>
17
- </template>
12
+ <thead data-slot="table-header" :class="cn('[&_tr]:border-b [&_tr]:border-border', props.class)">
13
+ <slot />
14
+ </thead>
15
+ </template>
@@ -1,17 +1,19 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <tr
12
- data-slot="table-row"
13
- :class="cn('hover:bg-muted/50 data-[state=selected]:bg-muted border-b border-border transition-colors', props.class)"
14
- >
15
- <slot />
16
- </tr>
17
- </template>
12
+ <tr data-slot="table-row" :class="cn(
13
+ 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b border-border transition-colors',
14
+ props.class
15
+ )
16
+ ">
17
+ <slot />
18
+ </tr>
19
+ </template>