vome-core 0.1.77 → 0.1.79
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/admin/api/client.js +2 -3
- package/dist/admin/components/layout/vm-app-header.vue +341 -0
- package/dist/admin/components/layout/vm-app-sidebar.vue +187 -0
- package/dist/admin/components/layout/vm-sidebar-flyout.vue +268 -0
- package/dist/admin/components/layout/vm-sidebar-nav-item.vue +490 -0
- package/dist/admin/components/layout/vm-sidebar-nav.vue +104 -0
- package/dist/admin/components/layout/vm-tags-view.vue +233 -0
- package/dist/admin/components/ui/avatar/Avatar.vue +18 -0
- package/dist/admin/components/ui/avatar/AvatarFallback.vue +21 -0
- package/dist/admin/components/ui/avatar/AvatarImage.vue +16 -0
- package/dist/admin/components/ui/avatar/index.d.ts +3 -0
- package/dist/admin/components/ui/avatar/index.js +1 -0
- package/dist/admin/components/ui/badge/Badge.vue +26 -0
- package/dist/admin/components/ui/badge/index.d.ts +6 -0
- package/dist/admin/components/ui/badge/index.js +1 -0
- package/dist/admin/components/ui/button/Button.vue +31 -0
- package/dist/admin/components/ui/button/index.d.ts +7 -0
- package/dist/admin/components/ui/button/index.js +1 -0
- package/dist/admin/components/ui/checkbox/Checkbox.vue +35 -0
- package/dist/admin/components/ui/checkbox/index.d.ts +1 -0
- package/dist/admin/components/ui/checkbox/index.js +1 -0
- package/dist/admin/components/ui/dialog/Dialog.vue +19 -0
- package/dist/admin/components/ui/dialog/DialogClose.vue +15 -0
- package/dist/admin/components/ui/dialog/DialogContent.vue +135 -0
- package/dist/admin/components/ui/dialog/DialogDescription.vue +23 -0
- package/dist/admin/components/ui/dialog/DialogFooter.vue +27 -0
- package/dist/admin/components/ui/dialog/DialogHeader.vue +17 -0
- package/dist/admin/components/ui/dialog/DialogOverlay.vue +21 -0
- package/dist/admin/components/ui/dialog/DialogScrollContent.vue +60 -0
- package/dist/admin/components/ui/dialog/DialogTitle.vue +23 -0
- package/dist/admin/components/ui/dialog/DialogTrigger.vue +15 -0
- package/dist/admin/components/ui/dialog/index.d.ts +10 -0
- package/dist/admin/components/ui/dialog/index.js +1 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenu.vue +19 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
- package/dist/admin/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
- package/dist/admin/components/ui/dropdown-menu/index.d.ts +15 -0
- package/dist/admin/components/ui/dropdown-menu/index.js +1 -0
- package/dist/admin/components/ui/input/Input.vue +34 -0
- package/dist/admin/components/ui/input/index.d.ts +1 -0
- package/dist/admin/components/ui/input/index.js +1 -0
- package/dist/admin/components/ui/label/Label.vue +26 -0
- package/dist/admin/components/ui/label/index.d.ts +1 -0
- package/dist/admin/components/ui/label/index.js +1 -0
- package/dist/admin/components/ui/scroll-area/ScrollArea.vue +33 -0
- package/dist/admin/components/ui/scroll-area/ScrollBar.vue +32 -0
- package/dist/admin/components/ui/scroll-area/index.d.ts +2 -0
- package/dist/admin/components/ui/scroll-area/index.js +1 -0
- package/dist/admin/components/ui/select/Select.vue +19 -0
- package/dist/admin/components/ui/select/SelectContent.vue +51 -0
- package/dist/admin/components/ui/select/SelectGroup.vue +15 -0
- package/dist/admin/components/ui/select/SelectItem.vue +44 -0
- package/dist/admin/components/ui/select/SelectItemText.vue +15 -0
- package/dist/admin/components/ui/select/SelectLabel.vue +17 -0
- package/dist/admin/components/ui/select/SelectScrollDownButton.vue +26 -0
- package/dist/admin/components/ui/select/SelectScrollUpButton.vue +26 -0
- package/dist/admin/components/ui/select/SelectSeparator.vue +19 -0
- package/dist/admin/components/ui/select/SelectTrigger.vue +33 -0
- package/dist/admin/components/ui/select/SelectValue.vue +15 -0
- package/dist/admin/components/ui/select/index.d.ts +11 -0
- package/dist/admin/components/ui/select/index.js +1 -0
- package/dist/admin/components/ui/separator/Separator.vue +29 -0
- package/dist/admin/components/ui/separator/index.d.ts +1 -0
- package/dist/admin/components/ui/separator/index.js +1 -0
- package/dist/admin/components/ui/sheet/Sheet.vue +19 -0
- package/dist/admin/components/ui/sheet/SheetClose.vue +15 -0
- package/dist/admin/components/ui/sheet/SheetContent.vue +63 -0
- package/dist/admin/components/ui/sheet/SheetDescription.vue +21 -0
- package/dist/admin/components/ui/sheet/SheetFooter.vue +16 -0
- package/dist/admin/components/ui/sheet/SheetHeader.vue +15 -0
- package/dist/admin/components/ui/sheet/SheetOverlay.vue +21 -0
- package/dist/admin/components/ui/sheet/SheetTitle.vue +21 -0
- package/dist/admin/components/ui/sheet/SheetTrigger.vue +15 -0
- package/dist/admin/components/ui/sheet/index.d.ts +8 -0
- package/dist/admin/components/ui/sheet/index.js +1 -0
- package/dist/admin/components/ui/sonner/Toaster.vue +117 -0
- package/dist/admin/components/ui/sonner/index.d.ts +1 -0
- package/dist/admin/components/ui/sonner/index.js +1 -0
- package/dist/admin/components/ui/table/Table.vue +16 -0
- package/dist/admin/components/ui/table/TableBody.vue +17 -0
- package/dist/admin/components/ui/table/TableCaption.vue +17 -0
- package/dist/admin/components/ui/table/TableCell.vue +22 -0
- package/dist/admin/components/ui/table/TableEmpty.vue +34 -0
- package/dist/admin/components/ui/table/TableFooter.vue +17 -0
- package/dist/admin/components/ui/table/TableHead.vue +17 -0
- package/dist/admin/components/ui/table/TableHeader.vue +17 -0
- package/dist/admin/components/ui/table/TableRow.vue +17 -0
- package/dist/admin/components/ui/table/index.d.ts +9 -0
- package/dist/admin/components/ui/table/index.js +1 -0
- package/dist/admin/components/ui/tabs/Tabs.vue +24 -0
- package/dist/admin/components/ui/tabs/TabsContent.vue +21 -0
- package/dist/admin/components/ui/tabs/TabsList.vue +24 -0
- package/dist/admin/components/ui/tabs/TabsTrigger.vue +26 -0
- package/dist/admin/components/ui/tabs/index.d.ts +4 -0
- package/dist/admin/components/ui/tabs/index.js +1 -0
- package/dist/admin/components/ui/tooltip/Tooltip.vue +19 -0
- package/dist/admin/components/ui/tooltip/TooltipContent.vue +34 -0
- package/dist/admin/components/ui/tooltip/TooltipProvider.vue +14 -0
- package/dist/admin/components/ui/tooltip/TooltipTrigger.vue +15 -0
- package/dist/admin/components/ui/tooltip/index.d.ts +4 -0
- package/dist/admin/components/ui/tooltip/index.js +1 -0
- package/dist/admin/crud/components/vm-color-picker.vue +0 -3
- package/dist/admin/crud/components/vm-richtext-extensions.js +1 -1
- package/dist/admin/crud/config.js +1 -1
- package/dist/admin/crud/confirm.d.ts +8 -0
- package/dist/admin/crud/confirm.js +1 -1
- package/dist/admin/crud/crud-page-request.js +1 -1
- package/dist/admin/crud/dict.js +1 -1
- package/dist/admin/crud/export-fetch.js +1 -1
- package/dist/admin/crud/key.js +1 -1
- package/dist/admin/crud/plugins.js +1 -1
- package/dist/admin/crud/span.js +1 -1
- package/dist/admin/crud/style.d.ts +4 -0
- package/dist/admin/crud/style.js +1 -1
- package/dist/admin/crud/validate.js +1 -1
- package/dist/admin/directives/perm.js +1 -1
- package/dist/admin/env.d.ts +0 -4
- package/dist/admin/hooks/useUpload.js +1 -1
- package/dist/admin/index.d.ts +11 -9
- package/dist/admin/index.js +16 -27
- package/dist/admin/lib/browser.js +1 -1
- package/dist/admin/lib/cn.js +1 -1
- package/dist/admin/lib/dialog-float.js +1 -1
- package/dist/admin/lib/document-title.d.ts +6 -0
- package/dist/admin/lib/document-title.js +1 -0
- package/dist/admin/lib/export-excel.js +1 -1
- package/dist/admin/lib/import-excel.js +1 -1
- package/dist/admin/lib/json.js +1 -1
- package/dist/admin/lib/menu.js +1 -1
- package/dist/admin/lib/micro-locale.d.ts +5 -0
- package/dist/admin/lib/micro-locale.js +1 -0
- package/dist/admin/lib/micro-theme.d.ts +14 -0
- package/dist/admin/lib/micro-theme.js +1 -0
- package/dist/admin/lib/setup-crud-defaults.d.ts +2 -0
- package/dist/admin/lib/setup-crud-defaults.js +1 -0
- package/dist/admin/lib/shell.d.ts +13 -0
- package/dist/admin/lib/shell.js +1 -0
- package/dist/admin/lib/theme-color-options.js +1 -1
- package/dist/admin/lib/tree.js +1 -1
- package/dist/admin/lib/upload.js +1 -1
- package/dist/admin/lib/video-frame.js +1 -1
- package/dist/admin/router/create.d.ts +16 -0
- package/dist/admin/router/create.js +1 -0
- package/dist/admin/router/guards.d.ts +6 -0
- package/dist/admin/router/guards.js +1 -0
- package/dist/admin/router/index.d.ts +5 -3
- package/dist/admin/router/index.js +5 -80
- package/dist/admin/router/menu-routes.d.ts +7 -2
- package/dist/admin/router/menu-routes.js +10 -12
- package/dist/admin/service/index.js +0 -3
- package/dist/admin/stores/dict.d.ts +13 -0
- package/dist/admin/stores/dict.js +1 -0
- package/dist/admin/stores/locale.d.ts +3 -0
- package/dist/admin/stores/locale.js +1 -0
- package/dist/admin/stores/theme.d.ts +1 -0
- package/dist/admin/stores/theme.js +1 -0
- package/dist/admin/themes/dark.d.ts +2 -0
- package/dist/admin/themes/dark.js +1 -0
- package/dist/admin/themes/index.d.ts +9 -0
- package/dist/admin/themes/index.js +1 -0
- package/dist/admin/themes/light.d.ts +2 -0
- package/dist/admin/themes/light.js +1 -0
- package/dist/client/configure.d.ts +3 -0
- package/dist/client/configure.js +8 -1
- package/dist/client/vite-admin.js +2 -4
- package/dist/client/vite-auto-import.js +4 -4
- package/dist/client/vite-resolve.d.ts +3 -3
- package/dist/client/vite-resolve.js +10 -15
- package/dist/ext/plugin-market-urls.d.ts +8 -0
- package/dist/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/shared/datetime-picker.js +1 -1
- package/dist/shared/excel.js +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/locale-json.js +1 -1
- package/dist/shared/tree.js +1 -1
- package/package.json +13 -4
- package/typings/admin/theme.ts +10 -0
- package/dist/admin/config/plugin-dev.d.ts +0 -52
- package/dist/admin/config/plugin-dev.js +0 -1
- package/dist/comm/chinese-segments.test.d.ts +0 -1
- package/dist/comm/path.test.d.ts +0 -1
- package/typings/admin/base/auth.d.ts +0 -21
- package/typings/admin/base/permission.d.ts +0 -19
- package/typings/admin/comm/crud.d.ts +0 -343
- package/typings/admin/comm/eps.d.ts +0 -66
- package/typings/admin/comm/request.d.ts +0 -13
- package/typings/admin/comm/service.d.ts +0 -48
- package/typings/admin/comm/upload.d.ts +0 -26
- package/typings/admin/host.d.ts +0 -66
- package/typings/admin/vome/browser.d.ts +0 -10
- package/typings/admin/vome/module.d.ts +0 -13
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "../../../lib/cn"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
|
+
}>()
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<div
|
|
12
|
+
data-slot="dialog-header"
|
|
13
|
+
:class="cn('flex flex-col gap-2 text-center sm:text-left', props.class)"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</div>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DialogOverlayProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { DialogOverlay } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<DialogOverlayProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<DialogOverlay
|
|
15
|
+
data-slot="dialog-overlay"
|
|
16
|
+
v-bind="delegatedProps"
|
|
17
|
+
:class="cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80', props.class)"
|
|
18
|
+
>
|
|
19
|
+
<slot />
|
|
20
|
+
</DialogOverlay>
|
|
21
|
+
</template>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DialogContentEmits, DialogContentProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { X } from "@lucide/vue"
|
|
5
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
6
|
+
import {
|
|
7
|
+
DialogClose,
|
|
8
|
+
DialogContent,
|
|
9
|
+
DialogOverlay,
|
|
10
|
+
DialogPortal,
|
|
11
|
+
useForwardPropsEmits,
|
|
12
|
+
} from "reka-ui"
|
|
13
|
+
import { cn } from "../../../lib/cn"
|
|
14
|
+
|
|
15
|
+
defineOptions({
|
|
16
|
+
inheritAttrs: false,
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
const props = defineProps<DialogContentProps & { class?: HTMLAttributes["class"] }>()
|
|
20
|
+
const emits = defineEmits<DialogContentEmits>()
|
|
21
|
+
|
|
22
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
23
|
+
|
|
24
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<template>
|
|
28
|
+
<DialogPortal>
|
|
29
|
+
<DialogOverlay
|
|
30
|
+
class="fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
|
|
31
|
+
>
|
|
32
|
+
<DialogContent
|
|
33
|
+
:class="
|
|
34
|
+
cn(
|
|
35
|
+
'relative z-50 grid w-full max-w-lg my-8 gap-4 border border-border bg-background p-6 shadow-lg duration-200 sm:rounded-lg md:w-full',
|
|
36
|
+
props.class,
|
|
37
|
+
)
|
|
38
|
+
"
|
|
39
|
+
v-bind="{ ...$attrs, ...forwarded }"
|
|
40
|
+
:aria-describedby="undefined"
|
|
41
|
+
@pointer-down-outside="(event) => {
|
|
42
|
+
const originalEvent = event.detail.originalEvent;
|
|
43
|
+
const target = originalEvent.target as HTMLElement;
|
|
44
|
+
if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
}
|
|
47
|
+
}"
|
|
48
|
+
>
|
|
49
|
+
<slot />
|
|
50
|
+
|
|
51
|
+
<DialogClose
|
|
52
|
+
class="absolute top-4 right-4 p-0.5 transition-colors rounded-md hover:bg-secondary"
|
|
53
|
+
>
|
|
54
|
+
<X class="w-4 h-4" />
|
|
55
|
+
<span class="sr-only">Close</span>
|
|
56
|
+
</DialogClose>
|
|
57
|
+
</DialogContent>
|
|
58
|
+
</DialogOverlay>
|
|
59
|
+
</DialogPortal>
|
|
60
|
+
</template>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DialogTitleProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { DialogTitle, useForwardProps } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<DialogTitleProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
|
|
12
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<DialogTitle
|
|
17
|
+
data-slot="dialog-title"
|
|
18
|
+
v-bind="forwardedProps"
|
|
19
|
+
:class="cn('text-lg leading-none font-semibold', props.class)"
|
|
20
|
+
>
|
|
21
|
+
<slot />
|
|
22
|
+
</DialogTitle>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DialogTriggerProps } from "reka-ui"
|
|
3
|
+
import { DialogTrigger } from "reka-ui"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<DialogTriggerProps>()
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<DialogTrigger
|
|
10
|
+
data-slot="dialog-trigger"
|
|
11
|
+
v-bind="props"
|
|
12
|
+
>
|
|
13
|
+
<slot />
|
|
14
|
+
</DialogTrigger>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { default as Dialog } from "./Dialog.vue";
|
|
2
|
+
export { default as DialogClose } from "./DialogClose.vue";
|
|
3
|
+
export { default as DialogContent } from "./DialogContent.vue";
|
|
4
|
+
export { default as DialogDescription } from "./DialogDescription.vue";
|
|
5
|
+
export { default as DialogFooter } from "./DialogFooter.vue";
|
|
6
|
+
export { default as DialogHeader } from "./DialogHeader.vue";
|
|
7
|
+
export { default as DialogOverlay } from "./DialogOverlay.vue";
|
|
8
|
+
export { default as DialogScrollContent } from "./DialogScrollContent.vue";
|
|
9
|
+
export { default as DialogTitle } from "./DialogTitle.vue";
|
|
10
|
+
export { default as DialogTrigger } from "./DialogTrigger.vue";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x1da39d,_0x41b4f9){var _0xc4097e=_0x19d2,_0x823f0f=_0x1da39d();while(!![]){try{var _0x30ca02=-parseInt(_0xc4097e(0x11d))/0x1*(parseInt(_0xc4097e(0x118))/0x2)+-parseInt(_0xc4097e(0x11e))/0x3*(-parseInt(_0xc4097e(0x117))/0x4)+parseInt(_0xc4097e(0x115))/0x5*(parseInt(_0xc4097e(0x11b))/0x6)+parseInt(_0xc4097e(0x116))/0x7*(-parseInt(_0xc4097e(0x11c))/0x8)+parseInt(_0xc4097e(0x119))/0x9*(parseInt(_0xc4097e(0x11f))/0xa)+-parseInt(_0xc4097e(0x120))/0xb+parseInt(_0xc4097e(0x11a))/0xc;if(_0x30ca02===_0x41b4f9)break;else _0x823f0f['push'](_0x823f0f['shift']());}catch(_0x8acb10){_0x823f0f['push'](_0x823f0f['shift']());}}}(_0x5d97,0x242f7));export{default as Dialog}from'./Dialog.vue';export{default as DialogClose}from'./DialogClose.vue';function _0x19d2(_0x29c4f9,_0x378114){_0x29c4f9=_0x29c4f9-0x115;var _0x5d9717=_0x5d97();var _0x19d25d=_0x5d9717[_0x29c4f9];if(_0x19d2['DEXMGP']===undefined){var _0x1bf3ea=function(_0x2170a5){var _0x40317a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x51e405='',_0x1e82b0='';for(var _0x41f7ad=0x0,_0x340745,_0x56726b,_0x5ef8ca=0x0;_0x56726b=_0x2170a5['charAt'](_0x5ef8ca++);~_0x56726b&&(_0x340745=_0x41f7ad%0x4?_0x340745*0x40+_0x56726b:_0x56726b,_0x41f7ad++%0x4)?_0x51e405+=String['fromCharCode'](0xff&_0x340745>>(-0x2*_0x41f7ad&0x6)):0x0){_0x56726b=_0x40317a['indexOf'](_0x56726b);}for(var _0x289a46=0x0,_0x507828=_0x51e405['length'];_0x289a46<_0x507828;_0x289a46++){_0x1e82b0+='%'+('00'+_0x51e405['charCodeAt'](_0x289a46)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e82b0);};_0x19d2['llQSXN']=_0x1bf3ea,_0x19d2['xIffTl']={},_0x19d2['DEXMGP']=!![];}var _0x32dcd0=_0x5d9717[0x0],_0x144b90=_0x29c4f9+_0x32dcd0,_0x29cc02=_0x19d2['xIffTl'][_0x144b90];return!_0x29cc02?(_0x19d25d=_0x19d2['llQSXN'](_0x19d25d),_0x19d2['xIffTl'][_0x144b90]=_0x19d25d):_0x19d25d=_0x29cc02,_0x19d25d;}export{default as DialogContent}from'./DialogContent.vue';export{default as DialogDescription}from'./DialogDescription.vue';export{default as DialogFooter}from'./DialogFooter.vue';export{default as DialogHeader}from'./DialogHeader.vue';export{default as DialogOverlay}from'./DialogOverlay.vue';export{default as DialogScrollContent}from'./DialogScrollContent.vue';function _0x5d97(){var _0x2d4624=['mtaYmLLNrM1Zua','mZyYndntrNLSvu0','mtuYodqYohzutKDXCW','ntm5nJrRB3fTuwq','nZCWneTtsM5lCW','mJa5qxnzqNHM','mJf5D2LjAwG','nZmWsurVv1fP','ndG0ntK0AvfxuLjR','mtviChfSDeW','mtKXmvDzAuzwua','nJq5ndb1tvDLCNu'];_0x5d97=function(){return _0x2d4624;};return _0x5d97();}export{default as DialogTitle}from'./DialogTitle.vue';export{default as DialogTrigger}from'./DialogTrigger.vue';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuRootEmits, DropdownMenuRootProps } from "reka-ui"
|
|
3
|
+
import { DropdownMenuRoot, useForwardPropsEmits } from "reka-ui"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<DropdownMenuRootProps>()
|
|
6
|
+
const emits = defineEmits<DropdownMenuRootEmits>()
|
|
7
|
+
|
|
8
|
+
const forwarded = useForwardPropsEmits(props, emits)
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<template>
|
|
12
|
+
<DropdownMenuRoot
|
|
13
|
+
v-slot="slotProps"
|
|
14
|
+
data-slot="dropdown-menu"
|
|
15
|
+
v-bind="forwarded"
|
|
16
|
+
>
|
|
17
|
+
<slot v-bind="slotProps" />
|
|
18
|
+
</DropdownMenuRoot>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuCheckboxItemEmits, DropdownMenuCheckboxItemProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { Check } from "@lucide/vue"
|
|
5
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
6
|
+
import {
|
|
7
|
+
DropdownMenuCheckboxItem,
|
|
8
|
+
DropdownMenuItemIndicator,
|
|
9
|
+
useForwardPropsEmits,
|
|
10
|
+
} from "reka-ui"
|
|
11
|
+
import { cn } from "../../../lib/cn"
|
|
12
|
+
|
|
13
|
+
const props = defineProps<DropdownMenuCheckboxItemProps & { class?: HTMLAttributes["class"] }>()
|
|
14
|
+
const emits = defineEmits<DropdownMenuCheckboxItemEmits>()
|
|
15
|
+
|
|
16
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
17
|
+
|
|
18
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
<DropdownMenuCheckboxItem
|
|
23
|
+
data-slot="dropdown-menu-checkbox-item"
|
|
24
|
+
v-bind="forwarded"
|
|
25
|
+
:class=" cn(
|
|
26
|
+
'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
|
|
27
|
+
props.class,
|
|
28
|
+
)"
|
|
29
|
+
>
|
|
30
|
+
<span class="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
|
|
31
|
+
<DropdownMenuItemIndicator>
|
|
32
|
+
<slot name="indicator-icon">
|
|
33
|
+
<Check class="size-4" />
|
|
34
|
+
</slot>
|
|
35
|
+
</DropdownMenuItemIndicator>
|
|
36
|
+
</span>
|
|
37
|
+
<slot />
|
|
38
|
+
</DropdownMenuCheckboxItem>
|
|
39
|
+
</template>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuContentEmits, DropdownMenuContentProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuContent,
|
|
7
|
+
DropdownMenuPortal,
|
|
8
|
+
useForwardPropsEmits,
|
|
9
|
+
} from "reka-ui"
|
|
10
|
+
import { cn } from "../../../lib/cn"
|
|
11
|
+
|
|
12
|
+
defineOptions({
|
|
13
|
+
inheritAttrs: false,
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
const props = withDefaults(
|
|
17
|
+
defineProps<DropdownMenuContentProps & { class?: HTMLAttributes["class"] }>(),
|
|
18
|
+
{
|
|
19
|
+
sideOffset: 4,
|
|
20
|
+
},
|
|
21
|
+
)
|
|
22
|
+
const emits = defineEmits<DropdownMenuContentEmits>()
|
|
23
|
+
|
|
24
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
25
|
+
|
|
26
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<template>
|
|
30
|
+
<DropdownMenuPortal>
|
|
31
|
+
<DropdownMenuContent
|
|
32
|
+
data-slot="dropdown-menu-content"
|
|
33
|
+
v-bind="{ ...$attrs, ...forwarded }"
|
|
34
|
+
:class="cn('vm-dialog-float bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[100] max-h-(--reka-dropdown-menu-content-available-height) min-w-[128px] origin-(--reka-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md', props.class)"
|
|
35
|
+
>
|
|
36
|
+
<slot />
|
|
37
|
+
</DropdownMenuContent>
|
|
38
|
+
</DropdownMenuPortal>
|
|
39
|
+
</template>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuGroupProps } from "reka-ui"
|
|
3
|
+
import { DropdownMenuGroup } from "reka-ui"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<DropdownMenuGroupProps>()
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<DropdownMenuGroup
|
|
10
|
+
data-slot="dropdown-menu-group"
|
|
11
|
+
v-bind="props"
|
|
12
|
+
>
|
|
13
|
+
<slot />
|
|
14
|
+
</DropdownMenuGroup>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuItemProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { DropdownMenuItem, useForwardProps } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = withDefaults(defineProps<DropdownMenuItemProps & {
|
|
9
|
+
class?: HTMLAttributes["class"]
|
|
10
|
+
inset?: boolean
|
|
11
|
+
variant?: "default" | "destructive"
|
|
12
|
+
}>(), {
|
|
13
|
+
variant: "default",
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
const delegatedProps = reactiveOmit(props, "inset", "variant", "class")
|
|
17
|
+
|
|
18
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
<DropdownMenuItem
|
|
23
|
+
data-slot="dropdown-menu-item"
|
|
24
|
+
:data-inset="inset ? '' : undefined"
|
|
25
|
+
:data-variant="variant"
|
|
26
|
+
v-bind="forwardedProps"
|
|
27
|
+
:class="cn('focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=\'text-\'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4', props.class)"
|
|
28
|
+
>
|
|
29
|
+
<slot />
|
|
30
|
+
</DropdownMenuItem>
|
|
31
|
+
</template>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuLabelProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { DropdownMenuLabel, useForwardProps } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<DropdownMenuLabelProps & { class?: HTMLAttributes["class"], inset?: boolean }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class", "inset")
|
|
11
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<DropdownMenuLabel
|
|
16
|
+
data-slot="dropdown-menu-label"
|
|
17
|
+
:data-inset="inset ? '' : undefined"
|
|
18
|
+
v-bind="forwardedProps"
|
|
19
|
+
:class="cn('px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', props.class)"
|
|
20
|
+
>
|
|
21
|
+
<slot />
|
|
22
|
+
</DropdownMenuLabel>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuRadioGroupEmits, DropdownMenuRadioGroupProps } from "reka-ui"
|
|
3
|
+
import {
|
|
4
|
+
DropdownMenuRadioGroup,
|
|
5
|
+
useForwardPropsEmits,
|
|
6
|
+
} from "reka-ui"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<DropdownMenuRadioGroupProps>()
|
|
9
|
+
const emits = defineEmits<DropdownMenuRadioGroupEmits>()
|
|
10
|
+
|
|
11
|
+
const forwarded = useForwardPropsEmits(props, emits)
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<DropdownMenuRadioGroup
|
|
16
|
+
data-slot="dropdown-menu-radio-group"
|
|
17
|
+
v-bind="forwarded"
|
|
18
|
+
>
|
|
19
|
+
<slot />
|
|
20
|
+
</DropdownMenuRadioGroup>
|
|
21
|
+
</template>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuRadioItemEmits, DropdownMenuRadioItemProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { Circle } from "@lucide/vue"
|
|
5
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
6
|
+
import {
|
|
7
|
+
DropdownMenuItemIndicator,
|
|
8
|
+
DropdownMenuRadioItem,
|
|
9
|
+
useForwardPropsEmits,
|
|
10
|
+
} from "reka-ui"
|
|
11
|
+
import { cn } from "../../../lib/cn"
|
|
12
|
+
|
|
13
|
+
const props = defineProps<DropdownMenuRadioItemProps & { class?: HTMLAttributes["class"] }>()
|
|
14
|
+
|
|
15
|
+
const emits = defineEmits<DropdownMenuRadioItemEmits>()
|
|
16
|
+
|
|
17
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
18
|
+
|
|
19
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<DropdownMenuRadioItem
|
|
24
|
+
data-slot="dropdown-menu-radio-item"
|
|
25
|
+
v-bind="forwarded"
|
|
26
|
+
:class="cn(
|
|
27
|
+
'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
|
|
28
|
+
props.class,
|
|
29
|
+
)"
|
|
30
|
+
>
|
|
31
|
+
<span class="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
|
|
32
|
+
<DropdownMenuItemIndicator>
|
|
33
|
+
<slot name="indicator-icon">
|
|
34
|
+
<Circle class="size-2 fill-current" />
|
|
35
|
+
</slot>
|
|
36
|
+
</DropdownMenuItemIndicator>
|
|
37
|
+
</span>
|
|
38
|
+
<slot />
|
|
39
|
+
</DropdownMenuRadioItem>
|
|
40
|
+
</template>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuSeparatorProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuSeparator,
|
|
7
|
+
} from "reka-ui"
|
|
8
|
+
import { cn } from "../../../lib/cn"
|
|
9
|
+
|
|
10
|
+
const props = defineProps<DropdownMenuSeparatorProps & {
|
|
11
|
+
class?: HTMLAttributes["class"]
|
|
12
|
+
}>()
|
|
13
|
+
|
|
14
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<template>
|
|
18
|
+
<DropdownMenuSeparator
|
|
19
|
+
data-slot="dropdown-menu-separator"
|
|
20
|
+
v-bind="delegatedProps"
|
|
21
|
+
:class="cn('bg-border -mx-1 my-1 h-px', props.class)"
|
|
22
|
+
/>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "../../../lib/cn"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
|
+
}>()
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<span
|
|
12
|
+
data-slot="dropdown-menu-shortcut"
|
|
13
|
+
:class="cn('text-muted-foreground ml-auto text-xs tracking-widest', props.class)"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</span>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuSubEmits, DropdownMenuSubProps } from "reka-ui"
|
|
3
|
+
import {
|
|
4
|
+
DropdownMenuSub,
|
|
5
|
+
useForwardPropsEmits,
|
|
6
|
+
} from "reka-ui"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<DropdownMenuSubProps>()
|
|
9
|
+
const emits = defineEmits<DropdownMenuSubEmits>()
|
|
10
|
+
|
|
11
|
+
const forwarded = useForwardPropsEmits(props, emits)
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<DropdownMenuSub v-slot="slotProps" data-slot="dropdown-menu-sub" v-bind="forwarded">
|
|
16
|
+
<slot v-bind="slotProps" />
|
|
17
|
+
</DropdownMenuSub>
|
|
18
|
+
</template>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuSubContentEmits, DropdownMenuSubContentProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuSubContent,
|
|
7
|
+
useForwardPropsEmits,
|
|
8
|
+
} from "reka-ui"
|
|
9
|
+
import { cn } from "../../../lib/cn"
|
|
10
|
+
|
|
11
|
+
const props = defineProps<DropdownMenuSubContentProps & { class?: HTMLAttributes["class"] }>()
|
|
12
|
+
const emits = defineEmits<DropdownMenuSubContentEmits>()
|
|
13
|
+
|
|
14
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
15
|
+
|
|
16
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<template>
|
|
20
|
+
<DropdownMenuSubContent
|
|
21
|
+
data-slot="dropdown-menu-sub-content"
|
|
22
|
+
v-bind="forwarded"
|
|
23
|
+
:class="cn('vm-dialog-float bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[100] min-w-[128px] origin-(--reka-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg', props.class)"
|
|
24
|
+
>
|
|
25
|
+
<slot />
|
|
26
|
+
</DropdownMenuSubContent>
|
|
27
|
+
</template>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuSubTriggerProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { ChevronRight } from "@lucide/vue"
|
|
5
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
6
|
+
import {
|
|
7
|
+
DropdownMenuSubTrigger,
|
|
8
|
+
useForwardProps,
|
|
9
|
+
} from "reka-ui"
|
|
10
|
+
import { cn } from "../../../lib/cn"
|
|
11
|
+
|
|
12
|
+
const props = defineProps<DropdownMenuSubTriggerProps & { class?: HTMLAttributes["class"], inset?: boolean }>()
|
|
13
|
+
|
|
14
|
+
const delegatedProps = reactiveOmit(props, "class", "inset")
|
|
15
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<DropdownMenuSubTrigger
|
|
20
|
+
data-slot="dropdown-menu-sub-trigger"
|
|
21
|
+
v-bind="forwardedProps"
|
|
22
|
+
:data-inset="inset ? '' : undefined"
|
|
23
|
+
:class="cn(
|
|
24
|
+
'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4 data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=\'text-\'])]:text-muted-foreground',
|
|
25
|
+
props.class,
|
|
26
|
+
)"
|
|
27
|
+
>
|
|
28
|
+
<slot />
|
|
29
|
+
<ChevronRight class="ml-auto size-4" />
|
|
30
|
+
</DropdownMenuSubTrigger>
|
|
31
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuTriggerProps } from "reka-ui"
|
|
3
|
+
import { DropdownMenuTrigger, useForwardProps } from "reka-ui"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<DropdownMenuTriggerProps>()
|
|
6
|
+
|
|
7
|
+
const forwardedProps = useForwardProps(props)
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<DropdownMenuTrigger
|
|
12
|
+
data-slot="dropdown-menu-trigger"
|
|
13
|
+
v-bind="forwardedProps"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</DropdownMenuTrigger>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { default as DropdownMenu } from "./DropdownMenu.vue";
|
|
2
|
+
export { default as DropdownMenuCheckboxItem } from "./DropdownMenuCheckboxItem.vue";
|
|
3
|
+
export { default as DropdownMenuContent } from "./DropdownMenuContent.vue";
|
|
4
|
+
export { default as DropdownMenuGroup } from "./DropdownMenuGroup.vue";
|
|
5
|
+
export { default as DropdownMenuItem } from "./DropdownMenuItem.vue";
|
|
6
|
+
export { default as DropdownMenuLabel } from "./DropdownMenuLabel.vue";
|
|
7
|
+
export { default as DropdownMenuRadioGroup } from "./DropdownMenuRadioGroup.vue";
|
|
8
|
+
export { default as DropdownMenuRadioItem } from "./DropdownMenuRadioItem.vue";
|
|
9
|
+
export { default as DropdownMenuSeparator } from "./DropdownMenuSeparator.vue";
|
|
10
|
+
export { default as DropdownMenuShortcut } from "./DropdownMenuShortcut.vue";
|
|
11
|
+
export { default as DropdownMenuSub } from "./DropdownMenuSub.vue";
|
|
12
|
+
export { default as DropdownMenuSubContent } from "./DropdownMenuSubContent.vue";
|
|
13
|
+
export { default as DropdownMenuSubTrigger } from "./DropdownMenuSubTrigger.vue";
|
|
14
|
+
export { default as DropdownMenuTrigger } from "./DropdownMenuTrigger.vue";
|
|
15
|
+
export { DropdownMenuPortal } from "reka-ui";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x39a0(_0x5e6b8a,_0x469228){_0x5e6b8a=_0x5e6b8a-0x1cc;var _0x1273f7=_0x1273();var _0x39a057=_0x1273f7[_0x5e6b8a];if(_0x39a0['bPKHhE']===undefined){var _0x123e57=function(_0xad3cfe){var _0x500030='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3a3ee9='',_0x2b8b3f='';for(var _0x30f7b5=0x0,_0x3d087c,_0x557488,_0x2b5e13=0x0;_0x557488=_0xad3cfe['charAt'](_0x2b5e13++);~_0x557488&&(_0x3d087c=_0x30f7b5%0x4?_0x3d087c*0x40+_0x557488:_0x557488,_0x30f7b5++%0x4)?_0x3a3ee9+=String['fromCharCode'](0xff&_0x3d087c>>(-0x2*_0x30f7b5&0x6)):0x0){_0x557488=_0x500030['indexOf'](_0x557488);}for(var _0x11f819=0x0,_0x52aa5d=_0x3a3ee9['length'];_0x11f819<_0x52aa5d;_0x11f819++){_0x2b8b3f+='%'+('00'+_0x3a3ee9['charCodeAt'](_0x11f819)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b8b3f);};_0x39a0['GFivsa']=_0x123e57,_0x39a0['kjHhHV']={},_0x39a0['bPKHhE']=!![];}var _0x3df53f=_0x1273f7[0x0],_0x13d419=_0x5e6b8a+_0x3df53f,_0x55c88b=_0x39a0['kjHhHV'][_0x13d419];return!_0x55c88b?(_0x39a057=_0x39a0['GFivsa'](_0x39a057),_0x39a0['kjHhHV'][_0x13d419]=_0x39a057):_0x39a057=_0x55c88b,_0x39a057;}(function(_0x276dda,_0x4554f0){var _0x3095db=_0x39a0,_0xfef5da=_0x276dda();while(!![]){try{var _0x146eb4=-parseInt(_0x3095db(0x1d1))/0x1*(parseInt(_0x3095db(0x1cf))/0x2)+-parseInt(_0x3095db(0x1ce))/0x3*(-parseInt(_0x3095db(0x1d5))/0x4)+parseInt(_0x3095db(0x1d2))/0x5+parseInt(_0x3095db(0x1cc))/0x6*(parseInt(_0x3095db(0x1d3))/0x7)+-parseInt(_0x3095db(0x1d4))/0x8+-parseInt(_0x3095db(0x1d0))/0x9+parseInt(_0x3095db(0x1cd))/0xa;if(_0x146eb4===_0x4554f0)break;else _0xfef5da['push'](_0xfef5da['shift']());}catch(_0x4317f2){_0xfef5da['push'](_0xfef5da['shift']());}}}(_0x1273,0x9e9a9));export{default as DropdownMenu}from'./DropdownMenu.vue';export{default as DropdownMenuCheckboxItem}from'./DropdownMenuCheckboxItem.vue';export{default as DropdownMenuContent}from'./DropdownMenuContent.vue';export{default as DropdownMenuGroup}from'./DropdownMenuGroup.vue';function _0x1273(){var _0x1550c8=['ntm0ywrPCxrg','nZi4odGZoxL3DgjevG','ndiZvu5SvMr4','mtGXodi1nwnszhH0sa','mJG1odHKwMDZvuK','otqYmdaWsvjYC1bh','mtm5ndi4rxbnCMzS','mtuXmKDNv1nMsW','mJyYnti3meXPwenrDa','m3fMEKfdzq'];_0x1273=function(){return _0x1550c8;};return _0x1273();}export{default as DropdownMenuItem}from'./DropdownMenuItem.vue';export{default as DropdownMenuLabel}from'./DropdownMenuLabel.vue';export{default as DropdownMenuRadioGroup}from'./DropdownMenuRadioGroup.vue';export{default as DropdownMenuRadioItem}from'./DropdownMenuRadioItem.vue';export{default as DropdownMenuSeparator}from'./DropdownMenuSeparator.vue';export{default as DropdownMenuShortcut}from'./DropdownMenuShortcut.vue';export{default as DropdownMenuSub}from'./DropdownMenuSub.vue';export{default as DropdownMenuSubContent}from'./DropdownMenuSubContent.vue';export{default as DropdownMenuSubTrigger}from'./DropdownMenuSubTrigger.vue';export{default as DropdownMenuTrigger}from'./DropdownMenuTrigger.vue';export{DropdownMenuPortal}from'reka-ui';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { useVModel } from "@vueuse/core"
|
|
4
|
+
import { cn } from "../../../lib/cn"
|
|
5
|
+
|
|
6
|
+
const props = defineProps<{
|
|
7
|
+
defaultValue?: string | number
|
|
8
|
+
modelValue?: string | number
|
|
9
|
+
class?: HTMLAttributes["class"]
|
|
10
|
+
}>()
|
|
11
|
+
|
|
12
|
+
const emits = defineEmits<{
|
|
13
|
+
(e: "update:modelValue", payload: string | number): void
|
|
14
|
+
}>()
|
|
15
|
+
|
|
16
|
+
const modelValue = useVModel(props, "modelValue", emits, {
|
|
17
|
+
passive: true,
|
|
18
|
+
defaultValue: props.defaultValue,
|
|
19
|
+
})
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<input
|
|
24
|
+
v-model="modelValue"
|
|
25
|
+
data-slot="input"
|
|
26
|
+
:class="cn(
|
|
27
|
+
'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-[var(--vm-control-height)] w-full min-w-0 rounded-[var(--vm-control-radius)] border bg-transparent px-[var(--vm-control-padding-x)] py-0 text-sm shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',
|
|
28
|
+
/* 聚焦:不要外圈粗 ring,仅细边框淡蓝 */
|
|
29
|
+
'focus-visible:border-[var(--focus-border)] focus-visible:ring-0 focus-visible:shadow-none',
|
|
30
|
+
'aria-invalid:border-destructive aria-invalid:ring-0',
|
|
31
|
+
props.class,
|
|
32
|
+
)"
|
|
33
|
+
>
|
|
34
|
+
</template>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Input } from "./Input.vue";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0xe265(_0x517c2a,_0x483e19){_0x517c2a=_0x517c2a-0x77;var _0x242504=_0x2425();var _0xe265fb=_0x242504[_0x517c2a];if(_0xe265['MbPLSE']===undefined){var _0x1a8df7=function(_0x236aaf){var _0x390c75='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x101037='',_0x58680f='';for(var _0x2cd5e4=0x0,_0x4a1e06,_0x5475ff,_0x9b8227=0x0;_0x5475ff=_0x236aaf['charAt'](_0x9b8227++);~_0x5475ff&&(_0x4a1e06=_0x2cd5e4%0x4?_0x4a1e06*0x40+_0x5475ff:_0x5475ff,_0x2cd5e4++%0x4)?_0x101037+=String['fromCharCode'](0xff&_0x4a1e06>>(-0x2*_0x2cd5e4&0x6)):0x0){_0x5475ff=_0x390c75['indexOf'](_0x5475ff);}for(var _0x52ab27=0x0,_0x43cdbb=_0x101037['length'];_0x52ab27<_0x43cdbb;_0x52ab27++){_0x58680f+='%'+('00'+_0x101037['charCodeAt'](_0x52ab27)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x58680f);};_0xe265['BQamZd']=_0x1a8df7,_0xe265['RLowvH']={},_0xe265['MbPLSE']=!![];}var _0x1d6075=_0x242504[0x0],_0x138e35=_0x517c2a+_0x1d6075,_0x21c1d6=_0xe265['RLowvH'][_0x138e35];return!_0x21c1d6?(_0xe265fb=_0xe265['BQamZd'](_0xe265fb),_0xe265['RLowvH'][_0x138e35]=_0xe265fb):_0xe265fb=_0x21c1d6,_0xe265fb;}function _0x2425(){var _0x138c63=['nurZrKPoCW','mZyWntm0nKfRAeTJvG','mZqWnJy4v21nC0Pb','mty3mZaYmMvWAK5dEa','mtqZD0XSyurR','nJa2mLjfv09cDG','mtiWnfPpEvj2Ca','mtbpzKjlwvq','mtaXodiXodvcz2zWwMK','nwnjEerJsq','mZu4neLSDxfdCa','mtCXodm4BhfQrK5n','mZaWtxvqvgHU'];_0x2425=function(){return _0x138c63;};return _0x2425();}(function(_0x5471cf,_0x4d5d22){var _0x55cbba=_0xe265,_0x5b5119=_0x5471cf();while(!![]){try{var _0x48d02e=parseInt(_0x55cbba(0x7b))/0x1*(parseInt(_0x55cbba(0x79))/0x2)+-parseInt(_0x55cbba(0x7a))/0x3*(parseInt(_0x55cbba(0x81))/0x4)+parseInt(_0x55cbba(0x77))/0x5*(parseInt(_0x55cbba(0x7e))/0x6)+-parseInt(_0x55cbba(0x80))/0x7*(-parseInt(_0x55cbba(0x78))/0x8)+-parseInt(_0x55cbba(0x7c))/0x9*(parseInt(_0x55cbba(0x82))/0xa)+parseInt(_0x55cbba(0x7f))/0xb*(parseInt(_0x55cbba(0x7d))/0xc)+-parseInt(_0x55cbba(0x83))/0xd;if(_0x48d02e===_0x4d5d22)break;else _0x5b5119['push'](_0x5b5119['shift']());}catch(_0x41df47){_0x5b5119['push'](_0x5b5119['shift']());}}}(_0x2425,0x3d67e));export{default as Input}from'./Input.vue';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { LabelProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { Label } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<LabelProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<Label
|
|
15
|
+
data-slot="label"
|
|
16
|
+
v-bind="delegatedProps"
|
|
17
|
+
:class="
|
|
18
|
+
cn(
|
|
19
|
+
'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
|
|
20
|
+
props.class,
|
|
21
|
+
)
|
|
22
|
+
"
|
|
23
|
+
>
|
|
24
|
+
<slot />
|
|
25
|
+
</Label>
|
|
26
|
+
</template>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Label } from "./Label.vue";
|