@brumaombra/ui-vintage 0.9.0 → 0.9.2

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 (337) hide show
  1. package/AGENTS.md +1 -1
  2. package/COMPONENTS.md +1 -1
  3. package/README.md +3 -3
  4. package/module.mjs +43 -43
  5. package/package.json +175 -175
  6. package/src/components/background-grid/BackgroundGrid.vue +4 -4
  7. package/src/components/blog/AllPostsSection.vue +33 -33
  8. package/src/components/blog/BlogContentRenderer.vue +111 -111
  9. package/src/components/blog/BlogFAQSection.vue +20 -20
  10. package/src/components/blog/BlogHeaderSection.vue +81 -81
  11. package/src/components/blog/BlogInfoSection.vue +50 -48
  12. package/src/components/blog/BlogPostHeader.vue +135 -135
  13. package/src/components/blog/BlogProgressBar.vue +33 -33
  14. package/src/components/blog/BlogSectionTitle.vue +22 -22
  15. package/src/components/blog/BlogTagsSection.vue +25 -25
  16. package/src/components/blog/CategoriesList.vue +14 -14
  17. package/src/components/blog/CategoriesSection.vue +11 -11
  18. package/src/components/blog/CategoryCard.vue +27 -26
  19. package/src/components/blog/HeaderCarousel.vue +99 -98
  20. package/src/components/blog/PostCard.vue +34 -34
  21. package/src/components/blog/PostsList.vue +15 -15
  22. package/src/components/blog/SocialShareSidebar.vue +92 -85
  23. package/src/components/blog/TableOfContents.vue +310 -308
  24. package/src/components/busy-indicator/BusyIndicator.vue +7 -7
  25. package/src/components/busy-indicator/busy-indicator-state.ts +56 -56
  26. package/src/components/card-grid/CardGrid.vue +35 -35
  27. package/src/components/chip/Chip.vue +16 -16
  28. package/src/components/confirm-dialog/ConfirmDialog.vue +51 -51
  29. package/src/components/confirm-dialog/confirm-dialog-state.ts +131 -131
  30. package/src/components/content/BlogList.vue +32 -31
  31. package/src/components/content/BlogTable.vue +36 -36
  32. package/src/components/content/CodeBlock.vue +139 -137
  33. package/src/components/content/Flow.vue +60 -60
  34. package/src/components/content/ProseHr.vue +16 -16
  35. package/src/components/content/ProsePre.vue +12 -12
  36. package/src/components/content/Terminal.vue +62 -60
  37. package/src/components/cookie-consent/CookieConsent.vue +36 -36
  38. package/src/components/cookie-consent/useCookieConsent.ts +37 -37
  39. package/src/components/dashboard-shell/DashboardShell.vue +171 -171
  40. package/src/components/data-list/DataList.vue +6 -6
  41. package/src/components/data-list/DataListItem.vue +4 -4
  42. package/src/components/data-list/DataListLabel.vue +4 -4
  43. package/src/components/data-list/DataListText.vue +4 -4
  44. package/src/components/data-list/DataListValue.vue +4 -4
  45. package/src/components/empty-state-card/EmptyStateCard.vue +41 -41
  46. package/src/components/error-page/ErrorPage.vue +73 -73
  47. package/src/components/info-card/InfoCard.vue +31 -31
  48. package/src/components/landing/landing-content/LandingContent.vue +4 -4
  49. package/src/components/landing/landing-footer/LandingFooter.vue +129 -129
  50. package/src/components/landing/landing-navbar/LandingNavbar.vue +50 -50
  51. package/src/components/landing/landing-shell/LandingShell.vue +36 -36
  52. package/src/components/language-flag/LanguageFlag.vue +25 -25
  53. package/src/components/language-flag/flags/ChineseFlag.vue +8 -8
  54. package/src/components/language-flag/flags/EnglishFlag.vue +7 -7
  55. package/src/components/language-flag/flags/FrenchFlag.vue +5 -5
  56. package/src/components/language-flag/flags/GermanFlag.vue +5 -5
  57. package/src/components/language-flag/flags/ItalianFlag.vue +7 -7
  58. package/src/components/language-flag/flags/JapaneseFlag.vue +4 -4
  59. package/src/components/language-flag/flags/PortugueseFlag.vue +57 -57
  60. package/src/components/language-flag/flags/RussianFlag.vue +5 -5
  61. package/src/components/language-flag/flags/SpanishFlag.vue +4 -4
  62. package/src/components/language-selector/LanguageSelector.vue +77 -77
  63. package/src/components/load-more-button/LoadMoreButton.vue +19 -18
  64. package/src/components/loading-state-card/LoadingStateCard.vue +29 -29
  65. package/src/components/message-dialog/MessageDialog.vue +62 -60
  66. package/src/components/message-dialog/message-dialog-state.ts +105 -105
  67. package/src/components/message-toast/MessageToast.vue +153 -150
  68. package/src/components/message-toast/message-toast-state.ts +146 -146
  69. package/src/components/page-header/PageHeader.vue +34 -34
  70. package/src/components/progress-component/ProgressComponent.vue +33 -33
  71. package/src/components/single-value-card/SingleValueCard.vue +59 -58
  72. package/src/components/slider-form-component/SliderFormComponent.vue +36 -36
  73. package/src/components/stat-strip/StatStrip.vue +22 -22
  74. package/src/components/switch-form-component/SwitchFormComponent.vue +20 -20
  75. package/src/components/text-link/TextLink.vue +14 -14
  76. package/src/components/theme-selector/ThemeSelector.vue +65 -62
  77. package/src/components/theme-selector/theme-transition.ts +63 -63
  78. package/src/components/ui/accordion/Accordion.vue +39 -39
  79. package/src/components/ui/alert/Alert.vue +5 -5
  80. package/src/components/ui/alert/AlertDescription.vue +4 -4
  81. package/src/components/ui/alert/AlertTitle.vue +4 -4
  82. package/src/components/ui/alert/index.ts +2 -2
  83. package/src/components/ui/alert-dialog/AlertDialog.vue +3 -3
  84. package/src/components/ui/alert-dialog/AlertDialogAction.vue +3 -3
  85. package/src/components/ui/alert-dialog/AlertDialogCancel.vue +3 -3
  86. package/src/components/ui/alert-dialog/AlertDialogContent.vue +7 -7
  87. package/src/components/ui/alert-dialog/AlertDialogDescription.vue +3 -3
  88. package/src/components/ui/alert-dialog/AlertDialogFooter.vue +4 -4
  89. package/src/components/ui/alert-dialog/AlertDialogHeader.vue +4 -4
  90. package/src/components/ui/alert-dialog/AlertDialogTitle.vue +3 -3
  91. package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +3 -3
  92. package/src/components/ui/animated-number/AnimatedNumber.vue +49 -48
  93. package/src/components/ui/avatar/Avatar.vue +28 -28
  94. package/src/components/ui/avatar/AvatarFallback.vue +6 -6
  95. package/src/components/ui/avatar/AvatarGroup.vue +40 -40
  96. package/src/components/ui/avatar/AvatarImage.vue +3 -3
  97. package/src/components/ui/avatar/index.ts +17 -17
  98. package/src/components/ui/badge/Badge.vue +20 -20
  99. package/src/components/ui/breadcrumb/Breadcrumb.vue +4 -4
  100. package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +10 -10
  101. package/src/components/ui/breadcrumb/BreadcrumbItem.vue +4 -4
  102. package/src/components/ui/breadcrumb/BreadcrumbLink.vue +4 -4
  103. package/src/components/ui/breadcrumb/BreadcrumbList.vue +4 -4
  104. package/src/components/ui/breadcrumb/BreadcrumbPage.vue +4 -4
  105. package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +4 -4
  106. package/src/components/ui/busy/Busy.vue +33 -33
  107. package/src/components/ui/button/Button.vue +23 -23
  108. package/src/components/ui/button/index.ts +56 -56
  109. package/src/components/ui/calendar/Calendar.vue +138 -138
  110. package/src/components/ui/calendar/CalendarCell.vue +7 -7
  111. package/src/components/ui/calendar/CalendarCellTrigger.vue +18 -18
  112. package/src/components/ui/calendar/CalendarGrid.vue +3 -3
  113. package/src/components/ui/calendar/CalendarGridBody.vue +3 -3
  114. package/src/components/ui/calendar/CalendarGridHead.vue +3 -3
  115. package/src/components/ui/calendar/CalendarGridRow.vue +3 -3
  116. package/src/components/ui/calendar/CalendarHeadCell.vue +7 -7
  117. package/src/components/ui/calendar/CalendarHeader.vue +7 -7
  118. package/src/components/ui/calendar/CalendarHeading.vue +6 -6
  119. package/src/components/ui/calendar/CalendarNextButton.vue +16 -16
  120. package/src/components/ui/calendar/CalendarPrevButton.vue +16 -16
  121. package/src/components/ui/calendar/index.ts +4 -4
  122. package/src/components/ui/card/Card.vue +20 -20
  123. package/src/components/ui/card/CardAction.vue +8 -8
  124. package/src/components/ui/card/CardContent.vue +4 -4
  125. package/src/components/ui/card/CardDescription.vue +12 -12
  126. package/src/components/ui/card/CardFooter.vue +4 -4
  127. package/src/components/ui/card/CardHeader.vue +8 -8
  128. package/src/components/ui/card/CardText.vue +8 -8
  129. package/src/components/ui/card/CardTitle.vue +8 -8
  130. package/src/components/ui/checkbox/Checkbox.vue +27 -27
  131. package/src/components/ui/collapsible/Collapsible.vue +3 -3
  132. package/src/components/ui/collapsible/CollapsibleContent.vue +3 -3
  133. package/src/components/ui/collapsible/CollapsibleTrigger.vue +3 -3
  134. package/src/components/ui/combobox/Combobox.vue +4 -4
  135. package/src/components/ui/combobox/ComboboxAnchor.vue +16 -16
  136. package/src/components/ui/combobox/ComboboxEmpty.vue +3 -3
  137. package/src/components/ui/combobox/ComboboxGroup.vue +9 -9
  138. package/src/components/ui/combobox/ComboboxInput.vue +6 -6
  139. package/src/components/ui/combobox/ComboboxItem.vue +18 -18
  140. package/src/components/ui/combobox/ComboboxList.vue +19 -19
  141. package/src/components/ui/combobox/ComboboxSelect.vue +79 -78
  142. package/src/components/ui/combobox/ComboboxSeparator.vue +1 -1
  143. package/src/components/ui/combobox/ComboboxTrigger.vue +11 -11
  144. package/src/components/ui/combobox/types.ts +5 -5
  145. package/src/components/ui/command/Command.vue +48 -48
  146. package/src/components/ui/command/CommandDialog.vue +14 -14
  147. package/src/components/ui/command/CommandEmpty.vue +4 -4
  148. package/src/components/ui/command/CommandGroup.vue +23 -23
  149. package/src/components/ui/command/CommandInput.vue +10 -10
  150. package/src/components/ui/command/CommandItem.vue +40 -40
  151. package/src/components/ui/command/CommandList.vue +9 -9
  152. package/src/components/ui/command/CommandSeparator.vue +3 -3
  153. package/src/components/ui/command/CommandShortcut.vue +8 -8
  154. package/src/components/ui/command/index.ts +11 -11
  155. package/src/components/ui/data-table/DataTable.vue +147 -146
  156. package/src/components/ui/data-table/index.ts +11 -11
  157. package/src/components/ui/date-picker/DatePicker.vue +32 -32
  158. package/src/components/ui/date-time-picker/DateTimePicker.vue +97 -97
  159. package/src/components/ui/dialog/Dialog.vue +3 -3
  160. package/src/components/ui/dialog/DialogClose.vue +3 -3
  161. package/src/components/ui/dialog/DialogContent.vue +22 -22
  162. package/src/components/ui/dialog/DialogDescription.vue +7 -7
  163. package/src/components/ui/dialog/DialogFooter.vue +8 -8
  164. package/src/components/ui/dialog/DialogHeader.vue +4 -4
  165. package/src/components/ui/dialog/DialogOverlay.vue +7 -7
  166. package/src/components/ui/dialog/DialogScrollContent.vue +33 -33
  167. package/src/components/ui/dialog/DialogTitle.vue +3 -3
  168. package/src/components/ui/dialog/DialogTrigger.vue +3 -3
  169. package/src/components/ui/dropdown-menu/DropdownMenu.vue +3 -3
  170. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +12 -12
  171. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +15 -15
  172. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +3 -3
  173. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +12 -12
  174. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +9 -9
  175. package/src/components/ui/dropdown-menu/DropdownMenuPortal.vue +3 -3
  176. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +3 -3
  177. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +11 -11
  178. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +1 -1
  179. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +4 -4
  180. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +3 -3
  181. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +15 -15
  182. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +16 -16
  183. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +3 -3
  184. package/src/components/ui/dropdown-menu/classes.ts +16 -16
  185. package/src/components/ui/field/Field.vue +5 -5
  186. package/src/components/ui/field/FieldContent.vue +8 -8
  187. package/src/components/ui/field/FieldDescription.vue +10 -10
  188. package/src/components/ui/field/FieldError.vue +39 -39
  189. package/src/components/ui/field/FieldGroup.vue +8 -8
  190. package/src/components/ui/field/FieldLabel.vue +10 -10
  191. package/src/components/ui/field/FieldLegend.vue +11 -11
  192. package/src/components/ui/field/FieldSeparator.vue +11 -11
  193. package/src/components/ui/field/FieldSet.vue +9 -9
  194. package/src/components/ui/field/FieldTitle.vue +8 -8
  195. package/src/components/ui/field/field-context.ts +36 -36
  196. package/src/components/ui/field/index.ts +22 -22
  197. package/src/components/ui/file-dropzone/FileDropzone.vue +163 -154
  198. package/src/components/ui/file-dropzone/index.ts +19 -19
  199. package/src/components/ui/hover-card/HoverCard.vue +5 -5
  200. package/src/components/ui/hover-card/HoverCardContent.vue +13 -13
  201. package/src/components/ui/hover-card/HoverCardTrigger.vue +3 -3
  202. package/src/components/ui/input/Input.vue +13 -13
  203. package/src/components/ui/kbd/Kbd.vue +10 -10
  204. package/src/components/ui/kbd/KbdGroup.vue +49 -49
  205. package/src/components/ui/label/Label.vue +7 -7
  206. package/src/components/ui/native-select/NativeSelect.vue +17 -17
  207. package/src/components/ui/native-select/NativeSelectOptGroup.vue +3 -3
  208. package/src/components/ui/native-select/NativeSelectOption.vue +3 -3
  209. package/src/components/ui/number-field/NumberField.vue +90 -89
  210. package/src/components/ui/pagination/Pagination.vue +4 -4
  211. package/src/components/ui/pagination/PaginationContent.vue +4 -4
  212. package/src/components/ui/pagination/PaginationEllipsis.vue +10 -10
  213. package/src/components/ui/pagination/PaginationFirst.vue +9 -9
  214. package/src/components/ui/pagination/PaginationItem.vue +14 -14
  215. package/src/components/ui/pagination/PaginationLast.vue +9 -9
  216. package/src/components/ui/pagination/PaginationNext.vue +9 -9
  217. package/src/components/ui/pagination/PaginationPrevious.vue +9 -9
  218. package/src/components/ui/pagination/SimplePagination.vue +25 -25
  219. package/src/components/ui/pin-input/PinInput.vue +20 -20
  220. package/src/components/ui/pin-input/PinInputInput.vue +17 -17
  221. package/src/components/ui/pin-input/context.ts +1 -1
  222. package/src/components/ui/popover/Popover.vue +3 -3
  223. package/src/components/ui/popover/PopoverAnchor.vue +3 -3
  224. package/src/components/ui/popover/PopoverContent.vue +12 -12
  225. package/src/components/ui/popover/PopoverTrigger.vue +3 -3
  226. package/src/components/ui/progress/Progress.vue +16 -16
  227. package/src/components/ui/radio-group/RadioGroup.vue +7 -7
  228. package/src/components/ui/radio-group/RadioGroupCard.vue +39 -39
  229. package/src/components/ui/radio-group/RadioGroupItem.vue +20 -20
  230. package/src/components/ui/scroll-area/ScrollArea.vue +14 -14
  231. package/src/components/ui/scroll-area/ScrollBar.vue +12 -12
  232. package/src/components/ui/select/Select.vue +3 -3
  233. package/src/components/ui/select/SelectContent.vue +25 -25
  234. package/src/components/ui/select/SelectGroup.vue +3 -3
  235. package/src/components/ui/select/SelectItem.vue +25 -25
  236. package/src/components/ui/select/SelectItemContent.vue +32 -32
  237. package/src/components/ui/select/SelectItemText.vue +3 -3
  238. package/src/components/ui/select/SelectLabel.vue +3 -3
  239. package/src/components/ui/select/SelectScrollDownButton.vue +10 -10
  240. package/src/components/ui/select/SelectScrollUpButton.vue +10 -10
  241. package/src/components/ui/select/SelectSeparator.vue +2 -2
  242. package/src/components/ui/select/SelectTrigger.vue +15 -15
  243. package/src/components/ui/select/SelectValue.vue +3 -3
  244. package/src/components/ui/select/SelectValueContent.vue +39 -39
  245. package/src/components/ui/separator/Separator.vue +7 -7
  246. package/src/components/ui/sheet/Sheet.vue +3 -3
  247. package/src/components/ui/sheet/SheetClose.vue +3 -3
  248. package/src/components/ui/sheet/SheetContent.vue +22 -22
  249. package/src/components/ui/sheet/SheetDescription.vue +3 -3
  250. package/src/components/ui/sheet/SheetFooter.vue +3 -3
  251. package/src/components/ui/sheet/SheetHeader.vue +3 -3
  252. package/src/components/ui/sheet/SheetOverlay.vue +7 -7
  253. package/src/components/ui/sheet/SheetTitle.vue +3 -3
  254. package/src/components/ui/sheet/SheetTrigger.vue +3 -3
  255. package/src/components/ui/sidebar/Sidebar.vue +57 -57
  256. package/src/components/ui/sidebar/SidebarContent.vue +8 -8
  257. package/src/components/ui/sidebar/SidebarFooter.vue +8 -8
  258. package/src/components/ui/sidebar/SidebarGroup.vue +8 -8
  259. package/src/components/ui/sidebar/SidebarGroupAction.vue +9 -9
  260. package/src/components/ui/sidebar/SidebarGroupContent.vue +4 -4
  261. package/src/components/ui/sidebar/SidebarGroupLabel.vue +8 -8
  262. package/src/components/ui/sidebar/SidebarHeader.vue +8 -8
  263. package/src/components/ui/sidebar/SidebarInput.vue +8 -8
  264. package/src/components/ui/sidebar/SidebarInset.vue +9 -9
  265. package/src/components/ui/sidebar/SidebarMenu.vue +4 -4
  266. package/src/components/ui/sidebar/SidebarMenuAction.vue +18 -18
  267. package/src/components/ui/sidebar/SidebarMenuBadge.vue +14 -14
  268. package/src/components/ui/sidebar/SidebarMenuButton.vue +21 -21
  269. package/src/components/ui/sidebar/SidebarMenuButtonChild.vue +10 -10
  270. package/src/components/ui/sidebar/SidebarMenuItem.vue +4 -4
  271. package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +10 -10
  272. package/src/components/ui/sidebar/SidebarMenuSub.vue +9 -9
  273. package/src/components/ui/sidebar/SidebarMenuSubButton.vue +17 -17
  274. package/src/components/ui/sidebar/SidebarMenuSubItem.vue +4 -4
  275. package/src/components/ui/sidebar/SidebarProvider.vue +46 -46
  276. package/src/components/ui/sidebar/SidebarRail.vue +13 -13
  277. package/src/components/ui/sidebar/SidebarSeparator.vue +4 -4
  278. package/src/components/ui/sidebar/SidebarTrigger.vue +6 -6
  279. package/src/components/ui/sidebar/index.ts +29 -29
  280. package/src/components/ui/sidebar/utils.ts +7 -7
  281. package/src/components/ui/skeleton/Skeleton.vue +6 -6
  282. package/src/components/ui/slider/Slider.vue +14 -14
  283. package/src/components/ui/spinner/Spinner.vue +21 -21
  284. package/src/components/ui/stepper/SimpleStepper.vue +27 -27
  285. package/src/components/ui/stepper/Stepper.vue +6 -6
  286. package/src/components/ui/stepper/StepperDescription.vue +5 -5
  287. package/src/components/ui/stepper/StepperIndicator.vue +18 -18
  288. package/src/components/ui/stepper/StepperItem.vue +4 -4
  289. package/src/components/ui/stepper/StepperSeparator.vue +7 -7
  290. package/src/components/ui/stepper/StepperTitle.vue +5 -5
  291. package/src/components/ui/stepper/StepperTrigger.vue +4 -4
  292. package/src/components/ui/stepper/index.ts +3 -3
  293. package/src/components/ui/switch/Switch.vue +15 -15
  294. package/src/components/ui/table/Table.vue +6 -6
  295. package/src/components/ui/table/TableBody.vue +4 -4
  296. package/src/components/ui/table/TableCaption.vue +4 -4
  297. package/src/components/ui/table/TableCell.vue +8 -8
  298. package/src/components/ui/table/TableEmpty.vue +14 -14
  299. package/src/components/ui/table/TableFooter.vue +8 -8
  300. package/src/components/ui/table/TableHead.vue +8 -8
  301. package/src/components/ui/table/TableHeader.vue +4 -4
  302. package/src/components/ui/table/TableRow.vue +8 -8
  303. package/src/components/ui/tabs/Tabs.vue +4 -4
  304. package/src/components/ui/tabs/TabsContent.vue +4 -4
  305. package/src/components/ui/tabs/TabsList.vue +15 -15
  306. package/src/components/ui/tabs/TabsTrigger.vue +10 -10
  307. package/src/components/ui/tags-input/TagsInput.vue +17 -17
  308. package/src/components/ui/tags-input/TagsInputInput.vue +6 -6
  309. package/src/components/ui/tags-input/TagsInputItem.vue +15 -15
  310. package/src/components/ui/tags-input/TagsInputItemDelete.vue +13 -13
  311. package/src/components/ui/tags-input/TagsInputItemText.vue +4 -4
  312. package/src/components/ui/textarea/Textarea.vue +12 -12
  313. package/src/components/ui/time-picker/TimePicker.vue +25 -25
  314. package/src/components/ui/toggle-group/Toggle.vue +10 -10
  315. package/src/components/ui/toggle-group/ToggleGroup.vue +38 -38
  316. package/src/components/ui/toggle-group/ToggleGroupItem.vue +9 -9
  317. package/src/components/ui/toggle-group/index.ts +46 -46
  318. package/src/components/ui/tooltip/Tooltip.vue +3 -3
  319. package/src/components/ui/tooltip/TooltipContent.vue +13 -13
  320. package/src/components/ui/tooltip/TooltipProvider.vue +4 -4
  321. package/src/components/ui/tooltip/TooltipTrigger.vue +3 -3
  322. package/src/i18n/de.json +185 -185
  323. package/src/i18n/en.json +185 -185
  324. package/src/i18n/es.json +185 -185
  325. package/src/i18n/fr.json +185 -185
  326. package/src/i18n/it.json +185 -185
  327. package/src/i18n/ja.json +185 -185
  328. package/src/i18n/pt.json +185 -185
  329. package/src/i18n/ru.json +185 -185
  330. package/src/i18n/zh.json +185 -185
  331. package/src/lib/color-tokens.ts +24 -24
  332. package/src/lib/i18n.ts +65 -65
  333. package/src/lib/utils.ts +33 -33
  334. package/src/nuxt-components.d.ts +2 -2
  335. package/src/runtime/ui-vintage-i18n-plugin.ts +49 -49
  336. package/src/shims-vue.d.ts +3 -3
  337. package/src/styles.css +377 -377
