@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
|
@@ -20,6 +20,7 @@ const spaceSides = {
|
|
|
20
20
|
row: 'right',
|
|
21
21
|
column: 'bottom'
|
|
22
22
|
};
|
|
23
|
+
|
|
23
24
|
/**
|
|
24
25
|
* An alternative fallback implementation of `StackWrap` that doesn't use CSS `gap`.
|
|
25
26
|
*
|
|
@@ -32,7 +33,6 @@ const spaceSides = {
|
|
|
32
33
|
* Unlike the cleaner and more side-effect-free CSS gap StackWrap implementation, this renders a Box (View)
|
|
33
34
|
* between the container and the stacked children, and requires a negative margin on the container.
|
|
34
35
|
*/
|
|
35
|
-
|
|
36
36
|
const StackWrapBox = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
37
37
|
let {
|
|
38
38
|
space = 1,
|
|
@@ -55,8 +55,9 @@ const StackWrapBox = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
55
55
|
accessibilityRole,
|
|
56
56
|
...getA11yPropsFromHtmlTag(tag, accessibilityRole),
|
|
57
57
|
...rest
|
|
58
|
-
});
|
|
58
|
+
});
|
|
59
59
|
|
|
60
|
+
// Mimic CSS `gap` using box spacing on the side after a wrapped row then offsetting it on the last row.
|
|
60
61
|
const gapSize = useSpacingScale(gap);
|
|
61
62
|
const offsetStyle = {
|
|
62
63
|
[offsetSides[direction]]: -1 * gapSize
|
|
@@ -78,28 +79,25 @@ const StackWrapBox = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
78
79
|
});
|
|
79
80
|
});
|
|
80
81
|
StackWrapBox.displayName = 'StackWrapBox';
|
|
81
|
-
StackWrapBox.propTypes = {
|
|
82
|
+
StackWrapBox.propTypes = {
|
|
83
|
+
...selectedSystemPropTypes,
|
|
82
84
|
tokens: getTokensPropType('StackView'),
|
|
83
|
-
|
|
84
85
|
/**
|
|
85
86
|
* Sets the `flexDirection` of the container
|
|
86
87
|
*/
|
|
87
88
|
direction: responsiveProps.getTypeOptionallyByViewport(PropTypes.oneOf(['column', 'row', 'row-reverse', 'column-reverse'])),
|
|
88
|
-
|
|
89
89
|
/**
|
|
90
90
|
* The size of the space between items according to the theme's spacing scale.
|
|
91
91
|
* Either a number corresponding to a position on the theme's spacing scale (1 is smallest, 2 is second smallest, etc),
|
|
92
92
|
* or, a SpacingObject with viewport keys and options (see `useSpacingScale` for details).
|
|
93
93
|
*/
|
|
94
94
|
space: spacingProps.types.spacingValue,
|
|
95
|
-
|
|
96
95
|
/**
|
|
97
96
|
* The size of the space between lines of content, according to the theme's spacing scale. By default, matches `space`.
|
|
98
97
|
* Either a number corresponding to a position on the theme's spacing scale (1 is smallest, 2 is second smallest, etc),
|
|
99
98
|
* or, a SpacingObject with viewport keys and options (see `useSpacingScale` for details).
|
|
100
99
|
*/
|
|
101
100
|
gap: spacingProps.types.spacingValue,
|
|
102
|
-
|
|
103
101
|
/**
|
|
104
102
|
* Optional semantic HTML tag, to apply to the container on web. Does not change styling.
|
|
105
103
|
*
|
|
@@ -107,7 +105,6 @@ StackWrapBox.propTypes = { ...selectedSystemPropTypes,
|
|
|
107
105
|
* is not defined, the accessibilityRole will default to "heading".
|
|
108
106
|
*/
|
|
109
107
|
tag: PropTypes.oneOf(layoutTags),
|
|
110
|
-
|
|
111
108
|
/**
|
|
112
109
|
* A StackWrap may take any children, but will have no effect if it is only passed one child or is passed children
|
|
113
110
|
* wrapped in a component. If necessary, children may be wrapped in one React Fragment.
|
|
@@ -8,6 +8,7 @@ import getStackedContent from './getStackedContent';
|
|
|
8
8
|
import { staticStyles, selectFlexStyles } from './common';
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const [selectProps] = selectSystemProps([a11yProps, viewProps]);
|
|
11
|
+
|
|
11
12
|
/**
|
|
12
13
|
* The primary implementation of StackWrap.
|
|
13
14
|
*
|
|
@@ -18,7 +19,6 @@ const [selectProps] = selectSystemProps([a11yProps, viewProps]);
|
|
|
18
19
|
* - The `space` between items is the same as the `gap` between wrapped rows (this is the
|
|
19
20
|
* default if `gap` prop is undefined)
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
22
|
const StackWrapGap = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
23
23
|
let {
|
|
24
24
|
space = 1,
|
|
@@ -2,6 +2,7 @@ import React, { Children, Fragment } from 'react';
|
|
|
2
2
|
import Box from '../Box';
|
|
3
3
|
import Divider from '../Divider';
|
|
4
4
|
import Spacer from '../Spacer';
|
|
5
|
+
|
|
5
6
|
/**
|
|
6
7
|
* @typedef {import('react').ReactChildren} ReactChildren
|
|
7
8
|
* @typedef {import('react').ReactElement} ReactElement
|
|
@@ -28,10 +29,8 @@ import Spacer from '../Spacer';
|
|
|
28
29
|
* @param {boolean} [options.preserveFragments]
|
|
29
30
|
* @returns {ReactElement[]}
|
|
30
31
|
*/
|
|
31
|
-
|
|
32
32
|
import { createElement as _createElement } from "react";
|
|
33
33
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
34
|
-
|
|
35
34
|
const getStackedContent = (children, _ref) => {
|
|
36
35
|
let {
|
|
37
36
|
divider,
|
|
@@ -43,8 +42,9 @@ const getStackedContent = (children, _ref) => {
|
|
|
43
42
|
const boxProps = box && typeof box === 'object' ? box : {
|
|
44
43
|
space
|
|
45
44
|
};
|
|
46
|
-
const dividerProps = divider && typeof divider === 'object' ? divider : {};
|
|
45
|
+
const dividerProps = divider && typeof divider === 'object' ? divider : {};
|
|
47
46
|
|
|
47
|
+
// Avoid surprises if children contains comments, nulls, or is a variable wrapped as a fragment
|
|
48
48
|
const topLevelChildren = preserveFragments ? children : unpackFragment(children);
|
|
49
49
|
const validChildren = Children.toArray(topLevelChildren).filter(Boolean);
|
|
50
50
|
const content = validChildren.reduce((newChildren, child, index) => {
|
|
@@ -53,7 +53,8 @@ const getStackedContent = (children, _ref) => {
|
|
|
53
53
|
/*#__PURE__*/
|
|
54
54
|
// If wrapped in Box, that Box needs a key.
|
|
55
55
|
// If possible, use an existing content key; use an index-based key only if necessary.
|
|
56
|
-
_createElement(Box, {
|
|
56
|
+
_createElement(Box, {
|
|
57
|
+
...boxProps,
|
|
57
58
|
key: child.key || boxID,
|
|
58
59
|
testID: boxID
|
|
59
60
|
}, child) : child;
|
|
@@ -76,6 +77,7 @@ const getStackedContent = (children, _ref) => {
|
|
|
76
77
|
}, []);
|
|
77
78
|
return content;
|
|
78
79
|
};
|
|
80
|
+
|
|
79
81
|
/**
|
|
80
82
|
* Unpacks top-level fragments, so that common compositional patterns such as the following examples
|
|
81
83
|
* can be iterated as flat siblings (as if they were `<Child1 /><Child2 /><Child3 />`):
|
|
@@ -108,17 +110,15 @@ const getStackedContent = (children, _ref) => {
|
|
|
108
110
|
* @param {ReactChildren} child
|
|
109
111
|
* @returns {ReactChildren}
|
|
110
112
|
*/
|
|
111
|
-
|
|
112
|
-
|
|
113
113
|
const unpackFragment = child => {
|
|
114
114
|
var _child$props;
|
|
115
|
-
|
|
116
115
|
// If this level is a set of top-level siblings rather than one child, check each in turn
|
|
117
|
-
if (Children.count(child) > 1) return Children.map(child, unpackFragment);
|
|
116
|
+
if (Children.count(child) > 1) return Children.map(child, unpackFragment);
|
|
118
117
|
|
|
119
|
-
|
|
118
|
+
// When a fragment is found, unpack its children to the top level and check them
|
|
119
|
+
if ((child === null || child === void 0 ? void 0 : child.type) === Fragment) return unpackFragment((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children);
|
|
120
120
|
|
|
121
|
+
// Stop unpacking as soon as any non-fragment child is found
|
|
121
122
|
return child;
|
|
122
123
|
};
|
|
123
|
-
|
|
124
124
|
export default getStackedContent;
|
|
@@ -10,7 +10,6 @@ import { applyTextStyles, useTheme } from '../ThemeProvider';
|
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
13
|
-
|
|
14
13
|
const selectCompletedIconTokens = _ref => {
|
|
15
14
|
let {
|
|
16
15
|
completedIconColor,
|
|
@@ -21,7 +20,6 @@ const selectCompletedIconTokens = _ref => {
|
|
|
21
20
|
color: completedIconColor
|
|
22
21
|
};
|
|
23
22
|
};
|
|
24
|
-
|
|
25
23
|
const selectConnectorStyles = (_ref2, isCompleted) => {
|
|
26
24
|
let {
|
|
27
25
|
connectorColor,
|
|
@@ -40,7 +38,6 @@ const selectConnectorStyles = (_ref2, isCompleted) => {
|
|
|
40
38
|
})
|
|
41
39
|
};
|
|
42
40
|
};
|
|
43
|
-
|
|
44
41
|
const selectCurrentInnerStyles = _ref3 => {
|
|
45
42
|
let {
|
|
46
43
|
knobCurrentInnerColor,
|
|
@@ -53,7 +50,6 @@ const selectCurrentInnerStyles = _ref3 => {
|
|
|
53
50
|
width: knobCurrentInnerSize
|
|
54
51
|
};
|
|
55
52
|
};
|
|
56
|
-
|
|
57
53
|
const selectKnobStyles = (_ref4, isCompleted, isCurrent) => {
|
|
58
54
|
let {
|
|
59
55
|
knobBackgroundColor,
|
|
@@ -93,7 +89,6 @@ const selectKnobStyles = (_ref4, isCompleted, isCurrent) => {
|
|
|
93
89
|
})
|
|
94
90
|
};
|
|
95
91
|
};
|
|
96
|
-
|
|
97
92
|
const selectLabelContainerStyles = _ref5 => {
|
|
98
93
|
let {
|
|
99
94
|
labelDirection,
|
|
@@ -110,7 +105,6 @@ const selectLabelContainerStyles = _ref5 => {
|
|
|
110
105
|
gap: labelGap
|
|
111
106
|
};
|
|
112
107
|
};
|
|
113
|
-
|
|
114
108
|
const selectStepLabelStyles = (_ref6, themeOptions, isCurrent) => {
|
|
115
109
|
let {
|
|
116
110
|
stepLabelColor,
|
|
@@ -129,7 +123,6 @@ const selectStepLabelStyles = (_ref6, themeOptions, isCurrent) => {
|
|
|
129
123
|
themeOptions
|
|
130
124
|
});
|
|
131
125
|
};
|
|
132
|
-
|
|
133
126
|
const selectLabelStyles = (_ref7, themeOptions, isCurrent) => {
|
|
134
127
|
let {
|
|
135
128
|
labelColor,
|
|
@@ -149,23 +142,19 @@ const selectLabelStyles = (_ref7, themeOptions, isCurrent) => {
|
|
|
149
142
|
themeOptions
|
|
150
143
|
});
|
|
151
144
|
};
|
|
152
|
-
|
|
153
145
|
const getStepTestID = (isCompleted, isCurrent) => {
|
|
154
146
|
let testID = 'StepTracker-Step';
|
|
155
|
-
|
|
156
147
|
if (isCompleted) {
|
|
157
148
|
testID += '-Completed';
|
|
158
149
|
} else if (isCurrent) {
|
|
159
150
|
testID += '-Current';
|
|
160
151
|
}
|
|
161
|
-
|
|
162
152
|
return testID;
|
|
163
153
|
};
|
|
154
|
+
|
|
164
155
|
/**
|
|
165
156
|
* A single step of a StepTracker.
|
|
166
157
|
*/
|
|
167
|
-
|
|
168
|
-
|
|
169
158
|
const Step = _ref8 => {
|
|
170
159
|
let {
|
|
171
160
|
label,
|
|
@@ -238,8 +227,8 @@ const Step = _ref8 => {
|
|
|
238
227
|
})]
|
|
239
228
|
});
|
|
240
229
|
};
|
|
241
|
-
|
|
242
|
-
|
|
230
|
+
Step.propTypes = {
|
|
231
|
+
...selectedSystemPropTypes,
|
|
243
232
|
label: PropTypes.string.isRequired,
|
|
244
233
|
name: PropTypes.string.isRequired,
|
|
245
234
|
status: PropTypes.number.isRequired,
|
|
@@ -13,7 +13,6 @@ import defaultDictionary from './dictionary';
|
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
14
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
15
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
16
|
-
|
|
17
16
|
const selectContainerStyles = _ref => {
|
|
18
17
|
let {
|
|
19
18
|
containerPaddingBottom,
|
|
@@ -28,7 +27,6 @@ const selectContainerStyles = _ref => {
|
|
|
28
27
|
paddingTop: containerPaddingTop
|
|
29
28
|
};
|
|
30
29
|
};
|
|
31
|
-
|
|
32
30
|
const selectStepTrackerLabelContainerStyles = _ref2 => {
|
|
33
31
|
let {
|
|
34
32
|
labelMarginTop
|
|
@@ -37,7 +35,6 @@ const selectStepTrackerLabelContainerStyles = _ref2 => {
|
|
|
37
35
|
marginTop: labelMarginTop
|
|
38
36
|
};
|
|
39
37
|
};
|
|
40
|
-
|
|
41
38
|
const selectStepTrackerLabelStyles = (_ref3, themeOptions) => {
|
|
42
39
|
let {
|
|
43
40
|
labelColor,
|
|
@@ -55,6 +52,7 @@ const selectStepTrackerLabelStyles = (_ref3, themeOptions) => {
|
|
|
55
52
|
themeOptions
|
|
56
53
|
});
|
|
57
54
|
};
|
|
55
|
+
|
|
58
56
|
/**
|
|
59
57
|
* StepTracker component shows the current position in a sequence of steps.
|
|
60
58
|
*
|
|
@@ -87,8 +85,6 @@ const selectStepTrackerLabelStyles = (_ref3, themeOptions) => {
|
|
|
87
85
|
* - `accessibilityValue.text` (`aria-valuetext`): `<Current Step Label>`,
|
|
88
86
|
*
|
|
89
87
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
92
88
|
const StepTracker = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
93
89
|
let {
|
|
94
90
|
current = 0,
|
|
@@ -114,9 +110,7 @@ const StepTracker = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
|
114
110
|
copy
|
|
115
111
|
});
|
|
116
112
|
const stepTrackerLabel = showStepTrackerLabel ? (typeof copy === 'string' ? getCopy(textStepTrackerLabel ?? 1).stepTrackerLabel : getCopy('stepTrackerLabel')).replace('%{stepNumber}', current < steps.length ? current + 1 : steps.length).replace('%{stepCount}', steps.length).replace('%{stepLabel}', current < steps.length ? steps[current] : steps[steps.length - 1]) : '';
|
|
117
|
-
|
|
118
113
|
const getStepLabel = index => themeTokens.showStepLabel ? (typeof copy === 'string' ? getCopy(textStepTrackerLabel ?? 1).stepLabel : getCopy('stepLabel')).replace('%{stepNumber}', index + 1) : '';
|
|
119
|
-
|
|
120
114
|
const {
|
|
121
115
|
themeOptions
|
|
122
116
|
} = useTheme();
|
|
@@ -161,24 +155,23 @@ const StepTracker = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
|
161
155
|
})
|
|
162
156
|
});
|
|
163
157
|
});
|
|
164
|
-
StepTracker.displayName = 'StepTracker';
|
|
158
|
+
StepTracker.displayName = 'StepTracker';
|
|
165
159
|
|
|
160
|
+
// If a language dictionary entry is provided, it must contain every key
|
|
166
161
|
const dictionaryContentShape = PropTypes.shape({
|
|
167
162
|
stepLabel: PropTypes.string.isRequired,
|
|
168
163
|
stepTrackerLabel: PropTypes.string.isRequired
|
|
169
164
|
});
|
|
170
|
-
StepTracker.propTypes = {
|
|
171
|
-
|
|
165
|
+
StepTracker.propTypes = {
|
|
166
|
+
...selectedSystemPropTypes,
|
|
172
167
|
/**
|
|
173
168
|
* The current step, 0-based number
|
|
174
169
|
*/
|
|
175
170
|
current: PropTypes.number,
|
|
176
|
-
|
|
177
171
|
/**
|
|
178
172
|
* The language to use for the labels
|
|
179
173
|
*/
|
|
180
174
|
copy: PropTypes.oneOfType([PropTypes.oneOf(['en', 'fr']), dictionaryContentShape]),
|
|
181
|
-
|
|
182
175
|
/**
|
|
183
176
|
* Custom dictionary containing the labels to use for the steps
|
|
184
177
|
*/
|
|
@@ -186,7 +179,6 @@ StepTracker.propTypes = { ...selectedSystemPropTypes,
|
|
|
186
179
|
en: dictionaryContentShape,
|
|
187
180
|
fr: dictionaryContentShape
|
|
188
181
|
}),
|
|
189
|
-
|
|
190
182
|
/**
|
|
191
183
|
* An array of strings defining the step titles
|
|
192
184
|
*/
|
package/lib-module/Tabs/Tabs.js
CHANGED
|
@@ -14,20 +14,16 @@ const {
|
|
|
14
14
|
selectHorizontalScrollTokens,
|
|
15
15
|
useItemPositions
|
|
16
16
|
} = horizontalScrollUtils;
|
|
17
|
-
|
|
18
17
|
const getDefaultTabItemAccessibilityRole = parentRole => {
|
|
19
18
|
switch (parentRole) {
|
|
20
19
|
case 'tablist':
|
|
21
20
|
return 'tab';
|
|
22
|
-
|
|
23
21
|
case 'navigation':
|
|
24
22
|
return 'link';
|
|
25
|
-
|
|
26
23
|
default:
|
|
27
24
|
return undefined;
|
|
28
25
|
}
|
|
29
26
|
};
|
|
30
|
-
|
|
31
27
|
const getStackViewTokens = variant => {
|
|
32
28
|
const equalWidth = variant === null || variant === void 0 ? void 0 : variant.equalWidth;
|
|
33
29
|
return Platform.select({
|
|
@@ -38,6 +34,7 @@ const getStackViewTokens = variant => {
|
|
|
38
34
|
default: {}
|
|
39
35
|
});
|
|
40
36
|
};
|
|
37
|
+
|
|
41
38
|
/**
|
|
42
39
|
* Tabs renders a horizontally-scrolling menu of selectable buttons which may link
|
|
43
40
|
* to a page or control what content is displayed on this page.
|
|
@@ -46,8 +43,6 @@ const getStackViewTokens = variant => {
|
|
|
46
43
|
* `navigation`as the `accessibilityRole` to te Tabs component, this will cause
|
|
47
44
|
* TabItems to default to a role of link and obtain aria-current behaviour.
|
|
48
45
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
46
|
const Tabs = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
52
47
|
let {
|
|
53
48
|
tokens,
|
|
@@ -115,12 +110,10 @@ const Tabs = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
115
110
|
} = _ref3;
|
|
116
111
|
const itemId = id ?? label;
|
|
117
112
|
const isSelected = Boolean(currentValue && currentValue === itemId);
|
|
118
|
-
|
|
119
113
|
const handlePress = event => {
|
|
120
114
|
if (typeof onPress === 'function') onPress(event);
|
|
121
115
|
setValue(itemId, event);
|
|
122
116
|
};
|
|
123
|
-
|
|
124
117
|
const itemProps = selectItemProps(itemRest);
|
|
125
118
|
return /*#__PURE__*/_jsx(TabsItem, {
|
|
126
119
|
ref: itemRef,
|
|
@@ -134,7 +127,8 @@ const Tabs = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
134
127
|
index: index,
|
|
135
128
|
accessibilityRole: accessibilityRole,
|
|
136
129
|
LinkRouter: ItemLinkRouter,
|
|
137
|
-
linkRouterProps: {
|
|
130
|
+
linkRouterProps: {
|
|
131
|
+
...linkRouterProps,
|
|
138
132
|
...itemLinkRouterProps
|
|
139
133
|
},
|
|
140
134
|
...itemProps,
|
|
@@ -145,37 +139,34 @@ const Tabs = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
145
139
|
});
|
|
146
140
|
});
|
|
147
141
|
Tabs.displayName = 'Tabs';
|
|
148
|
-
Tabs.propTypes = {
|
|
142
|
+
Tabs.propTypes = {
|
|
143
|
+
...selectedSystemPropTypes,
|
|
149
144
|
...withLinkRouter.PropTypes,
|
|
150
|
-
|
|
151
145
|
/**
|
|
152
146
|
* Array of `TabsItem`s
|
|
153
147
|
*/
|
|
154
|
-
items: PropTypes.arrayOf(PropTypes.shape({
|
|
148
|
+
items: PropTypes.arrayOf(PropTypes.shape({
|
|
149
|
+
...selectedItemPropTypes,
|
|
155
150
|
...withLinkRouter.PropTypes,
|
|
156
151
|
href: PropTypes.string,
|
|
157
152
|
label: PropTypes.string,
|
|
158
153
|
id: PropTypes.string,
|
|
159
154
|
ref: ABBPropTypes.ref()
|
|
160
155
|
})),
|
|
161
|
-
|
|
162
156
|
/**
|
|
163
157
|
* `id` property of the current tab in the items array
|
|
164
158
|
*/
|
|
165
159
|
value: PropTypes.string,
|
|
166
160
|
initialValue: PropTypes.string,
|
|
167
|
-
|
|
168
161
|
/**
|
|
169
162
|
* Callback for when the selected tab changes
|
|
170
163
|
*/
|
|
171
164
|
onChange: PropTypes.func,
|
|
172
165
|
tokens: getTokensPropType('Tabs'),
|
|
173
|
-
|
|
174
166
|
/**
|
|
175
167
|
* Custom tokens for `TabsItem`
|
|
176
168
|
*/
|
|
177
169
|
itemTokens: getTokensPropType('TabsItem'),
|
|
178
|
-
|
|
179
170
|
/**
|
|
180
171
|
* Custom tokens for `HorizontalScrollButton`
|
|
181
172
|
*/
|
|
@@ -16,7 +16,6 @@ const {
|
|
|
16
16
|
itemPositionsPropType,
|
|
17
17
|
getItemPositionLayoutHandler
|
|
18
18
|
} = horizontalScrollUtils;
|
|
19
|
-
|
|
20
19
|
const selectHighlightBarStyles = _ref => {
|
|
21
20
|
let {
|
|
22
21
|
highlightColor,
|
|
@@ -36,7 +35,6 @@ const selectHighlightBarStyles = _ref => {
|
|
|
36
35
|
zIndex: 1 + highlightBarBorderWidth
|
|
37
36
|
};
|
|
38
37
|
};
|
|
39
|
-
|
|
40
38
|
const selectHighlightTriangleStyles = _ref2 => {
|
|
41
39
|
let {
|
|
42
40
|
highlightColor,
|
|
@@ -57,7 +55,6 @@ const selectHighlightTriangleStyles = _ref2 => {
|
|
|
57
55
|
}
|
|
58
56
|
};
|
|
59
57
|
};
|
|
60
|
-
|
|
61
58
|
const selectContainerStyles = _ref3 => {
|
|
62
59
|
let {
|
|
63
60
|
backgroundColor,
|
|
@@ -76,14 +73,13 @@ const selectContainerStyles = _ref3 => {
|
|
|
76
73
|
paddingVertical: paddingVertical - borderWidth
|
|
77
74
|
};
|
|
78
75
|
};
|
|
76
|
+
|
|
79
77
|
/**
|
|
80
78
|
* Item within a Tabs component representing one tab of content. May be rendered as a link
|
|
81
79
|
* or as a "menuitem" button depending on whether 'href' is passed.
|
|
82
80
|
*
|
|
83
81
|
* This is rendered automatically by `Tabs` and isn't intended be used directly.
|
|
84
82
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
83
|
const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
88
84
|
let {
|
|
89
85
|
href,
|
|
@@ -110,11 +106,9 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
|
110
106
|
themeOptions
|
|
111
107
|
} = useTheme();
|
|
112
108
|
const getTokens = useThemeTokensCallback('TabsItem', tokens, variant);
|
|
113
|
-
|
|
114
109
|
const resolveTokens = pressableState => resolvePressableTokens(getTokens, pressableState, {
|
|
115
110
|
selected
|
|
116
111
|
});
|
|
117
|
-
|
|
118
112
|
const getPressableStyle = pressableState => {
|
|
119
113
|
const {
|
|
120
114
|
maxWidth
|
|
@@ -125,9 +119,9 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
|
125
119
|
outline: 'none'
|
|
126
120
|
}];
|
|
127
121
|
};
|
|
122
|
+
const handleLayout = getItemPositionLayoutHandler(itemPositions.positions, index);
|
|
128
123
|
|
|
129
|
-
|
|
130
|
-
|
|
124
|
+
// On press, update the selection, call any press handler, and open any href in platform-appropriate way
|
|
131
125
|
const openHref = href && linkProps.handleHref({
|
|
132
126
|
href
|
|
133
127
|
});
|
|
@@ -146,14 +140,15 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
|
146
140
|
if (selected) {
|
|
147
141
|
const position = itemPositions.positions[index];
|
|
148
142
|
const scrollEnd = itemPositions.scrollOffset + itemPositions.containerWidth;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
scrollEnd && (position === null || position === void 0 ? void 0 : position.end) > scrollEnd ||
|
|
143
|
+
if (
|
|
144
|
+
// is off the right edge, or
|
|
145
|
+
scrollEnd && (position === null || position === void 0 ? void 0 : position.end) > scrollEnd ||
|
|
146
|
+
// is off the left edge
|
|
152
147
|
typeof (position === null || position === void 0 ? void 0 : position.start) === 'number' && position.start < itemPositions.scrollOffset) {
|
|
153
148
|
itemPositions.scrollTo(position.start);
|
|
154
149
|
}
|
|
155
|
-
}
|
|
156
|
-
|
|
150
|
+
}
|
|
151
|
+
// itemPositions is a ref object so this should only re-run when `selected` (or `index`) change
|
|
157
152
|
}, [selected, index, itemPositions]);
|
|
158
153
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
159
154
|
ref: ref,
|
|
@@ -174,7 +169,8 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
|
174
169
|
const hasHighlightTriangle = Boolean(themeTokens.highlightTriangleSize);
|
|
175
170
|
const highlightTriangleStyle = hasHighlightTriangle && selectHighlightTriangleStyles(themeTokens);
|
|
176
171
|
const containerStyles = selectContainerStyles(themeTokens);
|
|
177
|
-
const textStyles = applyTextStyles({
|
|
172
|
+
const textStyles = applyTextStyles({
|
|
173
|
+
...selectTokens('Typography', themeTokens),
|
|
178
174
|
themeOptions,
|
|
179
175
|
textAlign
|
|
180
176
|
});
|
|
@@ -201,7 +197,8 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
|
|
|
201
197
|
});
|
|
202
198
|
});
|
|
203
199
|
TabsItem.displayName = 'TabsItem';
|
|
204
|
-
TabsItem.propTypes = {
|
|
200
|
+
TabsItem.propTypes = {
|
|
201
|
+
...selectedSystemPropTypes,
|
|
205
202
|
tokens: getTokensPropType('TabsItem'),
|
|
206
203
|
variant: variantProp.propType,
|
|
207
204
|
onPress: PropTypes.func,
|
package/lib-module/Tags/Tags.js
CHANGED
|
@@ -14,7 +14,6 @@ import { getPressHandlersWithArgs } from '../utils/pressability';
|
|
|
14
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
15
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
16
16
|
const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, pressProps, viewProps]);
|
|
17
|
-
|
|
18
17
|
const separateIconTextTokens = (_ref, returnRest) => {
|
|
19
18
|
let {
|
|
20
19
|
icon,
|
|
@@ -54,11 +53,8 @@ const separateIconTextTokens = (_ref, returnRest) => {
|
|
|
54
53
|
}
|
|
55
54
|
};
|
|
56
55
|
};
|
|
57
|
-
|
|
58
56
|
const selectIconTextTokens = tokens => separateIconTextTokens(tokens, false);
|
|
59
|
-
|
|
60
57
|
const selectNonIconTextTokens = tokens => separateIconTextTokens(tokens, true);
|
|
61
|
-
|
|
62
58
|
const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
63
59
|
let {
|
|
64
60
|
variant,
|
|
@@ -86,10 +82,9 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
86
82
|
space
|
|
87
83
|
} = themeTokens;
|
|
88
84
|
const getItemTokens = useThemeTokensCallback('TagsItem', tokens, variant);
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
const getButtonTokens = buttonState =>
|
|
86
|
+
// Remove icon-text-related tokens, since we want to handle them ourselves, not use ButtonBase's handling
|
|
91
87
|
selectTokens('Button', selectNonIconTextTokens(getItemTokens(buttonState)));
|
|
92
|
-
|
|
93
88
|
const {
|
|
94
89
|
currentValues,
|
|
95
90
|
toggleOneValue
|
|
@@ -106,11 +101,9 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
106
101
|
});
|
|
107
102
|
const itemA11yRole = 'checkbox';
|
|
108
103
|
const uniqueFields = ['id', 'label'];
|
|
109
|
-
|
|
110
104
|
if (!containUniqueFields(items, uniqueFields)) {
|
|
111
105
|
throw new Error(`Tags items must have unique ${uniqueFields.join(', ')}`);
|
|
112
106
|
}
|
|
113
|
-
|
|
114
107
|
return /*#__PURE__*/_jsx(StackWrap, {
|
|
115
108
|
ref: ref,
|
|
116
109
|
...selectedProps,
|
|
@@ -124,19 +117,18 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
124
117
|
ref: itemRef,
|
|
125
118
|
...itemRest
|
|
126
119
|
} = _ref3;
|
|
127
|
-
const isSelected = currentValues.includes(id);
|
|
120
|
+
const isSelected = currentValues.includes(id);
|
|
128
121
|
|
|
122
|
+
// Pass an object of relevant component state as first argument for any passed-in press handlers
|
|
129
123
|
const pressHandlers = getPressHandlersWithArgs(rest, [{
|
|
130
124
|
id,
|
|
131
125
|
label,
|
|
132
126
|
currentValues
|
|
133
127
|
}]);
|
|
134
|
-
|
|
135
128
|
const handlePress = event => {
|
|
136
129
|
if (pressHandlers.onPress) pressHandlers.onPress(event);
|
|
137
130
|
toggleOneValue(id, event);
|
|
138
131
|
};
|
|
139
|
-
|
|
140
132
|
const itemProps = selectItemProps({
|
|
141
133
|
accessibilityState: {
|
|
142
134
|
checked: isSelected
|
|
@@ -163,6 +155,7 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
163
155
|
// - Icon: https://github.com/telus/universal-design-system/issues/327
|
|
164
156
|
// - IconButton: https://github.com/telus/universal-design-system/issues/281
|
|
165
157
|
// - Token sets: https://github.com/telus/universal-design-system/issues/782
|
|
158
|
+
|
|
166
159
|
const itemTokens = getItemTokens(buttonState);
|
|
167
160
|
const {
|
|
168
161
|
iconTokens,
|
|
@@ -178,12 +171,10 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
178
171
|
tokens: iconTokens
|
|
179
172
|
})
|
|
180
173
|
}) : null;
|
|
181
|
-
|
|
182
174
|
const textContent = /*#__PURE__*/_jsx(Text, {
|
|
183
175
|
style: textStyles,
|
|
184
176
|
children: label
|
|
185
177
|
});
|
|
186
|
-
|
|
187
178
|
return getStackedContent(iconPosition === 'left' ? [iconContent, textContent] : [textContent, iconContent], {
|
|
188
179
|
space: iconSpace,
|
|
189
180
|
direction: 'row'
|
|
@@ -194,51 +185,45 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
194
185
|
});
|
|
195
186
|
});
|
|
196
187
|
Tags.displayName = 'Tags';
|
|
197
|
-
Tags.propTypes = {
|
|
188
|
+
Tags.propTypes = {
|
|
189
|
+
...selectedSystemPropTypes,
|
|
198
190
|
tokens: getTokensPropType('Tags'),
|
|
199
191
|
variant: variantProp.propType,
|
|
200
|
-
|
|
201
192
|
/**
|
|
202
193
|
* If provided, sets a maximum number of items a user may select at once.
|
|
203
194
|
*/
|
|
204
195
|
maxValues: PropTypes.number,
|
|
205
|
-
|
|
206
196
|
/**
|
|
207
197
|
* The options a user may select
|
|
208
198
|
*/
|
|
209
|
-
items: PropTypes.arrayOf(PropTypes.shape({
|
|
210
|
-
|
|
199
|
+
items: PropTypes.arrayOf(PropTypes.shape({
|
|
200
|
+
...selectedItemPropTypes,
|
|
211
201
|
/**
|
|
212
202
|
* The text displayed to the user in the button, describing this option,
|
|
213
203
|
* passed to the button as its child.
|
|
214
204
|
*/
|
|
215
205
|
label: PropTypes.string.isRequired,
|
|
216
|
-
|
|
217
206
|
/**
|
|
218
207
|
* An optional accessibility label may be passed to ButtonGroup Buttons
|
|
219
208
|
* which is applied as normal for a React Native accessibilityLabel prop.
|
|
220
209
|
*/
|
|
221
210
|
accessibilityLabel: PropTypes.string,
|
|
222
|
-
|
|
223
211
|
/**
|
|
224
212
|
* An optional unique string may be provided to identify this option,
|
|
225
213
|
* which will be used in code and passed to any onChange function.
|
|
226
214
|
* If not provided, the label is used.
|
|
227
215
|
*/
|
|
228
216
|
id: PropTypes.string,
|
|
229
|
-
|
|
230
217
|
/**
|
|
231
218
|
* An optional ref for one individual Tag button in the tags
|
|
232
219
|
*/
|
|
233
220
|
ref: ABBPropTypes.ref()
|
|
234
221
|
})),
|
|
235
|
-
|
|
236
222
|
/**
|
|
237
223
|
* If provided, this function is called when the current selection is changed
|
|
238
224
|
* and is passed an array of the `id`s of all currently selected `items`.
|
|
239
225
|
*/
|
|
240
226
|
onChange: PropTypes.func,
|
|
241
|
-
|
|
242
227
|
/**
|
|
243
228
|
* If the selected item(s) in the button group are to be controlled externally by
|
|
244
229
|
* a parent component, pass an array of strings as well as an `onChange` handler.
|
|
@@ -246,14 +231,12 @@ Tags.propTypes = { ...selectedSystemPropTypes,
|
|
|
246
231
|
* expects its state to be handled via `onChange` and so doesn't handle it itself.
|
|
247
232
|
*/
|
|
248
233
|
values: PropTypes.arrayOf(PropTypes.string),
|
|
249
|
-
|
|
250
234
|
/**
|
|
251
235
|
* If `values` is not passed, making the ButtonGroup an "uncontrolled" component
|
|
252
236
|
* managing its own selected state, a default set of selections may be provided.
|
|
253
237
|
* Changing the `initialValues` does not change the user's selections.
|
|
254
238
|
*/
|
|
255
239
|
initialValues: PropTypes.arrayOf(PropTypes.string),
|
|
256
|
-
|
|
257
240
|
/**
|
|
258
241
|
* AccesibilityRole for the Tags
|
|
259
242
|
*/
|