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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/_base/_story/a11y.jsx +6 -6
  2. package/_base/_story/a11y.scss +0 -1
  3. package/_base/_story/index.scss +2 -5
  4. package/_utils/hooks/usePrevFocus.ts +16 -0
  5. package/_utils/index.ts +4 -0
  6. package/anchor/_story/anchor.stories.js +1 -1
  7. package/anchor/index.tsx +5 -2
  8. package/anchor/link.tsx +29 -4
  9. package/autoComplete/index.tsx +28 -1
  10. package/avatar/_story/avatar.stories.js +4 -4
  11. package/avatar/index.tsx +6 -4
  12. package/banner/index.tsx +2 -1
  13. package/breadcrumb/_story/breadcrumb.stories.js +22 -8
  14. package/breadcrumb/index.tsx +8 -1
  15. package/breadcrumb/item.tsx +1 -1
  16. package/button/Button.tsx +4 -0
  17. package/button/__test__/button.test.js +1 -1
  18. package/button/_story/button.stories.js +10 -10
  19. package/button/buttonGroup.tsx +4 -2
  20. package/button/splitButtonGroup.tsx +5 -2
  21. package/card/_story/card.stories.js +8 -1
  22. package/card/_story/card.stories.tsx +3 -0
  23. package/card/index.tsx +5 -2
  24. package/cascader/index.tsx +33 -5
  25. package/checkbox/_story/checkbox.stories.js +19 -12
  26. package/checkbox/checkbox.tsx +40 -5
  27. package/checkbox/checkboxGroup.tsx +30 -5
  28. package/checkbox/checkboxInner.tsx +25 -2
  29. package/collapse/index.tsx +1 -1
  30. package/collapse/item.tsx +12 -7
  31. package/collapsible/index.tsx +4 -2
  32. package/configProvider/_story/configProvider.stories.tsx +27 -0
  33. package/datePicker/datePicker.tsx +19 -0
  34. package/dist/css/semi.css +23 -12
  35. package/dist/css/semi.min.css +1 -1
  36. package/dist/umd/semi-ui.js +2502 -1249
  37. package/dist/umd/semi-ui.js.map +1 -1
  38. package/dist/umd/semi-ui.min.js +1 -1
  39. package/dist/umd/semi-ui.min.js.map +1 -1
  40. package/dropdown/dropdownItem.tsx +1 -1
  41. package/dropdown/dropdownMenu.tsx +1 -1
  42. package/dropdown/index.tsx +11 -3
  43. package/empty/index.tsx +4 -4
  44. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  45. package/form/_story/Validate/validateDemo.jsx +1 -1
  46. package/form/_story/demo.jsx +12 -3
  47. package/form/_story/form.stories.js +0 -7
  48. package/form/baseForm.tsx +2 -0
  49. package/form/errorMessage.tsx +13 -2
  50. package/form/hoc/withField.tsx +37 -8
  51. package/form/index.tsx +0 -2
  52. package/form/interface.ts +2 -0
  53. package/form/label.tsx +4 -2
  54. package/input/index.tsx +49 -4
  55. package/input/inputGroup.tsx +9 -4
  56. package/input/textarea.tsx +30 -9
  57. package/inputNumber/__test__/inputNumber.test.js +36 -8
  58. package/inputNumber/index.tsx +30 -2
  59. package/layout/Sider.tsx +6 -2
  60. package/layout/index.tsx +4 -3
  61. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  62. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  63. package/lib/cjs/_utils/index.d.ts +1 -0
  64. package/lib/cjs/_utils/index.js +6 -1
  65. package/lib/cjs/anchor/index.d.ts +2 -0
  66. package/lib/cjs/anchor/index.js +6 -1
  67. package/lib/cjs/anchor/link.d.ts +4 -1
  68. package/lib/cjs/anchor/link.js +39 -5
  69. package/lib/cjs/autoComplete/index.d.ts +17 -0
  70. package/lib/cjs/autoComplete/index.js +21 -2
  71. package/lib/cjs/avatar/index.d.ts +4 -3
  72. package/lib/cjs/avatar/index.js +15 -11
  73. package/lib/cjs/banner/index.js +4 -2
  74. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  75. package/lib/cjs/breadcrumb/index.js +10 -4
  76. package/lib/cjs/breadcrumb/item.js +2 -2
  77. package/lib/cjs/button/Button.d.ts +2 -0
  78. package/lib/cjs/button/Button.js +4 -2
  79. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  80. package/lib/cjs/button/buttonGroup.js +8 -4
  81. package/lib/cjs/button/index.d.ts +1 -0
  82. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  83. package/lib/cjs/button/splitButtonGroup.js +5 -2
  84. package/lib/cjs/card/index.d.ts +3 -0
  85. package/lib/cjs/card/index.js +3 -1
  86. package/lib/cjs/cascader/index.d.ts +14 -0
  87. package/lib/cjs/cascader/index.js +35 -7
  88. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  89. package/lib/cjs/checkbox/checkbox.js +51 -17
  90. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  91. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  92. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  93. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  94. package/lib/cjs/collapse/item.d.ts +2 -1
  95. package/lib/cjs/collapse/item.js +12 -2
  96. package/lib/cjs/collapsible/index.d.ts +1 -0
  97. package/lib/cjs/collapsible/index.js +4 -2
  98. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  99. package/lib/cjs/datePicker/datePicker.js +14 -1
  100. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  101. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  102. package/lib/cjs/dropdown/index.d.ts +10 -3
  103. package/lib/cjs/form/baseForm.d.ts +9 -0
  104. package/lib/cjs/form/baseForm.js +3 -1
  105. package/lib/cjs/form/errorMessage.d.ts +4 -0
  106. package/lib/cjs/form/errorMessage.js +21 -3
  107. package/lib/cjs/form/field.d.ts +7 -0
  108. package/lib/cjs/form/hoc/withField.js +49 -16
  109. package/lib/cjs/form/index.d.ts +0 -1
  110. package/lib/cjs/form/interface.d.ts +2 -0
  111. package/lib/cjs/form/label.d.ts +2 -0
  112. package/lib/cjs/form/label.js +5 -2
  113. package/lib/cjs/input/index.d.ts +16 -0
  114. package/lib/cjs/input/index.js +51 -15
  115. package/lib/cjs/input/inputGroup.d.ts +2 -1
  116. package/lib/cjs/input/inputGroup.js +11 -1
  117. package/lib/cjs/input/textarea.js +16 -3
  118. package/lib/cjs/inputNumber/index.d.ts +8 -0
  119. package/lib/cjs/inputNumber/index.js +35 -4
  120. package/lib/cjs/layout/Sider.d.ts +4 -0
  121. package/lib/cjs/layout/Sider.js +4 -1
  122. package/lib/cjs/layout/index.js +2 -0
  123. package/lib/cjs/list/index.d.ts +4 -4
  124. package/lib/cjs/list/item.js +0 -1
  125. package/lib/cjs/modal/Modal.js +2 -0
  126. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  127. package/lib/cjs/modal/ModalContent.js +47 -5
  128. package/lib/cjs/navigation/Item.d.ts +4 -2
  129. package/lib/cjs/navigation/Item.js +25 -5
  130. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  131. package/lib/cjs/navigation/SubNav.js +8 -1
  132. package/lib/cjs/navigation/index.js +2 -0
  133. package/lib/cjs/notification/notice.d.ts +1 -1
  134. package/lib/cjs/notification/notice.js +32 -22
  135. package/lib/cjs/pagination/index.js +16 -6
  136. package/lib/cjs/popover/index.js +7 -3
  137. package/lib/cjs/progress/index.d.ts +8 -0
  138. package/lib/cjs/progress/index.js +42 -9
  139. package/lib/cjs/radio/radio.d.ts +6 -1
  140. package/lib/cjs/radio/radio.js +17 -5
  141. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  142. package/lib/cjs/radio/radioGroup.js +18 -3
  143. package/lib/cjs/radio/radioInner.d.ts +6 -1
  144. package/lib/cjs/radio/radioInner.js +11 -3
  145. package/lib/cjs/rating/index.d.ts +14 -0
  146. package/lib/cjs/rating/index.js +14 -3
  147. package/lib/cjs/rating/item.d.ts +2 -0
  148. package/lib/cjs/rating/item.js +6 -1
  149. package/lib/cjs/select/index.d.ts +16 -0
  150. package/lib/cjs/select/index.js +65 -19
  151. package/lib/cjs/select/option.js +28 -22
  152. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  153. package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
  154. package/lib/cjs/sideSheet/index.d.ts +1 -0
  155. package/lib/cjs/sideSheet/index.js +2 -1
  156. package/lib/cjs/slider/index.d.ts +2 -1
  157. package/lib/cjs/slider/index.js +64 -17
  158. package/lib/cjs/spin/icon.js +3 -4
  159. package/lib/cjs/steps/basicStep.d.ts +3 -0
  160. package/lib/cjs/steps/basicStep.js +23 -25
  161. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  162. package/lib/cjs/steps/basicSteps.js +2 -1
  163. package/lib/cjs/steps/fillStep.d.ts +3 -0
  164. package/lib/cjs/steps/fillStep.js +19 -4
  165. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  166. package/lib/cjs/steps/fillSteps.js +2 -1
  167. package/lib/cjs/steps/navStep.d.ts +3 -0
  168. package/lib/cjs/steps/navStep.js +22 -25
  169. package/lib/cjs/steps/navSteps.d.ts +1 -0
  170. package/lib/cjs/steps/navSteps.js +2 -1
  171. package/lib/cjs/switch/index.d.ts +12 -0
  172. package/lib/cjs/switch/index.js +19 -4
  173. package/lib/cjs/table/Body/BaseRow.js +35 -3
  174. package/lib/cjs/table/Body/index.js +9 -1
  175. package/lib/cjs/table/ColumnFilter.js +4 -0
  176. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  177. package/lib/cjs/table/ColumnSelection.js +6 -2
  178. package/lib/cjs/table/ColumnSorter.js +19 -3
  179. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  180. package/lib/cjs/table/Table.d.ts +2 -0
  181. package/lib/cjs/table/Table.js +35 -15
  182. package/lib/cjs/table/TableCell.d.ts +2 -0
  183. package/lib/cjs/table/TableCell.js +6 -2
  184. package/lib/cjs/table/TableHeaderRow.js +8 -2
  185. package/lib/cjs/tabs/TabBar.js +11 -3
  186. package/lib/cjs/tabs/TabPane.js +3 -1
  187. package/lib/cjs/tabs/index.js +0 -1
  188. package/lib/cjs/tagInput/index.d.ts +4 -1
  189. package/lib/cjs/tagInput/index.js +29 -3
  190. package/lib/cjs/timePicker/TimePicker.d.ts +14 -0
  191. package/lib/cjs/timePicker/TimePicker.js +11 -4
  192. package/lib/cjs/timePicker/index.d.ts +7 -0
  193. package/lib/cjs/timeline/index.d.ts +1 -1
  194. package/lib/cjs/timeline/index.js +1 -0
  195. package/lib/cjs/timeline/item.js +4 -2
  196. package/lib/cjs/toast/toast.js +2 -0
  197. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  198. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  199. package/lib/cjs/tooltip/index.d.ts +16 -12
  200. package/lib/cjs/tooltip/index.js +55 -39
  201. package/lib/cjs/transfer/index.js +32 -14
  202. package/lib/cjs/tree/index.d.ts +1 -0
  203. package/lib/cjs/tree/index.js +15 -6
  204. package/lib/cjs/tree/treeNode.d.ts +12 -4
  205. package/lib/cjs/tree/treeNode.js +54 -5
  206. package/lib/cjs/treeSelect/index.d.ts +16 -0
  207. package/lib/cjs/treeSelect/index.js +60 -12
  208. package/lib/cjs/typography/base.js +18 -7
  209. package/lib/cjs/typography/copyable.js +6 -1
  210. package/lib/cjs/upload/fileCard.js +26 -7
  211. package/lib/cjs/upload/index.js +19 -4
  212. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  213. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  214. package/lib/es/_utils/index.d.ts +1 -0
  215. package/lib/es/_utils/index.js +4 -1
  216. package/lib/es/anchor/index.d.ts +2 -0
  217. package/lib/es/anchor/index.js +6 -1
  218. package/lib/es/anchor/link.d.ts +4 -1
  219. package/lib/es/anchor/link.js +38 -5
  220. package/lib/es/autoComplete/index.d.ts +17 -0
  221. package/lib/es/autoComplete/index.js +21 -2
  222. package/lib/es/avatar/index.d.ts +4 -3
  223. package/lib/es/avatar/index.js +15 -11
  224. package/lib/es/banner/index.js +4 -2
  225. package/lib/es/breadcrumb/index.d.ts +3 -0
  226. package/lib/es/breadcrumb/index.js +10 -4
  227. package/lib/es/breadcrumb/item.js +2 -2
  228. package/lib/es/button/Button.d.ts +2 -0
  229. package/lib/es/button/Button.js +4 -2
  230. package/lib/es/button/buttonGroup.d.ts +3 -0
  231. package/lib/es/button/buttonGroup.js +8 -4
  232. package/lib/es/button/index.d.ts +1 -0
  233. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  234. package/lib/es/button/splitButtonGroup.js +5 -2
  235. package/lib/es/card/index.d.ts +3 -0
  236. package/lib/es/card/index.js +3 -1
  237. package/lib/es/cascader/index.d.ts +14 -0
  238. package/lib/es/cascader/index.js +35 -7
  239. package/lib/es/checkbox/checkbox.d.ts +21 -1
  240. package/lib/es/checkbox/checkbox.js +50 -17
  241. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  242. package/lib/es/checkbox/checkboxGroup.js +18 -5
  243. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  244. package/lib/es/checkbox/checkboxInner.js +20 -3
  245. package/lib/es/collapse/item.d.ts +2 -1
  246. package/lib/es/collapse/item.js +11 -2
  247. package/lib/es/collapsible/index.d.ts +1 -0
  248. package/lib/es/collapsible/index.js +4 -2
  249. package/lib/es/datePicker/datePicker.d.ts +12 -0
  250. package/lib/es/datePicker/datePicker.js +14 -1
  251. package/lib/es/dropdown/dropdownItem.js +3 -1
  252. package/lib/es/dropdown/dropdownMenu.js +4 -1
  253. package/lib/es/dropdown/index.d.ts +10 -3
  254. package/lib/es/form/baseForm.d.ts +9 -0
  255. package/lib/es/form/baseForm.js +3 -1
  256. package/lib/es/form/errorMessage.d.ts +4 -0
  257. package/lib/es/form/errorMessage.js +21 -3
  258. package/lib/es/form/field.d.ts +7 -0
  259. package/lib/es/form/hoc/withField.js +48 -15
  260. package/lib/es/form/index.d.ts +0 -1
  261. package/lib/es/form/index.js +0 -1
  262. package/lib/es/form/interface.d.ts +2 -0
  263. package/lib/es/form/label.d.ts +2 -0
  264. package/lib/es/form/label.js +5 -2
  265. package/lib/es/input/index.d.ts +16 -0
  266. package/lib/es/input/index.js +51 -15
  267. package/lib/es/input/inputGroup.d.ts +2 -1
  268. package/lib/es/input/inputGroup.js +11 -1
  269. package/lib/es/input/textarea.js +16 -3
  270. package/lib/es/inputNumber/index.d.ts +8 -0
  271. package/lib/es/inputNumber/index.js +36 -4
  272. package/lib/es/layout/Sider.d.ts +4 -0
  273. package/lib/es/layout/Sider.js +4 -1
  274. package/lib/es/layout/index.js +2 -0
  275. package/lib/es/list/index.d.ts +4 -4
  276. package/lib/es/list/item.js +0 -1
  277. package/lib/es/modal/Modal.js +2 -0
  278. package/lib/es/modal/ModalContent.d.ts +3 -1
  279. package/lib/es/modal/ModalContent.js +46 -5
  280. package/lib/es/navigation/Item.d.ts +4 -2
  281. package/lib/es/navigation/Item.js +25 -5
  282. package/lib/es/navigation/SubNav.d.ts +4 -2
  283. package/lib/es/navigation/SubNav.js +8 -1
  284. package/lib/es/navigation/index.js +2 -0
  285. package/lib/es/notification/notice.d.ts +1 -1
  286. package/lib/es/notification/notice.js +33 -24
  287. package/lib/es/pagination/index.js +16 -6
  288. package/lib/es/popover/index.js +7 -3
  289. package/lib/es/progress/index.d.ts +8 -0
  290. package/lib/es/progress/index.js +42 -9
  291. package/lib/es/radio/radio.d.ts +6 -1
  292. package/lib/es/radio/radio.js +16 -5
  293. package/lib/es/radio/radioGroup.d.ts +16 -1
  294. package/lib/es/radio/radioGroup.js +18 -3
  295. package/lib/es/radio/radioInner.d.ts +6 -1
  296. package/lib/es/radio/radioInner.js +11 -3
  297. package/lib/es/rating/index.d.ts +14 -0
  298. package/lib/es/rating/index.js +14 -3
  299. package/lib/es/rating/item.d.ts +2 -0
  300. package/lib/es/rating/item.js +6 -1
  301. package/lib/es/select/index.d.ts +16 -0
  302. package/lib/es/select/index.js +63 -17
  303. package/lib/es/select/option.js +28 -22
  304. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  305. package/lib/es/sideSheet/SideSheetContent.js +4 -1
  306. package/lib/es/sideSheet/index.d.ts +1 -0
  307. package/lib/es/sideSheet/index.js +2 -1
  308. package/lib/es/slider/index.d.ts +2 -1
  309. package/lib/es/slider/index.js +63 -16
  310. package/lib/es/spin/icon.js +3 -4
  311. package/lib/es/steps/basicStep.d.ts +3 -0
  312. package/lib/es/steps/basicStep.js +23 -23
  313. package/lib/es/steps/basicSteps.d.ts +1 -0
  314. package/lib/es/steps/basicSteps.js +2 -1
  315. package/lib/es/steps/fillStep.d.ts +3 -0
  316. package/lib/es/steps/fillStep.js +19 -4
  317. package/lib/es/steps/fillSteps.d.ts +1 -0
  318. package/lib/es/steps/fillSteps.js +2 -1
  319. package/lib/es/steps/navStep.d.ts +3 -0
  320. package/lib/es/steps/navStep.js +22 -23
  321. package/lib/es/steps/navSteps.d.ts +1 -0
  322. package/lib/es/steps/navSteps.js +2 -1
  323. package/lib/es/switch/index.d.ts +12 -0
  324. package/lib/es/switch/index.js +19 -4
  325. package/lib/es/table/Body/BaseRow.js +35 -3
  326. package/lib/es/table/Body/index.js +9 -2
  327. package/lib/es/table/ColumnFilter.js +4 -0
  328. package/lib/es/table/ColumnSelection.d.ts +3 -0
  329. package/lib/es/table/ColumnSelection.js +6 -2
  330. package/lib/es/table/ColumnSorter.js +17 -3
  331. package/lib/es/table/CustomExpandIcon.js +6 -1
  332. package/lib/es/table/Table.d.ts +2 -0
  333. package/lib/es/table/Table.js +35 -15
  334. package/lib/es/table/TableCell.d.ts +2 -0
  335. package/lib/es/table/TableCell.js +6 -2
  336. package/lib/es/table/TableHeaderRow.js +8 -2
  337. package/lib/es/tabs/TabBar.js +11 -3
  338. package/lib/es/tabs/TabPane.js +3 -1
  339. package/lib/es/tabs/index.js +0 -1
  340. package/lib/es/tagInput/index.d.ts +4 -1
  341. package/lib/es/tagInput/index.js +29 -3
  342. package/lib/es/timePicker/TimePicker.d.ts +14 -0
  343. package/lib/es/timePicker/TimePicker.js +11 -4
  344. package/lib/es/timePicker/index.d.ts +7 -0
  345. package/lib/es/timeline/index.d.ts +1 -1
  346. package/lib/es/timeline/index.js +1 -0
  347. package/lib/es/timeline/item.js +4 -2
  348. package/lib/es/toast/toast.js +2 -0
  349. package/lib/es/tooltip/TriangleArrow.js +1 -0
  350. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  351. package/lib/es/tooltip/index.d.ts +16 -12
  352. package/lib/es/tooltip/index.js +53 -39
  353. package/lib/es/transfer/index.js +32 -14
  354. package/lib/es/tree/index.d.ts +1 -0
  355. package/lib/es/tree/index.js +15 -6
  356. package/lib/es/tree/treeNode.d.ts +12 -4
  357. package/lib/es/tree/treeNode.js +53 -5
  358. package/lib/es/treeSelect/index.d.ts +16 -0
  359. package/lib/es/treeSelect/index.js +57 -10
  360. package/lib/es/typography/base.js +17 -7
  361. package/lib/es/typography/copyable.js +5 -1
  362. package/lib/es/upload/fileCard.js +26 -7
  363. package/lib/es/upload/index.js +19 -4
  364. package/list/index.tsx +5 -5
  365. package/list/item.tsx +0 -1
  366. package/modal/Modal.tsx +2 -0
  367. package/modal/ModalContent.tsx +35 -5
  368. package/navigation/Item.tsx +15 -0
  369. package/navigation/SubNav.tsx +13 -1
  370. package/navigation/index.tsx +1 -1
  371. package/notification/notice.tsx +19 -14
  372. package/package.json +8 -8
  373. package/pagination/index.tsx +9 -5
  374. package/popover/index.tsx +5 -0
  375. package/progress/_story/progress.stories.js +18 -18
  376. package/progress/index.tsx +58 -20
  377. package/radio/radio.tsx +12 -2
  378. package/radio/radioGroup.tsx +29 -3
  379. package/radio/radioInner.tsx +10 -1
  380. package/rating/index.tsx +19 -2
  381. package/rating/item.tsx +6 -0
  382. package/select/__test__/select.test.js +45 -0
  383. package/select/_story/select.stories.js +29 -0
  384. package/select/index.tsx +57 -4
  385. package/select/option.tsx +3 -0
  386. package/sideSheet/SideSheetContent.tsx +6 -4
  387. package/sideSheet/index.tsx +3 -2
  388. package/slider/__test__/slider.test.js +9 -0
  389. package/slider/_story/slider.stories.js +1 -1
  390. package/slider/index.tsx +44 -7
  391. package/spin/icon.tsx +4 -3
  392. package/steps/basicStep.tsx +15 -4
  393. package/steps/basicSteps.tsx +3 -2
  394. package/steps/fillStep.tsx +27 -12
  395. package/steps/fillSteps.tsx +2 -0
  396. package/steps/navStep.tsx +15 -4
  397. package/steps/navSteps.tsx +3 -2
  398. package/switch/_story/switch.stories.js +20 -19
  399. package/switch/_story/switch.stories.tsx +13 -13
  400. package/switch/index.tsx +23 -5
  401. package/table/Body/BaseRow.tsx +25 -1
  402. package/table/Body/index.tsx +7 -2
  403. package/table/ColumnFilter.tsx +7 -1
  404. package/table/ColumnSelection.tsx +4 -1
  405. package/table/ColumnSorter.tsx +18 -1
  406. package/table/CustomExpandIcon.tsx +5 -0
  407. package/table/Table.tsx +30 -14
  408. package/table/TableCell.tsx +11 -1
  409. package/table/TableHeaderRow.tsx +16 -2
  410. package/table/__test__/table.test.js +46 -0
  411. package/table/_story/table.stories.js +2 -0
  412. package/table/_story/v2/FixedColumnsChange/index.jsx +104 -0
  413. package/table/_story/v2/FixedZIndex/index.jsx +87 -0
  414. package/tabs/TabBar.tsx +8 -5
  415. package/tabs/TabPane.tsx +3 -1
  416. package/tabs/index.tsx +0 -1
  417. package/tagInput/__test__/tagInput.test.js +46 -0
  418. package/tagInput/_story/tagInput.stories.js +2 -2
  419. package/tagInput/index.tsx +31 -8
  420. package/timePicker/TimePicker.tsx +17 -2
  421. package/timePicker/__test__/timePicker.test.js +34 -3
  422. package/timePicker/_story/timepicker.stories.js +18 -0
  423. package/timeline/_story/timeline.stories.js +1 -1
  424. package/timeline/index.tsx +2 -2
  425. package/timeline/item.tsx +2 -1
  426. package/toast/toast.tsx +2 -0
  427. package/tooltip/TriangleArrow.tsx +1 -1
  428. package/tooltip/TriangleArrowVertical.tsx +1 -1
  429. package/tooltip/_story/tooltip.stories.js +562 -514
  430. package/tooltip/index.tsx +51 -33
  431. package/transfer/index.tsx +29 -25
  432. package/tree/_story/tree.stories.js +3 -3
  433. package/tree/index.tsx +10 -2
  434. package/tree/treeNode.tsx +54 -11
  435. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  436. package/treeSelect/_story/treeSelect.stories.js +12 -0
  437. package/treeSelect/index.tsx +58 -7
  438. package/typography/base.tsx +7 -1
  439. package/typography/copyable.tsx +10 -1
  440. package/upload/fileCard.tsx +14 -16
  441. package/upload/index.tsx +10 -6
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classnames from 'classnames';
5
5
  import { checkboxGroupClasses as css, strings } from '@douyinfe/semi-foundation/checkbox/constants';