@@ -9,34 +9,34 @@ import { buttonVariants } from '.';
9
9
 
10
10
  // Props
11
11
  const props = withDefaults(defineProps<PrimitiveProps & {
12
- variant?: ButtonVariants['variant'];
13
- size?: ButtonVariants['size'];
14
- loading?: boolean;
15
- disabled?: boolean;
16
- class?: HTMLAttributes['class'];
12
+ variant?: ButtonVariants['variant'];
13
+ size?: ButtonVariants['size'];
14
+ loading?: boolean;
15
+ disabled?: boolean;
16
+ class?: HTMLAttributes['class'];
17
17
  }>(), {
18
- as: 'button',
19
- loading: false,
20
- disabled: false
18
+ as: 'button',
19
+ loading: false,
20
+ disabled: false
21
21
  });
22
22
  </script>
23
23
 
24
24
  <template>
25
- <Primitive data-slot="button" :data-variant="variant" :data-size="size" :data-loading="props.loading ? '' : undefined" :aria-busy="props.loading || undefined" :disabled="props.disabled || props.loading || undefined" :as="as" :as-child="asChild" :class="cn(buttonVariants({ variant, size }), props.class)">
26
- <!-- As-child buttons delegate rendering to the slotted element -->
27
- <slot v-if="asChild" />
25
+ <Primitive data-slot="button" :data-variant="variant" :data-size="size" :data-loading="props.loading ? '' : undefined" :aria-busy="props.loading || undefined" :disabled="props.disabled || props.loading || undefined" :as="as" :as-child="asChild" :class="cn(buttonVariants({ variant, size }), props.class)">
26
+ <!-- As-child buttons delegate rendering to the slotted element -->
27
+ <slot v-if="asChild" />
28
28
 
