@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
|
@@ -8,7 +8,6 @@ import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps
|
|
|
8
8
|
import Icon from '../Icon';
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
11
|
-
|
|
12
11
|
const selectInnerContainerStyles = _ref => {
|
|
13
12
|
let {
|
|
14
13
|
borderRadius,
|
|
@@ -21,7 +20,6 @@ const selectInnerContainerStyles = _ref => {
|
|
|
21
20
|
backgroundColor
|
|
22
21
|
};
|
|
23
22
|
};
|
|
24
|
-
|
|
25
23
|
const selectIconTokens = _ref2 => {
|
|
26
24
|
let {
|
|
27
25
|
iconSize,
|
|
@@ -34,13 +32,12 @@ const selectIconTokens = _ref2 => {
|
|
|
34
32
|
scale: iconScale
|
|
35
33
|
};
|
|
36
34
|
};
|
|
35
|
+
|
|
37
36
|
/**
|
|
38
37
|
* `TooltipButton` is a helper component used as a default control for the `Tooltip` component.
|
|
39
38
|
* In fact though, it isn't actually a pressable - it's meant to be used as pressable's content.
|
|
40
39
|
* Due to this any interaction states (e.g. pressed, hover, etc.) has to be passed down to it as a prop.
|
|
41
40
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
41
|
const TooltipButton = _ref3 => {
|
|
45
42
|
let {
|
|
46
43
|
pressableState,
|
|
@@ -66,17 +63,17 @@ const TooltipButton = _ref3 => {
|
|
|
66
63
|
})
|
|
67
64
|
});
|
|
68
65
|
};
|
|
69
|
-
|
|
70
66
|
const staticStyles = StyleSheet.create({
|
|
71
|
-
bubblePointerEvents: {
|
|
67
|
+
bubblePointerEvents: {
|
|
68
|
+
...Platform.select({
|
|
72
69
|
web: {
|
|
73
70
|
pointerEvents: 'none'
|
|
74
71
|
}
|
|
75
72
|
})
|
|
76
73
|
}
|
|
77
74
|
});
|
|
78
|
-
TooltipButton.propTypes = {
|
|
79
|
-
|
|
75
|
+
TooltipButton.propTypes = {
|
|
76
|
+
...selectedSystemPropTypes,
|
|
80
77
|
/**
|
|
81
78
|
* Used as appearances when resolving theme tokens.
|
|
82
79
|
*/
|
|
@@ -9,11 +9,9 @@ import { a11yProps, variantProp, getTokensPropType, getMaxFontMultiplier, headin
|
|
|
9
9
|
/**
|
|
10
10
|
* @typedef {import('../utils/a11y/semantics').TextTag} TextTag
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
13
|
const [selectContainerProps, selectedContainerPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
15
14
|
const [selectTextProps, selectedTextPropTypes] = selectSystemProps([textProps]);
|
|
16
|
-
|
|
17
15
|
const selectTextStyles = (_ref, themeOptions) => {
|
|
18
16
|
let {
|
|
19
17
|
fontWeight,
|
|
@@ -36,9 +34,9 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
36
34
|
textTransform,
|
|
37
35
|
letterSpacing
|
|
38
36
|
});
|
|
39
|
-
};
|
|
40
|
-
|
|
37
|
+
};
|
|
41
38
|
|
|
39
|
+
// General-purpose flexible theme-neutral base component for text
|
|
42
40
|
const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
43
41
|
let {
|
|
44
42
|
children,
|
|
@@ -63,8 +61,10 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
63
61
|
const {
|
|
64
62
|
themeOptions
|
|
65
63
|
} = useTheme();
|
|
66
|
-
const resolvedTextProps = {
|
|
67
|
-
|
|
64
|
+
const resolvedTextProps = {
|
|
65
|
+
...selectTextProps(rest),
|
|
66
|
+
style: selectTextStyles(align ? {
|
|
67
|
+
...themeTokens,
|
|
68
68
|
textAlign: align
|
|
69
69
|
} : themeTokens, themeOptions),
|
|
70
70
|
dataSet,
|
|
@@ -75,15 +75,14 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
75
75
|
...getA11yPropsFromHtmlTag(tag, accessibilityRole),
|
|
76
76
|
...selectContainerProps(rest)
|
|
77
77
|
};
|
|
78
|
-
|
|
79
78
|
const resetTagStyling = child => {
|
|
80
79
|
if (typeof child === 'object' && ((child === null || child === void 0 ? void 0 : child.type) === 'sub' || (child === null || child === void 0 ? void 0 : child.type) === 'sup')) {
|
|
81
80
|
var _child$props;
|
|
82
|
-
|
|
83
81
|
const childStyles = (child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.style) || {};
|
|
84
82
|
const supFontSize = childStyles.fontSize ?? superScriptFontSize;
|
|
85
83
|
const sanitizedChild = /*#__PURE__*/React.cloneElement(child, {
|
|
86
|
-
style: {
|
|
84
|
+
style: {
|
|
85
|
+
...childStyles,
|
|
87
86
|
...(supFontSize ? {
|
|
88
87
|
fontSize: supFontSize
|
|
89
88
|
} : {}),
|
|
@@ -92,20 +91,17 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
92
91
|
});
|
|
93
92
|
return sanitizedChild;
|
|
94
93
|
}
|
|
95
|
-
|
|
96
94
|
return child;
|
|
97
95
|
};
|
|
98
|
-
|
|
99
96
|
const sanitizeChildren = () => {
|
|
100
97
|
if (Array.isArray(children)) {
|
|
101
98
|
return children.map(resetTagStyling);
|
|
102
99
|
}
|
|
103
|
-
|
|
104
100
|
return resetTagStyling(children);
|
|
105
101
|
};
|
|
106
|
-
|
|
107
102
|
const textDecorationLine = strikeThrough ? 'line-through' : 'none';
|
|
108
|
-
const textStyles = resolvedTextProps.style ? {
|
|
103
|
+
const textStyles = resolvedTextProps.style ? {
|
|
104
|
+
...resolvedTextProps.style,
|
|
109
105
|
textDecorationLine
|
|
110
106
|
} : {
|
|
111
107
|
textDecorationLine
|
|
@@ -113,7 +109,8 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
113
109
|
return block ? /*#__PURE__*/_jsx(View, {
|
|
114
110
|
ref: ref,
|
|
115
111
|
...containerProps,
|
|
116
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
112
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
113
|
+
...resolvedTextProps,
|
|
117
114
|
style: textStyles,
|
|
118
115
|
children: sanitizeChildren(children)
|
|
119
116
|
})
|
|
@@ -126,16 +123,15 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
126
123
|
});
|
|
127
124
|
});
|
|
128
125
|
Typography.displayName = 'Typography';
|
|
129
|
-
Typography.propTypes = {
|
|
126
|
+
Typography.propTypes = {
|
|
127
|
+
...selectedContainerPropTypes,
|
|
130
128
|
...selectedTextPropTypes,
|
|
131
129
|
tokens: getTokensPropType('Typography'),
|
|
132
130
|
variant: variantProp.propType,
|
|
133
|
-
|
|
134
131
|
/**
|
|
135
132
|
* Renders the text with "text-decoration: 'line-through'" applied.
|
|
136
133
|
*/
|
|
137
134
|
strikeThrough: PropTypes.bool,
|
|
138
|
-
|
|
139
135
|
/**
|
|
140
136
|
* Renders the text as a semantic heading. If a html heading tag is provided, uses that tag on Web.
|
|
141
137
|
*
|
|
@@ -146,7 +142,6 @@ Typography.propTypes = { ...selectedContainerPropTypes,
|
|
|
146
142
|
* is not defined, the accessibilityRole will default to "heading".
|
|
147
143
|
*/
|
|
148
144
|
heading: PropTypes.oneOf([...headingTags, true]),
|
|
149
|
-
|
|
150
145
|
/**
|
|
151
146
|
* Optional semantic HTML tag, to apply to the text on web. Does not change styling.
|
|
152
147
|
*
|
|
@@ -156,18 +151,15 @@ Typography.propTypes = { ...selectedContainerPropTypes,
|
|
|
156
151
|
* is not defined, the accessibilityRole will default to "heading".
|
|
157
152
|
*/
|
|
158
153
|
tag: PropTypes.oneOf(textTags),
|
|
159
|
-
|
|
160
154
|
/**
|
|
161
155
|
* If true, forces the element to behave as a View block even if nested in other text
|
|
162
156
|
*/
|
|
163
157
|
block: PropTypes.bool,
|
|
164
|
-
|
|
165
158
|
/**
|
|
166
159
|
* 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)
|
|
167
160
|
* 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)
|
|
168
161
|
*/
|
|
169
162
|
align: PropTypes.oneOf(['auto', 'left', 'right', 'center', 'justify']),
|
|
170
|
-
|
|
171
163
|
/**
|
|
172
164
|
* Same children allowed as a React Native <Text> node
|
|
173
165
|
*/
|
|
@@ -10,7 +10,6 @@ import InputSupports from '../InputSupports';
|
|
|
10
10
|
import { useThemeTokens } from '../ThemeProvider';
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([inputSupportsProps]);
|
|
13
|
-
|
|
14
13
|
const selectCodeTextInputTokens = _ref => {
|
|
15
14
|
let {
|
|
16
15
|
outerBorderColor,
|
|
@@ -22,7 +21,6 @@ const selectCodeTextInputTokens = _ref => {
|
|
|
22
21
|
icon: null
|
|
23
22
|
};
|
|
24
23
|
};
|
|
25
|
-
|
|
26
24
|
const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
27
25
|
let {
|
|
28
26
|
value = '',
|
|
@@ -44,93 +42,72 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
44
42
|
const prefix = 'code';
|
|
45
43
|
const sufixValidation = 'Validation';
|
|
46
44
|
const [isHover, setIsHover] = useState(false);
|
|
47
|
-
|
|
48
45
|
const handleMouseOver = () => {
|
|
49
46
|
setIsHover(true);
|
|
50
47
|
};
|
|
51
|
-
|
|
52
48
|
const handleMouseOut = () => {
|
|
53
49
|
setIsHover(false);
|
|
54
50
|
};
|
|
55
|
-
|
|
56
51
|
const themeTokens = useThemeTokens('TextInput', tokens, variant, {
|
|
57
52
|
hover: isHover
|
|
58
53
|
});
|
|
59
54
|
const [codeReferences, singleCodes] = useMemo(() => {
|
|
60
55
|
const codes = [];
|
|
61
56
|
const valueCodes = {};
|
|
62
|
-
|
|
63
57
|
for (let i = 0; validatorsLength && i < validatorsLength; i += 1) {
|
|
64
58
|
codes[prefix + i] = /*#__PURE__*/createRef();
|
|
65
59
|
valueCodes[prefix + i] = '';
|
|
66
60
|
valueCodes[prefix + i + sufixValidation] = '';
|
|
67
61
|
}
|
|
68
|
-
|
|
69
62
|
return [codes, valueCodes];
|
|
70
63
|
}, []);
|
|
71
|
-
|
|
72
64
|
const handleSingleCodes = (codeId, val, validation) => {
|
|
73
65
|
singleCodes[codeId] = val;
|
|
74
66
|
singleCodes[codeId + sufixValidation] = validation;
|
|
75
67
|
/* eslint-disable no-unused-expressions */
|
|
76
|
-
|
|
77
|
-
|
|
68
|
+
setIndividualCodes({
|
|
69
|
+
...individualCodes,
|
|
78
70
|
[codeId]: val
|
|
79
71
|
});
|
|
80
72
|
};
|
|
81
|
-
|
|
82
73
|
const handleChangeCode = () => {
|
|
83
74
|
let code = '';
|
|
84
|
-
|
|
85
75
|
for (let i = 0; i < validatorsLength; i += 1) code += singleCodes[prefix + i];
|
|
86
|
-
|
|
87
76
|
if (typeof onChange === 'function') onChange(code, singleCodes);
|
|
88
77
|
};
|
|
89
|
-
|
|
90
78
|
const handleChangeCodeValues = (event, codeId, nextIndex) => {
|
|
91
79
|
var _codeReferences$codeI, _event$nativeEvent, _event$target, _codeElement$value, _codeElement$value2;
|
|
92
|
-
|
|
93
80
|
const codeElement = (_codeReferences$codeI = codeReferences[codeId]) === null || _codeReferences$codeI === void 0 ? void 0 : _codeReferences$codeI.current;
|
|
94
81
|
const val = ((_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.value) || ((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value);
|
|
95
|
-
|
|
96
82
|
if (Number(val).toString() === 'NaN') {
|
|
97
83
|
codeElement.value = singleCodes[codeId] ?? '';
|
|
98
84
|
return;
|
|
99
85
|
}
|
|
100
|
-
|
|
101
86
|
if ((codeElement === null || codeElement === void 0 ? void 0 : (_codeElement$value = codeElement.value) === null || _codeElement$value === void 0 ? void 0 : _codeElement$value.length) > 1) {
|
|
102
87
|
const oldValue = singleCodes[codeId];
|
|
103
88
|
const newValue = codeElement.value.replace(oldValue, '');
|
|
104
89
|
codeElement.value = newValue;
|
|
105
90
|
handleSingleCodes(codeId, codeElement.value, 'success');
|
|
106
91
|
}
|
|
107
|
-
|
|
108
92
|
handleSingleCodes(codeId, (codeElement === null || codeElement === void 0 ? void 0 : codeElement.value) ?? singleCodes[codeId], 'success');
|
|
109
93
|
handleChangeCode();
|
|
110
|
-
|
|
111
94
|
if (nextIndex === validatorsLength) {
|
|
112
95
|
codeElement.blur();
|
|
113
96
|
return;
|
|
114
97
|
}
|
|
115
|
-
|
|
116
98
|
if ((codeElement === null || codeElement === void 0 ? void 0 : (_codeElement$value2 = codeElement.value) === null || _codeElement$value2 === void 0 ? void 0 : _codeElement$value2.length) > 0) codeReferences[prefix + nextIndex].current.focus();
|
|
117
99
|
};
|
|
118
|
-
|
|
119
100
|
const handleKeyPress = (event, currentIndex, previousIndex) => {
|
|
120
101
|
if (!(event.keyCode === 8 || event.code === 'Backspace')) return;
|
|
121
|
-
|
|
122
102
|
if (currentIndex > 0) {
|
|
123
103
|
codeReferences[prefix + currentIndex].current.value = '';
|
|
124
104
|
codeReferences[prefix + previousIndex].current.focus();
|
|
125
105
|
}
|
|
126
|
-
|
|
127
106
|
handleSingleCodes(prefix + currentIndex, '', '');
|
|
128
107
|
handleChangeCode();
|
|
129
108
|
};
|
|
130
|
-
|
|
131
109
|
const getCodeComponents = () => {
|
|
132
110
|
const components = [];
|
|
133
|
-
|
|
134
111
|
for (let i = 0; validatorsLength && i < validatorsLength; i += 1) {
|
|
135
112
|
const codeId = prefix + i;
|
|
136
113
|
const codeInputProps = {
|
|
@@ -141,7 +118,6 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
141
118
|
tokens: selectCodeTextInputTokens(themeTokens),
|
|
142
119
|
onFocus: () => {
|
|
143
120
|
var _codeReferences$codeI2, _codeReferences$codeI3;
|
|
144
|
-
|
|
145
121
|
return ((_codeReferences$codeI2 = codeReferences[codeId]) === null || _codeReferences$codeI2 === void 0 ? void 0 : (_codeReferences$codeI3 = _codeReferences$codeI2.current) === null || _codeReferences$codeI3 === void 0 ? void 0 : _codeReferences$codeI3.select()) ?? null;
|
|
146
122
|
},
|
|
147
123
|
onKeyPress: event => handleKeyPress(event, i, i - 1),
|
|
@@ -152,44 +128,39 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
152
128
|
codeInputProps.validation || delete codeInputProps.validation;
|
|
153
129
|
components.push( /*#__PURE__*/_jsx(View, {
|
|
154
130
|
style: staticStyles.codeInputWidth,
|
|
155
|
-
children: /*#__PURE__*/_jsx(TextInput, {
|
|
131
|
+
children: /*#__PURE__*/_jsx(TextInput, {
|
|
132
|
+
...codeInputProps
|
|
156
133
|
})
|
|
157
134
|
}, codeId));
|
|
158
135
|
}
|
|
159
|
-
|
|
160
136
|
return components;
|
|
161
137
|
};
|
|
162
|
-
|
|
163
138
|
useEffect(() => {
|
|
164
139
|
/* eslint-disable no-unused-expressions */
|
|
165
140
|
if (Number(value).toString() !== 'NaN') setText(value);
|
|
166
141
|
}, [value]);
|
|
167
|
-
/* eslint-disable react-hooks/exhaustive-deps */
|
|
168
142
|
|
|
143
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
169
144
|
useEffect(() => {
|
|
170
145
|
for (let i = 0; i < validatorsLength; i += 1) {
|
|
171
146
|
codeReferences[prefix + i].current.value = text[i] ?? '';
|
|
172
147
|
handleSingleCodes(prefix + i, text[i] ?? '', text[i] ? 'success' : '');
|
|
173
148
|
}
|
|
174
149
|
}, [text]);
|
|
175
|
-
/* eslint-disable react-hooks/exhaustive-deps */
|
|
176
150
|
|
|
151
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
177
152
|
useEffect(() => {
|
|
178
153
|
const handlePasteCode = event => {
|
|
179
154
|
setText('');
|
|
180
155
|
const clipBoardText = event.clipboardData.getData('text');
|
|
181
156
|
if (Number(clipBoardText).toString() !== 'NaN') setText(clipBoardText);
|
|
182
157
|
};
|
|
183
|
-
|
|
184
158
|
const handleCopy = event => {
|
|
185
159
|
let clipBoardText = '';
|
|
186
|
-
|
|
187
160
|
for (let i = 0; i < validatorsLength; i += 1) singleCodes[prefix + i] && (clipBoardText += singleCodes[prefix + i]);
|
|
188
|
-
|
|
189
161
|
event.clipboardData.setData('text/plain', clipBoardText);
|
|
190
162
|
event.preventDefault();
|
|
191
163
|
};
|
|
192
|
-
|
|
193
164
|
if (Platform.OS === 'web') {
|
|
194
165
|
for (let i = 0; i < validatorsLength; i += 1) {
|
|
195
166
|
codeReferences[prefix + i].current.addEventListener('paste', handlePasteCode);
|
|
@@ -197,12 +168,10 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
197
168
|
codeReferences[prefix + i].current.addEventListener('input', event => handleChangeCodeValues(event, prefix + i, i + 1));
|
|
198
169
|
}
|
|
199
170
|
}
|
|
200
|
-
|
|
201
171
|
return () => {
|
|
202
172
|
if (Platform.oldValue === 'web') {
|
|
203
173
|
for (let i = 0; i < validatorsLength; i += 1) {
|
|
204
174
|
var _codeReferences, _codeReferences$curre, _codeReferences2, _codeReferences2$curr, _codeReferences3, _codeReferences3$curr;
|
|
205
|
-
|
|
206
175
|
(_codeReferences = codeReferences[prefix + i]) === null || _codeReferences === void 0 ? void 0 : (_codeReferences$curre = _codeReferences.current) === null || _codeReferences$curre === void 0 ? void 0 : _codeReferences$curre.removeEventListener('paste', handlePasteCode);
|
|
207
176
|
(_codeReferences2 = codeReferences[prefix + i]) === null || _codeReferences2 === void 0 ? void 0 : (_codeReferences2$curr = _codeReferences2.current) === null || _codeReferences2$curr === void 0 ? void 0 : _codeReferences2$curr.removeEventListener('copy', handleCopy);
|
|
208
177
|
(_codeReferences3 = codeReferences[prefix + i]) === null || _codeReferences3 === void 0 ? void 0 : (_codeReferences3$curr = _codeReferences3.current) === null || _codeReferences3$curr === void 0 ? void 0 : _codeReferences3$curr.removeEventListener('input', event => handleChangeCodeValues(event, prefix + i, i + 1));
|
|
@@ -210,7 +179,8 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
210
179
|
}
|
|
211
180
|
};
|
|
212
181
|
}, []);
|
|
213
|
-
return /*#__PURE__*/_jsx(InputSupports, {
|
|
182
|
+
return /*#__PURE__*/_jsx(InputSupports, {
|
|
183
|
+
...supportsProps,
|
|
214
184
|
children: /*#__PURE__*/_jsx(StackView, {
|
|
215
185
|
space: 2,
|
|
216
186
|
direction: "row",
|
|
@@ -220,18 +190,16 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
220
190
|
});
|
|
221
191
|
});
|
|
222
192
|
Validator.displayName = 'Validator';
|
|
223
|
-
Validator.propTypes = {
|
|
224
|
-
|
|
193
|
+
Validator.propTypes = {
|
|
194
|
+
...selectedSystemPropTypes,
|
|
225
195
|
/**
|
|
226
196
|
* The value is a 6-digit code, may be only numeric characters, non numeric character aren't renderize
|
|
227
197
|
*/
|
|
228
198
|
value: PropTypes.string,
|
|
229
|
-
|
|
230
199
|
/**
|
|
231
200
|
* If true, the component is inactive and non editable.
|
|
232
201
|
*/
|
|
233
202
|
inactive: PropTypes.bool,
|
|
234
|
-
|
|
235
203
|
/**
|
|
236
204
|
* Use to react upon input's value changes. Required when the `value` prop is set. Will receive the input's value as an argument.
|
|
237
205
|
*/
|
|
@@ -3,12 +3,11 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import { viewports } from '@telus-uds/system-constants';
|
|
4
4
|
import { ViewportContext } from './useViewport';
|
|
5
5
|
import useViewportListener from './useViewportListener';
|
|
6
|
+
|
|
6
7
|
/**
|
|
7
8
|
* Provides an up-to-date viewport value from system-constants, available via the `useViewport` hook
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
|
|
12
11
|
const ViewportProvider = _ref => {
|
|
13
12
|
let {
|
|
14
13
|
children
|
|
@@ -22,7 +21,6 @@ const ViewportProvider = _ref => {
|
|
|
22
21
|
children: children
|
|
23
22
|
});
|
|
24
23
|
};
|
|
25
|
-
|
|
26
24
|
ViewportProvider.propTypes = {
|
|
27
25
|
children: PropTypes.node.isRequired
|
|
28
26
|
};
|
|
@@ -1,39 +1,37 @@
|
|
|
1
1
|
import Dimensions from "react-native-web/dist/exports/Dimensions";
|
|
2
2
|
import { viewports } from '@telus-uds/system-constants';
|
|
3
|
-
import useSafeLayoutEffect from '../utils/useSafeLayoutEffect';
|
|
3
|
+
import useSafeLayoutEffect from '../utils/useSafeLayoutEffect';
|
|
4
|
+
|
|
5
|
+
// Use Dimensions instead of useWindowDimensions because useWindowDimensions forces context
|
|
4
6
|
// to update on every pixel change during window resize; but we only want rerenders to occur
|
|
5
7
|
// when a viewport threshold has been crossed.
|
|
6
|
-
|
|
7
8
|
const lookupViewport = () => viewports.select(Dimensions.get('window').width);
|
|
9
|
+
|
|
8
10
|
/**
|
|
9
11
|
* When client-side rendering, immediately set the viewport to the correct value as a layout effect so
|
|
10
12
|
* if the viewport isn't the smallest, any SSR-rendered components rerender correctly before anything
|
|
11
13
|
* is shown to the user. Then bind events to update the viewport if it changes.
|
|
12
14
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
15
|
const useViewportListener = setViewport => {
|
|
16
16
|
useSafeLayoutEffect(() => {
|
|
17
17
|
setViewport(lookupViewport());
|
|
18
|
-
|
|
19
18
|
const onChange = _ref => {
|
|
20
19
|
let {
|
|
21
20
|
window
|
|
22
21
|
} = _ref;
|
|
23
22
|
return setViewport(viewports.select(window.width));
|
|
24
23
|
};
|
|
25
|
-
|
|
26
24
|
const listener = Dimensions.addEventListener('change', onChange);
|
|
27
25
|
return () => {
|
|
28
26
|
if (typeof (listener === null || listener === void 0 ? void 0 : listener.remove) === 'function') {
|
|
29
27
|
// Can't just return listener.remove because listener.emitter disappears, causing an internal error.
|
|
30
28
|
// See https://github.com/facebook/react-native/issues/34508
|
|
31
|
-
listener.remove();
|
|
29
|
+
listener.remove();
|
|
30
|
+
// From RN 0.65.0, Dimensions.removeEventListener is deprecated for `remove` on addEventListener return value
|
|
32
31
|
} else if (typeof Dimensions.removeEventListener === 'function') {
|
|
33
32
|
Dimensions.removeEventListener('change', onChange);
|
|
34
33
|
}
|
|
35
34
|
};
|
|
36
35
|
}, [setViewport]);
|
|
37
36
|
};
|
|
38
|
-
|
|
39
37
|
export default useViewportListener;
|
package/lib-module/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export { default as Listbox } from './Listbox';
|
|
|
9
9
|
export { default as Checkbox } from './Checkbox';
|
|
10
10
|
export * from './Checkbox';
|
|
11
11
|
export { default as CheckboxCard } from './CheckboxCard';
|
|
12
|
+
export { default as CheckboxCardGroup } from './CheckboxCardGroup';
|
|
12
13
|
export { default as Divider } from './Divider';
|
|
13
14
|
export { default as ExpandCollapse, Accordion } from './ExpandCollapse';
|
|
14
15
|
export { default as Feedback } from './Feedback';
|
|
@@ -3,11 +3,11 @@ import NativeView from "react-native-web/dist/exports/View";
|
|
|
3
3
|
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import { useTheme } from '../../ThemeProvider';
|
|
6
|
+
|
|
6
7
|
/**
|
|
7
8
|
* Identical to React Native's View and supporting all the same props, but with:
|
|
8
9
|
* - a zIndex: 'auto' style added to prevent unexpectedly causing children to overlap other elements from other stacking contexts
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
const BaseView = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
13
13
|
let {
|
|
@@ -19,12 +19,11 @@ const BaseView = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
19
19
|
themeOptions
|
|
20
20
|
} = useTheme();
|
|
21
21
|
const styleProp = Array.isArray(style) ? [...style] : [style];
|
|
22
|
-
|
|
23
22
|
if (!themeOptions.forceZIndex) {
|
|
24
23
|
styleProp.unshift(styles.resetZIndex);
|
|
25
24
|
}
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
return /*#__PURE__*/_jsx(NativeView, {
|
|
26
|
+
...rest,
|
|
28
27
|
style: styleProp,
|
|
29
28
|
ref: ref,
|
|
30
29
|
children: children
|
|
@@ -2,7 +2,6 @@ import Platform from "react-native-web/dist/exports/Platform";
|
|
|
2
2
|
/**
|
|
3
3
|
* @typedef {import('react-native').AccessibilityRole} AccessibilityRole
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* This is based on the role-to-tag mapping that React Native Web uses to set HTML tags.
|
|
8
7
|
* It's not exported in any way from RNW, so we need to keep this up-to-date manually.
|
|
@@ -23,10 +22,7 @@ import Platform from "react-native-web/dist/exports/Platform";
|
|
|
23
22
|
*/
|
|
24
23
|
// Adding `/** @type {const} */ ({...})` denotes object content as `readonly` in many IDEs
|
|
25
24
|
// eslint-disable-next-line prettier/prettier
|
|
26
|
-
|
|
27
|
-
const rolesToTags =
|
|
28
|
-
/** @type {const} */
|
|
29
|
-
{
|
|
25
|
+
const rolesToTags = /** @type {const} */{
|
|
30
26
|
article: 'article',
|
|
31
27
|
banner: 'header',
|
|
32
28
|
blockquote: 'blockquote',
|
|
@@ -45,23 +41,22 @@ const rolesToTags =
|
|
|
45
41
|
region: 'section',
|
|
46
42
|
strong: 'strong',
|
|
47
43
|
// Add special cases that are in RNW's function logic but not in its mapping object
|
|
48
|
-
label: 'label'
|
|
49
|
-
|
|
50
|
-
};
|
|
44
|
+
label: 'label'
|
|
45
|
+
// eslint-disable-next-line prettier/prettier
|
|
46
|
+
};
|
|
51
47
|
|
|
48
|
+
// Invert React Native Web's mapping, so a tag gets the role that gets that tag
|
|
52
49
|
export const tagsToRoles = Object.fromEntries(Object.entries(rolesToTags).map(_ref => {
|
|
53
50
|
let [key, value] = _ref;
|
|
54
51
|
return [value, key];
|
|
55
52
|
}));
|
|
53
|
+
|
|
56
54
|
/**
|
|
57
55
|
* Heading HTML tags map to the "heading" accessibilityRole in native apps, which is similar
|
|
58
56
|
* to headings on web but without the expectation of a hierarchy of headings within one screen.
|
|
59
57
|
*/
|
|
60
58
|
// eslint-disable-next-line prettier/prettier
|
|
61
|
-
|
|
62
|
-
export const headingTags =
|
|
63
|
-
/** @type {const} */
|
|
64
|
-
['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
|
|
59
|
+
export const headingTags = /** @type {const} */['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
|
|
65
60
|
/**
|
|
66
61
|
* @typedef {typeof headingTags[number]} HeadingTag
|
|
67
62
|
*/
|
|
@@ -72,7 +67,6 @@ export const headingTags =
|
|
|
72
67
|
*
|
|
73
68
|
* Of these, only headers (h1, h2, ...h5, h6) set a corresponding accessibilityRole in native apps ("heading").
|
|
74
69
|
*/
|
|
75
|
-
|
|
76
70
|
export const supportedTags = [...Object.keys(tagsToRoles), ...headingTags];
|
|
77
71
|
/**
|
|
78
72
|
* Uses readonly mapping keys/values to generate static types for IDEs that support TS in JSDoc.
|
|
@@ -86,10 +80,8 @@ export const supportedTags = [...Object.keys(tagsToRoles), ...headingTags];
|
|
|
86
80
|
* Of these, only headers (h1, h2, ...h5, h6) set a corresponding accessibilityRole in native apps ("heading").
|
|
87
81
|
*/
|
|
88
82
|
// eslint-disable-next-line prettier/prettier
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
/** @type {const} */
|
|
92
|
-
[...headingTags, 'article', 'aside', 'blockquote', 'footer', 'figure', 'form', 'header', 'ul', 'li', 'main', 'nav', 'section', 'label' // eslint-disable-next-line prettier/prettier
|
|
83
|
+
export const layoutTags = /** @type {const} */[...headingTags, 'article', 'aside', 'blockquote', 'footer', 'figure', 'form', 'header', 'ul', 'li', 'main', 'nav', 'section', 'label'
|
|
84
|
+
// eslint-disable-next-line prettier/prettier
|
|
93
85
|
];
|
|
94
86
|
/**
|
|
95
87
|
* @typedef {typeof layoutTags[number]} LayoutTag
|
|
@@ -101,10 +93,8 @@ export const layoutTags =
|
|
|
101
93
|
* Of these, only headers (h1, h2, ...h5, h6) set a corresponding accessibilityRole in native apps ("heading").
|
|
102
94
|
*/
|
|
103
95
|
// eslint-disable-next-line prettier/prettier
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
/** @type {const} */
|
|
107
|
-
[...headingTags, 'blockquote', 'code', 'del', 'em', 'ins', 'li', 'strong', 'label' // eslint-disable-next-line prettier/prettier
|
|
96
|
+
export const textTags = /** @type {const} */[...headingTags, 'blockquote', 'code', 'del', 'em', 'ins', 'li', 'strong', 'label'
|
|
97
|
+
// eslint-disable-next-line prettier/prettier
|
|
108
98
|
];
|
|
109
99
|
/**
|
|
110
100
|
* @typedef {typeof layoutTags[number]} TextTag
|
|
@@ -117,8 +107,8 @@ export const textTags =
|
|
|
117
107
|
* @param {string} [tag] - HTML tag string; returns undefined if not a {@link HeadingTag}
|
|
118
108
|
* @returns {'1' | '2' | '3' | '4' | '5' | '6' | undefined}
|
|
119
109
|
*/
|
|
120
|
-
|
|
121
110
|
export const getHeadingLevel = tag => headingTags.includes(tag) ? Number(tag[1]) : undefined;
|
|
111
|
+
|
|
122
112
|
/**
|
|
123
113
|
* Takes a supported HTML tag, and returns the accessibility props that, on web, make React Native Web
|
|
124
114
|
* render that tag.
|
|
@@ -131,13 +121,11 @@ export const getHeadingLevel = tag => headingTags.includes(tag) ? Number(tag[1])
|
|
|
131
121
|
* @param {AccessibilityRole | null} [nativeRole] - optional accessibilityRole for native apps
|
|
132
122
|
* @returns {{ accessibilityRole: string, accessibilityLevel?: string } | undefined}
|
|
133
123
|
*/
|
|
134
|
-
|
|
135
124
|
export const getA11yPropsFromHtmlTag = (tag, nativeRole) => {
|
|
136
125
|
// Allow cross-platform apps to set accessibilityRoles alongside a web tag without conflict
|
|
137
126
|
if (nativeRole !== undefined && Platform.OS !== 'web') return {
|
|
138
127
|
accessibilityRole: nativeRole
|
|
139
128
|
};
|
|
140
|
-
|
|
141
129
|
if (tag) {
|
|
142
130
|
// aria roles don't have native counterparts and RN may throw an error if an unrecognised role is passed
|
|
143
131
|
const ariaRole = Platform.OS === 'web' && tagsToRoles[tag];
|
|
@@ -149,9 +137,8 @@ export const getA11yPropsFromHtmlTag = (tag, nativeRole) => {
|
|
|
149
137
|
accessibilityRole: 'header',
|
|
150
138
|
accessibilityLevel
|
|
151
139
|
};
|
|
152
|
-
}
|
|
140
|
+
}
|
|
141
|
+
// If nothing matches or no tag supplied, return undefined and let component decide how to fall back.
|
|
153
142
|
// Note that return value may always be spread in objects (it is safe to spread undefined like { ...undefined })
|
|
154
|
-
|
|
155
|
-
|
|
156
143
|
return undefined;
|
|
157
144
|
};
|
|
@@ -7,13 +7,13 @@ import Platform from "react-native-web/dist/exports/Platform";
|
|
|
7
7
|
* @param {number} [value] - the value to multiply; defaults to system default font size
|
|
8
8
|
* @param {number} [maxScale] - the maximum multiplier to apply; defaults to no maximum
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
10
|
export const scaleWithText = function (value) {
|
|
12
11
|
let maxScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
|
|
13
12
|
if (!value) return value;
|
|
14
13
|
const scale = Math.min(PixelRatio.getFontScale(), maxScale) || 1;
|
|
15
14
|
return value * scale;
|
|
16
15
|
};
|
|
16
|
+
|
|
17
17
|
/**
|
|
18
18
|
* Native only, returns `undefined` on Web.
|
|
19
19
|
*
|
|
@@ -24,7 +24,6 @@ export const scaleWithText = function (value) {
|
|
|
24
24
|
* The return value of this function can be used as a React Native `Text` element's
|
|
25
25
|
* `maxFontSizeMultiplier` prop value.
|
|
26
26
|
*/
|
|
27
|
-
|
|
28
27
|
export const getMaxFontMultiplier = _ref => {
|
|
29
28
|
let {
|
|
30
29
|
fontSize,
|