arvue-ui 0.2.0 → 0.3.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.
- package/dist/all.css +1 -1
- package/dist/autocomplete/autocomplete.js +52 -0
- package/dist/autocomplete/autocomplete.js.map +1 -0
- package/dist/autocomplete/autocompleteAnchor.js +24 -0
- package/dist/autocomplete/autocompleteAnchor.js.map +1 -0
- package/dist/autocomplete/autocompleteArrow.js +26 -0
- package/dist/autocomplete/autocompleteArrow.js.map +1 -0
- package/dist/autocomplete/autocompleteCancel.js +23 -0
- package/dist/autocomplete/autocompleteCancel.js.map +1 -0
- package/dist/autocomplete/autocompleteContent.js +77 -0
- package/dist/autocomplete/autocompleteContent.js.map +1 -0
- package/dist/autocomplete/autocompleteEmpty.js +33 -0
- package/dist/autocomplete/autocompleteEmpty.js.map +1 -0
- package/dist/autocomplete/autocompleteGroup.js +23 -0
- package/dist/autocomplete/autocompleteGroup.js.map +1 -0
- package/dist/autocomplete/autocompleteInput.js +65 -0
- package/dist/autocomplete/autocompleteInput.js.map +1 -0
- package/dist/autocomplete/autocompleteItem.js +36 -0
- package/dist/autocomplete/autocompleteItem.js.map +1 -0
- package/dist/autocomplete/autocompleteLabel.js +34 -0
- package/dist/autocomplete/autocompleteLabel.js.map +1 -0
- package/dist/autocomplete/autocompletePortal.js +25 -0
- package/dist/autocomplete/autocompletePortal.js.map +1 -0
- package/dist/autocomplete/autocompleteSeparator.js +33 -0
- package/dist/autocomplete/autocompleteSeparator.js.map +1 -0
- package/dist/autocomplete/autocompleteTrigger.js +24 -0
- package/dist/autocomplete/autocompleteTrigger.js.map +1 -0
- package/dist/autocomplete/autocompleteViewport.js +24 -0
- package/dist/autocomplete/autocompleteViewport.js.map +1 -0
- package/dist/dialog/dialogContent.js +2 -2
- package/dist/dialog/dialogDescription.js +1 -1
- package/dist/dialog/dialogFooter.js +1 -1
- package/dist/dialog/dialogHeader.js +1 -1
- package/dist/dialog/dialogOverlay.js +1 -1
- package/dist/dialog/dialogTitle.js +1 -1
- package/dist/drawer/drawerContent.js +1 -1
- package/dist/drawer/drawerDescription.js +1 -1
- package/dist/drawer/drawerFooter.js +1 -1
- package/dist/drawer/drawerHeader.js +1 -1
- package/dist/drawer/drawerOverlay.js +1 -1
- package/dist/drawer/drawerTitle.js +1 -1
- package/dist/index.d.ts +442 -56
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +720 -40
- package/dist/index.js.map +1 -1
- package/dist/sheet/sheet.js +54 -0
- package/dist/sheet/sheet.js.map +1 -0
- package/dist/sheet/sheetClose.js +23 -0
- package/dist/sheet/sheetClose.js.map +1 -0
- package/dist/sheet/sheetContent.js +61 -0
- package/dist/sheet/sheetContent.js.map +1 -0
- package/dist/sheet/sheetDescription.js +33 -0
- package/dist/sheet/sheetDescription.js.map +1 -0
- package/dist/sheet/sheetFooter.js +33 -0
- package/dist/sheet/sheetFooter.js.map +1 -0
- package/dist/sheet/sheetHeader.js +33 -0
- package/dist/sheet/sheetHeader.js.map +1 -0
- package/dist/sheet/sheetOverlay.js +34 -0
- package/dist/sheet/sheetOverlay.js.map +1 -0
- package/dist/sheet/sheetTitle.js +33 -0
- package/dist/sheet/sheetTitle.js.map +1 -0
- package/dist/sheet/sheetTrigger.js +23 -0
- package/dist/sheet/sheetTrigger.js.map +1 -0
- package/dist/style.css +24 -0
- package/package.json +3 -2
- package/src/autocomplete/Autocomplete.vue +36 -0
- package/src/autocomplete/AutocompleteAnchor.vue +17 -0
- package/src/autocomplete/AutocompleteArrow.vue +17 -0
- package/src/autocomplete/AutocompleteCancel.vue +17 -0
- package/src/autocomplete/AutocompleteContent.vue +45 -0
- package/src/autocomplete/AutocompleteEmpty.vue +31 -0
- package/src/autocomplete/AutocompleteGroup.vue +17 -0
- package/src/autocomplete/AutocompleteInput.vue +63 -0
- package/src/autocomplete/AutocompleteItem.vue +32 -0
- package/src/autocomplete/AutocompleteLabel.vue +31 -0
- package/src/autocomplete/AutocompletePortal.vue +17 -0
- package/src/autocomplete/AutocompleteSeparator.vue +31 -0
- package/src/autocomplete/AutocompleteTrigger.vue +17 -0
- package/src/autocomplete/AutocompleteViewport.vue +17 -0
- package/src/autocomplete/autocomplete-content.css +7 -0
- package/src/autocomplete/autocomplete-empty.css +7 -0
- package/src/autocomplete/autocomplete-item.css +14 -0
- package/src/autocomplete/autocomplete-label.css +6 -0
- package/src/autocomplete/autocomplete-separator.css +5 -0
- package/src/autocomplete/autocomplete.css +4 -0
- package/src/autocomplete/index.ts +60 -0
- package/src/dialog/dialog-description.css +1 -0
- package/src/drawer/drawer-description.css +1 -0
- package/src/index.ts +2 -0
- package/src/sheet/Sheet.vue +29 -0
- package/src/sheet/SheetClose.vue +19 -0
- package/src/sheet/SheetContent.vue +53 -0
- package/src/sheet/SheetDescription.vue +33 -0
- package/src/sheet/SheetFooter.vue +31 -0
- package/src/sheet/SheetHeader.vue +31 -0
- package/src/sheet/SheetOverlay.vue +31 -0
- package/src/sheet/SheetTitle.vue +33 -0
- package/src/sheet/SheetTrigger.vue +17 -0
- package/src/sheet/index.ts +38 -0
- package/src/sheet/sheet-content.css +67 -0
- package/src/sheet/sheet-description.css +5 -0
- package/src/sheet/sheet-footer.css +11 -0
- package/src/sheet/sheet-header.css +6 -0
- package/src/sheet/sheet-overlay.css +12 -0
- 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.
|
|
3
|
+
"version": "0.3.0",
|
|
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,45 @@
|
|
|
1
|
+
<style>
|
|
2
|
+
@import './autocomplete-content.css';
|
|
3
|
+
</style>
|
|
4
|
+
|
|
5
|
+
<template>
|
|
6
|
+
<AutocompletePortal>
|
|
7
|
+
<AutocompleteContent
|
|
8
|
+
v-bind="{ ...$attrs, ...forwarded }"
|
|
9
|
+
:class="clsx('arvue-autocomplete-content', props.class)"
|
|
10
|
+
position="popper"
|
|
11
|
+
>
|
|
12
|
+
<AutocompleteViewport>
|
|
13
|
+
<slot/>
|
|
14
|
+
</AutocompleteViewport>
|
|
15
|
+
</AutocompleteContent>
|
|
16
|
+
</AutocompletePortal>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<script lang="ts">
|
|
20
|
+
import type { ComboboxContentEmits, ComboboxContentProps } from 'reka-ui'
|
|
21
|
+
import type { HTMLAttributes } from 'vue'
|
|
22
|
+
|
|
23
|
+
export interface AutocompleteContentProps extends Omit<ComboboxContentProps, 'position'> {
|
|
24
|
+
class?: HTMLAttributes['class']
|
|
25
|
+
}
|
|
26
|
+
export interface AutocompleteContentEmits extends ComboboxContentEmits {}
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<script setup lang="ts">
|
|
30
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
31
|
+
import { clsx } from 'clsx'
|
|
32
|
+
import { AutocompleteContent, useForwardPropsEmits } from 'reka-ui'
|
|
33
|
+
import { AutocompletePortal, AutocompleteViewport } from '.'
|
|
34
|
+
|
|
35
|
+
defineOptions({
|
|
36
|
+
inheritAttrs: false,
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
const props = defineProps<AutocompleteContentProps>()
|
|
40
|
+
const emits = defineEmits<AutocompleteContentEmits>()
|
|
41
|
+
|
|
42
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
43
|
+
|
|
44
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
45
|
+
</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,63 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<AutocompleteAnchor
|
|
3
|
+
class="state-with-inner-icon right"
|
|
4
|
+
:reference="inputRef?.$el"
|
|
5
|
+
>
|
|
6
|
+
<AutocompleteInput
|
|
7
|
+
v-bind="{ ...$attrs, ...forwarded }"
|
|
8
|
+
ref="inputRef"
|
|
9
|
+
/>
|
|
10
|
+
<AutocompleteTrigger
|
|
11
|
+
v-if="showTriggerButton"
|
|
12
|
+
class="icon"
|
|
13
|
+
>
|
|
14
|
+
<i class="fas fa-chevron-down"/>
|
|
15
|
+
</AutocompleteTrigger>
|
|
16
|
+
</AutocompleteAnchor>
|
|
17
|
+
<AutocompleteCancel
|
|
18
|
+
v-if="showCancelButton"
|
|
19
|
+
class="icon"
|
|
20
|
+
@click="emits('cancel')"
|
|
21
|
+
>
|
|
22
|
+
<i class="fas fa-times"/>
|
|
23
|
+
</AutocompleteCancel>
|
|
24
|
+
</template>
|
|
25
|
+
|
|
26
|
+
<script lang="ts">
|
|
27
|
+
import type {
|
|
28
|
+
AutocompleteInputEmits as RekaAutocompleteInputEmits,
|
|
29
|
+
AutocompleteInputProps as RekaAutocompleteInputProps,
|
|
30
|
+
} from 'reka-ui'
|
|
31
|
+
|
|
32
|
+
export interface AutocompleteInputProps extends RekaAutocompleteInputProps {
|
|
33
|
+
showTriggerButton?: boolean
|
|
34
|
+
showCancelButton?: boolean
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface AutocompleteInputEmits extends RekaAutocompleteInputEmits {
|
|
38
|
+
'cancel': [void]
|
|
39
|
+
}
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<script setup lang="ts">
|
|
43
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
44
|
+
import { AutocompleteInput, useForwardPropsEmits } from 'reka-ui'
|
|
45
|
+
import { useTemplateRef } from 'vue'
|
|
46
|
+
import { AutocompleteAnchor, AutocompleteCancel, AutocompleteTrigger } from '.'
|
|
47
|
+
|
|
48
|
+
defineOptions({
|
|
49
|
+
inheritAttrs: false,
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
const props = withDefaults(defineProps<AutocompleteInputProps>(), {
|
|
53
|
+
showTriggerButton: true,
|
|
54
|
+
showCancelButton: false,
|
|
55
|
+
})
|
|
56
|
+
const emits = defineEmits<AutocompleteInputEmits>()
|
|
57
|
+
|
|
58
|
+
const delegatedProps = reactiveOmit(props, 'showCancelButton', 'showTriggerButton')
|
|
59
|
+
|
|
60
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
61
|
+
|
|
62
|
+
const inputRef = useTemplateRef('inputRef')
|
|
63
|
+
</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,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,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'
|
package/src/index.ts
CHANGED
|
@@ -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>
|