@douyinfe/semi-ui 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/_base/_story/a11y.jsx +6 -6
  2. package/_base/_story/a11y.scss +0 -1
  3. package/_base/_story/index.scss +2 -5
  4. package/_utils/hooks/usePrevFocus.ts +16 -0
  5. package/_utils/index.ts +4 -0
  6. package/anchor/_story/anchor.stories.js +1 -1
  7. package/anchor/index.tsx +5 -2
  8. package/anchor/link.tsx +29 -4
  9. package/autoComplete/index.tsx +28 -1
  10. package/avatar/_story/avatar.stories.js +4 -4
  11. package/avatar/index.tsx +6 -4
  12. package/banner/index.tsx +2 -1
  13. package/breadcrumb/_story/breadcrumb.stories.js +22 -8
  14. package/breadcrumb/index.tsx +8 -1
  15. package/breadcrumb/item.tsx +1 -1
  16. package/button/Button.tsx +4 -0
  17. package/button/__test__/button.test.js +1 -1
  18. package/button/_story/button.stories.js +10 -10
  19. package/button/buttonGroup.tsx +4 -2
  20. package/button/splitButtonGroup.tsx +5 -2
  21. package/card/_story/card.stories.js +8 -1
  22. package/card/_story/card.stories.tsx +3 -0
  23. package/card/index.tsx +5 -2
  24. package/cascader/index.tsx +33 -5
  25. package/checkbox/_story/checkbox.stories.js +19 -12
  26. package/checkbox/checkbox.tsx +40 -5
  27. package/checkbox/checkboxGroup.tsx +30 -5
  28. package/checkbox/checkboxInner.tsx +25 -2
  29. package/collapse/index.tsx +1 -1
  30. package/collapse/item.tsx +12 -7
  31. package/collapsible/index.tsx +4 -2
  32. package/configProvider/_story/configProvider.stories.tsx +27 -0
  33. package/datePicker/__test__/datePicker.test.js +108 -0
  34. package/datePicker/_story/datePicker.stories.js +146 -2
  35. package/datePicker/datePicker.tsx +24 -0
  36. package/datePicker/monthsGrid.tsx +2 -1
  37. package/dist/css/semi.css +34 -7
  38. package/dist/css/semi.min.css +1 -1
  39. package/dist/umd/semi-ui.js +2768 -1501
  40. package/dist/umd/semi-ui.js.map +1 -1
  41. package/dist/umd/semi-ui.min.js +1 -1
  42. package/dist/umd/semi-ui.min.js.map +1 -1
  43. package/dropdown/dropdownItem.tsx +1 -1
  44. package/dropdown/dropdownMenu.tsx +1 -1
  45. package/empty/index.tsx +4 -4
  46. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  47. package/form/_story/Validate/validateDemo.jsx +1 -1
  48. package/form/_story/demo.jsx +12 -3
  49. package/form/_story/form.stories.js +0 -7
  50. package/form/baseForm.tsx +2 -0
  51. package/form/errorMessage.tsx +13 -2
  52. package/form/hoc/withField.tsx +37 -8
  53. package/form/index.tsx +0 -2
  54. package/form/interface.ts +2 -0
  55. package/form/label.tsx +4 -2
  56. package/input/index.tsx +49 -4
  57. package/input/inputGroup.tsx +9 -4
  58. package/input/textarea.tsx +25 -6
  59. package/inputNumber/_story/inputNumber.stories.js +12 -0
  60. package/inputNumber/index.tsx +33 -2
  61. package/layout/Sider.tsx +6 -2
  62. package/layout/index.tsx +4 -3
  63. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  64. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  65. package/lib/cjs/_utils/index.d.ts +1 -0
  66. package/lib/cjs/_utils/index.js +6 -1
  67. package/lib/cjs/anchor/index.d.ts +2 -0
  68. package/lib/cjs/anchor/index.js +6 -1
  69. package/lib/cjs/anchor/link.d.ts +4 -1
  70. package/lib/cjs/anchor/link.js +39 -5
  71. package/lib/cjs/autoComplete/index.d.ts +17 -0
  72. package/lib/cjs/autoComplete/index.js +21 -2
  73. package/lib/cjs/avatar/index.d.ts +4 -3
  74. package/lib/cjs/avatar/index.js +15 -11
  75. package/lib/cjs/banner/index.js +4 -2
  76. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  77. package/lib/cjs/breadcrumb/index.js +10 -4
  78. package/lib/cjs/breadcrumb/item.js +2 -2
  79. package/lib/cjs/button/Button.d.ts +2 -0
  80. package/lib/cjs/button/Button.js +4 -2
  81. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  82. package/lib/cjs/button/buttonGroup.js +8 -4
  83. package/lib/cjs/button/index.d.ts +1 -0
  84. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  85. package/lib/cjs/button/splitButtonGroup.js +5 -2
  86. package/lib/cjs/card/index.d.ts +3 -0
  87. package/lib/cjs/card/index.js +3 -1
  88. package/lib/cjs/cascader/index.d.ts +14 -0
  89. package/lib/cjs/cascader/index.js +35 -7
  90. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  91. package/lib/cjs/checkbox/checkbox.js +51 -17
  92. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  93. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  94. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  95. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  96. package/lib/cjs/collapse/item.d.ts +2 -1
  97. package/lib/cjs/collapse/item.js +12 -2
  98. package/lib/cjs/collapsible/index.d.ts +1 -0
  99. package/lib/cjs/collapsible/index.js +4 -2
  100. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  101. package/lib/cjs/datePicker/datePicker.js +22 -3
  102. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -0
  103. package/lib/cjs/datePicker/monthsGrid.js +2 -1
  104. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  105. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  106. package/lib/cjs/form/baseForm.d.ts +9 -0
  107. package/lib/cjs/form/baseForm.js +3 -1
  108. package/lib/cjs/form/errorMessage.d.ts +4 -0
  109. package/lib/cjs/form/errorMessage.js +21 -3
  110. package/lib/cjs/form/field.d.ts +7 -0
  111. package/lib/cjs/form/hoc/withField.js +49 -16
  112. package/lib/cjs/form/index.d.ts +0 -1
  113. package/lib/cjs/form/interface.d.ts +2 -0
  114. package/lib/cjs/form/label.d.ts +2 -0
  115. package/lib/cjs/form/label.js +5 -2
  116. package/lib/cjs/input/index.d.ts +16 -0
  117. package/lib/cjs/input/index.js +51 -15
  118. package/lib/cjs/input/inputGroup.d.ts +2 -1
  119. package/lib/cjs/input/inputGroup.js +11 -1
  120. package/lib/cjs/input/textarea.js +12 -1
  121. package/lib/cjs/inputNumber/index.d.ts +21 -12
  122. package/lib/cjs/inputNumber/index.js +37 -3
  123. package/lib/cjs/layout/Sider.d.ts +4 -0
  124. package/lib/cjs/layout/Sider.js +4 -1
  125. package/lib/cjs/layout/index.js +2 -0
  126. package/lib/cjs/list/item.js +0 -1
  127. package/lib/cjs/modal/Modal.js +2 -0
  128. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  129. package/lib/cjs/modal/ModalContent.js +47 -5
  130. package/lib/cjs/navigation/Item.d.ts +4 -2
  131. package/lib/cjs/navigation/Item.js +25 -5
  132. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  133. package/lib/cjs/navigation/SubNav.js +8 -1
  134. package/lib/cjs/navigation/index.js +2 -0
  135. package/lib/cjs/notification/notice.d.ts +1 -1
  136. package/lib/cjs/notification/notice.js +32 -22
  137. package/lib/cjs/pagination/index.js +16 -6
  138. package/lib/cjs/popover/index.js +7 -3
  139. package/lib/cjs/progress/index.d.ts +8 -0
  140. package/lib/cjs/progress/index.js +42 -9
  141. package/lib/cjs/radio/radio.d.ts +6 -1
  142. package/lib/cjs/radio/radio.js +17 -5
  143. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  144. package/lib/cjs/radio/radioGroup.js +18 -3
  145. package/lib/cjs/radio/radioInner.d.ts +6 -1
  146. package/lib/cjs/radio/radioInner.js +11 -3
  147. package/lib/cjs/rating/index.d.ts +14 -0
  148. package/lib/cjs/rating/index.js +14 -3
  149. package/lib/cjs/rating/item.d.ts +2 -0
  150. package/lib/cjs/rating/item.js +6 -1
  151. package/lib/cjs/select/index.d.ts +16 -0
  152. package/lib/cjs/select/index.js +65 -19
  153. package/lib/cjs/select/option.js +28 -22
  154. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  155. package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
  156. package/lib/cjs/sideSheet/index.d.ts +1 -0
  157. package/lib/cjs/sideSheet/index.js +2 -1
  158. package/lib/cjs/slider/index.d.ts +2 -1
  159. package/lib/cjs/slider/index.js +64 -17
  160. package/lib/cjs/spin/icon.js +3 -4
  161. package/lib/cjs/steps/basicStep.d.ts +3 -0
  162. package/lib/cjs/steps/basicStep.js +23 -25
  163. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  164. package/lib/cjs/steps/basicSteps.js +2 -1
  165. package/lib/cjs/steps/fillStep.d.ts +3 -0
  166. package/lib/cjs/steps/fillStep.js +19 -4
  167. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  168. package/lib/cjs/steps/fillSteps.js +2 -1
  169. package/lib/cjs/steps/navStep.d.ts +3 -0
  170. package/lib/cjs/steps/navStep.js +22 -25
  171. package/lib/cjs/steps/navSteps.d.ts +1 -0
  172. package/lib/cjs/steps/navSteps.js +2 -1
  173. package/lib/cjs/switch/index.d.ts +12 -0
  174. package/lib/cjs/switch/index.js +19 -4
  175. package/lib/cjs/table/Body/BaseRow.js +35 -3
  176. package/lib/cjs/table/Body/index.js +9 -1
  177. package/lib/cjs/table/ColumnFilter.js +4 -0
  178. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  179. package/lib/cjs/table/ColumnSelection.js +6 -2
  180. package/lib/cjs/table/ColumnSorter.js +19 -3
  181. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  182. package/lib/cjs/table/Table.d.ts +2 -0
  183. package/lib/cjs/table/Table.js +31 -15
  184. package/lib/cjs/table/TableCell.d.ts +2 -0
  185. package/lib/cjs/table/TableCell.js +6 -2
  186. package/lib/cjs/table/TableHeaderRow.js +8 -2
  187. package/lib/cjs/tabs/TabBar.js +11 -3
  188. package/lib/cjs/tabs/TabPane.js +3 -1
  189. package/lib/cjs/tabs/index.js +0 -1
  190. package/lib/cjs/tagInput/index.d.ts +4 -1
  191. package/lib/cjs/tagInput/index.js +29 -3
  192. package/lib/cjs/timePicker/TimePicker.d.ts +12 -0
  193. package/lib/cjs/timePicker/TimePicker.js +9 -1
  194. package/lib/cjs/timePicker/index.d.ts +6 -0
  195. package/lib/cjs/timeline/index.d.ts +1 -1
  196. package/lib/cjs/timeline/index.js +1 -0
  197. package/lib/cjs/timeline/item.js +4 -2
  198. package/lib/cjs/toast/toast.js +2 -0
  199. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  200. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  201. package/lib/cjs/tooltip/index.d.ts +16 -12
  202. package/lib/cjs/tooltip/index.js +55 -39
  203. package/lib/cjs/transfer/index.d.ts +1 -1
  204. package/lib/cjs/transfer/index.js +35 -17
  205. package/lib/cjs/tree/index.d.ts +1 -0
  206. package/lib/cjs/tree/index.js +15 -6
  207. package/lib/cjs/tree/treeNode.d.ts +12 -4
  208. package/lib/cjs/tree/treeNode.js +44 -4
  209. package/lib/cjs/treeSelect/index.d.ts +16 -0
  210. package/lib/cjs/treeSelect/index.js +60 -12
  211. package/lib/cjs/typography/base.js +18 -7
  212. package/lib/cjs/typography/copyable.js +6 -1
  213. package/lib/cjs/upload/fileCard.js +26 -7
  214. package/lib/cjs/upload/index.js +19 -4
  215. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  216. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  217. package/lib/es/_utils/index.d.ts +1 -0
  218. package/lib/es/_utils/index.js +4 -1
  219. package/lib/es/anchor/index.d.ts +2 -0
  220. package/lib/es/anchor/index.js +6 -1
  221. package/lib/es/anchor/link.d.ts +4 -1
  222. package/lib/es/anchor/link.js +38 -5
  223. package/lib/es/autoComplete/index.d.ts +17 -0
  224. package/lib/es/autoComplete/index.js +21 -2
  225. package/lib/es/avatar/index.d.ts +4 -3
  226. package/lib/es/avatar/index.js +15 -11
  227. package/lib/es/banner/index.js +4 -2
  228. package/lib/es/breadcrumb/index.d.ts +3 -0
  229. package/lib/es/breadcrumb/index.js +10 -4
  230. package/lib/es/breadcrumb/item.js +2 -2
  231. package/lib/es/button/Button.d.ts +2 -0
  232. package/lib/es/button/Button.js +4 -2
  233. package/lib/es/button/buttonGroup.d.ts +3 -0
  234. package/lib/es/button/buttonGroup.js +8 -4
  235. package/lib/es/button/index.d.ts +1 -0
  236. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  237. package/lib/es/button/splitButtonGroup.js +5 -2
  238. package/lib/es/card/index.d.ts +3 -0
  239. package/lib/es/card/index.js +3 -1
  240. package/lib/es/cascader/index.d.ts +14 -0
  241. package/lib/es/cascader/index.js +35 -7
  242. package/lib/es/checkbox/checkbox.d.ts +21 -1
  243. package/lib/es/checkbox/checkbox.js +50 -17
  244. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  245. package/lib/es/checkbox/checkboxGroup.js +18 -5
  246. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  247. package/lib/es/checkbox/checkboxInner.js +20 -3
  248. package/lib/es/collapse/item.d.ts +2 -1
  249. package/lib/es/collapse/item.js +11 -2
  250. package/lib/es/collapsible/index.d.ts +1 -0
  251. package/lib/es/collapsible/index.js +4 -2
  252. package/lib/es/datePicker/datePicker.d.ts +12 -0
  253. package/lib/es/datePicker/datePicker.js +22 -3
  254. package/lib/es/datePicker/monthsGrid.d.ts +1 -0
  255. package/lib/es/datePicker/monthsGrid.js +2 -1
  256. package/lib/es/dropdown/dropdownItem.js +3 -1
  257. package/lib/es/dropdown/dropdownMenu.js +4 -1
  258. package/lib/es/form/baseForm.d.ts +9 -0
  259. package/lib/es/form/baseForm.js +3 -1
  260. package/lib/es/form/errorMessage.d.ts +4 -0
  261. package/lib/es/form/errorMessage.js +21 -3
  262. package/lib/es/form/field.d.ts +7 -0
  263. package/lib/es/form/hoc/withField.js +48 -15
  264. package/lib/es/form/index.d.ts +0 -1
  265. package/lib/es/form/index.js +0 -1
  266. package/lib/es/form/interface.d.ts +2 -0
  267. package/lib/es/form/label.d.ts +2 -0
  268. package/lib/es/form/label.js +5 -2
  269. package/lib/es/input/index.d.ts +16 -0
  270. package/lib/es/input/index.js +51 -15
  271. package/lib/es/input/inputGroup.d.ts +2 -1
  272. package/lib/es/input/inputGroup.js +11 -1
  273. package/lib/es/input/textarea.js +12 -1
  274. package/lib/es/inputNumber/index.d.ts +21 -12
  275. package/lib/es/inputNumber/index.js +38 -3
  276. package/lib/es/layout/Sider.d.ts +4 -0
  277. package/lib/es/layout/Sider.js +4 -1
  278. package/lib/es/layout/index.js +2 -0
  279. package/lib/es/list/item.js +0 -1
  280. package/lib/es/modal/Modal.js +2 -0
  281. package/lib/es/modal/ModalContent.d.ts +3 -1
  282. package/lib/es/modal/ModalContent.js +46 -5
  283. package/lib/es/navigation/Item.d.ts +4 -2
  284. package/lib/es/navigation/Item.js +25 -5
  285. package/lib/es/navigation/SubNav.d.ts +4 -2
  286. package/lib/es/navigation/SubNav.js +8 -1
  287. package/lib/es/navigation/index.js +2 -0
  288. package/lib/es/notification/notice.d.ts +1 -1
  289. package/lib/es/notification/notice.js +33 -24
  290. package/lib/es/pagination/index.js +16 -6
  291. package/lib/es/popover/index.js +7 -3
  292. package/lib/es/progress/index.d.ts +8 -0
  293. package/lib/es/progress/index.js +42 -9
  294. package/lib/es/radio/radio.d.ts +6 -1
  295. package/lib/es/radio/radio.js +16 -5
  296. package/lib/es/radio/radioGroup.d.ts +16 -1
  297. package/lib/es/radio/radioGroup.js +18 -3
  298. package/lib/es/radio/radioInner.d.ts +6 -1
  299. package/lib/es/radio/radioInner.js +11 -3
  300. package/lib/es/rating/index.d.ts +14 -0
  301. package/lib/es/rating/index.js +14 -3
  302. package/lib/es/rating/item.d.ts +2 -0
  303. package/lib/es/rating/item.js +6 -1
  304. package/lib/es/select/index.d.ts +16 -0
  305. package/lib/es/select/index.js +63 -17
  306. package/lib/es/select/option.js +28 -22
  307. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  308. package/lib/es/sideSheet/SideSheetContent.js +4 -1
  309. package/lib/es/sideSheet/index.d.ts +1 -0
  310. package/lib/es/sideSheet/index.js +2 -1
  311. package/lib/es/slider/index.d.ts +2 -1
  312. package/lib/es/slider/index.js +63 -16
  313. package/lib/es/spin/icon.js +3 -4
  314. package/lib/es/steps/basicStep.d.ts +3 -0
  315. package/lib/es/steps/basicStep.js +23 -23
  316. package/lib/es/steps/basicSteps.d.ts +1 -0
  317. package/lib/es/steps/basicSteps.js +2 -1
  318. package/lib/es/steps/fillStep.d.ts +3 -0
  319. package/lib/es/steps/fillStep.js +19 -4
  320. package/lib/es/steps/fillSteps.d.ts +1 -0
  321. package/lib/es/steps/fillSteps.js +2 -1
  322. package/lib/es/steps/navStep.d.ts +3 -0
  323. package/lib/es/steps/navStep.js +22 -23
  324. package/lib/es/steps/navSteps.d.ts +1 -0
  325. package/lib/es/steps/navSteps.js +2 -1
  326. package/lib/es/switch/index.d.ts +12 -0
  327. package/lib/es/switch/index.js +19 -4
  328. package/lib/es/table/Body/BaseRow.js +35 -3
  329. package/lib/es/table/Body/index.js +9 -2
  330. package/lib/es/table/ColumnFilter.js +4 -0
  331. package/lib/es/table/ColumnSelection.d.ts +3 -0
  332. package/lib/es/table/ColumnSelection.js +6 -2
  333. package/lib/es/table/ColumnSorter.js +17 -3
  334. package/lib/es/table/CustomExpandIcon.js +6 -1
  335. package/lib/es/table/Table.d.ts +2 -0
  336. package/lib/es/table/Table.js +31 -15
  337. package/lib/es/table/TableCell.d.ts +2 -0
  338. package/lib/es/table/TableCell.js +6 -2
  339. package/lib/es/table/TableHeaderRow.js +8 -2
  340. package/lib/es/tabs/TabBar.js +11 -3
  341. package/lib/es/tabs/TabPane.js +3 -1
  342. package/lib/es/tabs/index.js +0 -1
  343. package/lib/es/tagInput/index.d.ts +4 -1
  344. package/lib/es/tagInput/index.js +29 -3
  345. package/lib/es/timePicker/TimePicker.d.ts +12 -0
  346. package/lib/es/timePicker/TimePicker.js +9 -1
  347. package/lib/es/timePicker/index.d.ts +6 -0
  348. package/lib/es/timeline/index.d.ts +1 -1
  349. package/lib/es/timeline/index.js +1 -0
  350. package/lib/es/timeline/item.js +4 -2
  351. package/lib/es/toast/toast.js +2 -0
  352. package/lib/es/tooltip/TriangleArrow.js +1 -0
  353. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  354. package/lib/es/tooltip/index.d.ts +16 -12
  355. package/lib/es/tooltip/index.js +53 -39
  356. package/lib/es/transfer/index.d.ts +1 -1
  357. package/lib/es/transfer/index.js +35 -17
  358. package/lib/es/tree/index.d.ts +1 -0
  359. package/lib/es/tree/index.js +15 -6
  360. package/lib/es/tree/treeNode.d.ts +12 -4
  361. package/lib/es/tree/treeNode.js +44 -4
  362. package/lib/es/treeSelect/index.d.ts +16 -0
  363. package/lib/es/treeSelect/index.js +57 -10
  364. package/lib/es/typography/base.js +17 -7
  365. package/lib/es/typography/copyable.js +5 -1
  366. package/lib/es/upload/fileCard.js +26 -7
  367. package/lib/es/upload/index.js +19 -4
  368. package/list/item.tsx +0 -1
  369. package/modal/Modal.tsx +2 -0
  370. package/modal/ModalContent.tsx +35 -5
  371. package/navigation/Item.tsx +15 -0
  372. package/navigation/SubNav.tsx +13 -1
  373. package/navigation/index.tsx +1 -1
  374. package/notification/notice.tsx +19 -14
  375. package/package.json +8 -8
  376. package/pagination/index.tsx +9 -5
  377. package/popover/index.tsx +5 -0
  378. package/progress/_story/progress.stories.js +18 -18
  379. package/progress/index.tsx +58 -20
  380. package/radio/radio.tsx +12 -2
  381. package/radio/radioGroup.tsx +29 -3
  382. package/radio/radioInner.tsx +10 -1
  383. package/rating/index.tsx +19 -2
  384. package/rating/item.tsx +6 -0
  385. package/select/__test__/select.test.js +45 -0
  386. package/select/_story/select.stories.js +29 -0
  387. package/select/index.tsx +52 -4
  388. package/select/option.tsx +3 -0
  389. package/sideSheet/SideSheetContent.tsx +6 -4
  390. package/sideSheet/index.tsx +3 -2
  391. package/slider/__test__/slider.test.js +9 -0
  392. package/slider/_story/slider.stories.js +1 -1
  393. package/slider/index.tsx +44 -7
  394. package/spin/icon.tsx +4 -3
  395. package/steps/basicStep.tsx +15 -4
  396. package/steps/basicSteps.tsx +3 -2
  397. package/steps/fillStep.tsx +27 -12
  398. package/steps/fillSteps.tsx +2 -0
  399. package/steps/navStep.tsx +15 -4
  400. package/steps/navSteps.tsx +3 -2
  401. package/switch/_story/switch.stories.js +20 -19
  402. package/switch/_story/switch.stories.tsx +13 -13
  403. package/switch/index.tsx +23 -5
  404. package/table/Body/BaseRow.tsx +25 -1
  405. package/table/Body/index.tsx +7 -2
  406. package/table/ColumnFilter.tsx +7 -1
  407. package/table/ColumnSelection.tsx +4 -1
  408. package/table/ColumnSorter.tsx +18 -1
  409. package/table/CustomExpandIcon.tsx +5 -0
  410. package/table/Table.tsx +26 -13
  411. package/table/TableCell.tsx +11 -1
  412. package/table/TableHeaderRow.tsx +16 -2
  413. package/table/__test__/table.test.js +46 -0
  414. package/tabs/TabBar.tsx +8 -5
  415. package/tabs/TabPane.tsx +3 -1
  416. package/tabs/index.tsx +0 -1
  417. package/tagInput/__test__/tagInput.test.js +46 -0
  418. package/tagInput/_story/tagInput.stories.js +2 -2
  419. package/tagInput/index.tsx +31 -8
  420. package/timePicker/TimePicker.tsx +14 -1
  421. package/timeline/_story/timeline.stories.js +1 -1
  422. package/timeline/index.tsx +2 -2
  423. package/timeline/item.tsx +2 -1
  424. package/toast/toast.tsx +2 -0
  425. package/tooltip/TriangleArrow.tsx +1 -1
  426. package/tooltip/TriangleArrowVertical.tsx +1 -1
  427. package/tooltip/_story/tooltip.stories.js +562 -514
  428. package/tooltip/index.tsx +51 -33
  429. package/transfer/index.tsx +32 -28
  430. package/tree/_story/tree.stories.js +3 -3
  431. package/tree/index.tsx +10 -2
  432. package/tree/treeNode.tsx +46 -10
  433. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  434. package/treeSelect/_story/treeSelect.stories.js +12 -0
  435. package/treeSelect/index.tsx +58 -7
  436. package/typography/base.tsx +7 -1
  437. package/typography/copyable.tsx +10 -1
  438. package/upload/fileCard.tsx +14 -16
  439. package/upload/index.tsx +10 -6