29
- <template v-else>
30
- <!-- Content (kept in the layout while loading so the width never jumps) -->
31
- <span v-if="props.loading" class="invisible contents">
32
- <slot />
33
- </span>
34
- <slot v-else />
29
+ <template v-else>
30
+ <!-- Content (kept in the layout while loading so the width never jumps) -->
31
+ <span v-if="props.loading" class="invisible contents">
32
+ <slot />
33
+ </span>
34
+ <slot v-else />
35
35
 
36
- <!-- Loading indicator -->
37
- <span v-if="props.loading" class="absolute inset-0 flex items-center justify-center">
38
- <Spinner size="sm" />
39
- </span>
40
- </template>
41
- </Primitive>
36
+ <!-- Loading indicator -->
37
+ <span v-if="props.loading" class="absolute inset-0 flex items-center justify-center">
38
+ <Spinner size="sm" />
39
+ </span>
40
+ </template>
41
+ </Primitive>
42
42
  </template>
@@ -5,63 +5,63 @@ import { getButtonVariantClasses } from '../../../lib/color-tokens';
5
5
  export { default as Button } from './Button.vue';
6
6
 
7
7
  export type ButtonVariants = {
8
- variant?:
9
- | 'primary'
10
- | 'secondary'
11
- | 'ghost'
12
- | 'link'
13
- | 'gray'
14
- | 'green'
15
- | 'red'
16
- | 'blue'
17
- | 'yellow'
18
- | null
19
- | undefined;
20
- size?:
21
- | 'default'
22
- | 'sm'
23
- | 'lg'
24
- | 'icon'
25
- | 'icon-sm'
26
- | 'icon-lg'
27
- | null
28
- | undefined;
8
+ variant?:
9
+ | 'primary'
10
+ | 'secondary'
11
+ | 'ghost'
12
+ | 'link'
13
+ | 'gray'
14
+ | 'green'
15
+ | 'red'
16
+ | 'blue'
17
+ | 'yellow'
18
+ | null
19
+ | undefined;
20
+ size?:
21
+ | 'default'
22
+ | 'sm'
23
+ | 'lg'
24
+ | 'icon'
25
+ | 'icon-sm'
26
+ | 'icon-lg'
27
+ | null
28
+ | undefined;
29
29
  };
