@douyinfe/semi-ui 2.2.2 → 2.4.0-beta.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 (441) hide show
  1. package/_base/_story/a11y.jsx +6 -6
  2. package/_base/_story/a11y.scss +0 -1
  3. package/_base/_story/index.scss +2 -5
  4. package/_utils/hooks/usePrevFocus.ts +16 -0
  5. package/_utils/index.ts +4 -0
  6. package/anchor/_story/anchor.stories.js +1 -1
  7. package/anchor/index.tsx +5 -2
  8. package/anchor/link.tsx +29 -4
  9. package/autoComplete/index.tsx +28 -1
  10. package/avatar/_story/avatar.stories.js +4 -4
  11. package/avatar/index.tsx +6 -4
  12. package/banner/index.tsx +2 -1
  13. package/breadcrumb/_story/breadcrumb.stories.js +22 -8
  14. package/breadcrumb/index.tsx +8 -1
  15. package/breadcrumb/item.tsx +1 -1
  16. package/button/Button.tsx +4 -0
  17. package/button/__test__/button.test.js +1 -1
  18. package/button/_story/button.stories.js +10 -10
  19. package/button/buttonGroup.tsx +4 -2
  20. package/button/splitButtonGroup.tsx +5 -2
  21. package/card/_story/card.stories.js +8 -1
  22. package/card/_story/card.stories.tsx +3 -0
  23. package/card/index.tsx +5 -2
  24. package/cascader/index.tsx +33 -5
  25. package/checkbox/_story/checkbox.stories.js +19 -12
  26. package/checkbox/checkbox.tsx +40 -5
  27. package/checkbox/checkboxGroup.tsx +30 -5
  28. package/checkbox/checkboxInner.tsx +25 -2
  29. package/collapse/index.tsx +1 -1
  30. package/collapse/item.tsx +12 -7
  31. package/collapsible/index.tsx +4 -2
  32. package/configProvider/_story/configProvider.stories.tsx +27 -0
  33. package/datePicker/datePicker.tsx +19 -0
  34. package/dist/css/semi.css +23 -12
  35. package/dist/css/semi.min.css +1 -1
  36. package/dist/umd/semi-ui.js +2502 -1249
  37. package/dist/umd/semi-ui.js.map +1 -1
  38. package/dist/umd/semi-ui.min.js +1 -1
  39. package/dist/umd/semi-ui.min.js.map +1 -1
  40. package/dropdown/dropdownItem.tsx +1 -1
  41. package/dropdown/dropdownMenu.tsx +1 -1
  42. package/dropdown/index.tsx +11 -3
  43. package/empty/index.tsx +4 -4
  44. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  45. package/form/_story/Validate/validateDemo.jsx +1 -1
  46. package/form/_story/demo.jsx +12 -3
  47. package/form/_story/form.stories.js +0 -7
  48. package/form/baseForm.tsx +2 -0
  49. package/form/errorMessage.tsx +13 -2
  50. package/form/hoc/withField.tsx +37 -8
  51. package/form/index.tsx +0 -2
  52. package/form/interface.ts +2 -0
  53. package/form/label.tsx +4 -2
  54. package/input/index.tsx +49 -4
  55. package/input/inputGroup.tsx +9 -4
  56. package/input/textarea.tsx +30 -9
  57. package/inputNumber/__test__/inputNumber.test.js +36 -8
  58. package/inputNumber/index.tsx +30 -2
  59. package/layout/Sider.tsx +6 -2
  60. package/layout/index.tsx +4 -3
  61. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  62. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  63. package/lib/cjs/_utils/index.d.ts +1 -0
  64. package/lib/cjs/_utils/index.js +6 -1
  65. package/lib/cjs/anchor/index.d.ts +2 -0
  66. package/lib/cjs/anchor/index.js +6 -1
  67. package/lib/cjs/anchor/link.d.ts +4 -1
  68. package/lib/cjs/anchor/link.js +39 -5
  69. package/lib/cjs/autoComplete/index.d.ts +17 -0
  70. package/lib/cjs/autoComplete/index.js +21 -2
  71. package/lib/cjs/avatar/index.d.ts +4 -3
  72. package/lib/cjs/avatar/index.js +15 -11
  73. package/lib/cjs/banner/index.js +4 -2
  74. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  75. package/lib/cjs/breadcrumb/index.js +10 -4
  76. package/lib/cjs/breadcrumb/item.js +2 -2
  77. package/lib/cjs/button/Button.d.ts +2 -0
  78. package/lib/cjs/button/Button.js +4 -2
  79. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  80. package/lib/cjs/button/buttonGroup.js +8 -4
  81. package/lib/cjs/button/index.d.ts +1 -0
  82. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  83. package/lib/cjs/button/splitButtonGroup.js +5 -2
  84. package/lib/cjs/card/index.d.ts +3 -0
  85. package/lib/cjs/card/index.js +3 -1
  86. package/lib/cjs/cascader/index.d.ts +14 -0
  87. package/lib/cjs/cascader/index.js +35 -7
  88. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  89. package/lib/cjs/checkbox/checkbox.js +51 -17
  90. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  91. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  92. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  93. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  94. package/lib/cjs/collapse/item.d.ts +2 -1
  95. package/lib/cjs/collapse/item.js +12 -2
  96. package/lib/cjs/collapsible/index.d.ts +1 -0
  97. package/lib/cjs/collapsible/index.js +4 -2
  98. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  99. package/lib/cjs/datePicker/datePicker.js +14 -1
  100. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  101. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  102. package/lib/cjs/dropdown/index.d.ts +10 -3
  103. package/lib/cjs/form/baseForm.d.ts +9 -0
  104. package/lib/cjs/form/baseForm.js +3 -1
  105. package/lib/cjs/form/errorMessage.d.ts +4 -0
  106. package/lib/cjs/form/errorMessage.js +21 -3
  107. package/lib/cjs/form/field.d.ts +7 -0
  108. package/lib/cjs/form/hoc/withField.js +49 -16
  109. package/lib/cjs/form/index.d.ts +0 -1
  110. package/lib/cjs/form/interface.d.ts +2 -0
  111. package/lib/cjs/form/label.d.ts +2 -0
  112. package/lib/cjs/form/label.js +5 -2
  113. package/lib/cjs/input/index.d.ts +16 -0
  114. package/lib/cjs/input/index.js +51 -15
  115. package/lib/cjs/input/inputGroup.d.ts +2 -1
  116. package/lib/cjs/input/inputGroup.js +11 -1
  117. package/lib/cjs/input/textarea.js +16 -3
  118. package/lib/cjs/inputNumber/index.d.ts +8 -0
  119. package/lib/cjs/inputNumber/index.js +35 -4
  120. package/lib/cjs/layout/Sider.d.ts +4 -0
  121. package/lib/cjs/layout/Sider.js +4 -1
  122. package/lib/cjs/layout/index.js +2 -0
  123. package/lib/cjs/list/index.d.ts +4 -4
  124. package/lib/cjs/list/item.js +0 -1
  125. package/lib/cjs/modal/Modal.js +2 -0
  126. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  127. package/lib/cjs/modal/ModalContent.js +47 -5
  128. package/lib/cjs/navigation/Item.d.ts +4 -2
  129. package/lib/cjs/navigation/Item.js +25 -5
  130. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  131. package/lib/cjs/navigation/SubNav.js +8 -1
  132. package/lib/cjs/navigation/index.js +2 -0
  133. package/lib/cjs/notification/notice.d.ts +1 -1
  134. package/lib/cjs/notification/notice.js +32 -22
  135. package/lib/cjs/pagination/index.js +16 -6
  136. package/lib/cjs/popover/index.js +7 -3
  137. package/lib/cjs/progress/index.d.ts +8 -0
  138. package/lib/cjs/progress/index.js +42 -9
  139. package/lib/cjs/radio/radio.d.ts +6 -1
  140. package/lib/cjs/radio/radio.js +17 -5
  141. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  142. package/lib/cjs/radio/radioGroup.js +18 -3
  143. package/lib/cjs/radio/radioInner.d.ts +6 -1
  144. package/lib/cjs/radio/radioInner.js +11 -3
  145. package/lib/cjs/rating/index.d.ts +14 -0
  146. package/lib/cjs/rating/index.js +14 -3
  147. package/lib/cjs/rating/item.d.ts +2 -0
  148. package/lib/cjs/rating/item.js +6 -1
  149. package/lib/cjs/select/index.d.ts +16 -0
  150. package/lib/cjs/select/index.js +65 -19
  151. package/lib/cjs/select/option.js +28 -22
  152. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  153. package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
  154. package/lib/cjs/sideSheet/index.d.ts +1 -0
  155. package/lib/cjs/sideSheet/index.js +2 -1
  156. package/lib/cjs/slider/index.d.ts +2 -1
  157. package/lib/cjs/slider/index.js +64 -17
  158. package/lib/cjs/spin/icon.js +3 -4
  159. package/lib/cjs/steps/basicStep.d.ts +3 -0
  160. package/lib/cjs/steps/basicStep.js +23 -25
  161. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  162. package/lib/cjs/steps/basicSteps.js +2 -1
  163. package/lib/cjs/steps/fillStep.d.ts +3 -0
  164. package/lib/cjs/steps/fillStep.js +19 -4
  165. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  166. package/lib/cjs/steps/fillSteps.js +2 -1
  167. package/lib/cjs/steps/navStep.d.ts +3 -0
  168. package/lib/cjs/steps/navStep.js +22 -25
  169. package/lib/cjs/steps/navSteps.d.ts +1 -0
  170. package/lib/cjs/steps/navSteps.js +2 -1
  171. package/lib/cjs/switch/index.d.ts +12 -0
  172. package/lib/cjs/switch/index.js +19 -4
  173. package/lib/cjs/table/Body/BaseRow.js +35 -3
  174. package/lib/cjs/table/Body/index.js +9 -1
  175. package/lib/cjs/table/ColumnFilter.js +4 -0
  176. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  177. package/lib/cjs/table/ColumnSelection.js +6 -2
  178. package/lib/cjs/table/ColumnSorter.js +19 -3
  179. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  180. package/lib/cjs/table/Table.d.ts +2 -0
  181. package/lib/cjs/table/Table.js +35 -15
  182. package/lib/cjs/table/TableCell.d.ts +2 -0
  183. package/lib/cjs/table/TableCell.js +6 -2
  184. package/lib/cjs/table/TableHeaderRow.js +8 -2
  185. package/lib/cjs/tabs/TabBar.js +11 -3
  186. package/lib/cjs/tabs/TabPane.js +3 -1
  187. package/lib/cjs/tabs/index.js +0 -1
  188. package/lib/cjs/tagInput/index.d.ts +4 -1
  189. package/lib/cjs/tagInput/index.js +29 -3
  190. package/lib/cjs/timePicker/TimePicker.d.ts +14 -0
  191. package/lib/cjs/timePicker/TimePicker.js +11 -4
  192. package/lib/cjs/timePicker/index.d.ts +7 -0
  193. package/lib/cjs/timeline/index.d.ts +1 -1
  194. package/lib/cjs/timeline/index.js +1 -0
  195. package/lib/cjs/timeline/item.js +4 -2
  196. package/lib/cjs/toast/toast.js +2 -0
  197. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  198. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  199. package/lib/cjs/tooltip/index.d.ts +16 -12
  200. package/lib/cjs/tooltip/index.js +55 -39
  201. package/lib/cjs/transfer/index.js +32 -14
  202. package/lib/cjs/tree/index.d.ts +1 -0
  203. package/lib/cjs/tree/index.js +15 -6
  204. package/lib/cjs/tree/treeNode.d.ts +12 -4
  205. package/lib/cjs/tree/treeNode.js +54 -5
  206. package/lib/cjs/treeSelect/index.d.ts +16 -0
  207. package/lib/cjs/treeSelect/index.js +60 -12
  208. package/lib/cjs/typography/base.js +18 -7
  209. package/lib/cjs/typography/copyable.js +6 -1
  210. package/lib/cjs/upload/fileCard.js +26 -7
  211. package/lib/cjs/upload/index.js +19 -4
  212. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  213. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  214. package/lib/es/_utils/index.d.ts +1 -0
  215. package/lib/es/_utils/index.js +4 -1
  216. package/lib/es/anchor/index.d.ts +2 -0
  217. package/lib/es/anchor/index.js +6 -1
  218. package/lib/es/anchor/link.d.ts +4 -1
  219. package/lib/es/anchor/link.js +38 -5
  220. package/lib/es/autoComplete/index.d.ts +17 -0
  221. package/lib/es/autoComplete/index.js +21 -2
  222. package/lib/es/avatar/index.d.ts +4 -3
  223. package/lib/es/avatar/index.js +15 -11
  224. package/lib/es/banner/index.js +4 -2
  225. package/lib/es/breadcrumb/index.d.ts +3 -0
  226. package/lib/es/breadcrumb/index.js +10 -4
  227. package/lib/es/breadcrumb/item.js +2 -2
  228. package/lib/es/button/Button.d.ts +2 -0
  229. package/lib/es/button/Button.js +4 -2
  230. package/lib/es/button/buttonGroup.d.ts +3 -0
  231. package/lib/es/button/buttonGroup.js +8 -4
  232. package/lib/es/button/index.d.ts +1 -0
  233. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  234. package/lib/es/button/splitButtonGroup.js +5 -2
  235. package/lib/es/card/index.d.ts +3 -0
  236. package/lib/es/card/index.js +3 -1
  237. package/lib/es/cascader/index.d.ts +14 -0
  238. package/lib/es/cascader/index.js +35 -7
  239. package/lib/es/checkbox/checkbox.d.ts +21 -1
  240. package/lib/es/checkbox/checkbox.js +50 -17
  241. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  242. package/lib/es/checkbox/checkboxGroup.js +18 -5
  243. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  244. package/lib/es/checkbox/checkboxInner.js +20 -3
  245. package/lib/es/collapse/item.d.ts +2 -1
  246. package/lib/es/collapse/item.js +11 -2
  247. package/lib/es/collapsible/index.d.ts +1 -0
  248. package/lib/es/collapsible/index.js +4 -2
  249. package/lib/es/datePicker/datePicker.d.ts +12 -0
  250. package/lib/es/datePicker/datePicker.js +14 -1
  251. package/lib/es/dropdown/dropdownItem.js +3 -1
  252. package/lib/es/dropdown/dropdownMenu.js +4 -1
  253. package/lib/es/dropdown/index.d.ts +10 -3
  254. package/lib/es/form/baseForm.d.ts +9 -0
  255. package/lib/es/form/baseForm.js +3 -1
  256. package/lib/es/form/errorMessage.d.ts +4 -0
  257. package/lib/es/form/errorMessage.js +21 -3
  258. package/lib/es/form/field.d.ts +7 -0
  259. package/lib/es/form/hoc/withField.js +48 -15
  260. package/lib/es/form/index.d.ts +0 -1
  261. package/lib/es/form/index.js +0 -1
  262. package/lib/es/form/interface.d.ts +2 -0
  263. package/lib/es/form/label.d.ts +2 -0
  264. package/lib/es/form/label.js +5 -2
  265. package/lib/es/input/index.d.ts +16 -0
  266. package/lib/es/input/index.js +51 -15
  267. package/lib/es/input/inputGroup.d.ts +2 -1
  268. package/lib/es/input/inputGroup.js +11 -1
  269. package/lib/es/input/textarea.js +16 -3
  270. package/lib/es/inputNumber/index.d.ts +8 -0
  271. package/lib/es/inputNumber/index.js +36 -4
  272. package/lib/es/layout/Sider.d.ts +4 -0
  273. package/lib/es/layout/Sider.js +4 -1
  274. package/lib/es/layout/index.js +2 -0
  275. package/lib/es/list/index.d.ts +4 -4
  276. package/lib/es/list/item.js +0 -1
  277. package/lib/es/modal/Modal.js +2 -0
  278. package/lib/es/modal/ModalContent.d.ts +3 -1
  279. package/lib/es/modal/ModalContent.js +46 -5
  280. package/lib/es/navigation/Item.d.ts +4 -2
  281. package/lib/es/navigation/Item.js +25 -5
  282. package/lib/es/navigation/SubNav.d.ts +4 -2
  283. package/lib/es/navigation/SubNav.js +8 -1
  284. package/lib/es/navigation/index.js +2 -0
  285. package/lib/es/notification/notice.d.ts +1 -1
  286. package/lib/es/notification/notice.js +33 -24
  287. package/lib/es/pagination/index.js +16 -6
  288. package/lib/es/popover/index.js +7 -3
  289. package/lib/es/progress/index.d.ts +8 -0
  290. package/lib/es/progress/index.js +42 -9
  291. package/lib/es/radio/radio.d.ts +6 -1
  292. package/lib/es/radio/radio.js +16 -5
  293. package/lib/es/radio/radioGroup.d.ts +16 -1
  294. package/lib/es/radio/radioGroup.js +18 -3
  295. package/lib/es/radio/radioInner.d.ts +6 -1
  296. package/lib/es/radio/radioInner.js +11 -3
  297. package/lib/es/rating/index.d.ts +14 -0
  298. package/lib/es/rating/index.js +14 -3
  299. package/lib/es/rating/item.d.ts +2 -0
  300. package/lib/es/rating/item.js +6 -1
  301. package/lib/es/select/index.d.ts +16 -0
  302. package/lib/es/select/index.js +63 -17
  303. package/lib/es/select/option.js +28 -22
  304. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  305. package/lib/es/sideSheet/SideSheetContent.js +4 -1
  306. package/lib/es/sideSheet/index.d.ts +1 -0
  307. package/lib/es/sideSheet/index.js +2 -1
  308. package/lib/es/slider/index.d.ts +2 -1
  309. package/lib/es/slider/index.js +63 -16
  310. package/lib/es/spin/icon.js +3 -4
  311. package/lib/es/steps/basicStep.d.ts +3 -0
  312. package/lib/es/steps/basicStep.js +23 -23
  313. package/lib/es/steps/basicSteps.d.ts +1 -0
  314. package/lib/es/steps/basicSteps.js +2 -1
  315. package/lib/es/steps/fillStep.d.ts +3 -0
  316. package/lib/es/steps/fillStep.js +19 -4
  317. package/lib/es/steps/fillSteps.d.ts +1 -0
  318. package/lib/es/steps/fillSteps.js +2 -1
  319. package/lib/es/steps/navStep.d.ts +3 -0
  320. package/lib/es/steps/navStep.js +22 -23
  321. package/lib/es/steps/navSteps.d.ts +1 -0
  322. package/lib/es/steps/navSteps.js +2 -1
  323. package/lib/es/switch/index.d.ts +12 -0
  324. package/lib/es/switch/index.js +19 -4
  325. package/lib/es/table/Body/BaseRow.js +35 -3
  326. package/lib/es/table/Body/index.js +9 -2
  327. package/lib/es/table/ColumnFilter.js +4 -0
  328. package/lib/es/table/ColumnSelection.d.ts +3 -0
  329. package/lib/es/table/ColumnSelection.js +6 -2
  330. package/lib/es/table/ColumnSorter.js +17 -3
  331. package/lib/es/table/CustomExpandIcon.js +6 -1
  332. package/lib/es/table/Table.d.ts +2 -0
  333. package/lib/es/table/Table.js +35 -15
  334. package/lib/es/table/TableCell.d.ts +2 -0
  335. package/lib/es/table/TableCell.js +6 -2
  336. package/lib/es/table/TableHeaderRow.js +8 -2
  337. package/lib/es/tabs/TabBar.js +11 -3
  338. package/lib/es/tabs/TabPane.js +3 -1
  339. package/lib/es/tabs/index.js +0 -1
  340. package/lib/es/tagInput/index.d.ts +4 -1
  341. package/lib/es/tagInput/index.js +29 -3
  342. package/lib/es/timePicker/TimePicker.d.ts +14 -0
  343. package/lib/es/timePicker/TimePicker.js +11 -4
  344. package/lib/es/timePicker/index.d.ts +7 -0
  345. package/lib/es/timeline/index.d.ts +1 -1
  346. package/lib/es/timeline/index.js +1 -0
  347. package/lib/es/timeline/item.js +4 -2
  348. package/lib/es/toast/toast.js +2 -0
  349. package/lib/es/tooltip/TriangleArrow.js +1 -0
  350. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  351. package/lib/es/tooltip/index.d.ts +16 -12
  352. package/lib/es/tooltip/index.js +53 -39
  353. package/lib/es/transfer/index.js +32 -14
  354. package/lib/es/tree/index.d.ts +1 -0
  355. package/lib/es/tree/index.js +15 -6
  356. package/lib/es/tree/treeNode.d.ts +12 -4
  357. package/lib/es/tree/treeNode.js +53 -5
  358. package/lib/es/treeSelect/index.d.ts +16 -0
  359. package/lib/es/treeSelect/index.js +57 -10
  360. package/lib/es/typography/base.js +17 -7
  361. package/lib/es/typography/copyable.js +5 -1
  362. package/lib/es/upload/fileCard.js +26 -7
  363. package/lib/es/upload/index.js +19 -4
  364. package/list/index.tsx +5 -5
  365. package/list/item.tsx +0 -1
  366. package/modal/Modal.tsx +2 -0
  367. package/modal/ModalContent.tsx +35 -5
  368. package/navigation/Item.tsx +15 -0
  369. package/navigation/SubNav.tsx +13 -1
  370. package/navigation/index.tsx +1 -1
  371. package/notification/notice.tsx +19 -14
  372. package/package.json +8 -8
  373. package/pagination/index.tsx +9 -5
  374. package/popover/index.tsx +5 -0
  375. package/progress/_story/progress.stories.js +18 -18
  376. package/progress/index.tsx +58 -20
  377. package/radio/radio.tsx +12 -2
  378. package/radio/radioGroup.tsx +29 -3
  379. package/radio/radioInner.tsx +10 -1
  380. package/rating/index.tsx +19 -2
  381. package/rating/item.tsx +6 -0
  382. package/select/__test__/select.test.js +45 -0
  383. package/select/_story/select.stories.js +29 -0
  384. package/select/index.tsx +57 -4
  385. package/select/option.tsx +3 -0
  386. package/sideSheet/SideSheetContent.tsx +6 -4
  387. package/sideSheet/index.tsx +3 -2
  388. package/slider/__test__/slider.test.js +9 -0
  389. package/slider/_story/slider.stories.js +1 -1
  390. package/slider/index.tsx +44 -7
  391. package/spin/icon.tsx +4 -3
  392. package/steps/basicStep.tsx +15 -4
  393. package/steps/basicSteps.tsx +3 -2
  394. package/steps/fillStep.tsx +27 -12
  395. package/steps/fillSteps.tsx +2 -0
  396. package/steps/navStep.tsx +15 -4
  397. package/steps/navSteps.tsx +3 -2
  398. package/switch/_story/switch.stories.js +20 -19
  399. package/switch/_story/switch.stories.tsx +13 -13
  400. package/switch/index.tsx +23 -5
  401. package/table/Body/BaseRow.tsx +25 -1
  402. package/table/Body/index.tsx +7 -2
  403. package/table/ColumnFilter.tsx +7 -1
  404. package/table/ColumnSelection.tsx +4 -1
  405. package/table/ColumnSorter.tsx +18 -1
  406. package/table/CustomExpandIcon.tsx +5 -0
  407. package/table/Table.tsx +30 -14
  408. package/table/TableCell.tsx +11 -1
  409. package/table/TableHeaderRow.tsx +16 -2
  410. package/table/__test__/table.test.js +46 -0
  411. package/table/_story/table.stories.js +2 -0
  412. package/table/_story/v2/FixedColumnsChange/index.jsx +104 -0
  413. package/table/_story/v2/FixedZIndex/index.jsx +87 -0
  414. package/tabs/TabBar.tsx +8 -5
  415. package/tabs/TabPane.tsx +3 -1
  416. package/tabs/index.tsx +0 -1
  417. package/tagInput/__test__/tagInput.test.js +46 -0
  418. package/tagInput/_story/tagInput.stories.js +2 -2
  419. package/tagInput/index.tsx +31 -8
  420. package/timePicker/TimePicker.tsx +17 -2
  421. package/timePicker/__test__/timePicker.test.js +34 -3
  422. package/timePicker/_story/timepicker.stories.js +18 -0
  423. package/timeline/_story/timeline.stories.js +1 -1
  424. package/timeline/index.tsx +2 -2
  425. package/timeline/item.tsx +2 -1
  426. package/toast/toast.tsx +2 -0
  427. package/tooltip/TriangleArrow.tsx +1 -1
  428. package/tooltip/TriangleArrowVertical.tsx +1 -1
  429. package/tooltip/_story/tooltip.stories.js +562 -514
  430. package/tooltip/index.tsx +51 -33
  431. package/transfer/index.tsx +29 -25
  432. package/tree/_story/tree.stories.js +3 -3
  433. package/tree/index.tsx +10 -2
  434. package/tree/treeNode.tsx +54 -11
  435. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  436. package/treeSelect/_story/treeSelect.stories.js +12 -0
  437. package/treeSelect/index.tsx +58 -7
  438. package/typography/base.tsx +7 -1
  439. package/typography/copyable.tsx +10 -1
  440. package/upload/fileCard.tsx +14 -16
  441. package/upload/index.tsx +10 -6
