@telus-uds/components-base 1.96.0 → 1.97.1
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/CHANGELOG.md +30 -2
- package/babel.config.cjs +35 -0
- package/{jest.config-android.js → jest.config-android.cjs} +1 -1
- package/{jest.config-ios.js → jest.config-ios.cjs} +1 -1
- package/{jest.config-web.js → jest.config-web.cjs} +1 -1
- package/jest.config.cjs +40 -0
- package/lib/A11yInfoProvider/index.js +29 -35
- package/lib/A11yText/index.js +16 -24
- package/lib/ActionCard/ActionCard.js +47 -55
- package/lib/ActionCard/index.js +2 -10
- package/lib/ActivityIndicator/Spinner.js +20 -28
- package/lib/ActivityIndicator/Spinner.native.js +32 -40
- package/lib/ActivityIndicator/index.js +18 -22
- package/lib/ActivityIndicator/shared.js +12 -23
- package/lib/Autocomplete/Autocomplete.js +90 -99
- package/lib/Autocomplete/Loading.js +14 -22
- package/lib/Autocomplete/Suggestions.js +23 -31
- package/lib/Autocomplete/constants.js +4 -14
- package/lib/Autocomplete/dictionary.js +2 -9
- package/lib/Autocomplete/index.js +2 -10
- package/lib/Badge/Badge.js +18 -26
- package/lib/Badge/index.js +2 -10
- package/lib/BaseProvider/HydrationContext.js +13 -23
- package/lib/BaseProvider/index.js +24 -29
- package/lib/Box/Box.js +60 -68
- package/lib/Box/backgroundImageStylesMap.js +2 -9
- package/lib/Box/index.js +2 -10
- package/lib/Button/Button.js +15 -25
- package/lib/Button/ButtonBase.js +37 -46
- package/lib/Button/ButtonDropdown.js +37 -47
- package/lib/Button/ButtonGroup.js +53 -61
- package/lib/Button/ButtonLink.js +21 -29
- package/lib/Button/index.js +5 -34
- package/lib/Button/propTypes.js +16 -25
- package/lib/Card/Card.js +47 -55
- package/lib/Card/CardBase.js +27 -35
- package/lib/Card/PressableCardBase.js +26 -35
- package/lib/Card/index.js +4 -33
- package/lib/CardGroup/CardGroup.js +45 -55
- package/lib/CardGroup/dictionary.js +2 -9
- package/lib/CardGroup/index.js +2 -10
- package/lib/Carousel/Carousel.js +138 -146
- package/lib/Carousel/CarouselContext.js +19 -27
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +15 -22
- package/lib/Carousel/CarouselItem/CarouselItem.js +44 -56
- package/lib/Carousel/CarouselItem/index.js +2 -10
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +12 -20
- package/lib/Carousel/CarouselStepTracker/index.js +2 -10
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +16 -23
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +20 -28
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +23 -31
- package/lib/Carousel/CarouselTabs/index.js +2 -10
- package/lib/Carousel/CarouselThumbnail.js +19 -27
- package/lib/Carousel/CarouselThumbnailNavigation.js +22 -30
- package/lib/Carousel/dictionary.js +2 -9
- package/lib/Carousel/index.js +3 -36
- package/lib/Checkbox/Checkbox.js +52 -60
- package/lib/Checkbox/CheckboxButton.js +32 -41
- package/lib/Checkbox/CheckboxGroup.js +41 -49
- package/lib/Checkbox/CheckboxInput.js +15 -21
- package/lib/Checkbox/CheckboxInput.native.js +1 -8
- package/lib/Checkbox/index.js +3 -17
- package/lib/CheckboxCard/CheckboxCard.js +45 -55
- package/lib/CheckboxCard/index.js +2 -10
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +42 -52
- package/lib/CheckboxCardGroup/index.js +2 -10
- package/lib/ColourToggle/ColourBubble.js +23 -31
- package/lib/ColourToggle/ColourToggle.js +27 -35
- package/lib/ColourToggle/index.js +2 -10
- package/lib/Divider/Divider.js +23 -31
- package/lib/Divider/index.js +2 -10
- package/lib/DownloadApp/DownloadApp.js +32 -40
- package/lib/DownloadApp/dictionary.js +2 -9
- package/lib/DownloadApp/index.js +2 -10
- package/lib/ExpandCollapse/Accordion.js +7 -13
- package/lib/ExpandCollapse/Control.js +26 -34
- package/lib/ExpandCollapse/ExpandCollapse.js +22 -30
- package/lib/ExpandCollapse/Panel.js +43 -51
- package/lib/ExpandCollapse/dictionary.js +2 -9
- package/lib/ExpandCollapse/index.js +7 -20
- package/lib/Feedback/Feedback.js +33 -41
- package/lib/Feedback/index.js +2 -10
- package/lib/Fieldset/Fieldset.js +37 -43
- package/lib/Fieldset/FieldsetContainer.js +17 -25
- package/lib/Fieldset/FieldsetContainer.native.js +12 -20
- package/lib/Fieldset/Legend.js +10 -16
- package/lib/Fieldset/Legend.native.js +11 -17
- package/lib/Fieldset/cssReset.js +2 -9
- package/lib/Fieldset/index.js +2 -10
- package/lib/FileUpload/FileUpload.js +50 -58
- package/lib/FileUpload/NotificationContent.js +12 -18
- package/lib/FileUpload/dictionary.js +2 -9
- package/lib/FileUpload/index.js +2 -10
- package/lib/FlexGrid/Col/Col.js +35 -43
- package/lib/FlexGrid/Col/index.js +2 -10
- package/lib/FlexGrid/FlexGrid.js +38 -46
- package/lib/FlexGrid/Row/Row.js +24 -32
- package/lib/FlexGrid/Row/index.js +2 -10
- package/lib/FlexGrid/helpers/index.js +1 -8
- package/lib/FlexGrid/index.js +2 -10
- package/lib/FlexGrid/providers/GutterContext.js +3 -11
- package/lib/Footnote/Footnote.js +63 -71
- package/lib/Footnote/FootnoteLink.js +30 -38
- package/lib/Footnote/dictionary.js +2 -9
- package/lib/Footnote/index.js +4 -12
- package/lib/HorizontalScroll/HorizontalScroll.js +32 -41
- package/lib/HorizontalScroll/HorizontalScrollButton.js +25 -33
- package/lib/HorizontalScroll/ScrollViewEnd.js +12 -20
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +9 -16
- package/lib/HorizontalScroll/dictionary.js +2 -9
- package/lib/HorizontalScroll/index.js +11 -28
- package/lib/HorizontalScroll/itemPositions.js +17 -27
- package/lib/Icon/Icon.js +21 -30
- package/lib/Icon/IconText.js +29 -39
- package/lib/Icon/index.js +4 -25
- package/lib/IconButton/IconButton.js +35 -42
- package/lib/IconButton/index.js +2 -10
- package/lib/InputLabel/InputLabel.js +38 -47
- package/lib/InputLabel/LabelContent.js +8 -16
- package/lib/InputLabel/LabelContent.native.js +8 -17
- package/lib/InputLabel/index.js +2 -10
- package/lib/InputSupports/InputSupports.js +27 -35
- package/lib/InputSupports/index.js +2 -10
- package/lib/InputSupports/useInputSupports.js +5 -13
- package/lib/Link/ChevronLink.js +22 -28
- package/lib/Link/InlinePressable.js +13 -19
- package/lib/Link/InlinePressable.native.js +14 -23
- package/lib/Link/Link.js +9 -17
- package/lib/Link/LinkBase.js +40 -48
- package/lib/Link/TextButton.js +16 -22
- package/lib/Link/index.js +5 -34
- package/lib/List/List.js +22 -30
- package/lib/List/ListItem.js +12 -18
- package/lib/List/ListItemBase.js +33 -40
- package/lib/List/ListItemContent.js +22 -31
- package/lib/List/ListItemMark.js +24 -33
- package/lib/List/PressableListItemBase.js +32 -40
- package/lib/List/index.js +5 -24
- package/lib/Listbox/GroupControl.js +29 -33
- package/lib/Listbox/Listbox.js +40 -50
- package/lib/Listbox/ListboxContext.js +4 -12
- package/lib/Listbox/ListboxGroup.js +31 -40
- package/lib/Listbox/ListboxItem.js +23 -31
- package/lib/Listbox/ListboxOverlay.js +26 -35
- package/lib/Listbox/PressableItem.js +22 -30
- package/lib/Listbox/index.js +2 -10
- package/lib/Modal/Modal.js +75 -85
- package/lib/Modal/ModalContent.js +51 -58
- package/lib/Modal/WebModal.js +15 -23
- package/lib/Modal/dictionary.js +2 -9
- package/lib/Modal/index.js +2 -10
- package/lib/MultiSelectFilter/ModalOverlay.js +45 -53
- package/lib/MultiSelectFilter/MultiSelectFilter.js +110 -118
- package/lib/MultiSelectFilter/dictionary.js +2 -9
- package/lib/MultiSelectFilter/index.js +2 -10
- package/lib/Notification/Notification.js +59 -67
- package/lib/Notification/dictionary.js +2 -9
- package/lib/Notification/index.js +2 -10
- package/lib/OrderedList/Item.js +31 -39
- package/lib/OrderedList/ItemBase.js +13 -22
- package/lib/OrderedList/OrderedList.js +17 -25
- package/lib/OrderedList/OrderedListBase.js +12 -21
- package/lib/OrderedList/index.js +2 -10
- package/lib/Pagination/PageButton.js +22 -32
- package/lib/Pagination/Pagination.js +48 -51
- package/lib/Pagination/SideButton.js +25 -32
- package/lib/Pagination/constants.js +3 -0
- package/lib/Pagination/dictionary.js +2 -9
- package/lib/Pagination/index.js +2 -10
- package/lib/Pagination/usePagination.js +14 -12
- package/lib/Portal/Portal.js +8 -15
- package/lib/Portal/Portal.native.js +2 -9
- package/lib/Portal/index.js +2 -10
- package/lib/PriceLockup/PriceLockup.js +37 -45
- package/lib/PriceLockup/index.js +2 -10
- package/lib/PriceLockup/utils/renderFootnoteContent.js +20 -28
- package/lib/PriceLockup/utils/renderFootnoteLinks.js +5 -13
- package/lib/PriceLockup/utils/renderPrice.js +30 -38
- package/lib/PriceLockup/utils/renderTypography.js +5 -13
- package/lib/ProductCard/ProductCard.js +62 -70
- package/lib/ProductCard/dictionary.js +2 -9
- package/lib/ProductCard/index.js +2 -10
- package/lib/ProductCardGroup/ProductCardGroup.js +20 -28
- package/lib/ProductCardGroup/index.js +2 -10
- package/lib/Progress/Progress.js +15 -23
- package/lib/Progress/ProgressBar.js +23 -31
- package/lib/Progress/ProgressBarBackground.js +10 -18
- package/lib/Progress/index.js +4 -12
- package/lib/QuickLinks/QuickLinks.js +23 -29
- package/lib/QuickLinks/QuickLinksCard.js +14 -20
- package/lib/QuickLinks/QuickLinksItem.js +22 -28
- package/lib/QuickLinks/index.js +4 -12
- package/lib/QuickLinksFeature/QuickLinksFeature.js +20 -27
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +31 -38
- package/lib/QuickLinksFeature/index.js +4 -12
- package/lib/Radio/Radio.js +43 -53
- package/lib/Radio/RadioButton.js +34 -43
- package/lib/Radio/RadioGroup.js +43 -51
- package/lib/Radio/RadioInput.js +15 -21
- package/lib/Radio/RadioInput.native.js +1 -8
- package/lib/Radio/index.js +3 -17
- package/lib/RadioCard/RadioCard.js +43 -53
- package/lib/RadioCard/RadioCardGroup.js +42 -52
- package/lib/RadioCard/index.js +3 -17
- package/lib/Responsive/Responsive.js +16 -22
- package/lib/Responsive/ResponsiveProp.js +13 -21
- package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +15 -23
- package/lib/Responsive/index.js +2 -10
- package/lib/Search/Search.js +47 -55
- package/lib/Search/dictionary.js +2 -9
- package/lib/Search/index.js +2 -10
- package/lib/Select/Group.js +9 -17
- package/lib/Select/Group.native.js +5 -13
- package/lib/Select/Item.js +8 -16
- package/lib/Select/Item.native.js +1 -8
- package/lib/Select/Picker.js +27 -35
- package/lib/Select/Picker.native.js +34 -41
- package/lib/Select/Select.js +45 -54
- package/lib/Select/constants.js +4 -14
- package/lib/Select/index.js +6 -14
- package/lib/SideNav/Item.js +29 -37
- package/lib/SideNav/ItemContent.js +17 -26
- package/lib/SideNav/ItemsGroup.js +25 -32
- package/lib/SideNav/SideNav.js +28 -38
- package/lib/SideNav/index.js +1 -13
- package/lib/Skeleton/Skeleton.js +32 -40
- package/lib/Skeleton/index.js +2 -10
- package/lib/Skeleton/skeleton.constant.js +2 -10
- package/lib/Skeleton/skeletonWebAnimation.js +1 -8
- package/lib/Skeleton/useSkeletonNativeAnimation.js +14 -22
- package/lib/SkipLink/SkipLink.js +24 -33
- package/lib/SkipLink/index.js +2 -10
- package/lib/Spacer/Spacer.js +15 -21
- package/lib/Spacer/index.js +2 -10
- package/lib/StackView/StackView.js +28 -36
- package/lib/StackView/StackWrap.js +14 -21
- package/lib/StackView/StackWrap.native.js +2 -9
- package/lib/StackView/StackWrapBox.js +27 -35
- package/lib/StackView/StackWrapGap.js +22 -30
- package/lib/StackView/common.js +4 -13
- package/lib/StackView/getStackedContent.js +14 -22
- package/lib/StackView/index.js +5 -24
- package/lib/Status/Status.js +27 -35
- package/lib/Status/index.js +2 -10
- package/lib/StepTracker/Step.js +35 -43
- package/lib/StepTracker/StepTracker.js +38 -46
- package/lib/StepTracker/dictionary.js +2 -9
- package/lib/StepTracker/index.js +2 -10
- package/lib/TabBar/TabBar.js +28 -36
- package/lib/TabBar/TabBarItem.js +33 -42
- package/lib/TabBar/index.js +2 -10
- package/lib/Tabs/Tabs.js +38 -48
- package/lib/Tabs/TabsItem.js +45 -53
- package/lib/Tabs/index.js +2 -10
- package/lib/Tags/Tags.js +47 -55
- package/lib/Tags/index.js +2 -10
- package/lib/TextInput/TextArea.js +19 -27
- package/lib/TextInput/TextInput.js +18 -26
- package/lib/TextInput/TextInputBase.js +64 -73
- package/lib/TextInput/dictionary.js +2 -9
- package/lib/TextInput/index.js +3 -20
- package/lib/TextInput/propTypes.js +8 -15
- package/lib/ThemeProvider/ThemeProvider.js +25 -36
- package/lib/ThemeProvider/index.js +7 -60
- package/lib/ThemeProvider/useResponsiveThemeTokens.js +10 -18
- package/lib/ThemeProvider/useSetTheme.js +5 -12
- package/lib/ThemeProvider/useTheme.js +4 -11
- package/lib/ThemeProvider/useThemeTokens.js +15 -24
- package/lib/ThemeProvider/utils/index.js +2 -27
- package/lib/ThemeProvider/utils/styles.js +12 -24
- package/lib/ThemeProvider/utils/theme-tokens.js +19 -34
- package/lib/Timeline/Timeline.js +28 -34
- package/lib/Timeline/index.js +2 -10
- package/lib/ToggleSwitch/ToggleSwitch.js +40 -48
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +43 -51
- package/lib/ToggleSwitch/index.js +3 -20
- package/lib/Tooltip/Backdrop.js +8 -16
- package/lib/Tooltip/Backdrop.native.js +16 -22
- package/lib/Tooltip/Tooltip.js +42 -50
- package/lib/Tooltip/Tooltip.native.js +80 -61
- package/lib/Tooltip/dictionary.js +2 -9
- package/lib/Tooltip/getTooltipPosition.js +1 -9
- package/lib/Tooltip/index.js +5 -13
- package/lib/Tooltip/shared.js +17 -20
- package/lib/TooltipButton/TooltipButton.js +25 -33
- package/lib/TooltipButton/index.js +2 -10
- package/lib/Typography/Typography.js +39 -46
- package/lib/Typography/index.js +2 -10
- package/lib/Validator/Validator.js +42 -50
- package/lib/Validator/index.js +2 -10
- package/lib/ViewportProvider/ViewportProvider.js +13 -19
- package/lib/ViewportProvider/index.js +3 -23
- package/lib/ViewportProvider/useViewport.js +3 -11
- package/lib/ViewportProvider/useViewportListener.js +10 -17
- package/lib/index.js +71 -772
- package/lib/server.js +4 -40
- package/lib/utils/BaseView/BaseView.js +14 -20
- package/lib/utils/BaseView/BaseView.native.js +2 -10
- package/lib/utils/BaseView/index.js +2 -10
- package/lib/utils/a11y/index.js +2 -27
- package/lib/utils/a11y/semantics.js +11 -35
- package/lib/utils/a11y/textSize.js +7 -16
- package/lib/utils/animation/index.js +2 -13
- package/lib/utils/animation/useVerticalExpandAnimation.js +19 -26
- package/lib/utils/children.js +12 -20
- package/lib/utils/containUniqueFields.js +1 -8
- package/lib/utils/convertFromMegaByteToByte.js +1 -7
- package/lib/utils/floating-ui/index.js +1 -42
- package/lib/utils/floating-ui/index.native.js +1 -42
- package/lib/utils/formatImageSource.js +1 -8
- package/lib/utils/hasOwnProperty.js +1 -7
- package/lib/utils/htmlAttrs.js +11 -19
- package/lib/utils/index.js +25 -245
- package/lib/utils/info/index.js +6 -13
- package/lib/utils/info/platform/index.js +8 -13
- package/lib/utils/info/platform/platform.android.js +1 -8
- package/lib/utils/info/platform/platform.ios.js +1 -8
- package/lib/utils/info/platform/platform.js +1 -8
- package/lib/utils/info/platform/platform.native.js +1 -8
- package/lib/utils/info/versions.js +4 -11
- package/lib/utils/input.js +13 -21
- package/lib/utils/pressability.js +14 -22
- package/lib/utils/props/a11yProps.js +90 -98
- package/lib/utils/props/clickProps.js +4 -12
- package/lib/utils/props/componentPropType.js +1 -7
- package/lib/utils/props/copyPropTypes.js +2 -10
- package/lib/utils/props/getPropSelector.js +6 -11
- package/lib/utils/props/handlerProps.js +23 -31
- package/lib/utils/props/hrefAttrsProp.js +6 -13
- package/lib/utils/props/index.js +19 -168
- package/lib/utils/props/inputSupportsProps.js +12 -20
- package/lib/utils/props/linkProps.js +16 -24
- package/lib/utils/props/paddingProp.js +8 -16
- package/lib/utils/props/pressProps.js +22 -31
- package/lib/utils/props/rectProp.js +8 -16
- package/lib/utils/props/responsiveProps.js +5 -13
- package/lib/utils/props/selectSystemProps.js +1 -7
- package/lib/utils/props/spacingProps.js +12 -19
- package/lib/utils/props/textInputProps.js +56 -62
- package/lib/utils/props/textProps.js +18 -24
- package/lib/utils/props/tokens.js +16 -26
- package/lib/utils/props/variantProp.js +4 -11
- package/lib/utils/props/viewProps.js +10 -18
- package/lib/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +8 -16
- package/lib/utils/ssr-media-query/create-stylesheet/index.android.js +2 -10
- package/lib/utils/ssr-media-query/create-stylesheet/index.ios.js +2 -10
- package/lib/utils/ssr-media-query/create-stylesheet/index.js +12 -20
- package/lib/utils/ssr-media-query/hash.js +1 -7
- package/lib/utils/ssr-media-query/index.js +4 -17
- package/lib/utils/ssr-media-query/utils/common.js +1 -12
- package/lib/utils/ssr-media-query/utils/create-declaration-block.js +6 -14
- package/lib/utils/ssr-media-query/utils/create-media-query-styles.js +5 -12
- package/lib/utils/ssr-media-query/utils/hyphenate-style-name.js +1 -8
- package/lib/utils/ssr-media-query/utils/inject.js +8 -18
- package/lib/utils/ssr.js +19 -28
- package/lib/utils/transformGradient.js +3 -11
- package/lib/utils/useCopy.js +2 -10
- package/lib/utils/useHash.js +7 -14
- package/lib/utils/useHash.native.js +1 -8
- package/lib/utils/useOverlaidPosition.js +17 -25
- package/lib/utils/useResponsiveProp.js +10 -19
- package/lib/utils/useSafeLayoutEffect.js +6 -13
- package/lib/utils/useScrollBlocking.js +10 -17
- package/lib/utils/useScrollBlocking.native.js +1 -8
- package/lib/utils/useSpacingScale.js +7 -14
- package/lib/utils/useUniqueId.js +3 -10
- package/lib/utils/withLinkRouter.js +13 -19
- package/package.json +20 -25
- package/src/A11yInfoProvider/index.jsx +5 -2
- package/src/ActivityIndicator/index.jsx +12 -3
- package/src/BaseProvider/index.jsx +5 -2
- package/src/Carousel/Carousel.jsx +1 -1
- package/src/Carousel/CarouselItem/CarouselItem.jsx +16 -22
- package/src/Icon/IconText.jsx +0 -1
- package/src/InputLabel/InputLabel.jsx +2 -3
- package/src/List/ListItemBase.jsx +6 -1
- package/src/Listbox/GroupControl.jsx +6 -1
- package/src/Modal/ModalContent.jsx +3 -2
- package/src/Pagination/Pagination.jsx +9 -2
- package/src/Pagination/constants.js +3 -0
- package/src/Pagination/usePagination.js +14 -3
- package/src/TextInput/TextInputBase.jsx +1 -1
- package/src/Timeline/Timeline.jsx +6 -2
- package/src/Tooltip/Tooltip.native.jsx +31 -3
- package/src/Tooltip/shared.js +5 -0
- package/src/index.js +9 -10
- package/src/utils/a11y/semantics.js +0 -7
- package/types/FileUpload.d.ts +40 -0
- package/types/index.d.ts +3 -0
- package/lib-module/A11yInfoProvider/index.js +0 -62
- package/lib-module/A11yText/index.js +0 -68
- package/lib-module/ActionCard/ActionCard.js +0 -343
- package/lib-module/ActionCard/index.js +0 -2
- package/lib-module/ActivityIndicator/Spinner.js +0 -80
- package/lib-module/ActivityIndicator/Spinner.native.js +0 -144
- package/lib-module/ActivityIndicator/index.js +0 -44
- package/lib-module/ActivityIndicator/shared.js +0 -14
- package/lib-module/Autocomplete/Autocomplete.js +0 -481
- package/lib-module/Autocomplete/Loading.js +0 -36
- package/lib-module/Autocomplete/Suggestions.js +0 -66
- package/lib-module/Autocomplete/constants.js +0 -4
- package/lib-module/Autocomplete/dictionary.js +0 -12
- package/lib-module/Autocomplete/index.js +0 -2
- package/lib-module/Badge/Badge.js +0 -102
- package/lib-module/Badge/index.js +0 -2
- package/lib-module/BaseProvider/HydrationContext.js +0 -48
- package/lib-module/BaseProvider/index.js +0 -38
- package/lib-module/Box/Box.js +0 -379
- package/lib-module/Box/backgroundImageStylesMap.js +0 -94
- package/lib-module/Box/index.js +0 -2
- package/lib-module/Button/Button.js +0 -34
- package/lib-module/Button/ButtonBase.js +0 -347
- package/lib-module/Button/ButtonDropdown.js +0 -173
- package/lib-module/Button/ButtonGroup.js +0 -272
- package/lib-module/Button/ButtonLink.js +0 -50
- package/lib-module/Button/index.js +0 -5
- package/lib-module/Button/propTypes.js +0 -46
- package/lib-module/Card/Card.js +0 -330
- package/lib-module/Card/CardBase.js +0 -114
- package/lib-module/Card/PressableCardBase.js +0 -112
- package/lib-module/Card/index.js +0 -4
- package/lib-module/CardGroup/CardGroup.js +0 -210
- package/lib-module/CardGroup/dictionary.js +0 -8
- package/lib-module/CardGroup/index.js +0 -2
- package/lib-module/Carousel/Carousel.js +0 -894
- package/lib-module/Carousel/CarouselContext.js +0 -51
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +0 -53
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +0 -150
- package/lib-module/Carousel/CarouselItem/index.js +0 -2
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -54
- package/lib-module/Carousel/CarouselStepTracker/index.js +0 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +0 -50
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +0 -89
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +0 -118
- package/lib-module/Carousel/CarouselTabs/index.js +0 -2
- package/lib-module/Carousel/CarouselThumbnail.js +0 -113
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -71
- package/lib-module/Carousel/dictionary.js +0 -22
- package/lib-module/Carousel/index.js +0 -3
- package/lib-module/Checkbox/Checkbox.js +0 -343
- package/lib-module/Checkbox/CheckboxButton.js +0 -164
- package/lib-module/Checkbox/CheckboxGroup.js +0 -240
- package/lib-module/Checkbox/CheckboxInput.js +0 -50
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -5
- package/lib-module/Checkbox/index.js +0 -3
- package/lib-module/CheckboxCard/CheckboxCard.js +0 -183
- package/lib-module/CheckboxCard/index.js +0 -2
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +0 -206
- package/lib-module/CheckboxCardGroup/index.js +0 -2
- package/lib-module/ColourToggle/ColourBubble.js +0 -126
- package/lib-module/ColourToggle/ColourToggle.js +0 -92
- package/lib-module/ColourToggle/index.js +0 -2
- package/lib-module/Divider/Divider.js +0 -133
- package/lib-module/Divider/index.js +0 -2
- package/lib-module/DownloadApp/DownloadApp.js +0 -160
- package/lib-module/DownloadApp/dictionary.js +0 -10
- package/lib-module/DownloadApp/index.js +0 -2
- package/lib-module/ExpandCollapse/Accordion.js +0 -15
- package/lib-module/ExpandCollapse/Control.js +0 -165
- package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -98
- package/lib-module/ExpandCollapse/Panel.js +0 -242
- package/lib-module/ExpandCollapse/dictionary.js +0 -10
- package/lib-module/ExpandCollapse/index.js +0 -7
- package/lib-module/Feedback/Feedback.js +0 -161
- package/lib-module/Feedback/index.js +0 -2
- package/lib-module/Fieldset/Fieldset.js +0 -194
- package/lib-module/Fieldset/FieldsetContainer.js +0 -48
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -32
- package/lib-module/Fieldset/Legend.js +0 -24
- package/lib-module/Fieldset/Legend.native.js +0 -31
- package/lib-module/Fieldset/cssReset.js +0 -14
- package/lib-module/Fieldset/index.js +0 -2
- package/lib-module/FileUpload/FileUpload.js +0 -329
- package/lib-module/FileUpload/NotificationContent.js +0 -55
- package/lib-module/FileUpload/dictionary.js +0 -40
- package/lib-module/FileUpload/index.js +0 -2
- package/lib-module/FlexGrid/Col/Col.js +0 -257
- package/lib-module/FlexGrid/Col/index.js +0 -2
- package/lib-module/FlexGrid/FlexGrid.js +0 -158
- package/lib-module/FlexGrid/Row/Row.js +0 -181
- package/lib-module/FlexGrid/Row/index.js +0 -2
- package/lib-module/FlexGrid/helpers/index.js +0 -15
- package/lib-module/FlexGrid/index.js +0 -2
- package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
- package/lib-module/Footnote/Footnote.js +0 -317
- package/lib-module/Footnote/FootnoteLink.js +0 -107
- package/lib-module/Footnote/dictionary.js +0 -12
- package/lib-module/Footnote/index.js +0 -4
- package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -165
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -79
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -46
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -26
- package/lib-module/HorizontalScroll/dictionary.js +0 -11
- package/lib-module/HorizontalScroll/index.js +0 -11
- package/lib-module/HorizontalScroll/itemPositions.js +0 -113
- package/lib-module/Icon/Icon.js +0 -93
- package/lib-module/Icon/IconText.js +0 -114
- package/lib-module/Icon/index.js +0 -4
- package/lib-module/IconButton/IconButton.js +0 -203
- package/lib-module/IconButton/index.js +0 -2
- package/lib-module/InputLabel/InputLabel.js +0 -146
- package/lib-module/InputLabel/LabelContent.js +0 -28
- package/lib-module/InputLabel/LabelContent.native.js +0 -18
- package/lib-module/InputLabel/index.js +0 -2
- package/lib-module/InputSupports/InputSupports.js +0 -108
- package/lib-module/InputSupports/index.js +0 -2
- package/lib-module/InputSupports/useInputSupports.js +0 -31
- package/lib-module/Link/ChevronLink.js +0 -68
- package/lib-module/Link/InlinePressable.js +0 -48
- package/lib-module/Link/InlinePressable.native.js +0 -87
- package/lib-module/Link/Link.js +0 -28
- package/lib-module/Link/LinkBase.js +0 -269
- package/lib-module/Link/TextButton.js +0 -43
- package/lib-module/Link/index.js +0 -5
- package/lib-module/List/List.js +0 -77
- package/lib-module/List/ListItem.js +0 -32
- package/lib-module/List/ListItemBase.js +0 -164
- package/lib-module/List/ListItemContent.js +0 -73
- package/lib-module/List/ListItemMark.js +0 -126
- package/lib-module/List/PressableListItemBase.js +0 -112
- package/lib-module/List/index.js +0 -5
- package/lib-module/Listbox/GroupControl.js +0 -102
- package/lib-module/Listbox/Listbox.js +0 -172
- package/lib-module/Listbox/ListboxContext.js +0 -4
- package/lib-module/Listbox/ListboxGroup.js +0 -125
- package/lib-module/Listbox/ListboxItem.js +0 -76
- package/lib-module/Listbox/ListboxOverlay.js +0 -78
- package/lib-module/Listbox/PressableItem.js +0 -140
- package/lib-module/Listbox/index.js +0 -2
- package/lib-module/Modal/Modal.js +0 -373
- package/lib-module/Modal/ModalContent.js +0 -179
- package/lib-module/Modal/WebModal.js +0 -76
- package/lib-module/Modal/dictionary.js +0 -9
- package/lib-module/Modal/index.js +0 -2
- package/lib-module/MultiSelectFilter/ModalOverlay.js +0 -156
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +0 -526
- package/lib-module/MultiSelectFilter/dictionary.js +0 -12
- package/lib-module/MultiSelectFilter/index.js +0 -2
- package/lib-module/Notification/Notification.js +0 -429
- package/lib-module/Notification/dictionary.js +0 -8
- package/lib-module/Notification/index.js +0 -2
- package/lib-module/OrderedList/Item.js +0 -160
- package/lib-module/OrderedList/ItemBase.js +0 -43
- package/lib-module/OrderedList/OrderedList.js +0 -64
- package/lib-module/OrderedList/OrderedListBase.js +0 -36
- package/lib-module/OrderedList/index.js +0 -2
- package/lib-module/Pagination/PageButton.js +0 -74
- package/lib-module/Pagination/Pagination.js +0 -211
- package/lib-module/Pagination/SideButton.js +0 -113
- package/lib-module/Pagination/dictionary.js +0 -18
- package/lib-module/Pagination/index.js +0 -2
- package/lib-module/Pagination/usePagination.js +0 -69
- package/lib-module/Portal/Portal.js +0 -50
- package/lib-module/Portal/Portal.native.js +0 -2
- package/lib-module/Portal/index.js +0 -2
- package/lib-module/PriceLockup/PriceLockup.js +0 -225
- package/lib-module/PriceLockup/index.js +0 -2
- package/lib-module/PriceLockup/utils/renderFootnoteContent.js +0 -87
- package/lib-module/PriceLockup/utils/renderFootnoteLinks.js +0 -28
- package/lib-module/PriceLockup/utils/renderPrice.js +0 -141
- package/lib-module/PriceLockup/utils/renderTypography.js +0 -23
- package/lib-module/ProductCard/ProductCard.js +0 -232
- package/lib-module/ProductCard/dictionary.js +0 -38
- package/lib-module/ProductCard/index.js +0 -2
- package/lib-module/ProductCardGroup/ProductCardGroup.js +0 -70
- package/lib-module/ProductCardGroup/index.js +0 -2
- package/lib-module/Progress/Progress.js +0 -88
- package/lib-module/Progress/ProgressBar.js +0 -133
- package/lib-module/Progress/ProgressBarBackground.js +0 -40
- package/lib-module/Progress/index.js +0 -4
- package/lib-module/QuickLinks/QuickLinks.js +0 -78
- package/lib-module/QuickLinks/QuickLinksCard.js +0 -33
- package/lib-module/QuickLinks/QuickLinksItem.js +0 -51
- package/lib-module/QuickLinks/index.js +0 -4
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +0 -69
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +0 -147
- package/lib-module/QuickLinksFeature/index.js +0 -4
- package/lib-module/Radio/Radio.js +0 -283
- package/lib-module/Radio/RadioButton.js +0 -184
- package/lib-module/Radio/RadioGroup.js +0 -255
- package/lib-module/Radio/RadioInput.js +0 -50
- package/lib-module/Radio/RadioInput.native.js +0 -5
- package/lib-module/Radio/index.js +0 -3
- package/lib-module/RadioCard/RadioCard.js +0 -211
- package/lib-module/RadioCard/RadioCardGroup.js +0 -257
- package/lib-module/RadioCard/index.js +0 -3
- package/lib-module/Responsive/Responsive.js +0 -65
- package/lib-module/Responsive/ResponsiveProp.js +0 -39
- package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +0 -68
- package/lib-module/Responsive/index.js +0 -2
- package/lib-module/Search/Search.js +0 -242
- package/lib-module/Search/dictionary.js +0 -12
- package/lib-module/Search/index.js +0 -2
- package/lib-module/Select/Group.js +0 -24
- package/lib-module/Select/Group.native.js +0 -16
- package/lib-module/Select/Item.js +0 -23
- package/lib-module/Select/Item.native.js +0 -2
- package/lib-module/Select/Picker.js +0 -97
- package/lib-module/Select/Picker.native.js +0 -120
- package/lib-module/Select/Select.js +0 -337
- package/lib-module/Select/constants.js +0 -5
- package/lib-module/Select/index.js +0 -6
- package/lib-module/SideNav/Item.js +0 -143
- package/lib-module/SideNav/ItemContent.js +0 -50
- package/lib-module/SideNav/ItemsGroup.js +0 -121
- package/lib-module/SideNav/SideNav.js +0 -131
- package/lib-module/SideNav/index.js +0 -1
- package/lib-module/Skeleton/Skeleton.js +0 -177
- package/lib-module/Skeleton/index.js +0 -2
- package/lib-module/Skeleton/skeleton.constant.js +0 -2
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -14
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -28
- package/lib-module/SkipLink/SkipLink.js +0 -190
- package/lib-module/SkipLink/index.js +0 -2
- package/lib-module/Spacer/Spacer.js +0 -95
- package/lib-module/Spacer/index.js +0 -2
- package/lib-module/StackView/StackView.js +0 -126
- package/lib-module/StackView/StackWrap.js +0 -51
- package/lib-module/StackView/StackWrap.native.js +0 -4
- package/lib-module/StackView/StackWrapBox.js +0 -114
- package/lib-module/StackView/StackWrapGap.js +0 -61
- package/lib-module/StackView/common.js +0 -35
- package/lib-module/StackView/getStackedContent.js +0 -123
- package/lib-module/StackView/index.js +0 -5
- package/lib-module/Status/Status.js +0 -167
- package/lib-module/Status/index.js +0 -2
- package/lib-module/StepTracker/Step.js +0 -265
- package/lib-module/StepTracker/StepTracker.js +0 -208
- package/lib-module/StepTracker/dictionary.js +0 -30
- package/lib-module/StepTracker/index.js +0 -2
- package/lib-module/TabBar/TabBar.js +0 -125
- package/lib-module/TabBar/TabBarItem.js +0 -177
- package/lib-module/TabBar/index.js +0 -2
- package/lib-module/Tabs/Tabs.js +0 -179
- package/lib-module/Tabs/TabsItem.js +0 -239
- package/lib-module/Tabs/index.js +0 -2
- package/lib-module/Tags/Tags.js +0 -245
- package/lib-module/Tags/index.js +0 -2
- package/lib-module/TextInput/TextArea.js +0 -97
- package/lib-module/TextInput/TextInput.js +0 -80
- package/lib-module/TextInput/TextInputBase.js +0 -436
- package/lib-module/TextInput/dictionary.js +0 -12
- package/lib-module/TextInput/index.js +0 -3
- package/lib-module/TextInput/propTypes.js +0 -34
- package/lib-module/ThemeProvider/ThemeProvider.js +0 -84
- package/lib-module/ThemeProvider/index.js +0 -7
- package/lib-module/ThemeProvider/useResponsiveThemeTokens.js +0 -81
- package/lib-module/ThemeProvider/useSetTheme.js +0 -24
- package/lib-module/ThemeProvider/useTheme.js +0 -11
- package/lib-module/ThemeProvider/useThemeTokens.js +0 -109
- package/lib-module/ThemeProvider/utils/index.js +0 -2
- package/lib-module/ThemeProvider/utils/styles.js +0 -198
- package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -160
- package/lib-module/Timeline/Timeline.js +0 -168
- package/lib-module/Timeline/index.js +0 -2
- package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -280
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -208
- package/lib-module/ToggleSwitch/index.js +0 -3
- package/lib-module/Tooltip/Backdrop.js +0 -50
- package/lib-module/Tooltip/Backdrop.native.js +0 -41
- package/lib-module/Tooltip/Tooltip.js +0 -280
- package/lib-module/Tooltip/Tooltip.native.js +0 -328
- package/lib-module/Tooltip/dictionary.js +0 -8
- package/lib-module/Tooltip/getTooltipPosition.js +0 -170
- package/lib-module/Tooltip/index.js +0 -5
- package/lib-module/Tooltip/shared.js +0 -36
- package/lib-module/TooltipButton/TooltipButton.js +0 -90
- package/lib-module/TooltipButton/index.js +0 -2
- package/lib-module/Typography/Typography.js +0 -254
- package/lib-module/Typography/index.js +0 -2
- package/lib-module/Validator/Validator.js +0 -222
- package/lib-module/Validator/index.js +0 -2
- package/lib-module/ViewportProvider/ViewportProvider.js +0 -27
- package/lib-module/ViewportProvider/index.js +0 -3
- package/lib-module/ViewportProvider/useViewport.js +0 -3
- package/lib-module/ViewportProvider/useViewportListener.js +0 -37
- package/lib-module/index.js +0 -76
- package/lib-module/server.js +0 -4
- package/lib-module/utils/BaseView/BaseView.js +0 -42
- package/lib-module/utils/BaseView/BaseView.native.js +0 -5
- package/lib-module/utils/BaseView/index.js +0 -2
- package/lib-module/utils/a11y/index.js +0 -2
- package/lib-module/utils/a11y/semantics.js +0 -144
- package/lib-module/utils/a11y/textSize.js +0 -35
- package/lib-module/utils/animation/index.js +0 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -86
- package/lib-module/utils/children.js +0 -117
- package/lib-module/utils/containUniqueFields.js +0 -24
- package/lib-module/utils/convertFromMegaByteToByte.js +0 -10
- package/lib-module/utils/floating-ui/index.js +0 -1
- package/lib-module/utils/floating-ui/index.native.js +0 -1
- package/lib-module/utils/formatImageSource.js +0 -27
- package/lib-module/utils/hasOwnProperty.js +0 -11
- package/lib-module/utils/htmlAttrs.js +0 -23
- package/lib-module/utils/index.js +0 -25
- package/lib-module/utils/info/index.js +0 -8
- package/lib-module/utils/info/platform/index.js +0 -14
- package/lib-module/utils/info/platform/platform.android.js +0 -1
- package/lib-module/utils/info/platform/platform.ios.js +0 -1
- package/lib-module/utils/info/platform/platform.js +0 -1
- package/lib-module/utils/info/platform/platform.native.js +0 -4
- package/lib-module/utils/info/versions.js +0 -6
- package/lib-module/utils/input.js +0 -185
- package/lib-module/utils/pressability.js +0 -112
- package/lib-module/utils/props/a11yProps.js +0 -310
- package/lib-module/utils/props/clickProps.js +0 -25
- package/lib-module/utils/props/componentPropType.js +0 -50
- package/lib-module/utils/props/copyPropTypes.js +0 -2
- package/lib-module/utils/props/getPropSelector.js +0 -52
- package/lib-module/utils/props/handlerProps.js +0 -105
- package/lib-module/utils/props/hrefAttrsProp.js +0 -33
- package/lib-module/utils/props/index.js +0 -19
- package/lib-module/utils/props/inputSupportsProps.js +0 -68
- package/lib-module/utils/props/linkProps.js +0 -43
- package/lib-module/utils/props/paddingProp.js +0 -9
- package/lib-module/utils/props/pressProps.js +0 -42
- package/lib-module/utils/props/rectProp.js +0 -9
- package/lib-module/utils/props/responsiveProps.js +0 -28
- package/lib-module/utils/props/selectSystemProps.js +0 -23
- package/lib-module/utils/props/spacingProps.js +0 -57
- package/lib-module/utils/props/textInputProps.js +0 -188
- package/lib-module/utils/props/textProps.js +0 -61
- package/lib-module/utils/props/tokens.js +0 -130
- package/lib-module/utils/props/variantProp.js +0 -18
- package/lib-module/utils/props/viewProps.js +0 -21
- package/lib-module/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +0 -48
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.android.js +0 -2
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.ios.js +0 -2
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.js +0 -36
- package/lib-module/utils/ssr-media-query/hash.js +0 -13
- package/lib-module/utils/ssr-media-query/index.js +0 -6
- package/lib-module/utils/ssr-media-query/utils/common.js +0 -33
- package/lib-module/utils/ssr-media-query/utils/create-declaration-block.js +0 -16
- package/lib-module/utils/ssr-media-query/utils/create-media-query-styles.js +0 -60
- package/lib-module/utils/ssr-media-query/utils/hyphenate-style-name.js +0 -12
- package/lib-module/utils/ssr-media-query/utils/inject.js +0 -39
- package/lib-module/utils/ssr.js +0 -142
- package/lib-module/utils/transformGradient.js +0 -15
- package/lib-module/utils/useCopy.js +0 -42
- package/lib-module/utils/useHash.js +0 -41
- package/lib-module/utils/useHash.native.js +0 -6
- package/lib-module/utils/useOverlaidPosition.js +0 -214
- package/lib-module/utils/useResponsiveProp.js +0 -45
- package/lib-module/utils/useSafeLayoutEffect.js +0 -28
- package/lib-module/utils/useScrollBlocking.js +0 -51
- package/lib-module/utils/useScrollBlocking.native.js +0 -2
- package/lib-module/utils/useSpacingScale.js +0 -123
- package/lib-module/utils/useUniqueId.js +0 -11
- package/lib-module/utils/withLinkRouter.js +0 -84
package/lib/Button/ButtonBase.js
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var _ThemeProvider = require("../ThemeProvider");
|
|
14
|
-
var _propTypes2 = _interopRequireDefault(require("./propTypes"));
|
|
15
|
-
var _utils = require("../utils");
|
|
16
|
-
var _Icon = require("../Icon");
|
|
17
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.linkProps, _utils.viewProps]);
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import Pressable from "react-native-web/dist/exports/Pressable";
|
|
4
|
+
import View from "react-native-web/dist/exports/View";
|
|
5
|
+
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
6
|
+
import Platform from "react-native-web/dist/exports/Platform";
|
|
7
|
+
import { applyTextStyles, applyShadowToken, applyOuterBorder, useTheme } from '../ThemeProvider';
|
|
8
|
+
import buttonPropTypes from './propTypes';
|
|
9
|
+
import { a11yProps, clickProps, focusHandlerProps, getCursorStyle, linkProps, resolvePressableState, resolvePressableTokens, selectSystemProps, viewProps, wrapStringsInText, withLinkRouter } from '../utils';
|
|
10
|
+
import { IconText } from '../Icon';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, linkProps, viewProps]);
|
|
20
13
|
const getOuterBorderOffset = _ref => {
|
|
21
14
|
let {
|
|
22
15
|
outerBorderGap = 0,
|
|
@@ -34,14 +27,14 @@ const selectOuterContainerStyles = _ref2 => {
|
|
|
34
27
|
outerBackgroundColor
|
|
35
28
|
} = _ref2;
|
|
36
29
|
return {
|
|
37
|
-
...
|
|
30
|
+
...Platform.select({
|
|
38
31
|
native: {
|
|
39
32
|
alignSelf: 'flex-start'
|
|
40
33
|
}
|
|
41
34
|
}),
|
|
42
35
|
backgroundColor: outerBackgroundColor,
|
|
43
36
|
opacity,
|
|
44
|
-
...
|
|
37
|
+
...applyOuterBorder({
|
|
45
38
|
outerBorderGap,
|
|
46
39
|
outerBorderWidth,
|
|
47
40
|
outerBorderColor,
|
|
@@ -73,7 +66,7 @@ const selectOuterSizeStyles = _ref3 => {
|
|
|
73
66
|
return {
|
|
74
67
|
...sizeStyles,
|
|
75
68
|
// Wrap content, stopping a flex parent's default align-items: stretch stretching focus ring beyond content
|
|
76
|
-
...
|
|
69
|
+
...Platform.select({
|
|
77
70
|
// width: fit-content isn't supported on Firefox; can't cascade props like CSS `width: fit-content; width: --moz-fit-content;`
|
|
78
71
|
web: {
|
|
79
72
|
display: 'inline-flex'
|
|
@@ -83,7 +76,7 @@ const selectOuterSizeStyles = _ref3 => {
|
|
|
83
76
|
}
|
|
84
77
|
|
|
85
78
|
// Ensure the negative margin doesn't make element off-centre
|
|
86
|
-
if (
|
|
79
|
+
if (Platform.OS === 'web') {
|
|
87
80
|
sizeStyles.width = `calc(${width} + ${outerBorderOffset * 2}px)`;
|
|
88
81
|
sizeStyles.height = `calc(${height} + ${outerBorderOffset * 2}px)`;
|
|
89
82
|
return sizeStyles;
|
|
@@ -143,7 +136,7 @@ const selectInnerContainerStyles = _ref4 => {
|
|
|
143
136
|
}),
|
|
144
137
|
backgroundColor,
|
|
145
138
|
minWidth,
|
|
146
|
-
...
|
|
139
|
+
...applyShadowToken(shadow)
|
|
147
140
|
};
|
|
148
141
|
};
|
|
149
142
|
const selectBorderStyles = _ref6 => {
|
|
@@ -177,7 +170,7 @@ const selectTextStyles = (_ref7, themeOptions) => {
|
|
|
177
170
|
textLine,
|
|
178
171
|
textLineStyle
|
|
179
172
|
} = _ref7;
|
|
180
|
-
return
|
|
173
|
+
return applyTextStyles({
|
|
181
174
|
fontSize,
|
|
182
175
|
color,
|
|
183
176
|
lineHeight,
|
|
@@ -193,14 +186,14 @@ const selectWebOnlyStyles = (inactive, themeTokens, _ref8) => {
|
|
|
193
186
|
let {
|
|
194
187
|
accessibilityRole
|
|
195
188
|
} = _ref8;
|
|
196
|
-
return
|
|
189
|
+
return Platform.select({
|
|
197
190
|
web: {
|
|
198
191
|
// if it would overflow the container, wraps instead
|
|
199
192
|
maxWidth: `calc(100% + ${getOuterBorderOffset(themeTokens) * 2}px)`,
|
|
200
193
|
width: 'fit-content',
|
|
201
194
|
outline: 'none',
|
|
202
195
|
// removes the default browser :focus outline
|
|
203
|
-
...
|
|
196
|
+
...getCursorStyle(inactive, accessibilityRole)
|
|
204
197
|
},
|
|
205
198
|
default: {}
|
|
206
199
|
});
|
|
@@ -225,7 +218,7 @@ const selectItemIconTokens = _ref10 => {
|
|
|
225
218
|
color: iconColor || color
|
|
226
219
|
};
|
|
227
220
|
};
|
|
228
|
-
const ButtonBase = /*#__PURE__*/
|
|
221
|
+
const ButtonBase = /*#__PURE__*/React.forwardRef((_ref11, ref) => {
|
|
229
222
|
let {
|
|
230
223
|
id,
|
|
231
224
|
href,
|
|
@@ -244,13 +237,13 @@ const ButtonBase = /*#__PURE__*/_react.default.forwardRef((_ref11, ref) => {
|
|
|
244
237
|
const {
|
|
245
238
|
onPress,
|
|
246
239
|
...rest
|
|
247
|
-
} =
|
|
240
|
+
} = clickProps.toPressProps(rawRest);
|
|
248
241
|
const extraButtonState = {
|
|
249
242
|
inactive,
|
|
250
243
|
selected,
|
|
251
244
|
iconPosition
|
|
252
245
|
};
|
|
253
|
-
const resolveButtonTokens = pressableState =>
|
|
246
|
+
const resolveButtonTokens = pressableState => resolvePressableTokens(tokens, pressableState, extraButtonState);
|
|
254
247
|
const systemProps = selectProps(rest);
|
|
255
248
|
const getPressableStyle = pressableState => {
|
|
256
249
|
const themeTokens = resolveButtonTokens(pressableState);
|
|
@@ -258,11 +251,11 @@ const ButtonBase = /*#__PURE__*/_react.default.forwardRef((_ref11, ref) => {
|
|
|
258
251
|
};
|
|
259
252
|
const {
|
|
260
253
|
themeOptions
|
|
261
|
-
} =
|
|
262
|
-
return /*#__PURE__*/(
|
|
254
|
+
} = useTheme();
|
|
255
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
263
256
|
ref: ref,
|
|
264
257
|
href: href,
|
|
265
|
-
onPress:
|
|
258
|
+
onPress: linkProps.handleHref({
|
|
266
259
|
href,
|
|
267
260
|
onPress
|
|
268
261
|
}),
|
|
@@ -274,12 +267,11 @@ const ButtonBase = /*#__PURE__*/_react.default.forwardRef((_ref11, ref) => {
|
|
|
274
267
|
const themeTokens = resolveButtonTokens(pressableState);
|
|
275
268
|
const containerStyles = selectInnerContainerStyles(themeTokens);
|
|
276
269
|
const borderStyles = selectBorderStyles(themeTokens);
|
|
277
|
-
const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text,
|
|
270
|
+
const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text, Platform.select({
|
|
278
271
|
web: {
|
|
279
272
|
pointerEvents: 'none' // bubbles press event to parent `Pressable`
|
|
280
273
|
}
|
|
281
274
|
})];
|
|
282
|
-
|
|
283
275
|
const iconTokens = selectItemIconTokens(themeTokens);
|
|
284
276
|
const {
|
|
285
277
|
iconSpace
|
|
@@ -290,9 +282,9 @@ const ButtonBase = /*#__PURE__*/_react.default.forwardRef((_ref11, ref) => {
|
|
|
290
282
|
const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
|
|
291
283
|
const IconComponent = icon || themeTokens.icon;
|
|
292
284
|
const rowStyles = selectButtonStyles(themeTokens);
|
|
293
|
-
return /*#__PURE__*/(
|
|
285
|
+
return /*#__PURE__*/_jsx(View, {
|
|
294
286
|
id: id,
|
|
295
|
-
style: [containerStyles, borderStyles, stretchStyles, staticStyles.row,
|
|
287
|
+
style: [containerStyles, borderStyles, stretchStyles, staticStyles.row, Platform.select({
|
|
296
288
|
web: {
|
|
297
289
|
maxWidth: '100%',
|
|
298
290
|
// ensure overflowing content wraps
|
|
@@ -303,7 +295,7 @@ const ButtonBase = /*#__PURE__*/_react.default.forwardRef((_ref11, ref) => {
|
|
|
303
295
|
...rowStyles
|
|
304
296
|
}
|
|
305
297
|
})],
|
|
306
|
-
children: /*#__PURE__*/(
|
|
298
|
+
children: /*#__PURE__*/_jsx(IconText, {
|
|
307
299
|
icon: IconComponent,
|
|
308
300
|
iconPosition: iconPosition,
|
|
309
301
|
space: icon ? iconSpace : 0,
|
|
@@ -311,8 +303,8 @@ const ButtonBase = /*#__PURE__*/_react.default.forwardRef((_ref11, ref) => {
|
|
|
311
303
|
...iconProps,
|
|
312
304
|
tokens: iconTokens
|
|
313
305
|
},
|
|
314
|
-
children:
|
|
315
|
-
...
|
|
306
|
+
children: wrapStringsInText(typeof children === 'function' ? children({
|
|
307
|
+
...resolvePressableState(pressableState, extraButtonState),
|
|
316
308
|
textStyles
|
|
317
309
|
}) : children, {
|
|
318
310
|
style: textStyles
|
|
@@ -324,18 +316,18 @@ const ButtonBase = /*#__PURE__*/_react.default.forwardRef((_ref11, ref) => {
|
|
|
324
316
|
});
|
|
325
317
|
ButtonBase.displayName = 'ButtonBase';
|
|
326
318
|
ButtonBase.propTypes = {
|
|
327
|
-
id:
|
|
319
|
+
id: PropTypes.string,
|
|
328
320
|
...selectedSystemPropTypes,
|
|
329
|
-
...
|
|
321
|
+
...buttonPropTypes
|
|
330
322
|
};
|
|
331
|
-
const staticStyles =
|
|
323
|
+
const staticStyles = StyleSheet.create({
|
|
332
324
|
row: {
|
|
333
325
|
// Apply all button alignment horizontally; no vertical stacking within a button
|
|
334
326
|
flexDirection: 'row',
|
|
335
327
|
justifyContent: 'center'
|
|
336
328
|
},
|
|
337
329
|
text: {
|
|
338
|
-
...
|
|
330
|
+
...Platform.select({
|
|
339
331
|
// TODO: https://github.com/telus/universal-design-system/issues/487
|
|
340
332
|
web: {
|
|
341
333
|
transition: 'color 200ms'
|
|
@@ -351,5 +343,4 @@ const staticStyles = _StyleSheet.default.create({
|
|
|
351
343
|
justifyContent: 'center'
|
|
352
344
|
}
|
|
353
345
|
});
|
|
354
|
-
|
|
355
|
-
exports.default = _default;
|
|
346
|
+
export default withLinkRouter(ButtonBase);
|
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _ThemeProvider = require("../ThemeProvider");
|
|
15
|
-
var _utils = require("../utils");
|
|
16
|
-
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
17
|
-
var _StackView = require("../StackView");
|
|
18
|
-
var _pressability = require("../utils/pressability");
|
|
19
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
-
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); }
|
|
21
|
-
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; }
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import Platform from "react-native-web/dist/exports/Platform";
|
|
4
|
+
import Text from "react-native-web/dist/exports/Text";
|
|
5
|
+
import View from "react-native-web/dist/exports/View";
|
|
6
|
+
import buttonPropTypes, { textAndA11yText } from './propTypes';
|
|
7
|
+
import ButtonBase from './ButtonBase';
|
|
8
|
+
import { useThemeTokensCallback } from '../ThemeProvider';
|
|
9
|
+
import { a11yProps, getTokensPropType, focusHandlerProps, resolvePressableState, selectTokens, useInputValue } from '../utils';
|
|
10
|
+
import Icon from '../Icon';
|
|
11
|
+
import { getStackedContent } from '../StackView';
|
|
12
|
+
import { getPressHandlersWithArgs } from '../utils/pressability';
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
14
|
const selectIconTokens = _ref => {
|
|
24
15
|
let {
|
|
25
16
|
icon,
|
|
@@ -43,7 +34,7 @@ const selectIconTokens = _ref => {
|
|
|
43
34
|
borderRadius: iconBorderRadius,
|
|
44
35
|
alignSelf: iconAlignSelf,
|
|
45
36
|
padding: iconPadding,
|
|
46
|
-
...
|
|
37
|
+
...Platform.select({
|
|
47
38
|
// TODO: https://github.com/telus/universal-design-system/issues/487
|
|
48
39
|
web: {
|
|
49
40
|
transition: 'color 200ms, background 200ms'
|
|
@@ -58,7 +49,7 @@ const selectIconTokens = _ref => {
|
|
|
58
49
|
}
|
|
59
50
|
};
|
|
60
51
|
};
|
|
61
|
-
const ButtonDropdown = /*#__PURE__*/
|
|
52
|
+
const ButtonDropdown = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
62
53
|
let {
|
|
63
54
|
value,
|
|
64
55
|
initialValue,
|
|
@@ -75,7 +66,7 @@ const ButtonDropdown = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
75
66
|
const {
|
|
76
67
|
currentValue: isOpen,
|
|
77
68
|
setValue: setIsOpen
|
|
78
|
-
} =
|
|
69
|
+
} = useInputValue({
|
|
79
70
|
value,
|
|
80
71
|
initialValue,
|
|
81
72
|
onChange,
|
|
@@ -86,21 +77,21 @@ const ButtonDropdown = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
86
77
|
inactive,
|
|
87
78
|
...variant
|
|
88
79
|
};
|
|
89
|
-
const getTokens =
|
|
90
|
-
const getButtonTokens = buttonState =>
|
|
80
|
+
const getTokens = useThemeTokensCallback('ButtonDropdown', tokens, extraState);
|
|
81
|
+
const getButtonTokens = buttonState => selectTokens('Button', getTokens(buttonState));
|
|
91
82
|
|
|
92
83
|
// Pass an object of relevant component state as first argument for any passed-in press handlers
|
|
93
|
-
const pressHandlers =
|
|
84
|
+
const pressHandlers = getPressHandlersWithArgs(props, [{
|
|
94
85
|
label,
|
|
95
86
|
open: isOpen
|
|
96
87
|
}]);
|
|
97
88
|
const handlePress = event => {
|
|
98
89
|
if (!inactive) {
|
|
99
|
-
if (pressHandlers.onPress) pressHandlers === null || pressHandlers === void 0
|
|
90
|
+
if (pressHandlers.onPress) pressHandlers === null || pressHandlers === void 0 || pressHandlers.onPress(event);
|
|
100
91
|
setIsOpen(!isOpen, event);
|
|
101
92
|
}
|
|
102
93
|
};
|
|
103
|
-
return /*#__PURE__*/(
|
|
94
|
+
return /*#__PURE__*/_jsx(ButtonBase, {
|
|
104
95
|
ref: ref,
|
|
105
96
|
...pressHandlers,
|
|
106
97
|
onPress: handlePress,
|
|
@@ -128,22 +119,22 @@ const ButtonDropdown = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
128
119
|
iconWrapperStyle,
|
|
129
120
|
icon: IconComponent
|
|
130
121
|
} = selectIconTokens(itemTokens);
|
|
131
|
-
const iconContent = IconComponent ? /*#__PURE__*/(
|
|
122
|
+
const iconContent = IconComponent ? /*#__PURE__*/_jsx(View, {
|
|
132
123
|
style: iconWrapperStyle,
|
|
133
|
-
children: /*#__PURE__*/(
|
|
124
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
134
125
|
icon: IconComponent,
|
|
135
126
|
tokens: iconTokens
|
|
136
127
|
})
|
|
137
128
|
}) : null;
|
|
138
129
|
const childrenContent = () => typeof children === 'function' ? children({
|
|
139
|
-
...
|
|
130
|
+
...resolvePressableState(buttonState, extraState),
|
|
140
131
|
textStyles
|
|
141
132
|
}) : children;
|
|
142
|
-
const content = children ? childrenContent() : /*#__PURE__*/(
|
|
133
|
+
const content = children ? childrenContent() : /*#__PURE__*/_jsx(Text, {
|
|
143
134
|
style: textStyles,
|
|
144
135
|
children: label
|
|
145
136
|
});
|
|
146
|
-
return
|
|
137
|
+
return getStackedContent(iconPosition === 'left' ? [iconContent, content] : [content, iconContent], {
|
|
147
138
|
space: iconSpace,
|
|
148
139
|
direction: 'row'
|
|
149
140
|
});
|
|
@@ -152,32 +143,31 @@ const ButtonDropdown = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
152
143
|
});
|
|
153
144
|
ButtonDropdown.displayName = 'ButtonDropdown';
|
|
154
145
|
ButtonDropdown.propTypes = {
|
|
155
|
-
...
|
|
156
|
-
...
|
|
157
|
-
...
|
|
158
|
-
children:
|
|
159
|
-
tokens:
|
|
146
|
+
...a11yProps.types,
|
|
147
|
+
...focusHandlerProps.types,
|
|
148
|
+
...buttonPropTypes,
|
|
149
|
+
children: textAndA11yText,
|
|
150
|
+
tokens: getTokensPropType('ButtonDropdown'),
|
|
160
151
|
/**
|
|
161
152
|
* Callback called when a controlled ButtonDropdown gets interacted with.
|
|
162
153
|
*/
|
|
163
|
-
onChange:
|
|
154
|
+
onChange: PropTypes.func,
|
|
164
155
|
/**
|
|
165
156
|
* `value` prop is being used to set the 'open' state of ButtonDropdown. Use it for
|
|
166
157
|
* controlled ButtonDropdown. For uncontrolled ButtonDropdown, use `initialValue`.
|
|
167
158
|
*/
|
|
168
|
-
value:
|
|
159
|
+
value: PropTypes.bool,
|
|
169
160
|
/**
|
|
170
161
|
* Use `initialValue` to provide the initial value for an uncontrolled version.
|
|
171
162
|
*/
|
|
172
|
-
initialValue:
|
|
163
|
+
initialValue: PropTypes.bool,
|
|
173
164
|
/**
|
|
174
165
|
* The label of ButtonDropdown.
|
|
175
166
|
*/
|
|
176
|
-
label:
|
|
167
|
+
label: PropTypes.string,
|
|
177
168
|
/**
|
|
178
169
|
* By default, `ButtonDropdown` is treated by accessibility tools as a radio button.
|
|
179
170
|
*/
|
|
180
|
-
accessibilityRole:
|
|
171
|
+
accessibilityRole: PropTypes.string
|
|
181
172
|
};
|
|
182
|
-
|
|
183
|
-
exports.default = _default;
|
|
173
|
+
export default ButtonDropdown;
|
|
@@ -1,25 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var _utils = require("../utils");
|
|
17
|
-
var _pressability = require("../utils/pressability");
|
|
18
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
-
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
21
|
-
const [selectItemProps, selectedItemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.pressProps, _utils.viewProps]);
|
|
22
|
-
const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import ABBPropTypes from 'airbnb-prop-types';
|
|
4
|
+
import Platform from "react-native-web/dist/exports/Platform";
|
|
5
|
+
import ButtonBase from './ButtonBase';
|
|
6
|
+
import { StackWrap } from '../StackView';
|
|
7
|
+
import Fieldset from '../Fieldset';
|
|
8
|
+
import { useViewport } from '../ViewportProvider';
|
|
9
|
+
import { useThemeTokens, useThemeTokensCallback } from '../ThemeProvider';
|
|
10
|
+
import { a11yProps, containUniqueFields, focusHandlerProps, pressProps, getTokensPropType, selectSystemProps, selectTokens, useMultipleInputValues, variantProp, viewProps } from '../utils';
|
|
11
|
+
import { getPressHandlersWithArgs } from '../utils/pressability';
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
14
|
+
const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, pressProps, viewProps]);
|
|
15
|
+
const ButtonGroup = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
23
16
|
let {
|
|
24
17
|
variant,
|
|
25
18
|
buttonVariant,
|
|
@@ -41,17 +34,17 @@ const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
41
34
|
copy,
|
|
42
35
|
iconPosition,
|
|
43
36
|
accessibilityRole = maxValues === 1 ? 'radiogroup' // radiogroup is cross-platform; only web aria has generic groups
|
|
44
|
-
:
|
|
37
|
+
: Platform.select({
|
|
45
38
|
web: 'group',
|
|
46
39
|
default: 'none'
|
|
47
40
|
}),
|
|
48
41
|
...rest
|
|
49
42
|
} = _ref;
|
|
50
|
-
const viewport =
|
|
51
|
-
const themeTokens =
|
|
43
|
+
const viewport = useViewport();
|
|
44
|
+
const themeTokens = useThemeTokens('ButtonGroup', tokens, variant, {
|
|
52
45
|
viewport
|
|
53
46
|
});
|
|
54
|
-
const stackTokens =
|
|
47
|
+
const stackTokens = selectTokens('StackView', themeTokens);
|
|
55
48
|
const {
|
|
56
49
|
direction,
|
|
57
50
|
space,
|
|
@@ -61,11 +54,11 @@ const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
61
54
|
padding,
|
|
62
55
|
gap
|
|
63
56
|
} = themeTokens;
|
|
64
|
-
const getButtonTokens =
|
|
57
|
+
const getButtonTokens = useThemeTokensCallback('ButtonGroupItem', tokens, variant);
|
|
65
58
|
const {
|
|
66
59
|
currentValues,
|
|
67
60
|
toggleOneValue
|
|
68
|
-
} =
|
|
61
|
+
} = useMultipleInputValues({
|
|
69
62
|
initialValues,
|
|
70
63
|
values,
|
|
71
64
|
maxValues,
|
|
@@ -78,13 +71,13 @@ const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
78
71
|
});
|
|
79
72
|
const itemA11yRole = systemProps.accessibilityRole === 'radiogroup' ? 'radio' : 'checkbox';
|
|
80
73
|
const uniqueFields = ['id', 'label'];
|
|
81
|
-
if (!
|
|
74
|
+
if (!containUniqueFields(items, uniqueFields)) {
|
|
82
75
|
throw new Error(`ButtonGroup items must have unique ${uniqueFields.join(', ')}`);
|
|
83
76
|
}
|
|
84
77
|
|
|
85
78
|
// Some web screenreaders e.g. MacOS Voiceover don't handle radiogroups properly unless radio is direct child of radiogroup
|
|
86
|
-
const innerRole =
|
|
87
|
-
return /*#__PURE__*/(
|
|
79
|
+
const innerRole = Platform.OS === 'web' && accessibilityRole === 'radiogroup' ? accessibilityRole : undefined;
|
|
80
|
+
return /*#__PURE__*/_jsx(Fieldset, {
|
|
88
81
|
...systemProps,
|
|
89
82
|
ref: ref,
|
|
90
83
|
name: inputGroupName,
|
|
@@ -102,7 +95,7 @@ const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
102
95
|
borderRadius,
|
|
103
96
|
backgroundColor,
|
|
104
97
|
padding,
|
|
105
|
-
...(
|
|
98
|
+
...(Platform.OS === 'web' ? {
|
|
106
99
|
gap,
|
|
107
100
|
width: 'fit-content'
|
|
108
101
|
} : {
|
|
@@ -110,7 +103,7 @@ const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
110
103
|
})
|
|
111
104
|
},
|
|
112
105
|
...selectProps(rest),
|
|
113
|
-
children: /*#__PURE__*/(
|
|
106
|
+
children: /*#__PURE__*/_jsx(StackWrap, {
|
|
114
107
|
accessibilityRole: innerRole,
|
|
115
108
|
space: space,
|
|
116
109
|
direction: direction,
|
|
@@ -128,7 +121,7 @@ const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
128
121
|
const isSelected = currentValues.includes(id);
|
|
129
122
|
|
|
130
123
|
// Pass an object of relevant component state as first argument for any passed-in press handlers
|
|
131
|
-
const pressHandlers =
|
|
124
|
+
const pressHandlers = getPressHandlersWithArgs(rest, [{
|
|
132
125
|
id,
|
|
133
126
|
label,
|
|
134
127
|
currentValues
|
|
@@ -144,12 +137,12 @@ const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
144
137
|
},
|
|
145
138
|
accessibilityRole: itemA11yRole,
|
|
146
139
|
accessibilityLabel,
|
|
147
|
-
...
|
|
140
|
+
...a11yProps.getPositionInSet(items.length, index)
|
|
148
141
|
};
|
|
149
142
|
|
|
150
143
|
// Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
|
|
151
144
|
// "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
|
|
152
|
-
return /*#__PURE__*/(
|
|
145
|
+
return /*#__PURE__*/_jsx(ButtonBase, {
|
|
153
146
|
ref: itemRef,
|
|
154
147
|
variant: buttonVariant,
|
|
155
148
|
...pressHandlers,
|
|
@@ -172,109 +165,108 @@ const ButtonGroup = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
172
165
|
ButtonGroup.displayName = 'ButtonGroup';
|
|
173
166
|
ButtonGroup.propTypes = {
|
|
174
167
|
...selectedSystemPropTypes,
|
|
175
|
-
tokens:
|
|
168
|
+
tokens: getTokensPropType('ButtonGroup'),
|
|
176
169
|
/**
|
|
177
170
|
* To allow Button specific variant
|
|
178
171
|
*/
|
|
179
|
-
buttonVariant:
|
|
172
|
+
buttonVariant: variantProp.propType,
|
|
180
173
|
/**
|
|
181
174
|
* Default variant prop
|
|
182
175
|
*/
|
|
183
|
-
variant:
|
|
176
|
+
variant: variantProp.propType,
|
|
184
177
|
/**
|
|
185
178
|
* The maximum number of items a user may select at once. Defaults to 1 and behaves
|
|
186
179
|
* like radio buttons. To have no limit and allow any number of selections, pass `null`.
|
|
187
180
|
*/
|
|
188
|
-
maxValues:
|
|
181
|
+
maxValues: PropTypes.number,
|
|
189
182
|
/**
|
|
190
183
|
* The options a user may select
|
|
191
184
|
*/
|
|
192
|
-
items:
|
|
185
|
+
items: PropTypes.arrayOf(PropTypes.shape({
|
|
193
186
|
...selectedItemPropTypes,
|
|
194
187
|
/**
|
|
195
188
|
* The text displayed to the user in the button, describing this option,
|
|
196
189
|
* passed to the button as its child.
|
|
197
190
|
*/
|
|
198
|
-
label:
|
|
191
|
+
label: PropTypes.string.isRequired,
|
|
199
192
|
/**
|
|
200
193
|
* An optional accessibility label may be passed to ButtonGroup Buttons
|
|
201
194
|
* which is applied as normal for a React Native accessibilityLabel prop.
|
|
202
195
|
*/
|
|
203
|
-
accessibilityLabel:
|
|
196
|
+
accessibilityLabel: PropTypes.string,
|
|
204
197
|
/**
|
|
205
198
|
* An optional unique string may be provided to identify this option,
|
|
206
199
|
* which will be used in code and passed to any onChange function.
|
|
207
200
|
* If not provided, the label is used.
|
|
208
201
|
*/
|
|
209
|
-
id:
|
|
202
|
+
id: PropTypes.string,
|
|
210
203
|
/**
|
|
211
204
|
* An optional ref for one individual button in the ButtonGroup
|
|
212
205
|
*/
|
|
213
|
-
ref:
|
|
206
|
+
ref: ABBPropTypes.ref()
|
|
214
207
|
})),
|
|
215
208
|
/**
|
|
216
209
|
* If provided, this function is called when the current selection is changed
|
|
217
210
|
* and is passed an array of the `id`s of all currently selected `items`.
|
|
218
211
|
*/
|
|
219
|
-
onChange:
|
|
212
|
+
onChange: PropTypes.func,
|
|
220
213
|
/**
|
|
221
214
|
* If the selected item(s) in the button group are to be controlled externally by
|
|
222
215
|
* a parent component, pass an array of strings as well as an `onChange` handler.
|
|
223
216
|
* Passing an array for "values" makes the ButtonGroup a "controlled" component that
|
|
224
217
|
* expects its state to be handled via `onChange` and so doesn't handle it itself.
|
|
225
218
|
*/
|
|
226
|
-
values:
|
|
219
|
+
values: PropTypes.arrayOf(PropTypes.string),
|
|
227
220
|
/**
|
|
228
221
|
* If `values` is not passed, making the ButtonGroup an "uncontrolled" component
|
|
229
222
|
* managing its own selected state, a default set of selections may be provided.
|
|
230
223
|
* Changing the `initialValues` does not change the user's selections.
|
|
231
224
|
*/
|
|
232
|
-
initialValues:
|
|
225
|
+
initialValues: PropTypes.arrayOf(PropTypes.string),
|
|
233
226
|
/**
|
|
234
227
|
* Defines if the icon will be displayed on the right or left side of the label.
|
|
235
228
|
*/
|
|
236
|
-
iconPosition:
|
|
229
|
+
iconPosition: PropTypes.oneOf(['left', 'right']),
|
|
237
230
|
/**
|
|
238
231
|
* Main text used to describe this group, used in Fieldset's Legend element.
|
|
239
232
|
*/
|
|
240
|
-
legend:
|
|
233
|
+
legend: PropTypes.string,
|
|
241
234
|
/**
|
|
242
235
|
* Optional additional text giving more detail to help a user make a choice.
|
|
243
236
|
*/
|
|
244
|
-
hint:
|
|
237
|
+
hint: PropTypes.string,
|
|
245
238
|
/**
|
|
246
239
|
* Position of the hint relative to label. Use `below` to display a larger hint below the label.
|
|
247
240
|
*/
|
|
248
|
-
hintPosition:
|
|
241
|
+
hintPosition: PropTypes.oneOf(['inline', 'below']),
|
|
249
242
|
/**
|
|
250
243
|
* Optional tooltip text content to include alongside the legend and hint.
|
|
251
244
|
*/
|
|
252
|
-
tooltip:
|
|
245
|
+
tooltip: PropTypes.string,
|
|
253
246
|
/**
|
|
254
247
|
* Current validation status of the group, passed to the feedback element if there is one.
|
|
255
248
|
*/
|
|
256
|
-
validation:
|
|
249
|
+
validation: PropTypes.oneOf(['error', 'success']),
|
|
257
250
|
/**
|
|
258
251
|
* If provided, a Feedback element is rendered containing this text.
|
|
259
252
|
*/
|
|
260
|
-
feedback:
|
|
253
|
+
feedback: PropTypes.string,
|
|
261
254
|
/**
|
|
262
255
|
* If true, the buttons cannot be selected by the user and simply show their current state.
|
|
263
256
|
*/
|
|
264
|
-
readOnly:
|
|
257
|
+
readOnly: PropTypes.bool,
|
|
265
258
|
/**
|
|
266
259
|
* If true, the buttons cannot be interacted with, elements are set as `disabled` and if the
|
|
267
260
|
* theme supports `inactive` appearances rules, these are applied.
|
|
268
261
|
*/
|
|
269
|
-
inactive:
|
|
262
|
+
inactive: PropTypes.bool,
|
|
270
263
|
/**
|
|
271
264
|
* On Web, this is passed to the `name` attribute of the fieldset.
|
|
272
265
|
*/
|
|
273
|
-
name:
|
|
266
|
+
name: PropTypes.string,
|
|
274
267
|
/**
|
|
275
268
|
* Sets the language of microcopy in subcomponents (e.g. Tooltip's default accessibility label).
|
|
276
269
|
*/
|
|
277
|
-
copy:
|
|
270
|
+
copy: PropTypes.oneOf(['en', 'fr'])
|
|
278
271
|
};
|
|
279
|
-
|
|
280
|
-
exports.default = _default;
|
|
272
|
+
export default ButtonGroup;
|