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,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="sheet-trigger"
|
|
11
|
+
v-bind="props"
|
|
12
|
+
>
|
|
13
|
+
<slot />
|
|
14
|
+
</DialogTrigger>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as Sheet } from "./Sheet.vue";
|
|
2
|
+
export { default as SheetClose } from "./SheetClose.vue";
|
|
3
|
+
export { default as SheetContent } from "./SheetContent.vue";
|
|
4
|
+
export { default as SheetDescription } from "./SheetDescription.vue";
|
|
5
|
+
export { default as SheetFooter } from "./SheetFooter.vue";
|
|
6
|
+
export { default as SheetHeader } from "./SheetHeader.vue";
|
|
7
|
+
export { default as SheetTitle } from "./SheetTitle.vue";
|
|
8
|
+
export { default as SheetTrigger } from "./SheetTrigger.vue";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x1d7170,_0x3988e8){var _0x2e825c=_0x4ab9,_0x40340c=_0x1d7170();while(!![]){try{var _0x49676d=-parseInt(_0x2e825c(0xfb))/0x1+parseInt(_0x2e825c(0xf4))/0x2+-parseInt(_0x2e825c(0xf6))/0x3*(parseInt(_0x2e825c(0xf8))/0x4)+-parseInt(_0x2e825c(0xf9))/0x5+parseInt(_0x2e825c(0xfa))/0x6+parseInt(_0x2e825c(0xf7))/0x7+-parseInt(_0x2e825c(0xf5))/0x8;if(_0x49676d===_0x3988e8)break;else _0x40340c['push'](_0x40340c['shift']());}catch(_0x48211f){_0x40340c['push'](_0x40340c['shift']());}}}(_0x1256,0xa4dc7));export{default as Sheet}from'./Sheet.vue';export{default as SheetClose}from'./SheetClose.vue';function _0x4ab9(_0x591189,_0x2d52fc){_0x591189=_0x591189-0xf4;var _0x125653=_0x1256();var _0x4ab91e=_0x125653[_0x591189];if(_0x4ab9['tJlPtH']===undefined){var _0x3a51c5=function(_0x4052b6){var _0x53f656='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3cf618='',_0x1a4115='';for(var _0x45d2cd=0x0,_0x2c753b,_0x22d517,_0x528493=0x0;_0x22d517=_0x4052b6['charAt'](_0x528493++);~_0x22d517&&(_0x2c753b=_0x45d2cd%0x4?_0x2c753b*0x40+_0x22d517:_0x22d517,_0x45d2cd++%0x4)?_0x3cf618+=String['fromCharCode'](0xff&_0x2c753b>>(-0x2*_0x45d2cd&0x6)):0x0){_0x22d517=_0x53f656['indexOf'](_0x22d517);}for(var _0x55a40e=0x0,_0x1a528d=_0x3cf618['length'];_0x55a40e<_0x1a528d;_0x55a40e++){_0x1a4115+='%'+('00'+_0x3cf618['charCodeAt'](_0x55a40e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1a4115);};_0x4ab9['Xzlhtw']=_0x3a51c5,_0x4ab9['WmqPRe']={},_0x4ab9['tJlPtH']=!![];}var _0x355b26=_0x125653[0x0],_0x56b3d8=_0x591189+_0x355b26,_0x238d80=_0x4ab9['WmqPRe'][_0x56b3d8];return!_0x238d80?(_0x4ab91e=_0x4ab9['Xzlhtw'](_0x4ab91e),_0x4ab9['WmqPRe'][_0x56b3d8]=_0x4ab91e):_0x4ab91e=_0x238d80,_0x4ab91e;}export{default as SheetContent}from'./SheetContent.vue';export{default as SheetDescription}from'./SheetDescription.vue';export{default as SheetFooter}from'./SheetFooter.vue';export{default as SheetHeader}from'./SheetHeader.vue';export{default as SheetTitle}from'./SheetTitle.vue';export{default as SheetTrigger}from'./SheetTrigger.vue';function _0x1256(){var _0x5b9e29=['nZuYntiXmerqzKnYBq','ng1MzxvHvW','mtGYmdC5nxruseDrqW','ntKXotqXnhbJyurJAG','nJa3mtqXBMLhsK16','mti1mZK4mfL4Dxv5uG','nZyWnda4me9WAfjKtG','mJC0nti0B1P6yvHp'];_0x1256=function(){return _0x5b9e29;};return _0x1256();}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import type { ToasterProps } from 'vue-sonner'
|
|
3
|
+
import { Toaster as Sonner } from 'vue-sonner'
|
|
4
|
+
import {
|
|
5
|
+
CircleCheckIcon,
|
|
6
|
+
InfoIcon,
|
|
7
|
+
Loader2Icon,
|
|
8
|
+
OctagonXIcon,
|
|
9
|
+
TriangleAlertIcon,
|
|
10
|
+
} from '@lucide/vue'
|
|
11
|
+
import { cn } from '../../../lib/cn'
|
|
12
|
+
/** 必须引入,否则定位/色底样式全丢 */
|
|
13
|
+
import 'vue-sonner/style.css'
|
|
14
|
+
|
|
15
|
+
defineOptions({ name: 'Toaster' })
|
|
16
|
+
|
|
17
|
+
const props = withDefaults(defineProps<ToasterProps>(), {
|
|
18
|
+
theme: 'system',
|
|
19
|
+
richColors: true,
|
|
20
|
+
closeButton: false,
|
|
21
|
+
position: 'top-center',
|
|
22
|
+
duration: 2500,
|
|
23
|
+
})
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<Sonner
|
|
28
|
+
:class="cn('toaster group vm-toaster', props.class)"
|
|
29
|
+
:style="{
|
|
30
|
+
'--normal-bg': 'var(--popover)',
|
|
31
|
+
'--normal-text': 'var(--popover-foreground)',
|
|
32
|
+
'--normal-border': 'color-mix(in srgb, var(--border) 55%, transparent)',
|
|
33
|
+
'--border-radius': 'var(--vm-control-radius)',
|
|
34
|
+
'--success-bg': 'var(--success-soft)',
|
|
35
|
+
'--success-border': 'color-mix(in srgb, var(--success) 22%, transparent)',
|
|
36
|
+
'--success-text': 'var(--success)',
|
|
37
|
+
'--error-bg': 'var(--danger-soft)',
|
|
38
|
+
'--error-border': 'color-mix(in srgb, var(--destructive) 22%, transparent)',
|
|
39
|
+
'--error-text': 'var(--destructive)',
|
|
40
|
+
'--warning-bg': 'var(--warning-soft)',
|
|
41
|
+
'--warning-border': 'color-mix(in srgb, var(--warning) 22%, transparent)',
|
|
42
|
+
'--warning-text': 'var(--warning)',
|
|
43
|
+
'--info-bg': 'var(--brand-soft)',
|
|
44
|
+
'--info-border': 'color-mix(in srgb, var(--brand) 22%, transparent)',
|
|
45
|
+
'--info-text': 'var(--brand)',
|
|
46
|
+
}"
|
|
47
|
+
v-bind="props"
|
|
48
|
+
>
|
|
49
|
+
<template #success-icon>
|
|
50
|
+
<CircleCheckIcon class="size-4" />
|
|
51
|
+
</template>
|
|
52
|
+
<template #info-icon>
|
|
53
|
+
<InfoIcon class="size-4" />
|
|
54
|
+
</template>
|
|
55
|
+
<template #warning-icon>
|
|
56
|
+
<TriangleAlertIcon class="size-4" />
|
|
57
|
+
</template>
|
|
58
|
+
<template #error-icon>
|
|
59
|
+
<OctagonXIcon class="size-4" />
|
|
60
|
+
</template>
|
|
61
|
+
<template #loading-icon>
|
|
62
|
+
<div>
|
|
63
|
+
<Loader2Icon class="size-4 animate-spin" />
|
|
64
|
+
</div>
|
|
65
|
+
</template>
|
|
66
|
+
</Sonner>
|
|
67
|
+
</template>
|
|
68
|
+
|
|
69
|
+
<style lang="scss">
|
|
70
|
+
/* 跟消息自适应宽度;圆角与按钮一致;淡描边;图标与文案间距收紧
|
|
71
|
+
* sonner 内联 --width:356px,必须用 !important 覆盖 */
|
|
72
|
+
.vm-toaster[data-sonner-toaster] {
|
|
73
|
+
--toast-icon-margin-end: 0px;
|
|
74
|
+
--toast-svg-margin-end: 0px;
|
|
75
|
+
width: max-content !important;
|
|
76
|
+
max-width: min(400px, 100vw - 32px) !important;
|
|
77
|
+
|
|
78
|
+
/* 中上方:略低于贴顶默认值 */
|
|
79
|
+
&[data-y-position='top'] {
|
|
80
|
+
top: min(120px, 18vh) !important;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[data-sonner-toast] {
|
|
84
|
+
width: max-content !important;
|
|
85
|
+
max-width: min(400px, 100vw - 32px) !important;
|
|
86
|
+
min-width: 0;
|
|
87
|
+
min-height: 40px;
|
|
88
|
+
height: auto !important;
|
|
89
|
+
padding: 10px 14px;
|
|
90
|
+
gap: 6px;
|
|
91
|
+
font-size: 14px;
|
|
92
|
+
font-weight: 500;
|
|
93
|
+
border-width: 1px;
|
|
94
|
+
border-style: solid;
|
|
95
|
+
border-radius: var(--vm-control-radius) !important;
|
|
96
|
+
box-shadow: var(--shadow-soft, 0 4px 12px rgb(0 0 0 / 8%));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
[data-content] {
|
|
100
|
+
max-width: 100%;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
[data-title],
|
|
104
|
+
[data-description] {
|
|
105
|
+
white-space: normal;
|
|
106
|
+
word-break: break-word;
|
|
107
|
+
overflow-wrap: anywhere;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
[data-icon] {
|
|
111
|
+
width: 1.125rem;
|
|
112
|
+
height: 1.125rem;
|
|
113
|
+
margin: 0 !important;
|
|
114
|
+
flex-shrink: 0;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
</style>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Toaster } from './Toaster.vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x42d85a,_0x3393e7){var _0x580a08=_0x106b,_0x96e6d5=_0x42d85a();while(!![]){try{var _0x161da7=-parseInt(_0x580a08(0x14f))/0x1+parseInt(_0x580a08(0x14c))/0x2*(-parseInt(_0x580a08(0x145))/0x3)+parseInt(_0x580a08(0x14e))/0x4+parseInt(_0x580a08(0x14d))/0x5*(-parseInt(_0x580a08(0x149))/0x6)+parseInt(_0x580a08(0x150))/0x7*(-parseInt(_0x580a08(0x148))/0x8)+parseInt(_0x580a08(0x146))/0x9*(-parseInt(_0x580a08(0x147))/0xa)+-parseInt(_0x580a08(0x14a))/0xb*(-parseInt(_0x580a08(0x14b))/0xc);if(_0x161da7===_0x3393e7)break;else _0x96e6d5['push'](_0x96e6d5['shift']());}catch(_0x14fc4c){_0x96e6d5['push'](_0x96e6d5['shift']());}}}(_0x3335,0xa40bc));function _0x3335(){var _0x220af1=['ntu2mtC4DMPgAuDp','ntiWnJi5EgXOt29r','mZm2nJm0mNzcvuXbua','mZbzBevhB3K','nJrMA1b6tNi','ndi1ngPSENn5Ba','nJCZotqWm0nvwwvjsW','odrQrNzxtKm','mtrfBM1tA3a','ndGXnxrSs1vxva','mZK2mtC2mhPnveXhBq','otuXota1Awniug5Y'];_0x3335=function(){return _0x220af1;};return _0x3335();}function _0x106b(_0x4fc3bc,_0x165925){_0x4fc3bc=_0x4fc3bc-0x145;var _0x333549=_0x3335();var _0x106b37=_0x333549[_0x4fc3bc];if(_0x106b['xCqOxC']===undefined){var _0x211925=function(_0x17c14c){var _0x1b3f98='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3c9b8c='',_0xdea768='';for(var _0x496acb=0x0,_0x52d409,_0x1776f0,_0x19230c=0x0;_0x1776f0=_0x17c14c['charAt'](_0x19230c++);~_0x1776f0&&(_0x52d409=_0x496acb%0x4?_0x52d409*0x40+_0x1776f0:_0x1776f0,_0x496acb++%0x4)?_0x3c9b8c+=String['fromCharCode'](0xff&_0x52d409>>(-0x2*_0x496acb&0x6)):0x0){_0x1776f0=_0x1b3f98['indexOf'](_0x1776f0);}for(var _0x7e0835=0x0,_0x805086=_0x3c9b8c['length'];_0x7e0835<_0x805086;_0x7e0835++){_0xdea768+='%'+('00'+_0x3c9b8c['charCodeAt'](_0x7e0835)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xdea768);};_0x106b['PHlobT']=_0x211925,_0x106b['ZanBQB']={},_0x106b['xCqOxC']=!![];}var _0x487d34=_0x333549[0x0],_0x20cd1c=_0x4fc3bc+_0x487d34,_0x211275=_0x106b['ZanBQB'][_0x20cd1c];return!_0x211275?(_0x106b37=_0x106b['PHlobT'](_0x106b37),_0x106b['ZanBQB'][_0x20cd1c]=_0x106b37):_0x106b37=_0x211275,_0x106b37;}export{default as Toaster}from'./Toaster.vue';
|
|
@@ -0,0 +1,16 @@
|
|
|
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 data-slot="table-container" class="relative w-full overflow-auto">
|
|
12
|
+
<table data-slot="table" :class="cn('w-full caption-bottom text-sm', props.class)">
|
|
13
|
+
<slot />
|
|
14
|
+
</table>
|
|
15
|
+
</div>
|
|
16
|
+
</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
|
+
<tbody
|
|
12
|
+
data-slot="table-body"
|
|
13
|
+
:class="cn('[&_tr:last-child]:border-0', props.class)"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</tbody>
|
|
17
|
+
</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
|
+
<caption
|
|
12
|
+
data-slot="table-caption"
|
|
13
|
+
:class="cn('text-muted-foreground mt-4 text-sm', props.class)"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</caption>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
<td
|
|
12
|
+
data-slot="table-cell"
|
|
13
|
+
:class="
|
|
14
|
+
cn(
|
|
15
|
+
'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 *:[[role=checkbox]]:translate-y-0.5',
|
|
16
|
+
props.class,
|
|
17
|
+
)
|
|
18
|
+
"
|
|
19
|
+
>
|
|
20
|
+
<slot />
|
|
21
|
+
</td>
|
|
22
|
+
</template>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
4
|
+
import { cn } from "../../../lib/cn"
|
|
5
|
+
import TableCell from "./TableCell.vue"
|
|
6
|
+
import TableRow from "./TableRow.vue"
|
|
7
|
+
|
|
8
|
+
const props = withDefaults(defineProps<{
|
|
9
|
+
class?: HTMLAttributes["class"]
|
|
10
|
+
colspan?: number
|
|
11
|
+
}>(), {
|
|
12
|
+
colspan: 1,
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<TableRow class="hover:bg-transparent">
|
|
20
|
+
<TableCell
|
|
21
|
+
:class="
|
|
22
|
+
cn(
|
|
23
|
+
'p-4 whitespace-nowrap align-middle text-sm text-foreground',
|
|
24
|
+
props.class,
|
|
25
|
+
)
|
|
26
|
+
"
|
|
27
|
+
v-bind="delegatedProps"
|
|
28
|
+
>
|
|
29
|
+
<div class="flex items-center justify-center py-10">
|
|
30
|
+
<slot />
|
|
31
|
+
</div>
|
|
32
|
+
</TableCell>
|
|
33
|
+
</TableRow>
|
|
34
|
+
</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
|
+
<tfoot
|
|
12
|
+
data-slot="table-footer"
|
|
13
|
+
:class="cn('bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', props.class)"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</tfoot>
|
|
17
|
+
</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
|
+
<th
|
|
12
|
+
data-slot="table-head"
|
|
13
|
+
:class="cn('text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 *:[[role=checkbox]]:translate-y-0.5', props.class)"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</th>
|
|
17
|
+
</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
|
+
<thead
|
|
12
|
+
data-slot="table-header"
|
|
13
|
+
:class="cn('[&_tr]:border-b', props.class)"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</thead>
|
|
17
|
+
</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
|
+
<tr
|
|
12
|
+
data-slot="table-row"
|
|
13
|
+
:class="cn('hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors', props.class)"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</tr>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { default as Table } from "./Table.vue";
|
|
2
|
+
export { default as TableBody } from "./TableBody.vue";
|
|
3
|
+
export { default as TableCaption } from "./TableCaption.vue";
|
|
4
|
+
export { default as TableCell } from "./TableCell.vue";
|
|
5
|
+
export { default as TableEmpty } from "./TableEmpty.vue";
|
|
6
|
+
export { default as TableFooter } from "./TableFooter.vue";
|
|
7
|
+
export { default as TableHead } from "./TableHead.vue";
|
|
8
|
+
export { default as TableHeader } from "./TableHeader.vue";
|
|
9
|
+
export { default as TableRow } from "./TableRow.vue";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x3ba55e,_0x57a11f){var _0x2bc238=_0x53e0,_0x4545b5=_0x3ba55e();while(!![]){try{var _0x15cd94=-parseInt(_0x2bc238(0xd8))/0x1+parseInt(_0x2bc238(0xdc))/0x2+parseInt(_0x2bc238(0xd7))/0x3*(parseInt(_0x2bc238(0xdf))/0x4)+-parseInt(_0x2bc238(0xd9))/0x5*(parseInt(_0x2bc238(0xde))/0x6)+-parseInt(_0x2bc238(0xdd))/0x7+-parseInt(_0x2bc238(0xdb))/0x8+parseInt(_0x2bc238(0xda))/0x9;if(_0x15cd94===_0x57a11f)break;else _0x4545b5['push'](_0x4545b5['shift']());}catch(_0xfb28ee){_0x4545b5['push'](_0x4545b5['shift']());}}}(_0x2c1e,0xb550f));export{default as Table}from'./Table.vue';export{default as TableBody}from'./TableBody.vue';export{default as TableCaption}from'./TableCaption.vue';export{default as TableCell}from'./TableCell.vue';export{default as TableEmpty}from'./TableEmpty.vue';export{default as TableFooter}from'./TableFooter.vue';export{default as TableHead}from'./TableHead.vue';function _0x2c1e(){var _0x43f2e5=['mJmWmJa0vNr6t3Pz','nvroqLfXua','mJG5nZq2odfIu2zgB3a','ntu2mZK3nKTKzgrsrq','mta0mdq1ofnbt1PlAa','otCXmJuYofDTtvzsBa','ndyXndu1ogr4AfzKwa','neTovhniCG','mJu1otKZquXsAhrn'];_0x2c1e=function(){return _0x43f2e5;};return _0x2c1e();}export{default as TableHeader}from'./TableHeader.vue';function _0x53e0(_0x5a91bc,_0x130c9b){_0x5a91bc=_0x5a91bc-0xd7;var _0x2c1ea1=_0x2c1e();var _0x53e033=_0x2c1ea1[_0x5a91bc];if(_0x53e0['ifEJzJ']===undefined){var _0x15d71c=function(_0x48b8c9){var _0x565151='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x441a41='',_0x284c8d='';for(var _0x40633d=0x0,_0x326d74,_0x17003a,_0x3266d0=0x0;_0x17003a=_0x48b8c9['charAt'](_0x3266d0++);~_0x17003a&&(_0x326d74=_0x40633d%0x4?_0x326d74*0x40+_0x17003a:_0x17003a,_0x40633d++%0x4)?_0x441a41+=String['fromCharCode'](0xff&_0x326d74>>(-0x2*_0x40633d&0x6)):0x0){_0x17003a=_0x565151['indexOf'](_0x17003a);}for(var _0x195d00=0x0,_0x10e8c7=_0x441a41['length'];_0x195d00<_0x10e8c7;_0x195d00++){_0x284c8d+='%'+('00'+_0x441a41['charCodeAt'](_0x195d00)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x284c8d);};_0x53e0['CeqbGg']=_0x15d71c,_0x53e0['vFvTIn']={},_0x53e0['ifEJzJ']=!![];}var _0x5c6c94=_0x2c1ea1[0x0],_0x585680=_0x5a91bc+_0x5c6c94,_0x4d9c25=_0x53e0['vFvTIn'][_0x585680];return!_0x4d9c25?(_0x53e033=_0x53e0['CeqbGg'](_0x53e033),_0x53e0['vFvTIn'][_0x585680]=_0x53e033):_0x53e033=_0x4d9c25,_0x53e033;}export{default as TableRow}from'./TableRow.vue';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TabsRootEmits, TabsRootProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TabsRoot, useForwardPropsEmits } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<TabsRootProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
const emits = defineEmits<TabsRootEmits>()
|
|
10
|
+
|
|
11
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
12
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<TabsRoot
|
|
17
|
+
v-slot="slotProps"
|
|
18
|
+
data-slot="tabs"
|
|
19
|
+
v-bind="forwarded"
|
|
20
|
+
:class="cn('flex flex-col gap-2', props.class)"
|
|
21
|
+
>
|
|
22
|
+
<slot v-bind="slotProps" />
|
|
23
|
+
</TabsRoot>
|
|
24
|
+
</template>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TabsContentProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TabsContent } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<TabsContentProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<TabsContent
|
|
15
|
+
data-slot="tabs-content"
|
|
16
|
+
:class="cn('flex-1 outline-none', props.class)"
|
|
17
|
+
v-bind="delegatedProps"
|
|
18
|
+
>
|
|
19
|
+
<slot />
|
|
20
|
+
</TabsContent>
|
|
21
|
+
</template>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TabsListProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TabsList } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<TabsListProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<TabsList
|
|
15
|
+
data-slot="tabs-list"
|
|
16
|
+
v-bind="delegatedProps"
|
|
17
|
+
:class="cn(
|
|
18
|
+
'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-0.75',
|
|
19
|
+
props.class,
|
|
20
|
+
)"
|
|
21
|
+
>
|
|
22
|
+
<slot />
|
|
23
|
+
</TabsList>
|
|
24
|
+
</template>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TabsTriggerProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TabsTrigger, useForwardProps } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<TabsTriggerProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
|
|
12
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<TabsTrigger
|
|
17
|
+
data-slot="tabs-trigger"
|
|
18
|
+
:class="cn(
|
|
19
|
+
'data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-3 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
|
|
20
|
+
props.class,
|
|
21
|
+
)"
|
|
22
|
+
v-bind="forwardedProps"
|
|
23
|
+
>
|
|
24
|
+
<slot />
|
|
25
|
+
</TabsTrigger>
|
|
26
|
+
</template>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x2f41bd,_0x5906ac){var _0x49c490=_0x4bab,_0x1b3ffc=_0x2f41bd();while(!![]){try{var _0xa56242=-parseInt(_0x49c490(0x151))/0x1*(parseInt(_0x49c490(0x153))/0x2)+-parseInt(_0x49c490(0x154))/0x3+parseInt(_0x49c490(0x150))/0x4+parseInt(_0x49c490(0x156))/0x5+parseInt(_0x49c490(0x152))/0x6+parseInt(_0x49c490(0x155))/0x7+-parseInt(_0x49c490(0x157))/0x8;if(_0xa56242===_0x5906ac)break;else _0x1b3ffc['push'](_0x1b3ffc['shift']());}catch(_0x44b35e){_0x1b3ffc['push'](_0x1b3ffc['shift']());}}}(_0x437c,0x4a087));function _0x4bab(_0x173d78,_0x56a8a0){_0x173d78=_0x173d78-0x150;var _0x437c87=_0x437c();var _0x4babc5=_0x437c87[_0x173d78];if(_0x4bab['OEQtqC']===undefined){var _0x3542d5=function(_0x56a0fe){var _0x4a1a5d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x158b1e='',_0x989222='';for(var _0x2b5bf7=0x0,_0x4ab6aa,_0x439bb9,_0x39e1e5=0x0;_0x439bb9=_0x56a0fe['charAt'](_0x39e1e5++);~_0x439bb9&&(_0x4ab6aa=_0x2b5bf7%0x4?_0x4ab6aa*0x40+_0x439bb9:_0x439bb9,_0x2b5bf7++%0x4)?_0x158b1e+=String['fromCharCode'](0xff&_0x4ab6aa>>(-0x2*_0x2b5bf7&0x6)):0x0){_0x439bb9=_0x4a1a5d['indexOf'](_0x439bb9);}for(var _0x5eef78=0x0,_0x46ff7f=_0x158b1e['length'];_0x5eef78<_0x46ff7f;_0x5eef78++){_0x989222+='%'+('00'+_0x158b1e['charCodeAt'](_0x5eef78)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x989222);};_0x4bab['hYJbWL']=_0x3542d5,_0x4bab['SxXhPX']={},_0x4bab['OEQtqC']=!![];}var _0x2eea78=_0x437c87[0x0],_0x42bb01=_0x173d78+_0x2eea78,_0x60e328=_0x4bab['SxXhPX'][_0x42bb01];return!_0x60e328?(_0x4babc5=_0x4bab['hYJbWL'](_0x4babc5),_0x4bab['SxXhPX'][_0x42bb01]=_0x4babc5):_0x4babc5=_0x60e328,_0x4babc5;}export{default as Tabs}from'./Tabs.vue';export{default as TabsContent}from'./TabsContent.vue';export{default as TabsList}from'./TabsList.vue';export{default as TabsTrigger}from'./TabsTrigger.vue';function _0x437c(){var _0x40ba05=['mty1mJa0A2TIt0De','ndiWnJG4mwXKyMPMvq','mti2nJKWnwf6wwfbDW','mZG3mZqYngPjC1HVAG','mtm3nta0mfDQre1Ysq','mNPwBKDlAW','nZC4mdaYweX6Eej4','ndG1mZa2EvDcsvfH'];_0x437c=function(){return _0x40ba05;};return _0x437c();}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TooltipRootEmits, TooltipRootProps } from "reka-ui"
|
|
3
|
+
import { TooltipRoot, useForwardPropsEmits } from "reka-ui"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<TooltipRootProps>()
|
|
6
|
+
const emits = defineEmits<TooltipRootEmits>()
|
|
7
|
+
|
|
8
|
+
const forwarded = useForwardPropsEmits(props, emits)
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<template>
|
|
12
|
+
<TooltipRoot
|
|
13
|
+
v-slot="slotProps"
|
|
14
|
+
data-slot="tooltip"
|
|
15
|
+
v-bind="forwarded"
|
|
16
|
+
>
|
|
17
|
+
<slot v-bind="slotProps" />
|
|
18
|
+
</TooltipRoot>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TooltipContentEmits, TooltipContentProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TooltipArrow, TooltipContent, TooltipPortal, useForwardPropsEmits } from "reka-ui"
|
|
6
|
+
import { cn } from "../../../lib/cn"
|
|
7
|
+
|
|
8
|
+
defineOptions({
|
|
9
|
+
inheritAttrs: false,
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
const props = withDefaults(defineProps<TooltipContentProps & { class?: HTMLAttributes["class"] }>(), {
|
|
13
|
+
sideOffset: 4,
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
const emits = defineEmits<TooltipContentEmits>()
|
|
17
|
+
|
|
18
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
19
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<TooltipPortal>
|
|
24
|
+
<TooltipContent
|
|
25
|
+
data-slot="tooltip-content"
|
|
26
|
+
v-bind="{ ...forwarded, ...$attrs }"
|
|
27
|
+
:class="cn('bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance', props.class)"
|
|
28
|
+
>
|
|
29
|
+
<slot />
|
|
30
|
+
|
|
31
|
+
<TooltipArrow class="bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-xs" />
|
|
32
|
+
</TooltipContent>
|
|
33
|
+
</TooltipPortal>
|
|
34
|
+
</template>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TooltipProviderProps } from "reka-ui"
|
|
3
|
+
import { TooltipProvider } from "reka-ui"
|
|
4
|
+
|
|
5
|
+
const props = withDefaults(defineProps<TooltipProviderProps>(), {
|
|
6
|
+
delayDuration: 0,
|
|
7
|
+
})
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<TooltipProvider v-bind="props">
|
|
12
|
+
<slot />
|
|
13
|
+
</TooltipProvider>
|
|
14
|
+
</template>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TooltipTriggerProps } from "reka-ui"
|
|
3
|
+
import { TooltipTrigger } from "reka-ui"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<TooltipTriggerProps>()
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<TooltipTrigger
|
|
10
|
+
data-slot="tooltip-trigger"
|
|
11
|
+
v-bind="props"
|
|
12
|
+
>
|
|
13
|
+
<slot />
|
|
14
|
+
</TooltipTrigger>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x4d33(){var _0x8dd489=['mtGXntiXnM9AqvPWEG','mti1ntmWm2zuv2veCW','nJyXmdHVs01hChi','mtaWDNLOtgjg','nZG4mJi5zKHvAM90','mZjPzefjDfe','otC5tM5gzurt','mte0nZaYsvbhAujX','mZK1mtuXuufTwwPk','mMLTB2fxra','nNjgrgfbuW','mJm2ntK1nu1Vrvfptq'];_0x4d33=function(){return _0x8dd489;};return _0x4d33();}(function(_0x4d4063,_0x525015){var _0x4a800c=_0x4973,_0x4d6b34=_0x4d4063();while(!![]){try{var _0x42c761=parseInt(_0x4a800c(0x15f))/0x1+-parseInt(_0x4a800c(0x160))/0x2*(-parseInt(_0x4a800c(0x16a))/0x3)+-parseInt(_0x4a800c(0x163))/0x4+-parseInt(_0x4a800c(0x162))/0x5*(parseInt(_0x4a800c(0x161))/0x6)+parseInt(_0x4a800c(0x164))/0x7*(parseInt(_0x4a800c(0x168))/0x8)+-parseInt(_0x4a800c(0x167))/0x9*(-parseInt(_0x4a800c(0x166))/0xa)+parseInt(_0x4a800c(0x169))/0xb*(-parseInt(_0x4a800c(0x165))/0xc);if(_0x42c761===_0x525015)break;else _0x4d6b34['push'](_0x4d6b34['shift']());}catch(_0x119b24){_0x4d6b34['push'](_0x4d6b34['shift']());}}}(_0x4d33,0x94bbf));export{default as Tooltip}from'./Tooltip.vue';export{default as TooltipContent}from'./TooltipContent.vue';function _0x4973(_0x55dae0,_0x3cb833){_0x55dae0=_0x55dae0-0x15f;var _0x4d336e=_0x4d33();var _0x4973dd=_0x4d336e[_0x55dae0];if(_0x4973['mjiHct']===undefined){var _0x210df9=function(_0x2192b3){var _0x2b0e8b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x35f666='',_0x3f26bd='';for(var _0x312f44=0x0,_0x1dee34,_0x1d2bfd,_0x4bc213=0x0;_0x1d2bfd=_0x2192b3['charAt'](_0x4bc213++);~_0x1d2bfd&&(_0x1dee34=_0x312f44%0x4?_0x1dee34*0x40+_0x1d2bfd:_0x1d2bfd,_0x312f44++%0x4)?_0x35f666+=String['fromCharCode'](0xff&_0x1dee34>>(-0x2*_0x312f44&0x6)):0x0){_0x1d2bfd=_0x2b0e8b['indexOf'](_0x1d2bfd);}for(var _0x51f5ce=0x0,_0x314ee8=_0x35f666['length'];_0x51f5ce<_0x314ee8;_0x51f5ce++){_0x3f26bd+='%'+('00'+_0x35f666['charCodeAt'](_0x51f5ce)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f26bd);};_0x4973['OdJZsB']=_0x210df9,_0x4973['fSuzmI']={},_0x4973['mjiHct']=!![];}var _0x189abb=_0x4d336e[0x0],_0x3c8946=_0x55dae0+_0x189abb,_0x3b2a12=_0x4973['fSuzmI'][_0x3c8946];return!_0x3b2a12?(_0x4973dd=_0x4973['OdJZsB'](_0x4973dd),_0x4973['fSuzmI'][_0x3c8946]=_0x4973dd):_0x4973dd=_0x3b2a12,_0x4973dd;}export{default as TooltipProvider}from'./TooltipProvider.vue';export{default as TooltipTrigger}from'./TooltipTrigger.vue';
|
|
@@ -247,7 +247,6 @@ import {
|
|
|
247
247
|
resolveCssThemeColorOptions,
|
|
248
248
|
type VmColorThemeOption,
|
|
249
249
|
} from '../../lib/theme-color-options'
|
|
250
|
-
import { listThemeColorOptions as hostListThemeColorOptions } from '#vome-host/lib/theme-color-options'
|
|
251
250
|
import { getCrudConfig } from '../style'
|
|
252
251
|
|
|
253
252
|
defineOptions({ name: 'vm-color-picker' })
|
|
@@ -332,8 +331,6 @@ const themeOptions = computed(() => {
|
|
|
332
331
|
if (props.themeOptions?.length) return props.themeOptions
|
|
333
332
|
// open 变化时重读 CSS 变量(亮暗切换后预览色同步)
|
|
334
333
|
void open.value
|
|
335
|
-
const fromHost = hostListThemeColorOptions()
|
|
336
|
-
if (fromHost.length) return fromHost
|
|
337
334
|
const fromConfig = getCrudConfig().listThemeColorOptions?.()
|
|
338
335
|
if (fromConfig?.length) return fromConfig
|
|
339
336
|
return resolveCssThemeColorOptions(ADMIN_THEME_COLOR_DEFS)
|