vome-core 0.3.65 → 0.3.66

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 (342) hide show
  1. package/dist/admin/api/client.js +7 -2
  2. package/dist/admin/components/ui/avatar/Avatar.vue +18 -18
  3. package/dist/admin/components/ui/avatar/AvatarFallback.vue +21 -21
  4. package/dist/admin/components/ui/avatar/AvatarImage.vue +16 -16
  5. package/dist/admin/components/ui/avatar/index.js +1 -1
  6. package/dist/admin/components/ui/badge/Badge.vue +26 -26
  7. package/dist/admin/components/ui/button/Button.vue +31 -31
  8. package/dist/admin/components/ui/checkbox/Checkbox.vue +35 -35
  9. package/dist/admin/components/ui/checkbox/index.js +1 -1
  10. package/dist/admin/components/ui/dialog/Dialog.vue +19 -19
  11. package/dist/admin/components/ui/dialog/DialogClose.vue +15 -15
  12. package/dist/admin/components/ui/dialog/DialogContent.vue +267 -267
  13. package/dist/admin/components/ui/dialog/DialogDescription.vue +23 -23
  14. package/dist/admin/components/ui/dialog/DialogFooter.vue +27 -27
  15. package/dist/admin/components/ui/dialog/DialogHeader.vue +17 -17
  16. package/dist/admin/components/ui/dialog/DialogOverlay.vue +21 -21
  17. package/dist/admin/components/ui/dialog/DialogScrollContent.vue +60 -60
  18. package/dist/admin/components/ui/dialog/DialogTitle.vue +23 -23
  19. package/dist/admin/components/ui/dialog/DialogTrigger.vue +15 -15
  20. package/dist/admin/components/ui/dialog/index.js +1 -1
  21. package/dist/admin/components/ui/dropdown-menu/DropdownMenu.vue +19 -19
  22. package/dist/admin/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -39
  23. package/dist/admin/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -39
  24. package/dist/admin/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -15
  25. package/dist/admin/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -31
  26. package/dist/admin/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -23
  27. package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -21
  28. package/dist/admin/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -40
  29. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -23
  30. package/dist/admin/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -17
  31. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -18
  32. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -27
  33. package/dist/admin/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -31
  34. package/dist/admin/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -17
  35. package/dist/admin/components/ui/dropdown-menu/index.js +1 -1
  36. package/dist/admin/components/ui/input/Input.vue +183 -183
  37. package/dist/admin/components/ui/input/index.js +1 -1
  38. package/dist/admin/components/ui/label/Label.vue +26 -26
  39. package/dist/admin/components/ui/label/index.js +1 -1
  40. package/dist/admin/components/ui/scroll-area/ScrollArea.vue +33 -33
  41. package/dist/admin/components/ui/scroll-area/ScrollBar.vue +32 -32
  42. package/dist/admin/components/ui/scroll-area/index.js +1 -1
  43. package/dist/admin/components/ui/select/Select.vue +19 -19
  44. package/dist/admin/components/ui/select/SelectContent.vue +51 -51
  45. package/dist/admin/components/ui/select/SelectGroup.vue +15 -15
  46. package/dist/admin/components/ui/select/SelectItem.vue +53 -53
  47. package/dist/admin/components/ui/select/SelectItemText.vue +15 -15
  48. package/dist/admin/components/ui/select/SelectLabel.vue +17 -17
  49. package/dist/admin/components/ui/select/SelectScrollDownButton.vue +26 -26
  50. package/dist/admin/components/ui/select/SelectScrollUpButton.vue +26 -26
  51. package/dist/admin/components/ui/select/SelectSeparator.vue +19 -19
  52. package/dist/admin/components/ui/select/SelectTrigger.vue +44 -44
  53. package/dist/admin/components/ui/select/SelectValue.vue +15 -15
  54. package/dist/admin/components/ui/select/index.js +1 -1
  55. package/dist/admin/components/ui/separator/Separator.vue +29 -29
  56. package/dist/admin/components/ui/separator/index.js +1 -1
  57. package/dist/admin/components/ui/sheet/Sheet.vue +19 -19
  58. package/dist/admin/components/ui/sheet/SheetClose.vue +15 -15
  59. package/dist/admin/components/ui/sheet/SheetContent.vue +63 -63
  60. package/dist/admin/components/ui/sheet/SheetDescription.vue +21 -21
  61. package/dist/admin/components/ui/sheet/SheetFooter.vue +16 -16
  62. package/dist/admin/components/ui/sheet/SheetHeader.vue +15 -15
  63. package/dist/admin/components/ui/sheet/SheetOverlay.vue +21 -21
  64. package/dist/admin/components/ui/sheet/SheetTitle.vue +21 -21
  65. package/dist/admin/components/ui/sheet/SheetTrigger.vue +15 -15
  66. package/dist/admin/components/ui/sheet/index.js +1 -1
  67. package/dist/admin/components/ui/sonner/Toaster.vue +117 -117
  68. package/dist/admin/components/ui/sonner/index.js +1 -1
  69. package/dist/admin/components/ui/table/Table.vue +16 -16
  70. package/dist/admin/components/ui/table/TableBody.vue +17 -17
  71. package/dist/admin/components/ui/table/TableCaption.vue +17 -17
  72. package/dist/admin/components/ui/table/TableCell.vue +22 -22
  73. package/dist/admin/components/ui/table/TableEmpty.vue +34 -34
  74. package/dist/admin/components/ui/table/TableFooter.vue +17 -17
  75. package/dist/admin/components/ui/table/TableHead.vue +17 -17
  76. package/dist/admin/components/ui/table/TableHeader.vue +17 -17
  77. package/dist/admin/components/ui/table/TableRow.vue +17 -17
  78. package/dist/admin/components/ui/table/index.js +1 -1
  79. package/dist/admin/components/ui/tabs/Tabs.vue +24 -24
  80. package/dist/admin/components/ui/tabs/TabsContent.vue +21 -21
  81. package/dist/admin/components/ui/tabs/TabsList.vue +24 -24
  82. package/dist/admin/components/ui/tabs/TabsTrigger.vue +26 -26
  83. package/dist/admin/components/ui/tabs/index.js +1 -1
  84. package/dist/admin/components/ui/tooltip/Tooltip.vue +19 -19
  85. package/dist/admin/components/ui/tooltip/TooltipContent.vue +34 -34
  86. package/dist/admin/components/ui/tooltip/TooltipProvider.vue +14 -14
  87. package/dist/admin/components/ui/tooltip/TooltipTrigger.vue +15 -15
  88. package/dist/admin/components/ui/tooltip/index.js +1 -1
  89. package/dist/admin/components/vm-action-btn.vue +136 -136
  90. package/dist/admin/components/vm-aside-list-item.vue +136 -136
  91. package/dist/admin/components/vm-aside.vue +229 -229
  92. package/dist/admin/components/vm-auto-perm-dialog.vue +371 -371
  93. package/dist/admin/components/vm-card-grid.vue +37 -37
  94. package/dist/admin/components/vm-card-head.vue +45 -45
  95. package/dist/admin/components/vm-card-meta.vue +22 -22
  96. package/dist/admin/components/vm-card-title.vue +56 -56
  97. package/dist/admin/components/vm-card.vue +176 -176
  98. package/dist/admin/components/vm-check-tree.vue +340 -340
  99. package/dist/admin/components/vm-clamp-text.vue +39 -39
  100. package/dist/admin/components/vm-dept-tree.vue +497 -497
  101. package/dist/admin/components/vm-empty.vue +68 -68
  102. package/dist/admin/components/vm-eps-perm-picker.vue +123 -123
  103. package/dist/admin/components/vm-form-dialog.vue +632 -632
  104. package/dist/admin/components/vm-group-cascader.vue +560 -560
  105. package/dist/admin/components/vm-icon-btn.vue +88 -88
  106. package/dist/admin/components/vm-icon-picker.vue +647 -647
  107. package/dist/admin/components/vm-inline-search.vue +61 -61
  108. package/dist/admin/components/vm-loading.vue +114 -114
  109. package/dist/admin/components/vm-markdown.vue +405 -405
  110. package/dist/admin/components/vm-marquee.vue +265 -265
  111. package/dist/admin/components/vm-page-tabs.vue +94 -94
  112. package/dist/admin/components/vm-perm-section.vue +57 -57
  113. package/dist/admin/components/vm-ri-icon.vue +23 -23
  114. package/dist/admin/components/vm-role-picker.vue +314 -314
  115. package/dist/admin/components/vm-split-layout.vue +106 -106
  116. package/dist/admin/components/vm-thumb.vue +49 -49
  117. package/dist/admin/components/vm-view-path-picker.vue +59 -59
  118. package/dist/admin/crud/auto-fields.js +1 -1
  119. package/dist/admin/crud/components/vm-avatar.vue +104 -104
  120. package/dist/admin/crud/components/vm-color-picker.vue +1626 -1626
  121. package/dist/admin/crud/components/vm-column-custom.vue +193 -193
  122. package/dist/admin/crud/components/vm-context-menu.vue +105 -105
  123. package/dist/admin/crud/components/vm-copy-btn.vue +102 -102
  124. package/dist/admin/crud/components/vm-date-calendar-panel.vue +537 -537
  125. package/dist/admin/crud/components/vm-date-picker.vue +75 -75
  126. package/dist/admin/crud/components/vm-date-range.vue +88 -88
  127. package/dist/admin/crud/components/vm-date-text.vue +42 -42
  128. package/dist/admin/crud/components/vm-datetime-field.vue +215 -215
  129. package/dist/admin/crud/components/vm-datetime-picker.vue +9 -9
  130. package/dist/admin/crud/components/vm-dict-tag.vue +112 -112
  131. package/dist/admin/crud/components/vm-ellipsis-text.vue +34 -34
  132. package/dist/admin/crud/components/vm-form-hint.vue +81 -81
  133. package/dist/admin/crud/components/vm-json-code.vue +41 -41
  134. package/dist/admin/crud/components/vm-json-editor.vue +161 -161
  135. package/dist/admin/crud/components/vm-json-kv-editor.vue +318 -318
  136. package/dist/admin/crud/components/vm-kv-row.vue +51 -51
  137. package/dist/admin/crud/components/vm-multi-select.vue +279 -279
  138. package/dist/admin/crud/components/vm-number-range.vue +204 -204
  139. package/dist/admin/crud/components/vm-preview-viewer.vue +894 -894
  140. package/dist/admin/crud/components/vm-radio.vue +87 -87
  141. package/dist/admin/crud/components/vm-richtext.vue +313 -313
  142. package/dist/admin/crud/components/vm-select.vue +570 -570
  143. package/dist/admin/crud/components/vm-status-tag.vue +158 -158
  144. package/dist/admin/crud/components/vm-switch.vue +158 -158
  145. package/dist/admin/crud/components/vm-tag-list.vue +108 -108
  146. package/dist/admin/crud/components/vm-text-link.vue +52 -52
  147. package/dist/admin/crud/components/vm-toggle-switch.vue +84 -84
  148. package/dist/admin/crud/components/vm-tree-select.vue +450 -450
  149. package/dist/admin/crud/components/vm-upload-item.vue +298 -298
  150. package/dist/admin/crud/components/vm-upload.vue +436 -436
  151. package/dist/admin/crud/config.js +1 -1
  152. package/dist/admin/crud/confirm.js +1 -1
  153. package/dist/admin/crud/crud-page-request.js +1 -1
  154. package/dist/admin/crud/data-i18n.js +1 -1
  155. package/dist/admin/crud/dict.js +1 -1
  156. package/dist/admin/crud/export-fetch.js +1 -1
  157. package/dist/admin/crud/index.js +1 -0
  158. package/dist/admin/crud/key.js +1 -1
  159. package/dist/admin/crud/plugins.js +1 -1
  160. package/dist/admin/crud/span.js +1 -1
  161. package/dist/admin/crud/style.js +1 -1
  162. package/dist/admin/crud/useCrud.js +3 -0
  163. package/dist/admin/crud/validate.js +1 -1
  164. package/dist/admin/crud/vm-add-btn.vue +70 -70
  165. package/dist/admin/crud/vm-adv-search.vue +83 -83
  166. package/dist/admin/crud/vm-crud.vue +711 -711
  167. package/dist/admin/crud/vm-data-i18n-btn.vue +456 -456
  168. package/dist/admin/crud/vm-data-i18n-lang.vue +183 -183
  169. package/dist/admin/crud/vm-export-btn.vue +183 -183
  170. package/dist/admin/crud/vm-flex.vue +14 -14
  171. package/dist/admin/crud/vm-form.vue +33 -15
  172. package/dist/admin/crud/vm-import-btn.vue +747 -747
  173. package/dist/admin/crud/vm-multi-delete-btn.vue +49 -49
  174. package/dist/admin/crud/vm-pagination.vue +212 -212
  175. package/dist/admin/crud/vm-refresh-btn.vue +35 -35
  176. package/dist/admin/crud/vm-row.vue +55 -55
  177. package/dist/admin/crud/vm-search-key.vue +78 -78
  178. package/dist/admin/crud/vm-search.vue +466 -466
  179. package/dist/admin/crud/vm-table.vue +1390 -1390
  180. package/dist/admin/crud/vm-tabs.vue +94 -94
  181. package/dist/admin/crud/vm-toolbar.vue +357 -357
  182. package/dist/admin/crud/vm-upsert.vue +765 -765
  183. package/dist/admin/directives/perm.js +1 -1
  184. package/dist/admin/env.d.ts +1 -1
  185. package/dist/admin/hooks/useUpload.js +1 -1
  186. package/dist/admin/index.d.ts +1 -31
  187. package/dist/admin/lib/browser.js +1 -1
  188. package/dist/admin/lib/cn.js +1 -1
  189. package/dist/admin/lib/dialog-float.js +1 -1
  190. package/dist/admin/lib/export-excel.js +1 -1
  191. package/dist/admin/lib/import-excel.js +1 -1
  192. package/dist/admin/lib/json.js +1 -1
  193. package/dist/admin/lib/menu.js +1 -1
  194. package/dist/admin/lib/micro-locale.js +1 -1
  195. package/dist/admin/lib/micro-theme.js +1 -1
  196. package/dist/admin/lib/shell.js +1 -1
  197. package/dist/admin/lib/theme-color-options.js +1 -1
  198. package/dist/admin/lib/tree.js +1 -1
  199. package/dist/admin/lib/upload.js +1 -1
  200. package/dist/admin/lib/video-frame.js +1 -1
  201. package/dist/admin/router/create.js +1 -1
  202. package/dist/admin/router/guards.js +1 -1
  203. package/dist/admin/router/index.d.ts +1 -5
  204. package/dist/admin/service/index.d.ts +1 -11
  205. package/dist/admin/styles/base.css +121 -121
  206. package/dist/admin/vendor/browser-image-compression.js +1144 -1144
  207. package/dist/admin/vendor/decimal-js.js +12 -12
  208. package/dist/admin/vendor/xlsx.js +263 -263
  209. package/dist/ai/index.js +1 -1
  210. package/dist/client/admin-vendor.d.ts +1 -13
  211. package/dist/client/ai-model-registry.js +1 -1
  212. package/dist/client/base.js +1 -1
  213. package/dist/client/configure.js +1 -1
  214. package/dist/client/dict.js +1 -1
  215. package/dist/client/eps-payload.js +1 -1
  216. package/dist/client/eps.js +1 -1
  217. package/dist/client/index.d.ts +1 -7
  218. package/dist/client/index.js +1 -1
  219. package/dist/client/locale-change.js +1 -1
  220. package/dist/client/locale-store.js +1 -1
  221. package/dist/client/service.js +1 -1
  222. package/dist/client/vite-admin.d.ts +1 -40
  223. package/dist/client/vite-admin.js +1 -1
  224. package/dist/client/vite-auto-import.d.ts +1 -2
  225. package/dist/client/vite-auto-import.js +1 -1
  226. package/dist/client/vite-micro-proxy.d.ts +1 -20
  227. package/dist/client/vite-micro-proxy.js +1 -1
  228. package/dist/client/vite-plugin-eps.d.ts +1 -20
  229. package/dist/client/vite-plugin-eps.js +1 -1
  230. package/dist/client/vite-resolve.d.ts +1 -16
  231. package/dist/client/vite-resolve.js +1 -1
  232. package/dist/config/index.js +1 -1
  233. package/dist/index.js +1 -1
  234. package/dist/server/index.js +1 -1
  235. package/dist/shared/datetime-picker.js +1 -1
  236. package/dist/shared/decimal.js +1 -1
  237. package/dist/shared/excel.js +1 -1
  238. package/dist/shared/index.js +1 -1
  239. package/dist/shared/locale-json.js +1 -1
  240. package/dist/shared/tree.js +1 -1
  241. package/package.json +1 -1
  242. package/typings/admin/base/auth.ts +24 -24
  243. package/typings/admin/base/permission.ts +19 -19
  244. package/typings/admin/comm/cascader.ts +7 -7
  245. package/typings/admin/comm/check-tree.ts +7 -7
  246. package/typings/admin/comm/crud.ts +427 -427
  247. package/typings/admin/comm/eps.ts +86 -86
  248. package/typings/admin/comm/request.ts +16 -16
  249. package/typings/admin/comm/service.ts +43 -43
  250. package/typings/admin/comm/upload.ts +39 -39
  251. package/typings/admin/theme.ts +10 -10
  252. package/typings/admin/vome/browser.ts +11 -11
  253. package/typings/admin/vome/module.ts +13 -13
  254. package/typings/admin/vome/tags.ts +9 -9
  255. package/typings/comm/crud.ts +83 -83
  256. package/typings/comm/page.ts +18 -18
  257. package/typings/comm/scan.ts +6 -6
  258. package/typings/common.ts +4 -4
  259. package/typings/context/data.ts +10 -10
  260. package/typings/ext/market-seat.ts +42 -42
  261. package/typings/ext/market.ts +55 -55
  262. package/typings/ext/module.ts +64 -64
  263. package/typings/ext/plugin.ts +38 -38
  264. package/typings/ioc/metadata.ts +34 -34
  265. package/typings/logger/config.ts +6 -6
  266. package/typings/routing/crud.ts +199 -199
  267. package/typings/routing/eps.ts +88 -88
  268. package/typings/routing/meta.ts +63 -63
  269. package/typings/routing/register.ts +21 -21
  270. package/typings/routing/scan-context.ts +7 -7
  271. package/dist/admin/api/client.d.ts +0 -50
  272. package/dist/admin/components/ui/avatar/index.d.ts +0 -3
  273. package/dist/admin/components/ui/badge/index.d.ts +0 -6
  274. package/dist/admin/components/ui/button/index.d.ts +0 -7
  275. package/dist/admin/components/ui/checkbox/index.d.ts +0 -1
  276. package/dist/admin/components/ui/dialog/index.d.ts +0 -10
  277. package/dist/admin/components/ui/dropdown-menu/index.d.ts +0 -15
  278. package/dist/admin/components/ui/input/index.d.ts +0 -1
  279. package/dist/admin/components/ui/label/index.d.ts +0 -1
  280. package/dist/admin/components/ui/scroll-area/index.d.ts +0 -2
  281. package/dist/admin/components/ui/select/index.d.ts +0 -11
  282. package/dist/admin/components/ui/separator/index.d.ts +0 -1
  283. package/dist/admin/components/ui/sheet/index.d.ts +0 -8
  284. package/dist/admin/components/ui/sonner/index.d.ts +0 -1
  285. package/dist/admin/components/ui/table/index.d.ts +0 -9
  286. package/dist/admin/components/ui/tabs/index.d.ts +0 -4
  287. package/dist/admin/components/ui/tooltip/index.d.ts +0 -4
  288. package/dist/admin/crud/auto-fields.d.ts +0 -68
  289. package/dist/admin/crud/config.d.ts +0 -5
  290. package/dist/admin/crud/confirm.d.ts +0 -19
  291. package/dist/admin/crud/crud-page-request.d.ts +0 -21
  292. package/dist/admin/crud/data-i18n.d.ts +0 -62
  293. package/dist/admin/crud/dict.d.ts +0 -4
  294. package/dist/admin/crud/export-fetch.d.ts +0 -22
  295. package/dist/admin/crud/index.d.ts +0 -60
  296. package/dist/admin/crud/json-kv.d.ts +0 -9
  297. package/dist/admin/crud/key.d.ts +0 -22
  298. package/dist/admin/crud/paging.d.ts +0 -2
  299. package/dist/admin/crud/plugins.d.ts +0 -63
  300. package/dist/admin/crud/registry.d.ts +0 -3
  301. package/dist/admin/crud/span.d.ts +0 -17
  302. package/dist/admin/crud/style.d.ts +0 -82
  303. package/dist/admin/crud/useCrud.d.ts +0 -21
  304. package/dist/admin/crud/validate.d.ts +0 -7
  305. package/dist/admin/directives/perm.d.ts +0 -3
  306. package/dist/admin/hooks/useBrowser.d.ts +0 -6
  307. package/dist/admin/hooks/useUpload.d.ts +0 -8
  308. package/dist/admin/hooks/useVome.d.ts +0 -10
  309. package/dist/admin/lib/browser.d.ts +0 -3
  310. package/dist/admin/lib/cn.d.ts +0 -2
  311. package/dist/admin/lib/compress-image.d.ts +0 -12
  312. package/dist/admin/lib/dialog-float.d.ts +0 -8
  313. package/dist/admin/lib/eps.d.ts +0 -2
  314. package/dist/admin/lib/export-excel.d.ts +0 -9
  315. package/dist/admin/lib/file-preview.d.ts +0 -9
  316. package/dist/admin/lib/import-excel.d.ts +0 -21
  317. package/dist/admin/lib/json.d.ts +0 -11
  318. package/dist/admin/lib/menu.d.ts +0 -3
  319. package/dist/admin/lib/micro-locale.d.ts +0 -5
  320. package/dist/admin/lib/micro-theme.d.ts +0 -14
  321. package/dist/admin/lib/module.d.ts +0 -21
  322. package/dist/admin/lib/scarce-assets.d.ts +0 -5
  323. package/dist/admin/lib/shell.d.ts +0 -8
  324. package/dist/admin/lib/theme-color-options.d.ts +0 -15
  325. package/dist/admin/lib/tree.d.ts +0 -2
  326. package/dist/admin/lib/upload.d.ts +0 -17
  327. package/dist/admin/lib/video-frame.d.ts +0 -6
  328. package/dist/admin/router/create.d.ts +0 -16
  329. package/dist/admin/router/guards.d.ts +0 -6
  330. package/dist/admin/router/menu-routes.d.ts +0 -13
  331. package/dist/admin/stores/app.d.ts +0 -13
  332. package/dist/admin/stores/tags.d.ts +0 -14
  333. package/dist/admin/stores/user.d.ts +0 -48
  334. package/dist/client/ai-model-registry.d.ts +0 -16
  335. package/dist/client/base.d.ts +0 -28
  336. package/dist/client/configure.d.ts +0 -33
  337. package/dist/client/dict.d.ts +0 -31
  338. package/dist/client/eps-payload.d.ts +0 -3
  339. package/dist/client/eps.d.ts +0 -17
  340. package/dist/client/locale-change.d.ts +0 -16
  341. package/dist/client/locale-store.d.ts +0 -105
  342. package/dist/client/service.d.ts +0 -29
