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.
Files changed (195) 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/table/utils.d.ts +3 -0
  102. package/dist/admin/components/ui/table/utils.js +1 -0
  103. package/dist/admin/components/ui/tabs/Tabs.vue +24 -0
  104. package/dist/admin/components/ui/tabs/TabsContent.vue +21 -0
  105. package/dist/admin/components/ui/tabs/TabsList.vue +24 -0
  106. package/dist/admin/components/ui/tabs/TabsTrigger.vue +26 -0
  107. package/dist/admin/components/ui/tabs/index.d.ts +4 -0
  108. package/dist/admin/components/ui/tabs/index.js +1 -0
  109. package/dist/admin/components/ui/tooltip/Tooltip.vue +19 -0
  110. package/dist/admin/components/ui/tooltip/TooltipContent.vue +34 -0
  111. package/dist/admin/components/ui/tooltip/TooltipProvider.vue +14 -0
  112. package/dist/admin/components/ui/tooltip/TooltipTrigger.vue +15 -0
  113. package/dist/admin/components/ui/tooltip/index.d.ts +4 -0
  114. package/dist/admin/components/ui/tooltip/index.js +1 -0
  115. package/dist/admin/crud/components/vm-color-picker.vue +0 -3
  116. package/dist/admin/crud/components/vm-richtext-extensions.js +1 -1
  117. package/dist/admin/crud/config.js +1 -1
  118. package/dist/admin/crud/confirm.d.ts +8 -0
  119. package/dist/admin/crud/confirm.js +1 -1
  120. package/dist/admin/crud/crud-page-request.js +1 -1
  121. package/dist/admin/crud/dict.js +1 -1
  122. package/dist/admin/crud/export-fetch.js +1 -1
  123. package/dist/admin/crud/key.js +1 -1
  124. package/dist/admin/crud/plugins.js +1 -1
  125. package/dist/admin/crud/span.js +1 -1
  126. package/dist/admin/crud/style.d.ts +4 -0
  127. package/dist/admin/crud/style.js +1 -1
  128. package/dist/admin/crud/validate.js +1 -1
  129. package/dist/admin/crud/vm-data-i18n-btn.vue +0 -7
  130. package/dist/admin/directives/perm.js +1 -1
  131. package/dist/admin/env.d.ts +0 -4
  132. package/dist/admin/hooks/useUpload.js +1 -1
  133. package/dist/admin/index.d.ts +11 -4
  134. package/dist/admin/index.js +16 -7
  135. package/dist/admin/lib/browser.js +1 -1
  136. package/dist/admin/lib/cn.js +1 -1
  137. package/dist/admin/lib/dialog-float.js +1 -1
  138. package/dist/admin/lib/document-title.d.ts +6 -0
  139. package/dist/admin/lib/document-title.js +1 -0
  140. package/dist/admin/lib/export-excel.js +1 -1
  141. package/dist/admin/lib/import-excel.js +1 -1
  142. package/dist/admin/lib/json.js +1 -1
  143. package/dist/admin/lib/menu.js +1 -1
  144. package/dist/admin/lib/micro-locale.d.ts +5 -0
  145. package/dist/admin/lib/micro-locale.js +1 -0
  146. package/dist/admin/lib/micro-theme.d.ts +14 -0
  147. package/dist/admin/lib/micro-theme.js +1 -0
  148. package/dist/admin/lib/setup-crud-defaults.d.ts +2 -0
  149. package/dist/admin/lib/setup-crud-defaults.js +1 -0
  150. package/dist/admin/lib/shell.d.ts +13 -0
  151. package/dist/admin/lib/shell.js +1 -0
  152. package/dist/admin/lib/theme-color-options.js +1 -1
  153. package/dist/admin/lib/tree.js +1 -1
  154. package/dist/admin/lib/upload.js +1 -1
  155. package/dist/admin/lib/video-frame.js +1 -1
  156. package/dist/admin/router/create.d.ts +16 -0
  157. package/dist/admin/router/create.js +1 -0
  158. package/dist/admin/router/guards.d.ts +6 -0
  159. package/dist/admin/router/guards.js +1 -0
  160. package/dist/admin/router/index.d.ts +6 -3
  161. package/dist/admin/router/index.js +5 -80
  162. package/dist/admin/router/menu-routes.d.ts +7 -2
  163. package/dist/admin/router/menu-routes.js +10 -12
  164. package/dist/admin/service/index.js +0 -3
  165. package/dist/admin/stores/dict.d.ts +13 -0
  166. package/dist/admin/stores/dict.js +1 -0
  167. package/dist/admin/stores/locale.d.ts +3 -0
  168. package/dist/admin/stores/locale.js +1 -0
  169. package/dist/admin/stores/theme.d.ts +1 -0
  170. package/dist/admin/stores/theme.js +1 -0
  171. package/dist/admin/themes/dark.d.ts +2 -0
  172. package/dist/admin/themes/dark.js +1 -0
  173. package/dist/admin/themes/index.d.ts +9 -0
  174. package/dist/admin/themes/index.js +1 -0
  175. package/dist/admin/themes/light.d.ts +2 -0
  176. package/dist/admin/themes/light.js +1 -0
  177. package/dist/client/configure.d.ts +3 -0
  178. package/dist/client/configure.js +7 -0
  179. package/dist/client/vite-admin.js +2 -4
  180. package/dist/client/vite-auto-import.js +4 -4
  181. package/dist/client/vite-resolve.d.ts +3 -3
  182. package/dist/client/vite-resolve.js +10 -15
  183. package/dist/ext/plugin-market-urls.d.ts +8 -0
  184. package/dist/index.js +1 -1
  185. package/dist/server/index.js +1 -1
  186. package/dist/shared/datetime-picker.js +1 -1
  187. package/dist/shared/excel.js +1 -1
  188. package/dist/shared/index.js +1 -1
  189. package/dist/shared/locale-json.js +1 -1
  190. package/dist/shared/tree.js +1 -1
  191. package/package.json +13 -4
  192. package/typings/admin/theme.ts +10 -0
  193. package/dist/admin/config/plugin-dev.d.ts +0 -52
  194. package/dist/admin/config/plugin-dev.js +0 -1
  195. package/typings/admin/host.d.ts +0 -66
