@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,54 @@
1
+ /**
2
+ * @description popover api
3
+ * @author 阿怪
4
+ * @date 2023/4/23 11:53
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
+
14
+ export const props: MCOPO<PopoverProps> = {
15
+ placement: {
16
+ type: String as MPropType<Placement>,
17
+ default: 'bottom',
18
+ // validator: (value: string) =>
19
+ // [
20
+ // 'auto',
21
+ // 'auto-start',
22
+ // 'auto-end',
23
+ // 'top',
24
+ // 'top-start',
25
+ // 'top-end',
26
+ // 'bottom',
27
+ // 'bottom-start',
28
+ // 'bottom-end',
29
+ // 'right',
30
+ // 'right-start',
31
+ // 'right-end',
32
+ // 'left',
33
+ // 'left-start',
34
+ // 'left-end'
35
+ // ].includes(value)
36
+ },
37
+ mountRender: { type: Boolean, default: false },
38
+ disableClickAway: { type: Boolean, default: false },
39
+ // offsetSkid: { type: String, default: '0' },
40
+ // offsetDistance: { type: String, default: '0' },
41
+ hover: { type: Boolean, default: false },
42
+ show: { type: Boolean, default: null },
43
+ // disabled: { type: Boolean, default: false },
44
+ // openDelay: { type: Number, default: 0 },
45
+ // closeDelay: { type: Number, default: 0 },
46
+ // interactive: { type: Boolean, default: true },
47
+ // locked: { type: Boolean, default: false },
48
+ content: { type: String, default: '' },
49
+ popper: {
50
+ type: Object, default: () => ({}),
51
+ },
52
+ teleport: { type: [Object, Boolean], default: undefined },
53
+ title: { type: String, default: undefined },
54
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description
3
+ * @author 阿怪
4
+ * @date 2024/11/29 09:22
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+ import { usePopover } from './usePopover';
11
+
12
+ export const MessagePopoverCore = {
13
+ props,
14
+ usePopover,
15
+ };
16
+
17
+ export type { PopoverProps as MessagePopoverProps } from './props';
@@ -0,0 +1,21 @@
1
+ .m-popover {
2
+ display: inline-block;
3
+ }
4
+
5
+ .m-popover-content {
6
+ position: absolute;
7
+ display: none;
8
+ z-index: 9;
9
+ width: max-content;
10
+ top: 0;
11
+ left: 0;
12
+ }
13
+
14
+ .m-popover-default-wrapper {
15
+ display: inline-block;
16
+ }
17
+
18
+ .m-popover-arrow {
19
+ position: absolute;
20
+ display: none;
21
+ }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @description popover api type
3
+ * @author youus
4
+ * @date 2022/4/4 01:22
5
+ * @version v1.0.0
6
+ *
7
+ * @name m-popover
8
+ * @docDescription Popover component with shuimo-ui style.
9
+ * 水墨组件的弹出框组件。
10
+ * @docUrl https://shuimo.design/popover
11
+ *
12
+ * Hello, humor
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 popover display placement
21
+ * @type Placement
22
+ * @default bottom
23
+ */
24
+ placement?: Placement,
25
+ /**
26
+ * @description Whether to render the popover content when the component is mounted
27
+ * @type boolean
28
+ * @default false
29
+ */
30
+ mountRender?: boolean,
31
+ /**
32
+ * @description Disables automatically closing the popover when the user clicks away from it
33
+ * @type boolean
34
+ * @default false
35
+ */
36
+ disableClickAway?: boolean,
37
+ /**
38
+ * @description If the content is just a simple string, it can be passed in as a prop
39
+ * @type any
40
+ * @default ''
41
+ */
42
+ content?: any,
43
+ /**
44
+ * @description Trigger the popper on hover
45
+ * @type boolean
46
+ * @default false
47
+ */
48
+ hover?: boolean,
49
+ /**
50
+ * @description display content value
51
+ * 是否显示参数
52
+ * @type boolean
53
+ * @default false
54
+ */
55
+ show?: boolean,
56
+ /**
57
+ * @description floating-ui options, look: https://floating-ui.com/
58
+ * @type PopperConfig
59
+ * @default {}
60
+ */
61
+ popper?: PopperConfig,
62
+ /**
63
+ * @description popover teleport
64
+ * 弹出框传送
65
+ * @type teleport props
66
+ * @default undefined
67
+ */
68
+ teleport?: MTeleportProps | undefined | boolean,
69
+ /**
70
+ * @description popover title
71
+ * 气泡标题,传入时在内容上方渲染标题行
72
+ * @type string
73
+ * @default undefined
74
+ */
75
+ title?: string,
76
+ };
@@ -0,0 +1,234 @@
1
+ /**
2
+ * @description core usePopover hook
3
+ * @author 阿怪
4
+ * @date 2023/1/29 10:39
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 { Options } from '../../../compositions/common/defineCore';
12
+ // import MPrinter from '../../other/printer/Printer';
13
+ import { PopoverProps } from './props';
14
+ import { onBeforeUnmount, onMounted, ref, type Ref, shallowRef } from 'vue';
15
+
16
+
17
+ // const error = MPrinter('水墨Popover组件').error;
18
+ export type IPopper = ReturnType<typeof usePopper>;
19
+
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, /* default */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
+ // magic tool type, get array element type
107
+ type ArrayElement<ArrayType> =
108
+ ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
109
+
110
+ export function usePopover(
111
+ options: Options<{ props: PopoverProps, value: { placement: Placement } }>,
112
+ lifecycle?: { /* event can't use optional... */
113
+ onShow?: Function,
114
+ onHide?: Function
115
+ }) {
116
+ const style = ref();
117
+ const arrowStyle = ref();
118
+ const placement = ref(options.value.placement);
119
+ let instance: PopoverImpl | null = null;
120
+ let clickAwayInstance: ReturnType<typeof useClickAway>;
121
+
122
+ const popperInstance = shallowRef<PopoverImpl>();
123
+
124
+ const popoverRef = ref<HTMLElement>();
125
+ const contentRef = ref<HTMLElement>();
126
+ const arrowRef = ref<HTMLElement>();
127
+
128
+ const createPopover = (
129
+ active: HTMLElement,
130
+ content: HTMLElement,
131
+ arrow?: HTMLElement,
132
+ config?: PopperConfig,
133
+ ) => {
134
+ instance = new PopoverImpl(
135
+ { style, arrowStyle, placement, show: options.props.show },
136
+ active,
137
+ content,
138
+ arrow,
139
+ config,
140
+ {
141
+ onShow: () => {
142
+ clickAwayInstance?.add();
143
+ lifecycle?.onShow?.();
144
+ },
145
+ onHide: () => {
146
+ clickAwayInstance?.remove();
147
+ lifecycle?.onHide?.();
148
+ },
149
+ });
150
+ return instance;
151
+ };
152
+
153
+ const props = options.props;
154
+ const popoverEnter = () => {
155
+ if (props.hover) {
156
+ instance?.show();
157
+ }
158
+ };
159
+ const popoverLeave = () => {
160
+ if (props.hover) {
161
+ instance?.hide();
162
+ }
163
+ };
164
+
165
+ const onBeforeUnmountEvents: Function[] = [];
166
+
167
+ onMounted(() => {
168
+ if (!popoverRef.value || !contentRef.value) {
169
+ return;
170
+ }
171
+ popperInstance.value = createPopover(popoverRef.value, contentRef.value, arrowRef.value, {
172
+ ...props.popper,
173
+ placement: props.placement,
174
+ });
175
+
176
+ if (options.props.disableClickAway) {
177
+ return;
178
+ }
179
+
180
+ clickAwayInstance = useClickAway({
181
+ target: () => instance?.content?.parentElement,
182
+ handler: () => {
183
+ instance?.hide();
184
+ // emits?
185
+ },
186
+ });
187
+ });
188
+
189
+ onBeforeUnmount(() => {
190
+ if (clickAwayInstance) {
191
+ const { onBeforeUnmount } = clickAwayInstance;
192
+ onBeforeUnmount();
193
+ }
194
+ instance?.destroy();
195
+ });
196
+
197
+
198
+ const getContent = <T>(
199
+ props: PopoverProps,
200
+ getContentSlot: () => T,
201
+ useTeleport: (options: any) => ArrayElement<T> | T,
202
+ _instance = instance,
203
+ ) => {
204
+ const contentTeleportWrapper = () => {
205
+ if (props.teleport) {
206
+ return useTeleport({
207
+ teleportProps: props.teleport,
208
+ slot: getContentSlot(),
209
+ });
210
+ }
211
+ return getContentSlot();
212
+ };
213
+
214
+ if (props.mountRender) {
215
+ return contentTeleportWrapper();
216
+ }
217
+ if (!_instance || !_instance.visible) {
218
+ return null;
219
+ }
220
+ return contentTeleportWrapper();
221
+ };
222
+
223
+ return {
224
+ getContent,
225
+ popoverEnter,
226
+ popoverLeave,
227
+ popoverRef, contentRef, arrowRef,
228
+ popperInstance,
229
+ style, arrowStyle,
230
+ lifecycle: {
231
+ onBeforeUnmountEvents,
232
+ },
233
+ };
234
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description dark mode api
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.1.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO, MPropType } from '../../types/props';
10
+ import { DarkModeProps } from './props';
11
+
12
+ export const props: MCOPO<DarkModeProps> = {
13
+ modelValue: { type: Boolean, default: false },
14
+ autoMode: { type: Boolean, default: false },
15
+ initHandler: { type: Function as MPropType<() => boolean>, default: undefined },
16
+ storageKey: { type: String, default: undefined },
17
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description dark mode core 导出
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.1.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { props } from './api';
10
+ import { useDarkMode } from './useDarkMode';
11
+
12
+ export const DarkModeCore = {
13
+ props,
14
+ useDarkMode,
15
+ };
16
+
17
+ export type { DarkModeProps } from './props';
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @description dark mode api type
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.1.0
6
+ *
7
+ * @name m-dark-mode
8
+ * @docDescription Headless dark mode component.
9
+ * 无样式暗色模式组件,用于切换日夜间模式。
10
+ *
11
+ * 江湖的业务千篇一律,复杂的代码好几百行。
12
+ */
13
+
14
+ export declare type DarkModeProps = {
15
+ /**
16
+ * @description 开关绑定值(true = 暗色)
17
+ * @type boolean
18
+ * @default false
19
+ */
20
+ modelValue?: boolean;
21
+ /**
22
+ * @description 自动初始化模式,跟随系统媒体查询
23
+ * @type boolean
24
+ * @default false
25
+ */
26
+ autoMode?: boolean;
27
+ /**
28
+ * @description 初始化事件,返回 true 则执行自动初始化
29
+ * @type function
30
+ */
31
+ initHandler?: () => boolean;
32
+ /**
33
+ * @description localStorage 持久化 key,传入则启用持久化
34
+ * @type string
35
+ */
36
+ storageKey?: string;
37
+ };
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @description dark mode composable
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.1.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ *
9
+ * 核心约定:
10
+ * - 暗色模式通过 html[dark] attribute 标记(与 lib 层保持一致)
11
+ * - 传入 storageKey 时启用 localStorage 持久化
12
+ * - autoMode 时监听系统媒体查询变化,并在卸载时清理监听器
13
+ */
14
+ import { ref, watch, onMounted, onUnmounted } from 'vue';
15
+ import { type HookContext } from '../../types/hook';
16
+ import { DarkModeProps } from './props';
17
+
18
+ /** 将暗色状态同步到 html[dark] attribute */
19
+ function applyDarkAttr(isDark: boolean) {
20
+ if (typeof document === 'undefined') return;
21
+ const html = document.querySelector('html');
22
+ if (!html) return;
23
+ if (isDark) {
24
+ html.setAttribute('dark', '');
25
+ } else {
26
+ html.removeAttribute('dark');
27
+ }
28
+ }
29
+
30
+ /** 从 localStorage 读取持久化的暗色模式偏好,未找到返回 null */
31
+ function readStorage(storageKey: string): boolean | null {
32
+ if (typeof window === 'undefined') return null;
33
+ const stored = localStorage.getItem(storageKey);
34
+ if (stored === null) return null;
35
+ return stored === 'true';
36
+ }
37
+
38
+ /** 将暗色模式偏好写入 localStorage */
39
+ function writeStorage(storageKey: string, isDark: boolean) {
40
+ if (typeof window === 'undefined') return;
41
+ localStorage.setItem(storageKey, isDark.toString());
42
+ }
43
+
44
+ export function useDarkMode(
45
+ props: DarkModeProps,
46
+ ctx: Pick<HookContext, 'emit'>,
47
+ ) {
48
+ const isDark = ref(props.modelValue ?? false);
49
+
50
+ /** 切换暗色模式,同步 DOM 并触发事件 */
51
+ const toggle = () => {
52
+ isDark.value = !isDark.value;
53
+ ctx.emit('update:modelValue', isDark.value);
54
+ ctx.emit('change', isDark.value);
55
+ };
56
+
57
+ // 监听外部 modelValue 变化,同步到内部状态
58
+ watch(
59
+ () => props.modelValue,
60
+ (val) => {
61
+ if (val !== undefined && val !== isDark.value) {
62
+ isDark.value = val;
63
+ }
64
+ },
65
+ );
66
+
67
+ // 内部状态变化时同步 DOM 及 localStorage
68
+ watch(isDark, (val) => {
69
+ applyDarkAttr(val);
70
+ if (props.storageKey) {
71
+ writeStorage(props.storageKey, val);
72
+ }
73
+ });
74
+
75
+ // 系统媒体查询变化回调
76
+ let mediaQuery: MediaQueryList | null = null;
77
+ const onSystemChange = (event: MediaQueryListEvent) => {
78
+ isDark.value = event.matches;
79
+ ctx.emit('update:modelValue', isDark.value);
80
+ ctx.emit('change', isDark.value);
81
+ };
82
+
83
+ onMounted(() => {
84
+ // 1. 若有 initHandler,优先交由外部决定是否自动初始化
85
+ if (props.initHandler) {
86
+ const shouldAutoInit = props.initHandler();
87
+ if (!shouldAutoInit) {
88
+ // initHandler 已处理好初始状态,只需同步 DOM
89
+ applyDarkAttr(isDark.value);
90
+ return;
91
+ }
92
+ } else if (props.storageKey) {
93
+ // 2. 无 initHandler 但有 storageKey,尝试从 localStorage 读取
94
+ const stored = readStorage(props.storageKey);
95
+ if (stored !== null) {
96
+ isDark.value = stored;
97
+ applyDarkAttr(isDark.value);
98
+ // 有存储值则不再跟随系统
99
+ return;
100
+ }
101
+ }
102
+
103
+ // 3. autoMode:跟随系统媒体查询
104
+ if (props.autoMode && typeof window !== 'undefined') {
105
+ mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
106
+ isDark.value = mediaQuery.matches;
107
+ ctx.emit('update:modelValue', isDark.value);
108
+ ctx.emit('change', isDark.value);
109
+ mediaQuery.addEventListener('change', onSystemChange);
110
+ }
111
+
112
+ // 挂载时应用当前状态
113
+ applyDarkAttr(isDark.value);
114
+ });
115
+
116
+ onUnmounted(() => {
117
+ // 清理媒体查询监听器,防止内存泄漏
118
+ if (mediaQuery) {
119
+ mediaQuery.removeEventListener('change', onSystemChange);
120
+ mediaQuery = null;
121
+ }
122
+ });
123
+
124
+ return {
125
+ isDark,
126
+ toggle,
127
+ applyDarkAttr,
128
+ };
129
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @description border 运行时 props
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO } from '../../types/props';
10
+ import { BorderProps } from './props';
11
+
12
+ export const props: MCOPO<BorderProps> = {
13
+ top: { type: [Boolean, String], default: true },
14
+ right: { type: [Boolean, String], default: true },
15
+ bottom: { type: [Boolean, String], default: true },
16
+ left: { type: [Boolean, String], default: true },
17
+ insteadMain: { type: [Boolean, String], default: false },
18
+ };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @description border 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 BorderCore = {
12
+ props,
13
+ };
14
+
15
+ export type { BorderProps } from './props';
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @description border props 类型定义
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+
10
+ export declare type BorderProps = {
11
+ /**
12
+ * @description 顶部边框是否显示
13
+ * @default true
14
+ * @type boolean | string
15
+ */
16
+ top?: boolean | string;
17
+ /**
18
+ * @description 右侧边框是否显示
19
+ * @default true
20
+ * @type boolean | string
21
+ */
22
+ right?: boolean | string;
23
+ /**
24
+ * @description 底部边框是否显示
25
+ * @default true
26
+ * @type boolean | string
27
+ */
28
+ bottom?: boolean | string;
29
+ /**
30
+ * @description 左侧边框是否显示
31
+ * @default true
32
+ * @type boolean | string
33
+ */
34
+ left?: boolean | string;
35
+ /**
36
+ * @description 是否用 slot 替换主容器 div
37
+ * @default false
38
+ * @type boolean | string
39
+ */
40
+ insteadMain?: boolean | string;
41
+ };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @description breadcrumb 运行时 props
3
+ * @author 阿怪
4
+ * @date 2026/2/25
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ import { MCOPO } from '../../types/props';
10
+ import { BreadcrumbProps } from './props';
11
+
12
+ export const props: MCOPO<BreadcrumbProps> = {
13
+ separator: { type: String, default: '/' },
14
+ items: { type: Array, default: () => [] },
15
+ };