@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,76 +1,79 @@
1
1
  <script setup lang="ts">
2
- import type { ListboxItemEmits, ListboxItemProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit, useCurrentElement } from "@vueuse/core"
5
- import { ListboxItem, useForwardPropsEmits, useId } from "reka-ui"
6
- import { computed, onMounted, onUnmounted, ref } from "vue"
7
- import { cn } from "../../../lib/utils"
8
- import { useCommand, useCommandGroup } from "."
2
+ import type { ListboxItemEmits, ListboxItemProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit, useCurrentElement } from '@vueuse/core';
5
+ import { ListboxItem, useForwardPropsEmits, useId } from 'reka-ui';
6
+ import { computed, onMounted, onUnmounted, ref } from 'vue';
7
+ import { cn } from '../../../lib/utils';
8
+ import { useCommand, useCommandGroup } from '.';
9
9
 
10
- const props = defineProps<ListboxItemProps & { class?: HTMLAttributes["class"] }>()
11
- const emits = defineEmits<ListboxItemEmits>()
10
+ // Props
11
+ const props = defineProps<ListboxItemProps & { class?: HTMLAttributes['class'] }>();
12
12
 
13
- const delegatedProps = reactiveOmit(props, "class")
13
+ // Emits
14
+ const emits = defineEmits<ListboxItemEmits>();
14
15
 
15
- const forwarded = useForwardPropsEmits(delegatedProps, emits)
16
+ // Omit local class from delegated props
17
+ const delegatedProps = reactiveOmit(props, 'class');
16
18
 
17
- const id = useId()
18
- const { filterState, allItems, allGroups } = useCommand()
19
- const groupContext = useCommandGroup()
19
+ // Forward props
20
+ const forwarded = useForwardPropsEmits(delegatedProps, emits);
21
+
22
+ const id = useId();
23
+ const { filterState, allItems, allGroups } = useCommand();
24
+ const groupContext = useCommandGroup();
20
25
 
21
26
  const isRender = computed(() => {
22
- if (!filterState.search) {
23
- return true
24
- }
25
- else {
26
- const filteredCurrentItem = filterState.filtered.items.get(id)
27
- // If the filtered items is undefined means not in the all times map yet
28
- // Do the first render to add into the map
29
- if (filteredCurrentItem === undefined) {
30
- return true
31
- }
27
+ if (!filterState.search) {
28
+ return true;
29
+ } else {
30
+ const filteredCurrentItem = filterState.filtered.items.get(id);
31
+ // If the filtered items is undefined means not in the all times map yet
32
+ // Do the first render to add into the map
33
+ if (filteredCurrentItem === undefined) {
34
+ return true;
35
+ }
32
36
 
33
- // Check with filter
34
- return filteredCurrentItem > 0
35
- }
36
- })
37
+ // Check with filter
38
+ return filteredCurrentItem > 0;
39
+ }
40
+ });
37
41
 
38
- const itemRef = ref()
39
- const currentElement = useCurrentElement(itemRef)
42
+ const itemRef = ref();
43
+ const currentElement = useCurrentElement(itemRef);
40
44
  onMounted(() => {
41
- if (!(currentElement.value instanceof HTMLElement))
42
- return
45
+ if (!(currentElement.value instanceof HTMLElement)) return;
43
46
 
44
- // textValue to perform filter
45
- allItems.value.set(id, currentElement.value.textContent ?? (props.value?.toString() ?? ""))
47
+ // textValue to perform filter
48
+ allItems.value.set(
49
+ id,
50
+ currentElement.value.textContent ?? props.value?.toString() ?? '',
51
+ );
46
52
 
47
- const groupId = groupContext?.id
48
- if (groupId) {
49
- if (!allGroups.value.has(groupId)) {
50
- allGroups.value.set(groupId, new Set([id]))
51
- }
52
- else {
53
- allGroups.value.get(groupId)?.add(id)
53
+ const groupId = groupContext?.id;
54
+ if (groupId) {
55
+ if (!allGroups.value.has(groupId)) {
56
+ allGroups.value.set(groupId, new Set([id]));
57
+ } else {
58
+ allGroups.value.get(groupId)?.add(id);
59
+ }
54
60
  }
55
- }
56
- })
61
+ });
57
62
  onUnmounted(() => {
58
- allItems.value.delete(id)
59
- })
63
+ allItems.value.delete(id);
64
+ });
60
65
  </script>
