@douyinfe/semi-ui 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) 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 +108 -0
  34. package/datePicker/_story/datePicker.stories.js +146 -2
  35. package/datePicker/datePicker.tsx +24 -0
  36. package/datePicker/monthsGrid.tsx +2 -1
  37. package/dist/css/semi.css +34 -7
  38. package/dist/css/semi.min.css +1 -1
  39. package/dist/umd/semi-ui.js +2768 -1501
  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/empty/index.tsx +4 -4
  46. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  47. package/form/_story/Validate/validateDemo.jsx +1 -1
  48. package/form/_story/demo.jsx +12 -3
  49. package/form/_story/form.stories.js +0 -7
  50. package/form/baseForm.tsx +2 -0
  51. package/form/errorMessage.tsx +13 -2
  52. package/form/hoc/withField.tsx +37 -8
  53. package/form/index.tsx +0 -2
  54. package/form/interface.ts +2 -0
  55. package/form/label.tsx +4 -2
  56. package/input/index.tsx +49 -4
  57. package/input/inputGroup.tsx +9 -4
  58. package/input/textarea.tsx +25 -6
  59. package/inputNumber/_story/inputNumber.stories.js +12 -0
  60. package/inputNumber/index.tsx +33 -2
  61. package/layout/Sider.tsx +6 -2
  62. package/layout/index.tsx +4 -3
  63. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  64. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  65. package/lib/cjs/_utils/index.d.ts +1 -0
  66. package/lib/cjs/_utils/index.js +6 -1
  67. package/lib/cjs/anchor/index.d.ts +2 -0
  68. package/lib/cjs/anchor/index.js +6 -1
  69. package/lib/cjs/anchor/link.d.ts +4 -1
  70. package/lib/cjs/anchor/link.js +39 -5
  71. package/lib/cjs/autoComplete/index.d.ts +17 -0
  72. package/lib/cjs/autoComplete/index.js +21 -2
  73. package/lib/cjs/avatar/index.d.ts +4 -3
  74. package/lib/cjs/avatar/index.js +15 -11
  75. package/lib/cjs/banner/index.js +4 -2
  76. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  77. package/lib/cjs/breadcrumb/index.js +10 -4
  78. package/lib/cjs/breadcrumb/item.js +2 -2
  79. package/lib/cjs/button/Button.d.ts +2 -0
  80. package/lib/cjs/button/Button.js +4 -2
  81. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  82. package/lib/cjs/button/buttonGroup.js +8 -4
  83. package/lib/cjs/button/index.d.ts +1 -0
  84. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  85. package/lib/cjs/button/splitButtonGroup.js +5 -2
  86. package/lib/cjs/card/index.d.ts +3 -0
  87. package/lib/cjs/card/index.js +3 -1
  88. package/lib/cjs/cascader/index.d.ts +14 -0
  89. package/lib/cjs/cascader/index.js +35 -7
  90. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  91. package/lib/cjs/checkbox/checkbox.js +51 -17
  92. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  93. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  94. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  95. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  96. package/lib/cjs/collapse/item.d.ts +2 -1
  97. package/lib/cjs/collapse/item.js +12 -2
  98. package/lib/cjs/collapsible/index.d.ts +1 -0
  99. package/lib/cjs/collapsible/index.js +4 -2
  100. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  101. package/lib/cjs/datePicker/datePicker.js +22 -3
  102. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -0
  103. package/lib/cjs/datePicker/monthsGrid.js +2 -1
  104. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  105. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  106. package/lib/cjs/form/baseForm.d.ts +9 -0
  107. package/lib/cjs/form/baseForm.js +3 -1
  108. package/lib/cjs/form/errorMessage.d.ts +4 -0
  109. package/lib/cjs/form/errorMessage.js +21 -3
  110. package/lib/cjs/form/field.d.ts +7 -0
  111. package/lib/cjs/form/hoc/withField.js +49 -16
  112. package/lib/cjs/form/index.d.ts +0 -1
  113. package/lib/cjs/form/interface.d.ts +2 -0
  114. package/lib/cjs/form/label.d.ts +2 -0
  115. package/lib/cjs/form/label.js +5 -2
  116. package/lib/cjs/input/index.d.ts +16 -0
  117. package/lib/cjs/input/index.js +51 -15
  118. package/lib/cjs/input/inputGroup.d.ts +2 -1
  119. package/lib/cjs/input/inputGroup.js +11 -1
  120. package/lib/cjs/input/textarea.js +12 -1
  121. package/lib/cjs/inputNumber/index.d.ts +21 -12
  122. package/lib/cjs/inputNumber/index.js +37 -3
  123. package/lib/cjs/layout/Sider.d.ts +4 -0
  124. package/lib/cjs/layout/Sider.js +4 -1
  125. package/lib/cjs/layout/index.js +2 -0
  126. package/lib/cjs/list/item.js +0 -1
  127. package/lib/cjs/modal/Modal.js +2 -0
  128. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  129. package/lib/cjs/modal/ModalContent.js +47 -5
  130. package/lib/cjs/navigation/Item.d.ts +4 -2
  131. package/lib/cjs/navigation/Item.js +25 -5
  132. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  133. package/lib/cjs/navigation/SubNav.js +8 -1
  134. package/lib/cjs/navigation/index.js +2 -0
  135. package/lib/cjs/notification/notice.d.ts +1 -1
  136. package/lib/cjs/notification/notice.js +32 -22
  137. package/lib/cjs/pagination/index.js +16 -6
  138. package/lib/cjs/popover/index.js +7 -3
  139. package/lib/cjs/progress/index.d.ts +8 -0
  140. package/lib/cjs/progress/index.js +42 -9
  141. package/lib/cjs/radio/radio.d.ts +6 -1
  142. package/lib/cjs/radio/radio.js +17 -5
  143. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  144. package/lib/cjs/radio/radioGroup.js +18 -3
  145. package/lib/cjs/radio/radioInner.d.ts +6 -1
  146. package/lib/cjs/radio/radioInner.js +11 -3
  147. package/lib/cjs/rating/index.d.ts +14 -0
  148. package/lib/cjs/rating/index.js +14 -3
  149. package/lib/cjs/rating/item.d.ts +2 -0
  150. package/lib/cjs/rating/item.js +6 -1
  151. package/lib/cjs/select/index.d.ts +16 -0
  152. package/lib/cjs/select/index.js +65 -19
  153. package/lib/cjs/select/option.js +28 -22
  154. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  155. package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
  156. package/lib/cjs/sideSheet/index.d.ts +1 -0
  157. package/lib/cjs/sideSheet/index.js +2 -1
  158. package/lib/cjs/slider/index.d.ts +2 -1
  159. package/lib/cjs/slider/index.js +64 -17
  160. package/lib/cjs/spin/icon.js +3 -4
  161. package/lib/cjs/steps/basicStep.d.ts +3 -0
  162. package/lib/cjs/steps/basicStep.js +23 -25
  163. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  164. package/lib/cjs/steps/basicSteps.js +2 -1
  165. package/lib/cjs/steps/fillStep.d.ts +3 -0
  166. package/lib/cjs/steps/fillStep.js +19 -4
  167. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  168. package/lib/cjs/steps/fillSteps.js +2 -1
  169. package/lib/cjs/steps/navStep.d.ts +3 -0
  170. package/lib/cjs/steps/navStep.js +22 -25
  171. package/lib/cjs/steps/navSteps.d.ts +1 -0
  172. package/lib/cjs/steps/navSteps.js +2 -1
  173. package/lib/cjs/switch/index.d.ts +12 -0
  174. package/lib/cjs/switch/index.js +19 -4
  175. package/lib/cjs/table/Body/BaseRow.js +35 -3
  176. package/lib/cjs/table/Body/index.js +9 -1
  177. package/lib/cjs/table/ColumnFilter.js +4 -0
  178. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  179. package/lib/cjs/table/ColumnSelection.js +6 -2
  180. package/lib/cjs/table/ColumnSorter.js +19 -3
  181. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  182. package/lib/cjs/table/Table.d.ts +2 -0
  183. package/lib/cjs/table/Table.js +31 -15
  184. package/lib/cjs/table/TableCell.d.ts +2 -0
  185. package/lib/cjs/table/TableCell.js +6 -2
  186. package/lib/cjs/table/TableHeaderRow.js +8 -2
  187. package/lib/cjs/tabs/TabBar.js +11 -3
  188. package/lib/cjs/tabs/TabPane.js +3 -1
  189. package/lib/cjs/tabs/index.js +0 -1
  190. package/lib/cjs/tagInput/index.d.ts +4 -1
  191. package/lib/cjs/tagInput/index.js +29 -3
  192. package/lib/cjs/timePicker/TimePicker.d.ts +12 -0
  193. package/lib/cjs/timePicker/TimePicker.js +9 -1
  194. package/lib/cjs/timePicker/index.d.ts +6 -0
  195. package/lib/cjs/timeline/index.d.ts +1 -1
  196. package/lib/cjs/timeline/index.js +1 -0
  197. package/lib/cjs/timeline/item.js +4 -2
  198. package/lib/cjs/toast/toast.js +2 -0
  199. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  200. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  201. package/lib/cjs/tooltip/index.d.ts +16 -12
  202. package/lib/cjs/tooltip/index.js +55 -39
  203. package/lib/cjs/transfer/index.d.ts +1 -1
  204. package/lib/cjs/transfer/index.js +35 -17
  205. package/lib/cjs/tree/index.d.ts +1 -0
  206. package/lib/cjs/tree/index.js +15 -6
  207. package/lib/cjs/tree/treeNode.d.ts +12 -4
  208. package/lib/cjs/tree/treeNode.js +44 -4
  209. package/lib/cjs/treeSelect/index.d.ts +16 -0
  210. package/lib/cjs/treeSelect/index.js +60 -12
  211. package/lib/cjs/typography/base.js +18 -7
  212. package/lib/cjs/typography/copyable.js +6 -1
  213. package/lib/cjs/upload/fileCard.js +26 -7
  214. package/lib/cjs/upload/index.js +19 -4
  215. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  216. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  217. package/lib/es/_utils/index.d.ts +1 -0
  218. package/lib/es/_utils/index.js +4 -1
  219. package/lib/es/anchor/index.d.ts +2 -0
  220. package/lib/es/anchor/index.js +6 -1
  221. package/lib/es/anchor/link.d.ts +4 -1
  222. package/lib/es/anchor/link.js +38 -5
  223. package/lib/es/autoComplete/index.d.ts +17 -0
  224. package/lib/es/autoComplete/index.js +21 -2
  225. package/lib/es/avatar/index.d.ts +4 -3
  226. package/lib/es/avatar/index.js +15 -11
  227. package/lib/es/banner/index.js +4 -2
  228. package/lib/es/breadcrumb/index.d.ts +3 -0
  229. package/lib/es/breadcrumb/index.js +10 -4
  230. package/lib/es/breadcrumb/item.js +2 -2
  231. package/lib/es/button/Button.d.ts +2 -0
  232. package/lib/es/button/Button.js +4 -2
  233. package/lib/es/button/buttonGroup.d.ts +3 -0
  234. package/lib/es/button/buttonGroup.js +8 -4
  235. package/lib/es/button/index.d.ts +1 -0
  236. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  237. package/lib/es/button/splitButtonGroup.js +5 -2
  238. package/lib/es/card/index.d.ts +3 -0
  239. package/lib/es/card/index.js +3 -1
  240. package/lib/es/cascader/index.d.ts +14 -0
  241. package/lib/es/cascader/index.js +35 -7
  242. package/lib/es/checkbox/checkbox.d.ts +21 -1
  243. package/lib/es/checkbox/checkbox.js +50 -17
  244. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  245. package/lib/es/checkbox/checkboxGroup.js +18 -5
  246. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  247. package/lib/es/checkbox/checkboxInner.js +20 -3
  248. package/lib/es/collapse/item.d.ts +2 -1
  249. package/lib/es/collapse/item.js +11 -2
  250. package/lib/es/collapsible/index.d.ts +1 -0
  251. package/lib/es/collapsible/index.js +4 -2
  252. package/lib/es/datePicker/datePicker.d.ts +12 -0
  253. package/lib/es/datePicker/datePicker.js +22 -3
  254. package/lib/es/datePicker/monthsGrid.d.ts +1 -0
  255. package/lib/es/datePicker/monthsGrid.js +2 -1
  256. package/lib/es/dropdown/dropdownItem.js +3 -1
  257. package/lib/es/dropdown/dropdownMenu.js +4 -1
  258. package/lib/es/form/baseForm.d.ts +9 -0
  259. package/lib/es/form/baseForm.js +3 -1
  260. package/lib/es/form/errorMessage.d.ts +4 -0
  261. package/lib/es/form/errorMessage.js +21 -3
  262. package/lib/es/form/field.d.ts +7 -0
  263. package/lib/es/form/hoc/withField.js +48 -15
  264. package/lib/es/form/index.d.ts +0 -1
  265. package/lib/es/form/index.js +0 -1
  266. package/lib/es/form/interface.d.ts +2 -0
  267. package/lib/es/form/label.d.ts +2 -0
  268. package/lib/es/form/label.js +5 -2
  269. package/lib/es/input/index.d.ts +16 -0
  270. package/lib/es/input/index.js +51 -15
  271. package/lib/es/input/inputGroup.d.ts +2 -1
  272. package/lib/es/input/inputGroup.js +11 -1
  273. package/lib/es/input/textarea.js +12 -1
  274. package/lib/es/inputNumber/index.d.ts +21 -12
  275. package/lib/es/inputNumber/index.js +38 -3
  276. package/lib/es/layout/Sider.d.ts +4 -0
  277. package/lib/es/layout/Sider.js +4 -1
  278. package/lib/es/layout/index.js +2 -0
  279. package/lib/es/list/item.js +0 -1
  280. package/lib/es/modal/Modal.js +2 -0
  281. package/lib/es/modal/ModalContent.d.ts +3 -1
  282. package/lib/es/modal/ModalContent.js +46 -5
  283. package/lib/es/navigation/Item.d.ts +4 -2
  284. package/lib/es/navigation/Item.js +25 -5
  285. package/lib/es/navigation/SubNav.d.ts +4 -2
  286. package/lib/es/navigation/SubNav.js +8 -1
  287. package/lib/es/navigation/index.js +2 -0
  288. package/lib/es/notification/notice.d.ts +1 -1
  289. package/lib/es/notification/notice.js +33 -24
  290. package/lib/es/pagination/index.js +16 -6
  291. package/lib/es/popover/index.js +7 -3
  292. package/lib/es/progress/index.d.ts +8 -0
  293. package/lib/es/progress/index.js +42 -9
  294. package/lib/es/radio/radio.d.ts +6 -1
  295. package/lib/es/radio/radio.js +16 -5
  296. package/lib/es/radio/radioGroup.d.ts +16 -1
  297. package/lib/es/radio/radioGroup.js +18 -3
  298. package/lib/es/radio/radioInner.d.ts +6 -1
  299. package/lib/es/radio/radioInner.js +11 -3
  300. package/lib/es/rating/index.d.ts +14 -0
  301. package/lib/es/rating/index.js +14 -3
  302. package/lib/es/rating/item.d.ts +2 -0
  303. package/lib/es/rating/item.js +6 -1
  304. package/lib/es/select/index.d.ts +16 -0
  305. package/lib/es/select/index.js +63 -17
  306. package/lib/es/select/option.js +28 -22
  307. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  308. package/lib/es/sideSheet/SideSheetContent.js +4 -1
  309. package/lib/es/sideSheet/index.d.ts +1 -0
  310. package/lib/es/sideSheet/index.js +2 -1
  311. package/lib/es/slider/index.d.ts +2 -1
  312. package/lib/es/slider/index.js +63 -16
  313. package/lib/es/spin/icon.js +3 -4
  314. package/lib/es/steps/basicStep.d.ts +3 -0
  315. package/lib/es/steps/basicStep.js +23 -23
  316. package/lib/es/steps/basicSteps.d.ts +1 -0
  317. package/lib/es/steps/basicSteps.js +2 -1
  318. package/lib/es/steps/fillStep.d.ts +3 -0
  319. package/lib/es/steps/fillStep.js +19 -4
  320. package/lib/es/steps/fillSteps.d.ts +1 -0
  321. package/lib/es/steps/fillSteps.js +2 -1
  322. package/lib/es/steps/navStep.d.ts +3 -0
  323. package/lib/es/steps/navStep.js +22 -23
  324. package/lib/es/steps/navSteps.d.ts +1 -0
  325. package/lib/es/steps/navSteps.js +2 -1
  326. package/lib/es/switch/index.d.ts +12 -0
  327. package/lib/es/switch/index.js +19 -4
  328. package/lib/es/table/Body/BaseRow.js +35 -3
  329. package/lib/es/table/Body/index.js +9 -2
  330. package/lib/es/table/ColumnFilter.js +4 -0
  331. package/lib/es/table/ColumnSelection.d.ts +3 -0
  332. package/lib/es/table/ColumnSelection.js +6 -2
  333. package/lib/es/table/ColumnSorter.js +17 -3
  334. package/lib/es/table/CustomExpandIcon.js +6 -1
  335. package/lib/es/table/Table.d.ts +2 -0
  336. package/lib/es/table/Table.js +31 -15
  337. package/lib/es/table/TableCell.d.ts +2 -0
  338. package/lib/es/table/TableCell.js +6 -2
  339. package/lib/es/table/TableHeaderRow.js +8 -2
  340. package/lib/es/tabs/TabBar.js +11 -3
  341. package/lib/es/tabs/TabPane.js +3 -1
  342. package/lib/es/tabs/index.js +0 -1
  343. package/lib/es/tagInput/index.d.ts +4 -1
  344. package/lib/es/tagInput/index.js +29 -3
  345. package/lib/es/timePicker/TimePicker.d.ts +12 -0
  346. package/lib/es/timePicker/TimePicker.js +9 -1
  347. package/lib/es/timePicker/index.d.ts +6 -0
  348. package/lib/es/timeline/index.d.ts +1 -1
  349. package/lib/es/timeline/index.js +1 -0
  350. package/lib/es/timeline/item.js +4 -2
  351. package/lib/es/toast/toast.js +2 -0
  352. package/lib/es/tooltip/TriangleArrow.js +1 -0
  353. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  354. package/lib/es/tooltip/index.d.ts +16 -12
  355. package/lib/es/tooltip/index.js +53 -39
  356. package/lib/es/transfer/index.d.ts +1 -1
  357. package/lib/es/transfer/index.js +35 -17
  358. package/lib/es/tree/index.d.ts +1 -0
  359. package/lib/es/tree/index.js +15 -6
  360. package/lib/es/tree/treeNode.d.ts +12 -4
  361. package/lib/es/tree/treeNode.js +44 -4
  362. package/lib/es/treeSelect/index.d.ts +16 -0
  363. package/lib/es/treeSelect/index.js +57 -10
  364. package/lib/es/typography/base.js +17 -7
  365. package/lib/es/typography/copyable.js +5 -1
  366. package/lib/es/upload/fileCard.js +26 -7
  367. package/lib/es/upload/index.js +19 -4
  368. package/list/item.tsx +0 -1
  369. package/modal/Modal.tsx +2 -0
  370. package/modal/ModalContent.tsx +35 -5
  371. package/navigation/Item.tsx +15 -0
  372. package/navigation/SubNav.tsx +13 -1
  373. package/navigation/index.tsx +1 -1
  374. package/notification/notice.tsx +19 -14
  375. package/package.json +8 -8
  376. package/pagination/index.tsx +9 -5
  377. package/popover/index.tsx +5 -0
  378. package/progress/_story/progress.stories.js +18 -18
  379. package/progress/index.tsx +58 -20
  380. package/radio/radio.tsx +12 -2
  381. package/radio/radioGroup.tsx +29 -3
  382. package/radio/radioInner.tsx +10 -1
  383. package/rating/index.tsx +19 -2
  384. package/rating/item.tsx +6 -0
  385. package/select/__test__/select.test.js +45 -0
  386. package/select/_story/select.stories.js +29 -0
  387. package/select/index.tsx +52 -4
  388. package/select/option.tsx +3 -0
  389. package/sideSheet/SideSheetContent.tsx +6 -4
  390. package/sideSheet/index.tsx +3 -2
  391. package/slider/__test__/slider.test.js +9 -0
  392. package/slider/_story/slider.stories.js +1 -1
  393. package/slider/index.tsx +44 -7
  394. package/spin/icon.tsx +4 -3
  395. package/steps/basicStep.tsx +15 -4
  396. package/steps/basicSteps.tsx +3 -2
  397. package/steps/fillStep.tsx +27 -12
  398. package/steps/fillSteps.tsx +2 -0
  399. package/steps/navStep.tsx +15 -4
  400. package/steps/navSteps.tsx +3 -2
  401. package/switch/_story/switch.stories.js +20 -19
  402. package/switch/_story/switch.stories.tsx +13 -13
  403. package/switch/index.tsx +23 -5
  404. package/table/Body/BaseRow.tsx +25 -1
  405. package/table/Body/index.tsx +7 -2
  406. package/table/ColumnFilter.tsx +7 -1
  407. package/table/ColumnSelection.tsx +4 -1
  408. package/table/ColumnSorter.tsx +18 -1
  409. package/table/CustomExpandIcon.tsx +5 -0
  410. package/table/Table.tsx +26 -13
  411. package/table/TableCell.tsx +11 -1
  412. package/table/TableHeaderRow.tsx +16 -2
  413. package/table/__test__/table.test.js +46 -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 +14 -1
  421. package/timeline/_story/timeline.stories.js +1 -1
  422. package/timeline/index.tsx +2 -2
  423. package/timeline/item.tsx +2 -1
  424. package/toast/toast.tsx +2 -0
  425. package/tooltip/TriangleArrow.tsx +1 -1
  426. package/tooltip/TriangleArrowVertical.tsx +1 -1
  427. package/tooltip/_story/tooltip.stories.js +562 -514
  428. package/tooltip/index.tsx +51 -33
  429. package/transfer/index.tsx +32 -28
  430. package/tree/_story/tree.stories.js +3 -3
  431. package/tree/index.tsx +10 -2
  432. package/tree/treeNode.tsx +46 -10
  433. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  434. package/treeSelect/_story/treeSelect.stories.js +12 -0
  435. package/treeSelect/index.tsx +58 -7
  436. package/typography/base.tsx +7 -1
  437. package/typography/copyable.tsx +10 -1
  438. package/upload/fileCard.tsx +14 -16
  439. package/upload/index.tsx +10 -6