@@ -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
+ <div
12
+ data-slot="dialog-header"
13
+ :class="cn('flex flex-col gap-2 text-center sm:text-left', props.class)"
14
+ >
15
+ <slot />
16
+ </div>
17
+ </template>
@@ -0,0 +1,21 @@
1
+ <script setup lang="ts">
2
+ import type { DialogOverlayProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import { DialogOverlay } from "reka-ui"
6
+ import { cn } from "@core/admin/lib/cn"
7
+
8
+ const props = defineProps<DialogOverlayProps & { class?: HTMLAttributes["class"] }>()
9
+
10
+ const delegatedProps = reactiveOmit(props, "class")
11
+ </script>
12
+
13
+ <template>
14
+ <DialogOverlay
15
+ data-slot="dialog-overlay"
16
+ v-bind="delegatedProps"
17
+ :class="cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80', props.class)"
18
+ >
19
+ <slot />
20
+ </DialogOverlay>
21
+ </template>
@@ -0,0 +1,60 @@
1
+ <script setup lang="ts">
2
+ import type { DialogContentEmits, DialogContentProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { X } from "@lucide/vue"
5
+ import { reactiveOmit } from "@vueuse/core"
6
+ import {
7
+ DialogClose,
8
+ DialogContent,
9
+ DialogOverlay,
10
+ DialogPortal,
11
+ useForwardPropsEmits,
12
+ } from "reka-ui"
13
+ import { cn } from "@core/admin/lib/cn"
14
+
15
+ defineOptions({
16
+ inheritAttrs: false,
17
+ })
18
+
19
+ const props = defineProps<DialogContentProps & { class?: HTMLAttributes["class"] }>()
20
+ const emits = defineEmits<DialogContentEmits>()
21
+
22
+ const delegatedProps = reactiveOmit(props, "class")
23
+
24
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
25
+ </script>
26
+
27
+ <template>
28
+ <DialogPortal>
29
+ <DialogOverlay
30
+ class="fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
31
+ >
32
+ <DialogContent
33
+ :class="
34
+ cn(
35
+ 'relative z-50 grid w-full max-w-lg my-8 gap-4 border border-border bg-background p-6 shadow-lg duration-200 sm:rounded-lg md:w-full',
36
+ props.class,
37
+ )
38
+ "
39
+ v-bind="{ ...$attrs, ...forwarded }"
40
+ :aria-describedby="undefined"
41
+ @pointer-down-outside="(event) => {
42
+ const originalEvent = event.detail.originalEvent;
43
+ const target = originalEvent.target as HTMLElement;
44
+ if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
45
+ event.preventDefault();
46
+ }
47
+ }"
48
+ >
49
+ <slot />
50
+
51
+ <DialogClose
52
+ class="absolute top-4 right-4 p-0.5 transition-colors rounded-md hover:bg-secondary"
53
+ >
54
+ <X class="w-4 h-4" />
55
+ <span class="sr-only">Close</span>
56
+ </DialogClose>
57
+ </DialogContent>
58
+ </DialogOverlay>
59
+ </DialogPortal>
60
+ </template>
@@ -0,0 +1,23 @@
1
+ <script setup lang="ts">
2
+ import type { DialogTitleProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import { DialogTitle, useForwardProps } from "reka-ui"
6
+ import { cn } from "@core/admin/lib/cn"
7
+
8
+ const props = defineProps<DialogTitleProps & { class?: HTMLAttributes["class"] }>()
9
+
10
+ const delegatedProps = reactiveOmit(props, "class")
11
+
12
+ const forwardedProps = useForwardProps(delegatedProps)
13
+ </script>
14
+
15
+ <template>
16
+ <DialogTitle
17
+ data-slot="dialog-title"
18
+ v-bind="forwardedProps"
19
+ :class="cn('text-lg leading-none font-semibold', props.class)"
20
+ >
21
+ <slot />
22
+ </DialogTitle>
23
+ </template>
@@ -0,0 +1,15 @@
1
+ <script setup lang="ts">
2
+ import type { DialogTriggerProps } from "reka-ui"
3
+ import { DialogTrigger } from "reka-ui"
4
+
5
+ const props = defineProps<DialogTriggerProps>()
6
+ </script>
7
+
8
+ <template>
9
+ <DialogTrigger
10
+ data-slot="dialog-trigger"
11
+ v-bind="props"
12
+ >
13
+ <slot />
14
+ </DialogTrigger>
15
+ </template>
@@ -0,0 +1,10 @@
1
+ export { default as Dialog } from "./Dialog.vue";
2
+ export { default as DialogClose } from "./DialogClose.vue";
3
+ export { default as DialogContent } from "./DialogContent.vue";
4
+ export { default as DialogDescription } from "./DialogDescription.vue";
5
+ export { default as DialogFooter } from "./DialogFooter.vue";
6
+ export { default as DialogHeader } from "./DialogHeader.vue";
7
+ export { default as DialogOverlay } from "./DialogOverlay.vue";
8
+ export { default as DialogScrollContent } from "./DialogScrollContent.vue";
9
+ export { default as DialogTitle } from "./DialogTitle.vue";
10
+ export { default as DialogTrigger } from "./DialogTrigger.vue";
@@ -0,0 +1 @@
1
+ (function(_0x1df037,_0x4dbc4d){var _0x36da5a=_0x9ef9,_0x53ed69=_0x1df037();while(!![]){try{var _0xf4ba7f=parseInt(_0x36da5a(0xa7))/0x1*(-parseInt(_0x36da5a(0xad))/0x2)+-parseInt(_0x36da5a(0xae))/0x3*(parseInt(_0x36da5a(0xac))/0x4)+-parseInt(_0x36da5a(0xa9))/0x5*(-parseInt(_0x36da5a(0xaf))/0x6)+-parseInt(_0x36da5a(0xaa))/0x7+-parseInt(_0x36da5a(0xab))/0x8*(-parseInt(_0x36da5a(0xa6))/0x9)+-parseInt(_0x36da5a(0xb2))/0xa*(parseInt(_0x36da5a(0xb0))/0xb)+-parseInt(_0x36da5a(0xb1))/0xc*(-parseInt(_0x36da5a(0xa8))/0xd);if(_0xf4ba7f===_0x4dbc4d)break;else _0x53ed69['push'](_0x53ed69['shift']());}catch(_0x4d22ed){_0x53ed69['push'](_0x53ed69['shift']());}}}(_0x5105,0xaf6bc));export{default as Dialog}from'./Dialog.vue';export{default as DialogClose}from'./DialogClose.vue';export{default as DialogContent}from'./DialogContent.vue';function _0x9ef9(_0x250591,_0x16840c){_0x250591=_0x250591-0xa6;var _0x510583=_0x5105();var _0x9ef934=_0x510583[_0x250591];if(_0x9ef9['xBTWOa']===undefined){var _0x21db37=function(_0x43aad9){var _0x4dfacb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x418b4f='',_0x2e2c87='';for(var _0x6e21fc=0x0,_0x5dc54c,_0x956e80,_0x5286a1=0x0;_0x956e80=_0x43aad9['charAt'](_0x5286a1++);~_0x956e80&&(_0x5dc54c=_0x6e21fc%0x4?_0x5dc54c*0x40+_0x956e80:_0x956e80,_0x6e21fc++%0x4)?_0x418b4f+=String['fromCharCode'](0xff&_0x5dc54c>>(-0x2*_0x6e21fc&0x6)):0x0){_0x956e80=_0x4dfacb['indexOf'](_0x956e80);}for(var _0x1d6da4=0x0,_0x4ec94a=_0x418b4f['length'];_0x1d6da4<_0x4ec94a;_0x1d6da4++){_0x2e2c87+='%'+('00'+_0x418b4f['charCodeAt'](_0x1d6da4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e2c87);};_0x9ef9['LNYlOW']=_0x21db37,_0x9ef9['hPYgaM']={},_0x9ef9['xBTWOa']=!![];}var _0x38bc80=_0x510583[0x0],_0x5be6d0=_0x250591+_0x38bc80,_0x14d70f=_0x9ef9['hPYgaM'][_0x5be6d0];return!_0x14d70f?(_0x9ef934=_0x9ef9['LNYlOW'](_0x9ef934),_0x9ef9['hPYgaM'][_0x5be6d0]=_0x9ef934):_0x9ef934=_0x14d70f,_0x9ef934;}export{default as DialogDescription}from'./DialogDescription.vue';export{default as DialogFooter}from'./DialogFooter.vue';export{default as DialogHeader}from'./DialogHeader.vue';export{default as DialogOverlay}from'./DialogOverlay.vue';export{default as DialogScrollContent}from'./DialogScrollContent.vue';export{default as DialogTitle}from'./DialogTitle.vue';function _0x5105(){var _0x482487=['mtnhuLnQqNO','nvnAsfPHtq','oda5mdKWmw1vCMTjua','mJGWmdaWogrkDffmyG','nfD6tK1mqq','ndC4BvzntxDt','mZy4otyXovLNwffVDW','odmZmZuZofvKEwr2qq','mJjxwhvswvu','mtuXmZu5mJrluhLlze0','mJC1mtGYmeXtvK1TtG','mJDuA3jwBLy','mtKXzNHpq0vn'];_0x5105=function(){return _0x482487;};return _0x5105();}export{default as DialogTrigger}from'./DialogTrigger.vue';
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuRootEmits, DropdownMenuRootProps } from "reka-ui"
3
+ import { DropdownMenuRoot, useForwardPropsEmits } from "reka-ui"
4
+
5
+ const props = defineProps<DropdownMenuRootProps>()
6
+ const emits = defineEmits<DropdownMenuRootEmits>()
7
+
8
+ const forwarded = useForwardPropsEmits(props, emits)
9
+ </script>
10
+
11
+ <template>
12
+ <DropdownMenuRoot
13
+ v-slot="slotProps"
14
+ data-slot="dropdown-menu"
15
+ v-bind="forwarded"
16
+ >
17
+ <slot v-bind="slotProps" />
18
+ </DropdownMenuRoot>
19
+ </template>
@@ -0,0 +1,39 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuCheckboxItemEmits, DropdownMenuCheckboxItemProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { Check } from "@lucide/vue"
5
+ import { reactiveOmit } from "@vueuse/core"
6
+ import {
7
+ DropdownMenuCheckboxItem,
8
+ DropdownMenuItemIndicator,
9
+ useForwardPropsEmits,
10
+ } from "reka-ui"
11
+ import { cn } from "@core/admin/lib/cn"
12
+
13
+ const props = defineProps<DropdownMenuCheckboxItemProps & { class?: HTMLAttributes["class"] }>()
14
+ const emits = defineEmits<DropdownMenuCheckboxItemEmits>()
15
+
16
+ const delegatedProps = reactiveOmit(props, "class")
17
+
18
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
19
+ </script>
20
+
21
+ <template>
22
+ <DropdownMenuCheckboxItem
23
+ data-slot="dropdown-menu-checkbox-item"
24
+ v-bind="forwarded"
25
+ :class=" cn(
26
+ 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
27
+ props.class,
28
+ )"
29
+ >
30
+ <span class="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
31
+ <DropdownMenuItemIndicator>
32
+ <slot name="indicator-icon">
33
+ <Check class="size-4" />
34
+ </slot>
35
+ </DropdownMenuItemIndicator>
36
+ </span>
37
+ <slot />
38
+ </DropdownMenuCheckboxItem>
39
+ </template>
@@ -0,0 +1,39 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuContentEmits, DropdownMenuContentProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import {
6
+ DropdownMenuContent,
7
+ DropdownMenuPortal,
8
+ useForwardPropsEmits,
9
+ } from "reka-ui"
10
+ import { cn } from "@core/admin/lib/cn"
11
+
12
+ defineOptions({
13
+ inheritAttrs: false,
14
+ })
15
+
16
+ const props = withDefaults(
17
+ defineProps<DropdownMenuContentProps & { class?: HTMLAttributes["class"] }>(),
18
+ {
19
+ sideOffset: 4,
20
+ },
21
+ )
22
+ const emits = defineEmits<DropdownMenuContentEmits>()
23
+
24
+ const delegatedProps = reactiveOmit(props, "class")
25
+
26
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
27
+ </script>
28
+
29
+ <template>
30
+ <DropdownMenuPortal>
31
+ <DropdownMenuContent
32
+ data-slot="dropdown-menu-content"
33
+ v-bind="{ ...$attrs, ...forwarded }"
34
+ :class="cn('vm-dialog-float bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[100] max-h-(--reka-dropdown-menu-content-available-height) min-w-[128px] origin-(--reka-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md', props.class)"
35
+ >
36
+ <slot />
37
+ </DropdownMenuContent>
38
+ </DropdownMenuPortal>
39
+ </template>
@@ -0,0 +1,15 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuGroupProps } from "reka-ui"
3
+ import { DropdownMenuGroup } from "reka-ui"
4
+
5
+ const props = defineProps<DropdownMenuGroupProps>()
6
+ </script>
7
+
8
+ <template>
9
+ <DropdownMenuGroup
10
+ data-slot="dropdown-menu-group"
11
+ v-bind="props"
12
+ >
13
+ <slot />
14
+ </DropdownMenuGroup>
15
+ </template>
@@ -0,0 +1,31 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuItemProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import { DropdownMenuItem, useForwardProps } from "reka-ui"
6
+ import { cn } from "@core/admin/lib/cn"
7
+
8
+ const props = withDefaults(defineProps<DropdownMenuItemProps & {
9
+ class?: HTMLAttributes["class"]
10
+ inset?: boolean
11
+ variant?: "default" | "destructive"
12
+ }>(), {
13
+ variant: "default",
14
+ })
15
+
16
+ const delegatedProps = reactiveOmit(props, "inset", "variant", "class")
17
+
18
+ const forwardedProps = useForwardProps(delegatedProps)
19
+ </script>
20
+
21
+ <template>
22
+ <DropdownMenuItem
23
+ data-slot="dropdown-menu-item"
24
+ :data-inset="inset ? '' : undefined"
25
+ :data-variant="variant"
26
+ v-bind="forwardedProps"
27
+ :class="cn('focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=\'text-\'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4', props.class)"
28
+ >
29
+ <slot />
30
+ </DropdownMenuItem>
31
+ </template>
@@ -0,0 +1,23 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuLabelProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import { DropdownMenuLabel, useForwardProps } from "reka-ui"
6
+ import { cn } from "@core/admin/lib/cn"
7
+
8
+ const props = defineProps<DropdownMenuLabelProps & { class?: HTMLAttributes["class"], inset?: boolean }>()
9
+
10
+ const delegatedProps = reactiveOmit(props, "class", "inset")
11
+ const forwardedProps = useForwardProps(delegatedProps)
12
+ </script>
13
+
14
+ <template>
15
+ <DropdownMenuLabel
16
+ data-slot="dropdown-menu-label"
17
+ :data-inset="inset ? '' : undefined"
18
+ v-bind="forwardedProps"
19
+ :class="cn('px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', props.class)"
20
+ >
21
+ <slot />
22
+ </DropdownMenuLabel>
23
+ </template>
@@ -0,0 +1,21 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuRadioGroupEmits, DropdownMenuRadioGroupProps } from "reka-ui"
3
+ import {
4
+ DropdownMenuRadioGroup,
5
+ useForwardPropsEmits,
6
+ } from "reka-ui"
7
+
8
+ const props = defineProps<DropdownMenuRadioGroupProps>()
9
+ const emits = defineEmits<DropdownMenuRadioGroupEmits>()
10
+
11
+ const forwarded = useForwardPropsEmits(props, emits)
12
+ </script>
13
+
14
+ <template>
15
+ <DropdownMenuRadioGroup
16
+ data-slot="dropdown-menu-radio-group"
17
+ v-bind="forwarded"
18
+ >
19
+ <slot />
20
+ </DropdownMenuRadioGroup>
21
+ </template>
@@ -0,0 +1,40 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuRadioItemEmits, DropdownMenuRadioItemProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { Circle } from "@lucide/vue"
5
+ import { reactiveOmit } from "@vueuse/core"
6
+ import {
7
+ DropdownMenuItemIndicator,
8
+ DropdownMenuRadioItem,
9
+ useForwardPropsEmits,
10
+ } from "reka-ui"
11
+ import { cn } from "@core/admin/lib/cn"
12
+
13
+ const props = defineProps<DropdownMenuRadioItemProps & { class?: HTMLAttributes["class"] }>()
14
+
15
+ const emits = defineEmits<DropdownMenuRadioItemEmits>()
16
+
17
+ const delegatedProps = reactiveOmit(props, "class")
18
+
19
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
20
+ </script>
21
+
22
+ <template>
23
+ <DropdownMenuRadioItem
24
+ data-slot="dropdown-menu-radio-item"
25
+ v-bind="forwarded"
26
+ :class="cn(
27
+ 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4',
28
+ props.class,
29
+ )"
30
+ >
31
+ <span class="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
32
+ <DropdownMenuItemIndicator>
33
+ <slot name="indicator-icon">
34
+ <Circle class="size-2 fill-current" />
35
+ </slot>
36
+ </DropdownMenuItemIndicator>
37
+ </span>
38
+ <slot />
39
+ </DropdownMenuRadioItem>
40
+ </template>
@@ -0,0 +1,23 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuSeparatorProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import {
6
+ DropdownMenuSeparator,
7
+ } from "reka-ui"
8
+ import { cn } from "@core/admin/lib/cn"
9
+
10
+ const props = defineProps<DropdownMenuSeparatorProps & {
11
+ class?: HTMLAttributes["class"]
12
+ }>()
13
+
14
+ const delegatedProps = reactiveOmit(props, "class")
15
+ </script>
16
+
17
+ <template>
18
+ <DropdownMenuSeparator
19
+ data-slot="dropdown-menu-separator"
20
+ v-bind="delegatedProps"
21
+ :class="cn('bg-border -mx-1 my-1 h-px', props.class)"
22
+ />
23
+ </template>
@@ -0,0 +1,17 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from "vue"
3
+ import { cn } from "@core/admin/lib/cn"
4
+
5
+ const props = defineProps<{
6
+ class?: HTMLAttributes["class"]
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <span
12
+ data-slot="dropdown-menu-shortcut"
13
+ :class="cn('text-muted-foreground ml-auto text-xs tracking-widest', props.class)"
14
+ >
15
+ <slot />
16
+ </span>
17
+ </template>
@@ -0,0 +1,18 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuSubEmits, DropdownMenuSubProps } from "reka-ui"
3
+ import {
4
+ DropdownMenuSub,
5
+ useForwardPropsEmits,
6
+ } from "reka-ui"
7
+
8
+ const props = defineProps<DropdownMenuSubProps>()
9
+ const emits = defineEmits<DropdownMenuSubEmits>()
10
+
11
+ const forwarded = useForwardPropsEmits(props, emits)
12
+ </script>
13
+
14
+ <template>
15
+ <DropdownMenuSub v-slot="slotProps" data-slot="dropdown-menu-sub" v-bind="forwarded">
16
+ <slot v-bind="slotProps" />
17
+ </DropdownMenuSub>
18
+ </template>
@@ -0,0 +1,27 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuSubContentEmits, DropdownMenuSubContentProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import {
6
+ DropdownMenuSubContent,
7
+ useForwardPropsEmits,
8
+ } from "reka-ui"
9
+ import { cn } from "@core/admin/lib/cn"
10
+
11
+ const props = defineProps<DropdownMenuSubContentProps & { class?: HTMLAttributes["class"] }>()
12
+ const emits = defineEmits<DropdownMenuSubContentEmits>()
13
+
14
+ const delegatedProps = reactiveOmit(props, "class")
15
+
16
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
17
+ </script>
18
+
19
+ <template>
20
+ <DropdownMenuSubContent
21
+ data-slot="dropdown-menu-sub-content"
22
+ v-bind="forwarded"
23
+ :class="cn('vm-dialog-float bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[100] min-w-[128px] origin-(--reka-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg', props.class)"
24
+ >
25
+ <slot />
26
+ </DropdownMenuSubContent>
27
+ </template>
@@ -0,0 +1,31 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuSubTriggerProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { ChevronRight } from "@lucide/vue"
5
+ import { reactiveOmit } from "@vueuse/core"
6
+ import {
7
+ DropdownMenuSubTrigger,
8
+ useForwardProps,
9
+ } from "reka-ui"
10
+ import { cn } from "@core/admin/lib/cn"
11
+
12
+ const props = defineProps<DropdownMenuSubTriggerProps & { class?: HTMLAttributes["class"], inset?: boolean }>()
13
+
14
+ const delegatedProps = reactiveOmit(props, "class", "inset")
15
+ const forwardedProps = useForwardProps(delegatedProps)
16
+ </script>
17
+
18
+ <template>
19
+ <DropdownMenuSubTrigger
20
+ data-slot="dropdown-menu-sub-trigger"
21
+ v-bind="forwardedProps"
22
+ :data-inset="inset ? '' : undefined"
23
+ :class="cn(
24
+ 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4 data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=\'text-\'])]:text-muted-foreground',
25
+ props.class,
26
+ )"
27
+ >
28
+ <slot />
29
+ <ChevronRight class="ml-auto size-4" />
30
+ </DropdownMenuSubTrigger>
31
+ </template>
@@ -0,0 +1,17 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuTriggerProps } from "reka-ui"
3
+ import { DropdownMenuTrigger, useForwardProps } from "reka-ui"
4
+
5
+ const props = defineProps<DropdownMenuTriggerProps>()
6
+
7
+ const forwardedProps = useForwardProps(props)
8
+ </script>
9
+
10
+ <template>
11
+ <DropdownMenuTrigger
12
+ data-slot="dropdown-menu-trigger"
13
+ v-bind="forwardedProps"
14
+ >
15
+ <slot />
16
+ </DropdownMenuTrigger>
17
+ </template>
@@ -0,0 +1,15 @@
1
+ export { default as DropdownMenu } from "./DropdownMenu.vue";
2
+ export { default as DropdownMenuCheckboxItem } from "./DropdownMenuCheckboxItem.vue";
3
+ export { default as DropdownMenuContent } from "./DropdownMenuContent.vue";
4
+ export { default as DropdownMenuGroup } from "./DropdownMenuGroup.vue";
5
+ export { default as DropdownMenuItem } from "./DropdownMenuItem.vue";
6
+ export { default as DropdownMenuLabel } from "./DropdownMenuLabel.vue";
7
+ export { default as DropdownMenuRadioGroup } from "./DropdownMenuRadioGroup.vue";
8
+ export { default as DropdownMenuRadioItem } from "./DropdownMenuRadioItem.vue";
9
+ export { default as DropdownMenuSeparator } from "./DropdownMenuSeparator.vue";
10
+ export { default as DropdownMenuShortcut } from "./DropdownMenuShortcut.vue";
11
+ export { default as DropdownMenuSub } from "./DropdownMenuSub.vue";
12
+ export { default as DropdownMenuSubContent } from "./DropdownMenuSubContent.vue";
13
+ export { default as DropdownMenuSubTrigger } from "./DropdownMenuSubTrigger.vue";
14
+ export { default as DropdownMenuTrigger } from "./DropdownMenuTrigger.vue";
15
+ export { DropdownMenuPortal } from "reka-ui";
@@ -0,0 +1 @@
1
+ (function(_0xce62d,_0x272284){var _0x116b1b=_0x2f71,_0x2f9e06=_0xce62d();while(!![]){try{var _0x3cd4a0=-parseInt(_0x116b1b(0x1e0))/0x1+parseInt(_0x116b1b(0x1e3))/0x2*(parseInt(_0x116b1b(0x1e6))/0x3)+-parseInt(_0x116b1b(0x1e7))/0x4*(-parseInt(_0x116b1b(0x1e4))/0x5)+parseInt(_0x116b1b(0x1eb))/0x6*(parseInt(_0x116b1b(0x1e1))/0x7)+parseInt(_0x116b1b(0x1e2))/0x8*(parseInt(_0x116b1b(0x1e5))/0x9)+-parseInt(_0x116b1b(0x1e8))/0xa*(parseInt(_0x116b1b(0x1ea))/0xb)+parseInt(_0x116b1b(0x1df))/0xc*(parseInt(_0x116b1b(0x1e9))/0xd);if(_0x3cd4a0===_0x272284)break;else _0x2f9e06['push'](_0x2f9e06['shift']());}catch(_0x52f283){_0x2f9e06['push'](_0x2f9e06['shift']());}}}(_0x5020,0xee914));export{default as DropdownMenu}from'./DropdownMenu.vue';export{default as DropdownMenuCheckboxItem}from'./DropdownMenuCheckboxItem.vue';export{default as DropdownMenuContent}from'./DropdownMenuContent.vue';export{default as DropdownMenuGroup}from'./DropdownMenuGroup.vue';export{default as DropdownMenuItem}from'./DropdownMenuItem.vue';export{default as DropdownMenuLabel}from'./DropdownMenuLabel.vue';function _0x2f71(_0x44f5dc,_0x180f08){_0x44f5dc=_0x44f5dc-0x1df;var _0x5020db=_0x5020();var _0x2f7170=_0x5020db[_0x44f5dc];if(_0x2f71['VseepT']===undefined){var _0x578001=function(_0xc70748){var _0x5dc317='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5cf2e0='',_0xfa983='';for(var _0x38313a=0x0,_0x457a7b,_0x2fb079,_0x4a248e=0x0;_0x2fb079=_0xc70748['charAt'](_0x4a248e++);~_0x2fb079&&(_0x457a7b=_0x38313a%0x4?_0x457a7b*0x40+_0x2fb079:_0x2fb079,_0x38313a++%0x4)?_0x5cf2e0+=String['fromCharCode'](0xff&_0x457a7b>>(-0x2*_0x38313a&0x6)):0x0){_0x2fb079=_0x5dc317['indexOf'](_0x2fb079);}for(var _0x1b79a4=0x0,_0x1c5cd8=_0x5cf2e0['length'];_0x1b79a4<_0x1c5cd8;_0x1b79a4++){_0xfa983+='%'+('00'+_0x5cf2e0['charCodeAt'](_0x1b79a4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xfa983);};_0x2f71['YFimBe']=_0x578001,_0x2f71['OuKfvl']={},_0x2f71['VseepT']=!![];}var _0x461d68=_0x5020db[0x0],_0x55ce76=_0x44f5dc+_0x461d68,_0x54c4cb=_0x2f71['OuKfvl'][_0x55ce76];return!_0x54c4cb?(_0x2f7170=_0x2f71['YFimBe'](_0x2f7170),_0x2f71['OuKfvl'][_0x55ce76]=_0x2f7170):_0x2f7170=_0x54c4cb,_0x2f7170;}function _0x5020(){var _0x2b6178=['mZy5odG5z0HZz2Xv','mtfUsNfrr0e','nNruvhbjvG','ntG4tfLMDNbj','mtKXndyXmvnHvxvdyW','mJuYAujwu0z0','mti2nfDowLD3ua','mMPnC0DlBq','mJbpt3Dkzwy','nJe3nJDizgD5tuG','mta0ntCWn1r3t2vHyW','odKZmty0wuXSDKfc','odi4ntm3mfLqCuPgCq'];_0x5020=function(){return _0x2b6178;};return _0x5020();}export{default as DropdownMenuRadioGroup}from'./DropdownMenuRadioGroup.vue';export{default as DropdownMenuRadioItem}from'./DropdownMenuRadioItem.vue';export{default as DropdownMenuSeparator}from'./DropdownMenuSeparator.vue';export{default as DropdownMenuShortcut}from'./DropdownMenuShortcut.vue';export{default as DropdownMenuSub}from'./DropdownMenuSub.vue';export{default as DropdownMenuSubContent}from'./DropdownMenuSubContent.vue';export{default as DropdownMenuSubTrigger}from'./DropdownMenuSubTrigger.vue';export{default as DropdownMenuTrigger}from'./DropdownMenuTrigger.vue';export{DropdownMenuPortal}from'reka-ui';
@@ -0,0 +1,34 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from "vue"
3
+ import { useVModel } from "@vueuse/core"
4
+ import { cn } from "@core/admin/lib/cn"
5
+
6
+ const props = defineProps<{
7
+ defaultValue?: string | number
8
+ modelValue?: string | number
9
+ class?: HTMLAttributes["class"]
10
+ }>()
11
+
12
+ const emits = defineEmits<{
13
+ (e: "update:modelValue", payload: string | number): void
14
+ }>()
15
+
16
+ const modelValue = useVModel(props, "modelValue", emits, {
17
+ passive: true,
18
+ defaultValue: props.defaultValue,
19
+ })
20
+ </script>
21
+
22
+ <template>
23
+ <input
24
+ v-model="modelValue"
25
+ data-slot="input"
26
+ :class="cn(
27
+ 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-[var(--vm-control-height)] w-full min-w-0 rounded-[var(--vm-control-radius)] border bg-transparent px-[var(--vm-control-padding-x)] py-0 text-sm shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',
28
+ /* 聚焦:不要外圈粗 ring,仅细边框淡蓝 */
29
+ 'focus-visible:border-[var(--focus-border)] focus-visible:ring-0 focus-visible:shadow-none',
30
+ 'aria-invalid:border-destructive aria-invalid:ring-0',
31
+ props.class,
32
+ )"
33
+ >
34
+ </template>
@@ -0,0 +1 @@
1
+ export { default as Input } from "./Input.vue";
@@ -0,0 +1 @@
1
+ function _0x5593(){var _0x349cf3=['nNvtwfzXqq','mJKXnJe5y0vxCxPo','otyXnZeYngL2qvH2wa','mteXodK0nJvvrM5oDKW','mtm3nZK5nJb5sLPWtem','nJaZEw1eENnY','mty5mtmWz091sgHS','nvL6B0rVsG','nJuYmJe3mMfbD3vezW','nteYnJu1merRy2THsW','oePhthLJyq'];_0x5593=function(){return _0x349cf3;};return _0x5593();}(function(_0x3baeff,_0x19b196){var _0x21995e=_0x1947,_0x10a11b=_0x3baeff();while(!![]){try{var _0x2842eb=-parseInt(_0x21995e(0x1e2))/0x1*(-parseInt(_0x21995e(0x1eb))/0x2)+parseInt(_0x21995e(0x1ea))/0x3+parseInt(_0x21995e(0x1e9))/0x4*(parseInt(_0x21995e(0x1e8))/0x5)+-parseInt(_0x21995e(0x1e1))/0x6*(parseInt(_0x21995e(0x1e4))/0x7)+-parseInt(_0x21995e(0x1e5))/0x8+parseInt(_0x21995e(0x1e6))/0x9*(-parseInt(_0x21995e(0x1e7))/0xa)+parseInt(_0x21995e(0x1e3))/0xb;if(_0x2842eb===_0x19b196)break;else _0x10a11b['push'](_0x10a11b['shift']());}catch(_0x7fda1c){_0x10a11b['push'](_0x10a11b['shift']());}}}(_0x5593,0xe2128));function _0x1947(_0x54988a,_0x164c86){_0x54988a=_0x54988a-0x1e1;var _0x55936d=_0x5593();var _0x1947fc=_0x55936d[_0x54988a];if(_0x1947['oWgkkN']===undefined){var _0x10182d=function(_0x3d7c0c){var _0x5ad1e2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5786a6='',_0x4db81b='';for(var _0x5baeb5=0x0,_0x59aa9d,_0x6891b5,_0x357dc8=0x0;_0x6891b5=_0x3d7c0c['charAt'](_0x357dc8++);~_0x6891b5&&(_0x59aa9d=_0x5baeb5%0x4?_0x59aa9d*0x40+_0x6891b5:_0x6891b5,_0x5baeb5++%0x4)?_0x5786a6+=String['fromCharCode'](0xff&_0x59aa9d>>(-0x2*_0x5baeb5&0x6)):0x0){_0x6891b5=_0x5ad1e2['indexOf'](_0x6891b5);}for(var _0x1283e7=0x0,_0x2ffc60=_0x5786a6['length'];_0x1283e7<_0x2ffc60;_0x1283e7++){_0x4db81b+='%'+('00'+_0x5786a6['charCodeAt'](_0x1283e7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4db81b);};_0x1947['MXkXkN']=_0x10182d,_0x1947['zPvDDT']={},_0x1947['oWgkkN']=!![];}var _0x32b8d0=_0x55936d[0x0],_0x852da8=_0x54988a+_0x32b8d0,_0x51902b=_0x1947['zPvDDT'][_0x852da8];return!_0x51902b?(_0x1947fc=_0x1947['MXkXkN'](_0x1947fc),_0x1947['zPvDDT'][_0x852da8]=_0x1947fc):_0x1947fc=_0x51902b,_0x1947fc;}export{default as Input}from'./Input.vue';
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+ import type { LabelProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import { Label } from "reka-ui"
6
+ import { cn } from "@core/admin/lib/cn"
7
+
8
+ const props = defineProps<LabelProps & { class?: HTMLAttributes["class"] }>()
9
+
10
+ const delegatedProps = reactiveOmit(props, "class")
11
+ </script>
12
+
13
+ <template>
14
+ <Label
15
+ data-slot="label"
16
+ v-bind="delegatedProps"
17
+ :class="
18
+ cn(
19
+ 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
20
+ props.class,
21
+ )
22
+ "
23
+ >
24
+ <slot />
25
+ </Label>
26
+ </template>
@@ -0,0 +1 @@
1
+ export { default as Label } from "./Label.vue";