61
66
 
62
67
  <template>
63
- <ListboxItem
64
- v-if="isRender"
65
- v-bind="forwarded"
66
- :id="id"
67
- ref="itemRef"
68
- data-slot="command-item"
69
- :class="cn('relative flex cursor-pointer items-center gap-3 rounded px-3 py-2 text-left text-sm font-semibold text-(--text-secondary-light) outline-hidden transition-colors duration-200 select-none data-[highlighted]:bg-(--bg-selected-light) data-[highlighted]:text-(--text-primary-light) data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:text-(--text-secondary-dark) dark:data-[highlighted]:bg-(--bg-selected-dark) dark:data-[highlighted]:text-(--text-primary-dark) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4 [&_svg:not([class*=\'text-\'])]:text-current', props.class)"
70
- @select="() => {
71
- filterState.search = ''
72
- }"
73
- >
74
- <slot />
75
- </ListboxItem>
76
- </template>
68
+ <ListboxItem v-if="isRender" v-bind="forwarded" :id="id" ref="itemRef" data-slot="command-item" :class="cn(
69
+ 'relative flex cursor-pointer items-center gap-3 rounded px-3 py-2 text-left text-sm font-semibold text-(--text-secondary-light) outline-hidden transition-colors duration-200 select-none data-highlighted:bg-(--bg-selected-light) data-highlighted:text-(--text-primary-light) data-disabled:pointer-events-none data-disabled:opacity-50 dark:text-(--text-secondary-dark) dark:data-highlighted:bg-(--bg-selected-dark) dark:data-highlighted:text-(--text-primary-dark) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4 [&_svg:not([class*=\'text-\'])]:text-current',
70
+ props.class,
71
+ )
72
+ " @select="
73
+ () => {
74
+ filterState.search = '';
75
+ }
76
+ ">
77
+ <slot />
78
+ </ListboxItem>
79
+ </template>
@@ -1,25 +1,28 @@
1
1
  <script setup lang="ts">