@@ -4,6 +4,11 @@ import { SwitchAdapter } from '@douyinfe/semi-foundation/lib/cjs/switch/foundati
4
4
  import BaseComponent from '../_base/baseComponent';
5
5
  import '@douyinfe/semi-foundation/lib/cjs/switch/switch.css';
6
6
  export interface SwitchProps {
7
+ 'aria-label'?: React.AriaAttributes['aria-label'];
8
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
9
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
10
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
11
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
7
12
  defaultChecked?: boolean;
8
13
  checked?: boolean;
9
14
  disabled?: boolean;
@@ -16,6 +21,7 @@ export interface SwitchProps {
16
21
  size?: 'large' | 'default' | 'small';
17
22
  checkedText?: React.ReactNode;
18
23
  uncheckedText?: React.ReactNode;
24
+ id?: string;
19
25
  }
20
26
  export interface SwitchState {
21
27
  nativeControlChecked: boolean;
@@ -23,6 +29,11 @@ export interface SwitchState {
23
29
  }
24
30
  declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
25
31
  static propTypes: {
32
+ 'aria-label': PropTypes.Requireable<string>;
33
+ 'aria-labelledby': PropTypes.Requireable<string>;
34
+ 'aria-invalid': PropTypes.Requireable<boolean>;
35
+ 'aria-errormessage': PropTypes.Requireable<string>;
36
+ 'aria-describedby': PropTypes.Requireable<string>;
26
37
  className: PropTypes.Requireable<string>;
27
38
  checked: PropTypes.Requireable<boolean>;
28
39
  checkedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -35,6 +46,7 @@ declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
35
46
  style: PropTypes.Requireable<object>;
36
47
  size: PropTypes.Requireable<"default" | "small" | "large">;
37
48
  uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
49
+ id: PropTypes.Requireable<string>;
38
50
  };
39
51
  static defaultProps: Partial<SwitchProps>;
40
52
  private switchRef;
@@ -30,7 +30,7 @@ require("@douyinfe/semi-foundation/lib/cjs/switch/switch.css");
30
30
 
31
31
  var _spin = _interopRequireDefault(require("../spin"));
32
32
 
33
- /* eslint-disable max-len */
33
+ /* eslint-disable max-len, jsx-a11y/role-supports-aria-props */
34
34
  class Switch extends _baseComponent.default {
35
35
  constructor(props) {
36
36
  super(props);
@@ -91,7 +91,8 @@ class Switch extends _baseComponent.default {
91
91
  size,
92
92
  checkedText,
93
93
  uncheckedText,
94
- loading
94
+ loading,
95
+ id
95
96
  } = this.props;
96
97
  const wrapperCls = (0, _classnames.default)(className, {
97
98
  [_constants.cssClasses.PREFIX]: true,
@@ -119,13 +120,21 @@ class Switch extends _baseComponent.default {
119
120
  wrapperClassName: _constants.cssClasses.LOADING_SPIN,
120
121
  size: size === 'default' ? 'middle' : size
121
122
  }) : /*#__PURE__*/_react.default.createElement("div", {
122
- className: _constants.cssClasses.KNOB
123
+ className: _constants.cssClasses.KNOB,
124
+ "aria-hidden": true
123
125
  }), showCheckedText ? /*#__PURE__*/_react.default.createElement("div", {
124
126
  className: _constants.cssClasses.CHECKED_TEXT
125
127
  }, checkedText) : null, showUncheckedText ? /*#__PURE__*/_react.default.createElement("div", {
126
128
  className: _constants.cssClasses.UNCHECKED_TEXT
127
129
  }, uncheckedText) : null, /*#__PURE__*/_react.default.createElement("input", (0, _assign.default)({}, switchProps, {
128
130
  ref: this.switchRef,
131
+ id: id,
132
+ "aria-checked": nativeControlChecked,
133
+ "aria-invalid": this.props['aria-invalid'],
134
+ "aria-errormessage": this.props['aria-errormessage'],
135
+ "aria-label": this.props['aria-label'],
136
+ "aria-labelledby": this.props['aria-labelledby'],
137
+ "aria-describedby": this.props["aria-describedby"],
129
138
  onChange: e => this.foundation.handleChange(e.target.checked, e)
130
139
  })));
131
140
  }
@@ -133,6 +142,11 @@ class Switch extends _baseComponent.default {
133
142
  }
134
143
 
135
144
  Switch.propTypes = {
145
+ 'aria-label': _propTypes.default.string,
146
+ 'aria-labelledby': _propTypes.default.string,
147
+ 'aria-invalid': _propTypes.default.bool,
148
+ 'aria-errormessage': _propTypes.default.string,
149
+ 'aria-describedby': _propTypes.default.string,
136
150
  className: _propTypes.default.string,
137
151
  checked: _propTypes.default.bool,
138
152
  checkedText: _propTypes.default.node,
@@ -144,7 +158,8 @@ Switch.propTypes = {
144
158
  onMouseLeave: _propTypes.default.func,
145
159
  style: _propTypes.default.object,
146
160
  size: _propTypes.default.oneOf(_constants.strings.SIZE_MAP),
147
- uncheckedText: _propTypes.default.node
161
+ uncheckedText: _propTypes.default.node,
162
+ id: _propTypes.default.string
148
163
  };
149
164
  Switch.defaultProps = {
150
165
  disabled: false,
@@ -217,6 +217,7 @@ class TableRow extends _baseComponent.default {
217
217
  if ((0, _utils.isExpandedColumn)(column) && !displayExpandedColumn) {
218
218
  cells.push( /*#__PURE__*/_react.default.createElement(_TableCell.default, {
219
219
  key: columnIndex,
220
+ colIndex: columnIndex,
220
221
  isSection: isSection
221
222
  }));
222
223
  } else if (!(0, _utils.isScrollbarColumn)(column)) {
@@ -226,7 +227,9 @@ class TableRow extends _baseComponent.default {
226
227
  diyProps.width = (0, _get2.default)(cellWidths, columnIndex);
227
228
  }
228
229
 
229
- cells.push( /*#__PURE__*/_react.default.createElement(_TableCell.default, (0, _assign.default)({}, expandableProps, diyProps, {
230
+ cells.push( /*#__PURE__*/_react.default.createElement(_TableCell.default, (0, _assign.default)({
231
+ colIndex: columnIndex
232
+ }, expandableProps, diyProps, {
230
233
  hideExpandedColumn: hideExpandedColumn,
231
234
  indentSize: indentSize,
232
235
  isSection: isSection,
@@ -264,7 +267,11 @@ class TableRow extends _baseComponent.default {
264
267
  replaceClassName,
265
268
  record,
266
269
  hovered,
267
- expanded
270
+ expanded,
271
+ expandableRow,
272
+ level,
273
+ expandedRow,
274
+ isSection
268
275
  } = this.props;
269
276
  const BodyRow = components.body.row;
270
277
 
@@ -282,7 +289,32 @@ class TableRow extends _baseComponent.default {
282
289
  ["".concat(prefixCls, "-row-expanded")]: expanded,
283
290
  ["".concat(prefixCls, "-row-hovered")]: hovered
284
291
  }, customClassName);
285
- return /*#__PURE__*/_react.default.createElement(BodyRow, (0, _assign.default)({}, rowProps, {
292
+ const ariaProps = {};
293
+
294
+ if (typeof index === 'number') {
295
+ ariaProps['aria-rowindex'] = index + 1;
296
+ }
297
+
298
+ if (expandableRow) {
299
+ ariaProps['aria-expanded'] = expanded;
300
+ } // if row is expandedRow, set it's level to 2
301
+
302
+
303
+ if (expanded || expandedRow) {
304
+ ariaProps['aria-level'] = 2;
305
+ }
306
+
307
+ if (typeof level === 'number') {
308
+ ariaProps['aria-level'] = level + 1;
309
+ }
310
+
311
+ if (isSection) {
312
+ ariaProps['aria-level'] = 1;
313
+ }
314
+
315
+ return /*#__PURE__*/_react.default.createElement(BodyRow, (0, _assign.default)({
316
+ role: "row"
317
+ }, ariaProps, rowProps, {
286
318
  style: baseRowStyle,
287
319
  className: rowCls,
288
320
  ref: this._cacheNode,
@@ -30,6 +30,8 @@ var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
30
30
 
31
31
  var _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set-timeout"));
32
32
 
33
+ var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
34
+
33
35
  var _isNull2 = _interopRequireDefault(require("lodash/isNull"));
34
36
 
35
37
  var _pick2 = _interopRequireDefault(require("lodash/pick"));
@@ -517,7 +519,8 @@ class Body extends _baseComponent.default {
517
519
  includeHeader,
518
520
  dataSource,
519
521
  onScroll,
520
- groups
522
+ groups,
523
+ expandedRowRender
521
524
  } = this.props;
522
525
  const x = (0, _get2.default)(scroll, 'x');
523
526
  const y = (0, _get2.default)(scroll, 'y');
@@ -558,6 +561,11 @@ class Body extends _baseComponent.default {
558
561
  onWheel: handleWheel,
559
562
  onScroll: handleBodyScroll
560
563
  }, /*#__PURE__*/_react.default.createElement(Table, {
564
+ role: (0, _isMap2.default)(groups) || (0, _isFunction2.default)(expandedRowRender) || (0, _utils.isTreeTable)({
565
+ dataSource
566
+ }) ? 'treegrid' : 'grid',
567
+ "aria-rowcount": dataSource && dataSource.length,
568
+ "aria-colcount": columns && columns.length,
561
569
  style: tableStyle,
562
570
  className: (0, _classnames.default)(prefixCls, {
563
571
  ["".concat(prefixCls, "-fixed")]: anyColumnFixed
@@ -180,6 +180,10 @@ function ColumnFilter() {
180
180
  iconElem = /*#__PURE__*/_react.default.createElement("div", {
181
181
  className: finalCls
182
182
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconFilter, {
183
+ role: "button",
184
+ "aria-label": "Filter data with this column",
185
+ "aria-haspopup": "listbox",
186
+ tabIndex: -1,
183
187
  size: "small"
184
188
  }));
185
189
  }
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import BaseComponent from '../_base/baseComponent';
2
3
  import PropTypes from 'prop-types';
3
4
  import { TableSelectionCellAdapter, TableSelectionCellEvent } from '@douyinfe/semi-foundation/lib/cjs/table/tableSelectionCellFoundation';
@@ -12,6 +13,7 @@ export interface TableSelectionCellProps {
12
13
  indeterminate?: boolean;
13
14
  prefixCls?: string;
14
15
  className?: string;
16
+ 'aria-label'?: React.AriaAttributes['aria-label'];
15
17
  }
16
18
  /**
17
19
  * render selection cell
@@ -27,6 +29,7 @@ export default class TableSelectionCell extends BaseComponent<TableSelectionCell
27
29
  indeterminate: PropTypes.Requireable<boolean>;
28
30
  prefixCls: PropTypes.Requireable<string>;
29
31
  className: PropTypes.Requireable<string>;
32
+ 'aria-label': PropTypes.Requireable<string>;
30
33
  };
31
34
  static defaultProps: {
32
35
  disabled: boolean;
@@ -61,6 +61,7 @@ class TableSelectionCell extends _baseComponent.default {
61
61
  prefixCls,
62
62
  className
63
63
  } = this.props;
64
+ const ariaLabel = this.props['aria-label'];
64
65
  let checkboxProps = {
65
66
  onChange: this.handleChange,
66
67
  disabled,
@@ -77,7 +78,9 @@ class TableSelectionCell extends _baseComponent.default {
77
78
  }, className);
78
79
  return /*#__PURE__*/_react.default.createElement("span", {
79
80
  className: wrapCls
80
- }, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, (0, _assign.default)({}, checkboxProps)));
81
+ }, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, (0, _assign.default)({
82
+ "aria-label": ariaLabel
83
+ }, checkboxProps)));
81
84
  }
82
85
 
83
86
  }
@@ -92,7 +95,8 @@ TableSelectionCell.propTypes = {
92
95
  disabled: _propTypes.default.bool,
93
96
  indeterminate: _propTypes.default.bool,
94
97
  prefixCls: _propTypes.default.string,
95
- className: _propTypes.default.string
98
+ className: _propTypes.default.string,
99
+ 'aria-label': _propTypes.default.string
96
100
  };
97
101
  TableSelectionCell.defaultProps = {
98
102
  disabled: false,
@@ -14,6 +14,8 @@ _Object$defineProperty(exports, "__esModule", {
14
14
 
15
15
  exports.default = void 0;
16
16
 
17
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
18
+
17
19
  var _noop2 = _interopRequireDefault(require("lodash/noop"));
18
20
 
19
21
  var _react = _interopRequireWildcard(require("react"));
@@ -26,6 +28,8 @@ var _semiIcons = require("@douyinfe/semi-icons");
26
28
 
27
29
  var _constants = require("@douyinfe/semi-foundation/lib/cjs/table/constants");
28
30
 
31
+ var _isEnterPress = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/isEnterPress"));
32
+
29
33
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
34
 
31
35
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -45,11 +49,23 @@ class ColumnSorter extends _react.PureComponent {
45
49
  const downCls = (0, _classnames.default)("".concat(prefixCls, "-column-sorter-down"), {
46
50
  on: sortOrder === _constants.strings.SORT_DIRECTIONS[1]
47
51
  });
48
- return /*#__PURE__*/_react.default.createElement("div", {
52
+ const ariaProps = {
53
+ /**
54
+ * Set 'aria-sort' to aria-columnheader is difficult, so set 'aria-label' about sort info to sorter
55
+ * reference: https://developer.mozilla.org/en-US/docs/Web/API/Element/ariaSort
56
+ */
57
+ 'aria-label': "Current sort order is ".concat(sortOrder ? "".concat(sortOrder, "ing") : 'none'),
58
+ 'aria-roledescription': 'Sort data with this column'
59
+ };
60
+ return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
61
+ role: 'button'
62
+ }, ariaProps, {
63
+ tabIndex: -1,
49
64
  style: style,
50
65
  className: "".concat(prefixCls, "-column-sorter"),
51
- onClick: onClick
52
- }, /*#__PURE__*/_react.default.createElement("span", {
66
+ onClick: onClick,
67
+ onKeyPress: e => (0, _isEnterPress.default)(e) && onClick(e)
68
+ }), /*#__PURE__*/_react.default.createElement("span", {
53
69
  className: "".concat(upCls)
54
70
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconCaretup, {
55
71
  size: iconBtnSize
@@ -24,6 +24,8 @@ var _semiIcons = require("@douyinfe/semi-icons");
24
24
 
25
25
  var _constants = require("@douyinfe/semi-foundation/lib/cjs/table/constants");
26
26
 
27
+ var _isEnterPress = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/isEnterPress"));
28
+
27
29
  var _Rotate = _interopRequireDefault(require("../motions/Rotate"));
28
30
 
29
31
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -76,10 +78,14 @@ function CustomExpandIcon(props) {
76
78
  }
77
79
 
78
80
  return /*#__PURE__*/_react.default.createElement("span", {
81
+ role: "button",
82
+ "aria-label": "Expand this row",
83
+ tabIndex: -1,
79
84
  onClick: handleClick,
80
85
  onMouseEnter: onMouseEnter,
81
86
  onMouseLeave: onMouseLeave,
82
- className: "".concat(prefixCls, "-expand-icon")
87
+ className: "".concat(prefixCls, "-expand-icon"),
88
+ onKeyPress: e => (0, _isEnterPress.default)(e) && handleClick(e)
83
89
  }, icon);
84
90
  }
85
91
 
@@ -31,6 +31,7 @@ export interface NormalTableState<RecordType extends Record<string, any> = Data>
31
31
  bodyHasScrollBar?: boolean;
32
32
  prePropRowSelection?: TableStateRowSelection<RecordType>;
33
33
  tableWidth?: number;
34
+ prePagination?: Pagination;
34
35
  }
35
36
  export declare type TableStateRowSelection<RecordType extends Record<string, any> = Data> = (RowSelectionProps<RecordType> & {
36
37
  selectedRowKeysSet?: Set<(string | number)>;
@@ -229,6 +230,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
229
230
  /**
230
231
  * render pagination
231
232
  * @param {object} pagination
233
+ * @param {object} propRenderPagination
232
234
  */
233
235
  renderPagination: (pagination: TablePaginationProps, propRenderPagination: RenderPagination) => JSX.Element;
234
236
  renderTitle: (props?: {
@@ -397,6 +397,7 @@ class Table extends _baseComponent.default {
397
397
  const hasRowSelected = _this.foundation.hasRowSelected(selectedRowKeys, allRowKeysSet);
398
398
 
399
399
  return /*#__PURE__*/_react.default.createElement(_ColumnSelection.default, {
400
+ "aria-label": "".concat(allIsSelected ? 'Deselect' : 'Select', " all rows"),
400
401
  disabled: disabled,
401
402
  key: columnKey,
402
403
  selected: allIsSelected,
@@ -413,6 +414,7 @@ class Table extends _baseComponent.default {
413
414
  const checkboxPropsFn = () => typeof getCheckboxProps === 'function' ? getCheckboxProps(record) : {};
414
415
 
415
416
  return /*#__PURE__*/_react.default.createElement(_ColumnSelection.default, {
417
+ "aria-label": "".concat(selected ? 'Deselect' : 'Select', " this row"),
416
418
  getCheckboxProps: checkboxPropsFn,
417
419
  selected: selected,
418
420
  onChange: (status, e) => _this.toggleSelectRow(status, key, e)
@@ -597,6 +599,7 @@ class Table extends _baseComponent.default {
597
599
  /**
598
600
  * render pagination
599
601
  * @param {object} pagination
602
+ * @param {object} propRenderPagination
600
603
  */
601
604
 
602
605
 
@@ -900,7 +903,8 @@ class Table extends _baseComponent.default {
900
903
  disabledRowKeysSet: new _set.default(),
901
904
  headWidths: [],
902
905
  bodyHasScrollBar: false,
903
- prePropRowSelection: undefined
906
+ prePropRowSelection: undefined,
907
+ prePagination: undefined
904
908
  };
905
909
  this.rootWrapRef = /*#__PURE__*/(0, _react.createRef)();
906
910
  this.wrapRef = /*#__PURE__*/(0, _react.createRef)(); // table's outside wrap
@@ -1138,7 +1142,8 @@ class Table extends _baseComponent.default {
1138
1142
  rowSelection,
1139
1143
  dataSource,
1140
1144
  childrenRecordName,
1141
- rowKey
1145
+ rowKey,
1146
+ pagination
1142
1147
  } = props;
1143
1148
  props.columns && props.children && _utils2.logger.warn('columns should not given by object and children at the same time');
1144
1149
 
@@ -1192,6 +1197,21 @@ class Table extends _baseComponent.default {
1192
1197
  willUpdateStates.prePropRowSelection = rowSelection;
1193
1198
  }
1194
1199
 
1200
+ if (pagination !== state.prePagination) {
1201
+ let newPagination = {};
1202
+
1203
+ if ((0, _isObject2.default)(state.pagination)) {
1204
+ newPagination = (0, _assign.default)((0, _assign.default)({}, newPagination), state.pagination);
1205
+ }
1206
+
1207
+ if ((0, _isObject2.default)(pagination)) {
1208
+ newPagination = (0, _assign.default)((0, _assign.default)({}, newPagination), pagination);
1209
+ }
1210
+
1211
+ willUpdateStates.pagination = newPagination;
1212
+ willUpdateStates.prePagination = pagination;
1213
+ }
1214
+
1195
1215
  return willUpdateStates;
1196
1216
  }
1197
1217
 
@@ -1207,15 +1227,16 @@ class Table extends _baseComponent.default {
1207
1227
 
1208
1228
  componentDidUpdate(prevProps, prevState) {
1209
1229
  const {
1210
- pagination,
1211
1230
  dataSource,
1212
1231
  expandedRowKeys,
1213
1232
  expandAllRows,
1214
1233
  expandAllGroupRows,
1215
1234
  virtualized,
1216
- components
1235
+ components,
1236
+ pagination: propsPagination
1217
1237
  } = this.props;
1218
1238
  const {
1239
+ pagination: statePagination,
1219
1240
  queries: stateQueries,
1220
1241
  cachedColumns: stateCachedColumns,
1221
1242
  cachedChildren: stateCachedChildren,
@@ -1259,11 +1280,6 @@ class Table extends _baseComponent.default {
1259
1280
  this.foundation.initExpandedRowKeys({
1260
1281
  groups: stateGroups
1261
1282
  });
1262
- } // Update pagination
1263
-
1264
-
1265
- if (pagination !== prevProps.pagination) {
1266
- states.pagination = (0, _isObject2.default)(pagination) ? (0, _assign.default)({}, pagination) : pagination;
1267
1283
  }
1268
1284
  /**
1269
1285
  * After dataSource is updated || (cachedColumns || cachedChildren updated)
@@ -1278,11 +1294,11 @@ class Table extends _baseComponent.default {
1278
1294
  const _dataSource = [...dataSource];
1279
1295
  const filteredSortedDataSource = this.foundation.getFilteredSortedDataSource(_dataSource, stateQueries);
1280
1296
  this.foundation.setCachedFilteredSortedDataSource(filteredSortedDataSource);
1281
- states.dataSource = filteredSortedDataSource;
1297
+ states.dataSource = filteredSortedDataSource; // when dataSource has change, should reset currentPage
1282
1298
 
1283
- if (pagination === prevProps.pagination) {
1284
- states.pagination = (0, _isObject2.default)(pagination) ? (0, _assign.default)({}, pagination) : pagination;
1285
- }
1299
+ states.pagination = (0, _isObject2.default)(statePagination) ? (0, _assign.default)((0, _assign.default)({}, statePagination), {
1300
+ currentPage: (0, _isObject2.default)(propsPagination) && propsPagination.currentPage ? propsPagination.currentPage : 1
1301
+ }) : statePagination;
1286
1302
 
1287
1303
  if (this.props.groupBy) {
1288
1304
  states.groups = null;
@@ -1292,11 +1308,11 @@ class Table extends _baseComponent.default {
1292
1308
  if ((0, _keys.default)(states).length) {
1293
1309
  const {
1294
1310
  // eslint-disable-next-line @typescript-eslint/no-shadow
1311
+ pagination: mergedStatePagination = null,
1295
1312
  queries: stateQueries = null,
1296
- pagination: statePagination = null,
1297
1313
  dataSource: stateDataSource = null
1298
1314
  } = states;
1299
- const handledProps = this.foundation.getCurrentPageData(stateDataSource, statePagination, stateQueries); // After the pager is updated, reset allRowKeys of the current page
1315
+ const handledProps = this.foundation.getCurrentPageData(stateDataSource, mergedStatePagination, stateQueries); // After the pager is updated, reset allRowKeys of the current page
1300
1316
 
1301
1317
  this.adapter.setAllRowKeys(handledProps.allRowKeys);
1302
1318
  this.adapter.setDisabledRowKeys(handledProps.disabledRowKeys);
@@ -31,6 +31,7 @@ export interface TableCellProps extends BaseProps {
31
31
  selected?: boolean;
32
32
  expanded?: boolean;
33
33
  disabled?: boolean;
34
+ colIndex?: number;
34
35
  }
35
36
  export default class TableCell extends BaseComponent<TableCellProps, Record<string, any>> {
36
37
  static contextType: React.Context<import("./table-context").TableContextProps>;
@@ -65,6 +66,7 @@ export default class TableCell extends BaseComponent<TableCellProps, Record<stri
65
66
  height: PropTypes.Requireable<string | number>;
66
67
  selected: PropTypes.Requireable<boolean>;
67
68
  expanded: PropTypes.Requireable<boolean>;
69
+ colIndex: PropTypes.Requireable<number>;
68
70
  };
69
71
  get adapter(): TableCellAdapter;
70
72
  ref: React.MutableRefObject<any>;
@@ -320,7 +320,8 @@ class TableCell extends _baseComponent.default {
320
320
  fixedLeft,
321
321
  fixedRight,
322
322
  lastFixedLeft,
323
- firstFixedRight
323
+ firstFixedRight,
324
+ colIndex
324
325
  } = this.props;
325
326
  const {
326
327
  className
@@ -359,6 +360,8 @@ class TableCell extends _baseComponent.default {
359
360
  ["".concat(prefixCls, "-cell-fixed-right-first")]: firstFixedRight
360
361
  });
361
362
  return /*#__PURE__*/_react.default.createElement(BodyCell, (0, _assign.default)({
363
+ role: "gridcell",
364
+ "aria-colindex": colIndex + 1,
362
365
  className: columnCls,
363
366
  onClick: this.handleClick
364
367
  }, newTdProps, {
@@ -400,5 +403,6 @@ TableCell.propTypes = {
400
403
  width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
401
404
  height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
402
405
  selected: _propTypes.default.bool,
403
- expanded: _propTypes.default.bool
406
+ expanded: _propTypes.default.bool,
407
+ colIndex: _propTypes.default.number
404
408
  };
@@ -178,12 +178,18 @@ class TableHeaderRow extends _baseComponent.default {
178
178
  return null;
179
179
  }
180
180
 
181
- return /*#__PURE__*/_react.default.createElement(HeaderCell, (0, _assign.default)({}, props, {
181
+ return /*#__PURE__*/_react.default.createElement(HeaderCell, (0, _assign.default)({
182
+ role: "columnheader",
183
+ "aria-colindex": cellIndex + 1
184
+ }, props, {
182
185
  style: cellStyle,
183
186
  key: column.key || column.dataIndex || cellIndex
184
187
  }));
185
188
  });
186
- return /*#__PURE__*/_react.default.createElement(HeaderRow, (0, _assign.default)({}, rowProps, {
189
+ return /*#__PURE__*/_react.default.createElement(HeaderRow, (0, _assign.default)({
190
+ role: "row",
191
+ "aria-rowindex": index + 1
192
+ }, rowProps, {
187
193
  style: style,
188
194
  ref: this.cacheRef
189
195
  }), cells);
@@ -83,6 +83,8 @@ class TabBar extends _react.default.Component {
83
83
  } = this.props;
84
84
  const panelIcon = panel.icon ? this.renderIcon(panel.icon) : null;
85
85
  const closableIcon = type === 'card' && panel.closable ? /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
86
+ "aria-label": "Close",
87
+ role: "button",
86
88
  className: "".concat(_constants.cssClasses.TABS_TAB, "-icon-close"),
87
89
  onClick: e => deleteTabItem(panel.itemKey, e)
88
90
  }) : null;
@@ -95,16 +97,20 @@ class TabBar extends _react.default.Component {
95
97
  };
96
98
  }
97
99
 
100
+ const isSelected = this._isActive(key);
101
+
98
102
  const className = (0, _classnames.default)(_constants.cssClasses.TABS_TAB, {
99
- [_constants.cssClasses.TABS_TAB_ACTIVE]: this._isActive(key),
103
+ [_constants.cssClasses.TABS_TAB_ACTIVE]: isSelected,
100
104
  [_constants.cssClasses.TABS_TAB_DISABLED]: panel.disabled,
101
105
  ["".concat(_constants.cssClasses.TABS_TAB, "-small")]: size === 'small',
102
106
  ["".concat(_constants.cssClasses.TABS_TAB, "-medium")]: size === 'medium'
103
107
  });
104
108
  return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
105
109
  role: "tab",
110
+ id: "semiTab".concat(key),
111
+ "aria-controls": "semiTabPanel".concat(key),
106
112
  "aria-disabled": panel.disabled ? 'true' : 'false',
107
- "aria-selected": this._isActive(key) ? 'true' : 'false'
113
+ "aria-selected": isSelected ? 'true' : 'false'
108
114
  }, events, {
109
115
  className: className,
110
116
  key: this._getItemKey(key)
@@ -182,6 +188,7 @@ class TabBar extends _react.default.Component {
182
188
  style: dropdownStyle,
183
189
  trigger: 'hover'
184
190
  }, /*#__PURE__*/_react.default.createElement("div", {
191
+ role: "presentation",
185
192
  className: arrowCls,
186
193
  onClick: e => this.handleArrowClick(items, pos)
187
194
  }, /*#__PURE__*/_react.default.createElement(_button.default, {
@@ -289,7 +296,8 @@ class TabBar extends _react.default.Component {
289
296
  const extra = this.renderExtra();
290
297
  const contents = collapsible ? this.renderCollapsedTab() : this.renderTabComponents(list);
291
298
  return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
292
- role: "tab-list",
299
+ role: "tablist",
300
+ "aria-orientation": tabPosition === "left" ? "vertical" : "horizontal",
293
301
  className: classNames,
294
302
  style: style
295
303
  }, (0, _getDataAttr.default)(restProps), {
@@ -132,7 +132,9 @@ class TabPane extends _react.PureComponent {
132
132
  const shouldRender = this.shouldRender();
133
133
  return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
134
134
  ref: this.ref,
135
- role: "tab-panel",
135
+ role: "tabpanel",
136
+ id: "semiTabPanel".concat(itemKey),
137
+ "aria-labelledby": "semiTab".concat(itemKey),
136
138
  className: classNames,
137
139
  style: style,
138
140
  "aria-hidden": active ? 'false' : 'true'
@@ -387,7 +387,6 @@ class Tabs extends _baseComponent.default {
387
387
  }
388
388
  }, /*#__PURE__*/_react.default.createElement("div", {
389
389
  ref: this.setContentRef,
390
- role: "tab-content",
391
390
  className: tabContentCls,
392
391
  style: (0, _assign.default)({}, contentStyle)
393
392
  }, content)));
@@ -40,8 +40,9 @@ export interface TagInputProps {
40
40
  style?: React.CSSProperties;
41
41
  suffix?: React.ReactNode;
42
42
  validateStatus?: ValidateStatus;
43
- value?: string[];
43
+ value?: string[] | undefined;
44
44
  autoFocus?: boolean;
45
+ 'aria-label'?: string;
45
46
  }
46
47
  export interface TagInputState {
47
48
  tagsArray?: string[];
@@ -84,6 +85,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
84
85
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning">;
85
86
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
86
87
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
88
+ 'aria-label': PropTypes.Requireable<string>;
87
89
  };
88
90
  static defaultProps: {
89
91
  showClear: boolean;
@@ -118,6 +120,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
118
120
  handleInputFocus: (e: React.MouseEvent<HTMLInputElement>) => void;
119
121
  handleInputBlur: (e: React.MouseEvent<HTMLInputElement>) => void;
120
122
  handleClearBtn: (e: React.MouseEvent<HTMLDivElement>) => void;
123
+ handleClearEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
121
124
  handleTagClose: (idx: number) => void;
122
125
  handleInputMouseLeave: (e: React.MouseEvent<HTMLDivElement>) => void;
123
126
  handleInputMouseEnter: (e: React.MouseEvent<HTMLDivElement>) => void;