@kine-design/core 0.0.1-beta.1 → 0.0.1-beta.10

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 (426) hide show
  1. package/.vlaude/last-session-id +1 -0
  2. package/.vlaude/session-switch.signal +1 -0
  3. package/assets/style/global.css +1 -0
  4. package/assets/style/var/Wuxing.css +71 -0
  5. package/assets/style/var.css +23 -0
  6. package/components/base/affix/api.ts +16 -0
  7. package/components/base/affix/index.ts +17 -0
  8. package/components/base/affix/props.d.ts +34 -0
  9. package/components/base/affix/useAffix.ts +124 -0
  10. package/components/base/alert/api.ts +18 -0
  11. package/components/base/alert/index.ts +15 -0
  12. package/components/base/alert/props.d.ts +50 -0
  13. package/components/base/anchor/api.ts +20 -0
  14. package/components/base/anchor/index.ts +18 -0
  15. package/components/base/anchor/props.d.ts +46 -0
  16. package/components/base/anchor/useAnchor.ts +84 -0
  17. package/components/base/autoComplete/api.ts +24 -0
  18. package/components/base/autoComplete/index.ts +17 -0
  19. package/components/base/autoComplete/props.d.ts +75 -0
  20. package/components/base/autoComplete/useAutoComplete.ts +157 -0
  21. package/components/base/avatar/api.ts +17 -0
  22. package/components/base/avatar/avatar.css +61 -0
  23. package/components/base/avatar/index.ts +15 -0
  24. package/components/base/avatar/props.d.ts +37 -0
  25. package/components/base/backTop/api.ts +17 -0
  26. package/components/base/backTop/index.ts +17 -0
  27. package/components/base/backTop/props.d.ts +38 -0
  28. package/components/base/backTop/useBackTop.ts +62 -0
  29. package/components/base/badge/api.ts +22 -0
  30. package/components/base/badge/index.ts +15 -0
  31. package/components/base/badge/props.d.ts +50 -0
  32. package/components/base/button/api.ts +28 -0
  33. package/components/base/button/button.css +34 -0
  34. package/components/base/button/index.ts +17 -0
  35. package/components/base/button/props.d.ts +66 -0
  36. package/components/base/button/useButton.ts +37 -0
  37. package/components/base/card/api.ts +17 -0
  38. package/components/base/card/index.ts +15 -0
  39. package/components/base/card/props.d.ts +37 -0
  40. package/components/base/carousel/api.ts +28 -0
  41. package/components/base/carousel/index.ts +17 -0
  42. package/components/base/carousel/props.d.ts +72 -0
  43. package/components/base/carousel/useCarousel.ts +150 -0
  44. package/components/base/cascader/api.ts +23 -0
  45. package/components/base/cascader/index.ts +18 -0
  46. package/components/base/cascader/props.d.ts +103 -0
  47. package/components/base/cascader/useCascader.ts +335 -0
  48. package/components/base/checkbox/api.ts +24 -0
  49. package/components/base/checkbox/checkbox.css +0 -0
  50. package/components/base/checkbox/index.ts +17 -0
  51. package/components/base/checkbox/props.d.ts +77 -0
  52. package/components/base/checkbox/useCheckbox.ts +43 -0
  53. package/components/base/collapse/api.ts +21 -0
  54. package/components/base/collapse/index.ts +18 -0
  55. package/components/base/collapse/props.d.ts +45 -0
  56. package/components/base/collapse/useCollapse.ts +81 -0
  57. package/components/base/datePicker/__tests__/useDatePicker.test.ts +244 -0
  58. package/components/base/datePicker/api.ts +22 -0
  59. package/components/base/datePicker/index.ts +19 -0
  60. package/components/base/datePicker/props.d.ts +86 -0
  61. package/components/base/datePicker/useDatePicker.ts +392 -0
  62. package/components/base/divider/api.ts +15 -0
  63. package/components/base/divider/divider.css +11 -0
  64. package/components/base/divider/index.ts +15 -0
  65. package/components/base/divider/props.d.ts +30 -0
  66. package/components/base/dropdown/api.ts +33 -0
  67. package/components/base/dropdown/index.ts +18 -0
  68. package/components/base/dropdown/props.d.ts +60 -0
  69. package/components/base/dropdown/useDropdown.ts +124 -0
  70. package/components/base/empty/api.ts +15 -0
  71. package/components/base/empty/index.ts +15 -0
  72. package/components/base/empty/props.d.ts +26 -0
  73. package/components/base/image/__tests__/useImage.test.ts +176 -0
  74. package/components/base/image/api.ts +25 -0
  75. package/components/base/image/index.ts +18 -0
  76. package/components/base/image/props.d.ts +67 -0
  77. package/components/base/image/useImage.ts +119 -0
  78. package/components/base/input/api.ts +23 -0
  79. package/components/base/input/index.ts +17 -0
  80. package/components/base/input/input.css +19 -0
  81. package/components/base/input/props.d.ts +85 -0
  82. package/components/base/input/useInput.ts +63 -0
  83. package/components/base/inputNumber/__tests__/useInputNumber.test.ts +189 -0
  84. package/components/base/inputNumber/api.ts +23 -0
  85. package/components/base/inputNumber/index.ts +17 -0
  86. package/components/base/inputNumber/props.d.ts +78 -0
  87. package/components/base/inputNumber/useInputNumber.ts +182 -0
  88. package/components/base/li/api.ts +15 -0
  89. package/components/base/li/index.ts +15 -0
  90. package/components/base/li/props.d.ts +30 -0
  91. package/components/base/list/api.ts +16 -0
  92. package/components/base/list/index.ts +17 -0
  93. package/components/base/list/props.d.ts +33 -0
  94. package/components/base/list/useList.ts +36 -0
  95. package/components/base/loading/api.ts +17 -0
  96. package/components/base/loading/index.ts +15 -0
  97. package/components/base/loading/props.d.ts +40 -0
  98. package/components/base/popover/api.ts +28 -0
  99. package/components/base/popover/index.ts +17 -0
  100. package/components/base/popover/props.d.ts +73 -0
  101. package/components/base/popover/usePopover.ts +193 -0
  102. package/components/base/progress/api.ts +20 -0
  103. package/components/base/progress/index.ts +17 -0
  104. package/components/base/progress/props.d.ts +68 -0
  105. package/components/base/progress/useProgress.ts +28 -0
  106. package/components/base/radio/api.ts +19 -0
  107. package/components/base/radio/index.ts +19 -0
  108. package/components/base/radio/props.d.ts +59 -0
  109. package/components/base/radio/useRadio.ts +11 -0
  110. package/components/base/rate/api.ts +18 -0
  111. package/components/base/rate/index.ts +17 -0
  112. package/components/base/rate/props.d.ts +49 -0
  113. package/components/base/rate/useRate.ts +76 -0
  114. package/components/base/result/api.ts +20 -0
  115. package/components/base/result/index.ts +15 -0
  116. package/components/base/result/props.d.ts +36 -0
  117. package/components/base/select/api.ts +34 -0
  118. package/components/base/select/index.ts +18 -0
  119. package/components/base/select/props.d.ts +152 -0
  120. package/components/base/select/select.css +7 -0
  121. package/components/base/select/useSelect.ts +281 -0
  122. package/components/base/select/useSelectTools.ts +60 -0
  123. package/components/base/skeleton/api.ts +18 -0
  124. package/components/base/skeleton/index.ts +15 -0
  125. package/components/base/skeleton/props.d.ts +41 -0
  126. package/components/base/slider/api.ts +22 -0
  127. package/components/base/slider/index.ts +17 -0
  128. package/components/base/slider/props.d.ts +79 -0
  129. package/components/base/slider/useSlider.ts +87 -0
  130. package/components/base/space/api.ts +17 -0
  131. package/components/base/space/index.ts +15 -0
  132. package/components/base/space/props.d.ts +39 -0
  133. package/components/base/steps/__tests__/useSteps.test.ts +46 -0
  134. package/components/base/steps/api.ts +30 -0
  135. package/components/base/steps/index.ts +22 -0
  136. package/components/base/steps/props.d.ts +88 -0
  137. package/components/base/steps/useSteps.ts +101 -0
  138. package/components/base/switch/api.ts +22 -0
  139. package/components/base/switch/index.ts +19 -0
  140. package/components/base/switch/props.d.ts +66 -0
  141. package/components/base/switch/useSwitch.tsx +80 -0
  142. package/components/base/tabs/api.ts +23 -0
  143. package/components/base/tabs/index.ts +18 -0
  144. package/components/base/tabs/props.d.ts +41 -0
  145. package/components/base/tabs/useTabs.ts +67 -0
  146. package/components/base/tag/api.ts +17 -0
  147. package/components/base/tag/index.ts +15 -0
  148. package/components/base/tag/props.d.ts +51 -0
  149. package/components/base/timePicker/__tests__/useTimePicker.test.ts +124 -0
  150. package/components/base/timePicker/api.ts +24 -0
  151. package/components/base/timePicker/index.ts +18 -0
  152. package/components/base/timePicker/props.d.ts +86 -0
  153. package/components/base/timePicker/useTimePicker.ts +161 -0
  154. package/components/base/timeline/api.ts +24 -0
  155. package/components/base/timeline/index.ts +16 -0
  156. package/components/base/timeline/props.d.ts +60 -0
  157. package/components/base/tooltip/api.ts +21 -0
  158. package/components/base/tooltip/index.ts +18 -0
  159. package/components/base/tooltip/props.d.ts +46 -0
  160. package/components/base/tooltip/useTooltip.ts +208 -0
  161. package/components/base/transfer/api.ts +18 -0
  162. package/components/base/transfer/index.ts +17 -0
  163. package/components/base/transfer/props.d.ts +63 -0
  164. package/components/base/transfer/useTransfer.ts +208 -0
  165. package/components/base/tree/__tests__/tree.test.ts +223 -0
  166. package/components/base/tree/api.ts +47 -0
  167. package/components/base/tree/index.ts +29 -0
  168. package/components/base/tree/props.d.ts +108 -0
  169. package/components/base/tree/tree.ts +263 -0
  170. package/components/base/tree/useTree.ts +114 -0
  171. package/components/message/confirm/api.ts +21 -0
  172. package/components/message/confirm/index.ts +15 -0
  173. package/components/message/confirm/props.d.ts +69 -0
  174. package/components/message/dialog/api.ts +20 -0
  175. package/components/message/dialog/index.ts +15 -0
  176. package/components/message/dialog/props.d.ts +62 -0
  177. package/components/message/drawer/api.ts +33 -0
  178. package/components/message/drawer/index.ts +15 -0
  179. package/components/message/drawer/props.d.ts +80 -0
  180. package/components/message/message/api.ts +27 -0
  181. package/components/message/message/index.ts +20 -0
  182. package/components/message/message/props.d.ts +54 -0
  183. package/components/message/message/useMessage.ts +61 -0
  184. package/components/message/notification/__tests__/useNotification.test.ts +129 -0
  185. package/components/message/notification/api.ts +23 -0
  186. package/components/message/notification/index.ts +19 -0
  187. package/components/message/notification/props.d.ts +64 -0
  188. package/components/message/notification/useNotification.ts +79 -0
  189. package/components/message/popover/MPopover.tsx +94 -0
  190. package/components/message/popover/api.ts +54 -0
  191. package/components/message/popover/index.ts +17 -0
  192. package/components/message/popover/popover.css +21 -0
  193. package/components/message/popover/props.d.ts +76 -0
  194. package/components/message/popover/usePopover.ts +234 -0
  195. package/components/other/darkMode/api.ts +17 -0
  196. package/components/other/darkMode/index.ts +17 -0
  197. package/components/other/darkMode/props.d.ts +37 -0
  198. package/components/other/darkMode/useDarkMode.ts +129 -0
  199. package/components/template/border/api.ts +18 -0
  200. package/components/template/border/index.ts +15 -0
  201. package/components/template/border/props.d.ts +41 -0
  202. package/components/template/breadcrumb/api.ts +15 -0
  203. package/components/template/breadcrumb/index.ts +15 -0
  204. package/components/template/breadcrumb/props.d.ts +45 -0
  205. package/components/template/descriptions/api.ts +23 -0
  206. package/components/template/descriptions/index.ts +16 -0
  207. package/components/template/descriptions/props.d.ts +54 -0
  208. package/components/template/form/api.ts +23 -0
  209. package/components/template/form/index.ts +20 -0
  210. package/components/template/form/props.d.ts +60 -0
  211. package/components/template/grid/api.ts +20 -0
  212. package/components/template/grid/index.ts +15 -0
  213. package/components/template/grid/props.d.ts +48 -0
  214. package/components/template/menu/__tests__/useMenu.test.ts +157 -0
  215. package/components/template/menu/api.ts +26 -0
  216. package/components/template/menu/index.ts +18 -0
  217. package/components/template/menu/props.d.ts +93 -0
  218. package/components/template/menu/useMenu.ts +155 -0
  219. package/components/template/pagination/__tests__/usePagination.test.ts +138 -0
  220. package/components/template/pagination/api.ts +22 -0
  221. package/components/template/pagination/index.ts +19 -0
  222. package/components/template/pagination/props.d.ts +65 -0
  223. package/components/template/pagination/usePagination.ts +186 -0
  224. package/components/template/table/__tests__/useTable.test.ts +138 -0
  225. package/components/template/table/api.ts +18 -0
  226. package/components/template/table/index.ts +18 -0
  227. package/components/template/table/props.d.ts +36 -0
  228. package/components/template/table/useTable.ts +136 -0
  229. package/components/template/tableColumn/api.ts +17 -0
  230. package/components/template/tableColumn/index.ts +15 -0
  231. package/components/template/tableColumn/props.d.ts +32 -0
  232. package/components/template/virtualList/api.ts +16 -0
  233. package/components/template/virtualList/index.ts +17 -0
  234. package/components/template/virtualList/props.d.ts +25 -0
  235. package/components/template/virtualList/useVirtualList.ts +237 -0
  236. package/components/types/hook.d.ts +24 -0
  237. package/components/types/props.d.ts +57 -0
  238. package/components/types/template.d.ts +59 -0
  239. package/compositions/commandPalette/index.ts +11 -0
  240. package/compositions/commandPalette/types.ts +29 -0
  241. package/compositions/commandPalette/useCommandPalette.ts +135 -0
  242. package/compositions/common/__tests__/useDebounceFn.test.ts +62 -0
  243. package/compositions/common/__tests__/useEventListener.test.ts +98 -0
  244. package/compositions/common/__tests__/usePopover.test.ts +43 -0
  245. package/compositions/common/__tests__/useTeleport.test.ts +32 -0
  246. package/compositions/common/defineCore.ts +55 -0
  247. package/compositions/common/testAnchor.ts +211 -0
  248. package/compositions/common/useComponentSize.ts +17 -0
  249. package/compositions/common/useDebounceFn.ts +27 -0
  250. package/compositions/common/useDrag.ts +65 -0
  251. package/compositions/common/useElementSize.ts +37 -0
  252. package/compositions/common/useEventListener.ts +48 -0
  253. package/compositions/common/usePopover.ts +45 -0
  254. package/compositions/common/useResizeObserver.ts +47 -0
  255. package/compositions/common/useTeleport.ts +24 -0
  256. package/compositions/contextMenu/index.ts +10 -0
  257. package/compositions/contextMenu/types.ts +21 -0
  258. package/compositions/contextMenu/useContextMenu.ts +101 -0
  259. package/compositions/editor/index.ts +18 -0
  260. package/compositions/editor/types.ts +147 -0
  261. package/compositions/editor/useEditor.ts +224 -0
  262. package/compositions/index.ts +15 -0
  263. package/compositions/input/__tests__/useBooleanInput.test.ts +73 -0
  264. package/compositions/input/useBooleanInput.ts +52 -0
  265. package/compositions/modal/__tests__/useModal.test.ts +110 -0
  266. package/compositions/modal/useModal.ts +72 -0
  267. package/compositions/overlay/index.ts +14 -0
  268. package/compositions/overlay/useOverlayStack.ts +146 -0
  269. package/compositions/peekView/index.ts +10 -0
  270. package/compositions/peekView/usePeekView.ts +99 -0
  271. package/compositions/popper/useClickAway.ts +41 -0
  272. package/compositions/popper/usePopper.ts +63 -0
  273. package/compositions/theme/index.ts +17 -0
  274. package/compositions/theme/presets/compact.ts +117 -0
  275. package/compositions/theme/presets/dark.ts +113 -0
  276. package/compositions/theme/presets/index.ts +11 -0
  277. package/compositions/theme/presets/light.ts +113 -0
  278. package/compositions/theme/types.ts +46 -0
  279. package/compositions/theme/useTheme.ts +269 -0
  280. package/compositions/toast/index.ts +10 -0
  281. package/compositions/toast/useToast.ts +176 -0
  282. package/compositions/tooltip/index.ts +9 -0
  283. package/compositions/tooltip/useTooltip.ts +10 -0
  284. package/compositions/utils/__tests__/filters.test.ts +136 -0
  285. package/compositions/utils/filters.ts +135 -0
  286. package/compositions/virtualList/__tests__/useHeightCache.test.ts +97 -0
  287. package/compositions/virtualList/enums.ts +52 -0
  288. package/compositions/virtualList/useContainerObserver.ts +89 -0
  289. package/compositions/virtualList/useEntries.ts +248 -0
  290. package/compositions/virtualList/useHeightCache.ts +83 -0
  291. package/compositions/virtualList/useSentinelObserver.ts +81 -0
  292. package/dist/components/base/affix/index.d.ts +2 -1
  293. package/dist/components/base/affix/useAffix.d.ts +7 -5
  294. package/dist/components/base/anchor/index.d.ts +2 -1
  295. package/dist/components/base/anchor/useAnchor.d.ts +3 -2
  296. package/dist/components/base/autoComplete/useAutoComplete.d.ts +14 -5
  297. package/dist/components/base/avatar/index.d.ts +1 -0
  298. package/dist/components/base/backTop/index.d.ts +2 -1
  299. package/dist/components/base/backTop/useBackTop.d.ts +2 -2
  300. package/dist/components/base/button/index.d.ts +3 -21
  301. package/dist/components/base/button/useButton.d.ts +5 -2
  302. package/dist/components/base/carousel/useCarousel.d.ts +7 -3
  303. package/dist/components/base/cascader/useCascader.d.ts +25 -12
  304. package/dist/components/base/checkbox/index.d.ts +2 -1
  305. package/dist/components/base/checkbox/useCheckbox.d.ts +5 -3
  306. package/dist/components/base/collapse/index.d.ts +2 -1
  307. package/dist/components/base/collapse/useCollapse.d.ts +4 -3
  308. package/dist/components/base/datePicker/__tests__/useDatePicker.test.d.ts +1 -0
  309. package/dist/components/base/datePicker/useDatePicker.d.ts +140 -8
  310. package/dist/components/base/dropdown/index.d.ts +2 -1
  311. package/dist/components/base/dropdown/useDropdown.d.ts +13 -6
  312. package/dist/components/base/image/__tests__/useImage.test.d.ts +1 -0
  313. package/dist/components/base/image/useImage.d.ts +5 -5
  314. package/dist/components/base/input/index.d.ts +2 -1
  315. package/dist/components/base/input/useInput.d.ts +4 -2
  316. package/dist/components/base/inputNumber/__tests__/useInputNumber.test.d.ts +1 -0
  317. package/dist/components/base/inputNumber/index.d.ts +2 -1
  318. package/dist/components/base/inputNumber/useInputNumber.d.ts +4 -3
  319. package/dist/components/base/li/index.d.ts +1 -0
  320. package/dist/components/base/list/index.d.ts +2 -1
  321. package/dist/components/base/list/useList.d.ts +1 -1
  322. package/dist/components/base/popover/index.d.ts +2 -1
  323. package/dist/components/base/popover/usePopover.d.ts +10 -9
  324. package/dist/components/base/progress/index.d.ts +2 -1
  325. package/dist/components/base/progress/useProgress.d.ts +2 -2
  326. package/dist/components/base/rate/index.d.ts +2 -1
  327. package/dist/components/base/rate/useRate.d.ts +3 -2
  328. package/dist/components/base/select/useSelect.d.ts +10 -9
  329. package/dist/components/base/slider/index.d.ts +2 -1
  330. package/dist/components/base/slider/useSlider.d.ts +5 -4
  331. package/dist/components/base/steps/__tests__/useSteps.test.d.ts +1 -0
  332. package/dist/components/base/steps/index.d.ts +1 -1
  333. package/dist/components/base/steps/useSteps.d.ts +5 -5
  334. package/dist/components/base/switch/index.d.ts +2 -1
  335. package/dist/components/base/switch/useSwitch.d.ts +9 -3
  336. package/dist/components/base/tabs/index.d.ts +1 -1
  337. package/dist/components/base/tabs/useTabs.d.ts +4 -3
  338. package/dist/components/base/tag/index.d.ts +1 -0
  339. package/dist/components/base/timePicker/__tests__/useTimePicker.test.d.ts +1 -0
  340. package/dist/components/base/timePicker/useTimePicker.d.ts +14 -6
  341. package/dist/components/base/tooltip/index.d.ts +2 -1
  342. package/dist/components/base/tooltip/useTooltip.d.ts +24 -11
  343. package/dist/components/base/transfer/useTransfer.d.ts +17 -16
  344. package/dist/components/base/tree/__tests__/tree.test.d.ts +1 -0
  345. package/dist/components/base/tree/index.d.ts +1 -1
  346. package/dist/components/base/tree/useTree.d.ts +2 -1
  347. package/dist/components/message/drawer/index.d.ts +2 -2
  348. package/dist/components/message/message/useMessage.d.ts +11 -1
  349. package/dist/components/message/notification/__tests__/useNotification.test.d.ts +1 -0
  350. package/dist/components/message/notification/useNotification.d.ts +17 -1
  351. package/dist/components/message/popover/MPopover.d.ts +6 -1
  352. package/dist/components/message/popover/index.d.ts +1 -1
  353. package/dist/components/message/popover/usePopover.d.ts +7 -7
  354. package/dist/components/other/darkMode/useDarkMode.d.ts +3 -4
  355. package/dist/components/template/menu/__tests__/useMenu.test.d.ts +1 -0
  356. package/dist/components/template/menu/index.d.ts +0 -1
  357. package/dist/components/template/menu/useMenu.d.ts +2 -1
  358. package/dist/components/template/pagination/__tests__/usePagination.test.d.ts +1 -0
  359. package/dist/components/template/pagination/index.d.ts +2 -1
  360. package/dist/components/template/table/__tests__/useTable.test.d.ts +1 -0
  361. package/dist/components/template/virtualList/index.d.ts +0 -1
  362. package/dist/components/template/virtualList/useVirtualList.d.ts +10 -7
  363. package/dist/compositions/commandPalette/index.d.ts +11 -0
  364. package/dist/compositions/commandPalette/types.d.ts +20 -0
  365. package/dist/compositions/commandPalette/useCommandPalette.d.ts +32 -0
  366. package/dist/compositions/common/__tests__/useDebounceFn.test.d.ts +1 -0
  367. package/dist/compositions/common/__tests__/useEventListener.test.d.ts +1 -0
  368. package/dist/compositions/common/__tests__/usePopover.test.d.ts +1 -0
  369. package/dist/compositions/common/__tests__/useTeleport.test.d.ts +1 -0
  370. package/dist/compositions/common/testAnchor.d.ts +40 -0
  371. package/dist/compositions/common/useComponentSize.d.ts +6 -0
  372. package/dist/compositions/common/useDrag.d.ts +1 -1
  373. package/dist/compositions/common/useElementSize.d.ts +2 -2
  374. package/dist/compositions/common/useEventListener.d.ts +2 -2
  375. package/dist/compositions/common/useTeleport.d.ts +4 -2
  376. package/dist/compositions/contextMenu/index.d.ts +10 -0
  377. package/dist/compositions/contextMenu/types.d.ts +12 -0
  378. package/dist/compositions/contextMenu/useContextMenu.d.ts +52 -0
  379. package/dist/compositions/editor/index.d.ts +10 -0
  380. package/dist/compositions/editor/types.d.ts +132 -0
  381. package/dist/compositions/editor/useEditor.d.ts +13 -0
  382. package/dist/compositions/index.d.ts +15 -0
  383. package/dist/compositions/input/__tests__/useBooleanInput.test.d.ts +1 -0
  384. package/dist/compositions/modal/__tests__/useModal.test.d.ts +1 -0
  385. package/dist/compositions/modal/useModal.d.ts +3 -2
  386. package/dist/compositions/overlay/index.d.ts +10 -0
  387. package/dist/compositions/overlay/useOverlayStack.d.ts +188 -0
  388. package/dist/compositions/peekView/index.d.ts +10 -0
  389. package/dist/compositions/peekView/usePeekView.d.ts +16 -0
  390. package/dist/compositions/popper/useClickAway.d.ts +3 -3
  391. package/dist/compositions/theme/index.d.ts +11 -0
  392. package/dist/compositions/theme/presets/compact.d.ts +6 -0
  393. package/dist/compositions/theme/presets/dark.d.ts +2 -0
  394. package/dist/compositions/theme/presets/index.d.ts +11 -0
  395. package/dist/compositions/theme/presets/light.d.ts +2 -0
  396. package/dist/compositions/theme/types.d.ts +41 -0
  397. package/dist/compositions/theme/useTheme.d.ts +167 -0
  398. package/dist/compositions/toast/index.d.ts +10 -0
  399. package/dist/compositions/toast/useToast.d.ts +71 -0
  400. package/dist/compositions/tooltip/index.d.ts +9 -0
  401. package/dist/compositions/tooltip/useTooltip.d.ts +10 -0
  402. package/dist/compositions/utils/__tests__/filters.test.d.ts +1 -0
  403. package/dist/compositions/virtualList/__tests__/useHeightCache.test.d.ts +1 -0
  404. package/dist/core.js +7050 -4188
  405. package/dist/index.d.ts +1 -0
  406. package/dist/runtime/defineHook.d.ts +1 -1
  407. package/dist/tools/__tests__/empty.test.d.ts +1 -0
  408. package/dist/tools/empty.d.ts +2 -2
  409. package/dist/tools/types.d.ts +1 -1
  410. package/dist/vitest.config.d.ts +10 -0
  411. package/index.css +1 -0
  412. package/index.ts +73 -0
  413. package/package.json +41 -22
  414. package/runtime/defineHook.ts +21 -0
  415. package/tools/__tests__/empty.test.ts +91 -0
  416. package/tools/empty.ts +81 -0
  417. package/tools/index.ts +15 -0
  418. package/tools/types.ts +11 -0
  419. package/tsconfig.json +8 -0
  420. package/types/common/common.d.ts +25 -0
  421. package/types/common/model.d.ts +25 -0
  422. package/types/index.d.ts +11 -0
  423. package/types/props.d.ts +13 -0
  424. package/vite.config.build.ts +41 -0
  425. package/vitest.config.ts +17 -0
  426. package/dist/vite.config.build.d.ts +0 -2
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @description empty api
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO } from '../../types/props';
10
+ import { EmptyProps } from './props';
11
+
12
+ export const props: MCOPO<EmptyProps> = {
13
+ description: { type: String, default: '暂无数据' },
14
+ image: { type: String, default: undefined },
15
+ };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @description empty core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+
11
+ export const EmptyCore = {
12
+ props,
13
+ };
14
+
15
+ export type { EmptyProps } from './props';
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @description empty api type
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * @name m-empty
8
+ * @docDescription Empty state component with shuimo-ui style.
9
+ * 水墨组件的空状态组件。
10
+ *
11
+ * 江湖的业务千篇一律,复杂的代码好几百行。
12
+ */
13
+
14
+ export declare type EmptyProps = {
15
+ /**
16
+ * @description 描述文字
17
+ * @type string
18
+ * @default '暂无数据'
19
+ */
20
+ description?: string;
21
+ /**
22
+ * @description 自定义图片地址
23
+ * @type string
24
+ */
25
+ image?: string;
26
+ };
@@ -0,0 +1,176 @@
1
+ /**
2
+ * @description useImage 测试
3
+ * @author 阿怪
4
+ * @date 2026/3/23
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { describe, expect, it, vi } from 'vitest';
10
+ import { useImage } from '../useImage';
11
+
12
+ const defaultProps = {
13
+ src: 'test.png',
14
+ alt: '',
15
+ fit: 'cover' as const,
16
+ lazy: false,
17
+ previewSrcList: [] as string[],
18
+ initialIndex: 0,
19
+ width: '' as string | number,
20
+ height: '' as string | number,
21
+ zIndex: 2000,
22
+ };
23
+
24
+ describe('useImage', () => {
25
+ const createEmit = () => vi.fn();
26
+
27
+ it('初始状态为 loading', () => {
28
+ const emit = createEmit();
29
+ const { status } = useImage(defaultProps, emit);
30
+ expect(status.value).toBe('loading');
31
+ });
32
+
33
+ it('handleLoad 设置状态为 loaded 并触发 emit', () => {
34
+ const emit = createEmit();
35
+ const { status, handleLoad } = useImage(defaultProps, emit);
36
+ // Vitest node 环境下由 happy-dom/jsdom 提供 Event 构造函数,
37
+ // handleLoad 仅需接收 Event 实例作为参数传给 emit,不依赖 DOM 行为
38
+ const event = new Event('load');
39
+
40
+ handleLoad(event);
41
+ expect(status.value).toBe('loaded');
42
+ expect(emit).toHaveBeenCalledWith('load', event);
43
+ });
44
+
45
+ it('handleError 设置状态为 error 并触发 emit', () => {
46
+ const emit = createEmit();
47
+ const { status, handleError } = useImage(defaultProps, emit);
48
+ const event = new Event('error');
49
+
50
+ handleError(event);
51
+ expect(status.value).toBe('error');
52
+ expect(emit).toHaveBeenCalledWith('error', event);
53
+ });
54
+
55
+ // 预览功能
56
+ it('openPreview 无 previewSrcList 时不打开', () => {
57
+ const emit = createEmit();
58
+ const { previewVisible, openPreview } = useImage(defaultProps, emit);
59
+
60
+ openPreview();
61
+ expect(previewVisible.value).toBe(false);
62
+ });
63
+
64
+ it('openPreview 有 previewSrcList 时打开并定位', () => {
65
+ const emit = createEmit();
66
+ const props = { ...defaultProps, previewSrcList: ['a.png', 'test.png', 'c.png'] };
67
+ const { previewVisible, previewIndex, openPreview } = useImage(props, emit);
68
+
69
+ openPreview();
70
+ expect(previewVisible.value).toBe(true);
71
+ expect(previewIndex.value).toBe(1); // test.png 在索引 1
72
+ });
73
+
74
+ it('openPreview src 不在列表中时定位到 0', () => {
75
+ const emit = createEmit();
76
+ const props = { ...defaultProps, src: 'unknown.png', previewSrcList: ['a.png', 'b.png'] };
77
+ const { previewIndex, openPreview } = useImage(props, emit);
78
+
79
+ openPreview();
80
+ expect(previewIndex.value).toBe(0);
81
+ });
82
+
83
+ it('closePreview 关闭预览', () => {
84
+ const emit = createEmit();
85
+ const props = { ...defaultProps, previewSrcList: ['a.png'] };
86
+ const { previewVisible, openPreview, closePreview } = useImage(props, emit);
87
+
88
+ openPreview();
89
+ closePreview();
90
+ expect(previewVisible.value).toBe(false);
91
+ });
92
+
93
+ it('previewNext / previewPrev 循环切换', () => {
94
+ const emit = createEmit();
95
+ const props = { ...defaultProps, src: 'a.png', previewSrcList: ['a.png', 'b.png', 'c.png'] };
96
+ const { previewIndex, openPreview, previewNext, previewPrev } = useImage(props, emit);
97
+
98
+ openPreview(); // index = 0
99
+
100
+ previewNext(); // index = 1
101
+ expect(previewIndex.value).toBe(1);
102
+ expect(emit).toHaveBeenCalledWith('switch', 1);
103
+
104
+ previewNext(); // index = 2
105
+ expect(previewIndex.value).toBe(2);
106
+
107
+ previewNext(); // 循环回 0
108
+ expect(previewIndex.value).toBe(0);
109
+
110
+ previewPrev(); // 循环到 2
111
+ expect(previewIndex.value).toBe(2);
112
+ });
113
+
114
+ it('zoomIn 放大', () => {
115
+ const emit = createEmit();
116
+ const props = { ...defaultProps, previewSrcList: ['a.png'] };
117
+ const { previewScale, openPreview, zoomIn } = useImage(props, emit);
118
+
119
+ openPreview();
120
+ expect(previewScale.value).toBe(1);
121
+
122
+ zoomIn();
123
+ expect(previewScale.value).toBe(1.25);
124
+
125
+ // 最大 5
126
+ for (let i = 0; i < 20; i++) zoomIn();
127
+ expect(previewScale.value).toBe(5);
128
+ });
129
+
130
+ it('zoomOut 缩小', () => {
131
+ const emit = createEmit();
132
+ const props = { ...defaultProps, previewSrcList: ['a.png'] };
133
+ const { previewScale, openPreview, zoomOut } = useImage(props, emit);
134
+
135
+ openPreview();
136
+ zoomOut();
137
+ expect(previewScale.value).toBe(0.75);
138
+
139
+ // 最小 0.25
140
+ for (let i = 0; i < 20; i++) zoomOut();
141
+ expect(previewScale.value).toBe(0.25);
142
+ });
143
+
144
+ it('rotate 旋转 90°', () => {
145
+ const emit = createEmit();
146
+ const props = { ...defaultProps, previewSrcList: ['a.png'] };
147
+ const { previewRotate, openPreview, rotate } = useImage(props, emit);
148
+
149
+ openPreview();
150
+ rotate();
151
+ expect(previewRotate.value).toBe(90);
152
+
153
+ rotate();
154
+ expect(previewRotate.value).toBe(180);
155
+
156
+ rotate();
157
+ rotate();
158
+ expect(previewRotate.value).toBe(0); // 360 % 360 = 0
159
+ });
160
+
161
+ it('切换预览图片时重置缩放和旋转', () => {
162
+ const emit = createEmit();
163
+ const props = { ...defaultProps, src: 'a.png', previewSrcList: ['a.png', 'b.png'] };
164
+ const { previewScale, previewRotate, openPreview, zoomIn, rotate, previewNext } = useImage(props, emit);
165
+
166
+ openPreview();
167
+ zoomIn();
168
+ rotate();
169
+ expect(previewScale.value).toBe(1.25);
170
+ expect(previewRotate.value).toBe(90);
171
+
172
+ previewNext();
173
+ expect(previewScale.value).toBe(1);
174
+ expect(previewRotate.value).toBe(0);
175
+ });
176
+ });
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @description image api
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO, MPropType } from '../../types/props';
10
+ import { ImageProps } from './props';
11
+
12
+ export const props: MCOPO<ImageProps> = {
13
+ src: { type: String, required: true },
14
+ alt: { type: String, default: '' },
15
+ fit: {
16
+ type: String as MPropType<'contain' | 'cover' | 'fill' | 'none' | 'scale-down'>,
17
+ default: 'cover',
18
+ enum: ['contain', 'cover', 'fill', 'none', 'scale-down'],
19
+ },
20
+ width: { type: [String, Number], default: undefined },
21
+ height: { type: [String, Number], default: undefined },
22
+ lazy: { type: Boolean, default: false },
23
+ previewSrcList: { type: Array as MPropType<string[]>, default: () => [] },
24
+ zIndex: { type: Number, default: 2000 },
25
+ };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @description image core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+ import { useImage } from './useImage';
11
+
12
+ export const ImageCore = {
13
+ props,
14
+ useImage,
15
+ };
16
+
17
+ export type { ImageProps, ImageEvents } from './props';
18
+ export type { ImageLoadStatus } from './useImage';
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @description image props type
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * @name m-image
8
+ * @docDescription Image component with lazy loading and preview support.
9
+ * 图片组件,支持懒加载和全屏预览。
10
+ *
11
+ * 江湖的业务千篇一律,复杂的代码好几百行。
12
+ */
13
+
14
+ export declare type ImageProps = {
15
+ /**
16
+ * @description 图片地址
17
+ * @type string
18
+ */
19
+ src: string,
20
+ /**
21
+ * @description 图片 alt 描述
22
+ * @type string
23
+ * @default ''
24
+ */
25
+ alt?: string,
26
+ /**
27
+ * @description 图片填充模式,对应 object-fit
28
+ * @type string
29
+ * @default 'cover'
30
+ * @enum contain|cover|fill|none|scale-down
31
+ */
32
+ fit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down',
33
+ /**
34
+ * @description 是否开启懒加载
35
+ * @type boolean
36
+ * @default false
37
+ */
38
+ lazy?: boolean,
39
+ /**
40
+ * @description 开启预览的图片列表,传入后点击可全屏预览
41
+ * @type string[]
42
+ * @default []
43
+ */
44
+ previewSrcList?: string[],
45
+ /**
46
+ * @description 图片宽度
47
+ * @type string | number
48
+ */
49
+ width?: string | number,
50
+ /**
51
+ * @description 图片高度
52
+ * @type string | number
53
+ */
54
+ height?: string | number,
55
+ /**
56
+ * @description 预览弹层的 z-index
57
+ * @type number
58
+ * @default 2000
59
+ */
60
+ zIndex?: number,
61
+ };
62
+
63
+ export declare type ImageEvents = {
64
+ onLoad?: (e: Event) => void,
65
+ onError?: (e: Event) => void,
66
+ onSwitch?: (index: number) => void,
67
+ };
@@ -0,0 +1,119 @@
1
+ /**
2
+ * @description image hook
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { ref, watch, onMounted } from 'vue';
10
+ import { ImageProps } from './props';
11
+
12
+ /** 图片加载状态 */
13
+ export type ImageLoadStatus = 'loading' | 'loaded' | 'error';
14
+
15
+ export function useImage(
16
+ props: Required<ImageProps>,
17
+ emit: (event: 'load' | 'error' | 'switch', payload: Event | number) => void,
18
+ ) {
19
+ const status = ref<ImageLoadStatus>('loading');
20
+ // 预览弹层是否可见
21
+ const previewVisible = ref(false);
22
+ // 预览当前索引(在 previewSrcList 中的位置)
23
+ const previewIndex = ref(0);
24
+ // 预览缩放比例
25
+ const previewScale = ref(1);
26
+ // 预览旋转角度
27
+ const previewRotate = ref(0);
28
+
29
+ /** 重置加载状态(src 变化时调用) */
30
+ const reset = () => {
31
+ status.value = 'loading';
32
+ };
33
+
34
+ const handleLoad = (e: Event) => {
35
+ status.value = 'loaded';
36
+ emit('load', e);
37
+ };
38
+
39
+ const handleError = (e: Event) => {
40
+ status.value = 'error';
41
+ emit('error', e);
42
+ };
43
+
44
+ /** 打开全屏预览,定位到 src 在 previewSrcList 中的位置 */
45
+ const openPreview = () => {
46
+ if (!props.previewSrcList || props.previewSrcList.length === 0) { return; }
47
+ const idx = props.previewSrcList.indexOf(props.src);
48
+ previewIndex.value = idx >= 0 ? idx : 0;
49
+ previewScale.value = 1;
50
+ previewRotate.value = 0;
51
+ previewVisible.value = true;
52
+ };
53
+
54
+ const closePreview = () => {
55
+ previewVisible.value = false;
56
+ };
57
+
58
+ /** 预览切换到上一张 */
59
+ const previewPrev = () => {
60
+ const total = props.previewSrcList.length;
61
+ if (total === 0) { return; }
62
+ previewIndex.value = ((previewIndex.value - 1) + total) % total;
63
+ previewScale.value = 1;
64
+ previewRotate.value = 0;
65
+ emit('switch', previewIndex.value);
66
+ };
67
+
68
+ /** 预览切换到下一张 */
69
+ const previewNext = () => {
70
+ const total = props.previewSrcList.length;
71
+ if (total === 0) { return; }
72
+ previewIndex.value = (previewIndex.value + 1) % total;
73
+ previewScale.value = 1;
74
+ previewRotate.value = 0;
75
+ emit('switch', previewIndex.value);
76
+ };
77
+
78
+ /** 预览放大 */
79
+ const zoomIn = () => {
80
+ previewScale.value = Math.min(previewScale.value + 0.25, 5);
81
+ };
82
+
83
+ /** 预览缩小 */
84
+ const zoomOut = () => {
85
+ previewScale.value = Math.max(previewScale.value - 0.25, 0.25);
86
+ };
87
+
88
+ /** 顺时针旋转 90° */
89
+ const rotate = () => {
90
+ previewRotate.value = (previewRotate.value + 90) % 360;
91
+ };
92
+
93
+ // src 变化时重置加载状态
94
+ watch(() => props.src, reset);
95
+
96
+ onMounted(() => {
97
+ if (props.lazy) {
98
+ // 懒加载:交由 img 标签的 loading="lazy" 处理
99
+ status.value = 'loading';
100
+ }
101
+ });
102
+
103
+ return {
104
+ status,
105
+ previewVisible,
106
+ previewIndex,
107
+ previewScale,
108
+ previewRotate,
109
+ handleLoad,
110
+ handleError,
111
+ openPreview,
112
+ closePreview,
113
+ previewPrev,
114
+ previewNext,
115
+ zoomIn,
116
+ zoomOut,
117
+ rotate,
118
+ };
119
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @description input api
3
+ * @author 阿怪
4
+ * @date 2023/4/20 17:31
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO, MPropType } from '../../types/props';
10
+ import { InputProps } from './props';
11
+
12
+ export const props: MCOPO<InputProps> = {
13
+ type: { type: String, default: 'text' },
14
+ placeholder: { type: String, default: '' },
15
+ modelValue: { type: [String, Number], default: '' },
16
+ readonly: { type: Boolean, default: false },
17
+ disabled: { type: Boolean, default: false },
18
+ autofocus: { type: Boolean, default: false },
19
+ clearable: { type: Boolean, default: false },
20
+ size: { type: String as unknown as MPropType<NonNullable<InputProps['size']>>, default: undefined },
21
+ maxlength: { type: Number, default: undefined },
22
+ showWordLimit: { type: Boolean, default: false },
23
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description
3
+ * @author 阿怪
4
+ * @date 2024/11/29 10:24
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+ import { useInput } from './useInput';
11
+
12
+ export const InputCore = {
13
+ props,
14
+ useInput,
15
+ };
16
+
17
+ export type { InputProps } from './props';
@@ -0,0 +1,19 @@
1
+ :root{
2
+ --m-input-w: 244px;
3
+ --m-color-disabled: #DBDADD;
4
+ }
5
+
6
+ .m-input{
7
+ box-sizing: content-box;
8
+ width: var(--m-input-w);
9
+ height: 31px;
10
+ line-height: 31px;
11
+
12
+ &.m-input-disabled {
13
+
14
+ .m-input-inner, .m-textarea-inner {
15
+ background-color: var(--m-color-disabled) !important;
16
+ }
17
+
18
+ }
19
+ }
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @description input api type
3
+ * @author 阿怪
4
+ * @date 2022/4/6 10:50 PM
5
+ * @version v1.0.0
6
+ *
7
+ * @name m-input
8
+ * @docDescription Input component with shuimo-ui style.
9
+ * 水墨组件的输入组件。
10
+ * @docUrl https://shuimo.design/input
11
+ *
12
+ * 江湖的业务千篇一律,复杂的代码好几百行。
13
+ */
14
+ import { HTMLElementEvent } from '../../types/template';
15
+ import { KineSize } from '../../types/props';
16
+
17
+ export declare type InputProps = {
18
+ /**
19
+ * @description input type. 输入框类型
20
+ * @type string
21
+ * @default input
22
+ * @enum input|textarea
23
+ */
24
+ type?: string,
25
+ /**
26
+ * @description input placeholder. 提示语
27
+ * @type string
28
+ * @default ''
29
+ */
30
+ placeholder?: string,
31
+ /**
32
+ * @description input value. 输入框绑定值
33
+ * @type string|number
34
+ * @default ''
35
+ */
36
+ modelValue?: string | number,
37
+ /**
38
+ * @description input readonly. 是否只读
39
+ * @type boolean
40
+ * @default false
41
+ */
42
+ readonly?: boolean,
43
+ /**
44
+ * @description input disabled. 是否禁用
45
+ * @type boolean
46
+ * @default false
47
+ */
48
+ disabled?: boolean
49
+ /**
50
+ * @description input autofocus. 是否自动聚焦
51
+ * @type boolean
52
+ * @default false
53
+ */
54
+ autofocus?: boolean,
55
+ /**
56
+ * @description whether to show clear button. 是否可清空
57
+ * @type boolean
58
+ * @default false
59
+ */
60
+ clearable?: boolean,
61
+ /**
62
+ * @description input size. 输入框尺寸
63
+ * @type KineSize
64
+ * @default undefined
65
+ */
66
+ size?: KineSize,
67
+ /**
68
+ * @description max character length. 最大输入长度
69
+ * @type number
70
+ * @default undefined
71
+ */
72
+ maxlength?: number,
73
+ /**
74
+ * @description whether to show word count. 是否显示字数统计
75
+ * @type boolean
76
+ * @default false
77
+ */
78
+ showWordLimit?: boolean
79
+ };
80
+
81
+ export declare type InputEvents = {
82
+ onInput?: (e: HTMLElementEvent<HTMLInputElement>) => void
83
+ onFocus?: (e: FocusEvent) => void
84
+ onBlur?: (e: FocusEvent) => void
85
+ };
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @description
3
+ * @author 阿怪
4
+ * @date 2024/11/29 10:15
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+
10
+ import { HTMLElementEvent } from '../../types/template';
11
+ import { type HookContext } from '../../types/hook';
12
+
13
+
14
+ export function useInput<
15
+ Props extends Record<string, any>,
16
+ >(props: Props, ctx: HookContext) {
17
+
18
+ const isInput = props.type !== 'textarea';
19
+ const inputType = isInput ? 'input' : 'textarea';
20
+ const inputClass = isInput ? 'm-input-inner' : 'm-textarea-inner';
21
+ const rowInfo = isInput ? {} : { rows: 10 };
22
+
23
+ const baseProps = {
24
+ autofocus: props.autofocus,
25
+ value: props.modelValue,
26
+ placeholder: props.placeholder,
27
+ disabled: props.disabled,
28
+ type: props.type,
29
+ readOnly: props.readonly,
30
+ maxLength: props.maxlength,
31
+ }
32
+
33
+ const onInput = (e: HTMLElementEvent<HTMLInputElement>)=>{
34
+ ctx.emit('update:modelValue', e.target.value);
35
+ ctx.emit('input', e.target.value);
36
+ }
37
+
38
+ const onFocus = (e: FocusEvent)=>{
39
+ ctx.emit('focus', e);
40
+ }
41
+
42
+ const onBlur = (e: FocusEvent)=>{
43
+ ctx.emit('blur', e);
44
+ }
45
+
46
+ const onClear = () => {
47
+ ctx.emit('update:modelValue', '');
48
+ ctx.emit('input', '');
49
+ ctx.emit('clear');
50
+ }
51
+
52
+ return {
53
+ baseProps,
54
+ inputType,
55
+ inputClass,
56
+ rowInfo,
57
+ onInput,
58
+ onFocus,
59
+ onBlur,
60
+ onClear,
61
+ }
62
+
63
+ }