30
30
 
31
31
  export const buttonVariants: (props?: ButtonVariants & ClassProp) => string = cva(
32
- [
33
- "relative isolate inline-flex shrink-0 cursor-pointer select-none items-center justify-center gap-2 overflow-hidden whitespace-nowrap rounded text-xs font-semibold outline-none sm:text-sm",
34
- "[transition:color_150ms,background-color_150ms,border-color_150ms,box-shadow_220ms,opacity_150ms,scale_380ms_var(--ease-spring)]",
35
- "enabled:active:scale-[0.97] enabled:active:duration-75 disabled:pointer-events-none disabled:opacity-50 data-loading:cursor-wait data-loading:disabled:opacity-100",
36
- "focus-visible:ring-[3px] focus-visible:ring-ring/45",
37
- "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
38
- "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
39
- ],
40
- {
41
- variants: {
42
- variant: {
43
- primary: getButtonVariantClasses('primary'),
44
- secondary: getButtonVariantClasses('secondary'),
45
- ghost: getButtonVariantClasses('ghost'),
46
- link: getButtonVariantClasses('link'),
47
- gray: getButtonVariantClasses('gray'),
48
- green: getButtonVariantClasses('green'),
49
- red: getButtonVariantClasses('red'),
50
- blue: getButtonVariantClasses('blue'),
51
- yellow: getButtonVariantClasses('yellow'),
52
- },
53
- size: {
54
- default: 'min-h-12 px-4 py-3 has-[>svg]:px-3',
55
- sm: 'min-h-10 gap-1.5 px-3 py-2 has-[>svg]:px-2.5',
56
- lg: 'min-h-[52px] px-4 py-3 has-[>svg]:px-4',
57
- icon: 'size-12',
58
- 'icon-sm': 'size-10',
59
- 'icon-lg': 'size-[52px]',
60
- },
61
- },
62
- defaultVariants: {
63
- variant: 'primary',
64
- size: 'default',
65
- },
66
- },
32
+ [
33
+ "relative isolate inline-flex shrink-0 cursor-pointer select-none items-center justify-center gap-2 overflow-hidden whitespace-nowrap rounded text-xs font-semibold outline-none sm:text-sm",
34
+ "[transition:color_150ms,background-color_150ms,border-color_150ms,box-shadow_220ms,opacity_150ms,scale_380ms_var(--ease-spring)]",
35
+ "enabled:active:scale-[0.97] enabled:active:duration-75 disabled:pointer-events-none disabled:opacity-50 data-loading:cursor-wait data-loading:disabled:opacity-100",
36
+ "focus-visible:ring-[3px] focus-visible:ring-ring/45",
37
+ "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
38
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
39
+ ],
40
+ {
41
+ variants: {
42
+ variant: {
43
+ primary: getButtonVariantClasses('primary'),
44
+ secondary: getButtonVariantClasses('secondary'),
45
+ ghost: getButtonVariantClasses('ghost'),
46
+ link: getButtonVariantClasses('link'),
47
+ gray: getButtonVariantClasses('gray'),
48
+ green: getButtonVariantClasses('green'),
49
+ red: getButtonVariantClasses('red'),
50
+ blue: getButtonVariantClasses('blue'),
51
+ yellow: getButtonVariantClasses('yellow'),
52
+ },
53
+ size: {
54
+ default: 'min-h-12 px-4 py-3 has-[>svg]:px-3',
55
+ sm: 'min-h-10 gap-1.5 px-3 py-2 has-[>svg]:px-2.5',
56
+ lg: 'min-h-[52px] px-4 py-3 has-[>svg]:px-4',
57
+ icon: 'size-12',
58
+ 'icon-sm': 'size-10',
59
+ 'icon-lg': 'size-[52px]',
60
+ },
61
+ },
62
+ defaultVariants: {
63
+ variant: 'primary',
64
+ size: 'default',
65
+ },
66
+ },
67
67
  );
