@telus-uds/components-base 1.65.0 → 1.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -2
- package/lib/A11yInfoProvider/index.js +5 -20
- package/lib/A11yText/index.js +3 -17
- package/lib/ActivityIndicator/Spinner.js +2 -9
- package/lib/ActivityIndicator/Spinner.native.js +4 -27
- package/lib/ActivityIndicator/index.js +1 -13
- package/lib/ActivityIndicator/shared.js +0 -3
- package/lib/Autocomplete/Autocomplete.js +34 -85
- package/lib/Autocomplete/Loading.js +0 -10
- package/lib/Autocomplete/Suggestions.js +0 -11
- package/lib/Autocomplete/index.js +0 -3
- package/lib/BaseProvider/HydrationContext.js +4 -18
- package/lib/BaseProvider/index.js +0 -12
- package/lib/Box/Box.js +10 -35
- package/lib/Box/index.js +0 -3
- package/lib/Button/Button.js +4 -13
- package/lib/Button/ButtonBase.js +23 -55
- package/lib/Button/ButtonDropdown.js +7 -32
- package/lib/Button/ButtonGroup.js +15 -48
- package/lib/Button/ButtonLink.js +3 -17
- package/lib/Button/index.js +0 -5
- package/lib/Button/propTypes.js +0 -15
- package/lib/Card/Card.js +3 -14
- package/lib/Card/CardBase.js +5 -16
- package/lib/Card/PressableCardBase.js +7 -30
- package/lib/Card/index.js +0 -7
- package/lib/Carousel/Carousel.js +22 -115
- package/lib/Carousel/CarouselContext.js +0 -14
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
- package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
- package/lib/Carousel/CarouselItem/index.js +0 -3
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
- package/lib/Carousel/CarouselStepTracker/index.js +0 -3
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
- package/lib/Carousel/CarouselTabs/index.js +0 -3
- package/lib/Carousel/CarouselThumbnail.js +1 -16
- package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
- package/lib/Carousel/index.js +0 -5
- package/lib/Checkbox/Checkbox.js +5 -44
- package/lib/Checkbox/CheckboxButton.js +7 -33
- package/lib/Checkbox/CheckboxGroup.js +5 -37
- package/lib/Checkbox/CheckboxInput.js +1 -11
- package/lib/Checkbox/CheckboxInput.native.js +0 -2
- package/lib/Checkbox/index.js +0 -4
- package/lib/CheckboxCard/CheckboxCard.js +4 -37
- package/lib/CheckboxCard/index.js +0 -3
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +215 -0
- package/lib/CheckboxCardGroup/index.js +10 -0
- package/lib/Divider/Divider.js +13 -24
- package/lib/Divider/index.js +0 -3
- package/lib/ExpandCollapse/Accordion.js +1 -9
- package/lib/ExpandCollapse/Control.js +10 -32
- package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
- package/lib/ExpandCollapse/Panel.js +13 -38
- package/lib/ExpandCollapse/index.js +0 -5
- package/lib/Feedback/Feedback.js +13 -30
- package/lib/Feedback/index.js +0 -3
- package/lib/Fieldset/Fieldset.js +6 -37
- package/lib/Fieldset/FieldsetContainer.js +1 -10
- package/lib/Fieldset/FieldsetContainer.native.js +0 -8
- package/lib/Fieldset/Legend.js +1 -10
- package/lib/Fieldset/Legend.native.js +1 -13
- package/lib/Fieldset/index.js +0 -3
- package/lib/FlexGrid/Col/Col.js +10 -53
- package/lib/FlexGrid/Col/index.js +0 -3
- package/lib/FlexGrid/FlexGrid.js +3 -34
- package/lib/FlexGrid/Row/Row.js +0 -38
- package/lib/FlexGrid/Row/index.js +0 -3
- package/lib/FlexGrid/helpers/index.js +0 -4
- package/lib/FlexGrid/index.js +0 -3
- package/lib/FlexGrid/providers/GutterContext.js +0 -4
- package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
- package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
- package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
- package/lib/HorizontalScroll/index.js +0 -7
- package/lib/HorizontalScroll/itemPositions.js +8 -19
- package/lib/Icon/Icon.js +4 -17
- package/lib/Icon/IconText.js +5 -25
- package/lib/Icon/index.js +0 -6
- package/lib/IconButton/IconButton.js +5 -37
- package/lib/IconButton/index.js +0 -3
- package/lib/InputLabel/InputLabel.js +4 -28
- package/lib/InputLabel/LabelContent.js +2 -8
- package/lib/InputLabel/LabelContent.native.js +0 -8
- package/lib/InputLabel/index.js +0 -3
- package/lib/InputSupports/InputSupports.js +0 -21
- package/lib/InputSupports/index.js +0 -3
- package/lib/InputSupports/useInputSupports.js +2 -6
- package/lib/Link/ChevronLink.js +7 -18
- package/lib/Link/InlinePressable.js +0 -10
- package/lib/Link/InlinePressable.native.js +5 -18
- package/lib/Link/Link.js +0 -8
- package/lib/Link/LinkBase.js +17 -47
- package/lib/Link/TextButton.js +3 -16
- package/lib/Link/index.js +0 -5
- package/lib/List/List.js +5 -21
- package/lib/List/ListItem.js +1 -11
- package/lib/List/ListItemBase.js +5 -34
- package/lib/List/ListItemContent.js +1 -14
- package/lib/List/ListItemMark.js +3 -23
- package/lib/List/PressableListItemBase.js +2 -28
- package/lib/List/index.js +0 -4
- package/lib/Listbox/GroupControl.js +0 -14
- package/lib/Listbox/Listbox.js +15 -40
- package/lib/Listbox/ListboxContext.js +0 -7
- package/lib/Listbox/ListboxGroup.js +7 -19
- package/lib/Listbox/ListboxItem.js +3 -17
- package/lib/Listbox/ListboxOverlay.js +4 -20
- package/lib/Listbox/PressableItem.js +3 -18
- package/lib/Listbox/index.js +0 -3
- package/lib/Modal/Modal.js +94 -45
- package/lib/Modal/ModalContent.js +184 -0
- package/lib/Modal/index.js +0 -3
- package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
- package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
- package/lib/MultiSelectFilter/index.js +0 -3
- package/lib/Notification/Notification.js +11 -38
- package/lib/Notification/index.js +0 -3
- package/lib/Pagination/PageButton.js +2 -22
- package/lib/Pagination/Pagination.js +21 -42
- package/lib/Pagination/SideButton.js +0 -24
- package/lib/Pagination/index.js +0 -3
- package/lib/Pagination/usePagination.js +4 -9
- package/lib/Progress/Progress.js +3 -17
- package/lib/Progress/ProgressBar.js +3 -25
- package/lib/Progress/ProgressBarBackground.js +0 -12
- package/lib/Progress/index.js +0 -4
- package/lib/QuickLinks/QuickLinks.js +1 -18
- package/lib/QuickLinks/QuickLinksCard.js +1 -11
- package/lib/QuickLinks/QuickLinksItem.js +3 -17
- package/lib/QuickLinks/index.js +0 -4
- package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
- package/lib/QuickLinksFeature/index.js +0 -4
- package/lib/Radio/Radio.js +5 -39
- package/lib/Radio/RadioButton.js +7 -26
- package/lib/Radio/RadioGroup.js +6 -39
- package/lib/Radio/RadioInput.js +1 -11
- package/lib/Radio/RadioInput.native.js +0 -2
- package/lib/Radio/index.js +0 -4
- package/lib/RadioCard/RadioCard.js +5 -38
- package/lib/RadioCard/RadioCardGroup.js +7 -38
- package/lib/RadioCard/index.js +0 -4
- package/lib/Responsive/Responsive.js +1 -14
- package/lib/Responsive/index.js +0 -3
- package/lib/Search/Search.js +22 -45
- package/lib/Search/index.js +0 -3
- package/lib/Select/Group.js +0 -8
- package/lib/Select/Group.native.js +0 -6
- package/lib/Select/Item.js +0 -7
- package/lib/Select/Item.native.js +0 -2
- package/lib/Select/Picker.js +0 -8
- package/lib/Select/Picker.native.js +6 -22
- package/lib/Select/Select.js +9 -52
- package/lib/Select/index.js +0 -5
- package/lib/SideNav/Item.js +5 -29
- package/lib/SideNav/ItemContent.js +1 -14
- package/lib/SideNav/ItemsGroup.js +9 -31
- package/lib/SideNav/SideNav.js +9 -33
- package/lib/SideNav/index.js +0 -2
- package/lib/Skeleton/Skeleton.js +10 -42
- package/lib/Skeleton/index.js +0 -3
- package/lib/Skeleton/skeletonWebAnimation.js +0 -2
- package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
- package/lib/SkipLink/SkipLink.js +7 -27
- package/lib/SkipLink/index.js +0 -3
- package/lib/Spacer/Spacer.js +4 -20
- package/lib/Spacer/index.js +0 -3
- package/lib/StackView/StackView.js +3 -21
- package/lib/StackView/StackWrap.js +11 -21
- package/lib/StackView/StackWrap.native.js +0 -3
- package/lib/StackView/StackWrapBox.js +5 -21
- package/lib/StackView/StackWrapGap.js +1 -14
- package/lib/StackView/common.js +0 -6
- package/lib/StackView/getStackedContent.js +10 -21
- package/lib/StackView/index.js +0 -5
- package/lib/StepTracker/Step.js +3 -27
- package/lib/StepTracker/StepTracker.js +5 -32
- package/lib/StepTracker/index.js +0 -3
- package/lib/Tabs/Tabs.js +7 -30
- package/lib/Tabs/TabsItem.js +13 -38
- package/lib/Tabs/index.js +0 -3
- package/lib/Tags/Tags.js +9 -42
- package/lib/Tags/index.js +0 -3
- package/lib/TextInput/TextArea.js +11 -20
- package/lib/TextInput/TextInput.js +7 -16
- package/lib/TextInput/TextInputBase.js +106 -69
- package/lib/TextInput/index.js +0 -3
- package/lib/TextInput/propTypes.js +4 -7
- package/lib/ThemeProvider/ThemeProvider.js +10 -18
- package/lib/ThemeProvider/index.js +0 -9
- package/lib/ThemeProvider/useSetTheme.js +6 -9
- package/lib/ThemeProvider/useTheme.js +2 -7
- package/lib/ThemeProvider/useThemeTokens.js +1 -9
- package/lib/ThemeProvider/utils/index.js +0 -4
- package/lib/ThemeProvider/utils/styles.js +14 -35
- package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
- package/lib/Timeline/Timeline.js +11 -27
- package/lib/Timeline/index.js +0 -3
- package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
- package/lib/ToggleSwitch/index.js +0 -3
- package/lib/Tooltip/Backdrop.js +4 -11
- package/lib/Tooltip/Backdrop.native.js +1 -14
- package/lib/Tooltip/Tooltip.js +9 -37
- package/lib/Tooltip/Tooltip.native.js +14 -45
- package/lib/Tooltip/getTooltipPosition.js +26 -31
- package/lib/Tooltip/index.js +0 -5
- package/lib/Tooltip/shared.js +0 -10
- package/lib/TooltipButton/TooltipButton.js +5 -20
- package/lib/TooltipButton/index.js +0 -3
- package/lib/Typography/Typography.js +15 -38
- package/lib/Typography/index.js +0 -3
- package/lib/Validator/Validator.js +10 -58
- package/lib/Validator/index.js +0 -3
- package/lib/ViewportProvider/ViewportProvider.js +1 -13
- package/lib/ViewportProvider/index.js +0 -5
- package/lib/ViewportProvider/useViewport.js +0 -4
- package/lib/ViewportProvider/useViewportListener.js +3 -12
- package/lib/index.js +8 -71
- package/lib/utils/BaseView/BaseView.js +3 -17
- package/lib/utils/BaseView/BaseView.native.js +0 -3
- package/lib/utils/BaseView/index.js +0 -3
- package/lib/utils/a11y/index.js +0 -4
- package/lib/utils/a11y/semantics.js +14 -32
- package/lib/utils/a11y/textSize.js +1 -8
- package/lib/utils/animation/index.js +0 -2
- package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
- package/lib/utils/children.js +16 -28
- package/lib/utils/containUniqueFields.js +2 -5
- package/lib/utils/floating-ui/index.js +0 -1
- package/lib/utils/floating-ui/index.native.js +0 -1
- package/lib/utils/hasOwnProperty.js +0 -1
- package/lib/utils/htmlAttrs.js +2 -4
- package/lib/utils/index.js +0 -31
- package/lib/utils/info/index.js +0 -4
- package/lib/utils/info/platform/index.js +0 -4
- package/lib/utils/info/versions.js +0 -3
- package/lib/utils/input.js +12 -24
- package/lib/utils/pressability.js +7 -21
- package/lib/utils/props/a11yProps.js +19 -25
- package/lib/utils/props/clickProps.js +0 -4
- package/lib/utils/props/componentPropType.js +0 -14
- package/lib/utils/props/copyPropTypes.js +0 -4
- package/lib/utils/props/getPropSelector.js +11 -12
- package/lib/utils/props/handlerProps.js +2 -23
- package/lib/utils/props/hrefAttrsProp.js +0 -4
- package/lib/utils/props/index.js +0 -22
- package/lib/utils/props/inputSupportsProps.js +0 -9
- package/lib/utils/props/linkProps.js +2 -12
- package/lib/utils/props/paddingProp.js +0 -3
- package/lib/utils/props/pressProps.js +2 -8
- package/lib/utils/props/rectProp.js +0 -3
- package/lib/utils/props/responsiveProps.js +1 -5
- package/lib/utils/props/selectSystemProps.js +4 -6
- package/lib/utils/props/spacingProps.js +3 -10
- package/lib/utils/props/textInputProps.js +11 -31
- package/lib/utils/props/textProps.js +6 -11
- package/lib/utils/props/tokens.js +7 -26
- package/lib/utils/props/variantProp.js +0 -3
- package/lib/utils/props/viewProps.js +0 -5
- package/lib/utils/ssr.js +13 -33
- package/lib/utils/useCopy.js +3 -6
- package/lib/utils/useHash.js +5 -10
- package/lib/utils/useHash.native.js +0 -2
- package/lib/utils/useOverlaidPosition.js +6 -29
- package/lib/utils/useResponsiveProp.js +6 -13
- package/lib/utils/useSafeLayoutEffect.js +5 -10
- package/lib/utils/useScrollBlocking.js +3 -11
- package/lib/utils/useScrollBlocking.native.js +0 -2
- package/lib/utils/useSpacingScale.js +5 -8
- package/lib/utils/useUniqueId.js +0 -4
- package/lib/utils/withLinkRouter.js +13 -18
- package/lib-module/A11yInfoProvider/index.js +5 -9
- package/lib-module/A11yText/index.js +3 -4
- package/lib-module/ActivityIndicator/Spinner.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
- package/lib-module/ActivityIndicator/index.js +1 -5
- package/lib-module/ActivityIndicator/shared.js +2 -1
- package/lib-module/Autocomplete/Autocomplete.js +34 -59
- package/lib-module/Autocomplete/Loading.js +0 -2
- package/lib-module/BaseProvider/HydrationContext.js +4 -7
- package/lib-module/BaseProvider/index.js +0 -3
- package/lib-module/Box/Box.js +10 -24
- package/lib-module/Button/Button.js +4 -2
- package/lib-module/Button/ButtonBase.js +23 -35
- package/lib-module/Button/ButtonDropdown.js +7 -16
- package/lib-module/Button/ButtonGroup.js +15 -32
- package/lib-module/Button/ButtonLink.js +3 -2
- package/lib-module/Button/propTypes.js +0 -7
- package/lib-module/Card/Card.js +3 -2
- package/lib-module/Card/CardBase.js +5 -4
- package/lib-module/Card/PressableCardBase.js +7 -11
- package/lib-module/Carousel/Carousel.js +22 -60
- package/lib-module/Carousel/CarouselContext.js +0 -5
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
- package/lib-module/Carousel/CarouselThumbnail.js +1 -7
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
- package/lib-module/Checkbox/Checkbox.js +5 -23
- package/lib-module/Checkbox/CheckboxButton.js +7 -17
- package/lib-module/Checkbox/CheckboxGroup.js +5 -23
- package/lib-module/Checkbox/CheckboxInput.js +1 -3
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
- package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +205 -0
- package/lib-module/CheckboxCardGroup/index.js +2 -0
- package/lib-module/Divider/Divider.js +13 -11
- package/lib-module/ExpandCollapse/Accordion.js +1 -1
- package/lib-module/ExpandCollapse/Control.js +10 -17
- package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
- package/lib-module/ExpandCollapse/Panel.js +13 -23
- package/lib-module/Feedback/Feedback.js +13 -16
- package/lib-module/Fieldset/Fieldset.js +6 -25
- package/lib-module/Fieldset/FieldsetContainer.js +1 -1
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
- package/lib-module/Fieldset/Legend.js +1 -1
- package/lib-module/Fieldset/Legend.native.js +1 -1
- package/lib-module/FlexGrid/Col/Col.js +10 -37
- package/lib-module/FlexGrid/FlexGrid.js +3 -17
- package/lib-module/FlexGrid/Row/Row.js +0 -25
- package/lib-module/FlexGrid/helpers/index.js +0 -3
- package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
- package/lib-module/HorizontalScroll/itemPositions.js +11 -10
- package/lib-module/Icon/Icon.js +4 -8
- package/lib-module/Icon/IconText.js +6 -17
- package/lib-module/IconButton/IconButton.js +7 -20
- package/lib-module/InputLabel/InputLabel.js +4 -13
- package/lib-module/InputLabel/LabelContent.js +2 -1
- package/lib-module/InputLabel/LabelContent.native.js +0 -1
- package/lib-module/InputSupports/InputSupports.js +0 -9
- package/lib-module/InputSupports/useInputSupports.js +2 -4
- package/lib-module/Link/ChevronLink.js +7 -7
- package/lib-module/Link/InlinePressable.js +0 -2
- package/lib-module/Link/InlinePressable.native.js +4 -12
- package/lib-module/Link/LinkBase.js +17 -25
- package/lib-module/Link/TextButton.js +3 -5
- package/lib-module/List/List.js +5 -9
- package/lib-module/List/ListItem.js +1 -1
- package/lib-module/List/ListItemBase.js +5 -17
- package/lib-module/List/ListItemContent.js +1 -4
- package/lib-module/List/ListItemMark.js +3 -16
- package/lib-module/List/PressableListItemBase.js +2 -6
- package/lib-module/Listbox/GroupControl.js +0 -2
- package/lib-module/Listbox/Listbox.js +15 -23
- package/lib-module/Listbox/ListboxContext.js +0 -2
- package/lib-module/Listbox/ListboxGroup.js +6 -4
- package/lib-module/Listbox/ListboxItem.js +2 -1
- package/lib-module/Listbox/ListboxOverlay.js +3 -4
- package/lib-module/Listbox/PressableItem.js +2 -7
- package/lib-module/Modal/Modal.js +94 -25
- package/lib-module/Modal/ModalContent.js +175 -0
- package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
- package/lib-module/Notification/Notification.js +11 -22
- package/lib-module/Pagination/PageButton.js +2 -6
- package/lib-module/Pagination/Pagination.js +21 -21
- package/lib-module/Pagination/SideButton.js +3 -8
- package/lib-module/Pagination/usePagination.js +4 -8
- package/lib-module/Progress/Progress.js +3 -7
- package/lib-module/Progress/ProgressBar.js +3 -11
- package/lib-module/Progress/ProgressBarBackground.js +0 -2
- package/lib-module/QuickLinks/QuickLinks.js +1 -6
- package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
- package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
- package/lib-module/Radio/Radio.js +5 -22
- package/lib-module/Radio/RadioButton.js +8 -10
- package/lib-module/Radio/RadioGroup.js +6 -25
- package/lib-module/Radio/RadioInput.js +1 -3
- package/lib-module/Radio/RadioInput.native.js +0 -1
- package/lib-module/RadioCard/RadioCard.js +5 -21
- package/lib-module/RadioCard/RadioCardGroup.js +7 -25
- package/lib-module/Responsive/Responsive.js +1 -6
- package/lib-module/Search/Search.js +22 -31
- package/lib-module/Select/Group.js +0 -3
- package/lib-module/Select/Group.native.js +0 -3
- package/lib-module/Select/Item.js +0 -3
- package/lib-module/Select/Item.native.js +0 -1
- package/lib-module/Select/Picker.native.js +8 -10
- package/lib-module/Select/Select.js +10 -35
- package/lib-module/SideNav/Item.js +5 -16
- package/lib-module/SideNav/ItemContent.js +1 -2
- package/lib-module/SideNav/ItemsGroup.js +9 -19
- package/lib-module/SideNav/SideNav.js +9 -22
- package/lib-module/Skeleton/Skeleton.js +10 -25
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
- package/lib-module/SkipLink/SkipLink.js +7 -9
- package/lib-module/Spacer/Spacer.js +4 -7
- package/lib-module/StackView/StackView.js +3 -7
- package/lib-module/StackView/StackWrap.js +13 -13
- package/lib-module/StackView/StackWrap.native.js +2 -1
- package/lib-module/StackView/StackWrapBox.js +5 -8
- package/lib-module/StackView/StackWrapGap.js +1 -1
- package/lib-module/StackView/getStackedContent.js +10 -10
- package/lib-module/StepTracker/Step.js +3 -14
- package/lib-module/StepTracker/StepTracker.js +5 -13
- package/lib-module/Tabs/Tabs.js +7 -16
- package/lib-module/Tabs/TabsItem.js +13 -16
- package/lib-module/Tags/Tags.js +9 -26
- package/lib-module/TextInput/TextArea.js +11 -8
- package/lib-module/TextInput/TextInput.js +7 -5
- package/lib-module/TextInput/TextInputBase.js +107 -51
- package/lib-module/TextInput/propTypes.js +7 -6
- package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
- package/lib-module/ThemeProvider/useSetTheme.js +6 -7
- package/lib-module/ThemeProvider/useTheme.js +2 -5
- package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
- package/lib-module/ThemeProvider/utils/styles.js +15 -27
- package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
- package/lib-module/Timeline/Timeline.js +11 -17
- package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
- package/lib-module/Tooltip/Backdrop.js +4 -7
- package/lib-module/Tooltip/Backdrop.native.js +1 -4
- package/lib-module/Tooltip/Tooltip.js +9 -18
- package/lib-module/Tooltip/Tooltip.native.js +14 -23
- package/lib-module/Tooltip/getTooltipPosition.js +26 -30
- package/lib-module/Tooltip/shared.js +0 -6
- package/lib-module/TooltipButton/TooltipButton.js +5 -8
- package/lib-module/Typography/Typography.js +14 -22
- package/lib-module/Validator/Validator.js +10 -42
- package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
- package/lib-module/ViewportProvider/useViewportListener.js +6 -8
- package/lib-module/index.js +1 -0
- package/lib-module/utils/BaseView/BaseView.js +3 -4
- package/lib-module/utils/BaseView/BaseView.native.js +0 -1
- package/lib-module/utils/a11y/semantics.js +14 -27
- package/lib-module/utils/a11y/textSize.js +1 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
- package/lib-module/utils/children.js +17 -19
- package/lib-module/utils/containUniqueFields.js +2 -4
- package/lib-module/utils/htmlAttrs.js +2 -1
- package/lib-module/utils/info/index.js +2 -1
- package/lib-module/utils/info/platform/index.js +4 -1
- package/lib-module/utils/info/versions.js +2 -1
- package/lib-module/utils/input.js +11 -19
- package/lib-module/utils/pressability.js +8 -7
- package/lib-module/utils/props/a11yProps.js +22 -20
- package/lib-module/utils/props/clickProps.js +0 -1
- package/lib-module/utils/props/componentPropType.js +0 -13
- package/lib-module/utils/props/getPropSelector.js +12 -8
- package/lib-module/utils/props/handlerProps.js +2 -19
- package/lib-module/utils/props/hrefAttrsProp.js +2 -2
- package/lib-module/utils/props/inputSupportsProps.js +0 -6
- package/lib-module/utils/props/linkProps.js +2 -3
- package/lib-module/utils/props/pressProps.js +2 -2
- package/lib-module/utils/props/responsiveProps.js +1 -3
- package/lib-module/utils/props/selectSystemProps.js +4 -5
- package/lib-module/utils/props/spacingProps.js +4 -3
- package/lib-module/utils/props/textInputProps.js +14 -27
- package/lib-module/utils/props/textProps.js +9 -7
- package/lib-module/utils/props/tokens.js +10 -13
- package/lib-module/utils/props/variantProp.js +1 -1
- package/lib-module/utils/props/viewProps.js +0 -1
- package/lib-module/utils/ssr.js +14 -18
- package/lib-module/utils/useCopy.js +3 -5
- package/lib-module/utils/useHash.js +5 -9
- package/lib-module/utils/useHash.native.js +0 -1
- package/lib-module/utils/useOverlaidPosition.js +6 -25
- package/lib-module/utils/useResponsiveProp.js +6 -7
- package/lib-module/utils/useSafeLayoutEffect.js +5 -7
- package/lib-module/utils/useScrollBlocking.js +3 -10
- package/lib-module/utils/useSpacingScale.js +4 -4
- package/lib-module/utils/useUniqueId.js +0 -2
- package/lib-module/utils/withLinkRouter.js +13 -10
- package/package.json +2 -2
- package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +230 -0
- package/src/CheckboxCardGroup/index.js +3 -0
- package/src/Modal/Modal.jsx +98 -5
- package/src/Modal/ModalContent.jsx +171 -0
- package/src/TextInput/TextInputBase.jsx +67 -12
- package/src/TextInput/propTypes.js +4 -0
- package/src/index.js +1 -0
- package/src/utils/props/textInputProps.js +1 -0
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* don't map directly to cross-platform design token values.
|
|
4
4
|
*/
|
|
5
5
|
import Platform from "react-native-web/dist/exports/Platform";
|
|
6
|
-
import { fontBasePixels } from '@telus-uds/system-constants';
|
|
6
|
+
import { fontBasePixels } from '@telus-uds/system-constants';
|
|
7
7
|
|
|
8
|
+
// Make design tokens fit React Native's text styles' specific requirements and quirks
|
|
8
9
|
export function applyTextStyles(_ref) {
|
|
9
10
|
let {
|
|
10
11
|
fontColor,
|
|
@@ -21,27 +22,24 @@ export function applyTextStyles(_ref) {
|
|
|
21
22
|
},
|
|
22
23
|
...rest
|
|
23
24
|
} = _ref;
|
|
24
|
-
const styles = {
|
|
25
|
+
const styles = {
|
|
26
|
+
...rest
|
|
25
27
|
};
|
|
26
28
|
const {
|
|
27
29
|
forceAbsoluteFontSizing
|
|
28
30
|
} = themeOptions;
|
|
29
|
-
|
|
30
31
|
if (fontSize) {
|
|
31
32
|
// If relative font sizes are needed, catch and calculate them here
|
|
32
33
|
styles.fontSize = Platform.OS === 'web' && !forceAbsoluteFontSizing ? `${fontSize / fontBasePixels}rem` : fontSize;
|
|
33
34
|
}
|
|
34
|
-
|
|
35
35
|
if (typeof lineHeight === 'number') {
|
|
36
36
|
// React Native expects absolute line heights but multipliers are better as design tokens
|
|
37
37
|
styles.lineHeight = lineHeight * (fontSize || fontBasePixels);
|
|
38
38
|
}
|
|
39
|
-
|
|
40
39
|
if (typeof letterSpacing === 'number' && letterSpacing) {
|
|
41
40
|
// Same as for line heights - React Native expects absolute letter spacing value
|
|
42
41
|
styles.letterSpacing = letterSpacing * (fontSize || fontBasePixels);
|
|
43
42
|
}
|
|
44
|
-
|
|
45
43
|
if (fontName) {
|
|
46
44
|
// Don't set undefined font families. May need some validation here that the font is available.
|
|
47
45
|
// Android doesn't recognise font weights natively so apply custom font weights via `fontFamily`.
|
|
@@ -51,16 +49,17 @@ export function applyTextStyles(_ref) {
|
|
|
51
49
|
// Font weight support in Android is limited to 'bold' or anything else === 'normal'.
|
|
52
50
|
styles.fontWeight = Platform.OS === 'android' && Number(fontWeight) > 400 ? 'bold' : fontWeight;
|
|
53
51
|
}
|
|
54
|
-
|
|
55
52
|
if (fontColor) {
|
|
56
53
|
styles.color = fontColor;
|
|
57
|
-
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// TODO: look into calculating typographic spacing with PixelRatio.getFontScale()
|
|
58
57
|
// Do while implementing advanced typography e.g. paragraph etc
|
|
59
58
|
// https://github.com/telus/universal-design-system/issues/89
|
|
60
59
|
|
|
61
|
-
|
|
62
60
|
return styles;
|
|
63
61
|
}
|
|
62
|
+
|
|
64
63
|
/**
|
|
65
64
|
* React Native's in-built shadow support is limited. Take an object describing an ideal shadow and
|
|
66
65
|
* return a platform-appropriate implementation that gets close to the described effect.
|
|
@@ -74,7 +73,6 @@ export function applyTextStyles(_ref) {
|
|
|
74
73
|
* @param {number} shadowToken.spread
|
|
75
74
|
* @return {object}
|
|
76
75
|
*/
|
|
77
|
-
|
|
78
76
|
export function applyShadowToken(shadowToken) {
|
|
79
77
|
if (!shadowToken) return {};
|
|
80
78
|
const applyShadow = Platform.select({
|
|
@@ -84,7 +82,6 @@ export function applyShadowToken(shadowToken) {
|
|
|
84
82
|
});
|
|
85
83
|
return applyShadow();
|
|
86
84
|
}
|
|
87
|
-
|
|
88
85
|
function applyWebShadow(_ref2) {
|
|
89
86
|
let {
|
|
90
87
|
inset,
|
|
@@ -100,7 +97,6 @@ function applyWebShadow(_ref2) {
|
|
|
100
97
|
};
|
|
101
98
|
return boxShadow;
|
|
102
99
|
}
|
|
103
|
-
|
|
104
100
|
function applyAndroidShadow(shadowToken) {
|
|
105
101
|
const {
|
|
106
102
|
color,
|
|
@@ -108,23 +104,20 @@ function applyAndroidShadow(shadowToken) {
|
|
|
108
104
|
spread,
|
|
109
105
|
offsetY,
|
|
110
106
|
offsetX
|
|
111
|
-
} = shadowToken;
|
|
107
|
+
} = shadowToken;
|
|
108
|
+
// Android shadows are very limited and workarounds are hacky. Use the built-in `elevation` API unless
|
|
112
109
|
// shadow design is radically different to a simple top-down shadow (e.g. horizontal, upward, or inset)
|
|
113
|
-
|
|
114
110
|
if (!inset && offsetY >= 0 && offsetY >= offsetX) {
|
|
115
111
|
return {
|
|
116
112
|
// Can't match other platforms, but can give longer shadows to elements designed for longer shadows
|
|
117
113
|
elevation: spread + offsetY,
|
|
118
114
|
shadowColor: color // Only applies on Android >= 9 and React Native >= 0.64.0
|
|
119
|
-
|
|
120
115
|
};
|
|
121
|
-
}
|
|
116
|
+
}
|
|
117
|
+
// TODO: maybe use a library or workaround to increase capabilities.
|
|
122
118
|
// https://github.com/telus/universal-design-system/issues/535
|
|
123
|
-
|
|
124
|
-
|
|
125
119
|
return {};
|
|
126
120
|
}
|
|
127
|
-
|
|
128
121
|
function applyIosShadow(_ref3) {
|
|
129
122
|
let {
|
|
130
123
|
inset,
|
|
@@ -138,15 +131,15 @@ function applyIosShadow(_ref3) {
|
|
|
138
131
|
// TODO: maybe use a library or workaround for inset shadows. This is a sizable task and would
|
|
139
132
|
// involve changing component implementations to use a custom view, can't be done with styles alone.
|
|
140
133
|
// https://github.com/telus/universal-design-system/issues/535
|
|
141
|
-
if (inset) return {};
|
|
134
|
+
if (inset) return {};
|
|
135
|
+
|
|
136
|
+
// React Native iOS doesn't support spread. Where there's an offset, can approximate positive spread by
|
|
142
137
|
// increasing the (positive or negative) offset by the spread. This makes the shadow reach the point it
|
|
143
138
|
// would if spread was supported (with a side effect that its start is further "under" the element).
|
|
144
|
-
|
|
145
139
|
const nudgeBySpread = offset => {
|
|
146
140
|
if (!offset || spread <= 0) return 0;
|
|
147
141
|
return offset > 0 ? spread : spread * -1;
|
|
148
142
|
};
|
|
149
|
-
|
|
150
143
|
return {
|
|
151
144
|
shadowColor: color,
|
|
152
145
|
shadowOffset: {
|
|
@@ -155,7 +148,6 @@ function applyIosShadow(_ref3) {
|
|
|
155
148
|
},
|
|
156
149
|
shadowRadius: blur,
|
|
157
150
|
shadowOpacity: 1 // opacity is applied via RGBA in the `color` token
|
|
158
|
-
|
|
159
151
|
};
|
|
160
152
|
}
|
|
161
153
|
|
|
@@ -171,20 +163,16 @@ export function verticalAlignRow(verticalAlign) {
|
|
|
171
163
|
alignItems: verticalAlignToFlexRowAlign[verticalAlign]
|
|
172
164
|
};
|
|
173
165
|
}
|
|
174
|
-
|
|
175
166
|
const calculateBorderRadius = (borderRadius, outerBorderGap, outerBorderWidth) => {
|
|
176
167
|
if (borderRadius) {
|
|
177
168
|
return borderRadius + outerBorderGap + outerBorderWidth;
|
|
178
169
|
}
|
|
179
|
-
|
|
180
170
|
return null;
|
|
181
171
|
};
|
|
182
172
|
/**
|
|
183
173
|
* Use on an outer container to create an outer border with an optional gap around it
|
|
184
174
|
* that matches the border radius of any inner border.
|
|
185
175
|
*/
|
|
186
|
-
|
|
187
|
-
|
|
188
176
|
export const applyOuterBorder = _ref4 => {
|
|
189
177
|
let {
|
|
190
178
|
outerBorderColor,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import semVerSatisfies from 'semver/functions/satisfies';
|
|
3
3
|
import pkg from '../../../package.json';
|
|
4
|
+
|
|
4
5
|
/**
|
|
5
6
|
* @typedef {import('../../utils/props/variantProp.js').AppearanceSet} AppearanceSet
|
|
6
7
|
* @typedef {import('../../utils/props/tokens.js').TokensProp} TokensProp
|
|
@@ -13,25 +14,19 @@ import pkg from '../../../package.json';
|
|
|
13
14
|
|
|
14
15
|
export const getComponentTheme = (theme, componentName) => {
|
|
15
16
|
var _theme$metadata;
|
|
16
|
-
|
|
17
17
|
// Give clear and understandable error messages for common dev errors, for example,
|
|
18
18
|
// typo in component name, missing export or accessing old version of theme
|
|
19
19
|
if (!theme) {
|
|
20
20
|
throw new Error(`Called useTheme's getStyle on "${componentName}" with no theme provided`);
|
|
21
21
|
}
|
|
22
|
-
|
|
23
22
|
const themeName = ((_theme$metadata = theme.metadata) === null || _theme$metadata === void 0 ? void 0 : _theme$metadata.name) || '';
|
|
24
|
-
|
|
25
23
|
if (!theme.components) {
|
|
26
24
|
throw new Error(`Theme "${themeName}" has no components defined (looking for "${componentName}")`);
|
|
27
25
|
}
|
|
28
|
-
|
|
29
26
|
const componentTheme = theme.components[componentName];
|
|
30
|
-
|
|
31
27
|
if (!componentTheme) {
|
|
32
28
|
throw new Error(`Theme "${themeName}" does not have styles for component "${componentName}"`);
|
|
33
29
|
}
|
|
34
|
-
|
|
35
30
|
return componentTheme;
|
|
36
31
|
};
|
|
37
32
|
export const doesThemeConditionApply = (_ref, appearances) => {
|
|
@@ -41,6 +36,7 @@ export const doesThemeConditionApply = (_ref, appearances) => {
|
|
|
41
36
|
return Array.isArray(value) ? value.includes(appearanceValue) : value === appearanceValue;
|
|
42
37
|
};
|
|
43
38
|
export const doesThemeRuleApply = (rule, appearances) => Object.entries(rule.if).every(condition => doesThemeConditionApply(condition, appearances));
|
|
39
|
+
|
|
44
40
|
/**
|
|
45
41
|
* Turns a tokens prop (which may be either a tokens object or a tokens getter function)
|
|
46
42
|
* into one resolved tokens object, based on current appearances state.
|
|
@@ -57,21 +53,20 @@ export const doesThemeRuleApply = (rule, appearances) => Object.entries(rule.if)
|
|
|
57
53
|
* @param {TokensProp} [tokenOverrides] - optional set of tokens or tokens getter function to override the default
|
|
58
54
|
* @returns {TokensSet} - object containing resolved tokens with overrides applied
|
|
59
55
|
*/
|
|
60
|
-
|
|
61
56
|
export const resolveThemeTokens = function (defaultTokens) {
|
|
62
57
|
let appearances = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
63
58
|
let tokenOverrides = arguments.length > 2 ? arguments[2] : undefined;
|
|
64
|
-
|
|
65
59
|
const resolve = tokens => typeof tokens === 'function' ? tokens(appearances) : tokens;
|
|
66
|
-
|
|
67
60
|
if (!tokenOverrides) return resolve(defaultTokens);
|
|
68
61
|
return Object.entries(resolve(tokenOverrides)).reduce((mergedTokens, _ref2) => {
|
|
69
62
|
let [tokenName, tokenValue] = _ref2;
|
|
70
|
-
return tokenValue === undefined ? mergedTokens : {
|
|
63
|
+
return tokenValue === undefined ? mergedTokens : {
|
|
64
|
+
...mergedTokens,
|
|
71
65
|
[tokenName]: tokenValue
|
|
72
66
|
};
|
|
73
67
|
}, resolve(defaultTokens));
|
|
74
68
|
};
|
|
69
|
+
|
|
75
70
|
/**
|
|
76
71
|
* Gives a prop types error if a set of resolved tokens doesn't match a provided prop
|
|
77
72
|
* types validator.
|
|
@@ -83,7 +78,6 @@ export const resolveThemeTokens = function (defaultTokens) {
|
|
|
83
78
|
* @param {function} validator - PropTypes validator function
|
|
84
79
|
* @param {string} componentName - identifier to display in PropType error messages
|
|
85
80
|
*/
|
|
86
|
-
|
|
87
81
|
export const validateThemeTokens = (themeTokens, validator, componentName) => {
|
|
88
82
|
PropTypes.checkPropTypes({
|
|
89
83
|
tokens: validator
|
|
@@ -92,6 +86,7 @@ export const validateThemeTokens = (themeTokens, validator, componentName) => {
|
|
|
92
86
|
}, 'resolved token', componentName);
|
|
93
87
|
return themeTokens;
|
|
94
88
|
};
|
|
89
|
+
|
|
95
90
|
/**
|
|
96
91
|
* Merges variants over states. Must be merged in that order to allow static showcases of a state,
|
|
97
92
|
* e.g. `<Button variant={{ pressed: true }} />` where button's pressed state is `false` by default.
|
|
@@ -101,14 +96,15 @@ export const validateThemeTokens = (themeTokens, validator, componentName) => {
|
|
|
101
96
|
* @param {AppearanceSet} [states]
|
|
102
97
|
* @returns {AppearanceSet}
|
|
103
98
|
*/
|
|
104
|
-
|
|
105
99
|
export const mergeAppearances = function () {
|
|
106
100
|
let variants = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
107
101
|
let states = arguments.length > 1 ? arguments[1] : undefined;
|
|
108
|
-
return states ? {
|
|
102
|
+
return states ? {
|
|
103
|
+
...states,
|
|
109
104
|
...variants
|
|
110
105
|
} : variants;
|
|
111
106
|
};
|
|
107
|
+
|
|
112
108
|
/**
|
|
113
109
|
* Get a set of theme tokens by applying a theme's component rules based on a component's variants and state.
|
|
114
110
|
*
|
|
@@ -120,7 +116,6 @@ export const mergeAppearances = function () {
|
|
|
120
116
|
* @param {object} [states] - object containing current state options for this component instance
|
|
121
117
|
* @returns {object} Set of resolved theme tokens
|
|
122
118
|
*/
|
|
123
|
-
|
|
124
119
|
export const getThemeTokens = function (_ref3, tokensProp) {
|
|
125
120
|
let {
|
|
126
121
|
rules = [],
|
|
@@ -128,15 +123,18 @@ export const getThemeTokens = function (_ref3, tokensProp) {
|
|
|
128
123
|
} = _ref3;
|
|
129
124
|
let variants = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
130
125
|
let states = arguments.length > 3 ? arguments[3] : undefined;
|
|
131
|
-
const appearances = mergeAppearances(variants, states);
|
|
132
|
-
//
|
|
126
|
+
const appearances = mergeAppearances(variants, states);
|
|
127
|
+
// TODO: if in dev mode, validate the appearances and provided propTokens
|
|
133
128
|
|
|
134
|
-
|
|
129
|
+
// Get the theme's default tokens set and merge tokens from applicable theme rules over it
|
|
130
|
+
const themeTokens = rules.reduce((mergedTokens, rule) => doesThemeRuleApply(rule, appearances) ? {
|
|
131
|
+
...mergedTokens,
|
|
135
132
|
...rule.tokens
|
|
136
133
|
} : mergedTokens, defaultThemeTokens);
|
|
137
134
|
return resolveThemeTokens(themeTokens, appearances, tokensProp);
|
|
138
135
|
};
|
|
139
136
|
export const toArray = strOrArr => Array.isArray(strOrArr) ? strOrArr : [strOrArr];
|
|
137
|
+
|
|
140
138
|
/**
|
|
141
139
|
* Throws an error if the theme was built with an incompatible version of @telus-uds/system-theme-tokens
|
|
142
140
|
*
|
|
@@ -148,13 +146,10 @@ export const toArray = strOrArr => Array.isArray(strOrArr) ? strOrArr : [strOrAr
|
|
|
148
146
|
*
|
|
149
147
|
* @param {object} theme - UDS theme built for react-native
|
|
150
148
|
*/
|
|
151
|
-
|
|
152
149
|
export const validateThemeTokensVersion = theme => {
|
|
153
150
|
var _theme$metadata2;
|
|
154
|
-
|
|
155
151
|
const expectedThemeTokensVersion = pkg.dependencies['@telus-uds/system-theme-tokens'];
|
|
156
152
|
const actualThemeTokensVersion = theme === null || theme === void 0 ? void 0 : (_theme$metadata2 = theme.metadata) === null || _theme$metadata2 === void 0 ? void 0 : _theme$metadata2.themeTokensVersion;
|
|
157
|
-
|
|
158
153
|
if (!semVerSatisfies(actualThemeTokensVersion, expectedThemeTokensVersion)) {
|
|
159
154
|
throw new Error(`Invalid UDS token schema version detected.
|
|
160
155
|
|
|
@@ -6,7 +6,6 @@ import { getTokensPropType, variantProp, a11yProps, viewProps, selectSystemProps
|
|
|
6
6
|
import { useViewport } from '../ViewportProvider';
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
-
|
|
10
9
|
const selectDotStyles = _ref => {
|
|
11
10
|
let {
|
|
12
11
|
dotWidth,
|
|
@@ -23,7 +22,6 @@ const selectDotStyles = _ref => {
|
|
|
23
22
|
borderColor: timelineColor
|
|
24
23
|
};
|
|
25
24
|
};
|
|
26
|
-
|
|
27
25
|
const selectConnectorStyles = _ref2 => {
|
|
28
26
|
let {
|
|
29
27
|
timelineConnectorColor,
|
|
@@ -36,7 +34,6 @@ const selectConnectorStyles = _ref2 => {
|
|
|
36
34
|
backgroundColor: timelineConnectorColor
|
|
37
35
|
};
|
|
38
36
|
};
|
|
39
|
-
|
|
40
37
|
const selectTimelineContainerStyle = _ref3 => {
|
|
41
38
|
let {
|
|
42
39
|
timelineContainerDirection
|
|
@@ -45,7 +42,6 @@ const selectTimelineContainerStyle = _ref3 => {
|
|
|
45
42
|
flexDirection: timelineContainerDirection
|
|
46
43
|
};
|
|
47
44
|
};
|
|
48
|
-
|
|
49
45
|
const selectLineItemStyles = _ref4 => {
|
|
50
46
|
let {
|
|
51
47
|
lineItemAlign,
|
|
@@ -61,7 +57,6 @@ const selectLineItemStyles = _ref4 => {
|
|
|
61
57
|
overflow: 'hidden'
|
|
62
58
|
};
|
|
63
59
|
};
|
|
64
|
-
|
|
65
60
|
const selectLineItemContainer = _ref5 => {
|
|
66
61
|
let {
|
|
67
62
|
lineItemContainerDirection,
|
|
@@ -72,7 +67,6 @@ const selectLineItemContainer = _ref5 => {
|
|
|
72
67
|
flex: lineContainerFlexSize
|
|
73
68
|
};
|
|
74
69
|
};
|
|
75
|
-
|
|
76
70
|
const selectItemContentStyles = (_ref6, isLastChild) => {
|
|
77
71
|
let {
|
|
78
72
|
itemContentFlexSize,
|
|
@@ -85,8 +79,8 @@ const selectItemContentStyles = (_ref6, isLastChild) => {
|
|
|
85
79
|
marginRight: !isLastChild && itemContentMarginRight
|
|
86
80
|
};
|
|
87
81
|
};
|
|
88
|
-
|
|
89
82
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
83
|
+
|
|
90
84
|
/**
|
|
91
85
|
* Timeline is a component that displays either a horizontal or vertical list of the
|
|
92
86
|
* children components passed by props
|
|
@@ -99,7 +93,6 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
|
|
|
99
93
|
* ## A11y guidelines
|
|
100
94
|
* Timeline link supports all the common a11y props.
|
|
101
95
|
*/
|
|
102
|
-
|
|
103
96
|
const Timeline = /*#__PURE__*/forwardRef((_ref7, ref) => {
|
|
104
97
|
let {
|
|
105
98
|
tokens,
|
|
@@ -114,20 +107,23 @@ const Timeline = /*#__PURE__*/forwardRef((_ref7, ref) => {
|
|
|
114
107
|
const themeTokens = useThemeTokens('Timeline', tokens, variant, {
|
|
115
108
|
viewport
|
|
116
109
|
});
|
|
117
|
-
const containerProps = {
|
|
110
|
+
const containerProps = {
|
|
111
|
+
...selectProps(rest),
|
|
118
112
|
...getA11yPropsFromHtmlTag(tag, rest.accessibilityRole || 'list'),
|
|
119
113
|
accessibilityLabel
|
|
120
114
|
};
|
|
121
|
-
return /*#__PURE__*/_jsx(View, {
|
|
115
|
+
return /*#__PURE__*/_jsx(View, {
|
|
116
|
+
...containerProps,
|
|
122
117
|
ref: ref,
|
|
123
118
|
style: selectTimelineContainerStyle(themeTokens),
|
|
124
119
|
children: children.map((child, index) => {
|
|
125
120
|
var _child$props;
|
|
126
|
-
|
|
127
|
-
|
|
121
|
+
const childrenProps = {
|
|
122
|
+
...getA11yPropsFromHtmlTag(childrenTag, (child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.accessibilityRole) || 'listitem')
|
|
128
123
|
};
|
|
129
124
|
return /*#__PURE__*/_jsxs(View, {
|
|
130
|
-
style: selectLineItemContainer(themeTokens)
|
|
125
|
+
style: selectLineItemContainer(themeTokens)
|
|
126
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
131
127
|
,
|
|
132
128
|
...childrenProps,
|
|
133
129
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
@@ -146,21 +142,19 @@ const Timeline = /*#__PURE__*/forwardRef((_ref7, ref) => {
|
|
|
146
142
|
});
|
|
147
143
|
});
|
|
148
144
|
Timeline.displayName = 'Timeline';
|
|
149
|
-
Timeline.propTypes = {
|
|
145
|
+
Timeline.propTypes = {
|
|
146
|
+
...selectedSystemPropTypes,
|
|
150
147
|
tokens: getTokensPropType('Timeline'),
|
|
151
148
|
variant: variantProp.propType,
|
|
152
|
-
|
|
153
149
|
/**
|
|
154
150
|
* A list of components that will be rendered either horizontally or vertically
|
|
155
151
|
*/
|
|
156
152
|
children: PropTypes.arrayOf(PropTypes.node).isRequired,
|
|
157
|
-
|
|
158
153
|
/**
|
|
159
154
|
* A required accessibility label that needs to be passed to be used on List
|
|
160
155
|
* which is applied as normal for a React Native accessibilityLabel prop.
|
|
161
156
|
*/
|
|
162
157
|
accessibilityLabel: PropTypes.string.isRequired,
|
|
163
|
-
|
|
164
158
|
/**
|
|
165
159
|
* Sets the HTML tag of the outer container and the children. By default `'li'` for the children
|
|
166
160
|
* and `'ul'` for the container
|
|
@@ -11,9 +11,10 @@ import { a11yProps, focusHandlerProps, getTokensPropType, selectTokens, pressPro
|
|
|
11
11
|
import { useInputValue } from '../utils/input';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, pressProps, viewProps]);
|
|
15
|
-
// being handled separately in this case
|
|
14
|
+
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, pressProps, viewProps]);
|
|
16
15
|
|
|
16
|
+
// We need to drop the icon before passing it to the `ButtonBase`, because it's
|
|
17
|
+
// being handled separately in this case
|
|
17
18
|
const selectButtonTokens = (_ref, _ref2) => {
|
|
18
19
|
let {
|
|
19
20
|
icon: _,
|
|
@@ -23,15 +24,16 @@ const selectButtonTokens = (_ref, _ref2) => {
|
|
|
23
24
|
trackHeight,
|
|
24
25
|
outerBorderGapButton
|
|
25
26
|
} = _ref2;
|
|
26
|
-
return selectTokens('Button', {
|
|
27
|
+
return selectTokens('Button', {
|
|
28
|
+
...tokens,
|
|
27
29
|
// Width tokens are applied to our inner track. Disable Button width token so it wraps our track width.
|
|
28
30
|
outerBorderGap: outerBorderGapButton,
|
|
29
31
|
height: trackHeight,
|
|
30
32
|
width: null
|
|
31
33
|
});
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
+
};
|
|
34
35
|
|
|
36
|
+
// Map and rename icon-specific tokens to name used within Icon
|
|
35
37
|
const selectIconTokens = _ref3 => {
|
|
36
38
|
let {
|
|
37
39
|
iconSize,
|
|
@@ -42,7 +44,6 @@ const selectIconTokens = _ref3 => {
|
|
|
42
44
|
color: iconColor
|
|
43
45
|
};
|
|
44
46
|
};
|
|
45
|
-
|
|
46
47
|
const selectTrackSwitchStyles = _ref4 => {
|
|
47
48
|
let {
|
|
48
49
|
switchSize,
|
|
@@ -54,7 +55,6 @@ const selectTrackSwitchStyles = _ref4 => {
|
|
|
54
55
|
height: Math.max(switchSize, trackHeight)
|
|
55
56
|
};
|
|
56
57
|
};
|
|
57
|
-
|
|
58
58
|
const selectTrackStyles = _ref5 => {
|
|
59
59
|
let {
|
|
60
60
|
trackBorderWidth,
|
|
@@ -69,7 +69,6 @@ const selectTrackStyles = _ref5 => {
|
|
|
69
69
|
width
|
|
70
70
|
};
|
|
71
71
|
};
|
|
72
|
-
|
|
73
72
|
const selectSwitchStyles = _ref6 => {
|
|
74
73
|
let {
|
|
75
74
|
switchSize,
|
|
@@ -96,7 +95,6 @@ const selectSwitchStyles = _ref6 => {
|
|
|
96
95
|
})
|
|
97
96
|
};
|
|
98
97
|
};
|
|
99
|
-
|
|
100
98
|
const selectLabelStyles = _ref7 => {
|
|
101
99
|
let {
|
|
102
100
|
labelMarginLeft
|
|
@@ -105,7 +103,6 @@ const selectLabelStyles = _ref7 => {
|
|
|
105
103
|
marginLeft: labelMarginLeft
|
|
106
104
|
};
|
|
107
105
|
};
|
|
108
|
-
|
|
109
106
|
const selectLabelTokens = _ref8 => {
|
|
110
107
|
let {
|
|
111
108
|
labelColor,
|
|
@@ -122,7 +119,6 @@ const selectLabelTokens = _ref8 => {
|
|
|
122
119
|
lineHeight: labelLineHeight
|
|
123
120
|
};
|
|
124
121
|
};
|
|
125
|
-
|
|
126
122
|
const ToggleSwitch = /*#__PURE__*/forwardRef((_ref9, ref) => {
|
|
127
123
|
let {
|
|
128
124
|
copy = 'en',
|
|
@@ -149,11 +145,8 @@ const ToggleSwitch = /*#__PURE__*/forwardRef((_ref9, ref) => {
|
|
|
149
145
|
initialValue,
|
|
150
146
|
onChange
|
|
151
147
|
});
|
|
152
|
-
|
|
153
148
|
const handlePress = event => setValue(!currentValue, event);
|
|
154
|
-
|
|
155
149
|
const getButtonTokens = buttonState => selectButtonTokens(getTokens(buttonState), getTokens(themeTokens));
|
|
156
|
-
|
|
157
150
|
const uniqueId = useUniqueId('toggleSwitch');
|
|
158
151
|
const inputId = id ?? uniqueId;
|
|
159
152
|
return /*#__PURE__*/_jsxs(StackView, {
|
|
@@ -196,10 +189,10 @@ const ToggleSwitch = /*#__PURE__*/forwardRef((_ref9, ref) => {
|
|
|
196
189
|
trackHeight,
|
|
197
190
|
width,
|
|
198
191
|
trackBorderWidth
|
|
199
|
-
} = stateTokens;
|
|
192
|
+
} = stateTokens;
|
|
193
|
+
// If drag-slide support is needed, use a PanResponder and apply these to an Animated value.
|
|
200
194
|
// Use translate transforms for smoothest non-thread-blocking animations and to allow drag.
|
|
201
195
|
// Two different translates depending on the switchSize and trackSize relationship.
|
|
202
|
-
|
|
203
196
|
const isSwitchTallerThanTrack = switchSize >= trackHeight;
|
|
204
197
|
const slideStart = isSwitchTallerThanTrack ? 0 : trackBorderWidth;
|
|
205
198
|
const slideEnd = isSwitchTallerThanTrack ? width - switchSize : width - switchSize - trackBorderWidth;
|
|
@@ -216,7 +209,8 @@ const ToggleSwitch = /*#__PURE__*/forwardRef((_ref9, ref) => {
|
|
|
216
209
|
style: [staticStyles.track, trackStyles]
|
|
217
210
|
}), /*#__PURE__*/_jsx(View, {
|
|
218
211
|
style: [staticStyles.switch, switchStyles, switchPositionStyle],
|
|
219
|
-
children: IconComponent && /*#__PURE__*/_jsx(IconComponent, {
|
|
212
|
+
children: IconComponent && /*#__PURE__*/_jsx(IconComponent, {
|
|
213
|
+
...iconTokens
|
|
220
214
|
})
|
|
221
215
|
})]
|
|
222
216
|
});
|
|
@@ -225,50 +219,43 @@ const ToggleSwitch = /*#__PURE__*/forwardRef((_ref9, ref) => {
|
|
|
225
219
|
});
|
|
226
220
|
});
|
|
227
221
|
ToggleSwitch.displayName = 'ToggleSwitch';
|
|
228
|
-
ToggleSwitch.propTypes = {
|
|
229
|
-
|
|
222
|
+
ToggleSwitch.propTypes = {
|
|
223
|
+
...selectedSystemPropTypes,
|
|
230
224
|
/**
|
|
231
225
|
* Whether the English or French copy will be used (e.g. for accessibility labels).
|
|
232
226
|
*/
|
|
233
227
|
copy: PropTypes.oneOf(['en', 'fr']),
|
|
234
228
|
tokens: getTokensPropType('ToggleSwitch'),
|
|
235
229
|
variant: variantProp.propType,
|
|
236
|
-
|
|
237
230
|
/**
|
|
238
231
|
* If this is a "controlled" component and a parent handles its selected state,
|
|
239
232
|
* tells the switch if it is on (true) or off (false).
|
|
240
233
|
*/
|
|
241
234
|
value: PropTypes.bool,
|
|
242
|
-
|
|
243
235
|
/**
|
|
244
236
|
* If this is an "uncontrolled" component that handles its own selected state,
|
|
245
237
|
* optionally tells the switch if it should default to on (true) or off (false).
|
|
246
238
|
*/
|
|
247
239
|
initialValue: PropTypes.bool,
|
|
248
|
-
|
|
249
240
|
/**
|
|
250
241
|
* Function called when the switch is toggled, with one boolean argument that is the
|
|
251
242
|
* new position of the switch, on (true) or off (false). For "controlled" components,
|
|
252
243
|
* this should always be passed and used to control the state of the switch.
|
|
253
244
|
*/
|
|
254
245
|
onChange: PropTypes.func,
|
|
255
|
-
|
|
256
246
|
/**
|
|
257
247
|
* Input ID.
|
|
258
248
|
*/
|
|
259
249
|
id: PropTypes.string,
|
|
260
|
-
|
|
261
250
|
/**
|
|
262
251
|
* An optional label.
|
|
263
252
|
*/
|
|
264
253
|
label: PropTypes.string,
|
|
265
|
-
|
|
266
254
|
/**
|
|
267
255
|
* If passed, the switch does not respond to user input and may recieve different
|
|
268
256
|
* theme tokens if the theme supports inactive appearance.
|
|
269
257
|
*/
|
|
270
258
|
inactive: PropTypes.bool,
|
|
271
|
-
|
|
272
259
|
/**
|
|
273
260
|
* Content of an optional Tooltip. If set, a tooltip button will be shown next to the label.
|
|
274
261
|
*/
|