@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
|
@@ -4,35 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _HydrationContext = require("../BaseProvider/HydrationContext");
|
|
11
|
-
|
|
12
9
|
const isSSR = typeof window === 'undefined';
|
|
13
|
-
|
|
14
10
|
const noop = () => {};
|
|
11
|
+
|
|
15
12
|
/**
|
|
16
13
|
* useSafeLayoutEffect is a alternative to useLayoutEffect that avoids SSR hydration problems:
|
|
17
14
|
* - In a client-side render, it uses useLayoutEffect to avoid flashing the pre-render UI to the user.
|
|
18
15
|
* - During hydration from SSR, the provided function is skipped to avoid mismatches from server content.
|
|
19
16
|
* - In SSR, it is a no-op function to avoid warnings about using useLayoutEffect in SSR
|
|
20
17
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
18
|
const useSafeLayoutEffect = isSSR ? noop // avoid React's fussy warnings by ensuring to never call useLayoutEffect on server
|
|
24
19
|
: function (fn) {
|
|
25
20
|
let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
26
|
-
const isHydrating = (0, _HydrationContext.useHydrationContext)();
|
|
21
|
+
const isHydrating = (0, _HydrationContext.useHydrationContext)();
|
|
27
22
|
|
|
23
|
+
// Callback updates and effect re-runs when deps array content changes, like useEffect.
|
|
28
24
|
/* eslint-disable-next-line react-hooks/exhaustive-deps */
|
|
29
|
-
|
|
30
25
|
const callback = (0, _react.useCallback)(fn, deps);
|
|
31
26
|
(0, _react.useLayoutEffect)(() => {
|
|
32
27
|
// Do nothing before hydrating server-generated content, like useEffect. When hydration completes,
|
|
33
28
|
// useHydrationContext provides false, re-rendering this hook and re-running the effect.
|
|
34
|
-
if (isHydrating) return noop;
|
|
35
|
-
|
|
29
|
+
if (isHydrating) return noop;
|
|
30
|
+
// If there's no hydration in progress, behave like useLayoutEffect.
|
|
36
31
|
return callback();
|
|
37
32
|
}, [isHydrating, callback]);
|
|
38
33
|
};
|
|
@@ -4,26 +4,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
const addScrollBlocking = (preventScrolling, stopPropagation, ref) => {
|
|
11
9
|
var _ref$current;
|
|
12
|
-
|
|
13
10
|
document.body.addEventListener('touchmove', preventScrolling, {
|
|
14
11
|
passive: false
|
|
15
12
|
});
|
|
16
13
|
(_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.addEventListener('touchmove', stopPropagation);
|
|
17
14
|
document.body.style.overflow = 'hidden';
|
|
18
15
|
};
|
|
19
|
-
|
|
20
16
|
const removeScrollBlocking = (preventScrolling, stopPropagation, ref) => {
|
|
21
17
|
var _ref$current2;
|
|
22
|
-
|
|
23
18
|
document.body.removeEventListener('touchmove', preventScrolling);
|
|
24
19
|
(_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.removeEventListener('touchmove', stopPropagation);
|
|
25
20
|
document.body.style.overflow = 'inherit';
|
|
26
21
|
};
|
|
22
|
+
|
|
27
23
|
/**
|
|
28
24
|
* Disables scrolling when passed `true` or an array where all items are `true`.
|
|
29
25
|
*
|
|
@@ -33,8 +29,6 @@ const removeScrollBlocking = (preventScrolling, stopPropagation, ref) => {
|
|
|
33
29
|
* @param {boolean | boolean[]} conditionProps
|
|
34
30
|
* @returns
|
|
35
31
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
32
|
const useScrollBlocking = conditionProps => {
|
|
39
33
|
// useRef refs are null on first render and don't trigger a re-render when they get their
|
|
40
34
|
// element. Force re-run when ref mounts to ensure the stopPropagation listener is attached.
|
|
@@ -49,18 +43,16 @@ const useScrollBlocking = conditionProps => {
|
|
|
49
43
|
const stopPropagation = (0, _react.useCallback)(event => event.stopPropagation(), []);
|
|
50
44
|
(0, _react.useEffect)(() => {
|
|
51
45
|
const cleanup = () => removeScrollBlocking(preventScrolling, stopPropagation, ref);
|
|
52
|
-
|
|
53
46
|
if (conditionsMet) {
|
|
54
47
|
addScrollBlocking(preventScrolling, stopPropagation, ref);
|
|
55
48
|
} else {
|
|
56
49
|
cleanup();
|
|
57
50
|
}
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
return cleanup;
|
|
52
|
+
// preventScrolling and stopPropagation are stable callbacks with no deps, so this
|
|
60
53
|
// will re-run when conditionsMet or refIsMounted flip between true and false.
|
|
61
54
|
}, [preventScrolling, conditionsMet, stopPropagation, refIsMounted]);
|
|
62
55
|
return callbackRef;
|
|
63
56
|
};
|
|
64
|
-
|
|
65
57
|
var _default = useScrollBlocking;
|
|
66
58
|
exports.default = _default;
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _ViewportProvider = require("../ViewportProvider");
|
|
9
|
-
|
|
10
8
|
var _ThemeProvider = require("../ThemeProvider");
|
|
11
|
-
|
|
12
9
|
var _useResponsiveProp = require("./useResponsiveProp");
|
|
13
|
-
|
|
14
10
|
/**
|
|
15
11
|
* @typedef {import('@telus-uds/system-constants/viewports').Viewport} Viewport
|
|
16
12
|
* @typedef {import('./props/spacingProps.js').SpacingValue} SpacingValue
|
|
@@ -18,6 +14,7 @@ var _useResponsiveProp = require("./useResponsiveProp");
|
|
|
18
14
|
* @typedef {import('./props/spacingProps.js').SpacingObject} SpacingObject
|
|
19
15
|
* @typedef {import('./props/spacingProps.js').SpacingOptions} SpacingOptions
|
|
20
16
|
*/
|
|
17
|
+
|
|
21
18
|
const resolveSpacingOptions = space => {
|
|
22
19
|
if (!(space !== null && space !== void 0 && space.options)) return {};
|
|
23
20
|
const {
|
|
@@ -25,7 +22,9 @@ const resolveSpacingOptions = space => {
|
|
|
25
22
|
variant,
|
|
26
23
|
subtract = 0
|
|
27
24
|
} = space.options;
|
|
28
|
-
const overridden = typeof size === 'number';
|
|
25
|
+
const overridden = typeof size === 'number';
|
|
26
|
+
|
|
27
|
+
// Might need an option that adapts the size value by current user's system font scale, so that
|
|
29
28
|
// meaningful spacing between items doesn't disappear on the highest a11y font scale settings.
|
|
30
29
|
// https://github.com/telus/universal-design-system/issues/583
|
|
31
30
|
|
|
@@ -38,6 +37,7 @@ const resolveSpacingOptions = space => {
|
|
|
38
37
|
subtract
|
|
39
38
|
};
|
|
40
39
|
};
|
|
40
|
+
|
|
41
41
|
/**
|
|
42
42
|
* Pass a {@link SpacingValue}, which is one of:
|
|
43
43
|
*
|
|
@@ -107,8 +107,6 @@ const resolveSpacingOptions = space => {
|
|
|
107
107
|
* @param {SpacingValue} [spaceValue] - a {@link SpacingIndex} number, or a {@link SpacingObject}
|
|
108
108
|
* @returns {number}
|
|
109
109
|
*/
|
|
110
|
-
|
|
111
|
-
|
|
112
110
|
const useSpacingScale = spaceValue => {
|
|
113
111
|
// In future, may need to consider window height as well as width, particularly for native apps,
|
|
114
112
|
// e.g. to ensure designs don't look lost on large, tall, not-so-wide portrait screens.
|
|
@@ -128,6 +126,5 @@ const useSpacingScale = spaceValue => {
|
|
|
128
126
|
});
|
|
129
127
|
return Math.max(size - subtract, 0);
|
|
130
128
|
};
|
|
131
|
-
|
|
132
129
|
var _default = useSpacingScale;
|
|
133
130
|
exports.default = _default;
|
package/lib/utils/useUniqueId.js
CHANGED
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
let id = 0;
|
|
11
|
-
|
|
12
9
|
function useUniqueId() {
|
|
13
10
|
let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
14
11
|
const [uniqueId] = (0, _react.useState)(() => {
|
|
@@ -17,6 +14,5 @@ function useUniqueId() {
|
|
|
17
14
|
});
|
|
18
15
|
return uniqueId;
|
|
19
16
|
}
|
|
20
|
-
|
|
21
17
|
var _default = useUniqueId;
|
|
22
18
|
exports.default = _default;
|
|
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _hasOwnProperty = _interopRequireDefault(require("./hasOwnProperty"));
|
|
13
|
-
|
|
14
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
-
|
|
20
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
-
|
|
22
14
|
/**
|
|
23
15
|
* Higher-order component that has no effect unless an additional prop `LinkRouter` is passed.
|
|
24
16
|
* This may be used to provide custom wrappers for integrations with third party libraries.
|
|
@@ -46,15 +38,15 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
46
38
|
* <Link href={href} LinkRouter={LinkLinkRouter} linkRouterProps={{ to, options }}>Some link</Link>
|
|
47
39
|
* <IconButton icon={SomeIcon} LinkRouter={LinkLinkRouter} linkRouterProps={{ to, options }} ref={iconRef} />
|
|
48
40
|
* ```
|
|
49
|
-
*/
|
|
50
|
-
const withLinkRouter = Component => {
|
|
41
|
+
*/const withLinkRouter = Component => {
|
|
51
42
|
const wrappedComponent = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
52
43
|
let {
|
|
53
44
|
LinkRouter,
|
|
54
45
|
linkRouterProps,
|
|
55
46
|
...props
|
|
56
47
|
} = _ref;
|
|
57
|
-
if (!LinkRouter) return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {
|
|
48
|
+
if (!LinkRouter) return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {
|
|
49
|
+
...props,
|
|
58
50
|
ref: ref
|
|
59
51
|
});
|
|
60
52
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkRouter, {
|
|
@@ -63,23 +55,27 @@ const withLinkRouter = Component => {
|
|
|
63
55
|
ref: ref,
|
|
64
56
|
...props
|
|
65
57
|
});
|
|
66
|
-
});
|
|
58
|
+
});
|
|
67
59
|
|
|
60
|
+
// Ensure the returned component has appropriate outer properties set:
|
|
68
61
|
/* eslint-disable-next-line react/forbid-foreign-prop-types */
|
|
69
|
-
|
|
70
62
|
const {
|
|
71
63
|
displayName,
|
|
72
64
|
name,
|
|
73
65
|
propTypes,
|
|
74
66
|
...otherProperties
|
|
75
|
-
} = Component;
|
|
67
|
+
} = Component;
|
|
76
68
|
|
|
77
|
-
|
|
69
|
+
// Apply unique component name as a displayName
|
|
70
|
+
wrappedComponent.displayName = Component.displayName || Component.name;
|
|
78
71
|
|
|
79
|
-
|
|
72
|
+
// Apply proptypes including wrapper props - is safely { ...undefined, ...undefined } in prod
|
|
73
|
+
wrappedComponent.propTypes = {
|
|
74
|
+
...Component.propTypes,
|
|
80
75
|
...withLinkRouter.propTypes
|
|
81
|
-
};
|
|
76
|
+
};
|
|
82
77
|
|
|
78
|
+
// Forward any other properties explicitly set e.g. Component.SubComponent
|
|
83
79
|
Object.keys(otherProperties).forEach(key => {
|
|
84
80
|
// Skip internal React properties from wrappedComponent's forwardRef (render, $$typeof, etc)
|
|
85
81
|
if ((0, _hasOwnProperty.default)(Component, key) && !(0, _hasOwnProperty.default)(wrappedComponent, key)) {
|
|
@@ -88,7 +84,6 @@ const withLinkRouter = Component => {
|
|
|
88
84
|
});
|
|
89
85
|
return wrappedComponent;
|
|
90
86
|
};
|
|
91
|
-
|
|
92
87
|
withLinkRouter.propTypes = {
|
|
93
88
|
LinkRouter: _propTypes.default.elementType,
|
|
94
89
|
linkRouterProps: _propTypes.default.object
|
|
@@ -5,7 +5,6 @@ import Platform from "react-native-web/dist/exports/Platform";
|
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
const ScreenReaderContext = /*#__PURE__*/createContext(false);
|
|
7
7
|
const ReducedMotionContext = /*#__PURE__*/createContext(false);
|
|
8
|
-
|
|
9
8
|
const A11yInfoProvider = _ref => {
|
|
10
9
|
let {
|
|
11
10
|
children
|
|
@@ -18,22 +17,20 @@ const A11yInfoProvider = _ref => {
|
|
|
18
17
|
// and "...after the Jest environment has been torn down" errors, so skip them.
|
|
19
18
|
return () => {};
|
|
20
19
|
}
|
|
21
|
-
|
|
22
20
|
const motionSubscription = AccessibilityInfo.addEventListener('reduceMotionChanged', setReduceMotionEnabled);
|
|
23
|
-
|
|
24
21
|
const setInitialA11yInfo = async () => {
|
|
25
|
-
const [initialReduceMotionEnabled, initialScreenReaderEnabled] = await Promise.all([AccessibilityInfo.isReduceMotionEnabled(), AccessibilityInfo.isScreenReaderEnabled()]);
|
|
26
|
-
// https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/exports/AccessibilityInfo/index.js#L14
|
|
22
|
+
const [initialReduceMotionEnabled, initialScreenReaderEnabled] = await Promise.all([AccessibilityInfo.isReduceMotionEnabled(), AccessibilityInfo.isScreenReaderEnabled()]);
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
// Browsers can't detect screen readers; in RNW isScreenReaderEnabled() is always `true`
|
|
25
|
+
// https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/exports/AccessibilityInfo/index.js#L14
|
|
26
|
+
setScreenReaderEnabled(Platform.OS !== 'web' && !!initialScreenReaderEnabled);
|
|
29
27
|
|
|
28
|
+
// RNW does support isReduceMotionEnabled looking for 'prefers-reduced-motion' state
|
|
30
29
|
setReduceMotionEnabled(!!initialReduceMotionEnabled);
|
|
31
30
|
};
|
|
32
|
-
|
|
33
31
|
if (AccessibilityInfo.isReduceMotionEnabled && AccessibilityInfo.isScreenReaderEnabled) {
|
|
34
32
|
setInitialA11yInfo();
|
|
35
33
|
}
|
|
36
|
-
|
|
37
34
|
return () => {
|
|
38
35
|
// From react-native 0.65, AccessibilityInfo.removeEventListener is deprecated for `remove` on addEventListener return value
|
|
39
36
|
if (typeof (motionSubscription === null || motionSubscription === void 0 ? void 0 : motionSubscription.remove) === 'function') {
|
|
@@ -51,7 +48,6 @@ const A11yInfoProvider = _ref => {
|
|
|
51
48
|
})
|
|
52
49
|
});
|
|
53
50
|
};
|
|
54
|
-
|
|
55
51
|
A11yInfoProvider.propTypes = {
|
|
56
52
|
children: PropTypes.node.isRequired
|
|
57
53
|
};
|
|
@@ -6,13 +6,13 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import { a11yProps, selectSystemProps, viewProps } from '../utils/props';
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
9
|
+
|
|
9
10
|
/**
|
|
10
11
|
* A11yText is a zero-size invisible element that adds text to be read by screen readers.
|
|
11
12
|
*
|
|
12
13
|
* It should be used to add selectable screen-reader-only text to the main document flow,
|
|
13
14
|
* as a sibling to blocks of text like paragraphs and interactive elements like buttons.
|
|
14
15
|
*/
|
|
15
|
-
|
|
16
16
|
const A11yText = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
17
17
|
let {
|
|
18
18
|
text,
|
|
@@ -36,13 +36,12 @@ const A11yText = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
A11yText.displayName = 'A11yText';
|
|
39
|
-
A11yText.propTypes = {
|
|
40
|
-
|
|
39
|
+
A11yText.propTypes = {
|
|
40
|
+
...selectedSystemPropTypes,
|
|
41
41
|
/**
|
|
42
42
|
* Text to be read by screen readers
|
|
43
43
|
*/
|
|
44
44
|
text: PropTypes.string.isRequired,
|
|
45
|
-
|
|
46
45
|
/**
|
|
47
46
|
* Whether text should be rendered as a heading
|
|
48
47
|
*/
|
|
@@ -18,9 +18,9 @@ const bezierProps = {
|
|
|
18
18
|
calcMode: 'spline',
|
|
19
19
|
keyTimes: '0; 0.5; 1',
|
|
20
20
|
keySplines: `${BEZIER.join(', ')} ; ${BEZIER.join(', ')}`
|
|
21
|
-
};
|
|
21
|
+
};
|
|
22
|
+
// We're using svg rather than css here to define the animation to avoid needing to introduce css injection mechanism
|
|
22
23
|
// It's possible to replicate this functionality with RNW animations, but it snags on chrome at least, see https://github.com/telus/universal-design-system/pull/477 for details.
|
|
23
|
-
|
|
24
24
|
const Spinner = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
25
25
|
let {
|
|
26
26
|
size,
|
|
@@ -41,8 +41,9 @@ const Spinner = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
41
41
|
height: size / (reduceMotion ? 1.5 : 2),
|
|
42
42
|
overflow: 'hidden'
|
|
43
43
|
};
|
|
44
|
-
const animationFrequency = reduceMotion ? [0] : [0, 1];
|
|
44
|
+
const animationFrequency = reduceMotion ? [0] : [0, 1];
|
|
45
45
|
|
|
46
|
+
// Credit to https://github.com/n4kz/react-native-indicators and https://github.com/callstack/react-native-paper for this
|
|
46
47
|
return /*#__PURE__*/_jsx(View, {
|
|
47
48
|
ref: ref,
|
|
48
49
|
style: [styles.container],
|
|
@@ -63,11 +64,9 @@ const Spinner = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
63
64
|
const outputRange = Array.from(new Array(frames), (_, frameIndex) => {
|
|
64
65
|
let progress = 2 * frameIndex / (frames - 1);
|
|
65
66
|
const rotation = index ? +(360 - sa) : -(180 - sa);
|
|
66
|
-
|
|
67
67
|
if (progress > 1.0) {
|
|
68
68
|
progress = 2.0 - progress;
|
|
69
69
|
}
|
|
70
|
-
|
|
71
70
|
const direction = index ? -1 : +1;
|
|
72
71
|
return `${direction * (180 - (sa + ea)) * easing(progress) + rotation}deg`;
|
|
73
72
|
});
|
|
@@ -79,7 +78,6 @@ const Spinner = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
79
78
|
width: size,
|
|
80
79
|
height: size
|
|
81
80
|
};
|
|
82
|
-
|
|
83
81
|
if (!reduceMotion) {
|
|
84
82
|
layerStyle.transform = [{
|
|
85
83
|
rotate: timer.interpolate({
|
|
@@ -96,7 +94,6 @@ const Spinner = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
96
94
|
})
|
|
97
95
|
}];
|
|
98
96
|
}
|
|
99
|
-
|
|
100
97
|
const offsetStyle = index ? {
|
|
101
98
|
top: size / 2
|
|
102
99
|
} : null;
|
|
@@ -138,7 +135,8 @@ const styles = StyleSheet.create({
|
|
|
138
135
|
flexGrow: 0,
|
|
139
136
|
flexShrink: 0
|
|
140
137
|
},
|
|
141
|
-
layer: {
|
|
138
|
+
layer: {
|
|
139
|
+
...StyleSheet.absoluteFillObject,
|
|
142
140
|
justifyContent: 'center',
|
|
143
141
|
alignItems: 'center'
|
|
144
142
|
}
|
|
@@ -3,13 +3,12 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import { useThemeTokens } from '../ThemeProvider';
|
|
4
4
|
import { getTokensPropType, variantProp } from '../utils/props';
|
|
5
5
|
import Spinner from './Spinner';
|
|
6
|
+
|
|
6
7
|
/**
|
|
7
8
|
* `ActivityIndicator` renders a visual loading state.
|
|
8
9
|
* It does not handle positioning or layout of that visual loader.
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
-
|
|
13
12
|
const ActivityIndicator = _ref => {
|
|
14
13
|
let {
|
|
15
14
|
variant,
|
|
@@ -30,16 +29,13 @@ const ActivityIndicator = _ref => {
|
|
|
30
29
|
isStatic: isStatic
|
|
31
30
|
});
|
|
32
31
|
};
|
|
33
|
-
|
|
34
32
|
ActivityIndicator.propTypes = {
|
|
35
33
|
variant: variantProp.propType,
|
|
36
34
|
tokens: getTokensPropType('ActivityIndicator'),
|
|
37
|
-
|
|
38
35
|
/**
|
|
39
36
|
* A visually hidden accessible label describing the action taking place
|
|
40
37
|
*/
|
|
41
38
|
label: PropTypes.string.isRequired,
|
|
42
|
-
|
|
43
39
|
/**
|
|
44
40
|
* If true, it should render a static spinner
|
|
45
41
|
*/
|