@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,40 @@
1
+ /**
2
+ * @description loading api type
3
+ * @author 阿怪
4
+ * @date 2026/2/27
5
+ * @version v1.1.0
6
+ *
7
+ * @name k-loading
8
+ * @docDescription Loading component with Phosphor sci-fi theme.
9
+ * Kine Design 加载组件。
10
+ *
11
+ * 江湖的业务千篇一律,复杂的代码好几百行。
12
+ */
13
+
14
+ import { KineSize } from '../../types/props';
15
+
16
+ export declare type LoadingProps = {
17
+ /**
18
+ * @description 是否显示 loading
19
+ * @type boolean
20
+ * @default false
21
+ */
22
+ modelValue?: boolean;
23
+ /**
24
+ * @description 尺寸
25
+ * @type 'large' | 'medium' | 'small'
26
+ * @default 'medium'
27
+ */
28
+ size?: KineSize;
29
+ /**
30
+ * @description 是否显示遮罩层(覆盖父元素)
31
+ * @type boolean
32
+ * @default false
33
+ */
34
+ mask?: boolean;
35
+ /**
36
+ * @description 加载提示文字
37
+ * @type string
38
+ */
39
+ text?: string;
40
+ };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @description popover 运行时 props
3
+ * @author 阿怪
4
+ * @date 2026/2/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { PopoverProps } from './props';
10
+ import { MCOPO, MPropType } from '../../types/props';
11
+ import { Placement } from '../../../compositions/popper/usePopper.ts';
12
+
13
+ export const props: MCOPO<PopoverProps> = {
14
+ placement: {
15
+ type: String as MPropType<Placement>,
16
+ default: 'bottom',
17
+ },
18
+ mountRender: { type: Boolean, default: false },
19
+ disableClickAway: { type: Boolean, default: false },
20
+ hover: { type: Boolean, default: false },
21
+ show: { type: Boolean, default: null },
22
+ content: { type: String, default: '' },
23
+ popper: {
24
+ type: Object, default: () => ({}),
25
+ },
26
+ teleport: { type: [Object, Boolean], default: undefined },
27
+ title: { type: String, default: undefined },
28
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description popover core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+ import { usePopover } from './usePopover';
11
+
12
+ export const PopoverCore = {
13
+ props,
14
+ usePopover,
15
+ };
16
+
17
+ export type { PopoverProps } from './props';
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @description popover 类型定义
3
+ * @author 阿怪
4
+ * @date 2026/2/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * @name m-popover
8
+ * @docDescription Popover component.
9
+ * 弹出框组件。
10
+ * @docUrl https://shuimo.design/popover
11
+ *
12
+ * 江湖的业务千篇一律,复杂的代码好几百行。
13
+ */
14
+ import { Placement, PopperConfig } from '../../../compositions/popper/usePopper.ts';
15
+ import { MTeleportProps } from '../../../types/common/common';
16
+
17
+
18
+ export type PopoverProps = {
19
+ /**
20
+ * @description 弹出框位置
21
+ * @type Placement
22
+ * @default bottom
23
+ */
24
+ placement?: Placement,
25
+ /**
26
+ * @description 挂载时是否渲染弹出内容
27
+ * @type boolean
28
+ * @default false
29
+ */
30
+ mountRender?: boolean,
31
+ /**
32
+ * @description 禁用点击外部自动关闭
33
+ * @type boolean
34
+ * @default false
35
+ */
36
+ disableClickAway?: boolean,
37
+ /**
38
+ * @description 简单文本内容可通过 prop 传入
39
+ * @type any
40
+ * @default ''
41
+ */
42
+ content?: any,
43
+ /**
44
+ * @description 是否通过 hover 触发
45
+ * @type boolean
46
+ * @default false
47
+ */
48
+ hover?: boolean,
49
+ /**
50
+ * @description 是否显示
51
+ * @type boolean
52
+ * @default false
53
+ */
54
+ show?: boolean,
55
+ /**
56
+ * @description floating-ui 配置项,参考 https://floating-ui.com/
57
+ * @type PopperConfig
58
+ * @default {}
59
+ */
60
+ popper?: PopperConfig,
61
+ /**
62
+ * @description 传送门配置
63
+ * @type MTeleportProps | boolean
64
+ * @default undefined
65
+ */
66
+ teleport?: MTeleportProps | undefined | boolean,
67
+ /**
68
+ * @description 气泡标题,传入时在内容上方渲染标题行
69
+ * @type string
70
+ * @default undefined
71
+ */
72
+ title?: string,
73
+ };
@@ -0,0 +1,193 @@
1
+ /**
2
+ * @description popover composable
3
+ * @author 阿怪
4
+ * @date 2026/2/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { Placement, PopperConfig, PositionStyle, usePopper } from '../../../compositions/popper/usePopper.ts';
10
+ import useClickAway from '../../../compositions/popper/useClickAway';
11
+ import { PopoverProps } from './props';
12
+ import { onBeforeUnmount, onMounted, ref, type Ref, shallowRef } from 'vue';
13
+ import { type HookContext } from '../../types/hook';
14
+
15
+
16
+ export type IPopper = ReturnType<typeof usePopper>;
17
+
18
+ /**
19
+ * Popover 实例,管理定位、显示/隐藏状态
20
+ */
21
+ export class PopoverImpl {
22
+
23
+ protected _active: HTMLElement;
24
+ protected _content: HTMLElement;
25
+ protected _arrow: HTMLElement | undefined;
26
+ popperInstance: IPopper;
27
+ style: Ref;
28
+ arrowStyle: Ref;
29
+ placement: Ref;
30
+ visible: boolean = false;
31
+ onShow?: Function;
32
+ onHide?: Function;
33
+
34
+ constructor(
35
+ val: { style: Ref, arrowStyle: Ref, placement: Ref, show: boolean },
36
+ active: HTMLElement,
37
+ content: HTMLElement,
38
+ arrow?: HTMLElement,
39
+ config?: PopperConfig,
40
+ lifecycle?: {
41
+ onShow?: Function,
42
+ onHide?: Function
43
+ },
44
+ ) {
45
+ if (!content) { throw new Error('MPopover: content is required'); }
46
+ if (!active) { throw new Error('MPopover: active is required'); }
47
+
48
+ this._active = active;
49
+ this._content = content;
50
+ this._arrow = arrow;
51
+ this.popperInstance = usePopper(this._active, this._content,
52
+ (positionStyle: PositionStyle) => this.update(positionStyle), this._arrow, config);
53
+ this.style = val.style;
54
+ this.arrowStyle = val.arrowStyle;
55
+ this.placement = val.placement;
56
+ this.visible = val.show;
57
+ this.onShow = lifecycle?.onShow;
58
+ this.onHide = lifecycle?.onHide;
59
+ }
60
+
61
+ get content() {
62
+ return this._content;
63
+ }
64
+
65
+ async show() {
66
+ this.style.value = { display: 'block', opacity: '0' };
67
+ this.arrowStyle.value = { display: 'block', opacity: '0' };
68
+ this.visible = true;
69
+ await this.popperInstance.getPositionStyle();
70
+ this.onShow?.();
71
+ }
72
+
73
+ update(positionStyle: PositionStyle) {
74
+ if (!this.visible) {
75
+ this.hide();
76
+ return;
77
+ }
78
+ this.style.value = positionStyle.style;
79
+ this.arrowStyle.value = positionStyle.arrowStyle;
80
+ this.placement.value = positionStyle.placement;
81
+ }
82
+
83
+ hide() {
84
+ this.style.value = undefined;
85
+ this.arrowStyle.value = undefined;
86
+ this.visible = false;
87
+ this.onHide?.();
88
+ }
89
+
90
+ async toggle() {
91
+ if (this.visible) {
92
+ this.hide();
93
+ } else {
94
+ await this.show();
95
+ }
96
+ }
97
+
98
+ destroy() {
99
+ this.popperInstance?.clear?.();
100
+ this.visible = false;
101
+ this.onShow = undefined;
102
+ this.onHide = undefined;
103
+ }
104
+ }
105
+
106
+
107
+ export function usePopover(props: Required<PopoverProps>, ctx: HookContext) {
108
+ const style = ref();
109
+ const arrowStyle = ref();
110
+ const placement = ref<Placement>(props.placement);
111
+ let instance: PopoverImpl | null = null;
112
+ let clickAwayInstance: ReturnType<typeof useClickAway>;
113
+
114
+ const popperInstance = shallowRef<PopoverImpl>();
115
+
116
+ const popoverRef = ref<HTMLElement>();
117
+ const contentRef = ref<HTMLElement>();
118
+ const arrowRef = ref<HTMLElement>();
119
+
120
+ const createPopover = (
121
+ active: HTMLElement,
122
+ content: HTMLElement,
123
+ arrow?: HTMLElement,
124
+ config?: PopperConfig,
125
+ ) => {
126
+ instance = new PopoverImpl(
127
+ { style, arrowStyle, placement, show: props.show },
128
+ active,
129
+ content,
130
+ arrow,
131
+ config,
132
+ {
133
+ onShow: () => {
134
+ clickAwayInstance?.add();
135
+ ctx.emit('update:show', true);
136
+ },
137
+ onHide: () => {
138
+ clickAwayInstance?.remove();
139
+ ctx.emit('update:show', false);
140
+ },
141
+ });
142
+ return instance;
143
+ };
144
+
145
+ const popoverEnter = () => {
146
+ if (props.hover) {
147
+ instance?.show();
148
+ }
149
+ };
150
+ const popoverLeave = () => {
151
+ if (props.hover) {
152
+ instance?.hide();
153
+ }
154
+ };
155
+
156
+ onMounted(() => {
157
+ if (!popoverRef.value || !contentRef.value) {
158
+ return;
159
+ }
160
+ popperInstance.value = createPopover(popoverRef.value, contentRef.value, arrowRef.value, {
161
+ ...props.popper,
162
+ placement: props.placement,
163
+ });
164
+
165
+ if (props.disableClickAway) {
166
+ return;
167
+ }
168
+
169
+ clickAwayInstance = useClickAway({
170
+ target: () => instance?.content?.parentElement,
171
+ handler: () => {
172
+ instance?.hide();
173
+ },
174
+ });
175
+ });
176
+
177
+ onBeforeUnmount(() => {
178
+ if (clickAwayInstance) {
179
+ const { onBeforeUnmount } = clickAwayInstance;
180
+ onBeforeUnmount();
181
+ }
182
+ instance?.destroy();
183
+ });
184
+
185
+ return {
186
+ popoverEnter,
187
+ popoverLeave,
188
+ popoverRef, contentRef, arrowRef,
189
+ popperInstance,
190
+ style, arrowStyle,
191
+ placement,
192
+ };
193
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @description progress api
3
+ * @author 阿怪
4
+ * @date 2026/2/27
5
+ * @version v1.1.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO, MPropType } from '../../types/props';
10
+ import { ProgressProps, ProgressStatus, ProgressType } from './props';
11
+
12
+ export const props: MCOPO<ProgressProps> = {
13
+ type: { type: String as unknown as MPropType<ProgressType>, default: 'line' },
14
+ value: { type: Number, default: 0 },
15
+ max: { type: Number, default: 100 },
16
+ showInfo: { type: Boolean, default: true },
17
+ status: { type: String as unknown as MPropType<ProgressStatus>, default: 'default' },
18
+ strokeWidth: { type: Number, default: 4 },
19
+ width: { type: Number, default: 80 },
20
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description progress core
3
+ * @author 阿怪
4
+ * @date 2025/02/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+ import { useProgress } from './useProgress';
11
+
12
+ export const ProgressCore = {
13
+ props,
14
+ useProgress,
15
+ };
16
+
17
+ export type { ProgressProps, ProgressStatus } from './props';
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @description progress props type
3
+ * @author 阿怪
4
+ * @date 2026/2/27
5
+ * @version v1.1.0
6
+ *
7
+ * @name m-progress
8
+ * @docDescription Progress component.
9
+ * 进度条组件。
10
+ * @docUrl https://shuimo.design/progress
11
+ *
12
+ * 江湖的业务千篇一律,复杂的代码好几百行。
13
+ */
14
+
15
+ export declare type ProgressStatus = 'default' | 'success' | 'warning' | 'danger';
16
+
17
+ export declare type ProgressType = 'line' | 'circle';
18
+
19
+ export declare type ProgressProps = {
20
+ /**
21
+ * @description progress type. 进度条类型:line 线性 | circle 环形
22
+ * @type ProgressType
23
+ * @default 'line'
24
+ */
25
+ type?: ProgressType,
26
+ /**
27
+ * @description progress value
28
+ * 进度条的值(0 ~ max)
29
+ * @type number
30
+ * @default 0
31
+ */
32
+ value?: number,
33
+ /**
34
+ * @description progress value max
35
+ * 进度条最大值
36
+ * @type number
37
+ * @default 100
38
+ */
39
+ max?: number,
40
+ /**
41
+ * @description display value
42
+ * 是否显示进度值
43
+ * @type boolean
44
+ * @default true
45
+ */
46
+ showInfo?: boolean,
47
+ /**
48
+ * @description status color variant
49
+ * 状态颜色变体:default | success | warning | danger
50
+ * @type ProgressStatus
51
+ * @default 'default'
52
+ */
53
+ status?: ProgressStatus,
54
+ /**
55
+ * @description stroke width in px
56
+ * 进度条粗细(px)
57
+ * @type number
58
+ * @default 4
59
+ */
60
+ strokeWidth?: number,
61
+ /**
62
+ * @description circle diameter in px (only for type='circle')
63
+ * 环形进度条直径(px),仅 type='circle' 时生效
64
+ * @type number
65
+ * @default 80
66
+ */
67
+ width?: number,
68
+ };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @description progress hook
3
+ * @author 阿怪
4
+ * @date 2025/02/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { computed } from 'vue';
10
+ import { ProgressProps } from './props';
11
+
12
+ /**
13
+ * @description 清除多余小数位,保留两位小数
14
+ */
15
+ const clearZero = (num: number) => {
16
+ const str = num.toString();
17
+ const index = str.indexOf('.');
18
+ if (index === -1) { return num; }
19
+ return str.slice(0, index + 3);
20
+ };
21
+
22
+ export function useProgress(props: Required<ProgressProps>) {
23
+ const percentage = computed(() => clearZero((props.value * 100 / props.max)));
24
+
25
+ return {
26
+ percentage,
27
+ };
28
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @description radio api
3
+ * @author 阿怪
4
+ * @date 2025/02/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO } from '../../types/props';
10
+ import { RadioProps } from './props';
11
+
12
+ export const props: MCOPO<RadioProps> = {
13
+ label: { type: [String, Number], default: '' },
14
+ name: { type: String, default: undefined },
15
+ checked: { type: Boolean, default: undefined },
16
+ value: { type: [String, Number], default: '' },
17
+ modelValue: { type: null, default: '' },
18
+ disabled: { type: Boolean, default: false },
19
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @description radio core
3
+ * @author 阿怪
4
+ * @date 2025/02/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+ import { initChecked, getNewModelValue, createRadioId } from './useRadio';
11
+
12
+ export const RadioCore = {
13
+ props,
14
+ initChecked,
15
+ getNewModelValue,
16
+ createRadioId,
17
+ };
18
+
19
+ export { initChecked, getNewModelValue, createRadioId } from './useRadio';
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @description radio props type
3
+ * @author 阿怪
4
+ * @date 2025/02/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * @name m-radio
8
+ * @docDescription Radio component.
9
+ * 单选组件。
10
+ * @docUrl https://shuimo.design/radio
11
+ *
12
+ * 江湖的业务千篇一律,复杂的代码好几百行。
13
+ */
14
+
15
+ export declare type RadioProps = {
16
+ /**
17
+ * @description radio label
18
+ * 单选框的标签值
19
+ * @type string | number
20
+ * @default ''
21
+ */
22
+ label?: string | number,
23
+ /**
24
+ * @description radio name
25
+ * 单选框的name值
26
+ * @type string | undefined
27
+ * @default undefined
28
+ */
29
+ name?: string,
30
+ /**
31
+ * @description radio checked
32
+ * 是否选中
33
+ * @default undefined
34
+ */
35
+ checked?: boolean | undefined | null,
36
+ /**
37
+ * @description radio value
38
+ * 单选框的值
39
+ * @default undefined
40
+ */
41
+ value?: string | number,
42
+ /**
43
+ * @description value
44
+ * 绑定值
45
+ * @type string | number | boolean
46
+ * @default ''
47
+ */
48
+ modelValue?: string | number | boolean,
49
+ /**
50
+ * @description radio disabled
51
+ * 是否禁用
52
+ * @default false
53
+ */
54
+ disabled?: boolean,
55
+ };
56
+
57
+ export declare type RadioEvents = {
58
+ onClick?: (e: MouseEvent, value?: string | number) => void
59
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @description radio hook
3
+ * @author 阿怪
4
+ * @date 2025/02/25 00:00
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+
10
+ export { initChecked, getNewModelValue } from '../../../compositions/input/useBooleanInput';
11
+ export const createRadioId = () => `m-radio-${Math.random().toString(36).substring(2)}`;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @description rate api
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO } from '../../types/props';
10
+ import { RateProps } from './props';
11
+
12
+ export const props: MCOPO<RateProps> = {
13
+ modelValue: { type: Number, default: 0 },
14
+ count: { type: Number, default: 5 },
15
+ allowHalf: { type: Boolean, default: false },
16
+ readonly: { type: Boolean, default: false },
17
+ disabled: { type: Boolean, default: false },
18
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description rate core
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+ import { useRate } from './useRate';
11
+
12
+ export const RateCore = {
13
+ props,
14
+ useRate,
15
+ };
16
+
17
+ export type { RateProps } from './props';
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @description rate props type
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * @name k-rate
8
+ * @docDescription Rate(评分)组件。
9
+ *
10
+ * 江湖的业务千篇一律,复杂的代码好几百行。
11
+ */
12
+
13
+ export declare type RateProps = {
14
+ /**
15
+ * @description 当前评分值(v-model)
16
+ * @type number
17
+ * @default 0
18
+ */
19
+ modelValue?: number,
20
+ /**
21
+ * @description 星星总数
22
+ * @type number
23
+ * @default 5
24
+ */
25
+ count?: number,
26
+ /**
27
+ * @description 是否允许半星
28
+ * @type boolean
29
+ * @default false
30
+ */
31
+ allowHalf?: boolean,
32
+ /**
33
+ * @description 是否只读(仅展示,不可交互,不灰显)
34
+ * @type boolean
35
+ * @default false
36
+ */
37
+ readonly?: boolean,
38
+ /**
39
+ * @description 是否禁用
40
+ * @type boolean
41
+ * @default false
42
+ */
43
+ disabled?: boolean,
44
+ };
45
+
46
+ export declare type RateEmits = {
47
+ 'onUpdate:modelValue'?: (value: number) => void,
48
+ onChange?: (value: number) => void,
49
+ };