@douyinfe/semi-ui 2.2.0-beta.1 → 2.3.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/_base/_story/a11y.jsx +6 -6
  2. package/_utils/hooks/usePrevFocus.ts +16 -0
  3. package/_utils/index.ts +4 -0
  4. package/anchor/_story/anchor.stories.js +1 -1
  5. package/anchor/index.tsx +5 -2
  6. package/anchor/link.tsx +29 -4
  7. package/autoComplete/index.tsx +28 -1
  8. package/avatar/_story/avatar.stories.js +4 -4
  9. package/avatar/avatarGroup.tsx +1 -1
  10. package/avatar/index.tsx +10 -4
  11. package/banner/index.tsx +2 -1
  12. package/breadcrumb/_story/breadcrumb.stories.js +22 -8
  13. package/breadcrumb/index.tsx +8 -1
  14. package/breadcrumb/item.tsx +1 -1
  15. package/button/Button.tsx +4 -0
  16. package/button/__test__/button.test.js +1 -1
  17. package/button/_story/button.stories.js +10 -10
  18. package/button/buttonGroup.tsx +4 -2
  19. package/button/splitButtonGroup.tsx +5 -2
  20. package/card/_story/card.stories.js +8 -1
  21. package/card/_story/card.stories.tsx +3 -0
  22. package/card/index.tsx +5 -2
  23. package/cascader/index.tsx +33 -5
  24. package/checkbox/_story/checkbox.stories.js +21 -14
  25. package/checkbox/checkbox.tsx +40 -5
  26. package/checkbox/checkboxGroup.tsx +30 -5
  27. package/checkbox/checkboxInner.tsx +25 -2
  28. package/collapse/index.tsx +2 -2
  29. package/collapse/item.tsx +15 -8
  30. package/collapsible/index.tsx +4 -2
  31. package/configProvider/_story/configProvider.stories.tsx +27 -0
  32. package/datePicker/__test__/datePicker.test.js +108 -0
  33. package/datePicker/_story/datePicker.stories.js +146 -2
  34. package/datePicker/datePicker.tsx +24 -0
  35. package/datePicker/monthsGrid.tsx +2 -1
  36. package/dist/css/semi.css +34 -7
  37. package/dist/css/semi.min.css +1 -1
  38. package/dist/umd/semi-ui.js +2785 -1508
  39. package/dist/umd/semi-ui.js.map +1 -1
  40. package/dist/umd/semi-ui.min.js +1 -1
  41. package/dist/umd/semi-ui.min.js.map +1 -1
  42. package/dropdown/dropdownItem.tsx +1 -1
  43. package/dropdown/dropdownMenu.tsx +1 -1
  44. package/empty/index.tsx +5 -5
  45. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  46. package/form/_story/Validate/validateDemo.jsx +1 -1
  47. package/form/_story/demo.jsx +12 -3
  48. package/form/_story/form.stories.js +0 -7
  49. package/form/baseForm.tsx +2 -0
  50. package/form/errorMessage.tsx +13 -2
  51. package/form/hoc/withField.tsx +37 -8
  52. package/form/index.tsx +0 -2
  53. package/form/interface.ts +2 -0
  54. package/form/label.tsx +4 -2
  55. package/input/index.tsx +49 -4
  56. package/input/inputGroup.tsx +9 -4
  57. package/input/textarea.tsx +25 -6
  58. package/inputNumber/_story/inputNumber.stories.js +12 -0
  59. package/inputNumber/index.tsx +33 -2
  60. package/layout/Sider.tsx +6 -2
  61. package/layout/index.tsx +4 -3
  62. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  63. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  64. package/lib/cjs/_utils/index.d.ts +1 -0
  65. package/lib/cjs/_utils/index.js +6 -1
  66. package/lib/cjs/anchor/index.d.ts +2 -0
  67. package/lib/cjs/anchor/index.js +6 -1
  68. package/lib/cjs/anchor/link.d.ts +4 -1
  69. package/lib/cjs/anchor/link.js +39 -5
  70. package/lib/cjs/autoComplete/index.d.ts +17 -0
  71. package/lib/cjs/autoComplete/index.js +21 -2
  72. package/lib/cjs/avatar/avatarGroup.js +2 -1
  73. package/lib/cjs/avatar/index.d.ts +4 -3
  74. package/lib/cjs/avatar/index.js +20 -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/index.js +2 -1
  97. package/lib/cjs/collapse/item.d.ts +2 -1
  98. package/lib/cjs/collapse/item.js +17 -3
  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 +22 -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/empty/index.js +2 -1
  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 +37 -3
  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/item.js +0 -1
  129. package/lib/cjs/modal/Modal.js +2 -0
  130. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  131. package/lib/cjs/modal/ModalContent.js +47 -5
  132. package/lib/cjs/navigation/Item.d.ts +4 -2
  133. package/lib/cjs/navigation/Item.js +25 -5
  134. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  135. package/lib/cjs/navigation/SubNav.js +8 -1
  136. package/lib/cjs/navigation/index.js +2 -0
  137. package/lib/cjs/notification/notice.d.ts +1 -1
  138. package/lib/cjs/notification/notice.js +32 -22
  139. package/lib/cjs/pagination/index.js +16 -6
  140. package/lib/cjs/popover/index.js +7 -3
  141. package/lib/cjs/progress/index.d.ts +8 -0
  142. package/lib/cjs/progress/index.js +42 -9
  143. package/lib/cjs/radio/radio.d.ts +6 -1
  144. package/lib/cjs/radio/radio.js +17 -5
  145. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  146. package/lib/cjs/radio/radioGroup.js +18 -3
  147. package/lib/cjs/radio/radioInner.d.ts +6 -1
  148. package/lib/cjs/radio/radioInner.js +11 -3
  149. package/lib/cjs/rating/index.d.ts +14 -0
  150. package/lib/cjs/rating/index.js +14 -3
  151. package/lib/cjs/rating/item.d.ts +2 -0
  152. package/lib/cjs/rating/item.js +6 -1
  153. package/lib/cjs/select/index.d.ts +16 -0
  154. package/lib/cjs/select/index.js +65 -19
  155. package/lib/cjs/select/option.js +28 -22
  156. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  157. package/lib/cjs/sideSheet/SideSheetContent.js +12 -5
  158. package/lib/cjs/sideSheet/index.d.ts +1 -0
  159. package/lib/cjs/sideSheet/index.js +2 -1
  160. package/lib/cjs/slider/index.d.ts +2 -1
  161. package/lib/cjs/slider/index.js +64 -17
  162. package/lib/cjs/spin/icon.js +2 -4
  163. package/lib/cjs/steps/basicStep.d.ts +3 -0
  164. package/lib/cjs/steps/basicStep.js +23 -25
  165. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  166. package/lib/cjs/steps/basicSteps.js +2 -1
  167. package/lib/cjs/steps/fillStep.d.ts +3 -0
  168. package/lib/cjs/steps/fillStep.js +19 -4
  169. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  170. package/lib/cjs/steps/fillSteps.js +2 -1
  171. package/lib/cjs/steps/navStep.d.ts +3 -0
  172. package/lib/cjs/steps/navStep.js +22 -25
  173. package/lib/cjs/steps/navSteps.d.ts +1 -0
  174. package/lib/cjs/steps/navSteps.js +2 -1
  175. package/lib/cjs/switch/index.d.ts +12 -0
  176. package/lib/cjs/switch/index.js +19 -4
  177. package/lib/cjs/table/Body/BaseRow.js +35 -3
  178. package/lib/cjs/table/Body/index.js +9 -1
  179. package/lib/cjs/table/ColumnFilter.js +4 -0
  180. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  181. package/lib/cjs/table/ColumnSelection.js +6 -2
  182. package/lib/cjs/table/ColumnSorter.js +19 -3
  183. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  184. package/lib/cjs/table/Table.d.ts +2 -0
  185. package/lib/cjs/table/Table.js +31 -15
  186. package/lib/cjs/table/TableCell.d.ts +2 -0
  187. package/lib/cjs/table/TableCell.js +6 -2
  188. package/lib/cjs/table/TableHeaderRow.js +8 -2
  189. package/lib/cjs/tabs/TabBar.js +11 -3
  190. package/lib/cjs/tabs/TabPane.js +3 -1
  191. package/lib/cjs/tabs/index.js +3 -8
  192. package/lib/cjs/tagInput/index.d.ts +4 -1
  193. package/lib/cjs/tagInput/index.js +29 -3
  194. package/lib/cjs/timePicker/TimePicker.d.ts +12 -0
  195. package/lib/cjs/timePicker/TimePicker.js +9 -1
  196. package/lib/cjs/timePicker/index.d.ts +6 -0
  197. package/lib/cjs/timeline/index.d.ts +1 -1
  198. package/lib/cjs/timeline/index.js +1 -0
  199. package/lib/cjs/timeline/item.js +4 -2
  200. package/lib/cjs/toast/toast.js +2 -0
  201. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  202. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  203. package/lib/cjs/tooltip/index.d.ts +16 -12
  204. package/lib/cjs/tooltip/index.js +55 -39
  205. package/lib/cjs/transfer/index.d.ts +1 -1
  206. package/lib/cjs/transfer/index.js +35 -17
  207. package/lib/cjs/tree/index.d.ts +1 -0
  208. package/lib/cjs/tree/index.js +15 -6
  209. package/lib/cjs/tree/treeNode.d.ts +12 -4
  210. package/lib/cjs/tree/treeNode.js +44 -4
  211. package/lib/cjs/treeSelect/index.d.ts +16 -0
  212. package/lib/cjs/treeSelect/index.js +60 -12
  213. package/lib/cjs/typography/base.js +18 -7
  214. package/lib/cjs/typography/copyable.js +6 -1
  215. package/lib/cjs/upload/fileCard.js +23 -4
  216. package/lib/cjs/upload/index.js +19 -4
  217. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  218. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  219. package/lib/es/_utils/index.d.ts +1 -0
  220. package/lib/es/_utils/index.js +4 -1
  221. package/lib/es/anchor/index.d.ts +2 -0
  222. package/lib/es/anchor/index.js +6 -1
  223. package/lib/es/anchor/link.d.ts +4 -1
  224. package/lib/es/anchor/link.js +38 -5
  225. package/lib/es/autoComplete/index.d.ts +17 -0
  226. package/lib/es/autoComplete/index.js +21 -2
  227. package/lib/es/avatar/avatarGroup.js +2 -1
  228. package/lib/es/avatar/index.d.ts +4 -3
  229. package/lib/es/avatar/index.js +20 -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/index.js +2 -1
  252. package/lib/es/collapse/item.d.ts +2 -1
  253. package/lib/es/collapse/item.js +16 -3
  254. package/lib/es/collapsible/index.d.ts +1 -0
  255. package/lib/es/collapsible/index.js +4 -2
  256. package/lib/es/datePicker/datePicker.d.ts +12 -0
  257. package/lib/es/datePicker/datePicker.js +22 -3
  258. package/lib/es/datePicker/monthsGrid.d.ts +1 -0
  259. package/lib/es/datePicker/monthsGrid.js +2 -1
  260. package/lib/es/dropdown/dropdownItem.js +3 -1
  261. package/lib/es/dropdown/dropdownMenu.js +4 -1
  262. package/lib/es/empty/index.js +2 -1
  263. package/lib/es/form/baseForm.d.ts +9 -0
  264. package/lib/es/form/baseForm.js +3 -1
  265. package/lib/es/form/errorMessage.d.ts +4 -0
  266. package/lib/es/form/errorMessage.js +21 -3
  267. package/lib/es/form/field.d.ts +7 -0
  268. package/lib/es/form/hoc/withField.js +48 -15
  269. package/lib/es/form/index.d.ts +0 -1
  270. package/lib/es/form/index.js +0 -1
  271. package/lib/es/form/interface.d.ts +2 -0
  272. package/lib/es/form/label.d.ts +2 -0
  273. package/lib/es/form/label.js +5 -2
  274. package/lib/es/input/index.d.ts +16 -0
  275. package/lib/es/input/index.js +51 -15
  276. package/lib/es/input/inputGroup.d.ts +2 -1
  277. package/lib/es/input/inputGroup.js +11 -1
  278. package/lib/es/input/textarea.js +12 -1
  279. package/lib/es/inputNumber/index.d.ts +21 -12
  280. package/lib/es/inputNumber/index.js +38 -3
  281. package/lib/es/layout/Sider.d.ts +4 -0
  282. package/lib/es/layout/Sider.js +4 -1
  283. package/lib/es/layout/index.js +2 -0
  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 +12 -5
  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 +2 -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 +1 -6
  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 +23 -4
  372. package/lib/es/upload/index.js +19 -4
  373. package/list/item.tsx +0 -1
  374. package/modal/Modal.tsx +2 -0
  375. package/modal/ModalContent.tsx +35 -5
  376. package/navigation/Item.tsx +15 -0
  377. package/navigation/SubNav.tsx +13 -1
  378. package/navigation/index.tsx +1 -1
  379. package/notification/notice.tsx +19 -14
  380. package/package.json +8 -8
  381. package/pagination/index.tsx +9 -5
  382. package/popover/index.tsx +5 -0
  383. package/progress/_story/progress.stories.js +18 -18
  384. package/progress/index.tsx +58 -20
  385. package/radio/radio.tsx +12 -2
  386. package/radio/radioGroup.tsx +29 -3
  387. package/radio/radioInner.tsx +10 -1
  388. package/rating/index.tsx +19 -2
  389. package/rating/item.tsx +6 -0
  390. package/select/__test__/select.test.js +45 -0
  391. package/select/_story/select.stories.js +29 -0
  392. package/select/index.tsx +52 -4
  393. package/select/option.tsx +3 -0
  394. package/sideSheet/SideSheetContent.tsx +13 -9
  395. package/sideSheet/index.tsx +3 -2
  396. package/slider/__test__/slider.test.js +9 -0
  397. package/slider/_story/slider.stories.js +1 -1
  398. package/slider/index.tsx +44 -7
  399. package/spin/icon.tsx +3 -3
  400. package/steps/basicStep.tsx +15 -4
  401. package/steps/basicSteps.tsx +3 -2
  402. package/steps/fillStep.tsx +27 -12
  403. package/steps/fillSteps.tsx +2 -0
  404. package/steps/navStep.tsx +15 -4
  405. package/steps/navSteps.tsx +3 -2
  406. package/switch/_story/switch.stories.js +20 -19
  407. package/switch/_story/switch.stories.tsx +13 -13
  408. package/switch/index.tsx +23 -5
  409. package/table/Body/BaseRow.tsx +25 -1
  410. package/table/Body/index.tsx +7 -2
  411. package/table/ColumnFilter.tsx +7 -1
  412. package/table/ColumnSelection.tsx +4 -1
  413. package/table/ColumnSorter.tsx +18 -1
  414. package/table/CustomExpandIcon.tsx +5 -0
  415. package/table/Table.tsx +26 -13
  416. package/table/TableCell.tsx +11 -1
  417. package/table/TableHeaderRow.tsx +16 -2
  418. package/table/__test__/table.test.js +46 -0
  419. package/tabs/TabBar.tsx +8 -5
  420. package/tabs/TabPane.tsx +3 -1
  421. package/tabs/index.tsx +1 -2
  422. package/tagInput/__test__/tagInput.test.js +46 -0
  423. package/tagInput/_story/tagInput.stories.js +2 -2
  424. package/tagInput/index.tsx +31 -8
  425. package/timePicker/TimePicker.tsx +14 -1
  426. package/timeline/_story/timeline.stories.js +1 -1
  427. package/timeline/index.tsx +2 -2
  428. package/timeline/item.tsx +2 -1
  429. package/toast/toast.tsx +2 -0
  430. package/tooltip/TriangleArrow.tsx +1 -1
  431. package/tooltip/TriangleArrowVertical.tsx +1 -1
  432. package/tooltip/_story/tooltip.stories.js +562 -514
  433. package/tooltip/index.tsx +50 -33
  434. package/transfer/index.tsx +32 -28
  435. package/tree/_story/tree.stories.js +3 -3
  436. package/tree/index.tsx +10 -2
  437. package/tree/treeNode.tsx +46 -10
  438. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  439. package/treeSelect/_story/treeSelect.stories.js +12 -0
  440. package/treeSelect/index.tsx +58 -7
  441. package/typography/base.tsx +7 -1
  442. package/typography/copyable.tsx +10 -1
  443. package/upload/fileCard.tsx +13 -15
  444. package/upload/index.tsx +10 -6
