arvue-ui 0.2.0 → 0.3.1

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 (106) hide show
  1. package/dist/all.css +1 -1
  2. package/dist/autocomplete/autocomplete.js +52 -0
  3. package/dist/autocomplete/autocomplete.js.map +1 -0
  4. package/dist/autocomplete/autocompleteAnchor.js +24 -0
  5. package/dist/autocomplete/autocompleteAnchor.js.map +1 -0
  6. package/dist/autocomplete/autocompleteArrow.js +26 -0
  7. package/dist/autocomplete/autocompleteArrow.js.map +1 -0
  8. package/dist/autocomplete/autocompleteCancel.js +23 -0
  9. package/dist/autocomplete/autocompleteCancel.js.map +1 -0
  10. package/dist/autocomplete/autocompleteContent.js +73 -0
  11. package/dist/autocomplete/autocompleteContent.js.map +1 -0
  12. package/dist/autocomplete/autocompleteEmpty.js +33 -0
  13. package/dist/autocomplete/autocompleteEmpty.js.map +1 -0
  14. package/dist/autocomplete/autocompleteGroup.js +23 -0
  15. package/dist/autocomplete/autocompleteGroup.js.map +1 -0
  16. package/dist/autocomplete/autocompleteInput.js +66 -0
  17. package/dist/autocomplete/autocompleteInput.js.map +1 -0
  18. package/dist/autocomplete/autocompleteItem.js +36 -0
  19. package/dist/autocomplete/autocompleteItem.js.map +1 -0
  20. package/dist/autocomplete/autocompleteLabel.js +34 -0
  21. package/dist/autocomplete/autocompleteLabel.js.map +1 -0
  22. package/dist/autocomplete/autocompletePortal.js +25 -0
  23. package/dist/autocomplete/autocompletePortal.js.map +1 -0
  24. package/dist/autocomplete/autocompleteSeparator.js +33 -0
  25. package/dist/autocomplete/autocompleteSeparator.js.map +1 -0
  26. package/dist/autocomplete/autocompleteTrigger.js +24 -0
  27. package/dist/autocomplete/autocompleteTrigger.js.map +1 -0
  28. package/dist/autocomplete/autocompleteViewport.js +24 -0
  29. package/dist/autocomplete/autocompleteViewport.js.map +1 -0
  30. package/dist/dialog/dialogContent.js +2 -2
  31. package/dist/dialog/dialogDescription.js +1 -1
  32. package/dist/dialog/dialogFooter.js +1 -1
  33. package/dist/dialog/dialogHeader.js +1 -1
  34. package/dist/dialog/dialogOverlay.js +1 -1
  35. package/dist/dialog/dialogTitle.js +1 -1
  36. package/dist/drawer/drawerContent.js +1 -1
  37. package/dist/drawer/drawerDescription.js +1 -1
  38. package/dist/drawer/drawerFooter.js +1 -1
  39. package/dist/drawer/drawerHeader.js +1 -1
  40. package/dist/drawer/drawerOverlay.js +1 -1
  41. package/dist/drawer/drawerTitle.js +1 -1
  42. package/dist/index.d.ts +443 -57
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +718 -40
  45. package/dist/index.js.map +1 -1
  46. package/dist/sheet/sheet.js +54 -0
  47. package/dist/sheet/sheet.js.map +1 -0
  48. package/dist/sheet/sheetClose.js +23 -0
  49. package/dist/sheet/sheetClose.js.map +1 -0
  50. package/dist/sheet/sheetContent.js +61 -0
  51. package/dist/sheet/sheetContent.js.map +1 -0
  52. package/dist/sheet/sheetDescription.js +33 -0
  53. package/dist/sheet/sheetDescription.js.map +1 -0
  54. package/dist/sheet/sheetFooter.js +33 -0
  55. package/dist/sheet/sheetFooter.js.map +1 -0
  56. package/dist/sheet/sheetHeader.js +33 -0
  57. package/dist/sheet/sheetHeader.js.map +1 -0
  58. package/dist/sheet/sheetOverlay.js +34 -0
  59. package/dist/sheet/sheetOverlay.js.map +1 -0
  60. package/dist/sheet/sheetTitle.js +33 -0
  61. package/dist/sheet/sheetTitle.js.map +1 -0
  62. package/dist/sheet/sheetTrigger.js +23 -0
  63. package/dist/sheet/sheetTrigger.js.map +1 -0
  64. package/dist/style.css +24 -0
  65. package/package.json +3 -2
  66. package/src/autocomplete/Autocomplete.vue +36 -0
  67. package/src/autocomplete/AutocompleteAnchor.vue +17 -0
  68. package/src/autocomplete/AutocompleteArrow.vue +17 -0
  69. package/src/autocomplete/AutocompleteCancel.vue +17 -0
  70. package/src/autocomplete/AutocompleteContent.vue +43 -0
  71. package/src/autocomplete/AutocompleteEmpty.vue +31 -0
  72. package/src/autocomplete/AutocompleteGroup.vue +17 -0
  73. package/src/autocomplete/AutocompleteInput.vue +65 -0
  74. package/src/autocomplete/AutocompleteItem.vue +32 -0
  75. package/src/autocomplete/AutocompleteLabel.vue +31 -0
  76. package/src/autocomplete/AutocompletePortal.vue +17 -0
  77. package/src/autocomplete/AutocompleteSeparator.vue +31 -0
  78. package/src/autocomplete/AutocompleteTrigger.vue +17 -0
  79. package/src/autocomplete/AutocompleteViewport.vue +17 -0
  80. package/src/autocomplete/autocomplete-content.css +7 -0
  81. package/src/autocomplete/autocomplete-empty.css +7 -0
  82. package/src/autocomplete/autocomplete-input.css +5 -0
  83. package/src/autocomplete/autocomplete-item.css +14 -0
  84. package/src/autocomplete/autocomplete-label.css +6 -0
  85. package/src/autocomplete/autocomplete-separator.css +5 -0
  86. package/src/autocomplete/autocomplete.css +4 -0
  87. package/src/autocomplete/index.ts +60 -0
  88. package/src/dialog/dialog-description.css +1 -0
  89. package/src/drawer/drawer-description.css +1 -0
  90. package/src/index.ts +2 -0
  91. package/src/sheet/Sheet.vue +29 -0
  92. package/src/sheet/SheetClose.vue +19 -0
  93. package/src/sheet/SheetContent.vue +53 -0
  94. package/src/sheet/SheetDescription.vue +33 -0
  95. package/src/sheet/SheetFooter.vue +31 -0
  96. package/src/sheet/SheetHeader.vue +31 -0
  97. package/src/sheet/SheetOverlay.vue +31 -0
  98. package/src/sheet/SheetTitle.vue +33 -0
  99. package/src/sheet/SheetTrigger.vue +17 -0
  100. package/src/sheet/index.ts +38 -0
  101. package/src/sheet/sheet-content.css +67 -0
  102. package/src/sheet/sheet-description.css +5 -0
  103. package/src/sheet/sheet-footer.css +11 -0
  104. package/src/sheet/sheet-header.css +6 -0
  105. package/src/sheet/sheet-overlay.css +12 -0
  106. package/src/sheet/sheet-title.css +3 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arvue-ui",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Articus-Company/arvue-ui.git",
