@douyinfe/semi-ui 2.2.2 → 2.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/_base/_story/a11y.jsx +6 -6
  2. package/_base/_story/a11y.scss +0 -1
  3. package/_base/_story/index.scss +2 -5
  4. package/_utils/hooks/usePrevFocus.ts +16 -0
  5. package/_utils/index.ts +4 -0
  6. package/anchor/_story/anchor.stories.js +1 -1
  7. package/anchor/index.tsx +5 -2
  8. package/anchor/link.tsx +29 -4
  9. package/autoComplete/index.tsx +28 -1
  10. package/avatar/_story/avatar.stories.js +4 -4
  11. package/avatar/index.tsx +6 -4
  12. package/banner/index.tsx +2 -1
  13. package/breadcrumb/_story/breadcrumb.stories.js +22 -8
  14. package/breadcrumb/index.tsx +8 -1
  15. package/breadcrumb/item.tsx +1 -1
  16. package/button/Button.tsx +4 -0
  17. package/button/__test__/button.test.js +1 -1
  18. package/button/_story/button.stories.js +10 -10
  19. package/button/buttonGroup.tsx +4 -2
  20. package/button/splitButtonGroup.tsx +5 -2
  21. package/card/_story/card.stories.js +8 -1
  22. package/card/_story/card.stories.tsx +3 -0
  23. package/card/index.tsx +5 -2
  24. package/cascader/index.tsx +33 -5
  25. package/checkbox/_story/checkbox.stories.js +19 -12
  26. package/checkbox/checkbox.tsx +40 -5
  27. package/checkbox/checkboxGroup.tsx +30 -5
  28. package/checkbox/checkboxInner.tsx +25 -2
  29. package/collapse/index.tsx +1 -1
  30. package/collapse/item.tsx +12 -7
  31. package/collapsible/index.tsx +4 -2
  32. package/configProvider/_story/configProvider.stories.tsx +27 -0
  33. package/datePicker/datePicker.tsx +19 -0
  34. package/dist/css/semi.css +23 -12
  35. package/dist/css/semi.min.css +1 -1
  36. package/dist/umd/semi-ui.js +2502 -1249
  37. package/dist/umd/semi-ui.js.map +1 -1
  38. package/dist/umd/semi-ui.min.js +1 -1
  39. package/dist/umd/semi-ui.min.js.map +1 -1
  40. package/dropdown/dropdownItem.tsx +1 -1
  41. package/dropdown/dropdownMenu.tsx +1 -1
  42. package/dropdown/index.tsx +11 -3
  43. package/empty/index.tsx +4 -4
  44. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  45. package/form/_story/Validate/validateDemo.jsx +1 -1
  46. package/form/_story/demo.jsx +12 -3
  47. package/form/_story/form.stories.js +0 -7
  48. package/form/baseForm.tsx +2 -0
  49. package/form/errorMessage.tsx +13 -2
  50. package/form/hoc/withField.tsx +37 -8
  51. package/form/index.tsx +0 -2
  52. package/form/interface.ts +2 -0
  53. package/form/label.tsx +4 -2
  54. package/input/index.tsx +49 -4
  55. package/input/inputGroup.tsx +9 -4
  56. package/input/textarea.tsx +30 -9
  57. package/inputNumber/__test__/inputNumber.test.js +36 -8
  58. package/inputNumber/index.tsx +30 -2
  59. package/layout/Sider.tsx +6 -2
  60. package/layout/index.tsx +4 -3
  61. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  62. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  63. package/lib/cjs/_utils/index.d.ts +1 -0
  64. package/lib/cjs/_utils/index.js +6 -1
  65. package/lib/cjs/anchor/index.d.ts +2 -0
  66. package/lib/cjs/anchor/index.js +6 -1
  67. package/lib/cjs/anchor/link.d.ts +4 -1
  68. package/lib/cjs/anchor/link.js +39 -5
  69. package/lib/cjs/autoComplete/index.d.ts +17 -0
  70. package/lib/cjs/autoComplete/index.js +21 -2
  71. package/lib/cjs/avatar/index.d.ts +4 -3
  72. package/lib/cjs/avatar/index.js +15 -11
  73. package/lib/cjs/banner/index.js +4 -2
  74. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  75. package/lib/cjs/breadcrumb/index.js +10 -4
  76. package/lib/cjs/breadcrumb/item.js +2 -2
  77. package/lib/cjs/button/Button.d.ts +2 -0
  78. package/lib/cjs/button/Button.js +4 -2
  79. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  80. package/lib/cjs/button/buttonGroup.js +8 -4
  81. package/lib/cjs/button/index.d.ts +1 -0
  82. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  83. package/lib/cjs/button/splitButtonGroup.js +5 -2
  84. package/lib/cjs/card/index.d.ts +3 -0
  85. package/lib/cjs/card/index.js +3 -1
  86. package/lib/cjs/cascader/index.d.ts +14 -0
  87. package/lib/cjs/cascader/index.js +35 -7
  88. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  89. package/lib/cjs/checkbox/checkbox.js +51 -17
  90. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  91. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  92. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  93. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  94. package/lib/cjs/collapse/item.d.ts +2 -1
  95. package/lib/cjs/collapse/item.js +12 -2
  96. package/lib/cjs/collapsible/index.d.ts +1 -0
  97. package/lib/cjs/collapsible/index.js +4 -2
  98. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  99. package/lib/cjs/datePicker/datePicker.js +14 -1
  100. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  101. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  102. package/lib/cjs/dropdown/index.d.ts +10 -3
  103. package/lib/cjs/form/baseForm.d.ts +9 -0
  104. package/lib/cjs/form/baseForm.js +3 -1
  105. package/lib/cjs/form/errorMessage.d.ts +4 -0
  106. package/lib/cjs/form/errorMessage.js +21 -3
  107. package/lib/cjs/form/field.d.ts +7 -0
  108. package/lib/cjs/form/hoc/withField.js +49 -16
  109. package/lib/cjs/form/index.d.ts +0 -1
  110. package/lib/cjs/form/interface.d.ts +2 -0
  111. package/lib/cjs/form/label.d.ts +2 -0
  112. package/lib/cjs/form/label.js +5 -2
  113. package/lib/cjs/input/index.d.ts +16 -0
  114. package/lib/cjs/input/index.js +51 -15
  115. package/lib/cjs/input/inputGroup.d.ts +2 -1
  116. package/lib/cjs/input/inputGroup.js +11 -1
  117. package/lib/cjs/input/textarea.js +16 -3
  118. package/lib/cjs/inputNumber/index.d.ts +8 -0
  119. package/lib/cjs/inputNumber/index.js +35 -4
  120. package/lib/cjs/layout/Sider.d.ts +4 -0
  121. package/lib/cjs/layout/Sider.js +4 -1
  122. package/lib/cjs/layout/index.js +2 -0
  123. package/lib/cjs/list/index.d.ts +4 -4
  124. package/lib/cjs/list/item.js +0 -1
  125. package/lib/cjs/modal/Modal.js +2 -0
  126. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  127. package/lib/cjs/modal/ModalContent.js +47 -5
  128. package/lib/cjs/navigation/Item.d.ts +4 -2
  129. package/lib/cjs/navigation/Item.js +25 -5
  130. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  131. package/lib/cjs/navigation/SubNav.js +8 -1
  132. package/lib/cjs/navigation/index.js +2 -0
  133. package/lib/cjs/notification/notice.d.ts +1 -1
  134. package/lib/cjs/notification/notice.js +32 -22
  135. package/lib/cjs/pagination/index.js +16 -6
  136. package/lib/cjs/popover/index.js +7 -3
  137. package/lib/cjs/progress/index.d.ts +8 -0
  138. package/lib/cjs/progress/index.js +42 -9
  139. package/lib/cjs/radio/radio.d.ts +6 -1
  140. package/lib/cjs/radio/radio.js +17 -5
  141. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  142. package/lib/cjs/radio/radioGroup.js +18 -3
  143. package/lib/cjs/radio/radioInner.d.ts +6 -1
  144. package/lib/cjs/radio/radioInner.js +11 -3
  145. package/lib/cjs/rating/index.d.ts +14 -0
  146. package/lib/cjs/rating/index.js +14 -3
  147. package/lib/cjs/rating/item.d.ts +2 -0
  148. package/lib/cjs/rating/item.js +6 -1
  149. package/lib/cjs/select/index.d.ts +16 -0
  150. package/lib/cjs/select/index.js +65 -19
  151. package/lib/cjs/select/option.js +28 -22
  152. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  153. package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
  154. package/lib/cjs/sideSheet/index.d.ts +1 -0
  155. package/lib/cjs/sideSheet/index.js +2 -1
  156. package/lib/cjs/slider/index.d.ts +2 -1
  157. package/lib/cjs/slider/index.js +64 -17
  158. package/lib/cjs/spin/icon.js +3 -4
  159. package/lib/cjs/steps/basicStep.d.ts +3 -0
  160. package/lib/cjs/steps/basicStep.js +23 -25
  161. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  162. package/lib/cjs/steps/basicSteps.js +2 -1
  163. package/lib/cjs/steps/fillStep.d.ts +3 -0
  164. package/lib/cjs/steps/fillStep.js +19 -4
  165. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  166. package/lib/cjs/steps/fillSteps.js +2 -1
  167. package/lib/cjs/steps/navStep.d.ts +3 -0
  168. package/lib/cjs/steps/navStep.js +22 -25
  169. package/lib/cjs/steps/navSteps.d.ts +1 -0
  170. package/lib/cjs/steps/navSteps.js +2 -1
  171. package/lib/cjs/switch/index.d.ts +12 -0
  172. package/lib/cjs/switch/index.js +19 -4
  173. package/lib/cjs/table/Body/BaseRow.js +35 -3
  174. package/lib/cjs/table/Body/index.js +9 -1
  175. package/lib/cjs/table/ColumnFilter.js +4 -0
  176. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  177. package/lib/cjs/table/ColumnSelection.js +6 -2
  178. package/lib/cjs/table/ColumnSorter.js +19 -3
  179. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  180. package/lib/cjs/table/Table.d.ts +2 -0
  181. package/lib/cjs/table/Table.js +35 -15
  182. package/lib/cjs/table/TableCell.d.ts +2 -0
  183. package/lib/cjs/table/TableCell.js +6 -2
  184. package/lib/cjs/table/TableHeaderRow.js +8 -2
  185. package/lib/cjs/tabs/TabBar.js +11 -3
  186. package/lib/cjs/tabs/TabPane.js +3 -1
  187. package/lib/cjs/tabs/index.js +0 -1
  188. package/lib/cjs/tagInput/index.d.ts +4 -1
  189. package/lib/cjs/tagInput/index.js +29 -3
  190. package/lib/cjs/timePicker/TimePicker.d.ts +14 -0
  191. package/lib/cjs/timePicker/TimePicker.js +11 -4
  192. package/lib/cjs/timePicker/index.d.ts +7 -0
  193. package/lib/cjs/timeline/index.d.ts +1 -1
  194. package/lib/cjs/timeline/index.js +1 -0
  195. package/lib/cjs/timeline/item.js +4 -2
  196. package/lib/cjs/toast/toast.js +2 -0
  197. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  198. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  199. package/lib/cjs/tooltip/index.d.ts +16 -12
  200. package/lib/cjs/tooltip/index.js +55 -39
  201. package/lib/cjs/transfer/index.js +32 -14
  202. package/lib/cjs/tree/index.d.ts +1 -0
  203. package/lib/cjs/tree/index.js +15 -6
  204. package/lib/cjs/tree/treeNode.d.ts +12 -4
  205. package/lib/cjs/tree/treeNode.js +54 -5
  206. package/lib/cjs/treeSelect/index.d.ts +16 -0
  207. package/lib/cjs/treeSelect/index.js +60 -12
  208. package/lib/cjs/typography/base.js +18 -7
  209. package/lib/cjs/typography/copyable.js +6 -1
  210. package/lib/cjs/upload/fileCard.js +26 -7
  211. package/lib/cjs/upload/index.js +19 -4
  212. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  213. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  214. package/lib/es/_utils/index.d.ts +1 -0
  215. package/lib/es/_utils/index.js +4 -1
  216. package/lib/es/anchor/index.d.ts +2 -0
  217. package/lib/es/anchor/index.js +6 -1
  218. package/lib/es/anchor/link.d.ts +4 -1
  219. package/lib/es/anchor/link.js +38 -5
  220. package/lib/es/autoComplete/index.d.ts +17 -0
  221. package/lib/es/autoComplete/index.js +21 -2
  222. package/lib/es/avatar/index.d.ts +4 -3
  223. package/lib/es/avatar/index.js +15 -11
  224. package/lib/es/banner/index.js +4 -2
  225. package/lib/es/breadcrumb/index.d.ts +3 -0
  226. package/lib/es/breadcrumb/index.js +10 -4
  227. package/lib/es/breadcrumb/item.js +2 -2
  228. package/lib/es/button/Button.d.ts +2 -0
  229. package/lib/es/button/Button.js +4 -2
  230. package/lib/es/button/buttonGroup.d.ts +3 -0
  231. package/lib/es/button/buttonGroup.js +8 -4
  232. package/lib/es/button/index.d.ts +1 -0
  233. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  234. package/lib/es/button/splitButtonGroup.js +5 -2
  235. package/lib/es/card/index.d.ts +3 -0
  236. package/lib/es/card/index.js +3 -1
  237. package/lib/es/cascader/index.d.ts +14 -0
  238. package/lib/es/cascader/index.js +35 -7
  239. package/lib/es/checkbox/checkbox.d.ts +21 -1
  240. package/lib/es/checkbox/checkbox.js +50 -17
  241. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  242. package/lib/es/checkbox/checkboxGroup.js +18 -5
  243. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  244. package/lib/es/checkbox/checkboxInner.js +20 -3
  245. package/lib/es/collapse/item.d.ts +2 -1
  246. package/lib/es/collapse/item.js +11 -2
  247. package/lib/es/collapsible/index.d.ts +1 -0
  248. package/lib/es/collapsible/index.js +4 -2
  249. package/lib/es/datePicker/datePicker.d.ts +12 -0
  250. package/lib/es/datePicker/datePicker.js +14 -1
  251. package/lib/es/dropdown/dropdownItem.js +3 -1
  252. package/lib/es/dropdown/dropdownMenu.js +4 -1
  253. package/lib/es/dropdown/index.d.ts +10 -3
  254. package/lib/es/form/baseForm.d.ts +9 -0
  255. package/lib/es/form/baseForm.js +3 -1
  256. package/lib/es/form/errorMessage.d.ts +4 -0
  257. package/lib/es/form/errorMessage.js +21 -3
  258. package/lib/es/form/field.d.ts +7 -0
  259. package/lib/es/form/hoc/withField.js +48 -15
  260. package/lib/es/form/index.d.ts +0 -1
  261. package/lib/es/form/index.js +0 -1
  262. package/lib/es/form/interface.d.ts +2 -0
  263. package/lib/es/form/label.d.ts +2 -0
  264. package/lib/es/form/label.js +5 -2
  265. package/lib/es/input/index.d.ts +16 -0
  266. package/lib/es/input/index.js +51 -15
  267. package/lib/es/input/inputGroup.d.ts +2 -1
  268. package/lib/es/input/inputGroup.js +11 -1
  269. package/lib/es/input/textarea.js +16 -3
  270. package/lib/es/inputNumber/index.d.ts +8 -0
  271. package/lib/es/inputNumber/index.js +36 -4
  272. package/lib/es/layout/Sider.d.ts +4 -0
  273. package/lib/es/layout/Sider.js +4 -1
  274. package/lib/es/layout/index.js +2 -0
  275. package/lib/es/list/index.d.ts +4 -4
  276. package/lib/es/list/item.js +0 -1
  277. package/lib/es/modal/Modal.js +2 -0
  278. package/lib/es/modal/ModalContent.d.ts +3 -1
  279. package/lib/es/modal/ModalContent.js +46 -5
  280. package/lib/es/navigation/Item.d.ts +4 -2
  281. package/lib/es/navigation/Item.js +25 -5
  282. package/lib/es/navigation/SubNav.d.ts +4 -2
  283. package/lib/es/navigation/SubNav.js +8 -1
  284. package/lib/es/navigation/index.js +2 -0
  285. package/lib/es/notification/notice.d.ts +1 -1
  286. package/lib/es/notification/notice.js +33 -24
  287. package/lib/es/pagination/index.js +16 -6
  288. package/lib/es/popover/index.js +7 -3
  289. package/lib/es/progress/index.d.ts +8 -0
  290. package/lib/es/progress/index.js +42 -9
  291. package/lib/es/radio/radio.d.ts +6 -1
  292. package/lib/es/radio/radio.js +16 -5
  293. package/lib/es/radio/radioGroup.d.ts +16 -1
  294. package/lib/es/radio/radioGroup.js +18 -3
  295. package/lib/es/radio/radioInner.d.ts +6 -1
  296. package/lib/es/radio/radioInner.js +11 -3
  297. package/lib/es/rating/index.d.ts +14 -0
  298. package/lib/es/rating/index.js +14 -3
  299. package/lib/es/rating/item.d.ts +2 -0
  300. package/lib/es/rating/item.js +6 -1
  301. package/lib/es/select/index.d.ts +16 -0
  302. package/lib/es/select/index.js +63 -17
  303. package/lib/es/select/option.js +28 -22
  304. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  305. package/lib/es/sideSheet/SideSheetContent.js +4 -1
  306. package/lib/es/sideSheet/index.d.ts +1 -0
  307. package/lib/es/sideSheet/index.js +2 -1
  308. package/lib/es/slider/index.d.ts +2 -1
  309. package/lib/es/slider/index.js +63 -16
  310. package/lib/es/spin/icon.js +3 -4
  311. package/lib/es/steps/basicStep.d.ts +3 -0
  312. package/lib/es/steps/basicStep.js +23 -23
  313. package/lib/es/steps/basicSteps.d.ts +1 -0
  314. package/lib/es/steps/basicSteps.js +2 -1
  315. package/lib/es/steps/fillStep.d.ts +3 -0
  316. package/lib/es/steps/fillStep.js +19 -4
  317. package/lib/es/steps/fillSteps.d.ts +1 -0
  318. package/lib/es/steps/fillSteps.js +2 -1
  319. package/lib/es/steps/navStep.d.ts +3 -0
  320. package/lib/es/steps/navStep.js +22 -23
  321. package/lib/es/steps/navSteps.d.ts +1 -0
  322. package/lib/es/steps/navSteps.js +2 -1
  323. package/lib/es/switch/index.d.ts +12 -0
  324. package/lib/es/switch/index.js +19 -4
  325. package/lib/es/table/Body/BaseRow.js +35 -3
  326. package/lib/es/table/Body/index.js +9 -2
  327. package/lib/es/table/ColumnFilter.js +4 -0
  328. package/lib/es/table/ColumnSelection.d.ts +3 -0
  329. package/lib/es/table/ColumnSelection.js +6 -2
  330. package/lib/es/table/ColumnSorter.js +17 -3
  331. package/lib/es/table/CustomExpandIcon.js +6 -1
  332. package/lib/es/table/Table.d.ts +2 -0
  333. package/lib/es/table/Table.js +35 -15
  334. package/lib/es/table/TableCell.d.ts +2 -0
  335. package/lib/es/table/TableCell.js +6 -2
  336. package/lib/es/table/TableHeaderRow.js +8 -2
  337. package/lib/es/tabs/TabBar.js +11 -3
  338. package/lib/es/tabs/TabPane.js +3 -1
  339. package/lib/es/tabs/index.js +0 -1
  340. package/lib/es/tagInput/index.d.ts +4 -1
  341. package/lib/es/tagInput/index.js +29 -3
  342. package/lib/es/timePicker/TimePicker.d.ts +14 -0
  343. package/lib/es/timePicker/TimePicker.js +11 -4
  344. package/lib/es/timePicker/index.d.ts +7 -0
  345. package/lib/es/timeline/index.d.ts +1 -1
  346. package/lib/es/timeline/index.js +1 -0
  347. package/lib/es/timeline/item.js +4 -2
  348. package/lib/es/toast/toast.js +2 -0
  349. package/lib/es/tooltip/TriangleArrow.js +1 -0
  350. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  351. package/lib/es/tooltip/index.d.ts +16 -12
  352. package/lib/es/tooltip/index.js +53 -39
  353. package/lib/es/transfer/index.js +32 -14
  354. package/lib/es/tree/index.d.ts +1 -0
  355. package/lib/es/tree/index.js +15 -6
  356. package/lib/es/tree/treeNode.d.ts +12 -4
  357. package/lib/es/tree/treeNode.js +53 -5
  358. package/lib/es/treeSelect/index.d.ts +16 -0
  359. package/lib/es/treeSelect/index.js +57 -10
  360. package/lib/es/typography/base.js +17 -7
  361. package/lib/es/typography/copyable.js +5 -1
  362. package/lib/es/upload/fileCard.js +26 -7
  363. package/lib/es/upload/index.js +19 -4
  364. package/list/index.tsx +5 -5
  365. package/list/item.tsx +0 -1
  366. package/modal/Modal.tsx +2 -0
  367. package/modal/ModalContent.tsx +35 -5
  368. package/navigation/Item.tsx +15 -0
  369. package/navigation/SubNav.tsx +13 -1
  370. package/navigation/index.tsx +1 -1
  371. package/notification/notice.tsx +19 -14
  372. package/package.json +8 -8
  373. package/pagination/index.tsx +9 -5
  374. package/popover/index.tsx +5 -0
  375. package/progress/_story/progress.stories.js +18 -18
  376. package/progress/index.tsx +58 -20
  377. package/radio/radio.tsx +12 -2
  378. package/radio/radioGroup.tsx +29 -3
  379. package/radio/radioInner.tsx +10 -1
  380. package/rating/index.tsx +19 -2
  381. package/rating/item.tsx +6 -0
  382. package/select/__test__/select.test.js +45 -0
  383. package/select/_story/select.stories.js +29 -0
  384. package/select/index.tsx +57 -4
  385. package/select/option.tsx +3 -0
  386. package/sideSheet/SideSheetContent.tsx +6 -4
  387. package/sideSheet/index.tsx +3 -2
  388. package/slider/__test__/slider.test.js +9 -0
  389. package/slider/_story/slider.stories.js +1 -1
  390. package/slider/index.tsx +44 -7
  391. package/spin/icon.tsx +4 -3
  392. package/steps/basicStep.tsx +15 -4
  393. package/steps/basicSteps.tsx +3 -2
  394. package/steps/fillStep.tsx +27 -12
  395. package/steps/fillSteps.tsx +2 -0
  396. package/steps/navStep.tsx +15 -4
  397. package/steps/navSteps.tsx +3 -2
  398. package/switch/_story/switch.stories.js +20 -19
  399. package/switch/_story/switch.stories.tsx +13 -13
  400. package/switch/index.tsx +23 -5
  401. package/table/Body/BaseRow.tsx +25 -1
  402. package/table/Body/index.tsx +7 -2
  403. package/table/ColumnFilter.tsx +7 -1
  404. package/table/ColumnSelection.tsx +4 -1
  405. package/table/ColumnSorter.tsx +18 -1
  406. package/table/CustomExpandIcon.tsx +5 -0
  407. package/table/Table.tsx +30 -14
  408. package/table/TableCell.tsx +11 -1
  409. package/table/TableHeaderRow.tsx +16 -2
  410. package/table/__test__/table.test.js +46 -0
  411. package/table/_story/table.stories.js +2 -0
  412. package/table/_story/v2/FixedColumnsChange/index.jsx +104 -0
  413. package/table/_story/v2/FixedZIndex/index.jsx +87 -0
  414. package/tabs/TabBar.tsx +8 -5
  415. package/tabs/TabPane.tsx +3 -1
  416. package/tabs/index.tsx +0 -1
  417. package/tagInput/__test__/tagInput.test.js +46 -0
  418. package/tagInput/_story/tagInput.stories.js +2 -2
  419. package/tagInput/index.tsx +31 -8
  420. package/timePicker/TimePicker.tsx +17 -2
  421. package/timePicker/__test__/timePicker.test.js +34 -3
  422. package/timePicker/_story/timepicker.stories.js +18 -0
  423. package/timeline/_story/timeline.stories.js +1 -1
  424. package/timeline/index.tsx +2 -2
  425. package/timeline/item.tsx +2 -1
  426. package/toast/toast.tsx +2 -0
  427. package/tooltip/TriangleArrow.tsx +1 -1
  428. package/tooltip/TriangleArrowVertical.tsx +1 -1
  429. package/tooltip/_story/tooltip.stories.js +562 -514
  430. package/tooltip/index.tsx +51 -33
  431. package/transfer/index.tsx +29 -25
  432. package/tree/_story/tree.stories.js +3 -3
  433. package/tree/index.tsx +10 -2
  434. package/tree/treeNode.tsx +54 -11
  435. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  436. package/treeSelect/_story/treeSelect.stories.js +12 -0
  437. package/treeSelect/index.tsx +58 -7
  438. package/typography/base.tsx +7 -1
  439. package/typography/copyable.tsx +10 -1
  440. package/upload/fileCard.tsx +14 -16
  441. package/upload/index.tsx +10 -6
