@brumaombra/ui-vintage 0.9.1 → 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 (334) hide show
  1. package/module.mjs +43 -43
  2. package/package.json +175 -175
  3. package/src/components/background-grid/BackgroundGrid.vue +4 -4
  4. package/src/components/blog/AllPostsSection.vue +33 -33
  5. package/src/components/blog/BlogContentRenderer.vue +111 -111
  6. package/src/components/blog/BlogFAQSection.vue +19 -19
  7. package/src/components/blog/BlogHeaderSection.vue +80 -80
  8. package/src/components/blog/BlogInfoSection.vue +47 -47
  9. package/src/components/blog/BlogPostHeader.vue +135 -135
  10. package/src/components/blog/BlogProgressBar.vue +33 -33
  11. package/src/components/blog/BlogSectionTitle.vue +22 -22
  12. package/src/components/blog/BlogTagsSection.vue +25 -25
  13. package/src/components/blog/CategoriesList.vue +14 -14
  14. package/src/components/blog/CategoriesSection.vue +11 -11
  15. package/src/components/blog/CategoryCard.vue +25 -25
  16. package/src/components/blog/HeaderCarousel.vue +97 -97
  17. package/src/components/blog/PostCard.vue +33 -33
  18. package/src/components/blog/PostsList.vue +15 -15
  19. package/src/components/blog/SocialShareSidebar.vue +84 -84
  20. package/src/components/blog/TableOfContents.vue +307 -307
  21. package/src/components/busy-indicator/BusyIndicator.vue +7 -7
  22. package/src/components/busy-indicator/busy-indicator-state.ts +56 -56
  23. package/src/components/card-grid/CardGrid.vue +34 -34
  24. package/src/components/chip/Chip.vue +15 -15
  25. package/src/components/confirm-dialog/ConfirmDialog.vue +50 -50
  26. package/src/components/confirm-dialog/confirm-dialog-state.ts +131 -131
  27. package/src/components/content/BlogList.vue +30 -30
  28. package/src/components/content/BlogTable.vue +36 -36
  29. package/src/components/content/CodeBlock.vue +136 -136
  30. package/src/components/content/Flow.vue +60 -60
  31. package/src/components/content/ProseHr.vue +15 -15
  32. package/src/components/content/ProsePre.vue +12 -12
  33. package/src/components/content/Terminal.vue +59 -59
  34. package/src/components/cookie-consent/CookieConsent.vue +36 -36
  35. package/src/components/cookie-consent/useCookieConsent.ts +37 -37
  36. package/src/components/dashboard-shell/DashboardShell.vue +171 -171
  37. package/src/components/data-list/DataList.vue +6 -6
  38. package/src/components/data-list/DataListItem.vue +4 -4
  39. package/src/components/data-list/DataListLabel.vue +4 -4
  40. package/src/components/data-list/DataListText.vue +4 -4
  41. package/src/components/data-list/DataListValue.vue +4 -4
  42. package/src/components/empty-state-card/EmptyStateCard.vue +40 -40
  43. package/src/components/error-page/ErrorPage.vue +72 -72
  44. package/src/components/info-card/InfoCard.vue +31 -31
  45. package/src/components/landing/landing-content/LandingContent.vue +4 -4
  46. package/src/components/landing/landing-footer/LandingFooter.vue +128 -128
  47. package/src/components/landing/landing-navbar/LandingNavbar.vue +50 -50
  48. package/src/components/landing/landing-shell/LandingShell.vue +36 -36
  49. package/src/components/language-flag/LanguageFlag.vue +25 -25
  50. package/src/components/language-flag/flags/ChineseFlag.vue +8 -8
  51. package/src/components/language-flag/flags/EnglishFlag.vue +7 -7
  52. package/src/components/language-flag/flags/FrenchFlag.vue +5 -5
  53. package/src/components/language-flag/flags/GermanFlag.vue +5 -5
  54. package/src/components/language-flag/flags/ItalianFlag.vue +7 -7
  55. package/src/components/language-flag/flags/JapaneseFlag.vue +4 -4
  56. package/src/components/language-flag/flags/PortugueseFlag.vue +57 -57
  57. package/src/components/language-flag/flags/RussianFlag.vue +5 -5
  58. package/src/components/language-flag/flags/SpanishFlag.vue +4 -4
  59. package/src/components/language-selector/LanguageSelector.vue +76 -76
  60. package/src/components/load-more-button/LoadMoreButton.vue +17 -17
  61. package/src/components/loading-state-card/LoadingStateCard.vue +28 -28
  62. package/src/components/message-dialog/MessageDialog.vue +59 -59
  63. package/src/components/message-dialog/message-dialog-state.ts +105 -105
  64. package/src/components/message-toast/MessageToast.vue +149 -149
  65. package/src/components/message-toast/message-toast-state.ts +146 -146
  66. package/src/components/page-header/PageHeader.vue +34 -34
  67. package/src/components/progress-component/ProgressComponent.vue +33 -33
  68. package/src/components/single-value-card/SingleValueCard.vue +57 -57
  69. package/src/components/slider-form-component/SliderFormComponent.vue +36 -36
  70. package/src/components/stat-strip/StatStrip.vue +22 -22
  71. package/src/components/switch-form-component/SwitchFormComponent.vue +20 -20
  72. package/src/components/text-link/TextLink.vue +14 -14
  73. package/src/components/theme-selector/ThemeSelector.vue +61 -61
  74. package/src/components/theme-selector/theme-transition.ts +63 -63
  75. package/src/components/ui/accordion/Accordion.vue +38 -38
  76. package/src/components/ui/alert/Alert.vue +5 -5
  77. package/src/components/ui/alert/AlertDescription.vue +4 -4
  78. package/src/components/ui/alert/AlertTitle.vue +4 -4
  79. package/src/components/ui/alert/index.ts +2 -2
  80. package/src/components/ui/alert-dialog/AlertDialog.vue +3 -3
  81. package/src/components/ui/alert-dialog/AlertDialogAction.vue +3 -3
  82. package/src/components/ui/alert-dialog/AlertDialogCancel.vue +3 -3
  83. package/src/components/ui/alert-dialog/AlertDialogContent.vue +7 -7
  84. package/src/components/ui/alert-dialog/AlertDialogDescription.vue +3 -3
  85. package/src/components/ui/alert-dialog/AlertDialogFooter.vue +4 -4
  86. package/src/components/ui/alert-dialog/AlertDialogHeader.vue +4 -4
  87. package/src/components/ui/alert-dialog/AlertDialogTitle.vue +3 -3
  88. package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +3 -3
  89. package/src/components/ui/animated-number/AnimatedNumber.vue +49 -48
  90. package/src/components/ui/avatar/Avatar.vue +28 -28
  91. package/src/components/ui/avatar/AvatarFallback.vue +6 -6
  92. package/src/components/ui/avatar/AvatarGroup.vue +40 -40
  93. package/src/components/ui/avatar/AvatarImage.vue +3 -3
  94. package/src/components/ui/avatar/index.ts +17 -17
  95. package/src/components/ui/badge/Badge.vue +20 -20
  96. package/src/components/ui/breadcrumb/Breadcrumb.vue +4 -4
  97. package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +9 -9
  98. package/src/components/ui/breadcrumb/BreadcrumbItem.vue +4 -4
  99. package/src/components/ui/breadcrumb/BreadcrumbLink.vue +4 -4
  100. package/src/components/ui/breadcrumb/BreadcrumbList.vue +4 -4
  101. package/src/components/ui/breadcrumb/BreadcrumbPage.vue +4 -4
  102. package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +4 -4
  103. package/src/components/ui/busy/Busy.vue +33 -33
  104. package/src/components/ui/button/Button.vue +23 -23
  105. package/src/components/ui/button/index.ts +56 -56
  106. package/src/components/ui/calendar/Calendar.vue +138 -138
  107. package/src/components/ui/calendar/CalendarCell.vue +7 -7
  108. package/src/components/ui/calendar/CalendarCellTrigger.vue +18 -18
  109. package/src/components/ui/calendar/CalendarGrid.vue +3 -3
  110. package/src/components/ui/calendar/CalendarGridBody.vue +3 -3
  111. package/src/components/ui/calendar/CalendarGridHead.vue +3 -3
  112. package/src/components/ui/calendar/CalendarGridRow.vue +3 -3
  113. package/src/components/ui/calendar/CalendarHeadCell.vue +7 -7
  114. package/src/components/ui/calendar/CalendarHeader.vue +7 -7
  115. package/src/components/ui/calendar/CalendarHeading.vue +6 -6
  116. package/src/components/ui/calendar/CalendarNextButton.vue +15 -15
  117. package/src/components/ui/calendar/CalendarPrevButton.vue +15 -15
  118. package/src/components/ui/calendar/index.ts +4 -4
  119. package/src/components/ui/card/Card.vue +20 -20
  120. package/src/components/ui/card/CardAction.vue +8 -8
  121. package/src/components/ui/card/CardContent.vue +4 -4
  122. package/src/components/ui/card/CardDescription.vue +12 -12
  123. package/src/components/ui/card/CardFooter.vue +4 -4
  124. package/src/components/ui/card/CardHeader.vue +8 -8
  125. package/src/components/ui/card/CardText.vue +8 -8
  126. package/src/components/ui/card/CardTitle.vue +8 -8
  127. package/src/components/ui/checkbox/Checkbox.vue +27 -27
  128. package/src/components/ui/collapsible/Collapsible.vue +3 -3
  129. package/src/components/ui/collapsible/CollapsibleContent.vue +3 -3
  130. package/src/components/ui/collapsible/CollapsibleTrigger.vue +3 -3
  131. package/src/components/ui/combobox/Combobox.vue +4 -4
  132. package/src/components/ui/combobox/ComboboxAnchor.vue +16 -16
  133. package/src/components/ui/combobox/ComboboxEmpty.vue +3 -3
  134. package/src/components/ui/combobox/ComboboxGroup.vue +9 -9
  135. package/src/components/ui/combobox/ComboboxInput.vue +6 -6
  136. package/src/components/ui/combobox/ComboboxItem.vue +17 -17
  137. package/src/components/ui/combobox/ComboboxList.vue +19 -19
  138. package/src/components/ui/combobox/ComboboxSelect.vue +77 -77
  139. package/src/components/ui/combobox/ComboboxSeparator.vue +1 -1
  140. package/src/components/ui/combobox/ComboboxTrigger.vue +10 -10
  141. package/src/components/ui/combobox/types.ts +5 -5
  142. package/src/components/ui/command/Command.vue +48 -48
  143. package/src/components/ui/command/CommandDialog.vue +14 -14
  144. package/src/components/ui/command/CommandEmpty.vue +4 -4
  145. package/src/components/ui/command/CommandGroup.vue +23 -23
  146. package/src/components/ui/command/CommandInput.vue +9 -9
  147. package/src/components/ui/command/CommandItem.vue +40 -40
  148. package/src/components/ui/command/CommandList.vue +9 -9
  149. package/src/components/ui/command/CommandSeparator.vue +3 -3
  150. package/src/components/ui/command/CommandShortcut.vue +8 -8
  151. package/src/components/ui/command/index.ts +11 -11
  152. package/src/components/ui/data-table/DataTable.vue +145 -145
  153. package/src/components/ui/data-table/index.ts +11 -11
  154. package/src/components/ui/date-picker/DatePicker.vue +31 -31
  155. package/src/components/ui/date-time-picker/DateTimePicker.vue +97 -97
  156. package/src/components/ui/dialog/Dialog.vue +3 -3
  157. package/src/components/ui/dialog/DialogClose.vue +3 -3
  158. package/src/components/ui/dialog/DialogContent.vue +21 -21
  159. package/src/components/ui/dialog/DialogDescription.vue +7 -7
  160. package/src/components/ui/dialog/DialogFooter.vue +8 -8
  161. package/src/components/ui/dialog/DialogHeader.vue +4 -4
  162. package/src/components/ui/dialog/DialogOverlay.vue +7 -7
  163. package/src/components/ui/dialog/DialogScrollContent.vue +32 -32
  164. package/src/components/ui/dialog/DialogTitle.vue +3 -3
  165. package/src/components/ui/dialog/DialogTrigger.vue +3 -3
  166. package/src/components/ui/dropdown-menu/DropdownMenu.vue +3 -3
  167. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +11 -11
  168. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +15 -15
  169. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +3 -3
  170. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +12 -12
  171. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +9 -9
  172. package/src/components/ui/dropdown-menu/DropdownMenuPortal.vue +3 -3
  173. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +3 -3
  174. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +11 -11
  175. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +1 -1
  176. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +4 -4
  177. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +3 -3
  178. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +15 -15
  179. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +15 -15
  180. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +3 -3
  181. package/src/components/ui/dropdown-menu/classes.ts +16 -16
  182. package/src/components/ui/field/Field.vue +5 -5
  183. package/src/components/ui/field/FieldContent.vue +8 -8
  184. package/src/components/ui/field/FieldDescription.vue +10 -10
  185. package/src/components/ui/field/FieldError.vue +39 -39
  186. package/src/components/ui/field/FieldGroup.vue +8 -8
  187. package/src/components/ui/field/FieldLabel.vue +10 -10
  188. package/src/components/ui/field/FieldLegend.vue +11 -11
  189. package/src/components/ui/field/FieldSeparator.vue +11 -11
  190. package/src/components/ui/field/FieldSet.vue +9 -9
  191. package/src/components/ui/field/FieldTitle.vue +8 -8
  192. package/src/components/ui/field/field-context.ts +36 -36
  193. package/src/components/ui/field/index.ts +22 -22
  194. package/src/components/ui/file-dropzone/FileDropzone.vue +144 -144
  195. package/src/components/ui/file-dropzone/index.ts +19 -19
  196. package/src/components/ui/hover-card/HoverCard.vue +5 -5
  197. package/src/components/ui/hover-card/HoverCardContent.vue +13 -13
  198. package/src/components/ui/hover-card/HoverCardTrigger.vue +3 -3
  199. package/src/components/ui/input/Input.vue +13 -13
  200. package/src/components/ui/kbd/Kbd.vue +10 -10
  201. package/src/components/ui/kbd/KbdGroup.vue +49 -49
  202. package/src/components/ui/label/Label.vue +7 -7
  203. package/src/components/ui/native-select/NativeSelect.vue +16 -16
  204. package/src/components/ui/native-select/NativeSelectOptGroup.vue +3 -3
  205. package/src/components/ui/native-select/NativeSelectOption.vue +3 -3
  206. package/src/components/ui/number-field/NumberField.vue +88 -88
  207. package/src/components/ui/pagination/Pagination.vue +4 -4
  208. package/src/components/ui/pagination/PaginationContent.vue +4 -4
  209. package/src/components/ui/pagination/PaginationEllipsis.vue +9 -9
  210. package/src/components/ui/pagination/PaginationFirst.vue +8 -8
  211. package/src/components/ui/pagination/PaginationItem.vue +14 -14
  212. package/src/components/ui/pagination/PaginationLast.vue +8 -8
  213. package/src/components/ui/pagination/PaginationNext.vue +8 -8
  214. package/src/components/ui/pagination/PaginationPrevious.vue +8 -8
  215. package/src/components/ui/pagination/SimplePagination.vue +25 -25
  216. package/src/components/ui/pin-input/PinInput.vue +20 -20
  217. package/src/components/ui/pin-input/PinInputInput.vue +17 -17
  218. package/src/components/ui/pin-input/context.ts +1 -1
  219. package/src/components/ui/popover/Popover.vue +3 -3
  220. package/src/components/ui/popover/PopoverAnchor.vue +3 -3
  221. package/src/components/ui/popover/PopoverContent.vue +12 -12
  222. package/src/components/ui/popover/PopoverTrigger.vue +3 -3
  223. package/src/components/ui/progress/Progress.vue +16 -16
  224. package/src/components/ui/radio-group/RadioGroup.vue +7 -7
  225. package/src/components/ui/radio-group/RadioGroupCard.vue +39 -39
  226. package/src/components/ui/radio-group/RadioGroupItem.vue +20 -20
  227. package/src/components/ui/scroll-area/ScrollArea.vue +14 -14
  228. package/src/components/ui/scroll-area/ScrollBar.vue +12 -12
  229. package/src/components/ui/select/Select.vue +3 -3
  230. package/src/components/ui/select/SelectContent.vue +25 -25
  231. package/src/components/ui/select/SelectGroup.vue +3 -3
  232. package/src/components/ui/select/SelectItem.vue +24 -24
  233. package/src/components/ui/select/SelectItemContent.vue +32 -32
  234. package/src/components/ui/select/SelectItemText.vue +3 -3
  235. package/src/components/ui/select/SelectLabel.vue +3 -3
  236. package/src/components/ui/select/SelectScrollDownButton.vue +9 -9
  237. package/src/components/ui/select/SelectScrollUpButton.vue +9 -9
  238. package/src/components/ui/select/SelectSeparator.vue +2 -2
  239. package/src/components/ui/select/SelectTrigger.vue +14 -14
  240. package/src/components/ui/select/SelectValue.vue +3 -3
  241. package/src/components/ui/select/SelectValueContent.vue +39 -39
  242. package/src/components/ui/separator/Separator.vue +7 -7
  243. package/src/components/ui/sheet/Sheet.vue +3 -3
  244. package/src/components/ui/sheet/SheetClose.vue +3 -3
  245. package/src/components/ui/sheet/SheetContent.vue +22 -22
  246. package/src/components/ui/sheet/SheetDescription.vue +3 -3
  247. package/src/components/ui/sheet/SheetFooter.vue +3 -3
  248. package/src/components/ui/sheet/SheetHeader.vue +3 -3
  249. package/src/components/ui/sheet/SheetOverlay.vue +7 -7
  250. package/src/components/ui/sheet/SheetTitle.vue +3 -3
  251. package/src/components/ui/sheet/SheetTrigger.vue +3 -3
  252. package/src/components/ui/sidebar/Sidebar.vue +57 -57
  253. package/src/components/ui/sidebar/SidebarContent.vue +8 -8
  254. package/src/components/ui/sidebar/SidebarFooter.vue +8 -8
  255. package/src/components/ui/sidebar/SidebarGroup.vue +8 -8
  256. package/src/components/ui/sidebar/SidebarGroupAction.vue +9 -9
  257. package/src/components/ui/sidebar/SidebarGroupContent.vue +4 -4
  258. package/src/components/ui/sidebar/SidebarGroupLabel.vue +8 -8
  259. package/src/components/ui/sidebar/SidebarHeader.vue +8 -8
  260. package/src/components/ui/sidebar/SidebarInput.vue +8 -8
  261. package/src/components/ui/sidebar/SidebarInset.vue +9 -9
  262. package/src/components/ui/sidebar/SidebarMenu.vue +4 -4
  263. package/src/components/ui/sidebar/SidebarMenuAction.vue +18 -18
  264. package/src/components/ui/sidebar/SidebarMenuBadge.vue +14 -14
  265. package/src/components/ui/sidebar/SidebarMenuButton.vue +21 -21
  266. package/src/components/ui/sidebar/SidebarMenuButtonChild.vue +10 -10
  267. package/src/components/ui/sidebar/SidebarMenuItem.vue +4 -4
  268. package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +10 -10
  269. package/src/components/ui/sidebar/SidebarMenuSub.vue +9 -9
  270. package/src/components/ui/sidebar/SidebarMenuSubButton.vue +17 -17
  271. package/src/components/ui/sidebar/SidebarMenuSubItem.vue +4 -4
  272. package/src/components/ui/sidebar/SidebarProvider.vue +46 -46
  273. package/src/components/ui/sidebar/SidebarRail.vue +13 -13
  274. package/src/components/ui/sidebar/SidebarSeparator.vue +4 -4
  275. package/src/components/ui/sidebar/SidebarTrigger.vue +5 -5
  276. package/src/components/ui/sidebar/index.ts +29 -29
  277. package/src/components/ui/sidebar/utils.ts +7 -7
  278. package/src/components/ui/skeleton/Skeleton.vue +6 -6
  279. package/src/components/ui/slider/Slider.vue +14 -14
  280. package/src/components/ui/spinner/Spinner.vue +21 -21
  281. package/src/components/ui/stepper/SimpleStepper.vue +26 -26
  282. package/src/components/ui/stepper/Stepper.vue +6 -6
  283. package/src/components/ui/stepper/StepperDescription.vue +5 -5
  284. package/src/components/ui/stepper/StepperIndicator.vue +17 -17
  285. package/src/components/ui/stepper/StepperItem.vue +4 -4
  286. package/src/components/ui/stepper/StepperSeparator.vue +7 -7
  287. package/src/components/ui/stepper/StepperTitle.vue +5 -5
  288. package/src/components/ui/stepper/StepperTrigger.vue +4 -4
  289. package/src/components/ui/stepper/index.ts +3 -3
  290. package/src/components/ui/switch/Switch.vue +15 -15
  291. package/src/components/ui/table/Table.vue +6 -6
  292. package/src/components/ui/table/TableBody.vue +4 -4
  293. package/src/components/ui/table/TableCaption.vue +4 -4
  294. package/src/components/ui/table/TableCell.vue +8 -8
  295. package/src/components/ui/table/TableEmpty.vue +14 -14
  296. package/src/components/ui/table/TableFooter.vue +8 -8
  297. package/src/components/ui/table/TableHead.vue +8 -8
  298. package/src/components/ui/table/TableHeader.vue +4 -4
  299. package/src/components/ui/table/TableRow.vue +8 -8
  300. package/src/components/ui/tabs/Tabs.vue +4 -4
  301. package/src/components/ui/tabs/TabsContent.vue +4 -4
  302. package/src/components/ui/tabs/TabsList.vue +15 -15
  303. package/src/components/ui/tabs/TabsTrigger.vue +10 -10
  304. package/src/components/ui/tags-input/TagsInput.vue +17 -17
  305. package/src/components/ui/tags-input/TagsInputInput.vue +6 -6
  306. package/src/components/ui/tags-input/TagsInputItem.vue +15 -15
  307. package/src/components/ui/tags-input/TagsInputItemDelete.vue +12 -12
  308. package/src/components/ui/tags-input/TagsInputItemText.vue +4 -4
  309. package/src/components/ui/textarea/Textarea.vue +12 -12
  310. package/src/components/ui/time-picker/TimePicker.vue +25 -25
  311. package/src/components/ui/toggle-group/Toggle.vue +10 -10
  312. package/src/components/ui/toggle-group/ToggleGroup.vue +38 -38
  313. package/src/components/ui/toggle-group/ToggleGroupItem.vue +9 -9
  314. package/src/components/ui/toggle-group/index.ts +46 -46
  315. package/src/components/ui/tooltip/Tooltip.vue +3 -3
  316. package/src/components/ui/tooltip/TooltipContent.vue +13 -13
  317. package/src/components/ui/tooltip/TooltipProvider.vue +4 -4
  318. package/src/components/ui/tooltip/TooltipTrigger.vue +3 -3
  319. package/src/i18n/de.json +185 -185
  320. package/src/i18n/en.json +185 -185
  321. package/src/i18n/es.json +185 -185
  322. package/src/i18n/fr.json +185 -185
  323. package/src/i18n/it.json +185 -185
  324. package/src/i18n/ja.json +185 -185
  325. package/src/i18n/pt.json +185 -185
  326. package/src/i18n/ru.json +185 -185
  327. package/src/i18n/zh.json +185 -185
  328. package/src/lib/color-tokens.ts +24 -24
  329. package/src/lib/i18n.ts +65 -65
  330. package/src/lib/utils.ts +33 -33
  331. package/src/nuxt-components.d.ts +2 -2
  332. package/src/runtime/ui-vintage-i18n-plugin.ts +49 -49
  333. package/src/shims-vue.d.ts +3 -3
  334. package/src/styles.css +377 -377