@@ -39,7 +39,8 @@
39
39
  "@vueuse/core": "^14.3.0",
40
40
  "class-variance-authority": "^0.7.1",
41
41
  "motion-v": "^2.2.1",
42
- "reka-ui": "^2.9.8"
42
+ "reka-ui": "^2.9.8",
43
+ "vaul-vue": "^0.4.1"
43
44
  },
44
45
  "devDependencies": {
45
46
  "@microsoft/api-extractor": "^7.58.7",
@@ -0,0 +1,36 @@
1
+ <style>
2
+ @import './autocomplete.css';
3
+ </style>
4
+
5
+ <template>
6
+ <AutocompleteRoot
7
+ v-slot="slotProps"
8
+ v-bind="forwarded"
9
+ :class="clsx('arvue-autocomplete', props.class)"
10
+ >
11
+ <slot v-bind="slotProps"/>
12
+ </AutocompleteRoot>
13
+ </template>
14
+
15
+ <script lang="ts">
16
+ import type { AutocompleteRootEmits, AutocompleteRootProps } from 'reka-ui'
17
+ import type { HTMLAttributes } from 'vue'
18
+
19
+ export interface AutocompleteProps extends AutocompleteRootProps {
20
+ class?: HTMLAttributes['class']
21
+ }
22
+ export interface AutocompleteEmits extends AutocompleteRootEmits {}
23
+ </script>
24
+
25
+ <script setup lang="ts">
26
+ import { reactiveOmit } from '@vueuse/core'
27
+ import { clsx } from 'clsx'
28
+ import { AutocompleteRoot, useForwardPropsEmits } from 'reka-ui'
29
+
30
+ const props = defineProps<AutocompleteProps>()
31
+ const emits = defineEmits<AutocompleteEmits>()
32
+
33
+ const delegatedProps = reactiveOmit(props, 'class')
34
+
35
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
36
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <AutocompleteAnchor v-bind="props">
3
+ <slot/>
4
+ </AutocompleteAnchor>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { ComboboxAnchorProps } from 'reka-ui'
9
+
10
+ export interface AutocompleteAnchorProps extends ComboboxAnchorProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { AutocompleteAnchor } from 'reka-ui'
15
+
16
+ const props = defineProps<AutocompleteAnchorProps>()
17
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <AutocompleteArrow v-bind="props">
3
+ <slot/>
4
+ </AutocompleteArrow>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { ComboboxArrowProps } from 'reka-ui'
9
+
10
+ export interface AutocompleteArrowProps extends ComboboxArrowProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { AutocompleteArrow } from 'reka-ui'
15
+
16
+ const props = defineProps<AutocompleteArrowProps>()
17
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <AutocompleteCancel v-bind="props">
3
+ <slot/>
4
+ </AutocompleteCancel>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { ComboboxCancelProps } from 'reka-ui'
9
+
10
+ export interface AutocompleteCancelProps extends ComboboxCancelProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { AutocompleteCancel } from 'reka-ui'
15
+
16
+ const props = defineProps<AutocompleteCancelProps>()
17
+ </script>
@@ -0,0 +1,43 @@
1
+ <style>
2
+ @import './autocomplete-content.css';
3
+ </style>
4
+
5
+ <template>
6
+ <AutocompleteContent
7
+ v-bind="{ ...$attrs, ...forwarded }"
8
+ :class="clsx('arvue-autocomplete-content', props.class)"
9
+ position="popper"
10
+ >
11
+ <AutocompleteViewport>
12
+ <slot/>
13
+ </AutocompleteViewport>
14
+ </AutocompleteContent>
15
+ </template>
16
+
17
+ <script lang="ts">
18
+ import type { ComboboxContentEmits, ComboboxContentProps } from 'reka-ui'
19
+ import type { HTMLAttributes } from 'vue'
20
+
21
+ export interface AutocompleteContentProps extends Omit<ComboboxContentProps, 'position'> {
22
+ class?: HTMLAttributes['class']
23
+ }
24
+ export interface AutocompleteContentEmits extends ComboboxContentEmits {}
25
+ </script>
26
+
27
+ <script setup lang="ts">
28
+ import { reactiveOmit } from '@vueuse/core'
29
+ import { clsx } from 'clsx'
30
+ import { AutocompleteContent, useForwardPropsEmits } from 'reka-ui'
31
+ import { AutocompleteViewport } from '.'
32
+
33
+ defineOptions({
34
+ inheritAttrs: false,
35
+ })
36
+
37
+ const props = defineProps<AutocompleteContentProps>()
38
+ const emits = defineEmits<AutocompleteContentEmits>()
39
+
40
+ const delegatedProps = reactiveOmit(props, 'class')
41
+
42
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
43
+ </script>
@@ -0,0 +1,31 @@
1
+ <style>
2
+ @import './autocomplete-empty.css';
3
+ </style>
4
+
5
+ <template>
6
+ <AutocompleteEmpty
7
+ v-bind="delegatedProps"
8
+ :class="clsx('arvue-autocomplete-empty', props.class)"
9
+ >
10
+ <slot/>
11
+ </AutocompleteEmpty>
12
+ </template>
13
+
14
+ <script lang="ts">
15
+ import type { ComboboxEmptyProps } from 'reka-ui'
16
+ import type { HTMLAttributes } from 'vue'
17
+
18
+ export interface AutocompleteEmptyProps extends ComboboxEmptyProps {
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 { AutocompleteEmpty } from 'reka-ui'
27
+
28
+ const props = defineProps<AutocompleteEmptyProps>()
29
+
30
+ const delegatedProps = reactiveOmit(props, 'class')
31
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <AutocompleteGroup v-bind="props">
3
+ <slot/>
4
+ </AutocompleteGroup>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { ComboboxGroupProps } from 'reka-ui'
9
+
10
+ export interface AutocompleteGroupProps extends ComboboxGroupProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { AutocompleteGroup } from 'reka-ui'
15
+
16
+ const props = defineProps<AutocompleteGroupProps>()
17
+ </script>
@@ -0,0 +1,65 @@
1
+ <template>
2
+ <div class="arvue-autocomplete-input-wrapper">
3
+ <AutocompleteAnchor
4
+ class="state-with-inner-icon right"
5
+ :reference="inputRef?.$el"
6
+ >
7
+ <AutocompleteInput
8
+ v-bind="{ ...$attrs, ...forwarded }"
9
+ ref="inputRef"
10
+ />
11
+ <AutocompleteTrigger
12
+ v-if="showTriggerButton"
13
+ class="icon"
14
+ >
15
+ <i class="fas fa-chevron-down"/>
16
+ </AutocompleteTrigger>
17
+ </AutocompleteAnchor>
18
+ <AutocompleteCancel
19
+ v-if="showCancelButton"
20
+ class="icon"
21
+ @click="emits('cancel')"
22
+ >
23
+ <i class="fas fa-times"/>
24
+ </AutocompleteCancel>
25
+ </div>
26
+ </template>
27
+
28
+ <script lang="ts">
29
+ import type {
30
+ AutocompleteInputEmits as RekaAutocompleteInputEmits,
31
+ AutocompleteInputProps as RekaAutocompleteInputProps,
32
+ } from 'reka-ui'
33
+
34
+ export interface AutocompleteInputProps extends RekaAutocompleteInputProps {
35
+ showTriggerButton?: boolean
36
+ showCancelButton?: boolean
37
+ }
38
+
39
+ export interface AutocompleteInputEmits extends RekaAutocompleteInputEmits {
40
+ 'cancel': [void]
41
+ }
42
+ </script>
43
+
44
+ <script setup lang="ts">
45
+ import { reactiveOmit } from '@vueuse/core'
46
+ import { AutocompleteInput, useForwardPropsEmits } from 'reka-ui'
47
+ import { useTemplateRef } from 'vue'
48
+ import { AutocompleteAnchor, AutocompleteCancel, AutocompleteTrigger } from '.'
49
+
50
+ defineOptions({
51
+ inheritAttrs: false,
52
+ })
53
+
54
+ const props = withDefaults(defineProps<AutocompleteInputProps>(), {
55
+ showTriggerButton: true,
56
+ showCancelButton: false,
57
+ })
58
+ const emits = defineEmits<AutocompleteInputEmits>()
59
+
60
+ const delegatedProps = reactiveOmit(props, 'showCancelButton', 'showTriggerButton')
61
+
62
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
63
+
64
+ const inputRef = useTemplateRef('inputRef')
65
+ </script>
@@ -0,0 +1,32 @@
1
+ <style>
2
+ @import './autocomplete-item.css';
3
+ </style>
4
+
5
+ <template>
6
+ <AutocompleteItem
7
+ v-bind="forwarded"
8
+ :class="clsx('arvue-autocomplete-item', props.class)"
9
+ >
10
+ <slot/>
11
+ </AutocompleteItem>
12
+ </template>
13
+
14
+ <script lang="ts">
15
+ import type { ComboboxItemEmits, ComboboxItemProps } from 'reka-ui'
16
+ import type { HTMLAttributes } from 'vue'
17
+
18
+ export interface AutocompleteItemProps extends ComboboxItemProps {
19
+ class?: HTMLAttributes['class']
20
+ }
21
+ export interface AutocompleteItemEmits extends ComboboxItemEmits {}
22
+ </script>
23
+
24
+ <script setup lang="ts">
25
+ import { clsx } from 'clsx'
26
+ import { AutocompleteItem, useForwardPropsEmits } from 'reka-ui'
27
+
28
+ const props = defineProps<AutocompleteItemProps>()
29
+ const emits = defineEmits<AutocompleteItemEmits>()
30
+
31
+ const forwarded = useForwardPropsEmits(props, emits)
32
+ </script>
@@ -0,0 +1,31 @@
1
+ <style>
2
+ @import './autocomplete-label.css';
3
+ </style>
4
+
5
+ <template>
6
+ <AutocompleteLabel
7
+ v-bind="delegatedProps"
8
+ :class="clsx('arvue-autocomplete-label', props.class)"
9
+ >
10
+ <slot/>
11
+ </AutocompleteLabel>
12
+ </template>
13
+
14
+ <script lang="ts">
15
+ import type { ComboboxLabelProps } from 'reka-ui'
16
+ import type { HTMLAttributes } from 'vue'
17
+
18
+ export interface AutocompleteLabelProps extends ComboboxLabelProps {
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 { AutocompleteLabel } from 'reka-ui'
27
+
28
+ const props = defineProps<AutocompleteLabelProps>()
29
+
30
+ const delegatedProps = reactiveOmit(props, 'class')
31
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <AutocompletePortal v-bind="props">
3
+ <slot/>
4
+ </AutocompletePortal>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { ComboboxPortalProps } from 'reka-ui'
9
+
10
+ export interface AutocompletePortalProps extends ComboboxPortalProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { AutocompletePortal } from 'reka-ui'
15
+
16
+ const props = defineProps<AutocompletePortalProps>()
17
+ </script>
@@ -0,0 +1,31 @@
1
+ <style>
2
+ @import './autocomplete-separator.css';
3
+ </style>
4
+
5
+ <template>
6
+ <AutocompleteSeparator
7
+ v-bind="delegatedProps"
8
+ :class="clsx('arvue-autocomplete-separator', props.class)"
9
+ >
10
+ <slot/>
11
+ </AutocompleteSeparator>
12
+ </template>
13
+
14
+ <script lang="ts">
15
+ import type { ComboboxSeparatorProps } from 'reka-ui'
16
+ import type { HTMLAttributes } from 'vue'
17
+
18
+ export interface AutocompleteSeparatorProps extends ComboboxSeparatorProps {
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 { AutocompleteSeparator } from 'reka-ui'
27
+
28
+ const props = defineProps<AutocompleteSeparatorProps>()
29
+
30
+ const delegatedProps = reactiveOmit(props, 'class')
31
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <AutocompleteTrigger v-bind="props">
3
+ <slot/>
4
+ </AutocompleteTrigger>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { ComboboxTriggerProps } from 'reka-ui'
9
+
10
+ export interface AutocompleteTriggerProps extends ComboboxTriggerProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { AutocompleteTrigger } from 'reka-ui'
15
+
16
+ const props = defineProps<AutocompleteTriggerProps>()
17
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <AutocompleteViewport v-bind="props">
3
+ <slot/>
4
+ </AutocompleteViewport>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { ComboboxViewportProps } from 'reka-ui'
9
+
10
+ export interface AutocompleteViewportProps extends ComboboxViewportProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { AutocompleteViewport } from 'reka-ui'
15
+
16
+ const props = defineProps<AutocompleteViewportProps>()
17
+ </script>
@@ -0,0 +1,7 @@
1
+ .arvue-autocomplete-content {
2
+ width: var(--reka-popper-anchor-width);
3
+ background: var(--background-color-blank);
4
+ box-shadow: 0 0.25rem 1rem -0.25rem rgba(0, 0, 0, 0.1);
5
+ margin-top: .5em;
6
+ border-radius: 0.5em;
7
+ }
@@ -0,0 +1,7 @@
1
+ .arvue-autocomplete-empty {
2
+ font-size: 0.75rem;
3
+ font-weight: 600;
4
+ text-align: center;
5
+ padding-top: 0.5rem;
6
+ padding-bottom: 0.5rem;
7
+ }
@@ -0,0 +1,5 @@
1
+ .arvue-autocomplete-input-wrapper {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 0.25rem;
5
+ }
@@ -0,0 +1,14 @@
1
+ .arvue-autocomplete-item {
2
+ line-height: 1;
3
+ display: flex;
4
+ align-items: center;
5
+ padding: 0.5em 1em;
6
+ position: relative;
7
+ user-select: none;
8
+ border-radius: 0.5em;
9
+ }
10
+
11
+ .arvue-autocomplete-item[data-highlighted] {
12
+ outline: none;
13
+ background: var(--background-color-zebra-row-odd-hover);
14
+ }
@@ -0,0 +1,6 @@
1
+ .arvue-autocomplete-label {
2
+ padding: .25em .75em;
3
+ font-size: .75em;
4
+ line-height: 1.2em;
5
+ font-weight: 600;
6
+ }
@@ -0,0 +1,5 @@
1
+ .arvue-autocomplete-separator {
2
+ height: 1px;
3
+ background-color: var(--border-color-hr);
4
+ margin: 5px;
5
+ }
@@ -0,0 +1,4 @@
1
+ .arvue-autocomplete {
2
+ position: relative;
3
+ width: fit-content;
4
+ }
@@ -0,0 +1,60 @@
1
+ export {
2
+ default as Autocomplete,
3
+ type AutocompleteEmits,
4
+ type AutocompleteProps,
5
+ } from './Autocomplete.vue'
6
+ export {
7
+ default as AutocompleteAnchor,
8
+ type AutocompleteAnchorProps,
9
+ } from './AutocompleteAnchor.vue'
10
+ export {
11
+ default as AutocompleteArrow,
12
+ type AutocompleteArrowProps,
13
+ } from './AutocompleteArrow.vue'
14
+ export {
15
+ default as AutocompleteCancel,
16
+ type AutocompleteCancelProps,
17
+ } from './AutocompleteCancel.vue'
18
+ export {
19
+ default as AutocompleteContent,
20
+ type AutocompleteContentEmits,
21
+ type AutocompleteContentProps,
22
+ } from './AutocompleteContent.vue'
23
+ export {
24
+ default as AutocompleteEmpty,
25
+ type AutocompleteEmptyProps,
26
+ } from './AutocompleteEmpty.vue'
27
+ export {
28
+ default as AutocompleteGroup,
29
+ type AutocompleteGroupProps,
30
+ } from './AutocompleteGroup.vue'
31
+ export {
32
+ default as AutocompleteInput,
33
+ type AutocompleteInputEmits,
34
+ type AutocompleteInputProps,
35
+ } from './AutocompleteInput.vue'
36
+ export {
37
+ default as AutocompleteItem,
38
+ type AutocompleteItemEmits,
39
+ type AutocompleteItemProps,
40
+ } from './AutocompleteItem.vue'
41
+ export {
42
+ default as AutocompleteLabel,
43
+ type AutocompleteLabelProps,
44
+ } from './AutocompleteLabel.vue'
45
+ export {
46
+ default as AutocompletePortal,
47
+ type AutocompletePortalProps,
48
+ } from './AutocompletePortal.vue'
49
+ export {
50
+ default as AutocompleteSeparator,
51
+ type AutocompleteSeparatorProps,
52
+ } from './AutocompleteSeparator.vue'
53
+ export {
54
+ default as AutocompleteTrigger,
55
+ type AutocompleteTriggerProps,
56
+ } from './AutocompleteTrigger.vue'
57
+ export {
58
+ default as AutocompleteViewport,
59
+ type AutocompleteViewportProps,
60
+ } from './AutocompleteViewport.vue'
@@ -1,4 +1,5 @@
1
1
  .arvue-dialog-description {
2
2
  font-size: 0.875rem;
3
3
  margin: 0;
4
+ font-weight: 600;
4
5
  }
@@ -1,4 +1,5 @@
1
1
  .arvue-drawer-description {
2
2
  font-size: 0.875rem;
3
3
  margin: 0;
4
+ font-weight: 600;
4
5
  }
package/src/index.ts CHANGED
@@ -1,2 +1,4 @@
1
+ export * from './autocomplete'
1
2
  export * from './dialog'
2
3
  export * from './drawer'
4
+ export * from './sheet'
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <DrawerRoot
3
+ v-slot="slotProps"
4
+ v-bind="forwarded"
5
+ >
6
+ <slot v-bind="slotProps"/>
7
+ </DrawerRoot>
8
+ </template>
9
+
10
+ <script lang="ts">
11
+ import type { DrawerRootEmits, DrawerRootProps } from 'vaul-vue'
12
+ import type { HTMLAttributes } from 'vue'
13
+
14
+ export interface SheetEmits extends DrawerRootEmits {}
15
+
16
+ export interface SheetProps extends DrawerRootProps {
17
+ class?: HTMLAttributes['class']
18
+ }
19
+ </script>
20
+
21
+ <script setup lang="ts">
22
+ import { useForwardPropsEmits } from 'reka-ui'
23
+ import { DrawerRoot } from 'vaul-vue'
24
+
25
+ const props = defineProps<SheetProps>()
26
+ const emits = defineEmits<SheetEmits>()
27
+
28
+ const forwarded = useForwardPropsEmits(props, emits)
29
+ </script>
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <DrawerClose v-bind="props">
3
+ <slot/>
4
+ </DrawerClose>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { DrawerCloseProps } from 'vaul-vue'
9
+
10
+ export interface SheetCloseProps extends DrawerCloseProps {}
11
+ </script>
12
+
13
+ <script setup lang="ts">
14
+ import { DrawerClose } from 'vaul-vue'
15
+
16
+ const props = withDefaults(defineProps<SheetCloseProps>(), {
17
+ as: 'a',
18
+ })
19
+ </script>
@@ -0,0 +1,53 @@
1
+ <style>
2
+ @import 'sheet-content.css';
3
+ </style>
4
+
5
+ <template>
6
+ <DrawerPortal>
7
+ <SheetOverlay/>
8
+ <DrawerContent
9
+ :class="clsx('arvue-sheet-content', props.class)"
10
+ v-bind="{ ...$attrs, ...forwarded }"
11
+ >
12
+ <div
13
+ v-if="showHandle"
14
+ class="arvue-sheet-handle"
15
+ />
16
+ <slot/>
17
+ </DrawerContent>
18
+ </DrawerPortal>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import type { DialogContentEmits, DialogContentProps } from 'reka-ui'
23
+ import type { HTMLAttributes } from 'vue'
24
+
25
+ export interface SheetContentEmits extends DialogContentEmits {
26
+ }
27
+
28
+ export interface SheetContentProps extends DialogContentProps {
29
+ class?: HTMLAttributes['class']
30
+ showHandle?: boolean
31
+ }
32
+ </script>
33
+
34
+ <script setup lang="ts">
35
+ import { reactiveOmit } from '@vueuse/core'
36
+ import { clsx } from 'clsx'
37
+ import { useForwardPropsEmits } from 'reka-ui'
38
+ import { DrawerContent, DrawerPortal } from 'vaul-vue'
39
+ import { SheetOverlay } from '.'
40
+
41
+ defineOptions({
42
+ inheritAttrs: false,
43
+ })
44
+
45
+ const props = withDefaults(defineProps<SheetContentProps>(), {
46
+ showHandle: true,
47
+ })
48
+ const emits = defineEmits<SheetContentEmits>()
49
+
50
+ const delegatedProps = reactiveOmit(props, 'class')
51
+
52
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
53
+ </script>