@@ -54,9 +54,10 @@ class Popover extends React.PureComponent {
54
54
  arrowStyle = {},
55
55
  arrowBounding,
56
56
  position,
57
- style
57
+ style,
58
+ trigger
58
59
  } = _a,
59
- attr = __rest(_a, ["children", "prefixCls", "showArrow", "arrowStyle", "arrowBounding", "position", "style"]);
60
+ attr = __rest(_a, ["children", "prefixCls", "showArrow", "arrowStyle", "arrowBounding", "position", "style", "trigger"]);
60
61
 
61
62
  let {
62
63
  spacing
@@ -74,14 +75,17 @@ class Popover extends React.PureComponent {
74
75
  spacing = showArrow ? numbers.SPACING_WITH_ARROW : numbers.SPACING;
75
76
  }
76
77
 
78
+ const role = trigger === 'click' || trigger === 'custom' ? 'dialog' : 'tooltip';
77
79
  return /*#__PURE__*/React.createElement(Tooltip, _Object$assign({}, attr, {
80
+ trigger: trigger,
78
81
  position: position,
79
82
  style: style,
80
83
  content: popContent,
81
84
  prefixCls: prefixCls,
82
85
  spacing: spacing,
83
86
  showArrow: arrow,
84
- arrowBounding: arrowBounding
87
+ arrowBounding: arrowBounding,
88
+ role: role
85
89
  }), children);
86
90
  }
