@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
@@ -40,7 +40,8 @@ class Label extends _react.PureComponent {
40
40
  align,
41
41
  style,
42
42
  className,
43
- extra
43
+ extra,
44
+ id
44
45
  } = this.props;
45
46
  const labelCls = (0, _classnames.default)(className, {
46
47
  ["".concat(prefixCls, "-field-label")]: true,
@@ -64,7 +65,8 @@ class Label extends _react.PureComponent {
64
65
  return /*#__PURE__*/_react.default.createElement("label", {
65
66
  className: labelCls,
66
67
  htmlFor: name,
67
- style: labelStyle
68
+ style: labelStyle,
69
+ id: id
68
70
  }, extra ? contentWithExtra : textContent);
69
71
  }
70
72
 
@@ -78,6 +80,7 @@ Label.defaultProps = {
78
80
  className: ''
79
81
  };
80
82
  Label.propTypes = {
83
+ id: _propTypes.default.string,
81
84
  children: _propTypes.default.node,
82
85
  required: _propTypes.default.bool,
83
86
  text: _propTypes.default.node,
@@ -9,6 +9,12 @@ export declare type InputSize = 'small' | 'large' | 'default';
9
9
  export declare type InputMode = 'password';
10
10
  export declare type ValidateStatus = "default" | "error" | "warning" | "success";
11
11
  export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'prefix' | 'size' | 'autoFocus' | 'placeholder' | 'onFocus' | 'onBlur'> {
12
+ 'aria-label'?: React.AriaAttributes['aria-label'];
13
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
14
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
15
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
16
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
17
+ 'aria-required'?: React.AriaAttributes['aria-required'];
12
18
  addonBefore?: React.ReactNode;
13
19
  addonAfter?: React.ReactNode;
14
20
  prefix?: React.ReactNode;
@@ -24,6 +30,7 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
24
30
  hideSuffix?: boolean;
25
31
  placeholder?: React.ReactText;
26
32
  insetLabel?: React.ReactNode;
33
+ insetLabelId?: string;
27
34
  size?: InputSize;
28
35
  className?: string;
29
36
  style?: React.CSSProperties;
@@ -54,6 +61,12 @@ export interface InputState {
54
61
  }
55
62
  declare class Input extends BaseComponent<InputProps, InputState> {
56
63
  static propTypes: {
64
+ 'aria-label': PropTypes.Requireable<string>;
65
+ 'aria-labelledby': PropTypes.Requireable<string>;
66
+ 'aria-invalid': PropTypes.Requireable<boolean>;
67
+ 'aria-errormessage': PropTypes.Requireable<string>;
68
+ 'aria-describedby': PropTypes.Requireable<string>;
69
+ 'aria-required': PropTypes.Requireable<boolean>;
57
70
  addonBefore: PropTypes.Requireable<PropTypes.ReactNodeLike>;
58
71
  addonAfter: PropTypes.Requireable<PropTypes.ReactNodeLike>;
59
72
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -82,6 +95,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
82
95
  onKeyPress: PropTypes.Requireable<(...args: any[]) => any>;
83
96
  onEnterPress: PropTypes.Requireable<(...args: any[]) => any>;
84
97
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
98
+ insetLabelId: PropTypes.Requireable<string>;
85
99
  inputStyle: PropTypes.Requireable<object>;
86
100
  getValueLength: PropTypes.Requireable<(...args: any[]) => any>;
87
101
  };
@@ -147,6 +161,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
147
161
  static getDerivedStateFromProps(props: InputProps, state: InputState): Partial<InputState>;
148
162
  componentDidUpdate(prevProps: InputProps): void;
149
163
  handleClear: (e: React.MouseEvent<HTMLInputElement>) => void;
164
+ handleClearEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
150
165
  handleClick: (e: React.MouseEvent<HTMLDivElement>) => void;
151
166
  handleMouseOver: (e: React.MouseEvent<HTMLDivElement>) => void;
152
167
  handleMouseLeave: (e: React.MouseEvent<HTMLDivElement>) => void;
@@ -154,6 +169,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
154
169
  handleClickEye: (e: React.MouseEvent<HTMLInputElement>) => void;
155
170
  handleMouseDown: (e: React.MouseEvent<HTMLInputElement>) => void;
156
171
  handleMouseUp: (e: React.MouseEvent<HTMLInputElement>) => void;
172
+ handleModeEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
157
173
  handleClickPrefixOrSuffix: (e: React.MouseEvent<HTMLInputElement>) => void;
158
174
  handlePreventMouseDown: (e: React.MouseEvent<HTMLInputElement>) => void;
159
175
  renderPrepend(): JSX.Element;
@@ -68,6 +68,10 @@ class Input extends _baseComponent.default {
68
68
  this.foundation.handleClear(e);
69
69
  };
70
70
 
71
+ this.handleClearEnterPress = e => {
72
+ this.foundation.handleClearEnterPress(e);
73
+ };
74
+
71
75
  this.handleClick = e => {
72
76
  this.foundation.handleClick(e);
73
77
  };
@@ -100,6 +104,10 @@ class Input extends _baseComponent.default {
100
104
  this.foundation.handleMouseUp(e);
101
105
  };
102
106
 
107
+ this.handleModeEnterPress = e => {
108
+ this.foundation.handleModeEnterPress(e);
109
+ };
110
+
103
111
  this.handleClickPrefixOrSuffix = e => {
104
112
  this.foundation.handleClickPrefixOrSuffix(e);
105
113
  };
@@ -234,8 +242,12 @@ class Input extends _baseComponent.default {
234
242
 
235
243
  if (allowClear) {
236
244
  return /*#__PURE__*/_react.default.createElement("div", {
245
+ role: "button",
246
+ tabIndex: 0,
247
+ "aria-label": "Clear input value",
237
248
  className: clearCls,
238
- onMouseDown: this.handleClear
249
+ onMouseDown: this.handleClear,
250
+ onKeyPress: this.handleClearEnterPress
239
251
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
240
252
  }
241
253
 
@@ -256,13 +268,18 @@ class Input extends _baseComponent.default {
256
268
  const modeCls = (0, _classnames.default)("".concat(prefixCls, "-modebtn"));
257
269
  const modeIcon = eyeClosed ? /*#__PURE__*/_react.default.createElement(_semiIcons.IconEyeClosedSolid, null) : /*#__PURE__*/_react.default.createElement(_semiIcons.IconEyeOpened, null);
258
270
  const showModeBtn = mode === 'password' && value && !disabled && (isFocus || isHovering);
271
+ const ariaLabel = eyeClosed ? 'Show password' : 'Hidden password';
259
272
 
260
273
  if (showModeBtn) {
261
274
  return /*#__PURE__*/_react.default.createElement("div", {
275
+ role: "button",
276
+ tabIndex: 0,
277
+ "aria-label": ariaLabel,
262
278
  className: modeCls,
263
279
  onClick: this.handleClickEye,
264
280
  onMouseDown: this.handleMouseDown,
265
- onMouseUp: this.handleMouseUp
281
+ onMouseUp: this.handleMouseUp,
282
+ onKeyPress: this.handleModeEnterPress
266
283
  }, modeIcon);
267
284
  }
268
285
 
@@ -272,7 +289,8 @@ class Input extends _baseComponent.default {
272
289
  renderPrefix() {
273
290
  const {
274
291
  prefix,
275
- insetLabel
292
+ insetLabel,
293
+ insetLabelId
276
294
  } = this.props;
277
295
  const labelNode = prefix || insetLabel;
278
296
 
@@ -285,11 +303,13 @@ class Input extends _baseComponent.default {
285
303
  ["".concat(prefixCls, "-inset-label")]: insetLabel,
286
304
  ["".concat(prefixCls, "-prefix-text")]: labelNode && (0, _isString2.default)(labelNode),
287
305
  ["".concat(prefixCls, "-prefix-icon")]: (0, _utils.isSemiIcon)(labelNode)
288
- });
306
+ }); // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
307
+
289
308
  return /*#__PURE__*/_react.default.createElement("div", {
290
309
  className: prefixWrapperCls,
291
310
  onMouseDown: this.handlePreventMouseDown,
292
- onClick: this.handleClickPrefixOrSuffix
311
+ onClick: this.handleClickPrefixOrSuffix,
312
+ id: insetLabelId
293
313
  }, labelNode);
294
314
  }
295
315
 
@@ -321,7 +341,8 @@ class Input extends _baseComponent.default {
321
341
  ["".concat(prefixCls, "-suffix-text")]: suffix && (0, _isString2.default)(suffix),
322
342
  ["".concat(prefixCls, "-suffix-icon")]: (0, _utils.isSemiIcon)(suffix),
323
343
  ["".concat(prefixCls, "-suffix-hidden")]: suffixAllowClear && Boolean(hideSuffix)
324
- });
344
+ }); // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
345
+
325
346
  return /*#__PURE__*/_react.default.createElement("div", {
326
347
  className: suffixWrapperCls,
327
348
  onMouseDown: this.handlePreventMouseDown,
@@ -424,21 +445,35 @@ class Input extends _baseComponent.default {
424
445
  inputProps.minLength = stateMinLength;
425
446
  }
426
447
 
427
- return /*#__PURE__*/_react.default.createElement("div", {
428
- className: wrapperCls,
429
- style: style,
430
- onMouseEnter: e => this.handleMouseOver(e),
431
- onMouseLeave: e => this.handleMouseLeave(e),
432
- onClick: e => this.handleClick(e)
433
- }, this.renderPrepend(), this.renderPrefix(), /*#__PURE__*/_react.default.createElement("input", (0, _assign.default)({}, inputProps, {
434
- ref: ref
435
- })), this.renderClearBtn(), this.renderSuffix(suffixAllowClear), this.renderModeBtn(), this.renderAppend());
448
+ if (validateStatus === 'error') {
449
+ inputProps['aria-invalid'] = "true";
450
+ }
451
+
452
+ return (
453
+ /*#__PURE__*/
454
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
455
+ _react.default.createElement("div", {
456
+ className: wrapperCls,
457
+ style: style,
458
+ onMouseEnter: e => this.handleMouseOver(e),
459
+ onMouseLeave: e => this.handleMouseLeave(e),
460
+ onClick: e => this.handleClick(e)
461
+ }, this.renderPrepend(), this.renderPrefix(), /*#__PURE__*/_react.default.createElement("input", (0, _assign.default)({}, inputProps, {
462
+ ref: ref
463
+ })), this.renderClearBtn(), this.renderSuffix(suffixAllowClear), this.renderModeBtn(), this.renderAppend())
464
+ );
436
465
  }
437
466
 
438
467
  }
439
468
 
440
469
  exports.Input = Input;
441
470
  Input.propTypes = {
471
+ 'aria-label': _propTypes.default.string,
472
+ 'aria-labelledby': _propTypes.default.string,
473
+ 'aria-invalid': _propTypes.default.bool,
474
+ 'aria-errormessage': _propTypes.default.string,
475
+ 'aria-describedby': _propTypes.default.string,
476
+ 'aria-required': _propTypes.default.bool,
442
477
  addonBefore: _propTypes.default.node,
443
478
  addonAfter: _propTypes.default.node,
444
479
  prefix: _propTypes.default.node,
@@ -467,6 +502,7 @@ Input.propTypes = {
467
502
  onKeyPress: _propTypes.default.func,
468
503
  onEnterPress: _propTypes.default.func,
469
504
  insetLabel: _propTypes.default.node,
505
+ insetLabelId: _propTypes.default.string,
470
506
  inputStyle: _propTypes.default.object,
471
507
  getValueLength: _propTypes.default.func
472
508
  };
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import BaseComponent from '../_base/baseComponent';
4
+ import { LabelProps } from '../form/label';
4
5
  import { noop } from '@douyinfe/semi-foundation/lib/cjs/utils/function';
5
6
  export declare type InputSize = 'small' | 'large' | 'default';
6
7
  export interface InputGroupProps {
@@ -10,7 +11,7 @@ export interface InputGroupProps {
10
11
  style?: Record<string, any>;
11
12
  onBlur?: (e: React.FocusEvent<HTMLSpanElement>) => void;
12
13
  onFocus?: (e: React.FocusEvent<HTMLSpanElement>) => void;
13
- label?: Record<string, any>;
14
+ label?: LabelProps;
14
15
  labelPosition?: string;
15
16
  disabled?: boolean;
16
17
  }
@@ -77,9 +77,16 @@ class inputGroup extends _baseComponent.default {
77
77
  [(0, _concat.default)(_context = "".concat(prefixCls, "-")).call(_context, size)]: size !== 'default'
78
78
  }); // const labelCls = cls(label.className, '');
79
79
 
80
+ const defaultName = 'input-group';
80
81
  return /*#__PURE__*/_react.default.createElement("div", {
82
+ role: "group",
83
+ "aria-label": "Input group",
84
+ "aria-disabled": this.props.disabled,
81
85
  className: groupWrapperCls
82
- }, label && label.text ? /*#__PURE__*/_react.default.createElement(_label.default, (0, _assign.default)({}, label)) : null, /*#__PURE__*/_react.default.createElement("span", {
86
+ }, label && label.text ? /*#__PURE__*/_react.default.createElement(_label.default, (0, _assign.default)({
87
+ name: defaultName
88
+ }, label)) : null, /*#__PURE__*/_react.default.createElement("span", {
89
+ id: label && label.name || defaultName,
83
90
  className: groupCls,
84
91
  style: this.props.style,
85
92
  onFocus: this.props.onFocus,
@@ -135,6 +142,9 @@ class inputGroup extends _baseComponent.default {
135
142
  }
136
143
 
137
144
  return /*#__PURE__*/_react.default.createElement("span", {
145
+ role: "group",
146
+ "aria-label": "Input group",
147
+ "aria-disabled": this.props.disabled,
138
148
  className: groupCls,
139
149
  style: style,
140
150
  onFocus: this.props.onFocus,
@@ -63,6 +63,10 @@ class TextArea extends _baseComponent.default {
63
63
  this.foundation.handleClear(e);
64
64
  };
65
65
 
66
+ this.handleClearEnterPress = e => {
67
+ this.foundation.handleClearEnterPress(e);
68
+ };
69
+
66
70
  this.setRef = node => {
67
71
  this.libRef.current = node;
68
72
  const {
@@ -188,8 +192,12 @@ class TextArea extends _baseComponent.default {
188
192
 
189
193
  if (showClear) {
190
194
  return /*#__PURE__*/_react.default.createElement("div", {
195
+ role: "button",
196
+ tabIndex: 0,
197
+ "aria-label": "Clear textarea value",
191
198
  className: clearCls,
192
- onClick: this.handleClear
199
+ onClick: this.handleClear,
200
+ onKeyPress: this.handleClearEnterPress
193
201
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
194
202
  }
195
203
 
@@ -215,6 +223,9 @@ class TextArea extends _baseComponent.default {
215
223
  ["".concat(prefixCls, "-textarea-counter-exceed")]: current > total
216
224
  });
217
225
  counter = /*#__PURE__*/_react.default.createElement("div", {
226
+ "aria-label": "Textarea value length counter",
227
+ "aria-valuemax": maxCount,
228
+ "aria-valuenow": current,
218
229
  className: countCls
219
230
  }, current, total ? '/' : null, total);
220
231
  } else {
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { InputProps } from '../input';
4
- import { InputNumberAdapter } from '@douyinfe/semi-foundation/lib/cjs/inputNumber/foundation';
4
+ import InputNumberFoundation, { InputNumberAdapter } from '@douyinfe/semi-foundation/lib/cjs/inputNumber/foundation';
5
5
  import BaseComponent from '../_base/baseComponent';
6
6
  import { strings } from '@douyinfe/semi-foundation/lib/cjs/inputNumber/constants';
7
7
  import '@douyinfe/semi-foundation/lib/cjs/inputNumber/inputNumber.css';
@@ -16,6 +16,7 @@ export interface InputNumberProps extends InputProps {
16
16
  hideButtons?: boolean;
17
17
  innerButtons?: boolean;
18
18
  insetLabel?: React.ReactNode;
19
+ insetLabelId?: string;
19
20
  keepFocus?: boolean;
20
21
  max?: number;
21
22
  min?: number;
@@ -47,6 +48,12 @@ export interface InputNumberState {
47
48
  }
48
49
  declare class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
49
50
  static propTypes: {
51
+ 'aria-label': PropTypes.Requireable<string>;
52
+ 'aria-labelledby': PropTypes.Requireable<string>;
53
+ 'aria-invalid': PropTypes.Requireable<boolean>;
54
+ 'aria-errormessage': PropTypes.Requireable<string>;
55
+ 'aria-describedby': PropTypes.Requireable<string>;
56
+ 'aria-required': PropTypes.Requireable<boolean>;
50
57
  autofocus: PropTypes.Requireable<boolean>;
51
58
  className: PropTypes.Requireable<string>;
52
59
  defaultValue: PropTypes.Requireable<string | number>;
@@ -56,6 +63,7 @@ declare class InputNumber extends BaseComponent<InputNumberProps, InputNumberSta
56
63
  hideButtons: PropTypes.Requireable<boolean>;
57
64
  innerButtons: PropTypes.Requireable<boolean>;
58
65
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
66
+ insetLabelId: PropTypes.Requireable<string>;
59
67
  keepFocus: PropTypes.Requireable<boolean>;
60
68
  max: PropTypes.Requireable<number>;
61
69
  min: PropTypes.Requireable<number>;
@@ -85,20 +93,21 @@ declare class InputNumber extends BaseComponent<InputNumberProps, InputNumberSta
85
93
  currentValue: number | string;
86
94
  cursorBefore: string;
87
95
  cursorAfter: string;
96
+ foundation: InputNumberFoundation;
88
97
  constructor(props: InputNumberProps);
89
98
  componentDidUpdate(prevProps: InputNumberProps): void;
90
99
  setInputRef: (node: HTMLInputElement) => void;
91
- handleInputFocus: (e: React.FocusEvent<HTMLInputElement>) => any;
92
- handleInputChange: (value: string, event: React.ChangeEvent<HTMLInputElement>) => any;
93
- handleInputBlur: (e: React.FocusEvent<HTMLInputElement>) => any;
94
- handleInputKeyDown: (e: React.KeyboardEvent) => any;
95
- handleInputMouseEnter: (e: React.MouseEvent) => any;
96
- handleInputMouseLeave: (e: React.MouseEvent) => any;
97
- handleInputMouseMove: (e: React.MouseEvent) => any;
98
- handleUpClick: (e: React.KeyboardEvent) => any;
99
- handleDownClick: (e: React.KeyboardEvent) => any;
100
- handleMouseUp: (e: React.MouseEvent) => any;
101
- handleMouseLeave: (e: React.MouseEvent) => any;
100
+ handleInputFocus: (e: React.FocusEvent<HTMLInputElement>) => void;
101
+ handleInputChange: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
102
+ handleInputBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
103
+ handleInputKeyDown: (e: React.KeyboardEvent) => void;
104
+ handleInputMouseEnter: (e: React.MouseEvent) => void;
105
+ handleInputMouseLeave: (e: React.MouseEvent) => void;
106
+ handleInputMouseMove: (e: React.MouseEvent) => void;
107
+ handleUpClick: (e: React.KeyboardEvent) => void;
108
+ handleDownClick: (e: React.KeyboardEvent) => void;
109
+ handleMouseUp: (e: React.MouseEvent) => void;
110
+ handleMouseLeave: (e: React.MouseEvent) => void;
102
111
  renderButtons: () => JSX.Element;
103
112
  renderSuffix: () => React.ReactNode;
104
113
  render(): JSX.Element;
@@ -140,6 +140,8 @@ class InputNumber extends _baseComponent.default {
140
140
  return /*#__PURE__*/_react.default.createElement("div", {
141
141
  className: suffixChildrenCls
142
142
  }, /*#__PURE__*/_react.default.createElement("span", {
143
+ role: "button",
144
+ tabIndex: -1,
143
145
  className: upClassName,
144
146
  onMouseDown: notAllowedUp ? _noop2.default : this.handleUpClick,
145
147
  onMouseUp: this.handleMouseUp,
@@ -147,6 +149,8 @@ class InputNumber extends _baseComponent.default {
147
149
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronUp, {
148
150
  size: "extra-small"
149
151
  })), /*#__PURE__*/_react.default.createElement("span", {
152
+ role: "button",
153
+ tabIndex: -1,
150
154
  className: downClassName,
151
155
  onMouseDown: notAllowedDown ? _noop2.default : this.handleDownClick,
152
156
  onMouseUp: this.handleMouseUp,
@@ -363,7 +367,11 @@ class InputNumber extends _baseComponent.default {
363
367
  if (this.foundation.isValidNumber(parsedNum) && parsedNum !== this.state.number) {
364
368
  const obj = {
365
369
  number: parsedNum
366
- }; // Updates input when a button is clicked
370
+ };
371
+ /**
372
+ * If you are clicking the button, it will automatically format once
373
+ * We need to set the status to false after trigger focus event
374
+ */
367
375
 
368
376
  if (this.clickUpOrDown) {
369
377
  obj.value = this.foundation.doFormat(valueStr, true);
@@ -438,12 +446,29 @@ class InputNumber extends _baseComponent.default {
438
446
  rest = __rest(_a, ["disabled", "className", "prefixCls", "min", "max", "step", "shiftStep", "precision", "formatter", "parser", "forwardedRef", "onUpClick", "onDownClick", "pressInterval", "pressTimeout", "suffix", "size", "hideButtons", "innerButtons", "style", "onNumberChange", "keepFocus"]);
439
447
 
440
448
  const {
441
- value
449
+ value,
450
+ number
442
451
  } = this.state;
443
452
  const inputNumberCls = (0, _classnames.default)(className, "".concat(prefixCls, "-number"), {
444
453
  [(0, _concat.default)(_context = "".concat(prefixCls, "-number-size-")).call(_context, size)]: size
445
454
  });
446
455
  const buttons = this.renderButtons();
456
+ const ariaProps = {
457
+ 'aria-disabled': disabled,
458
+ step
459
+ };
460
+
461
+ if (number) {
462
+ ariaProps['aria-valuenow'] = number;
463
+ }
464
+
465
+ if (max !== Infinity) {
466
+ ariaProps['aria-valuemax'] = max;
467
+ }
468
+
469
+ if (min !== -Infinity) {
470
+ ariaProps['aria-valuemin'] = min;
471
+ }
447
472
 
448
473
  const input = /*#__PURE__*/_react.default.createElement("div", {
449
474
  className: inputNumberCls,
@@ -451,7 +476,9 @@ class InputNumber extends _baseComponent.default {
451
476
  onMouseMove: e => this.handleInputMouseMove(e),
452
477
  onMouseEnter: e => this.handleInputMouseEnter(e),
453
478
  onMouseLeave: e => this.handleInputMouseLeave(e)
454
- }, /*#__PURE__*/_react.default.createElement(_input.default, (0, _assign.default)({}, rest, {
479
+ }, /*#__PURE__*/_react.default.createElement(_input.default, (0, _assign.default)({
480
+ role: "spinbutton"
481
+ }, ariaProps, rest, {
455
482
  size: size,
456
483
  disabled: disabled,
457
484
  ref: this.setInputRef,
@@ -470,6 +497,12 @@ class InputNumber extends _baseComponent.default {
470
497
 
471
498
  exports.InputNumber = InputNumber;
472
499
  InputNumber.propTypes = {
500
+ 'aria-label': _propTypes.default.string,
501
+ 'aria-labelledby': _propTypes.default.string,
502
+ 'aria-invalid': _propTypes.default.bool,
503
+ 'aria-errormessage': _propTypes.default.string,
504
+ 'aria-describedby': _propTypes.default.string,
505
+ 'aria-required': _propTypes.default.bool,
473
506
  autofocus: _propTypes.default.bool,
474
507
  className: _propTypes.default.string,
475
508
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
@@ -479,6 +512,7 @@ InputNumber.propTypes = {
479
512
  hideButtons: _propTypes.default.bool,
480
513
  innerButtons: _propTypes.default.bool,
481
514
  insetLabel: _propTypes.default.node,
515
+ insetLabelId: _propTypes.default.string,
482
516
  keepFocus: _propTypes.default.bool,
483
517
  max: _propTypes.default.number,
484
518
  min: _propTypes.default.number,
@@ -14,6 +14,8 @@ export interface SiderProps {
14
14
  className?: string;
15
15
  breakpoint?: Array<keyof ResponsiveMap>;
16
16
  onBreakpoint?: (screen: keyof ResponsiveMap, match: boolean) => void;
17
+ 'aria-label'?: React.AriaAttributes['aria-label'];
18
+ 'role'?: React.AriaRole;
17
19
  }
18
20
  declare class Sider extends React.PureComponent<SiderProps> {
19
21
  static propTypes: {
@@ -22,6 +24,8 @@ declare class Sider extends React.PureComponent<SiderProps> {
22
24
  className: PropTypes.Requireable<string>;
23
25
  breakpoint: PropTypes.Requireable<string[]>;
24
26
  onBreakpoint: PropTypes.Requireable<(...args: any[]) => any>;
27
+ 'aria-label': PropTypes.Requireable<string>;
28
+ role: PropTypes.Requireable<string>;
25
29
  };
26
30
  static defaultProps: {
27
31
  prefixCls: string;
@@ -137,6 +137,7 @@ class Sider extends _react.default.PureComponent {
137
137
  });
138
138
  return /*#__PURE__*/_react.default.createElement("aside", (0, _assign.default)({
139
139
  className: classString,
140
+ "aria-label": this.props['aria-label'],
140
141
  style: style
141
142
  }, (0, _getDataAttr.default)(others)), /*#__PURE__*/_react.default.createElement("div", {
142
143
  className: "".concat(prefixCls, "-sider-children")
@@ -150,7 +151,9 @@ Sider.propTypes = {
150
151
  style: _propTypes.default.object,
151
152
  className: _propTypes.default.string,
152
153
  breakpoint: _propTypes.default.arrayOf(_propTypes.default.oneOf(bpt)),
153
- onBreakpoint: _propTypes.default.func
154
+ onBreakpoint: _propTypes.default.func,
155
+ 'aria-label': _propTypes.default.string,
156
+ role: _propTypes.default.string
154
157
  };
155
158
  Sider.defaultProps = {
156
159
  prefixCls: _constants.cssClasses.PREFIX
@@ -58,6 +58,8 @@ function generator(type) {
58
58
  return BasicComponent => class Adapter extends _react.default.PureComponent {
59
59
  render() {
60
60
  return /*#__PURE__*/_react.default.createElement(BasicComponent, (0, _assign.default)({
61
+ role: this.props.role,
62
+ "aria-label": this.props['aria-label'],
61
63
  type: typeName,
62
64
  tagName: tagName
63
65
  }, this.props));
@@ -110,7 +110,6 @@ class ListItem extends _react.PureComponent {
110
110
  }
111
111
 
112
112
  let content = /*#__PURE__*/_react.default.createElement("li", {
113
- role: "list-item",
114
113
  className: itemCls,
115
114
  style: style,
116
115
  onClick: handleClick,
@@ -114,6 +114,7 @@ class Modal extends _baseComponent.default {
114
114
  return null;
115
115
  } else {
116
116
  return /*#__PURE__*/_react.default.createElement(_button.default, (0, _assign.default)({
117
+ "aria-label": "cancel",
117
118
  onClick: this.handleCancel,
118
119
  loading: cancelLoading,
119
120
  type: "tertiary"
@@ -124,6 +125,7 @@ class Modal extends _baseComponent.default {
124
125
  return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
125
126
  componentName: "Modal"
126
127
  }, (locale, localeCode) => /*#__PURE__*/_react.default.createElement("div", null, getCancelButton(locale), /*#__PURE__*/_react.default.createElement(_button.default, (0, _assign.default)({
128
+ "aria-label": "confirm",
127
129
  type: okType,
128
130
  theme: "solid",
129
131
  loading: confirmLoading,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import BaseComponent from '../_base/baseComponent';
4
- import { ModalContentAdapter, ModalContentProps, ModalContentState } from '@douyinfe/semi-foundation/lib/cjs/modal/modalContentFoundation';
4
+ import ModalContentFoundation, { ModalContentAdapter, ModalContentProps, ModalContentState } from '@douyinfe/semi-foundation/lib/cjs/modal/modalContentFoundation';
5
5
  export default class ModalContent extends BaseComponent<ModalContentProps, ModalContentState> {
6
6
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
7
7
  static propTypes: {
@@ -19,6 +19,8 @@ export default class ModalContent extends BaseComponent<ModalContentProps, Modal
19
19
  };
20
20
  dialogId: string;
21
21
  private timeoutId;
22
+ modalDialogRef: React.MutableRefObject<HTMLDivElement>;
23
+ foundation: ModalContentFoundation;
22
24
  constructor(props: ModalContentProps);
23
25
  get adapter(): ModalContentAdapter;
24
26
  componentDidMount(): void;