6
- import CheckboxGroupFoudation, { CheckboxGroupAdapter } from '@douyinfe/semi-foundation/checkbox/checkboxGroupFoundation';
6
+ import CheckboxGroupFoundation, { CheckboxGroupAdapter } from '@douyinfe/semi-foundation/checkbox/checkboxGroupFoundation';
7
7
  import BaseComponent from '../_base/baseComponent';
8
8
  import { Context } from './context';
9
9
  import { isEqual } from 'lodash';
@@ -13,6 +13,11 @@ export type CheckboxDirection = 'horizontal' | 'vertical';
13
13
  export type CheckboxType = 'default' | 'card' | 'pureCard';
14
14
 
15
15
  export type CheckboxGroupProps = {
16
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
17
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
18
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
19
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
20
+ 'aria-required'?: React.AriaAttributes['aria-required'];
16
21
  defaultValue?: any[];
17
22
  disabled?: boolean;
18
23
  name?: string;
@@ -26,6 +31,7 @@ export type CheckboxGroupProps = {
26
31
  className?: string;
27
32
  type?: CheckboxType;
28
33
  id?: string;
34
+ 'aria-label'?: React.AriaAttributes['aria-label'];
29
35
  };
30
36
 
31
37
  export type CheckboxGroupState = {
@@ -34,6 +40,11 @@ export type CheckboxGroupState = {
34
40
  class CheckboxGroup extends BaseComponent<CheckboxGroupProps, CheckboxGroupState> {
35
41
 
36
42
  static propTypes = {
43
+ 'aria-describedby': PropTypes.string,
44
+ 'aria-errormessage': PropTypes.string,
45
+ 'aria-invalid': PropTypes.bool,
46
+ 'aria-labelledby': PropTypes.string,
47
+ 'aria-required': PropTypes.bool,
37
48
  defaultValue: PropTypes.array,
38
49
  disabled: PropTypes.bool,
39
50
  name: PropTypes.string,
@@ -69,12 +80,13 @@ class CheckboxGroup extends BaseComponent<CheckboxGroupProps, CheckboxGroupState
69
80
  };
70
81
  }
71
82
 
83
+ foundation: CheckboxGroupFoundation;
72
84
  constructor(props: CheckboxGroupProps) {
73
85
  super(props);
74
86
  this.state = {
75
87
  value: props.value || props.defaultValue,
76
88
  };
77
- this.foundation = new CheckboxGroupFoudation(this.adapter);
89
+ this.foundation = new CheckboxGroupFoundation(this.adapter);
78
90
  this.onChange = this.onChange.bind(this);
79
91
  }
80
92
 
@@ -97,7 +109,7 @@ class CheckboxGroup extends BaseComponent<CheckboxGroupProps, CheckboxGroupState
97
109
  }
98
110
 
99
111
  render() {
100
- const { children, options, prefixCls, direction, className, id, style, type } = this.props;
112
+ const { children, options, prefixCls, direction, className, id, style, type, disabled } = this.props;
101
113
 
102
114
  const isPureCardType = type === strings.TYPE_PURECARD;
103
115
  const isCardType = type === strings.TYPE_CARD || isPureCardType;
@@ -119,6 +131,7 @@ class CheckboxGroup extends BaseComponent<CheckboxGroupProps, CheckboxGroupState
119
131
  if (typeof option === 'string') {
120
132
  return (
121
133
  <Checkbox
134
+ role="listitem"
122
135
  key={index}
123
136
  disabled={this.props.disabled}
124
137
  value={option}
@@ -130,6 +143,7 @@ class CheckboxGroup extends BaseComponent<CheckboxGroupProps, CheckboxGroupState
130
143
  } else {
131
144
  return (
132
145
  <Checkbox
146
+ role="listitem"
133
147
  key={index}
134
148
  disabled={option.disabled || this.props.disabled}
135
149
  value={option.value}
@@ -145,11 +159,22 @@ class CheckboxGroup extends BaseComponent<CheckboxGroupProps, CheckboxGroupState
145
159
  }
146
160
  });
147
161
  } else if (children) {
148
- inner = (React.Children.toArray(children) as React.ReactElement[]).map((itm, index) => React.cloneElement(itm, { key: index }));
162
+ inner = (React.Children.toArray(children) as React.ReactElement[]).map((itm, index) => React.cloneElement(itm, { key: index, role: 'listitem' }));
149
163
  }
150
164
 
151
165
  return (
152
- <div className={prefixClsDisplay} style={style} id={id}>
166
+ <div
167
+ id={id}
168
+ role="list"
169
+ aria-label={this.props['aria-label']}
170
+ className={prefixClsDisplay}
171
+ style={style}
172
+ aria-labelledby={this.props['aria-labelledby']}
173
+ aria-describedby={this.props['aria-describedby']}
174
+ // aria-errormessage={this.props['aria-errormessage']}
175
+ // aria-invalid={this.props['aria-invalid']}
176
+ // aria-required={this.props['aria-required']}
177
+ >
153
178
  <Context.Provider
154
179
  value={{
155
180
  checkboxGroup: {
@@ -8,6 +8,11 @@ import { Context } from './context';
8
8
  import { IconCheckboxTick, IconCheckboxIndeterminate } from '@douyinfe/semi-icons';
9
9
 
10
10
  export interface CheckboxInnerProps {
11
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
12
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
13
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
14
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
15
+ 'aria-required'?: React.AriaAttributes['aria-required'];
11
16
  indeterminate?: boolean;
12
17
  checked?: boolean;
13
18
  disabled?: boolean;
@@ -15,12 +20,20 @@ export interface CheckboxInnerProps {
15
20
  name?: string;
16
21
  isPureCardType?: boolean;
17
22
  ref?: React.MutableRefObject<CheckboxInner> | ((ref: CheckboxInner) => void);
23
+ addonId?: string;
24
+ extraId?: string;
25
+ 'aria-label'?: React.AriaAttributes['aria-label'];
18
26
  }
19
27
 
20
28
  class CheckboxInner extends PureComponent<CheckboxInnerProps> {
21
29
  static contextType = Context;
22
30
 
23
31
  static propTypes = {
32
+ 'aria-describedby': PropTypes.string,
33
+ 'aria-errormessage': PropTypes.string,
34
+ 'aria-invalid': PropTypes.bool,
35
+ 'aria-labelledby': PropTypes.string,
36
+ 'aria-required': PropTypes.bool,
24
37
  checked: PropTypes.bool,
25
38
  disabled: PropTypes.bool,
26
39
  onChange: PropTypes.func,
@@ -28,6 +41,8 @@ class CheckboxInner extends PureComponent<CheckboxInnerProps> {
28
41
  grouped: PropTypes.bool,
29
42
  value: PropTypes.any,
30
43
  isPureCardType: PropTypes.bool,
44
+ addonId: PropTypes.string,
45
+ extraId: PropTypes.string,
31
46
  };
32
47
 
33
48
  static defaultProps = {
@@ -44,7 +59,7 @@ class CheckboxInner extends PureComponent<CheckboxInnerProps> {
44
59
  }
45
60
 
46
61
  render() {
47
- const { indeterminate, checked, disabled, prefixCls, name, isPureCardType } = this.props;
62
+ const { indeterminate, checked, disabled, prefixCls, name, isPureCardType, addonId, extraId } = this.props;
48
63
  const prefix = prefixCls || css.PREFIX;
49
64
 
50
65
  const wrapper = classnames(
@@ -69,10 +84,18 @@ class CheckboxInner extends PureComponent<CheckboxInnerProps> {
69
84
  return (
70
85
  <span className={wrapper}>
71
86
  <input
87
+ type="checkbox"
88
+ aria-label={this.props['aria-label']}
89
+ aria-disabled={disabled}
90
+ aria-checked={checked}
91
+ aria-labelledby={addonId}
92
+ aria-describedby={extraId || this.props['aria-describedby']}
93
+ aria-invalid={this.props['aria-invalid']}
94
+ aria-errormessage={this.props['aria-errormessage']}
95
+ aria-required={this.props['aria-required']}
72
96
  ref={ref => {
73
97
  this.inputEntity = ref;
74
98
  }}
75
- type="checkbox"
76
99
  className={css.INPUT}
77
100
  onChange={noop}
78
101
  checked={checked}
@@ -116,4 +116,4 @@ class Collapse extends BaseComponent<CollapseReactProps, CollapseState> {
116
116
  }
117
117
  }
118
118
 
119
- export default Collapse;
119
+ export default Collapse;
package/collapse/item.tsx CHANGED
@@ -1,12 +1,13 @@
1
- import React, { PureComponent, ReactNode, CSSProperties } from 'react';
1
+ import React, { CSSProperties, PureComponent, ReactNode } from 'react';
2
2
  import cls from 'classnames';
3
3
  import PropTypes from 'prop-types';
4
4
  import { cssClasses } from '@douyinfe/semi-foundation/collapse/constants';
5
5
  import Collapsible from '../collapsible';
6
6
  import CollapseContext, { CollapseContextType } from './collapse-context';
7
7
  import { IconChevronDown, IconChevronUp } from '@douyinfe/semi-icons';
8
+ import { getUuidShort } from '@douyinfe/semi-foundation/utils/uuid';
8
9
 
9
- export interface CollapsePanelProps{
10
+ export interface CollapsePanelProps {
10
11
  itemKey: string;
11
12
  extra?: ReactNode;
12
13
  header?: ReactNode;
@@ -32,6 +33,8 @@ export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
32
33
  ]),
33
34
  };
34
35
 
36
+ private ariaID = getUuidShort({});
37
+
35
38
  renderHeader(active: boolean, expandIconEnable = true) {
36
39
  const {
37
40
  header,
@@ -43,13 +46,13 @@ export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
43
46
  } = this.context;
44
47
  const { expandIconPosition } = this.context;
45
48
  if (typeof expandIcon === 'undefined') {
46
- expandIcon = (<IconChevronDown />);
49
+ expandIcon = (<IconChevronDown/>);
47
50
  }
48
51
  if (typeof collapseIcon === 'undefined') {
49
- collapseIcon = (<IconChevronUp />);
52
+ collapseIcon = (<IconChevronUp/>);
50
53
  }
51
54
  const icon = (
52
- <span className={cls([`${cssClasses.PREFIX}-header-icon`,
55
+ <span aria-hidden='true' className={cls([`${cssClasses.PREFIX}-header-icon`,
53
56
  { [`${cssClasses.PREFIX}-header-iconDisabled`]: !expandIconEnable }])}>
54
57
  {/* eslint-disable-next-line no-nested-ternary */}
55
58
  {expandIconEnable ? (active ? collapseIcon : expandIcon) : expandIcon}
@@ -105,7 +108,6 @@ export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
105
108
  });
106
109
  return (
107
110
  <div
108
- role="Collapse-panel"
109
111
  className={itemCls}
110
112
  {...restProps}
111
113
  >
@@ -114,6 +116,7 @@ export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
114
116
  tabIndex={0}
115
117
  className={headerCls}
116
118
  aria-expanded={active ? 'true' : 'false'}
119
+ aria-owns={this.ariaID}
117
120
  onClick={e => onClick(itemKey, e)}
118
121
  >
119
122
  {this.renderHeader(active, children !== undefined)}
@@ -125,6 +128,8 @@ export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
125
128
  reCalcKey={reCalcKey}>
126
129
  <div
127
130
  className={contentCls}
131
+ aria-hidden={!active}
132
+ id={this.ariaID}
128
133
  >
129
134
  <div className={`${cssClasses.PREFIX}-content-wrapper`}>
130
135
  {children}
@@ -136,4 +141,4 @@ export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
136
141
  </div>
137
142
  );
138
143
  }
139
- }
144
+ }
@@ -19,6 +19,7 @@ export interface CollapsibleProps {
19
19
  style?: React.CSSProperties;
20
20
  collapseHeight?: number;
21
21
  reCalcKey?: number | string;
22
+ id?:string,
22
23
  }
23
24
 
24
25
 
@@ -32,7 +33,8 @@ const Collapsible = (props: CollapsibleProps) => {
32
33
  collapseHeight,
33
34
  style,
34
35
  className,
35
- reCalcKey
36
+ reCalcKey,
37
+ id
36
38
  } = props;
37
39
 
38
40
  const ref = useRef(null);
@@ -90,7 +92,7 @@ const Collapsible = (props: CollapsibleProps) => {
90
92
  const wrapperCls = cls(`${cssClasses.PREFIX}-wrapper`, className);
91
93
  return (
92
94
  <div style={wrapperstyle} className={wrapperCls} ref={ref}>
93
- <div ref={setHeight} style={{overflow:'hidden'}}>{children}</div>
95
+ <div ref={setHeight} style={{ overflow: 'hidden' }} id={id}>{children}</div>
94
96
  </div>
95
97
  );
96
98
  };
@@ -0,0 +1,27 @@
1
+ import React, { useState } from 'react';
2
+ import { ButtonGroup, Button, ConfigProvider } from '@douyinfe/semi-ui';
3
+
4
+ export default function RTLWrapper({ children, onDirectionChange }: { children: React.ReactNode; onDirectionChange?: (direction: 'ltr' | 'rtl') => void }) {
5
+ const [direction, setDirection] = useState();
6
+ const handleDirectionChange = dir => {
7
+ setDirection(dir);
8
+
9
+ if (typeof onDirectionChange === 'function') {
10
+ onDirectionChange(dir);
11
+ }
12
+ };
13
+
14
+ return (
15
+ <>
16
+ <div style={{ marginBottom: 20 }}>
17
+ <ButtonGroup>
18
+ <Button onClick={() => handleDirectionChange('ltr')}>LTR</Button>
19
+ <Button onClick={() => handleDirectionChange('rtl')}>RTL</Button>
20
+ </ButtonGroup>
21
+ </div>
22
+ <ConfigProvider direction={direction}>
23
+ {children}
24
+ </ConfigProvider>
25
+ </>
26
+ );
27
+ }
@@ -21,9 +21,15 @@ import { RangeType } from '@douyinfe/semi-foundation/datePicker/inputFoundation'
21
21
  import { TimePickerProps } from '../timePicker/TimePicker';
22
22
 
23
23
  export interface DatePickerProps extends DatePickerFoundationProps {
24
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
25
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
26
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
27
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
28
+ 'aria-required'?: React.AriaAttributes['aria-required'];
24
29
  timePickerOpts?: TimePickerProps;
25
30
  bottomSlot?: React.ReactNode;
26
31
  insetLabel?: React.ReactNode;
32
+ insetLabelId?: string;
27
33
  prefix?: React.ReactNode;
28
34
  topSlot?: React.ReactNode;
29
35
  renderDate?: (dayNumber?: number, fullDate?: string) => React.ReactNode;
@@ -42,6 +48,11 @@ export type DatePickerState = DatePickerFoundationState;
42
48
  export default class DatePicker extends BaseComponent<DatePickerProps, DatePickerState> {
43
49
  static contextType = ConfigContext;
44
50
  static propTypes = {
51
+ 'aria-describedby': PropTypes.string,
52
+ 'aria-errormessage': PropTypes.string,
53
+ 'aria-invalid': PropTypes.bool,
54
+ 'aria-labelledby': PropTypes.string,
55
+ 'aria-required': PropTypes.bool,
45
56
  type: PropTypes.oneOf(strings.TYPE_SET),
46
57
  size: PropTypes.oneOf(strings.SIZE_SET),
47
58
  density: PropTypes.oneOf(strings.DENSITY_SET),
@@ -76,6 +87,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
76
87
  prefixCls: PropTypes.string,
77
88
  prefix: PropTypes.node,
78
89
  insetLabel: PropTypes.node,
90
+ insetLabelId: PropTypes.string,
79
91
  zIndex: PropTypes.number,
80
92
  position: PropTypes.oneOf(popoverStrings.POSITION_SET),
81
93
  getPopupContainer: PropTypes.func,
@@ -452,6 +464,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
452
464
  disabled,
453
465
  showClear,
454
466
  insetLabel,
467
+ insetLabelId,
455
468
  placeholder,
456
469
  validateStatus,
457
470
  inputStyle,
@@ -488,6 +501,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
488
501
  inputStyle,
489
502
  showClear,
490
503
  insetLabel,
504
+ insetLabelId,
491
505
  type,
492
506
  format,
493
507
  multiple,
@@ -642,6 +656,11 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
642
656
  style,
643
657
  className: classnames(className, { [prefixCls]: true }),
644
658
  ref: this.setTriggerRef,
659
+ 'aria-invalid': this.props['aria-invalid'],
660
+ 'aria-errormessage': this.props['aria-errormessage'],
661
+ 'aria-labelledby': this.props['aria-labelledby'],
662
+ 'aria-describedby': this.props['aria-describedby'],
663
+ 'aria-required': this.props['aria-required'],
645
664
  };
646
665
 
647
666
  const inner = this.renderInner();
package/dist/css/semi.css CHANGED
@@ -13919,7 +13919,13 @@ body[theme-mode=dark], body .semi-always-dark {
13919
13919
  }
13920
13920
  .semi-radio .semi-radio-inner-buttonRadio,
13921
13921
  .semi-radio .semi-radio-inner-pureCardRadio {
13922
- display: none;
13922
+ position: absolute;
13923
+ top: 0;
13924
+ left: 0;
13925
+ width: 100%;
13926
+ height: 100%;
13927
+ z-index: -1;
13928
+ opacity: 0;
13923
13929
  }
13924
13930
  .semi-radio-disabled, .semi-radio-disabled:hover {
13925
13931
  cursor: not-allowed;
@@ -15059,6 +15065,7 @@ body[theme-mode=dark], body .semi-always-dark {
15059
15065
  }
15060
15066
  .semi-slider-handle-clicked {
15061
15067
  border: solid 1px var(--semi-color-focus-border);
15068
+ cursor: grabbing;
15062
15069
  }
15063
15070
  .semi-slider-track {
15064
15071
  height: 4px;
@@ -16128,6 +16135,9 @@ body[theme-mode=dark], body .semi-always-dark {
16128
16135
  color: var(--semi-color-text-0);
16129
16136
  width: 100%;
16130
16137
  }
16138
+ .semi-table-wrapper[data-column-fixed=true] {
16139
+ z-index: 1;
16140
+ }
16131
16141
  .semi-table-middle .semi-table-tbody > .semi-table-row > .semi-table-row-cell {
16132
16142
  padding-top: 12px;
16133
16143
  padding-bottom: 12px;
@@ -18246,8 +18256,6 @@ body[theme-mode=dark], body .semi-always-dark {
18246
18256
  background-color: inherit;
18247
18257
  }
18248
18258
  .semi-transfer-item .semi-transfer-item-close-icon {
18249
- width: 12px;
18250
- height: 12px;
18251
18259
  font-size: 12px;
18252
18260
  cursor: pointer;
18253
18261
  visibility: hidden;
@@ -20108,20 +20116,20 @@ p.semi-typography-extended,
20108
20116
  .semi-input-textarea-wrapper .semi-input-clearbtn-hidden {
20109
20117
  visibility: hidden;
20110
20118
  }
20111
- .semi-input-textarea-wrapper-readonly {
20112
- cursor: default;
20113
- }
20114
- .semi-input-textarea-wrapper-disabled {
20119
+ .semi-input-textarea-wrapper-disabled, .semi-input-textarea-wrapper-readonly {
20115
20120
  cursor: not-allowed;
20116
20121
  color: var(--semi-color-disabled-text);
20117
20122
  background-color: var(--semi-color-disabled-fill);
20118
20123
  }
20119
- .semi-input-textarea-wrapper-disabled:hover {
20124
+ .semi-input-textarea-wrapper-disabled:hover, .semi-input-textarea-wrapper-readonly:hover {
20120
20125
  background-color: var(--semi-color-disabled-fill);
20121
20126
  }
20122
- .semi-input-textarea-wrapper-disabled::placeholder {
20127
+ .semi-input-textarea-wrapper-disabled::placeholder, .semi-input-textarea-wrapper-readonly::placeholder {
20123
20128
  color: var(--semi-color-disabled-text);
20124
20129
  }
20130
+ .semi-input-textarea-wrapper-readonly {
20131
+ cursor: text;
20132
+ }
20125
20133
  .semi-input-textarea-wrapper-error {
20126
20134
  background-color: var(--semi-color-danger-light-default);
20127
20135
  border-color: var(--semi-color-danger-light-default);
@@ -20178,17 +20186,20 @@ p.semi-typography-extended,
20178
20186
  .semi-input-textarea-showClear {
20179
20187
  padding-right: 36px;
20180
20188
  }
20181
- .semi-input-textarea-disabled {
20189
+ .semi-input-textarea-disabled, .semi-input-textarea-readonly {
20182
20190
  cursor: not-allowed;
20183
20191
  color: var(--semi-color-disabled-text);
20184
20192
  background-color: transparent;
20185
20193
  }
20186
- .semi-input-textarea-disabled:hover {
20194
+ .semi-input-textarea-disabled:hover, .semi-input-textarea-readonly:hover {
20187
20195
  background-color: transparent;
20188
20196
  }
20189
- .semi-input-textarea-disabled::placeholder {
20197
+ .semi-input-textarea-disabled::placeholder, .semi-input-textarea-readonly::placeholder {
20190
20198
  color: var(--semi-color-disabled-text);
20191
20199
  }
20200
+ .semi-input-textarea-readonly {
20201
+ cursor: text;
20202
+ }
20192
20203
  .semi-input-textarea-autosize {
20193
20204
  overflow: hidden;
20194
20205
  }