@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,36 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/Tour/index.ts
30
+ var Tour_exports = {};
31
+ __export(Tour_exports, {
32
+ default: () => Tour_default
33
+ });
34
+ module.exports = __toCommonJS(Tour_exports);
35
+ var import_tour = __toESM(require("./tour"));
36
+ var Tour_default = import_tour.default;
@@ -0,0 +1,118 @@
1
+ /// <reference types="react" />
2
+ import type { Placement } from '../Trigger/interface';
3
+ import type { DataAttributeProps } from '../utils/types';
4
+ export type TourTarget = (() => HTMLElement | null) | string | HTMLElement;
5
+ export type TourSemanticDOM = 'highlight' | 'content' | 'header' | 'body' | 'footer';
6
+ export interface TourStep {
7
+ /**
8
+ * The element to highlight, supports a finder function, a CSS selector string, or an HTMLElement
9
+ */
10
+ target: TourTarget;
11
+ /**
12
+ * Card title
13
+ */
14
+ title?: React.ReactNode;
15
+ /**
16
+ * Card description
17
+ */
18
+ description?: React.ReactNode;
19
+ /**
20
+ * Card placement relative to the highlighted target
21
+ * @default 'bottom'
22
+ */
23
+ placement?: Placement;
24
+ /**
25
+ * Whether to show the card arrow
26
+ */
27
+ arrow?: boolean;
28
+ /**
29
+ * Custom step class name
30
+ */
31
+ className?: string;
32
+ }
33
+ export interface TourProps extends DataAttributeProps {
34
+ /**
35
+ * Custom prefix class name
36
+ */
37
+ prefixCls?: string;
38
+ /**
39
+ * Custom root class name
40
+ */
41
+ className?: string;
42
+ /**
43
+ * Custom root style
44
+ */
45
+ style?: React.CSSProperties;
46
+ /**
47
+ * Semantic structure class names
48
+ */
49
+ classNames?: Partial<Record<TourSemanticDOM, string>>;
50
+ /**
51
+ * Semantic structure styles
52
+ */
53
+ styles?: Partial<Record<TourSemanticDOM, React.CSSProperties>>;
54
+ /**
55
+ * Whether the tour is visible (controlled)
56
+ */
57
+ open: boolean;
58
+ /**
59
+ * Tour steps
60
+ */
61
+ steps: TourStep[];
62
+ /**
63
+ * Controlled current step index
64
+ */
65
+ current?: number;
66
+ /**
67
+ * Default current step index
68
+ */
69
+ defaultCurrent?: number;
70
+ /**
71
+ * Callback when the tour is closed / skipped
72
+ */
73
+ onClose?: () => void;
74
+ /**
75
+ * Callback when all steps are finished
76
+ */
77
+ onFinish?: () => void;
78
+ /**
79
+ * Callback when current step changes
80
+ */
81
+ onChange?: (current: number) => void;
82
+ /**
83
+ * Default card placement relative to the highlighted target
84
+ * @default 'bottom'
85
+ */
86
+ placement?: Placement;
87
+ /**
88
+ * Whether to show the card arrow by default
89
+ */
90
+ arrow?: boolean;
91
+ /**
92
+ * Whether to show the mask layer (highlight cutout + click lock)
93
+ * @default true
94
+ */
95
+ mask?: boolean;
96
+ /**
97
+ * Whether the close button is shown at the top-right of the card
98
+ * @default true
99
+ */
100
+ closable?: boolean;
101
+ /**
102
+ * Custom close icon
103
+ */
104
+ closeIcon?: React.ReactNode;
105
+ /**
106
+ * Whether clicking the mask closes the tour
107
+ * @default false
108
+ */
109
+ maskClosable?: boolean;
110
+ /**
111
+ * Custom step indicators renderer, receives (current, total)
112
+ */
113
+ indicatorsRender?: (current: number, total: number) => React.ReactNode;
114
+ /**
115
+ * Options passed to target.scrollIntoView on each step
116
+ */
117
+ scrollIntoViewOptions?: boolean | ScrollIntoViewOptions;
118
+ }
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/Tour/interface.ts
16
+ var interface_exports = {};
17
+ module.exports = __toCommonJS(interface_exports);
@@ -0,0 +1,103 @@
1
+ @pls: .yee-tour;
2
+
3
+ @{pls} {
4
+ position: fixed;
5
+ inset: 0;
6
+ z-index: var(--yee-tour-mask-z-index);
7
+ pointer-events: none;
8
+
9
+ // ① click-intercept layer (box-shadow receives no pointer events, so a
10
+ // transparent full-screen layer is needed to lock interaction + carry maskClosable)
11
+ &-mask {
12
+ position: absolute;
13
+ inset: 0;
14
+ pointer-events: auto;
15
+ background-color: transparent;
16
+
17
+ // No target to cut out → the mask itself becomes the full-screen dim layer.
18
+ &-full {
19
+ background-color: var(--yee-tour-mask-color);
20
+ }
21
+ }
22
+
23
+ // ② highlight cutout via a huge box-shadow; top/left/width/height come from
24
+ // motion inline styles, position/shape/visuals from here
25
+ &-highlight {
26
+ position: fixed;
27
+ box-sizing: border-box;
28
+ border-radius: var(--yee-tour-highlight-border-radius);
29
+ box-shadow: 0 0 0 9999px var(--yee-tour-mask-color);
30
+ z-index: 1;
31
+ pointer-events: none;
32
+ }
33
+ }
34
+
35
+ // card
36
+ .yee-tour-content {
37
+ position: fixed;
38
+ z-index: 2;
39
+ pointer-events: auto;
40
+ box-sizing: border-box;
41
+ width: var(--yee-tour-content-width);
42
+ max-width: calc(100vw - 48px);
43
+ padding: var(--yee-tour-content-padding);
44
+ background-color: var(--yee-tour-content-bg-color);
45
+ border-radius: var(--yee-tour-content-border-radius);
46
+ box-shadow: var(--yee-tour-content-box-shadow);
47
+
48
+ .yee-tour-close {
49
+ position: absolute;
50
+ top: var(--yee-tour-close-top);
51
+ inset-inline-end: var(--yee-tour-close-right);
52
+ display: inline-flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ padding: 0;
56
+ border: none;
57
+ background: transparent;
58
+ color: var(--yee-tour-close-color);
59
+ cursor: pointer;
60
+ opacity: 0.55;
61
+ transition: opacity var(--yee-tour-transition-duration) linear;
62
+
63
+ &:hover {
64
+ opacity: 1;
65
+ }
66
+ }
67
+
68
+ .yee-tour-header {
69
+ margin-bottom: var(--yee-tour-header-margin-bottom);
70
+ padding-inline-end: var(--yee-tour-close-size);
71
+ color: var(--yee-tour-title-color);
72
+ font-size: var(--yee-tour-title-font-size);
73
+ font-weight: var(--yee-tour-title-font-weight);
74
+ line-height: var(--yee-tour-title-line-height);
75
+ }
76
+
77
+ .yee-tour-body {
78
+ color: var(--yee-tour-description-color);
79
+ font-size: var(--yee-tour-description-font-size);
80
+ line-height: var(--yee-tour-description-line-height);
81
+ }
82
+
83
+ .yee-tour-footer {
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: space-between;
87
+ gap: var(--yee-tour-button-gap);
88
+ margin-top: var(--yee-tour-footer-margin-top);
89
+ }
90
+
91
+ .yee-tour-indicators {
92
+ display: inline-flex;
93
+ align-items: center;
94
+ gap: var(--yee-tour-indicator-gap);
95
+ }
96
+
97
+ .yee-tour-buttons {
98
+ display: inline-flex;
99
+ align-items: center;
100
+ gap: var(--yee-tour-button-gap);
101
+ margin-left: auto;
102
+ }
103
+ }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { TourProps } from './interface';
3
+ import './style/index.less';
4
+ declare const Tour: React.FC<TourProps>;
5
+ export default Tour;
@@ -0,0 +1,403 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __objRest = (source, exclude) => {
22
+ var target = {};
23
+ for (var prop in source)
24
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
+ target[prop] = source[prop];
26
+ if (source != null && __getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(source)) {
28
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
+ target[prop] = source[prop];
30
+ }
31
+ return target;
32
+ };
33
+ var __export = (target, all) => {
34
+ for (var name in all)
35
+ __defProp(target, name, { get: all[name], enumerable: true });
36
+ };
37
+ var __copyProps = (to, from, except, desc) => {
38
+ if (from && typeof from === "object" || typeof from === "function") {
39
+ for (let key of __getOwnPropNames(from))
40
+ if (!__hasOwnProp.call(to, key) && key !== except)
41
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
42
+ }
43
+ return to;
44
+ };
45
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
46
+ // If the importer is in node compatibility mode or this is not an ESM
47
+ // file that has been converted to a CommonJS file using a Babel-
48
+ // compatible transform (i.e. "__esModule" has not been set), then set
49
+ // "default" to the CommonJS "module.exports" for node compatibility.
50
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
51
+ mod
52
+ ));
53
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
54
+
55
+ // src/Tour/tour.tsx
56
+ var tour_exports = {};
57
+ __export(tour_exports, {
58
+ default: () => tour_default
59
+ });
60
+ module.exports = __toCommonJS(tour_exports);
61
+ var import_clsx = __toESM(require("clsx"));
62
+ var import_lucide_react = require("lucide-react");
63
+ var import_react = require("motion/react");
64
+ var import_react2 = __toESM(require("react"));
65
+ var import_react_dom = require("react-dom");
66
+ var import_Button = __toESM(require("../Button"));
67
+ var import_Config_Provider = require("../Config-Provider");
68
+ var import_useEsc = __toESM(require("../hooks/useEsc"));
69
+ var import_useLatest = __toESM(require("../hooks/useLatest"));
70
+ var import_useMergedState = __toESM(require("../hooks/useMergedState"));
71
+ var import_locale = require("../locale");
72
+ var import_mergeContextToProps = __toESM(require("../utils/mergeContextToProps"));
73
+ var import_style = require("./style/index.less");
74
+ var GAP = 12;
75
+ var resolveTarget = (target) => {
76
+ if (!target)
77
+ return null;
78
+ if (typeof target === "function") {
79
+ try {
80
+ return target();
81
+ } catch (e) {
82
+ return null;
83
+ }
84
+ }
85
+ if (typeof target === "string") {
86
+ if (typeof document === "undefined")
87
+ return null;
88
+ return document.querySelector(target);
89
+ }
90
+ return target;
91
+ };
92
+ var SIDE_PREFIXES = ["top", "bottom", "left", "right"];
93
+ var parsePlacement = (p) => {
94
+ var _a;
95
+ if (!p)
96
+ return { side: "bottom", align: "center" };
97
+ const side = (_a = SIDE_PREFIXES.find((s) => p.startsWith(s))) != null ? _a : "bottom";
98
+ const rest = p.slice(side.length);
99
+ let align = "center";
100
+ if (side === "top" || side === "bottom") {
101
+ if (rest === "Left")
102
+ align = "start";
103
+ else if (rest === "Right")
104
+ align = "end";
105
+ } else if (rest === "Top") {
106
+ align = "start";
107
+ } else if (rest === "Bottom") {
108
+ align = "end";
109
+ }
110
+ return { side, align };
111
+ };
112
+ var OPPOSITE_SIDE = {
113
+ top: "bottom",
114
+ bottom: "top",
115
+ left: "right",
116
+ right: "left"
117
+ };
118
+ var computeCardPos = (rect, placement, size, gap) => {
119
+ const { width: cw, height: ch } = size;
120
+ const { top, left, width, height } = rect;
121
+ if (cw === 0 || ch === 0) {
122
+ return { top, left };
123
+ }
124
+ const vw = window.innerWidth;
125
+ const vh = window.innerHeight;
126
+ const { side: preferredSide, align } = parsePlacement(placement);
127
+ const layoutFor = (side2) => {
128
+ if (side2 === "top" || side2 === "bottom") {
129
+ const main2 = side2 === "top" ? top - ch - gap : top + height + gap;
130
+ let cross2;
131
+ if (align === "start")
132
+ cross2 = left;
133
+ else if (align === "end")
134
+ cross2 = left + width - cw;
135
+ else
136
+ cross2 = left + width / 2 - cw / 2;
137
+ return { top: main2, left: cross2 };
138
+ }
139
+ const main = side2 === "left" ? left - cw - gap : left + width + gap;
140
+ let cross;
141
+ if (align === "start")
142
+ cross = top;
143
+ else if (align === "end")
144
+ cross = top + height - ch;
145
+ else
146
+ cross = top + height / 2 - ch / 2;
147
+ return { top: cross, left: main };
148
+ };
149
+ const fits = (side2, pos2) => {
150
+ if (side2 === "top")
151
+ return pos2.top >= gap;
152
+ if (side2 === "bottom")
153
+ return pos2.top + ch <= vh - gap;
154
+ if (side2 === "left")
155
+ return pos2.left >= gap;
156
+ return pos2.left + cw <= vw - gap;
157
+ };
158
+ let side = preferredSide;
159
+ let pos = layoutFor(side);
160
+ const flippedSide = OPPOSITE_SIDE[side];
161
+ const flipped = layoutFor(flippedSide);
162
+ if (!fits(side, pos) && fits(flippedSide, flipped)) {
163
+ side = flippedSide;
164
+ pos = flipped;
165
+ }
166
+ return {
167
+ top: Math.max(gap, Math.min(pos.top, vh - ch - gap)),
168
+ left: Math.max(gap, Math.min(pos.left, vw - cw - gap))
169
+ };
170
+ };
171
+ var Tour = (baseprops) => {
172
+ var _a, _c;
173
+ const { tour: tourCtx } = (0, import_react2.useContext)(import_Config_Provider.GlobalContext);
174
+ const props = (0, import_mergeContextToProps.default)(baseprops, tourCtx);
175
+ const { locale } = (0, import_locale.useLocale)();
176
+ const tourLocale = (_a = locale == null ? void 0 : locale.tour) != null ? _a : {
177
+ previous: "Previous",
178
+ next: "Next",
179
+ finish: "Finish",
180
+ skip: "Skip"
181
+ };
182
+ const _b = props, {
183
+ prefixCls = "yee-tour",
184
+ className,
185
+ style,
186
+ classNames,
187
+ styles,
188
+ open,
189
+ steps = [],
190
+ current,
191
+ defaultCurrent = 0,
192
+ onClose,
193
+ onFinish,
194
+ onChange,
195
+ placement = "bottom",
196
+ mask = true,
197
+ closable = true,
198
+ closeIcon,
199
+ maskClosable = false,
200
+ indicatorsRender,
201
+ scrollIntoViewOptions = true
202
+ } = _b, rest = __objRest(_b, [
203
+ "prefixCls",
204
+ "className",
205
+ "style",
206
+ "classNames",
207
+ "styles",
208
+ "open",
209
+ "steps",
210
+ "current",
211
+ "defaultCurrent",
212
+ "onClose",
213
+ "onFinish",
214
+ "onChange",
215
+ "placement",
216
+ "mask",
217
+ "closable",
218
+ "closeIcon",
219
+ "maskClosable",
220
+ "indicatorsRender",
221
+ "scrollIntoViewOptions"
222
+ ]);
223
+ const [mergedCurrent, setMergedCurrent] = (0, import_useMergedState.default)(
224
+ defaultCurrent,
225
+ {
226
+ value: current,
227
+ defaultValue: defaultCurrent
228
+ }
229
+ );
230
+ const step = steps[mergedCurrent];
231
+ const total = steps.length;
232
+ const isLast = mergedCurrent >= total - 1;
233
+ const stepPlacement = (_c = step == null ? void 0 : step.placement) != null ? _c : placement;
234
+ const targetEl = (0, import_react2.useMemo)(
235
+ () => resolveTarget(step == null ? void 0 : step.target),
236
+ [step, open]
237
+ );
238
+ const [rect, setRect] = (0, import_react2.useState)(null);
239
+ const rafRef = (0, import_react2.useRef)(null);
240
+ const scrollIntoViewOptionsRef = (0, import_useLatest.default)(scrollIntoViewOptions);
241
+ (0, import_react2.useLayoutEffect)(() => {
242
+ if (!open || !targetEl) {
243
+ setRect(null);
244
+ return;
245
+ }
246
+ const update = () => {
247
+ if (rafRef.current !== null)
248
+ cancelAnimationFrame(rafRef.current);
249
+ rafRef.current = requestAnimationFrame(() => {
250
+ setRect(targetEl.getBoundingClientRect());
251
+ });
252
+ };
253
+ update();
254
+ const scrollTargetIfNeeded = () => {
255
+ var _a2;
256
+ const opts = scrollIntoViewOptionsRef.current;
257
+ if (opts === false)
258
+ return;
259
+ if (opts === true) {
260
+ const vr = targetEl.getBoundingClientRect();
261
+ const inViewport = vr.top >= 0 && vr.left >= 0 && vr.bottom <= window.innerHeight && vr.right <= window.innerWidth;
262
+ if (inViewport)
263
+ return;
264
+ }
265
+ try {
266
+ (_a2 = targetEl.scrollIntoView) == null ? void 0 : _a2.call(targetEl, opts);
267
+ } catch (e) {
268
+ }
269
+ };
270
+ scrollTargetIfNeeded();
271
+ window.addEventListener("resize", update);
272
+ window.addEventListener("scroll", update, true);
273
+ return () => {
274
+ if (rafRef.current !== null)
275
+ cancelAnimationFrame(rafRef.current);
276
+ window.removeEventListener("resize", update);
277
+ window.removeEventListener("scroll", update, true);
278
+ };
279
+ }, [open, targetEl, mergedCurrent]);
280
+ (0, import_useEsc.default)({ enabled: open, onEsc: () => onClose == null ? void 0 : onClose() });
281
+ const handleNext = (0, import_react2.useCallback)(() => {
282
+ if (isLast) {
283
+ onFinish == null ? void 0 : onFinish();
284
+ return;
285
+ }
286
+ const nextCur = mergedCurrent + 1;
287
+ setMergedCurrent(nextCur);
288
+ onChange == null ? void 0 : onChange(nextCur);
289
+ }, [isLast, mergedCurrent, onChange, onFinish, setMergedCurrent]);
290
+ const handlePrev = (0, import_react2.useCallback)(() => {
291
+ if (mergedCurrent <= 0)
292
+ return;
293
+ const prevCur = mergedCurrent - 1;
294
+ setMergedCurrent(prevCur);
295
+ onChange == null ? void 0 : onChange(prevCur);
296
+ }, [mergedCurrent, onChange, setMergedCurrent]);
297
+ const cardRef = (0, import_react2.useRef)(null);
298
+ const [cardSize, setCardSize] = (0, import_react2.useState)({ width: 0, height: 0 });
299
+ (0, import_react2.useLayoutEffect)(() => {
300
+ if (!open)
301
+ return;
302
+ const node = cardRef.current;
303
+ if (!node)
304
+ return;
305
+ const r = node.getBoundingClientRect();
306
+ setCardSize({ width: r.width, height: r.height });
307
+ }, [open, step]);
308
+ const cardPos = (0, import_react2.useMemo)(() => {
309
+ if (!cardSize.width || !cardSize.height)
310
+ return null;
311
+ if (rect)
312
+ return computeCardPos(rect, stepPlacement, cardSize, GAP);
313
+ return {
314
+ top: window.innerHeight / 2 - cardSize.height / 2,
315
+ left: window.innerWidth / 2 - cardSize.width / 2
316
+ };
317
+ }, [rect, stepPlacement, cardSize]);
318
+ if (!open || typeof document === "undefined" || !step) {
319
+ return null;
320
+ }
321
+ return (0, import_react_dom.createPortal)(
322
+ /* @__PURE__ */ import_react2.default.createElement("div", __spreadValues({ className: (0, import_clsx.default)(prefixCls, className), style }, rest), mask ? /* @__PURE__ */ import_react2.default.createElement(
323
+ "div",
324
+ {
325
+ className: (0, import_clsx.default)(
326
+ `${prefixCls}-mask`,
327
+ !rect && `${prefixCls}-mask-full`
328
+ ),
329
+ onClick: maskClosable ? onClose : void 0
330
+ }
331
+ ) : null, mask && rect ? /* @__PURE__ */ import_react2.default.createElement(
332
+ import_react.motion.div,
333
+ {
334
+ className: (0, import_clsx.default)(`${prefixCls}-highlight`, classNames == null ? void 0 : classNames.highlight),
335
+ initial: false,
336
+ animate: {
337
+ top: rect.top,
338
+ left: rect.left,
339
+ width: rect.width,
340
+ height: rect.height
341
+ },
342
+ transition: { type: "spring", visualDuration: 0.3, bounce: 0.2 },
343
+ style: styles == null ? void 0 : styles.highlight
344
+ }
345
+ ) : null, /* @__PURE__ */ import_react2.default.createElement(
346
+ import_react.motion.div,
347
+ {
348
+ ref: cardRef,
349
+ className: (0, import_clsx.default)(
350
+ `${prefixCls}-content`,
351
+ classNames == null ? void 0 : classNames.content,
352
+ step == null ? void 0 : step.className
353
+ ),
354
+ initial: false,
355
+ animate: cardPos ? { top: cardPos.top, left: cardPos.left } : { top: 0, left: 0 },
356
+ transition: { type: "spring", visualDuration: 0.3, bounce: 0.2 },
357
+ style: __spreadValues({
358
+ position: "fixed",
359
+ visibility: cardPos ? "visible" : "hidden"
360
+ }, styles == null ? void 0 : styles.content)
361
+ },
362
+ closable ? /* @__PURE__ */ import_react2.default.createElement(
363
+ import_Button.default,
364
+ {
365
+ type: "text",
366
+ className: `${prefixCls}-close`,
367
+ onClick: onClose,
368
+ size: "small",
369
+ icon: closeIcon != null ? closeIcon : /* @__PURE__ */ import_react2.default.createElement(import_lucide_react.X, { size: 16 }),
370
+ "aria-label": tourLocale.skip
371
+ }
372
+ ) : null,
373
+ (step == null ? void 0 : step.title) ? /* @__PURE__ */ import_react2.default.createElement(
374
+ "div",
375
+ {
376
+ className: (0, import_clsx.default)(`${prefixCls}-header`, classNames == null ? void 0 : classNames.header),
377
+ style: styles == null ? void 0 : styles.header
378
+ },
379
+ step.title
380
+ ) : null,
381
+ /* @__PURE__ */ import_react2.default.createElement(
382
+ "div",
383
+ {
384
+ className: (0, import_clsx.default)(`${prefixCls}-body`, classNames == null ? void 0 : classNames.body),
385
+ style: styles == null ? void 0 : styles.body
386
+ },
387
+ step == null ? void 0 : step.description
388
+ ),
389
+ /* @__PURE__ */ import_react2.default.createElement(
390
+ "div",
391
+ {
392
+ className: (0, import_clsx.default)(`${prefixCls}-footer`, classNames == null ? void 0 : classNames.footer),
393
+ style: styles == null ? void 0 : styles.footer
394
+ },
395
+ /* @__PURE__ */ import_react2.default.createElement("span", { className: `${prefixCls}-indicators` }, indicatorsRender ? indicatorsRender(mergedCurrent, total) : `${mergedCurrent + 1} / ${total}`),
396
+ /* @__PURE__ */ import_react2.default.createElement("span", { className: `${prefixCls}-buttons` }, mergedCurrent > 0 ? /* @__PURE__ */ import_react2.default.createElement(import_Button.default, { size: "small", onClick: handlePrev }, tourLocale.previous) : null, /* @__PURE__ */ import_react2.default.createElement(import_Button.default, { type: "primary", size: "small", onClick: handleNext }, isLast ? tourLocale.finish : tourLocale.next))
397
+ )
398
+ )),
399
+ document.body
400
+ );
401
+ };
402
+ Tour.displayName = "Tour";
403
+ var tour_default = Tour;