@douyinfe/semi-ui 2.2.2 → 2.3.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.
- package/_base/_story/a11y.jsx +6 -6
- 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/avatarGroup.tsx +1 -1
- package/avatar/index.tsx +10 -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 +21 -14
- package/checkbox/checkbox.tsx +40 -5
- package/checkbox/checkboxGroup.tsx +30 -5
- package/checkbox/checkboxInner.tsx +25 -2
- package/collapse/index.tsx +2 -2
- package/collapse/item.tsx +15 -8
- package/collapsible/index.tsx +4 -2
- package/configProvider/_story/configProvider.stories.tsx +27 -0
- package/datePicker/datePicker.tsx +19 -0
- package/dist/css/semi.css +8 -3
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +2470 -1242
- 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 +5 -5
- 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/index.tsx +28 -1
- 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/avatarGroup.js +2 -1
- package/lib/cjs/avatar/index.d.ts +4 -3
- package/lib/cjs/avatar/index.js +20 -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/index.js +2 -1
- package/lib/cjs/collapse/item.d.ts +2 -1
- package/lib/cjs/collapse/item.js +17 -3
- 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 +14 -1
- package/lib/cjs/dropdown/dropdownItem.js +3 -1
- package/lib/cjs/dropdown/dropdownMenu.js +4 -1
- package/lib/cjs/empty/index.js +2 -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 +8 -0
- package/lib/cjs/inputNumber/index.js +32 -2
- 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 +12 -5
- 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 +2 -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.js +32 -14
- 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 +23 -4
- 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/avatarGroup.js +2 -1
- package/lib/es/avatar/index.d.ts +4 -3
- package/lib/es/avatar/index.js +20 -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/index.js +2 -1
- package/lib/es/collapse/item.d.ts +2 -1
- package/lib/es/collapse/item.js +16 -3
- 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 +14 -1
- package/lib/es/dropdown/dropdownItem.js +3 -1
- package/lib/es/dropdown/dropdownMenu.js +4 -1
- package/lib/es/empty/index.js +2 -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 +8 -0
- package/lib/es/inputNumber/index.js +33 -2
- 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 +12 -5
- 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 +2 -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.js +32 -14
- 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 +23 -4
- 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 +13 -9
- 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 +3 -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 +50 -33
- package/transfer/index.tsx +29 -25
- 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 +13 -15
- package/upload/index.tsx +10 -6
|
@@ -49,7 +49,9 @@ class CheckboxInner extends _react.PureComponent {
|
|
|
49
49
|
disabled,
|
|
50
50
|
prefixCls,
|
|
51
51
|
name,
|
|
52
|
-
isPureCardType
|
|
52
|
+
isPureCardType,
|
|
53
|
+
addonId,
|
|
54
|
+
extraId
|
|
53
55
|
} = this.props;
|
|
54
56
|
const prefix = prefixCls || _constants.checkboxClasses.PREFIX;
|
|
55
57
|
const wrapper = (0, _classnames.default)({
|
|
@@ -64,10 +66,18 @@ class CheckboxInner extends _react.PureComponent {
|
|
|
64
66
|
return /*#__PURE__*/_react.default.createElement("span", {
|
|
65
67
|
className: wrapper
|
|
66
68
|
}, /*#__PURE__*/_react.default.createElement("input", {
|
|
69
|
+
type: "checkbox",
|
|
70
|
+
"aria-label": this.props['aria-label'],
|
|
71
|
+
"aria-disabled": disabled,
|
|
72
|
+
"aria-checked": checked,
|
|
73
|
+
"aria-labelledby": addonId,
|
|
74
|
+
"aria-describedby": extraId || this.props['aria-describedby'],
|
|
75
|
+
"aria-invalid": this.props['aria-invalid'],
|
|
76
|
+
"aria-errormessage": this.props['aria-errormessage'],
|
|
77
|
+
"aria-required": this.props['aria-required'],
|
|
67
78
|
ref: ref => {
|
|
68
79
|
this.inputEntity = ref;
|
|
69
80
|
},
|
|
70
|
-
type: "checkbox",
|
|
71
81
|
className: _constants.checkboxClasses.INPUT,
|
|
72
82
|
onChange: _noop2.default,
|
|
73
83
|
checked: checked,
|
|
@@ -82,13 +92,20 @@ class CheckboxInner extends _react.PureComponent {
|
|
|
82
92
|
|
|
83
93
|
CheckboxInner.contextType = _context.Context;
|
|
84
94
|
CheckboxInner.propTypes = {
|
|
95
|
+
'aria-describedby': _propTypes.default.string,
|
|
96
|
+
'aria-errormessage': _propTypes.default.string,
|
|
97
|
+
'aria-invalid': _propTypes.default.bool,
|
|
98
|
+
'aria-labelledby': _propTypes.default.string,
|
|
99
|
+
'aria-required': _propTypes.default.bool,
|
|
85
100
|
checked: _propTypes.default.bool,
|
|
86
101
|
disabled: _propTypes.default.bool,
|
|
87
102
|
onChange: _propTypes.default.func,
|
|
88
103
|
children: _propTypes.default.node,
|
|
89
104
|
grouped: _propTypes.default.bool,
|
|
90
105
|
value: _propTypes.default.any,
|
|
91
|
-
isPureCardType: _propTypes.default.bool
|
|
106
|
+
isPureCardType: _propTypes.default.bool,
|
|
107
|
+
addonId: _propTypes.default.string,
|
|
108
|
+
extraId: _propTypes.default.string
|
|
92
109
|
};
|
|
93
110
|
CheckboxInner.defaultProps = {
|
|
94
111
|
onChange: _noop2.default
|
|
@@ -126,7 +126,8 @@ class Collapse extends _baseComponent.default {
|
|
|
126
126
|
} = this.state;
|
|
127
127
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
128
128
|
className: clsPrefix,
|
|
129
|
-
style: style
|
|
129
|
+
style: style,
|
|
130
|
+
"aria-label": "Collapse"
|
|
130
131
|
}, /*#__PURE__*/_react.default.createElement(_collapseContext.default.Provider, {
|
|
131
132
|
value: {
|
|
132
133
|
activeSet,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { PureComponent, ReactNode
|
|
1
|
+
import React, { CSSProperties, PureComponent, ReactNode } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { CollapseContextType } from './collapse-context';
|
|
4
4
|
export interface CollapsePanelProps {
|
|
@@ -18,6 +18,7 @@ export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
|
|
|
18
18
|
className: PropTypes.Requireable<string>;
|
|
19
19
|
reCalcKey: PropTypes.Requireable<string | number>;
|
|
20
20
|
};
|
|
21
|
+
private ariaID;
|
|
21
22
|
renderHeader(active: boolean, expandIconEnable?: boolean): JSX.Element;
|
|
22
23
|
render(): JSX.Element;
|
|
23
24
|
}
|
package/lib/cjs/collapse/item.js
CHANGED
|
@@ -34,6 +34,8 @@ var _collapseContext = _interopRequireDefault(require("./collapse-context"));
|
|
|
34
34
|
|
|
35
35
|
var _semiIcons = require("@douyinfe/semi-icons");
|
|
36
36
|
|
|
37
|
+
var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
|
|
38
|
+
|
|
37
39
|
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
38
40
|
|
|
39
41
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -50,6 +52,11 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
|
50
52
|
};
|
|
51
53
|
|
|
52
54
|
class CollapsePanel extends _react.PureComponent {
|
|
55
|
+
constructor() {
|
|
56
|
+
super(...arguments);
|
|
57
|
+
this.ariaID = (0, _uuid.getUuidShort)({});
|
|
58
|
+
}
|
|
59
|
+
|
|
53
60
|
renderHeader(active) {
|
|
54
61
|
let expandIconEnable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
55
62
|
const {
|
|
@@ -73,6 +80,7 @@ class CollapsePanel extends _react.PureComponent {
|
|
|
73
80
|
}
|
|
74
81
|
|
|
75
82
|
const icon = /*#__PURE__*/_react.default.createElement("span", {
|
|
83
|
+
"aria-hidden": 'true',
|
|
76
84
|
className: (0, _classnames.default)(["".concat(_constants.cssClasses.PREFIX, "-header-icon"), {
|
|
77
85
|
["".concat(_constants.cssClasses.PREFIX, "-header-iconDisabled")]: !expandIconEnable
|
|
78
86
|
}])
|
|
@@ -83,7 +91,9 @@ class CollapsePanel extends _react.PureComponent {
|
|
|
83
91
|
if (typeof header === 'string') {
|
|
84
92
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, iconPosLeft ? icon : null, /*#__PURE__*/_react.default.createElement("span", null, header), /*#__PURE__*/_react.default.createElement("span", {
|
|
85
93
|
className: "".concat(_constants.cssClasses.PREFIX, "-header-right")
|
|
86
|
-
}, /*#__PURE__*/_react.default.createElement("span",
|
|
94
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
95
|
+
"aria-label": 'Extra of collapse header'
|
|
96
|
+
}, extra), iconPosLeft ? null : icon));
|
|
87
97
|
}
|
|
88
98
|
|
|
89
99
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, iconPosLeft ? icon : null, header, iconPosLeft ? null : icon);
|
|
@@ -118,13 +128,14 @@ class CollapsePanel extends _react.PureComponent {
|
|
|
118
128
|
["".concat(_constants.cssClasses.PREFIX, "-content")]: true
|
|
119
129
|
});
|
|
120
130
|
return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
|
|
121
|
-
|
|
131
|
+
"aria-label": 'Collapse panel',
|
|
122
132
|
className: itemCls
|
|
123
133
|
}, restProps), /*#__PURE__*/_react.default.createElement("div", {
|
|
124
134
|
role: "button",
|
|
125
135
|
tabIndex: 0,
|
|
126
136
|
className: headerCls,
|
|
127
137
|
"aria-expanded": active ? 'true' : 'false',
|
|
138
|
+
"aria-owns": this.ariaID,
|
|
128
139
|
onClick: e => onClick(itemKey, e)
|
|
129
140
|
}, this.renderHeader(active, children !== undefined)), children && /*#__PURE__*/_react.default.createElement(_collapsible.default, {
|
|
130
141
|
isOpen: active,
|
|
@@ -132,7 +143,10 @@ class CollapsePanel extends _react.PureComponent {
|
|
|
132
143
|
motion: motion,
|
|
133
144
|
reCalcKey: reCalcKey
|
|
134
145
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
135
|
-
className: contentCls
|
|
146
|
+
className: contentCls,
|
|
147
|
+
"aria-label": 'Collapse content',
|
|
148
|
+
"aria-hidden": !active,
|
|
149
|
+
id: this.ariaID
|
|
136
150
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
137
151
|
className: "".concat(_constants.cssClasses.PREFIX, "-content-wrapper")
|
|
138
152
|
}, children))));
|
|
@@ -45,7 +45,8 @@ const Collapsible = props => {
|
|
|
45
45
|
collapseHeight,
|
|
46
46
|
style,
|
|
47
47
|
className,
|
|
48
|
-
reCalcKey
|
|
48
|
+
reCalcKey,
|
|
49
|
+
id
|
|
49
50
|
} = props;
|
|
50
51
|
const ref = (0, _react.useRef)(null);
|
|
51
52
|
const [maxHeight, setMaxHeight] = (0, _react.useState)(0);
|
|
@@ -113,7 +114,8 @@ const Collapsible = props => {
|
|
|
113
114
|
ref: setHeight,
|
|
114
115
|
style: {
|
|
115
116
|
overflow: 'hidden'
|
|
116
|
-
}
|
|
117
|
+
},
|
|
118
|
+
id: id
|
|
117
119
|
}, children));
|
|
118
120
|
};
|
|
119
121
|
|
|
@@ -10,9 +10,15 @@ import { Locale } from '../locale/interface';
|
|
|
10
10
|
import { RangeType } from '@douyinfe/semi-foundation/lib/cjs/datePicker/inputFoundation';
|
|
11
11
|
import { TimePickerProps } from '../timePicker/TimePicker';
|
|
12
12
|
export interface DatePickerProps extends DatePickerFoundationProps {
|
|
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'];
|
|
13
18
|
timePickerOpts?: TimePickerProps;
|
|
14
19
|
bottomSlot?: React.ReactNode;
|
|
15
20
|
insetLabel?: React.ReactNode;
|
|
21
|
+
insetLabelId?: string;
|
|
16
22
|
prefix?: React.ReactNode;
|
|
17
23
|
topSlot?: React.ReactNode;
|
|
18
24
|
renderDate?: (dayNumber?: number, fullDate?: string) => React.ReactNode;
|
|
@@ -29,6 +35,11 @@ export declare type DatePickerState = DatePickerFoundationState;
|
|
|
29
35
|
export default class DatePicker extends BaseComponent<DatePickerProps, DatePickerState> {
|
|
30
36
|
static contextType: React.Context<import("../configProvider/context").ContextValue>;
|
|
31
37
|
static propTypes: {
|
|
38
|
+
'aria-describedby': PropTypes.Requireable<string>;
|
|
39
|
+
'aria-errormessage': PropTypes.Requireable<string>;
|
|
40
|
+
'aria-invalid': PropTypes.Requireable<boolean>;
|
|
41
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
42
|
+
'aria-required': PropTypes.Requireable<boolean>;
|
|
32
43
|
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
|
|
33
44
|
size: PropTypes.Requireable<"default" | "small" | "large">;
|
|
34
45
|
density: PropTypes.Requireable<"default" | "compact">;
|
|
@@ -58,6 +69,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
58
69
|
prefixCls: PropTypes.Requireable<string>;
|
|
59
70
|
prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
60
71
|
insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
72
|
+
insetLabelId: PropTypes.Requireable<string>;
|
|
61
73
|
zIndex: PropTypes.Requireable<number>;
|
|
62
74
|
position: PropTypes.Requireable<"top" | "topLeft" | "topRight" | "left" | "leftTop" | "leftBottom" | "right" | "rightTop" | "rightBottom" | "bottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver">;
|
|
63
75
|
getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -541,6 +541,7 @@ class DatePicker extends _baseComponent.default {
|
|
|
541
541
|
disabled,
|
|
542
542
|
showClear,
|
|
543
543
|
insetLabel,
|
|
544
|
+
insetLabelId,
|
|
544
545
|
placeholder,
|
|
545
546
|
validateStatus,
|
|
546
547
|
inputStyle,
|
|
@@ -581,6 +582,7 @@ class DatePicker extends _baseComponent.default {
|
|
|
581
582
|
inputStyle,
|
|
582
583
|
showClear,
|
|
583
584
|
insetLabel,
|
|
585
|
+
insetLabelId,
|
|
584
586
|
type,
|
|
585
587
|
format,
|
|
586
588
|
multiple,
|
|
@@ -623,7 +625,12 @@ class DatePicker extends _baseComponent.default {
|
|
|
623
625
|
className: (0, _classnames.default)(className, {
|
|
624
626
|
[prefixCls]: true
|
|
625
627
|
}),
|
|
626
|
-
ref: this.setTriggerRef
|
|
628
|
+
ref: this.setTriggerRef,
|
|
629
|
+
'aria-invalid': this.props['aria-invalid'],
|
|
630
|
+
'aria-errormessage': this.props['aria-errormessage'],
|
|
631
|
+
'aria-labelledby': this.props['aria-labelledby'],
|
|
632
|
+
'aria-describedby': this.props['aria-describedby'],
|
|
633
|
+
'aria-required': this.props['aria-required']
|
|
627
634
|
};
|
|
628
635
|
const inner = this.renderInner();
|
|
629
636
|
const wrappedInner = this.wrapPopover(inner);
|
|
@@ -635,6 +642,11 @@ class DatePicker extends _baseComponent.default {
|
|
|
635
642
|
exports.default = DatePicker;
|
|
636
643
|
DatePicker.contextType = _context5.default;
|
|
637
644
|
DatePicker.propTypes = {
|
|
645
|
+
'aria-describedby': _propTypes.default.string,
|
|
646
|
+
'aria-errormessage': _propTypes.default.string,
|
|
647
|
+
'aria-invalid': _propTypes.default.bool,
|
|
648
|
+
'aria-labelledby': _propTypes.default.string,
|
|
649
|
+
'aria-required': _propTypes.default.bool,
|
|
638
650
|
type: _propTypes.default.oneOf(_constants.strings.TYPE_SET),
|
|
639
651
|
size: _propTypes.default.oneOf(_constants.strings.SIZE_SET),
|
|
640
652
|
density: _propTypes.default.oneOf(_constants.strings.DENSITY_SET),
|
|
@@ -664,6 +676,7 @@ DatePicker.propTypes = {
|
|
|
664
676
|
prefixCls: _propTypes.default.string,
|
|
665
677
|
prefix: _propTypes.default.node,
|
|
666
678
|
insetLabel: _propTypes.default.node,
|
|
679
|
+
insetLabelId: _propTypes.default.string,
|
|
667
680
|
zIndex: _propTypes.default.number,
|
|
668
681
|
position: _propTypes.default.oneOf(_constants2.strings.POSITION_SET),
|
|
669
682
|
getPopupContainer: _propTypes.default.func,
|
|
@@ -96,7 +96,9 @@ class DropdownItem extends _baseComponent.default {
|
|
|
96
96
|
}, icon);
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
return /*#__PURE__*/_react.default.createElement("li", (0, _assign.default)({
|
|
99
|
+
return /*#__PURE__*/_react.default.createElement("li", (0, _assign.default)({
|
|
100
|
+
role: "menuitem"
|
|
101
|
+
}, events, {
|
|
100
102
|
ref: ref => forwardRef(ref),
|
|
101
103
|
className: itemclass,
|
|
102
104
|
style: style
|
|
@@ -49,7 +49,10 @@ class DropdownMenu extends _baseComponent.default {
|
|
|
49
49
|
} = _a,
|
|
50
50
|
rest = __rest(_a, ["children", "className", "style"]);
|
|
51
51
|
|
|
52
|
-
return /*#__PURE__*/_react.default.createElement("ul", (0, _assign.default)({
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement("ul", (0, _assign.default)({
|
|
53
|
+
role: "menu",
|
|
54
|
+
"aria-orientation": "vertical"
|
|
55
|
+
}, rest, {
|
|
53
56
|
className: (0, _classnames.default)("".concat(prefixCls, "-menu"), className),
|
|
54
57
|
style: style
|
|
55
58
|
}), children);
|
package/lib/cjs/empty/index.js
CHANGED
|
@@ -119,7 +119,8 @@ class Empty extends _baseComponent.default {
|
|
|
119
119
|
};
|
|
120
120
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
121
121
|
className: wrapperCls,
|
|
122
|
-
style: style
|
|
122
|
+
style: style,
|
|
123
|
+
"aria-label": "empty placeholder image"
|
|
123
124
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
124
125
|
className: "".concat(prefixCls, "-image"),
|
|
125
126
|
style: imageStyle
|
|
@@ -13,6 +13,7 @@ interface BaseFormState {
|
|
|
13
13
|
}
|
|
14
14
|
declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
|
|
15
15
|
static propTypes: {
|
|
16
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
16
17
|
onSubmit: PropTypes.Requireable<(...args: any[]) => any>;
|
|
17
18
|
onSubmitFail: PropTypes.Requireable<(...args: any[]) => any>;
|
|
18
19
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -36,6 +37,7 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
|
|
|
36
37
|
disabled: PropTypes.Requireable<boolean>;
|
|
37
38
|
showValidateIcon: PropTypes.Requireable<boolean>;
|
|
38
39
|
extraTextPosition: PropTypes.Requireable<string>;
|
|
40
|
+
id: PropTypes.Requireable<string>;
|
|
39
41
|
};
|
|
40
42
|
static defaultProps: {
|
|
41
43
|
onChange: (...args: any[]) => void;
|
|
@@ -53,8 +55,14 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
|
|
|
53
55
|
static TextArea: React.ComponentType<import("utility-types").Subtract<Omit<import("../input").TextAreaProps, "forwardRef"> & React.RefAttributes<HTMLTextAreaElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
|
|
54
56
|
static InputNumber: React.ComponentType<import("utility-types").Subtract<import("../inputNumber").InputNumberProps & React.RefAttributes<HTMLInputElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
|
|
55
57
|
static Select: React.ComponentType<import("utility-types").Subtract<{
|
|
58
|
+
'aria-describedby'?: string;
|
|
59
|
+
'aria-errormessage'?: string;
|
|
60
|
+
'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling";
|
|
61
|
+
'aria-labelledby'?: string;
|
|
62
|
+
'aria-required'?: boolean | "true" | "false";
|
|
56
63
|
id?: string;
|
|
57
64
|
autoFocus?: boolean;
|
|
65
|
+
autoClearSearchValue?: boolean;
|
|
58
66
|
arrowIcon?: React.ReactNode;
|
|
59
67
|
defaultValue?: string | number | any[] | Record<string, any>;
|
|
60
68
|
value?: string | number | any[] | Record<string, any>;
|
|
@@ -90,6 +98,7 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
|
|
|
90
98
|
suffix?: React.ReactNode;
|
|
91
99
|
prefix?: React.ReactNode;
|
|
92
100
|
insetLabel?: React.ReactNode;
|
|
101
|
+
insetLabelId?: string;
|
|
93
102
|
inputProps?: import("utility-types").Subtract<import("../input").InputProps, {
|
|
94
103
|
value?: React.ReactText;
|
|
95
104
|
onFocus?: (e: React.FocusEvent<HTMLInputElement, Element>) => void;
|
package/lib/cjs/form/baseForm.js
CHANGED
|
@@ -259,6 +259,7 @@ class Form extends _baseComponent.default {
|
|
|
259
259
|
}
|
|
260
260
|
|
|
261
261
|
Form.propTypes = {
|
|
262
|
+
'aria-label': _propTypes.default.string,
|
|
262
263
|
onSubmit: _propTypes.default.func,
|
|
263
264
|
onSubmitFail: _propTypes.default.func,
|
|
264
265
|
|
|
@@ -284,7 +285,8 @@ Form.propTypes = {
|
|
|
284
285
|
autoScrollToError: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object]),
|
|
285
286
|
disabled: _propTypes.default.bool,
|
|
286
287
|
showValidateIcon: _propTypes.default.bool,
|
|
287
|
-
extraTextPosition: _propTypes.default.oneOf(_constants.strings.EXTRA_POS)
|
|
288
|
+
extraTextPosition: _propTypes.default.oneOf(_constants.strings.EXTRA_POS),
|
|
289
|
+
id: _propTypes.default.string
|
|
288
290
|
};
|
|
289
291
|
Form.defaultProps = {
|
|
290
292
|
onChange: _noop2.default,
|
|
@@ -9,6 +9,8 @@ export interface ErrorMessageProps {
|
|
|
9
9
|
validateStatus?: string;
|
|
10
10
|
helpText?: React.ReactNode;
|
|
11
11
|
isInInputGroup?: boolean;
|
|
12
|
+
errorMessageId?: string;
|
|
13
|
+
helpTextId?: string;
|
|
12
14
|
}
|
|
13
15
|
export default class ErrorMessage extends PureComponent<ErrorMessageProps> {
|
|
14
16
|
static propTypes: {
|
|
@@ -19,6 +21,8 @@ export default class ErrorMessage extends PureComponent<ErrorMessageProps> {
|
|
|
19
21
|
showValidateIcon: PropTypes.Requireable<boolean>;
|
|
20
22
|
helpText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
21
23
|
isInInputGroup: PropTypes.Requireable<boolean>;
|
|
24
|
+
errorMessageId: PropTypes.Requireable<string>;
|
|
25
|
+
helpTextId: PropTypes.Requireable<string>;
|
|
22
26
|
};
|
|
23
27
|
generatorText(error: ReactFieldError): JSX.Element;
|
|
24
28
|
render(): JSX.Element;
|
|
@@ -37,11 +37,26 @@ const prefix = _constants.cssClasses.PREFIX;
|
|
|
37
37
|
|
|
38
38
|
class ErrorMessage extends _react.PureComponent {
|
|
39
39
|
generatorText(error) {
|
|
40
|
+
const {
|
|
41
|
+
helpTextId,
|
|
42
|
+
errorMessageId
|
|
43
|
+
} = this.props;
|
|
44
|
+
const propsError = this.props.error;
|
|
45
|
+
let id = errorMessageId;
|
|
46
|
+
|
|
47
|
+
if (!propsError) {
|
|
48
|
+
id = helpTextId;
|
|
49
|
+
}
|
|
50
|
+
|
|
40
51
|
if (typeof error === 'string') {
|
|
41
|
-
return /*#__PURE__*/_react.default.createElement("span",
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
53
|
+
id: id
|
|
54
|
+
}, error);
|
|
42
55
|
} else if ((0, _isArray.default)(error)) {
|
|
43
56
|
const err = (0, _filter.default)(error).call(error, e => e);
|
|
44
|
-
return err.length ? /*#__PURE__*/_react.default.createElement("span",
|
|
57
|
+
return err.length ? /*#__PURE__*/_react.default.createElement("span", {
|
|
58
|
+
id: id
|
|
59
|
+
}, err.join(', ')) : null;
|
|
45
60
|
} else if ( /*#__PURE__*/_react.default.isValidElement(error)) {
|
|
46
61
|
return error;
|
|
47
62
|
}
|
|
@@ -104,5 +119,8 @@ ErrorMessage.propTypes = {
|
|
|
104
119
|
validateStatus: _propTypes.default.string,
|
|
105
120
|
showValidateIcon: _propTypes.default.bool,
|
|
106
121
|
helpText: _propTypes.default.node,
|
|
107
|
-
isInInputGroup: _propTypes.default.bool
|
|
122
|
+
isInInputGroup: _propTypes.default.bool,
|
|
123
|
+
// internal props
|
|
124
|
+
errorMessageId: _propTypes.default.string,
|
|
125
|
+
helpTextId: _propTypes.default.string
|
|
108
126
|
};
|
package/lib/cjs/form/field.d.ts
CHANGED
|
@@ -3,8 +3,14 @@ declare const FormInput: import("react").ComponentType<import("utility-types").S
|
|
|
3
3
|
declare const FormInputNumber: import("react").ComponentType<import("utility-types").Subtract<import("../inputNumber/index").InputNumberProps & import("react").RefAttributes<HTMLInputElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
|
|
4
4
|
declare const FormTextArea: import("react").ComponentType<import("utility-types").Subtract<Omit<import("../input/textarea").TextAreaProps, "forwardRef"> & import("react").RefAttributes<HTMLTextAreaElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
|
|
5
5
|
declare const FormSelect: import("react").ComponentType<import("utility-types").Subtract<{
|
|
6
|
+
'aria-describedby'?: string;
|
|
7
|
+
'aria-errormessage'?: string;
|
|
8
|
+
'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling";
|
|
9
|
+
'aria-labelledby'?: string;
|
|
10
|
+
'aria-required'?: boolean | "true" | "false";
|
|
6
11
|
id?: string;
|
|
7
12
|
autoFocus?: boolean;
|
|
13
|
+
autoClearSearchValue?: boolean;
|
|
8
14
|
arrowIcon?: import("react").ReactNode;
|
|
9
15
|
defaultValue?: string | number | any[] | Record<string, any>;
|
|
10
16
|
value?: string | number | any[] | Record<string, any>;
|
|
@@ -40,6 +46,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
|
|
|
40
46
|
suffix?: import("react").ReactNode;
|
|
41
47
|
prefix?: import("react").ReactNode;
|
|
42
48
|
insetLabel?: import("react").ReactNode;
|
|
49
|
+
insetLabelId?: string;
|
|
43
50
|
inputProps?: import("utility-types").Subtract<import("../input/index").InputProps, {
|
|
44
51
|
value?: import("react").ReactText;
|
|
45
52
|
onFocus?: (e: import("react").FocusEvent<HTMLInputElement, Element>) => void;
|
|
@@ -97,6 +97,7 @@ function withField(Component, opts) {
|
|
|
97
97
|
extraText,
|
|
98
98
|
extraTextPosition,
|
|
99
99
|
pure,
|
|
100
|
+
id,
|
|
100
101
|
rest
|
|
101
102
|
} = (0, _utils.mergeProps)(props);
|
|
102
103
|
let {
|
|
@@ -429,25 +430,61 @@ function withField(Component, opts) {
|
|
|
429
430
|
let mergeLabelAlign = labelAlign || formProps.labelAlign;
|
|
430
431
|
let mergeLabelCol = labelCol || formProps.labelCol;
|
|
431
432
|
let mergeWrapperCol = wrapperCol || formProps.wrapperCol;
|
|
432
|
-
let mergeExtraPos = extraTextPosition || formProps.extraTextPosition || 'bottom';
|
|
433
|
+
let mergeExtraPos = extraTextPosition || formProps.extraTextPosition || 'bottom'; // id attribute to improve a11y
|
|
434
|
+
|
|
435
|
+
const a11yId = id ? id : field;
|
|
436
|
+
const labelId = "".concat(a11yId, "-label");
|
|
437
|
+
const helpTextId = "".concat(a11yId, "-helpText");
|
|
438
|
+
const extraTextId = "".concat(a11yId, "-extraText");
|
|
439
|
+
const errorMessageId = "".concat(a11yId, "-errormessage");
|
|
433
440
|
|
|
434
441
|
let FieldComponent = (() => {
|
|
435
|
-
var
|
|
442
|
+
var _context3, _context5;
|
|
436
443
|
|
|
437
444
|
// prefer to use validateStatus which pass by user throught props
|
|
438
445
|
let blockStatus = validateStatus ? validateStatus : status;
|
|
446
|
+
const extraCls = (0, _classnames.default)("".concat(prefix, "-field-extra"), {
|
|
447
|
+
["".concat(prefix, "-field-extra-string")]: typeof extraText === 'string',
|
|
448
|
+
["".concat(prefix, "-field-extra-middle")]: mergeExtraPos === 'middle',
|
|
449
|
+
["".concat(prefix, "-field-extra-botttom")]: mergeExtraPos === 'bottom'
|
|
450
|
+
});
|
|
451
|
+
const extraContent = extraText ? /*#__PURE__*/_react.default.createElement("div", {
|
|
452
|
+
className: extraCls,
|
|
453
|
+
id: extraTextId
|
|
454
|
+
}, extraText) : null;
|
|
439
455
|
let newProps = (0, _assign.default)((0, _assign.default)({
|
|
456
|
+
id: a11yId,
|
|
440
457
|
disabled: formProps.disabled
|
|
441
458
|
}, rest), {
|
|
442
459
|
ref,
|
|
443
460
|
onBlur: handleBlur,
|
|
444
461
|
[options.onKeyChangeFnName]: handleChange,
|
|
445
462
|
[options.valueKey]: value,
|
|
446
|
-
validateStatus: blockStatus
|
|
463
|
+
validateStatus: blockStatus,
|
|
464
|
+
'aria-required': required,
|
|
465
|
+
'aria-labelledby': labelId
|
|
447
466
|
});
|
|
467
|
+
|
|
468
|
+
if (helpText) {
|
|
469
|
+
var _context;
|
|
470
|
+
|
|
471
|
+
newProps['aria-describedby'] = extraText ? (0, _concat.default)(_context = "".concat(helpTextId, " ")).call(_context, extraTextId) : helpTextId;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
if (extraText) {
|
|
475
|
+
var _context2;
|
|
476
|
+
|
|
477
|
+
newProps['aria-describedby'] = helpText ? (0, _concat.default)(_context2 = "".concat(helpTextId, " ")).call(_context2, extraTextId) : extraTextId;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
if (status === 'error') {
|
|
481
|
+
newProps['aria-errormessage'] = errorMessageId;
|
|
482
|
+
newProps['aria-invalid'] = true;
|
|
483
|
+
}
|
|
484
|
+
|
|
448
485
|
const fieldCls = (0, _classnames.default)({
|
|
449
486
|
["".concat(prefix, "-field")]: true,
|
|
450
|
-
[(0, _concat.default)(
|
|
487
|
+
[(0, _concat.default)(_context3 = "".concat(prefix, "-field-")).call(_context3, name)]: Boolean(name),
|
|
451
488
|
[fieldClassName]: Boolean(fieldClassName)
|
|
452
489
|
});
|
|
453
490
|
const fieldMaincls = (0, _classnames.default)({
|
|
@@ -456,9 +493,11 @@ function withField(Component, opts) {
|
|
|
456
493
|
|
|
457
494
|
if (mergeLabelPos === 'inset' && !noLabel) {
|
|
458
495
|
newProps.insetLabel = label || field;
|
|
496
|
+
newProps.insetLabelId = labelId;
|
|
459
497
|
|
|
460
498
|
if (typeof label === 'object' && !(0, _reactUtils.isElement)(label)) {
|
|
461
499
|
newProps.insetLabel = label.text;
|
|
500
|
+
newProps.insetLabelId = labelId;
|
|
462
501
|
}
|
|
463
502
|
}
|
|
464
503
|
|
|
@@ -470,11 +509,11 @@ function withField(Component, opts) {
|
|
|
470
509
|
}
|
|
471
510
|
|
|
472
511
|
if (pure) {
|
|
473
|
-
var
|
|
512
|
+
var _context4;
|
|
474
513
|
|
|
475
514
|
let pureCls = (0, _classnames.default)(rest.className, {
|
|
476
515
|
["".concat(prefix, "-field-pure")]: true,
|
|
477
|
-
[(0, _concat.default)(
|
|
516
|
+
[(0, _concat.default)(_context4 = "".concat(prefix, "-field-")).call(_context4, name)]: Boolean(name),
|
|
478
517
|
[fieldClassName]: Boolean(fieldClassName)
|
|
479
518
|
});
|
|
480
519
|
newProps.className = pureCls;
|
|
@@ -482,7 +521,7 @@ function withField(Component, opts) {
|
|
|
482
521
|
}
|
|
483
522
|
|
|
484
523
|
let withCol = mergeLabelCol && mergeWrapperCol;
|
|
485
|
-
const labelColCls = mergeLabelAlign ? (0, _concat.default)(
|
|
524
|
+
const labelColCls = mergeLabelAlign ? (0, _concat.default)(_context5 = "".concat(prefix, "-col-")).call(_context5, mergeLabelAlign) : ''; // get label
|
|
486
525
|
|
|
487
526
|
let labelContent = null;
|
|
488
527
|
|
|
@@ -490,6 +529,7 @@ function withField(Component, opts) {
|
|
|
490
529
|
let needSpread = typeof label === 'object' && !(0, _reactUtils.isElement)(label) ? label : {};
|
|
491
530
|
labelContent = /*#__PURE__*/_react.default.createElement(_label.default, (0, _assign.default)({
|
|
492
531
|
text: label || field,
|
|
532
|
+
id: labelId,
|
|
493
533
|
required: required,
|
|
494
534
|
name: name || field,
|
|
495
535
|
width: mergeLabelWidth,
|
|
@@ -497,21 +537,14 @@ function withField(Component, opts) {
|
|
|
497
537
|
}, needSpread));
|
|
498
538
|
}
|
|
499
539
|
|
|
500
|
-
const extraCls = (0, _classnames.default)("".concat(prefix, "-field-extra"), {
|
|
501
|
-
["".concat(prefix, "-field-extra-string")]: typeof extraText === 'string',
|
|
502
|
-
["".concat(prefix, "-field-extra-middle")]: mergeExtraPos === 'middle',
|
|
503
|
-
["".concat(prefix, "-field-extra-botttom")]: mergeExtraPos === 'bottom'
|
|
504
|
-
});
|
|
505
|
-
const extraContent = extraText ? /*#__PURE__*/_react.default.createElement("div", {
|
|
506
|
-
className: extraCls
|
|
507
|
-
}, extraText) : null;
|
|
508
|
-
|
|
509
540
|
const fieldMainContent = /*#__PURE__*/_react.default.createElement("div", {
|
|
510
541
|
className: fieldMaincls
|
|
511
542
|
}, mergeExtraPos === 'middle' ? extraContent : null, com, !noErrorMessage ? /*#__PURE__*/_react.default.createElement(_errorMessage.default, {
|
|
512
543
|
error: error,
|
|
513
544
|
validateStatus: blockStatus,
|
|
514
545
|
helpText: helpText,
|
|
546
|
+
helpTextId: helpTextId,
|
|
547
|
+
errorMessageId: errorMessageId,
|
|
515
548
|
showValidateIcon: formProps.showValidateIcon
|
|
516
549
|
}) : null, mergeExtraPos === 'bottom' ? extraContent : null);
|
|
517
550
|
|
package/lib/cjs/form/index.d.ts
CHANGED
|
@@ -11,7 +11,6 @@ import { useFormApi, useFormState, useFieldState, useFieldApi } from './hooks/in
|
|
|
11
11
|
import withField from './hoc/withField';
|
|
12
12
|
import withFormState from './hoc/withFormState';
|
|
13
13
|
import withFormApi from './hoc/withFormApi';
|
|
14
|
-
export * from './interface';
|
|
15
14
|
export { Form, ArrayField, withField, useFormApi, useFormState, useFieldApi, useFieldState, withFormState, withFormApi };
|
|
16
15
|
export * from './interface';
|
|
17
16
|
export { ArrayFieldProps } from './arrayField';
|
|
@@ -82,6 +82,7 @@ export interface FormFCChild<K extends Record<string, any> = any> {
|
|
|
82
82
|
formApi: FormApi<K>;
|
|
83
83
|
}
|
|
84
84
|
export interface BaseFormProps {
|
|
85
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
85
86
|
onSubmit?: (values: Record<string, any>) => void;
|
|
86
87
|
onSubmitFail?: (errors: Record<string, FieldError>, values: any) => void;
|
|
87
88
|
onReset?: () => void;
|
|
@@ -90,6 +91,7 @@ export interface BaseFormProps {
|
|
|
90
91
|
validateFields?: (values: Record<string, any>) => string | Record<string, any>;
|
|
91
92
|
/** Use this if you want to populate the form with initial values. */
|
|
92
93
|
initValues?: Record<string, any>;
|
|
94
|
+
id?: string;
|
|
93
95
|
/** getFormApi will be call once when Form mounted, u can save formApi reference in your component */
|
|
94
96
|
getFormApi?: (formApi: FormApi) => void;
|
|
95
97
|
style?: React.CSSProperties;
|
package/lib/cjs/form/label.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { PureComponent } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
export interface LabelProps {
|
|
4
|
+
id?: string;
|
|
4
5
|
/** Whether to display the required * symbol */
|
|
5
6
|
required?: boolean;
|
|
6
7
|
/** Content of label */
|
|
@@ -24,6 +25,7 @@ export default class Label extends PureComponent<LabelProps> {
|
|
|
24
25
|
className: string;
|
|
25
26
|
};
|
|
26
27
|
static propTypes: {
|
|
28
|
+
id: PropTypes.Requireable<string>;
|
|
27
29
|
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
28
30
|
required: PropTypes.Requireable<boolean>;
|
|
29
31
|
text: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
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,
|