2
- import type { ListboxContentProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import { ListboxContent, useForwardProps } from "reka-ui"
6
- import { cn } from "../../../lib/utils"
2
+ import type { ListboxContentProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { ListboxContent, useForwardProps } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
7
7
 
8
- const props = defineProps<ListboxContentProps & { class?: HTMLAttributes["class"] }>()
8
+ // Props
9
+ const props = defineProps<ListboxContentProps & { 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
 
12
- const forwarded = useForwardProps(delegatedProps)
14
+ // Forward props
15
+ const forwarded = useForwardProps(delegatedProps);
13
16
  </script>
14
17
 
15
18
  <template>
16
- <ListboxContent
17
- data-slot="command-list"
18
- v-bind="forwarded"
19
- :class="cn('max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto', props.class)"
20
- >
21
- <div role="presentation">
22
- <slot />
23
- </div>
24
- </ListboxContent>
25
- </template>
19
+ <ListboxContent data-slot="command-list" v-bind="forwarded" :class="cn(
20
+ 'max-h-75 scroll-py-1 overflow-x-hidden overflow-y-auto',
21
+ props.class,
22
+ )
23
+ ">
24
+ <div role="presentation">
25
+ <slot />
26
+ </div>
27
+ </ListboxContent>
28
+ </template>
@@ -1,17 +1,19 @@
1
1
  <script setup lang="ts">
2
- import type { SeparatorProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import { Separator } from "reka-ui"
6
- import { cn } from "../../../lib/utils"
2
+ import type { SeparatorProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import { Separator } from 'reka-ui';
6
+ import { cn } from '../../../lib/utils';
7
7
 
8
- const props = defineProps<SeparatorProps & { class?: HTMLAttributes["class"] }>()
8
+ // Props
9
+ const props = defineProps<SeparatorProps & { 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
- <Separator data-slot="command-separator" v-bind="delegatedProps" :class="cn('bg-border -mx-1 h-px', props.class)">
15
- <slot />
16
- </Separator>
17
- </template>
16
+ <Separator data-slot="command-separator" v-bind="delegatedProps" :class="cn('bg-border -mx-1 h-px', props.class)">
17
+ <slot />
18
+ </Separator>
19
+ </template>
@@ -1,14 +1,19 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from "vue"
3
- import { cn } from "../../../lib/utils"
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { cn } from '../../../lib/utils';
4
4
 
5
+ // Props
5
6
  const props = defineProps<{
6
- class?: HTMLAttributes["class"]
7
- }>()
7
+ class?: HTMLAttributes['class'];
8
+ }>();
8
9
  </script>
9
10
 
10
11
  <template>
11
- <span data-slot="command-shortcut" :class="cn('text-muted-foreground ml-auto text-xs tracking-widest', props.class)">
12
- <slot />
13
- </span>
14
- </template>
12
+ <span data-slot="command-shortcut" :class="cn(
13
+ 'text-muted-foreground ml-auto text-xs tracking-widest',
14
+ props.class,
15
+ )
16
+ ">
17
+ <slot />
18
+ </span>
19
+ </template>
@@ -1,25 +1,29 @@
1
- import type { Ref } from "vue"
2
- import { createContext } from "reka-ui"
1
+ import type { Ref } from 'vue';
2
+ import { createContext } from 'reka-ui';
3
3
 
4
- export { default as Command } from "./Command.vue"
5
- export { default as CommandDialog } from "./CommandDialog.vue"
6
- export { default as CommandEmpty } from "./CommandEmpty.vue"
7
- export { default as CommandGroup } from "./CommandGroup.vue"
8
- export { default as CommandInput } from "./CommandInput.vue"
9
- export { default as CommandItem } from "./CommandItem.vue"
10
- export { default as CommandList } from "./CommandList.vue"
11
- export { default as CommandSeparator } from "./CommandSeparator.vue"
12
- export { default as CommandShortcut } from "./CommandShortcut.vue"
4
+ export { default as Command } from './Command.vue';
5
+ export { default as CommandDialog } from './CommandDialog.vue';
6
+ export { default as CommandEmpty } from './CommandEmpty.vue';
7
+ export { default as CommandGroup } from './CommandGroup.vue';
8
+ export { default as CommandInput } from './CommandInput.vue';
9
+ export { default as CommandItem } from './CommandItem.vue';
10
+ export { default as CommandList } from './CommandList.vue';
11
+ export { default as CommandSeparator } from './CommandSeparator.vue';
12
+ export { default as CommandShortcut } from './CommandShortcut.vue';
13
13
 
14
14
  export const [useCommand, provideCommandContext] = createContext<{
15
- allItems: Ref<Map<string, string>>
16
- allGroups: Ref<Map<string, Set<string>>>
17
- filterState: {
18
- search: string
19
- filtered: { count: number, items: Map<string, number>, groups: Set<string> }
20
- }
21
- }>("Command")
15
+ allItems: Ref<Map<string, string>>;
16
+ allGroups: Ref<Map<string, Set<string>>>;
17
+ filterState: {
18
+ search: string;
19
+ filtered: {
20
+ count: number;
21
+ items: Map<string, number>;
22
+ groups: Set<string>;
23
+ };
24
+ };
25
+ }>('Command');
22
26
 
23
27
  export const [useCommandGroup, provideCommandGroupContext] = createContext<{
24
- id?: string
25
- }>("CommandGroup")
28
+ id?: string;
29
+ }>('CommandGroup');
@@ -1,63 +1,72 @@
1
1
  <script setup lang="ts">
2
- import type { HTMLAttributes } from 'vue'
3
- import { DateFormatter, getLocalTimeZone, today } from '@internationalized/date'
4
- import { Calendar03Icon } from '@hugeicons/core-free-icons'
5
- import { HugeiconsIcon } from '@hugeicons/vue'
6
- import type { DateValue } from 'reka-ui'
7
- import { computed, ref } from 'vue'
8
- import { cn } from '../../../lib/utils'
9
- import { Button } from '../button'
10
- import { Calendar } from '../calendar'
11
- import {
12
- Popover,
13
- PopoverContent,
14
- PopoverTrigger,
15
- } from '../popover'
2
+ import type { HTMLAttributes } from 'vue';
3
+ import { DateFormatter, getLocalTimeZone, today, } from '@internationalized/date';
4
+ import { Calendar03Icon } from '@hugeicons/core-free-icons';
5
+ import { HugeiconsIcon } from '@hugeicons/vue';
6
+ import type { DateValue } from 'reka-ui';
7
+ import { computed, ref } from 'vue';
8
+ import { cn } from '../../../lib/utils';
9
+ import { Button } from '../button';
10
+ import { Calendar } from '../calendar';
11
+ import { Popover, PopoverContent, PopoverTrigger } from '../popover';
16
12
 
13
+ // Props
17
14
  const props = withDefaults(defineProps<{
18
- defaultValue?: DateValue
19
- modelValue?: DateValue
20
- minValue?: DateValue
21
- maxValue?: DateValue
22
- placeholder?: string
23
- disabled?: boolean
24
- class?: HTMLAttributes['class']
25
- contentClass?: HTMLAttributes['class']
15
+ defaultValue?: DateValue;
16
+ modelValue?: DateValue;
17
+ minValue?: DateValue;
18
+ maxValue?: DateValue;
19
+ placeholder?: string;
20
+ disabled?: boolean;
21
+ class?: HTMLAttributes['class'];
22
+ contentClass?: HTMLAttributes['class'];
26
23
  }>(), {
27
24
  placeholder: 'Pick a date',
28
- disabled: false,
29
- })
25
+ disabled: false
26
+ });
30
27
 
