arvue-ui 0.5.0 → 0.7.0

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 (156) hide show
  1. package/dist/all.css +1 -1
  2. package/dist/aspect-ratio/aspectRatio.js +24 -0
  3. package/dist/aspect-ratio/aspectRatio.js.map +1 -0
  4. package/dist/autocomplete/autocomplete.js +1 -1
  5. package/dist/autocomplete/autocompleteContent.js +38 -13
  6. package/dist/autocomplete/autocompleteContent.js.map +1 -1
  7. package/dist/autocomplete/autocompleteEmpty.js +1 -1
  8. package/dist/autocomplete/autocompleteInput.js +1 -1
  9. package/dist/autocomplete/autocompleteItem.js +3 -1
  10. package/dist/autocomplete/autocompleteItem.js.map +1 -1
  11. package/dist/autocomplete/autocompleteLabel.js +1 -1
  12. package/dist/autocomplete/autocompleteSeparator.js +1 -1
  13. package/dist/combobox/combobox.js +1 -1
  14. package/dist/combobox/comboboxContent.js +38 -13
  15. package/dist/combobox/comboboxContent.js.map +1 -1
  16. package/dist/combobox/comboboxEmpty.js +1 -1
  17. package/dist/combobox/comboboxInput.js +1 -1
  18. package/dist/combobox/comboboxItem.js +3 -1
  19. package/dist/combobox/comboboxItem.js.map +1 -1
  20. package/dist/combobox/comboboxLabel.js +1 -1
  21. package/dist/combobox/comboboxSeparator.js +1 -1
  22. package/dist/dialog/dialogContent.js +1 -1
  23. package/dist/dialog/dialogDescription.js +1 -1
  24. package/dist/dialog/dialogFooter.js +1 -1
  25. package/dist/dialog/dialogHeader.js +1 -1
  26. package/dist/dialog/dialogOverlay.js +1 -1
  27. package/dist/dialog/dialogTitle.js +1 -1
  28. package/dist/drawer/drawerContent.js +1 -1
  29. package/dist/drawer/drawerDescription.js +1 -1
  30. package/dist/drawer/drawerFooter.js +1 -1
  31. package/dist/drawer/drawerHeader.js +1 -1
  32. package/dist/drawer/drawerOverlay.js +1 -1
  33. package/dist/drawer/drawerTitle.js +1 -1
  34. package/dist/dropdown-menu/dropdownMenu.js +26 -0
  35. package/dist/dropdown-menu/dropdownMenu.js.map +1 -0
  36. package/dist/dropdown-menu/dropdownMenuCheckboxItem.js +42 -0
  37. package/dist/dropdown-menu/dropdownMenuCheckboxItem.js.map +1 -0
  38. package/dist/dropdown-menu/dropdownMenuContent.js +92 -0
  39. package/dist/dropdown-menu/dropdownMenuContent.js.map +1 -0
  40. package/dist/{autocomplete/autocompleteArrow.js → dropdown-menu/dropdownMenuGroup.js} +5 -8
  41. package/dist/dropdown-menu/dropdownMenuGroup.js.map +1 -0
  42. package/dist/dropdown-menu/dropdownMenuItem.js +36 -0
  43. package/dist/dropdown-menu/dropdownMenuItem.js.map +1 -0
  44. package/dist/dropdown-menu/dropdownMenuLabel.js +34 -0
  45. package/dist/dropdown-menu/dropdownMenuLabel.js.map +1 -0
  46. package/dist/dropdown-menu/dropdownMenuPortal.js +25 -0
  47. package/dist/dropdown-menu/dropdownMenuPortal.js.map +1 -0
  48. package/dist/dropdown-menu/dropdownMenuRadioGroup.js +25 -0
  49. package/dist/dropdown-menu/dropdownMenuRadioGroup.js.map +1 -0
  50. package/dist/dropdown-menu/dropdownMenuRadioItem.js +42 -0
  51. package/dist/dropdown-menu/dropdownMenuRadioItem.js.map +1 -0
  52. package/dist/dropdown-menu/dropdownMenuSeparator.js +30 -0
  53. package/dist/dropdown-menu/dropdownMenuSeparator.js.map +1 -0
  54. package/dist/dropdown-menu/dropdownMenuShortcut.js +33 -0
  55. package/dist/dropdown-menu/dropdownMenuShortcut.js.map +1 -0
  56. package/dist/dropdown-menu/dropdownMenuSub.js +24 -0
  57. package/dist/dropdown-menu/dropdownMenuSub.js.map +1 -0
  58. package/dist/dropdown-menu/dropdownMenuSubContent.js +92 -0
  59. package/dist/dropdown-menu/dropdownMenuSubContent.js.map +1 -0
  60. package/dist/dropdown-menu/dropdownMenuSubTrigger.js +36 -0
  61. package/dist/dropdown-menu/dropdownMenuSubTrigger.js.map +1 -0
  62. package/dist/dropdown-menu/dropdownMenuTrigger.js +24 -0
  63. package/dist/dropdown-menu/dropdownMenuTrigger.js.map +1 -0
  64. package/dist/index.d.ts +579 -163
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +40 -14
  67. package/dist/index.js.map +1 -1
  68. package/dist/select/select.js +37 -0
  69. package/dist/select/select.js.map +1 -0
  70. package/dist/select/selectContent.js +101 -0
  71. package/dist/select/selectContent.js.map +1 -0
  72. package/dist/select/selectGroup.js +23 -0
  73. package/dist/select/selectGroup.js.map +1 -0
  74. package/dist/select/selectItem.js +43 -0
  75. package/dist/select/selectItem.js.map +1 -0
  76. package/dist/select/selectItemText.js +23 -0
  77. package/dist/select/selectItemText.js.map +1 -0
  78. package/dist/select/selectLabel.js +34 -0
  79. package/dist/select/selectLabel.js.map +1 -0
  80. package/dist/select/selectRootPatch.js +24 -0
  81. package/dist/select/selectRootPatch.js.map +1 -0
  82. package/dist/select/selectScrollDownButton.js +33 -0
  83. package/dist/select/selectScrollDownButton.js.map +1 -0
  84. package/dist/select/selectScrollUpButton.js +33 -0
  85. package/dist/select/selectScrollUpButton.js.map +1 -0
  86. package/dist/select/selectSeparator.js +30 -0
  87. package/dist/select/selectSeparator.js.map +1 -0
  88. package/dist/select/selectTrigger.js +41 -0
  89. package/dist/select/selectTrigger.js.map +1 -0
  90. package/dist/select/selectValue.js +34 -0
  91. package/dist/select/selectValue.js.map +1 -0
  92. package/dist/sheet/sheetContent.js +1 -1
  93. package/dist/sheet/sheetFooter.js +1 -1
  94. package/dist/sheet/sheetHeader.js +1 -1
  95. package/dist/style.css +34 -0
  96. package/package.json +1 -1
  97. package/src/aspect-ratio/AspectRatio.vue +20 -0
  98. package/src/aspect-ratio/index.ts +4 -0
  99. package/src/autocomplete/AutocompleteContent.vue +38 -10
  100. package/src/autocomplete/AutocompleteItem.vue +4 -1
  101. package/src/autocomplete/autocomplete-content.css +5 -6
  102. package/src/autocomplete/autocomplete-label.css +4 -3
  103. package/src/autocomplete/index.ts +0 -4
  104. package/src/combobox/ComboboxContent.vue +38 -10
  105. package/src/combobox/ComboboxItem.vue +4 -1
  106. package/src/combobox/combobox-content.css +5 -6
  107. package/src/combobox/combobox-label.css +4 -3
  108. package/src/dropdown-menu/DropdownMenu.vue +24 -0
  109. package/src/dropdown-menu/DropdownMenuCheckboxItem.vue +47 -0
  110. package/src/dropdown-menu/DropdownMenuContent.vue +75 -0
  111. package/src/dropdown-menu/DropdownMenuGroup.vue +17 -0
  112. package/src/dropdown-menu/DropdownMenuItem.vue +38 -0
  113. package/src/dropdown-menu/DropdownMenuLabel.vue +37 -0
  114. package/src/dropdown-menu/DropdownMenuPortal.vue +17 -0
  115. package/src/dropdown-menu/DropdownMenuRadioGroup.vue +27 -0
  116. package/src/dropdown-menu/DropdownMenuRadioItem.vue +48 -0
  117. package/src/dropdown-menu/DropdownMenuSeparator.vue +29 -0
  118. package/src/dropdown-menu/DropdownMenuShortcut.vue +33 -0
  119. package/src/dropdown-menu/DropdownMenuSub.vue +31 -0
  120. package/src/dropdown-menu/DropdownMenuSubContent.vue +74 -0
  121. package/src/dropdown-menu/DropdownMenuSubTrigger.vue +41 -0
  122. package/src/dropdown-menu/DropdownMenuTrigger.vue +19 -0
  123. package/src/dropdown-menu/dropdown-menu-checkbox-item.css +33 -0
  124. package/src/dropdown-menu/dropdown-menu-content.css +9 -0
  125. package/src/dropdown-menu/dropdown-menu-item.css +27 -0
  126. package/src/dropdown-menu/dropdown-menu-label.css +12 -0
  127. package/src/dropdown-menu/dropdown-menu-radio-item.css +33 -0
  128. package/src/dropdown-menu/dropdown-menu-separator.css +5 -0
  129. package/src/dropdown-menu/dropdown-menu-shortcut.css +7 -0
  130. package/src/dropdown-menu/dropdown-menu-sub-content.css +8 -0
  131. package/src/dropdown-menu/dropdown-menu-sub-trigger.css +33 -0
  132. package/src/dropdown-menu/index.ts +66 -0
  133. package/src/index.ts +3 -0
  134. package/src/select/Select.vue +27 -0
  135. package/src/select/SelectContent.vue +77 -0
  136. package/src/select/SelectGroup.vue +17 -0
  137. package/src/select/SelectItem.vue +46 -0
  138. package/src/select/SelectItemText.vue +17 -0
  139. package/src/select/SelectLabel.vue +31 -0
  140. package/src/select/SelectRootPatch.vue +24 -0
  141. package/src/select/SelectScrollDownButton.vue +33 -0
  142. package/src/select/SelectScrollUpButton.vue +33 -0
  143. package/src/select/SelectSeparator.vue +29 -0
  144. package/src/select/SelectTrigger.vue +40 -0
  145. package/src/select/SelectValue.vue +33 -0
  146. package/src/select/index.ts +46 -0
  147. package/src/select/select-content.css +16 -0
  148. package/src/select/select-item.css +39 -0
  149. package/src/select/select-label.css +7 -0
  150. package/src/select/select-scroll-button.css +8 -0
  151. package/src/select/select-separator.css +5 -0
  152. package/src/select/select-trigger.css +71 -0
  153. package/src/select/select-value.css +6 -0
  154. package/src/sonner/sonner.css +0 -1
  155. package/dist/autocomplete/autocompleteArrow.js.map +0 -1
  156. package/src/autocomplete/AutocompleteArrow.vue +0 -17
