@rainbow-oh/yee-c 0.1.0 → 0.3.0

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 (419) hide show
  1. package/dist/cjs/Alert/alert.js +10 -4
  2. package/dist/cjs/Alert/style/index.less +3 -0
  3. package/dist/cjs/Anchor/anchor-item.js +6 -4
  4. package/dist/cjs/Anchor/anchor.js +38 -22
  5. package/dist/cjs/Anchor/demo/auto.d.ts +11 -0
  6. package/dist/cjs/Anchor/demo/auto.js +85 -0
  7. package/dist/cjs/Anchor/demo/basic.js +7 -1
  8. package/dist/cjs/Anchor/demo/controlled.js +42 -30
  9. package/dist/cjs/Anchor/interface.d.ts +2 -0
  10. package/dist/cjs/Anchor/style/index.less +2 -2
  11. package/dist/cjs/Button/button.d.ts +1 -1
  12. package/dist/cjs/Button/button.js +2 -2
  13. package/dist/cjs/Button/style/index.less +23 -8
  14. package/dist/cjs/Card/demo/collapsible.js +2 -1
  15. package/dist/cjs/Carousel/demo/arrows.js +1 -1
  16. package/dist/cjs/Carousel/demo/autoplay.js +1 -1
  17. package/dist/cjs/Carousel/demo/effect.js +1 -1
  18. package/dist/cjs/Carousel/demo/position.js +1 -1
  19. package/dist/cjs/Checkbox/checkbox-group.js +4 -1
  20. package/dist/cjs/Checkbox/demo/group.js +1 -0
  21. package/dist/cjs/Checkbox/interface.d.ts +5 -0
  22. package/dist/cjs/Checkbox/style/index.less +21 -1
  23. package/dist/cjs/Config-Provider/interface.d.ts +4 -0
  24. package/dist/cjs/Dropdown/demo/placement.js +2 -1
  25. package/dist/cjs/Dropdown/dropdown.js +3 -0
  26. package/dist/cjs/Dropdown/style/index.less +6 -0
  27. package/dist/cjs/Form/Field.js +64 -12
  28. package/dist/cjs/Form/Group.js +3 -2
  29. package/dist/cjs/Form/demo/form-table.js +1 -8
  30. package/dist/cjs/Form/demo/tooltip.d.ts +3 -0
  31. package/dist/cjs/Form/demo/tooltip.js +84 -0
  32. package/dist/cjs/Form/interface.d.ts +51 -2
  33. package/dist/cjs/Form/style/index.less +22 -7
  34. package/dist/cjs/Menu/style/index.less +2 -2
  35. package/dist/cjs/Popconfirm/popconfirm.js +1 -1
  36. package/dist/cjs/Popconfirm/style/index.less +6 -0
  37. package/dist/cjs/Popover/popover.js +1 -1
  38. package/dist/cjs/Popover/style/index.less +6 -0
  39. package/dist/cjs/Progress/progress.js +2 -2
  40. package/dist/cjs/Radio/demo/button.js +1 -0
  41. package/dist/cjs/Radio/interface.d.ts +4 -0
  42. package/dist/cjs/Radio/radio-group.js +28 -14
  43. package/dist/cjs/Radio/radio.js +3 -1
  44. package/dist/cjs/Radio/style/index.less +26 -5
  45. package/dist/cjs/Segmented/demo/basic.d.ts +3 -0
  46. package/dist/cjs/Segmented/demo/basic.js +51 -0
  47. package/dist/cjs/Segmented/demo/block.d.ts +3 -0
  48. package/dist/cjs/Segmented/demo/block.js +49 -0
  49. package/dist/cjs/Segmented/demo/disabled.d.ts +3 -0
  50. package/dist/cjs/Segmented/demo/disabled.js +47 -0
  51. package/dist/cjs/Segmented/demo/size.d.ts +3 -0
  52. package/dist/cjs/Segmented/demo/size.js +37 -0
  53. package/dist/cjs/Segmented/index.d.ts +3 -0
  54. package/dist/cjs/Segmented/index.js +36 -0
  55. package/dist/cjs/Segmented/interface.d.ts +82 -0
  56. package/dist/cjs/Segmented/interface.js +17 -0
  57. package/dist/cjs/Segmented/segmented.d.ts +5 -0
  58. package/dist/cjs/Segmented/segmented.js +177 -0
  59. package/dist/cjs/Segmented/style/index.less +104 -0
  60. package/dist/cjs/Select/option.js +3 -2
  61. package/dist/cjs/Select/options.js +9 -1
  62. package/dist/cjs/Select/select.js +1 -0
  63. package/dist/cjs/Skeleton/demo/basic.js +1 -1
  64. package/dist/cjs/Space/interface.d.ts +4 -0
  65. package/dist/cjs/Space/space.js +36 -16
  66. package/dist/cjs/Spin/spin.js +2 -1
  67. package/dist/cjs/Splitter/demo/basic.js +1 -1
  68. package/dist/cjs/Splitter/demo/vertical.js +23 -1
  69. package/dist/cjs/Splitter/index.d.ts +1 -1
  70. package/dist/cjs/Splitter/interface.d.ts +9 -3
  71. package/dist/cjs/Splitter/splitter-handler.d.ts +1 -1
  72. package/dist/cjs/Splitter/splitter-handler.js +2 -1
  73. package/dist/cjs/Splitter/splitter.d.ts +2 -9
  74. package/dist/cjs/Splitter/splitter.js +53 -50
  75. package/dist/cjs/Splitter/style/index.less +21 -0
  76. package/dist/cjs/Steps/step.js +1 -1
  77. package/dist/cjs/Steps/style/index.less +8 -2
  78. package/dist/cjs/Switch/demo/content.js +22 -1
  79. package/dist/cjs/Switch/style/index.less +16 -0
  80. package/dist/cjs/Switch/switch.js +9 -2
  81. package/dist/cjs/Table/demo/size.js +1 -1
  82. package/dist/cjs/Table/interface.d.ts +5 -1
  83. package/dist/cjs/Table/theader/cell.js +4 -5
  84. package/dist/cjs/Tabs/hooks/useTabScroll.d.ts +1 -1
  85. package/dist/cjs/Tabs/interface.d.ts +1 -1
  86. package/dist/cjs/Tabs/style/index.less +4 -0
  87. package/dist/cjs/Tabs/tab-header/index.js +56 -25
  88. package/dist/cjs/Tag/demo/size.js +1 -1
  89. package/dist/cjs/Tag/style/index.less +1 -0
  90. package/dist/cjs/Tooltip/interface.d.ts +4 -0
  91. package/dist/cjs/Tooltip/style/index.less +8 -8
  92. package/dist/cjs/Tooltip/tooltip.js +11 -3
  93. package/dist/cjs/Tour/demo/basic.d.ts +3 -0
  94. package/dist/cjs/Tour/demo/basic.js +69 -0
  95. package/dist/cjs/Tour/demo/indicators.d.ts +3 -0
  96. package/dist/cjs/Tour/demo/indicators.js +76 -0
  97. package/dist/cjs/Tour/demo/placement.d.ts +3 -0
  98. package/dist/cjs/Tour/demo/placement.js +80 -0
  99. package/dist/cjs/Tour/demo/scroll.d.ts +3 -0
  100. package/dist/cjs/Tour/demo/scroll.js +72 -0
  101. package/dist/cjs/Tour/index.d.ts +3 -0
  102. package/dist/cjs/Tour/index.js +36 -0
  103. package/dist/cjs/Tour/interface.d.ts +118 -0
  104. package/dist/cjs/Tour/interface.js +17 -0
  105. package/dist/cjs/Tour/style/index.less +103 -0
  106. package/dist/cjs/Tour/tour.d.ts +5 -0
  107. package/dist/cjs/Tour/tour.js +403 -0
  108. package/dist/cjs/Tree/demo/checkable.js +6 -6
  109. package/dist/cjs/Tree/demo/draggable.d.ts +3 -0
  110. package/dist/cjs/Tree/demo/draggable.js +88 -0
  111. package/dist/cjs/Tree/demo/expanded.js +6 -6
  112. package/dist/cjs/Tree/index.d.ts +1 -0
  113. package/dist/cjs/Tree/index.js +3 -1
  114. package/dist/cjs/Tree/interface.d.ts +26 -0
  115. package/dist/cjs/Tree/style/index.less +25 -0
  116. package/dist/cjs/Tree/tree-node.js +38 -4
  117. package/dist/cjs/Tree/tree.d.ts +12 -1
  118. package/dist/cjs/Tree/tree.js +174 -18
  119. package/dist/cjs/Tree/utils/tree-tools.d.ts +21 -0
  120. package/dist/cjs/Tree/utils/tree-tools.js +88 -0
  121. package/dist/cjs/Trigger/style/index.less +17 -0
  122. package/dist/cjs/Trigger/trigger.js +3 -1
  123. package/dist/cjs/hooks/useDebounceFunction.d.ts +1 -1
  124. package/dist/cjs/hooks/useLayoutEffect.d.ts +1 -1
  125. package/dist/cjs/index.d.ts +4 -0
  126. package/dist/cjs/index.js +6 -0
  127. package/dist/cjs/locale/interface.d.ts +7 -0
  128. package/dist/cjs/locale/lang/en_US.js +6 -0
  129. package/dist/cjs/locale/lang/ja_JP.js +6 -0
  130. package/dist/cjs/locale/lang/zh_CN.js +6 -0
  131. package/dist/cjs/locale/lang/zh_TW.js +6 -0
  132. package/dist/cjs/style/color.blue.css +1 -1
  133. package/dist/cjs/style/color.crimson.css +1 -1
  134. package/dist/cjs/style/color.css +18 -1
  135. package/dist/cjs/style/size.css +51 -4
  136. package/dist/cjs/style/themes.css +3 -3
  137. package/dist/cjs/style/variables.css +70 -6
  138. package/dist/cjs/utils/debounce.d.ts +6 -1
  139. package/dist/cjs/utils/debounce.js +9 -1
  140. package/dist/cjs/version.d.ts +1 -1
  141. package/dist/cjs/version.js +1 -1
  142. package/dist/esm/Alert/alert.js +24 -8
  143. package/dist/esm/Alert/style/index.less +3 -0
  144. package/dist/esm/Anchor/anchor-item.js +6 -3
  145. package/dist/esm/Anchor/anchor.js +38 -19
  146. package/dist/esm/Anchor/demo/auto.d.ts +11 -0
  147. package/dist/esm/Anchor/demo/auto.js +62 -0
  148. package/dist/esm/Anchor/demo/basic.js +3 -1
  149. package/dist/esm/Anchor/demo/controlled.js +14 -9
  150. package/dist/esm/Anchor/interface.d.ts +2 -0
  151. package/dist/esm/Anchor/style/index.less +2 -2
  152. package/dist/esm/Button/button.d.ts +1 -1
  153. package/dist/esm/Button/button.js +2 -2
  154. package/dist/esm/Button/style/index.less +23 -8
  155. package/dist/esm/Card/demo/collapsible.js +2 -1
  156. package/dist/esm/Carousel/demo/arrows.js +1 -1
  157. package/dist/esm/Carousel/demo/autoplay.js +1 -1
  158. package/dist/esm/Carousel/demo/effect.js +1 -1
  159. package/dist/esm/Carousel/demo/position.js +1 -1
  160. package/dist/esm/Checkbox/checkbox-group.js +4 -2
  161. package/dist/esm/Checkbox/demo/group.js +1 -0
  162. package/dist/esm/Checkbox/interface.d.ts +5 -0
  163. package/dist/esm/Checkbox/style/index.less +21 -1
  164. package/dist/esm/Config-Provider/interface.d.ts +4 -0
  165. package/dist/esm/Dropdown/demo/placement.js +2 -1
  166. package/dist/esm/Dropdown/dropdown.js +6 -1
  167. package/dist/esm/Dropdown/style/index.less +6 -0
  168. package/dist/esm/Form/Field.js +53 -8
  169. package/dist/esm/Form/Group.js +4 -2
  170. package/dist/esm/Form/demo/form-table.js +8 -6
  171. package/dist/esm/Form/demo/tooltip.d.ts +3 -0
  172. package/dist/esm/Form/demo/tooltip.js +59 -0
  173. package/dist/esm/Form/interface.d.ts +51 -2
  174. package/dist/esm/Form/style/index.less +22 -7
  175. package/dist/esm/Menu/style/index.less +2 -2
  176. package/dist/esm/Popconfirm/popconfirm.js +3 -1
  177. package/dist/esm/Popconfirm/style/index.less +6 -0
  178. package/dist/esm/Popover/popover.js +3 -1
  179. package/dist/esm/Popover/style/index.less +6 -0
  180. package/dist/esm/Progress/progress.js +5 -5
  181. package/dist/esm/Radio/demo/button.js +1 -0
  182. package/dist/esm/Radio/interface.d.ts +4 -0
  183. package/dist/esm/Radio/radio-group.js +9 -2
  184. package/dist/esm/Radio/radio.js +3 -1
  185. package/dist/esm/Radio/style/index.less +26 -5
  186. package/dist/esm/Segmented/demo/basic.d.ts +3 -0
  187. package/dist/esm/Segmented/demo/basic.js +33 -0
  188. package/dist/esm/Segmented/demo/block.d.ts +3 -0
  189. package/dist/esm/Segmented/demo/block.js +29 -0
  190. package/dist/esm/Segmented/demo/disabled.d.ts +3 -0
  191. package/dist/esm/Segmented/demo/disabled.js +22 -0
  192. package/dist/esm/Segmented/demo/size.d.ts +3 -0
  193. package/dist/esm/Segmented/demo/size.js +15 -0
  194. package/dist/esm/Segmented/index.d.ts +3 -0
  195. package/dist/esm/Segmented/index.js +2 -0
  196. package/dist/esm/Segmented/interface.d.ts +82 -0
  197. package/dist/esm/Segmented/interface.js +1 -0
  198. package/dist/esm/Segmented/segmented.d.ts +5 -0
  199. package/dist/esm/Segmented/segmented.js +110 -0
  200. package/dist/esm/Segmented/style/index.less +104 -0
  201. package/dist/esm/Select/option.js +4 -2
  202. package/dist/esm/Select/options.js +5 -3
  203. package/dist/esm/Select/select.js +1 -0
  204. package/dist/esm/Skeleton/demo/basic.js +2 -8
  205. package/dist/esm/Space/interface.d.ts +4 -0
  206. package/dist/esm/Space/space.js +24 -13
  207. package/dist/esm/Spin/spin.js +2 -1
  208. package/dist/esm/Splitter/demo/basic.js +2 -0
  209. package/dist/esm/Splitter/demo/vertical.js +13 -5
  210. package/dist/esm/Splitter/index.d.ts +1 -1
  211. package/dist/esm/Splitter/interface.d.ts +9 -3
  212. package/dist/esm/Splitter/splitter-handler.d.ts +1 -1
  213. package/dist/esm/Splitter/splitter-handler.js +3 -1
  214. package/dist/esm/Splitter/splitter.d.ts +2 -9
  215. package/dist/esm/Splitter/splitter.js +59 -56
  216. package/dist/esm/Splitter/style/index.less +21 -0
  217. package/dist/esm/Steps/step.js +4 -1
  218. package/dist/esm/Steps/style/index.less +8 -2
  219. package/dist/esm/Switch/demo/content.js +12 -3
  220. package/dist/esm/Switch/style/index.less +16 -0
  221. package/dist/esm/Switch/switch.js +7 -5
  222. package/dist/esm/Table/demo/size.js +2 -7
  223. package/dist/esm/Table/interface.d.ts +5 -1
  224. package/dist/esm/Table/theader/cell.js +2 -3
  225. package/dist/esm/Tabs/hooks/useTabScroll.d.ts +1 -1
  226. package/dist/esm/Tabs/interface.d.ts +1 -1
  227. package/dist/esm/Tabs/style/index.less +4 -0
  228. package/dist/esm/Tabs/tab-header/index.js +11 -5
  229. package/dist/esm/Tag/demo/size.js +6 -2
  230. package/dist/esm/Tag/style/index.less +1 -0
  231. package/dist/esm/Tooltip/interface.d.ts +4 -0
  232. package/dist/esm/Tooltip/style/index.less +8 -8
  233. package/dist/esm/Tooltip/tooltip.js +14 -2
  234. package/dist/esm/Tour/demo/basic.d.ts +3 -0
  235. package/dist/esm/Tour/demo/basic.js +69 -0
  236. package/dist/esm/Tour/demo/indicators.d.ts +3 -0
  237. package/dist/esm/Tour/demo/indicators.js +73 -0
  238. package/dist/esm/Tour/demo/placement.d.ts +3 -0
  239. package/dist/esm/Tour/demo/placement.js +53 -0
  240. package/dist/esm/Tour/demo/scroll.d.ts +3 -0
  241. package/dist/esm/Tour/demo/scroll.js +58 -0
  242. package/dist/esm/Tour/index.d.ts +3 -0
  243. package/dist/esm/Tour/index.js +2 -0
  244. package/dist/esm/Tour/interface.d.ts +118 -0
  245. package/dist/esm/Tour/interface.js +1 -0
  246. package/dist/esm/Tour/style/index.less +103 -0
  247. package/dist/esm/Tour/tour.d.ts +5 -0
  248. package/dist/esm/Tour/tour.js +383 -0
  249. package/dist/esm/Tree/demo/checkable.js +6 -6
  250. package/dist/esm/Tree/demo/draggable.d.ts +3 -0
  251. package/dist/esm/Tree/demo/draggable.js +61 -0
  252. package/dist/esm/Tree/demo/expanded.js +6 -6
  253. package/dist/esm/Tree/index.d.ts +1 -0
  254. package/dist/esm/Tree/index.js +1 -0
  255. package/dist/esm/Tree/interface.d.ts +26 -0
  256. package/dist/esm/Tree/style/index.less +25 -0
  257. package/dist/esm/Tree/tree-node.js +29 -4
  258. package/dist/esm/Tree/tree.d.ts +12 -1
  259. package/dist/esm/Tree/tree.js +135 -4
  260. package/dist/esm/Tree/utils/tree-tools.d.ts +21 -0
  261. package/dist/esm/Tree/utils/tree-tools.js +128 -1
  262. package/dist/esm/Trigger/style/index.less +17 -0
  263. package/dist/esm/Trigger/trigger.js +4 -3
  264. package/dist/esm/hooks/useDebounceFunction.d.ts +1 -1
  265. package/dist/esm/hooks/useLayoutEffect.d.ts +1 -1
  266. package/dist/esm/index.d.ts +4 -0
  267. package/dist/esm/index.js +4 -0
  268. package/dist/esm/locale/interface.d.ts +7 -0
  269. package/dist/esm/locale/lang/en_US.js +6 -0
  270. package/dist/esm/locale/lang/ja_JP.js +6 -0
  271. package/dist/esm/locale/lang/zh_CN.js +6 -0
  272. package/dist/esm/locale/lang/zh_TW.js +6 -0
  273. package/dist/esm/style/color.blue.css +1 -1
  274. package/dist/esm/style/color.crimson.css +1 -1
  275. package/dist/esm/style/color.css +18 -1
  276. package/dist/esm/style/size.css +51 -4
  277. package/dist/esm/style/themes.css +3 -3
  278. package/dist/esm/style/variables.css +70 -6
  279. package/dist/esm/utils/debounce.d.ts +6 -1
  280. package/dist/esm/utils/debounce.js +9 -2
  281. package/dist/esm/version.d.ts +1 -1
  282. package/dist/esm/version.js +1 -1
  283. package/dist/umd/yee-c.min.css +3 -3
  284. package/dist/umd/yee-c.min.js +1 -1
  285. package/package.json +21 -23
  286. package/src/Alert/alert.tsx +10 -4
  287. package/src/Alert/style/index.less +3 -0
  288. package/src/Anchor/anchor-item.tsx +7 -2
  289. package/src/Anchor/anchor.tsx +49 -23
  290. package/src/Anchor/demo/auto.tsx +55 -0
  291. package/src/Anchor/demo/basic.tsx +7 -1
  292. package/src/Anchor/demo/controlled.tsx +18 -14
  293. package/src/Anchor/index.en-US.md +17 -0
  294. package/src/Anchor/index.zh-CN.md +17 -0
  295. package/src/Anchor/interface.ts +2 -0
  296. package/src/Anchor/style/index.less +2 -2
  297. package/src/Button/button.tsx +2 -2
  298. package/src/Button/style/index.less +23 -8
  299. package/src/Card/demo/collapsible.tsx +1 -0
  300. package/src/Carousel/demo/arrows.tsx +1 -1
  301. package/src/Carousel/demo/autoplay.tsx +1 -1
  302. package/src/Carousel/demo/effect.tsx +1 -1
  303. package/src/Carousel/demo/position.tsx +1 -1
  304. package/src/Checkbox/checkbox-group.tsx +5 -1
  305. package/src/Checkbox/demo/group.tsx +1 -0
  306. package/src/Checkbox/interface.ts +5 -0
  307. package/src/Checkbox/style/index.less +21 -1
  308. package/src/Config-Provider/index.en-US.md +2 -0
  309. package/src/Config-Provider/index.zh-CN.md +2 -0
  310. package/src/Config-Provider/interface.ts +4 -0
  311. package/src/Dropdown/demo/placement.tsx +1 -0
  312. package/src/Dropdown/dropdown.tsx +2 -0
  313. package/src/Dropdown/style/index.less +6 -0
  314. package/src/Form/Field.tsx +70 -9
  315. package/src/Form/Group.tsx +4 -1
  316. package/src/Form/demo/form-table.tsx +7 -7
  317. package/src/Form/demo/tooltip.tsx +72 -0
  318. package/src/Form/form-store.ts +1 -1
  319. package/src/Form/index.en-US.md +6 -0
  320. package/src/Form/index.zh-CN.md +87 -85
  321. package/src/Form/interface.ts +53 -2
  322. package/src/Form/style/index.less +22 -7
  323. package/src/Menu/style/index.less +2 -2
  324. package/src/Popconfirm/popconfirm.tsx +1 -1
  325. package/src/Popconfirm/style/index.less +6 -0
  326. package/src/Popover/popover.tsx +1 -1
  327. package/src/Popover/style/index.less +6 -0
  328. package/src/Progress/progress.tsx +2 -2
  329. package/src/Radio/demo/button.tsx +1 -0
  330. package/src/Radio/index.en-US.md +2 -0
  331. package/src/Radio/index.zh-CN.md +2 -0
  332. package/src/Radio/interface.ts +4 -0
  333. package/src/Radio/radio-group.tsx +9 -1
  334. package/src/Radio/radio.tsx +2 -1
  335. package/src/Radio/style/index.less +26 -5
  336. package/src/Segmented/demo/basic.tsx +24 -0
  337. package/src/Segmented/demo/block.tsx +17 -0
  338. package/src/Segmented/demo/disabled.tsx +18 -0
  339. package/src/Segmented/demo/size.tsx +10 -0
  340. package/src/Segmented/index.en-US.md +47 -0
  341. package/src/Segmented/index.ts +12 -0
  342. package/src/Segmented/index.zh-CN.md +47 -0
  343. package/src/Segmented/interface.ts +87 -0
  344. package/src/Segmented/segmented.tsx +134 -0
  345. package/src/Segmented/style/index.less +104 -0
  346. package/src/Select/option.tsx +2 -1
  347. package/src/Select/options.tsx +7 -2
  348. package/src/Select/select.tsx +1 -0
  349. package/src/Skeleton/demo/basic.tsx +3 -3
  350. package/src/Space/interface.ts +4 -0
  351. package/src/Space/space.tsx +40 -16
  352. package/src/Spin/spin.tsx +1 -0
  353. package/src/Splitter/demo/basic.tsx +2 -2
  354. package/src/Splitter/demo/vertical.tsx +19 -5
  355. package/src/Splitter/index.ts +5 -1
  356. package/src/Splitter/interface.ts +10 -3
  357. package/src/Splitter/splitter-handler.tsx +4 -2
  358. package/src/Splitter/splitter.tsx +55 -60
  359. package/src/Splitter/style/index.less +21 -0
  360. package/src/Steps/step.tsx +1 -1
  361. package/src/Steps/style/index.less +8 -2
  362. package/src/Switch/demo/content.tsx +15 -5
  363. package/src/Switch/style/index.less +16 -0
  364. package/src/Switch/switch.tsx +14 -6
  365. package/src/Table/demo/size.tsx +3 -3
  366. package/src/Table/index.en-US.md +1 -0
  367. package/src/Table/index.zh-CN.md +51 -50
  368. package/src/Table/interface.ts +5 -1
  369. package/src/Table/theader/cell.tsx +2 -9
  370. package/src/Tabs/interface.ts +1 -1
  371. package/src/Tabs/style/index.less +4 -0
  372. package/src/Tabs/tab-header/index.tsx +26 -5
  373. package/src/Tag/demo/size.tsx +2 -2
  374. package/src/Tag/style/index.less +1 -0
  375. package/src/Tooltip/index.en-US.md +1 -0
  376. package/src/Tooltip/index.zh-CN.md +1 -0
  377. package/src/Tooltip/interface.ts +4 -0
  378. package/src/Tooltip/style/index.less +8 -8
  379. package/src/Tooltip/tooltip.tsx +10 -1
  380. package/src/Tour/demo/basic.tsx +52 -0
  381. package/src/Tour/demo/indicators.tsx +63 -0
  382. package/src/Tour/demo/placement.tsx +55 -0
  383. package/src/Tour/demo/scroll.tsx +49 -0
  384. package/src/Tour/index.en-US.md +61 -0
  385. package/src/Tour/index.ts +10 -0
  386. package/src/Tour/index.zh-CN.md +61 -0
  387. package/src/Tour/interface.ts +126 -0
  388. package/src/Tour/style/index.less +103 -0
  389. package/src/Tour/tour.tsx +399 -0
  390. package/src/Tree/demo/checkable.tsx +6 -6
  391. package/src/Tree/demo/draggable.tsx +58 -0
  392. package/src/Tree/demo/expanded.tsx +7 -7
  393. package/src/Tree/index.en-US.md +3 -0
  394. package/src/Tree/index.ts +1 -0
  395. package/src/Tree/index.zh-CN.md +3 -0
  396. package/src/Tree/interface.ts +28 -0
  397. package/src/Tree/style/index.less +25 -0
  398. package/src/Tree/tree-node.tsx +26 -0
  399. package/src/Tree/tree.tsx +183 -2
  400. package/src/Tree/utils/tree-tools.ts +107 -0
  401. package/src/Trigger/style/index.less +17 -0
  402. package/src/Trigger/trigger.tsx +3 -1
  403. package/src/index.ts +6 -0
  404. package/src/locale/interface.ts +9 -0
  405. package/src/locale/lang/en_US.ts +7 -0
  406. package/src/locale/lang/ja_JP.ts +7 -0
  407. package/src/locale/lang/zh_CN.ts +7 -0
  408. package/src/locale/lang/zh_TW.ts +7 -0
  409. package/src/style/color.blue.css +1 -1
  410. package/src/style/color.crimson.css +1 -1
  411. package/src/style/color.css +18 -1
  412. package/src/style/size.css +51 -4
  413. package/src/utils/debounce.ts +22 -3
  414. package/src/version.ts +1 -1
  415. package/dist/cjs/utils/x.d.ts +0 -11
  416. package/dist/cjs/utils/x.js +0 -51
  417. package/dist/esm/utils/x.d.ts +0 -11
  418. package/dist/esm/utils/x.js +0 -49
  419. package/src/utils/x.ts +0 -33
