@brumaombra/ui-vintage 0.7.8 → 0.7.10

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 (275) hide show
  1. package/README.md +308 -48
  2. package/module.mjs +1 -1
  3. package/package.json +2 -1
  4. package/src/components/background-grid/BackgroundGrid.vue +11 -2
  5. package/src/components/background-grid/index.ts +2 -2
  6. package/src/components/blog/AllPostsSection.vue +25 -9
  7. package/src/components/blog/BlogContentRenderer.vue +133 -0
  8. package/src/components/blog/BlogFAQSection.vue +8 -3
  9. package/src/components/blog/BlogHeaderSection.vue +14 -11
  10. package/src/components/blog/BlogInfoSection.vue +13 -11
  11. package/src/components/blog/BlogProgressBar.vue +77 -0
  12. package/src/components/blog/BlogSectionTitle.vue +5 -5
  13. package/src/components/blog/CategoriesList.vue +11 -3
  14. package/src/components/blog/CategoriesSection.vue +11 -3
  15. package/src/components/blog/CategoryCard.vue +10 -8
  16. package/src/components/blog/HeaderCarousel.vue +24 -15
  17. package/src/components/blog/PostCard.vue +16 -11
  18. package/src/components/blog/PostsList.vue +12 -3
  19. package/src/components/blog/SocialShareSidebar.vue +43 -41
  20. package/src/components/blog/TableOfContents.vue +29 -13
  21. package/src/components/blog/index.ts +1 -0
  22. package/src/components/busy-indicator/BusyIndicator.vue +2 -2
  23. package/src/components/busy-indicator/busy-indicator-state.ts +11 -12
  24. package/src/components/busy-indicator/index.ts +3 -3
  25. package/src/components/card-grid/CardGrid.vue +25 -11
  26. package/src/components/chip/Chip.vue +15 -15
  27. package/src/components/chip/index.ts +2 -2
  28. package/src/components/confirm-dialog/ConfirmDialog.vue +9 -9
  29. package/src/components/confirm-dialog/confirm-dialog-state.ts +15 -14
  30. package/src/components/confirm-dialog/index.ts +3 -12
  31. package/src/components/content/BlogList.vue +11 -8
  32. package/src/components/content/BlogTable.vue +18 -14
  33. package/src/components/content/ProseHr.vue +10 -7
  34. package/src/components/content/Terminal.vue +70 -0
  35. package/src/components/content/index.ts +2 -1
  36. package/src/components/dashboard-shell/DashboardShell.vue +43 -64
  37. package/src/components/dashboard-shell/index.ts +2 -2
  38. package/src/components/data-list/DataList.vue +11 -13
  39. package/src/components/data-list/DataListItem.vue +9 -11
  40. package/src/components/data-list/DataListLabel.vue +9 -11
  41. package/src/components/data-list/DataListText.vue +9 -11
  42. package/src/components/data-list/DataListValue.vue +9 -11
  43. package/src/components/data-list/index.ts +5 -5
  44. package/src/components/empty-state-card/EmptyStateCard.vue +21 -11
  45. package/src/components/error-page/ErrorPage.vue +24 -27
  46. package/src/components/error-page/index.ts +2 -2
  47. package/src/components/info-card/InfoCard.vue +17 -11
  48. package/src/components/landing/index.ts +6 -6
  49. package/src/components/landing/landing-content/LandingContent.vue +5 -7
  50. package/src/components/landing/landing-content/index.ts +2 -2
  51. package/src/components/landing/landing-footer/LandingFooter.vue +26 -29
  52. package/src/components/landing/landing-footer/index.ts +3 -3
  53. package/src/components/landing/landing-navbar/LandingNavbar.vue +51 -19
  54. package/src/components/landing/landing-navbar/index.ts +2 -2
  55. package/src/components/landing/landing-shell/LandingShell.vue +12 -15
  56. package/src/components/landing/landing-shell/index.ts +2 -2
  57. package/src/components/language-flag/LanguageFlag.vue +6 -5
  58. package/src/components/language-flag/index.ts +1 -0
  59. package/src/components/language-selector/LanguageSelector.vue +20 -21
  60. package/src/components/load-more-button/LoadMoreButton.vue +18 -14
  61. package/src/components/loading-state-card/LoadingStateCard.vue +13 -9
  62. package/src/components/message-dialog/MessageDialog.vue +19 -19
  63. package/src/components/message-dialog/index.ts +3 -11
  64. package/src/components/message-dialog/message-dialog-state.ts +12 -11
  65. package/src/components/message-toast/MessageToast.vue +16 -16
  66. package/src/components/message-toast/index.ts +2 -9
  67. package/src/components/message-toast/message-toast-state.ts +9 -9
  68. package/src/components/page-header/PageHeader.vue +8 -5
  69. package/src/components/progress-component/ProgressComponent.vue +13 -10
  70. package/src/components/single-value-card/SingleValueCard.vue +22 -19
  71. package/src/components/slider-form-component/SliderFormComponent.vue +11 -20
  72. package/src/components/slider-form-component/index.ts +2 -2
  73. package/src/components/switch-form-component/SwitchFormComponent.vue +7 -9
  74. package/src/components/switch-form-component/index.ts +2 -2
  75. package/src/components/text-link/TextLink.vue +11 -7
  76. package/src/components/ui/accordion/Accordion.vue +10 -13
  77. package/src/components/ui/accordion/index.ts +1 -1
  78. package/src/components/ui/alert/Alert.vue +11 -10
  79. package/src/components/ui/alert/AlertDescription.vue +9 -8
  80. package/src/components/ui/alert/AlertTitle.vue +9 -8
  81. package/src/components/ui/alert/index.ts +10 -10
  82. package/src/components/ui/alert-dialog/AlertDialog.vue +13 -9
  83. package/src/components/ui/alert-dialog/AlertDialogAction.vue +14 -12
  84. package/src/components/ui/alert-dialog/AlertDialogCancel.vue +14 -16
  85. package/src/components/ui/alert-dialog/AlertDialogContent.vue +24 -27
  86. package/src/components/ui/alert-dialog/AlertDialogDescription.vue +13 -13
  87. package/src/components/ui/alert-dialog/AlertDialogFooter.vue +9 -12
  88. package/src/components/ui/alert-dialog/AlertDialogHeader.vue +9 -8
  89. package/src/components/ui/alert-dialog/AlertDialogTitle.vue +13 -11
  90. package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +8 -7
  91. package/src/components/ui/alert-dialog/index.ts +9 -9
  92. package/src/components/ui/badge/Badge.vue +11 -12
  93. package/src/components/ui/badge/index.ts +1 -1
  94. package/src/components/ui/breadcrumb/Breadcrumb.vue +9 -12
  95. package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +15 -19
  96. package/src/components/ui/breadcrumb/BreadcrumbItem.vue +10 -12
  97. package/src/components/ui/breadcrumb/BreadcrumbLink.vue +13 -17
  98. package/src/components/ui/breadcrumb/BreadcrumbList.vue +10 -12
  99. package/src/components/ui/breadcrumb/BreadcrumbPage.vue +10 -15
  100. package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +14 -18
  101. package/src/components/ui/breadcrumb/index.ts +7 -7
  102. package/src/components/ui/busy/Busy.vue +36 -29
  103. package/src/components/ui/busy/index.ts +1 -1
  104. package/src/components/ui/button/Button.vue +18 -19
  105. package/src/components/ui/button/index.ts +54 -35
  106. package/src/components/ui/calendar/Calendar.vue +167 -121
  107. package/src/components/ui/calendar/CalendarCell.vue +18 -17
  108. package/src/components/ui/calendar/CalendarCellTrigger.vue +31 -33
  109. package/src/components/ui/calendar/CalendarGrid.vue +14 -17
  110. package/src/components/ui/calendar/CalendarGridBody.vue +9 -11
  111. package/src/components/ui/calendar/CalendarGridHead.vue +10 -12
  112. package/src/components/ui/calendar/CalendarGridRow.vue +14 -16
  113. package/src/components/ui/calendar/CalendarHeadCell.vue +18 -17
  114. package/src/components/ui/calendar/CalendarHeader.vue +18 -17
  115. package/src/components/ui/calendar/CalendarHeading.vue +18 -22
  116. package/src/components/ui/calendar/CalendarNextButton.vue +29 -26
  117. package/src/components/ui/calendar/CalendarPrevButton.vue +29 -26
  118. package/src/components/ui/calendar/index.ts +17 -13
  119. package/src/components/ui/card/Card.vue +21 -13
  120. package/src/components/ui/card/CardAction.vue +12 -7
  121. package/src/components/ui/card/CardContent.vue +8 -7
  122. package/src/components/ui/card/CardDescription.vue +16 -7
  123. package/src/components/ui/card/CardFooter.vue +8 -7
  124. package/src/components/ui/card/CardHeader.vue +12 -7
  125. package/src/components/ui/card/CardText.vue +12 -7
  126. package/src/components/ui/card/CardTitle.vue +9 -7
  127. package/src/components/ui/card/index.ts +8 -8
  128. package/src/components/ui/command/Command.vue +71 -61
  129. package/src/components/ui/command/CommandDialog.vue +33 -23
  130. package/src/components/ui/command/CommandEmpty.vue +19 -20
  131. package/src/components/ui/command/CommandGroup.vue +32 -35
  132. package/src/components/ui/command/CommandInput.vue +25 -21
  133. package/src/components/ui/command/CommandItem.vue +62 -59
  134. package/src/components/ui/command/CommandList.vue +21 -18
  135. package/src/components/ui/command/CommandSeparator.vue +13 -11
  136. package/src/components/ui/command/CommandShortcut.vue +13 -8
  137. package/src/components/ui/command/index.ts +24 -20
  138. package/src/components/ui/date-picker/DatePicker.vue +46 -37
  139. package/src/components/ui/date-picker/index.ts +2 -2
  140. package/src/components/ui/date-time-picker/DateTimePicker.vue +99 -95
  141. package/src/components/ui/date-time-picker/index.ts +2 -2
  142. package/src/components/ui/dialog/Dialog.vue +12 -9
  143. package/src/components/ui/dialog/DialogClose.vue +8 -10
  144. package/src/components/ui/dialog/DialogContent.vue +36 -42
  145. package/src/components/ui/dialog/DialogDescription.vue +16 -11
  146. package/src/components/ui/dialog/DialogFooter.vue +13 -12
  147. package/src/components/ui/dialog/DialogHeader.vue +9 -8
  148. package/src/components/ui/dialog/DialogOverlay.vue +16 -11
  149. package/src/components/ui/dialog/DialogScrollContent.vue +47 -45
  150. package/src/components/ui/dialog/DialogTitle.vue +13 -12
  151. package/src/components/ui/dialog/DialogTrigger.vue +8 -7
  152. package/src/components/ui/dialog/index.ts +10 -10
  153. package/src/components/ui/field/Field.vue +12 -14
  154. package/src/components/ui/field/FieldContent.vue +13 -11
  155. package/src/components/ui/field/FieldDescription.vue +15 -13
  156. package/src/components/ui/field/FieldError.vue +43 -40
  157. package/src/components/ui/field/FieldGroup.vue +13 -11
  158. package/src/components/ui/field/FieldLabel.vue +16 -14
  159. package/src/components/ui/field/FieldLegend.vue +16 -14
  160. package/src/components/ui/field/FieldSeparator.vue +17 -15
  161. package/src/components/ui/field/FieldSet.vue +14 -12
  162. package/src/components/ui/field/FieldTitle.vue +13 -11
  163. package/src/components/ui/field/index.ts +36 -36
  164. package/src/components/ui/input/Input.vue +23 -20
  165. package/src/components/ui/input/index.ts +1 -1
  166. package/src/components/ui/label/Label.vue +16 -15
  167. package/src/components/ui/label/index.ts +1 -1
  168. package/src/components/ui/native-select/NativeSelect.vue +31 -41
  169. package/src/components/ui/native-select/NativeSelectOptGroup.vue +8 -7
  170. package/src/components/ui/native-select/NativeSelectOption.vue +8 -7
  171. package/src/components/ui/native-select/index.ts +3 -3
  172. package/src/components/ui/popover/Popover.vue +12 -9
  173. package/src/components/ui/popover/PopoverAnchor.vue +8 -7
  174. package/src/components/ui/popover/PopoverContent.vue +27 -31
  175. package/src/components/ui/popover/PopoverTrigger.vue +8 -7
  176. package/src/components/ui/popover/index.ts +4 -4
  177. package/src/components/ui/progress/Progress.vue +18 -32
  178. package/src/components/ui/progress/index.ts +1 -1
  179. package/src/components/ui/scroll-area/ScrollArea.vue +23 -26
  180. package/src/components/ui/scroll-area/ScrollBar.vue +22 -26
  181. package/src/components/ui/scroll-area/index.ts +2 -2
  182. package/src/components/ui/select/Select.vue +12 -9
  183. package/src/components/ui/select/SelectContent.vue +39 -40
  184. package/src/components/ui/select/SelectGroup.vue +8 -7
  185. package/src/components/ui/select/SelectItem.vue +36 -41
  186. package/src/components/ui/select/SelectItemContent.vue +22 -15
  187. package/src/components/ui/select/SelectItemText.vue +8 -7
  188. package/src/components/ui/select/SelectLabel.vue +10 -9
  189. package/src/components/ui/select/SelectScrollDownButton.vue +21 -17
  190. package/src/components/ui/select/SelectScrollUpButton.vue +21 -17
  191. package/src/components/ui/select/SelectSeparator.vue +11 -9
  192. package/src/components/ui/select/SelectTrigger.vue +27 -25
  193. package/src/components/ui/select/SelectValue.vue +8 -7
  194. package/src/components/ui/select/SelectValueContent.vue +30 -18
  195. package/src/components/ui/select/index.ts +13 -13
  196. package/src/components/ui/separator/Separator.vue +17 -18
  197. package/src/components/ui/separator/index.ts +1 -1
  198. package/src/components/ui/sheet/Sheet.vue +12 -9
  199. package/src/components/ui/sheet/SheetClose.vue +8 -7
  200. package/src/components/ui/sheet/SheetContent.vue +36 -37
  201. package/src/components/ui/sheet/SheetDescription.vue +12 -11
  202. package/src/components/ui/sheet/SheetFooter.vue +8 -7
  203. package/src/components/ui/sheet/SheetHeader.vue +8 -7
  204. package/src/components/ui/sheet/SheetOverlay.vue +16 -11
  205. package/src/components/ui/sheet/SheetTitle.vue +12 -11
  206. package/src/components/ui/sheet/SheetTrigger.vue +8 -7
  207. package/src/components/ui/sheet/index.ts +8 -8
  208. package/src/components/ui/sidebar/Sidebar.vue +68 -61
  209. package/src/components/ui/sidebar/SidebarContent.vue +13 -8
  210. package/src/components/ui/sidebar/SidebarFooter.vue +13 -8
  211. package/src/components/ui/sidebar/SidebarGroup.vue +13 -8
  212. package/src/components/ui/sidebar/SidebarGroupAction.vue +16 -16
  213. package/src/components/ui/sidebar/SidebarGroupContent.vue +9 -8
  214. package/src/components/ui/sidebar/SidebarGroupLabel.vue +15 -14
  215. package/src/components/ui/sidebar/SidebarHeader.vue +13 -8
  216. package/src/components/ui/sidebar/SidebarInput.vue +14 -12
  217. package/src/components/ui/sidebar/SidebarInset.vue +14 -12
  218. package/src/components/ui/sidebar/SidebarMenu.vue +9 -8
  219. package/src/components/ui/sidebar/SidebarMenuAction.vue +25 -23
  220. package/src/components/ui/sidebar/SidebarMenuBadge.vue +19 -17
  221. package/src/components/ui/sidebar/SidebarMenuButton.vue +33 -32
  222. package/src/components/ui/sidebar/SidebarMenuButtonChild.vue +19 -18
  223. package/src/components/ui/sidebar/SidebarMenuItem.vue +9 -8
  224. package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +17 -12
  225. package/src/components/ui/sidebar/SidebarMenuSub.vue +14 -12
  226. package/src/components/ui/sidebar/SidebarMenuSubButton.vue +24 -21
  227. package/src/components/ui/sidebar/SidebarMenuSubItem.vue +9 -8
  228. package/src/components/ui/sidebar/SidebarProvider.vue +63 -53
  229. package/src/components/ui/sidebar/SidebarRail.vue +20 -18
  230. package/src/components/ui/sidebar/SidebarSeparator.vue +10 -9
  231. package/src/components/ui/sidebar/SidebarTrigger.vue +15 -14
  232. package/src/components/ui/sidebar/index.ts +62 -58
  233. package/src/components/ui/sidebar/utils.ts +16 -16
  234. package/src/components/ui/skeleton/Skeleton.vue +12 -9
  235. package/src/components/ui/skeleton/index.ts +1 -1
  236. package/src/components/ui/slider/Slider.vue +24 -19
  237. package/src/components/ui/slider/index.ts +1 -1
  238. package/src/components/ui/switch/Switch.vue +26 -23
  239. package/src/components/ui/switch/index.ts +1 -1
  240. package/src/components/ui/table/Table.vue +11 -10
  241. package/src/components/ui/table/TableBody.vue +9 -11
  242. package/src/components/ui/table/TableCaption.vue +9 -11
  243. package/src/components/ui/table/TableCell.vue +13 -16
  244. package/src/components/ui/table/TableEmpty.vue +22 -25
  245. package/src/components/ui/table/TableFooter.vue +13 -11
  246. package/src/components/ui/table/TableHead.vue +13 -11
  247. package/src/components/ui/table/TableHeader.vue +9 -11
  248. package/src/components/ui/table/TableRow.vue +13 -11
  249. package/src/components/ui/table/index.ts +9 -9
  250. package/src/components/ui/tabs/Tabs.vue +18 -18
  251. package/src/components/ui/tabs/TabsContent.vue +14 -15
  252. package/src/components/ui/tabs/TabsList.vue +18 -18
  253. package/src/components/ui/tabs/TabsTrigger.vue +19 -20
  254. package/src/components/ui/tabs/index.ts +4 -4
  255. package/src/components/ui/textarea/Textarea.vue +23 -20
  256. package/src/components/ui/textarea/index.ts +1 -1
  257. package/src/components/ui/time-picker/TimePicker.vue +33 -38
  258. package/src/components/ui/time-picker/index.ts +2 -2
  259. package/src/components/ui/tooltip/Tooltip.vue +12 -9
  260. package/src/components/ui/tooltip/TooltipContent.vue +28 -20
  261. package/src/components/ui/tooltip/TooltipProvider.vue +9 -8
  262. package/src/components/ui/tooltip/TooltipTrigger.vue +8 -7
  263. package/src/components/ui/tooltip/index.ts +4 -4
  264. package/src/i18n/de.json +5 -0
  265. package/src/i18n/en.json +5 -0
  266. package/src/i18n/es.json +5 -0
  267. package/src/i18n/fr.json +5 -0
  268. package/src/i18n/it.json +5 -0
  269. package/src/i18n/ja.json +5 -0
  270. package/src/i18n/pt.json +5 -0
  271. package/src/i18n/ru.json +5 -0
  272. package/src/i18n/zh.json +5 -0
  273. package/src/lib/common-types.ts +2 -0
  274. package/src/lib/i18n.ts +0 -5
  275. package/src/runtime/{ui-vintage-i18n-plugin.js → ui-vintage-i18n-plugin.ts} +30 -8