@@ -3,15 +3,37 @@
3
3
  </style>
4
4
 
5
5
  <template>
6
- <ComboboxContent
7
- v-bind="{ ...$attrs, ...forwarded }"
8
- :class="clsx('arvue-combobox-content', props.class)"
9
- position="popper"
10
- >
11
- <ComboboxViewport>
12
- <slot/>
13
- </ComboboxViewport>
14
- </ComboboxContent>
6
+ <AnimatePresence>
7
+ <ComboboxContent
8
+ v-bind="{ ...$attrs, ...forwarded }"
9
+ :class="clsx('arvue-combobox-content', props.class)"
10
+ position="popper"
11
+ as-child
12
+ >
13
+ <Motion
14
+ :initial="{
15
+ y: '-5px',
16
+ opacity: 0,
17
+ }"
18
+ :animate="{
19
+ y: 0,
20
+ opacity: 1,
21
+ }"
22
+ :exit="{
23
+ y: '-5px',
24
+ opacity: 0,
25
+ }"
26
+ :transition="{
27
+ duration: .15,
28
+ ease: 'easeInOut',
29
+ }"
30
+ >
31
+ <ComboboxViewport>
32
+ <slot/>
33
+ </ComboboxViewport>
34
+ </Motion>
35
+ </ComboboxContent>
36
+ </AnimatePresence>
15
37
  </template>
