@telus-uds/components-base 1.65.0 → 1.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -2
- 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 +5 -37
- 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 +215 -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 +7 -38
- 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 +106 -69
- package/lib/TextInput/index.js +0 -3
- package/lib/TextInput/propTypes.js +4 -7
- 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 +11 -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 +5 -23
- 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 +205 -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 +7 -25
- 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 +107 -51
- package/lib-module/TextInput/propTypes.js +7 -6
- 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 +14 -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/CheckboxCardGroup/CheckboxCardGroup.jsx +230 -0
- package/src/CheckboxCardGroup/index.js +3 -0
- package/src/Modal/Modal.jsx +98 -5
- package/src/Modal/ModalContent.jsx +171 -0
- package/src/TextInput/TextInputBase.jsx +67 -12
- package/src/TextInput/propTypes.js +4 -0
- package/src/index.js +1 -0
- package/src/utils/props/textInputProps.js +1 -0
|
@@ -18,14 +18,16 @@ const Button = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
18
18
|
...variant
|
|
19
19
|
};
|
|
20
20
|
const getTokens = useThemeTokensCallback('Button', tokens, buttonVariant);
|
|
21
|
-
return /*#__PURE__*/_jsx(ButtonBase, {
|
|
21
|
+
return /*#__PURE__*/_jsx(ButtonBase, {
|
|
22
|
+
...props,
|
|
22
23
|
tokens: getTokens,
|
|
23
24
|
accessibilityRole: accessibilityRole,
|
|
24
25
|
ref: ref
|
|
25
26
|
});
|
|
26
27
|
});
|
|
27
28
|
Button.displayName = 'Button';
|
|
28
|
-
Button.propTypes = {
|
|
29
|
+
Button.propTypes = {
|
|
30
|
+
...a11yProps.types,
|
|
29
31
|
...buttonPropTypes,
|
|
30
32
|
children: textAndA11yText
|
|
31
33
|
};
|
|
@@ -10,7 +10,6 @@ import { a11yProps, clickProps, focusHandlerProps, getCursorStyle, linkProps, re
|
|
|
10
10
|
import { IconText } from '../Icon';
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, linkProps, viewProps]);
|
|
13
|
-
|
|
14
13
|
const getOuterBorderOffset = _ref => {
|
|
15
14
|
let {
|
|
16
15
|
outerBorderGap = 0,
|
|
@@ -18,7 +17,6 @@ const getOuterBorderOffset = _ref => {
|
|
|
18
17
|
} = _ref;
|
|
19
18
|
return outerBorderGap + outerBorderWidth;
|
|
20
19
|
};
|
|
21
|
-
|
|
22
20
|
const selectOuterContainerStyles = _ref2 => {
|
|
23
21
|
let {
|
|
24
22
|
opacity,
|
|
@@ -28,7 +26,8 @@ const selectOuterContainerStyles = _ref2 => {
|
|
|
28
26
|
borderRadius,
|
|
29
27
|
outerBackgroundColor
|
|
30
28
|
} = _ref2;
|
|
31
|
-
return {
|
|
29
|
+
return {
|
|
30
|
+
...Platform.select({
|
|
32
31
|
native: {
|
|
33
32
|
alignSelf: 'flex-start'
|
|
34
33
|
}
|
|
@@ -43,7 +42,6 @@ const selectOuterContainerStyles = _ref2 => {
|
|
|
43
42
|
})
|
|
44
43
|
};
|
|
45
44
|
};
|
|
46
|
-
|
|
47
45
|
const selectOuterSizeStyles = _ref3 => {
|
|
48
46
|
let {
|
|
49
47
|
outerBorderGap,
|
|
@@ -57,16 +55,16 @@ const selectOuterSizeStyles = _ref3 => {
|
|
|
57
55
|
outerBorderGap,
|
|
58
56
|
outerBorderWidth
|
|
59
57
|
});
|
|
60
|
-
const sizeStyles = {};
|
|
61
|
-
|
|
58
|
+
const sizeStyles = {};
|
|
59
|
+
// Apply width/height tokens: number === pixels, string === explicit units e.g. %
|
|
62
60
|
if (typeof width === 'number' && width > 0 || typeof height === 'number' && height > 0) {
|
|
63
61
|
sizeStyles.width = width ? width + outerBorderOffset * 2 : width;
|
|
64
62
|
sizeStyles.height = height ? height + outerBorderOffset * 2 : height;
|
|
65
63
|
return sizeStyles;
|
|
66
64
|
}
|
|
67
|
-
|
|
68
65
|
if (!width) {
|
|
69
|
-
return {
|
|
66
|
+
return {
|
|
67
|
+
...sizeStyles,
|
|
70
68
|
// Wrap content, stopping a flex parent's default align-items: stretch stretching focus ring beyond content
|
|
71
69
|
...Platform.select({
|
|
72
70
|
// width: fit-content isn't supported on Firefox; can't cascade props like CSS `width: fit-content; width: --moz-fit-content;`
|
|
@@ -75,28 +73,26 @@ const selectOuterSizeStyles = _ref3 => {
|
|
|
75
73
|
}
|
|
76
74
|
})
|
|
77
75
|
};
|
|
78
|
-
}
|
|
79
|
-
|
|
76
|
+
}
|
|
80
77
|
|
|
78
|
+
// Ensure the negative margin doesn't make element off-centre
|
|
81
79
|
if (Platform.OS === 'web') {
|
|
82
80
|
sizeStyles.width = `calc(${width} + ${outerBorderOffset * 2}px)`;
|
|
83
81
|
sizeStyles.height = `calc(${height} + ${outerBorderOffset * 2}px)`;
|
|
84
82
|
return sizeStyles;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
}
|
|
84
|
+
// Can't use calc() on native but (unlike on web) flexGrow fills the container width here
|
|
88
85
|
if (width === '100%') {
|
|
89
86
|
sizeStyles.flexGrow = 1;
|
|
90
87
|
return sizeStyles;
|
|
91
|
-
}
|
|
92
|
-
// If centering support is added (e.g. alignSelf: center), set marginHorizontal 0 when centered.
|
|
93
|
-
|
|
88
|
+
}
|
|
94
89
|
|
|
90
|
+
// Slight offset not such a concern if % width < 100%, as the button isn't centered anyway.
|
|
91
|
+
// If centering support is added (e.g. alignSelf: center), set marginHorizontal 0 when centered.
|
|
95
92
|
sizeStyles.width = width;
|
|
96
93
|
sizeStyles.height = height;
|
|
97
94
|
return sizeStyles;
|
|
98
95
|
};
|
|
99
|
-
|
|
100
96
|
const selectInnerContainerStyles = _ref4 => {
|
|
101
97
|
let {
|
|
102
98
|
backgroundColor,
|
|
@@ -112,7 +108,6 @@ const selectInnerContainerStyles = _ref4 => {
|
|
|
112
108
|
borderBottomWidth,
|
|
113
109
|
minWidth
|
|
114
110
|
} = _ref4;
|
|
115
|
-
|
|
116
111
|
// Subtract border width from padding so overall button width/height doesn't
|
|
117
112
|
// jump around if the border width changes (avoiding NaN and negative padding)
|
|
118
113
|
const offsetBorder = _ref5 => {
|
|
@@ -122,7 +117,6 @@ const selectInnerContainerStyles = _ref4 => {
|
|
|
122
117
|
} = _ref5;
|
|
123
118
|
return typeof value === 'number' && typeof borderSize === 'number' ? Math.max(0, value - borderSize) : value;
|
|
124
119
|
};
|
|
125
|
-
|
|
126
120
|
return {
|
|
127
121
|
paddingLeft: offsetBorder({
|
|
128
122
|
value: paddingLeft,
|
|
@@ -145,7 +139,6 @@ const selectInnerContainerStyles = _ref4 => {
|
|
|
145
139
|
...applyShadowToken(shadow)
|
|
146
140
|
};
|
|
147
141
|
};
|
|
148
|
-
|
|
149
142
|
const selectBorderStyles = _ref6 => {
|
|
150
143
|
let {
|
|
151
144
|
borderColor,
|
|
@@ -166,7 +159,6 @@ const selectBorderStyles = _ref6 => {
|
|
|
166
159
|
borderBottomWidth
|
|
167
160
|
};
|
|
168
161
|
};
|
|
169
|
-
|
|
170
162
|
const selectTextStyles = (_ref7, themeOptions) => {
|
|
171
163
|
let {
|
|
172
164
|
fontSize,
|
|
@@ -190,7 +182,6 @@ const selectTextStyles = (_ref7, themeOptions) => {
|
|
|
190
182
|
textDecorationStyle: textLineStyle
|
|
191
183
|
});
|
|
192
184
|
};
|
|
193
|
-
|
|
194
185
|
const selectWebOnlyStyles = (inactive, themeTokens, _ref8) => {
|
|
195
186
|
let {
|
|
196
187
|
accessibilityRole
|
|
@@ -207,7 +198,6 @@ const selectWebOnlyStyles = (inactive, themeTokens, _ref8) => {
|
|
|
207
198
|
default: {}
|
|
208
199
|
});
|
|
209
200
|
};
|
|
210
|
-
|
|
211
201
|
const selectButtonStyles = _ref9 => {
|
|
212
202
|
let {
|
|
213
203
|
textAlign
|
|
@@ -217,7 +207,6 @@ const selectButtonStyles = _ref9 => {
|
|
|
217
207
|
justifyContent: textAlign
|
|
218
208
|
};
|
|
219
209
|
};
|
|
220
|
-
|
|
221
210
|
const selectItemIconTokens = _ref10 => {
|
|
222
211
|
let {
|
|
223
212
|
color,
|
|
@@ -229,7 +218,6 @@ const selectItemIconTokens = _ref10 => {
|
|
|
229
218
|
color: iconColor || color
|
|
230
219
|
};
|
|
231
220
|
};
|
|
232
|
-
|
|
233
221
|
const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
|
|
234
222
|
let {
|
|
235
223
|
id,
|
|
@@ -255,16 +243,12 @@ const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
|
|
|
255
243
|
selected,
|
|
256
244
|
iconPosition
|
|
257
245
|
};
|
|
258
|
-
|
|
259
246
|
const resolveButtonTokens = pressableState => resolvePressableTokens(tokens, pressableState, extraButtonState);
|
|
260
|
-
|
|
261
247
|
const systemProps = selectProps(rest);
|
|
262
|
-
|
|
263
248
|
const getPressableStyle = pressableState => {
|
|
264
249
|
const themeTokens = resolveButtonTokens(pressableState);
|
|
265
250
|
return [staticStyles.row, selectWebOnlyStyles(inactive, themeTokens, systemProps), selectOuterContainerStyles(themeTokens), selectOuterSizeStyles(themeTokens)];
|
|
266
251
|
};
|
|
267
|
-
|
|
268
252
|
const {
|
|
269
253
|
themeOptions
|
|
270
254
|
} = useTheme();
|
|
@@ -286,15 +270,16 @@ const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
|
|
|
286
270
|
const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text, Platform.select({
|
|
287
271
|
web: {
|
|
288
272
|
pointerEvents: 'none' // bubbles press event to parent `Pressable`
|
|
289
|
-
|
|
290
273
|
}
|
|
291
274
|
})];
|
|
275
|
+
|
|
292
276
|
const iconTokens = selectItemIconTokens(themeTokens);
|
|
293
277
|
const {
|
|
294
278
|
iconSpace
|
|
295
|
-
} = themeTokens;
|
|
296
|
-
// If in future we support text alignments other than center, add here.
|
|
279
|
+
} = themeTokens;
|
|
297
280
|
|
|
281
|
+
// If the container has a width set, fill it instead of sizing from content.
|
|
282
|
+
// If in future we support text alignments other than center, add here.
|
|
298
283
|
const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
|
|
299
284
|
const IconComponent = icon || themeTokens.icon;
|
|
300
285
|
const rowStyles = selectButtonStyles(themeTokens);
|
|
@@ -315,10 +300,12 @@ const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
|
|
|
315
300
|
icon: IconComponent,
|
|
316
301
|
iconPosition: iconPosition,
|
|
317
302
|
space: iconSpace,
|
|
318
|
-
iconProps: {
|
|
303
|
+
iconProps: {
|
|
304
|
+
...iconProps,
|
|
319
305
|
tokens: iconTokens
|
|
320
306
|
},
|
|
321
|
-
children: wrapStringsInText(typeof children === 'function' ? children({
|
|
307
|
+
children: wrapStringsInText(typeof children === 'function' ? children({
|
|
308
|
+
...resolvePressableState(pressableState, extraButtonState),
|
|
322
309
|
textStyles
|
|
323
310
|
}) : children, {
|
|
324
311
|
style: textStyles
|
|
@@ -343,7 +330,8 @@ const staticStyles = StyleSheet.create({
|
|
|
343
330
|
flexDirection: 'row',
|
|
344
331
|
justifyContent: 'center'
|
|
345
332
|
},
|
|
346
|
-
text: {
|
|
333
|
+
text: {
|
|
334
|
+
...Platform.select({
|
|
347
335
|
// TODO: https://github.com/telus/universal-design-system/issues/487
|
|
348
336
|
web: {
|
|
349
337
|
transition: 'color 200ms'
|
|
@@ -11,7 +11,6 @@ import Icon from '../Icon';
|
|
|
11
11
|
import { getStackedContent } from '../StackView';
|
|
12
12
|
import { getPressHandlersWithArgs } from '../utils/pressability';
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
-
|
|
15
14
|
const selectIconTokens = _ref => {
|
|
16
15
|
let {
|
|
17
16
|
icon,
|
|
@@ -50,7 +49,6 @@ const selectIconTokens = _ref => {
|
|
|
50
49
|
}
|
|
51
50
|
};
|
|
52
51
|
};
|
|
53
|
-
|
|
54
52
|
const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
55
53
|
let {
|
|
56
54
|
value,
|
|
@@ -80,22 +78,19 @@ const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
80
78
|
...variant
|
|
81
79
|
};
|
|
82
80
|
const getTokens = useThemeTokensCallback('ButtonDropdown', tokens, extraState);
|
|
81
|
+
const getButtonTokens = buttonState => selectTokens('Button', getTokens(buttonState));
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
// Pass an object of relevant component state as first argument for any passed-in press handlers
|
|
87
84
|
const pressHandlers = getPressHandlersWithArgs(props, [{
|
|
88
85
|
label,
|
|
89
86
|
open: isOpen
|
|
90
87
|
}]);
|
|
91
|
-
|
|
92
88
|
const handlePress = event => {
|
|
93
89
|
if (!inactive) {
|
|
94
90
|
if (pressHandlers.onPress) pressHandlers === null || pressHandlers === void 0 ? void 0 : pressHandlers.onPress(event);
|
|
95
91
|
setIsOpen(!isOpen, event);
|
|
96
92
|
}
|
|
97
93
|
};
|
|
98
|
-
|
|
99
94
|
return /*#__PURE__*/_jsx(ButtonBase, {
|
|
100
95
|
ref: ref,
|
|
101
96
|
...pressHandlers,
|
|
@@ -115,6 +110,7 @@ const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
115
110
|
// - Icon: https://github.com/telus/universal-design-system/issues/327
|
|
116
111
|
// - IconButton: https://github.com/telus/universal-design-system/issues/281
|
|
117
112
|
// - Token sets: https://github.com/telus/universal-design-system/issues/782
|
|
113
|
+
|
|
118
114
|
const itemTokens = getTokens(buttonState);
|
|
119
115
|
const {
|
|
120
116
|
iconTokens,
|
|
@@ -130,11 +126,10 @@ const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
130
126
|
tokens: iconTokens
|
|
131
127
|
})
|
|
132
128
|
}) : null;
|
|
133
|
-
|
|
134
|
-
|
|
129
|
+
const childrenContent = () => typeof children === 'function' ? children({
|
|
130
|
+
...resolvePressableState(buttonState, extraState),
|
|
135
131
|
textStyles
|
|
136
132
|
}) : children;
|
|
137
|
-
|
|
138
133
|
const content = children ? childrenContent() : /*#__PURE__*/_jsx(Text, {
|
|
139
134
|
style: textStyles,
|
|
140
135
|
children: label
|
|
@@ -147,33 +142,29 @@ const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
147
142
|
});
|
|
148
143
|
});
|
|
149
144
|
ButtonDropdown.displayName = 'ButtonDropdown';
|
|
150
|
-
ButtonDropdown.propTypes = {
|
|
145
|
+
ButtonDropdown.propTypes = {
|
|
146
|
+
...a11yProps.types,
|
|
151
147
|
...focusHandlerProps.types,
|
|
152
148
|
...buttonPropTypes,
|
|
153
149
|
children: textAndA11yText,
|
|
154
150
|
tokens: getTokensPropType('ButtonDropdown'),
|
|
155
|
-
|
|
156
151
|
/**
|
|
157
152
|
* Callback called when a controlled ButtonDropdown gets interacted with.
|
|
158
153
|
*/
|
|
159
154
|
onChange: PropTypes.func,
|
|
160
|
-
|
|
161
155
|
/**
|
|
162
156
|
* `value` prop is being used to set the 'open' state of ButtonDropdown. Use it for
|
|
163
157
|
* controlled ButtonDropdown. For uncontrolled ButtonDropdown, use `initialValue`.
|
|
164
158
|
*/
|
|
165
159
|
value: PropTypes.bool,
|
|
166
|
-
|
|
167
160
|
/**
|
|
168
161
|
* Use `initialValue` to provide the initial value for an uncontrolled version.
|
|
169
162
|
*/
|
|
170
163
|
initialValue: PropTypes.bool,
|
|
171
|
-
|
|
172
164
|
/**
|
|
173
165
|
* The label of ButtonDropdown.
|
|
174
166
|
*/
|
|
175
167
|
label: PropTypes.string,
|
|
176
|
-
|
|
177
168
|
/**
|
|
178
169
|
* By default, `ButtonDropdown` is treated by accessibility tools as a radio button.
|
|
179
170
|
*/
|
|
@@ -66,14 +66,14 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
66
66
|
});
|
|
67
67
|
const itemA11yRole = systemProps.accessibilityRole === 'radiogroup' ? 'radio' : 'checkbox';
|
|
68
68
|
const uniqueFields = ['id', 'label'];
|
|
69
|
-
|
|
70
69
|
if (!containUniqueFields(items, uniqueFields)) {
|
|
71
70
|
throw new Error(`ButtonGroup items must have unique ${uniqueFields.join(', ')}`);
|
|
72
|
-
}
|
|
73
|
-
|
|
71
|
+
}
|
|
74
72
|
|
|
73
|
+
// Some web screenreaders e.g. MacOS Voiceover don't handle radiogroups properly unless radio is direct child of radiogroup
|
|
75
74
|
const innerRole = Platform.OS === 'web' && accessibilityRole === 'radiogroup' ? accessibilityRole : undefined;
|
|
76
|
-
return /*#__PURE__*/_jsx(Fieldset, {
|
|
75
|
+
return /*#__PURE__*/_jsx(Fieldset, {
|
|
76
|
+
...systemProps,
|
|
77
77
|
ref: ref,
|
|
78
78
|
name: inputGroupName,
|
|
79
79
|
legend: legend,
|
|
@@ -101,19 +101,18 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
101
101
|
ref: itemRef,
|
|
102
102
|
...itemRest
|
|
103
103
|
} = _ref2;
|
|
104
|
-
const isSelected = currentValues.includes(id);
|
|
104
|
+
const isSelected = currentValues.includes(id);
|
|
105
105
|
|
|
106
|
+
// Pass an object of relevant component state as first argument for any passed-in press handlers
|
|
106
107
|
const pressHandlers = getPressHandlersWithArgs(rest, [{
|
|
107
108
|
id,
|
|
108
109
|
label,
|
|
109
110
|
currentValues
|
|
110
111
|
}]);
|
|
111
|
-
|
|
112
112
|
const handlePress = event => {
|
|
113
113
|
if (pressHandlers.onPress) pressHandlers.onPress(event);
|
|
114
114
|
toggleOneValue(id, event);
|
|
115
115
|
};
|
|
116
|
-
|
|
117
116
|
const iconProp = itemRest.icon || undefined;
|
|
118
117
|
const itemA11y = {
|
|
119
118
|
accessibilityState: {
|
|
@@ -122,9 +121,10 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
122
121
|
accessibilityRole: itemA11yRole,
|
|
123
122
|
accessibilityLabel,
|
|
124
123
|
...a11yProps.getPositionInSet(items.length, index)
|
|
125
|
-
};
|
|
126
|
-
// "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
|
|
124
|
+
};
|
|
127
125
|
|
|
126
|
+
// Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
|
|
127
|
+
// "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
|
|
128
128
|
return /*#__PURE__*/_jsx(ButtonBase, {
|
|
129
129
|
ref: itemRef,
|
|
130
130
|
...pressHandlers,
|
|
@@ -133,7 +133,8 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
133
133
|
selected: isSelected,
|
|
134
134
|
inactive: inactive,
|
|
135
135
|
icon: iconProp,
|
|
136
|
-
...selectItemProps({
|
|
136
|
+
...selectItemProps({
|
|
137
|
+
...itemRest,
|
|
137
138
|
...itemA11y
|
|
138
139
|
}),
|
|
139
140
|
iconPosition: iconPosition,
|
|
@@ -144,52 +145,46 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
144
145
|
});
|
|
145
146
|
});
|
|
146
147
|
ButtonGroup.displayName = 'ButtonGroup';
|
|
147
|
-
ButtonGroup.propTypes = {
|
|
148
|
+
ButtonGroup.propTypes = {
|
|
149
|
+
...selectedSystemPropTypes,
|
|
148
150
|
tokens: getTokensPropType('ButtonGroup'),
|
|
149
151
|
variant: variantProp.propType,
|
|
150
|
-
|
|
151
152
|
/**
|
|
152
153
|
* The maximum number of items a user may select at once. Defaults to 1 and behaves
|
|
153
154
|
* like radio buttons. To have no limit and allow any number of selections, pass `null`.
|
|
154
155
|
*/
|
|
155
156
|
maxValues: PropTypes.number,
|
|
156
|
-
|
|
157
157
|
/**
|
|
158
158
|
* The options a user may select
|
|
159
159
|
*/
|
|
160
|
-
items: PropTypes.arrayOf(PropTypes.shape({
|
|
161
|
-
|
|
160
|
+
items: PropTypes.arrayOf(PropTypes.shape({
|
|
161
|
+
...selectedItemPropTypes,
|
|
162
162
|
/**
|
|
163
163
|
* The text displayed to the user in the button, describing this option,
|
|
164
164
|
* passed to the button as its child.
|
|
165
165
|
*/
|
|
166
166
|
label: PropTypes.string.isRequired,
|
|
167
|
-
|
|
168
167
|
/**
|
|
169
168
|
* An optional accessibility label may be passed to ButtonGroup Buttons
|
|
170
169
|
* which is applied as normal for a React Native accessibilityLabel prop.
|
|
171
170
|
*/
|
|
172
171
|
accessibilityLabel: PropTypes.string,
|
|
173
|
-
|
|
174
172
|
/**
|
|
175
173
|
* An optional unique string may be provided to identify this option,
|
|
176
174
|
* which will be used in code and passed to any onChange function.
|
|
177
175
|
* If not provided, the label is used.
|
|
178
176
|
*/
|
|
179
177
|
id: PropTypes.string,
|
|
180
|
-
|
|
181
178
|
/**
|
|
182
179
|
* An optional ref for one individual button in the ButtonGroup
|
|
183
180
|
*/
|
|
184
181
|
ref: ABBPropTypes.ref()
|
|
185
182
|
})),
|
|
186
|
-
|
|
187
183
|
/**
|
|
188
184
|
* If provided, this function is called when the current selection is changed
|
|
189
185
|
* and is passed an array of the `id`s of all currently selected `items`.
|
|
190
186
|
*/
|
|
191
187
|
onChange: PropTypes.func,
|
|
192
|
-
|
|
193
188
|
/**
|
|
194
189
|
* If the selected item(s) in the button group are to be controlled externally by
|
|
195
190
|
* a parent component, pass an array of strings as well as an `onChange` handler.
|
|
@@ -197,65 +192,53 @@ ButtonGroup.propTypes = { ...selectedSystemPropTypes,
|
|
|
197
192
|
* expects its state to be handled via `onChange` and so doesn't handle it itself.
|
|
198
193
|
*/
|
|
199
194
|
values: PropTypes.arrayOf(PropTypes.string),
|
|
200
|
-
|
|
201
195
|
/**
|
|
202
196
|
* If `values` is not passed, making the ButtonGroup an "uncontrolled" component
|
|
203
197
|
* managing its own selected state, a default set of selections may be provided.
|
|
204
198
|
* Changing the `initialValues` does not change the user's selections.
|
|
205
199
|
*/
|
|
206
200
|
initialValues: PropTypes.arrayOf(PropTypes.string),
|
|
207
|
-
|
|
208
201
|
/**
|
|
209
202
|
* Defines if the icon will be displayed on the right or left side of the label.
|
|
210
203
|
*/
|
|
211
204
|
iconPosition: PropTypes.oneOf(['left', 'right']),
|
|
212
|
-
|
|
213
205
|
/**
|
|
214
206
|
* Main text used to describe this group, used in Fieldset's Legend element.
|
|
215
207
|
*/
|
|
216
208
|
legend: PropTypes.string,
|
|
217
|
-
|
|
218
209
|
/**
|
|
219
210
|
* Optional additional text giving more detail to help a user make a choice.
|
|
220
211
|
*/
|
|
221
212
|
hint: PropTypes.string,
|
|
222
|
-
|
|
223
213
|
/**
|
|
224
214
|
* Position of the hint relative to label. Use `below` to display a larger hint below the label.
|
|
225
215
|
*/
|
|
226
216
|
hintPosition: PropTypes.oneOf(['inline', 'below']),
|
|
227
|
-
|
|
228
217
|
/**
|
|
229
218
|
* Optional tooltip text content to include alongside the legend and hint.
|
|
230
219
|
*/
|
|
231
220
|
tooltip: PropTypes.string,
|
|
232
|
-
|
|
233
221
|
/**
|
|
234
222
|
* Current validation status of the group, passed to the feedback element if there is one.
|
|
235
223
|
*/
|
|
236
224
|
validation: PropTypes.oneOf(['error', 'success']),
|
|
237
|
-
|
|
238
225
|
/**
|
|
239
226
|
* If provided, a Feedback element is rendered containing this text.
|
|
240
227
|
*/
|
|
241
228
|
feedback: PropTypes.string,
|
|
242
|
-
|
|
243
229
|
/**
|
|
244
230
|
* If true, the buttons cannot be selected by the user and simply show their current state.
|
|
245
231
|
*/
|
|
246
232
|
readOnly: PropTypes.bool,
|
|
247
|
-
|
|
248
233
|
/**
|
|
249
234
|
* If true, the buttons cannot be interacted with, elements are set as `disabled` and if the
|
|
250
235
|
* theme supports `inactive` appearances rules, these are applied.
|
|
251
236
|
*/
|
|
252
237
|
inactive: PropTypes.bool,
|
|
253
|
-
|
|
254
238
|
/**
|
|
255
239
|
* On Web, this is passed to the `name` attribute of the fieldset.
|
|
256
240
|
*/
|
|
257
241
|
name: PropTypes.string,
|
|
258
|
-
|
|
259
242
|
/**
|
|
260
243
|
* Sets the language of microcopy in subcomponents (e.g. Tooltip's default accessibility label).
|
|
261
244
|
*/
|
|
@@ -5,11 +5,11 @@ import buttonPropTypes, { textAndA11yText } from './propTypes';
|
|
|
5
5
|
import { a11yProps, hrefAttrsProp, linkProps } from '../utils/props';
|
|
6
6
|
import { useThemeTokensCallback } from '../ThemeProvider';
|
|
7
7
|
import { useViewport } from '../ViewportProvider';
|
|
8
|
+
|
|
8
9
|
/**
|
|
9
10
|
* `ButtonLink` is a component with the semantics and behaviour of a link, but with the visual appearance of a button.
|
|
10
11
|
* ButtonLink is a block-level component and should not be used inline.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
14
|
const ButtonLink = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
15
15
|
let {
|
|
@@ -39,7 +39,8 @@ const ButtonLink = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
39
39
|
});
|
|
40
40
|
});
|
|
41
41
|
ButtonLink.displayName = 'ButtonLink';
|
|
42
|
-
ButtonLink.propTypes = {
|
|
42
|
+
ButtonLink.propTypes = {
|
|
43
|
+
...a11yProps.types,
|
|
43
44
|
...buttonPropTypes,
|
|
44
45
|
...linkProps.types,
|
|
45
46
|
children: textAndA11yText,
|
|
@@ -6,18 +6,15 @@ import { iconComponentPropTypes } from '../Icon';
|
|
|
6
6
|
export const textAndA11yText = ABBPropTypes.childrenOf(PropTypes.oneOfType([ABBPropTypes.elementType(A11yText), PropTypes.string]));
|
|
7
7
|
const buttonPropTypes = {
|
|
8
8
|
tokens: getTokensPropType('Button'),
|
|
9
|
-
|
|
10
9
|
/**
|
|
11
10
|
* If true, prevents the button from being pressed, changes the cursor (on web) and accessibility
|
|
12
11
|
* attributes to communicate this to the user, and applies `inactive: true` appearances from the theme
|
|
13
12
|
*/
|
|
14
13
|
inactive: PropTypes.bool,
|
|
15
|
-
|
|
16
14
|
/**
|
|
17
15
|
* Alias for `inactive`
|
|
18
16
|
*/
|
|
19
17
|
disabled: PropTypes.bool,
|
|
20
|
-
|
|
21
18
|
/**
|
|
22
19
|
* Button's children must be either:
|
|
23
20
|
* - One or more text strings and / or A11yText components
|
|
@@ -27,22 +24,18 @@ const buttonPropTypes = {
|
|
|
27
24
|
* ```
|
|
28
25
|
*/
|
|
29
26
|
children: PropTypes.oneOfType([PropTypes.func, textAndA11yText]).isRequired,
|
|
30
|
-
|
|
31
27
|
/**
|
|
32
28
|
* Function called when the button is pressed. Required unless the button has a href.
|
|
33
29
|
*/
|
|
34
30
|
onPress: PropTypes.func,
|
|
35
|
-
|
|
36
31
|
/**
|
|
37
32
|
* Optional variant that may be passed down to the link's icon if there is one
|
|
38
33
|
*/
|
|
39
34
|
iconProps: PropTypes.exact(iconComponentPropTypes),
|
|
40
|
-
|
|
41
35
|
/**
|
|
42
36
|
* When `icon` is provided, use `iconPosition` to place the Icon to the left or right side of the button.
|
|
43
37
|
*/
|
|
44
38
|
iconPosition: PropTypes.oneOf(['left', 'right']),
|
|
45
|
-
|
|
46
39
|
/**
|
|
47
40
|
* A function component for an SVG icon to render inside the link. Inherits size and color from
|
|
48
41
|
* the link and any Typography the link is nested inside.
|
package/lib-module/Card/Card.js
CHANGED
|
@@ -7,6 +7,7 @@ import { a11yProps, selectSystemProps, viewProps } from '../utils/props';
|
|
|
7
7
|
import CardBase from './CardBase';
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
10
|
+
|
|
10
11
|
/**
|
|
11
12
|
* A basic card component, unstyled by default.
|
|
12
13
|
*
|
|
@@ -55,7 +56,6 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
|
|
|
55
56
|
* you automatically make inaccessible its children, which may or may not be appropriate
|
|
56
57
|
* depending on what you are trying to achieve.
|
|
57
58
|
*/
|
|
58
|
-
|
|
59
59
|
const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
60
60
|
let {
|
|
61
61
|
children,
|
|
@@ -77,7 +77,8 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
79
|
Card.displayName = 'Card';
|
|
80
|
-
Card.propTypes = {
|
|
80
|
+
Card.propTypes = {
|
|
81
|
+
...selectedSystemPropTypes,
|
|
81
82
|
children: PropTypes.node,
|
|
82
83
|
tokens: getTokensPropType('Card'),
|
|
83
84
|
variant: variantProp.propType
|
|
@@ -6,8 +6,9 @@ import { applyShadowToken } from '../ThemeProvider';
|
|
|
6
6
|
import { getTokensPropType } from '../utils';
|
|
7
7
|
import { a11yProps, viewProps, selectSystemProps } from '../utils/props';
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
9
|
+
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
10
10
|
|
|
11
|
+
// Ensure explicit selection of tokens
|
|
11
12
|
const selectStyles = _ref => {
|
|
12
13
|
let {
|
|
13
14
|
flex,
|
|
@@ -43,12 +44,11 @@ const selectStyles = _ref => {
|
|
|
43
44
|
} : {})
|
|
44
45
|
};
|
|
45
46
|
};
|
|
47
|
+
|
|
46
48
|
/**
|
|
47
49
|
* A themeless base component for Card which components can apply theme tokens to. Not
|
|
48
50
|
* intended to be used in apps or sites directly: build themed components on top of this.
|
|
49
51
|
*/
|
|
50
|
-
|
|
51
|
-
|
|
52
52
|
const CardBase = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
53
53
|
let {
|
|
54
54
|
children,
|
|
@@ -67,7 +67,8 @@ const CardBase = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
67
67
|
});
|
|
68
68
|
});
|
|
69
69
|
CardBase.displayName = 'CardBase';
|
|
70
|
-
CardBase.propTypes = {
|
|
70
|
+
CardBase.propTypes = {
|
|
71
|
+
...selectedSystemPropTypes,
|
|
71
72
|
children: PropTypes.node,
|
|
72
73
|
tokens: getTokensPropType('Card')
|
|
73
74
|
};
|