@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.
- package/_base/_story/a11y.jsx +6 -6
- package/_base/_story/a11y.scss +0 -1
- package/_base/_story/index.scss +2 -5
- package/_utils/hooks/usePrevFocus.ts +16 -0
- package/_utils/index.ts +4 -0
- package/anchor/_story/anchor.stories.js +1 -1
- package/anchor/index.tsx +5 -2
- package/anchor/link.tsx +29 -4
- package/autoComplete/index.tsx +28 -1
- package/avatar/_story/avatar.stories.js +4 -4
- package/avatar/index.tsx +6 -4
- package/banner/index.tsx +2 -1
- package/breadcrumb/_story/breadcrumb.stories.js +22 -8
- package/breadcrumb/index.tsx +8 -1
- package/breadcrumb/item.tsx +1 -1
- package/button/Button.tsx +4 -0
- package/button/__test__/button.test.js +1 -1
- package/button/_story/button.stories.js +10 -10
- package/button/buttonGroup.tsx +4 -2
- package/button/splitButtonGroup.tsx +5 -2
- package/card/_story/card.stories.js +8 -1
- package/card/_story/card.stories.tsx +3 -0
- package/card/index.tsx +5 -2
- package/cascader/index.tsx +33 -5
- package/checkbox/_story/checkbox.stories.js +19 -12
- package/checkbox/checkbox.tsx +40 -5
- package/checkbox/checkboxGroup.tsx +30 -5
- package/checkbox/checkboxInner.tsx +25 -2
- package/collapse/index.tsx +1 -1
- package/collapse/item.tsx +12 -7
- package/collapsible/index.tsx +4 -2
- package/configProvider/_story/configProvider.stories.tsx +27 -0
- package/datePicker/__test__/datePicker.test.js +108 -0
- package/datePicker/_story/datePicker.stories.js +146 -2
- package/datePicker/datePicker.tsx +24 -0
- package/datePicker/monthsGrid.tsx +2 -1
- package/dist/css/semi.css +34 -7
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +2768 -1501
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/dropdown/dropdownItem.tsx +1 -1
- package/dropdown/dropdownMenu.tsx +1 -1
- package/empty/index.tsx +4 -4
- package/form/_story/FormApi/formApiDemo.jsx +3 -2
- package/form/_story/Validate/validateDemo.jsx +1 -1
- package/form/_story/demo.jsx +12 -3
- package/form/_story/form.stories.js +0 -7
- package/form/baseForm.tsx +2 -0
- package/form/errorMessage.tsx +13 -2
- package/form/hoc/withField.tsx +37 -8
- package/form/index.tsx +0 -2
- package/form/interface.ts +2 -0
- package/form/label.tsx +4 -2
- package/input/index.tsx +49 -4
- package/input/inputGroup.tsx +9 -4
- package/input/textarea.tsx +25 -6
- package/inputNumber/_story/inputNumber.stories.js +12 -0
- package/inputNumber/index.tsx +33 -2
- package/layout/Sider.tsx +6 -2
- package/layout/index.tsx +4 -3
- package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
- package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
- package/lib/cjs/_utils/index.d.ts +1 -0
- package/lib/cjs/_utils/index.js +6 -1
- package/lib/cjs/anchor/index.d.ts +2 -0
- package/lib/cjs/anchor/index.js +6 -1
- package/lib/cjs/anchor/link.d.ts +4 -1
- package/lib/cjs/anchor/link.js +39 -5
- package/lib/cjs/autoComplete/index.d.ts +17 -0
- package/lib/cjs/autoComplete/index.js +21 -2
- package/lib/cjs/avatar/index.d.ts +4 -3
- package/lib/cjs/avatar/index.js +15 -11
- package/lib/cjs/banner/index.js +4 -2
- package/lib/cjs/breadcrumb/index.d.ts +3 -0
- package/lib/cjs/breadcrumb/index.js +10 -4
- package/lib/cjs/breadcrumb/item.js +2 -2
- package/lib/cjs/button/Button.d.ts +2 -0
- package/lib/cjs/button/Button.js +4 -2
- package/lib/cjs/button/buttonGroup.d.ts +3 -0
- package/lib/cjs/button/buttonGroup.js +8 -4
- package/lib/cjs/button/index.d.ts +1 -0
- package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
- package/lib/cjs/button/splitButtonGroup.js +5 -2
- package/lib/cjs/card/index.d.ts +3 -0
- package/lib/cjs/card/index.js +3 -1
- package/lib/cjs/cascader/index.d.ts +14 -0
- package/lib/cjs/cascader/index.js +35 -7
- package/lib/cjs/checkbox/checkbox.d.ts +21 -1
- package/lib/cjs/checkbox/checkbox.js +51 -17
- package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
- package/lib/cjs/checkbox/checkboxGroup.js +16 -3
- package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
- package/lib/cjs/checkbox/checkboxInner.js +20 -3
- package/lib/cjs/collapse/item.d.ts +2 -1
- package/lib/cjs/collapse/item.js +12 -2
- package/lib/cjs/collapsible/index.d.ts +1 -0
- package/lib/cjs/collapsible/index.js +4 -2
- package/lib/cjs/datePicker/datePicker.d.ts +12 -0
- package/lib/cjs/datePicker/datePicker.js +22 -3
- package/lib/cjs/datePicker/monthsGrid.d.ts +1 -0
- package/lib/cjs/datePicker/monthsGrid.js +2 -1
- package/lib/cjs/dropdown/dropdownItem.js +3 -1
- package/lib/cjs/dropdown/dropdownMenu.js +4 -1
- package/lib/cjs/form/baseForm.d.ts +9 -0
- package/lib/cjs/form/baseForm.js +3 -1
- package/lib/cjs/form/errorMessage.d.ts +4 -0
- package/lib/cjs/form/errorMessage.js +21 -3
- package/lib/cjs/form/field.d.ts +7 -0
- package/lib/cjs/form/hoc/withField.js +49 -16
- package/lib/cjs/form/index.d.ts +0 -1
- package/lib/cjs/form/interface.d.ts +2 -0
- package/lib/cjs/form/label.d.ts +2 -0
- package/lib/cjs/form/label.js +5 -2
- package/lib/cjs/input/index.d.ts +16 -0
- package/lib/cjs/input/index.js +51 -15
- package/lib/cjs/input/inputGroup.d.ts +2 -1
- package/lib/cjs/input/inputGroup.js +11 -1
- package/lib/cjs/input/textarea.js +12 -1
- package/lib/cjs/inputNumber/index.d.ts +21 -12
- package/lib/cjs/inputNumber/index.js +37 -3
- package/lib/cjs/layout/Sider.d.ts +4 -0
- package/lib/cjs/layout/Sider.js +4 -1
- package/lib/cjs/layout/index.js +2 -0
- package/lib/cjs/list/item.js +0 -1
- package/lib/cjs/modal/Modal.js +2 -0
- package/lib/cjs/modal/ModalContent.d.ts +3 -1
- package/lib/cjs/modal/ModalContent.js +47 -5
- package/lib/cjs/navigation/Item.d.ts +4 -2
- package/lib/cjs/navigation/Item.js +25 -5
- package/lib/cjs/navigation/SubNav.d.ts +4 -2
- package/lib/cjs/navigation/SubNav.js +8 -1
- package/lib/cjs/navigation/index.js +2 -0
- package/lib/cjs/notification/notice.d.ts +1 -1
- package/lib/cjs/notification/notice.js +32 -22
- package/lib/cjs/pagination/index.js +16 -6
- package/lib/cjs/popover/index.js +7 -3
- package/lib/cjs/progress/index.d.ts +8 -0
- package/lib/cjs/progress/index.js +42 -9
- package/lib/cjs/radio/radio.d.ts +6 -1
- package/lib/cjs/radio/radio.js +17 -5
- package/lib/cjs/radio/radioGroup.d.ts +16 -1
- package/lib/cjs/radio/radioGroup.js +18 -3
- package/lib/cjs/radio/radioInner.d.ts +6 -1
- package/lib/cjs/radio/radioInner.js +11 -3
- package/lib/cjs/rating/index.d.ts +14 -0
- package/lib/cjs/rating/index.js +14 -3
- package/lib/cjs/rating/item.d.ts +2 -0
- package/lib/cjs/rating/item.js +6 -1
- package/lib/cjs/select/index.d.ts +16 -0
- package/lib/cjs/select/index.js +65 -19
- package/lib/cjs/select/option.js +28 -22
- package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
- package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
- package/lib/cjs/sideSheet/index.d.ts +1 -0
- package/lib/cjs/sideSheet/index.js +2 -1
- package/lib/cjs/slider/index.d.ts +2 -1
- package/lib/cjs/slider/index.js +64 -17
- package/lib/cjs/spin/icon.js +3 -4
- package/lib/cjs/steps/basicStep.d.ts +3 -0
- package/lib/cjs/steps/basicStep.js +23 -25
- package/lib/cjs/steps/basicSteps.d.ts +1 -0
- package/lib/cjs/steps/basicSteps.js +2 -1
- package/lib/cjs/steps/fillStep.d.ts +3 -0
- package/lib/cjs/steps/fillStep.js +19 -4
- package/lib/cjs/steps/fillSteps.d.ts +1 -0
- package/lib/cjs/steps/fillSteps.js +2 -1
- package/lib/cjs/steps/navStep.d.ts +3 -0
- package/lib/cjs/steps/navStep.js +22 -25
- package/lib/cjs/steps/navSteps.d.ts +1 -0
- package/lib/cjs/steps/navSteps.js +2 -1
- package/lib/cjs/switch/index.d.ts +12 -0
- package/lib/cjs/switch/index.js +19 -4
- package/lib/cjs/table/Body/BaseRow.js +35 -3
- package/lib/cjs/table/Body/index.js +9 -1
- package/lib/cjs/table/ColumnFilter.js +4 -0
- package/lib/cjs/table/ColumnSelection.d.ts +3 -0
- package/lib/cjs/table/ColumnSelection.js +6 -2
- package/lib/cjs/table/ColumnSorter.js +19 -3
- package/lib/cjs/table/CustomExpandIcon.js +7 -1
- package/lib/cjs/table/Table.d.ts +2 -0
- package/lib/cjs/table/Table.js +31 -15
- package/lib/cjs/table/TableCell.d.ts +2 -0
- package/lib/cjs/table/TableCell.js +6 -2
- package/lib/cjs/table/TableHeaderRow.js +8 -2
- package/lib/cjs/tabs/TabBar.js +11 -3
- package/lib/cjs/tabs/TabPane.js +3 -1
- package/lib/cjs/tabs/index.js +0 -1
- package/lib/cjs/tagInput/index.d.ts +4 -1
- package/lib/cjs/tagInput/index.js +29 -3
- package/lib/cjs/timePicker/TimePicker.d.ts +12 -0
- package/lib/cjs/timePicker/TimePicker.js +9 -1
- package/lib/cjs/timePicker/index.d.ts +6 -0
- package/lib/cjs/timeline/index.d.ts +1 -1
- package/lib/cjs/timeline/index.js +1 -0
- package/lib/cjs/timeline/item.js +4 -2
- package/lib/cjs/toast/toast.js +2 -0
- package/lib/cjs/tooltip/TriangleArrow.js +1 -0
- package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
- package/lib/cjs/tooltip/index.d.ts +16 -12
- package/lib/cjs/tooltip/index.js +55 -39
- package/lib/cjs/transfer/index.d.ts +1 -1
- package/lib/cjs/transfer/index.js +35 -17
- package/lib/cjs/tree/index.d.ts +1 -0
- package/lib/cjs/tree/index.js +15 -6
- package/lib/cjs/tree/treeNode.d.ts +12 -4
- package/lib/cjs/tree/treeNode.js +44 -4
- package/lib/cjs/treeSelect/index.d.ts +16 -0
- package/lib/cjs/treeSelect/index.js +60 -12
- package/lib/cjs/typography/base.js +18 -7
- package/lib/cjs/typography/copyable.js +6 -1
- package/lib/cjs/upload/fileCard.js +26 -7
- package/lib/cjs/upload/index.js +19 -4
- package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
- package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
- package/lib/es/_utils/index.d.ts +1 -0
- package/lib/es/_utils/index.js +4 -1
- package/lib/es/anchor/index.d.ts +2 -0
- package/lib/es/anchor/index.js +6 -1
- package/lib/es/anchor/link.d.ts +4 -1
- package/lib/es/anchor/link.js +38 -5
- package/lib/es/autoComplete/index.d.ts +17 -0
- package/lib/es/autoComplete/index.js +21 -2
- package/lib/es/avatar/index.d.ts +4 -3
- package/lib/es/avatar/index.js +15 -11
- package/lib/es/banner/index.js +4 -2
- package/lib/es/breadcrumb/index.d.ts +3 -0
- package/lib/es/breadcrumb/index.js +10 -4
- package/lib/es/breadcrumb/item.js +2 -2
- package/lib/es/button/Button.d.ts +2 -0
- package/lib/es/button/Button.js +4 -2
- package/lib/es/button/buttonGroup.d.ts +3 -0
- package/lib/es/button/buttonGroup.js +8 -4
- package/lib/es/button/index.d.ts +1 -0
- package/lib/es/button/splitButtonGroup.d.ts +3 -0
- package/lib/es/button/splitButtonGroup.js +5 -2
- package/lib/es/card/index.d.ts +3 -0
- package/lib/es/card/index.js +3 -1
- package/lib/es/cascader/index.d.ts +14 -0
- package/lib/es/cascader/index.js +35 -7
- package/lib/es/checkbox/checkbox.d.ts +21 -1
- package/lib/es/checkbox/checkbox.js +50 -17
- package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
- package/lib/es/checkbox/checkboxGroup.js +18 -5
- package/lib/es/checkbox/checkboxInner.d.ts +15 -0
- package/lib/es/checkbox/checkboxInner.js +20 -3
- package/lib/es/collapse/item.d.ts +2 -1
- package/lib/es/collapse/item.js +11 -2
- package/lib/es/collapsible/index.d.ts +1 -0
- package/lib/es/collapsible/index.js +4 -2
- package/lib/es/datePicker/datePicker.d.ts +12 -0
- package/lib/es/datePicker/datePicker.js +22 -3
- package/lib/es/datePicker/monthsGrid.d.ts +1 -0
- package/lib/es/datePicker/monthsGrid.js +2 -1
- package/lib/es/dropdown/dropdownItem.js +3 -1
- package/lib/es/dropdown/dropdownMenu.js +4 -1
- package/lib/es/form/baseForm.d.ts +9 -0
- package/lib/es/form/baseForm.js +3 -1
- package/lib/es/form/errorMessage.d.ts +4 -0
- package/lib/es/form/errorMessage.js +21 -3
- package/lib/es/form/field.d.ts +7 -0
- package/lib/es/form/hoc/withField.js +48 -15
- package/lib/es/form/index.d.ts +0 -1
- package/lib/es/form/index.js +0 -1
- package/lib/es/form/interface.d.ts +2 -0
- package/lib/es/form/label.d.ts +2 -0
- package/lib/es/form/label.js +5 -2
- package/lib/es/input/index.d.ts +16 -0
- package/lib/es/input/index.js +51 -15
- package/lib/es/input/inputGroup.d.ts +2 -1
- package/lib/es/input/inputGroup.js +11 -1
- package/lib/es/input/textarea.js +12 -1
- package/lib/es/inputNumber/index.d.ts +21 -12
- package/lib/es/inputNumber/index.js +38 -3
- package/lib/es/layout/Sider.d.ts +4 -0
- package/lib/es/layout/Sider.js +4 -1
- package/lib/es/layout/index.js +2 -0
- package/lib/es/list/item.js +0 -1
- package/lib/es/modal/Modal.js +2 -0
- package/lib/es/modal/ModalContent.d.ts +3 -1
- package/lib/es/modal/ModalContent.js +46 -5
- package/lib/es/navigation/Item.d.ts +4 -2
- package/lib/es/navigation/Item.js +25 -5
- package/lib/es/navigation/SubNav.d.ts +4 -2
- package/lib/es/navigation/SubNav.js +8 -1
- package/lib/es/navigation/index.js +2 -0
- package/lib/es/notification/notice.d.ts +1 -1
- package/lib/es/notification/notice.js +33 -24
- package/lib/es/pagination/index.js +16 -6
- package/lib/es/popover/index.js +7 -3
- package/lib/es/progress/index.d.ts +8 -0
- package/lib/es/progress/index.js +42 -9
- package/lib/es/radio/radio.d.ts +6 -1
- package/lib/es/radio/radio.js +16 -5
- package/lib/es/radio/radioGroup.d.ts +16 -1
- package/lib/es/radio/radioGroup.js +18 -3
- package/lib/es/radio/radioInner.d.ts +6 -1
- package/lib/es/radio/radioInner.js +11 -3
- package/lib/es/rating/index.d.ts +14 -0
- package/lib/es/rating/index.js +14 -3
- package/lib/es/rating/item.d.ts +2 -0
- package/lib/es/rating/item.js +6 -1
- package/lib/es/select/index.d.ts +16 -0
- package/lib/es/select/index.js +63 -17
- package/lib/es/select/option.js +28 -22
- package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
- package/lib/es/sideSheet/SideSheetContent.js +4 -1
- package/lib/es/sideSheet/index.d.ts +1 -0
- package/lib/es/sideSheet/index.js +2 -1
- package/lib/es/slider/index.d.ts +2 -1
- package/lib/es/slider/index.js +63 -16
- package/lib/es/spin/icon.js +3 -4
- package/lib/es/steps/basicStep.d.ts +3 -0
- package/lib/es/steps/basicStep.js +23 -23
- package/lib/es/steps/basicSteps.d.ts +1 -0
- package/lib/es/steps/basicSteps.js +2 -1
- package/lib/es/steps/fillStep.d.ts +3 -0
- package/lib/es/steps/fillStep.js +19 -4
- package/lib/es/steps/fillSteps.d.ts +1 -0
- package/lib/es/steps/fillSteps.js +2 -1
- package/lib/es/steps/navStep.d.ts +3 -0
- package/lib/es/steps/navStep.js +22 -23
- package/lib/es/steps/navSteps.d.ts +1 -0
- package/lib/es/steps/navSteps.js +2 -1
- package/lib/es/switch/index.d.ts +12 -0
- package/lib/es/switch/index.js +19 -4
- package/lib/es/table/Body/BaseRow.js +35 -3
- package/lib/es/table/Body/index.js +9 -2
- package/lib/es/table/ColumnFilter.js +4 -0
- package/lib/es/table/ColumnSelection.d.ts +3 -0
- package/lib/es/table/ColumnSelection.js +6 -2
- package/lib/es/table/ColumnSorter.js +17 -3
- package/lib/es/table/CustomExpandIcon.js +6 -1
- package/lib/es/table/Table.d.ts +2 -0
- package/lib/es/table/Table.js +31 -15
- package/lib/es/table/TableCell.d.ts +2 -0
- package/lib/es/table/TableCell.js +6 -2
- package/lib/es/table/TableHeaderRow.js +8 -2
- package/lib/es/tabs/TabBar.js +11 -3
- package/lib/es/tabs/TabPane.js +3 -1
- package/lib/es/tabs/index.js +0 -1
- package/lib/es/tagInput/index.d.ts +4 -1
- package/lib/es/tagInput/index.js +29 -3
- package/lib/es/timePicker/TimePicker.d.ts +12 -0
- package/lib/es/timePicker/TimePicker.js +9 -1
- package/lib/es/timePicker/index.d.ts +6 -0
- package/lib/es/timeline/index.d.ts +1 -1
- package/lib/es/timeline/index.js +1 -0
- package/lib/es/timeline/item.js +4 -2
- package/lib/es/toast/toast.js +2 -0
- package/lib/es/tooltip/TriangleArrow.js +1 -0
- package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
- package/lib/es/tooltip/index.d.ts +16 -12
- package/lib/es/tooltip/index.js +53 -39
- package/lib/es/transfer/index.d.ts +1 -1
- package/lib/es/transfer/index.js +35 -17
- package/lib/es/tree/index.d.ts +1 -0
- package/lib/es/tree/index.js +15 -6
- package/lib/es/tree/treeNode.d.ts +12 -4
- package/lib/es/tree/treeNode.js +44 -4
- package/lib/es/treeSelect/index.d.ts +16 -0
- package/lib/es/treeSelect/index.js +57 -10
- package/lib/es/typography/base.js +17 -7
- package/lib/es/typography/copyable.js +5 -1
- package/lib/es/upload/fileCard.js +26 -7
- package/lib/es/upload/index.js +19 -4
- package/list/item.tsx +0 -1
- package/modal/Modal.tsx +2 -0
- package/modal/ModalContent.tsx +35 -5
- package/navigation/Item.tsx +15 -0
- package/navigation/SubNav.tsx +13 -1
- package/navigation/index.tsx +1 -1
- package/notification/notice.tsx +19 -14
- package/package.json +8 -8
- package/pagination/index.tsx +9 -5
- package/popover/index.tsx +5 -0
- package/progress/_story/progress.stories.js +18 -18
- package/progress/index.tsx +58 -20
- package/radio/radio.tsx +12 -2
- package/radio/radioGroup.tsx +29 -3
- package/radio/radioInner.tsx +10 -1
- package/rating/index.tsx +19 -2
- package/rating/item.tsx +6 -0
- package/select/__test__/select.test.js +45 -0
- package/select/_story/select.stories.js +29 -0
- package/select/index.tsx +52 -4
- package/select/option.tsx +3 -0
- package/sideSheet/SideSheetContent.tsx +6 -4
- package/sideSheet/index.tsx +3 -2
- package/slider/__test__/slider.test.js +9 -0
- package/slider/_story/slider.stories.js +1 -1
- package/slider/index.tsx +44 -7
- package/spin/icon.tsx +4 -3
- package/steps/basicStep.tsx +15 -4
- package/steps/basicSteps.tsx +3 -2
- package/steps/fillStep.tsx +27 -12
- package/steps/fillSteps.tsx +2 -0
- package/steps/navStep.tsx +15 -4
- package/steps/navSteps.tsx +3 -2
- package/switch/_story/switch.stories.js +20 -19
- package/switch/_story/switch.stories.tsx +13 -13
- package/switch/index.tsx +23 -5
- package/table/Body/BaseRow.tsx +25 -1
- package/table/Body/index.tsx +7 -2
- package/table/ColumnFilter.tsx +7 -1
- package/table/ColumnSelection.tsx +4 -1
- package/table/ColumnSorter.tsx +18 -1
- package/table/CustomExpandIcon.tsx +5 -0
- package/table/Table.tsx +26 -13
- package/table/TableCell.tsx +11 -1
- package/table/TableHeaderRow.tsx +16 -2
- package/table/__test__/table.test.js +46 -0
- package/tabs/TabBar.tsx +8 -5
- package/tabs/TabPane.tsx +3 -1
- package/tabs/index.tsx +0 -1
- package/tagInput/__test__/tagInput.test.js +46 -0
- package/tagInput/_story/tagInput.stories.js +2 -2
- package/tagInput/index.tsx +31 -8
- package/timePicker/TimePicker.tsx +14 -1
- package/timeline/_story/timeline.stories.js +1 -1
- package/timeline/index.tsx +2 -2
- package/timeline/item.tsx +2 -1
- package/toast/toast.tsx +2 -0
- package/tooltip/TriangleArrow.tsx +1 -1
- package/tooltip/TriangleArrowVertical.tsx +1 -1
- package/tooltip/_story/tooltip.stories.js +562 -514
- package/tooltip/index.tsx +51 -33
- package/transfer/index.tsx +32 -28
- package/tree/_story/tree.stories.js +3 -3
- package/tree/index.tsx +10 -2
- package/tree/treeNode.tsx +46 -10
- package/treeSelect/__test__/treeMultiple.test.js +5 -0
- package/treeSelect/_story/treeSelect.stories.js +12 -0
- package/treeSelect/index.tsx +58 -7
- package/typography/base.tsx +7 -1
- package/typography/copyable.tsx +10 -1
- package/upload/fileCard.tsx +14 -16
- package/upload/index.tsx +10 -6
package/lib/cjs/form/label.js
CHANGED
|
@@ -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,
|
package/lib/cjs/input/index.d.ts
CHANGED
|
@@ -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;
|
package/lib/cjs/input/index.js
CHANGED
|
@@ -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
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
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?:
|
|
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)({
|
|
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>) =>
|
|
92
|
-
handleInputChange: (value: string, event: React.ChangeEvent<HTMLInputElement>) =>
|
|
93
|
-
handleInputBlur: (e: React.FocusEvent<HTMLInputElement>) =>
|
|
94
|
-
handleInputKeyDown: (e: React.KeyboardEvent) =>
|
|
95
|
-
handleInputMouseEnter: (e: React.MouseEvent) =>
|
|
96
|
-
handleInputMouseLeave: (e: React.MouseEvent) =>
|
|
97
|
-
handleInputMouseMove: (e: React.MouseEvent) =>
|
|
98
|
-
handleUpClick: (e: React.KeyboardEvent) =>
|
|
99
|
-
handleDownClick: (e: React.KeyboardEvent) =>
|
|
100
|
-
handleMouseUp: (e: React.MouseEvent) =>
|
|
101
|
-
handleMouseLeave: (e: React.MouseEvent) =>
|
|
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
|
-
};
|
|
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)({
|
|
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;
|
package/lib/cjs/layout/Sider.js
CHANGED
|
@@ -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
|
package/lib/cjs/layout/index.js
CHANGED
|
@@ -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));
|
package/lib/cjs/list/item.js
CHANGED
package/lib/cjs/modal/Modal.js
CHANGED
|
@@ -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;
|