@@ -26,6 +26,8 @@ var _radioFoundation = _interopRequireDefault(require("@douyinfe/semi-foundation
26
26
 
27
27
  var _constants = require("@douyinfe/semi-foundation/lib/cjs/radio/constants");
28
28
 
29
+ var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
30
+
29
31
  require("@douyinfe/semi-foundation/lib/cjs/radio/radio.css");
30
32
 
31
33
  var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
@@ -69,6 +71,12 @@ class Radio extends _baseComponent.default {
69
71
  };
70
72
  this.foundation = new _radioFoundation.default(this.adapter);
71
73
  this.radioEntity = null;
74
+ this.addonId = (0, _uuid.getUuidShort)({
75
+ prefix: 'addon'
76
+ });
77
+ this.extraId = (0, _uuid.getUuidShort)({
78
+ prefix: 'extra'
79
+ });
72
80
  }
73
81
 
74
82
  get adapter() {
@@ -165,9 +173,11 @@ class Radio extends _baseComponent.default {
165
173
 
166
174
  const renderContent = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children ? /*#__PURE__*/_react.default.createElement("span", {
167
175
  className: addonCls,
168
- style: addonStyle
176
+ style: addonStyle,
177
+ id: this.addonId
169
178
  }, children) : null, extra && !isButtonRadio ? /*#__PURE__*/_react.default.createElement("div", {
170
- className: "".concat(prefix, "-extra")
179
+ className: "".concat(prefix, "-extra"),
180
+ id: this.extraId
171
181
  }, extra) : null);
172
182
 
173
183
  return /*#__PURE__*/_react.default.createElement("label", {
@@ -183,7 +193,9 @@ class Radio extends _baseComponent.default {
183
193
  onChange: this.onChange,
184
194
  ref: ref => {
185
195
  this.radioEntity = ref;
186
- }
196
+ },
197
+ addonId: children && this.addonId,
198
+ extraId: extra && this.extraId
187
199
  })), isCardRadioGroup ? /*#__PURE__*/_react.default.createElement("div", {
188
200
  className: "".concat(prefix, "-isCardRadioGroup_content")
189
201
  }, renderContent()) : renderContent());