87
91
 
@@ -4,9 +4,13 @@ import '@douyinfe/semi-foundation/lib/es/progress/progress.css';
4
4
  import { Animation } from '@douyinfe/semi-animation';
5
5
  import { Motion } from '../_base/base';
6
6
  export interface ProgressProps {
7
+ 'aria-label'?: string | undefined;
8
+ 'aria-labelledby'?: string | undefined;
9
+ 'aria-valuetext'?: string | undefined;
7
10
  className?: string;
8
11
  direction?: 'horizontal' | 'vertical';
9
12
  format?: (percent: number) => React.ReactNode;
13
+ id?: string;
10
14
  motion?: Motion;
11
15
  orbitStroke?: string;
12
16
  percent?: number;
@@ -24,9 +28,13 @@ export interface ProgressState {
24
28
  }
25
29
  declare class Progress extends Component<ProgressProps, ProgressState> {
26
30
  static propTypes: {
31
+ 'aria-label': PropTypes.Requireable<string>;
32
+ 'aria-labelledby': PropTypes.Requireable<string>;
33
+ 'aria-valuetext': PropTypes.Requireable<string>;
27
34
  className: PropTypes.Requireable<string>;
28
35
  direction: PropTypes.Requireable<string>;
29
36
  format: PropTypes.Requireable<PropTypes.ReactNodeLike>;
37
+ id: PropTypes.Requireable<string>;
30
38
  motion: PropTypes.Requireable<boolean | object>;
31
39
  orbitStroke: PropTypes.Requireable<string>;
32
40
  percent: PropTypes.Requireable<number>;
@@ -95,8 +95,12 @@ class Progress extends Component {
95
95
  stroke,
96
96
  showInfo,
97
97
  percent,
98
- orbitStroke
98
+ orbitStroke,
99
+ id
99
100
  } = this.props;
101
+ const ariaLabel = this.props['aria-label'];
102
+ const ariaLabelledBy = this.props['aria-labelledby'];
103
+ const ariaValueText = this.props['aria-valuetext'];
100
104
  const {
101
105
  percentNumber
102
106
  } = this.state;
@@ -127,13 +131,22 @@ class Progress extends Component {
127
131
 
128
132
  const text = format(percNumber);
129
133
  return /*#__PURE__*/React.createElement("div", {
134
+ id: id,
130
135
  className: classNames.wrapper,
131
- style: style
136
+ style: style,
137
+ role: 'progressbar',
138
+ "aria-valuemin": 0,
139
+ "aria-valuemax": 100,
140
+ "aria-valuenow": percNumber,
141
+ "aria-labelledby": ariaLabelledBy,
142
+ "aria-label": ariaLabel,
143
+ "aria-valuetext": ariaValueText
132
144
  }, /*#__PURE__*/React.createElement("svg", {
133
145
  key: size,
134
146
  className: classNames.svg,
135
147
  height: width,
136
- width: width
148
+ width: width,
149
+ "aria-hidden": true
137
150
  }, /*#__PURE__*/React.createElement("circle", {
138
151
  strokeDashoffset: 0,
139
152
  strokeWidth: strokeWidth,
@@ -143,7 +156,8 @@ class Progress extends Component {
143
156
  stroke: orbitStroke,
144
157
  r: radius,
145
158
  cx: cx,
146
- cy: cy
159
+ cy: cy,
160
+ "aria-hidden": true
147
161
  }), /*#__PURE__*/React.createElement("circle", {
148
162
  className: classNames.circle,
149
163
  strokeDashoffset: strokeDashoffset,
@@ -154,7 +168,8 @@ class Progress extends Component {
154
168
  stroke: stroke,
155
169
  r: radius,
156
170
  cx: cx,
157
- cy: cy
171
+ cy: cy,
172
+ "aria-hidden": true
158
173
  })), showInfo && size !== 'small' ? /*#__PURE__*/React.createElement("span", {
159
174
  className: "".concat(prefixCls, "-circle-text")
160
175
  }, text) : null);
@@ -184,8 +199,12 @@ class Progress extends Component {
184
199
  showInfo,
185
200
  size,
186
201
  percent,
187
- orbitStroke
202
+ orbitStroke,
203
+ id
188
204
  } = this.props;
205
+ const ariaLabel = this.props['aria-label'];
206
+ const ariaLabelledBy = this.props['aria-labelledby'];
207
+ const ariaValueText = this.props['aria-valuetext'];
189
208
  const {
190
209
  percentNumber
191
210
  } = this.state;
@@ -212,16 +231,26 @@ class Progress extends Component {
212
231
 
213
232
  const text = format(percNumber);
214
233
  return /*#__PURE__*/React.createElement("div", {
234
+ id: id,
215
235
  className: progressWrapperCls,
216
- style: style
236
+ style: style,
237
+ role: 'progressbar',
238
+ "aria-valuemin": 0,
239
+ "aria-valuemax": 100,
240
+ "aria-valuenow": perc,
241
+ "aria-labelledby": ariaLabelledBy,
242
+ "aria-label": ariaLabel,
243
+ "aria-valuetext": ariaValueText
217
244
  }, /*#__PURE__*/React.createElement("div", {
218
245
  className: progressTrackCls,
219
246
  style: orbitStroke ? {
220
247
  backgroundColor: orbitStroke
221
- } : {}
248
+ } : {},
249
+ "aria-hidden": true
222
250
  }, /*#__PURE__*/React.createElement("div", {
223
251
  className: innerCls,
224
- style: innerStyle
252
+ style: innerStyle,
253
+ "aria-hidden": true
225
254
  })), showInfo ? /*#__PURE__*/React.createElement("div", {
226
255
  className: "".concat(prefixCls, "-line-text")
227
256
  }, text) : null);
@@ -242,9 +271,13 @@ class Progress extends Component {
242
271
  }
243
272
 
244
273
  Progress.propTypes = {
274
+ 'aria-label': PropTypes.string,
275
+ 'aria-labelledby': PropTypes.string,
276
+ 'aria-valuetext': PropTypes.string,
245
277
  className: PropTypes.string,
246
278
  direction: PropTypes.oneOf(strings.directions),
247
279
  format: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
280
+ id: PropTypes.string,
248
281
  motion: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object]),
249
282
  orbitStroke: PropTypes.string,
250
283
  percent: PropTypes.number,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { RadioAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioFoundation';
3
+ import RadioFoundation, { RadioAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioFoundation';
4
4
  import { RadioChangeEvent } from '@douyinfe/semi-foundation/lib/es/radio/radioInnerFoundation';
5
5
  import { strings } from '@douyinfe/semi-foundation/lib/es/radio/constants';
6
6
  import '@douyinfe/semi-foundation/lib/es/radio/radio.css';
@@ -27,6 +27,7 @@ export declare type RadioProps = {
27
27
  addonStyle?: React.CSSProperties;
28
28
  addonClassName?: string;
29
29
  type?: RadioType;
30
+ 'aria-label'?: React.AriaAttributes['aria-label'];
30
31
  };
31
32
  export interface RadioState {
32
33
  hover?: boolean;
@@ -52,10 +53,14 @@ declare class Radio extends BaseComponent<RadioProps, RadioState> {
52
53
  addonStyle: PropTypes.Requireable<object>;
53
54
  addonClassName: PropTypes.Requireable<string>;
54
55
  type: PropTypes.Requireable<"default" | "button" | "card" | "pureCard">;
56
+ 'aria-label': PropTypes.Requireable<string>;
55
57
  };
56
58
  static defaultProps: Partial<RadioProps>;
57
59
  radioEntity: RadioInner;
58
60
  context: RadioContextValue;
61
+ foundation: RadioFoundation;
62
+ addonId: string;
63
+ extraId: string;
59
64
  constructor(props: RadioProps);
60
65
  get adapter(): RadioAdapter;
61
66
  isInGroup(): {
@@ -8,6 +8,7 @@ import PropTypes from 'prop-types';
8
8
  import cls from 'classnames';
9
9
  import RadioFoundation from '@douyinfe/semi-foundation/lib/es/radio/radioFoundation';
10
10
  import { strings, radioClasses as css } from '@douyinfe/semi-foundation/lib/es/radio/constants';
11
+ import { getUuidShort } from '@douyinfe/semi-foundation/lib/es/utils/uuid';
11
12
  import '@douyinfe/semi-foundation/lib/es/radio/radio.css';
12
13
  import BaseComponent from '../_base/baseComponent';
13
14
  import RadioInner from './radioInner';
@@ -47,6 +48,12 @@ class Radio extends BaseComponent {
47
48
  };
48
49
  this.foundation = new RadioFoundation(this.adapter);
49
50
  this.radioEntity = null;
51
+ this.addonId = getUuidShort({
52
+ prefix: 'addon'
53
+ });
54
+ this.extraId = getUuidShort({
55
+ prefix: 'extra'
56
+ });
50
57
  }
51
58
 
52
59
  get adapter() {
@@ -143,9 +150,11 @@ class Radio extends BaseComponent {
143
150
 
144
151
  const renderContent = () => /*#__PURE__*/React.createElement(React.Fragment, null, children ? /*#__PURE__*/React.createElement("span", {
145
152
  className: addonCls,
146
- style: addonStyle
153
+ style: addonStyle,
154
+ id: this.addonId
147
155
  }, children) : null, extra && !isButtonRadio ? /*#__PURE__*/React.createElement("div", {
148
- className: "".concat(prefix, "-extra")
156
+ className: "".concat(prefix, "-extra"),
157
+ id: this.extraId
149
158
  }, extra) : null);
150
159
 
151
160
  return /*#__PURE__*/React.createElement("label", {
@@ -161,7 +170,9 @@ class Radio extends BaseComponent {
161
170
  onChange: this.onChange,
162
171
  ref: ref => {
163
172
  this.radioEntity = ref;
164
- }
173
+ },
174
+ addonId: children && this.addonId,
175
+ extraId: extra && this.extraId
165
176
  })), isCardRadioGroup ? /*#__PURE__*/React.createElement("div", {
166
177
  className: "".concat(prefix, "-isCardRadioGroup_content")
167
178
  }, renderContent()) : renderContent());
@@ -187,8 +198,8 @@ Radio.propTypes = {
187
198
  extra: PropTypes.node,
188
199
  addonStyle: PropTypes.object,
189
200
  addonClassName: PropTypes.string,
190
- type: PropTypes.oneOf([strings.TYPE_DEFAULT, strings.TYPE_BUTTON, strings.TYPE_CARD, strings.TYPE_PURECARD]) // Button style type
191
-
201
+ type: PropTypes.oneOf([strings.TYPE_DEFAULT, strings.TYPE_BUTTON, strings.TYPE_CARD, strings.TYPE_PURECARD]),
202
+ 'aria-label': PropTypes.string
192
203
  };
193
204
  Radio.defaultProps = {
194
205
  autoFocus: false,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { strings } from '@douyinfe/semi-foundation/lib/es/radio/constants';
4
- import { RadioGroupAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioGroupFoundation';
4
+ import RadioGroupFoundation, { RadioGroupAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioGroupFoundation';
5
5
  import { RadioChangeEvent } from '@douyinfe/semi-foundation/lib/es/radio/radioInnerFoundation';
6
6
  import BaseComponent from '../_base/baseComponent';
7
7
  import { ArrayElement } from '../_base/base';
@@ -30,6 +30,13 @@ export declare type RadioGroupProps = {
30
30
  type?: RadioType;
31
31
  buttonSize?: RadioGroupButtonSize;
32
32
  prefixCls?: string;
33
+ 'aria-label'?: React.AriaAttributes['aria-label'];
34
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
35
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
36
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
37
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
38
+ 'aria-required'?: React.AriaAttributes['aria-required'];
39
+ id?: string;
33
40
  };
34
41
  export interface RadioGroupState {
35
42
  value?: any;
@@ -50,8 +57,16 @@ declare class RadioGroup extends BaseComponent<RadioGroupProps, RadioGroupState>
50
57
  style: PropTypes.Requireable<object>;
51
58
  direction: PropTypes.Requireable<"horizontal" | "vertical">;
52
59
  mode: PropTypes.Requireable<"" | "advanced">;
60
+ 'aria-label': PropTypes.Requireable<string>;
61
+ 'aria-describedby': PropTypes.Requireable<string>;
62
+ 'aria-errormessage': PropTypes.Requireable<string>;
63
+ 'aria-invalid': PropTypes.Requireable<boolean>;
64
+ 'aria-labelledby': PropTypes.Requireable<string>;
65
+ 'aria-required': PropTypes.Requireable<boolean>;
66
+ id: PropTypes.Requireable<string>;
53
67
  };
54
68
  static defaultProps: Partial<RadioGroupProps>;
69
+ foundation: RadioGroupFoundation;
55
70
  constructor(props: RadioGroupProps);
56
71
  componentDidMount(): void;
57
72
  componentDidUpdate(prevProps: RadioGroupProps): void;
@@ -68,7 +68,8 @@ class RadioGroup extends BaseComponent {
68
68
  style,
69
69
  direction,
70
70
  type,
71
- buttonSize
71
+ buttonSize,
72
+ id
72
73
  } = this.props;
73
74
  const isButtonRadio = type === strings.TYPE_BUTTON;
74
75
  const isPureCardRadio = type === strings.TYPE_PURECARD;
@@ -117,7 +118,14 @@ class RadioGroup extends BaseComponent {
117
118
 
118
119
  return /*#__PURE__*/React.createElement("div", {
119
120
  className: prefixClsDisplay,
120
- style: style
121
+ style: style,
122
+ id: id,
123
+ "aria-label": this.props['aria-label'],
124
+ "aria-invalid": this.props['aria-invalid'],
125
+ "aria-errormessage": this.props['aria-errormessage'],
126
+ "aria-labelledby": this.props['aria-labelledby'],
127
+ "aria-describedby": this.props['aria-describedby'],
128
+ "aria-required": this.props['aria-required']
121
129
  }, /*#__PURE__*/React.createElement(Context.Provider, {
122
130
  value: {
123
131
  radioGroup: {
@@ -152,7 +160,14 @@ RadioGroup.propTypes = {
152
160
  className: PropTypes.string,
153
161
  style: PropTypes.object,
154
162
  direction: PropTypes.oneOf(strings.DIRECTION_SET),
155
- mode: PropTypes.oneOf(strings.MODE)
163
+ mode: PropTypes.oneOf(strings.MODE),
164
+ 'aria-label': PropTypes.string,
165
+ 'aria-describedby': PropTypes.string,
166
+ 'aria-errormessage': PropTypes.string,
167
+ 'aria-invalid': PropTypes.bool,
168
+ 'aria-labelledby': PropTypes.string,
169
+ 'aria-required': PropTypes.bool,
170
+ id: PropTypes.string
156
171
  };
157
172
  RadioGroup.defaultProps = {
158
173
  disabled: false,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { RadioChangeEvent, RadioInnerAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioInnerFoundation';
3
+ import RadioInnerFoundation, { RadioChangeEvent, RadioInnerAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioInnerFoundation';
4
4
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
5
5
  export declare type RadioInnerMode = 'advanced' | '';
6
6
  export interface RadioInnerProps extends BaseProps {
@@ -14,6 +14,9 @@ export interface RadioInnerProps extends BaseProps {
14
14
  prefixCls?: string;
15
15
  ref?: React.MutableRefObject<RadioInner> | ((instance: RadioInner) => void);
16
16
  isPureCardRadioGroup?: boolean;
17
+ addonId?: string;
18
+ extraId?: string;
19
+ 'aria-label'?: React.AriaAttributes['aria-label'];
17
20
  }
18
21
  interface RadioInnerState {
19
22
  checked?: boolean;
@@ -26,12 +29,14 @@ declare class RadioInner extends BaseComponent<RadioInnerProps, RadioInnerState>
26
29
  isButtonRadio: PropTypes.Requireable<boolean>;
27
30
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
28
31
  mode: PropTypes.Requireable<string>;
32
+ 'aria-label': PropTypes.Requireable<string>;
29
33
  };
30
34
  static defaultProps: {
31
35
  onChange: (...args: any[]) => void;
32
36
  isButtonRadio: boolean;
33
37
  };
34
38
  inputEntity: HTMLInputElement;
39
+ foundation: RadioInnerFoundation;
35
40
  constructor(props: RadioInnerProps);
36
41
  get adapter(): RadioInnerAdapter;
37
42
  componentDidMount(): void;
@@ -68,7 +68,10 @@ class RadioInner extends BaseComponent {
68
68
  autoFocus,
69
69
  name,
70
70
  isButtonRadio,
71
- isPureCardRadioGroup
71
+ isPureCardRadioGroup,
72
+ addonId,
73
+ extraId,
74
+ 'aria-label': ariaLabel
72
75
  } = this.props;
73
76
  const {
74
77
  checked
@@ -89,12 +92,16 @@ class RadioInner extends BaseComponent {
89
92
  ref: ref => {
90
93
  this.inputEntity = ref;
91
94
  },
95
+ // eslint-disable-next-line jsx-a11y/no-autofocus
92
96
  autoFocus: autoFocus,
93
97
  type: mode === 'advanced' ? 'checkbox' : 'radio',
94
98
  checked: Boolean(checked),
95
99
  disabled: disabled,
96
100
  onChange: this.onChange,
97
- name: name
101
+ name: name,
102
+ "aria-label": ariaLabel,
103
+ "aria-labelledby": addonId,
104
+ "aria-describedby": extraId
98
105
  }), /*#__PURE__*/React.createElement("span", {
99
106
  className: inner
100
107
  }, checked ? /*#__PURE__*/React.createElement(IconRadio, null) : null));
@@ -108,7 +115,8 @@ RadioInner.propTypes = {
108
115
  disabled: PropTypes.bool,
109
116
  isButtonRadio: PropTypes.bool,
110
117
  onChange: PropTypes.func,
111
- mode: PropTypes.oneOf(['advanced', ''])
118
+ mode: PropTypes.oneOf(['advanced', '']),
119
+ 'aria-label': PropTypes.string
112
120
  };
113
121
  RadioInner.defaultProps = {
114
122
  onChange: _noop,
@@ -7,6 +7,12 @@ import RatingFoundation, { RatingAdapter } from '@douyinfe/semi-foundation/lib/e
7
7
  import '@douyinfe/semi-foundation/lib/es/rating/rating.css';
8
8
  export { RatingItemProps } from './item';
9
9
  export interface RatingProps {
10
+ 'aria-describedby'?: string;
11
+ 'aria-errormessage'?: string;
12
+ 'aria-invalid'?: boolean;
13
+ 'aria-label'?: string;
14
+ 'aria-labelledby'?: string;
15
+ 'aria-required'?: boolean;
10
16
  disabled?: boolean;
11
17
  value?: number;
12
18
  defaultValue?: number;
@@ -27,6 +33,7 @@ export interface RatingProps {
27
33
  autoFocus?: boolean;
28
34
  size?: 'small' | 'default' | number;
29
35
  tooltips?: string[];
36
+ id?: string;
30
37
  }
31
38
  export interface RatingState {
32
39
  value: number;
@@ -37,6 +44,12 @@ export interface RatingState {
37
44
  export default class Rating extends BaseComponent<RatingProps, RatingState> {
38
45
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
39
46
  static propTypes: {
47
+ 'aria-describedby': PropTypes.Requireable<string>;
48
+ 'aria-errormessage': PropTypes.Requireable<string>;
49
+ 'aria-invalid': PropTypes.Requireable<boolean>;
50
+ 'aria-label': PropTypes.Requireable<string>;
51
+ 'aria-labelledby': PropTypes.Requireable<string>;
52
+ 'aria-required': PropTypes.Requireable<boolean>;
40
53
  disabled: PropTypes.Requireable<boolean>;
41
54
  value: PropTypes.Requireable<number>;
42
55
  defaultValue: PropTypes.Requireable<number>;
@@ -56,6 +69,7 @@ export default class Rating extends BaseComponent<RatingProps, RatingState> {
56
69
  autoFocus: PropTypes.Requireable<boolean>;
57
70
  size: PropTypes.Requireable<number | "default" | "small">;
58
71
  tooltips: PropTypes.Requireable<string[]>;
72
+ id: PropTypes.Requireable<string>;
59
73
  };
60
74
  static defaultProps: {
61
75
  defaultValue: number;
@@ -190,7 +190,8 @@ export default class Rating extends BaseComponent {
190
190
  character,
191
191
  tabIndex,
192
192
  size,
193
- tooltips
193
+ tooltips,
194
+ id
194
195
  } = this.props;
195
196
  const {
196
197
  value,
@@ -235,6 +236,9 @@ export default class Rating extends BaseComponent {
235
236
  ["".concat(prefixCls, "-disabled")]: disabled
236
237
  }, className);
237
238
  return /*#__PURE__*/React.createElement("ul", {
239
+ "aria-label": this.props['aria-label'],
240
+ "aria-labelledby": this.props['aria-labelledby'],
241
+ "aria-describedby": this.props['aria-describedby'],
238
242
  className: listCls,
239
243
  style: style,
240
244
  onMouseLeave: disabled ? null : this.onMouseLeave,
@@ -243,13 +247,19 @@ export default class Rating extends BaseComponent {
243
247
  onBlur: disabled ? null : this.onBlur,
244
248
  onKeyDown: disabled ? null : this.onKeyDown,
245
249
  ref: this.saveRate,
246
- role: "radiogroup"
250
+ id: id
247
251
  }, itemList);
248
252
  }
249
253
 
250
254
  }
251
255
  Rating.contextType = ConfigContext;
252
256
  Rating.propTypes = {
257
+ 'aria-describedby': PropTypes.string,
258
+ 'aria-errormessage': PropTypes.string,
259
+ 'aria-invalid': PropTypes.bool,
260
+ 'aria-label': PropTypes.string,
261
+ 'aria-labelledby': PropTypes.string,
262
+ 'aria-required': PropTypes.bool,
253
263
  disabled: PropTypes.bool,
254
264
  value: PropTypes.number,
255
265
  defaultValue: PropTypes.number,
@@ -268,7 +278,8 @@ Rating.propTypes = {
268
278
  onKeyDown: PropTypes.func,
269
279
  autoFocus: PropTypes.bool,
270
280
  size: PropTypes.oneOfType([PropTypes.oneOf(strings.SIZE_SET), PropTypes.number]),
271
- tooltips: PropTypes.arrayOf(PropTypes.string)
281
+ tooltips: PropTypes.arrayOf(PropTypes.string),
282
+ id: PropTypes.string
272
283
  };
273
284
  Rating.defaultProps = {
274
285
  defaultValue: 0,
@@ -15,6 +15,7 @@ export interface RatingItemProps {
15
15
  disabled: boolean;
16
16
  count: number;
17
17
  size: number | ArrayElement<typeof strings.SIZE_SET>;
18
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
18
19
  }
19
20
  export default class Item extends PureComponent<RatingItemProps> {
20
21
  static propTypes: {
@@ -29,6 +30,7 @@ export default class Item extends PureComponent<RatingItemProps> {
29
30
  disabled: PropTypes.Requireable<boolean>;
30
31
  count: PropTypes.Requireable<number>;
31
32
  size: PropTypes.Requireable<number | "default" | "small">;
33
+ 'aria-describedby': PropTypes.Requireable<string>;
32
34
  };
33
35
  onHover: React.MouseEventHandler;
34
36
  onClick: React.MouseEventHandler;
@@ -86,6 +86,10 @@ export default class Item extends PureComponent {
86
86
  "aria-checked": value > index ? 'true' : 'false',
87
87
  "aria-posinset": index + 1,
88
88
  "aria-setsize": count,
89
+ "aria-disabled": disabled,
90
+ "aria-label": "Rating ".concat(index + (isHalf ? 0.5 : 1)),
91
+ "aria-labelledby": this.props['aria-describedby'],
92
+ "aria-describedby": this.props['aria-describedby'],
89
93
  tabIndex: 0,
90
94
  className: "".concat(prefixCls, "-wrapper")
91
95
  }, /*#__PURE__*/React.createElement("div", {
@@ -110,5 +114,6 @@ Item.propTypes = {
110
114
  focused: PropTypes.bool,
111
115
  disabled: PropTypes.bool,
112
116
  count: PropTypes.number,
113
- size: PropTypes.oneOfType([PropTypes.oneOf(strings.SIZE_SET), PropTypes.number])
117
+ size: PropTypes.oneOfType([PropTypes.oneOf(strings.SIZE_SET), PropTypes.number]),
118
+ 'aria-describedby': PropTypes.string
114
119
  };
@@ -55,8 +55,14 @@ export declare type RenderMultipleSelectedItemFn = (optionNode: Record<string, a
55
55
  };
56
56
  export declare type RenderSelectedItemFn = RenderSingleSelectedItemFn | RenderMultipleSelectedItemFn;
57
57
  export declare type SelectProps = {
58
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
59
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
60
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
61
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
62
+ 'aria-required'?: React.AriaAttributes['aria-required'];
58
63
  id?: string;
59
64
  autoFocus?: boolean;
65
+ autoClearSearchValue?: boolean;
60
66
  arrowIcon?: React.ReactNode;
61
67
  defaultValue?: string | number | any[] | Record<string, any>;
62
68
  value?: string | number | any[] | Record<string, any>;
@@ -92,6 +98,7 @@ export declare type SelectProps = {
92
98
  suffix?: React.ReactNode;
93
99
  prefix?: React.ReactNode;
94
100
  insetLabel?: React.ReactNode;
101
+ insetLabelId?: string;
95
102
  inputProps?: Subtract<InputProps, ExcludeInputType>;
96
103
  showClear?: boolean;
97
104
  showArrow?: boolean;
@@ -134,7 +141,13 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
134
141
  static Option: typeof Option;
135
142
  static OptGroup: typeof OptionGroup;
136
143
  static propTypes: {
144
+ 'aria-describedby': PropTypes.Requireable<string>;
145
+ 'aria-errormessage': PropTypes.Requireable<string>;
146
+ 'aria-invalid': PropTypes.Requireable<boolean>;
147
+ 'aria-labelledby': PropTypes.Requireable<string>;
148
+ 'aria-required': PropTypes.Requireable<boolean>;
137
149
  autoFocus: PropTypes.Requireable<boolean>;
150
+ autoClearSearchValue: PropTypes.Requireable<boolean>;
138
151
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
139
152
  defaultValue: PropTypes.Requireable<string | number | object>;
140
153
  value: PropTypes.Requireable<string | number | object>;
@@ -175,6 +188,7 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
175
188
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
176
189
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
177
190
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
191
+ insetLabelId: PropTypes.Requireable<string>;
178
192
  showClear: PropTypes.Requireable<boolean>;
179
193
  showArrow: PropTypes.Requireable<boolean>;
180
194
  renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
@@ -223,6 +237,7 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
223
237
  focus(): void;
224
238
  onSelect(option: OptionProps, optionIndex: number, e: any): void;
225
239
  onClear(e: React.MouseEvent): void;
240
+ onClearBtnEnterPress(e: React.KeyboardEvent): void;
226
241
  renderEmpty(): JSX.Element;
227
242
  renderLoading(): JSX.Element;
228
243
  renderOption(option: OptionProps, optionIndex: number, style?: React.CSSProperties): any;
@@ -235,6 +250,7 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
235
250
  renderMultipleSelection(selections: Map<OptionProps['label'], any>, filterable: boolean): JSX.Element;
236
251
  onMouseEnter(e: MouseEvent): void;
237
252
  onMouseLeave(e: MouseEvent): void;
253
+ onKeyPress(e: React.KeyboardEvent): void;
238
254
  handlePopoverVisibleChange(status: any): void;
239
255
  renderSuffix(): JSX.Element;
240
256
  renderPrefix(): JSX.Element;