@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
|
@@ -6,19 +6,17 @@ import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
|
6
6
|
import View from "react-native-web/dist/exports/View";
|
|
7
7
|
import { applyOuterBorder, useThemeTokensCallback, applyShadowToken } from '../ThemeProvider';
|
|
8
8
|
import { a11yProps, clickProps, getTokensPropType, hrefAttrsProp, linkProps, resolvePressableState, selectSystemProps, selectTokens, variantProp, viewProps, withLinkRouter } from '../utils';
|
|
9
|
-
import Icon from '../Icon';
|
|
9
|
+
import Icon from '../Icon';
|
|
10
10
|
|
|
11
|
+
// function to get the dimentionals of the conditionals
|
|
11
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
-
|
|
13
13
|
const getPasswordDimensions = (password, width, height) => {
|
|
14
14
|
return password ? {
|
|
15
15
|
width,
|
|
16
16
|
height
|
|
17
17
|
} : {};
|
|
18
18
|
};
|
|
19
|
-
|
|
20
19
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
21
|
-
|
|
22
20
|
const selectOuterStyle = (_ref, password) => {
|
|
23
21
|
let {
|
|
24
22
|
backgroundColor,
|
|
@@ -58,10 +56,8 @@ const selectOuterStyle = (_ref, password) => {
|
|
|
58
56
|
})
|
|
59
57
|
}, staticStyles.outer];
|
|
60
58
|
};
|
|
61
|
-
|
|
62
59
|
const calculatePadding = (padding, borderWidth) => padding && Math.max(0, padding - borderWidth); // Stable size as border changes
|
|
63
60
|
|
|
64
|
-
|
|
65
61
|
const selectInnerStyle = (_ref2, password) => {
|
|
66
62
|
let {
|
|
67
63
|
borderColor,
|
|
@@ -112,13 +108,12 @@ const selectInnerStyle = (_ref2, password) => {
|
|
|
112
108
|
...getPasswordDimensions(password, width, height)
|
|
113
109
|
};
|
|
114
110
|
};
|
|
111
|
+
|
|
115
112
|
/**
|
|
116
113
|
* A pressable themeless base component that handles pressable states and passes tokens
|
|
117
114
|
* based on these to an outer border and a base Card component. Not intended to be used in
|
|
118
115
|
* apps or sites directly: build themed components on top of this.
|
|
119
116
|
*/
|
|
120
|
-
|
|
121
|
-
|
|
122
117
|
const IconButton = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
123
118
|
let {
|
|
124
119
|
tokens,
|
|
@@ -134,13 +129,12 @@ const IconButton = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
134
129
|
onPress,
|
|
135
130
|
...rest
|
|
136
131
|
} = clickProps.toPressProps(rawRest);
|
|
137
|
-
const selectedProps = selectProps({
|
|
132
|
+
const selectedProps = selectProps({
|
|
133
|
+
...rest,
|
|
138
134
|
accessibilityRole
|
|
139
135
|
});
|
|
140
|
-
|
|
141
136
|
const handlePress = () => {
|
|
142
137
|
var _ref$current;
|
|
143
|
-
|
|
144
138
|
linkProps.handleHref({
|
|
145
139
|
href,
|
|
146
140
|
onPress
|
|
@@ -150,11 +144,8 @@ const IconButton = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
150
144
|
}
|
|
151
145
|
});
|
|
152
146
|
};
|
|
153
|
-
|
|
154
147
|
const getTokens = useThemeTokensCallback('IconButton', tokens, variant);
|
|
155
|
-
|
|
156
148
|
const getOuterStyle = pressableState => selectOuterStyle(getTokens(resolvePressableState(pressableState), variant.password));
|
|
157
|
-
|
|
158
149
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
159
150
|
ref: ref,
|
|
160
151
|
href: href,
|
|
@@ -178,31 +169,27 @@ const IconButton = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
178
169
|
});
|
|
179
170
|
});
|
|
180
171
|
IconButton.displayName = 'IconButton';
|
|
181
|
-
IconButton.propTypes = {
|
|
172
|
+
IconButton.propTypes = {
|
|
173
|
+
...selectedSystemPropTypes,
|
|
182
174
|
variant: variantProp.propType,
|
|
183
175
|
tokens: getTokensPropType('IconButton'),
|
|
184
|
-
|
|
185
176
|
/**
|
|
186
177
|
* A unique identifier for testing purposes.
|
|
187
178
|
* Will be added as a `data-testid` attribute.
|
|
188
179
|
*/
|
|
189
180
|
testID: PropTypes.string,
|
|
190
|
-
|
|
191
181
|
/**
|
|
192
182
|
* Defines the icon to be rendered
|
|
193
183
|
*/
|
|
194
184
|
icon: PropTypes.elementType,
|
|
195
|
-
|
|
196
185
|
/**
|
|
197
186
|
* URL to navigate to when the `Iconbutton` is pressed
|
|
198
187
|
*/
|
|
199
188
|
href: PropTypes.string,
|
|
200
|
-
|
|
201
189
|
/**
|
|
202
190
|
* URL options to navigate to when the `Iconbutton` is pressed
|
|
203
191
|
*/
|
|
204
192
|
hrefAttrs: PropTypes.shape(hrefAttrsProp.types),
|
|
205
|
-
|
|
206
193
|
/**
|
|
207
194
|
* Function to execute when the `Iconbutton` is pressed
|
|
208
195
|
*/
|
|
@@ -11,11 +11,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
11
11
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
13
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const selectLabelStyles = (tokens, themeOptions) => applyTextStyles({
|
|
15
|
+
...selectTokens('Typography', tokens),
|
|
16
16
|
themeOptions
|
|
17
17
|
});
|
|
18
|
-
|
|
19
18
|
const selectHintStyles = (_ref, themeOptions) => {
|
|
20
19
|
let {
|
|
21
20
|
hintColor,
|
|
@@ -33,7 +32,6 @@ const selectHintStyles = (_ref, themeOptions) => {
|
|
|
33
32
|
themeOptions
|
|
34
33
|
});
|
|
35
34
|
};
|
|
36
|
-
|
|
37
35
|
const selectGapStyles = _ref2 => {
|
|
38
36
|
let {
|
|
39
37
|
gap
|
|
@@ -42,7 +40,6 @@ const selectGapStyles = _ref2 => {
|
|
|
42
40
|
marginRight: gap
|
|
43
41
|
};
|
|
44
42
|
};
|
|
45
|
-
|
|
46
43
|
const InputLabel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
47
44
|
let {
|
|
48
45
|
copy = 'en',
|
|
@@ -95,38 +92,32 @@ const InputLabel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
95
92
|
});
|
|
96
93
|
});
|
|
97
94
|
InputLabel.displayName = 'InputLabel';
|
|
98
|
-
InputLabel.propTypes = {
|
|
99
|
-
|
|
95
|
+
InputLabel.propTypes = {
|
|
96
|
+
...selectedSystemPropTypes,
|
|
100
97
|
/**
|
|
101
98
|
* Whether the English or French copy will be used (e.g. for accessibility labels).
|
|
102
99
|
*/
|
|
103
100
|
copy: PropTypes.oneOf(['en', 'fr']),
|
|
104
|
-
|
|
105
101
|
/**
|
|
106
102
|
* The input label.
|
|
107
103
|
*/
|
|
108
104
|
label: PropTypes.string.isRequired,
|
|
109
|
-
|
|
110
105
|
/**
|
|
111
106
|
* The id attribute of the input which this label refers to.
|
|
112
107
|
*/
|
|
113
108
|
forId: PropTypes.string,
|
|
114
|
-
|
|
115
109
|
/**
|
|
116
110
|
* A short description of the expected input.
|
|
117
111
|
*/
|
|
118
112
|
hint: PropTypes.string,
|
|
119
|
-
|
|
120
113
|
/**
|
|
121
114
|
* Position of the hint relative to label. Use `below` to display a larger hint below the label.
|
|
122
115
|
*/
|
|
123
116
|
hintPosition: PropTypes.oneOf(['inline', 'below']),
|
|
124
|
-
|
|
125
117
|
/**
|
|
126
118
|
* The id attribute passed down to the hint element.
|
|
127
119
|
*/
|
|
128
120
|
hintId: PropTypes.string,
|
|
129
|
-
|
|
130
121
|
/**
|
|
131
122
|
* Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
|
|
132
123
|
*/
|
|
@@ -17,8 +17,9 @@ LabelContent.displayName = 'LabelContent';
|
|
|
17
17
|
LabelContent.propTypes = {
|
|
18
18
|
children: PropTypes.string,
|
|
19
19
|
forId: PropTypes.string
|
|
20
|
-
};
|
|
20
|
+
};
|
|
21
21
|
|
|
22
|
+
// Note that <label> is not React Native, so we can't use `StyleSheet.create` here
|
|
22
23
|
const staticStyles = {
|
|
23
24
|
inheritCursor: {
|
|
24
25
|
cursor: 'inherit'
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import View from "react-native-web/dist/exports/View"; // Since there's no equivalent for web's <label> element we're simply rendering whatever is passed to this component.
|
|
4
|
-
|
|
5
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
5
|
const LabelContent = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
7
6
|
let {
|
|
@@ -60,48 +60,39 @@ const InputSupports = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
60
60
|
InputSupports.displayName = 'InputSupports';
|
|
61
61
|
InputSupports.propTypes = {
|
|
62
62
|
children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
|
|
63
|
-
|
|
64
63
|
/**
|
|
65
64
|
* Whether the English or French copy will be used (e.g. for accessibility labels).
|
|
66
65
|
*/
|
|
67
66
|
copy: PropTypes.oneOf(['en', 'fr']),
|
|
68
|
-
|
|
69
67
|
/**
|
|
70
68
|
* The input label.
|
|
71
69
|
*/
|
|
72
70
|
label: PropTypes.string,
|
|
73
|
-
|
|
74
71
|
/**
|
|
75
72
|
* A short description of the expected input.
|
|
76
73
|
*/
|
|
77
74
|
hint: PropTypes.string,
|
|
78
|
-
|
|
79
75
|
/**
|
|
80
76
|
* Position of the hint relative to label.
|
|
81
77
|
*/
|
|
82
78
|
hintPosition: PropTypes.oneOf(['inline', 'below']),
|
|
83
|
-
|
|
84
79
|
/**
|
|
85
80
|
* A detailed description of validation error/success or additional instructions.
|
|
86
81
|
* Visual variant is determined based on the `validation` prop.
|
|
87
82
|
*/
|
|
88
83
|
feedback: PropTypes.string,
|
|
89
|
-
|
|
90
84
|
/**
|
|
91
85
|
* Additional tokens to override the default feedback tokens.
|
|
92
86
|
*/
|
|
93
87
|
feedbackTokens: PropTypes.objectOf(PropTypes.string),
|
|
94
|
-
|
|
95
88
|
/**
|
|
96
89
|
* Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
|
|
97
90
|
*/
|
|
98
91
|
tooltip: PropTypes.string,
|
|
99
|
-
|
|
100
92
|
/**
|
|
101
93
|
* Use to visually mark an input as valid or invalid.
|
|
102
94
|
*/
|
|
103
95
|
validation: PropTypes.oneOf(['error', 'success']),
|
|
104
|
-
|
|
105
96
|
/**
|
|
106
97
|
* ID for DOM element on web
|
|
107
98
|
*/
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import useUniqueId from '../utils/useUniqueId';
|
|
2
|
-
|
|
3
2
|
const joinDefined = array => array.filter(item => item !== undefined).join(' ');
|
|
4
|
-
|
|
5
3
|
const useInputSupports = _ref => {
|
|
6
4
|
let {
|
|
7
5
|
label,
|
|
@@ -18,7 +16,8 @@ const useInputSupports = _ref => {
|
|
|
18
16
|
accessibilityLabel: label,
|
|
19
17
|
accessibilityHint: joinDefined([!hasValidationError && feedback, hint]),
|
|
20
18
|
// native only -> replaced with describedBy on web
|
|
21
|
-
accessibilityDescribedBy: joinDefined([!hasValidationError && feedback && feedbackId,
|
|
19
|
+
accessibilityDescribedBy: joinDefined([!hasValidationError && feedback && feedbackId,
|
|
20
|
+
// feedback receives a11yRole=alert on error, so there's no need to include it here
|
|
22
21
|
hint && hintId]),
|
|
23
22
|
accessibilityInvalid: hasValidationError
|
|
24
23
|
};
|
|
@@ -29,5 +28,4 @@ const useInputSupports = _ref => {
|
|
|
29
28
|
a11yProps
|
|
30
29
|
};
|
|
31
30
|
};
|
|
32
|
-
|
|
33
31
|
export default useInputSupports;
|
|
@@ -3,13 +3,13 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import { useThemeTokensCallback } from '../ThemeProvider';
|
|
4
4
|
import { selectTokens, getTokensPropType, linkProps } from '../utils';
|
|
5
5
|
import LinkBase from './LinkBase';
|
|
6
|
+
|
|
6
7
|
/**
|
|
7
8
|
* `ChevronLink` is a convenience wrapper around the `Link` component to enable "directional" links.
|
|
8
9
|
* It effectively pre-binds left and right icons, and a directional translation of the icon on hover.
|
|
9
10
|
*
|
|
10
11
|
* ChevronLink is not intended to be deeply themable; variants passed to ChevronLink are forwarded to Link.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
14
|
const ChevronLink = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
15
15
|
let {
|
|
@@ -21,7 +21,6 @@ const ChevronLink = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
21
21
|
...otherlinkProps
|
|
22
22
|
} = _ref;
|
|
23
23
|
const getChevronTokens = useThemeTokensCallback('ChevronLink', tokens, variant);
|
|
24
|
-
|
|
25
24
|
const applyChevronTokens = linkState => {
|
|
26
25
|
const {
|
|
27
26
|
leftIcon,
|
|
@@ -32,16 +31,17 @@ const ChevronLink = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
32
31
|
...otherTokens
|
|
33
32
|
} = getChevronTokens(linkState);
|
|
34
33
|
const linkTokens = selectTokens('Link', otherTokens);
|
|
35
|
-
return {
|
|
34
|
+
return {
|
|
35
|
+
...linkTokens,
|
|
36
36
|
height,
|
|
37
37
|
blockFontSize: tokens.fontSize ?? fontSize,
|
|
38
38
|
icon: direction === 'right' ? rightIcon : leftIcon,
|
|
39
39
|
iconTranslateX: iconDisplace * (direction === 'right' ? 1 : -1) || 0
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
|
-
|
|
43
42
|
const getTokens = useThemeTokensCallback('Link', applyChevronTokens, variant);
|
|
44
|
-
return /*#__PURE__*/_jsx(LinkBase, {
|
|
43
|
+
return /*#__PURE__*/_jsx(LinkBase, {
|
|
44
|
+
...otherlinkProps,
|
|
45
45
|
iconPosition: direction,
|
|
46
46
|
tokens: getTokens,
|
|
47
47
|
dataSet: dataSet,
|
|
@@ -50,7 +50,8 @@ const ChevronLink = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
52
|
ChevronLink.displayName = 'ChevronLink';
|
|
53
|
-
ChevronLink.propTypes = {
|
|
53
|
+
ChevronLink.propTypes = {
|
|
54
|
+
...LinkBase.propTypes,
|
|
54
55
|
children: PropTypes.node,
|
|
55
56
|
variant: PropTypes.exact({
|
|
56
57
|
size: PropTypes.oneOf(['large', 'small', 'micro']),
|
|
@@ -59,7 +60,6 @@ ChevronLink.propTypes = { ...LinkBase.propTypes,
|
|
|
59
60
|
}),
|
|
60
61
|
...linkProps.types,
|
|
61
62
|
tokens: getTokensPropType('ChevronLink', 'Link'),
|
|
62
|
-
|
|
63
63
|
/**
|
|
64
64
|
* Changes direction of chevron icon
|
|
65
65
|
*/
|
|
@@ -4,7 +4,6 @@ import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
|
4
4
|
/**
|
|
5
5
|
* @typedef {import('react-native').PressableProps} PressableProps
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* InlinePressable is an alternative to React Native's Pressable that works better when nested
|
|
10
9
|
* inline inside Text. It accepts the same props as React Native's Pressable.
|
|
@@ -15,7 +14,6 @@ import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
|
15
14
|
*/
|
|
16
15
|
// React Native exports prop Types but not propTypes, use JSDoc types here rather than duplicate RN
|
|
17
16
|
// eslint-disable-next-line react/prop-types
|
|
18
|
-
|
|
19
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
18
|
const InlinePressable = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
21
19
|
let {
|
|
@@ -6,9 +6,7 @@ import TouchableWithoutFeedback from "react-native-web/dist/exports/TouchableWit
|
|
|
6
6
|
* @typedef {import('react-native').PressableProps} PressableProps
|
|
7
7
|
*/
|
|
8
8
|
// TouchableWithoutFeedback and Pressable have similar but not identical props APIs
|
|
9
|
-
|
|
10
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
|
|
12
10
|
const pressablePropsToTouchable = _ref => {
|
|
13
11
|
let {
|
|
14
12
|
unstable_pressDelay,
|
|
@@ -17,11 +15,13 @@ const pressablePropsToTouchable = _ref => {
|
|
|
17
15
|
// Unsupported, discard it
|
|
18
16
|
...props
|
|
19
17
|
} = _ref;
|
|
20
|
-
return {
|
|
18
|
+
return {
|
|
19
|
+
...props,
|
|
21
20
|
touchSoundDisabled: android_disableSound,
|
|
22
21
|
delayPressIn: unstable_pressDelay
|
|
23
22
|
};
|
|
24
23
|
};
|
|
24
|
+
|
|
25
25
|
/**
|
|
26
26
|
* InlinePressable is an alternative to React Native's Pressable that works better when nested
|
|
27
27
|
* inline inside Text. It accepts the same props as React Native's Pressable.
|
|
@@ -42,8 +42,6 @@ const pressablePropsToTouchable = _ref => {
|
|
|
42
42
|
*/
|
|
43
43
|
// React Native exports prop Types but not propTypes, use JSDoc types here rather than duplicate RN
|
|
44
44
|
// eslint-disable-next-line react/prop-types
|
|
45
|
-
|
|
46
|
-
|
|
47
45
|
const InlinePressable = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
48
46
|
let {
|
|
49
47
|
onPress,
|
|
@@ -52,24 +50,18 @@ const InlinePressable = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
52
50
|
...rest
|
|
53
51
|
} = _ref2;
|
|
54
52
|
const [isFocused, setIsFocused] = useState(false);
|
|
55
|
-
|
|
56
53
|
const handleFocus = () => setIsFocused(true);
|
|
57
|
-
|
|
58
54
|
const handleBlur = () => setIsFocused(false);
|
|
59
|
-
|
|
60
55
|
const [isPressed, setIsPressed] = useState(false);
|
|
61
|
-
|
|
62
56
|
const handlePressIn = () => setIsPressed(true);
|
|
63
|
-
|
|
64
57
|
const handlePressOut = () => setIsPressed(false);
|
|
65
|
-
|
|
66
58
|
const pressState = {
|
|
67
59
|
pressed: isPressed,
|
|
68
60
|
focus: isFocused,
|
|
69
61
|
// limited support on native
|
|
70
62
|
hover: false // not yet supported on native
|
|
71
|
-
|
|
72
63
|
};
|
|
64
|
+
|
|
73
65
|
const currentStyle = typeof style === 'function' ? style(pressState) : style;
|
|
74
66
|
return /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
|
|
75
67
|
onPress: onPress,
|
|
@@ -11,7 +11,6 @@ import { applyTextStyles, applyOuterBorder, useTheme } from '../ThemeProvider';
|
|
|
11
11
|
import { IconText, iconComponentPropTypes } from '../Icon';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, linkProps, viewProps]);
|
|
14
|
-
|
|
15
14
|
const selectOuterBorderStyles = _ref => {
|
|
16
15
|
let {
|
|
17
16
|
outerBorderColor,
|
|
@@ -20,7 +19,8 @@ const selectOuterBorderStyles = _ref => {
|
|
|
20
19
|
borderRadius,
|
|
21
20
|
outerBorderOutline
|
|
22
21
|
} = _ref;
|
|
23
|
-
return (
|
|
22
|
+
return (
|
|
23
|
+
// A view wrapper with a border on native messes up inline text alignment
|
|
24
24
|
// so for now make focus styles strictly web-only
|
|
25
25
|
Platform.OS === 'web' ? {
|
|
26
26
|
// Allow theme to define outline, or, turn off outline and use border if rounded corners required
|
|
@@ -34,7 +34,6 @@ const selectOuterBorderStyles = _ref => {
|
|
|
34
34
|
} : {}
|
|
35
35
|
);
|
|
36
36
|
};
|
|
37
|
-
|
|
38
37
|
const selectTextStyles = _ref2 => {
|
|
39
38
|
let {
|
|
40
39
|
color,
|
|
@@ -53,7 +52,6 @@ const selectTextStyles = _ref2 => {
|
|
|
53
52
|
})
|
|
54
53
|
};
|
|
55
54
|
};
|
|
56
|
-
|
|
57
55
|
const selectBlockStyles = (_ref3, themeOptions) => {
|
|
58
56
|
let {
|
|
59
57
|
blockFontWeight,
|
|
@@ -69,7 +67,6 @@ const selectBlockStyles = (_ref3, themeOptions) => {
|
|
|
69
67
|
themeOptions
|
|
70
68
|
});
|
|
71
69
|
};
|
|
72
|
-
|
|
73
70
|
const selectDecorationStyles = _ref4 => {
|
|
74
71
|
let {
|
|
75
72
|
color,
|
|
@@ -90,7 +87,6 @@ const selectDecorationStyles = _ref4 => {
|
|
|
90
87
|
})
|
|
91
88
|
};
|
|
92
89
|
};
|
|
93
|
-
|
|
94
90
|
const selectIconTokens = _ref5 => {
|
|
95
91
|
let {
|
|
96
92
|
color,
|
|
@@ -105,6 +101,7 @@ const selectIconTokens = _ref5 => {
|
|
|
105
101
|
size: iconSize
|
|
106
102
|
};
|
|
107
103
|
};
|
|
104
|
+
|
|
108
105
|
/**
|
|
109
106
|
* Renders a pressable text link, with optional icon. This is rendered as a block element
|
|
110
107
|
* only (see 'Current Limitations'). On Web, renders an `<a>` anchor tag if `href` is provided.
|
|
@@ -127,8 +124,6 @@ const selectIconTokens = _ref5 => {
|
|
|
127
124
|
* dropped in favour of investigating if a full-featured CSS-in-JS package could or
|
|
128
125
|
* should be used more widely (e.g. styled components)
|
|
129
126
|
*/
|
|
130
|
-
|
|
131
|
-
|
|
132
127
|
const LinkBase = /*#__PURE__*/forwardRef((_ref6, ref) => {
|
|
133
128
|
let {
|
|
134
129
|
href,
|
|
@@ -159,20 +154,21 @@ const LinkBase = /*#__PURE__*/forwardRef((_ref6, ref) => {
|
|
|
159
154
|
hrefAttrs,
|
|
160
155
|
...rest
|
|
161
156
|
});
|
|
162
|
-
|
|
163
157
|
const resolveLinkTokens = pressState => resolvePressableTokens(tokens, pressState, {
|
|
164
158
|
iconPosition
|
|
165
159
|
});
|
|
166
|
-
|
|
167
160
|
const defaultThemeTokens = resolveLinkTokens({});
|
|
168
|
-
const hasIcon = Boolean(icon || defaultThemeTokens.icon);
|
|
161
|
+
const hasIcon = Boolean(icon || defaultThemeTokens.icon);
|
|
169
162
|
|
|
163
|
+
// On web, this makes focus rings wrap only the link, not the entire block
|
|
170
164
|
const blockLeftStyle = Platform.OS === 'web' && staticStyles.blockLeft;
|
|
171
165
|
const {
|
|
172
166
|
themeOptions
|
|
173
167
|
} = useTheme();
|
|
174
|
-
return /*#__PURE__*/_jsx(InlinePressable, {
|
|
175
|
-
|
|
168
|
+
return /*#__PURE__*/_jsx(InlinePressable, {
|
|
169
|
+
...selectedProps,
|
|
170
|
+
inlineFlex: hasIcon
|
|
171
|
+
// assuming links without icons should be inline (even if they are long)
|
|
176
172
|
,
|
|
177
173
|
ref: ref,
|
|
178
174
|
style: linkState => {
|
|
@@ -184,9 +180,9 @@ const LinkBase = /*#__PURE__*/forwardRef((_ref6, ref) => {
|
|
|
184
180
|
children: linkState => {
|
|
185
181
|
const themeTokens = resolveLinkTokens(linkState);
|
|
186
182
|
const textStyles = selectTextStyles(themeTokens);
|
|
187
|
-
const iconTokens = selectIconTokens(themeTokens);
|
|
183
|
+
const iconTokens = selectIconTokens(themeTokens);
|
|
184
|
+
// TODO: may need to apply some smarter text inheritance here if inline to avoid native
|
|
188
185
|
// issues like double-application of line heights breaking align-items: baseline
|
|
189
|
-
|
|
190
186
|
const blockTextStyles = selectBlockStyles(themeTokens, themeOptions);
|
|
191
187
|
const IconComponent = icon || themeTokens.icon;
|
|
192
188
|
const {
|
|
@@ -196,7 +192,8 @@ const LinkBase = /*#__PURE__*/forwardRef((_ref6, ref) => {
|
|
|
196
192
|
icon: IconComponent,
|
|
197
193
|
iconPosition: iconPosition,
|
|
198
194
|
space: iconSpace,
|
|
199
|
-
iconProps: {
|
|
195
|
+
iconProps: {
|
|
196
|
+
...iconProps,
|
|
200
197
|
tokens: iconTokens,
|
|
201
198
|
style: staticStyles.bubblePointerEvents
|
|
202
199
|
},
|
|
@@ -209,40 +206,34 @@ const LinkBase = /*#__PURE__*/forwardRef((_ref6, ref) => {
|
|
|
209
206
|
});
|
|
210
207
|
});
|
|
211
208
|
LinkBase.displayName = 'LinkBase';
|
|
212
|
-
LinkBase.propTypes = {
|
|
209
|
+
LinkBase.propTypes = {
|
|
210
|
+
...selectedSystemPropTypes,
|
|
213
211
|
tokens: getTokensPropType('Link'),
|
|
214
|
-
|
|
215
212
|
/**
|
|
216
213
|
* href for the Link
|
|
217
214
|
*/
|
|
218
215
|
href: PropTypes.string,
|
|
219
|
-
|
|
220
216
|
/**
|
|
221
217
|
* AccesibilityRole for the link base
|
|
222
218
|
*/
|
|
223
219
|
accessibilityrole: PropTypes.string,
|
|
224
|
-
|
|
225
220
|
/**
|
|
226
221
|
* Children nodes that can be added
|
|
227
222
|
*/
|
|
228
223
|
variant: variantProp.propType,
|
|
229
|
-
|
|
230
224
|
/**
|
|
231
225
|
* Optional variant that may be passed down to the link's icon if there is one
|
|
232
226
|
*/
|
|
233
227
|
iconProps: PropTypes.exact(iconComponentPropTypes),
|
|
234
|
-
|
|
235
228
|
/**
|
|
236
229
|
* A function component for an SVG icon to render inside the link. Inherits size and color from
|
|
237
230
|
* the link and any Typography the link is nested inside.
|
|
238
231
|
*/
|
|
239
232
|
icon: PropTypes.elementType,
|
|
240
|
-
|
|
241
233
|
/**
|
|
242
234
|
* When `icon` is provided, use `iconPosition` to place the Icon to the left or right side of Link.
|
|
243
235
|
*/
|
|
244
236
|
iconPosition: PropTypes.oneOf(['left', 'right']),
|
|
245
|
-
|
|
246
237
|
/**
|
|
247
238
|
* On Web if href is passed, React Native Web maps this object's props to
|
|
248
239
|
* `rel`, `target` and `download` attrs.
|
|
@@ -260,7 +251,8 @@ const staticStyles = StyleSheet.create({
|
|
|
260
251
|
baseline: {
|
|
261
252
|
alignSelf: 'baseline'
|
|
262
253
|
},
|
|
263
|
-
bubblePointerEvents: {
|
|
254
|
+
bubblePointerEvents: {
|
|
255
|
+
...Platform.select({
|
|
264
256
|
web: {
|
|
265
257
|
pointerEvents: 'none'
|
|
266
258
|
}
|
|
@@ -3,12 +3,12 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import { useThemeTokensCallback } from '../ThemeProvider';
|
|
4
4
|
import LinkBase from './LinkBase';
|
|
5
5
|
import { variantProp } from '../utils';
|
|
6
|
+
|
|
6
7
|
/**
|
|
7
8
|
* `TextButton` is a button that looks like a Link. It uses the same theming and variants as
|
|
8
9
|
* Link but has the accessibility role of a `Button`. It should be used for actions that
|
|
9
10
|
* take place on the current page, or for navigation within an app.
|
|
10
11
|
*/
|
|
11
|
-
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
const TextButton = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
14
14
|
let {
|
|
@@ -30,15 +30,13 @@ const TextButton = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
30
30
|
});
|
|
31
31
|
});
|
|
32
32
|
TextButton.displayName = 'TextButton';
|
|
33
|
-
TextButton.propTypes = {
|
|
34
|
-
|
|
33
|
+
TextButton.propTypes = {
|
|
34
|
+
...LinkBase.propTypes,
|
|
35
35
|
/** onPress function */
|
|
36
36
|
onPress: PropTypes.func.isRequired,
|
|
37
|
-
|
|
38
37
|
/** Children node that can be added */
|
|
39
38
|
children: PropTypes.node.isRequired,
|
|
40
39
|
variant: variantProp.propType,
|
|
41
|
-
|
|
42
40
|
/** Accesibility role for TextButton */
|
|
43
41
|
accessibilityRole: PropTypes.string
|
|
44
42
|
};
|
package/lib-module/List/List.js
CHANGED
|
@@ -5,20 +5,17 @@ import PropTypes from 'prop-types';
|
|
|
5
5
|
import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps } from '../utils';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
8
|
-
|
|
9
8
|
const isListItem = element => {
|
|
10
9
|
var _element$type, _element$type2;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const elementName = (element === null || element === void 0 ? void 0 : (_element$type = element.type) === null || _element$type === void 0 ? void 0 : _element$type.displayName) || (element === null || element === void 0 ? void 0 : (_element$type2 = element.type) === null || _element$type2 === void 0 ? void 0 : _element$type2.name);
|
|
11
|
+
// Match our own ListItem, and also, custom list items
|
|
14
12
|
return Boolean(elementName.match(/Item/));
|
|
15
13
|
};
|
|
14
|
+
|
|
16
15
|
/**
|
|
17
16
|
* An unordered List component has a child a ListItem that
|
|
18
17
|
* allows icon, dividers and customized typography
|
|
19
18
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
19
|
const List = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
23
20
|
let {
|
|
24
21
|
children,
|
|
@@ -42,7 +39,6 @@ const List = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
42
39
|
...child.props
|
|
43
40
|
});
|
|
44
41
|
}
|
|
45
|
-
|
|
46
42
|
return child;
|
|
47
43
|
});
|
|
48
44
|
return /*#__PURE__*/_jsx(View, {
|
|
@@ -57,11 +53,11 @@ const List = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
57
53
|
});
|
|
58
54
|
});
|
|
59
55
|
List.displayName = 'List';
|
|
60
|
-
List.propTypes = {
|
|
56
|
+
List.propTypes = {
|
|
57
|
+
...selectedSystemPropTypes,
|
|
61
58
|
tokens: getTokensPropType('List'),
|
|
62
59
|
variant: variantProp.propType,
|
|
63
60
|
children: PropTypes.node,
|
|
64
|
-
|
|
65
61
|
/**
|
|
66
62
|
* In case it is not the last item allow display divider
|
|
67
63
|
*/
|
|
@@ -2,10 +2,10 @@ import React, { forwardRef } from 'react';
|
|
|
2
2
|
import ListItemBase from './ListItemBase';
|
|
3
3
|
import { useThemeTokens } from '../ThemeProvider';
|
|
4
4
|
import { variantProp } from '../utils';
|
|
5
|
+
|
|
5
6
|
/**
|
|
6
7
|
* ListItem is responsible for rendering icon or a bullet as side item
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const ListItem = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
11
11
|
let {
|