16
38
 
17
39
  <script lang="ts">
@@ -30,6 +52,7 @@ export interface ComboboxContentEmits extends RekaComboboxContentEmits {}
30
52
  <script setup lang="ts">
31
53
  import { reactiveOmit } from '@vueuse/core'
32
54
  import { clsx } from 'clsx'
55
+ import { AnimatePresence, Motion } from 'motion-v'
33
56
  import { ComboboxContent, useForwardPropsEmits } from 'reka-ui'
34
57
  import { ComboboxViewport } from '.'
35
58
 
@@ -37,7 +60,12 @@ defineOptions({
37
60
  inheritAttrs: false,
38
61
  })
39
62
 
40
- const props = defineProps<ComboboxContentProps>()
63
+ const props = withDefaults(
64
+ defineProps<ComboboxContentProps>(),
65
+ {
66
+ sideOffset: 8,
67
+ },
68
+ )
41
69
  const emits = defineEmits<ComboboxContentEmits>()
42
70
 
43
71
  const delegatedProps = reactiveOmit(props, 'class')
@@ -25,11 +25,14 @@ export interface ComboboxItemEmits extends RekaComboboxItemEmits {}
25
25
  </script>
26
26
 
27
27
  <script setup lang="ts">
28
+ import { reactiveOmit } from '@vueuse/core'
28
29
  import { clsx } from 'clsx'
