@douyinfe/semi-ui 2.2.1 → 2.3.1

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 (445) 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/__test__/datePicker.test.js +93 -0
  34. package/datePicker/_story/datePicker.stories.js +84 -1
  35. package/datePicker/datePicker.tsx +21 -0
  36. package/datePicker/monthsGrid.tsx +2 -1
  37. package/dist/css/semi.css +8 -3
  38. package/dist/css/semi.min.css +1 -1
  39. package/dist/umd/semi-ui.js +2490 -1255
  40. package/dist/umd/semi-ui.js.map +1 -1
  41. package/dist/umd/semi-ui.min.js +1 -1
  42. package/dist/umd/semi-ui.min.js.map +1 -1
  43. package/dropdown/dropdownItem.tsx +1 -1
  44. package/dropdown/dropdownMenu.tsx +1 -1
  45. package/dropdown/index.tsx +11 -3
  46. package/empty/index.tsx +4 -4
  47. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  48. package/form/_story/Validate/validateDemo.jsx +1 -1
  49. package/form/_story/demo.jsx +12 -3
  50. package/form/_story/form.stories.js +0 -7
  51. package/form/baseForm.tsx +2 -0
  52. package/form/errorMessage.tsx +13 -2
  53. package/form/hoc/withField.tsx +37 -8
  54. package/form/index.tsx +0 -2
  55. package/form/interface.ts +2 -0
  56. package/form/label.tsx +4 -2
  57. package/input/index.tsx +49 -4
  58. package/input/inputGroup.tsx +9 -4
  59. package/input/textarea.tsx +25 -6
  60. package/inputNumber/_story/inputNumber.stories.js +12 -0
  61. package/inputNumber/index.tsx +35 -3
  62. package/layout/Sider.tsx +6 -2
  63. package/layout/index.tsx +4 -3
  64. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  65. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  66. package/lib/cjs/_utils/index.d.ts +1 -0
  67. package/lib/cjs/_utils/index.js +6 -1
  68. package/lib/cjs/anchor/index.d.ts +2 -0
  69. package/lib/cjs/anchor/index.js +6 -1
  70. package/lib/cjs/anchor/link.d.ts +4 -1
  71. package/lib/cjs/anchor/link.js +39 -5
  72. package/lib/cjs/autoComplete/index.d.ts +17 -0
  73. package/lib/cjs/autoComplete/index.js +21 -2
  74. package/lib/cjs/avatar/index.d.ts +4 -3
  75. package/lib/cjs/avatar/index.js +15 -11
  76. package/lib/cjs/banner/index.js +4 -2
  77. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  78. package/lib/cjs/breadcrumb/index.js +10 -4
  79. package/lib/cjs/breadcrumb/item.js +2 -2
  80. package/lib/cjs/button/Button.d.ts +2 -0
  81. package/lib/cjs/button/Button.js +4 -2
  82. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  83. package/lib/cjs/button/buttonGroup.js +8 -4
  84. package/lib/cjs/button/index.d.ts +1 -0
  85. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  86. package/lib/cjs/button/splitButtonGroup.js +5 -2
  87. package/lib/cjs/card/index.d.ts +3 -0
  88. package/lib/cjs/card/index.js +3 -1
  89. package/lib/cjs/cascader/index.d.ts +14 -0
  90. package/lib/cjs/cascader/index.js +35 -7
  91. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  92. package/lib/cjs/checkbox/checkbox.js +51 -17
  93. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  94. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  95. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  96. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  97. package/lib/cjs/collapse/item.d.ts +2 -1
  98. package/lib/cjs/collapse/item.js +12 -2
  99. package/lib/cjs/collapsible/index.d.ts +1 -0
  100. package/lib/cjs/collapsible/index.js +4 -2
  101. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  102. package/lib/cjs/datePicker/datePicker.js +18 -3
  103. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -0
  104. package/lib/cjs/datePicker/monthsGrid.js +2 -1
  105. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  106. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  107. package/lib/cjs/dropdown/index.d.ts +10 -3
  108. package/lib/cjs/form/baseForm.d.ts +9 -0
  109. package/lib/cjs/form/baseForm.js +3 -1
  110. package/lib/cjs/form/errorMessage.d.ts +4 -0
  111. package/lib/cjs/form/errorMessage.js +21 -3
  112. package/lib/cjs/form/field.d.ts +7 -0
  113. package/lib/cjs/form/hoc/withField.js +49 -16
  114. package/lib/cjs/form/index.d.ts +0 -1
  115. package/lib/cjs/form/interface.d.ts +2 -0
  116. package/lib/cjs/form/label.d.ts +2 -0
  117. package/lib/cjs/form/label.js +5 -2
  118. package/lib/cjs/input/index.d.ts +16 -0
  119. package/lib/cjs/input/index.js +51 -15
  120. package/lib/cjs/input/inputGroup.d.ts +2 -1
  121. package/lib/cjs/input/inputGroup.js +11 -1
  122. package/lib/cjs/input/textarea.js +12 -1
  123. package/lib/cjs/inputNumber/index.d.ts +21 -12
  124. package/lib/cjs/inputNumber/index.js +40 -5
  125. package/lib/cjs/layout/Sider.d.ts +4 -0
  126. package/lib/cjs/layout/Sider.js +4 -1
  127. package/lib/cjs/layout/index.js +2 -0
  128. package/lib/cjs/list/index.d.ts +4 -4
  129. package/lib/cjs/list/item.js +0 -1
  130. package/lib/cjs/modal/Modal.js +2 -0
  131. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  132. package/lib/cjs/modal/ModalContent.js +47 -5
  133. package/lib/cjs/navigation/Item.d.ts +4 -2
  134. package/lib/cjs/navigation/Item.js +25 -5
  135. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  136. package/lib/cjs/navigation/SubNav.js +8 -1
  137. package/lib/cjs/navigation/index.js +2 -0
  138. package/lib/cjs/notification/notice.d.ts +1 -1
  139. package/lib/cjs/notification/notice.js +32 -22
  140. package/lib/cjs/pagination/index.js +16 -6
  141. package/lib/cjs/popover/index.js +7 -3
  142. package/lib/cjs/progress/index.d.ts +8 -0
  143. package/lib/cjs/progress/index.js +42 -9
  144. package/lib/cjs/radio/radio.d.ts +6 -1
  145. package/lib/cjs/radio/radio.js +17 -5
  146. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  147. package/lib/cjs/radio/radioGroup.js +18 -3
  148. package/lib/cjs/radio/radioInner.d.ts +6 -1
  149. package/lib/cjs/radio/radioInner.js +11 -3
  150. package/lib/cjs/rating/index.d.ts +14 -0
  151. package/lib/cjs/rating/index.js +14 -3
  152. package/lib/cjs/rating/item.d.ts +2 -0
  153. package/lib/cjs/rating/item.js +6 -1
  154. package/lib/cjs/select/index.d.ts +16 -0
  155. package/lib/cjs/select/index.js +65 -19
  156. package/lib/cjs/select/option.js +28 -22
  157. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  158. package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
  159. package/lib/cjs/sideSheet/index.d.ts +1 -0
  160. package/lib/cjs/sideSheet/index.js +2 -1
  161. package/lib/cjs/slider/index.d.ts +2 -1
  162. package/lib/cjs/slider/index.js +64 -17
  163. package/lib/cjs/spin/icon.js +3 -4
  164. package/lib/cjs/steps/basicStep.d.ts +3 -0
  165. package/lib/cjs/steps/basicStep.js +23 -25
  166. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  167. package/lib/cjs/steps/basicSteps.js +2 -1
  168. package/lib/cjs/steps/fillStep.d.ts +3 -0
  169. package/lib/cjs/steps/fillStep.js +19 -4
  170. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  171. package/lib/cjs/steps/fillSteps.js +2 -1
  172. package/lib/cjs/steps/navStep.d.ts +3 -0
  173. package/lib/cjs/steps/navStep.js +22 -25
  174. package/lib/cjs/steps/navSteps.d.ts +1 -0
  175. package/lib/cjs/steps/navSteps.js +2 -1
  176. package/lib/cjs/switch/index.d.ts +12 -0
  177. package/lib/cjs/switch/index.js +19 -4
  178. package/lib/cjs/table/Body/BaseRow.js +35 -3
  179. package/lib/cjs/table/Body/index.js +9 -1
  180. package/lib/cjs/table/ColumnFilter.js +4 -0
  181. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  182. package/lib/cjs/table/ColumnSelection.js +6 -2
  183. package/lib/cjs/table/ColumnSorter.js +19 -3
  184. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  185. package/lib/cjs/table/Table.d.ts +2 -0
  186. package/lib/cjs/table/Table.js +31 -15
  187. package/lib/cjs/table/TableCell.d.ts +2 -0
  188. package/lib/cjs/table/TableCell.js +6 -2
  189. package/lib/cjs/table/TableHeaderRow.js +8 -2
  190. package/lib/cjs/tabs/TabBar.js +11 -3
  191. package/lib/cjs/tabs/TabPane.js +3 -1
  192. package/lib/cjs/tabs/index.js +0 -1
  193. package/lib/cjs/tagInput/index.d.ts +4 -1
  194. package/lib/cjs/tagInput/index.js +29 -3
  195. package/lib/cjs/timePicker/TimePicker.d.ts +12 -0
  196. package/lib/cjs/timePicker/TimePicker.js +9 -1
  197. package/lib/cjs/timePicker/index.d.ts +6 -0
  198. package/lib/cjs/timeline/index.d.ts +1 -1
  199. package/lib/cjs/timeline/index.js +1 -0
  200. package/lib/cjs/timeline/item.js +4 -2
  201. package/lib/cjs/toast/toast.js +2 -0
  202. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  203. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  204. package/lib/cjs/tooltip/index.d.ts +16 -12
  205. package/lib/cjs/tooltip/index.js +55 -39
  206. package/lib/cjs/transfer/index.d.ts +1 -1
  207. package/lib/cjs/transfer/index.js +35 -17
  208. package/lib/cjs/tree/index.d.ts +1 -0
  209. package/lib/cjs/tree/index.js +15 -6
  210. package/lib/cjs/tree/treeNode.d.ts +12 -4
  211. package/lib/cjs/tree/treeNode.js +44 -4
  212. package/lib/cjs/treeSelect/index.d.ts +16 -0
  213. package/lib/cjs/treeSelect/index.js +60 -12
  214. package/lib/cjs/typography/base.js +18 -7
  215. package/lib/cjs/typography/copyable.js +6 -1
  216. package/lib/cjs/upload/fileCard.js +26 -7
  217. package/lib/cjs/upload/index.js +19 -4
  218. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  219. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  220. package/lib/es/_utils/index.d.ts +1 -0
  221. package/lib/es/_utils/index.js +4 -1
  222. package/lib/es/anchor/index.d.ts +2 -0
  223. package/lib/es/anchor/index.js +6 -1
  224. package/lib/es/anchor/link.d.ts +4 -1
  225. package/lib/es/anchor/link.js +38 -5
  226. package/lib/es/autoComplete/index.d.ts +17 -0
  227. package/lib/es/autoComplete/index.js +21 -2
  228. package/lib/es/avatar/index.d.ts +4 -3
  229. package/lib/es/avatar/index.js +15 -11
  230. package/lib/es/banner/index.js +4 -2
  231. package/lib/es/breadcrumb/index.d.ts +3 -0
  232. package/lib/es/breadcrumb/index.js +10 -4
  233. package/lib/es/breadcrumb/item.js +2 -2
  234. package/lib/es/button/Button.d.ts +2 -0
  235. package/lib/es/button/Button.js +4 -2
  236. package/lib/es/button/buttonGroup.d.ts +3 -0
  237. package/lib/es/button/buttonGroup.js +8 -4
  238. package/lib/es/button/index.d.ts +1 -0
  239. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  240. package/lib/es/button/splitButtonGroup.js +5 -2
  241. package/lib/es/card/index.d.ts +3 -0
  242. package/lib/es/card/index.js +3 -1
  243. package/lib/es/cascader/index.d.ts +14 -0
  244. package/lib/es/cascader/index.js +35 -7
  245. package/lib/es/checkbox/checkbox.d.ts +21 -1
  246. package/lib/es/checkbox/checkbox.js +50 -17
  247. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  248. package/lib/es/checkbox/checkboxGroup.js +18 -5
  249. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  250. package/lib/es/checkbox/checkboxInner.js +20 -3
  251. package/lib/es/collapse/item.d.ts +2 -1
  252. package/lib/es/collapse/item.js +11 -2
  253. package/lib/es/collapsible/index.d.ts +1 -0
  254. package/lib/es/collapsible/index.js +4 -2
  255. package/lib/es/datePicker/datePicker.d.ts +12 -0
  256. package/lib/es/datePicker/datePicker.js +18 -3
  257. package/lib/es/datePicker/monthsGrid.d.ts +1 -0
  258. package/lib/es/datePicker/monthsGrid.js +2 -1
  259. package/lib/es/dropdown/dropdownItem.js +3 -1
  260. package/lib/es/dropdown/dropdownMenu.js +4 -1
  261. package/lib/es/dropdown/index.d.ts +10 -3
  262. package/lib/es/form/baseForm.d.ts +9 -0
  263. package/lib/es/form/baseForm.js +3 -1
  264. package/lib/es/form/errorMessage.d.ts +4 -0
  265. package/lib/es/form/errorMessage.js +21 -3
  266. package/lib/es/form/field.d.ts +7 -0
  267. package/lib/es/form/hoc/withField.js +48 -15
  268. package/lib/es/form/index.d.ts +0 -1
  269. package/lib/es/form/index.js +0 -1
  270. package/lib/es/form/interface.d.ts +2 -0
  271. package/lib/es/form/label.d.ts +2 -0
  272. package/lib/es/form/label.js +5 -2
  273. package/lib/es/input/index.d.ts +16 -0
  274. package/lib/es/input/index.js +51 -15
  275. package/lib/es/input/inputGroup.d.ts +2 -1
  276. package/lib/es/input/inputGroup.js +11 -1
  277. package/lib/es/input/textarea.js +12 -1
  278. package/lib/es/inputNumber/index.d.ts +21 -12
  279. package/lib/es/inputNumber/index.js +41 -5
  280. package/lib/es/layout/Sider.d.ts +4 -0
  281. package/lib/es/layout/Sider.js +4 -1
  282. package/lib/es/layout/index.js +2 -0
  283. package/lib/es/list/index.d.ts +4 -4
  284. package/lib/es/list/item.js +0 -1
  285. package/lib/es/modal/Modal.js +2 -0
  286. package/lib/es/modal/ModalContent.d.ts +3 -1
  287. package/lib/es/modal/ModalContent.js +46 -5
  288. package/lib/es/navigation/Item.d.ts +4 -2
  289. package/lib/es/navigation/Item.js +25 -5
  290. package/lib/es/navigation/SubNav.d.ts +4 -2
  291. package/lib/es/navigation/SubNav.js +8 -1
  292. package/lib/es/navigation/index.js +2 -0
  293. package/lib/es/notification/notice.d.ts +1 -1
  294. package/lib/es/notification/notice.js +33 -24
  295. package/lib/es/pagination/index.js +16 -6
  296. package/lib/es/popover/index.js +7 -3
  297. package/lib/es/progress/index.d.ts +8 -0
  298. package/lib/es/progress/index.js +42 -9
  299. package/lib/es/radio/radio.d.ts +6 -1
  300. package/lib/es/radio/radio.js +16 -5
  301. package/lib/es/radio/radioGroup.d.ts +16 -1
  302. package/lib/es/radio/radioGroup.js +18 -3
  303. package/lib/es/radio/radioInner.d.ts +6 -1
  304. package/lib/es/radio/radioInner.js +11 -3
  305. package/lib/es/rating/index.d.ts +14 -0
  306. package/lib/es/rating/index.js +14 -3
  307. package/lib/es/rating/item.d.ts +2 -0
  308. package/lib/es/rating/item.js +6 -1
  309. package/lib/es/select/index.d.ts +16 -0
  310. package/lib/es/select/index.js +63 -17
  311. package/lib/es/select/option.js +28 -22
  312. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  313. package/lib/es/sideSheet/SideSheetContent.js +4 -1
  314. package/lib/es/sideSheet/index.d.ts +1 -0
  315. package/lib/es/sideSheet/index.js +2 -1
  316. package/lib/es/slider/index.d.ts +2 -1
  317. package/lib/es/slider/index.js +63 -16
  318. package/lib/es/spin/icon.js +3 -4
  319. package/lib/es/steps/basicStep.d.ts +3 -0
  320. package/lib/es/steps/basicStep.js +23 -23
  321. package/lib/es/steps/basicSteps.d.ts +1 -0
  322. package/lib/es/steps/basicSteps.js +2 -1
  323. package/lib/es/steps/fillStep.d.ts +3 -0
  324. package/lib/es/steps/fillStep.js +19 -4
  325. package/lib/es/steps/fillSteps.d.ts +1 -0
  326. package/lib/es/steps/fillSteps.js +2 -1
  327. package/lib/es/steps/navStep.d.ts +3 -0
  328. package/lib/es/steps/navStep.js +22 -23
  329. package/lib/es/steps/navSteps.d.ts +1 -0
  330. package/lib/es/steps/navSteps.js +2 -1
  331. package/lib/es/switch/index.d.ts +12 -0
  332. package/lib/es/switch/index.js +19 -4
  333. package/lib/es/table/Body/BaseRow.js +35 -3
  334. package/lib/es/table/Body/index.js +9 -2
  335. package/lib/es/table/ColumnFilter.js +4 -0
  336. package/lib/es/table/ColumnSelection.d.ts +3 -0
  337. package/lib/es/table/ColumnSelection.js +6 -2
  338. package/lib/es/table/ColumnSorter.js +17 -3
  339. package/lib/es/table/CustomExpandIcon.js +6 -1
  340. package/lib/es/table/Table.d.ts +2 -0
  341. package/lib/es/table/Table.js +31 -15
  342. package/lib/es/table/TableCell.d.ts +2 -0
  343. package/lib/es/table/TableCell.js +6 -2
  344. package/lib/es/table/TableHeaderRow.js +8 -2
  345. package/lib/es/tabs/TabBar.js +11 -3
  346. package/lib/es/tabs/TabPane.js +3 -1
  347. package/lib/es/tabs/index.js +0 -1
  348. package/lib/es/tagInput/index.d.ts +4 -1
  349. package/lib/es/tagInput/index.js +29 -3
  350. package/lib/es/timePicker/TimePicker.d.ts +12 -0
  351. package/lib/es/timePicker/TimePicker.js +9 -1
  352. package/lib/es/timePicker/index.d.ts +6 -0
  353. package/lib/es/timeline/index.d.ts +1 -1
  354. package/lib/es/timeline/index.js +1 -0
  355. package/lib/es/timeline/item.js +4 -2
  356. package/lib/es/toast/toast.js +2 -0
  357. package/lib/es/tooltip/TriangleArrow.js +1 -0
  358. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  359. package/lib/es/tooltip/index.d.ts +16 -12
  360. package/lib/es/tooltip/index.js +53 -39
  361. package/lib/es/transfer/index.d.ts +1 -1
  362. package/lib/es/transfer/index.js +35 -17
  363. package/lib/es/tree/index.d.ts +1 -0
  364. package/lib/es/tree/index.js +15 -6
  365. package/lib/es/tree/treeNode.d.ts +12 -4
  366. package/lib/es/tree/treeNode.js +44 -4
  367. package/lib/es/treeSelect/index.d.ts +16 -0
  368. package/lib/es/treeSelect/index.js +57 -10
  369. package/lib/es/typography/base.js +17 -7
  370. package/lib/es/typography/copyable.js +5 -1
  371. package/lib/es/upload/fileCard.js +26 -7
  372. package/lib/es/upload/index.js +19 -4
  373. package/list/index.tsx +5 -5
  374. package/list/item.tsx +0 -1
  375. package/modal/Modal.tsx +2 -0
  376. package/modal/ModalContent.tsx +35 -5
  377. package/navigation/Item.tsx +15 -0
  378. package/navigation/SubNav.tsx +13 -1
  379. package/navigation/index.tsx +1 -1
  380. package/notification/notice.tsx +19 -14
  381. package/package.json +8 -8
  382. package/pagination/index.tsx +9 -5
  383. package/popover/index.tsx +5 -0
  384. package/progress/_story/progress.stories.js +18 -18
  385. package/progress/index.tsx +58 -20
  386. package/radio/radio.tsx +12 -2
  387. package/radio/radioGroup.tsx +29 -3
  388. package/radio/radioInner.tsx +10 -1
  389. package/rating/index.tsx +19 -2
  390. package/rating/item.tsx +6 -0
  391. package/select/__test__/select.test.js +45 -0
  392. package/select/_story/select.stories.js +29 -0
  393. package/select/index.tsx +52 -4
  394. package/select/option.tsx +3 -0
  395. package/sideSheet/SideSheetContent.tsx +6 -4
  396. package/sideSheet/index.tsx +3 -2
  397. package/slider/__test__/slider.test.js +9 -0
  398. package/slider/_story/slider.stories.js +1 -1
  399. package/slider/index.tsx +44 -7
  400. package/spin/icon.tsx +4 -3
  401. package/steps/basicStep.tsx +15 -4
  402. package/steps/basicSteps.tsx +3 -2
  403. package/steps/fillStep.tsx +27 -12
  404. package/steps/fillSteps.tsx +2 -0
  405. package/steps/navStep.tsx +15 -4
  406. package/steps/navSteps.tsx +3 -2
  407. package/switch/_story/switch.stories.js +20 -19
  408. package/switch/_story/switch.stories.tsx +13 -13
  409. package/switch/index.tsx +23 -5
  410. package/table/Body/BaseRow.tsx +25 -1
  411. package/table/Body/index.tsx +7 -2
  412. package/table/ColumnFilter.tsx +7 -1
  413. package/table/ColumnSelection.tsx +4 -1
  414. package/table/ColumnSorter.tsx +18 -1
  415. package/table/CustomExpandIcon.tsx +5 -0
  416. package/table/Table.tsx +26 -13
  417. package/table/TableCell.tsx +11 -1
  418. package/table/TableHeaderRow.tsx +16 -2
  419. package/table/__test__/table.test.js +46 -0
  420. package/tabs/TabBar.tsx +8 -5
  421. package/tabs/TabPane.tsx +3 -1
  422. package/tabs/index.tsx +0 -1
  423. package/tagInput/__test__/tagInput.test.js +46 -0
  424. package/tagInput/_story/tagInput.stories.js +2 -2
  425. package/tagInput/index.tsx +31 -8
  426. package/timePicker/TimePicker.tsx +14 -1
  427. package/timeline/_story/timeline.stories.js +1 -1
  428. package/timeline/index.tsx +2 -2
  429. package/timeline/item.tsx +2 -1
  430. package/toast/toast.tsx +2 -0
  431. package/tooltip/TriangleArrow.tsx +1 -1
  432. package/tooltip/TriangleArrowVertical.tsx +1 -1
  433. package/tooltip/_story/tooltip.stories.js +562 -514
  434. package/tooltip/index.tsx +51 -33
  435. package/transfer/index.tsx +32 -28
  436. package/tree/_story/tree.stories.js +3 -3
  437. package/tree/index.tsx +10 -2
  438. package/tree/treeNode.tsx +46 -10
  439. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  440. package/treeSelect/_story/treeSelect.stories.js +12 -0
  441. package/treeSelect/index.tsx +58 -7
  442. package/typography/base.tsx +7 -1
  443. package/typography/copyable.tsx +10 -1
  444. package/upload/fileCard.tsx +14 -16
  445. package/upload/index.tsx +10 -6