28
+ // Emits
31
29
  const emits = defineEmits<{
32
- (e: 'update:modelValue', payload: DateValue | undefined): void
33
- }>()
30
+ (e: 'update:modelValue', payload: DateValue | undefined): void;
31
+ }>();
34
32
 
35
- const internalDate = ref<DateValue | undefined>(props.defaultValue)
36
- const isControlled = computed(() => props.modelValue !== undefined)
33
+ const internalDate = ref<DateValue | undefined>(props.defaultValue);
34
+ const isControlled = computed(() => props.modelValue !== undefined);
37
35
 
38
36
  const date = computed({
39
- get: () => (isControlled.value ? props.modelValue : internalDate.value) as any,
37
+ get: () =>
38
+ (isControlled.value ? props.modelValue : internalDate.value) as any,
40
39
  set: (value: DateValue | undefined) => {
41
- if (!isControlled.value)
42
- internalDate.value = value
40
+ if (!isControlled.value) internalDate.value = value;
43
41
 
44
- emits('update:modelValue', value)
42
+ emits('update:modelValue', value);
45
43
  },
46
- })
44
+ });
47
45
 
48
- const defaultPlaceholder = computed(() => (date.value ?? today(getLocalTimeZone())) as any)
46
+ const defaultPlaceholder = computed(
47
+ () => (date.value ?? today(getLocalTimeZone())) as any,
48
+ );
49
49
 
50
50
  const formatter = new DateFormatter('en-US', {
51
51
  dateStyle: 'long',
52
- })
52
+ });
53
53
  </script>
54
54
 
55
55
  <template>
56
56
  <Popover v-slot="{ close }">
57
57
  <PopoverTrigger as-child>
58
- <Button variant="secondary" :disabled="disabled" :class="cn('h-[52px] w-[240px] justify-start text-left font-normal enabled:active:scale-100', !date && 'text-muted-foreground', props.class)">
58
+ <Button variant="secondary" :disabled="disabled" :class="cn(
59
+ 'h-13 w-60 justify-start text-left font-normal enabled:active:scale-100',
60
+ !date && 'text-muted-foreground',
61
+ props.class,
62
+ )
63
+ ">
59
64
  <HugeiconsIcon :icon="Calendar03Icon" class="size-4" />
60
- {{ date ? formatter.format(date.toDate(getLocalTimeZone())) : placeholder }}
65
+ {{
66
+ date
67
+ ? formatter.format(date.toDate(getLocalTimeZone()))
68
+ : placeholder
69
+ }}
61
70
  </Button>
62
71
  </PopoverTrigger>
63
72
  <PopoverContent :class="cn('w-auto p-0', props.contentClass)" align="start">
@@ -1,2 +1,2 @@
1
- export { default as DatePicker } from './DatePicker.vue'
2
- export { default } from './DatePicker.vue'
1
+ export { default as DatePicker } from './DatePicker.vue';
2
+ export { default } from './DatePicker.vue';