@@ -1,18 +1,20 @@
1
1
  <script setup lang="ts">
2
- import type { AlertDialogActionProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import { AlertDialogAction } from "reka-ui"
6
- import { cn } from "../../../lib/utils"
7
- import { buttonVariants } from '../button'
2
+ import type { AlertDialogActionProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { AlertDialogAction } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
7
+ import { buttonVariants } from '../button';
8
8
 
9
- const props = defineProps<AlertDialogActionProps & { class?: HTMLAttributes["class"] }>()
9
+ // Props
10
+ const props = defineProps<AlertDialogActionProps & { class?: HTMLAttributes['class'] }>();
10
11
 
11
- const delegatedProps = reactiveOmit(props, "class")
12
+ // Omit local class from delegated props
13
+ const delegatedProps = reactiveOmit(props, 'class');
12
14
  </script>
13
15
 
14
16
  <template>
15
- <AlertDialogAction v-bind="delegatedProps" :class="cn(buttonVariants(), props.class)">
16
- <slot />
17
- </AlertDialogAction>
18
- </template>
17
+ <AlertDialogAction v-bind="delegatedProps" :class="cn(buttonVariants(), props.class)">
18
+ <slot />
19
+ </AlertDialogAction>
20
+ </template>
@@ -1,22 +1,20 @@
1
1
  <script setup lang="ts">
2
- import type { AlertDialogCancelProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import { AlertDialogCancel } from "reka-ui"
6
- import { cn } from "../../../lib/utils"
7
- import { buttonVariants } from '../button'
2
+ import type { AlertDialogCancelProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { AlertDialogCancel } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
7
+ import { buttonVariants } from '../button';
8
8
 
9
- const props = defineProps<AlertDialogCancelProps & { class?: HTMLAttributes["class"] }>()
9
+ // Props
10
+ const props = defineProps<AlertDialogCancelProps & { class?: HTMLAttributes['class'] }>();
10
11
 
11
- const delegatedProps = reactiveOmit(props, "class")
12
+ // Omit local class from delegated props
13
+ const delegatedProps = reactiveOmit(props, 'class');
12
14
  </script>
13
15
 
14
16
  <template>
15
- <AlertDialogCancel v-bind="delegatedProps" :class="cn(
16
- buttonVariants({ variant: 'secondary' }),
17
- 'mt-2 sm:mt-0',
18
- props.class,
19
- )">
20
- <slot />
21
- </AlertDialogCancel>
22
- </template>
17
+ <AlertDialogCancel v-bind="delegatedProps" :class="cn(buttonVariants({ variant: 'secondary' }), 'mt-2 sm:mt-0', props.class)">
18
+ <slot />
19
+ </AlertDialogCancel>
20
+ </template>
@@ -1,36 +1,33 @@
1
1
  <script setup lang="ts">
2
- import type { AlertDialogContentEmits, AlertDialogContentProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import {
6
- AlertDialogContent,
7
- AlertDialogOverlay,
8
- AlertDialogPortal,
9
- useForwardPropsEmits,
10
- } from "reka-ui"
11
- import { cn } from "../../../lib/utils"
2
+ import type { AlertDialogContentEmits, AlertDialogContentProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { AlertDialogContent, AlertDialogOverlay, AlertDialogPortal, useForwardPropsEmits } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
12
7
 
8
+ // Keep attrs on the dialog content element
13
9
  defineOptions({
14
- inheritAttrs: false,
15
- })
10
+ inheritAttrs: false
11
+ });
16
12
 
17
- const props = defineProps<AlertDialogContentProps & { class?: HTMLAttributes["class"] }>()
18
- const emits = defineEmits<AlertDialogContentEmits>()
13
+ // Props
14
+ const props = defineProps<AlertDialogContentProps & { class?: HTMLAttributes['class'] }>();
19
15
 
20
- const delegatedProps = reactiveOmit(props, "class")
16
+ // Emits
17
+ const emits = defineEmits<AlertDialogContentEmits>();
21
18
 
22
- const forwarded = useForwardPropsEmits(delegatedProps, emits)
19
+ // Omit local class from delegated props
20
+ const delegatedProps = reactiveOmit(props, 'class');
21
+
22
+ // Forward props and emits
23
+ const forwarded = useForwardPropsEmits(delegatedProps, emits);
23
24
  </script>
24
25
 
25
26
  <template>
26
- <AlertDialogPortal>
27
- <AlertDialogOverlay data-slot="alert-dialog-overlay" class="fixed inset-0 z-50 bg-black/45 backdrop-blur-[2px] transition-[opacity,backdrop-filter] ease-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" />
28
- <AlertDialogContent data-slot="alert-dialog-content" v-bind="{ ...$attrs, ...forwarded }" :class="cn(
29
- 'bg-card text-card-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-[95%] max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-0 overflow-hidden rounded border border-border shadow-2xl duration-200 sm:max-w-lg',
30
- props.class,
31
- )
32
- ">
33
- <slot />
34
- </AlertDialogContent>
35
- </AlertDialogPortal>
36
- </template>
27
+ <AlertDialogPortal>
28
+ <AlertDialogOverlay data-slot="alert-dialog-overlay" class="fixed inset-0 z-50 bg-black/45 backdrop-blur-[2px] transition-[opacity,backdrop-filter] ease-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" />
29
+ <AlertDialogContent data-slot="alert-dialog-content" v-bind="{ ...$attrs, ...forwarded }" :class="cn('bg-card text-card-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-[95%] max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-0 overflow-hidden rounded border border-border shadow-2xl duration-200 sm:max-w-lg', props.class)">
30
+ <slot />
31
+ </AlertDialogContent>
32
+ </AlertDialogPortal>
33
+ </template>
@@ -1,19 +1,19 @@
1
1
  <script setup lang="ts">
2
- import type { AlertDialogDescriptionProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import {
6
- AlertDialogDescription,
7
- } from "reka-ui"
8
- import { cn } from "../../../lib/utils"
2
+ import type { AlertDialogDescriptionProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { AlertDialogDescription } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
9
7
 
10
- const props = defineProps<AlertDialogDescriptionProps & { class?: HTMLAttributes["class"] }>()
8
+ // Props
9
+ const props = defineProps<AlertDialogDescriptionProps & { class?: HTMLAttributes['class'] }>();
11
10
 
12
- const delegatedProps = reactiveOmit(props, "class")
11
+ // Omit local class from delegated props
12
+ const delegatedProps = reactiveOmit(props, 'class');
13
13
  </script>
14
14
 
15
15
  <template>
16
- <AlertDialogDescription data-slot="alert-dialog-description" v-bind="delegatedProps" :class="cn('text-xs leading-6 text-muted-foreground sm:text-sm', props.class)">
17
- <slot />
18
- </AlertDialogDescription>
19
- </template>
16
+ <AlertDialogDescription data-slot="alert-dialog-description" v-bind="delegatedProps" :class="cn('text-xs leading-6 text-muted-foreground sm:text-sm', props.class)">
17
+ <slot />
18
+ </AlertDialogDescription>
19
+ </template>
@@ -1,18 +1,15 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <div data-slot="alert-dialog-footer" :class="cn(
12
- 'flex flex-col-reverse gap-3 border-t border-border px-5 py-4 sm:flex-row-reverse sm:px-6',
13
- props.class,
14
- )
15
- ">
16
- <slot />
17
- </div>
18
- </template>
12
+ <div data-slot="alert-dialog-footer" :class="cn('flex flex-col-reverse gap-3 border-t border-border px-5 py-4 sm:flex-row-reverse sm:px-6', props.class)">
13
+ <slot />
14
+ </div>
15
+ </template>
@@ -1,14 +1,15 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <div data-slot="alert-dialog-header" :class="cn('flex flex-col gap-1.5 text-center sm:text-left', props.class)">
12
- <slot />
13
- </div>
14
- </template>
12
+ <div data-slot="alert-dialog-header" :class="cn('flex flex-col gap-1.5 text-center sm:text-left', props.class)">
13
+ <slot />
14
+ </div>
15
+ </template>
@@ -1,17 +1,19 @@
1
1
  <script setup lang="ts">
2
- import type { AlertDialogTitleProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import { AlertDialogTitle } from "reka-ui"
6
- import { cn } from "../../../lib/utils"
2
+ import type { AlertDialogTitleProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { AlertDialogTitle } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
7
7
 
8
- const props = defineProps<AlertDialogTitleProps & { class?: HTMLAttributes["class"] }>()
8
+ // Props
9
+ const props = defineProps<AlertDialogTitleProps & { class?: HTMLAttributes['class'] }>();
9
10
 
10
- const delegatedProps = reactiveOmit(props, "class")
11
+ // Omit local class from delegated props
12
+ const delegatedProps = reactiveOmit(props, 'class');
11
13
  </script>
12
14
 
13
15
  <template>
14
- <AlertDialogTitle data-slot="alert-dialog-title" v-bind="delegatedProps" :class="cn('text-base font-semibold', props.class)">
15
- <slot />
16
- </AlertDialogTitle>
17
- </template>
16
+ <AlertDialogTitle data-slot="alert-dialog-title" v-bind="delegatedProps" :class="cn('text-base font-semibold', props.class)">
17
+ <slot />
18
+ </AlertDialogTitle>
19
+ </template>
@@ -1,12 +1,13 @@
1
1
  <script setup lang="ts">
2
- import type { AlertDialogTriggerProps } from "reka-ui"
3
- import { AlertDialogTrigger } from "reka-ui"
2
+ import type { AlertDialogTriggerProps } from 'reka-ui';
3
+ import { AlertDialogTrigger } from 'reka-ui';
4
4
 
5
- const props = defineProps<AlertDialogTriggerProps>()
5
+ // Props
6
+ const props = defineProps<AlertDialogTriggerProps>();
6
7
  </script>
7
8
 
8
9
  <template>
9
- <AlertDialogTrigger data-slot="alert-dialog-trigger" v-bind="props">
10
- <slot />
11
- </AlertDialogTrigger>
12
- </template>
10
+ <AlertDialogTrigger data-slot="alert-dialog-trigger" v-bind="props">
11
+ <slot />
12
+ </AlertDialogTrigger>
13
+ </template>
@@ -1,9 +1,9 @@
1
- export { default as AlertDialog } from "./AlertDialog.vue"
2
- export { default as AlertDialogAction } from "./AlertDialogAction.vue"
3
- export { default as AlertDialogCancel } from "./AlertDialogCancel.vue"
4
- export { default as AlertDialogContent } from "./AlertDialogContent.vue"
5
- export { default as AlertDialogDescription } from "./AlertDialogDescription.vue"
6
- export { default as AlertDialogFooter } from "./AlertDialogFooter.vue"
7
- export { default as AlertDialogHeader } from "./AlertDialogHeader.vue"
8
- export { default as AlertDialogTitle } from "./AlertDialogTitle.vue"
9
- export { default as AlertDialogTrigger } from "./AlertDialogTrigger.vue"
1
+ export { default as AlertDialog } from './AlertDialog.vue';
2
+ export { default as AlertDialogAction } from './AlertDialogAction.vue';
3
+ export { default as AlertDialogCancel } from './AlertDialogCancel.vue';
4
+ export { default as AlertDialogContent } from './AlertDialogContent.vue';
5
+ export { default as AlertDialogDescription } from './AlertDialogDescription.vue';
6
+ export { default as AlertDialogFooter } from './AlertDialogFooter.vue';
7
+ export { default as AlertDialogHeader } from './AlertDialogHeader.vue';
8
+ export { default as AlertDialogTitle } from './AlertDialogTitle.vue';
9
+ export { default as AlertDialogTrigger } from './AlertDialogTrigger.vue';
@@ -1,21 +1,20 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { HugeiconsIcon } from "@hugeicons/vue"
4
- import { getSurfaceToneClasses, type ToneColor } from "../../../lib/color-tokens"
5
- import { cn } from "../../../lib/utils"
6
-
7
- type HugeiconsIconDefinition = readonly (readonly [string, { readonly [key: string]: string | number }])[]
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { HugeiconsIcon } from '@hugeicons/vue';
4
+ import { getSurfaceToneClasses, type ToneColor } from '../../../lib/color-tokens';
5
+ import { cn } from '../../../lib/utils';
6
+ import type { HugeiconsIconDefinition } from '../../../lib/common-types';
8
7
 
9
8
  // Props
10
9
  const props = withDefaults(defineProps<{
11
- text: string
12
- icon?: HugeiconsIconDefinition | null
13
- color?: ToneColor
14
- class?: HTMLAttributes["class"]
10
+ text: string;
11
+ icon?: HugeiconsIconDefinition | null;
12
+ color?: ToneColor;
13
+ class?: HTMLAttributes['class'];
15
14
  }>(), {
16
15
  icon: null,
17
- color: "gray"
18
- })
16
+ color: 'gray'
17
+ });
19
18
  </script>
20
19
 
21
20
  <template>
@@ -1 +1 @@
1
- export { default as Badge } from "./Badge.vue"
1
+ export { default as Badge } from './Badge.vue';
@@ -1,17 +1,14 @@
1
- <script lang="ts" setup>
2
- import type { HTMLAttributes } from "vue"
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
3
 
4
+ // Props
4
5
  const props = defineProps<{
5
- class?: HTMLAttributes["class"]
6
- }>()
6
+ class?: HTMLAttributes['class'];
7
+ }>();
7
8
  </script>
8
9
 
9
10
  <template>
10
- <nav
11
- aria-label="breadcrumb"
12
- data-slot="breadcrumb"
13
- :class="props.class"
14
- >
15
- <slot />
16
- </nav>
17
- </template>
11
+ <nav aria-label="breadcrumb" data-slot="breadcrumb" :class="props.class">
12
+ <slot />
13
+ </nav>
14
+ </template>
@@ -1,24 +1,20 @@
1
- <script lang="ts" setup>
2
- import type { HTMLAttributes } from "vue"
3
- import { MoreHorizontalIcon } from "@hugeicons/core-free-icons"
4
- import { HugeiconsIcon } from "@hugeicons/vue"
5
- import { cn } from "../../../lib/utils"
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { MoreHorizontalIcon } from '@hugeicons/core-free-icons';
4
+ import { HugeiconsIcon } from '@hugeicons/vue';
5
+ import { cn } from '../../../lib/utils';
6
6
 
7
+ // Props
7
8
  const props = defineProps<{
8
- class?: HTMLAttributes["class"]
9
- }>()
9
+ class?: HTMLAttributes['class'];
10
+ }>();
10
11
  </script>
11
12
 
12
13
  <template>
13
- <span
14
- data-slot="breadcrumb-ellipsis"
15
- role="presentation"
16
- aria-hidden="true"
17
- :class="cn('flex size-9 items-center justify-center', props.class)"
18
- >
19
- <slot>
20
- <HugeiconsIcon :icon="MoreHorizontalIcon" class="size-4" />
21
- </slot>
22
- <span class="sr-only">More</span>
23
- </span>
24
- </template>
14
+ <span data-slot="breadcrumb-ellipsis" role="presentation" aria-hidden="true" :class="cn('flex size-9 items-center justify-center', props.class)">
15
+ <slot>
16
+ <HugeiconsIcon :icon="MoreHorizontalIcon" class="size-4" />
17
+ </slot>
18
+ <span class="sr-only">More</span>
19
+ </span>
20
+ </template>
@@ -1,17 +1,15 @@
1
- <script lang="ts" setup>
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <li
12
- data-slot="breadcrumb-item"
13
- :class="cn('inline-flex items-center gap-1.5', props.class)"
14
- >
15
- <slot />
16
- </li>
17
- </template>
12
+ <li data-slot="breadcrumb-item" :class="cn('inline-flex items-center gap-1.5', props.class)">
13
+ <slot />
14
+ </li>
15
+ </template>
@@ -1,21 +1,17 @@
1
- <script lang="ts" setup>
2
- import type { PrimitiveProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { Primitive } from "reka-ui"
5
- import { cn } from "../../../lib/utils"
1
+ <script setup lang="ts">
2
+ import type { PrimitiveProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { Primitive } from 'reka-ui';
5
+ import { cn } from '../../../lib/utils';
6
6
 
7
- const props = withDefaults(defineProps<PrimitiveProps & { class?: HTMLAttributes["class"] }>(), {
8
- as: "a",
9
- })
7
+ // Props
8
+ const props = withDefaults(defineProps<PrimitiveProps & { class?: HTMLAttributes['class'] }>(), {
9
+ as: 'a'
10
+ });
10
11
  </script>
11
12
 
12
13
  <template>
13
- <Primitive
14
- data-slot="breadcrumb-link"
15
- :as="as"
16
- :as-child="asChild"
17
- :class="cn('text-muted-foreground hover:underline', props.class)"
18
- >
19
- <slot />
20
- </Primitive>
21
- </template>
14
+ <Primitive data-slot="breadcrumb-link" :as="as" :as-child="asChild" :class="cn('text-muted-foreground hover:underline', props.class)">
15
+ <slot />
16
+ </Primitive>
17
+ </template>
@@ -1,17 +1,15 @@
1
- <script lang="ts" setup>
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <ol
12
- data-slot="breadcrumb-list"
13
- :class="cn('text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5', props.class)"
14
- >
15
- <slot />
16
- </ol>
17
- </template>
12
+ <ol data-slot="breadcrumb-list" :class="cn('text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm wrap-break-word sm:gap-2.5', props.class)">
13
+ <slot />
14
+ </ol>
15
+ </template>
@@ -1,20 +1,15 @@
1
- <script lang="ts" setup>
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <span
12
- data-slot="breadcrumb-page"
13
- role="link"
14
- aria-disabled="true"
15
- aria-current="page"
16
- :class="cn('text-foreground font-normal', props.class)"
17
- >
18
- <slot />
19
- </span>
20
- </template>
12
+ <span data-slot="breadcrumb-page" role="link" aria-disabled="true" aria-current="page" :class="cn('text-foreground font-normal', props.class)">
13
+ <slot />
14
+ </span>
15
+ </template>
@@ -1,23 +1,19 @@
1
- <script lang="ts" setup>
2
- import type { HTMLAttributes } from "vue"
3
- import { ArrowRight01Icon } from "@hugeicons/core-free-icons"
4
- import { HugeiconsIcon } from "@hugeicons/vue"
5
- import { cn } from "../../../lib/utils"
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { ArrowRight01Icon } from '@hugeicons/core-free-icons';
4
+ import { HugeiconsIcon } from '@hugeicons/vue';
5
+ import { cn } from '../../../lib/utils';
6
6
 
7
+ // Props
7
8
  const props = defineProps<{
8
- class?: HTMLAttributes["class"]
9
- }>()
9
+ class?: HTMLAttributes['class'];
10
+ }>();
10
11
  </script>
11
12
 
12
13
  <template>
13
- <li
14
- data-slot="breadcrumb-separator"
15
- role="presentation"
16
- aria-hidden="true"
17
- :class="cn('[&>svg]:size-3.5', props.class)"
18
- >
19
- <slot>
20
- <HugeiconsIcon :icon="ArrowRight01Icon" class="size-3.5" />
21
- </slot>
22
- </li>
23
- </template>
14
+ <li data-slot="breadcrumb-separator" role="presentation" aria-hidden="true" :class="cn('[&>svg]:size-3.5', props.class)">
15
+ <slot>
16
+ <HugeiconsIcon :icon="ArrowRight01Icon" class="size-3.5" />
17
+ </slot>
18
+ </li>
19
+ </template>
@@ -1,7 +1,7 @@
1
- export { default as Breadcrumb } from "./Breadcrumb.vue"
2
- export { default as BreadcrumbEllipsis } from "./BreadcrumbEllipsis.vue"
3
- export { default as BreadcrumbItem } from "./BreadcrumbItem.vue"
4
- export { default as BreadcrumbLink } from "./BreadcrumbLink.vue"
5
- export { default as BreadcrumbList } from "./BreadcrumbList.vue"
6
- export { default as BreadcrumbPage } from "./BreadcrumbPage.vue"
7
- export { default as BreadcrumbSeparator } from "./BreadcrumbSeparator.vue"
1
+ export { default as Breadcrumb } from './Breadcrumb.vue';
2
+ export { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.vue';
3
+ export { default as BreadcrumbItem } from './BreadcrumbItem.vue';
4
+ export { default as BreadcrumbLink } from './BreadcrumbLink.vue';
5
+ export { default as BreadcrumbList } from './BreadcrumbList.vue';
6
+ export { default as BreadcrumbPage } from './BreadcrumbPage.vue';
7
+ export { default as BreadcrumbSeparator } from './BreadcrumbSeparator.vue';