@@ -8,6 +8,7 @@ import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/inst
8
8
  import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
9
9
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
10
10
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
11
+ import _setTimeout from "@babel/runtime-corejs3/core-js-stable/set-timeout";
11
12
 
12
13
  var __rest = this && this.__rest || function (s, e) {
13
14
  var t = {};
@@ -32,6 +33,7 @@ import Event from '@douyinfe/semi-foundation/lib/es/utils/Event';
32
33
  import { convertDOMRectToObject } from '@douyinfe/semi-foundation/lib/es/utils/dom';
33
34
  import TooltipFoundation from '@douyinfe/semi-foundation/lib/es/tooltip/foundation';
34
35
  import { strings, cssClasses, numbers } from '@douyinfe/semi-foundation/lib/es/tooltip/constants';
36
+ import { getUuidShort } from '@douyinfe/semi-foundation/lib/es/utils/uuid';
35
37
  import '@douyinfe/semi-foundation/lib/es/tooltip/tooltip.css';
36
38
  import BaseComponent from '../_base/baseComponent';
37
39
  import { isHTMLElement } from '../_base/reactUtils';
@@ -79,18 +81,11 @@ export default class Tooltip extends BaseComponent {
79
81
  }
80
82
 
81
83
  return false;
82
- };
84
+ }; // willEnter = () => {
85
+ // this.foundation.calcPosition();
86
+ // this.setState({ visible: true });
87
+ // };
83
88
 