29
30
  import { ComboboxItem, useForwardPropsEmits } from 'reka-ui'
30
31
 
31
32
  const props = defineProps<ComboboxItemProps>()
32
33
  const emits = defineEmits<ComboboxItemEmits>()
33
34
 
34
- const forwarded = useForwardPropsEmits(props, emits)
35
+ const delegatedProps = reactiveOmit(props, 'class')
36
+
37
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
35
38
  </script>
@@ -1,11 +1,10 @@
1
1
  .arvue-combobox-content {
2
- width: var(--reka-popper-anchor-width);
2
+ width: var(--reka-combobox-trigger-width);
3
3
  background: var(--background-color-blank);
4
4
  box-shadow: 0 0.25rem 1rem -0.25rem rgba(0, 0, 0, 0.1);
5
- margin-top: .5em;
5
+ border: 1px solid rgba(0, 0, 0, 0.1);
6
6
  border-radius: 0.5em;
7
- }
8
-
9
- .arvue-combobox div[data-reka-popper-content-wrapper] {
10
- z-index: 110 !important;
7
+ max-height: var(--reka-combobox-content-available-height);
8
+ transform-origin: var(--reka-combobox-content-transform-origin);
9
+ z-index: 110;
11
10
  }
@@ -1,6 +1,7 @@
1
1
  .arvue-combobox-label {
2
- padding: .25em .75em;
2
+ color: var(--text-color-hint-strong);
3
+ padding: 0.5rem 1rem;
3
4
  font-size: .75em;
4
- line-height: 1.2em;
5
- font-weight: 600;
5
+ line-height: 1rem;
6
+ font-weight: bold;
6
7
  }
