@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 breadcrumb core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+
11
+ export const BreadcrumbCore = {
12
+ props,
13
+ };
14
+
15
+ export type { BreadcrumbProps, BreadcrumbItemOption } from './props';
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @description breadcrumb props 类型定义
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+
10
+ /**
11
+ * 面包屑单项数据结构
12
+ */
13
+ export declare type BreadcrumbItemOption = {
14
+ /**
15
+ * @description 显示文本
16
+ * @type string
17
+ */
18
+ label: string;
19
+ /**
20
+ * @description 跳转链接,有值时渲染为 <a> 标签
21
+ * @type string
22
+ */
23
+ href?: string;
24
+ /**
25
+ * @description 是否禁用
26
+ * @default false
27
+ * @type boolean
28
+ */
29
+ disabled?: boolean;
30
+ };
31
+
32
+ export declare type BreadcrumbProps = {
33
+ /**
34
+ * @description 分隔符
35
+ * @default '/'
36
+ * @type string
37
+ */
38
+ separator?: string;
39
+ /**
40
+ * @description 面包屑数据项列表
41
+ * @default []
42
+ * @type BreadcrumbItemOption[]
43
+ */
44
+ items?: BreadcrumbItemOption[];
45
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @description descriptions 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 { DescriptionsProps, DescriptionsItemProps } from './props';
11
+
12
+ export const descriptionsProps: MCOPO<DescriptionsProps> = {
13
+ title: { type: String, default: '' },
14
+ column: { type: Number, default: 3 },
15
+ direction: { type: String as MPropType<'horizontal' | 'vertical'>, default: 'horizontal' },
16
+ border: { type: Boolean, default: false },
17
+ size: { type: String as MPropType<'small' | 'medium' | 'large'>, default: 'medium' },
18
+ };
19
+
20
+ export const descriptionsItemProps: MCOPO<DescriptionsItemProps> = {
21
+ label: { type: String, required: true },
22
+ span: { type: Number, default: 1 },
23
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @description descriptions core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { descriptionsProps, descriptionsItemProps } from './api';
10
+
11
+ export const DescriptionsCore = {
12
+ descriptionsProps,
13
+ descriptionsItemProps,
14
+ };
15
+
16
+ export type { DescriptionsProps, DescriptionsItemProps } from './props';
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @description descriptions api type
3
+ * @author 阿怪
4
+ * @date 2026/2/26
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+
10
+ export declare type DescriptionsProps = {
11
+ /**
12
+ * @description 标题文本
13
+ * @type string
14
+ */
15
+ title?: string,
16
+ /**
17
+ * @description 每行列数
18
+ * @type number
19
+ * @default 3
20
+ */
21
+ column?: number,
22
+ /**
23
+ * @description 标签与值的布局方向
24
+ * @type 'horizontal' | 'vertical'
25
+ * @default 'horizontal'
26
+ */
27
+ direction?: 'horizontal' | 'vertical',
28
+ /**
29
+ * @description 是否显示边框
30
+ * @type boolean
31
+ * @default false
32
+ */
33
+ border?: boolean,
34
+ /**
35
+ * @description 尺寸,影响内边距
36
+ * @type 'small' | 'medium' | 'large'
37
+ * @default 'medium'
38
+ */
39
+ size?: 'small' | 'medium' | 'large',
40
+ };
41
+
42
+ export declare type DescriptionsItemProps = {
43
+ /**
44
+ * @description 标签文本
45
+ * @type string
46
+ */
47
+ label: string,
48
+ /**
49
+ * @description 列跨度
50
+ * @type number
51
+ * @default 1
52
+ */
53
+ span?: number,
54
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @description form 运行时 props
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO } from '../../types/props';
10
+ import { FormProps, FormItemProps } from './props';
11
+
12
+ export const formProps: MCOPO<FormProps> = {
13
+ inline: { type: Boolean, default: false },
14
+ submit: { type: Boolean, default: false },
15
+ model: { type: Object, default: undefined },
16
+ labelWidth: { type: String, default: undefined },
17
+ };
18
+
19
+ export const formItemProps: MCOPO<FormItemProps> = {
20
+ label: { type: String, default: '' },
21
+ prop: { type: String, default: '' },
22
+ required: { type: Boolean, default: false },
23
+ };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @description form core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { formProps, formItemProps } from './api';
10
+
11
+ /**
12
+ * FormCore 使用包装对象导出,避免 formProps / formItemProps 两个 props 名称与其他组件冲突。
13
+ * headless / lib 均通过解构 FormCore 取用。
14
+ */
15
+ export const FormCore = {
16
+ props: formProps,
17
+ formItemProps,
18
+ };
19
+
20
+ export type { FormProps, FormItemProps } from './props';
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @description form 组件类型定义
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+
10
+ /**
11
+ * Form 组件 Props 类型
12
+ */
13
+ export declare type FormProps = {
14
+ /**
15
+ * @description form 是否行内显示
16
+ * @type boolean
17
+ * @default false
18
+ */
19
+ inline?: boolean;
20
+ /**
21
+ * @description form 是否允许默认提交行为
22
+ * @type boolean
23
+ * @default false
24
+ */
25
+ submit?: boolean;
26
+ /**
27
+ * @description 表单数据对象
28
+ * @type Record<string, any>
29
+ */
30
+ model?: Record<string, unknown>;
31
+ /**
32
+ * @description 标签宽度,如 '80px'
33
+ * @type string
34
+ */
35
+ labelWidth?: string;
36
+ };
37
+
38
+ /**
39
+ * FormItem 组件 Props 类型
40
+ */
41
+ export declare type FormItemProps = {
42
+ /**
43
+ * @description 表单项标题
44
+ * @type string
45
+ * @default ''
46
+ */
47
+ label?: string;
48
+ /**
49
+ * @description 表单内置 label 的原生 for/prop 属性
50
+ * @type string
51
+ * @default ''
52
+ */
53
+ prop?: string;
54
+ /**
55
+ * @description 是否必填,显示红色星号
56
+ * @type boolean
57
+ * @default false
58
+ */
59
+ required?: boolean;
60
+ };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @description grid 运行时 props
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO, MPropType } from '../../types/props';
10
+ import { GridProps } from './props';
11
+
12
+ export const props: MCOPO<GridProps> = {
13
+ h: { type: Number, default: undefined },
14
+ w: { type: Number, default: undefined },
15
+ gap: { type: [Number, String], default: 0 },
16
+ colGap: { type: [Number, String], default: undefined },
17
+ rowGap: { type: [Number, String], default: undefined },
18
+ direction: { type: String as MPropType<'column' | 'row'>, default: 'row' },
19
+ cols: { type: Number, default: undefined },
20
+ };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @description grid core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+
11
+ export const GridCore = {
12
+ props,
13
+ };
14
+
15
+ export type { GridProps } from './props';
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @description grid props 类型定义
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+
10
+ export declare type GridProps = {
11
+ /**
12
+ * @description 网格高度
13
+ * @type number
14
+ */
15
+ h?: number;
16
+ /**
17
+ * @description 网格宽度
18
+ * @type number
19
+ */
20
+ w?: number;
21
+ /**
22
+ * @description 通用间距,同时作用于行列
23
+ * @default 0
24
+ * @type number | string
25
+ */
26
+ gap?: number | string;
27
+ /**
28
+ * @description 列间距,优先级高于 gap
29
+ * @type number | string
30
+ */
31
+ colGap?: number | string;
32
+ /**
33
+ * @description 行间距,优先级高于 gap
34
+ * @type number | string
35
+ */
36
+ rowGap?: number | string;
37
+ /**
38
+ * @description 子元素排列方向
39
+ * @default 'row'
40
+ * @type 'column' | 'row'
41
+ */
42
+ direction?: 'column' | 'row';
43
+ /**
44
+ * @description 列数,设置后使用 CSS grid 布局,grid-template-columns: repeat(cols, 1fr)
45
+ * @type number
46
+ */
47
+ cols?: number;
48
+ };
@@ -0,0 +1,157 @@
1
+ /**
2
+ * @description useMenu 测试
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 { useMenu } from '../useMenu';
11
+
12
+ const SAMPLE_DATA = [
13
+ {
14
+ key: 'home', label: '首页',
15
+ },
16
+ {
17
+ key: 'system', label: '系统管理', children: [
18
+ { key: 'user', label: '用户管理' },
19
+ { key: 'role', label: '角色管理' },
20
+ ],
21
+ },
22
+ {
23
+ key: 'about', label: '关于',
24
+ },
25
+ ];
26
+
27
+ describe('useMenu', () => {
28
+ it('initNodes 构建节点树', () => {
29
+ const { nodesRef, nodeMap } = useMenu({ data: SAMPLE_DATA });
30
+
31
+ expect(nodesRef.value).toHaveLength(3);
32
+ expect(nodeMap.size).toBe(5); // 3 + 2 children
33
+ });
34
+
35
+ it('根节点 isRoot=true,子节点有 parent', () => {
36
+ const { nodeMap } = useMenu({ data: SAMPLE_DATA });
37
+
38
+ expect(nodeMap.get('home')!.isRoot).toBe(true);
39
+ expect(nodeMap.get('user')!.isRoot).toBe(false);
40
+ expect(nodeMap.get('user')!.parent).toBe(nodeMap.get('system'));
41
+ });
42
+
43
+ it('defaultExpandAll 展开所有节点', () => {
44
+ const { nodeMap } = useMenu({ data: SAMPLE_DATA, defaultExpandAll: true });
45
+ expect(nodeMap.get('system')!.expand).toBe(true);
46
+ });
47
+
48
+ it('默认不展开', () => {
49
+ const { nodeMap } = useMenu({ data: SAMPLE_DATA });
50
+ expect(nodeMap.get('system')!.expand).toBe(false);
51
+ });
52
+
53
+ it('toggleExpand 切换展开', () => {
54
+ const { nodeMap, toggleExpand } = useMenu({ data: SAMPLE_DATA });
55
+ const node = nodeMap.get('system')!;
56
+
57
+ expect(node.expand).toBe(false);
58
+ toggleExpand(node);
59
+ expect(node.expand).toBe(true);
60
+ toggleExpand(node);
61
+ expect(node.expand).toBe(false);
62
+ });
63
+
64
+ it('setActive 激活节点并取消其他激活', () => {
65
+ const emit = vi.fn();
66
+ const { nodeMap, setActive } = useMenu({ data: SAMPLE_DATA }, emit);
67
+
68
+ setActive(nodeMap.get('home')!);
69
+ expect(nodeMap.get('home')!.isActive).toBe(true);
70
+ expect(emit).toHaveBeenCalledWith('update:active', 'home');
71
+
72
+ setActive(nodeMap.get('about')!);
73
+ expect(nodeMap.get('home')!.isActive).toBe(false);
74
+ expect(nodeMap.get('about')!.isActive).toBe(true);
75
+ });
76
+
77
+ it('受控 active 初始化', () => {
78
+ const { nodeMap } = useMenu({ data: SAMPLE_DATA, active: 'about' });
79
+ expect(nodeMap.get('about')!.isActive).toBe(true);
80
+ expect(nodeMap.get('home')!.isActive).toBe(false);
81
+ });
82
+
83
+ it('toggleChecked 切换选中', () => {
84
+ const { nodeMap, toggleChecked } = useMenu({ data: SAMPLE_DATA });
85
+ const node = nodeMap.get('user')!;
86
+
87
+ toggleChecked(node, true);
88
+ expect(node.checked).toBe(true);
89
+ expect(node.indeterminate).toBe(false);
90
+
91
+ toggleChecked(node, false);
92
+ expect(node.checked).toBe(false);
93
+ });
94
+
95
+ it('getCheckedKeys 获取选中 key', () => {
96
+ const { nodeMap, toggleChecked, getCheckedKeys } = useMenu({ data: SAMPLE_DATA });
97
+
98
+ toggleChecked(nodeMap.get('user')!, true);
99
+ toggleChecked(nodeMap.get('about')!, true);
100
+
101
+ const keys = getCheckedKeys();
102
+ expect(keys).toContain('user');
103
+ expect(keys).toContain('about');
104
+ expect(keys).toHaveLength(2);
105
+ });
106
+
107
+ it('半选节点不计入 getCheckedKeys', () => {
108
+ const { nodeMap, getCheckedKeys } = useMenu({ data: SAMPLE_DATA });
109
+ const node = nodeMap.get('system')!;
110
+ node.indeterminate = true;
111
+ node.checked = false;
112
+
113
+ expect(getCheckedKeys()).not.toContain('system');
114
+ });
115
+
116
+ it('getNodesByKeys 批量获取节点', () => {
117
+ const { getNodesByKeys } = useMenu({ data: SAMPLE_DATA });
118
+ const nodes = getNodesByKeys(['home', 'user']);
119
+ expect(nodes).toHaveLength(2);
120
+ });
121
+
122
+ it('getNodesByKeys 过滤不存在的 key', () => {
123
+ const { getNodesByKeys } = useMenu({ data: SAMPLE_DATA });
124
+ const nodes = getNodesByKeys(['home', 'nonexistent']);
125
+ expect(nodes).toHaveLength(1);
126
+ });
127
+
128
+ it('checkedKeys 初始化选中', () => {
129
+ const { nodeMap } = useMenu({ data: SAMPLE_DATA, checkedKeys: ['user', 'about'] });
130
+ expect(nodeMap.get('user')!.checked).toBe(true);
131
+ expect(nodeMap.get('about')!.checked).toBe(true);
132
+ expect(nodeMap.get('home')!.checked).toBe(false);
133
+ });
134
+
135
+ it('initNodes 重新初始化', () => {
136
+ const { initNodes, nodesRef, nodeMap } = useMenu({ data: SAMPLE_DATA });
137
+
138
+ initNodes([{ key: 'new', label: '新节点' }]);
139
+ expect(nodesRef.value).toHaveLength(1);
140
+ expect(nodeMap.size).toBe(1);
141
+ expect(nodeMap.get('new')!.label).toBe('新节点');
142
+ });
143
+
144
+ it('自定义 config 字段映射', () => {
145
+ const data = [
146
+ { id: 'a', name: '菜单A', items: [{ id: 'b', name: '子菜单B' }] },
147
+ ];
148
+ const { nodeMap } = useMenu({
149
+ data: data as any,
150
+ config: { key: 'id', label: 'name', children: 'items' },
151
+ });
152
+
153
+ expect(nodeMap.size).toBe(2);
154
+ expect(nodeMap.get('a')).toBeDefined();
155
+ expect(nodeMap.get('b')).toBeDefined();
156
+ });
157
+ });
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @description menu 运行时 props
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO, MPropType } from '../../types/props';
10
+ import { MenuProps } from './props';
11
+
12
+ export const DEFAULT_MENU_CONFIG = {
13
+ key: 'key',
14
+ label: 'label',
15
+ children: 'children',
16
+ };
17
+
18
+ export const props: MCOPO<MenuProps> = {
19
+ data: { type: Array, default: () => [] },
20
+ config: { type: Object, default: () => ({ ...DEFAULT_MENU_CONFIG }) },
21
+ checkbox: { type: Boolean, default: false },
22
+ defaultExpandAll: { type: Boolean, default: false },
23
+ checkedKeys: { type: Array, default: () => [] },
24
+ mode: { type: String as MPropType<'vertical' | 'horizontal'>, default: 'vertical' },
25
+ active: { type: [String, Number], default: undefined },
26
+ };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @description menu core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props, DEFAULT_MENU_CONFIG } from './api';
10
+ import { useMenu } from './useMenu';
11
+
12
+ export const MenuCore = {
13
+ props,
14
+ useMenu,
15
+ };
16
+
17
+ export { DEFAULT_MENU_CONFIG };
18
+ export type { MenuProps, MenuData, MenuNodeData, MenuConfig } from './props';
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @description menu props 类型定义
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+
10
+ /**
11
+ * 菜单数据项
12
+ */
13
+ export interface MenuData {
14
+ key: string | number;
15
+ label?: string;
16
+ value?: string | number;
17
+ children?: MenuData[];
18
+ disabled?: boolean;
19
+ [k: string]: unknown;
20
+ }
21
+
22
+ /**
23
+ * 菜单内部节点数据(带状态)
24
+ */
25
+ export interface MenuNodeData extends MenuData {
26
+ /** 是否展开 */
27
+ expand?: boolean;
28
+ /** 是否激活 */
29
+ isActive?: boolean;
30
+ /** 是否选中(checkbox 模式) */
31
+ checked?: boolean;
32
+ /** 半选状态 */
33
+ indeterminate?: boolean;
34
+ /** 子节点 */
35
+ children?: MenuNodeData[];
36
+ /** 父节点引用 */
37
+ parent?: MenuNodeData | null;
38
+ /** 是否根节点 */
39
+ isRoot?: boolean;
40
+ }
41
+
42
+ /**
43
+ * 菜单字段映射配置
44
+ */
45
+ export interface MenuConfig {
46
+ key: string;
47
+ label: string;
48
+ children: string;
49
+ }
50
+
51
+ export declare type MenuProps = {
52
+ /**
53
+ * @description 菜单数据
54
+ * @type MenuData[]
55
+ * @default []
56
+ */
57
+ data?: MenuData[];
58
+ /**
59
+ * @description 字段映射配置
60
+ * @type MenuConfig
61
+ * @default { key: 'key', label: 'label', children: 'children' }
62
+ */
63
+ config?: MenuConfig;
64
+ /**
65
+ * @description 是否使用 checkbox
66
+ * @type boolean
67
+ * @default false
68
+ */
69
+ checkbox?: boolean;
70
+ /**
71
+ * @description 默认展开所有节点
72
+ * @type boolean
73
+ * @default false
74
+ */
75
+ defaultExpandAll?: boolean;
76
+ /**
77
+ * @description 选中的 key 列表
78
+ * @type Array<string|number>
79
+ * @default []
80
+ */
81
+ checkedKeys?: Array<string | number>;
82
+ /**
83
+ * @description 菜单排列方向
84
+ * @type 'vertical' | 'horizontal'
85
+ * @default 'vertical'
86
+ */
87
+ mode?: 'vertical' | 'horizontal';
88
+ /**
89
+ * @description 当前激活的菜单项 key(v-model:active)
90
+ * @type string | number
91
+ */
92
+ active?: string | number;
93
+ };