@@ -19,16 +19,16 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
19
19
  </script>
20
20
 
21
21
  <template>
22
- <DropdownMenuCheckboxItem data-slot="dropdown-menu-checkbox-item" v-bind="forwarded" :class="cn(dropdownMenuItemClass, 'pl-9 data-[state=checked]:text-foreground', props.class)">
23
- <!-- Check indicator (pops in when checked) -->
24
- <span class="pointer-events-none absolute left-3 flex size-4 items-center justify-center text-primary">
25
- <DropdownMenuItemIndicator>
26
- <slot name="indicator-icon">
27
- <HugeiconsIcon :icon="Tick02Icon" class="size-4 animate-uv-pop" :stroke-width="2.5" />
28
- </slot>
29
- </DropdownMenuItemIndicator>
30
- </span>
22
+ <DropdownMenuCheckboxItem data-slot="dropdown-menu-checkbox-item" v-bind="forwarded" :class="cn(dropdownMenuItemClass, 'pl-9 data-[state=checked]:text-foreground', props.class)">
23
+ <!-- Check indicator (pops in when checked) -->
24
+ <span class="pointer-events-none absolute left-3 flex size-4 items-center justify-center text-primary">
25
+ <DropdownMenuItemIndicator>
26
+ <slot name="indicator-icon">
27
+ <HugeiconsIcon :icon="Tick02Icon" class="size-4 animate-uv-pop" :stroke-width="2.5" />
28
+ </slot>
29
+ </DropdownMenuItemIndicator>
30
+ </span>
31
31
 
