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.
Files changed (203) hide show
  1. package/dist/admin/api/client.js +2 -3
  2. package/dist/admin/components/layout/vm-app-header.vue +341 -0
  3. package/dist/admin/components/layout/vm-app-sidebar.vue +187 -0
  4. package/dist/admin/components/layout/vm-sidebar-flyout.vue +268 -0
  5. package/dist/admin/components/layout/vm-sidebar-nav-item.vue +490 -0
  6. package/dist/admin/components/layout/vm-sidebar-nav.vue +104 -0
  7. package/dist/admin/components/layout/vm-tags-view.vue +233 -0
  8. package/dist/admin/components/ui/avatar/Avatar.vue +18 -0
  9. package/dist/admin/components/ui/avatar/AvatarFallback.vue +21 -0
  10. package/dist/admin/components/ui/avatar/AvatarImage.vue +16 -0
  11. package/dist/admin/components/ui/avatar/index.d.ts +3 -0
  12. package/dist/admin/components/ui/avatar/index.js +1 -0
  13. package/dist/admin/components/ui/badge/Badge.vue +26 -0
  14. package/dist/admin/components/ui/badge/index.d.ts +6 -0
  15. package/dist/admin/components/ui/badge/index.js +1 -0
  16. package/dist/admin/components/ui/button/Button.vue +31 -0
  17. package/dist/admin/components/ui/button/index.d.ts +7 -0
  18. package/dist/admin/components/ui/button/index.js +1 -0
  19. package/dist/admin/components/ui/checkbox/Checkbox.vue +35 -0
  20. package/dist/admin/components/ui/checkbox/index.d.ts +1 -0
  21. package/dist/admin/components/ui/checkbox/index.js +1 -0
  22. package/dist/admin/components/ui/dialog/Dialog.vue +19 -0
  23. package/dist/admin/components/ui/dialog/DialogClose.vue +15 -0
  24. package/dist/admin/components/ui/dialog/DialogContent.vue +135 -0
  25. package/dist/admin/components/ui/dialog/DialogDescription.vue +23 -0
  26. package/dist/admin/components/ui/dialog/DialogFooter.vue +27 -0
  27. package/dist/admin/components/ui/dialog/DialogHeader.vue +17 -0
  28. package/dist/admin/components/ui/dialog/DialogOverlay.vue +21 -0
  29. package/dist/admin/components/ui/dialog/DialogScrollContent.vue +60 -0
  30. package/dist/admin/components/ui/dialog/DialogTitle.vue +23 -0
  31. package/dist/admin/components/ui/dialog/DialogTrigger.vue +15 -0
  32. package/dist/admin/components/ui/dialog/index.d.ts +10 -0
  33. package/dist/admin/components/ui/dialog/index.js +1 -0
  34. package/dist/admin/components/ui/dropdown-menu/DropdownMenu.vue +19 -0
  35. package/dist/admin/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  36. package/dist/admin/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  37. package/dist/admin/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  38. package/dist/admin/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  39. package/dist/admin/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  40. package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  41. package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  42. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  43. package/dist/admin/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  44. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  45. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  46. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  47. package/dist/admin/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  48. package/dist/admin/components/ui/dropdown-menu/index.d.ts +15 -0
  49. package/dist/admin/components/ui/dropdown-menu/index.js +1 -0
  50. package/dist/admin/components/ui/input/Input.vue +34 -0
  51. package/dist/admin/components/ui/input/index.d.ts +1 -0
  52. package/dist/admin/components/ui/input/index.js +1 -0
  53. package/dist/admin/components/ui/label/Label.vue +26 -0
  54. package/dist/admin/components/ui/label/index.d.ts +1 -0
  55. package/dist/admin/components/ui/label/index.js +1 -0
  56. package/dist/admin/components/ui/scroll-area/ScrollArea.vue +33 -0
  57. package/dist/admin/components/ui/scroll-area/ScrollBar.vue +32 -0
  58. package/dist/admin/components/ui/scroll-area/index.d.ts +2 -0
  59. package/dist/admin/components/ui/scroll-area/index.js +1 -0
  60. package/dist/admin/components/ui/select/Select.vue +19 -0
  61. package/dist/admin/components/ui/select/SelectContent.vue +51 -0
  62. package/dist/admin/components/ui/select/SelectGroup.vue +15 -0
  63. package/dist/admin/components/ui/select/SelectItem.vue +44 -0
  64. package/dist/admin/components/ui/select/SelectItemText.vue +15 -0
  65. package/dist/admin/components/ui/select/SelectLabel.vue +17 -0
  66. package/dist/admin/components/ui/select/SelectScrollDownButton.vue +26 -0
  67. package/dist/admin/components/ui/select/SelectScrollUpButton.vue +26 -0
  68. package/dist/admin/components/ui/select/SelectSeparator.vue +19 -0
  69. package/dist/admin/components/ui/select/SelectTrigger.vue +33 -0
  70. package/dist/admin/components/ui/select/SelectValue.vue +15 -0
  71. package/dist/admin/components/ui/select/index.d.ts +11 -0
  72. package/dist/admin/components/ui/select/index.js +1 -0
  73. package/dist/admin/components/ui/separator/Separator.vue +29 -0
  74. package/dist/admin/components/ui/separator/index.d.ts +1 -0
  75. package/dist/admin/components/ui/separator/index.js +1 -0
  76. package/dist/admin/components/ui/sheet/Sheet.vue +19 -0
  77. package/dist/admin/components/ui/sheet/SheetClose.vue +15 -0
  78. package/dist/admin/components/ui/sheet/SheetContent.vue +63 -0
  79. package/dist/admin/components/ui/sheet/SheetDescription.vue +21 -0
  80. package/dist/admin/components/ui/sheet/SheetFooter.vue +16 -0
  81. package/dist/admin/components/ui/sheet/SheetHeader.vue +15 -0
  82. package/dist/admin/components/ui/sheet/SheetOverlay.vue +21 -0
  83. package/dist/admin/components/ui/sheet/SheetTitle.vue +21 -0
  84. package/dist/admin/components/ui/sheet/SheetTrigger.vue +15 -0
  85. package/dist/admin/components/ui/sheet/index.d.ts +8 -0
  86. package/dist/admin/components/ui/sheet/index.js +1 -0
  87. package/dist/admin/components/ui/sonner/Toaster.vue +117 -0
  88. package/dist/admin/components/ui/sonner/index.d.ts +1 -0
  89. package/dist/admin/components/ui/sonner/index.js +1 -0
  90. package/dist/admin/components/ui/table/Table.vue +16 -0
  91. package/dist/admin/components/ui/table/TableBody.vue +17 -0
  92. package/dist/admin/components/ui/table/TableCaption.vue +17 -0
  93. package/dist/admin/components/ui/table/TableCell.vue +22 -0
  94. package/dist/admin/components/ui/table/TableEmpty.vue +34 -0
  95. package/dist/admin/components/ui/table/TableFooter.vue +17 -0
  96. package/dist/admin/components/ui/table/TableHead.vue +17 -0
  97. package/dist/admin/components/ui/table/TableHeader.vue +17 -0
  98. package/dist/admin/components/ui/table/TableRow.vue +17 -0
  99. package/dist/admin/components/ui/table/index.d.ts +9 -0
  100. package/dist/admin/components/ui/table/index.js +1 -0
  101. package/dist/admin/components/ui/tabs/Tabs.vue +24 -0
  102. package/dist/admin/components/ui/tabs/TabsContent.vue +21 -0
  103. package/dist/admin/components/ui/tabs/TabsList.vue +24 -0
  104. package/dist/admin/components/ui/tabs/TabsTrigger.vue +26 -0
  105. package/dist/admin/components/ui/tabs/index.d.ts +4 -0
  106. package/dist/admin/components/ui/tabs/index.js +1 -0
  107. package/dist/admin/components/ui/tooltip/Tooltip.vue +19 -0
  108. package/dist/admin/components/ui/tooltip/TooltipContent.vue +34 -0
  109. package/dist/admin/components/ui/tooltip/TooltipProvider.vue +14 -0
  110. package/dist/admin/components/ui/tooltip/TooltipTrigger.vue +15 -0
  111. package/dist/admin/components/ui/tooltip/index.d.ts +4 -0
  112. package/dist/admin/components/ui/tooltip/index.js +1 -0
  113. package/dist/admin/crud/components/vm-color-picker.vue +0 -3
  114. package/dist/admin/crud/components/vm-richtext-extensions.js +1 -1
  115. package/dist/admin/crud/config.js +1 -1
  116. package/dist/admin/crud/confirm.d.ts +8 -0
  117. package/dist/admin/crud/confirm.js +1 -1
  118. package/dist/admin/crud/crud-page-request.js +1 -1
  119. package/dist/admin/crud/dict.js +1 -1
  120. package/dist/admin/crud/export-fetch.js +1 -1
  121. package/dist/admin/crud/key.js +1 -1
  122. package/dist/admin/crud/plugins.js +1 -1
  123. package/dist/admin/crud/span.js +1 -1
  124. package/dist/admin/crud/style.d.ts +4 -0
  125. package/dist/admin/crud/style.js +1 -1
  126. package/dist/admin/crud/validate.js +1 -1
  127. package/dist/admin/directives/perm.js +1 -1
  128. package/dist/admin/env.d.ts +0 -4
  129. package/dist/admin/hooks/useUpload.js +1 -1
  130. package/dist/admin/index.d.ts +11 -9
  131. package/dist/admin/index.js +16 -27
  132. package/dist/admin/lib/browser.js +1 -1
  133. package/dist/admin/lib/cn.js +1 -1
  134. package/dist/admin/lib/dialog-float.js +1 -1
  135. package/dist/admin/lib/document-title.d.ts +6 -0
  136. package/dist/admin/lib/document-title.js +1 -0
  137. package/dist/admin/lib/export-excel.js +1 -1
  138. package/dist/admin/lib/import-excel.js +1 -1
  139. package/dist/admin/lib/json.js +1 -1
  140. package/dist/admin/lib/menu.js +1 -1
  141. package/dist/admin/lib/micro-locale.d.ts +5 -0
  142. package/dist/admin/lib/micro-locale.js +1 -0
  143. package/dist/admin/lib/micro-theme.d.ts +14 -0
  144. package/dist/admin/lib/micro-theme.js +1 -0
  145. package/dist/admin/lib/setup-crud-defaults.d.ts +2 -0
  146. package/dist/admin/lib/setup-crud-defaults.js +1 -0
  147. package/dist/admin/lib/shell.d.ts +13 -0
  148. package/dist/admin/lib/shell.js +1 -0
  149. package/dist/admin/lib/theme-color-options.js +1 -1
  150. package/dist/admin/lib/tree.js +1 -1
  151. package/dist/admin/lib/upload.js +1 -1
  152. package/dist/admin/lib/video-frame.js +1 -1
  153. package/dist/admin/router/create.d.ts +16 -0
  154. package/dist/admin/router/create.js +1 -0
  155. package/dist/admin/router/guards.d.ts +6 -0
  156. package/dist/admin/router/guards.js +1 -0
  157. package/dist/admin/router/index.d.ts +5 -3
  158. package/dist/admin/router/index.js +5 -80
  159. package/dist/admin/router/menu-routes.d.ts +7 -2
  160. package/dist/admin/router/menu-routes.js +10 -12
  161. package/dist/admin/service/index.js +0 -3
  162. package/dist/admin/stores/dict.d.ts +13 -0
  163. package/dist/admin/stores/dict.js +1 -0
  164. package/dist/admin/stores/locale.d.ts +3 -0
  165. package/dist/admin/stores/locale.js +1 -0
  166. package/dist/admin/stores/theme.d.ts +1 -0
  167. package/dist/admin/stores/theme.js +1 -0
  168. package/dist/admin/themes/dark.d.ts +2 -0
  169. package/dist/admin/themes/dark.js +1 -0
  170. package/dist/admin/themes/index.d.ts +9 -0
  171. package/dist/admin/themes/index.js +1 -0
  172. package/dist/admin/themes/light.d.ts +2 -0
  173. package/dist/admin/themes/light.js +1 -0
  174. package/dist/client/configure.d.ts +3 -0
  175. package/dist/client/configure.js +8 -1
  176. package/dist/client/vite-admin.js +2 -4
  177. package/dist/client/vite-auto-import.js +4 -4
  178. package/dist/client/vite-resolve.d.ts +3 -3
  179. package/dist/client/vite-resolve.js +10 -15
  180. package/dist/ext/plugin-market-urls.d.ts +8 -0
  181. package/dist/index.js +1 -1
  182. package/dist/server/index.js +1 -1
  183. package/dist/shared/datetime-picker.js +1 -1
  184. package/dist/shared/excel.js +1 -1
  185. package/dist/shared/index.js +1 -1
  186. package/dist/shared/locale-json.js +1 -1
  187. package/dist/shared/tree.js +1 -1
  188. package/package.json +13 -4
  189. package/typings/admin/theme.ts +10 -0
  190. package/dist/admin/config/plugin-dev.d.ts +0 -52
  191. package/dist/admin/config/plugin-dev.js +0 -1
  192. package/dist/comm/chinese-segments.test.d.ts +0 -1
  193. package/dist/comm/path.test.d.ts +0 -1
  194. package/typings/admin/base/auth.d.ts +0 -21
  195. package/typings/admin/base/permission.d.ts +0 -19
  196. package/typings/admin/comm/crud.d.ts +0 -343
  197. package/typings/admin/comm/eps.d.ts +0 -66
  198. package/typings/admin/comm/request.d.ts +0 -13
  199. package/typings/admin/comm/service.d.ts +0 -48
  200. package/typings/admin/comm/upload.d.ts +0 -26
  201. package/typings/admin/host.d.ts +0 -66
  202. package/typings/admin/vome/browser.d.ts +0 -10
  203. 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,4 @@
1
+ export { default as Tabs } from "./Tabs.vue";
2
+ export { default as TabsContent } from "./TabsContent.vue";
3
+ export { default as TabsList } from "./TabsList.vue";
4
+ export { default as TabsTrigger } from "./TabsTrigger.vue";
@@ -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,4 @@
1
+ export { default as Tooltip } from "./Tooltip.vue";
2
+ export { default as TooltipContent } from "./TooltipContent.vue";
3
+ export { default as TooltipProvider } from "./TooltipProvider.vue";
4
+ export { default as TooltipTrigger } from "./TooltipTrigger.vue";
@@ -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)