@@ -0,0 +1,383 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["prefixCls", "className", "style", "classNames", "styles", "open", "steps", "current", "defaultCurrent", "onClose", "onFinish", "onChange", "placement", "mask", "closable", "closeIcon", "maskClosable", "indicatorsRender", "scrollIntoViewOptions"];
3
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
13
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
14
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
+ import clsx from 'clsx';
18
+ import { X } from 'lucide-react';
19
+ import { motion } from 'motion/react';
20
+ import React, { useCallback, useContext, useLayoutEffect, useMemo, useRef, useState } from 'react';
21
+ import { createPortal } from 'react-dom';
22
+ import Button from "../Button";
23
+ import { GlobalContext } from "../Config-Provider";
24
+ import useEsc from "../hooks/useEsc";
25
+ import useLatest from "../hooks/useLatest";
26
+ import useMergedState from "../hooks/useMergedState";
27
+ import { useLocale } from "../locale";
28
+ import mergeContextToProps from "../utils/mergeContextToProps";
29
+ import "./style/index.less";
30
+ var GAP = 12;
31
+ var resolveTarget = function resolveTarget(target) {
32
+ if (!target) return null;
33
+ if (typeof target === 'function') {
34
+ try {
35
+ return target();
36
+ } catch (_unused) {
37
+ return null;
38
+ }
39
+ }
40
+ if (typeof target === 'string') {
41
+ if (typeof document === 'undefined') return null;
42
+ return document.querySelector(target);
43
+ }
44
+ return target;
45
+ };
46
+ var SIDE_PREFIXES = ['top', 'bottom', 'left', 'right'];
47
+
48
+ // Split a 12-way Placement into a base side + cross-axis alignment.
49
+ // 'bottom' -> { side: 'bottom', align: 'center' }
50
+ // 'topLeft' -> { side: 'top', align: 'start' }
51
+ // 'leftBottom' -> { side: 'left', align: 'end' }
52
+ var parsePlacement = function parsePlacement(p) {
53
+ var _SIDE_PREFIXES$find;
54
+ if (!p) return {
55
+ side: 'bottom',
56
+ align: 'center'
57
+ };
58
+ var side = (_SIDE_PREFIXES$find = SIDE_PREFIXES.find(function (s) {
59
+ return p.startsWith(s);
60
+ })) !== null && _SIDE_PREFIXES$find !== void 0 ? _SIDE_PREFIXES$find : 'bottom';
61
+ var rest = p.slice(side.length);
62
+ var align = 'center';
63
+ if (side === 'top' || side === 'bottom') {
64
+ if (rest === 'Left') align = 'start';else if (rest === 'Right') align = 'end';
65
+ } else if (rest === 'Top') {
66
+ align = 'start';
67
+ } else if (rest === 'Bottom') {
68
+ align = 'end';
69
+ }
70
+ return {
71
+ side: side,
72
+ align: align
73
+ };
74
+ };
75
+ var OPPOSITE_SIDE = {
76
+ top: 'bottom',
77
+ bottom: 'top',
78
+ left: 'right',
79
+ right: 'left'
80
+ };
81
+
82
+ // Compute the card's fixed position from the highlight rect + placement, with
83
+ // viewport flip + clamp. Returning rect's origin while size is unknown lets the
84
+ // caller keep the card hidden until measured.
85
+ var computeCardPos = function computeCardPos(rect, placement, size, gap) {
86
+ var cw = size.width,
87
+ ch = size.height;
88
+ var top = rect.top,
89
+ left = rect.left,
90
+ width = rect.width,
91
+ height = rect.height;
92
+ if (cw === 0 || ch === 0) {
93
+ return {
94
+ top: top,
95
+ left: left
96
+ };
97
+ }
98
+ var vw = window.innerWidth;
99
+ var vh = window.innerHeight;
100
+ var _parsePlacement = parsePlacement(placement),
101
+ preferredSide = _parsePlacement.side,
102
+ align = _parsePlacement.align;
103
+
104
+ // Lay the card out for a given side; align shifts it along the cross axis.
105
+ var layoutFor = function layoutFor(side) {
106
+ if (side === 'top' || side === 'bottom') {
107
+ var _main = side === 'top' ? top - ch - gap : top + height + gap;
108
+ var _cross;
109
+ if (align === 'start') _cross = left;else if (align === 'end') _cross = left + width - cw;else _cross = left + width / 2 - cw / 2;
110
+ return {
111
+ top: _main,
112
+ left: _cross
113
+ };
114
+ }
115
+ var main = side === 'left' ? left - cw - gap : left + width + gap;
116
+ var cross;
117
+ if (align === 'start') cross = top;else if (align === 'end') cross = top + height - ch;else cross = top + height / 2 - ch / 2;
118
+ return {
119
+ top: cross,
120
+ left: main
121
+ };
122
+ };
123
+
124
+ // True when the card fits on the main axis for this side.
125
+ var fits = function fits(side, pos) {
126
+ if (side === 'top') return pos.top >= gap;
127
+ if (side === 'bottom') return pos.top + ch <= vh - gap;
128
+ if (side === 'left') return pos.left >= gap;
129
+ return pos.left + cw <= vw - gap;
130
+ };
131
+ var side = preferredSide;
132
+ var pos = layoutFor(side);
133
+
134
+ // Flip to the opposite side when the preferred one overflows and the
135
+ // opposite fits. Alignment is preserved across the flip.
136
+ var flippedSide = OPPOSITE_SIDE[side];
137
+ var flipped = layoutFor(flippedSide);
138
+ if (!fits(side, pos) && fits(flippedSide, flipped)) {
139
+ side = flippedSide;
140
+ pos = flipped;
141
+ }
142
+
143
+ // Clamp into the viewport (mostly fixes cross-axis overflow).
144
+ return {
145
+ top: Math.max(gap, Math.min(pos.top, vh - ch - gap)),
146
+ left: Math.max(gap, Math.min(pos.left, vw - cw - gap))
147
+ };
148
+ };
149
+ var Tour = function Tour(baseprops) {
150
+ var _locale$tour, _step$placement;
151
+ var _useContext = useContext(GlobalContext),
152
+ tourCtx = _useContext.tour;
153
+ var props = mergeContextToProps(baseprops, tourCtx);
154
+ var _useLocale = useLocale(),
155
+ locale = _useLocale.locale;
156
+ var tourLocale = (_locale$tour = locale === null || locale === void 0 ? void 0 : locale.tour) !== null && _locale$tour !== void 0 ? _locale$tour : {
157
+ previous: 'Previous',
158
+ next: 'Next',
159
+ finish: 'Finish',
160
+ skip: 'Skip'
161
+ };
162
+ var _props$prefixCls = props.prefixCls,
163
+ prefixCls = _props$prefixCls === void 0 ? 'yee-tour' : _props$prefixCls,
164
+ className = props.className,
165
+ style = props.style,
166
+ classNames = props.classNames,
167
+ styles = props.styles,
168
+ open = props.open,
169
+ _props$steps = props.steps,
170
+ steps = _props$steps === void 0 ? [] : _props$steps,
171
+ current = props.current,
172
+ _props$defaultCurrent = props.defaultCurrent,
173
+ defaultCurrent = _props$defaultCurrent === void 0 ? 0 : _props$defaultCurrent,
174
+ onClose = props.onClose,
175
+ onFinish = props.onFinish,
176
+ onChange = props.onChange,
177
+ _props$placement = props.placement,
178
+ placement = _props$placement === void 0 ? 'bottom' : _props$placement,
179
+ _props$mask = props.mask,
180
+ mask = _props$mask === void 0 ? true : _props$mask,
181
+ _props$closable = props.closable,
182
+ closable = _props$closable === void 0 ? true : _props$closable,
183
+ closeIcon = props.closeIcon,
184
+ _props$maskClosable = props.maskClosable,
185
+ maskClosable = _props$maskClosable === void 0 ? false : _props$maskClosable,
186
+ indicatorsRender = props.indicatorsRender,
187
+ _props$scrollIntoView = props.scrollIntoViewOptions,
188
+ scrollIntoViewOptions = _props$scrollIntoView === void 0 ? true : _props$scrollIntoView,
189
+ rest = _objectWithoutProperties(props, _excluded);
190
+ var _useMergedState = useMergedState(defaultCurrent, {
191
+ value: current,
192
+ defaultValue: defaultCurrent
193
+ }),
194
+ _useMergedState2 = _slicedToArray(_useMergedState, 2),
195
+ mergedCurrent = _useMergedState2[0],
196
+ setMergedCurrent = _useMergedState2[1];
197
+ var step = steps[mergedCurrent];
198
+ var total = steps.length;
199
+ var isLast = mergedCurrent >= total - 1;
200
+ var stepPlacement = (_step$placement = step === null || step === void 0 ? void 0 : step.placement) !== null && _step$placement !== void 0 ? _step$placement : placement;
201
+ var targetEl = useMemo(function () {
202
+ return resolveTarget(step === null || step === void 0 ? void 0 : step.target);
203
+ }, [step, open]);
204
+ var _useState = useState(null),
205
+ _useState2 = _slicedToArray(_useState, 2),
206
+ rect = _useState2[0],
207
+ setRect = _useState2[1];
208
+ var rafRef = useRef(null);
209
+
210
+ // Keep the latest scrollIntoViewOptions in a ref so the tracking effect below
211
+ // doesn't re-run (and re-scroll) when the caller passes an inline object on
212
+ // every render — that would loop with rAF → setRect → re-render forever.
213
+ var scrollIntoViewOptionsRef = useLatest(scrollIntoViewOptions);
214
+
215
+ // Track target rect: recompute on open / step / scroll / resize (rAF throttled).
216
+ useLayoutEffect(function () {
217
+ if (!open || !targetEl) {
218
+ setRect(null);
219
+ return;
220
+ }
221
+ var update = function update() {
222
+ if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
223
+ rafRef.current = requestAnimationFrame(function () {
224
+ setRect(targetEl.getBoundingClientRect());
225
+ });
226
+ };
227
+ update();
228
+ // Bring the target into view, but only when it isn't already — the default
229
+ // (`true` ≈ `{ block: 'start' }`) would otherwise yank an already-visible
230
+ // element to the top of the viewport on every step change. A custom options
231
+ // object is honored as-is (its own `nearest` alignment handles the visible
232
+ // case), and `false` disables auto-scroll entirely.
233
+ var scrollTargetIfNeeded = function scrollTargetIfNeeded() {
234
+ var opts = scrollIntoViewOptionsRef.current;
235
+ if (opts === false) return;
236
+ if (opts === true) {
237
+ var vr = targetEl.getBoundingClientRect();
238
+ var inViewport = vr.top >= 0 && vr.left >= 0 && vr.bottom <= window.innerHeight && vr.right <= window.innerWidth;
239
+ if (inViewport) return;
240
+ }
241
+ try {
242
+ var _targetEl$scrollIntoV;
243
+ (_targetEl$scrollIntoV = targetEl.scrollIntoView) === null || _targetEl$scrollIntoV === void 0 || _targetEl$scrollIntoV.call(targetEl, opts);
244
+ } catch (_unused2) {
245
+ // noop
246
+ }
247
+ };
248
+ scrollTargetIfNeeded();
249
+ window.addEventListener('resize', update);
250
+ window.addEventListener('scroll', update, true);
251
+ return function () {
252
+ if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
253
+ window.removeEventListener('resize', update);
254
+ window.removeEventListener('scroll', update, true);
255
+ };
256
+ }, [open, targetEl, mergedCurrent]);
257
+ useEsc({
258
+ enabled: open,
259
+ onEsc: function onEsc() {
260
+ return onClose === null || onClose === void 0 ? void 0 : onClose();
261
+ }
262
+ });
263
+ var handleNext = useCallback(function () {
264
+ if (isLast) {
265
+ onFinish === null || onFinish === void 0 || onFinish();
266
+ return;
267
+ }
268
+ var nextCur = mergedCurrent + 1;
269
+ setMergedCurrent(nextCur);
270
+ onChange === null || onChange === void 0 || onChange(nextCur);
271
+ }, [isLast, mergedCurrent, onChange, onFinish, setMergedCurrent]);
272
+ var handlePrev = useCallback(function () {
273
+ if (mergedCurrent <= 0) return;
274
+ var prevCur = mergedCurrent - 1;
275
+ setMergedCurrent(prevCur);
276
+ onChange === null || onChange === void 0 || onChange(prevCur);
277
+ }, [mergedCurrent, onChange, setMergedCurrent]);
278
+
279
+ // Measure the card so we can position it against the highlight rect.
280
+ var cardRef = useRef(null);
281
+ var _useState3 = useState({
282
+ width: 0,
283
+ height: 0
284
+ }),
285
+ _useState4 = _slicedToArray(_useState3, 2),
286
+ cardSize = _useState4[0],
287
+ setCardSize = _useState4[1];
288
+ useLayoutEffect(function () {
289
+ if (!open) return;
290
+ var node = cardRef.current;
291
+ if (!node) return;
292
+ var r = node.getBoundingClientRect();
293
+ setCardSize({
294
+ width: r.width,
295
+ height: r.height
296
+ });
297
+ }, [open, step]);
298
+ var cardPos = useMemo(function () {
299
+ if (!cardSize.width || !cardSize.height) return null;
300
+ if (rect) return computeCardPos(rect, stepPlacement, cardSize, GAP);
301
+ // No target: center the card in the viewport.
302
+ return {
303
+ top: window.innerHeight / 2 - cardSize.height / 2,
304
+ left: window.innerWidth / 2 - cardSize.width / 2
305
+ };
306
+ }, [rect, stepPlacement, cardSize]);
307
+ if (!open || typeof document === 'undefined' || !step) {
308
+ return null;
309
+ }
310
+ return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement("div", _extends({
311
+ className: clsx(prefixCls, className),
312
+ style: style
313
+ }, rest), mask ? /*#__PURE__*/React.createElement("div", {
314
+ className: clsx("".concat(prefixCls, "-mask"), !rect && "".concat(prefixCls, "-mask-full")),
315
+ onClick: maskClosable ? onClose : undefined
316
+ }) : null, mask && rect ? /*#__PURE__*/React.createElement(motion.div, {
317
+ className: clsx("".concat(prefixCls, "-highlight"), classNames === null || classNames === void 0 ? void 0 : classNames.highlight),
318
+ initial: false,
319
+ animate: {
320
+ top: rect.top,
321
+ left: rect.left,
322
+ width: rect.width,
323
+ height: rect.height
324
+ },
325
+ transition: {
326
+ type: 'spring',
327
+ visualDuration: 0.3,
328
+ bounce: 0.2
329
+ },
330
+ style: styles === null || styles === void 0 ? void 0 : styles.highlight
331
+ }) : null, /*#__PURE__*/React.createElement(motion.div, {
332
+ ref: cardRef,
333
+ className: clsx("".concat(prefixCls, "-content"), classNames === null || classNames === void 0 ? void 0 : classNames.content, step === null || step === void 0 ? void 0 : step.className),
334
+ initial: false,
335
+ animate: cardPos ? {
336
+ top: cardPos.top,
337
+ left: cardPos.left
338
+ } : {
339
+ top: 0,
340
+ left: 0
341
+ },
342
+ transition: {
343
+ type: 'spring',
344
+ visualDuration: 0.3,
345
+ bounce: 0.2
346
+ },
347
+ style: _objectSpread({
348
+ position: 'fixed',
349
+ visibility: cardPos ? 'visible' : 'hidden'
350
+ }, styles === null || styles === void 0 ? void 0 : styles.content)
351
+ }, closable ? /*#__PURE__*/React.createElement(Button, {
352
+ type: "text",
353
+ className: "".concat(prefixCls, "-close"),
354
+ onClick: onClose,
355
+ size: "small",
356
+ icon: closeIcon !== null && closeIcon !== void 0 ? closeIcon : /*#__PURE__*/React.createElement(X, {
357
+ size: 16
358
+ }),
359
+ "aria-label": tourLocale.skip
360
+ }) : null, step !== null && step !== void 0 && step.title ? /*#__PURE__*/React.createElement("div", {
361
+ className: clsx("".concat(prefixCls, "-header"), classNames === null || classNames === void 0 ? void 0 : classNames.header),
362
+ style: styles === null || styles === void 0 ? void 0 : styles.header
363
+ }, step.title) : null, /*#__PURE__*/React.createElement("div", {
364
+ className: clsx("".concat(prefixCls, "-body"), classNames === null || classNames === void 0 ? void 0 : classNames.body),
365
+ style: styles === null || styles === void 0 ? void 0 : styles.body
366
+ }, step === null || step === void 0 ? void 0 : step.description), /*#__PURE__*/React.createElement("div", {
367
+ className: clsx("".concat(prefixCls, "-footer"), classNames === null || classNames === void 0 ? void 0 : classNames.footer),
368
+ style: styles === null || styles === void 0 ? void 0 : styles.footer
369
+ }, /*#__PURE__*/React.createElement("span", {
370
+ className: "".concat(prefixCls, "-indicators")
371
+ }, indicatorsRender ? indicatorsRender(mergedCurrent, total) : "".concat(mergedCurrent + 1, " / ").concat(total)), /*#__PURE__*/React.createElement("span", {
372
+ className: "".concat(prefixCls, "-buttons")
373
+ }, mergedCurrent > 0 ? /*#__PURE__*/React.createElement(Button, {
374
+ size: "small",
375
+ onClick: handlePrev
376
+ }, tourLocale.previous) : null, /*#__PURE__*/React.createElement(Button, {
377
+ type: "primary",
378
+ size: "small",
379
+ onClick: handleNext
380
+ }, isLast ? tourLocale.finish : tourLocale.next))))), document.body);
381
+ };
382
+ Tour.displayName = 'Tour';
383
+ export default Tour;
@@ -13,23 +13,23 @@ export default (function () {
13
13
  setCheckedKeys = _useState2[1];
14
14
  var treeData = [{
15
15
  label: 'parent 1',
16
- key: '0-0',
16
+ key: 1,
17
17
  children: [{
18
18
  label: 'parent 1-0',
19
- key: '0-0-0',
19
+ key: 10,
20
20
  children: [{
21
21
  label: 'leaf',
22
- key: '0-0-0-0'
22
+ key: 100
23
23
  }, {
24
24
  label: 'leaf',
25
- key: '0-0-0-1'
25
+ key: 101
26
26
  }]
27
27
  }, {
28
28
  label: 'parent 1-1',
29
- key: '0-0-1',
29
+ key: 20,
30
30
  children: [{
31
31
  label: 'leaf',
32
- key: '0-0-1-0'
32
+ key: 201
33
33
  }]
34
34
  }]
35
35
  }];
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,61 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { Tree, moveTreeNode } from "../..";
8
+ import React, { useState } from 'react';
9
+ var FIELD_NAMES = {
10
+ key: 'key',
11
+ label: 'label',
12
+ children: 'children'
13
+ };
14
+ export default (function () {
15
+ var _useState = useState([{
16
+ label: 'parent 1',
17
+ key: '0-0',
18
+ children: [{
19
+ label: 'parent 1-0',
20
+ key: '0-0-0',
21
+ children: [{
22
+ label: 'leaf-1',
23
+ key: '0-0-0-0'
24
+ }, {
25
+ label: 'leaf-2',
26
+ key: '0-0-0-1'
27
+ }]
28
+ }, {
29
+ label: 'parent 1-1',
30
+ key: '0-0-1',
31
+ children: [{
32
+ label: 'leaf-3',
33
+ key: '0-0-1-0'
34
+ }]
35
+ }]
36
+ }, {
37
+ label: 'parent 2',
38
+ key: '0-1',
39
+ children: [{
40
+ label: 'leaf-4',
41
+ key: '0-1-0'
42
+ }]
43
+ }]),
44
+ _useState2 = _slicedToArray(_useState, 2),
45
+ data = _useState2[0],
46
+ setData = _useState2[1];
47
+ return /*#__PURE__*/React.createElement(Tree, {
48
+ draggable: true,
49
+ defaultExpandAll: true,
50
+ dataSource: data,
51
+ onDrop: function onDrop(info) {
52
+ return setData(function (prev) {
53
+ return moveTreeNode(prev, {
54
+ dragKey: info.dragKey,
55
+ dropKey: info.dropKey,
56
+ position: info.position
57
+ }, FIELD_NAMES);
58
+ });
59
+ }
60
+ });
61
+ });
@@ -12,23 +12,23 @@ export default (function () {
12
12
  expandedKeys = _useState2[0],
13
13
  setExpandedKeys = _useState2[1];
14
14
  var treeData = [{
15
- title: 'parent 1',
15
+ label: 'parent 1',
16
16
  key: '0-0',
17
17
  children: [{
18
- title: 'parent 1-0',
18
+ label: 'parent 1-0',
19
19
  key: '0-0-0',
20
20
  children: [{
21
- title: 'leaf',
21
+ label: 'leaf',
22
22
  key: '0-0-0-0'
23
23
  }, {
24
- title: 'leaf',
24
+ label: 'leaf',
25
25
  key: '0-0-0-1'
26
26
  }]
27
27
  }, {
28
- title: 'parent 1-1',
28
+ label: 'parent 1-1',
29
29
  key: '0-0-1',
30
30
  children: [{
31
- title: 'leaf',
31
+ label: 'leaf',
32
32
  key: '0-0-1-0'
33
33
  }]
34
34
  }]
@@ -1,3 +1,4 @@
1
1
  import Tree from './tree';
2
2
  export type { TreeProps } from './interface';
3
+ export { moveTreeNode } from './utils/tree-tools';
3
4
  export default Tree;
@@ -1,2 +1,3 @@
1
1
  import Tree from "./tree";
2
+ export { moveTreeNode } from "./utils/tree-tools";
2
3
  export default Tree;
@@ -1,5 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export type SemanticType = '';
3
+ export type DragPosition = 'before' | 'after' | 'inside';
4
+ export type { MoveInfo } from './utils/tree-tools';
3
5
  export type TreeNode<T> = {
4
6
  /**
5
7
  * uid
@@ -102,6 +104,30 @@ export interface TreeProps<T> {
102
104
  * Whether to allow dragging
103
105
  */
104
106
  draggable?: boolean;
107
+ /**
108
+ * Whether to allow dropping a dragged node at the given position.
109
+ * Return false to forbid the drop (cursor shows "no-drop").
110
+ */
111
+ allowDrop?: (info: {
112
+ dragNode: T;
113
+ dropNode: T;
114
+ position: DragPosition;
115
+ }) => boolean;
116
+ /**
117
+ * Callback after a node is dropped. Pure controlled: the Tree does not
118
+ * mutate dataSource — reorder it yourself (e.g. with `moveTreeNode`).
119
+ */
120
+ onDrop?: (info: {
121
+ /** Original data of the dragged node */
122
+ dragNode: T;
123
+ /** Original data of the target node */
124
+ dropNode: T;
125
+ dragKey: string | number;
126
+ dropKey: string | number;
127
+ position: DragPosition;
128
+ /** Convenience flag: true when position is 'before' or 'after' */
129
+ dropToGap: boolean;
130
+ }) => void;
105
131
  /**
106
132
  * Whether to show connecting lines
107
133
  */
@@ -2,11 +2,36 @@
2
2
 
3
3
  @{pls} {
4
4
  &-node {
5
+ position: relative;
5
6
  display: flex;
6
7
  align-items: center;
7
8
  justify-content: flex-start;
8
9
  height: var(--yee-tree-node-height);
9
10
 
11
+ &[draggable='true'] {
12
+ cursor: grab;
13
+ }
14
+
15
+ &-dragging {
16
+ opacity: 0.4;
17
+ }
18
+
19
+ &-drag-over-before {
20
+ box-shadow: inset 0 2px 0 0 var(--yee-primary-color);
21
+ }
22
+
23
+ &-drag-over-after {
24
+ box-shadow: inset 0 -2px 0 0 var(--yee-primary-color);
25
+ }
26
+
27
+ &-drag-over-inside {
28
+ background: color-mix(
29
+ in srgb,
30
+ var(--yee-primary-color) 12%,
31
+ transparent
32
+ );
33
+ }
34
+
10
35
  &-switcher {
11
36
  display: inline-flex;
12
37
  align-items: center;
@@ -1,4 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
3
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
4
5
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -32,9 +33,16 @@ var Node = function Node(props) {
32
33
  checkedKeys = _useContext.checkedKeys,
33
34
  expandedKeys = _useContext.expandedKeys,
34
35
  switcherIcon = _useContext.switcherIcon,
36
+ draggable = _useContext.draggable,
37
+ draggingKey = _useContext.draggingKey,
38
+ dropState = _useContext.dropState,
35
39
  onCheck = _useContext.onCheck,
36
40
  onSelect = _useContext.onSelect,
37
- onExpand = _useContext.onExpand;
41
+ onExpand = _useContext.onExpand,
42
+ onNodeDragStart = _useContext.onNodeDragStart,
43
+ onNodeDragOver = _useContext.onNodeDragOver,
44
+ onNodeDragLeave = _useContext.onNodeDragLeave,
45
+ onNodeDrop = _useContext.onNodeDrop;
38
46
  var expanded = expandedKeys.includes(key);
39
47
  var checked = checkedKeys.includes(key);
40
48
  var selected = selectedKeys.includes(key);
@@ -110,11 +118,28 @@ var Node = function Node(props) {
110
118
  });
111
119
  });
112
120
  };
113
- return /*#__PURE__*/React.createElement("div", {
114
- className: clsx("".concat(prefixCls, "-node"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(prefixCls, "-node-with-line"), showLine), "".concat(prefixCls, "-leaf-node"), isLeaf), "".concat(prefixCls, "-last-node"), isLast))
121
+ var isDropTarget = (dropState === null || dropState === void 0 ? void 0 : dropState.key) === key;
122
+ var dropPosition = isDropTarget ? dropState.position : null;
123
+ var dragProps = draggable && !disabled ? {
124
+ draggable: true,
125
+ onDragStart: function onDragStart(e) {
126
+ return onNodeDragStart(key, e);
127
+ },
128
+ onDragOver: function onDragOver(e) {
129
+ return onNodeDragOver(key, e);
130
+ },
131
+ onDragLeave: function onDragLeave(e) {
132
+ return onNodeDragLeave(key, e);
133
+ },
134
+ onDrop: function onDrop(e) {
135
+ return onNodeDrop(key, e);
136
+ }
137
+ } : {};
138
+ return /*#__PURE__*/React.createElement("div", _extends({
139
+ className: clsx("".concat(prefixCls, "-node"), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(prefixCls, "-node-with-line"), showLine), "".concat(prefixCls, "-leaf-node"), isLeaf), "".concat(prefixCls, "-last-node"), isLast), "".concat(prefixCls, "-node-dragging"), draggingKey === key), "".concat(prefixCls, "-node-drag-over-before"), dropPosition === 'before'), "".concat(prefixCls, "-node-drag-over-after"), dropPosition === 'after'), "".concat(prefixCls, "-node-drag-over-inside"), dropPosition === 'inside'))
115
140
  // style={{
116
141
  // paddingLeft: depth * 28 + (isLeaf && checkable ? 24 : 0),
117
142
  // }}
118
- }, renderEmptyNodes(depth), renderExpandedIcon(), renderCheckbox(), renderLabel());
143
+ }, dragProps), renderEmptyNodes(depth), renderExpandedIcon(), renderCheckbox(), renderLabel());
119
144
  };
120
145
  export default Node;