32
- <slot />
33
- </DropdownMenuCheckboxItem>
32
+ <slot />
33
+ </DropdownMenuCheckboxItem>
34
34
  </template>
@@ -7,14 +7,14 @@ import { cn } from '../../../lib/utils';
7
7
  import { dropdownMenuStaggerClass, dropdownMenuSurfaceClass } from './classes';
8
8
 
9
9
  defineOptions({
10
- inheritAttrs: false
10
+ inheritAttrs: false
11
11
  });
12
12
 
13
13
  // Props
14
14
  const props = withDefaults(defineProps<DropdownMenuContentProps & { class?: HTMLAttributes['class'] }>(), {
15
- align: 'start',
16
- sideOffset: 6,
17
- collisionPadding: 8
15
+ align: 'start',
16
+ sideOffset: 6,
17
+ collisionPadding: 8
18
18
  });
19
19
 
20
20
  // Emits
@@ -25,15 +25,15 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
25
25
  </script>
26
26
 
27
27
  <template>
28
- <DropdownMenuPortal>
29
- <DropdownMenuContent data-slot="dropdown-menu-content" v-bind="{ ...$attrs, ...forwarded }" :class="cn(
30
- dropdownMenuSurfaceClass,
31
- 'max-h-(--reka-dropdown-menu-content-available-height)',
32
- dropdownMenuStaggerClass,
33
- props.class
34
- )
35
- ">
36
- <slot />
37
- </DropdownMenuContent>
38
- </DropdownMenuPortal>
28
+ <DropdownMenuPortal>
29
+ <DropdownMenuContent data-slot="dropdown-menu-content" v-bind="{ ...$attrs, ...forwarded }" :class="cn(
30
+ dropdownMenuSurfaceClass,
31
+ 'max-h-(--reka-dropdown-menu-content-available-height)',
32
+ dropdownMenuStaggerClass,
33
+ props.class
34
+ )
35
+ ">
36
+ <slot />
37
+ </DropdownMenuContent>
38
+ </DropdownMenuPortal>
39
39
  </template>
