vome-core 0.1.76 → 0.1.78
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/table/utils.d.ts +3 -0
- package/dist/admin/components/ui/table/utils.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/crud/vm-data-i18n-btn.vue +0 -7
- 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 -4
- package/dist/admin/index.js +16 -7
- 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 +6 -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 +7 -0
- 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/typings/admin/host.d.ts +0 -66
|
@@ -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 _0x4ce6(){var _0xb00c00=['mJCZndG3nLn3tKrowa','ntqYmdu0CMHsu2vd','mJDnzuXyBwe','mJC0mJC5nNLUtwPzzG','mJGWodG0CNPYAK9Q','mJi3mdy0AMX6AK1s','odGWodqZDuL5ug9Q','mtbUD293yxy','our5uu1wAG','mJCZntCWA3L3rMjh'];_0x4ce6=function(){return _0xb00c00;};return _0x4ce6();}(function(_0x55d2d5,_0x59c580){var _0x84e98a=_0x4084,_0x6ae8e8=_0x55d2d5();while(!![]){try{var _0x54f48b=parseInt(_0x84e98a(0x77))/0x1+-parseInt(_0x84e98a(0x72))/0x2*(parseInt(_0x84e98a(0x79))/0x3)+-parseInt(_0x84e98a(0x71))/0x4*(-parseInt(_0x84e98a(0x78))/0x5)+-parseInt(_0x84e98a(0x75))/0x6+-parseInt(_0x84e98a(0x74))/0x7+parseInt(_0x84e98a(0x76))/0x8*(-parseInt(_0x84e98a(0x73))/0x9)+-parseInt(_0x84e98a(0x70))/0xa;if(_0x54f48b===_0x59c580)break;else _0x6ae8e8['push'](_0x6ae8e8['shift']());}catch(_0xabadc4){_0x6ae8e8['push'](_0x6ae8e8['shift']());}}}(_0x4ce6,0xd7d54));export{default as Sheet}from'./Sheet.vue';export{default as SheetClose}from'./SheetClose.vue';function _0x4084(_0x42d706,_0x53324a){_0x42d706=_0x42d706-0x70;var _0x4ce61d=_0x4ce6();var _0x4084af=_0x4ce61d[_0x42d706];if(_0x4084['YQXszW']===undefined){var _0x34b478=function(_0x3a5a49){var _0x966095='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x531516='',_0x4770ff='';for(var _0x19c348=0x0,_0x549020,_0x2e6d15,_0x251f55=0x0;_0x2e6d15=_0x3a5a49['charAt'](_0x251f55++);~_0x2e6d15&&(_0x549020=_0x19c348%0x4?_0x549020*0x40+_0x2e6d15:_0x2e6d15,_0x19c348++%0x4)?_0x531516+=String['fromCharCode'](0xff&_0x549020>>(-0x2*_0x19c348&0x6)):0x0){_0x2e6d15=_0x966095['indexOf'](_0x2e6d15);}for(var _0x2d6471=0x0,_0x2d7e7b=_0x531516['length'];_0x2d6471<_0x2d7e7b;_0x2d6471++){_0x4770ff+='%'+('00'+_0x531516['charCodeAt'](_0x2d6471)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4770ff);};_0x4084['kAggwR']=_0x34b478,_0x4084['HAZRHh']={},_0x4084['YQXszW']=!![];}var _0x258bf2=_0x4ce61d[0x0],_0xfc6319=_0x42d706+_0x258bf2,_0x1ac203=_0x4084['HAZRHh'][_0xfc6319];return!_0x1ac203?(_0x4084af=_0x4084['kAggwR'](_0x4084af),_0x4084['HAZRHh'][_0xfc6319]=_0x4084af):_0x4084af=_0x1ac203,_0x4084af;}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';
|
|
@@ -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 '@core/admin/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 _0x130d(){var _0x2b03a3=['nJe5ntGXseXbDeTO','mZq1mtq3owzNDLLIAa','ntu4odCZmezwt2HkrG','mJaXmtbTtw9kDwG','mtq5ntHmAeLhtuG','mZeXndq3nvbhEgDuAa','n0fXC0DZrW','oty4mdK4ngDcue1lAG','ndmYmdGZnLbczgjgva','nfjSt2TlCq'];_0x130d=function(){return _0x2b03a3;};return _0x130d();}function _0x74c9(_0x337588,_0x5e6d27){_0x337588=_0x337588-0x192;var _0x130d38=_0x130d();var _0x74c9f6=_0x130d38[_0x337588];if(_0x74c9['CoiNRZ']===undefined){var _0x6c59db=function(_0x5ede94){var _0x47eeb3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4d92cf='',_0x533122='';for(var _0xeb9ba9=0x0,_0x10bd3e,_0x418900,_0x15004f=0x0;_0x418900=_0x5ede94['charAt'](_0x15004f++);~_0x418900&&(_0x10bd3e=_0xeb9ba9%0x4?_0x10bd3e*0x40+_0x418900:_0x418900,_0xeb9ba9++%0x4)?_0x4d92cf+=String['fromCharCode'](0xff&_0x10bd3e>>(-0x2*_0xeb9ba9&0x6)):0x0){_0x418900=_0x47eeb3['indexOf'](_0x418900);}for(var _0xd045c5=0x0,_0x4255ae=_0x4d92cf['length'];_0xd045c5<_0x4255ae;_0xd045c5++){_0x533122+='%'+('00'+_0x4d92cf['charCodeAt'](_0xd045c5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x533122);};_0x74c9['QWLJiJ']=_0x6c59db,_0x74c9['SzPxZH']={},_0x74c9['CoiNRZ']=!![];}var _0x181719=_0x130d38[0x0],_0x2db7d1=_0x337588+_0x181719,_0x4414dc=_0x74c9['SzPxZH'][_0x2db7d1];return!_0x4414dc?(_0x74c9f6=_0x74c9['QWLJiJ'](_0x74c9f6),_0x74c9['SzPxZH'][_0x2db7d1]=_0x74c9f6):_0x74c9f6=_0x4414dc,_0x74c9f6;}(function(_0x21112c,_0x204778){var _0xf53b81=_0x74c9,_0xefd130=_0x21112c();while(!![]){try{var _0x1a6740=-parseInt(_0xf53b81(0x19a))/0x1*(-parseInt(_0xf53b81(0x199))/0x2)+-parseInt(_0xf53b81(0x19b))/0x3+-parseInt(_0xf53b81(0x198))/0x4+parseInt(_0xf53b81(0x195))/0x5+-parseInt(_0xf53b81(0x192))/0x6+parseInt(_0xf53b81(0x196))/0x7*(-parseInt(_0xf53b81(0x197))/0x8)+parseInt(_0xf53b81(0x194))/0x9*(parseInt(_0xf53b81(0x193))/0xa);if(_0x1a6740===_0x204778)break;else _0xefd130['push'](_0xefd130['shift']());}catch(_0x5508a8){_0xefd130['push'](_0xefd130['shift']());}}}(_0x130d,0xcb23b));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 "@core/admin/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 "@core/admin/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 "@core/admin/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 "@core/admin/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 "@core/admin/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 "@core/admin/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 "@core/admin/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 "@core/admin/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 "@core/admin/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(_0x1f9105,_0x1e68de){var _0x29ad9c=_0x278a,_0x3f7cf1=_0x1f9105();while(!![]){try{var _0x787e59=parseInt(_0x29ad9c(0x176))/0x1+-parseInt(_0x29ad9c(0x179))/0x2*(-parseInt(_0x29ad9c(0x17c))/0x3)+parseInt(_0x29ad9c(0x178))/0x4+parseInt(_0x29ad9c(0x174))/0x5*(-parseInt(_0x29ad9c(0x177))/0x6)+parseInt(_0x29ad9c(0x17a))/0x7+-parseInt(_0x29ad9c(0x17d))/0x8*(parseInt(_0x29ad9c(0x175))/0x9)+-parseInt(_0x29ad9c(0x17b))/0xa;if(_0x787e59===_0x1e68de)break;else _0x3f7cf1['push'](_0x3f7cf1['shift']());}catch(_0xad4150){_0x3f7cf1['push'](_0x3f7cf1['shift']());}}}(_0x25e2,0xe1e9b));export{default as Table}from'./Table.vue';export{default as TableBody}from'./TableBody.vue';export{default as TableCaption}from'./TableCaption.vue';function _0x278a(_0xe78506,_0x52a895){_0xe78506=_0xe78506-0x174;var _0x25e23d=_0x25e2();var _0x278af4=_0x25e23d[_0xe78506];if(_0x278a['TNINdX']===undefined){var _0x262a27=function(_0xb9dd97){var _0x2c28d6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5774f4='',_0x5bd067='';for(var _0x5b6db0=0x0,_0x5d0673,_0x1ac17d,_0x35de03=0x0;_0x1ac17d=_0xb9dd97['charAt'](_0x35de03++);~_0x1ac17d&&(_0x5d0673=_0x5b6db0%0x4?_0x5d0673*0x40+_0x1ac17d:_0x1ac17d,_0x5b6db0++%0x4)?_0x5774f4+=String['fromCharCode'](0xff&_0x5d0673>>(-0x2*_0x5b6db0&0x6)):0x0){_0x1ac17d=_0x2c28d6['indexOf'](_0x1ac17d);}for(var _0x88169d=0x0,_0x1fd00f=_0x5774f4['length'];_0x88169d<_0x1fd00f;_0x88169d++){_0x5bd067+='%'+('00'+_0x5774f4['charCodeAt'](_0x88169d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd067);};_0x278a['VFHwmU']=_0x262a27,_0x278a['MbacLP']={},_0x278a['TNINdX']=!![];}var _0x22c0e4=_0x25e23d[0x0],_0x43e8b0=_0xe78506+_0x22c0e4,_0xc25f04=_0x278a['MbacLP'][_0x43e8b0];return!_0xc25f04?(_0x278af4=_0x278a['VFHwmU'](_0x278af4),_0x278a['MbacLP'][_0x43e8b0]=_0x278af4):_0x278af4=_0xc25f04,_0x278af4;}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';export{default as TableHeader}from'./TableHeader.vue';export{default as TableRow}from'./TableRow.vue';function _0x25e2(){var _0x3b328e=['nZaZota1nKDpvfvWqq','mMHRELfpqq','mty3odGXn1fuq25fzW','mJe1mtm4mZbcs2rmuuK','nta5mZm1ohLNuhHkDW','mtiXnJCYmJrQvunvswW','nZC1we53Cg52','oufxEu5OAG','mtCXmJC1ngfRALfQsG','mZe0ntjJD0f4Bge'];_0x25e2=function(){return _0x3b328e;};return _0x25e2();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0xbab1(){var _0x368fd8=['mte1ntiXELPmELrp','mtjnAg1oyxi','nJi5mdq4q2nlt1zz','nNnnvuvJCq','nduWmtqWt2jArvDQ','mty0odu1CxnHtwnj','mtGXmZq5n0z1BfvQDa','mtmXmfnLEfH5BW','DMfSDwu','ntu0nZntse9PCxO','nde2nJf4AND5tfu'];_0xbab1=function(){return _0x368fd8;};return _0xbab1();}(function(_0x4ced4f,_0x540c6e){var _0x21dbd6=_0x2d76,_0x1f3a3b=_0x4ced4f();while(!![]){try{var _0x3d133c=parseInt(_0x21dbd6(0xa3))/0x1+parseInt(_0x21dbd6(0x9e))/0x2+-parseInt(_0x21dbd6(0xa5))/0x3*(-parseInt(_0x21dbd6(0xa6))/0x4)+-parseInt(_0x21dbd6(0x9f))/0x5*(-parseInt(_0x21dbd6(0x9d))/0x6)+parseInt(_0x21dbd6(0xa0))/0x7+parseInt(_0x21dbd6(0x9c))/0x8+parseInt(_0x21dbd6(0xa4))/0x9*(-parseInt(_0x21dbd6(0xa1))/0xa);if(_0x3d133c===_0x540c6e)break;else _0x1f3a3b['push'](_0x1f3a3b['shift']());}catch(_0x472eda){_0x1f3a3b['push'](_0x1f3a3b['shift']());}}}(_0xbab1,0x27252));import{isFunction}from'@tanstack/vue-table';function _0x2d76(_0x464816,_0x270e13){_0x464816=_0x464816-0x9c;var _0xbab140=_0xbab1();var _0x2d7632=_0xbab140[_0x464816];if(_0x2d76['bcTKZl']===undefined){var _0x4a04fc=function(_0x54354e){var _0x262f6a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x340df9='',_0x4170bb='';for(var _0x6670f1=0x0,_0x37efb2,_0x512701,_0x40dd46=0x0;_0x512701=_0x54354e['charAt'](_0x40dd46++);~_0x512701&&(_0x37efb2=_0x6670f1%0x4?_0x37efb2*0x40+_0x512701:_0x512701,_0x6670f1++%0x4)?_0x340df9+=String['fromCharCode'](0xff&_0x37efb2>>(-0x2*_0x6670f1&0x6)):0x0){_0x512701=_0x262f6a['indexOf'](_0x512701);}for(var _0x34973b=0x0,_0x56352d=_0x340df9['length'];_0x34973b<_0x56352d;_0x34973b++){_0x4170bb+='%'+('00'+_0x340df9['charCodeAt'](_0x34973b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4170bb);};_0x2d76['EFFNtD']=_0x4a04fc,_0x2d76['BQzDKx']={},_0x2d76['bcTKZl']=!![];}var _0x3a78c3=_0xbab140[0x0],_0x2aefc2=_0x464816+_0x3a78c3,_0x3a3825=_0x2d76['BQzDKx'][_0x2aefc2];return!_0x3a3825?(_0x2d7632=_0x2d76['EFFNtD'](_0x2d7632),_0x2d76['BQzDKx'][_0x2aefc2]=_0x2d7632):_0x2d7632=_0x3a3825,_0x2d7632;}export function valueUpdater(_0x340df9,_0x4170bb){var _0x276dde=_0x2d76;_0x4170bb['value']=isFunction(_0x340df9)?_0x340df9(_0x4170bb[_0x276dde(0xa2)]):_0x340df9;}
|
|
@@ -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 "@core/admin/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 "@core/admin/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 "@core/admin/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 "@core/admin/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(_0x310d4e,_0x15ed83){var _0x54a345=_0x2365,_0x4ff2a9=_0x310d4e();while(!![]){try{var _0x4cd4d0=-parseInt(_0x54a345(0x1e4))/0x1+-parseInt(_0x54a345(0x1e5))/0x2*(-parseInt(_0x54a345(0x1e3))/0x3)+-parseInt(_0x54a345(0x1e6))/0x4*(parseInt(_0x54a345(0x1df))/0x5)+-parseInt(_0x54a345(0x1e1))/0x6+parseInt(_0x54a345(0x1e0))/0x7+-parseInt(_0x54a345(0x1e7))/0x8+parseInt(_0x54a345(0x1e2))/0x9;if(_0x4cd4d0===_0x15ed83)break;else _0x4ff2a9['push'](_0x4ff2a9['shift']());}catch(_0x21053c){_0x4ff2a9['push'](_0x4ff2a9['shift']());}}}(_0x4bcb,0x23ee3));function _0x2365(_0x514811,_0xd46fa){_0x514811=_0x514811-0x1df;var _0x4bcb48=_0x4bcb();var _0x236533=_0x4bcb48[_0x514811];if(_0x2365['JwjEgA']===undefined){var _0xfa3b22=function(_0x30f200){var _0x31bdfa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x501e9a='',_0xe979ce='';for(var _0x4aae29=0x0,_0x28709c,_0x5c91b4,_0x52a95d=0x0;_0x5c91b4=_0x30f200['charAt'](_0x52a95d++);~_0x5c91b4&&(_0x28709c=_0x4aae29%0x4?_0x28709c*0x40+_0x5c91b4:_0x5c91b4,_0x4aae29++%0x4)?_0x501e9a+=String['fromCharCode'](0xff&_0x28709c>>(-0x2*_0x4aae29&0x6)):0x0){_0x5c91b4=_0x31bdfa['indexOf'](_0x5c91b4);}for(var _0x8bbeaf=0x0,_0xb16bff=_0x501e9a['length'];_0x8bbeaf<_0xb16bff;_0x8bbeaf++){_0xe979ce+='%'+('00'+_0x501e9a['charCodeAt'](_0x8bbeaf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe979ce);};_0x2365['ESpcFn']=_0xfa3b22,_0x2365['QVBntX']={},_0x2365['JwjEgA']=!![];}var _0x1fb157=_0x4bcb48[0x0],_0x26a191=_0x514811+_0x1fb157,_0x1c9f39=_0x2365['QVBntX'][_0x26a191];return!_0x1c9f39?(_0x236533=_0x2365['ESpcFn'](_0x236533),_0x2365['QVBntX'][_0x26a191]=_0x236533):_0x236533=_0x1c9f39,_0x236533;}export{default as Tabs}from'./Tabs.vue';export{default as TabsContent}from'./TabsContent.vue';export{default as TabsList}from'./TabsList.vue';function _0x4bcb(){var _0x51891e=['mtuXmtmYoen4rgreza','mtu1mJeXmezyDfrfsG','ndyXntGXmKfeD3PXAG','mti0otC0D0Toyvjb','mJa0mZe3DNzlyLjs','ohzPwgLlyG','mtC4otK2qwrkrgHn','mtKYmZG1nNLqEgvitq','nvnrzvjNyG'];_0x4bcb=function(){return _0x51891e;};return _0x4bcb();}export{default as TabsTrigger}from'./TabsTrigger.vue';
|
|
@@ -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 "@core/admin/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(_0x503268,_0x96b3be){var _0x41a878=_0x5d0c,_0x54b6b6=_0x503268();while(!![]){try{var _0x3d62f5=-parseInt(_0x41a878(0x6a))/0x1+-parseInt(_0x41a878(0x72))/0x2*(-parseInt(_0x41a878(0x6b))/0x3)+-parseInt(_0x41a878(0x70))/0x4*(parseInt(_0x41a878(0x6d))/0x5)+-parseInt(_0x41a878(0x6f))/0x6*(parseInt(_0x41a878(0x6c))/0x7)+-parseInt(_0x41a878(0x69))/0x8*(parseInt(_0x41a878(0x6e))/0x9)+-parseInt(_0x41a878(0x73))/0xa+parseInt(_0x41a878(0x71))/0xb;if(_0x3d62f5===_0x96b3be)break;else _0x54b6b6['push'](_0x54b6b6['shift']());}catch(_0x2613bd){_0x54b6b6['push'](_0x54b6b6['shift']());}}}(_0x2f6b,0xad3f1));export{default as Tooltip}from'./Tooltip.vue';function _0x5d0c(_0x5df38e,_0x29a0d9){_0x5df38e=_0x5df38e-0x69;var _0x2f6b77=_0x2f6b();var _0x5d0cd8=_0x2f6b77[_0x5df38e];if(_0x5d0c['rpjkZU']===undefined){var _0x2566f5=function(_0x167764){var _0x523966='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4099b5='',_0x155f78='';for(var _0x5ab317=0x0,_0x5c8335,_0x24545f,_0x1ec98a=0x0;_0x24545f=_0x167764['charAt'](_0x1ec98a++);~_0x24545f&&(_0x5c8335=_0x5ab317%0x4?_0x5c8335*0x40+_0x24545f:_0x24545f,_0x5ab317++%0x4)?_0x4099b5+=String['fromCharCode'](0xff&_0x5c8335>>(-0x2*_0x5ab317&0x6)):0x0){_0x24545f=_0x523966['indexOf'](_0x24545f);}for(var _0x11650a=0x0,_0x898b2a=_0x4099b5['length'];_0x11650a<_0x898b2a;_0x11650a++){_0x155f78+='%'+('00'+_0x4099b5['charCodeAt'](_0x11650a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x155f78);};_0x5d0c['bPOJEC']=_0x2566f5,_0x5d0c['LQvSPB']={},_0x5d0c['rpjkZU']=!![];}var _0x47fb88=_0x2f6b77[0x0],_0x426690=_0x5df38e+_0x47fb88,_0x441592=_0x5d0c['LQvSPB'][_0x426690];return!_0x441592?(_0x5d0cd8=_0x5d0c['bPOJEC'](_0x5d0cd8),_0x5d0c['LQvSPB'][_0x426690]=_0x5d0cd8):_0x5d0cd8=_0x441592,_0x5d0cd8;}export{default as TooltipContent}from'./TooltipContent.vue';function _0x2f6b(){var _0x127259=['ouncsM5qAq','mJm2nJC5ogrLB29bAq','ntmWEKXqz21T','mtC1mtq1nfPbDhzeuG','nMnIz0X6Aa','ndCWnZjWs2TJrKG','ntaWmJmYnZbSteXVwgu','oduZnti2vxPHB0nQ','mtm4nZe1nZbIANrpDLC','ntzRzwHVvKS','nZGZmZiXwhnhExfQ'];_0x2f6b=function(){return _0x127259;};return _0x2f6b();}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)
|