@@ -11,27 +11,27 @@ import { useI18n } from 'vue-i18n';
11
11
  import { cn } from '../../../lib/utils';
12
12
  import { NativeSelect, NativeSelectOption } from '../native-select';
13
13
  import {
14
- CalendarCell,
15
- CalendarCellTrigger,
16
- CalendarGrid,
17
- CalendarGridBody,
18
- CalendarGridHead,
19
- CalendarGridRow,
20
- CalendarHeadCell,
21
- CalendarHeader,
22
- CalendarHeading,
23
- CalendarNextButton,
24
- CalendarPrevButton,
14
+ CalendarCell,
15
+ CalendarCellTrigger,
16
+ CalendarGrid,
17
+ CalendarGridBody,
18
+ CalendarGridHead,
19
+ CalendarGridRow,
20
+ CalendarHeadCell,
21
+ CalendarHeader,
22
+ CalendarHeading,
23
+ CalendarNextButton,
24
+ CalendarPrevButton,
25
25
  } from '.';
26
26
 
27
27
  // Props
28
28
  const props = withDefaults(defineProps<CalendarRootProps & {
29
- class?: HTMLAttributes['class'];
30
- layout?: LayoutTypes;
31
- yearRange?: DateValue[];
29
+ class?: HTMLAttributes['class'];
30
+ layout?: LayoutTypes;
31
+ yearRange?: DateValue[];
32
32
  }>(), {
33
- modelValue: undefined,
34
- layout: undefined
33
+ modelValue: undefined,
34
+ layout: undefined
35
35
  });
36
36
 
37
37
  // Emits
@@ -40,8 +40,8 @@ const emits = defineEmits<CalendarRootEmits>();
40
40
  const delegatedProps = reactiveOmit(props, 'class', 'layout', 'placeholder');