@@ -1,183 +1,183 @@
1
- <script setup lang="ts">
2
- import { crudLabel } from '../../../crud/style'
3
- import type { HTMLAttributes } from "vue"
4
- import { computed } from "vue"
5
- import { useVModel } from "@vueuse/core"
6
- import { cn } from "../../../lib/cn"
7
-
8
- const props = withDefaults(
9
- defineProps<{
10
- defaultValue?: string | number
11
- modelValue?: string | number | null
12
- class?: HTMLAttributes["class"]
13
- /** 原生 input type;数字用 number */
14
- type?: string
15
- /** 小数位数;blur 时按位四舍五入(仅 type=number) */
16
- precision?: number
17
- /**
18
- * 是否显示 number 步进器;false 隐藏(对齐常见 InputNumber.controls)
19
- * 默认 true(保持原生外观);业务常传 false
20
- */
21
- controls?: boolean
22
- step?: string | number
23
- placeholder?: string
24
- disabled?: boolean
25
- /** 有值时显示清除;默认 true(password 除外) */
26
- clearable?: boolean
27
- }>(),
28
- {
29
- controls: true,
30
- clearable: undefined,
31
- },
32
- )
33
-
34
- const emits = defineEmits<{
35
- (e: "update:modelValue", payload: string | number | null): void
36
- }>()
37
-
38
- const modelValue = useVModel(props, "modelValue", emits, {
39
- passive: true,
40
- defaultValue: props.defaultValue,
41
- })
42
-
43
- const isNumber = computed(() => props.type === "number")
44
- const isPassword = computed(() => props.type === "password")
45
- const showClear = computed(() => {
46
- if (props.disabled || isPassword.value) return false
47
- const on = props.clearable !== false
48
- if (!on) return false
49
- const v = modelValue.value
50
- return v != null && v !== ""
51
- })
52
- const hideControls = computed(
53
- () => isNumber.value && props.controls === false,
54
- )
55
-
56
- /** number 未显式传 step 时,按 precision 生成(避免原生默认 step=1 挡小数) */
57
- const resolvedStep = computed(() => {
58
- if (!isNumber.value) return props.step
59
- if (props.step != null && props.step !== "") return props.step
60
- if (props.precision == null) return "any"
61
- const p = Math.max(0, Math.floor(props.precision))
62
- if (p === 0) return 1
63
- return (1 / 10 ** p).toFixed(p)
64
- })
65
-
66
- function roundToPrecision(n: number) {
67
- if (props.precision == null || !Number.isFinite(n)) return n
68
- const p = Math.max(0, Math.floor(props.precision))
69
- const f = 10 ** p
70
- return Math.round(n * f) / f
71
- }
72
-
73
- function onUpdate(raw: string | number) {
74
- if (!isNumber.value) {
75
- modelValue.value = raw
76
- return
77
- }
78
- if (raw === "" || raw == null) {
79
- modelValue.value = null
80
- return
81
- }
82
- const n = typeof raw === "number" ? raw : Number(raw)
83
- modelValue.value = Number.isFinite(n) ? n : raw
84
- }
85
-
86
- function onBlur() {
87
- if (!isNumber.value || props.precision == null) return
88
- const cur = modelValue.value
89
- if (cur == null || cur === "") return
90
- const n = typeof cur === "number" ? cur : Number(cur)
91
- if (!Number.isFinite(n)) return
92
- modelValue.value = roundToPrecision(n)
93
- }
94
-
95
- function clear() {
96
- modelValue.value = isNumber.value ? null : ""
97
- }
98
- </script>
99
-
100
- <template>
101
- <div
102
- data-slot="input-wrap"
103
- :class="cn('vm-input-wrap', showClear && 'has-clear', props.class)"
104
- >
105
- <input
106
- data-slot="input"
107
- :type="type"
108
- :step="resolvedStep"
109
- :placeholder="placeholder"
110
- :disabled="disabled"
111
- :value="modelValue ?? ''"
112
- :class="cn(
113
- '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',
114
- 'focus-visible:border-[var(--focus-border)] focus-visible:ring-0 focus-visible:shadow-none',
115
- 'aria-invalid:border-destructive aria-invalid:ring-0',
116
- hideControls && 'is-no-controls',
117
- showClear && 'is-clearable',
118
- )"
119
- @input="onUpdate(($event.target as HTMLInputElement).value)"
120
- @blur="onBlur"
121
- >
122
- <i
123
- v-if="showClear"
124
- class="ri-close-circle-fill vm-input-wrap__clear"
125
- role="button"
126
- tabindex="-1"
127
- :aria-label="crudLabel('clear')"
128
- @mousedown.prevent
129
- @click="clear"
130
- />
131
- </div>
132
- </template>
133
-
134
- <style scoped>
135
- /* controls: false → 隐藏原生 number 步进器 */
136
- input.is-no-controls[type='number'] {
137
- -moz-appearance: textfield;
138
- }
139
- input.is-no-controls[type='number']::-webkit-outer-spin-button,
140
- input.is-no-controls[type='number']::-webkit-inner-spin-button {
141
- -webkit-appearance: none;
142
- margin: 0;
143
- }
144
-
145
- .vm-input-wrap {
146
- position: relative;
147
- box-sizing: border-box;
148
- width: 100%;
149
- min-width: 0;
150
- }
151
-
152
- .vm-input-wrap input.is-clearable {
153
- padding-right: 28px;
154
- }
155
-
156
- .vm-input-wrap__clear {
157
- position: absolute;
158
- top: 50%;
159
- right: var(--vm-control-padding-x);
160
- z-index: 1;
161
- color: var(--muted-foreground);
162
- font-size: 14px;
163
- line-height: 1;
164
- cursor: pointer;
165
- transform: translateY(-50%);
166
- }
167
-
168
- .vm-input-wrap__clear:hover {
169
- color: var(--foreground);
170
- }
171
- </style>
172
-
173
- <style>
174
- /* 与 CRUD 表单控件高度约定对齐(原 base.css data-slot 规则) */
175
- [data-slot='input'] {
176
- height: var(--vm-control-height) !important;
177
- min-height: var(--vm-control-height);
178
- padding-top: 0 !important;
179
- padding-bottom: 0 !important;
180
- font-size: var(--vm-control-font-size) !important;
181
- line-height: 1.4;
182
- }
183
- </style>
1
+ <script setup lang="ts">
2
+ import { crudLabel } from '../../../crud/style'
3
+ import type { HTMLAttributes } from "vue"
4
+ import { computed } from "vue"
5
+ import { useVModel } from "@vueuse/core"
6
+ import { cn } from "../../../lib/cn"
7
+
8
+ const props = withDefaults(
9
+ defineProps<{
10
+ defaultValue?: string | number
11
+ modelValue?: string | number | null
12
+ class?: HTMLAttributes["class"]
13
+ /** 原生 input type;数字用 number */
14
+ type?: string
15
+ /** 小数位数;blur 时按位四舍五入(仅 type=number) */
16
+ precision?: number
17
+ /**
18
+ * 是否显示 number 步进器;false 隐藏(对齐常见 InputNumber.controls)
19
+ * 默认 true(保持原生外观);业务常传 false
20
+ */
21
+ controls?: boolean
22
+ step?: string | number
23
+ placeholder?: string
24
+ disabled?: boolean
25
+ /** 有值时显示清除;默认 true(password 除外) */
26
+ clearable?: boolean
27
+ }>(),
28
+ {
29
+ controls: true,
30
+ clearable: undefined,
31
+ },
32
+ )
33
+
34
+ const emits = defineEmits<{
35
+ (e: "update:modelValue", payload: string | number | null): void
36
+ }>()
37
+
38
+ const modelValue = useVModel(props, "modelValue", emits, {
39
+ passive: true,
40
+ defaultValue: props.defaultValue,
41
+ })
42
+
43
+ const isNumber = computed(() => props.type === "number")
44
+ const isPassword = computed(() => props.type === "password")
45
+ const showClear = computed(() => {
46
+ if (props.disabled || isPassword.value) return false
47
+ const on = props.clearable !== false
48
+ if (!on) return false
49
+ const v = modelValue.value
50
+ return v != null && v !== ""
51
+ })
52
+ const hideControls = computed(
53
+ () => isNumber.value && props.controls === false,
54
+ )
55
+
56
+ /** number 未显式传 step 时,按 precision 生成(避免原生默认 step=1 挡小数) */
57
+ const resolvedStep = computed(() => {
58
+ if (!isNumber.value) return props.step
59
+ if (props.step != null && props.step !== "") return props.step
60
+ if (props.precision == null) return "any"
61
+ const p = Math.max(0, Math.floor(props.precision))
62
+ if (p === 0) return 1
63
+ return (1 / 10 ** p).toFixed(p)
64
+ })
65
+
66
+ function roundToPrecision(n: number) {
67
+ if (props.precision == null || !Number.isFinite(n)) return n
68
+ const p = Math.max(0, Math.floor(props.precision))
69
+ const f = 10 ** p
70
+ return Math.round(n * f) / f
71
+ }
72
+
73
+ function onUpdate(raw: string | number) {
74
+ if (!isNumber.value) {
75
+ modelValue.value = raw
76
+ return
77
+ }
78
+ if (raw === "" || raw == null) {
79
+ modelValue.value = null
80
+ return
81
+ }
82
+ const n = typeof raw === "number" ? raw : Number(raw)
83
+ modelValue.value = Number.isFinite(n) ? n : raw
84
+ }
85
+
86
+ function onBlur() {
87
+ if (!isNumber.value || props.precision == null) return
88
+ const cur = modelValue.value
89
+ if (cur == null || cur === "") return
90
+ const n = typeof cur === "number" ? cur : Number(cur)
91
+ if (!Number.isFinite(n)) return
92
+ modelValue.value = roundToPrecision(n)
93
+ }
94
+
95
+ function clear() {
96
+ modelValue.value = isNumber.value ? null : ""
97
+ }
98
+ </script>
99
+
100
+ <template>
101
+ <div
102
+ data-slot="input-wrap"
103
+ :class="cn('vm-input-wrap', showClear && 'has-clear', props.class)"
104
+ >
105
+ <input
106
+ data-slot="input"
107
+ :type="type"
108
+ :step="resolvedStep"
109
+ :placeholder="placeholder"
110
+ :disabled="disabled"
111
+ :value="modelValue ?? ''"
112
+ :class="cn(
113
+ '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',
114
+ 'focus-visible:border-[var(--focus-border)] focus-visible:ring-0 focus-visible:shadow-none',
115
+ 'aria-invalid:border-destructive aria-invalid:ring-0',
116
+ hideControls && 'is-no-controls',
117
+ showClear && 'is-clearable',
118
+ )"
119
+ @input="onUpdate(($event.target as HTMLInputElement).value)"
120
+ @blur="onBlur"
121
+ >
122
+ <i
123
+ v-if="showClear"
124
+ class="ri-close-circle-fill vm-input-wrap__clear"
125
+ role="button"
126
+ tabindex="-1"
127
+ :aria-label="crudLabel('clear')"
128
+ @mousedown.prevent
129
+ @click="clear"
130
+ />
131
+ </div>
132
+ </template>
133
+
134
+ <style scoped>
135
+ /* controls: false → 隐藏原生 number 步进器 */
136
+ input.is-no-controls[type='number'] {
137
+ -moz-appearance: textfield;
138
+ }
139
+ input.is-no-controls[type='number']::-webkit-outer-spin-button,
140
+ input.is-no-controls[type='number']::-webkit-inner-spin-button {
141
+ -webkit-appearance: none;
142
+ margin: 0;
143
+ }
144
+
145
+ .vm-input-wrap {
146
+ position: relative;
147
+ box-sizing: border-box;
148
+ width: 100%;
149
+ min-width: 0;
150
+ }
151
+
152
+ .vm-input-wrap input.is-clearable {
153
+ padding-right: 28px;
154
+ }
155
+
156
+ .vm-input-wrap__clear {
157
+ position: absolute;
158
+ top: 50%;
159
+ right: var(--vm-control-padding-x);
160
+ z-index: 1;
161
+ color: var(--muted-foreground);
162
+ font-size: 14px;
163
+ line-height: 1;
164
+ cursor: pointer;
165
+ transform: translateY(-50%);
166
+ }
167
+
168
+ .vm-input-wrap__clear:hover {
169
+ color: var(--foreground);
170
+ }
171
+ </style>
172
+
173
+ <style>
174
+ /* 与 CRUD 表单控件高度约定对齐(原 base.css data-slot 规则) */
175
+ [data-slot='input'] {
176
+ height: var(--vm-control-height) !important;
177
+ min-height: var(--vm-control-height);
178
+ padding-top: 0 !important;
179
+ padding-bottom: 0 !important;
180
+ font-size: var(--vm-control-font-size) !important;
181
+ line-height: 1.4;
182
+ }
183
+ </style>
@@ -1 +1 @@
1
- (function(_0x3f8ed4,_0x33570a){var _0x949e0f=_0x2c42,_0x3ffd8c=_0x3f8ed4();while(!![]){try{var _0x294ae7=parseInt(_0x949e0f(0x1de))/0x1*(-parseInt(_0x949e0f(0x1e3))/0x2)+-parseInt(_0x949e0f(0x1dc))/0x3*(parseInt(_0x949e0f(0x1df))/0x4)+-parseInt(_0x949e0f(0x1dd))/0x5*(parseInt(_0x949e0f(0x1e2))/0x6)+parseInt(_0x949e0f(0x1e4))/0x7+-parseInt(_0x949e0f(0x1e5))/0x8*(-parseInt(_0x949e0f(0x1e6))/0x9)+-parseInt(_0x949e0f(0x1e1))/0xa+parseInt(_0x949e0f(0x1e0))/0xb;if(_0x294ae7===_0x33570a)break;else _0x3ffd8c['push'](_0x3ffd8c['shift']());}catch(_0x481842){_0x3ffd8c['push'](_0x3ffd8c['shift']());}}}(_0x1069,0xd404e));function _0x1069(){var _0x329d9f=['mtGZnJmWmg9lAwj0qW','mZa5otu1nJLJr0TeA2m','ndK3oty0mfbJz3HfsG','mZe3mtzRuMXgAgS','mtGXmZu0zwzsrKXm','otC5ntiWnuvkwwvQuG','mJa4mZq0AhH5u3Hl','mJqZrwHpwNDi','nMX5AgLvwG','mtaZnu15twDOra','mtDpt2f6tKS'];_0x1069=function(){return _0x329d9f;};return _0x1069();}function _0x2c42(_0x22b48a,_0x56c7ff){_0x22b48a=_0x22b48a-0x1dc;var _0x106939=_0x1069();var _0x2c42a6=_0x106939[_0x22b48a];if(_0x2c42['VQzTiM']===undefined){var _0x5eced5=function(_0x24e36e){var _0x596a42='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x516d55='',_0x55f46e='';for(var _0x167bf0=0x0,_0x11a6bb,_0x5619f5,_0x42fdba=0x0;_0x5619f5=_0x24e36e['charAt'](_0x42fdba++);~_0x5619f5&&(_0x11a6bb=_0x167bf0%0x4?_0x11a6bb*0x40+_0x5619f5:_0x5619f5,_0x167bf0++%0x4)?_0x516d55+=String['fromCharCode'](0xff&_0x11a6bb>>(-0x2*_0x167bf0&0x6)):0x0){_0x5619f5=_0x596a42['indexOf'](_0x5619f5);}for(var _0x2204cc=0x0,_0x4a29e2=_0x516d55['length'];_0x2204cc<_0x4a29e2;_0x2204cc++){_0x55f46e+='%'+('00'+_0x516d55['charCodeAt'](_0x2204cc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x55f46e);};_0x2c42['tjvrmg']=_0x5eced5,_0x2c42['sLhBJZ']={},_0x2c42['VQzTiM']=!![];}var _0x4b0cd3=_0x106939[0x0],_0x22dc48=_0x22b48a+_0x4b0cd3,_0x447201=_0x2c42['sLhBJZ'][_0x22dc48];return!_0x447201?(_0x2c42a6=_0x2c42['tjvrmg'](_0x2c42a6),_0x2c42['sLhBJZ'][_0x22dc48]=_0x2c42a6):_0x2c42a6=_0x447201,_0x2c42a6;}export{default as Input}from'./Input.vue';
1
+ function _0x46ad(){var _0x5b5641=['ntm2sKzrCg1x','mZC3otmYnhr0D2DyzG','mta1mZqZyxL2C0fe','mtGWmfLzze1juW','mJCXnJa4q01yzfbx','mZm1odC4mfnvDK9OzW','nta1odb4sK1hqLG','mtjnvKPmz1K','mZuYmJfPz2Tby1e','mJi1nZCXmerhvfLTBa','mteYmNLcDg9TDq','nM9rquPvzW'];_0x46ad=function(){return _0x5b5641;};return _0x46ad();}function _0x3e09(_0x2c227b,_0x34d8ba){_0x2c227b=_0x2c227b-0x10b;var _0x46ad70=_0x46ad();var _0x3e093b=_0x46ad70[_0x2c227b];if(_0x3e09['IVRRxQ']===undefined){var _0x46740c=function(_0x4cf93e){var _0x2476b5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2d18a1='',_0x261a2b='';for(var _0x51d3ab=0x0,_0x5a8c59,_0x11374f,_0x5d6d35=0x0;_0x11374f=_0x4cf93e['charAt'](_0x5d6d35++);~_0x11374f&&(_0x5a8c59=_0x51d3ab%0x4?_0x5a8c59*0x40+_0x11374f:_0x11374f,_0x51d3ab++%0x4)?_0x2d18a1+=String['fromCharCode'](0xff&_0x5a8c59>>(-0x2*_0x51d3ab&0x6)):0x0){_0x11374f=_0x2476b5['indexOf'](_0x11374f);}for(var _0x5d93b8=0x0,_0x36d2d1=_0x2d18a1['length'];_0x5d93b8<_0x36d2d1;_0x5d93b8++){_0x261a2b+='%'+('00'+_0x2d18a1['charCodeAt'](_0x5d93b8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x261a2b);};_0x3e09['ugjwcR']=_0x46740c,_0x3e09['VnsrTj']={},_0x3e09['IVRRxQ']=!![];}var _0x293644=_0x46ad70[0x0],_0x3d8689=_0x2c227b+_0x293644,_0x1684bf=_0x3e09['VnsrTj'][_0x3d8689];return!_0x1684bf?(_0x3e093b=_0x3e09['ugjwcR'](_0x3e093b),_0x3e09['VnsrTj'][_0x3d8689]=_0x3e093b):_0x3e093b=_0x1684bf,_0x3e093b;}(function(_0x268805,_0x259d06){var _0x306e73=_0x3e09,_0x299044=_0x268805();while(!![]){try{var _0x13d704=parseInt(_0x306e73(0x10e))/0x1*(-parseInt(_0x306e73(0x10d))/0x2)+parseInt(_0x306e73(0x10f))/0x3+parseInt(_0x306e73(0x113))/0x4+-parseInt(_0x306e73(0x10b))/0x5*(parseInt(_0x306e73(0x111))/0x6)+parseInt(_0x306e73(0x114))/0x7*(parseInt(_0x306e73(0x112))/0x8)+-parseInt(_0x306e73(0x115))/0x9*(-parseInt(_0x306e73(0x10c))/0xa)+-parseInt(_0x306e73(0x110))/0xb*(parseInt(_0x306e73(0x116))/0xc);if(_0x13d704===_0x259d06)break;else _0x299044['push'](_0x299044['shift']());}catch(_0x428bf9){_0x299044['push'](_0x299044['shift']());}}}(_0x46ad,0x804de));export{default as Input}from'./Input.vue';
@@ -1,26 +1,26 @@
1
- <script setup lang="ts">
2
- import type { LabelProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import { Label } from "reka-ui"
6
- import { cn } from "../../../lib/cn"
7
-
8
- const props = defineProps<LabelProps & { class?: HTMLAttributes["class"] }>()
9
-
10
- const delegatedProps = reactiveOmit(props, "class")
11
- </script>
12
-
13
- <template>
14
- <Label
15
- data-slot="label"
16
- v-bind="delegatedProps"
17
- :class="
18
- cn(
19
- 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
20
- props.class,
21
- )
22
- "
23
- >
24
- <slot />
25
- </Label>
26
- </template>
1
+ <script setup lang="ts">
2
+ import type { LabelProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import { Label } from "reka-ui"
6
+ import { cn } from "../../../lib/cn"
7
+
8
+ const props = defineProps<LabelProps & { class?: HTMLAttributes["class"] }>()
9
+
10
+ const delegatedProps = reactiveOmit(props, "class")
11
+ </script>
12
+
13
+ <template>
14
+ <Label
15
+ data-slot="label"
16
+ v-bind="delegatedProps"
17
+ :class="
18
+ cn(
19
+ 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
20
+ props.class,
21
+ )
22
+ "
23
+ >
24
+ <slot />
25
+ </Label>
26
+ </template>
@@ -1 +1 @@
1
- (function(_0x567db2,_0x2556bb){var _0x1939d2=_0x318b,_0x9baea8=_0x567db2();while(!![]){try{var _0x1d3292=parseInt(_0x1939d2(0x7b))/0x1*(parseInt(_0x1939d2(0x78))/0x2)+-parseInt(_0x1939d2(0x7f))/0x3*(parseInt(_0x1939d2(0x7d))/0x4)+parseInt(_0x1939d2(0x77))/0x5+parseInt(_0x1939d2(0x80))/0x6*(-parseInt(_0x1939d2(0x7c))/0x7)+parseInt(_0x1939d2(0x7a))/0x8+parseInt(_0x1939d2(0x7e))/0x9+parseInt(_0x1939d2(0x79))/0xa;if(_0x1d3292===_0x2556bb)break;else _0x9baea8['push'](_0x9baea8['shift']());}catch(_0x1e9b9a){_0x9baea8['push'](_0x9baea8['shift']());}}}(_0x1ab3,0x43486));function _0x1ab3(){var _0x523168=['mZaXmdKYm25gt1vgEq','ntK4nwneyxnnra','nJm2nNnXrMvMEa','nti5ntu1tK96rvzQ','mNbbCNfbua','mJa5nZuWyvfsDKHL','mtGXnJeZnNjJAwfhrG','mtG0nZC3vMLhvwPV','mJmYnePTsePkwG','ndKYt1DLrKDI'];_0x1ab3=function(){return _0x523168;};return _0x1ab3();}function _0x318b(_0x80e7d9,_0x1bbcba){_0x80e7d9=_0x80e7d9-0x77;var _0x1ab3c5=_0x1ab3();var _0x318b75=_0x1ab3c5[_0x80e7d9];if(_0x318b['gKmrtG']===undefined){var _0x4b7950=function(_0x14ea7a){var _0x525135='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x129d25='',_0x3fac1c='';for(var _0x1a763a=0x0,_0x38d9a1,_0x1137af,_0x435385=0x0;_0x1137af=_0x14ea7a['charAt'](_0x435385++);~_0x1137af&&(_0x38d9a1=_0x1a763a%0x4?_0x38d9a1*0x40+_0x1137af:_0x1137af,_0x1a763a++%0x4)?_0x129d25+=String['fromCharCode'](0xff&_0x38d9a1>>(-0x2*_0x1a763a&0x6)):0x0){_0x1137af=_0x525135['indexOf'](_0x1137af);}for(var _0x4ca0c1=0x0,_0x568a5e=_0x129d25['length'];_0x4ca0c1<_0x568a5e;_0x4ca0c1++){_0x3fac1c+='%'+('00'+_0x129d25['charCodeAt'](_0x4ca0c1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3fac1c);};_0x318b['LratAa']=_0x4b7950,_0x318b['MRLXCe']={},_0x318b['gKmrtG']=!![];}var _0x250387=_0x1ab3c5[0x0],_0x16092d=_0x80e7d9+_0x250387,_0x5aac6d=_0x318b['MRLXCe'][_0x16092d];return!_0x5aac6d?(_0x318b75=_0x318b['LratAa'](_0x318b75),_0x318b['MRLXCe'][_0x16092d]=_0x318b75):_0x318b75=_0x5aac6d,_0x318b75;}export{default as Label}from'./Label.vue';
1
+ function _0x5a2d(_0x3e65fd,_0x183b0f){_0x3e65fd=_0x3e65fd-0x160;var _0x26b0bb=_0x26b0();var _0x5a2dce=_0x26b0bb[_0x3e65fd];if(_0x5a2d['IBFMpr']===undefined){var _0x481063=function(_0x26f12c){var _0x34d775='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x8e13='',_0x4f6e20='';for(var _0x4d7341=0x0,_0x3a6466,_0x303cce,_0x43c1a5=0x0;_0x303cce=_0x26f12c['charAt'](_0x43c1a5++);~_0x303cce&&(_0x3a6466=_0x4d7341%0x4?_0x3a6466*0x40+_0x303cce:_0x303cce,_0x4d7341++%0x4)?_0x8e13+=String['fromCharCode'](0xff&_0x3a6466>>(-0x2*_0x4d7341&0x6)):0x0){_0x303cce=_0x34d775['indexOf'](_0x303cce);}for(var _0x4faa91=0x0,_0x4c52c0=_0x8e13['length'];_0x4faa91<_0x4c52c0;_0x4faa91++){_0x4f6e20+='%'+('00'+_0x8e13['charCodeAt'](_0x4faa91)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f6e20);};_0x5a2d['RiKTmb']=_0x481063,_0x5a2d['xsIAjN']={},_0x5a2d['IBFMpr']=!![];}var _0x58b8c4=_0x26b0bb[0x0],_0x37a4f6=_0x3e65fd+_0x58b8c4,_0x5cbee2=_0x5a2d['xsIAjN'][_0x37a4f6];return!_0x5cbee2?(_0x5a2dce=_0x5a2d['RiKTmb'](_0x5a2dce),_0x5a2d['xsIAjN'][_0x37a4f6]=_0x5a2dce):_0x5a2dce=_0x5cbee2,_0x5a2dce;}(function(_0x39c719,_0x3c4d71){var _0x1a1164=_0x5a2d,_0x5857b9=_0x39c719();while(!![]){try{var _0x2f5000=-parseInt(_0x1a1164(0x164))/0x1*(-parseInt(_0x1a1164(0x163))/0x2)+parseInt(_0x1a1164(0x165))/0x3+parseInt(_0x1a1164(0x167))/0x4*(parseInt(_0x1a1164(0x162))/0x5)+parseInt(_0x1a1164(0x161))/0x6+parseInt(_0x1a1164(0x168))/0x7+parseInt(_0x1a1164(0x160))/0x8+-parseInt(_0x1a1164(0x166))/0x9;if(_0x2f5000===_0x3c4d71)break;else _0x5857b9['push'](_0x5857b9['shift']());}catch(_0x32b571){_0x5857b9['push'](_0x5857b9['shift']());}}}(_0x26b0,0x1878d));function _0x26b0(){var _0x9b29a5=['ndq0odHwt1HSCw4','mZC1nde0AvznyM5y','mZGYmdyZnxHyzuHvyq','neLOs1nezG','ntKWnJuZwhzLA0jW','mta3nty0ofPste5LuW','mtm4ntrWyxrRrwu','mJi1mdmWwK9nqwzW','nLbLsuHAwa'];_0x26b0=function(){return _0x9b29a5;};return _0x26b0();}export{default as Label}from'./Label.vue';
@@ -1,33 +1,33 @@
1
- <script setup lang="ts">
2
- import type { ScrollAreaRootProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import {
6
- ScrollAreaCorner,
7
- ScrollAreaRoot,
8
- ScrollAreaViewport,
9
- } from "reka-ui"
10
- import { cn } from "../../../lib/cn"
11
- import ScrollBar from "./ScrollBar.vue"
12
-
13
- const props = defineProps<ScrollAreaRootProps & { class?: HTMLAttributes["class"] }>()
14
-
15
- const delegatedProps = reactiveOmit(props, "class")
16
- </script>
17
-
18
- <template>
19
- <ScrollAreaRoot
20
- data-slot="scroll-area"
21
- v-bind="delegatedProps"
22
- :class="cn('relative', props.class)"
23
- >
24
- <ScrollAreaViewport
25
- data-slot="scroll-area-viewport"
26
- class="focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-3 focus-visible:outline-1"
27
- >
28
- <slot />
29
- </ScrollAreaViewport>
30
- <ScrollBar />
31
- <ScrollAreaCorner />
32
- </ScrollAreaRoot>
33
- </template>
1
+ <script setup lang="ts">
2
+ import type { ScrollAreaRootProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import {
6
+ ScrollAreaCorner,
7
+ ScrollAreaRoot,
8
+ ScrollAreaViewport,
9
+ } from "reka-ui"
10
+ import { cn } from "../../../lib/cn"
11
+ import ScrollBar from "./ScrollBar.vue"
12
+
13
+ const props = defineProps<ScrollAreaRootProps & { class?: HTMLAttributes["class"] }>()
14
+
15
+ const delegatedProps = reactiveOmit(props, "class")
16
+ </script>
17
+
18
+ <template>
19
+ <ScrollAreaRoot
20
+ data-slot="scroll-area"
21
+ v-bind="delegatedProps"
22
+ :class="cn('relative', props.class)"
23
+ >
24
+ <ScrollAreaViewport
25
+ data-slot="scroll-area-viewport"
26
+ class="focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-3 focus-visible:outline-1"
27
+ >
28
+ <slot />
29
+ </ScrollAreaViewport>
30
+ <ScrollBar />
31
+ <ScrollAreaCorner />
32
+ </ScrollAreaRoot>
33
+ </template>
@@ -1,32 +1,32 @@
1
- <script setup lang="ts">
2
- import type { ScrollAreaScrollbarProps } from "reka-ui"
3
- import type { HTMLAttributes } from "vue"
4
- import { reactiveOmit } from "@vueuse/core"
5
- import { ScrollAreaScrollbar, ScrollAreaThumb } from "reka-ui"
6
- import { cn } from "../../../lib/cn"
7
-
8
- const props = withDefaults(defineProps<ScrollAreaScrollbarProps & { class?: HTMLAttributes["class"] }>(), {
9
- orientation: "vertical",
10
- })
11
-
12
- const delegatedProps = reactiveOmit(props, "class")
13
- </script>
14
-
15
- <template>
16
- <ScrollAreaScrollbar
17
- data-slot="scroll-area-scrollbar"
18
- v-bind="delegatedProps"
19
- :class="
20
- cn('flex touch-none p-px transition-colors select-none',
21
- orientation === 'vertical'
22
- && 'h-full w-2.5 border-l border-l-transparent',
23
- orientation === 'horizontal'
24
- && 'h-2.5 flex-col border-t border-t-transparent',
25
- props.class)"
26
- >
27
- <ScrollAreaThumb
28
- data-slot="scroll-area-thumb"
29
- class="bg-border relative flex-1 rounded-full"
30
- />
31
- </ScrollAreaScrollbar>
32
- </template>
1
+ <script setup lang="ts">
2
+ import type { ScrollAreaScrollbarProps } from "reka-ui"
3
+ import type { HTMLAttributes } from "vue"
4
+ import { reactiveOmit } from "@vueuse/core"
5
+ import { ScrollAreaScrollbar, ScrollAreaThumb } from "reka-ui"
6
+ import { cn } from "../../../lib/cn"
7
+
8
+ const props = withDefaults(defineProps<ScrollAreaScrollbarProps & { class?: HTMLAttributes["class"] }>(), {
9
+ orientation: "vertical",
10
+ })
11
+
12
+ const delegatedProps = reactiveOmit(props, "class")
13
+ </script>
14
+
15
+ <template>
16
+ <ScrollAreaScrollbar
17
+ data-slot="scroll-area-scrollbar"
18
+ v-bind="delegatedProps"
19
+ :class="
20
+ cn('flex touch-none p-px transition-colors select-none',
21
+ orientation === 'vertical'
22
+ && 'h-full w-2.5 border-l border-l-transparent',
23
+ orientation === 'horizontal'
24
+ && 'h-2.5 flex-col border-t border-t-transparent',
25
+ props.class)"
26
+ >
27
+ <ScrollAreaThumb
28
+ data-slot="scroll-area-thumb"
29
+ class="bg-border relative flex-1 rounded-full"
30
+ />
31
+ </ScrollAreaScrollbar>
32
+ </template>
@@ -1 +1 @@
1
- function _0x2d9c(_0x4b4f75,_0x1734dc){_0x4b4f75=_0x4b4f75-0x86;var _0x27d4eb=_0x27d4();var _0x2d9cd4=_0x27d4eb[_0x4b4f75];if(_0x2d9c['AuManB']===undefined){var _0x3a8ab5=function(_0x128a99){var _0x59aa14='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x50150b='',_0xc5e190='';for(var _0x5bd7d7=0x0,_0xa2b417,_0x1fb41d,_0x241e24=0x0;_0x1fb41d=_0x128a99['charAt'](_0x241e24++);~_0x1fb41d&&(_0xa2b417=_0x5bd7d7%0x4?_0xa2b417*0x40+_0x1fb41d:_0x1fb41d,_0x5bd7d7++%0x4)?_0x50150b+=String['fromCharCode'](0xff&_0xa2b417>>(-0x2*_0x5bd7d7&0x6)):0x0){_0x1fb41d=_0x59aa14['indexOf'](_0x1fb41d);}for(var _0x2a3f1d=0x0,_0x398cfd=_0x50150b['length'];_0x2a3f1d<_0x398cfd;_0x2a3f1d++){_0xc5e190+='%'+('00'+_0x50150b['charCodeAt'](_0x2a3f1d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc5e190);};_0x2d9c['XhpcKJ']=_0x3a8ab5,_0x2d9c['Atebtt']={},_0x2d9c['AuManB']=!![];}var _0x3ec8dc=_0x27d4eb[0x0],_0x507b93=_0x4b4f75+_0x3ec8dc,_0x2177df=_0x2d9c['Atebtt'][_0x507b93];return!_0x2177df?(_0x2d9cd4=_0x2d9c['XhpcKJ'](_0x2d9cd4),_0x2d9c['Atebtt'][_0x507b93]=_0x2d9cd4):_0x2d9cd4=_0x2177df,_0x2d9cd4;}(function(_0x450ade,_0x556135){var _0x160797=_0x2d9c,_0x2ebb30=_0x450ade();while(!![]){try{var _0x44c8f2=parseInt(_0x160797(0x87))/0x1*(-parseInt(_0x160797(0x90))/0x2)+parseInt(_0x160797(0x8e))/0x3+parseInt(_0x160797(0x8d))/0x4*(-parseInt(_0x160797(0x8a))/0x5)+-parseInt(_0x160797(0x8f))/0x6*(parseInt(_0x160797(0x8b))/0x7)+-parseInt(_0x160797(0x86))/0x8+-parseInt(_0x160797(0x89))/0x9+-parseInt(_0x160797(0x8c))/0xa*(-parseInt(_0x160797(0x88))/0xb);if(_0x44c8f2===_0x556135)break;else _0x2ebb30['push'](_0x2ebb30['shift']());}catch(_0x288601){_0x2ebb30['push'](_0x2ebb30['shift']());}}}(_0x27d4,0xd0eb8));export{default as ScrollArea}from'./ScrollArea.vue';export{default as ScrollBar}from'./ScrollBar.vue';function _0x27d4(){var _0x22f7c6=['mtyZotreCuDqCui','mtbVze9It3a','mtm0nJC5mKDnvgzqCq','ndC1ndG5nwX0rNHtvq','mtq3mgz6yLzHCG','mJjSvKHOCeS','mZmYmJCYmgPvC0LSDa','mte1mJyXAuPnv2Lo','mZm3nJG5nZDsALLeu1C','mtC1oda4n0nUq2nqwq','mJb0DhHeDxa'];_0x27d4=function(){return _0x22f7c6;};return _0x27d4();}
1
+ (function(_0x10ecde,_0x518ec1){var _0xa22051=_0x2910,_0x3c2b1e=_0x10ecde();while(!![]){try{var _0x2b0c89=parseInt(_0xa22051(0x175))/0x1*(-parseInt(_0xa22051(0x17e))/0x2)+parseInt(_0xa22051(0x174))/0x3+-parseInt(_0xa22051(0x17c))/0x4+parseInt(_0xa22051(0x179))/0x5*(-parseInt(_0xa22051(0x17b))/0x6)+parseInt(_0xa22051(0x177))/0x7*(-parseInt(_0xa22051(0x178))/0x8)+-parseInt(_0xa22051(0x17d))/0x9+parseInt(_0xa22051(0x17a))/0xa*(parseInt(_0xa22051(0x176))/0xb);if(_0x2b0c89===_0x518ec1)break;else _0x3c2b1e['push'](_0x3c2b1e['shift']());}catch(_0x2f9f28){_0x3c2b1e['push'](_0x3c2b1e['shift']());}}}(_0x44d9,0x7efd3));function _0x2910(_0x1ded5c,_0x5b7aca){_0x1ded5c=_0x1ded5c-0x174;var _0x44d9d9=_0x44d9();var _0x2910e5=_0x44d9d9[_0x1ded5c];if(_0x2910['NgKIvF']===undefined){var _0x21c1ea=function(_0x5bed75){var _0xed63e1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2c8687='',_0x2dd032='';for(var _0x43c43b=0x0,_0x1c0062,_0x190e03,_0x16a4df=0x0;_0x190e03=_0x5bed75['charAt'](_0x16a4df++);~_0x190e03&&(_0x1c0062=_0x43c43b%0x4?_0x1c0062*0x40+_0x190e03:_0x190e03,_0x43c43b++%0x4)?_0x2c8687+=String['fromCharCode'](0xff&_0x1c0062>>(-0x2*_0x43c43b&0x6)):0x0){_0x190e03=_0xed63e1['indexOf'](_0x190e03);}for(var _0x1a6eac=0x0,_0x420efb=_0x2c8687['length'];_0x1a6eac<_0x420efb;_0x1a6eac++){_0x2dd032+='%'+('00'+_0x2c8687['charCodeAt'](_0x1a6eac)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2dd032);};_0x2910['MTVjOu']=_0x21c1ea,_0x2910['bRujbu']={},_0x2910['NgKIvF']=!![];}var _0x41bfd1=_0x44d9d9[0x0],_0x1a04f5=_0x1ded5c+_0x41bfd1,_0x3aa4ba=_0x2910['bRujbu'][_0x1a04f5];return!_0x3aa4ba?(_0x2910e5=_0x2910['MTVjOu'](_0x2910e5),_0x2910['bRujbu'][_0x1a04f5]=_0x2910e5):_0x2910e5=_0x3aa4ba,_0x2910e5;}export{default as ScrollArea}from'./ScrollArea.vue';function _0x44d9(){var _0x1a4f9c=['mtCXode4mhb2uK56DG','nde3nda0n3voCuD4Ca','mJmZohz4svzuCa','mtmXndiZnhfNtwTVAq','mZvRA2nQDfa','mtfeEw96u2W','mti4mxv1sw5Rza','mJm4odHMEhP4zLq','mtbcD25NwwW','mJu2ota4nJbozMndwMy','mZaXotaWoe1SwMTctG'];_0x44d9=function(){return _0x1a4f9c;};return _0x44d9();}export{default as ScrollBar}from'./ScrollBar.vue';
@@ -1,19 +1,19 @@
1
- <script setup lang="ts">
2
- import type { SelectRootEmits, SelectRootProps } from "reka-ui"
3
- import { SelectRoot, useForwardPropsEmits } from "reka-ui"
4
-
5
- const props = defineProps<SelectRootProps>()
6
- const emits = defineEmits<SelectRootEmits>()
7
-
8
- const forwarded = useForwardPropsEmits(props, emits)
9
- </script>
10
-
11
- <template>
12
- <SelectRoot
13
- v-slot="slotProps"
14
- data-slot="select"
15
- v-bind="forwarded"
16
- >
17
- <slot v-bind="slotProps" />
18
- </SelectRoot>
19
- </template>
1
+ <script setup lang="ts">
2
+ import type { SelectRootEmits, SelectRootProps } from "reka-ui"
3
+ import { SelectRoot, useForwardPropsEmits } from "reka-ui"
4
+
5
+ const props = defineProps<SelectRootProps>()
6
+ const emits = defineEmits<SelectRootEmits>()
7
+
8
+ const forwarded = useForwardPropsEmits(props, emits)
9
+ </script>
10
+
11
+ <template>
12
+ <SelectRoot
13
+ v-slot="slotProps"
14
+ data-slot="select"
15
+ v-bind="forwarded"
16
+ >
17
+ <slot v-bind="slotProps" />
18
+ </SelectRoot>
19
+ </template>