@@ -7,7 +7,7 @@ const props = defineProps<DropdownMenuGroupProps>();
7
7
  </script>
8
8
 
9
9
  <template>
10
- <DropdownMenuGroup data-slot="dropdown-menu-group" v-bind="props">
11
- <slot />
12
- </DropdownMenuGroup>
10
+ <DropdownMenuGroup data-slot="dropdown-menu-group" v-bind="props">
11
+ <slot />
12
+ </DropdownMenuGroup>
13
13
  </template>
@@ -8,11 +8,11 @@ import { dropdownMenuItemClass } from './classes';
8
8
 
9
9
  // Props
10
10
  const props = withDefaults(defineProps<DropdownMenuItemProps & {
11
- class?: HTMLAttributes['class'];
12
- inset?: boolean;
13
- variant?: 'default' | 'destructive';
11
+ class?: HTMLAttributes['class'];
12
+ inset?: boolean;
13
+ variant?: 'default' | 'destructive';
14
14
  }>(), {
15
- variant: 'default'
15
+ variant: 'default'
16
16
  });
17
17
 
18
18
  // Emits
@@ -23,12 +23,12 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
23
23
  </script>
24
24
 
25
25
  <template>
26
- <DropdownMenuItem data-slot="dropdown-menu-item" :data-inset="props.inset ? '' : undefined" :data-variant="props.variant" v-bind="forwarded" :class="cn(
27
- dropdownMenuItemClass,
28
- props.variant === 'destructive' && 'text-destructive before:bg-destructive data-highlighted:bg-destructive/10 data-highlighted:text-destructive',
29
- props.class
30
- )
31
- ">
32
- <slot />
33
- </DropdownMenuItem>
26
+ <DropdownMenuItem data-slot="dropdown-menu-item" :data-inset="props.inset ? '' : undefined" :data-variant="props.variant" v-bind="forwarded" :class="cn(
27
+ dropdownMenuItemClass,
28
+ props.variant === 'destructive' && 'text-destructive before:bg-destructive data-highlighted:bg-destructive/10 data-highlighted:text-destructive',
29
+ props.class
30
+ )
31
+ ">
32
+ <slot />
33
+ </DropdownMenuItem>
34
34
  </template>