@@ -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;
@@ -10,6 +10,7 @@ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance
10
10
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
11
11
  import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
12
12
  import _Set from "@babel/runtime-corejs3/core-js-stable/set";
13
+ import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
13
14
  import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
14
15
  import React, { Fragment } from 'react';
15
16
  import ReactDOM from 'react-dom';
@@ -44,6 +45,8 @@ const key = 0;
44
45
 
45
46
  class TreeSelect extends BaseComponent {
46
47
  constructor(props) {
48
+ var _context2;
49
+
47
50
  super(props);
48
51
 
49
52
  this.renderSuffix = () => {
@@ -63,7 +66,8 @@ class TreeSelect extends BaseComponent {
63
66
  this.renderPrefix = () => {
64
67
  const {
65
68
  prefix,
66
- insetLabel
69
+ insetLabel,
70
+ insetLabelId
67
71
  } = this.props;
68
72
  const labelNode = prefix || insetLabel;
69
73
  const prefixWrapperCls = cls({
@@ -74,7 +78,8 @@ class TreeSelect extends BaseComponent {
74
78
  ["".concat(prefixcls, "-prefix-icon")]: isSemiIcon(labelNode)
75
79
  });
76
80
  return /*#__PURE__*/React.createElement("div", {
77
- className: prefixWrapperCls
81
+ className: prefixWrapperCls,
82
+ id: insetLabelId
78
83
  }, labelNode);
79
84
  };
80
85
 
@@ -94,7 +99,6 @@ class TreeSelect extends BaseComponent {
94
99
  const popoverCls = cls(dropdownClassName, "".concat(prefixcls, "-popover"));
95
100
  return /*#__PURE__*/React.createElement("div", {
96
101
  className: popoverCls,
97
- role: "list-box",
98
102
  style: style
99
103
  }, this.renderTree());
100
104
  };
@@ -107,6 +111,10 @@ class TreeSelect extends BaseComponent {
107
111
  this.foundation.handleClick(e);
108
112
  };
109
113
 
114
+ this.handleSelectionEnterPress = e => {
115
+ this.foundation.handleSelectionEnterPress(e);
116
+ };
117
+
110
118
  this.showClearBtn = () => {
111
119
  const {
112
120
  searchPosition
@@ -275,6 +283,11 @@ class TreeSelect extends BaseComponent {
275
283
  this.foundation.handleClear(e);
276
284
  };
277
285
 
286
+ this.handleClearEnterPress = e => {
287
+ e && e.stopPropagation();
288
+ this.foundation.handleClearEnterPress(e);
289
+ };
290
+
278
291
  this.handleMouseOver = e => {
279
292
  this.foundation.toggleHoverState(true);
280
293
  };
@@ -312,8 +325,12 @@ class TreeSelect extends BaseComponent {
312
325
 
313
326
  if (showClearBtn) {
314
327
  return /*#__PURE__*/React.createElement("div", {
328
+ role: 'button',
329
+ tabIndex: 0,
330
+ "aria-label": "Clear TreeSelect value",
315
331
  className: clearCls,
316
- onClick: this.handleClear
332
+ onClick: this.handleClear,
333
+ onKeyPress: this.handleClearEnterPress
317
334
  }, /*#__PURE__*/React.createElement(IconClear, null));
318
335
  }
319
336
 
@@ -397,11 +414,29 @@ class TreeSelect extends BaseComponent {
397
414
  }, showClear || isTriggerPositionSearch && inputValue ? this.renderClearBtn() : null), /*#__PURE__*/React.createElement(Fragment, {
398
415
  key: 'arrow'
399
416
  }, this.renderArrow())];
417
+ const tabIndex = disabled ? null : 0;
418
+ /**
419
+ * Reasons for disabling the a11y eslint rule:
420
+ * The following attributes(aria-controls,aria-expanded) will be automatically added by Tooltip, no need to declare here
421
+ */
422
+
400
423
  return /*#__PURE__*/React.createElement("div", _Object$assign({
424
+ // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
425
+ role: 'combobox',
426
+ "aria-disabled": disabled,
427
+ "aria-haspopup": "tree",
428
+ tabIndex: tabIndex,
401
429
  className: classNames,
402
430
  style: style,
403
431
  ref: this.triggerRef,
404
- onClick: this.handleClick
432
+ onClick: this.handleClick,
433
+ onKeyPress: this.handleSelectionEnterPress,
434
+ "aria-invalid": this.props['aria-invalid'],
435
+ "aria-errormessage": this.props['aria-errormessage'],
436
+ "aria-label": this.props['aria-label'],
437
+ "aria-labelledby": this.props['aria-labelledby'],
438
+ "aria-describedby": this.props['aria-describedby'],
439
+ "aria-required": this.props['aria-required']
405
440
  }, mouseEvent), inner);
406
441
  }; // eslint-disable-next-line @typescript-eslint/no-shadow
407
442
 
@@ -478,7 +513,8 @@ class TreeSelect extends BaseComponent {
478
513
  disabled,
479
514
  size,
480
515
  searchAutoFocus,
481
- placeholder
516
+ placeholder,
517
+ maxTagCount
482
518
  } = this.props;
483
519
  const {
484
520
  keyEntities,
@@ -487,6 +523,7 @@ class TreeSelect extends BaseComponent {
487
523
  } = this.state;
488
524
  const keyList = normalizeKeyList(checkedKeys, keyEntities, leafOnly);
489
525
  return /*#__PURE__*/React.createElement(TagInput, {
526
+ maxTagCount: maxTagCount,
490
527
  disabled: disabled,
491
528
  onInputChange: v => this.search(v),
492
529
  ref: this.tagInputRef,
@@ -558,6 +595,7 @@ class TreeSelect extends BaseComponent {
558
595
  }
559
596
 
560
597
  return /*#__PURE__*/React.createElement(Input, _Object$assign({
598
+ "aria-label": 'Filter TreeSelect item',
561
599
  ref: this.inputRef,
562
600
  autofocus: searchAutoFocus,
563
601
  placeholder: placeholder
@@ -786,11 +824,11 @@ class TreeSelect extends BaseComponent {
786
824
  labelEllipsis: typeof labelEllipsis === 'undefined' ? virtualize : labelEllipsis
787
825
  }
788
826
  }, /*#__PURE__*/React.createElement("div", {
789
- className: wrapperCls,
790
- role: "list-box"
827
+ className: wrapperCls
791
828
  }, outerTopSlot, !outerTopSlot && filterTreeNode && isDropdownPositionSearch && this.renderInput(), /*#__PURE__*/React.createElement("div", {
792
829
  className: listCls,
793
830
  role: "tree",
831
+ "aria-multiselectable": multiple ? true : false,
794
832
  style: optionListStyle
795
833
  }, noData ? this.renderEmpty() : this.renderNodeList()), outerBottomSlot));
796
834
  };
@@ -827,6 +865,7 @@ class TreeSelect extends BaseComponent {
827
865
  this.optionsRef = /*#__PURE__*/React.createRef();
828
866
  this.clickOutsideHandler = null;
829
867
  this.foundation = new TreeSelectFoundation(this.adapter);
868
+ this.treeSelectID = _sliceInstanceProperty(_context2 = Math.random().toString(36)).call(_context2, 2);
830
869
  } // eslint-disable-next-line max-lines-per-function
831
870
 
832
871
 
@@ -1127,6 +1166,11 @@ class TreeSelect extends BaseComponent {
1127
1166
 
1128
1167
  TreeSelect.contextType = ConfigContext;
1129
1168
  TreeSelect.propTypes = {
1169
+ 'aria-describedby': PropTypes.string,
1170
+ 'aria-errormessage': PropTypes.string,
1171
+ 'aria-invalid': PropTypes.bool,
1172
+ 'aria-labelledby': PropTypes.string,
1173
+ 'aria-required': PropTypes.bool,
1130
1174
  loadedKeys: PropTypes.arrayOf(PropTypes.string),
1131
1175
  loadData: PropTypes.func,
1132
1176
  onLoad: PropTypes.func,
@@ -1179,6 +1223,7 @@ TreeSelect.propTypes = {
1179
1223
  suffix: PropTypes.node,
1180
1224
  prefix: PropTypes.node,
1181
1225
  insetLabel: PropTypes.node,
1226
+ insetLabelId: PropTypes.string,
1182
1227
  zIndex: PropTypes.number,
1183
1228
  getPopupContainer: PropTypes.func,
1184
1229
  dropdownMatchSelectWidth: PropTypes.bool,
@@ -1198,7 +1243,8 @@ TreeSelect.propTypes = {
1198
1243
  labelEllipsis: PropTypes.bool,
1199
1244
  optionListStyle: PropTypes.object,
1200
1245
  searchRender: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
1201
- renderSelectedItem: PropTypes.func
1246
+ renderSelectedItem: PropTypes.func,
1247
+ 'aria-label': PropTypes.string
1202
1248
  };
1203
1249
  TreeSelect.defaultProps = {
1204
1250
  searchPosition: strings.SEARCH_POSITION_DROPDOWN,
@@ -1225,6 +1271,7 @@ TreeSelect.defaultProps = {
1225
1271
  onVisibleChange: _noop,
1226
1272
  expandAction: false,
1227
1273
  clickToHide: true,
1228
- searchAutoFocus: false
1274
+ searchAutoFocus: false,
1275
+ 'aria-label': 'TreeSelect'
1229
1276
  };
1230
1277
  export default TreeSelect;
@@ -32,6 +32,7 @@ import Tooltip from '../tooltip/index';
32
32
  import Popover from '../popover/index';
33
33
  import getRenderText from './util';
34
34
  import warning from '@douyinfe/semi-foundation/lib/es/utils/warning';
35
+ import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
35
36
  import LocaleConsumer from '../locale/localeConsumer';
36
37
  import { isSemiIcon } from '../_utils';
37
38
  const prefixCls = cssClasses.PREFIX;
@@ -234,13 +235,22 @@ export default class Base extends Component {
234
235
  }
235
236
 
236
237
  if (!noExpandText || !noCollapseText) {
237
- return /*#__PURE__*/React.createElement("a", {
238
- className: "".concat(prefixCls, "-ellipsis-expand"),
239
- key: "expand",
240
- ref: this.expandRef,
241
- "aria-label": text,
242
- onClick: this.toggleOverflow
243
- }, text);
238
+ return (
239
+ /*#__PURE__*/
240
+ // TODO: replace `a` tag with `span` in next major version
241
+ // NOTE: may have effect on style
242
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
243
+ React.createElement("a", {
244
+ role: "button",
245
+ tabIndex: 0,
246
+ className: "".concat(prefixCls, "-ellipsis-expand"),
247
+ key: "expand",
248
+ ref: this.expandRef,
249
+ "aria-label": text,
250
+ onClick: this.toggleOverflow,
251
+ onKeyPress: e => isEnterPress(e) && this.toggleOverflow(e)
252
+ }, text)
253
+ );
244
254
  }
245
255
 
246
256
  return null;
@@ -9,6 +9,7 @@ import cls from 'classnames';
9
9
  import { noop } from '@douyinfe/semi-foundation/lib/es/utils/function';
10
10
  import LocaleConsumer from '../locale/localeConsumer';
11
11
  import { IconCopy, IconTick } from '@douyinfe/semi-icons';
12
+ import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
12
13
  const prefixCls = cssClasses.PREFIX;
13
14
  export class Copyable extends React.PureComponent {
14
15
  constructor(props) {
@@ -100,7 +101,10 @@ export class Copyable extends React.PureComponent {
100
101
  }, /*#__PURE__*/React.createElement("a", {
101
102
  className: "".concat(prefixCls, "-action-copy-icon")
102
103
  }, /*#__PURE__*/React.createElement(IconCopy, {
103
- onClick: this.copy
104
+ role: "button",
105
+ tabIndex: 0,
106
+ onClick: this.copy,
107
+ onKeyPress: e => isEnterPress(e) && this.copy(e)
104
108
  })))));
105
109
  }
106
110
 
@@ -16,6 +16,8 @@ const prefixCls = cssClasses.PREFIX;
16
16
  const ErrorSvg = function () {
17
17
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
18
  return /*#__PURE__*/React.createElement("svg", _Object$assign({
19
+ focusable: false,
20
+ "aria-hidden": true,
19
21
  width: "16",
20
22
  height: "16",
21
23
  viewBox: "0 0 16 16",
@@ -37,6 +39,8 @@ const ErrorSvg = function () {
37
39
  const ReplaceSvg = function () {
38
40
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
39
41
  return /*#__PURE__*/React.createElement("svg", _Object$assign({
42
+ focusable: false,
43
+ "aria-hidden": true,
40
44
  width: "28",
41
45
  height: "28",
42
46
  viewBox: "0 0 28 28",
@@ -64,6 +68,8 @@ const ReplaceSvg = function () {
64
68
  const DirectorySvg = function () {
65
69
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
66
70
  return /*#__PURE__*/React.createElement("svg", _Object$assign({
71
+ focusable: false,
72
+ "aria-hidden": true,
67
73
  width: "24",
68
74
  height: "24",
69
75
  viewBox: "0 0 24 24",
@@ -177,6 +183,8 @@ class FileCard extends PureComponent {
177
183
  });
178
184
  const closeCls = "".concat(prefixCls, "-picture-file-card-close");
179
185
  const retry = /*#__PURE__*/React.createElement("div", {
186
+ role: "button",
187
+ tabIndex: 0,
180
188
  className: "".concat(prefixCls, "-picture-file-card-retry"),
181
189
  onClick: e => this.onRetry(e)
182
190
  }, /*#__PURE__*/React.createElement(IconRefresh, {
@@ -189,6 +197,8 @@ class FileCard extends PureComponent {
189
197
  showArrow: false,
190
198
  spacing: 4
191
199
  }, /*#__PURE__*/React.createElement("div", {
200
+ role: "button",
201
+ tabIndex: 0,
192
202
  className: "".concat(prefixCls, "-picture-file-card-replace"),
193
203
  onClick: e => this.onReplace(e)
194
204
  }, /*#__PURE__*/React.createElement(ReplaceSvg, {
@@ -199,9 +209,10 @@ class FileCard extends PureComponent {
199
209
  }, index + 1);
200
210
  const thumbnail = typeof renderThumbnail === 'function' ? renderThumbnail(this.props) : /*#__PURE__*/React.createElement("img", {
201
211
  src: url,
202
- alt: "picture of ".concat(name)
212
+ alt: name
203
213
  });
204
214
  return /*#__PURE__*/React.createElement("div", {
215
+ role: "listitem",
205
216
  className: filePicCardCls,
206
217
  style: style,
207
218
  onClick: onPreviewClick
@@ -209,12 +220,15 @@ class FileCard extends PureComponent {
209
220
  percent: percent,
210
221
  type: "circle",
211
222
  size: "small",
212
- orbitStroke: '#FFF'
223
+ orbitStroke: '#FFF',
224
+ "aria-label": "uploading file progress"
213
225
  }) : null, showRetry ? retry : null, showReplace && replace, showPicInfo && picInfo, !disabled && /*#__PURE__*/React.createElement("div", {
214
- className: closeCls
215
- }, /*#__PURE__*/React.createElement(IconClose, {
216
- size: "extra-small",
226
+ className: closeCls,
217
227
  onClick: e => this.onRemove(e)
228
+ }, /*#__PURE__*/React.createElement(IconClose, {
229
+ tabIndex: 0,
230
+ role: "button",
231
+ size: "extra-small"
218
232
  })), this.renderPicValidateMsg());
219
233
  }
220
234
 
@@ -250,7 +264,8 @@ class FileCard extends PureComponent {
250
264
  const showReplace = status === strings.FILE_STATUS_SUCCESS && propsShowReplace;
251
265
  const fileSize = this.transSize(size);
252
266
  let previewContent = preview ? /*#__PURE__*/React.createElement("img", {
253
- src: url
267
+ src: url,
268
+ alt: name
254
269
  }) : /*#__PURE__*/React.createElement(IconFile, {
255
270
  size: "large"
256
271
  });
@@ -260,6 +275,7 @@ class FileCard extends PureComponent {
260
275
  }
261
276
 
262
277
  return /*#__PURE__*/React.createElement("div", {
278
+ role: "listitem",
263
279
  className: fileCardCls,
264
280
  style: style,
265
281
  onClick: onPreviewClick
@@ -289,12 +305,15 @@ class FileCard extends PureComponent {
289
305
  percent: percent,
290
306
  style: {
291
307
  width: '100%'
292
- }
308
+ },
309
+ "aria-label": "uploading file progress"
293
310
  }) : null, /*#__PURE__*/React.createElement("div", {
294
311
  className: "".concat(infoCls, "-main-control")
295
312
  }, /*#__PURE__*/React.createElement("span", {
296
313
  className: "".concat(infoCls, "-validate-message")
297
314
  }, this.renderValidateMessage()), showRetry ? /*#__PURE__*/React.createElement("span", {
315
+ role: "button",
316
+ tabIndex: 0,
298
317
  className: "".concat(infoCls, "-retry"),
299
318
  onClick: e => this.onRetry(e)
300
319
  }, locale.retry) : null)), /*#__PURE__*/React.createElement(IconButton, {
@@ -208,6 +208,7 @@ class Upload extends BaseComponent {
208
208
  });
209
209
  const mainCls = "".concat(prefixCls, "-file-list-main");
210
210
  const addContentProps = {
211
+ role: 'button',
211
212
  className: uploadAddCls,
212
213
  onClick: this.onClick
213
214
  };
@@ -240,7 +241,9 @@ class Upload extends BaseComponent {
240
241
  return /*#__PURE__*/React.createElement(LocaleConsumer, {
241
242
  componentName: "Upload"
242
243
  }, locale => /*#__PURE__*/React.createElement("div", _Object$assign({}, containerProps), /*#__PURE__*/React.createElement("div", {
243
- className: mainCls
244
+ className: mainCls,
245
+ role: "list",
246
+ "aria-label": "picture list"
244
247
  }, _mapInstanceProperty(fileList).call(fileList, (file, index) => this.renderFile(file, index, locale)), showAddTriggerInList ? addContent : null)));
245
248
  };
246
249
 
@@ -274,10 +277,14 @@ class Upload extends BaseComponent {
274
277
  }, /*#__PURE__*/React.createElement("span", {
275
278
  className: "".concat(titleCls, "-choosen")
276
279
  }, locale.selectedFiles), showClear ? /*#__PURE__*/React.createElement("span", {
280
+ role: "button",
281
+ tabIndex: 0,
277
282
  onClick: this.clear,
278
283
  className: "".concat(titleCls, "-clear")
279
284
  }, locale.clear) : null) : null, /*#__PURE__*/React.createElement("div", {
280
- className: mainCls
285
+ className: mainCls,
286
+ role: "list",
287
+ "aria-label": "file list"
281
288
  }, _mapInstanceProperty(fileList).call(fileList, (file, index) => this.renderFile(file, index, locale)))));
282
289
  };
283
290
 
@@ -302,7 +309,8 @@ class Upload extends BaseComponent {
302
309
  const {
303
310
  draggable,
304
311
  children,
305
- listType
312
+ listType,
313
+ disabled
306
314
  } = this.props;
307
315
  const uploadAddCls = cls("".concat(prefixCls, "-add"));
308
316
 
@@ -315,6 +323,9 @@ class Upload extends BaseComponent {
315
323
  }
316
324
 
317
325
  return /*#__PURE__*/React.createElement("div", {
326
+ role: "button",
327
+ tabIndex: 0,
328
+ "aria-disabled": disabled,
318
329
  className: uploadAddCls,
319
330
  onClick: this.onClick
320
331
  }, children);
@@ -328,7 +339,8 @@ class Upload extends BaseComponent {
328
339
  children,
329
340
  dragIcon,
330
341
  dragMainText,
331
- dragSubText
342
+ dragSubText,
343
+ disabled
332
344
  } = this.props;
333
345
  const dragAreaBaseCls = "".concat(prefixCls, "-drag-area");
334
346
  const dragAreaCls = cls(dragAreaBaseCls, {
@@ -339,6 +351,9 @@ class Upload extends BaseComponent {
339
351
  return /*#__PURE__*/React.createElement(LocaleConsumer, {
340
352
  componentName: "Upload"
341
353
  }, locale => /*#__PURE__*/React.createElement("div", {
354
+ role: "button",
355
+ tabIndex: 0,
356
+ "aria-disabled": disabled,
342
357
  className: dragAreaCls,
343
358
  onDrop: this.onDrop,
344
359
  onDragOver: this.onDragOver,
package/list/index.tsx CHANGED
@@ -14,7 +14,7 @@ import BaseComponent from '../_base/baseComponent';
14
14
 
15
15
  export { ListItemProps } from './item';
16
16
 
17
- export interface ListProps {
17
+ export interface ListProps<T> {
18
18
  style?: React.CSSProperties;
19
19
  className?: string;
20
20
  bordered?: boolean;
@@ -24,8 +24,8 @@ export interface ListProps {
24
24
  size?: 'small' | 'large' | 'default';
25
25
  split?: boolean;
26
26
  emptyContent?: React.ReactNode;
27
- dataSource?: any[];
28
- renderItem?: (item: any, ind: number) => React.ReactNode;
27
+ dataSource?: T[];
28
+ renderItem?: (item: T, ind: number) => React.ReactNode;
29
29
  grid?: Grid;
30
30
  loading?: boolean;
31
31
  loadMore?: React.ReactNode;
@@ -35,7 +35,7 @@ export interface ListProps {
35
35
 
36
36
  const prefixCls = cssClasses.PREFIX;
37
37
 
38
- class List extends BaseComponent<ListProps> {
38
+ class List<T = any> extends BaseComponent<ListProps<T>> {
39
39
  static Item = ListItem;
40
40
 
41
41
  static propTypes = {
@@ -170,4 +170,4 @@ class List extends BaseComponent<ListProps> {
170
170
  }
171
171
  }
172
172
 
173
- export default List;
173
+ export default List;
package/list/item.tsx CHANGED
@@ -86,7 +86,6 @@ export default class ListItem extends PureComponent<ListItemProps> {
86
86
  }
87
87
  let content = (
88
88
  <li
89
- role="list-item"
90
89
  className={itemCls}
91
90
  style={style}
92
91
  onClick={handleClick}
package/modal/Modal.tsx CHANGED
@@ -283,6 +283,7 @@ class Modal extends BaseComponent<ModalReactProps, ModalState> {
283
283
  } else {
284
284
  return (
285
285
  <Button
286
+ aria-label="cancel"
286
287
  onClick={this.handleCancel}
287
288
  loading={cancelLoading}
288
289
  type="tertiary"
@@ -300,6 +301,7 @@ class Modal extends BaseComponent<ModalReactProps, ModalState> {
300
301
  <div>
301
302
  {getCancelButton(locale)}
302
303
  <Button
304
+ aria-label="confirm"
303
305
  type={okType}
304
306
  theme="solid"
305
307
  loading={confirmLoading}