@telus-uds/components-base 1.66.0 → 1.67.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 +23 -3
- package/lib/A11yInfoProvider/index.js +5 -20
- package/lib/A11yText/index.js +3 -17
- package/lib/ActivityIndicator/Spinner.js +2 -9
- package/lib/ActivityIndicator/Spinner.native.js +4 -27
- package/lib/ActivityIndicator/index.js +1 -13
- package/lib/ActivityIndicator/shared.js +0 -3
- package/lib/Autocomplete/Autocomplete.js +34 -85
- package/lib/Autocomplete/Loading.js +0 -10
- package/lib/Autocomplete/Suggestions.js +0 -11
- package/lib/Autocomplete/index.js +0 -3
- package/lib/BaseProvider/HydrationContext.js +4 -18
- package/lib/BaseProvider/index.js +0 -12
- package/lib/Box/Box.js +10 -35
- package/lib/Box/index.js +0 -3
- package/lib/Button/Button.js +4 -13
- package/lib/Button/ButtonBase.js +23 -55
- package/lib/Button/ButtonDropdown.js +7 -32
- package/lib/Button/ButtonGroup.js +15 -48
- package/lib/Button/ButtonLink.js +3 -17
- package/lib/Button/index.js +0 -5
- package/lib/Button/propTypes.js +0 -15
- package/lib/Card/Card.js +3 -14
- package/lib/Card/CardBase.js +5 -16
- package/lib/Card/PressableCardBase.js +7 -30
- package/lib/Card/index.js +0 -7
- package/lib/Carousel/Carousel.js +22 -115
- package/lib/Carousel/CarouselContext.js +0 -14
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
- package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
- package/lib/Carousel/CarouselItem/index.js +0 -3
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
- package/lib/Carousel/CarouselStepTracker/index.js +0 -3
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
- package/lib/Carousel/CarouselTabs/index.js +0 -3
- package/lib/Carousel/CarouselThumbnail.js +1 -16
- package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
- package/lib/Carousel/index.js +0 -5
- package/lib/Checkbox/Checkbox.js +5 -44
- package/lib/Checkbox/CheckboxButton.js +7 -33
- package/lib/Checkbox/CheckboxGroup.js +14 -45
- package/lib/Checkbox/CheckboxInput.js +1 -11
- package/lib/Checkbox/CheckboxInput.native.js +0 -2
- package/lib/Checkbox/index.js +0 -4
- package/lib/CheckboxCard/CheckboxCard.js +4 -37
- package/lib/CheckboxCard/index.js +0 -3
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +216 -0
- package/lib/CheckboxCardGroup/index.js +10 -0
- package/lib/Divider/Divider.js +13 -24
- package/lib/Divider/index.js +0 -3
- package/lib/ExpandCollapse/Accordion.js +1 -9
- package/lib/ExpandCollapse/Control.js +10 -32
- package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
- package/lib/ExpandCollapse/Panel.js +13 -38
- package/lib/ExpandCollapse/index.js +0 -5
- package/lib/Feedback/Feedback.js +13 -30
- package/lib/Feedback/index.js +0 -3
- package/lib/Fieldset/Fieldset.js +6 -37
- package/lib/Fieldset/FieldsetContainer.js +1 -10
- package/lib/Fieldset/FieldsetContainer.native.js +0 -8
- package/lib/Fieldset/Legend.js +1 -10
- package/lib/Fieldset/Legend.native.js +1 -13
- package/lib/Fieldset/index.js +0 -3
- package/lib/FlexGrid/Col/Col.js +10 -53
- package/lib/FlexGrid/Col/index.js +0 -3
- package/lib/FlexGrid/FlexGrid.js +3 -34
- package/lib/FlexGrid/Row/Row.js +0 -38
- package/lib/FlexGrid/Row/index.js +0 -3
- package/lib/FlexGrid/helpers/index.js +0 -4
- package/lib/FlexGrid/index.js +0 -3
- package/lib/FlexGrid/providers/GutterContext.js +0 -4
- package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
- package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
- package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
- package/lib/HorizontalScroll/index.js +0 -7
- package/lib/HorizontalScroll/itemPositions.js +8 -19
- package/lib/Icon/Icon.js +4 -17
- package/lib/Icon/IconText.js +5 -25
- package/lib/Icon/index.js +0 -6
- package/lib/IconButton/IconButton.js +5 -37
- package/lib/IconButton/index.js +0 -3
- package/lib/InputLabel/InputLabel.js +4 -28
- package/lib/InputLabel/LabelContent.js +2 -8
- package/lib/InputLabel/LabelContent.native.js +0 -8
- package/lib/InputLabel/index.js +0 -3
- package/lib/InputSupports/InputSupports.js +0 -21
- package/lib/InputSupports/index.js +0 -3
- package/lib/InputSupports/useInputSupports.js +2 -6
- package/lib/Link/ChevronLink.js +7 -18
- package/lib/Link/InlinePressable.js +0 -10
- package/lib/Link/InlinePressable.native.js +5 -18
- package/lib/Link/Link.js +0 -8
- package/lib/Link/LinkBase.js +17 -47
- package/lib/Link/TextButton.js +3 -16
- package/lib/Link/index.js +0 -5
- package/lib/List/List.js +5 -21
- package/lib/List/ListItem.js +1 -11
- package/lib/List/ListItemBase.js +5 -34
- package/lib/List/ListItemContent.js +1 -14
- package/lib/List/ListItemMark.js +3 -23
- package/lib/List/PressableListItemBase.js +2 -28
- package/lib/List/index.js +0 -4
- package/lib/Listbox/GroupControl.js +0 -14
- package/lib/Listbox/Listbox.js +15 -40
- package/lib/Listbox/ListboxContext.js +0 -7
- package/lib/Listbox/ListboxGroup.js +7 -19
- package/lib/Listbox/ListboxItem.js +3 -17
- package/lib/Listbox/ListboxOverlay.js +4 -20
- package/lib/Listbox/PressableItem.js +3 -18
- package/lib/Listbox/index.js +0 -3
- package/lib/Modal/Modal.js +94 -45
- package/lib/Modal/ModalContent.js +184 -0
- package/lib/Modal/index.js +0 -3
- package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
- package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
- package/lib/MultiSelectFilter/index.js +0 -3
- package/lib/Notification/Notification.js +11 -38
- package/lib/Notification/index.js +0 -3
- package/lib/Pagination/PageButton.js +2 -22
- package/lib/Pagination/Pagination.js +21 -42
- package/lib/Pagination/SideButton.js +0 -24
- package/lib/Pagination/index.js +0 -3
- package/lib/Pagination/usePagination.js +4 -9
- package/lib/Progress/Progress.js +3 -17
- package/lib/Progress/ProgressBar.js +3 -25
- package/lib/Progress/ProgressBarBackground.js +0 -12
- package/lib/Progress/index.js +0 -4
- package/lib/QuickLinks/QuickLinks.js +1 -18
- package/lib/QuickLinks/QuickLinksCard.js +1 -11
- package/lib/QuickLinks/QuickLinksItem.js +3 -17
- package/lib/QuickLinks/index.js +0 -4
- package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
- package/lib/QuickLinksFeature/index.js +0 -4
- package/lib/Radio/Radio.js +5 -39
- package/lib/Radio/RadioButton.js +7 -26
- package/lib/Radio/RadioGroup.js +6 -39
- package/lib/Radio/RadioInput.js +1 -11
- package/lib/Radio/RadioInput.native.js +0 -2
- package/lib/Radio/index.js +0 -4
- package/lib/RadioCard/RadioCard.js +5 -38
- package/lib/RadioCard/RadioCardGroup.js +25 -40
- package/lib/RadioCard/index.js +0 -4
- package/lib/Responsive/Responsive.js +1 -14
- package/lib/Responsive/index.js +0 -3
- package/lib/Search/Search.js +22 -45
- package/lib/Search/index.js +0 -3
- package/lib/Select/Group.js +0 -8
- package/lib/Select/Group.native.js +0 -6
- package/lib/Select/Item.js +0 -7
- package/lib/Select/Item.native.js +0 -2
- package/lib/Select/Picker.js +0 -8
- package/lib/Select/Picker.native.js +6 -22
- package/lib/Select/Select.js +9 -52
- package/lib/Select/index.js +0 -5
- package/lib/SideNav/Item.js +5 -29
- package/lib/SideNav/ItemContent.js +1 -14
- package/lib/SideNav/ItemsGroup.js +9 -31
- package/lib/SideNav/SideNav.js +9 -33
- package/lib/SideNav/index.js +0 -2
- package/lib/Skeleton/Skeleton.js +10 -42
- package/lib/Skeleton/index.js +0 -3
- package/lib/Skeleton/skeletonWebAnimation.js +0 -2
- package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
- package/lib/SkipLink/SkipLink.js +7 -27
- package/lib/SkipLink/index.js +0 -3
- package/lib/Spacer/Spacer.js +4 -20
- package/lib/Spacer/index.js +0 -3
- package/lib/StackView/StackView.js +3 -21
- package/lib/StackView/StackWrap.js +11 -21
- package/lib/StackView/StackWrap.native.js +0 -3
- package/lib/StackView/StackWrapBox.js +5 -21
- package/lib/StackView/StackWrapGap.js +1 -14
- package/lib/StackView/common.js +0 -6
- package/lib/StackView/getStackedContent.js +10 -21
- package/lib/StackView/index.js +0 -5
- package/lib/StepTracker/Step.js +3 -27
- package/lib/StepTracker/StepTracker.js +5 -32
- package/lib/StepTracker/index.js +0 -3
- package/lib/Tabs/Tabs.js +7 -30
- package/lib/Tabs/TabsItem.js +13 -38
- package/lib/Tabs/index.js +0 -3
- package/lib/Tags/Tags.js +9 -42
- package/lib/Tags/index.js +0 -3
- package/lib/TextInput/TextArea.js +11 -20
- package/lib/TextInput/TextInput.js +7 -16
- package/lib/TextInput/TextInputBase.js +12 -58
- package/lib/TextInput/index.js +0 -3
- package/lib/TextInput/propTypes.js +0 -8
- package/lib/ThemeProvider/ThemeProvider.js +10 -18
- package/lib/ThemeProvider/index.js +0 -9
- package/lib/ThemeProvider/useSetTheme.js +6 -9
- package/lib/ThemeProvider/useTheme.js +2 -7
- package/lib/ThemeProvider/useThemeTokens.js +1 -9
- package/lib/ThemeProvider/utils/index.js +0 -4
- package/lib/ThemeProvider/utils/styles.js +14 -35
- package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
- package/lib/Timeline/Timeline.js +11 -27
- package/lib/Timeline/index.js +0 -3
- package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
- package/lib/ToggleSwitch/index.js +0 -3
- package/lib/Tooltip/Backdrop.js +4 -11
- package/lib/Tooltip/Backdrop.native.js +1 -14
- package/lib/Tooltip/Tooltip.js +9 -37
- package/lib/Tooltip/Tooltip.native.js +14 -45
- package/lib/Tooltip/getTooltipPosition.js +26 -31
- package/lib/Tooltip/index.js +0 -5
- package/lib/Tooltip/shared.js +0 -10
- package/lib/TooltipButton/TooltipButton.js +5 -20
- package/lib/TooltipButton/index.js +0 -3
- package/lib/Typography/Typography.js +15 -38
- package/lib/Typography/index.js +0 -3
- package/lib/Validator/Validator.js +10 -58
- package/lib/Validator/index.js +0 -3
- package/lib/ViewportProvider/ViewportProvider.js +1 -13
- package/lib/ViewportProvider/index.js +0 -5
- package/lib/ViewportProvider/useViewport.js +0 -4
- package/lib/ViewportProvider/useViewportListener.js +3 -12
- package/lib/index.js +8 -71
- package/lib/utils/BaseView/BaseView.js +3 -17
- package/lib/utils/BaseView/BaseView.native.js +0 -3
- package/lib/utils/BaseView/index.js +0 -3
- package/lib/utils/a11y/index.js +0 -4
- package/lib/utils/a11y/semantics.js +14 -32
- package/lib/utils/a11y/textSize.js +1 -8
- package/lib/utils/animation/index.js +0 -2
- package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
- package/lib/utils/children.js +16 -28
- package/lib/utils/containUniqueFields.js +2 -5
- package/lib/utils/floating-ui/index.js +0 -1
- package/lib/utils/floating-ui/index.native.js +0 -1
- package/lib/utils/hasOwnProperty.js +0 -1
- package/lib/utils/htmlAttrs.js +2 -4
- package/lib/utils/index.js +0 -31
- package/lib/utils/info/index.js +0 -4
- package/lib/utils/info/platform/index.js +0 -4
- package/lib/utils/info/versions.js +0 -3
- package/lib/utils/input.js +12 -24
- package/lib/utils/pressability.js +7 -21
- package/lib/utils/props/a11yProps.js +19 -25
- package/lib/utils/props/clickProps.js +0 -4
- package/lib/utils/props/componentPropType.js +0 -14
- package/lib/utils/props/copyPropTypes.js +0 -4
- package/lib/utils/props/getPropSelector.js +11 -12
- package/lib/utils/props/handlerProps.js +2 -23
- package/lib/utils/props/hrefAttrsProp.js +0 -4
- package/lib/utils/props/index.js +0 -22
- package/lib/utils/props/inputSupportsProps.js +0 -9
- package/lib/utils/props/linkProps.js +2 -12
- package/lib/utils/props/paddingProp.js +0 -3
- package/lib/utils/props/pressProps.js +2 -8
- package/lib/utils/props/rectProp.js +0 -3
- package/lib/utils/props/responsiveProps.js +1 -5
- package/lib/utils/props/selectSystemProps.js +4 -6
- package/lib/utils/props/spacingProps.js +3 -10
- package/lib/utils/props/textInputProps.js +10 -31
- package/lib/utils/props/textProps.js +6 -11
- package/lib/utils/props/tokens.js +7 -26
- package/lib/utils/props/variantProp.js +0 -3
- package/lib/utils/props/viewProps.js +0 -5
- package/lib/utils/ssr.js +13 -33
- package/lib/utils/useCopy.js +3 -6
- package/lib/utils/useHash.js +5 -10
- package/lib/utils/useHash.native.js +0 -2
- package/lib/utils/useOverlaidPosition.js +6 -29
- package/lib/utils/useResponsiveProp.js +6 -13
- package/lib/utils/useSafeLayoutEffect.js +5 -10
- package/lib/utils/useScrollBlocking.js +3 -11
- package/lib/utils/useScrollBlocking.native.js +0 -2
- package/lib/utils/useSpacingScale.js +5 -8
- package/lib/utils/useUniqueId.js +0 -4
- package/lib/utils/withLinkRouter.js +13 -18
- package/lib-module/A11yInfoProvider/index.js +5 -9
- package/lib-module/A11yText/index.js +3 -4
- package/lib-module/ActivityIndicator/Spinner.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
- package/lib-module/ActivityIndicator/index.js +1 -5
- package/lib-module/ActivityIndicator/shared.js +2 -1
- package/lib-module/Autocomplete/Autocomplete.js +34 -59
- package/lib-module/Autocomplete/Loading.js +0 -2
- package/lib-module/BaseProvider/HydrationContext.js +4 -7
- package/lib-module/BaseProvider/index.js +0 -3
- package/lib-module/Box/Box.js +10 -24
- package/lib-module/Button/Button.js +4 -2
- package/lib-module/Button/ButtonBase.js +23 -35
- package/lib-module/Button/ButtonDropdown.js +7 -16
- package/lib-module/Button/ButtonGroup.js +15 -32
- package/lib-module/Button/ButtonLink.js +3 -2
- package/lib-module/Button/propTypes.js +0 -7
- package/lib-module/Card/Card.js +3 -2
- package/lib-module/Card/CardBase.js +5 -4
- package/lib-module/Card/PressableCardBase.js +7 -11
- package/lib-module/Carousel/Carousel.js +22 -60
- package/lib-module/Carousel/CarouselContext.js +0 -5
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
- package/lib-module/Carousel/CarouselThumbnail.js +1 -7
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
- package/lib-module/Checkbox/Checkbox.js +5 -23
- package/lib-module/Checkbox/CheckboxButton.js +7 -17
- package/lib-module/Checkbox/CheckboxGroup.js +14 -31
- package/lib-module/Checkbox/CheckboxInput.js +1 -3
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
- package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +206 -0
- package/lib-module/CheckboxCardGroup/index.js +2 -0
- package/lib-module/Divider/Divider.js +13 -11
- package/lib-module/ExpandCollapse/Accordion.js +1 -1
- package/lib-module/ExpandCollapse/Control.js +10 -17
- package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
- package/lib-module/ExpandCollapse/Panel.js +13 -23
- package/lib-module/Feedback/Feedback.js +13 -16
- package/lib-module/Fieldset/Fieldset.js +6 -25
- package/lib-module/Fieldset/FieldsetContainer.js +1 -1
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
- package/lib-module/Fieldset/Legend.js +1 -1
- package/lib-module/Fieldset/Legend.native.js +1 -1
- package/lib-module/FlexGrid/Col/Col.js +10 -37
- package/lib-module/FlexGrid/FlexGrid.js +3 -17
- package/lib-module/FlexGrid/Row/Row.js +0 -25
- package/lib-module/FlexGrid/helpers/index.js +0 -3
- package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
- package/lib-module/HorizontalScroll/itemPositions.js +11 -10
- package/lib-module/Icon/Icon.js +4 -8
- package/lib-module/Icon/IconText.js +6 -17
- package/lib-module/IconButton/IconButton.js +7 -20
- package/lib-module/InputLabel/InputLabel.js +4 -13
- package/lib-module/InputLabel/LabelContent.js +2 -1
- package/lib-module/InputLabel/LabelContent.native.js +0 -1
- package/lib-module/InputSupports/InputSupports.js +0 -9
- package/lib-module/InputSupports/useInputSupports.js +2 -4
- package/lib-module/Link/ChevronLink.js +7 -7
- package/lib-module/Link/InlinePressable.js +0 -2
- package/lib-module/Link/InlinePressable.native.js +4 -12
- package/lib-module/Link/LinkBase.js +17 -25
- package/lib-module/Link/TextButton.js +3 -5
- package/lib-module/List/List.js +5 -9
- package/lib-module/List/ListItem.js +1 -1
- package/lib-module/List/ListItemBase.js +5 -17
- package/lib-module/List/ListItemContent.js +1 -4
- package/lib-module/List/ListItemMark.js +3 -16
- package/lib-module/List/PressableListItemBase.js +2 -6
- package/lib-module/Listbox/GroupControl.js +0 -2
- package/lib-module/Listbox/Listbox.js +15 -23
- package/lib-module/Listbox/ListboxContext.js +0 -2
- package/lib-module/Listbox/ListboxGroup.js +6 -4
- package/lib-module/Listbox/ListboxItem.js +2 -1
- package/lib-module/Listbox/ListboxOverlay.js +3 -4
- package/lib-module/Listbox/PressableItem.js +2 -7
- package/lib-module/Modal/Modal.js +94 -25
- package/lib-module/Modal/ModalContent.js +175 -0
- package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
- package/lib-module/Notification/Notification.js +11 -22
- package/lib-module/Pagination/PageButton.js +2 -6
- package/lib-module/Pagination/Pagination.js +21 -21
- package/lib-module/Pagination/SideButton.js +3 -8
- package/lib-module/Pagination/usePagination.js +4 -8
- package/lib-module/Progress/Progress.js +3 -7
- package/lib-module/Progress/ProgressBar.js +3 -11
- package/lib-module/Progress/ProgressBarBackground.js +0 -2
- package/lib-module/QuickLinks/QuickLinks.js +1 -6
- package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
- package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
- package/lib-module/Radio/Radio.js +5 -22
- package/lib-module/Radio/RadioButton.js +8 -10
- package/lib-module/Radio/RadioGroup.js +6 -25
- package/lib-module/Radio/RadioInput.js +1 -3
- package/lib-module/Radio/RadioInput.native.js +0 -1
- package/lib-module/RadioCard/RadioCard.js +5 -21
- package/lib-module/RadioCard/RadioCardGroup.js +25 -27
- package/lib-module/Responsive/Responsive.js +1 -6
- package/lib-module/Search/Search.js +22 -31
- package/lib-module/Select/Group.js +0 -3
- package/lib-module/Select/Group.native.js +0 -3
- package/lib-module/Select/Item.js +0 -3
- package/lib-module/Select/Item.native.js +0 -1
- package/lib-module/Select/Picker.native.js +8 -10
- package/lib-module/Select/Select.js +10 -35
- package/lib-module/SideNav/Item.js +5 -16
- package/lib-module/SideNav/ItemContent.js +1 -2
- package/lib-module/SideNav/ItemsGroup.js +9 -19
- package/lib-module/SideNav/SideNav.js +9 -22
- package/lib-module/Skeleton/Skeleton.js +10 -25
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
- package/lib-module/SkipLink/SkipLink.js +7 -9
- package/lib-module/Spacer/Spacer.js +4 -7
- package/lib-module/StackView/StackView.js +3 -7
- package/lib-module/StackView/StackWrap.js +13 -13
- package/lib-module/StackView/StackWrap.native.js +2 -1
- package/lib-module/StackView/StackWrapBox.js +5 -8
- package/lib-module/StackView/StackWrapGap.js +1 -1
- package/lib-module/StackView/getStackedContent.js +10 -10
- package/lib-module/StepTracker/Step.js +3 -14
- package/lib-module/StepTracker/StepTracker.js +5 -13
- package/lib-module/Tabs/Tabs.js +7 -16
- package/lib-module/Tabs/TabsItem.js +13 -16
- package/lib-module/Tags/Tags.js +9 -26
- package/lib-module/TextInput/TextArea.js +11 -8
- package/lib-module/TextInput/TextInput.js +7 -5
- package/lib-module/TextInput/TextInputBase.js +13 -39
- package/lib-module/TextInput/propTypes.js +3 -7
- package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
- package/lib-module/ThemeProvider/useSetTheme.js +6 -7
- package/lib-module/ThemeProvider/useTheme.js +2 -5
- package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
- package/lib-module/ThemeProvider/utils/styles.js +15 -27
- package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
- package/lib-module/Timeline/Timeline.js +11 -17
- package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
- package/lib-module/Tooltip/Backdrop.js +4 -7
- package/lib-module/Tooltip/Backdrop.native.js +1 -4
- package/lib-module/Tooltip/Tooltip.js +9 -18
- package/lib-module/Tooltip/Tooltip.native.js +14 -23
- package/lib-module/Tooltip/getTooltipPosition.js +26 -30
- package/lib-module/Tooltip/shared.js +0 -6
- package/lib-module/TooltipButton/TooltipButton.js +5 -8
- package/lib-module/Typography/Typography.js +14 -22
- package/lib-module/Validator/Validator.js +10 -42
- package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
- package/lib-module/ViewportProvider/useViewportListener.js +6 -8
- package/lib-module/index.js +1 -0
- package/lib-module/utils/BaseView/BaseView.js +3 -4
- package/lib-module/utils/BaseView/BaseView.native.js +0 -1
- package/lib-module/utils/a11y/semantics.js +14 -27
- package/lib-module/utils/a11y/textSize.js +1 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
- package/lib-module/utils/children.js +17 -19
- package/lib-module/utils/containUniqueFields.js +2 -4
- package/lib-module/utils/htmlAttrs.js +2 -1
- package/lib-module/utils/info/index.js +2 -1
- package/lib-module/utils/info/platform/index.js +4 -1
- package/lib-module/utils/info/versions.js +2 -1
- package/lib-module/utils/input.js +11 -19
- package/lib-module/utils/pressability.js +8 -7
- package/lib-module/utils/props/a11yProps.js +22 -20
- package/lib-module/utils/props/clickProps.js +0 -1
- package/lib-module/utils/props/componentPropType.js +0 -13
- package/lib-module/utils/props/getPropSelector.js +12 -8
- package/lib-module/utils/props/handlerProps.js +2 -19
- package/lib-module/utils/props/hrefAttrsProp.js +2 -2
- package/lib-module/utils/props/inputSupportsProps.js +0 -6
- package/lib-module/utils/props/linkProps.js +2 -3
- package/lib-module/utils/props/pressProps.js +2 -2
- package/lib-module/utils/props/responsiveProps.js +1 -3
- package/lib-module/utils/props/selectSystemProps.js +4 -5
- package/lib-module/utils/props/spacingProps.js +4 -3
- package/lib-module/utils/props/textInputProps.js +13 -27
- package/lib-module/utils/props/textProps.js +9 -7
- package/lib-module/utils/props/tokens.js +10 -13
- package/lib-module/utils/props/variantProp.js +1 -1
- package/lib-module/utils/props/viewProps.js +0 -1
- package/lib-module/utils/ssr.js +14 -18
- package/lib-module/utils/useCopy.js +3 -5
- package/lib-module/utils/useHash.js +5 -9
- package/lib-module/utils/useHash.native.js +0 -1
- package/lib-module/utils/useOverlaidPosition.js +6 -25
- package/lib-module/utils/useResponsiveProp.js +6 -7
- package/lib-module/utils/useSafeLayoutEffect.js +5 -7
- package/lib-module/utils/useScrollBlocking.js +3 -10
- package/lib-module/utils/useSpacingScale.js +4 -4
- package/lib-module/utils/useUniqueId.js +0 -2
- package/lib-module/utils/withLinkRouter.js +13 -10
- package/package.json +2 -2
- package/src/Checkbox/CheckboxGroup.jsx +10 -8
- package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +231 -0
- package/src/CheckboxCardGroup/index.js +3 -0
- package/src/Modal/Modal.jsx +98 -5
- package/src/Modal/ModalContent.jsx +171 -0
- package/src/RadioCard/RadioCardGroup.jsx +23 -2
- package/src/index.js +1 -0
|
@@ -10,6 +10,7 @@ import Fieldset from '../Fieldset';
|
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
12
12
|
const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
|
|
13
|
+
|
|
13
14
|
/**
|
|
14
15
|
* A group of Radios that behave as a radio group. Use when users select a single choice from mutually
|
|
15
16
|
* exclusive options.
|
|
@@ -58,7 +59,6 @@ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, f
|
|
|
58
59
|
* />
|
|
59
60
|
* ```
|
|
60
61
|
*/
|
|
61
|
-
|
|
62
62
|
const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
63
63
|
let {
|
|
64
64
|
copy = 'en',
|
|
@@ -81,9 +81,9 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
81
81
|
...rest
|
|
82
82
|
} = _ref;
|
|
83
83
|
const viewport = useViewport();
|
|
84
|
+
|
|
84
85
|
/* showIcon passes a boolean to displayIcon
|
|
85
86
|
*/
|
|
86
|
-
|
|
87
87
|
const {
|
|
88
88
|
space,
|
|
89
89
|
fieldSpace,
|
|
@@ -115,11 +115,9 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
115
115
|
readOnly: readOnly || inactive
|
|
116
116
|
});
|
|
117
117
|
const uniqueFields = ['id', 'label'];
|
|
118
|
-
|
|
119
118
|
if (!containUniqueFields(items, uniqueFields)) {
|
|
120
119
|
throw new Error(`RadioGroup items must have unique ${uniqueFields.join(', ')}`);
|
|
121
120
|
}
|
|
122
|
-
|
|
123
121
|
const radios = items.map((_ref2, index) => {
|
|
124
122
|
let {
|
|
125
123
|
label,
|
|
@@ -131,12 +129,10 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
131
129
|
} = _ref2;
|
|
132
130
|
const radioId = id || `Radio[${index}]`;
|
|
133
131
|
const isChecked = currentValue === radioId;
|
|
134
|
-
|
|
135
132
|
const handleChange = (newCheckedState, event) => {
|
|
136
133
|
if (typeof itemOnChange === 'function') itemOnChange(newCheckedState, event);
|
|
137
134
|
if (newCheckedState) setValue(radioId, event);
|
|
138
135
|
};
|
|
139
|
-
|
|
140
136
|
return /*#__PURE__*/_jsx(Radio, {
|
|
141
137
|
ref: itemRef,
|
|
142
138
|
id: radioId,
|
|
@@ -175,97 +171,82 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
175
171
|
});
|
|
176
172
|
});
|
|
177
173
|
RadioGroup.displayName = 'RadioGroup';
|
|
178
|
-
RadioGroup.propTypes = {
|
|
179
|
-
|
|
174
|
+
RadioGroup.propTypes = {
|
|
175
|
+
...selectedSystemPropTypes,
|
|
180
176
|
/**
|
|
181
177
|
* Whether the English or French copy will be used (e.g. for accessibility labels).
|
|
182
178
|
*/
|
|
183
179
|
copy: PropTypes.oneOf(['en', 'fr']),
|
|
184
|
-
|
|
185
180
|
/**
|
|
186
181
|
* Optional theme token overrides for the outer RadioGroup component
|
|
187
182
|
*/
|
|
188
183
|
tokens: getTokensPropType('RadioGroup'),
|
|
189
|
-
|
|
190
184
|
/**
|
|
191
185
|
* Optional theme token overrides for each inner Radio component
|
|
192
186
|
*/
|
|
193
187
|
radioTokens: getTokensPropType('Radio'),
|
|
194
|
-
|
|
195
188
|
/**
|
|
196
189
|
* Theme variants, shared between both RadioGroup and Radio
|
|
197
190
|
*/
|
|
198
191
|
variant: variantProp.propType,
|
|
199
|
-
|
|
200
192
|
/**
|
|
201
193
|
* Array of objects containing specifics for each Radio to be rendered in the group.
|
|
202
194
|
*/
|
|
203
|
-
items: PropTypes.arrayOf(PropTypes.exact({
|
|
195
|
+
items: PropTypes.arrayOf(PropTypes.exact({
|
|
196
|
+
...selectedItemPropTypes,
|
|
204
197
|
label: PropTypes.string,
|
|
205
198
|
id: PropTypes.string,
|
|
206
199
|
onChange: PropTypes.func,
|
|
207
200
|
description: PropTypes.string,
|
|
208
201
|
ref: ABBPropTypes.ref()
|
|
209
202
|
})),
|
|
210
|
-
|
|
211
203
|
/**
|
|
212
204
|
* Main text used to describe this group, used in Fieldset's Legend element.
|
|
213
205
|
*/
|
|
214
206
|
legend: PropTypes.string,
|
|
215
|
-
|
|
216
207
|
/**
|
|
217
208
|
* Optional additional text giving more detail to help a user make a choice.
|
|
218
209
|
*/
|
|
219
210
|
hint: PropTypes.string,
|
|
220
|
-
|
|
221
211
|
/**
|
|
222
212
|
* Position of the hint relative to label. Use `below` to display a larger hint below the label.
|
|
223
213
|
*/
|
|
224
214
|
hintPosition: PropTypes.oneOf(['inline', 'below']),
|
|
225
|
-
|
|
226
215
|
/**
|
|
227
216
|
* Optional tooltip text content to include alongside the legend and hint.
|
|
228
217
|
*/
|
|
229
218
|
tooltip: PropTypes.string,
|
|
230
|
-
|
|
231
219
|
/**
|
|
232
220
|
* Current validation status of the group, passed to the feedback element if there is one.
|
|
233
221
|
*/
|
|
234
222
|
validation: PropTypes.oneOf(['error', 'success']),
|
|
235
|
-
|
|
236
223
|
/**
|
|
237
224
|
* If provided, a Feedback element is rendered containing this text.
|
|
238
225
|
*/
|
|
239
226
|
feedback: PropTypes.string,
|
|
240
|
-
|
|
241
227
|
/**
|
|
242
228
|
* If provided, the radio with this id is selected on first render.
|
|
243
229
|
*/
|
|
244
230
|
initialCheckedId: PropTypes.string,
|
|
245
|
-
|
|
246
231
|
/**
|
|
247
232
|
* If not undefined, the radio with this id is selected (or none is selected if `null`), and the
|
|
248
233
|
* element's selection state will be controlled by its parent using the `onChange` function.
|
|
249
234
|
*/
|
|
250
235
|
checkedId: PropTypes.string,
|
|
251
|
-
|
|
252
236
|
/**
|
|
253
237
|
* Function to call on change in selection state. Is required if the selection state is controlled
|
|
254
238
|
* by a parent using checkedId and the input is not readOnly.
|
|
255
239
|
*/
|
|
256
240
|
onChange: PropTypes.func,
|
|
257
|
-
|
|
258
241
|
/**
|
|
259
242
|
* If true, the radios cannot be selected by the user and simply show their current state.
|
|
260
243
|
*/
|
|
261
244
|
readOnly: PropTypes.bool,
|
|
262
|
-
|
|
263
245
|
/**
|
|
264
246
|
* If true, the radios cannot be interacted with, elements are set as `disabled` and if the
|
|
265
247
|
* theme supports `inactive` appearances rules, these are applied.
|
|
266
248
|
*/
|
|
267
249
|
inactive: PropTypes.bool,
|
|
268
|
-
|
|
269
250
|
/**
|
|
270
251
|
* On Web, this is passed to the `name` attribute of the fieldset and each radio input.
|
|
271
252
|
*/
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
+
|
|
3
4
|
/**
|
|
4
5
|
* On Web we need to include an actual input but hide it.
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
const RadioInput = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
9
9
|
let {
|
|
@@ -16,14 +16,12 @@ const RadioInput = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
16
16
|
onChange,
|
|
17
17
|
value
|
|
18
18
|
} = _ref;
|
|
19
|
-
|
|
20
19
|
const handleClick = event => {
|
|
21
20
|
// Cancel the click dispatched via the label tag, since it's already wrapped
|
|
22
21
|
// in <Pressable>
|
|
23
22
|
event.preventDefault();
|
|
24
23
|
event.stopPropagation();
|
|
25
24
|
};
|
|
26
|
-
|
|
27
25
|
return /*#__PURE__*/_jsx("input", {
|
|
28
26
|
checked: isControlled ? checked : undefined,
|
|
29
27
|
defaultChecked: isControlled ? undefined : defaultChecked,
|
|
@@ -11,6 +11,7 @@ import RadioButton, { selectRadioButtonTokens } from '../Radio/RadioButton';
|
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
|
|
14
|
+
|
|
14
15
|
/**
|
|
15
16
|
* A Card that behaves like a radio button. Use when users select a single choice from mutually exclusive options
|
|
16
17
|
* with need to show additional information for each option. The whole card is interactive as one item.
|
|
@@ -46,7 +47,6 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, foc
|
|
|
46
47
|
* accessibility role `'radio'` and accessibility state that depends on the other props (`checked`, `inactive`)
|
|
47
48
|
* or the internal state in case of uncontrolled radio button.
|
|
48
49
|
*/
|
|
49
|
-
|
|
50
50
|
const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
51
51
|
let {
|
|
52
52
|
tokens,
|
|
@@ -71,19 +71,15 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
71
71
|
initialValue: defaultChecked,
|
|
72
72
|
onChange
|
|
73
73
|
});
|
|
74
|
-
|
|
75
74
|
const handleChange = event => {
|
|
76
75
|
if (!inactive && !isChecked) {
|
|
77
76
|
setIsChecked(true, event);
|
|
78
77
|
}
|
|
79
78
|
};
|
|
80
|
-
|
|
81
79
|
const uniqueId = useUniqueId('RadioCard');
|
|
82
80
|
const inputId = id ?? uniqueId;
|
|
83
81
|
const getTokens = useThemeTokensCallback('RadioCard', tokens, variant);
|
|
84
|
-
|
|
85
82
|
const getCardTokens = cardState => selectPressableCardTokens(getTokens(cardState));
|
|
86
|
-
|
|
87
83
|
const {
|
|
88
84
|
themeOptions
|
|
89
85
|
} = useTheme();
|
|
@@ -110,7 +106,8 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
110
106
|
} = getTokens(cardState);
|
|
111
107
|
const radioTokens = selectRadioButtonTokens(themeTokens, 'radio');
|
|
112
108
|
const titleTokens = selectTokens('Typography', themeTokens);
|
|
113
|
-
const textStyle = applyTextStyles({
|
|
109
|
+
const textStyle = applyTextStyles({
|
|
110
|
+
...titleTokens,
|
|
114
111
|
themeOptions
|
|
115
112
|
});
|
|
116
113
|
return /*#__PURE__*/_jsxs(StackView, {
|
|
@@ -147,73 +144,60 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
147
144
|
});
|
|
148
145
|
});
|
|
149
146
|
RadioCard.displayName = 'RadioCard';
|
|
150
|
-
RadioCard.propTypes = {
|
|
151
|
-
|
|
147
|
+
RadioCard.propTypes = {
|
|
148
|
+
...selectedSystemPropTypes,
|
|
152
149
|
/**
|
|
153
150
|
* Content to be displayed at the top of the card alongside the radio button
|
|
154
151
|
*/
|
|
155
152
|
title: PropTypes.string,
|
|
156
|
-
|
|
157
153
|
/**
|
|
158
154
|
* Additional content to be displayed below the button.
|
|
159
155
|
*/
|
|
160
156
|
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
|
|
161
|
-
|
|
162
157
|
/**
|
|
163
158
|
* Use `checked` for controlled Radio. For uncontrolled Radio, use the `defaultChecked` prop.
|
|
164
159
|
*/
|
|
165
160
|
checked: PropTypes.bool,
|
|
166
|
-
|
|
167
161
|
/**
|
|
168
162
|
* Use `defaultChecked` to provide the initial value for an uncontrolled Radio.
|
|
169
163
|
*/
|
|
170
164
|
defaultChecked: PropTypes.bool,
|
|
171
|
-
|
|
172
165
|
/**
|
|
173
166
|
* An optional radio button description.
|
|
174
167
|
*/
|
|
175
168
|
description: PropTypes.string,
|
|
176
|
-
|
|
177
169
|
/**
|
|
178
170
|
* Radio card button ID.
|
|
179
171
|
*/
|
|
180
172
|
id: PropTypes.string,
|
|
181
|
-
|
|
182
173
|
/**
|
|
183
174
|
* Whether the corresponding input is disabled or active.
|
|
184
175
|
*/
|
|
185
176
|
inactive: PropTypes.bool,
|
|
186
|
-
|
|
187
177
|
/**
|
|
188
178
|
* The label.
|
|
189
179
|
*/
|
|
190
180
|
label: PropTypes.string,
|
|
191
|
-
|
|
192
181
|
/**
|
|
193
182
|
* Associate this radio card with a group (set as the name attribute).
|
|
194
183
|
*/
|
|
195
184
|
name: PropTypes.string,
|
|
196
|
-
|
|
197
185
|
/**
|
|
198
186
|
* Whether the underlying input triggered a validation error or not.
|
|
199
187
|
*/
|
|
200
188
|
error: PropTypes.bool,
|
|
201
|
-
|
|
202
189
|
/**
|
|
203
190
|
* The value. Must be unique within the group.
|
|
204
191
|
*/
|
|
205
192
|
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),
|
|
206
|
-
|
|
207
193
|
/**
|
|
208
194
|
* Callback called when a controlled radio card gets interacted with.
|
|
209
195
|
*/
|
|
210
196
|
onChange: PropTypes.func,
|
|
211
|
-
|
|
212
197
|
/**
|
|
213
198
|
* Radio card tokens.
|
|
214
199
|
*/
|
|
215
200
|
tokens: getTokensPropType('RadioCard'),
|
|
216
|
-
|
|
217
201
|
/**
|
|
218
202
|
* Radio variant.
|
|
219
203
|
*/
|
|
@@ -9,6 +9,7 @@ import Fieldset from '../Fieldset';
|
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
11
11
|
const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
|
|
12
|
+
|
|
12
13
|
/**
|
|
13
14
|
* A group of Cards that behave as a radio button group. Use when users select a single choice from mutually
|
|
14
15
|
* exclusive options with need to show additional information for each option. The whole cards are each
|
|
@@ -59,7 +60,6 @@ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, f
|
|
|
59
60
|
* />
|
|
60
61
|
* ```
|
|
61
62
|
*/
|
|
62
|
-
|
|
63
63
|
const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
64
64
|
let {
|
|
65
65
|
copy = 'en',
|
|
@@ -85,10 +85,25 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
85
85
|
const {
|
|
86
86
|
space,
|
|
87
87
|
fieldSpace,
|
|
88
|
-
direction
|
|
88
|
+
direction,
|
|
89
|
+
showIcon,
|
|
90
|
+
outlineWidth,
|
|
91
|
+
borderTopLeftRadius,
|
|
92
|
+
borderTopRightRadius,
|
|
93
|
+
borderBottomLeftRadius,
|
|
94
|
+
borderBottomRightRadius,
|
|
95
|
+
outlineOffset
|
|
89
96
|
} = useThemeTokens('RadioCardGroup', tokens, variant, {
|
|
90
97
|
viewport
|
|
91
98
|
});
|
|
99
|
+
const borderTokens = {
|
|
100
|
+
outlineWidth,
|
|
101
|
+
borderTopLeftRadius,
|
|
102
|
+
borderTopRightRadius,
|
|
103
|
+
borderBottomLeftRadius,
|
|
104
|
+
borderBottomRightRadius,
|
|
105
|
+
outlineOffset
|
|
106
|
+
};
|
|
92
107
|
const {
|
|
93
108
|
currentValue,
|
|
94
109
|
setValue
|
|
@@ -98,16 +113,15 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
98
113
|
onChange,
|
|
99
114
|
readOnly: readOnly || inactive
|
|
100
115
|
});
|
|
101
|
-
const StackContainer = direction === 'row' ? StackWrap : StackView;
|
|
116
|
+
const StackContainer = direction === 'row' ? StackWrap : StackView;
|
|
117
|
+
// Needs 'radiogroup' role on direct parent of radios for MacOS Voiceover's numbering to work,
|
|
102
118
|
// and also needs 'radiogroup' role on fieldset for correct description on focusing the set.
|
|
103
119
|
// TODO: test this on more web screen readers.
|
|
104
120
|
|
|
105
121
|
const uniqueFields = ['id'];
|
|
106
|
-
|
|
107
122
|
if (!containUniqueFields(items, uniqueFields)) {
|
|
108
123
|
throw new Error(`RadioCardGroup items must have unique ${uniqueFields.join(', ')}`);
|
|
109
124
|
}
|
|
110
|
-
|
|
111
125
|
return /*#__PURE__*/_jsx(Fieldset, {
|
|
112
126
|
copy: copy,
|
|
113
127
|
ref: ref,
|
|
@@ -121,7 +135,8 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
121
135
|
inactive: inactive || readOnly,
|
|
122
136
|
validation: validation,
|
|
123
137
|
showErrorBorder: true,
|
|
124
|
-
|
|
138
|
+
tokens: borderTokens,
|
|
139
|
+
showIcon: showIcon,
|
|
125
140
|
accessibilityRole: "radiogroup",
|
|
126
141
|
...selectProps(rest),
|
|
127
142
|
children: props => /*#__PURE__*/_jsx(StackContainer, {
|
|
@@ -136,12 +151,10 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
136
151
|
...itemRest
|
|
137
152
|
} = _ref2;
|
|
138
153
|
const cardId = id || `RadioCard[${index}]`;
|
|
139
|
-
|
|
140
154
|
const handleChange = (newCheckedState, event) => {
|
|
141
155
|
if (typeof itemOnChange === 'function') itemOnChange(newCheckedState, event);
|
|
142
156
|
if (newCheckedState) setValue(cardId, event);
|
|
143
157
|
};
|
|
144
|
-
|
|
145
158
|
return /*#__PURE__*/_jsx(RadioCard, {
|
|
146
159
|
id: cardId,
|
|
147
160
|
checked: currentValue === cardId,
|
|
@@ -161,96 +174,81 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
161
174
|
});
|
|
162
175
|
});
|
|
163
176
|
RadioCardGroup.displayName = 'RadioCardGroup';
|
|
164
|
-
RadioCardGroup.propTypes = {
|
|
165
|
-
|
|
177
|
+
RadioCardGroup.propTypes = {
|
|
178
|
+
...selectedSystemPropTypes,
|
|
166
179
|
/**
|
|
167
180
|
* Whether the English or French copy will be used (e.g. for accessibility labels).
|
|
168
181
|
*/
|
|
169
182
|
copy: PropTypes.oneOf(['en', 'fr']),
|
|
170
|
-
|
|
171
183
|
/**
|
|
172
184
|
* Optional theme token overrides for the outer RadioCardGroup component
|
|
173
185
|
*/
|
|
174
186
|
tokens: getTokensPropType('RadioCardGroup'),
|
|
175
|
-
|
|
176
187
|
/**
|
|
177
188
|
* Optional theme token overrides for each inner RadioCard component
|
|
178
189
|
*/
|
|
179
190
|
radioCardTokens: getTokensPropType('RadioCard'),
|
|
180
|
-
|
|
181
191
|
/**
|
|
182
192
|
* Theme variants, shared between both RadioCardGroup and RadioCard
|
|
183
193
|
*/
|
|
184
194
|
variant: variantProp.propType,
|
|
185
|
-
|
|
186
195
|
/**
|
|
187
196
|
* Array of objects containing specifics for each RadioCard to be rendered in the group.
|
|
188
197
|
*/
|
|
189
|
-
items: PropTypes.arrayOf(PropTypes.exact({
|
|
198
|
+
items: PropTypes.arrayOf(PropTypes.exact({
|
|
199
|
+
...selectedItemPropTypes,
|
|
190
200
|
title: PropTypes.string,
|
|
191
201
|
content: PropTypes.node,
|
|
192
202
|
id: PropTypes.string,
|
|
193
203
|
onChange: PropTypes.func
|
|
194
204
|
})),
|
|
195
|
-
|
|
196
205
|
/**
|
|
197
206
|
* Main text used to describe this group, used in Fieldset's Legend element.
|
|
198
207
|
*/
|
|
199
208
|
legend: PropTypes.string,
|
|
200
|
-
|
|
201
209
|
/**
|
|
202
210
|
* Optional additional text giving more detail to help a user make a choice.
|
|
203
211
|
*/
|
|
204
212
|
hint: PropTypes.string,
|
|
205
|
-
|
|
206
213
|
/**
|
|
207
214
|
* Position of the hint relative to label. Use `below` to display a larger hint below the label.
|
|
208
215
|
*/
|
|
209
216
|
hintPosition: PropTypes.oneOf(['inline', 'below']),
|
|
210
|
-
|
|
211
217
|
/**
|
|
212
218
|
* Optional tooltip text content to include alongside the legend and hint.
|
|
213
219
|
*/
|
|
214
220
|
tooltip: PropTypes.string,
|
|
215
|
-
|
|
216
221
|
/**
|
|
217
222
|
* Current validation status of the group, passed to the feedback element if there is one.
|
|
218
223
|
*/
|
|
219
224
|
validation: PropTypes.oneOf(['error', 'success']),
|
|
220
|
-
|
|
221
225
|
/**
|
|
222
226
|
* If provided, a Feedback element is rendered containing this text.
|
|
223
227
|
*/
|
|
224
228
|
feedback: PropTypes.string,
|
|
225
|
-
|
|
226
229
|
/**
|
|
227
230
|
* If provided, the radio card with this id is selected on first render.
|
|
228
231
|
*/
|
|
229
232
|
initialCheckedId: PropTypes.string,
|
|
230
|
-
|
|
231
233
|
/**
|
|
232
234
|
* If not undefined, the radio card with this id is selected (or none is selected if `null`), and the
|
|
233
235
|
* element's selection state will be controlled by its parent using the `onChange` function.
|
|
234
236
|
*/
|
|
235
237
|
checkedId: PropTypes.string,
|
|
236
|
-
|
|
237
238
|
/**
|
|
238
239
|
* Function to call on change in selection state. Is required if the selection state is controlled
|
|
239
240
|
* by a parent using checkedId and the input is not readOnly.
|
|
240
241
|
*/
|
|
241
242
|
onChange: PropTypes.func,
|
|
242
|
-
|
|
243
243
|
/**
|
|
244
244
|
* If true, the radio cards cannot be selected by the user and simply show their current state.
|
|
245
245
|
*/
|
|
246
246
|
readOnly: PropTypes.bool,
|
|
247
|
-
|
|
248
247
|
/**
|
|
249
248
|
* If true, the radio card cannot be interacted with, elements are set as `disabled` and if the
|
|
250
249
|
* theme supports `inactive` appearances rules, these are applied.
|
|
251
250
|
*/
|
|
252
251
|
inactive: PropTypes.bool,
|
|
253
|
-
|
|
254
252
|
/**
|
|
255
253
|
* On Web, this is passed to the `name` attribute of the fieldset and each radio input.
|
|
256
254
|
*/
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { viewports } from '@telus-uds/system-constants';
|
|
4
4
|
import { useResponsiveProp } from '../utils';
|
|
5
|
+
|
|
5
6
|
/**
|
|
6
7
|
* Responsive conditionally renders children based on whether the viewport matches the provided
|
|
7
8
|
* min and max viewports.
|
|
@@ -10,10 +11,8 @@ import { useResponsiveProp } from '../utils';
|
|
|
10
11
|
* during first hydration on the client side; then if the viewport is not `xs`, it re-renders
|
|
11
12
|
* after hydration. This may cause a layout shift on devices other than the narrowest.
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
14
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
15
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
-
|
|
17
16
|
const Responsive = _ref => {
|
|
18
17
|
let {
|
|
19
18
|
min = 'xs',
|
|
@@ -24,25 +23,21 @@ const Responsive = _ref => {
|
|
|
24
23
|
const byViewports = {
|
|
25
24
|
[min]: children
|
|
26
25
|
};
|
|
27
|
-
|
|
28
26
|
if (max && max !== 'xl') {
|
|
29
27
|
// Stop returning children at the viewport one above 'max' or greater
|
|
30
28
|
const maxIndex = viewports.keys.indexOf(max);
|
|
31
29
|
const maxPlusOne = maxIndex >= 0 ? viewports.keys[maxIndex + 1] : null;
|
|
32
30
|
if (maxPlusOne) byViewports[maxPlusOne] = null;
|
|
33
31
|
}
|
|
34
|
-
|
|
35
32
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
36
33
|
children: useResponsiveProp(byViewports, null)
|
|
37
34
|
});
|
|
38
35
|
};
|
|
39
|
-
|
|
40
36
|
Responsive.propTypes = {
|
|
41
37
|
/**
|
|
42
38
|
* To hide children of `Responsive` if the current viewport is smaller than `min`
|
|
43
39
|
*/
|
|
44
40
|
min: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),
|
|
45
|
-
|
|
46
41
|
/**
|
|
47
42
|
* To hide children of `Responsive` if the current viewport is larger than `max`
|
|
48
43
|
*/
|