@@ -209,8 +221,8 @@ Radio.propTypes = {
209
221
  extra: _propTypes.default.node,
210
222
  addonStyle: _propTypes.default.object,
211
223
  addonClassName: _propTypes.default.string,
212
- type: _propTypes.default.oneOf([_constants.strings.TYPE_DEFAULT, _constants.strings.TYPE_BUTTON, _constants.strings.TYPE_CARD, _constants.strings.TYPE_PURECARD]) // Button style type
213
-
224
+ type: _propTypes.default.oneOf([_constants.strings.TYPE_DEFAULT, _constants.strings.TYPE_BUTTON, _constants.strings.TYPE_CARD, _constants.strings.TYPE_PURECARD]),
225
+ 'aria-label': _propTypes.default.string
214
226
  };
215
227
  Radio.defaultProps = {
216
228
  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/cjs/radio/constants';
4
- import { RadioGroupAdapter } from '@douyinfe/semi-foundation/lib/cjs/radio/radioGroupFoundation';
4
+ import RadioGroupFoundation, { RadioGroupAdapter } from '@douyinfe/semi-foundation/lib/cjs/radio/radioGroupFoundation';
5
5
  import { RadioChangeEvent } from '@douyinfe/semi-foundation/lib/cjs/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;
@@ -91,7 +91,8 @@ class RadioGroup extends _baseComponent.default {
91
91
  style,
92
92
  direction,
93
93
  type,
94
- buttonSize
94
+ buttonSize,
95
+ id
95
96
  } = this.props;
96
97
  const isButtonRadio = type === _constants.strings.TYPE_BUTTON;
97
98
  const isPureCardRadio = type === _constants.strings.TYPE_PURECARD;
@@ -140,7 +141,14 @@ class RadioGroup extends _baseComponent.default {
140
141
 
141
142
  return /*#__PURE__*/_react.default.createElement("div", {
142
143
  className: prefixClsDisplay,
143
- style: style
144
+ style: style,
145
+ id: id,
146
+ "aria-label": this.props['aria-label'],
147
+ "aria-invalid": this.props['aria-invalid'],
148
+ "aria-errormessage": this.props['aria-errormessage'],
149
+ "aria-labelledby": this.props['aria-labelledby'],
150
+ "aria-describedby": this.props['aria-describedby'],
151
+ "aria-required": this.props['aria-required']
144
152
  }, /*#__PURE__*/_react.default.createElement(_context6.default.Provider, {
145
153
  value: {
146
154
  radioGroup: {
@@ -175,7 +183,14 @@ RadioGroup.propTypes = {
175
183
  className: _propTypes.default.string,
176
184
  style: _propTypes.default.object,
177
185
  direction: _propTypes.default.oneOf(_constants.strings.DIRECTION_SET),
178
- mode: _propTypes.default.oneOf(_constants.strings.MODE)
186
+ mode: _propTypes.default.oneOf(_constants.strings.MODE),
187
+ 'aria-label': _propTypes.default.string,
188
+ 'aria-describedby': _propTypes.default.string,
189
+ 'aria-errormessage': _propTypes.default.string,
190
+ 'aria-invalid': _propTypes.default.bool,
191
+ 'aria-labelledby': _propTypes.default.string,
192
+ 'aria-required': _propTypes.default.bool,
193
+ id: _propTypes.default.string
179
194
  };
180
195
  RadioGroup.defaultProps = {
181
196
  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/cjs/radio/radioInnerFoundation';
3
+ import RadioInnerFoundation, { RadioChangeEvent, RadioInnerAdapter } from '@douyinfe/semi-foundation/lib/cjs/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;
@@ -90,7 +90,10 @@ class RadioInner extends _baseComponent.default {
90
90
  autoFocus,
91
91
  name,
92
92
  isButtonRadio,
93
- isPureCardRadioGroup
93
+ isPureCardRadioGroup,
94
+ addonId,
95
+ extraId,
96
+ 'aria-label': ariaLabel
94
97
  } = this.props;
95
98
  const {
96
99
  checked
@@ -111,12 +114,16 @@ class RadioInner extends _baseComponent.default {
111
114
  ref: ref => {
112
115
  this.inputEntity = ref;
113
116
  },
117
+ // eslint-disable-next-line jsx-a11y/no-autofocus
114
118
  autoFocus: autoFocus,
115
119
  type: mode === 'advanced' ? 'checkbox' : 'radio',
116
120
  checked: Boolean(checked),
117
121
  disabled: disabled,
118
122
  onChange: this.onChange,
119
- name: name
123
+ name: name,
124
+ "aria-label": ariaLabel,
125
+ "aria-labelledby": addonId,
126
+ "aria-describedby": extraId
120
127
  }), /*#__PURE__*/_react.default.createElement("span", {
121
128
  className: inner
122
129
  }, checked ? /*#__PURE__*/_react.default.createElement(_semiIcons.IconRadio, null) : null));
@@ -130,7 +137,8 @@ RadioInner.propTypes = {
130
137
  disabled: _propTypes.default.bool,
131
138
  isButtonRadio: _propTypes.default.bool,
132
139
  onChange: _propTypes.default.func,
133
- mode: _propTypes.default.oneOf(['advanced', ''])
140
+ mode: _propTypes.default.oneOf(['advanced', '']),
141
+ 'aria-label': _propTypes.default.string
134
142
  };
135
143
  RadioInner.defaultProps = {
136
144
  onChange: _noop2.default,
@@ -7,6 +7,12 @@ import RatingFoundation, { RatingAdapter } from '@douyinfe/semi-foundation/lib/c
7
7
  import '@douyinfe/semi-foundation/lib/cjs/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;
@@ -218,7 +218,8 @@ class Rating extends _baseComponent.default {
218
218
  character,
219
219
  tabIndex,
220
220
  size,
221
- tooltips
221
+ tooltips,
222
+ id
222
223
  } = this.props;
223
224
  const {
224
225
  value,
@@ -261,6 +262,9 @@ class Rating extends _baseComponent.default {
261
262
  ["".concat(prefixCls, "-disabled")]: disabled
262
263
  }, className);
263
264
  return /*#__PURE__*/_react.default.createElement("ul", {
265
+ "aria-label": this.props['aria-label'],
266
+ "aria-labelledby": this.props['aria-labelledby'],
267
+ "aria-describedby": this.props['aria-describedby'],
264
268
  className: listCls,
265
269
  style: style,
266
270
  onMouseLeave: disabled ? null : this.onMouseLeave,
@@ -269,7 +273,7 @@ class Rating extends _baseComponent.default {
269
273
  onBlur: disabled ? null : this.onBlur,
270
274
  onKeyDown: disabled ? null : this.onKeyDown,
271
275
  ref: this.saveRate,
272
- role: "radiogroup"
276
+ id: id
273
277
  }, itemList);
274
278
  }
275
279
 
@@ -278,6 +282,12 @@ class Rating extends _baseComponent.default {
278
282
  exports.default = Rating;
279
283
  Rating.contextType = _context4.default;
280
284
  Rating.propTypes = {
285
+ 'aria-describedby': _propTypes.default.string,
286
+ 'aria-errormessage': _propTypes.default.string,
287
+ 'aria-invalid': _propTypes.default.bool,
288
+ 'aria-label': _propTypes.default.string,
289
+ 'aria-labelledby': _propTypes.default.string,
290
+ 'aria-required': _propTypes.default.bool,
281
291
  disabled: _propTypes.default.bool,
282
292
  value: _propTypes.default.number,
283
293
  defaultValue: _propTypes.default.number,
@@ -296,7 +306,8 @@ Rating.propTypes = {
296
306
  onKeyDown: _propTypes.default.func,
297
307
  autoFocus: _propTypes.default.bool,
298
308
  size: _propTypes.default.oneOfType([_propTypes.default.oneOf(_constants.strings.SIZE_SET), _propTypes.default.number]),
299
- tooltips: _propTypes.default.arrayOf(_propTypes.default.string)
309
+ tooltips: _propTypes.default.arrayOf(_propTypes.default.string),
310
+ id: _propTypes.default.string
300
311
  };
301
312
  Rating.defaultProps = {
302
313
  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;
@@ -114,6 +114,10 @@ class Item extends _react.PureComponent {
114
114
  "aria-checked": value > index ? 'true' : 'false',
115
115
  "aria-posinset": index + 1,
116
116
  "aria-setsize": count,
117
+ "aria-disabled": disabled,
118
+ "aria-label": "Rating ".concat(index + (isHalf ? 0.5 : 1)),
119
+ "aria-labelledby": this.props['aria-describedby'],
120
+ "aria-describedby": this.props['aria-describedby'],
117
121
  tabIndex: 0,
118
122
  className: "".concat(prefixCls, "-wrapper")
119
123
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -140,5 +144,6 @@ Item.propTypes = {
140
144
  focused: _propTypes.default.bool,
141
145
  disabled: _propTypes.default.bool,
142
146
  count: _propTypes.default.number,
143
- size: _propTypes.default.oneOfType([_propTypes.default.oneOf(_constants.strings.SIZE_SET), _propTypes.default.number])
147
+ size: _propTypes.default.oneOfType([_propTypes.default.oneOf(_constants.strings.SIZE_SET), _propTypes.default.number]),
148
+ 'aria-describedby': _propTypes.default.string
144
149
  };
@@ -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;
@@ -56,7 +56,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
56
56
 
57
57
  var _propTypes = _interopRequireDefault(require("prop-types"));
58
58
 
59
- var _context12 = _interopRequireDefault(require("../configProvider/context"));
59
+ var _context15 = _interopRequireDefault(require("../configProvider/context"));
60
60
 
61
61
  var _foundation = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/select/foundation"));
62
62
 
@@ -110,7 +110,7 @@ const key = 0; // Notes: Use the label of the option as the identifier, that is,
110
110
 
111
111
  class Select extends _baseComponent.default {
112
112
  constructor(props) {
113
- var _context, _context2, _context3, _context4, _context5, _context6;
113
+ var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8;
114
114
 
115
115
  super(props);
116
116
 
@@ -143,6 +143,8 @@ class Select extends _baseComponent.default {
143
143
  this.onMouseEnter = (0, _bind.default)(_context4 = this.onMouseEnter).call(_context4, this);
144
144
  this.onMouseLeave = (0, _bind.default)(_context5 = this.onMouseLeave).call(_context5, this);
145
145
  this.renderOption = (0, _bind.default)(_context6 = this.renderOption).call(_context6, this);
146
+ this.onKeyPress = (0, _bind.default)(_context7 = this.onKeyPress).call(_context7, this);
147
+ this.onClearBtnEnterPress = (0, _bind.default)(_context8 = this.onClearBtnEnterPress).call(_context8, this);
146
148
  this.foundation = new _foundation.default(this.adapter);
147
149
  (0, _warning.default)('optionLabelProp' in this.props, '[Semi Select] \'optionLabelProp\' has already been deprecated, please use \'renderSelectedItem\' instead.');
148
150
  (0, _warning.default)('labelInValue' in this.props, '[Semi Select] \'labelInValue\' has already been deprecated, please use \'onChangeWithObject\' instead.');
@@ -346,10 +348,10 @@ class Select extends _baseComponent.default {
346
348
  } catch (error) {}
347
349
  },
348
350
  updateScrollTop: () => {
349
- var _context7, _context8;
351
+ var _context9, _context10;
350
352
 
351
353
  // eslint-disable-next-line max-len
352
- let destNode = document.querySelector((0, _concat.default)(_context7 = (0, _concat.default)(_context8 = "#".concat(prefixcls, "-")).call(_context8, this.selectOptionListID, " .")).call(_context7, prefixcls, "-option-selected"));
354
+ let destNode = document.querySelector((0, _concat.default)(_context9 = (0, _concat.default)(_context10 = "#".concat(prefixcls, "-")).call(_context10, this.selectOptionListID, " .")).call(_context9, prefixcls, "-option-selected"));
353
355
 
354
356
  if ((0, _isArray.default)(destNode)) {
355
357
  // eslint-disable-next-line prefer-destructuring
@@ -377,10 +379,10 @@ class Select extends _baseComponent.default {
377
379
  }
378
380
 
379
381
  componentDidUpdate(prevProps, prevState) {
380
- var _context9, _context10;
382
+ var _context11, _context12;
381
383
 
382
- const prevChildrenKeys = (0, _map2.default)(_context9 = _react.default.Children.toArray(prevProps.children)).call(_context9, child => child.key);
383
- const nowChildrenKeys = (0, _map2.default)(_context10 = _react.default.Children.toArray(this.props.children)).call(_context10, child => child.key);
384
+ const prevChildrenKeys = (0, _map2.default)(_context11 = _react.default.Children.toArray(prevProps.children)).call(_context11, child => child.key);
385
+ const nowChildrenKeys = (0, _map2.default)(_context12 = _react.default.Children.toArray(this.props.children)).call(_context12, child => child.key);
384
386
  let isOptionsChanged = false;
385
387
 
386
388
  if (!(0, _isEqual2.default)(prevChildrenKeys, nowChildrenKeys) || !(0, _isEqual2.default)(prevProps.optionList, this.props.optionList)) {
@@ -471,6 +473,10 @@ class Select extends _baseComponent.default {
471
473
  this.foundation.handleClearClick(e);
472
474
  }
473
475
 
476
+ onClearBtnEnterPress(e) {
477
+ this.foundation.handleClearBtnEnterPress(e);
478
+ }
479
+
474
480
  renderEmpty() {
475
481
  return /*#__PURE__*/_react.default.createElement(_option.default, {
476
482
  empty: true,
@@ -550,10 +556,16 @@ class Select extends _baseComponent.default {
550
556
  }
551
557
 
552
558
  const customCreateItem = renderCreateItem(option.value, isFocused);
553
- return /*#__PURE__*/_react.default.createElement("div", {
554
- onClick: e => this.onSelect(option, optionIndex, e),
555
- key: new Date().valueOf()
556
- }, customCreateItem);
559
+ return (
560
+ /*#__PURE__*/
561
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/interactive-supports-focus
562
+ _react.default.createElement("div", {
563
+ role: "button",
564
+ "aria-label": "Use the input box to create an optional item",
565
+ onClick: e => this.onSelect(option, optionIndex, e),
566
+ key: new Date().valueOf()
567
+ }, customCreateItem)
568
+ );
557
569
  }
558
570
 
559
571
  onOptionHover(optionIndex) {
@@ -615,7 +627,7 @@ class Select extends _baseComponent.default {
615
627
  }
616
628
 
617
629
  renderOptions(children) {
618
- var _context11;
630
+ var _context13;
619
631
 
620
632
  const {
621
633
  dropdownMinWidth,
@@ -631,7 +643,8 @@ class Select extends _baseComponent.default {
631
643
  outerBottomSlot,
632
644
  innerBottomSlot,
633
645
  loading,
634
- virtualize
646
+ virtualize,
647
+ multiple
635
648
  } = this.props; // Do a filter first, instead of directly judging in forEach, so that the focusIndex can correspond to
636
649
 
637
650
  const visibileOptions = (0, _filter.default)(options).call(options, item => item._show);
@@ -650,7 +663,7 @@ class Select extends _baseComponent.default {
650
663
  });
651
664
  const isEmpty = !options.length || !(0, _some.default)(options).call(options, item => item._show);
652
665
  return /*#__PURE__*/_react.default.createElement("div", {
653
- id: (0, _concat.default)(_context11 = "".concat(prefixcls, "-")).call(_context11, this.selectOptionListID),
666
+ id: (0, _concat.default)(_context13 = "".concat(prefixcls, "-")).call(_context13, this.selectOptionListID),
654
667
  className: dropdownClassName,
655
668
  style: style
656
669
  }, outerTopSlot, /*#__PURE__*/_react.default.createElement("div", {
@@ -659,6 +672,7 @@ class Select extends _baseComponent.default {
659
672
  },
660
673
  className: optionListCls,
661
674
  role: "listbox",
675
+ "aria-multiselectable": multiple,
662
676
  onScroll: e => this.foundation.handleListScroll(e)
663
677
  }, innerTopSlot, !loading ? listContent : this.renderLoading(), isEmpty && !loading ? this.renderEmpty() : null, innerBottomSlot), outerBottomSlot);
664
678
  }
@@ -803,6 +817,10 @@ class Select extends _baseComponent.default {
803
817
  onMouseLeave(e) {
804
818
  this.foundation.handleMouseLeave(e);
805
819
  }
820
+
821
+ onKeyPress(e) {
822
+ this.foundation.handleKeyPress(e);
823
+ }
806
824
  /* Processing logic when popover visible changes */
807
825
 
808
826
 
@@ -856,7 +874,8 @@ class Select extends _baseComponent.default {
856
874
  renderPrefix() {
857
875
  const {
858
876
  prefix,
859
- insetLabel
877
+ insetLabel,
878
+ insetLabelId
860
879
  } = this.props;
861
880
  const labelNode = prefix || insetLabel;
862
881
  const prefixWrapperCls = (0, _classnames.default)({
@@ -866,11 +885,14 @@ class Select extends _baseComponent.default {
866
885
  ["".concat(prefixcls, "-prefix-icon")]: (0, _utils2.isSemiIcon)(labelNode)
867
886
  });
868
887
  return /*#__PURE__*/_react.default.createElement("div", {
869
- className: prefixWrapperCls
888
+ className: prefixWrapperCls,
889
+ id: insetLabelId
870
890
  }, labelNode);
871
891
  }
872
892
 
873
893
  renderSelection() {
894
+ var _context14;
895
+
874
896
  const {
875
897
  disabled,
876
898
  multiple,
@@ -939,13 +961,28 @@ class Select extends _baseComponent.default {
939
961
  }, multiple ? this.renderMultipleSelection(selections, filterable) : this.renderSingleSelection(selections, filterable))), /*#__PURE__*/_react.default.createElement(_react.Fragment, {
940
962
  key: "clearicon"
941
963
  }, showClear ? /*#__PURE__*/_react.default.createElement("div", {
964
+ role: "button",
965
+ "aria-label": "Clear selected value",
966
+ tabIndex: 0,
942
967
  className: (0, _classnames.default)("".concat(prefixcls, "-clear")),
943
- onClick: this.onClear
968
+ onClick: this.onClear,
969
+ onKeyPress: this.onClearBtnEnterPress
944
970
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null)) : arrowContent), /*#__PURE__*/_react.default.createElement(_react.Fragment, {
945
971
  key: "suffix"
946
972
  }, suffix ? this.renderSuffix() : null)];
947
973
  const tabIndex = disabled ? null : 0;
948
974
  return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
975
+ role: "combobox",
976
+ "aria-disabled": disabled,
977
+ "aria-expanded": isOpen,
978
+ "aria-controls": (0, _concat.default)(_context14 = "".concat(prefixcls, "-")).call(_context14, this.selectOptionListID),
979
+ "aria-haspopup": "listbox",
980
+ "aria-label": "select value",
981
+ "aria-invalid": this.props['aria-invalid'],
982
+ "aria-errormessage": this.props['aria-errormessage'],
983
+ "aria-labelledby": this.props['aria-labelledby'],
984
+ "aria-describedby": this.props['aria-describedby'],
985
+ "aria-required": this.props['aria-required'],
949
986
  className: selectionCls,
950
987
  ref: ref => this.triggerRef.current = ref,
951
988
  onClick: e => this.foundation.handleClick(e),
@@ -955,7 +992,8 @@ class Select extends _baseComponent.default {
955
992
  onMouseEnter: this.onMouseEnter,
956
993
  onMouseLeave: this.onMouseLeave,
957
994
  // onFocus={e => this.foundation.handleTriggerFocus(e)}
958
- onBlur: e => this.foundation.handleTriggerBlur(e)
995
+ onBlur: e => this.foundation.handleTriggerBlur(e),
996
+ onKeyPress: this.onKeyPress
959
997
  }, keyboardEventSet), inner);
960
998
  }
961
999
 
@@ -1004,11 +1042,17 @@ class Select extends _baseComponent.default {
1004
1042
 
1005
1043
  }
1006
1044
 
1007
- Select.contextType = _context12.default;
1045
+ Select.contextType = _context15.default;
1008
1046
  Select.Option = _option.default;
1009
1047
  Select.OptGroup = _optionGroup.default;
1010
1048
  Select.propTypes = {
1049
+ 'aria-describedby': _propTypes.default.string,
1050
+ 'aria-errormessage': _propTypes.default.string,
1051
+ 'aria-invalid': _propTypes.default.bool,
1052
+ 'aria-labelledby': _propTypes.default.string,
1053
+ 'aria-required': _propTypes.default.bool,
1011
1054
  autoFocus: _propTypes.default.bool,
1055
+ autoClearSearchValue: _propTypes.default.bool,
1012
1056
  children: _propTypes.default.node,
1013
1057
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.array, _propTypes.default.object]),
1014
1058
  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.array, _propTypes.default.object]),
@@ -1053,6 +1097,7 @@ Select.propTypes = {
1053
1097
  suffix: _propTypes.default.node,
1054
1098
  prefix: _propTypes.default.node,
1055
1099
  insetLabel: _propTypes.default.node,
1100
+ insetLabelId: _propTypes.default.string,
1056
1101
  showClear: _propTypes.default.bool,
1057
1102
  showArrow: _propTypes.default.bool,
1058
1103
  renderSelectedItem: _propTypes.default.func,
@@ -1113,6 +1158,7 @@ Select.defaultProps = {
1113
1158
  showClear: false,
1114
1159
  remote: false,
1115
1160
  autoAdjustOverflow: true,
1161
+ autoClearSearchValue: true,
1116
1162
  arrowIcon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronDown, null) // Radio selection is different from the default renderSelectedItem for multiple selection, so it is not declared here
1117
1163
  // renderSelectedItem: (optionNode) => optionNode.label,
1118
1164
  // The default creator rendering is related to i18, so it is not declared here