@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
|
@@ -4,30 +4,19 @@ 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 _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
11
|
-
|
|
12
9
|
var _utils = require("../utils");
|
|
13
|
-
|
|
14
10
|
var _InputSupports = _interopRequireDefault(require("../InputSupports"));
|
|
15
|
-
|
|
16
11
|
var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
|
|
17
|
-
|
|
18
12
|
var _ThemeProvider = require("../ThemeProvider");
|
|
19
|
-
|
|
20
13
|
var _propTypes = _interopRequireDefault(require("./propTypes"));
|
|
21
|
-
|
|
22
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
|
|
24
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
16
|
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); }
|
|
27
|
-
|
|
28
17
|
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; }
|
|
29
|
-
|
|
30
18
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.inputSupportsProps, _utils.textInputHandlerProps, _utils.textInputProps, _utils.viewProps]);
|
|
19
|
+
|
|
31
20
|
/**
|
|
32
21
|
* Use to collect long-form information such as product feedback or support queries.
|
|
33
22
|
* Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
|
|
@@ -52,7 +41,6 @@ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_u
|
|
|
52
41
|
* or an indicator that the field is optional.
|
|
53
42
|
* It is a more usable and accessible option than the HTML `placeholder` attribute.
|
|
54
43
|
*/
|
|
55
|
-
|
|
56
44
|
const TextArea = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
57
45
|
let {
|
|
58
46
|
tokens,
|
|
@@ -60,8 +48,9 @@ const TextArea = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
60
48
|
...rest
|
|
61
49
|
} = _ref;
|
|
62
50
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('TextArea', tokens, variant);
|
|
63
|
-
const [inputHeight, setInputHeight] = (0, _react.useState)();
|
|
51
|
+
const [inputHeight, setInputHeight] = (0, _react.useState)();
|
|
64
52
|
|
|
53
|
+
// adjust the text area's height as new lines are added to the content
|
|
65
54
|
const onHeightChange = _ref2 => {
|
|
66
55
|
let {
|
|
67
56
|
nativeEvent: {
|
|
@@ -70,19 +59,19 @@ const TextArea = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
70
59
|
}
|
|
71
60
|
}
|
|
72
61
|
} = _ref2;
|
|
73
|
-
|
|
74
62
|
// on native this is happens out of the box
|
|
75
63
|
if (_Platform.default.OS === 'web') {
|
|
76
64
|
setInputHeight(height);
|
|
77
65
|
}
|
|
78
66
|
};
|
|
79
|
-
|
|
80
67
|
const {
|
|
81
68
|
supportsProps,
|
|
82
69
|
...selectedProps
|
|
83
70
|
} = selectProps(rest);
|
|
84
|
-
const inputProps = {
|
|
85
|
-
|
|
71
|
+
const inputProps = {
|
|
72
|
+
...selectedProps,
|
|
73
|
+
variant: {
|
|
74
|
+
...variant,
|
|
86
75
|
validation: supportsProps.validation
|
|
87
76
|
},
|
|
88
77
|
multiline: true,
|
|
@@ -90,7 +79,8 @@ const TextArea = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
90
79
|
height: inputHeight,
|
|
91
80
|
tokens: themeTokens
|
|
92
81
|
};
|
|
93
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, {
|
|
82
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, {
|
|
83
|
+
...supportsProps,
|
|
94
84
|
children: _ref3 => {
|
|
95
85
|
let {
|
|
96
86
|
inputId,
|
|
@@ -106,7 +96,8 @@ const TextArea = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
106
96
|
});
|
|
107
97
|
});
|
|
108
98
|
TextArea.displayName = 'TextArea';
|
|
109
|
-
TextArea.propTypes = {
|
|
99
|
+
TextArea.propTypes = {
|
|
100
|
+
...selectedSystemPropTypes,
|
|
110
101
|
..._propTypes.default,
|
|
111
102
|
tokens: (0, _utils.getTokensPropType)('TextArea', 'TextInput'),
|
|
112
103
|
// TODO: support both TextArea and TextInput tokens
|
|
@@ -4,28 +4,18 @@ 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 _utils = require("../utils");
|
|
13
|
-
|
|
14
10
|
var _InputSupports = _interopRequireDefault(require("../InputSupports"));
|
|
15
|
-
|
|
16
11
|
var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
|
|
17
|
-
|
|
18
12
|
var _propTypes2 = _interopRequireDefault(require("./propTypes"));
|
|
19
|
-
|
|
20
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
-
|
|
22
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
-
|
|
24
15
|
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); }
|
|
25
|
-
|
|
26
16
|
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; }
|
|
27
|
-
|
|
28
17
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.inputSupportsProps, _utils.textInputHandlerProps, _utils.textInputProps, _utils.viewProps]);
|
|
18
|
+
|
|
29
19
|
/**
|
|
30
20
|
* A basic text input component. Use in forms or individually to receive user's input.
|
|
31
21
|
* Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
|
|
@@ -44,7 +34,6 @@ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_u
|
|
|
44
34
|
* supported props and <a href="https://reactnative.dev/docs/textinput" target="_blank">React Native Web documentation</a> for
|
|
45
35
|
* their implementation on the web.
|
|
46
36
|
*/
|
|
47
|
-
|
|
48
37
|
const TextInput = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
49
38
|
let {
|
|
50
39
|
tokens,
|
|
@@ -56,9 +45,11 @@ const TextInput = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
56
45
|
supportsProps,
|
|
57
46
|
...selectedProps
|
|
58
47
|
} = selectProps(rest);
|
|
59
|
-
const inputProps = {
|
|
48
|
+
const inputProps = {
|
|
49
|
+
...selectedProps,
|
|
60
50
|
tokens,
|
|
61
|
-
variant: {
|
|
51
|
+
variant: {
|
|
52
|
+
...variant,
|
|
62
53
|
validation: supportsProps.validation
|
|
63
54
|
}
|
|
64
55
|
};
|
|
@@ -82,9 +73,9 @@ const TextInput = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
82
73
|
});
|
|
83
74
|
});
|
|
84
75
|
TextInput.displayName = 'TextInput';
|
|
85
|
-
TextInput.propTypes = {
|
|
76
|
+
TextInput.propTypes = {
|
|
77
|
+
...selectedSystemPropTypes,
|
|
86
78
|
..._propTypes2.default,
|
|
87
|
-
|
|
88
79
|
/**
|
|
89
80
|
* A callback which if provided will get a clear button rendered and will be called whenever that button gets pressed.
|
|
90
81
|
*/
|
|
@@ -4,40 +4,24 @@ 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 _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
13
|
-
|
|
14
10
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
15
|
-
|
|
16
11
|
var _TextInput = _interopRequireDefault(require("react-native-web/dist/cjs/exports/TextInput"));
|
|
17
|
-
|
|
18
12
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
19
|
-
|
|
20
13
|
var _ThemeProvider = require("../ThemeProvider");
|
|
21
|
-
|
|
22
14
|
var _StackView = _interopRequireDefault(require("../StackView"));
|
|
23
|
-
|
|
24
15
|
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
|
25
|
-
|
|
16
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
26
17
|
var _utils = require("../utils");
|
|
27
|
-
|
|
28
18
|
var _dictionary = _interopRequireDefault(require("./dictionary"));
|
|
29
|
-
|
|
30
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
|
-
|
|
32
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
21
|
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); }
|
|
35
|
-
|
|
36
22
|
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; }
|
|
37
|
-
|
|
38
23
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.textInputHandlerProps, _utils.textInputProps, _utils.viewProps]);
|
|
39
|
-
|
|
40
|
-
const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
24
|
+
const selectInputStyles = (_ref, themeOptions, inactive, type) => {
|
|
41
25
|
let {
|
|
42
26
|
backgroundColor,
|
|
43
27
|
color,
|
|
@@ -59,11 +43,9 @@ const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
|
59
43
|
width,
|
|
60
44
|
height
|
|
61
45
|
} = _ref;
|
|
62
|
-
|
|
63
46
|
// Subtract border width from padding so overall input width/height doesn't
|
|
64
47
|
// jump around if the border width changes (avoiding NaN and negative padding)
|
|
65
48
|
const offsetBorder = value => typeof value === 'number' ? Math.max(0, value - borderWidth) : value;
|
|
66
|
-
|
|
67
49
|
const textStyles = (0, _ThemeProvider.applyTextStyles)({
|
|
68
50
|
fontName,
|
|
69
51
|
fontSize,
|
|
@@ -71,23 +53,19 @@ const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
|
71
53
|
fontWeight,
|
|
72
54
|
themeOptions
|
|
73
55
|
});
|
|
74
|
-
|
|
75
56
|
function linesToHeight(lines) {
|
|
76
57
|
const {
|
|
77
58
|
lineHeight: absoluteLineHeight
|
|
78
59
|
} = textStyles;
|
|
79
60
|
return lines !== undefined ? lines * absoluteLineHeight + paddingTop + paddingBottom : undefined;
|
|
80
61
|
}
|
|
81
|
-
|
|
82
62
|
const minHeight = linesToHeight(minLines);
|
|
83
63
|
const maxHeight = linesToHeight(maxLines);
|
|
84
|
-
|
|
85
64
|
const webStyles = _Platform.default.select({
|
|
86
65
|
web: {
|
|
87
66
|
outline: 'none',
|
|
88
67
|
cursor: inactive ? 'not-allowed' : undefined,
|
|
89
68
|
resize: minHeight !== maxHeight ? 'vertical' : 'none' // does nothing for an input, only needed for textarea
|
|
90
|
-
|
|
91
69
|
}
|
|
92
70
|
});
|
|
93
71
|
|
|
@@ -98,7 +76,7 @@ const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
|
98
76
|
borderWidth,
|
|
99
77
|
borderColor,
|
|
100
78
|
borderRadius,
|
|
101
|
-
paddingLeft: offsetBorder(paddingLeft),
|
|
79
|
+
paddingLeft: type === 'card' ? offsetBorder(paddingLeft + 34) : offsetBorder(paddingLeft),
|
|
102
80
|
paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(paddingRight),
|
|
103
81
|
paddingTop: offsetBorder(paddingTop),
|
|
104
82
|
paddingBottom: offsetBorder(paddingBottom),
|
|
@@ -110,7 +88,6 @@ const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
|
110
88
|
...webStyles
|
|
111
89
|
};
|
|
112
90
|
};
|
|
113
|
-
|
|
114
91
|
const selectOuterBorderStyles = _ref2 => {
|
|
115
92
|
let {
|
|
116
93
|
outerBackgroundColor,
|
|
@@ -127,7 +104,6 @@ const selectOuterBorderStyles = _ref2 => {
|
|
|
127
104
|
})
|
|
128
105
|
};
|
|
129
106
|
};
|
|
130
|
-
|
|
131
107
|
const selectIconTokens = _ref3 => {
|
|
132
108
|
let {
|
|
133
109
|
iconSize,
|
|
@@ -138,7 +114,6 @@ const selectIconTokens = _ref3 => {
|
|
|
138
114
|
color: iconColor
|
|
139
115
|
};
|
|
140
116
|
};
|
|
141
|
-
|
|
142
117
|
const selectIconContainerStyles = (_ref4, buttonCount) => {
|
|
143
118
|
let {
|
|
144
119
|
buttonSize,
|
|
@@ -151,17 +126,61 @@ const selectIconContainerStyles = (_ref4, buttonCount) => {
|
|
|
151
126
|
paddingBottom
|
|
152
127
|
};
|
|
153
128
|
};
|
|
154
|
-
|
|
155
|
-
const selectButtonsContainerStyle = _ref5 => {
|
|
129
|
+
const selectLeftIconContainerStyles = _ref5 => {
|
|
156
130
|
let {
|
|
157
|
-
|
|
131
|
+
leftIconPaddingBottom
|
|
158
132
|
} = _ref5;
|
|
133
|
+
return {
|
|
134
|
+
// not tokenizing paddingLeft as it remains same across brands for now
|
|
135
|
+
paddingLeft: 10,
|
|
136
|
+
paddingBottom: leftIconPaddingBottom
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
const selectButtonsContainerStyle = _ref6 => {
|
|
140
|
+
let {
|
|
141
|
+
buttonsPaddingRight
|
|
142
|
+
} = _ref6;
|
|
159
143
|
return {
|
|
160
144
|
paddingRight: buttonsPaddingRight
|
|
161
145
|
};
|
|
162
146
|
};
|
|
163
|
-
|
|
164
|
-
|
|
147
|
+
const getIcon = function () {
|
|
148
|
+
let cardNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
149
|
+
let {
|
|
150
|
+
defaultCreditIcon,
|
|
151
|
+
amexIcon,
|
|
152
|
+
visaIcon,
|
|
153
|
+
masterCardIcon
|
|
154
|
+
} = arguments.length > 1 ? arguments[1] : undefined;
|
|
155
|
+
const cardType = {
|
|
156
|
+
1: {
|
|
157
|
+
icon: visaIcon,
|
|
158
|
+
testID: 'visa'
|
|
159
|
+
},
|
|
160
|
+
2: {
|
|
161
|
+
icon: amexIcon,
|
|
162
|
+
testID: 'amex'
|
|
163
|
+
},
|
|
164
|
+
4: {
|
|
165
|
+
icon: masterCardIcon,
|
|
166
|
+
testID: 'mastercard'
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
const firstDigit = cardNumber ? cardNumber[0] : '';
|
|
170
|
+
const defaultIcon = {
|
|
171
|
+
icon: defaultCreditIcon,
|
|
172
|
+
testID: 'default'
|
|
173
|
+
};
|
|
174
|
+
const selectedIcon = cardNumber.length > 4 ? cardType[firstDigit] || defaultIcon : defaultIcon;
|
|
175
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
176
|
+
icon: selectedIcon.icon,
|
|
177
|
+
variant: {
|
|
178
|
+
size: 'large'
|
|
179
|
+
},
|
|
180
|
+
testID: selectedIcon.testID
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref7, ref) => {
|
|
165
184
|
let {
|
|
166
185
|
buttons = [],
|
|
167
186
|
copy = 'en',
|
|
@@ -180,33 +199,28 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
180
199
|
tokens,
|
|
181
200
|
value,
|
|
182
201
|
variant = {},
|
|
202
|
+
type,
|
|
183
203
|
...rest
|
|
184
|
-
} =
|
|
204
|
+
} = _ref7;
|
|
185
205
|
const [isFocused, setIsFocused] = (0, _react.useState)(false);
|
|
186
206
|
const [showPassword, setShowPassword] = (0, _react.useState)(false);
|
|
187
|
-
|
|
188
207
|
const handleFocus = event => {
|
|
189
208
|
setIsFocused(true);
|
|
190
209
|
if (typeof onFocus === 'function') onFocus(event);
|
|
191
210
|
};
|
|
192
|
-
|
|
193
211
|
const handleBlur = event => {
|
|
194
212
|
setIsFocused(false);
|
|
195
213
|
if (typeof onBlur === 'function') onBlur(event);
|
|
196
214
|
};
|
|
197
|
-
|
|
198
215
|
const [isHovered, setIsHovered] = (0, _react.useState)(false);
|
|
199
|
-
|
|
200
216
|
const handleMouseOver = event => {
|
|
201
217
|
setIsHovered(true);
|
|
202
218
|
if (typeof onMouseOver === 'function') onMouseOver(event);
|
|
203
219
|
};
|
|
204
|
-
|
|
205
220
|
const handleMouseOut = event => {
|
|
206
221
|
setIsHovered(false);
|
|
207
222
|
if (typeof onMouseOut === 'function') onMouseOut(event);
|
|
208
223
|
};
|
|
209
|
-
|
|
210
224
|
const defaultRef = (0, _react.useRef)();
|
|
211
225
|
const inputRef = ref ?? defaultRef;
|
|
212
226
|
const {
|
|
@@ -222,6 +236,12 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
222
236
|
onChange,
|
|
223
237
|
readOnly
|
|
224
238
|
});
|
|
239
|
+
const {
|
|
240
|
+
password,
|
|
241
|
+
numeric
|
|
242
|
+
} = variant;
|
|
243
|
+
const isNumeric = numeric || type === 'card' || type === 'number';
|
|
244
|
+
const isPassword = password || type === 'password';
|
|
225
245
|
const element = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current;
|
|
226
246
|
(0, _react.useEffect)(() => {
|
|
227
247
|
if (_Platform.default.OS === 'web' && pattern && element) {
|
|
@@ -230,44 +250,44 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
230
250
|
element.pattern = pattern;
|
|
231
251
|
}
|
|
232
252
|
}, [element, pattern]);
|
|
233
|
-
|
|
234
253
|
const handleChangeText = event => {
|
|
235
254
|
var _event$nativeEvent, _event$target;
|
|
236
|
-
|
|
237
|
-
const {
|
|
238
|
-
numeric
|
|
239
|
-
} = variant;
|
|
240
255
|
const text = ((_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.text) || ((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value);
|
|
241
|
-
|
|
256
|
+
let filteredText = isNumeric ? text === null || text === void 0 ? void 0 : text.replace(/[^\d]/g, '') : text;
|
|
257
|
+
if (type === 'card' && filteredText) {
|
|
258
|
+
const formattedValue = filteredText.replace(/[^a-zA-Z0-9]/g, '');
|
|
259
|
+
const regex = new RegExp(`([a-zA-Z0-9]{4})(?=[a-zA-Z0-9])`, 'g');
|
|
260
|
+
// Add a space every 4 digits starting from the 5th position
|
|
261
|
+
filteredText = formattedValue.replace(regex, '$1 ').trim();
|
|
262
|
+
}
|
|
242
263
|
setValue(filteredText, event);
|
|
243
264
|
if (typeof onChangeText === 'function') onChangeText(filteredText, event);
|
|
244
265
|
};
|
|
245
|
-
|
|
246
266
|
const states = {
|
|
247
267
|
focus: isFocused,
|
|
248
268
|
hover: isHovered,
|
|
249
269
|
inactive
|
|
250
270
|
};
|
|
251
271
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('TextInput', tokens, variant, states);
|
|
252
|
-
|
|
253
272
|
const handleClear = event => {
|
|
254
273
|
var _inputRef$current;
|
|
255
|
-
|
|
256
274
|
onClear === null || onClear === void 0 ? void 0 : onClear(event);
|
|
257
275
|
resetValue(event);
|
|
258
276
|
inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
259
277
|
};
|
|
260
|
-
|
|
261
278
|
const handleShowOrHide = () => {
|
|
262
279
|
if (!variant.inactive) setShowPassword(!showPassword);
|
|
263
280
|
};
|
|
264
|
-
|
|
265
281
|
const {
|
|
266
282
|
buttonsGap,
|
|
267
283
|
clearButtonIcon: ClearButtonIcon,
|
|
268
284
|
icon: IconComponent,
|
|
269
285
|
passwordShowButtonIcon,
|
|
270
|
-
passwordHideButtonIcon
|
|
286
|
+
passwordHideButtonIcon,
|
|
287
|
+
defaultCreditIcon,
|
|
288
|
+
amexIcon,
|
|
289
|
+
visaIcon,
|
|
290
|
+
masterCardIcon
|
|
271
291
|
} = themeTokens;
|
|
272
292
|
const buttonsGapSize = (0, _utils.useSpacingScale)(buttonsGap);
|
|
273
293
|
const getCopy = (0, _utils.useCopy)({
|
|
@@ -275,7 +295,6 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
275
295
|
copy
|
|
276
296
|
});
|
|
277
297
|
const textInputButtons = buttons;
|
|
278
|
-
|
|
279
298
|
if (onClear && isDirty) {
|
|
280
299
|
textInputButtons === null || textInputButtons === void 0 ? void 0 : textInputButtons.unshift( /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
281
300
|
accessibilityLabel: getCopy('clearButtonAccessibilityLabel'),
|
|
@@ -286,8 +305,7 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
286
305
|
}
|
|
287
306
|
}, "clear"));
|
|
288
307
|
}
|
|
289
|
-
|
|
290
|
-
if (variant.password) {
|
|
308
|
+
if (isPassword) {
|
|
291
309
|
textInputButtons === null || textInputButtons === void 0 ? void 0 : textInputButtons.unshift( /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
292
310
|
accessibilityLabel: !showPassword ? getCopy('hidePasswordAccessibilityLabel') : getCopy('showPasswordAccessibilityLabel'),
|
|
293
311
|
icon: !showPassword ? passwordShowButtonIcon : passwordHideButtonIcon,
|
|
@@ -304,8 +322,8 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
304
322
|
}
|
|
305
323
|
}, !showPassword ? 'hide' : 'show'));
|
|
306
324
|
}
|
|
307
|
-
|
|
308
|
-
|
|
325
|
+
const inputProps = {
|
|
326
|
+
...selectProps(rest),
|
|
309
327
|
editable: !inactive,
|
|
310
328
|
onFocus: handleFocus,
|
|
311
329
|
onBlur: handleBlur,
|
|
@@ -313,30 +331,43 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
313
331
|
onMouseOut: handleMouseOut,
|
|
314
332
|
onChange: handleChangeText,
|
|
315
333
|
defaultValue: initialValue,
|
|
334
|
+
maxLength: type === 'card' ? 19 : undefined,
|
|
316
335
|
value: isControlled ? currentValue : undefined
|
|
317
336
|
};
|
|
318
337
|
const {
|
|
319
338
|
themeOptions
|
|
320
339
|
} = (0, _ThemeProvider.useTheme)();
|
|
321
|
-
const nativeInputStyle = selectInputStyles({
|
|
340
|
+
const nativeInputStyle = selectInputStyles({
|
|
341
|
+
...themeTokens,
|
|
322
342
|
height
|
|
323
|
-
}, themeOptions, inactive);
|
|
343
|
+
}, themeOptions, inactive, type);
|
|
324
344
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
325
345
|
style: selectOuterBorderStyles(themeTokens),
|
|
326
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
346
|
+
children: [type === 'card' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
347
|
+
pointerEvents: "none",
|
|
348
|
+
style: [staticStyles.leftIconContainer, selectLeftIconContainerStyles(themeTokens)],
|
|
349
|
+
children: getIcon(currentValue, {
|
|
350
|
+
defaultCreditIcon,
|
|
351
|
+
amexIcon,
|
|
352
|
+
visaIcon,
|
|
353
|
+
masterCardIcon
|
|
354
|
+
})
|
|
355
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInput.default, {
|
|
327
356
|
ref: inputRef,
|
|
328
|
-
keyboardType:
|
|
329
|
-
inputMode:
|
|
357
|
+
keyboardType: isNumeric && 'numeric',
|
|
358
|
+
inputMode: isNumeric && 'numeric',
|
|
330
359
|
style: nativeInputStyle,
|
|
331
|
-
secureTextEntry:
|
|
360
|
+
secureTextEntry: isPassword && !showPassword,
|
|
332
361
|
...inputProps
|
|
333
362
|
}), IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
334
363
|
pointerEvents: "none" // avoid hijacking input press events
|
|
335
364
|
,
|
|
336
|
-
style: [staticStyles.
|
|
365
|
+
style: [staticStyles.rightIconContainer, selectIconContainerStyles({
|
|
366
|
+
...themeTokens,
|
|
337
367
|
buttonsGapSize
|
|
338
368
|
}, buttons === null || buttons === void 0 ? void 0 : buttons.length)],
|
|
339
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, {
|
|
369
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, {
|
|
370
|
+
...selectIconTokens(themeTokens)
|
|
340
371
|
})
|
|
341
372
|
}), (buttons === null || buttons === void 0 ? void 0 : buttons.length) > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
342
373
|
style: [staticStyles.buttonsContainer, selectButtonsContainerStyle(themeTokens)],
|
|
@@ -349,9 +380,9 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)((_ref6, ref) => {
|
|
|
349
380
|
});
|
|
350
381
|
});
|
|
351
382
|
TextInputBase.displayName = 'TextInputBase';
|
|
352
|
-
TextInputBase.propTypes = {
|
|
383
|
+
TextInputBase.propTypes = {
|
|
384
|
+
...selectedSystemPropTypes,
|
|
353
385
|
buttons: _propTypes.default.arrayOf(_propTypes.default.node),
|
|
354
|
-
|
|
355
386
|
/**
|
|
356
387
|
* Select English or French copy for the accessible labels.
|
|
357
388
|
* You may also pass in a custom dictionary object.
|
|
@@ -359,6 +390,7 @@ TextInputBase.propTypes = { ...selectedSystemPropTypes,
|
|
|
359
390
|
copy: _propTypes.default.oneOfType([_propTypes.default.oneOf(['en', 'fr']), _propTypes.default.shape({
|
|
360
391
|
clearButtonAccessibilityLabel: _propTypes.default.string
|
|
361
392
|
})]),
|
|
393
|
+
type: _propTypes.default.oneOfType([_propTypes.default.oneOf(['password', 'card', 'number'])]),
|
|
362
394
|
height: _propTypes.default.number,
|
|
363
395
|
inactive: _propTypes.default.bool,
|
|
364
396
|
initialValue: _propTypes.default.string,
|
|
@@ -376,7 +408,6 @@ TextInputBase.propTypes = { ...selectedSystemPropTypes,
|
|
|
376
408
|
};
|
|
377
409
|
var _default = TextInputBase;
|
|
378
410
|
exports.default = _default;
|
|
379
|
-
|
|
380
411
|
const staticStyles = _StyleSheet.default.create({
|
|
381
412
|
buttonsContainer: {
|
|
382
413
|
position: 'absolute',
|
|
@@ -387,9 +418,15 @@ const staticStyles = _StyleSheet.default.create({
|
|
|
387
418
|
bottom: 0,
|
|
388
419
|
justifyContent: 'center'
|
|
389
420
|
},
|
|
390
|
-
|
|
421
|
+
rightIconContainer: {
|
|
391
422
|
position: 'absolute',
|
|
392
423
|
right: 0,
|
|
393
424
|
bottom: 0
|
|
425
|
+
},
|
|
426
|
+
leftIconContainer: {
|
|
427
|
+
position: 'absolute',
|
|
428
|
+
left: 0,
|
|
429
|
+
bottom: 0,
|
|
430
|
+
zIndex: 1
|
|
394
431
|
}
|
|
395
432
|
});
|
package/lib/TextInput/index.js
CHANGED
|
@@ -15,9 +15,6 @@ Object.defineProperty(exports, "TextInput", {
|
|
|
15
15
|
return _TextInput.default;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
|
|
19
18
|
var _TextInput = _interopRequireDefault(require("./TextInput"));
|
|
20
|
-
|
|
21
19
|
var _TextArea = _interopRequireDefault(require("./TextArea"));
|
|
22
|
-
|
|
23
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -4,11 +4,8 @@ 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
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
// These are prop types specific to UDS TextInput; see also ../utils/props/textInputProps
|
|
13
10
|
// for generic React Native props and HTML input attrs that are passed through.
|
|
14
11
|
const textInputPropTypes = {
|
|
@@ -17,23 +14,23 @@ const textInputPropTypes = {
|
|
|
17
14
|
* together with the `onChange` to pass down and update the lifted state.
|
|
18
15
|
*/
|
|
19
16
|
value: _propTypes.default.string,
|
|
20
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Use this to set the type of the input. Defaults to `text`.
|
|
19
|
+
*/
|
|
20
|
+
type: _propTypes.default.string,
|
|
21
21
|
/**
|
|
22
22
|
* Use this to set the initial value of an uncontrolled input.
|
|
23
23
|
* Updating `initialValue` will **not** update the actual value.
|
|
24
24
|
*/
|
|
25
25
|
initialValue: _propTypes.default.string,
|
|
26
|
-
|
|
27
26
|
/**
|
|
28
27
|
* Disables all user interactions with the input.
|
|
29
28
|
*/
|
|
30
29
|
inactive: _propTypes.default.bool,
|
|
31
|
-
|
|
32
30
|
/**
|
|
33
31
|
* Makes it impossible to change the input's value.
|
|
34
32
|
*/
|
|
35
33
|
readOnly: _propTypes.default.bool,
|
|
36
|
-
|
|
37
34
|
/**
|
|
38
35
|
* Use to react upon input's value changes. Required when the `value` prop is set.
|
|
39
36
|
* Will receive the input's value as an argument.
|