@@ -7,8 +7,8 @@ import { cn } from '../../../lib/utils';
7
7
 
8
8
  // Props
9
9
  const props = defineProps<DropdownMenuLabelProps & {
10
- class?: HTMLAttributes['class'];
11
- inset?: boolean;
10
+ class?: HTMLAttributes['class'];
11
+ inset?: boolean;
12
12
  }>();
13
13
 
14
14
  const delegatedProps = reactiveOmit(props, 'class', 'inset');
@@ -16,11 +16,11 @@ const forwardedProps = useForwardProps(delegatedProps);
16
16
  </script>
17
17
 
18
18
  <template>
19
- <DropdownMenuLabel data-slot="dropdown-menu-label" :data-inset="props.inset ? '' : undefined" v-bind="forwardedProps" :class="cn(
20
- 'px-3 pt-2 pb-1.5 text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground select-none data-inset:pl-9',
21
- props.class
22
- )
23
- ">
24
- <slot />
25
- </DropdownMenuLabel>
19
+ <DropdownMenuLabel data-slot="dropdown-menu-label" :data-inset="props.inset ? '' : undefined" v-bind="forwardedProps" :class="cn(
20
+ 'px-3 pt-2 pb-1.5 text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground select-none data-inset:pl-9',
21
+ props.class
22
+ )
23
+ ">
24
+ <slot />
25
+ </DropdownMenuLabel>
26
26
  </template>
@@ -7,7 +7,7 @@ const props = defineProps<DropdownMenuPortalProps>();
7
7
  </script>
8
8
 
9
9
  <template>
10
- <DropdownMenuPortal v-bind="props">
11
- <slot />
12
- </DropdownMenuPortal>
10
+ <DropdownMenuPortal v-bind="props">
11
+ <slot />
12
+ </DropdownMenuPortal>
13
13
  </template>
@@ -12,7 +12,7 @@ const forwarded = useForwardPropsEmits(props, emits);
12
12
  </script>
13
13
 
14
14
  <template>
15
- <DropdownMenuRadioGroup data-slot="dropdown-menu-radio-group" v-bind="forwarded">
16
- <slot />
17
- </DropdownMenuRadioGroup>
15
+ <DropdownMenuRadioGroup data-slot="dropdown-menu-radio-group" v-bind="forwarded">
16
+ <slot />
17
+ </DropdownMenuRadioGroup>
18
18
  </template>
@@ -17,16 +17,16 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
17
17
  </script>
18
18
 
19
19
  <template>
20
- <DropdownMenuRadioItem data-slot="dropdown-menu-radio-item" v-bind="forwarded" :class="cn(dropdownMenuItemClass, 'group/dropdown-radio-item pl-9 data-[state=checked]:text-foreground', props.class)">
21
- <!-- Radio ring with a dot that pops in when checked -->
22
- <span class="pointer-events-none absolute left-3 flex size-4 items-center justify-center rounded-full border border-border-strong transition-colors duration-150 group-data-[state=checked]/dropdown-radio-item:border-primary">
23
- <DropdownMenuItemIndicator>
24
- <slot name="indicator-icon">
25
- <span class="block size-2 animate-uv-pop rounded-full bg-primary" />
26
- </slot>
27
- </DropdownMenuItemIndicator>
28
- </span>
20
+ <DropdownMenuRadioItem data-slot="dropdown-menu-radio-item" v-bind="forwarded" :class="cn(dropdownMenuItemClass, 'group/dropdown-radio-item pl-9 data-[state=checked]:text-foreground', props.class)">
21
+ <!-- Radio ring with a dot that pops in when checked -->
22
+ <span class="pointer-events-none absolute left-3 flex size-4 items-center justify-center rounded-full border border-border-strong transition-colors duration-150 group-data-[state=checked]/dropdown-radio-item:border-primary">
23
+ <DropdownMenuItemIndicator>
24
+ <slot name="indicator-icon">
25
+ <span class="block size-2 animate-uv-pop rounded-full bg-primary" />
26
+ </slot>
27
+ </DropdownMenuItemIndicator>
28
+ </span>
29
29
 
