@openedx/paragon 22.6.0 → 23.0.0-alpha.2
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/README.md +61 -21
- package/bin/paragon-scripts.js +128 -9
- package/dist/ActionRow/_index.scss +2 -4
- package/dist/Alert/index.scss +41 -32
- package/dist/Annotation/_mixins.scss +104 -0
- package/dist/Annotation/index.scss +130 -103
- package/dist/Avatar/index.scss +18 -20
- package/dist/AvatarButton/index.scss +3 -5
- package/dist/Badge/index.scss +112 -2
- package/dist/Breadcrumb/index.scss +14 -16
- package/dist/Bubble/index.scss +25 -12
- package/dist/Button/_mixins.scss +14 -0
- package/dist/Button/button-group.scss +126 -0
- package/dist/Button/index.js +15 -40
- package/dist/Button/index.js.map +1 -1
- package/dist/Button/index.scss +855 -372
- package/dist/Card/card-bootstrap.scss +168 -0
- package/dist/Card/index.scss +78 -79
- package/dist/Carousel/index.scss +168 -2
- package/dist/Chip/ChipIcon.d.ts +2 -2
- package/dist/Chip/ChipIcon.js.map +1 -1
- package/dist/Chip/index.d.ts +2 -2
- package/dist/Chip/index.js +2 -2
- package/dist/Chip/index.js.map +1 -1
- package/dist/Chip/index.scss +48 -38
- package/dist/Chip/mixins.scss +8 -3
- package/dist/ChipCarousel/index.scss +4 -4
- package/dist/CloseButton/index.scss +31 -2
- package/dist/Code/index.scss +47 -2
- package/dist/Collapsible/index.scss +15 -15
- package/dist/ColorPicker/index.scss +9 -11
- package/dist/DataTable/CollapsibleButtonGroup.js +2 -2
- package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
- package/dist/DataTable/index.scss +48 -50
- package/dist/Dropdown/dropdown-bootstrap.scss +181 -0
- package/dist/Dropdown/index.js +0 -2
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/Dropdown/index.scss +11 -12
- package/dist/Dropzone/index.scss +12 -14
- package/dist/Form/_FormText.scss +8 -8
- package/dist/Form/_bootstrap-custom-forms.scss +551 -0
- package/dist/Form/_bootstrap-forms.scss +381 -0
- package/dist/Form/_index.scss +168 -146
- package/dist/Form/_input-group.scss +188 -0
- package/dist/Form/_mixins.scss +216 -3
- package/dist/Hyperlink/index.js +32 -20
- package/dist/Hyperlink/index.js.map +1 -1
- package/dist/Hyperlink/index.scss +1 -1
- package/dist/Icon/index.d.ts +2 -4
- package/dist/Icon/index.js +1 -1
- package/dist/Icon/index.js.map +1 -1
- package/dist/Icon/index.scss +10 -12
- package/dist/IconButton/_mixins.scss +4 -0
- package/dist/IconButton/index.js +5 -11
- package/dist/IconButton/index.js.map +1 -1
- package/dist/IconButton/index.scss +387 -74
- package/dist/IconButtonToggle/index.scss +1 -1
- package/dist/Image/index.scss +53 -2
- package/dist/Menu/index.scss +25 -27
- package/dist/Modal/_ModalDialog.scss +52 -54
- package/dist/Modal/index.scss +6 -73
- package/dist/Nav/_mixins.scss +4 -4
- package/dist/Nav/index.scss +70 -66
- package/dist/Navbar/index.scss +276 -2
- package/dist/OverflowScroll/data/useOverflowScrollElementAttributes.js +3 -3
- package/dist/Overlay/index.js +2 -3
- package/dist/Overlay/index.js.map +1 -1
- package/dist/PageBanner/index.scss +17 -21
- package/dist/Pagination/index.scss +32 -34
- package/dist/Pagination/pagination-bootstrap.scss +83 -0
- package/dist/Popover/index.scss +9 -10
- package/dist/Popover/popover-bootstrap.scss +198 -0
- package/dist/ProductTour/Checkpoint.scss +71 -43
- package/dist/ProgressBar/_mixins.scss +22 -0
- package/dist/ProgressBar/bootstrap-progress.scss +49 -0
- package/dist/ProgressBar/index.scss +28 -36
- package/dist/Scrollable/index.scss +2 -2
- package/dist/SearchField/SearchFieldInput.js +2 -2
- package/dist/SearchField/SearchFieldInput.js.map +1 -1
- package/dist/SearchField/index.scss +15 -17
- package/dist/SelectableBox/index.scss +11 -13
- package/dist/Sheet/index.scss +10 -10
- package/dist/Spinner/index.scss +57 -2
- package/dist/Stack/index.scss +1 -3
- package/dist/Stepper/index.scss +20 -20
- package/dist/Sticky/index.scss +4 -6
- package/dist/Tabs/index.js +0 -2
- package/dist/Tabs/index.js.map +1 -1
- package/dist/Tabs/index.scss +29 -25
- package/dist/Toast/ToastContainer.scss +9 -11
- package/dist/Toast/bootstrap-toast.scss +46 -0
- package/dist/Toast/index.scss +9 -10
- package/dist/Tooltip/index.scss +136 -10
- package/dist/ValidationMessage/index.scss +1 -1
- package/dist/core.css +16777 -0
- package/dist/core.css.map +1 -0
- package/dist/core.min.css +2 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -18
- package/dist/index.scss +0 -4
- package/dist/light.css +4098 -0
- package/dist/light.css.map +1 -0
- package/dist/light.min.css +2 -0
- package/dist/theme-urls.json +21 -0
- package/dist/utils/breakpoints.js +1 -1
- package/lib/build-scss.js +188 -0
- package/lib/build-tokens.js +133 -0
- package/lib/help.js +36 -23
- package/lib/replace-variables.js +38 -0
- package/lib/utils.js +30 -0
- package/package.json +30 -14
- package/src/ActionRow/_index.scss +2 -4
- package/src/Alert/index.scss +41 -32
- package/src/Annotation/_mixins.scss +104 -0
- package/src/Annotation/index.scss +130 -103
- package/src/Avatar/index.scss +18 -20
- package/src/AvatarButton/index.scss +3 -5
- package/src/Badge/index.scss +112 -2
- package/src/Breadcrumb/index.scss +14 -16
- package/src/Bubble/index.scss +25 -12
- package/src/Button/{Button.test.tsx → Button.test.jsx} +2 -14
- package/src/Button/README.md +0 -84
- package/src/Button/__snapshots__/{Button.test.tsx.snap → Button.test.jsx.snap} +2 -19
- package/src/Button/_mixins.scss +14 -0
- package/src/Button/button-group.scss +126 -0
- package/src/Button/index.jsx +113 -0
- package/src/Button/index.scss +855 -372
- package/src/Card/card-bootstrap.scss +168 -0
- package/src/Card/index.scss +78 -79
- package/src/Carousel/index.scss +168 -2
- package/src/Chip/ChipIcon.tsx +1 -1
- package/src/Chip/index.scss +48 -38
- package/src/Chip/index.tsx +5 -5
- package/src/Chip/mixins.scss +8 -3
- package/src/ChipCarousel/index.scss +4 -4
- package/src/CloseButton/index.scss +31 -2
- package/src/Code/index.scss +47 -2
- package/src/Collapsible/index.scss +15 -15
- package/src/ColorPicker/index.scss +9 -11
- package/src/DataTable/CollapsibleButtonGroup.jsx +2 -2
- package/src/DataTable/index.scss +48 -50
- package/src/Dropdown/README.md +0 -93
- package/src/Dropdown/dropdown-bootstrap.scss +181 -0
- package/src/Dropdown/index.jsx +0 -2
- package/src/Dropdown/index.scss +11 -12
- package/src/Dropzone/index.scss +12 -14
- package/src/Form/_FormText.scss +8 -8
- package/src/Form/_bootstrap-custom-forms.scss +551 -0
- package/src/Form/_bootstrap-forms.scss +381 -0
- package/src/Form/_index.scss +168 -146
- package/src/Form/_input-group.scss +188 -0
- package/src/Form/_mixins.scss +216 -3
- package/src/Hyperlink/{Hyperlink.test.tsx → Hyperlink.test.jsx} +10 -21
- package/src/Hyperlink/{index.tsx → index.jsx} +37 -41
- package/src/Hyperlink/index.scss +1 -1
- package/src/Icon/index.d.ts +2 -4
- package/src/Icon/index.jsx +1 -1
- package/src/Icon/index.scss +10 -12
- package/src/IconButton/README.md +1 -15
- package/src/IconButton/__snapshots__/IconButton.test.jsx.snap +5 -28
- package/src/IconButton/_mixins.scss +4 -0
- package/src/IconButton/index.jsx +6 -13
- package/src/IconButton/index.scss +387 -74
- package/src/IconButtonToggle/index.scss +1 -1
- package/src/Image/index.scss +53 -2
- package/src/Menu/index.scss +25 -27
- package/src/Modal/_ModalDialog.scss +52 -54
- package/src/Modal/index.scss +6 -73
- package/src/Nav/_mixins.scss +4 -4
- package/src/Nav/index.scss +70 -66
- package/src/Navbar/index.scss +276 -2
- package/src/OverflowScroll/data/useOverflowScrollElementAttributes.js +3 -3
- package/src/Overlay/index.jsx +2 -3
- package/src/PageBanner/index.scss +17 -21
- package/src/Pagination/index.scss +32 -34
- package/src/Pagination/pagination-bootstrap.scss +83 -0
- package/src/Popover/index.scss +9 -10
- package/src/Popover/popover-bootstrap.scss +198 -0
- package/src/ProductTour/Checkpoint.scss +71 -43
- package/src/ProgressBar/_mixins.scss +22 -0
- package/src/ProgressBar/bootstrap-progress.scss +49 -0
- package/src/ProgressBar/index.scss +28 -36
- package/src/Scrollable/index.scss +2 -2
- package/src/SearchField/SearchFieldInput.jsx +2 -2
- package/src/SearchField/__snapshots__/SearchField.test.jsx.snap +12 -8
- package/src/SearchField/index.scss +15 -17
- package/src/SelectableBox/index.scss +11 -13
- package/src/Sheet/index.scss +10 -10
- package/src/Spinner/index.scss +57 -2
- package/src/Stack/index.scss +1 -3
- package/src/Stepper/index.scss +20 -20
- package/src/Sticky/index.scss +4 -6
- package/src/Tabs/README.md +1 -23
- package/src/Tabs/index.jsx +0 -3
- package/src/Tabs/index.scss +29 -25
- package/src/Toast/ToastContainer.scss +9 -11
- package/src/Toast/bootstrap-toast.scss +46 -0
- package/src/Toast/index.scss +9 -10
- package/src/Tooltip/index.scss +136 -10
- package/src/TransitionReplace/README.md +4 -4
- package/src/ValidationMessage/index.scss +1 -1
- package/src/index.d.ts +2 -2
- package/src/index.js +4 -18
- package/src/index.scss +0 -4
- package/src/{setupTest.ts → setupTest.js} +0 -7
- package/src/utils/breakpoints.js +1 -1
- package/styles/css/core/custom-media-breakpoints.css +17 -0
- package/styles/css/core/index.css +2 -0
- package/styles/css/core/variables.css +603 -0
- package/styles/css/themes/light/index.css +2 -0
- package/styles/css/themes/light/utility-classes.css +2454 -0
- package/styles/css/themes/light/variables.css +1644 -0
- package/{scss → styles/scss}/core/_functions.scss +1 -1
- package/styles/scss/core/_grid.scss +21 -0
- package/{scss → styles/scss}/core/_utilities.scss +17 -11
- package/styles/scss/core/_variables.scss +868 -0
- package/styles/scss/core/bootstrap-override/_functions.scss +104 -0
- package/styles/scss/core/bootstrap-override/_mixins.scss +4 -0
- package/styles/scss/core/bootstrap-override/_utilities.scss +4 -0
- package/styles/scss/core/bootstrap-override/bootstrap.scss +2 -0
- package/styles/scss/core/bootstrap-override/mixins/_grid-framework.scss +80 -0
- package/styles/scss/core/bootstrap-override/mixins/_grid.scss +69 -0
- package/styles/scss/core/bootstrap-override/mixins/_list-group.scss +22 -0
- package/styles/scss/core/bootstrap-override/utilities/_background.scss +7 -0
- package/styles/scss/core/bootstrap-override/utilities/_borders.scss +67 -0
- package/styles/scss/core/bootstrap-override/utilities/_spacing.scss +70 -0
- package/styles/scss/core/bootstrap-override/utilities/_text.scss +68 -0
- package/styles/scss/core/core.scss +21 -0
- package/{scss → styles/scss}/core/utilities-only.scss +1 -0
- package/tokens/README.md +157 -0
- package/tokens/css-utilities.js +56 -0
- package/tokens/map-scss-to-css.js +24 -0
- package/tokens/replace-variables.js +32 -0
- package/tokens/sass-helpers.js +98 -0
- package/tokens/src/core/alias/size.json +15 -0
- package/tokens/src/core/components/ActionRow.json +10 -0
- package/tokens/src/core/components/Alert.json +30 -0
- package/tokens/src/core/components/Annotation.json +25 -0
- package/tokens/src/core/components/Avatar.json +17 -0
- package/tokens/src/core/components/AvatarButton.json +11 -0
- package/tokens/src/core/components/Badge.json +33 -0
- package/tokens/src/core/components/Breadcrumb.json +23 -0
- package/tokens/src/core/components/Bubble.json +10 -0
- package/tokens/src/core/components/Button/core.json +105 -0
- package/tokens/src/core/components/Card.json +96 -0
- package/tokens/src/core/components/Carousel.json +37 -0
- package/tokens/src/core/components/Chip.json +41 -0
- package/tokens/src/core/components/ChipCarousel.json +15 -0
- package/tokens/src/core/components/CloseButton.json +14 -0
- package/tokens/src/core/components/Code.json +34 -0
- package/tokens/src/core/components/Collapsible.json +29 -0
- package/tokens/src/core/components/ColorPicker.json +8 -0
- package/tokens/src/core/components/Container.json +13 -0
- package/tokens/src/core/components/DataTable.json +27 -0
- package/tokens/src/core/components/Dropdown.json +67 -0
- package/tokens/src/core/components/Dropzone.json +21 -0
- package/tokens/src/core/components/Form/other.json +14 -0
- package/tokens/src/core/components/Form/size.json +229 -0
- package/tokens/src/core/components/Form/spacing.json +155 -0
- package/tokens/src/core/components/Form/transition.json +16 -0
- package/tokens/src/core/components/Form/typography.json +122 -0
- package/tokens/src/core/components/Icon.json +11 -0
- package/tokens/src/core/components/IconButton.json +15 -0
- package/tokens/src/core/components/Image.json +28 -0
- package/tokens/src/core/components/Menu.json +48 -0
- package/tokens/src/core/components/Modal.json +47 -0
- package/tokens/src/core/components/Nav.json +52 -0
- package/tokens/src/core/components/Navbar.json +70 -0
- package/tokens/src/core/components/Pagination.json +66 -0
- package/tokens/src/core/components/Popover.json +48 -0
- package/tokens/src/core/components/ProductTour.json +32 -0
- package/tokens/src/core/components/ProgressBar.json +39 -0
- package/tokens/src/core/components/SearchField.json +23 -0
- package/tokens/src/core/components/SelectableBox.json +9 -0
- package/tokens/src/core/components/Sheet.json +10 -0
- package/tokens/src/core/components/Spinner.json +19 -0
- package/tokens/src/core/components/Stack.json +7 -0
- package/tokens/src/core/components/Stepper.json +42 -0
- package/tokens/src/core/components/Sticky.json +7 -0
- package/tokens/src/core/components/Tab.json +19 -0
- package/tokens/src/core/components/Tabs.json +19 -0
- package/tokens/src/core/components/Toast.json +30 -0
- package/tokens/src/core/components/Tooltip.json +33 -0
- package/tokens/src/core/components/general/caret.json +13 -0
- package/tokens/src/core/components/general/headings.json +16 -0
- package/tokens/src/core/components/general/hr.json +10 -0
- package/tokens/src/core/components/general/input.json +51 -0
- package/tokens/src/core/components/general/link.json +30 -0
- package/tokens/src/core/components/general/list.json +26 -0
- package/tokens/src/core/components/general/text.json +24 -0
- package/tokens/src/core/global/breakpoints.json +12 -0
- package/tokens/src/core/global/display.json +22 -0
- package/tokens/src/core/global/elevation.json +19 -0
- package/tokens/src/core/global/other.json +4 -0
- package/tokens/src/core/global/spacing.json +37 -0
- package/tokens/src/core/global/transition.json +14 -0
- package/tokens/src/core/global/typography.json +91 -0
- package/tokens/src/core/utilities/color.json +12 -0
- package/tokens/src/themes/light/alias/color.json +114 -0
- package/tokens/src/themes/light/components/Alert.json +38 -0
- package/tokens/src/themes/light/components/Annotation.json +29 -0
- package/tokens/src/themes/light/components/Avatar.json +7 -0
- package/tokens/src/themes/light/components/Badge.json +186 -0
- package/tokens/src/themes/light/components/Breadcrumb.json +13 -0
- package/tokens/src/themes/light/components/Bubble.json +18 -0
- package/tokens/src/themes/light/components/Button/brand.json +260 -0
- package/tokens/src/themes/light/components/Button/core.json +24 -0
- package/tokens/src/themes/light/components/Button/danger.json +247 -0
- package/tokens/src/themes/light/components/Button/dark.json +230 -0
- package/tokens/src/themes/light/components/Button/info.json +238 -0
- package/tokens/src/themes/light/components/Button/light.json +236 -0
- package/tokens/src/themes/light/components/Button/primary.json +250 -0
- package/tokens/src/themes/light/components/Button/secondary.json +278 -0
- package/tokens/src/themes/light/components/Button/success.json +253 -0
- package/tokens/src/themes/light/components/Button/tertiary.json +109 -0
- package/tokens/src/themes/light/components/Button/warning.json +276 -0
- package/tokens/src/themes/light/components/Card.json +36 -0
- package/tokens/src/themes/light/components/Carousel.json +45 -0
- package/tokens/src/themes/light/components/Chip.json +50 -0
- package/tokens/src/themes/light/components/CloseButton.json +10 -0
- package/tokens/src/themes/light/components/Code.json +23 -0
- package/tokens/src/themes/light/components/DataTable.json +26 -0
- package/tokens/src/themes/light/components/Dropdown.json +41 -0
- package/tokens/src/themes/light/components/Dropzone.json +23 -0
- package/tokens/src/themes/light/components/Form/color.json +270 -0
- package/tokens/src/themes/light/components/Form/elevation.json +76 -0
- package/tokens/src/themes/light/components/Form/other.json +131 -0
- package/tokens/src/themes/light/components/IconButton.json +451 -0
- package/tokens/src/themes/light/components/Image.json +18 -0
- package/tokens/src/themes/light/components/Menu.json +30 -0
- package/tokens/src/themes/light/components/Modal.json +37 -0
- package/tokens/src/themes/light/components/Nav.json +166 -0
- package/tokens/src/themes/light/components/Navbar.json +136 -0
- package/tokens/src/themes/light/components/OverflowScroll.json +9 -0
- package/tokens/src/themes/light/components/PageBanner.json +24 -0
- package/tokens/src/themes/light/components/Pagination.json +45 -0
- package/tokens/src/themes/light/components/Popover.json +55 -0
- package/tokens/src/themes/light/components/ProductTour.json +35 -0
- package/tokens/src/themes/light/components/ProgressBar.json +20 -0
- package/tokens/src/themes/light/components/Scrollable.json +14 -0
- package/tokens/src/themes/light/components/SearchField.json +25 -0
- package/tokens/src/themes/light/components/Sheet.json +22 -0
- package/tokens/src/themes/light/components/Stepper.json +34 -0
- package/tokens/src/themes/light/components/Sticky.json +18 -0
- package/tokens/src/themes/light/components/Tab.json +62 -0
- package/tokens/src/themes/light/components/Toast.json +33 -0
- package/tokens/src/themes/light/components/Tooltip.json +30 -0
- package/tokens/src/themes/light/components/general/body.json +8 -0
- package/tokens/src/themes/light/components/general/headings.json +7 -0
- package/tokens/src/themes/light/components/general/hr.json +15 -0
- package/tokens/src/themes/light/components/general/input.json +18 -0
- package/tokens/src/themes/light/components/general/link.json +109 -0
- package/tokens/src/themes/light/components/general/list.json +38 -0
- package/tokens/src/themes/light/components/general/text.json +12 -0
- package/tokens/src/themes/light/global/color.json +1661 -0
- package/tokens/src/themes/light/global/elevation.json +201 -0
- package/tokens/src/themes/light/global/other.json +4 -0
- package/tokens/style-dictionary.js +229 -0
- package/tokens/utils.js +210 -0
- package/dist/ActionRow/_variables.scss +0 -2
- package/dist/Alert/_variables.scss +0 -24
- package/dist/Annotation/_variables.scss +0 -18
- package/dist/Avatar/_variables.scss +0 -10
- package/dist/AvatarButton/_variables.scss +0 -3
- package/dist/Badge/_variables.scss +0 -16
- package/dist/Breadcrumb/_variables.scss +0 -27
- package/dist/Bubble/_variables.scss +0 -8
- package/dist/Button/_variables.scss +0 -52
- package/dist/Button/deprecated/index.js +0 -149
- package/dist/Button/deprecated/index.js.map +0 -1
- package/dist/Button/index.d.ts +0 -35
- package/dist/Card/_variables.scss +0 -55
- package/dist/Carousel/_variables.scss +0 -27
- package/dist/CheckBox/index.js +0 -102
- package/dist/CheckBox/index.js.map +0 -1
- package/dist/CheckBoxGroup/index.js +0 -15
- package/dist/CheckBoxGroup/index.js.map +0 -1
- package/dist/Chip/_variables.scss +0 -28
- package/dist/ChipCarousel/_variables.scss +0 -3
- package/dist/CloseButton/_variables.scss +0 -6
- package/dist/Code/_variables.scss +0 -17
- package/dist/Collapsible/_variables.scss +0 -12
- package/dist/ColorPicker/_variables.scss +0 -2
- package/dist/Container/_variables.scss +0 -5
- package/dist/DataTable/_variables.scss +0 -11
- package/dist/Dropdown/_variables.scss +0 -33
- package/dist/Dropdown/deprecated/DropdownButton.js +0 -44
- package/dist/Dropdown/deprecated/DropdownButton.js.map +0 -1
- package/dist/Dropdown/deprecated/DropdownItem.js +0 -33
- package/dist/Dropdown/deprecated/DropdownItem.js.map +0 -1
- package/dist/Dropdown/deprecated/DropdownMenu.js +0 -46
- package/dist/Dropdown/deprecated/DropdownMenu.js.map +0 -1
- package/dist/Dropdown/deprecated/index.js +0 -241
- package/dist/Dropdown/deprecated/index.js.map +0 -1
- package/dist/Dropzone/_variables.scss +0 -9
- package/dist/Fieldset/index.js +0 -117
- package/dist/Fieldset/index.js.map +0 -1
- package/dist/Fieldset/index.scss +0 -12
- package/dist/Form/_variables.scss +0 -267
- package/dist/Hyperlink/index.d.ts +0 -24
- package/dist/Icon/_variables.scss +0 -7
- package/dist/Image/_variables.scss +0 -13
- package/dist/Input/index.js +0 -166
- package/dist/Input/index.js.map +0 -1
- package/dist/InputSelect/index.js +0 -105
- package/dist/InputSelect/index.js.map +0 -1
- package/dist/InputText/index.js +0 -45
- package/dist/InputText/index.js.map +0 -1
- package/dist/ListBox/index.js +0 -148
- package/dist/ListBox/index.js.map +0 -1
- package/dist/ListBoxOption/index.js +0 -94
- package/dist/ListBoxOption/index.js.map +0 -1
- package/dist/Menu/_variables.scss +0 -24
- package/dist/Modal/_variables.scss +0 -50
- package/dist/Modal/index.js +0 -292
- package/dist/Modal/index.js.map +0 -1
- package/dist/Nav/_variables.scss +0 -58
- package/dist/Navbar/_variables.scss +0 -40
- package/dist/OverflowScroll/_variables.scss +0 -5
- package/dist/OverflowScroll/index.scss +0 -1
- package/dist/Pagination/_variables.scss +0 -19
- package/dist/Popover/_variables.scss +0 -36
- package/dist/ProductTour/_variables.scss +0 -15
- package/dist/ProgressBar/_variables.scss +0 -23
- package/dist/RadioButtonGroup/index.js +0 -188
- package/dist/RadioButtonGroup/index.js.map +0 -1
- package/dist/SearchField/_variables.scss +0 -14
- package/dist/SelectableBox/_variables.scss +0 -5
- package/dist/Spinner/_variables.scss +0 -9
- package/dist/Stack/_variables.scss +0 -1
- package/dist/StatusAlert/index.js +0 -168
- package/dist/StatusAlert/index.js.map +0 -1
- package/dist/Stepper/_variables.scss +0 -18
- package/dist/Sticky/_variables.scss +0 -3
- package/dist/Table/_variables.scss +0 -34
- package/dist/Table/index.js +0 -267
- package/dist/Table/index.js.map +0 -1
- package/dist/Table/index.scss +0 -12
- package/dist/Tabs/_variables.scss +0 -24
- package/dist/Tabs/deprecated/Tabs.scss +0 -3
- package/dist/Tabs/deprecated/index.js +0 -123
- package/dist/Tabs/deprecated/index.js.map +0 -1
- package/dist/TextArea/index.js +0 -44
- package/dist/TextArea/index.js.map +0 -1
- package/dist/Toast/_variables.scss +0 -19
- package/dist/Tooltip/_variables.scss +0 -21
- package/dist/ValidationFormGroup/index.js +0 -106
- package/dist/ValidationFormGroup/index.js.map +0 -1
- package/dist/paragon.css +0 -45
- package/dist/setupTest.d.ts +0 -2
- package/dist/setupTest.js.map +0 -1
- package/dist/utils/types/bootstrap.d.ts +0 -39
- package/dist/utils/types/bootstrap.js +0 -2
- package/dist/utils/types/bootstrap.js.map +0 -1
- package/scss/core/_grid.scss +0 -21
- package/scss/core/_variables.scss +0 -875
- package/scss/core/core.scss +0 -21
- package/src/ActionRow/_variables.scss +0 -2
- package/src/Alert/_variables.scss +0 -24
- package/src/Annotation/_variables.scss +0 -18
- package/src/Avatar/_variables.scss +0 -10
- package/src/AvatarButton/_variables.scss +0 -3
- package/src/Badge/_variables.scss +0 -16
- package/src/Breadcrumb/_variables.scss +0 -27
- package/src/Bubble/_variables.scss +0 -8
- package/src/Button/_variables.scss +0 -52
- package/src/Button/deprecated/Button.test.jsx +0 -34
- package/src/Button/deprecated/index.jsx +0 -145
- package/src/Button/index.tsx +0 -159
- package/src/Card/_variables.scss +0 -55
- package/src/Carousel/_variables.scss +0 -27
- package/src/CheckBox/CheckBox.test.jsx +0 -65
- package/src/CheckBox/README.md +0 -93
- package/src/CheckBox/index.jsx +0 -80
- package/src/CheckBoxGroup/CheckBoxGroup.test.jsx +0 -33
- package/src/CheckBoxGroup/README.md +0 -35
- package/src/CheckBoxGroup/index.jsx +0 -19
- package/src/Chip/_variables.scss +0 -28
- package/src/ChipCarousel/_variables.scss +0 -3
- package/src/CloseButton/_variables.scss +0 -6
- package/src/Code/_variables.scss +0 -17
- package/src/Collapsible/_variables.scss +0 -12
- package/src/ColorPicker/_variables.scss +0 -2
- package/src/Container/_variables.scss +0 -5
- package/src/DataTable/_variables.scss +0 -11
- package/src/Dropdown/_variables.scss +0 -33
- package/src/Dropdown/deprecated/Dropdown.test.jsx +0 -238
- package/src/Dropdown/deprecated/DropdownButton.jsx +0 -52
- package/src/Dropdown/deprecated/DropdownItem.jsx +0 -34
- package/src/Dropdown/deprecated/DropdownMenu.jsx +0 -50
- package/src/Dropdown/deprecated/__snapshots__/Dropdown.test.jsx.snap +0 -229
- package/src/Dropdown/deprecated/index.jsx +0 -222
- package/src/Dropzone/_variables.scss +0 -9
- package/src/Fieldset/Fieldset.test.jsx +0 -101
- package/src/Fieldset/README.md +0 -146
- package/src/Fieldset/index.jsx +0 -107
- package/src/Fieldset/index.scss +0 -12
- package/src/Form/_variables.scss +0 -267
- package/src/Icon/_variables.scss +0 -7
- package/src/Image/_variables.scss +0 -13
- package/src/Input/README.md +0 -74
- package/src/Input/__snapshots__/input.test.jsx.snap +0 -53
- package/src/Input/index.jsx +0 -151
- package/src/Input/input.test.jsx +0 -85
- package/src/InputSelect/README.md +0 -136
- package/src/InputSelect/index.jsx +0 -92
- package/src/InputText/InputText.test.jsx +0 -74
- package/src/InputText/README.md +0 -293
- package/src/InputText/index.jsx +0 -49
- package/src/ListBox/ListBox.test.jsx +0 -161
- package/src/ListBox/README.md +0 -185
- package/src/ListBox/index.jsx +0 -115
- package/src/ListBoxOption/ListBoxOption.test.jsx +0 -154
- package/src/ListBoxOption/index.jsx +0 -78
- package/src/Menu/_variables.scss +0 -24
- package/src/Modal/README.md +0 -148
- package/src/Modal/_variables.scss +0 -50
- package/src/Modal/index.jsx +0 -319
- package/src/Modal/tests/Modal.test.jsx +0 -261
- package/src/Nav/_variables.scss +0 -58
- package/src/Navbar/_variables.scss +0 -40
- package/src/OverflowScroll/_variables.scss +0 -5
- package/src/OverflowScroll/index.scss +0 -1
- package/src/Pagination/_variables.scss +0 -19
- package/src/Popover/_variables.scss +0 -36
- package/src/ProductTour/_variables.scss +0 -15
- package/src/ProgressBar/_variables.scss +0 -23
- package/src/RadioButtonGroup/README.md +0 -50
- package/src/RadioButtonGroup/RadioButtonGroup.test.jsx +0 -127
- package/src/RadioButtonGroup/index.jsx +0 -185
- package/src/SearchField/_variables.scss +0 -14
- package/src/SelectableBox/_variables.scss +0 -5
- package/src/Spinner/_variables.scss +0 -9
- package/src/Stack/_variables.scss +0 -1
- package/src/StatusAlert/README.md +0 -149
- package/src/StatusAlert/StatusAlert.test.jsx +0 -150
- package/src/StatusAlert/index.jsx +0 -144
- package/src/Stepper/_variables.scss +0 -18
- package/src/Sticky/_variables.scss +0 -3
- package/src/Table/README.md +0 -506
- package/src/Table/Table.test.jsx +0 -367
- package/src/Table/_variables.scss +0 -34
- package/src/Table/index.jsx +0 -264
- package/src/Table/index.scss +0 -12
- package/src/Tabs/_variables.scss +0 -24
- package/src/Tabs/deprecated/Tabs.scss +0 -3
- package/src/Tabs/deprecated/Tabs.test.jsx +0 -50
- package/src/Tabs/deprecated/index.jsx +0 -117
- package/src/TextArea/README.md +0 -63
- package/src/TextArea/index.jsx +0 -48
- package/src/Toast/_variables.scss +0 -19
- package/src/Tooltip/_variables.scss +0 -21
- package/src/ValidationFormGroup/README.md +0 -116
- package/src/ValidationFormGroup/ValidationFormGroup.test.jsx +0 -146
- package/src/ValidationFormGroup/__snapshots__/ValidationFormGroup.test.jsx.snap +0 -161
- package/src/ValidationFormGroup/index.jsx +0 -114
- package/src/utils/types/bootstrap.test.tsx +0 -86
- package/src/utils/types/bootstrap.ts +0 -43
- /package/src/Button/{ButtonGroup.test.tsx → ButtonGroup.test.jsx} +0 -0
- /package/src/Button/{ButtonToolbar.test.tsx → ButtonToolbar.test.jsx} +0 -0
- /package/src/Button/__snapshots__/{ButtonGroup.test.tsx.snap → ButtonGroup.test.jsx.snap} +0 -0
- /package/src/Button/__snapshots__/{ButtonToolbar.test.tsx.snap → ButtonToolbar.test.jsx.snap} +0 -0
- /package/{scss → styles/scss}/core/_exports.module.scss +0 -0
- /package/{scss → styles/scss}/core/_typography.scss +0 -0
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`ValidationFormGroup renders 1`] = `
|
|
4
|
-
<div
|
|
5
|
-
className="form-group"
|
|
6
|
-
data-testid="validation-form-group"
|
|
7
|
-
>
|
|
8
|
-
<label
|
|
9
|
-
htmlFor="firstName"
|
|
10
|
-
>
|
|
11
|
-
First Name
|
|
12
|
-
</label>
|
|
13
|
-
<input
|
|
14
|
-
className="form-control"
|
|
15
|
-
id="firstName"
|
|
16
|
-
name="first-name"
|
|
17
|
-
onChange={[Function]}
|
|
18
|
-
type="text"
|
|
19
|
-
value="Adam"
|
|
20
|
-
/>
|
|
21
|
-
</div>
|
|
22
|
-
`;
|
|
23
|
-
|
|
24
|
-
exports[`ValidationFormGroup renders a valid message 1`] = `
|
|
25
|
-
<div
|
|
26
|
-
className="form-group"
|
|
27
|
-
data-testid="validation-form-group"
|
|
28
|
-
>
|
|
29
|
-
<label
|
|
30
|
-
htmlFor="firstName"
|
|
31
|
-
>
|
|
32
|
-
First Name
|
|
33
|
-
</label>
|
|
34
|
-
<input
|
|
35
|
-
className="form-control"
|
|
36
|
-
id="firstName"
|
|
37
|
-
name="first-name"
|
|
38
|
-
onChange={[Function]}
|
|
39
|
-
type="text"
|
|
40
|
-
value="Adam"
|
|
41
|
-
/>
|
|
42
|
-
<small
|
|
43
|
-
className="form-text text-muted"
|
|
44
|
-
id="firstName-help-text"
|
|
45
|
-
>
|
|
46
|
-
This is your first name.
|
|
47
|
-
</small>
|
|
48
|
-
<div
|
|
49
|
-
className="valid-feedback"
|
|
50
|
-
id="firstName-valid-feedback"
|
|
51
|
-
>
|
|
52
|
-
What a nice name.
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
`;
|
|
56
|
-
|
|
57
|
-
exports[`ValidationFormGroup renders an invalid message 1`] = `
|
|
58
|
-
<div
|
|
59
|
-
className="form-group"
|
|
60
|
-
data-testid="validation-form-group"
|
|
61
|
-
>
|
|
62
|
-
<label
|
|
63
|
-
htmlFor="firstName"
|
|
64
|
-
>
|
|
65
|
-
First Name
|
|
66
|
-
</label>
|
|
67
|
-
<input
|
|
68
|
-
className="form-control"
|
|
69
|
-
id="firstName"
|
|
70
|
-
name="first-name"
|
|
71
|
-
onChange={[Function]}
|
|
72
|
-
type="text"
|
|
73
|
-
value="Adam"
|
|
74
|
-
/>
|
|
75
|
-
<small
|
|
76
|
-
className="form-text text-muted"
|
|
77
|
-
id="firstName-help-text"
|
|
78
|
-
>
|
|
79
|
-
This is your first name.
|
|
80
|
-
</small>
|
|
81
|
-
<strong
|
|
82
|
-
className="invalid-feedback"
|
|
83
|
-
id="firstName-invalid-feedback"
|
|
84
|
-
>
|
|
85
|
-
This is not your name.
|
|
86
|
-
</strong>
|
|
87
|
-
</div>
|
|
88
|
-
`;
|
|
89
|
-
|
|
90
|
-
exports[`ValidationFormGroup renders an invalid message with a select input 1`] = `
|
|
91
|
-
<div
|
|
92
|
-
className="form-group"
|
|
93
|
-
data-testid="validation-form-group"
|
|
94
|
-
>
|
|
95
|
-
<label
|
|
96
|
-
htmlFor="weatherToday"
|
|
97
|
-
>
|
|
98
|
-
How is the weather today?
|
|
99
|
-
</label>
|
|
100
|
-
<select
|
|
101
|
-
aria-describedby="weatherToday-help-text weatherToday-valid-feedback"
|
|
102
|
-
className="is-valid"
|
|
103
|
-
id="weatherToday"
|
|
104
|
-
name="weather"
|
|
105
|
-
onChange={[Function]}
|
|
106
|
-
value="Sunny"
|
|
107
|
-
>
|
|
108
|
-
<option>
|
|
109
|
-
Sunny
|
|
110
|
-
</option>
|
|
111
|
-
<option>
|
|
112
|
-
Cloudy
|
|
113
|
-
</option>
|
|
114
|
-
<option>
|
|
115
|
-
Rainy
|
|
116
|
-
</option>
|
|
117
|
-
<option>
|
|
118
|
-
Snowy
|
|
119
|
-
</option>
|
|
120
|
-
</select>
|
|
121
|
-
<small
|
|
122
|
-
className="form-text text-muted"
|
|
123
|
-
id="weatherToday-help-text"
|
|
124
|
-
>
|
|
125
|
-
Look out the window to see.
|
|
126
|
-
</small>
|
|
127
|
-
<div
|
|
128
|
-
className="valid-feedback"
|
|
129
|
-
id="weatherToday-valid-feedback"
|
|
130
|
-
>
|
|
131
|
-
Correct!
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
`;
|
|
135
|
-
|
|
136
|
-
exports[`ValidationFormGroup renders with help text 1`] = `
|
|
137
|
-
<div
|
|
138
|
-
className="form-group"
|
|
139
|
-
data-testid="validation-form-group"
|
|
140
|
-
>
|
|
141
|
-
<label
|
|
142
|
-
htmlFor="firstName"
|
|
143
|
-
>
|
|
144
|
-
First Name
|
|
145
|
-
</label>
|
|
146
|
-
<input
|
|
147
|
-
className="form-control"
|
|
148
|
-
id="firstName"
|
|
149
|
-
name="first-name"
|
|
150
|
-
onChange={[Function]}
|
|
151
|
-
type="text"
|
|
152
|
-
value="Adam"
|
|
153
|
-
/>
|
|
154
|
-
<small
|
|
155
|
-
className="form-text text-muted"
|
|
156
|
-
id="firstName-help-text"
|
|
157
|
-
>
|
|
158
|
-
This is your first name.
|
|
159
|
-
</small>
|
|
160
|
-
</div>
|
|
161
|
-
`;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import classNames from 'classnames';
|
|
4
|
-
import Input from '../Input';
|
|
5
|
-
import { FormControl } from '../Form';
|
|
6
|
-
|
|
7
|
-
const propTypes = {
|
|
8
|
-
/** Id of the form input that the validation is for */
|
|
9
|
-
for: PropTypes.string.isRequired,
|
|
10
|
-
/** Additional classnames for this component */
|
|
11
|
-
className: PropTypes.string,
|
|
12
|
-
/** Determines if invalid styles / message will be shown */
|
|
13
|
-
invalid: PropTypes.bool,
|
|
14
|
-
/** Determines if invalid styles / message will be shown */
|
|
15
|
-
valid: PropTypes.bool,
|
|
16
|
-
/** Message to display on valid input */
|
|
17
|
-
validMessage: PropTypes.node,
|
|
18
|
-
/** Message to display on invalid input */
|
|
19
|
-
invalidMessage: PropTypes.node,
|
|
20
|
-
/** Help text for the form input */
|
|
21
|
-
helpText: PropTypes.node,
|
|
22
|
-
/** Specifies contents of the component. */
|
|
23
|
-
children: PropTypes.node,
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const defaultProps = {
|
|
27
|
-
invalid: undefined,
|
|
28
|
-
valid: undefined,
|
|
29
|
-
validMessage: undefined,
|
|
30
|
-
invalidMessage: undefined,
|
|
31
|
-
helpText: undefined,
|
|
32
|
-
children: undefined,
|
|
33
|
-
className: undefined,
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
function ValidationFormGroup(props) {
|
|
37
|
-
const {
|
|
38
|
-
className,
|
|
39
|
-
invalidMessage,
|
|
40
|
-
invalid,
|
|
41
|
-
valid,
|
|
42
|
-
validMessage,
|
|
43
|
-
helpText,
|
|
44
|
-
for: id,
|
|
45
|
-
children,
|
|
46
|
-
} = props;
|
|
47
|
-
|
|
48
|
-
const renderChildren = () => React.Children.map(children, (child) => {
|
|
49
|
-
// Any non-user input element should pass through unmodified
|
|
50
|
-
if (['input', 'textarea', 'select', Input, FormControl].indexOf(child.type) === -1) { return child; }
|
|
51
|
-
|
|
52
|
-
// Add validation class names and describedby values to input element
|
|
53
|
-
return React.cloneElement(child, {
|
|
54
|
-
className: classNames(child.props.className, {
|
|
55
|
-
'is-invalid': invalid,
|
|
56
|
-
'is-valid': valid,
|
|
57
|
-
}),
|
|
58
|
-
// This is a non-standard use of the classNames package, but it's exactly the same use case.
|
|
59
|
-
'aria-describedby': classNames(child.props['aria-describedby'], {
|
|
60
|
-
[`${id}-help-text`]: Boolean(helpText),
|
|
61
|
-
[`${id}-invalid-feedback`]: invalid && invalidMessage,
|
|
62
|
-
[`${id}-valid-feedback`]: valid && validMessage,
|
|
63
|
-
}),
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
const renderHelpText = (text) => {
|
|
68
|
-
if (!text) { return null; }
|
|
69
|
-
return <small id={`${id}-help-text`} className="form-text text-muted">{text}</small>;
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* The red text conveys semantic emphasis using color and font weight. For WCAG 2.1, the
|
|
74
|
-
* semantics need to be exposed programmatically as well. To do this, we use <strong/>
|
|
75
|
-
* elements and attach the formatting classes to them.
|
|
76
|
-
*/
|
|
77
|
-
const renderInvalidFeedback = (message) => {
|
|
78
|
-
if (!message) { return null; }
|
|
79
|
-
return (
|
|
80
|
-
<strong
|
|
81
|
-
id={`${id}-invalid-feedback`}
|
|
82
|
-
className="invalid-feedback"
|
|
83
|
-
>
|
|
84
|
-
{message}
|
|
85
|
-
</strong>
|
|
86
|
-
);
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
const renderValidFeedback = (message) => {
|
|
90
|
-
if (!message) { return null; }
|
|
91
|
-
return (
|
|
92
|
-
<div
|
|
93
|
-
className="valid-feedback"
|
|
94
|
-
id={`${id}-valid-feedback`}
|
|
95
|
-
>
|
|
96
|
-
{message}
|
|
97
|
-
</div>
|
|
98
|
-
);
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
return (
|
|
102
|
-
<div className={classNames('form-group', className)} data-testid="validation-form-group">
|
|
103
|
-
{renderChildren()}
|
|
104
|
-
{renderHelpText(helpText)}
|
|
105
|
-
{renderInvalidFeedback(invalidMessage)}
|
|
106
|
-
{renderValidFeedback(validMessage)}
|
|
107
|
-
</div>
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
ValidationFormGroup.propTypes = propTypes;
|
|
112
|
-
ValidationFormGroup.defaultProps = defaultProps;
|
|
113
|
-
|
|
114
|
-
export default ValidationFormGroup;
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import type { BsPropsWithAs, ComponentWithAsProp } from './bootstrap';
|
|
4
|
-
|
|
5
|
-
// Note: these are type-only tests. They don't actually do much at runtime; the important checks are at transpile time.
|
|
6
|
-
|
|
7
|
-
describe('BsPropsWithAs', () => {
|
|
8
|
-
interface Props<As extends React.ElementType = 'table'> extends BsPropsWithAs<As> {
|
|
9
|
-
otherProp?: number;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
it('defines optional bsPrefix, className, and as but no other props', () => {
|
|
13
|
-
const checkProps = <As extends React.ElementType = 'table'>(_props: Props<As>) => {};
|
|
14
|
-
// These are all valid props per the prop definition:
|
|
15
|
-
checkProps({ });
|
|
16
|
-
checkProps({ bsPrefix: 'bs' });
|
|
17
|
-
checkProps({ className: 'foo bar' });
|
|
18
|
-
checkProps({ as: 'tr' });
|
|
19
|
-
checkProps({ className: 'foo bar', as: 'button', otherProp: 15 });
|
|
20
|
-
// But these are all invalid:
|
|
21
|
-
// @ts-expect-error
|
|
22
|
-
checkProps({ newProp: 10 });
|
|
23
|
-
// @ts-expect-error
|
|
24
|
-
checkProps({ onClick: () => {} });
|
|
25
|
-
// @ts-expect-error
|
|
26
|
-
checkProps({ id: 'id' });
|
|
27
|
-
// @ts-expect-error
|
|
28
|
-
checkProps({ children: <tr /> });
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
describe('ComponentWithAsProp', () => {
|
|
33
|
-
interface MyProps extends BsPropsWithAs {
|
|
34
|
-
customProp?: string;
|
|
35
|
-
}
|
|
36
|
-
const MyComponent: ComponentWithAsProp<'div', MyProps> = (
|
|
37
|
-
React.forwardRef<HTMLDivElement, MyProps>(
|
|
38
|
-
({ as: Inner = 'div', ...props }, ref) => <Inner {...props} ref={ref} />,
|
|
39
|
-
)
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
// eslint-disable-next-line react/function-component-definition
|
|
43
|
-
const CustomComponent: React.FC<{ requiredProp: string }> = () => <span />;
|
|
44
|
-
|
|
45
|
-
it('is defined to wrap a <div> by default, and accepts related props', () => {
|
|
46
|
-
// This is valid - by default it is a DIV so accepts props and ref related to DIV:
|
|
47
|
-
const divClick: React.MouseEventHandler<HTMLDivElement> = () => {};
|
|
48
|
-
const divRef: React.RefObject<HTMLDivElement> = { current: null };
|
|
49
|
-
const valid = <MyComponent ref={divRef} onClick={divClick} customProp="foo" />;
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('is defined to wrap a <div> by default, and rejects unrelated props', () => {
|
|
53
|
-
const btnRef: React.RefObject<HTMLButtonElement> = { current: null };
|
|
54
|
-
// @ts-expect-error because the ref is to a <button> ref, but this is wrapping a <div>
|
|
55
|
-
const invalidRef = <MyComponent ref={btnRef} customProp="foo" />;
|
|
56
|
-
|
|
57
|
-
const btnClick: React.MouseEventHandler<HTMLButtonElement> = () => {};
|
|
58
|
-
// @ts-expect-error because the handler is for a <button> event, but this is wrapping a <div>
|
|
59
|
-
const invalidClick = <MyComponent onClick={btnClick} />;
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('can be changed to wrap a <canvas>, and accepts related props', () => {
|
|
63
|
-
const canvasClick: React.MouseEventHandler<HTMLCanvasElement> = () => {};
|
|
64
|
-
const canvasRef: React.RefObject<HTMLCanvasElement> = { current: null };
|
|
65
|
-
const valid = <MyComponent as="canvas" ref={canvasRef} onClick={canvasClick} customProp="foo" />;
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it('can be changed to wrap a <canvas>, and rejects unrelated props', () => {
|
|
69
|
-
const btnRef: React.RefObject<HTMLButtonElement> = { current: null };
|
|
70
|
-
// @ts-expect-error because the ref is to a <button> ref, but this is wrapping an <canvas>
|
|
71
|
-
const invalidRef = <MyComponent as="canvas" ref={btnRef} customProp="foo" />;
|
|
72
|
-
|
|
73
|
-
const btnClick: React.MouseEventHandler<HTMLButtonElement> = () => {};
|
|
74
|
-
// @ts-expect-error because the handler is for a <button> event, but this is wrapping an <canvas>
|
|
75
|
-
const invalidClick = <MyComponent as="canvas" onClick={btnClick} />;
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it('can be changed to wrap a custom component, and accepts related props', () => {
|
|
79
|
-
const valid = <MyComponent as={CustomComponent} requiredProp="hello" />;
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it('can be changed to wrap a custom component, and rejects unrelated props', () => {
|
|
83
|
-
// @ts-expect-error The onClick prop has not been declared for our custom component.
|
|
84
|
-
const valid = <MyComponent as={CustomComponent} requiredProp="hello" onClick={() => {}} />;
|
|
85
|
-
});
|
|
86
|
-
});
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types related to bootstrap components
|
|
3
|
-
*/
|
|
4
|
-
import React from 'react';
|
|
5
|
-
|
|
6
|
-
import type { BsPrefixProps, BsPrefixRefForwardingComponent } from 'react-bootstrap/esm/helpers';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Type helper for defining props of a component that wraps a bootstrap
|
|
10
|
-
* component. This type defines three props:
|
|
11
|
-
* 1. `className`: this component accepts additional CSS classes.
|
|
12
|
-
* 2. `bsPrefix`: locally change the class name prefix used for this component.
|
|
13
|
-
* 3. `as`: optionally specify which HTML element or Component is used, e.g. `"div"`
|
|
14
|
-
*
|
|
15
|
-
* This type assumes no `children` are allowed, but you can extend it to allow children.
|
|
16
|
-
*/
|
|
17
|
-
export type BsPropsWithAs<As extends React.ElementType = React.ElementType> = BsPrefixProps<As>;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* This is a helper that can be used to define the type of a Paragon component
|
|
21
|
-
* that accepts an `as` prop.
|
|
22
|
-
*
|
|
23
|
-
* It:
|
|
24
|
-
* - assumes you are using `forwardRef`, and sets the type of the `ref` prop
|
|
25
|
-
* to match the type of the component passed in the `as` prop.
|
|
26
|
-
* - assumes you are passing all unused props to the component, so adds any
|
|
27
|
-
* props from the `as` component type to the props you specify as `Props`.
|
|
28
|
-
*
|
|
29
|
-
* Example;
|
|
30
|
-
* ```
|
|
31
|
-
* interface MyProps extends BsPropsWithAs {
|
|
32
|
-
* customProp?: string;
|
|
33
|
-
* }
|
|
34
|
-
* export const MyComponent: ComponentWithAsProp<'div', MyProps> = (
|
|
35
|
-
* React.forwardRef<HTMLDivElement, MyProps>(
|
|
36
|
-
* ({ as: Inner = 'div', ...props }, ref) => <Inner {...props} ref={ref} />,
|
|
37
|
-
* )
|
|
38
|
-
* );
|
|
39
|
-
* ```
|
|
40
|
-
* Note that you need to define the default (e.g. `'div'`) in three different places.
|
|
41
|
-
*/
|
|
42
|
-
export type ComponentWithAsProp<DefaultElementType extends React.ElementType, Props>
|
|
43
|
-
= BsPrefixRefForwardingComponent<DefaultElementType, Props>;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/Button/__snapshots__/{ButtonToolbar.test.tsx.snap → ButtonToolbar.test.jsx.snap}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|