@telus-uds/components-base 1.66.0 → 1.67.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -3
- package/lib/A11yInfoProvider/index.js +5 -20
- package/lib/A11yText/index.js +3 -17
- package/lib/ActivityIndicator/Spinner.js +2 -9
- package/lib/ActivityIndicator/Spinner.native.js +4 -27
- package/lib/ActivityIndicator/index.js +1 -13
- package/lib/ActivityIndicator/shared.js +0 -3
- package/lib/Autocomplete/Autocomplete.js +34 -85
- package/lib/Autocomplete/Loading.js +0 -10
- package/lib/Autocomplete/Suggestions.js +0 -11
- package/lib/Autocomplete/index.js +0 -3
- package/lib/BaseProvider/HydrationContext.js +4 -18
- package/lib/BaseProvider/index.js +0 -12
- package/lib/Box/Box.js +10 -35
- package/lib/Box/index.js +0 -3
- package/lib/Button/Button.js +4 -13
- package/lib/Button/ButtonBase.js +23 -55
- package/lib/Button/ButtonDropdown.js +7 -32
- package/lib/Button/ButtonGroup.js +15 -48
- package/lib/Button/ButtonLink.js +3 -17
- package/lib/Button/index.js +0 -5
- package/lib/Button/propTypes.js +0 -15
- package/lib/Card/Card.js +3 -14
- package/lib/Card/CardBase.js +5 -16
- package/lib/Card/PressableCardBase.js +7 -30
- package/lib/Card/index.js +0 -7
- package/lib/Carousel/Carousel.js +22 -115
- package/lib/Carousel/CarouselContext.js +0 -14
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
- package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
- package/lib/Carousel/CarouselItem/index.js +0 -3
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
- package/lib/Carousel/CarouselStepTracker/index.js +0 -3
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
- package/lib/Carousel/CarouselTabs/index.js +0 -3
- package/lib/Carousel/CarouselThumbnail.js +1 -16
- package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
- package/lib/Carousel/index.js +0 -5
- package/lib/Checkbox/Checkbox.js +5 -44
- package/lib/Checkbox/CheckboxButton.js +7 -33
- package/lib/Checkbox/CheckboxGroup.js +14 -45
- package/lib/Checkbox/CheckboxInput.js +1 -11
- package/lib/Checkbox/CheckboxInput.native.js +0 -2
- package/lib/Checkbox/index.js +0 -4
- package/lib/CheckboxCard/CheckboxCard.js +4 -37
- package/lib/CheckboxCard/index.js +0 -3
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +216 -0
- package/lib/CheckboxCardGroup/index.js +10 -0
- package/lib/Divider/Divider.js +13 -24
- package/lib/Divider/index.js +0 -3
- package/lib/ExpandCollapse/Accordion.js +1 -9
- package/lib/ExpandCollapse/Control.js +10 -32
- package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
- package/lib/ExpandCollapse/Panel.js +13 -38
- package/lib/ExpandCollapse/index.js +0 -5
- package/lib/Feedback/Feedback.js +13 -30
- package/lib/Feedback/index.js +0 -3
- package/lib/Fieldset/Fieldset.js +6 -37
- package/lib/Fieldset/FieldsetContainer.js +1 -10
- package/lib/Fieldset/FieldsetContainer.native.js +0 -8
- package/lib/Fieldset/Legend.js +1 -10
- package/lib/Fieldset/Legend.native.js +1 -13
- package/lib/Fieldset/index.js +0 -3
- package/lib/FlexGrid/Col/Col.js +10 -53
- package/lib/FlexGrid/Col/index.js +0 -3
- package/lib/FlexGrid/FlexGrid.js +3 -34
- package/lib/FlexGrid/Row/Row.js +0 -38
- package/lib/FlexGrid/Row/index.js +0 -3
- package/lib/FlexGrid/helpers/index.js +0 -4
- package/lib/FlexGrid/index.js +0 -3
- package/lib/FlexGrid/providers/GutterContext.js +0 -4
- package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
- package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
- package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
- package/lib/HorizontalScroll/index.js +0 -7
- package/lib/HorizontalScroll/itemPositions.js +8 -19
- package/lib/Icon/Icon.js +4 -17
- package/lib/Icon/IconText.js +5 -25
- package/lib/Icon/index.js +0 -6
- package/lib/IconButton/IconButton.js +5 -37
- package/lib/IconButton/index.js +0 -3
- package/lib/InputLabel/InputLabel.js +4 -28
- package/lib/InputLabel/LabelContent.js +2 -8
- package/lib/InputLabel/LabelContent.native.js +0 -8
- package/lib/InputLabel/index.js +0 -3
- package/lib/InputSupports/InputSupports.js +0 -21
- package/lib/InputSupports/index.js +0 -3
- package/lib/InputSupports/useInputSupports.js +2 -6
- package/lib/Link/ChevronLink.js +7 -18
- package/lib/Link/InlinePressable.js +0 -10
- package/lib/Link/InlinePressable.native.js +5 -18
- package/lib/Link/Link.js +0 -8
- package/lib/Link/LinkBase.js +17 -47
- package/lib/Link/TextButton.js +3 -16
- package/lib/Link/index.js +0 -5
- package/lib/List/List.js +5 -21
- package/lib/List/ListItem.js +1 -11
- package/lib/List/ListItemBase.js +5 -34
- package/lib/List/ListItemContent.js +1 -14
- package/lib/List/ListItemMark.js +3 -23
- package/lib/List/PressableListItemBase.js +2 -28
- package/lib/List/index.js +0 -4
- package/lib/Listbox/GroupControl.js +0 -14
- package/lib/Listbox/Listbox.js +15 -40
- package/lib/Listbox/ListboxContext.js +0 -7
- package/lib/Listbox/ListboxGroup.js +7 -19
- package/lib/Listbox/ListboxItem.js +3 -17
- package/lib/Listbox/ListboxOverlay.js +4 -20
- package/lib/Listbox/PressableItem.js +3 -18
- package/lib/Listbox/index.js +0 -3
- package/lib/Modal/Modal.js +94 -45
- package/lib/Modal/ModalContent.js +184 -0
- package/lib/Modal/index.js +0 -3
- package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
- package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
- package/lib/MultiSelectFilter/index.js +0 -3
- package/lib/Notification/Notification.js +11 -38
- package/lib/Notification/index.js +0 -3
- package/lib/Pagination/PageButton.js +2 -22
- package/lib/Pagination/Pagination.js +21 -42
- package/lib/Pagination/SideButton.js +0 -24
- package/lib/Pagination/index.js +0 -3
- package/lib/Pagination/usePagination.js +4 -9
- package/lib/Progress/Progress.js +3 -17
- package/lib/Progress/ProgressBar.js +3 -25
- package/lib/Progress/ProgressBarBackground.js +0 -12
- package/lib/Progress/index.js +0 -4
- package/lib/QuickLinks/QuickLinks.js +1 -18
- package/lib/QuickLinks/QuickLinksCard.js +1 -11
- package/lib/QuickLinks/QuickLinksItem.js +3 -17
- package/lib/QuickLinks/index.js +0 -4
- package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
- package/lib/QuickLinksFeature/index.js +0 -4
- package/lib/Radio/Radio.js +5 -39
- package/lib/Radio/RadioButton.js +7 -26
- package/lib/Radio/RadioGroup.js +6 -39
- package/lib/Radio/RadioInput.js +1 -11
- package/lib/Radio/RadioInput.native.js +0 -2
- package/lib/Radio/index.js +0 -4
- package/lib/RadioCard/RadioCard.js +5 -38
- package/lib/RadioCard/RadioCardGroup.js +25 -40
- package/lib/RadioCard/index.js +0 -4
- package/lib/Responsive/Responsive.js +1 -14
- package/lib/Responsive/index.js +0 -3
- package/lib/Search/Search.js +22 -45
- package/lib/Search/index.js +0 -3
- package/lib/Select/Group.js +0 -8
- package/lib/Select/Group.native.js +0 -6
- package/lib/Select/Item.js +0 -7
- package/lib/Select/Item.native.js +0 -2
- package/lib/Select/Picker.js +0 -8
- package/lib/Select/Picker.native.js +6 -22
- package/lib/Select/Select.js +9 -52
- package/lib/Select/index.js +0 -5
- package/lib/SideNav/Item.js +5 -29
- package/lib/SideNav/ItemContent.js +1 -14
- package/lib/SideNav/ItemsGroup.js +9 -31
- package/lib/SideNav/SideNav.js +9 -33
- package/lib/SideNav/index.js +0 -2
- package/lib/Skeleton/Skeleton.js +10 -42
- package/lib/Skeleton/index.js +0 -3
- package/lib/Skeleton/skeletonWebAnimation.js +0 -2
- package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
- package/lib/SkipLink/SkipLink.js +7 -27
- package/lib/SkipLink/index.js +0 -3
- package/lib/Spacer/Spacer.js +4 -20
- package/lib/Spacer/index.js +0 -3
- package/lib/StackView/StackView.js +3 -21
- package/lib/StackView/StackWrap.js +11 -21
- package/lib/StackView/StackWrap.native.js +0 -3
- package/lib/StackView/StackWrapBox.js +5 -21
- package/lib/StackView/StackWrapGap.js +1 -14
- package/lib/StackView/common.js +0 -6
- package/lib/StackView/getStackedContent.js +10 -21
- package/lib/StackView/index.js +0 -5
- package/lib/StepTracker/Step.js +3 -27
- package/lib/StepTracker/StepTracker.js +5 -32
- package/lib/StepTracker/index.js +0 -3
- package/lib/Tabs/Tabs.js +7 -30
- package/lib/Tabs/TabsItem.js +13 -38
- package/lib/Tabs/index.js +0 -3
- package/lib/Tags/Tags.js +9 -42
- package/lib/Tags/index.js +0 -3
- package/lib/TextInput/TextArea.js +11 -20
- package/lib/TextInput/TextInput.js +7 -16
- package/lib/TextInput/TextInputBase.js +12 -58
- package/lib/TextInput/index.js +0 -3
- package/lib/TextInput/propTypes.js +0 -8
- package/lib/ThemeProvider/ThemeProvider.js +10 -18
- package/lib/ThemeProvider/index.js +0 -9
- package/lib/ThemeProvider/useSetTheme.js +6 -9
- package/lib/ThemeProvider/useTheme.js +2 -7
- package/lib/ThemeProvider/useThemeTokens.js +1 -9
- package/lib/ThemeProvider/utils/index.js +0 -4
- package/lib/ThemeProvider/utils/styles.js +14 -35
- package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
- package/lib/Timeline/Timeline.js +11 -27
- package/lib/Timeline/index.js +0 -3
- package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
- package/lib/ToggleSwitch/index.js +0 -3
- package/lib/Tooltip/Backdrop.js +4 -11
- package/lib/Tooltip/Backdrop.native.js +1 -14
- package/lib/Tooltip/Tooltip.js +9 -37
- package/lib/Tooltip/Tooltip.native.js +14 -45
- package/lib/Tooltip/getTooltipPosition.js +26 -31
- package/lib/Tooltip/index.js +0 -5
- package/lib/Tooltip/shared.js +0 -10
- package/lib/TooltipButton/TooltipButton.js +5 -20
- package/lib/TooltipButton/index.js +0 -3
- package/lib/Typography/Typography.js +15 -38
- package/lib/Typography/index.js +0 -3
- package/lib/Validator/Validator.js +10 -58
- package/lib/Validator/index.js +0 -3
- package/lib/ViewportProvider/ViewportProvider.js +1 -13
- package/lib/ViewportProvider/index.js +0 -5
- package/lib/ViewportProvider/useViewport.js +0 -4
- package/lib/ViewportProvider/useViewportListener.js +3 -12
- package/lib/index.js +8 -71
- package/lib/utils/BaseView/BaseView.js +3 -17
- package/lib/utils/BaseView/BaseView.native.js +0 -3
- package/lib/utils/BaseView/index.js +0 -3
- package/lib/utils/a11y/index.js +0 -4
- package/lib/utils/a11y/semantics.js +14 -32
- package/lib/utils/a11y/textSize.js +1 -8
- package/lib/utils/animation/index.js +0 -2
- package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
- package/lib/utils/children.js +16 -28
- package/lib/utils/containUniqueFields.js +2 -5
- package/lib/utils/floating-ui/index.js +0 -1
- package/lib/utils/floating-ui/index.native.js +0 -1
- package/lib/utils/hasOwnProperty.js +0 -1
- package/lib/utils/htmlAttrs.js +2 -4
- package/lib/utils/index.js +0 -31
- package/lib/utils/info/index.js +0 -4
- package/lib/utils/info/platform/index.js +0 -4
- package/lib/utils/info/versions.js +0 -3
- package/lib/utils/input.js +12 -24
- package/lib/utils/pressability.js +7 -21
- package/lib/utils/props/a11yProps.js +19 -25
- package/lib/utils/props/clickProps.js +0 -4
- package/lib/utils/props/componentPropType.js +0 -14
- package/lib/utils/props/copyPropTypes.js +0 -4
- package/lib/utils/props/getPropSelector.js +11 -12
- package/lib/utils/props/handlerProps.js +2 -23
- package/lib/utils/props/hrefAttrsProp.js +0 -4
- package/lib/utils/props/index.js +0 -22
- package/lib/utils/props/inputSupportsProps.js +0 -9
- package/lib/utils/props/linkProps.js +2 -12
- package/lib/utils/props/paddingProp.js +0 -3
- package/lib/utils/props/pressProps.js +2 -8
- package/lib/utils/props/rectProp.js +0 -3
- package/lib/utils/props/responsiveProps.js +1 -5
- package/lib/utils/props/selectSystemProps.js +4 -6
- package/lib/utils/props/spacingProps.js +3 -10
- package/lib/utils/props/textInputProps.js +10 -31
- package/lib/utils/props/textProps.js +6 -11
- package/lib/utils/props/tokens.js +7 -26
- package/lib/utils/props/variantProp.js +0 -3
- package/lib/utils/props/viewProps.js +0 -5
- package/lib/utils/ssr.js +13 -33
- package/lib/utils/useCopy.js +3 -6
- package/lib/utils/useHash.js +5 -10
- package/lib/utils/useHash.native.js +0 -2
- package/lib/utils/useOverlaidPosition.js +6 -29
- package/lib/utils/useResponsiveProp.js +6 -13
- package/lib/utils/useSafeLayoutEffect.js +5 -10
- package/lib/utils/useScrollBlocking.js +3 -11
- package/lib/utils/useScrollBlocking.native.js +0 -2
- package/lib/utils/useSpacingScale.js +5 -8
- package/lib/utils/useUniqueId.js +0 -4
- package/lib/utils/withLinkRouter.js +13 -18
- package/lib-module/A11yInfoProvider/index.js +5 -9
- package/lib-module/A11yText/index.js +3 -4
- package/lib-module/ActivityIndicator/Spinner.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
- package/lib-module/ActivityIndicator/index.js +1 -5
- package/lib-module/ActivityIndicator/shared.js +2 -1
- package/lib-module/Autocomplete/Autocomplete.js +34 -59
- package/lib-module/Autocomplete/Loading.js +0 -2
- package/lib-module/BaseProvider/HydrationContext.js +4 -7
- package/lib-module/BaseProvider/index.js +0 -3
- package/lib-module/Box/Box.js +10 -24
- package/lib-module/Button/Button.js +4 -2
- package/lib-module/Button/ButtonBase.js +23 -35
- package/lib-module/Button/ButtonDropdown.js +7 -16
- package/lib-module/Button/ButtonGroup.js +15 -32
- package/lib-module/Button/ButtonLink.js +3 -2
- package/lib-module/Button/propTypes.js +0 -7
- package/lib-module/Card/Card.js +3 -2
- package/lib-module/Card/CardBase.js +5 -4
- package/lib-module/Card/PressableCardBase.js +7 -11
- package/lib-module/Carousel/Carousel.js +22 -60
- package/lib-module/Carousel/CarouselContext.js +0 -5
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
- package/lib-module/Carousel/CarouselThumbnail.js +1 -7
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
- package/lib-module/Checkbox/Checkbox.js +5 -23
- package/lib-module/Checkbox/CheckboxButton.js +7 -17
- package/lib-module/Checkbox/CheckboxGroup.js +14 -31
- package/lib-module/Checkbox/CheckboxInput.js +1 -3
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
- package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +206 -0
- package/lib-module/CheckboxCardGroup/index.js +2 -0
- package/lib-module/Divider/Divider.js +13 -11
- package/lib-module/ExpandCollapse/Accordion.js +1 -1
- package/lib-module/ExpandCollapse/Control.js +10 -17
- package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
- package/lib-module/ExpandCollapse/Panel.js +13 -23
- package/lib-module/Feedback/Feedback.js +13 -16
- package/lib-module/Fieldset/Fieldset.js +6 -25
- package/lib-module/Fieldset/FieldsetContainer.js +1 -1
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
- package/lib-module/Fieldset/Legend.js +1 -1
- package/lib-module/Fieldset/Legend.native.js +1 -1
- package/lib-module/FlexGrid/Col/Col.js +10 -37
- package/lib-module/FlexGrid/FlexGrid.js +3 -17
- package/lib-module/FlexGrid/Row/Row.js +0 -25
- package/lib-module/FlexGrid/helpers/index.js +0 -3
- package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
- package/lib-module/HorizontalScroll/itemPositions.js +11 -10
- package/lib-module/Icon/Icon.js +4 -8
- package/lib-module/Icon/IconText.js +6 -17
- package/lib-module/IconButton/IconButton.js +7 -20
- package/lib-module/InputLabel/InputLabel.js +4 -13
- package/lib-module/InputLabel/LabelContent.js +2 -1
- package/lib-module/InputLabel/LabelContent.native.js +0 -1
- package/lib-module/InputSupports/InputSupports.js +0 -9
- package/lib-module/InputSupports/useInputSupports.js +2 -4
- package/lib-module/Link/ChevronLink.js +7 -7
- package/lib-module/Link/InlinePressable.js +0 -2
- package/lib-module/Link/InlinePressable.native.js +4 -12
- package/lib-module/Link/LinkBase.js +17 -25
- package/lib-module/Link/TextButton.js +3 -5
- package/lib-module/List/List.js +5 -9
- package/lib-module/List/ListItem.js +1 -1
- package/lib-module/List/ListItemBase.js +5 -17
- package/lib-module/List/ListItemContent.js +1 -4
- package/lib-module/List/ListItemMark.js +3 -16
- package/lib-module/List/PressableListItemBase.js +2 -6
- package/lib-module/Listbox/GroupControl.js +0 -2
- package/lib-module/Listbox/Listbox.js +15 -23
- package/lib-module/Listbox/ListboxContext.js +0 -2
- package/lib-module/Listbox/ListboxGroup.js +6 -4
- package/lib-module/Listbox/ListboxItem.js +2 -1
- package/lib-module/Listbox/ListboxOverlay.js +3 -4
- package/lib-module/Listbox/PressableItem.js +2 -7
- package/lib-module/Modal/Modal.js +94 -25
- package/lib-module/Modal/ModalContent.js +175 -0
- package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
- package/lib-module/Notification/Notification.js +11 -22
- package/lib-module/Pagination/PageButton.js +2 -6
- package/lib-module/Pagination/Pagination.js +21 -21
- package/lib-module/Pagination/SideButton.js +3 -8
- package/lib-module/Pagination/usePagination.js +4 -8
- package/lib-module/Progress/Progress.js +3 -7
- package/lib-module/Progress/ProgressBar.js +3 -11
- package/lib-module/Progress/ProgressBarBackground.js +0 -2
- package/lib-module/QuickLinks/QuickLinks.js +1 -6
- package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
- package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
- package/lib-module/Radio/Radio.js +5 -22
- package/lib-module/Radio/RadioButton.js +8 -10
- package/lib-module/Radio/RadioGroup.js +6 -25
- package/lib-module/Radio/RadioInput.js +1 -3
- package/lib-module/Radio/RadioInput.native.js +0 -1
- package/lib-module/RadioCard/RadioCard.js +5 -21
- package/lib-module/RadioCard/RadioCardGroup.js +25 -27
- package/lib-module/Responsive/Responsive.js +1 -6
- package/lib-module/Search/Search.js +22 -31
- package/lib-module/Select/Group.js +0 -3
- package/lib-module/Select/Group.native.js +0 -3
- package/lib-module/Select/Item.js +0 -3
- package/lib-module/Select/Item.native.js +0 -1
- package/lib-module/Select/Picker.native.js +8 -10
- package/lib-module/Select/Select.js +10 -35
- package/lib-module/SideNav/Item.js +5 -16
- package/lib-module/SideNav/ItemContent.js +1 -2
- package/lib-module/SideNav/ItemsGroup.js +9 -19
- package/lib-module/SideNav/SideNav.js +9 -22
- package/lib-module/Skeleton/Skeleton.js +10 -25
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
- package/lib-module/SkipLink/SkipLink.js +7 -9
- package/lib-module/Spacer/Spacer.js +4 -7
- package/lib-module/StackView/StackView.js +3 -7
- package/lib-module/StackView/StackWrap.js +13 -13
- package/lib-module/StackView/StackWrap.native.js +2 -1
- package/lib-module/StackView/StackWrapBox.js +5 -8
- package/lib-module/StackView/StackWrapGap.js +1 -1
- package/lib-module/StackView/getStackedContent.js +10 -10
- package/lib-module/StepTracker/Step.js +3 -14
- package/lib-module/StepTracker/StepTracker.js +5 -13
- package/lib-module/Tabs/Tabs.js +7 -16
- package/lib-module/Tabs/TabsItem.js +13 -16
- package/lib-module/Tags/Tags.js +9 -26
- package/lib-module/TextInput/TextArea.js +11 -8
- package/lib-module/TextInput/TextInput.js +7 -5
- package/lib-module/TextInput/TextInputBase.js +13 -39
- package/lib-module/TextInput/propTypes.js +3 -7
- package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
- package/lib-module/ThemeProvider/useSetTheme.js +6 -7
- package/lib-module/ThemeProvider/useTheme.js +2 -5
- package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
- package/lib-module/ThemeProvider/utils/styles.js +15 -27
- package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
- package/lib-module/Timeline/Timeline.js +11 -17
- package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
- package/lib-module/Tooltip/Backdrop.js +4 -7
- package/lib-module/Tooltip/Backdrop.native.js +1 -4
- package/lib-module/Tooltip/Tooltip.js +9 -18
- package/lib-module/Tooltip/Tooltip.native.js +14 -23
- package/lib-module/Tooltip/getTooltipPosition.js +26 -30
- package/lib-module/Tooltip/shared.js +0 -6
- package/lib-module/TooltipButton/TooltipButton.js +5 -8
- package/lib-module/Typography/Typography.js +14 -22
- package/lib-module/Validator/Validator.js +10 -42
- package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
- package/lib-module/ViewportProvider/useViewportListener.js +6 -8
- package/lib-module/index.js +1 -0
- package/lib-module/utils/BaseView/BaseView.js +3 -4
- package/lib-module/utils/BaseView/BaseView.native.js +0 -1
- package/lib-module/utils/a11y/semantics.js +14 -27
- package/lib-module/utils/a11y/textSize.js +1 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
- package/lib-module/utils/children.js +17 -19
- package/lib-module/utils/containUniqueFields.js +2 -4
- package/lib-module/utils/htmlAttrs.js +2 -1
- package/lib-module/utils/info/index.js +2 -1
- package/lib-module/utils/info/platform/index.js +4 -1
- package/lib-module/utils/info/versions.js +2 -1
- package/lib-module/utils/input.js +11 -19
- package/lib-module/utils/pressability.js +8 -7
- package/lib-module/utils/props/a11yProps.js +22 -20
- package/lib-module/utils/props/clickProps.js +0 -1
- package/lib-module/utils/props/componentPropType.js +0 -13
- package/lib-module/utils/props/getPropSelector.js +12 -8
- package/lib-module/utils/props/handlerProps.js +2 -19
- package/lib-module/utils/props/hrefAttrsProp.js +2 -2
- package/lib-module/utils/props/inputSupportsProps.js +0 -6
- package/lib-module/utils/props/linkProps.js +2 -3
- package/lib-module/utils/props/pressProps.js +2 -2
- package/lib-module/utils/props/responsiveProps.js +1 -3
- package/lib-module/utils/props/selectSystemProps.js +4 -5
- package/lib-module/utils/props/spacingProps.js +4 -3
- package/lib-module/utils/props/textInputProps.js +13 -27
- package/lib-module/utils/props/textProps.js +9 -7
- package/lib-module/utils/props/tokens.js +10 -13
- package/lib-module/utils/props/variantProp.js +1 -1
- package/lib-module/utils/props/viewProps.js +0 -1
- package/lib-module/utils/ssr.js +14 -18
- package/lib-module/utils/useCopy.js +3 -5
- package/lib-module/utils/useHash.js +5 -9
- package/lib-module/utils/useHash.native.js +0 -1
- package/lib-module/utils/useOverlaidPosition.js +6 -25
- package/lib-module/utils/useResponsiveProp.js +6 -7
- package/lib-module/utils/useSafeLayoutEffect.js +5 -7
- package/lib-module/utils/useScrollBlocking.js +3 -10
- package/lib-module/utils/useSpacingScale.js +4 -4
- package/lib-module/utils/useUniqueId.js +0 -2
- package/lib-module/utils/withLinkRouter.js +13 -10
- package/package.json +2 -2
- package/src/Checkbox/CheckboxGroup.jsx +10 -8
- package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +231 -0
- package/src/CheckboxCardGroup/index.js +3 -0
- package/src/Modal/Modal.jsx +98 -5
- package/src/Modal/ModalContent.jsx +171 -0
- package/src/RadioCard/RadioCardGroup.jsx +23 -2
- package/src/index.js +1 -0
|
@@ -4,47 +4,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _Dimensions = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Dimensions"));
|
|
11
|
-
|
|
12
9
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
13
|
-
|
|
14
10
|
var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
|
|
15
|
-
|
|
16
11
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
17
|
-
|
|
18
12
|
var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
|
|
19
|
-
|
|
20
13
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
21
|
-
|
|
22
14
|
var _shared = _interopRequireDefault(require("./shared"));
|
|
23
|
-
|
|
24
15
|
var _ThemeProvider = require("../ThemeProvider");
|
|
25
|
-
|
|
26
16
|
var _utils = require("../utils");
|
|
27
|
-
|
|
28
17
|
var _Backdrop = _interopRequireDefault(require("./Backdrop"));
|
|
29
|
-
|
|
30
18
|
var _getTooltipPosition = _interopRequireDefault(require("./getTooltipPosition"));
|
|
31
|
-
|
|
32
19
|
var _TooltipButton = _interopRequireDefault(require("../TooltipButton"));
|
|
33
|
-
|
|
34
20
|
var _useCopy = _interopRequireDefault(require("../utils/useCopy"));
|
|
35
|
-
|
|
36
21
|
var _dictionary = _interopRequireDefault(require("./dictionary"));
|
|
37
|
-
|
|
38
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
39
|
-
|
|
40
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
41
|
-
|
|
42
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
43
|
-
|
|
44
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
45
|
-
|
|
46
26
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
47
|
-
|
|
48
27
|
const selectTooltipStyles = _ref => {
|
|
49
28
|
let {
|
|
50
29
|
backgroundColor,
|
|
@@ -63,7 +42,6 @@ const selectTooltipStyles = _ref => {
|
|
|
63
42
|
borderRadius
|
|
64
43
|
};
|
|
65
44
|
};
|
|
66
|
-
|
|
67
45
|
const selectTooltipShadowStyles = _ref2 => {
|
|
68
46
|
let {
|
|
69
47
|
shadow,
|
|
@@ -74,7 +52,6 @@ const selectTooltipShadowStyles = _ref2 => {
|
|
|
74
52
|
...(0, _ThemeProvider.applyShadowToken)(shadow)
|
|
75
53
|
};
|
|
76
54
|
};
|
|
77
|
-
|
|
78
55
|
const selectTooltipPositionStyles = _ref3 => {
|
|
79
56
|
let {
|
|
80
57
|
top,
|
|
@@ -87,7 +64,6 @@ const selectTooltipPositionStyles = _ref3 => {
|
|
|
87
64
|
width
|
|
88
65
|
};
|
|
89
66
|
};
|
|
90
|
-
|
|
91
67
|
const selectArrowStyles = (_ref4, _ref5) => {
|
|
92
68
|
let {
|
|
93
69
|
backgroundColor,
|
|
@@ -101,13 +77,15 @@ const selectArrowStyles = (_ref4, _ref5) => {
|
|
|
101
77
|
height: tooltipHeight
|
|
102
78
|
} = _ref5;
|
|
103
79
|
// the arrow width is actually a diagonal of the rectangle that we'll use as a tip
|
|
104
|
-
const rectangleSide = Math.sqrt(arrowWidth * arrowWidth / 2);
|
|
105
|
-
// so we use the rectangle size as basis
|
|
80
|
+
const rectangleSide = Math.sqrt(arrowWidth * arrowWidth / 2);
|
|
106
81
|
|
|
82
|
+
// position the arrow at the side and center of the tooltip - this happens before rotation
|
|
83
|
+
// so we use the rectangle size as basis
|
|
107
84
|
const verticalOffset = -1 * rectangleSide / 2;
|
|
108
|
-
const horizontalOffset = rectangleSide / 2;
|
|
109
|
-
// calculate the pixel values
|
|
85
|
+
const horizontalOffset = rectangleSide / 2;
|
|
110
86
|
|
|
87
|
+
// percentage-based absolute positioning doesn't act well on native, so we have to
|
|
88
|
+
// calculate the pixel values
|
|
111
89
|
const directionalStyles = {
|
|
112
90
|
above: {
|
|
113
91
|
bottom: verticalOffset,
|
|
@@ -148,13 +126,12 @@ const selectArrowStyles = (_ref4, _ref5) => {
|
|
|
148
126
|
...directionalStyles[position]
|
|
149
127
|
};
|
|
150
128
|
};
|
|
151
|
-
|
|
152
129
|
const selectTextStyles = tokens => (0, _ThemeProvider.applyTextStyles)((0, _utils.selectTokens)('Typography', tokens));
|
|
153
|
-
|
|
154
130
|
const defaultControl = (pressableState, variant) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipButton.default, {
|
|
155
131
|
pressableState: pressableState,
|
|
156
132
|
variant: variant
|
|
157
133
|
});
|
|
134
|
+
|
|
158
135
|
/**
|
|
159
136
|
* Tooltip provides a descriptive and detailed explanation or instructions. It can be used next to an input label
|
|
160
137
|
* to help a user fill it in, or as a standalone component.
|
|
@@ -170,8 +147,6 @@ const defaultControl = (pressableState, variant) => /*#__PURE__*/(0, _jsxRuntime
|
|
|
170
147
|
* - You may use one when the information is useful only to a small percentage of users (ie. tech savvy people wouldn't need this info).
|
|
171
148
|
* - Tooltips may also be useful when vertical space is an issue.
|
|
172
149
|
*/
|
|
173
|
-
|
|
174
|
-
|
|
175
150
|
const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
176
151
|
let {
|
|
177
152
|
children,
|
|
@@ -207,17 +182,13 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
207
182
|
} = _ref7;
|
|
208
183
|
setWindowDimensions(window);
|
|
209
184
|
});
|
|
210
|
-
|
|
211
185
|
return () => subscription === null || subscription === void 0 ? void 0 : subscription.remove();
|
|
212
186
|
});
|
|
213
|
-
|
|
214
187
|
const toggleIsOpen = () => {
|
|
215
188
|
onPress();
|
|
216
189
|
setIsOpen(!isOpen);
|
|
217
190
|
};
|
|
218
|
-
|
|
219
191
|
const close = () => setIsOpen(false);
|
|
220
|
-
|
|
221
192
|
const getPressableState = _ref8 => {
|
|
222
193
|
let {
|
|
223
194
|
pressed,
|
|
@@ -230,7 +201,6 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
230
201
|
focus: focused
|
|
231
202
|
};
|
|
232
203
|
};
|
|
233
|
-
|
|
234
204
|
const onTooltipLayout = _ref9 => {
|
|
235
205
|
let {
|
|
236
206
|
nativeEvent: {
|
|
@@ -240,7 +210,6 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
240
210
|
}
|
|
241
211
|
}
|
|
242
212
|
} = _ref9;
|
|
243
|
-
|
|
244
213
|
if (tooltipDimensions === null || tooltipDimensions.width !== width || tooltipDimensions.height !== height) {
|
|
245
214
|
setTooltipDimensions({
|
|
246
215
|
width: _Platform.default.select({
|
|
@@ -252,7 +221,6 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
252
221
|
});
|
|
253
222
|
}
|
|
254
223
|
};
|
|
255
|
-
|
|
256
224
|
(0, _react.useEffect)(() => {
|
|
257
225
|
if (isOpen) {
|
|
258
226
|
controlRef.current.measureInWindow((x, y, width, height) => {
|
|
@@ -276,19 +244,18 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
276
244
|
if (tooltipPosition !== null && !(tooltipPosition !== null && tooltipPosition !== void 0 && tooltipPosition.isNormalized) || !isOpen || controlLayout === null || tooltipDimensions == null) {
|
|
277
245
|
return;
|
|
278
246
|
}
|
|
279
|
-
|
|
280
247
|
const updatedPosition = (0, _getTooltipPosition.default)(position, {
|
|
281
248
|
controlLayout,
|
|
282
249
|
tooltipDimensions,
|
|
283
250
|
windowDimensions,
|
|
284
251
|
arrowWidth,
|
|
285
252
|
arrowOffset
|
|
286
|
-
});
|
|
253
|
+
});
|
|
287
254
|
|
|
255
|
+
// avoid ending up in an infinite normalization loop
|
|
288
256
|
if (tooltipPosition !== null && tooltipPosition !== void 0 && tooltipPosition.isNormalized && updatedPosition.isNormalized) {
|
|
289
257
|
return;
|
|
290
258
|
}
|
|
291
|
-
|
|
292
259
|
setTooltipPosition(updatedPosition);
|
|
293
260
|
}, [isOpen, position, tooltipDimensions, controlLayout, windowDimensions, arrowWidth, arrowOffset, tooltipPosition]);
|
|
294
261
|
const control = children !== undefined ? children : defaultControl;
|
|
@@ -324,9 +291,11 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
324
291
|
onPress: close,
|
|
325
292
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
326
293
|
ref: ref,
|
|
327
|
-
style: [staticStyles.tooltip, selectTooltipShadowStyles(themeTokens),
|
|
294
|
+
style: [staticStyles.tooltip, selectTooltipShadowStyles(themeTokens),
|
|
295
|
+
// applied separately so that it doesn't cover the arrow
|
|
328
296
|
tooltipPosition && selectTooltipPositionStyles(tooltipPosition), (tooltipPosition === null || (tooltipPosition === null || tooltipPosition === void 0 ? void 0 : tooltipPosition.isNormalized)) && staticStyles.tooltipHidden // visually hide the tooltip until we have a final measurement
|
|
329
297
|
],
|
|
298
|
+
|
|
330
299
|
onLayout: onTooltipLayout,
|
|
331
300
|
accessibilityRole: "alert",
|
|
332
301
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
@@ -343,12 +312,12 @@ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
343
312
|
});
|
|
344
313
|
});
|
|
345
314
|
Tooltip.displayName = 'NativeTooltip';
|
|
346
|
-
Tooltip.propTypes = {
|
|
315
|
+
Tooltip.propTypes = {
|
|
316
|
+
...selectedSystemPropTypes,
|
|
347
317
|
..._shared.default
|
|
348
318
|
};
|
|
349
319
|
var _default = Tooltip;
|
|
350
320
|
exports.default = _default;
|
|
351
|
-
|
|
352
321
|
const staticStyles = _StyleSheet.default.create({
|
|
353
322
|
container: {
|
|
354
323
|
alignItems: 'flex-start'
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
function normalizePosition(position) {
|
|
9
8
|
const {
|
|
10
9
|
left,
|
|
@@ -13,48 +12,42 @@ function normalizePosition(position) {
|
|
|
13
12
|
top,
|
|
14
13
|
width,
|
|
15
14
|
...rest
|
|
16
|
-
} = position;
|
|
15
|
+
} = position;
|
|
17
16
|
|
|
17
|
+
// adjust the coordinates so that it fits within the window
|
|
18
18
|
const normalized = {
|
|
19
19
|
left: Math.max(0, left),
|
|
20
20
|
right: Math.max(0, right),
|
|
21
21
|
top: Math.max(0, top),
|
|
22
22
|
bottom // since it's ok the make the document grow downwards - no need to normalize here
|
|
23
|
-
|
|
24
23
|
};
|
|
25
24
|
|
|
26
|
-
const getAbsoluteDiff = (value1, value2) => Math.abs(Math.abs(value1) - Math.abs(value2));
|
|
27
|
-
|
|
25
|
+
const getAbsoluteDiff = (value1, value2) => Math.abs(Math.abs(value1) - Math.abs(value2));
|
|
28
26
|
|
|
27
|
+
// adjust the width by whatever has been subtracted from left or right
|
|
29
28
|
normalized.width = width - Math.abs(getAbsoluteDiff(left, normalized.left) - getAbsoluteDiff(right, normalized.right));
|
|
30
|
-
|
|
31
29
|
if (normalized.top !== top) {
|
|
32
30
|
normalized.bottom += normalized.top - top;
|
|
33
31
|
}
|
|
34
|
-
|
|
35
32
|
const isNormalized = normalized.right !== right || normalized.left !== left || normalized.top !== top;
|
|
36
|
-
return {
|
|
33
|
+
return {
|
|
34
|
+
...normalized,
|
|
37
35
|
...rest,
|
|
38
36
|
isNormalized
|
|
39
37
|
};
|
|
40
38
|
}
|
|
41
|
-
|
|
42
39
|
function invertPosition(position) {
|
|
43
40
|
switch (position) {
|
|
44
41
|
case 'above':
|
|
45
42
|
return 'below';
|
|
46
|
-
|
|
47
43
|
case 'below':
|
|
48
44
|
return 'above';
|
|
49
|
-
|
|
50
45
|
case 'left':
|
|
51
46
|
return 'right';
|
|
52
|
-
|
|
53
47
|
default:
|
|
54
48
|
return 'left';
|
|
55
49
|
}
|
|
56
50
|
}
|
|
57
|
-
|
|
58
51
|
function findRectByPosition(position, rectsArray) {
|
|
59
52
|
return rectsArray.find(_ref => {
|
|
60
53
|
let {
|
|
@@ -63,6 +56,7 @@ function findRectByPosition(position, rectsArray) {
|
|
|
63
56
|
return rectPosition === position;
|
|
64
57
|
});
|
|
65
58
|
}
|
|
59
|
+
|
|
66
60
|
/**
|
|
67
61
|
* Used for absolute positioning of the tooltip. Since the tooltip is always centered relatively
|
|
68
62
|
* to the control (button) and we have a limited set of positions, an easy and consistent way
|
|
@@ -71,8 +65,6 @@ function findRectByPosition(position, rectsArray) {
|
|
|
71
65
|
* before it is shown, which makes it account for the width being limiting in styles, custom font
|
|
72
66
|
* rendering, etc.
|
|
73
67
|
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
68
|
function getTooltipPosition(position, _ref2) {
|
|
77
69
|
let {
|
|
78
70
|
controlLayout,
|
|
@@ -103,8 +95,9 @@ function getTooltipPosition(position, _ref2) {
|
|
|
103
95
|
const verticalBounds = {
|
|
104
96
|
top: controlY,
|
|
105
97
|
bottom: windowHeight - (controlY + controlHeight / 2 + tooltipHeight / 2)
|
|
106
|
-
};
|
|
98
|
+
};
|
|
107
99
|
|
|
100
|
+
// calculate absolute coordinates for each of the potential positions (relative to window)
|
|
108
101
|
const boundingRects = [{
|
|
109
102
|
position: 'above',
|
|
110
103
|
...horizontalBounds,
|
|
@@ -128,42 +121,44 @@ function getTooltipPosition(position, _ref2) {
|
|
|
128
121
|
}].map(rect => {
|
|
129
122
|
// an absolute value representing how much of the tooltip is overflowing the window on each side
|
|
130
123
|
const windowOverflow = Math.abs(Math.min(rect.top, 0) - Math.min(rect.left, 0) - Math.min(rect.right, 0) - Math.min(rect.bottom, 0));
|
|
131
|
-
return {
|
|
124
|
+
return {
|
|
125
|
+
...rect,
|
|
132
126
|
...tooltipDimensions,
|
|
133
127
|
overflow: windowOverflow,
|
|
134
128
|
isNormalized: false
|
|
135
129
|
};
|
|
136
|
-
});
|
|
130
|
+
});
|
|
137
131
|
|
|
132
|
+
// the 'position' prop overrides the automatic positioning
|
|
138
133
|
if (position !== 'auto') {
|
|
139
|
-
let rect = findRectByPosition(position, boundingRects);
|
|
134
|
+
let rect = findRectByPosition(position, boundingRects);
|
|
140
135
|
|
|
136
|
+
// check if the suggested 'position' fits in window
|
|
141
137
|
if (rect.overflow === 0) {
|
|
142
138
|
return rect;
|
|
143
|
-
}
|
|
144
|
-
|
|
139
|
+
}
|
|
145
140
|
|
|
141
|
+
// otherwise try the inverted position (e.g. left -> right)
|
|
146
142
|
rect = findRectByPosition(invertPosition(position), boundingRects);
|
|
147
|
-
|
|
148
143
|
if (rect.overflow === 0) {
|
|
149
144
|
return rect;
|
|
150
145
|
}
|
|
151
146
|
}
|
|
152
|
-
|
|
153
147
|
const inWindow = boundingRects.filter(_ref3 => {
|
|
154
148
|
let {
|
|
155
149
|
overflow
|
|
156
150
|
} = _ref3;
|
|
157
151
|
return overflow === 0;
|
|
158
|
-
});
|
|
159
|
-
// (these are sorted clockwise which makes them show where one would expect them to be)
|
|
152
|
+
});
|
|
160
153
|
|
|
154
|
+
// pick the first position that fits in window
|
|
155
|
+
// (these are sorted clockwise which makes them show where one would expect them to be)
|
|
161
156
|
if (inWindow.length > 0) {
|
|
162
157
|
return inWindow[0];
|
|
163
|
-
}
|
|
164
|
-
// the least overflowing and normalize its position to fit within window bounds
|
|
165
|
-
|
|
158
|
+
}
|
|
166
159
|
|
|
160
|
+
// if all positions would end up being out of window bounds, let's pick the one that is
|
|
161
|
+
// the least overflowing and normalize its position to fit within window bounds
|
|
167
162
|
boundingRects.sort((_ref4, _ref5) => {
|
|
168
163
|
let {
|
|
169
164
|
overflow: overflowA
|
|
@@ -173,11 +168,11 @@ function getTooltipPosition(position, _ref2) {
|
|
|
173
168
|
} = _ref5;
|
|
174
169
|
return overflowA - overflowB;
|
|
175
170
|
});
|
|
176
|
-
const leastOverflowing = boundingRects[0];
|
|
177
|
-
// and 'above' might cause issues on small viewports with large tooltips
|
|
171
|
+
const leastOverflowing = boundingRects[0];
|
|
178
172
|
|
|
173
|
+
// prefer 'below' over 'above', since we can always expand the document downwards,
|
|
174
|
+
// and 'above' might cause issues on small viewports with large tooltips
|
|
179
175
|
return normalizePosition(leastOverflowing.position === 'above' ? findRectByPosition('below', boundingRects) : leastOverflowing);
|
|
180
176
|
}
|
|
181
|
-
|
|
182
177
|
var _default = getTooltipPosition;
|
|
183
178
|
exports.default = _default;
|
package/lib/Tooltip/index.js
CHANGED
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _Dimensions = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Dimensions"));
|
|
9
|
-
|
|
10
8
|
var _Tooltip = _interopRequireDefault(require("./Tooltip"));
|
|
11
|
-
|
|
12
9
|
var _Tooltip2 = _interopRequireDefault(require("./Tooltip.native"));
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
const Tooltip = !_Dimensions.default.get('screen').width <= 340 ? _Tooltip2.default : _Tooltip.default;
|
|
17
12
|
var _default = Tooltip;
|
|
18
13
|
exports.default = _default;
|
package/lib/Tooltip/shared.js
CHANGED
|
@@ -4,45 +4,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
|
|
10
8
|
var _utils = require("../utils");
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
const propTypes = {
|
|
15
11
|
/**
|
|
16
12
|
* Used to render the control (i.e. tooltip trigger). If a render function is used it will receive the
|
|
17
13
|
* pressable state and tooltip variant as an argument.
|
|
18
14
|
*/
|
|
19
15
|
children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.node]),
|
|
20
|
-
|
|
21
16
|
/**
|
|
22
17
|
* The message. Can be raw text or text components.
|
|
23
18
|
*/
|
|
24
19
|
content: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
|
|
25
|
-
|
|
26
20
|
/**
|
|
27
21
|
* Select English or French copy for the accessible label.
|
|
28
22
|
*/
|
|
29
23
|
copy: _propTypes.default.oneOf(['en', 'fr']),
|
|
30
|
-
|
|
31
24
|
/**
|
|
32
25
|
* Use to place the tooltip in a specific location (only if it fits within viewport).
|
|
33
26
|
*/
|
|
34
27
|
position: _propTypes.default.oneOf(['auto', 'above', 'right', 'below', 'left']),
|
|
35
|
-
|
|
36
28
|
/**
|
|
37
29
|
* Display tooltip icon button as an inline element.
|
|
38
30
|
*/
|
|
39
31
|
inline: _propTypes.default.bool,
|
|
40
|
-
|
|
41
32
|
/**
|
|
42
33
|
* Callback function triggered when the tooltip is pressed.
|
|
43
34
|
*/
|
|
44
35
|
onPress: _propTypes.default.func,
|
|
45
|
-
|
|
46
36
|
/**
|
|
47
37
|
* The `id` of the tooltip button.
|
|
48
38
|
*/
|
|
@@ -4,29 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
11
|
-
|
|
12
9
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
13
|
-
|
|
14
10
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
15
|
-
|
|
16
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
-
|
|
18
12
|
var _ThemeProvider = require("../ThemeProvider");
|
|
19
|
-
|
|
20
13
|
var _utils = require("../utils");
|
|
21
|
-
|
|
22
14
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
23
|
-
|
|
24
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
|
-
|
|
26
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
-
|
|
28
17
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
29
|
-
|
|
30
18
|
const selectInnerContainerStyles = _ref => {
|
|
31
19
|
let {
|
|
32
20
|
borderRadius,
|
|
@@ -39,7 +27,6 @@ const selectInnerContainerStyles = _ref => {
|
|
|
39
27
|
backgroundColor
|
|
40
28
|
};
|
|
41
29
|
};
|
|
42
|
-
|
|
43
30
|
const selectIconTokens = _ref2 => {
|
|
44
31
|
let {
|
|
45
32
|
iconSize,
|
|
@@ -52,13 +39,12 @@ const selectIconTokens = _ref2 => {
|
|
|
52
39
|
scale: iconScale
|
|
53
40
|
};
|
|
54
41
|
};
|
|
42
|
+
|
|
55
43
|
/**
|
|
56
44
|
* `TooltipButton` is a helper component used as a default control for the `Tooltip` component.
|
|
57
45
|
* In fact though, it isn't actually a pressable - it's meant to be used as pressable's content.
|
|
58
46
|
* Due to this any interaction states (e.g. pressed, hover, etc.) has to be passed down to it as a prop.
|
|
59
47
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
48
|
const TooltipButton = _ref3 => {
|
|
63
49
|
let {
|
|
64
50
|
pressableState,
|
|
@@ -84,18 +70,17 @@ const TooltipButton = _ref3 => {
|
|
|
84
70
|
})
|
|
85
71
|
});
|
|
86
72
|
};
|
|
87
|
-
|
|
88
73
|
const staticStyles = _StyleSheet.default.create({
|
|
89
|
-
bubblePointerEvents: {
|
|
74
|
+
bubblePointerEvents: {
|
|
75
|
+
..._Platform.default.select({
|
|
90
76
|
web: {
|
|
91
77
|
pointerEvents: 'none'
|
|
92
78
|
}
|
|
93
79
|
})
|
|
94
80
|
}
|
|
95
81
|
});
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
TooltipButton.propTypes = {
|
|
83
|
+
...selectedSystemPropTypes,
|
|
99
84
|
/**
|
|
100
85
|
* Used as appearances when resolving theme tokens.
|
|
101
86
|
*/
|
|
@@ -4,10 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _TooltipButton = _interopRequireDefault(require("./TooltipButton"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
var _default = _TooltipButton.default;
|
|
13
10
|
exports.default = _default;
|
|
@@ -4,37 +4,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
|
|
13
|
-
|
|
14
10
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
15
|
-
|
|
16
11
|
var _ThemeProvider = require("../ThemeProvider");
|
|
17
|
-
|
|
18
12
|
var _ViewportProvider = require("../ViewportProvider");
|
|
19
|
-
|
|
20
13
|
var _utils = require("../ThemeProvider/utils");
|
|
21
|
-
|
|
22
14
|
var _utils2 = require("../utils");
|
|
23
|
-
|
|
24
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
|
-
|
|
26
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
-
|
|
28
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
32
19
|
/**
|
|
33
20
|
* @typedef {import('../utils/a11y/semantics').TextTag} TextTag
|
|
34
|
-
*/
|
|
35
|
-
const [selectContainerProps, selectedContainerPropTypes] = (0, _utils2.selectSystemProps)([_utils2.a11yProps, _utils2.viewProps]);
|
|
21
|
+
*/const [selectContainerProps, selectedContainerPropTypes] = (0, _utils2.selectSystemProps)([_utils2.a11yProps, _utils2.viewProps]);
|
|
36
22
|
const [selectTextProps, selectedTextPropTypes] = (0, _utils2.selectSystemProps)([_utils2.textProps]);
|
|
37
|
-
|
|
38
23
|
const selectTextStyles = (_ref, themeOptions) => {
|
|
39
24
|
let {
|
|
40
25
|
fontWeight,
|
|
@@ -57,9 +42,9 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
57
42
|
textTransform,
|
|
58
43
|
letterSpacing
|
|
59
44
|
});
|
|
60
|
-
};
|
|
61
|
-
|
|
45
|
+
};
|
|
62
46
|
|
|
47
|
+
// General-purpose flexible theme-neutral base component for text
|
|
63
48
|
const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
64
49
|
let {
|
|
65
50
|
children,
|
|
@@ -84,8 +69,10 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
84
69
|
const {
|
|
85
70
|
themeOptions
|
|
86
71
|
} = (0, _ThemeProvider.useTheme)();
|
|
87
|
-
const resolvedTextProps = {
|
|
88
|
-
|
|
72
|
+
const resolvedTextProps = {
|
|
73
|
+
...selectTextProps(rest),
|
|
74
|
+
style: selectTextStyles(align ? {
|
|
75
|
+
...themeTokens,
|
|
89
76
|
textAlign: align
|
|
90
77
|
} : themeTokens, themeOptions),
|
|
91
78
|
dataSet,
|
|
@@ -96,39 +83,33 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
96
83
|
...(0, _utils2.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
|
|
97
84
|
...selectContainerProps(rest)
|
|
98
85
|
};
|
|
99
|
-
|
|
100
86
|
const resetTagStyling = child => {
|
|
101
87
|
if (typeof child === 'object' && ((child === null || child === void 0 ? void 0 : child.type) === 'sub' || (child === null || child === void 0 ? void 0 : child.type) === 'sup')) {
|
|
102
88
|
var _child$props;
|
|
103
|
-
|
|
104
89
|
const childStyles = (child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.style) || {};
|
|
105
90
|
const supFontSize = childStyles.fontSize ?? superScriptFontSize;
|
|
106
|
-
|
|
107
91
|
const sanitizedChild = /*#__PURE__*/_react.default.cloneElement(child, {
|
|
108
|
-
style: {
|
|
92
|
+
style: {
|
|
93
|
+
...childStyles,
|
|
109
94
|
...(supFontSize ? {
|
|
110
95
|
fontSize: supFontSize
|
|
111
96
|
} : {}),
|
|
112
97
|
lineHeight: 0
|
|
113
98
|
}
|
|
114
99
|
});
|
|
115
|
-
|
|
116
100
|
return sanitizedChild;
|
|
117
101
|
}
|
|
118
|
-
|
|
119
102
|
return child;
|
|
120
103
|
};
|
|
121
|
-
|
|
122
104
|
const sanitizeChildren = () => {
|
|
123
105
|
if (Array.isArray(children)) {
|
|
124
106
|
return children.map(resetTagStyling);
|
|
125
107
|
}
|
|
126
|
-
|
|
127
108
|
return resetTagStyling(children);
|
|
128
109
|
};
|
|
129
|
-
|
|
130
110
|
const textDecorationLine = strikeThrough ? 'line-through' : 'none';
|
|
131
|
-
const textStyles = resolvedTextProps.style ? {
|
|
111
|
+
const textStyles = resolvedTextProps.style ? {
|
|
112
|
+
...resolvedTextProps.style,
|
|
132
113
|
textDecorationLine
|
|
133
114
|
} : {
|
|
134
115
|
textDecorationLine
|
|
@@ -136,7 +117,8 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
136
117
|
return block ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
137
118
|
ref: ref,
|
|
138
119
|
...containerProps,
|
|
139
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
|
|
120
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
|
|
121
|
+
...resolvedTextProps,
|
|
140
122
|
style: textStyles,
|
|
141
123
|
children: sanitizeChildren(children)
|
|
142
124
|
})
|
|
@@ -149,16 +131,15 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
149
131
|
});
|
|
150
132
|
});
|
|
151
133
|
Typography.displayName = 'Typography';
|
|
152
|
-
Typography.propTypes = {
|
|
134
|
+
Typography.propTypes = {
|
|
135
|
+
...selectedContainerPropTypes,
|
|
153
136
|
...selectedTextPropTypes,
|
|
154
137
|
tokens: (0, _utils2.getTokensPropType)('Typography'),
|
|
155
138
|
variant: _utils2.variantProp.propType,
|
|
156
|
-
|
|
157
139
|
/**
|
|
158
140
|
* Renders the text with "text-decoration: 'line-through'" applied.
|
|
159
141
|
*/
|
|
160
142
|
strikeThrough: _propTypes.default.bool,
|
|
161
|
-
|
|
162
143
|
/**
|
|
163
144
|
* Renders the text as a semantic heading. If a html heading tag is provided, uses that tag on Web.
|
|
164
145
|
*
|
|
@@ -169,7 +150,6 @@ Typography.propTypes = { ...selectedContainerPropTypes,
|
|
|
169
150
|
* is not defined, the accessibilityRole will default to "heading".
|
|
170
151
|
*/
|
|
171
152
|
heading: _propTypes.default.oneOf([..._utils2.headingTags, true]),
|
|
172
|
-
|
|
173
153
|
/**
|
|
174
154
|
* Optional semantic HTML tag, to apply to the text on web. Does not change styling.
|
|
175
155
|
*
|
|
@@ -179,18 +159,15 @@ Typography.propTypes = { ...selectedContainerPropTypes,
|
|
|
179
159
|
* is not defined, the accessibilityRole will default to "heading".
|
|
180
160
|
*/
|
|
181
161
|
tag: _propTypes.default.oneOf(_utils2.textTags),
|
|
182
|
-
|
|
183
162
|
/**
|
|
184
163
|
* If true, forces the element to behave as a View block even if nested in other text
|
|
185
164
|
*/
|
|
186
165
|
block: _propTypes.default.bool,
|
|
187
|
-
|
|
188
166
|
/**
|
|
189
167
|
* Works the same as css text-align, note that RN doesn't support "start" or "end" (see https://reactnative.dev/docs/text-style-props#textalign)
|
|
190
168
|
* Justify is known to make text harder to read, especially for people with dyslexia (see https://developer.mozilla.org/en-US/docs/Web/CSS/text-align#accessibility_concerns)
|
|
191
169
|
*/
|
|
192
170
|
align: _propTypes.default.oneOf(['auto', 'left', 'right', 'center', 'justify']),
|
|
193
|
-
|
|
194
171
|
/**
|
|
195
172
|
* Same children allowed as a React Native <Text> node
|
|
196
173
|
*/
|