30
- <slot />
31
- </DropdownMenuRadioItem>
30
+ <slot />
31
+ </DropdownMenuRadioItem>
32
32
  </template>
@@ -12,5 +12,5 @@ const delegatedProps = reactiveOmit(props, 'class');
12
12
  </script>
13
13
 
14
14
  <template>
15
- <DropdownMenuSeparator data-slot="dropdown-menu-separator" v-bind="delegatedProps" :class="cn('-mx-1 my-1 h-px bg-border', props.class)" />
15
+ <DropdownMenuSeparator data-slot="dropdown-menu-separator" v-bind="delegatedProps" :class="cn('-mx-1 my-1 h-px bg-border', props.class)" />
16
16
  </template>
@@ -4,12 +4,12 @@ import { cn } from '../../../lib/utils';
4
4
 
5
5
  // Props
6
6
  const props = defineProps<{
7
- class?: HTMLAttributes['class'];
7
+ class?: HTMLAttributes['class'];
8
8
  }>();
9
9
  </script>
10
10
 
11
11
  <template>
12
- <span data-slot="dropdown-menu-shortcut" :class="cn('ml-auto pl-4 text-[11px] font-semibold tracking-widest text-muted-foreground', props.class)">
13
- <slot />
14
- </span>
12
+ <span data-slot="dropdown-menu-shortcut" :class="cn('ml-auto pl-4 text-[11px] font-semibold tracking-widest text-muted-foreground', props.class)">
13
+ <slot />
14
+ </span>
15
15
  </template>
@@ -12,7 +12,7 @@ const forwarded = useForwardPropsEmits(props, emits);
12
12
  </script>
13
13
 
14
14
  <template>
15
- <DropdownMenuSub v-slot="slotProps" data-slot="dropdown-menu-sub" v-bind="forwarded">
16
- <slot v-bind="slotProps" />
17
- </DropdownMenuSub>
15
+ <DropdownMenuSub v-slot="slotProps" data-slot="dropdown-menu-sub" v-bind="forwarded">
16
+ <slot v-bind="slotProps" />
17
+ </DropdownMenuSub>
18
18
  </template>
@@ -7,14 +7,14 @@ import { cn } from '../../../lib/utils';
7
7
  import { dropdownMenuStaggerClass, dropdownMenuSurfaceClass } from './classes';
8
8
 
9
9
  defineOptions({
10
- inheritAttrs: false
10
+ inheritAttrs: false
11
11
  });
12
12
 
13
13
  // Props
14
14
  const props = withDefaults(defineProps<DropdownMenuSubContentProps & { class?: HTMLAttributes['class'] }>(), {
15
- sideOffset: 6,
16
- alignOffset: -5,
17
- collisionPadding: 8
15
+ sideOffset: 6,
16
+ alignOffset: -5,
17
+ collisionPadding: 8
18
18
  });
19
19
 
20
20
  // Emits
@@ -25,15 +25,15 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
25
25
  </script>
26
26
 
27
27
  <template>
28
- <DropdownMenuPortal>
29
- <DropdownMenuSubContent data-slot="dropdown-menu-sub-content" v-bind="{ ...$attrs, ...forwarded }" :class="cn(
30
- dropdownMenuSurfaceClass,
31
- 'max-h-(--reka-dropdown-menu-content-available-height)',
32
- dropdownMenuStaggerClass,
33
- props.class
34
- )
35
- ">
36
- <slot />
37
- </DropdownMenuSubContent>
38
- </DropdownMenuPortal>
28
+ <DropdownMenuPortal>
29
+ <DropdownMenuSubContent data-slot="dropdown-menu-sub-content" v-bind="{ ...$attrs, ...forwarded }" :class="cn(
30
+ dropdownMenuSurfaceClass,
31
+ 'max-h-(--reka-dropdown-menu-content-available-height)',
32
+ dropdownMenuStaggerClass,
33
+ props.class
34
+ )
35
+ ">
36
+ <slot />
37
+ </DropdownMenuSubContent>
38
+ </DropdownMenuPortal>
39
39
  </template>
@@ -10,8 +10,8 @@ import { dropdownMenuItemClass } from './classes';
10
10
 
11
11
  // Props
12
12
  const props = defineProps<DropdownMenuSubTriggerProps & {
13
- class?: HTMLAttributes['class'];
14
- inset?: boolean;
13
+ class?: HTMLAttributes['class'];
14
+ inset?: boolean;
15
15
  }>();
16
16
 
17
17
  const delegatedProps = reactiveOmit(props, 'class', 'inset');
@@ -19,18 +19,18 @@ const forwardedProps = useForwardProps(delegatedProps);
19
19
  </script>
20
20
 
21
21
  <template>
22
- <DropdownMenuSubTrigger data-slot="dropdown-menu-sub-trigger" :data-inset="props.inset ? '' : undefined" v-bind="forwardedProps" :class="cn(
23
- 'group/dropdown-sub-trigger',
24
- dropdownMenuItemClass,
25
- 'data-[state=open]:bg-accent data-[state=open]:text-foreground data-[state=open]:before:scale-y-100',
26
- props.class
27
- )
28
- ">
29
- <slot />
22
+ <DropdownMenuSubTrigger data-slot="dropdown-menu-sub-trigger" :data-inset="props.inset ? '' : undefined" v-bind="forwardedProps" :class="cn(
23
+ 'group/dropdown-sub-trigger',
24
+ dropdownMenuItemClass,
25
+ 'data-[state=open]:bg-accent data-[state=open]:text-foreground data-[state=open]:before:scale-y-100',
26
+ props.class
27
+ )
28
+ ">
29
+ <slot />
30
30
 