@@ -18,6 +18,12 @@ export interface BaseDataItem extends DataItem {
18
18
  }
19
19
  export declare type AutoCompleteItems = BaseDataItem | string | number;
20
20
  export interface AutoCompleteProps<T extends AutoCompleteItems> {
21
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
22
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
23
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
24
+ 'aria-label'?: React.AriaAttributes['aria-label'];
25
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
26
+ 'aria-required'?: React.AriaAttributes['aria-required'];
21
27
  autoAdjustOverflow?: boolean;
22
28
  autoFocus?: boolean;
23
29
  className?: string;
@@ -33,6 +39,8 @@ export interface AutoCompleteProps<T extends AutoCompleteItems> {
33
39
  emptyContent?: React.ReactNode | null;
34
40
  getPopupContainer?: () => HTMLElement;
35
41
  insetLabel?: React.ReactNode;
42
+ insetLabelId?: string;
43
+ id?: string;
36
44
  loading?: boolean;
37
45
  motion?: Motion;
38
46
  maxHeight?: string | number;
@@ -77,6 +85,12 @@ interface AutoCompleteState {
77
85
  }
78
86
  declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<AutoCompleteProps<T>, AutoCompleteState> {
79
87
  static propTypes: {
88
+ 'aria-label': PropTypes.Requireable<string>;
89
+ 'aria-labelledby': PropTypes.Requireable<string>;
90
+ 'aria-invalid': PropTypes.Requireable<boolean>;
91
+ 'aria-errormessage': PropTypes.Requireable<string>;
92
+ 'aria-describedby': PropTypes.Requireable<string>;
93
+ 'aria-required': PropTypes.Requireable<boolean>;
80
94
  autoFocus: PropTypes.Requireable<boolean>;
81
95
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
82
96
  className: PropTypes.Requireable<string>;
@@ -90,6 +104,9 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
90
104
  dropdownClassName: PropTypes.Requireable<string>;
91
105
  dropdownStyle: PropTypes.Requireable<object>;
92
106
  emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
107
+ id: PropTypes.Requireable<string>;
108
+ insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
109
+ insetLabelId: PropTypes.Requireable<string>;
93
110
  onSearch: PropTypes.Requireable<(...args: any[]) => any>;
94
111
  onSelect: PropTypes.Requireable<(...args: any[]) => any>;
95
112
  onClear: PropTypes.Requireable<(...args: any[]) => any>;
@@ -175,6 +175,7 @@ class AutoComplete extends BaseComponent {
175
175
  size,
176
176
  prefix,
177
177
  insetLabel,
178
+ insetLabelId,
178
179
  suffix,
179
180
  placeholder,
180
181
  style,
@@ -184,7 +185,8 @@ class AutoComplete extends BaseComponent {
184
185
  triggerRender,
185
186
  validateStatus,
186
187
  autoFocus,
187
- value
188
+ value,
189
+ id
188
190
  } = this.props;
189
191
  const {
190
192
  inputValue,
@@ -200,7 +202,8 @@ class AutoComplete extends BaseComponent {
200
202
  ["".concat(prefixCls, "-disabled")]: disabled
201
203
  }, className),
202
204
  onClick: this.handleInputClick,
203
- ref: this.triggerRef
205
+ ref: this.triggerRef,
206
+ id
204
207
  }, keyboardEventSet);
205
208
 
206
209
  const innerProps = {
@@ -209,9 +212,16 @@ class AutoComplete extends BaseComponent {
209
212
  autofocus: autoFocus,
210
213
  onChange: this.onSearch,
211
214
  onClear: this.onInputClear,
215
+ 'aria-label': this.props['aria-label'],
216
+ 'aria-labelledby': this.props['aria-labelledby'],
217
+ 'aria-invalid': this.props['aria-invalid'],
218
+ 'aria-errormessage': this.props['aria-errormessage'],
219
+ 'aria-describedby': this.props['aria-describedby'],
220
+ 'aria-required': this.props['aria-required'],
212
221
  // TODO: remove in next major version
213
222
  suffix,
214
223
  prefix: prefix || insetLabel,
224
+ insetLabelId,
215
225
  showClear,
216
226
  validateStatus,
217
227
  size,
@@ -326,6 +336,12 @@ class AutoComplete extends BaseComponent {
326
336
  }
327
337
 
328
338
  AutoComplete.propTypes = {
339
+ 'aria-label': PropTypes.string,
340
+ 'aria-labelledby': PropTypes.string,
341
+ 'aria-invalid': PropTypes.bool,
342
+ 'aria-errormessage': PropTypes.string,
343
+ 'aria-describedby': PropTypes.string,
344
+ 'aria-required': PropTypes.bool,
329
345
  autoFocus: PropTypes.bool,
330
346
  autoAdjustOverflow: PropTypes.bool,
331
347
  className: PropTypes.string,
@@ -339,6 +355,9 @@ AutoComplete.propTypes = {
339
355
  dropdownClassName: PropTypes.string,
340
356
  dropdownStyle: PropTypes.object,
341
357
  emptyContent: PropTypes.node,
358
+ id: PropTypes.string,
359
+ insetLabel: PropTypes.node,
360
+ insetLabelId: PropTypes.string,
342
361
  onSearch: PropTypes.func,
343
362
  onSelect: PropTypes.func,
344
363
  onClear: PropTypes.func,
@@ -115,7 +115,8 @@ export default class AvatarGroup extends PureComponent {
115
115
  }
116
116
 
117
117
  return /*#__PURE__*/React.createElement("div", {
118
- className: groupCls
118
+ className: groupCls,
119
+ "aria-label": "avatar group"
119
120
  }, inner);
120
121
  }
121
122
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { AvatarAdapter } from '@douyinfe/semi-foundation/lib/es/avatar/foundation';
3
+ import AvatarFoundation, { AvatarAdapter } from '@douyinfe/semi-foundation/lib/es/avatar/foundation';
4
4
  import '@douyinfe/semi-foundation/lib/es/avatar/avatar.css';
5
5
  import { noop } from '@douyinfe/semi-foundation/lib/es/utils/function';
6
6
  import BaseComponent from '../_base/baseComponent';
@@ -36,13 +36,14 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
36
36
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
37
37
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
38
38
  };
39
+ foundation: AvatarFoundation;
39
40
  constructor(props: AvatarProps);
40
41
  get adapter(): AvatarAdapter<AvatarProps, AvatarState>;
41
42
  componentDidMount(): void;
42
43
  componentDidUpdate(prevProps: AvatarProps): void;
43
44
  componentWillUnmount(): void;
44
- onEnter(): void;
45
- onLeave(): void;
45
+ onEnter(e: React.MouseEvent): void;
46
+ onLeave(e: React.MouseEvent): void;
46
47
  handleError(): void;
47
48
  render(): JSX.Element;
48
49
  }
@@ -110,12 +110,12 @@ export default class Avatar extends BaseComponent {
110
110
  this.foundation.destroy();
111
111
  }
112
112
 
113
- onEnter() {
114
- this.foundation.handleEnter();
113
+ onEnter(e) {
114
+ this.foundation.handleEnter(e);
115
115
  }
116
116
 
117
- onLeave() {
118
- this.foundation.handleLeave();
117
+ onLeave(e) {
118
+ this.foundation.handleLeave(e);
119
119
  }
120
120
 
121
121
  handleError() {
@@ -158,6 +158,7 @@ export default class Avatar extends BaseComponent {
158
158
  const hoverRender = hoverContent ? /*#__PURE__*/React.createElement("div", {
159
159
  className: "".concat(prefixCls, "-hover")
160
160
  }, hoverContent) : null;
161
+ let ariaLabel;
161
162
 
162
163
  if (isImg) {
163
164
  content = /*#__PURE__*/React.createElement("img", _Object$assign({
@@ -166,21 +167,29 @@ export default class Avatar extends BaseComponent {
166
167
  onError: this.handleError,
167
168
  alt: alt
168
169
  }, imgAttr));
170
+ ariaLabel = 'avatar';
169
171
  } else if (typeof children === 'string') {
170
172
  content = /*#__PURE__*/React.createElement("span", {
171
173
  className: "".concat(prefixCls, "-content")
172
174
  }, /*#__PURE__*/React.createElement("span", {
173
175
  className: "".concat(prefixCls, "-label")
174
176
  }, children));
177
+ ariaLabel = "avatar of ".concat(children);
175
178
  }
176
179
 
177
- return /*#__PURE__*/React.createElement("span", _Object$assign({}, others, {
178
- style: style,
179
- className: avatarCls,
180
- onClick: onClick,
181
- onMouseEnter: this.onEnter,
182
- onMouseLeave: this.onLeave
183
- }), content, hoverRender);
180
+ return (
181
+ /*#__PURE__*/
182
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events
183
+ React.createElement("span", _Object$assign({
184
+ "aria-label": ariaLabel
185
+ }, others, {
186
+ style: style,
187
+ className: avatarCls,
188
+ onClick: onClick,
189
+ onMouseEnter: this.onEnter,
190
+ onMouseLeave: this.onLeave
191
+ }), content, hoverRender)
192
+ );
184
193
  }
185
194
 
186
195
  }
@@ -70,7 +70,8 @@ export default class Banner extends BaseComponent {
70
70
  icon: closeIcon || /*#__PURE__*/React.createElement(IconClose, null),
71
71
  theme: "borderless",
72
72
  size: "small",
73
- type: "tertiary"
73
+ type: "tertiary",
74
+ "aria-label": 'Close'
74
75
  });
75
76
  return closer;
76
77
  }
@@ -137,7 +138,8 @@ export default class Banner extends BaseComponent {
137
138
  });
138
139
  const banner = visible ? /*#__PURE__*/React.createElement("div", {
139
140
  className: wrapper,
140
- style: style
141
+ style: style,
142
+ role: "alert"
141
143
  }, /*#__PURE__*/React.createElement("div", {
142
144
  className: "".concat(prefixCls, "-content-wrapper")
143
145
  }, /*#__PURE__*/React.createElement("div", {
@@ -27,6 +27,7 @@ export interface BreadcrumbProps extends BaseProps {
27
27
  autoCollapse?: boolean;
28
28
  renderMore?: (restItem: Array<React.ReactNode>) => React.ReactNode;
29
29
  moreType?: MoreType;
30
+ 'aria-label'?: React.AriaAttributes['aria-label'];
30
31
  }
31
32
  interface BreadcrumbState {
32
33
  isCollapsed: boolean;
@@ -52,6 +53,7 @@ declare class Breadcrumb extends BaseComponent<BreadcrumbProps, BreadcrumbState>
52
53
  maxItemCount: propTypes.Requireable<number>;
53
54
  renderMore: propTypes.Requireable<(...args: any[]) => any>;
54
55
  moreType: propTypes.Requireable<string>;
56
+ 'aria-label': propTypes.Requireable<string>;
55
57
  };
56
58
  static defaultProps: {
57
59
  routes: [];
@@ -66,6 +68,7 @@ declare class Breadcrumb extends BaseComponent<BreadcrumbProps, BreadcrumbState>
66
68
  autoCollapse: boolean;
67
69
  moreType: string;
68
70
  maxItemCount: number;
71
+ 'aria-label': string;
69
72
  };
70
73
  constructor(props: BreadcrumbProps);
71
74
  get adapter(): BreadcrumbAdapter<BreadcrumbProps, BreadcrumbState>;
@@ -47,8 +47,12 @@ class Breadcrumb extends BaseComponent {
47
47
  }, /*#__PURE__*/React.createElement("span", {
48
48
  className: "".concat(clsPrefix, "-item-wrap")
49
49
  }, /*#__PURE__*/React.createElement("span", {
50
+ role: 'button',
51
+ tabIndex: 0,
52
+ "aria-label": 'Expand breadcrumb items',
50
53
  className: _concatInstanceProperty(_context = "".concat(clsPrefix, "-item ")).call(_context, clsPrefix, "-item-more"),
51
- onClick: item => this.foundation.handleExpand(item)
54
+ onClick: item => this.foundation.handleExpand(item),
55
+ onKeyPress: e => this.foundation.handleExpandEnterPress(e)
52
56
  }, hasRenderMore && renderMore(restItem), !hasRenderMore && moreType === 'default' && /*#__PURE__*/React.createElement(IconMore, null), !hasRenderMore && moreType === 'popover' && this.renderPopoverMore(restItem)), /*#__PURE__*/React.createElement("span", {
53
57
  className: "".concat(clsPrefix, "-separator")
54
58
  }, this.props.separator)));
@@ -210,7 +214,7 @@ class Breadcrumb extends BaseComponent {
210
214
  separator
211
215
  }
212
216
  }, /*#__PURE__*/React.createElement("nav", {
213
- "aria-label": "".concat(clsPrefix),
217
+ "aria-label": this.props['aria-label'],
214
218
  className: sizeCls,
215
219
  style: style
216
220
  }, breadcrumbs));
@@ -241,7 +245,8 @@ Breadcrumb.propTypes = {
241
245
  renderMore: propTypes.func,
242
246
 
243
247
  /* Type of ellipsis area */
244
- moreType: propTypes.oneOf(strings.MORE_TYPE)
248
+ moreType: propTypes.oneOf(strings.MORE_TYPE),
249
+ 'aria-label': propTypes.string
245
250
  };
246
251
  Breadcrumb.defaultProps = {
247
252
  routes: [],
@@ -255,6 +260,7 @@ Breadcrumb.defaultProps = {
255
260
  },
256
261
  autoCollapse: true,
257
262
  moreType: 'default',
258
- maxItemCount: 4
263
+ maxItemCount: 4,
264
+ 'aria-label': 'Breadcrumb'
259
265
  };
260
266
  export default Breadcrumb;
@@ -177,9 +177,9 @@ export default class BreadcrumbItem extends BaseComponent {
177
177
  shouldRenderSeparator // children,
178
178
 
179
179
  } = this.props;
180
- const pageLabel = active ? {} : {
180
+ const pageLabel = active ? {
181
181
  'aria-current': 'page'
182
- };
182
+ } : {};
183
183
  const item = this.renderItem();
184
184
  const separator = !active ? this.props.separator || /*#__PURE__*/React.createElement("span", {
185
185
  className: "".concat(clsPrefix, "-separator")
@@ -25,6 +25,7 @@ export interface ButtonProps {
25
25
  onMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
26
26
  onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;
27
27
  onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;
28
+ 'aria-label'?: React.AriaAttributes['aria-label'];
28
29
  }
29
30
  export default class Button extends PureComponent<ButtonProps> {
30
31
  static defaultProps: {
@@ -57,6 +58,7 @@ export default class Button extends PureComponent<ButtonProps> {
57
58
  className: PropTypes.Requireable<string>;
58
59
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
59
60
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
61
+ 'aria-label': PropTypes.Requireable<string>;
60
62
  };
61
63
  render(): JSX.Element;
62
64
  }
@@ -64,7 +64,8 @@ export default class Button extends PureComponent {
64
64
  ["".concat(prefixCls, "-circle")]: circle,
65
65
  ["".concat(prefixCls, "-borderless")]: theme === 'borderless'
66
66
  }, className),
67
- type: htmlType
67
+ type: htmlType,
68
+ 'aria-disabled': disabled
68
69
  });
69
70
 
70
71
  return (
@@ -111,5 +112,6 @@ Button.propTypes = {
111
112
  theme: PropTypes.oneOf(strings.themes),
112
113
  className: PropTypes.string,
113
114
  onMouseEnter: PropTypes.func,
114
- onMouseLeave: PropTypes.func
115
+ onMouseLeave: PropTypes.func,
116
+ 'aria-label': PropTypes.string
115
117
  };
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
2
3
  import PropTypes from 'prop-types';
3
4
  import { Type, Size } from './Button';
@@ -8,6 +9,7 @@ export interface ButtonGroupProps extends BaseProps {
8
9
  type?: Type;
9
10
  size?: Size;
10
11
  theme?: Theme;
12
+ 'aria-label'?: React.AriaAttributes['aria-label'];
11
13
  }
12
14
  export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
13
15
  static propTypes: {
@@ -16,6 +18,7 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
16
18
  type: PropTypes.Requireable<string>;
17
19
  size: PropTypes.Requireable<unknown>;
18
20
  theme: PropTypes.Requireable<unknown>;
21
+ 'aria-label': PropTypes.Requireable<string>;
19
22
  };
20
23
  static defaultProps: {
21
24
  size: string;
@@ -29,9 +29,10 @@ export default class ButtonGroup extends BaseComponent {
29
29
  children,
30
30
  disabled,
31
31
  size,
32
- type
32
+ type,
33
+ 'aria-label': ariaLabel
33
34
  } = _a,
34
- rest = __rest(_a, ["children", "disabled", "size", "type"]);
35
+ rest = __rest(_a, ["children", "disabled", "size", "type", 'aria-label']);
35
36
 
36
37
  let inner;
37
38
 
@@ -48,7 +49,9 @@ export default class ButtonGroup extends BaseComponent {
48
49
  }
49
50
 
50
51
  return /*#__PURE__*/React.createElement("div", {
51
- className: "".concat(prefixCls, "-group")
52
+ className: "".concat(prefixCls, "-group"),
53
+ role: "group",
54
+ "aria-label": ariaLabel
52
55
  }, inner);
53
56
  }
54
57
 
@@ -58,7 +61,8 @@ ButtonGroup.propTypes = {
58
61
  disabled: PropTypes.bool,
59
62
  type: PropTypes.string,
60
63
  size: PropTypes.oneOf(btnSizes),
61
- theme: PropTypes.oneOf(strings.themes)
64
+ theme: PropTypes.oneOf(strings.themes),
65
+ 'aria-label': PropTypes.string
62
66
  };
63
67
  ButtonGroup.defaultProps = {
64
68
  size: 'default',
@@ -30,6 +30,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
30
30
  onMouseDown: import("prop-types").Requireable<(...args: any[]) => any>;
31
31
  circle: import("prop-types").Requireable<boolean>;
32
32
  htmlType: import("prop-types").Requireable<unknown>;
33
+ 'aria-label': import("prop-types").Requireable<string>;
33
34
  };
34
35
  constructor(props?: {});
35
36
  render(): JSX.Element;
@@ -1,12 +1,15 @@
1
+ import React from 'react';
1
2
  import PropTypes from 'prop-types';
2
3
  import '@douyinfe/semi-foundation/lib/es/button/button.css';
3
4
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
4
5
  export interface SplitButtonGroupProps extends BaseProps {
6
+ 'aria-label'?: React.AriaAttributes['aria-label'];
5
7
  }
6
8
  export default class SplitButtonGroup extends BaseComponent<SplitButtonGroupProps> {
7
9
  static propTypes: {
8
10
  style: PropTypes.Requireable<object>;
9
11
  className: PropTypes.Requireable<string>;
12
+ 'aria-label': PropTypes.Requireable<string>;
10
13
  };
11
14
  render(): JSX.Element;
12
15
  }
@@ -15,12 +15,15 @@ export default class SplitButtonGroup extends BaseComponent {
15
15
  const cls = classNames("".concat(prefixCls, "-split"), className);
16
16
  return /*#__PURE__*/React.createElement("div", {
17
17
  className: cls,
18
- style: style
18
+ style: style,
19
+ role: "group",
20
+ "aria-label": this.props['aria-label']
19
21
  }, children);
20
22
  }
21
23
 
22
24
  }
23
25
  SplitButtonGroup.propTypes = {
24
26
  style: PropTypes.object,
25
- className: PropTypes.string
27
+ className: PropTypes.string,
28
+ 'aria-label': PropTypes.string
26
29
  };
@@ -38,6 +38,8 @@ export interface CardProps {
38
38
  style?: CSSProperties;
39
39
  /** Title */
40
40
  title?: ReactNode;
41
+ /** aria label */
42
+ 'aria-label'?: string;
41
43
  }
42
44
  declare class Card extends PureComponent<CardProps> {
43
45
  static Meta: typeof Meta;
@@ -59,6 +61,7 @@ declare class Card extends PureComponent<CardProps> {
59
61
  shadows: PropTypes.Requireable<string>;
60
62
  style: PropTypes.Requireable<object>;
61
63
  title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
64
+ 'aria-label': PropTypes.Requireable<string>;
62
65
  };
63
66
  static defaultProps: {
64
67
  bordered: boolean;
@@ -150,6 +150,7 @@ class Card extends PureComponent {
150
150
  [_concatInstanceProperty(_context = "".concat(prefixcls, "-shadows-")).call(_context, shadows)]: shadows
151
151
  });
152
152
  return /*#__PURE__*/React.createElement("div", _Object$assign({}, others, {
153
+ "aria-busy": this.props.loading,
153
154
  className: cardCls,
154
155
  style: style
155
156
  }), this.renderHeader(), this.renderCover(), this.renderBody(), this.renderFooter());
@@ -175,7 +176,8 @@ Card.propTypes = {
175
176
  loading: PropTypes.bool,
176
177
  shadows: PropTypes.oneOf(strings.SHADOWS),
177
178
  style: PropTypes.object,
178
- title: PropTypes.node
179
+ title: PropTypes.node,
180
+ 'aria-label': PropTypes.string
179
181
  };
180
182
  Card.defaultProps = {
181
183
  bordered: true,
@@ -19,6 +19,11 @@ export interface TriggerRenderProps extends BasicTriggerRenderProps {
19
19
  export declare type SimpleValueType = string | number | CascaderData;
20
20
  export declare type Value = SimpleValueType | Array<SimpleValueType> | Array<Array<SimpleValueType>>;
21
21
  export interface CascaderProps extends BasicCascaderProps {
22
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
23
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
24
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
25
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
26
+ 'aria-required'?: React.AriaAttributes['aria-required'];
22
27
  arrowIcon?: ReactNode;
23
28
  defaultValue?: Value;
24
29
  dropdownStyle?: CSSProperties;
@@ -30,7 +35,9 @@ export interface CascaderProps extends BasicCascaderProps {
30
35
  value?: Value;
31
36
  prefix?: ReactNode;
32
37
  suffix?: ReactNode;
38
+ id?: string;
33
39
  insetLabel?: ReactNode;
40
+ insetLabelId?: string;
34
41
  style?: CSSProperties;
35
42
  bottomSlot?: ReactNode;
36
43
  topSlot?: ReactNode;
@@ -53,6 +60,11 @@ export interface CascaderState extends BasicCascaderInnerData {
53
60
  declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
54
61
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
55
62
  static propTypes: {
63
+ 'aria-labelledby': PropTypes.Requireable<string>;
64
+ 'aria-invalid': PropTypes.Requireable<boolean>;
65
+ 'aria-errormessage': PropTypes.Requireable<string>;
66
+ 'aria-describedby': PropTypes.Requireable<string>;
67
+ 'aria-required': PropTypes.Requireable<boolean>;
56
68
  arrowIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
57
69
  changeOnSelect: PropTypes.Requireable<boolean>;
58
70
  defaultValue: PropTypes.Requireable<string | any[]>;
@@ -76,6 +88,8 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
76
88
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
77
89
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
78
90
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
91
+ insetLabelId: PropTypes.Requireable<string>;
92
+ id: PropTypes.Requireable<string>;
79
93
  displayProp: PropTypes.Requireable<string>;
80
94
  displayRender: PropTypes.Requireable<(...args: any[]) => any>;
81
95
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -134,7 +134,7 @@ class Cascader extends BaseComponent {
134
134
  const renderData = this.foundation.getRenderData();
135
135
  const content = /*#__PURE__*/React.createElement("div", {
136
136
  className: popoverCls,
137
- role: "list-box",
137
+ role: "listbox",
138
138
  style: dropdownStyle
139
139
  }, topSlot, /*#__PURE__*/React.createElement(Item, {
140
140
  activeKeys: activeKeys,
@@ -262,7 +262,8 @@ class Cascader extends BaseComponent {
262
262
  this.renderPrefix = () => {
263
263
  const {
264
264
  prefix,
265
- insetLabel
265
+ insetLabel,
266
+ insetLabelId
266
267
  } = this.props;
267
268
  const labelNode = prefix || insetLabel;
268
269
  const prefixWrapperCls = cls({
@@ -273,7 +274,8 @@ class Cascader extends BaseComponent {
273
274
  ["".concat(prefixcls, "-prefix-icon")]: isSemiIcon(labelNode)
274
275
  });
275
276
  return /*#__PURE__*/React.createElement("div", {
276
- className: prefixWrapperCls
277
+ className: prefixWrapperCls,
278
+ id: insetLabelId
277
279
  }, labelNode);
278
280
  };
279
281
 
@@ -352,7 +354,9 @@ class Cascader extends BaseComponent {
352
354
  if (allowClear) {
353
355
  return /*#__PURE__*/React.createElement("div", {
354
356
  className: clearCls,
355
- onClick: this.handleClear
357
+ onClick: this.handleClear,
358
+ role: 'button',
359
+ tabIndex: 0
356
360
  }, /*#__PURE__*/React.createElement(IconClear, null));
357
361
  }
358
362
 
@@ -387,7 +391,8 @@ class Cascader extends BaseComponent {
387
391
  suffix,
388
392
  insetLabel,
389
393
  triggerRender,
390
- showClear
394
+ showClear,
395
+ id
391
396
  } = this.props;
392
397
  const {
393
398
  isOpen,
@@ -429,12 +434,28 @@ class Cascader extends BaseComponent {
429
434
  }, suffix ? this.renderSuffix() : null), /*#__PURE__*/React.createElement(Fragment, {
430
435
  key: 'arrow'
431
436
  }, this.renderArrow())];
437
+ /**
438
+ * Reasons for disabling the a11y eslint rule:
439
+ * The following attributes(aria-controls,aria-expanded) will be automatically added by Tooltip, no need to declare here
440
+ */
441
+
432
442
  return /*#__PURE__*/React.createElement("div", _Object$assign({
433
443
  className: classNames,
434
444
  style: style,
435
445
  ref: this.triggerRef,
436
- onClick: e => this.foundation.handleClick(e)
437
- }, mouseEvent), inner);
446
+ onClick: e => this.foundation.handleClick(e),
447
+ "aria-invalid": this.props['aria-invalid'],
448
+ "aria-errormessage": this.props['aria-errormessage'],
449
+ "aria-label": this.props['aria-label'],
450
+ "aria-labelledby": this.props['aria-labelledby'],
451
+ "aria-describedby": this.props["aria-describedby"],
452
+ "aria-required": this.props['aria-required'],
453
+ id: id
454
+ }, mouseEvent, {
455
+ // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
456
+ role: 'combobox',
457
+ tabIndex: 0
458
+ }), inner);
438
459
  };
439
460
 
440
461
  this.state = {
@@ -856,6 +877,11 @@ class Cascader extends BaseComponent {
856
877
 
857
878
  Cascader.contextType = ConfigContext;
858
879
  Cascader.propTypes = {
880
+ 'aria-labelledby': PropTypes.string,
881
+ 'aria-invalid': PropTypes.bool,
882
+ 'aria-errormessage': PropTypes.string,
883
+ 'aria-describedby': PropTypes.string,
884
+ 'aria-required': PropTypes.bool,
859
885
  arrowIcon: PropTypes.node,
860
886
  changeOnSelect: PropTypes.bool,
861
887
  defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
@@ -881,6 +907,8 @@ Cascader.propTypes = {
881
907
  suffix: PropTypes.node,
882
908
  prefix: PropTypes.node,
883
909
  insetLabel: PropTypes.node,
910
+ insetLabelId: PropTypes.string,
911
+ id: PropTypes.string,
884
912
  displayProp: PropTypes.string,
885
913
  displayRender: PropTypes.func,
886
914
  onChange: PropTypes.func,