84
- this.willEnter = () => {
85
- this.foundation.calcPosition();
86
- /**
87
- * Dangerous: remove setState in motion fix #1379
88
- * because togglePortalVisible callback function will use visible state to notifyVisibleChange
89
- * if visible state is old value, then notifyVisibleChange function will not be called
90
- * we should ensure that after calling togglePortalVisible, callback function can get right visible value
91
- */
92
- // this.setState({ visible: true });
93
- };
94
89
 
95
90
  this.didLeave = () => {
96
91
  this.adapter.unregisterClickOutsideHandler();
@@ -148,7 +143,9 @@ export default class Tooltip extends BaseComponent {
148
143
  visible,
149
144
  portalEventSet,
150
145
  placement,
151
- transitionState
146
+ transitionState,
147
+ id,
148
+ isPositionUpdated
152
149
  } = this.state;
153
150
  const {
154
151
  prefixCls,
@@ -156,6 +153,7 @@ export default class Tooltip extends BaseComponent {
156
153
  showArrow,
157
154
  style,
158
155
  motion,
156
+ role,
159
157
  zIndex
160
158
  } = this.props;
161
159
  const {
@@ -174,9 +172,8 @@ export default class Tooltip extends BaseComponent {
174
172
 
175
173
  const transformOrigin = _get(containerStyle, 'transformOrigin');
176
174
 
177
- const inner = motion ? /*#__PURE__*/React.createElement(TooltipTransition, {
175
+ const inner = motion && isPositionUpdated ? /*#__PURE__*/React.createElement(TooltipTransition, {
178
176
  position: placement,
179
- willEnter: this.willEnter,
180
177
  didLeave: this.didLeave,
181
178
  motion: motion
182
179
  }, transitionState === 'enter' ? _ref => {
@@ -187,13 +184,13 @@ export default class Tooltip extends BaseComponent {
187
184
  } = _ref;
188
185
  return /*#__PURE__*/React.createElement("div", _Object$assign({
189
186
  className: classNames(className, animateCls),
190
- style: _Object$assign(_Object$assign(_Object$assign({
191
- visibility: 'visible'
192
- }, animateStyle), {
187
+ style: _Object$assign(_Object$assign(_Object$assign({}, animateStyle), {
193
188
  transformOrigin
194
189
  }), style)
195
190
  }, portalEventSet, animateEvents, {
196
- "x-placement": placement
191
+ role: role,
192
+ "x-placement": placement,
193
+ id: id
197
194
  }), content, icon);
198
195
  } : null) : /*#__PURE__*/React.createElement("div", _Object$assign({
199
196
  className: className
@@ -269,7 +266,10 @@ export default class Tooltip extends BaseComponent {
269
266
  },
270
267
  isInsert: false,
271
268
  placement: props.position || 'top',
272
- transitionStyle: {}
269
+ transitionStyle: {},
270
+ isPositionUpdated: false,
271
+ id: getUuidShort() // auto generate id, will be used by children.aria-describedby & content.id, improve a11y
272
+
273
273
  };
274
274
  this.foundation = new TooltipFoundation(this.adapter);
275
275
  this.eventManager = new Event();
@@ -307,18 +307,16 @@ export default class Tooltip extends BaseComponent {
307
307
  transitionState: 'enter',
308
308
  containerStyle: _Object$assign(_Object$assign({}, this.state.containerStyle), containerStyle)
309
309
  }, () => {
310
- /**
311
- * Dangerous: remove setTimeout from here fix #1301
312
- * setTimeout may emit portalInserted event after hiding portal
313
- * Hiding portal will remove portalInserted event listener(normal process)
314
- * then portal can't hide because _togglePortalVisible(false) will found isVisible=false and nowVisible=false(bug here)
315
- */
316
- this.eventManager.emit('portalInserted');
310
+ _setTimeout(() => {
311
+ // waiting child component mounted
312
+ this.eventManager.emit('portalInserted');
313
+ }, 0);
317
314
  });
318
315
  },
319
316
  removePortal: () => {
320
317
  this.setState({
321
- isInsert: false
318
+ isInsert: false,
319
+ isPositionUpdated: false
322
320
  });
323
321
  },
324
322
  getEventName: () => ({
@@ -399,7 +397,8 @@ export default class Tooltip extends BaseComponent {
399
397
 
400
398
  this.setState({
401
399
  containerStyle: _Object$assign(_Object$assign({}, this.state.containerStyle), style),
402
- placement: position
400
+ placement: position,
401
+ isPositionUpdated: true
403
402
  }, () => {
404
403
  this.eventManager.emit('positionUpdated');
405
404
  });
@@ -557,10 +556,13 @@ export default class Tooltip extends BaseComponent {
557
556
  render() {
558
557
  const {
559
558
  isInsert,
560
- triggerEventSet
559
+ triggerEventSet,
560
+ visible,
561
+ id
561
562
  } = this.state;
562
563
  const {
563
- wrapWhenSpecial
564
+ wrapWhenSpecial,
565
+ role
564
566
  } = this.props;
565
567
  let {
566
568
  children
@@ -589,13 +591,23 @@ export default class Tooltip extends BaseComponent {
589
591
  children = this.wrapSpan(children);
590
592
  this.isWrapped = true;
591
593
  }
594
+ } // eslint-disable-next-line prefer-const
595
+
596
+
597
+ let ariaAttribute = {}; // Take effect when used by Popover component
598
+
599
+ if (role === 'dialog') {
600
+ ariaAttribute['aria-expanded'] = visible ? 'true' : 'false';
601
+ ariaAttribute['aria-haspopup'] = 'dialog';
602
+ ariaAttribute['aria-controls'] = id;
603
+ } else {
604
+ ariaAttribute['aria-describedby'] = id;
592
605
  } // The incoming children is a single valid element, otherwise wrap a layer with span
593
606
 
594
607
 
595
- const newChild = /*#__PURE__*/React.cloneElement(children, _Object$assign(_Object$assign(_Object$assign({}, children.props), this.mergeEvents(children.props, triggerEventSet)), {
608
+ const newChild = /*#__PURE__*/React.cloneElement(children, _Object$assign(_Object$assign(_Object$assign(_Object$assign({}, ariaAttribute), children.props), this.mergeEvents(children.props, triggerEventSet)), {
596
609
  style: _Object$assign(_Object$assign({}, _get(children, 'props.style')), extraStyle),
597
- className: classNames(_get(children, 'props.className') // `${prefixCls}-trigger`
598
- ),
610
+ className: classNames(_get(children, 'props.className')),
599
611
  // to maintain refs with callback
600
612
  ref: node => {
601
613
  // Keep your own reference
@@ -648,24 +660,26 @@ Tooltip.propTypes = {
648
660
  arrowPointAtCenter: PropTypes.bool,
649
661
  stopPropagation: PropTypes.bool,
650
662
  // private
663
+ role: PropTypes.string,
651
664
  wrapWhenSpecial: PropTypes.bool // when trigger has special status such as "disabled" or "loading", wrap span
652
665
 
653
666
  };
654
667
  Tooltip.defaultProps = {
655
- transformFromCenter: true,
668
+ arrowBounding: numbers.ARROW_BOUNDING,
669
+ autoAdjustOverflow: true,
656
670
  arrowPointAtCenter: true,
657
- wrapWhenSpecial: true,
658
- motion: true,
659
- zIndex: numbers.DEFAULT_Z_INDEX,
660
671
  trigger: 'hover',
672
+ transformFromCenter: true,
661
673
  position: 'top',
662
674
  prefixCls: prefix,
663
- autoAdjustOverflow: true,
675
+ role: 'tooltip',
664
676
  mouseEnterDelay: numbers.MOUSE_ENTER_DELAY,
665
677
  mouseLeaveDelay: numbers.MOUSE_LEAVE_DELAY,
678
+ motion: true,
666
679
  onVisibleChange: _noop,
667
680
  onClickOutSide: _noop,
668
681
  spacing: numbers.SPACING,
669
682
  showArrow: true,
670
- arrowBounding: numbers.ARROW_BOUNDING
683
+ wrapWhenSpecial: true,
684
+ zIndex: numbers.DEFAULT_Z_INDEX
671
685
  };
@@ -167,6 +167,8 @@ class Transfer extends BaseComponent {
167
167
  }
168
168
 
169
169
  return /*#__PURE__*/React.createElement("div", {
170
+ role: "search",
171
+ "aria-label": "Transfer filter",
170
172
  className: "".concat(prefixcls, "-filter")
171
173
  }, /*#__PURE__*/React.createElement(Input, _Object$assign({
172
174
  prefix: /*#__PURE__*/React.createElement(IconSearch, null),
@@ -234,6 +236,7 @@ class Transfer extends BaseComponent {
234
236
  disabled: item.disabled || disabled,
235
237
  className: leftItemCls,
236
238
  checked: checked,
239
+ role: "listitem",
237
240
  onChange: () => this.onSelectOrRemove(item)
238
241
  }, item.label);
239
242
  }
@@ -400,7 +403,9 @@ class Transfer extends BaseComponent {
400
403
  });
401
404
 
402
405
  return /*#__PURE__*/React.createElement("div", {
403
- className: "".concat(prefixcls, "-left-list")
406
+ className: "".concat(prefixcls, "-left-list"),
407
+ role: "list",
408
+ "aria-label": "Option list"
404
409
  }, content);
405
410
  }
406
411
 
@@ -438,19 +443,27 @@ class Transfer extends BaseComponent {
438
443
  }
439
444
 
440
445
  const DragHandle = SortableHandle(() => /*#__PURE__*/React.createElement(IconHandle, {
446
+ role: "button",
447
+ "aria-label": "Drag and sort",
441
448
  className: "".concat(prefixcls, "-right-item-drag-handler")
442
449
  }));
443
- return /*#__PURE__*/React.createElement("div", {
444
- className: rightItemCls,
445
- key: newItem.key
446
- }, draggable ? /*#__PURE__*/React.createElement(DragHandle, null) : null, /*#__PURE__*/React.createElement("div", {
447
- className: "".concat(prefixcls, "-right-item-text")
448
- }, label), /*#__PURE__*/React.createElement(IconClose, {
449
- onClick: onRemove,
450
- className: cls("".concat(prefixcls, "-item-close-icon"), {
451
- ["".concat(prefixcls, "-item-close-icon-disabled")]: item.disabled
452
- })
453
- }));
450
+ return (
451
+ /*#__PURE__*/
452
+ // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
453
+ React.createElement("div", {
454
+ role: "listitem",
455
+ className: rightItemCls,
456
+ key: newItem.key
457
+ }, draggable ? /*#__PURE__*/React.createElement(DragHandle, null) : null, /*#__PURE__*/React.createElement("div", {
458
+ className: "".concat(prefixcls, "-right-item-text")
459
+ }, label), /*#__PURE__*/React.createElement(IconClose, {
460
+ onClick: onRemove,
461
+ "aria-disabled": item.disabled,
462
+ className: cls("".concat(prefixcls, "-item-close-icon"), {
463
+ ["".concat(prefixcls, "-item-close-icon-disabled")]: item.disabled
464
+ })
465
+ }))
466
+ );
454
467
  }
455
468
 
456
469
  renderEmpty(type, emptyText) {
@@ -460,6 +473,7 @@ class Transfer extends BaseComponent {
460
473
  ["".concat(prefixcls, "-left-empty")]: type === 'left'
461
474
  });
462
475
  return /*#__PURE__*/React.createElement("div", {
476
+ "aria-label": "empty",
463
477
  className: emptyCls
464
478
  }, emptyText);
465
479
  }
@@ -472,7 +486,9 @@ class Transfer extends BaseComponent {
472
486
  items
473
487
  } = _ref;
474
488
  return /*#__PURE__*/React.createElement("div", {
475
- className: "".concat(prefixcls, "-right-list")
489
+ className: "".concat(prefixcls, "-right-list"),
490
+ role: "list",
491
+ "aria-label": "Selected list"
476
492
  }, _mapInstanceProperty(items).call(items, (item, index) =>
477
493
  /*#__PURE__*/
478
494
  // sortableElement will take over the property 'key', so use another '_optionKey' to pass
@@ -540,7 +556,9 @@ class Transfer extends BaseComponent {
540
556
 
541
557
  case selectedData.length && !draggable:
542
558
  const list = /*#__PURE__*/React.createElement("div", {
543
- className: "".concat(prefixcls, "-right-list")
559
+ className: "".concat(prefixcls, "-right-list"),
560
+ role: "list",
561
+ "aria-label": "Selected list"
544
562
  }, _mapInstanceProperty(selectedData).call(selectedData, item => this.renderRightItem(_Object$assign({}, item))));
545
563
  content = list;
546
564
  break;
@@ -70,6 +70,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
70
70
  onDragStart: PropTypes.Requireable<(...args: any[]) => any>;
71
71
  onDrop: PropTypes.Requireable<(...args: any[]) => any>;
72
72
  labelEllipsis: PropTypes.Requireable<boolean>;
73
+ 'aria-label': PropTypes.Requireable<string>;
73
74
  };
74
75
  static defaultProps: {
75
76
  showClear: boolean;
@@ -504,6 +504,7 @@ class Tree extends BaseComponent {
504
504
  }
505
505
 
506
506
  return /*#__PURE__*/React.createElement(Input, _Object$assign({
507
+ "aria-label": 'Filter Tree',
507
508
  ref: this.inputRef
508
509
  }, inputProps));
509
510
  }));
@@ -606,6 +607,14 @@ class Tree extends BaseComponent {
606
607
  });
607
608
  const searchNoRes = Boolean(inputValue) && !filteredKeys.size;
608
609
  const noData = _isEmpty(keyEntities) || showFilteredOnly && searchNoRes;
610
+ const ariaAttr = {
611
+ role: noData ? 'none' : 'tree'
612
+ };
613
+
614
+ if (ariaAttr.role === 'tree') {
615
+ ariaAttr['aria-multiselectable'] = multiple ? true : false;
616
+ }
617
+
609
618
  return /*#__PURE__*/React.createElement(TreeContext.Provider, {
610
619
  value: {
611
620
  treeDisabled: disabled,
@@ -643,13 +652,12 @@ class Tree extends BaseComponent {
643
652
  labelEllipsis: typeof labelEllipsis === 'undefined' ? virtualize : labelEllipsis
644
653
  }
645
654
  }, /*#__PURE__*/React.createElement("div", {
655
+ "aria-label": this.props['aria-label'],
646
656
  className: wrapperCls,
647
- role: "list-box",
648
657
  style: style
649
- }, filterTreeNode ? this.renderInput() : null, /*#__PURE__*/React.createElement("div", {
650
- className: listCls,
651
- role: "tree"
652
- }, noData ? this.renderEmpty() : this.renderNodeList())));
658
+ }, filterTreeNode ? this.renderInput() : null, /*#__PURE__*/React.createElement("div", _Object$assign({
659
+ className: listCls
660
+ }, ariaAttr), noData ? this.renderEmpty() : this.renderNodeList())));
653
661
  }
654
662
 
655
663
  }
@@ -714,7 +722,8 @@ Tree.propTypes = {
714
722
  onDragOver: PropTypes.func,
715
723
  onDragStart: PropTypes.func,
716
724
  onDrop: PropTypes.func,
717
- labelEllipsis: PropTypes.bool
725
+ labelEllipsis: PropTypes.bool,
726
+ 'aria-label': PropTypes.string
718
727
  };
719
728
  Tree.defaultProps = {
720
729
  showClear: true,
@@ -29,11 +29,19 @@ export default class TreeNode extends PureComponent<TreeNodeProps, TreeNodeState
29
29
  debounceSelect: any;
30
30
  refNode: HTMLElement;
31
31
  constructor(props: TreeNodeProps);
32
- onSelect: (e: React.MouseEvent) => void;
33
- onExpand: (e: React.MouseEvent) => void;
34
- onCheck: (e: React.MouseEvent) => void;
32
+ onSelect: (e: React.MouseEvent | React.KeyboardEvent) => void;
33
+ onExpand: (e: React.MouseEvent | React.KeyboardEvent) => void;
34
+ onCheck: (e: React.MouseEvent | React.KeyboardEvent) => void;
35
+ /**
36
+ * A11y: simulate checkbox click
37
+ */
38
+ handleCheckEnterPress: (e: React.KeyboardEvent) => void;
35
39
  onContextMenu: (e: React.MouseEvent) => void;
36
- onClick: (e: React.MouseEvent) => void;
40
+ onClick: (e: React.MouseEvent | React.KeyboardEvent) => void;
41
+ /**
42
+ * A11y: simulate li click
43
+ */
44
+ handleliEnterPress: (e: React.KeyboardEvent) => void;
37
45
  onDoubleClick: (e: React.MouseEvent) => void;
38
46
  onDragStart: (e: React.DragEvent) => void;
39
47
  onDragEnter: (e: React.DragEvent) => void;
@@ -1,3 +1,5 @@
1
+ import _isEmpty from "lodash/isEmpty";
2
+ import _get from "lodash/get";
1
3
  import _isString from "lodash/isString";
2
4
  import _isFunction from "lodash/isFunction";
3
5
  import _debounce from "lodash/debounce";
@@ -22,6 +24,7 @@ import React, { PureComponent } from 'react';
22
24
  import cls from 'classnames';
23
25
  import PropTypes from 'prop-types';
24
26
  import { cssClasses } from '@douyinfe/semi-foundation/lib/es/tree/constants';
27
+ import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
25
28
  import { IconTreeTriangleDown, IconFile, IconFolder, IconFolderOpen } from '@douyinfe/semi-icons';
26
29
  import { Checkbox } from '../checkbox';
27
30
  import TreeContext from './treeContext';
@@ -59,6 +62,16 @@ export default class TreeNode extends PureComponent {
59
62
  e.nativeEvent.stopImmediatePropagation();
60
63
  onNodeCheck(e, this.props);
61
64
  };
65
+ /**
66
+ * A11y: simulate checkbox click
67
+ */
68
+
69
+
70
+ this.handleCheckEnterPress = e => {
71
+ if (isEnterPress(e)) {
72
+ this.onCheck(e);
73
+ }
74
+ };
62
75
 
63
76
  this.onContextMenu = e => {
64
77
  const {
@@ -83,6 +96,16 @@ export default class TreeNode extends PureComponent {
83
96
  this.onExpand(e);
84
97
  }
85
98
  };
99
+ /**
100
+ * A11y: simulate li click
101
+ */
102
+
103
+
104
+ this.handleliEnterPress = e => {
105
+ if (isEnterPress(e)) {
106
+ this.onClick(e);
107
+ }
108
+ };
86
109
 
87
110
  this.onDoubleClick = e => {
88
111
  const {
@@ -260,7 +283,8 @@ export default class TreeNode extends PureComponent {
260
283
  renderArrow() {
261
284
  const showIcon = !this.isLeaf();
262
285
  const {
263
- loading
286
+ loading,
287
+ expanded
264
288
  } = this.props;
265
289
 
266
290
  if (loading) {
@@ -271,6 +295,8 @@ export default class TreeNode extends PureComponent {
271
295
 
272
296
  if (showIcon) {
273
297
  return /*#__PURE__*/React.createElement(IconTreeTriangleDown, {
298
+ role: 'button',
299
+ "aria-label": "".concat(expanded ? 'Expand' : 'Collapse', " the tree item"),
274
300
  className: "".concat(prefixcls, "-expand-icon"),
275
301
  size: "small",
276
302
  onClick: this.onExpand
@@ -289,8 +315,11 @@ export default class TreeNode extends PureComponent {
289
315
  } = this.props;
290
316
  const disabled = this.isDisabled();
291
317
  return /*#__PURE__*/React.createElement("div", {
292
- onClick: this.onCheck
318
+ role: 'none',
319
+ onClick: this.onCheck,
320
+ onKeyPress: this.handleCheckEnterPress
293
321
  }, /*#__PURE__*/React.createElement(Checkbox, {
322
+ "aria-label": 'Toggle the checked state of checkbox',
294
323
  indeterminate: halfChecked,
295
324
  checked: checked,
296
325
  disabled: Boolean(disabled)
@@ -343,7 +372,7 @@ export default class TreeNode extends PureComponent {
343
372
  });
344
373
  return /*#__PURE__*/React.createElement("ul", {
345
374
  className: wrapperCls
346
- }, /*#__PURE__*/React.createElement("span", {
375
+ }, /*#__PURE__*/React.createElement("li", {
347
376
  className: _concatInstanceProperty(_context2 = "".concat(prefixcls, "-label ")).call(_context2, prefixcls, "-label-empty")
348
377
  }, emptyContent));
349
378
  } // eslint-disable-next-line max-lines-per-function
@@ -442,7 +471,14 @@ export default class TreeNode extends PureComponent {
442
471
  ref: this.setRef
443
472
  }, dragProps));
444
473
  } else {
445
- return customLabel;
474
+ if (_isEmpty(style)) {
475
+ return customLabel;
476
+ } else {
477
+ // In virtualization, props.style will contain location information
478
+ return /*#__PURE__*/React.cloneElement(customLabel, {
479
+ style: _Object$assign(_Object$assign({}, _get(customLabel, ['props', 'style'])), style)
480
+ });
481
+ }
446
482
  }
447
483
  }
448
484
 
@@ -450,11 +486,23 @@ export default class TreeNode extends PureComponent {
450
486
  ["".concat(prefixcls, "-drag-over-gap-top")]: !disabled && dragOverGapTop,
451
487
  ["".concat(prefixcls, "-drag-over-gap-bottom")]: !disabled && dragOverGapBottom
452
488
  });
489
+
490
+ const setsize = _get(rest, ['data', 'children', 'length']);
491
+
492
+ const posinset = _isString(rest.pos) ? Number(rest.pos.split('-')[level + 1]) + 1 : 1;
453
493
  return /*#__PURE__*/React.createElement("li", _Object$assign({
454
494
  className: nodeCls,
455
- role: "treenode",
495
+ role: "treeitem",
496
+ "aria-disabled": disabled,
497
+ "aria-checked": checked,
498
+ "aria-selected": selected,
499
+ "aria-setsize": setsize,
500
+ "aria-posinset": posinset,
501
+ "aria-expanded": expanded,
502
+ "aria-level": level + 1,
456
503
  "data-key": eventKey,
457
504
  onClick: this.onClick,
505
+ onKeyPress: this.handleliEnterPress,
458
506
  onContextMenu: this.onContextMenu,
459
507
  onDoubleClick: this.onDoubleClick,
460
508
  ref: this.setRef,
@@ -34,6 +34,11 @@ export declare type OverrideCommonProps = 'renderFullLabel' | 'renderLabel' | 'd
34
34
  * TreeSelectProps inherits some properties from BasicTreeSelectProps (from foundation) and TreeProps (from semi-ui-react).
35
35
  */
36
36
  export interface TreeSelectProps extends Omit<BasicTreeSelectProps, OverrideCommonProps | 'validateStatus' | 'searchRender'>, Pick<TreeProps, OverrideCommonProps> {
37
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
38
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
39
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
40
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
41
+ 'aria-required'?: React.AriaAttributes['aria-required'];
37
42
  motion?: Motion;
38
43
  mouseEnterDelay?: number;
39
44
  mouseLeaveDelay?: number;
@@ -45,6 +50,7 @@ export interface TreeSelectProps extends Omit<BasicTreeSelectProps, OverrideComm
45
50
  dropdownMatchSelectWidth?: boolean;
46
51
  dropdownStyle?: React.CSSProperties;
47
52
  insetLabel?: React.ReactNode;
53
+ insetLabelId?: string;
48
54
  maxTagCount?: number;
49
55
  motionExpand?: boolean;
50
56
  optionListStyle?: React.CSSProperties;
@@ -85,6 +91,11 @@ export interface TreeSelectState extends Omit<BasicTreeSelectInnerData, Override
85
91
  declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
86
92
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
87
93
  static propTypes: {
94
+ 'aria-describedby': PropTypes.Requireable<string>;
95
+ 'aria-errormessage': PropTypes.Requireable<string>;
96
+ 'aria-invalid': PropTypes.Requireable<boolean>;
97
+ 'aria-labelledby': PropTypes.Requireable<string>;
98
+ 'aria-required': PropTypes.Requireable<boolean>;
88
99
  loadedKeys: PropTypes.Requireable<string[]>;
89
100
  loadData: PropTypes.Requireable<(...args: any[]) => any>;
90
101
  onLoad: PropTypes.Requireable<(...args: any[]) => any>;
@@ -136,6 +147,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
136
147
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
137
148
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
138
149
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
150
+ insetLabelId: PropTypes.Requireable<string>;
139
151
  zIndex: PropTypes.Requireable<number>;
140
152
  getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
141
153
  dropdownMatchSelectWidth: PropTypes.Requireable<boolean>;
@@ -156,6 +168,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
156
168
  optionListStyle: PropTypes.Requireable<object>;
157
169
  searchRender: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
158
170
  renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
171
+ 'aria-label': PropTypes.Requireable<string>;
159
172
  };
160
173
  static defaultProps: Partial<TreeSelectProps>;
161
174
  inputRef: React.RefObject<typeof Input>;
@@ -167,6 +180,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
167
180
  onNodeClick: any;
168
181
  onNodeDoubleClick: any;
169
182
  onMotionEnd: any;
183
+ treeSelectID: string;
170
184
  constructor(props: TreeSelectProps);
171
185
  static getDerivedStateFromProps(props: TreeSelectProps, prevState: TreeSelectState): Partial<TreeSelectState>;
172
186
  get adapter(): TreeSelectAdapter<TreeSelectProps, TreeSelectState>;
@@ -177,6 +191,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
177
191
  renderContent: () => JSX.Element;
178
192
  removeTag: (removedKey: TreeNodeData['key']) => void;
179
193
  handleClick: (e: React.MouseEvent) => void;
194
+ handleSelectionEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
180
195
  showClearBtn: () => boolean;
181
196
  renderTagList: () => React.ReactNode[];
182
197
  /**
@@ -189,6 +204,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
189
204
  renderSingleTriggerSearch: () => JSX.Element;
190
205
  renderSelectContent: () => JSX.Element;
191
206
  handleClear: (e: React.MouseEvent) => void;
207
+ handleClearEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
192
208
  handleMouseOver: (e: React.MouseEvent) => void;
193
209
  handleMouseLeave: (e: React.MouseEvent) => void;
194
210
  search: (value: string) => void;