31
- <!-- Chevron nudges right while the sub menu is open -->
32
- <span class="ml-auto flex items-center transition-transform duration-300 ease-spring group-data-[state=open]/dropdown-sub-trigger:translate-x-1">
33
- <HugeiconsIcon :icon="ArrowRight01Icon" class="size-4 opacity-60" />
34
- </span>
35
- </DropdownMenuSubTrigger>
31
+ <!-- Chevron nudges right while the sub menu is open -->
32
+ <span class="ml-auto flex items-center transition-transform duration-300 ease-spring group-data-[state=open]/dropdown-sub-trigger:translate-x-1">
33
+ <HugeiconsIcon :icon="ArrowRight01Icon" class="size-4 opacity-60" />
34
+ </span>
35
+ </DropdownMenuSubTrigger>
36
36
  </template>
@@ -9,7 +9,7 @@ const forwardedProps = useForwardProps(props);
9
9
  </script>
10
10
 
11
11
  <template>
12
- <DropdownMenuTrigger data-slot="dropdown-menu-trigger" v-bind="forwardedProps">
13
- <slot />
14
- </DropdownMenuTrigger>
12
+ <DropdownMenuTrigger data-slot="dropdown-menu-trigger" v-bind="forwardedProps">
13
+ <slot />
14
+ </DropdownMenuTrigger>
15
15
  </template>
@@ -3,24 +3,24 @@ export const dropdownMenuSurfaceClass = 'uv-floating-motion bg-popover text-popo
3
3
 
4
4
  // Lightweight entrance stagger for the first ~8 direct children (runs once on open, not on highlight)
5
5
  export const dropdownMenuStaggerClass = [
6
- '[&[data-state=open]>*]:animate-[uv-float-in_240ms_var(--ease-out-expo)_both] [&>*]:[--uv-float-offset:-3px]',
7
- '[&[data-state=open]>*:nth-child(2)]:[animation-delay:16ms]',
8
- '[&[data-state=open]>*:nth-child(3)]:[animation-delay:32ms]',
9
- '[&[data-state=open]>*:nth-child(4)]:[animation-delay:48ms]',
10
- '[&[data-state=open]>*:nth-child(5)]:[animation-delay:64ms]',
11
- '[&[data-state=open]>*:nth-child(6)]:[animation-delay:80ms]',
12
- '[&[data-state=open]>*:nth-child(7)]:[animation-delay:96ms]',
13
- '[&[data-state=open]>*:nth-child(8)]:[animation-delay:112ms]',
14
- '[&[data-state=open]>*:nth-child(n+9)]:[animation-delay:128ms]'
6
+ '[&[data-state=open]>*]:animate-[uv-float-in_240ms_var(--ease-out-expo)_both] [&>*]:[--uv-float-offset:-3px]',
7
+ '[&[data-state=open]>*:nth-child(2)]:[animation-delay:16ms]',
8
+ '[&[data-state=open]>*:nth-child(3)]:[animation-delay:32ms]',
9
+ '[&[data-state=open]>*:nth-child(4)]:[animation-delay:48ms]',
10
+ '[&[data-state=open]>*:nth-child(5)]:[animation-delay:64ms]',
11
+ '[&[data-state=open]>*:nth-child(6)]:[animation-delay:80ms]',
12
+ '[&[data-state=open]>*:nth-child(7)]:[animation-delay:96ms]',
13
+ '[&[data-state=open]>*:nth-child(8)]:[animation-delay:112ms]',
14
+ '[&[data-state=open]>*:nth-child(n+9)]:[animation-delay:128ms]'
15
15
  ].join(' ');
16
16
 
17
17
  // Shared item classes (items, checkbox/radio items, sub triggers)
18
18
  export const dropdownMenuItemClass = [
19
- 'relative flex cursor-pointer items-center gap-3 rounded px-3 py-2 text-xs font-semibold text-muted-foreground outline-hidden select-none transition-colors duration-150 sm:text-sm',
20
- 'data-highlighted:bg-accent data-highlighted:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-9',
21
- '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
22
- // A primary bar springs onto the highlighted item, like in the command palette
23
- 'before:absolute before:inset-y-1.5 before:left-0 before:w-0.5 before:scale-y-0 before:rounded-full before:bg-primary before:transition-transform before:duration-300 before:ease-spring data-highlighted:before:scale-y-100',
24
- // Leading icons nudge slightly when the item is highlighted
25
- '[&>svg]:transition-transform [&>svg]:duration-300 [&>svg]:ease-spring [&[data-highlighted]>svg]:translate-x-0.5 [&[data-highlighted]>svg]:scale-110'
19
+ 'relative flex cursor-pointer items-center gap-3 rounded px-3 py-2 text-xs font-semibold text-muted-foreground outline-hidden select-none transition-colors duration-150 sm:text-sm',
20
+ 'data-highlighted:bg-accent data-highlighted:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-9',
21
+ '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
22
+ // A primary bar springs onto the highlighted item, like in the command palette
23
+ 'before:absolute before:inset-y-1.5 before:left-0 before:w-0.5 before:scale-y-0 before:rounded-full before:bg-primary before:transition-transform before:duration-300 before:ease-spring data-highlighted:before:scale-y-100',
24
+ // Leading icons nudge slightly when the item is highlighted
25
+ '[&>svg]:transition-transform [&>svg]:duration-300 [&>svg]:ease-spring [&[data-highlighted]>svg]:translate-x-0.5 [&[data-highlighted]>svg]:scale-110'
26
26
  ].join(' ');
@@ -7,8 +7,8 @@ import { provideFieldContext } from './field-context';
7
7
 
8
8
  // Props
9
9
  const props = defineProps<{
10
- class?: HTMLAttributes['class'];
11
- orientation?: FieldVariants['orientation'];
10
+ class?: HTMLAttributes['class'];
11
+ orientation?: FieldVariants['orientation'];
12
12
  }>();
13
13
 
14
14
  // Let FieldLabel point to the control placed in this field
@@ -16,7 +16,7 @@ provideFieldContext();
16
16
  </script>
17
17
 
18
18
  <template>
19
- <div role="group" data-slot="field" :data-orientation="orientation" :class="cn(fieldVariants({ orientation }), props.class)">
20
- <slot />
21
- </div>
19
+ <div role="group" data-slot="field" :data-orientation="orientation" :class="cn(fieldVariants({ orientation }), props.class)">
20
+ <slot />
21
+ </div>
22
22
  </template>
@@ -4,16 +4,16 @@ import { cn } from '../../../lib/utils';
4
4
 
5
5
  // Props
6
6
  const props = defineProps<{
7
- class?: HTMLAttributes['class'];
7
+ class?: HTMLAttributes['class'];
8
8
  }>();
9
9
  </script>
10
10
 
11
11
  <template>