41
41
 
42
42
  const placeholder = useVModel(props, 'placeholder', emits, {
43
- passive: true,
44
- defaultValue: props.defaultPlaceholder ?? today(getLocalTimeZone()),
43
+ passive: true,
44
+ defaultValue: props.defaultPlaceholder ?? today(getLocalTimeZone()),
45
45
  }) as Ref<DateValue>;
46
46
 
47
47
  // Follow the app language unless a locale is passed explicitly
@@ -51,140 +51,140 @@ const formatter = useDateFormatter(resolvedLocale.value);
51
51
  watch(resolvedLocale, value => formatter.setLocale(value));
52
52
 
53
53
  const yearRange = computed(() => {
54
- return (
55
- props.yearRange ??
56
- createYearRange({
57
- start:
58
- props?.minValue ??
59
- (
60
- toRaw(props.placeholder) ??
61
- props.defaultPlaceholder ??
62
- today(getLocalTimeZone())
63
- ).cycle('year', -100),
54
+ return (
55
+ props.yearRange ??
56
+ createYearRange({
57
+ start:
58
+ props?.minValue ??
59
+ (
60
+ toRaw(props.placeholder) ??
61
+ props.defaultPlaceholder ??
62
+ today(getLocalTimeZone())
63
+ ).cycle('year', -100),
64
64
 
65
- end:
66
- props?.maxValue ??
67
- (
68
- toRaw(props.placeholder) ??
69
- props.defaultPlaceholder ??
70
- today(getLocalTimeZone())
71
- ).cycle('year', 10),
72
- })
73
- );
65
+ end:
66
+ props?.maxValue ??
67
+ (
68
+ toRaw(props.placeholder) ??
69
+ props.defaultPlaceholder ??
70
+ today(getLocalTimeZone())
71
+ ).cycle('year', 10),
72
+ })
73
+ );
74
74
  });
75
75
 
76
76
  const [DefineMonthTemplate, ReuseMonthTemplate] = createReusableTemplate<{
77
- date: DateValue;
77
+ date: DateValue;
78
78
  }>();
79
79
  const [DefineYearTemplate, ReuseYearTemplate] = createReusableTemplate<{
80
- date: DateValue;
80
+ date: DateValue;
81
81
  }>();
82
82
 
83
83
  const forwarded = useForwardPropsEmits(delegatedProps, emits);
84
84
  </script>
85
85
 
86
86
  <template>
87
- <DefineMonthTemplate v-slot="{ date }">
88
- <div class="**:data-[slot=native-select-icon]:right-1">
89
- <div class="relative h-10 rounded border border-border bg-secondary transition-all duration-300 ease-in-out hover:border-border-strong focus-within:border-border-strong">
90
- <div class="absolute inset-0 z-10 flex h-full items-center text-sm pl-2 pointer-events-none">
91
- {{ formatter.custom(toDate(date), { month: 'short' }) }}
92
- </div>
93
- <NativeSelect :aria-label="t('uiVintage.datePicker.month')" class="relative z-20 h-full min-h-0 w-23 rounded-none border-0 bg-transparent pl-2 pr-6 text-xs font-semibold text-transparent shadow-none transition-all duration-300 ease-in-out outline-none ring-0 focus-visible:border-0 focus-visible:ring-0 dark:bg-transparent sm:text-sm" :model-value="date.month" @change="
94
- (e: Event) => {
95
- placeholder = placeholder.set({
96
- month: Number((e?.target as any)?.value),
97
- });
98
- }
99
- ">
100
- <NativeSelectOption v-for="month in createYear({ dateObj: date })" :key="month.toString()" :value="month.month" :selected="date.month === month.month">
101
- {{
102
- formatter.custom(toDate(month), { month: 'short' })
103
- }}
104
- </NativeSelectOption>
105
- </NativeSelect>
106
- </div>
107
- </div>
108
- </DefineMonthTemplate>
87
+ <DefineMonthTemplate v-slot="{ date }">
88
+ <div class="**:data-[slot=native-select-icon]:right-1">
89
+ <div class="relative h-10 rounded border border-border bg-secondary transition-all duration-300 ease-in-out hover:border-border-strong focus-within:border-border-strong">
90
+ <div class="absolute inset-0 z-10 flex h-full items-center text-sm pl-2 pointer-events-none">
91
+ {{ formatter.custom(toDate(date), { month: 'short' }) }}
92
+ </div>
93
+ <NativeSelect :aria-label="t('uiVintage.datePicker.month')" class="relative z-20 h-full min-h-0 w-23 rounded-none border-0 bg-transparent pl-2 pr-6 text-xs font-semibold text-transparent shadow-none transition-all duration-300 ease-in-out outline-none ring-0 focus-visible:border-0 focus-visible:ring-0 dark:bg-transparent sm:text-sm" :model-value="date.month" @change="
94
+ (e: Event) => {
95
+ placeholder = placeholder.set({
96
+ month: Number((e?.target as any)?.value),
97
+ });
98
+ }
99
+ ">
100
+ <NativeSelectOption v-for="month in createYear({ dateObj: date })" :key="month.toString()" :value="month.month" :selected="date.month === month.month">
101
+ {{
102
+ formatter.custom(toDate(month), { month: 'short' })
103
+ }}
104
+ </NativeSelectOption>
105
+ </NativeSelect>
106
+ </div>
107
+ </div>
108
+ </DefineMonthTemplate>
109
109
 
