@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
@@ -1,19 +1,20 @@
1
- import { TransferProps } from './props';
2
- export declare function useTransfer(props: TransferProps, ctx: any): {
3
- leftSearch: any;
4
- rightSearch: any;
5
- leftData: any;
6
- rightData: any;
7
- filteredLeftData: any;
8
- filteredRightData: any;
9
- leftChecked: any;
10
- rightChecked: any;
11
- hasLeftChecked: any;
12
- hasRightChecked: any;
13
- isLeftAllChecked: any;
14
- isLeftIndeterminate: any;
15
- isRightAllChecked: any;
16
- isRightIndeterminate: any;
1
+ import { TransferItem, TransferProps } from './props';
2
+ import { HookContext } from '../../types/hook';
3
+ export declare function useTransfer(props: TransferProps, ctx: HookContext): {
4
+ leftSearch: import('vue').Ref<string, string>;
5
+ rightSearch: import('vue').Ref<string, string>;
6
+ leftData: import('vue').ComputedRef<TransferItem[]>;
7
+ rightData: import('vue').ComputedRef<TransferItem[]>;
8
+ filteredLeftData: import('vue').ComputedRef<TransferItem[]>;
9
+ filteredRightData: import('vue').ComputedRef<TransferItem[]>;
10
+ leftChecked: import('vue').Ref<Set<string | number> & Omit<Set<string | number>, keyof Set<any>>, Set<string | number> | (Set<string | number> & Omit<Set<string | number>, keyof Set<any>>)>;
11
+ rightChecked: import('vue').Ref<Set<string | number> & Omit<Set<string | number>, keyof Set<any>>, Set<string | number> | (Set<string | number> & Omit<Set<string | number>, keyof Set<any>>)>;
12
+ hasLeftChecked: import('vue').ComputedRef<boolean>;
13
+ hasRightChecked: import('vue').ComputedRef<boolean>;
14
+ isLeftAllChecked: import('vue').ComputedRef<boolean>;
15
+ isLeftIndeterminate: import('vue').ComputedRef<boolean>;
16
+ isRightAllChecked: import('vue').ComputedRef<boolean>;
17
+ isRightIndeterminate: import('vue').ComputedRef<boolean>;
17
18
  toggleLeftCheck: (key: string | number, disabled: boolean) => void;
18
19
  toggleRightCheck: (key: string | number, disabled: boolean) => void;
19
20
  toggleLeftAll: () => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -2,7 +2,7 @@ export declare const TreeCore: {
2
2
  props: import('../../types/props').MCOPO<import('./props').TreeProps>;
3
3
  treeNodeProps: import('../../types/props').MCOPO<import('./props').TreeNodeProps>;
4
4
  useTree: (options: import('./useTree').UseTreeOptions) => {
5
- treeRef: any;
5
+ treeRef: import('vue').ShallowRef<import('./tree').default | undefined, import('./tree').default | undefined>;
6
6
  getNodesByKeys: (keys: import('./props').TreeNodeData["key"][]) => import('./props').TreeNodeData[];
7
7
  handleToggleExpand: (node: import('./props').TreeNodeData, e: MouseEvent) => void;
8
8
  handleToggleChecked: (node: import('./props').TreeNodeData, checked: boolean) => void;
@@ -1,3 +1,4 @@
1
+ import { default as Tree } from './tree';
1
2
  import { TreeData, TreeNodeData, TreeProps } from './props';
2
3
  /**
3
4
  * 为没有 key 的节点递归生成唯一标识
@@ -24,7 +25,7 @@ export interface UseTreeOptions {
24
25
  * - getNodesByKeys:根据 key 批量获取节点
25
26
  */
26
27
  export declare const useTree: (options: UseTreeOptions) => {
27
- treeRef: any;
28
+ treeRef: import('vue').ShallowRef<Tree | undefined, Tree | undefined>;
28
29
  getNodesByKeys: (keys: TreeNodeData["key"][]) => TreeNodeData[];
29
30
  handleToggleExpand: (node: TreeNodeData, e: MouseEvent) => void;
30
31
  handleToggleChecked: (node: TreeNodeData, checked: boolean) => void;
@@ -1,4 +1,4 @@
1
1
  export declare const DrawerCore: {
2
- props: import('../../types/props').MCOPO<import('./props.d.ts').DrawerProps>;
2
+ props: import('../../types/props').MCOPO<import('./props').DrawerProps>;
3
3
  };
4
- export type { DrawerProps } from './props.d.ts';
4
+ export type { DrawerProps } from './props';
@@ -13,7 +13,17 @@ export interface MessageItem {
13
13
  * 管理消息的增删与自动关闭定时器
14
14
  */
15
15
  export declare function useMessageQueue(): {
16
- messages: any;
16
+ messages: import('vue').Ref<{
17
+ id: number;
18
+ type: MessageType;
19
+ content: string;
20
+ duration: number;
21
+ }[], MessageItem[] | {
22
+ id: number;
23
+ type: MessageType;
24
+ content: string;
25
+ duration: number;
26
+ }[]>;
17
27
  add: (props: {
18
28
  type?: MessageType;
19
29
  content: string;
@@ -27,7 +27,23 @@ export interface NotificationAddOptions {
27
27
  * 管理通知的增删与自动关闭定时器
28
28
  */
29
29
  export declare function useNotificationQueue(): {
30
- notifications: any;
30
+ notifications: import('vue').Ref<{
31
+ id: number;
32
+ title: string;
33
+ message: string;
34
+ type: NotificationType;
35
+ duration: number;
36
+ position: NotificationPosition;
37
+ closable: boolean;
38
+ }[], NotificationItem[] | {
39
+ id: number;
40
+ title: string;
41
+ message: string;
42
+ type: NotificationType;
43
+ duration: number;
44
+ position: NotificationPosition;
45
+ closable: boolean;
46
+ }[]>;
31
47
  add: (options: NotificationAddOptions) => number;
32
48
  remove: (id: number) => void;
33
49
  };
@@ -1,2 +1,7 @@
1
- declare const _default: any;
1
+ import { PopoverProps } from './props';
2
+ declare const _default: import('vue').DefineSetupFnComponent<PopoverProps, ("update:show" | "open:popper" | "close:popper")[], {}, PopoverProps & {
3
+ "onUpdate:show"?: ((...args: any[]) => any) | undefined;
4
+ "onOpen:popper"?: ((...args: any[]) => any) | undefined;
5
+ "onClose:popper"?: ((...args: any[]) => any) | undefined;
6
+ }, import('vue').PublicProps>;
2
7
  export default _default;
@@ -1,4 +1,4 @@
1
- import { usePopover } from './usePopover.ts';
1
+ import { usePopover } from './usePopover';
2
2
  export declare const MessagePopoverCore: {
3
3
  props: import('../../types/props').MCOPO<import('./props').PopoverProps>;
4
4
  usePopover: typeof usePopover;
@@ -43,14 +43,14 @@ export declare function usePopover(options: Options<{
43
43
  getContent: <T>(props: PopoverProps, getContentSlot: () => T, useTeleport: (options: any) => ArrayElement<T> | T, _instance?: PopoverImpl | null) => T | ArrayElement<T> | null;
44
44
  popoverEnter: () => void;
45
45
  popoverLeave: () => void;
46
- popoverRef: any;
47
- contentRef: any;
48
- arrowRef: any;
49
- popperInstance: any;
50
- style: any;
51
- arrowStyle: any;
46
+ popoverRef: Ref<HTMLElement | undefined, HTMLElement | undefined>;
47
+ contentRef: Ref<HTMLElement | undefined, HTMLElement | undefined>;
48
+ arrowRef: Ref<HTMLElement | undefined, HTMLElement | undefined>;
49
+ popperInstance: import('vue').ShallowRef<PopoverImpl | undefined, PopoverImpl | undefined>;
50
+ style: Ref<any, any>;
51
+ arrowStyle: Ref<any, any>;
52
52
  lifecycle: {
53
- onBeforeDestroyEvents: Function[];
53
+ onBeforeUnmountEvents: Function[];
54
54
  };
55
55
  };
56
56
  export {};
@@ -1,10 +1,9 @@
1
+ import { HookContext } from '../../types/hook';
1
2
  import { DarkModeProps } from './props';
2
3
  /** 将暗色状态同步到 html[dark] attribute */
3
4
  declare function applyDarkAttr(isDark: boolean): void;
4
- export declare function useDarkMode(props: DarkModeProps, ctx: {
5
- emit: (event: string, ...args: any[]) => void;
6
- }): {
7
- isDark: any;
5
+ export declare function useDarkMode(props: DarkModeProps, ctx: Pick<HookContext, 'emit'>): {
6
+ isDark: import('vue').Ref<boolean, boolean>;
8
7
  toggle: () => void;
9
8
  applyDarkAttr: typeof applyDarkAttr;
10
9
  };
@@ -5,5 +5,4 @@ export declare const MenuCore: {
5
5
  useMenu: typeof useMenu;
6
6
  };
7
7
  export { DEFAULT_MENU_CONFIG };
8
- export { useMenu } from './useMenu';
9
8
  export type { MenuProps, MenuData, MenuNodeData, MenuConfig } from './props';
@@ -1,5 +1,6 @@
1
+ import { ShallowRef } from 'vue';
1
2
  import { MenuData, MenuNodeData, MenuConfig, MenuProps } from './props';
2
- export declare function useMenu(props: MenuProps, emit?: (event: string, ...args: unknown[]) => void): {
3
+ export declare function useMenu(props: MenuProps, emit?: (...args: any[]) => void): {
3
4
  nodesRef: ShallowRef<MenuNodeData[]>;
4
5
  nodeMap: Map<string | number, MenuNodeData>;
5
6
  initNodes: (data?: MenuData[]) => void;
@@ -4,4 +4,5 @@ export declare const PaginationCore: {
4
4
  usePagination: typeof usePagination;
5
5
  };
6
6
  export type { PaginationProps } from './props';
7
- export { usePagination, type Pager } from './usePagination';
7
+ export { usePagination } from './usePagination';
8
+ export type { Pager } from './usePagination';
@@ -4,4 +4,3 @@ export declare const VirtualListCore: {
4
4
  useVirtualList: typeof useVirtualList;
5
5
  };
6
6
  export type { VirtualListProps } from './props';
7
- export { useVirtualList } from './useVirtualList';
@@ -5,11 +5,14 @@ export interface UseVirtualListOptions<T> {
5
5
  onReachBottom?: () => void;
6
6
  }
7
7
  export declare function useVirtualList<T>(options: UseVirtualListOptions<T>): {
8
- displayList: any;
9
- containerRef: any;
10
- wrapperRef: any;
11
- topSentinelRef: any;
12
- bottomSentinelRef: any;
13
- totalHeight: any;
14
- offsetY: any;
8
+ displayList: import('vue').ComputedRef<{
9
+ data: T;
10
+ index: number;
11
+ }[]>;
12
+ containerRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
13
+ wrapperRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
14
+ topSentinelRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
15
+ bottomSentinelRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
16
+ totalHeight: import('vue').Ref<number, number>;
17
+ offsetY: import('vue').Ref<number, number>;
15
18
  };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @description commandPalette composition barrel export
3
+ * @author kine-design
4
+ * @date 2026/5/22
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ export { useCommandPalette } from './useCommandPalette';
10
+ export type { UseCommandPaletteReturn } from './useCommandPalette';
11
+ export type { Command } from './types';
@@ -0,0 +1,20 @@
1
+ import { VNode } from 'vue';
2
+ /**
3
+ * A single command registered in the palette.
4
+ */
5
+ export interface Command {
6
+ /** Unique identifier */
7
+ id: string;
8
+ /** Display label (also used for search) */
9
+ label: string;
10
+ /** Optional icon render function */
11
+ icon?: () => VNode;
12
+ /** Additional search terms beyond the label */
13
+ keywords?: string[];
14
+ /** Grouping category (e.g. "Navigation", "Actions") */
15
+ group?: string;
16
+ /** Shortcut hint text displayed on the right side of the item */
17
+ shortcut?: string;
18
+ /** Callback executed when the command is selected */
19
+ action: () => void;
20
+ }
@@ -0,0 +1,32 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ import { Command } from './types';
3
+ export interface UseCommandPaletteReturn {
4
+ /** Whether the palette is open */
5
+ isOpen: Ref<boolean>;
6
+ /** Current search query */
7
+ query: Ref<string>;
8
+ /** Index of the currently highlighted item */
9
+ activeIndex: Ref<number>;
10
+ /** All registered commands */
11
+ commands: Ref<Command[]>;
12
+ /** Filtered commands based on query */
13
+ filtered: ComputedRef<Command[]>;
14
+ /** Open the palette */
15
+ open: () => void;
16
+ /** Close the palette */
17
+ close: () => void;
18
+ /** Toggle open/close */
19
+ toggle: () => void;
20
+ /** Register a command */
21
+ registerCommand: (cmd: Command) => void;
22
+ /** Unregister a command by id */
23
+ unregisterCommand: (id: string) => void;
24
+ /** Execute the command at a given index in the filtered list, then close */
25
+ execute: (index: number) => void;
26
+ }
27
+ /**
28
+ * CommandPalette composable
29
+ *
30
+ * Provides reactive state for opening, searching, and executing commands.
31
+ */
32
+ export declare function useCommandPalette(): UseCommandPaletteReturn;
@@ -0,0 +1,40 @@
1
+ import { ComponentPropsOptions, EmitsOptions, InjectionKey, Ref, SetupContext, VNode } from 'vue';
2
+ /** Global switch provided by KConfigProvider to enable data-k rendering */
3
+ export declare const K_TEST_ANCHOR_KEY: InjectionKey<Ref<boolean>>;
4
+ /** Field identity provided by KFormItem so child inputs inherit field name */
5
+ export declare const K_FIELD_KEY: InjectionKey<Ref<string | undefined>>;
6
+ export interface KAnchorConfig {
7
+ /** Semantic type: 'field' | 'action' | 'table' | 'col' | 'dialog' | 'drawer' | 'tab' */
8
+ type: string;
9
+ /** Which prop to derive the identity from (e.g., 'prop' for KFormItem, 'title' for KDialog) */
10
+ prop?: string;
11
+ /** Derive identity from default slot text content (for KButton) */
12
+ slotText?: boolean;
13
+ }
14
+ interface KDefineComponentOptions {
15
+ name: string;
16
+ props?: ComponentPropsOptions;
17
+ emits?: EmitsOptions;
18
+ kAnchor?: KAnchorConfig;
19
+ }
20
+ /**
21
+ * Wrapper around Vue's defineComponent that automatically injects `data-k`
22
+ * test anchor attributes when testAnchor is enabled via KConfigProvider.
23
+ *
24
+ * Usage:
25
+ * ```tsx
26
+ * export default kDefineComponent((_props, ctx) => {
27
+ * return () => <div class="k-form-item">...</div>;
28
+ * }, {
29
+ * name: 'KFormItem',
30
+ * props: FormCore.formItemProps,
31
+ * kAnchor: { type: 'field', prop: 'prop' },
32
+ * });
33
+ * ```
34
+ */
35
+ export declare function kDefineComponent<P extends Record<string, unknown>>(setup: (props: P, ctx: SetupContext) => () => VNode | VNode[] | null | undefined, options: KDefineComponentOptions): import('vue').DefineSetupFnComponent<P, EmitsOptions, {}, P & ({
36
+ [x: `on${Capitalize<string>}`]: ((...args: never) => any) | undefined;
37
+ } | {
38
+ [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
39
+ }), import('vue').PublicProps>;
40
+ export {};
@@ -0,0 +1,6 @@
1
+ import { InjectionKey, Ref } from 'vue';
2
+ import { KineSize } from '../../components/types/props';
3
+ export declare const KINE_SIZE_KEY: InjectionKey<Ref<KineSize>>;
4
+ export declare function useComponentSize(props: {
5
+ size?: KineSize;
6
+ }): Ref<KineSize>;
@@ -20,7 +20,7 @@ export default function useDrag(config: {
20
20
  onDragLeave?: (event: InteractEvent) => void;
21
21
  };
22
22
  }): {
23
- domRef: any;
23
+ domRef: Ref<HTMLElement | null | undefined, HTMLElement | null | undefined>;
24
24
  init: (basePosition?: {
25
25
  x?: number;
26
26
  y?: number;
@@ -1,5 +1,5 @@
1
1
  import { Ref } from 'vue';
2
2
  export declare function useElementSize(target: Ref<HTMLElement | null>): {
3
- w: any;
4
- h: any;
3
+ w: Ref<number, number>;
4
+ h: Ref<number, number>;
5
5
  };
@@ -7,7 +7,7 @@
7
7
  * 江湖的业务千篇一律,复杂的代码好几百行。
8
8
  */
9
9
  export type EventListenerOptions = {
10
- target: any;
10
+ target: EventTarget | (() => EventTarget);
11
11
  event: string;
12
12
  handler: EventListenerOrEventListenerObject;
13
13
  };
@@ -15,5 +15,5 @@ export default function useEventListener(options: EventListenerOptions): {
15
15
  add: () => void;
16
16
  remove: () => void;
17
17
  onMounted: () => void;
18
- onBeforeDestroy: () => void;
18
+ onBeforeUnmount: () => void;
19
19
  };
@@ -3,5 +3,7 @@ import { MTeleportProps } from '../../types/common/common';
3
3
  export default function useTeleport(options: {
4
4
  teleportProps?: MTeleportProps | true;
5
5
  slot: VNode | VNode[];
6
- }): any;
7
- export declare const initTeleportOptions: (options: TeleportProps | true | undefined) => any;
6
+ }): VNode<import('vue').RendererNode, import('vue').RendererElement, {
7
+ [key: string]: any;
8
+ }>;
9
+ export declare const initTeleportOptions: (options: TeleportProps | true | undefined) => TeleportProps;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description context menu composables barrel export
3
+ * @author kine-design
4
+ * @date 2026/5/22
5
+ * @version v1.0.0
6
+ *
7
+ * 江湖的业务千篇一律,复杂的代码好几百行。
8
+ */
9
+ export { useContextMenu } from './useContextMenu';
10
+ export type { MenuItem } from './types';
@@ -0,0 +1,12 @@
1
+ import { VNode } from 'vue';
2
+ export interface MenuItem {
3
+ key: string;
4
+ label: string;
5
+ icon?: () => VNode;
6
+ action: () => void;
7
+ visible?: boolean;
8
+ disabled?: boolean;
9
+ danger?: boolean;
10
+ children?: MenuItem[];
11
+ separator?: boolean;
12
+ }
@@ -0,0 +1,52 @@
1
+ import { MenuItem } from './types';
2
+ export declare function useContextMenu(): {
3
+ isOpen: import('vue').Ref<boolean, boolean>;
4
+ position: import('vue').Ref<{
5
+ x: number;
6
+ y: number;
7
+ }, {
8
+ x: number;
9
+ y: number;
10
+ } | {
11
+ x: number;
12
+ y: number;
13
+ }>;
14
+ items: import('vue').Ref<{
15
+ key: string;
16
+ label: string;
17
+ icon?: (() => import('vue').VNode) | undefined;
18
+ action: () => void;
19
+ visible?: boolean | undefined;
20
+ disabled?: boolean | undefined;
21
+ danger?: boolean | undefined;
22
+ children?: /*elided*/ any[] | undefined;
23
+ separator?: boolean | undefined;
24
+ }[], MenuItem[] | {
25
+ key: string;
26
+ label: string;
27
+ icon?: (() => import('vue').VNode) | undefined;
28
+ action: () => void;
29
+ visible?: boolean | undefined;
30
+ disabled?: boolean | undefined;
31
+ danger?: boolean | undefined;
32
+ children?: /*elided*/ any[] | undefined;
33
+ separator?: boolean | undefined;
34
+ }[]>;
35
+ activeIndex: import('vue').Ref<number, number>;
36
+ visibleItems: import('vue').ComputedRef<{
37
+ key: string;
38
+ label: string;
39
+ icon?: (() => import('vue').VNode) | undefined;
40
+ action: () => void;
41
+ visible?: boolean | undefined;
42
+ disabled?: boolean | undefined;
43
+ danger?: boolean | undefined;
44
+ children?: /*elided*/ any[] | undefined;
45
+ separator?: boolean | undefined;
46
+ }[]>;
47
+ open: (event: MouseEvent, menuItems: MenuItem[]) => void;
48
+ close: () => void;
49
+ moveUp: () => void;
50
+ moveDown: () => void;
51
+ executeCurrent: () => void;
52
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description Editor composition barrel export
3
+ * @author kine-design
4
+ * @date 2026/5/22
5
+ * @version v1.0.0
6
+ *
7
+ * Headless editor composable — provides logic, no rendering.
8
+ */
9
+ export { useEditor } from './useEditor';
10
+ export type { UseEditorOptions, EditorConfig, EditorToolbarConfig, EditorExtensionConfig, EditorToolbarActions, EditorActiveState, UseEditorReturn, } from './types';
@@ -0,0 +1,132 @@
1
+ import { Editor } from '@tiptap/core';
2
+ import { ShallowRef, Ref, ComputedRef } from 'vue';
3
+ /**
4
+ * Toolbar feature toggle. Each key controls visibility of a toolbar group.
5
+ * All default to true when omitted.
6
+ */
7
+ export interface EditorToolbarConfig {
8
+ bold?: boolean;
9
+ italic?: boolean;
10
+ strike?: boolean;
11
+ code?: boolean;
12
+ heading?: boolean;
13
+ bulletList?: boolean;
14
+ orderedList?: boolean;
15
+ blockquote?: boolean;
16
+ codeBlock?: boolean;
17
+ link?: boolean;
18
+ image?: boolean;
19
+ textAlign?: boolean;
20
+ undo?: boolean;
21
+ }
22
+ /**
23
+ * Extension-level configuration that is forwarded to individual tiptap extensions.
24
+ */
25
+ export interface EditorExtensionConfig {
26
+ link?: {
27
+ openOnClick?: boolean;
28
+ HTMLAttributes?: Record<string, string>;
29
+ };
30
+ image?: {
31
+ allowBase64?: boolean;
32
+ HTMLAttributes?: Record<string, string>;
33
+ };
34
+ placeholder?: {
35
+ text?: string;
36
+ };
37
+ }
38
+ /**
39
+ * Top-level editor configuration passed via props.
40
+ */
41
+ export interface EditorConfig {
42
+ toolbar?: EditorToolbarConfig;
43
+ extensions?: EditorExtensionConfig;
44
+ }
45
+ /**
46
+ * Options accepted by the useEditor composable.
47
+ */
48
+ export interface UseEditorOptions {
49
+ /** Initial HTML or plain-text content */
50
+ content?: string;
51
+ /** When true the editor is not editable */
52
+ readonly?: boolean;
53
+ /** Placeholder text shown when the editor is empty */
54
+ placeholder?: string;
55
+ /** Feature configuration */
56
+ config?: EditorConfig;
57
+ /** Callback fired when content changes (HTML string) */
58
+ onUpdate?: (html: string) => void;
59
+ /** Callback fired when the editor is ready */
60
+ onReady?: () => void;
61
+ /** Callback fired on focus */
62
+ onFocus?: () => void;
63
+ /** Callback fired on blur */
64
+ onBlur?: () => void;
65
+ }
66
+ /**
67
+ * Toolbar action functions returned by the composable.
68
+ */
69
+ export interface EditorToolbarActions {
70
+ toggleBold: () => void;
71
+ toggleItalic: () => void;
72
+ toggleStrike: () => void;
73
+ toggleCode: () => void;
74
+ setParagraph: () => void;
75
+ setHeading: (level: 1 | 2 | 3) => void;
76
+ toggleBulletList: () => void;
77
+ toggleOrderedList: () => void;
78
+ toggleBlockquote: () => void;
79
+ toggleCodeBlock: () => void;
80
+ setLink: (href: string) => void;
81
+ unsetLink: () => void;
82
+ setImage: (src: string, alt?: string) => void;
83
+ setTextAlign: (alignment: 'left' | 'center' | 'right') => void;
84
+ undo: () => void;
85
+ redo: () => void;
86
+ focus: () => void;
87
+ blur: () => void;
88
+ clear: () => void;
89
+ }
90
+ /**
91
+ * Active-state flags for toolbar highlighting.
92
+ */
93
+ export interface EditorActiveState {
94
+ bold: boolean;
95
+ italic: boolean;
96
+ strike: boolean;
97
+ code: boolean;
98
+ paragraph: boolean;
99
+ heading1: boolean;
100
+ heading2: boolean;
101
+ heading3: boolean;
102
+ bulletList: boolean;
103
+ orderedList: boolean;
104
+ blockquote: boolean;
105
+ codeBlock: boolean;
106
+ link: boolean;
107
+ }
108
+ /**
109
+ * Return type of the useEditor composable.
110
+ */
111
+ export interface UseEditorReturn {
112
+ /** The raw tiptap Editor instance (may be null before creation) */
113
+ editor: ShallowRef<Editor | undefined>;
114
+ /** Whether the editor has been created and is ready */
115
+ isReady: Ref<boolean>;
116
+ /** Toolbar action methods */
117
+ actions: ComputedRef<EditorToolbarActions | null>;
118
+ /** Active formatting state */
119
+ activeState: ComputedRef<EditorActiveState>;
120
+ /** Update editor content programmatically */
121
+ setContent: (html: string) => void;
122
+ /** Toggle the editable state */
123
+ setEditable: (editable: boolean) => void;
124
+ /** Get current content as HTML */
125
+ getHTML: () => string;
126
+ /** Get current content as plain text */
127
+ getText: () => string;
128
+ /** Whether undo is available */
129
+ canUndo: ComputedRef<boolean>;
130
+ /** Whether redo is available */
131
+ canRedo: ComputedRef<boolean>;
132
+ }