12
- <div data-slot="field-content" :class="cn(
13
- 'group/field-content flex flex-1 flex-col gap-1.5 leading-snug',
14
- props.class
15
- )
16
- ">
17
- <slot />
18
- </div>
12
+ <div data-slot="field-content" :class="cn(
13
+ 'group/field-content flex flex-1 flex-col gap-1.5 leading-snug',
14
+ props.class
15
+ )
16
+ ">
17
+ <slot />
18
+ </div>
19
19
  </template>
@@ -4,18 +4,18 @@ import { cn } from '../../../lib/utils';
4
4
 
5
5
  // Props
6
6
  const props = defineProps<{
7
- class?: HTMLAttributes['class'];
7
+ class?: HTMLAttributes['class'];
8
8
  }>();
9
9
  </script>
10
10
 
11
11
  <template>
12
- <p data-slot="field-description" :class="cn(
13
- 'text-xs leading-5 font-normal text-muted-foreground group-has-data-[orientation=horizontal]/field:text-balance',
14
- 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5',
15
- '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',
16
- props.class
17
- )
18
- ">
19
- <slot />
20
- </p>
12
+ <p data-slot="field-description" :class="cn(
13
+ 'text-xs leading-5 font-normal text-muted-foreground group-has-data-[orientation=horizontal]/field:text-balance',
14
+ 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5',
15
+ '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',
16
+ props.class
17
+ )
18
+ ">
19
+ <slot />
20
+ </p>
21
21
  </template>
@@ -5,50 +5,50 @@ import { cn } from '../../../lib/utils';
5
5
 
6
6
  // Props
7
7
  const props = defineProps<{
8
- class?: HTMLAttributes['class'];
9
- errors?: Array<string | { message: string | undefined } | undefined>;
8
+ class?: HTMLAttributes['class'];
9
+ errors?: Array<string | { message: string | undefined } | undefined>;
10
10
  }>();
11
11
 
12
12
  const content = computed(() => {
13
- if (!props.errors || props.errors.length === 0) return null;
14
-
15
- const uniqueErrors = [
16
- ...new Map(
17
- props.errors.filter(Boolean).map((error) => {
18
- const message =
19
- typeof error === 'string' ? error : error?.message;
20
- return [message, error];
21
- })
22
- ).values()
23
- ];
24
-
25
- // Nothing to show when every entry is empty
26
- if (uniqueErrors.length === 0) return null;
27
-
28
- if (uniqueErrors.length === 1 && uniqueErrors[0]) {
29
- return typeof uniqueErrors[0] === 'string'
30
- ? uniqueErrors[0]
31
- : uniqueErrors[0].message;
32
- }
33
-
34
- return uniqueErrors.map((error) =>
35
- typeof error === 'string' ? error : error?.message
36
- );
13
+ if (!props.errors || props.errors.length === 0) return null;
14
+
15
+ const uniqueErrors = [
16
+ ...new Map(
17
+ props.errors.filter(Boolean).map((error) => {
18
+ const message =
19
+ typeof error === 'string' ? error : error?.message;
20
+ return [message, error];
21
+ })
22
+ ).values()
23
+ ];
24
+
25
+ // Nothing to show when every entry is empty
26
+ if (uniqueErrors.length === 0) return null;
27
+
28
+ if (uniqueErrors.length === 1 && uniqueErrors[0]) {
29
+ return typeof uniqueErrors[0] === 'string'
30
+ ? uniqueErrors[0]
31
+ : uniqueErrors[0].message;
32
+ }
33
+
34
+ return uniqueErrors.map((error) =>
35
+ typeof error === 'string' ? error : error?.message
36
+ );
37
37
  });
38
38
  </script>
39
39
 
40
40
  <template>
41
- <div v-if="$slots.default || content" role="alert" data-slot="field-error" :class="cn('text-destructive animate-[uv-fade-up_0.3s_var(--ease-out-expo)_both] text-xs font-normal', props.class)">
42
- <slot v-if="$slots.default" />
43
-
44
- <template v-else-if="typeof content === 'string'">
45
- {{ content }}
46
- </template>
47
-
48
- <ul v-else-if="Array.isArray(content)" class="ml-4 flex list-disc flex-col gap-1">
49
- <li v-for="(error, index) in content" :key="index">
50
- {{ error }}
51
- </li>
52
- </ul>
53
- </div>
41
+ <div v-if="$slots.default || content" role="alert" data-slot="field-error" :class="cn('text-destructive animate-[uv-fade-up_0.3s_var(--ease-out-expo)_both] text-xs font-normal', props.class)">
42
+ <slot v-if="$slots.default" />
43
+
44
+ <template v-else-if="typeof content === 'string'">
45
+ {{ content }}
46
+ </template>
47
+
48
+ <ul v-else-if="Array.isArray(content)" class="ml-4 flex list-disc flex-col gap-1">
49
+ <li v-for="(error, index) in content" :key="index">
50
+ {{ error }}
51
+ </li>
52
+ </ul>
53
+ </div>
54
54
  </template>
@@ -4,16 +4,16 @@ import { cn } from '../../../lib/utils';
4
4
 
5
5
  // Props
6
6
  const props = defineProps<{
7
- class?: HTMLAttributes['class'];
7
+ class?: HTMLAttributes['class'];
8
8
  }>();
9
9
  </script>
10
10
 
11
11
  <template>
12
- <div data-slot="field-group" :class="cn(
13
- 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',
14
- props.class
15
- )
16
- ">
17
- <slot />
18
- </div>
12
+ <div data-slot="field-group" :class="cn(
13
+ 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',
14
+ props.class
15
+ )
16
+ ">
17
+ <slot />
18
+ </div>
19
19
  </template>
@@ -6,7 +6,7 @@ import { useFieldLabel } from './field-context';
6
6
 
7
7
  // Props
8
8
  const props = defineProps<{
9
- class?: HTMLAttributes['class'];
9
+ class?: HTMLAttributes['class'];
10
10
  }>();
11
11
 
12
12
  // Point to the control of the surrounding Field (an explicit for attribute still wins)
@@ -14,13 +14,13 @@ const { labelId, target: labelTarget } = useFieldLabel();
14
14
  </script>
15
15
 
16
16
  <template>
17
- <Label :id="labelId" data-slot="field-label" :for="labelTarget" :class="cn(
18
- 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50',
19
- 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded has-[>[data-slot=field]]:border *:data-[slot=field]:p-4',
20
- 'has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10',
21
- props.class
22
- )
23
- ">
24
- <slot />
25
- </Label>
17
+ <Label :id="labelId" data-slot="field-label" :for="labelTarget" :class="cn(
18
+ 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50',
19
+ 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded has-[>[data-slot=field]]:border *:data-[slot=field]:p-4',
20
+ 'has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10',
21
+ props.class
22
+ )
23
+ ">
24
+ <slot />
25
+ </Label>
26
26
  </template>