110
- <DefineYearTemplate v-slot="{ date }">
111
- <div class="**:data-[slot=native-select-icon]:right-1">
112
- <div class="relative h-10 rounded border border-border bg-secondary transition-all duration-300 ease-in-out hover:border-border-strong focus-within:border-border-strong">
113
- <div class="absolute inset-0 z-10 flex h-full items-center text-sm pl-2 pointer-events-none">
114
- {{ formatter.custom(toDate(date), { year: 'numeric' }) }}
115
- </div>
116
- <NativeSelect :aria-label="t('uiVintage.datePicker.year')" class="relative z-20 h-full min-h-0 w-24 rounded-none border-0 bg-transparent pl-2 pr-6 text-xs font-semibold text-transparent shadow-none transition-all duration-300 ease-in-out outline-none ring-0 focus-visible:border-0 focus-visible:ring-0 dark:bg-transparent sm:text-sm" :model-value="date.year" @change="
117
- (e: Event) => {
118
- placeholder = placeholder.set({
119
- year: Number((e?.target as any)?.value),
120
- });
121
- }
122
- ">
123
- <NativeSelectOption v-for="year in yearRange" :key="year.toString()" :value="year.year" :selected="date.year === year.year">
124
- {{
125
- formatter.custom(toDate(year), { year: 'numeric' })
126
- }}
127
- </NativeSelectOption>
128
- </NativeSelect>
129
- </div>
130
- </div>
131
- </DefineYearTemplate>
110
+ <DefineYearTemplate v-slot="{ date }">
111
+ <div class="**:data-[slot=native-select-icon]:right-1">
112
+ <div class="relative h-10 rounded border border-border bg-secondary transition-all duration-300 ease-in-out hover:border-border-strong focus-within:border-border-strong">
113
+ <div class="absolute inset-0 z-10 flex h-full items-center text-sm pl-2 pointer-events-none">
114
+ {{ formatter.custom(toDate(date), { year: 'numeric' }) }}
115
+ </div>
116
+ <NativeSelect :aria-label="t('uiVintage.datePicker.year')" class="relative z-20 h-full min-h-0 w-24 rounded-none border-0 bg-transparent pl-2 pr-6 text-xs font-semibold text-transparent shadow-none transition-all duration-300 ease-in-out outline-none ring-0 focus-visible:border-0 focus-visible:ring-0 dark:bg-transparent sm:text-sm" :model-value="date.year" @change="
117
+ (e: Event) => {
118
+ placeholder = placeholder.set({
119
+ year: Number((e?.target as any)?.value),
120
+ });
121
+ }
122
+ ">
123
+ <NativeSelectOption v-for="year in yearRange" :key="year.toString()" :value="year.year" :selected="date.year === year.year">
124
+ {{
125
+ formatter.custom(toDate(year), { year: 'numeric' })
126
+ }}
127
+ </NativeSelectOption>
128
+ </NativeSelect>
129
+ </div>
130
+ </div>
131
+ </DefineYearTemplate>
132
132
 
133
- <CalendarRoot v-slot="{ grid, weekDays, date }" v-bind="forwarded" v-model:placeholder="placeholder" :locale="resolvedLocale" data-slot="calendar" :class="cn('p-3', props.class)">
134
- <CalendarHeader class="pt-0">
135
- <nav class="flex items-center gap-1 absolute top-0 inset-x-0 justify-between">
136
- <CalendarPrevButton>
137
- <slot name="calendar-prev-icon" />
138
- </CalendarPrevButton>
139
- <CalendarNextButton>
140
- <slot name="calendar-next-icon" />
141
- </CalendarNextButton>
142
- </nav>
133
+ <CalendarRoot v-slot="{ grid, weekDays, date }" v-bind="forwarded" v-model:placeholder="placeholder" :locale="resolvedLocale" data-slot="calendar" :class="cn('p-3', props.class)">
134
+ <CalendarHeader class="pt-0">
135
+ <nav class="flex items-center gap-1 absolute top-0 inset-x-0 justify-between">
136
+ <CalendarPrevButton>
137
+ <slot name="calendar-prev-icon" />
138
+ </CalendarPrevButton>
139
+ <CalendarNextButton>
140
+ <slot name="calendar-next-icon" />
141
+ </CalendarNextButton>
142
+ </nav>
143
143
 
144
- <slot name="calendar-heading" :date="date" :month="ReuseMonthTemplate" :year="ReuseYearTemplate">
145
- <template v-if="layout === 'month-and-year'">
146
- <div class="flex items-center justify-center gap-1">
147
- <ReuseMonthTemplate :date="date" />
148
- <ReuseYearTemplate :date="date" />
149
- </div>
150
- </template>
151
- <template v-else-if="layout === 'month-only'">
152
- <div class="flex items-center justify-center gap-1">
153
- <ReuseMonthTemplate :date="date" />
154
- {{
155
- formatter.custom(toDate(date), { year: 'numeric' })
156
- }}
157
- </div>
158
- </template>
159
- <template v-else-if="layout === 'year-only'">
160
- <div class="flex items-center justify-center gap-1">
161
- {{ formatter.custom(toDate(date), { month: 'short' }) }}
162
- <ReuseYearTemplate :date="date" />
163
- </div>
164
- </template>
165
- <template v-else>
166
- <CalendarHeading />
167
- </template>
168
- </slot>
169
- </CalendarHeader>
144
+ <slot name="calendar-heading" :date="date" :month="ReuseMonthTemplate" :year="ReuseYearTemplate">
145
+ <template v-if="layout === 'month-and-year'">
146
+ <div class="flex items-center justify-center gap-1">
147
+ <ReuseMonthTemplate :date="date" />
148
+ <ReuseYearTemplate :date="date" />
149
+ </div>
150
+ </template>
151
+ <template v-else-if="layout === 'month-only'">
152
+ <div class="flex items-center justify-center gap-1">
153
+ <ReuseMonthTemplate :date="date" />
154
+ {{
155
+ formatter.custom(toDate(date), { year: 'numeric' })
156
+ }}
157
+ </div>
158
+ </template>
159
+ <template v-else-if="layout === 'year-only'">
160
+ <div class="flex items-center justify-center gap-1">
161
+ {{ formatter.custom(toDate(date), { month: 'short' }) }}
162
+ <ReuseYearTemplate :date="date" />
163
+ </div>
164
+ </template>
165
+ <template v-else>
166
+ <CalendarHeading />
167
+ </template>
168
+ </slot>
169
+ </CalendarHeader>
170
170
 
171
- <div class="flex flex-col gap-y-4 mt-4 sm:flex-row sm:gap-x-4 sm:gap-y-0">
172
- <CalendarGrid v-for="month in grid" :key="month.value.toString()">
173
- <CalendarGridHead>
174
- <CalendarGridRow>
175
- <CalendarHeadCell v-for="day in weekDays" :key="day">
176
- {{ day }}
177
- </CalendarHeadCell>
178
- </CalendarGridRow>
179
- </CalendarGridHead>
180
- <CalendarGridBody>
181
- <CalendarGridRow v-for="(weekDates, index) in month.rows" :key="`weekDate-${index}`" class="mt-2 w-full">
182
- <CalendarCell v-for="weekDate in weekDates" :key="weekDate.toString()" :date="weekDate">
183
- <CalendarCellTrigger :day="weekDate" :month="month.value" />
184
- </CalendarCell>
185
- </CalendarGridRow>
186
- </CalendarGridBody>
187
- </CalendarGrid>
188
- </div>
189
- </CalendarRoot>
171
+ <div class="flex flex-col gap-y-4 mt-4 sm:flex-row sm:gap-x-4 sm:gap-y-0">
172
+ <CalendarGrid v-for="month in grid" :key="month.value.toString()">
173
+ <CalendarGridHead>
174
+ <CalendarGridRow>
175
+ <CalendarHeadCell v-for="day in weekDays" :key="day">
176
+ {{ day }}
177
+ </CalendarHeadCell>
178
+ </CalendarGridRow>
179
+ </CalendarGridHead>
180
+ <CalendarGridBody>
181
+ <CalendarGridRow v-for="(weekDates, index) in month.rows" :key="`weekDate-${index}`" class="mt-2 w-full">
182
+ <CalendarCell v-for="weekDate in weekDates" :key="weekDate.toString()" :date="weekDate">
183
+ <CalendarCellTrigger :day="weekDate" :month="month.value" />
184
+ </CalendarCell>
185
+ </CalendarGridRow>
186
+ </CalendarGridBody>
187
+ </CalendarGrid>
188
+ </div>
189
+ </CalendarRoot>
190
190
  </template>