@@ -0,0 +1,24 @@
1
+ <template>
2
+ <DropdownMenuRoot
3
+ v-slot="slotProps"
4
+ v-bind="forwarded"
5
+ >
6
+ <slot v-bind="slotProps"/>
7
+ </DropdownMenuRoot>
8
+ </template>
9
+
10
+ <script lang="ts">
11
+ import type { DropdownMenuRootEmits, DropdownMenuRootProps } from 'reka-ui'
12
+
13
+ export interface DropdownMenuProps extends DropdownMenuRootProps {}
14
+ export interface DropdownMenuEmits extends DropdownMenuRootEmits {}
15
+ </script>
16
+
17
+ <script setup lang="ts">
18
+ import { DropdownMenuRoot, useForwardPropsEmits } from 'reka-ui'
19
+
20
+ const props = defineProps<DropdownMenuProps>()
21
+ const emits = defineEmits<DropdownMenuEmits>()
22
+
23
+ const forwarded = useForwardPropsEmits(props, emits)
24
+ </script>
@@ -0,0 +1,47 @@
1
+ <style>
2
+ @import './dropdown-menu-checkbox-item.css';
3
+ </style>
4
+
5
+ <template>
6
+ <DropdownMenuCheckboxItem
7
+ v-bind="forwarded"
8
+ :class="clsx('arvue-dropdown-menu-checkbox-item', props.class)"
9
+ >
10
+ <span class="arvue-dropdown-menu-checkbox-item-indicator-wrapper">
11
+ <DropdownMenuItemIndicator>
12
+ <i class="fas fa-check"/>
13
+ </DropdownMenuItemIndicator>
14
+ </span>
15
+ <slot/>
16
+ </DropdownMenuCheckboxItem>
17
+ </template>
18
+
19
+ <script lang="ts">
20
+ import type {
21
+ DropdownMenuCheckboxItemEmits as RekaDropdownMenuCheckboxItemEmits,
22
+ DropdownMenuCheckboxItemProps as RekaDropdownMenuCheckboxItemProps,
23
+ } from 'reka-ui'
24
+ import type { HTMLAttributes } from 'vue'
25
+
26
+ export interface DropdownMenuCheckboxItemProps extends RekaDropdownMenuCheckboxItemProps {
27
+ class?: HTMLAttributes['class']
28
+ }
29
+ export interface DropdownMenuCheckboxItemEmits extends RekaDropdownMenuCheckboxItemEmits {}
30
+ </script>
31
+
32
+ <script setup lang="ts">
33
+ import { reactiveOmit } from '@vueuse/core'
34
+ import { clsx } from 'clsx'
35
+ import {
36
+ DropdownMenuCheckboxItem,
37
+ DropdownMenuItemIndicator,
38
+ useForwardPropsEmits,
39
+ } from 'reka-ui'
40
+
41
+ const props = defineProps<DropdownMenuCheckboxItemProps>()
42
+ const emits = defineEmits<DropdownMenuCheckboxItemEmits>()
43
+
44
+ const delegatedProps = reactiveOmit(props, 'class')
45
+
46
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
47
+ </script>
@@ -0,0 +1,75 @@
1
+ <style>
2
+ @import './dropdown-menu-content.css';
3
+ </style>
4
+
5
+ <template>
6
+ <AnimatePresence>
7
+ <DropdownMenuContent
8
+ v-bind="{ ...$attrs, ...forwarded }"
9
+ :class="clsx('arvue-dropdown-menu-content', props.class)"
10
+ as-child
11
+ >
12
+ <Motion
13
+ :initial="{
14
+ y: '-5px',
15
+ opacity: 0,
16
+ }"
17
+ :animate="{
18
+ y: 0,
19
+ opacity: 1,
20
+ }"
21
+ :exit="{
22
+ y: '-5px',
23
+ opacity: 0,
24
+ }"
25
+ :transition="{
26
+ duration: .15,
27
+ ease: 'easeInOut',
28
+ }"
29
+ >
30
+ <slot/>
31
+ </Motion>
32
+ </DropdownMenuContent>
33
+ </AnimatePresence>
34
+ </template>
35
+
36
+ <script lang="ts">
37
+ import type {
38
+ DropdownMenuContentEmits as RekaDropdownMenuContentEmits,
39
+ DropdownMenuContentProps as RekaDropdownMenuContentProps,
40
+ } from 'reka-ui'
41
+ import type { HTMLAttributes } from 'vue'
42
+
43
+ export interface DropdownMenuContentProps extends RekaDropdownMenuContentProps {
44
+ class?: HTMLAttributes['class']
45
+ }
46
+
47
+ export interface DropdownMenuContentEmits extends RekaDropdownMenuContentEmits {
48
+ }
49
+ </script>
50
+
51
+ <script setup lang="ts">
52
+ import { reactiveOmit } from '@vueuse/core'
53
+ import { clsx } from 'clsx'
54
+ import { AnimatePresence, Motion } from 'motion-v'
55
+ import {
56
+ DropdownMenuContent,
57
+ useForwardPropsEmits,
58
+ } from 'reka-ui'
59
+
60
+ defineOptions({
61
+ inheritAttrs: false,
62
+ })
63
+
64
+ const props = withDefaults(
65
+ defineProps<DropdownMenuContentProps>(),
66
+ {
67
+ sideOffset: 8,
68
+ },
69
+ )
70
+ const emits = defineEmits<DropdownMenuContentEmits>()
71
+
72
+ const delegatedProps = reactiveOmit(props, 'class')
73
+
74
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
75
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <DropdownMenuGroup v-bind="props">
3
+ <slot/>
4
+ </DropdownMenuGroup>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { DropdownMenuGroupProps as RekaDropdownMenuGroupProps } from 'reka-ui'
9
+
10
+ export interface DropdownMenuGroupProps extends RekaDropdownMenuGroupProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { DropdownMenuGroup } from 'reka-ui'
15
+
16
+ const props = defineProps<DropdownMenuGroupProps>()
17
+ </script>
@@ -0,0 +1,38 @@
1
+ <style>
2
+ @import './dropdown-menu-item.css';
3
+ </style>
4
+
5
+ <template>
6
+ <DropdownMenuItem
7
+ v-bind="forwardedProps"
8
+ :class="clsx(
9
+ 'arvue-dropdown-menu-item',
10
+ inset && 'arvue-dropdown-menu-item-inset',
11
+ props.class,
12
+ )"
13
+ >
14
+ <slot/>
15
+ </DropdownMenuItem>
16
+ </template>
17
+
18
+ <script lang="ts">
19
+ import type { DropdownMenuItemProps as RekaDropdownMenuItemProps } from 'reka-ui'
20
+ import type { HTMLAttributes } from 'vue'
21
+
22
+ export interface DropdownMenuItemProps extends RekaDropdownMenuItemProps {
23
+ class?: HTMLAttributes['class']
24
+ inset?: boolean
25
+ }
26
+ </script>
27
+
28
+ <script setup lang="ts">
29
+ import { reactiveOmit } from '@vueuse/core'
30
+ import { clsx } from 'clsx'
31
+ import { DropdownMenuItem, useForwardProps } from 'reka-ui'
32
+
33
+ const props = defineProps<DropdownMenuItemProps>()
34
+
35
+ const delegatedProps = reactiveOmit(props, 'class', 'inset')
36
+
37
+ const forwardedProps = useForwardProps(delegatedProps)
38
+ </script>
@@ -0,0 +1,37 @@
1
+ <style>
2
+ @import './dropdown-menu-label.css';
3
+ </style>
4
+
5
+ <template>
6
+ <DropdownMenuLabel
7
+ v-bind="forwardedProps"
8
+ :class="clsx(
9
+ 'arvue-dropdown-menu-label',
10
+ inset && 'arvue-dropdown-menu-label-inset',
11
+ props.class,
12
+ )"
13
+ >
14
+ <slot/>
15
+ </DropdownMenuLabel>
16
+ </template>
17
+
18
+ <script lang="ts">
19
+ import type { DropdownMenuLabelProps as RekaDropdownMenuLabelProps } from 'reka-ui'
20
+ import type { HTMLAttributes } from 'vue'
21
+
22
+ export interface DropdownMenuLabelProps extends RekaDropdownMenuLabelProps {
23
+ class?: HTMLAttributes['class']
24
+ inset?: boolean
25
+ }
26
+ </script>
27
+
28
+ <script setup lang="ts">
29
+ import { reactiveOmit } from '@vueuse/core'
30
+ import { clsx } from 'clsx'
31
+ import { DropdownMenuLabel, useForwardProps } from 'reka-ui'
32
+
33
+ const props = defineProps<DropdownMenuLabelProps>()
34
+
35
+ const delegatedProps = reactiveOmit(props, 'class', 'inset')
36
+ const forwardedProps = useForwardProps(delegatedProps)
37
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <DropdownMenuPortal v-bind="props">
3
+ <slot/>
4
+ </DropdownMenuPortal>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { DropdownMenuPortalProps as RekaDropdownMenuPortalProps } from 'reka-ui'
9
+
10
+ export interface DropdownMenuPortalProps extends RekaDropdownMenuPortalProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { DropdownMenuPortal } from 'reka-ui'
15
+
16
+ const props = defineProps<DropdownMenuPortalProps>()
17
+ </script>
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <DropdownMenuRadioGroup v-bind="forwarded">
3
+ <slot/>
4
+ </DropdownMenuRadioGroup>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type {
9
+ DropdownMenuRadioGroupEmits as RekaDropdownMenuRadioGroupEmits,
10
+ DropdownMenuRadioGroupProps as RekaDropdownMenuRadioGroupProps,
11
+ } from 'reka-ui'
12
+
13
+ export interface DropdownMenuRadioGroupProps extends RekaDropdownMenuRadioGroupProps {}
14
+ export interface DropdownMenuRadioGroupEmits extends RekaDropdownMenuRadioGroupEmits {}
15
+ </script>
16
+
17
+ <script setup lang="ts">
18
+ import {
19
+ DropdownMenuRadioGroup,
20
+ useForwardPropsEmits,
21
+ } from 'reka-ui'
22
+
23
+ const props = defineProps<DropdownMenuRadioGroupProps>()
24
+ const emits = defineEmits<DropdownMenuRadioGroupEmits>()
25
+
26
+ const forwarded = useForwardPropsEmits(props, emits)
27
+ </script>
@@ -0,0 +1,48 @@
1
+ <style>
2
+ @import './dropdown-menu-radio-item.css';
3
+ </style>
4
+
5
+ <template>
6
+ <DropdownMenuRadioItem
7
+ v-bind="forwarded"
8
+ :class="clsx('arvue-dropdown-menu-radio-item', props.class)"
9
+ >
10
+ <span class="arvue-dropdown-menu-radio-item-indicator-wrapper">
11
+ <DropdownMenuItemIndicator>
12
+ <i class="fas fa-circle"/>
13
+ </DropdownMenuItemIndicator>
14
+ </span>
15
+ <slot/>
16
+ </DropdownMenuRadioItem>
17
+ </template>
18
+
19
+ <script lang="ts">
20
+ import type {
21
+ DropdownMenuRadioItemEmits as RekaDropdownMenuRadioItemEmits,
22
+ DropdownMenuRadioItemProps as RekaDropdownMenuRadioItemProps,
23
+ } from 'reka-ui'
24
+ import type { HTMLAttributes } from 'vue'
25
+
26
+ export interface DropdownMenuRadioItemProps extends RekaDropdownMenuRadioItemProps {
27
+ class?: HTMLAttributes['class']
28
+ }
29
+ export interface DropdownMenuRadioItemEmits extends RekaDropdownMenuRadioItemEmits {}
30
+ </script>
31
+
32
+ <script setup lang="ts">
33
+ import { reactiveOmit } from '@vueuse/core'
34
+ import { clsx } from 'clsx'
35
+ import {
36
+ DropdownMenuItemIndicator,
37
+ DropdownMenuRadioItem,
38
+ useForwardPropsEmits,
39
+ } from 'reka-ui'
40
+
41
+ const props = defineProps<DropdownMenuRadioItemProps>()
42
+
43
+ const emits = defineEmits<DropdownMenuRadioItemEmits>()
44
+
45
+ const delegatedProps = reactiveOmit(props, 'class')
46
+
47
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
48
+ </script>
@@ -0,0 +1,29 @@
1
+ <style>
2
+ @import './dropdown-menu-separator.css';
3
+ </style>
4
+
5
+ <template>
6
+ <DropdownMenuSeparator
7
+ v-bind="delegatedProps"
8
+ :class="clsx('arvue-dropdown-menu-separator', props.class)"
9
+ />
10
+ </template>
11
+
12
+ <script lang="ts">
13
+ import type { DropdownMenuSeparatorProps as RekaDropdownMenuSeparatorProps } from 'reka-ui'
14
+ import type { HTMLAttributes } from 'vue'
15
+
16
+ export interface DropdownMenuSeparatorProps extends RekaDropdownMenuSeparatorProps {
17
+ class?: HTMLAttributes['class']
18
+ }
19
+ </script>
20
+
21
+ <script setup lang="ts">
22
+ import { reactiveOmit } from '@vueuse/core'
23
+ import { clsx } from 'clsx'
24
+ import { DropdownMenuSeparator } from 'reka-ui'
25
+
26
+ const props = defineProps<DropdownMenuSeparatorProps>()
27
+
28
+ const delegatedProps = reactiveOmit(props, 'class')
29
+ </script>
@@ -0,0 +1,33 @@
1
+ <style>
2
+ @import './dropdown-menu-shortcut.css';
3
+ </style>
4
+
5
+ <template>
6
+ <Primitive
7
+ :class="clsx('arvue-dropdown-menu-shortcut', props.class)"
8
+ v-bind="delegatedProps"
9
+ >
10
+ <slot/>
11
+ </Primitive>
12
+ </template>
13
+
14
+ <script lang="ts">
15
+ import type { PrimitiveProps } from 'reka-ui'
16
+ import type { HTMLAttributes } from 'vue'
17
+
18
+ export interface DropdownMenuShortcutProps extends PrimitiveProps {
19
+ class?: HTMLAttributes['class']
20
+ }
21
+ </script>
22
+
23
+ <script setup lang="ts">
24
+ import { reactiveOmit } from '@vueuse/core'
25
+ import { clsx } from 'clsx'
26
+ import { Primitive } from 'reka-ui'
27
+
28
+ const props = withDefaults(defineProps<DropdownMenuShortcutProps>(), {
29
+ as: 'span',
30
+ })
31
+
32
+ const delegatedProps = reactiveOmit(props, 'class')
33
+ </script>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <DropdownMenuSub
3
+ v-slot="slotProps"
4
+ v-bind="forwarded"
5
+ >
6
+ <slot v-bind="slotProps"/>
7
+ </DropdownMenuSub>
8
+ </template>
9
+
10
+ <script lang="ts">
11
+ import type {
12
+ DropdownMenuSubEmits as RekaDropdownMenuSubEmits,
13
+ DropdownMenuSubProps as RekaDropdownMenuSubProps,
14
+ } from 'reka-ui'
15
+
16
+ export interface DropdownMenuSubProps extends RekaDropdownMenuSubProps {}
17
+
18
+ export interface DropdownMenuSubEmits extends RekaDropdownMenuSubEmits {}
19
+ </script>
20
+
21
+ <script setup lang="ts">
22
+ import {
23
+ DropdownMenuSub,
24
+ useForwardPropsEmits,
25
+ } from 'reka-ui'
26
+
27
+ const props = defineProps<DropdownMenuSubProps>()
28
+ const emits = defineEmits<DropdownMenuSubEmits>()
29
+
30
+ const forwarded = useForwardPropsEmits(props, emits)
31
+ </script>
@@ -0,0 +1,74 @@
1
+ <style>
2
+ @import './dropdown-menu-sub-content.css';
3
+ </style>
4
+
5
+ <template>
6
+ <AnimatePresence>
7
+ <DropdownMenuSubContent
8
+ v-bind="{ ...$attrs, ...forwarded }"
9
+ :class="clsx('arvue-dropdown-menu-sub-content', props.class)"
10
+ as-child
11
+ >
12
+ <Motion
13
+ :initial="{
14
+ y: '-5px',
15
+ opacity: 0,
16
+ }"
17
+ :animate="{
18
+ y: 0,
19
+ opacity: 1,
20
+ }"
21
+ :exit="{
22
+ y: '-5px',
23
+ opacity: 0,
24
+ }"
25
+ :transition="{
26
+ duration: .15,
27
+ ease: 'easeInOut',
28
+ }"
29
+ >
30
+ <slot/>
31
+ </Motion>
32
+ </DropdownMenuSubContent>
33
+ </AnimatePresence>
34
+ </template>
35
+
36
+ <script lang="ts">
37
+ import type {
38
+ DropdownMenuSubContentEmits as RekaDropdownMenuSubContentEmits,
39
+ DropdownMenuSubContentProps as RekaDropdownMenuSubContentProps,
40
+ } from 'reka-ui'
41
+ import type { HTMLAttributes } from 'vue'
42
+
43
+ export interface DropdownMenuSubContentProps extends RekaDropdownMenuSubContentProps {
44
+ class?: HTMLAttributes['class']
45
+ }
46
+
47
+ export interface DropdownMenuSubContentEmits extends RekaDropdownMenuSubContentEmits {}
48
+ </script>
49
+
50
+ <script setup lang="ts">
51
+ import { reactiveOmit } from '@vueuse/core'
52
+ import { clsx } from 'clsx'
53
+ import { AnimatePresence, Motion } from 'motion-v'
54
+ import {
55
+ DropdownMenuSubContent,
56
+ useForwardPropsEmits,
57
+ } from 'reka-ui'
58
+
59
+ defineOptions({
60
+ inheritAttrs: false,
61
+ })
62
+
63
+ const props = withDefaults(
64
+ defineProps<DropdownMenuSubContentProps>(),
65
+ {
66
+ sideOffset: 8,
67
+ },
68
+ )
69
+ const emits = defineEmits<DropdownMenuSubContentEmits>()
70
+
71
+ const delegatedProps = reactiveOmit(props, 'class')
72
+
73
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
74
+ </script>
@@ -0,0 +1,41 @@
1
+ <style>
2
+ @import './dropdown-menu-sub-trigger.css';
3
+ </style>
4
+
5
+ <template>
6
+ <DropdownMenuSubTrigger
7
+ v-bind="forwardedProps"
8
+ :class="clsx(
9
+ 'arvue-dropdown-menu-sub-trigger',
10
+ inset && 'arvue-dropdown-menu-sub-trigger-inset',
11
+ props.class,
12
+ )"
13
+ >
14
+ <slot/>
15
+ <i class="fas fa-chevron-right arvue-dropdown-menu-sub-trigger-icon"/>
16
+ </DropdownMenuSubTrigger>
17
+ </template>
18
+
19
+ <script lang="ts">
20
+ import type { DropdownMenuSubTriggerProps as RekaDropdownMenuSubTriggerProps } from 'reka-ui'
21
+ import type { HTMLAttributes } from 'vue'
22
+
23
+ export interface DropdownMenuSubTriggerProps extends RekaDropdownMenuSubTriggerProps {
24
+ class?: HTMLAttributes['class']
25
+ inset?: boolean
26
+ }
27
+ </script>
28
+
29
+ <script setup lang="ts">
30
+ import { reactiveOmit } from '@vueuse/core'
31
+ import { clsx } from 'clsx'
32
+ import {
33
+ DropdownMenuSubTrigger,
34
+ useForwardProps,
35
+ } from 'reka-ui'
36
+
37
+ const props = defineProps<DropdownMenuSubTriggerProps>()
38
+
39
+ const delegatedProps = reactiveOmit(props, 'class')
40
+ const forwardedProps = useForwardProps(delegatedProps)
41
+ </script>