@@ -14,11 +14,11 @@ const forwardedProps = useForwardProps(delegatedProps);
14
14
  </script>
15
15
 
16
16
  <template>
17
- <CalendarCell data-slot="calendar-cell" :class="cn(
18
- 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 flex-1 [&:has([data-selected])]:rounded',
19
- props.class,
20
- )
21
- " v-bind="forwardedProps">
22
- <slot />
23
- </CalendarCell>
17
+ <CalendarCell data-slot="calendar-cell" :class="cn(
18
+ 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 flex-1 [&:has([data-selected])]:rounded',
19
+ props.class,
20
+ )
21
+ " v-bind="forwardedProps">
22
+ <slot />
23
+ </CalendarCell>
24
24
  </template>
@@ -8,7 +8,7 @@ import { buttonVariants } from '../button';
8
8
 
9
9
  // Props
10
10
  const props = withDefaults(defineProps<CalendarCellTriggerProps & { class?: HTMLAttributes['class'] }>(), {
11
- as: 'button'
11
+ as: 'button'
12
12
  });
13
13
 
14
14
  const delegatedProps = reactiveOmit(props, 'class');
@@ -17,21 +17,21 @@ const forwardedProps = useForwardProps(delegatedProps);
17
17
  </script>
18
18
 
19
19
  <template>
20
- <CalendarCellTrigger data-slot="calendar-cell-trigger" :class="cn(
21
- buttonVariants({ variant: 'ghost' }),
22
- 'size-8 p-0 font-normal aria-selected:opacity-100 cursor-default',
23
- '[&[data-today]:not([data-selected])]:bg-accent [&[data-today]:not([data-selected])]:text-accent-foreground',
24
- // Selected
25
- 'data-selected:bg-primary data-selected:text-primary-foreground data-selected:opacity-100 [&[data-selected]:hover]:bg-primary data-selected:hover:text-primary-foreground data-selected:focus:bg-primary data-selected:focus:text-primary-foreground',
26
- // Disabled
27
- 'data-disabled:text-muted-foreground data-disabled:opacity-50',
28
- // Unavailable
29
- 'data-unavailable:text-destructive data-unavailable:line-through',
30
- // Outside months
31
- 'data-outside-view:text-muted-foreground',
32
- props.class,
33
- )
34
- " v-bind="forwardedProps">
35
- <slot />
36
- </CalendarCellTrigger>
20
+ <CalendarCellTrigger data-slot="calendar-cell-trigger" :class="cn(
21
+ buttonVariants({ variant: 'ghost' }),
22
+ 'size-8 p-0 font-normal aria-selected:opacity-100 cursor-default',
23
+ '[&[data-today]:not([data-selected])]:bg-accent [&[data-today]:not([data-selected])]:text-accent-foreground',
24
+ // Selected
25
+ 'data-selected:bg-primary data-selected:text-primary-foreground data-selected:opacity-100 [&[data-selected]:hover]:bg-primary data-selected:hover:text-primary-foreground data-selected:focus:bg-primary data-selected:focus:text-primary-foreground',
26
+ // Disabled
27
+ 'data-disabled:text-muted-foreground data-disabled:opacity-50',
28
+ // Unavailable
29
+ 'data-unavailable:text-destructive data-unavailable:line-through',
30
+ // Outside months
31
+ 'data-outside-view:text-muted-foreground',
32
+ props.class,
33
+ )
34
+ " v-bind="forwardedProps">
35
+ <slot />
36
+ </CalendarCellTrigger>
37
37
  </template>
@@ -14,7 +14,7 @@ const forwardedProps = useForwardProps(delegatedProps);
14
14
  </script>
15
15
 
16
16
  <template>
17
- <CalendarGrid data-slot="calendar-grid" :class="cn('w-full border-collapse space-x-1', props.class)" v-bind="forwardedProps">
18
- <slot />
19
- </CalendarGrid>
17
+ <CalendarGrid data-slot="calendar-grid" :class="cn('w-full border-collapse space-x-1', props.class)" v-bind="forwardedProps">
18
+ <slot />
19
+ </CalendarGrid>
20
20
  </template>
@@ -7,7 +7,7 @@ const props = defineProps<CalendarGridBodyProps>();
7
7
  </script>
8
8
 
9
9
  <template>
10
- <CalendarGridBody data-slot="calendar-grid-body" v-bind="props">
11
- <slot />
12
- </CalendarGridBody>
10
+ <CalendarGridBody data-slot="calendar-grid-body" v-bind="props">
11
+ <slot />
12
+ </CalendarGridBody>
13
13
  </template>
@@ -8,7 +8,7 @@ const props = defineProps<CalendarGridHeadProps & { class?: HTMLAttributes['clas
8
8
  </script>
9
9
 
10
10
  <template>
11
- <CalendarGridHead data-slot="calendar-grid-head" v-bind="props">
12
- <slot />
13
- </CalendarGridHead>
11
+ <CalendarGridHead data-slot="calendar-grid-head" v-bind="props">
12
+ <slot />
13
+ </CalendarGridHead>
14
14
  </template>
@@ -14,7 +14,7 @@ const forwardedProps = useForwardProps(delegatedProps);
14
14
  </script>
15
15
 
16
16
  <template>
17
- <CalendarGridRow data-slot="calendar-grid-row" :class="cn('flex', props.class)" v-bind="forwardedProps">
18
- <slot />
19
- </CalendarGridRow>
17
+ <CalendarGridRow data-slot="calendar-grid-row" :class="cn('flex', props.class)" v-bind="forwardedProps">
18
+ <slot />
19
+ </CalendarGridRow>
20
20
  </template>
@@ -14,11 +14,11 @@ const forwardedProps = useForwardProps(delegatedProps);
14
14
  </script>
15
15
 
16
16
  <template>
17
- <CalendarHeadCell data-slot="calendar-head-cell" :class="cn(
18
- 'text-muted-foreground rounded flex-1 font-normal text-[0.8rem]',
19
- props.class,
20
- )
21
- " v-bind="forwardedProps">
22
- <slot />
23
- </CalendarHeadCell>
17
+ <CalendarHeadCell data-slot="calendar-head-cell" :class="cn(
18
+ 'text-muted-foreground rounded flex-1 font-normal text-[0.8rem]',
19
+ props.class,
20
+ )
21
+ " v-bind="forwardedProps">
22
+ <slot />
23
+ </CalendarHeadCell>
24
24
  </template>