@telus-uds/components-base 1.83.0 → 1.85.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 +36 -2
- package/lib/A11yInfoProvider/index.js +8 -10
- package/lib/A11yText/index.js +2 -4
- package/lib/ActivityIndicator/Spinner.js +3 -4
- package/lib/ActivityIndicator/Spinner.native.js +2 -4
- package/lib/Autocomplete/Autocomplete.js +13 -17
- package/lib/Autocomplete/Loading.js +4 -2
- package/lib/Autocomplete/Suggestions.js +2 -4
- package/lib/Badge/Badge.js +2 -4
- package/lib/BaseProvider/HydrationContext.js +5 -7
- package/lib/Box/Box.js +5 -7
- package/lib/Button/Button.js +3 -3
- package/lib/Button/ButtonBase.js +2 -7
- package/lib/Button/ButtonDropdown.js +3 -3
- package/lib/Button/ButtonGroup.js +11 -4
- package/lib/Button/ButtonLink.js +3 -3
- package/lib/Card/Card.js +159 -16
- package/lib/Card/CardBase.js +2 -4
- package/lib/Card/PressableCardBase.js +3 -5
- package/lib/CardGroup/CardGroup.js +220 -0
- package/lib/CardGroup/dictionary.js +15 -0
- package/lib/CardGroup/index.js +10 -0
- package/lib/Carousel/Carousel.js +308 -129
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -4
- package/lib/Carousel/CarouselItem/CarouselItem.js +3 -2
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +2 -4
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -8
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -5
- package/lib/Carousel/CarouselThumbnail.js +4 -2
- package/lib/Carousel/CarouselThumbnailNavigation.js +2 -4
- package/lib/Checkbox/Checkbox.js +2 -4
- package/lib/Checkbox/CheckboxButton.js +3 -5
- package/lib/Checkbox/CheckboxGroup.js +2 -4
- package/lib/Checkbox/CheckboxInput.js +4 -14
- package/lib/CheckboxCard/CheckboxCard.js +3 -3
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +3 -3
- package/lib/ColourToggle/ColourBubble.js +5 -6
- package/lib/ColourToggle/ColourToggle.js +3 -5
- package/lib/Divider/Divider.js +2 -4
- package/lib/ExpandCollapse/Accordion.js +2 -4
- package/lib/ExpandCollapse/Control.js +2 -4
- package/lib/ExpandCollapse/ExpandCollapse.js +20 -13
- package/lib/ExpandCollapse/Panel.js +15 -5
- package/lib/ExpandCollapse/dictionary.js +17 -0
- package/lib/Feedback/Feedback.js +2 -4
- package/lib/Fieldset/Fieldset.js +2 -4
- package/lib/Fieldset/FieldsetContainer.js +2 -4
- package/lib/Fieldset/FieldsetContainer.native.js +2 -4
- package/lib/Fieldset/Legend.js +2 -4
- package/lib/Fieldset/Legend.native.js +2 -4
- package/lib/FlexGrid/Col/Col.js +3 -5
- package/lib/FlexGrid/FlexGrid.js +2 -4
- package/lib/FlexGrid/Row/Row.js +2 -4
- package/lib/Footnote/Footnote.js +9 -9
- package/lib/Footnote/FootnoteLink.js +5 -3
- package/lib/HorizontalScroll/HorizontalScroll.js +8 -10
- package/lib/HorizontalScroll/HorizontalScrollButton.js +2 -4
- package/lib/HorizontalScroll/ScrollViewEnd.js +5 -10
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +2 -4
- package/lib/Icon/Icon.js +2 -4
- package/lib/Icon/IconText.js +6 -6
- package/lib/IconButton/IconButton.js +2 -4
- package/lib/InputLabel/InputLabel.js +2 -4
- package/lib/InputLabel/LabelContent.js +2 -4
- package/lib/InputLabel/LabelContent.native.js +2 -4
- package/lib/InputSupports/InputSupports.js +4 -5
- package/lib/Link/ChevronLink.js +2 -4
- package/lib/Link/InlinePressable.js +8 -7
- package/lib/Link/InlinePressable.native.js +10 -8
- package/lib/Link/Link.js +2 -4
- package/lib/Link/LinkBase.js +2 -4
- package/lib/Link/TextButton.js +2 -4
- package/lib/List/List.js +13 -11
- package/lib/List/ListItem.js +2 -4
- package/lib/List/ListItemBase.js +6 -10
- package/lib/List/ListItemContent.js +4 -2
- package/lib/List/ListItemMark.js +4 -2
- package/lib/List/PressableListItemBase.js +2 -4
- package/lib/Listbox/GroupControl.js +4 -2
- package/lib/Listbox/Listbox.js +6 -6
- package/lib/Listbox/ListboxContext.js +3 -4
- package/lib/Listbox/ListboxGroup.js +2 -4
- package/lib/Listbox/ListboxItem.js +2 -6
- package/lib/Listbox/ListboxOverlay.js +2 -6
- package/lib/Listbox/PressableItem.js +2 -6
- package/lib/Modal/Modal.js +5 -7
- package/lib/Modal/ModalContent.js +7 -7
- package/lib/Modal/WebModal.js +19 -10
- package/lib/MultiSelectFilter/ModalOverlay.js +2 -4
- package/lib/MultiSelectFilter/MultiSelectFilter.js +10 -10
- package/lib/Notification/Notification.js +5 -7
- package/lib/OrderedList/Item.js +4 -10
- package/lib/OrderedList/ItemBase.js +2 -4
- package/lib/OrderedList/OrderedList.js +5 -13
- package/lib/OrderedList/OrderedListBase.js +2 -4
- package/lib/Pagination/PageButton.js +1 -1
- package/lib/Pagination/Pagination.js +1 -1
- package/lib/Pagination/SideButton.js +2 -4
- package/lib/PriceLockup/PriceLockup.js +5 -5
- package/lib/ProductCard/ProductCard.js +3 -2
- package/lib/ProductCardGroup/ProductCardGroup.js +5 -6
- package/lib/Progress/Progress.js +2 -4
- package/lib/Progress/ProgressBar.js +2 -4
- package/lib/Progress/ProgressBarBackground.js +2 -4
- package/lib/QuickLinks/QuickLinks.js +2 -4
- package/lib/QuickLinks/QuickLinksCard.js +4 -2
- package/lib/QuickLinks/QuickLinksItem.js +2 -4
- package/lib/QuickLinksFeature/QuickLinksFeature.js +9 -7
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +10 -12
- package/lib/Radio/Radio.js +3 -3
- package/lib/Radio/RadioButton.js +61 -15
- package/lib/Radio/RadioGroup.js +2 -4
- package/lib/Radio/RadioInput.js +6 -18
- package/lib/RadioCard/RadioCard.js +3 -3
- package/lib/RadioCard/RadioCardGroup.js +3 -3
- package/lib/Responsive/Responsive.js +3 -2
- package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
- package/lib/Search/Search.js +2 -4
- package/lib/Select/Group.js +4 -2
- package/lib/Select/Item.js +4 -2
- package/lib/Select/Picker.js +2 -4
- package/lib/Select/Picker.native.js +3 -5
- package/lib/Select/Select.js +4 -6
- package/lib/SideNav/Item.js +2 -4
- package/lib/SideNav/ItemContent.js +4 -2
- package/lib/SideNav/ItemsGroup.js +2 -4
- package/lib/SideNav/SideNav.js +2 -2
- package/lib/Skeleton/Skeleton.js +2 -4
- package/lib/SkipLink/SkipLink.js +2 -4
- package/lib/Spacer/Spacer.js +2 -4
- package/lib/StackView/StackView.js +2 -4
- package/lib/StackView/StackWrap.js +3 -5
- package/lib/StackView/StackWrapBox.js +2 -4
- package/lib/StackView/StackWrapGap.js +2 -4
- package/lib/StackView/getStackedContent.js +3 -3
- package/lib/StepTracker/Step.js +4 -2
- package/lib/StepTracker/StepTracker.js +2 -4
- package/lib/Tabs/Tabs.js +4 -4
- package/lib/Tabs/TabsItem.js +3 -5
- package/lib/Tags/Tags.js +2 -4
- package/lib/TextInput/TextArea.js +3 -5
- package/lib/TextInput/TextInput.js +2 -4
- package/lib/TextInput/TextInputBase.js +7 -9
- package/lib/ThemeProvider/ThemeProvider.js +5 -7
- package/lib/Timeline/Timeline.js +2 -4
- package/lib/ToggleSwitch/ToggleSwitch.js +2 -4
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +2 -4
- package/lib/Tooltip/Tooltip.js +6 -8
- package/lib/Tooltip/Tooltip.native.js +12 -14
- package/lib/TooltipButton/TooltipButton.js +4 -2
- package/lib/Typography/Typography.js +2 -4
- package/lib/Validator/Validator.js +11 -13
- package/lib/ViewportProvider/ViewportProvider.js +2 -4
- package/lib/index.js +8 -0
- package/lib/utils/BaseView/BaseView.js +2 -4
- package/lib/utils/children.js +4 -6
- package/lib/utils/withLinkRouter.js +3 -5
- package/lib-module/A11yInfoProvider/index.js +8 -8
- package/lib-module/A11yText/index.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.native.js +2 -2
- package/lib-module/Autocomplete/Autocomplete.js +13 -14
- package/lib-module/Autocomplete/Loading.js +4 -2
- package/lib-module/Autocomplete/Suggestions.js +2 -2
- package/lib-module/Badge/Badge.js +2 -2
- package/lib-module/BaseProvider/HydrationContext.js +5 -5
- package/lib-module/Box/Box.js +5 -5
- package/lib-module/Button/Button.js +2 -2
- package/lib-module/Button/ButtonBase.js +2 -5
- package/lib-module/Button/ButtonDropdown.js +2 -2
- package/lib-module/Button/ButtonGroup.js +11 -2
- package/lib-module/Button/ButtonLink.js +2 -2
- package/lib-module/Card/Card.js +159 -14
- package/lib-module/Card/CardBase.js +2 -2
- package/lib-module/Card/PressableCardBase.js +4 -4
- package/lib-module/CardGroup/CardGroup.js +210 -0
- package/lib-module/CardGroup/dictionary.js +8 -0
- package/lib-module/CardGroup/index.js +2 -0
- package/lib-module/Carousel/Carousel.js +308 -129
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -2
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +3 -2
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +2 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -6
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -3
- package/lib-module/Carousel/CarouselThumbnail.js +4 -2
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +2 -2
- package/lib-module/Checkbox/Checkbox.js +2 -2
- package/lib-module/Checkbox/CheckboxButton.js +3 -3
- package/lib-module/Checkbox/CheckboxGroup.js +2 -2
- package/lib-module/Checkbox/CheckboxInput.js +4 -12
- package/lib-module/CheckboxCard/CheckboxCard.js +2 -2
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +2 -2
- package/lib-module/ColourToggle/ColourBubble.js +5 -4
- package/lib-module/ColourToggle/ColourToggle.js +3 -3
- package/lib-module/Divider/Divider.js +2 -2
- package/lib-module/ExpandCollapse/Accordion.js +2 -2
- package/lib-module/ExpandCollapse/Control.js +2 -2
- package/lib-module/ExpandCollapse/ExpandCollapse.js +20 -11
- package/lib-module/ExpandCollapse/Panel.js +16 -4
- package/lib-module/ExpandCollapse/dictionary.js +10 -0
- package/lib-module/Feedback/Feedback.js +2 -2
- package/lib-module/Fieldset/Fieldset.js +2 -2
- package/lib-module/Fieldset/FieldsetContainer.js +2 -2
- package/lib-module/Fieldset/FieldsetContainer.native.js +2 -2
- package/lib-module/Fieldset/Legend.js +2 -2
- package/lib-module/Fieldset/Legend.native.js +2 -2
- package/lib-module/FlexGrid/Col/Col.js +3 -3
- package/lib-module/FlexGrid/FlexGrid.js +2 -2
- package/lib-module/FlexGrid/Row/Row.js +2 -2
- package/lib-module/Footnote/Footnote.js +9 -7
- package/lib-module/Footnote/FootnoteLink.js +5 -4
- package/lib-module/HorizontalScroll/HorizontalScroll.js +8 -8
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +2 -2
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -8
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +2 -2
- package/lib-module/Icon/Icon.js +2 -2
- package/lib-module/Icon/IconText.js +5 -5
- package/lib-module/IconButton/IconButton.js +2 -2
- package/lib-module/InputLabel/InputLabel.js +2 -2
- package/lib-module/InputLabel/LabelContent.js +2 -2
- package/lib-module/InputLabel/LabelContent.native.js +2 -2
- package/lib-module/InputSupports/InputSupports.js +4 -3
- package/lib-module/Link/ChevronLink.js +2 -2
- package/lib-module/Link/InlinePressable.js +10 -4
- package/lib-module/Link/InlinePressable.native.js +12 -6
- package/lib-module/Link/Link.js +2 -2
- package/lib-module/Link/LinkBase.js +2 -2
- package/lib-module/Link/TextButton.js +2 -2
- package/lib-module/List/List.js +13 -9
- package/lib-module/List/ListItem.js +2 -2
- package/lib-module/List/ListItemBase.js +6 -8
- package/lib-module/List/ListItemContent.js +4 -2
- package/lib-module/List/ListItemMark.js +4 -2
- package/lib-module/List/PressableListItemBase.js +2 -2
- package/lib-module/Listbox/GroupControl.js +4 -2
- package/lib-module/Listbox/Listbox.js +7 -7
- package/lib-module/Listbox/ListboxContext.js +2 -2
- package/lib-module/Listbox/ListboxGroup.js +2 -2
- package/lib-module/Listbox/ListboxItem.js +2 -3
- package/lib-module/Listbox/ListboxOverlay.js +2 -3
- package/lib-module/Listbox/PressableItem.js +2 -3
- package/lib-module/Modal/Modal.js +5 -5
- package/lib-module/Modal/ModalContent.js +7 -5
- package/lib-module/Modal/WebModal.js +19 -10
- package/lib-module/MultiSelectFilter/ModalOverlay.js +2 -2
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +10 -8
- package/lib-module/Notification/Notification.js +5 -5
- package/lib-module/OrderedList/Item.js +4 -8
- package/lib-module/OrderedList/ItemBase.js +2 -2
- package/lib-module/OrderedList/OrderedList.js +6 -12
- package/lib-module/OrderedList/OrderedListBase.js +2 -2
- package/lib-module/Pagination/PageButton.js +2 -2
- package/lib-module/Pagination/Pagination.js +2 -2
- package/lib-module/Pagination/SideButton.js +2 -2
- package/lib-module/PriceLockup/PriceLockup.js +5 -5
- package/lib-module/ProductCard/ProductCard.js +3 -2
- package/lib-module/ProductCardGroup/ProductCardGroup.js +5 -4
- package/lib-module/Progress/Progress.js +2 -2
- package/lib-module/Progress/ProgressBar.js +2 -2
- package/lib-module/Progress/ProgressBarBackground.js +2 -2
- package/lib-module/QuickLinks/QuickLinks.js +2 -2
- package/lib-module/QuickLinks/QuickLinksCard.js +4 -2
- package/lib-module/QuickLinks/QuickLinksItem.js +2 -2
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +9 -5
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +10 -10
- package/lib-module/Radio/Radio.js +2 -2
- package/lib-module/Radio/RadioButton.js +62 -14
- package/lib-module/Radio/RadioGroup.js +2 -2
- package/lib-module/Radio/RadioInput.js +6 -16
- package/lib-module/RadioCard/RadioCard.js +2 -2
- package/lib-module/RadioCard/RadioCardGroup.js +2 -2
- package/lib-module/Responsive/Responsive.js +3 -2
- package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
- package/lib-module/Search/Search.js +2 -2
- package/lib-module/Select/Group.js +4 -2
- package/lib-module/Select/Item.js +4 -2
- package/lib-module/Select/Picker.js +2 -2
- package/lib-module/Select/Picker.native.js +3 -3
- package/lib-module/Select/Select.js +4 -4
- package/lib-module/SideNav/Item.js +2 -2
- package/lib-module/SideNav/ItemContent.js +4 -2
- package/lib-module/SideNav/ItemsGroup.js +2 -2
- package/lib-module/SideNav/SideNav.js +3 -3
- package/lib-module/Skeleton/Skeleton.js +2 -2
- package/lib-module/SkipLink/SkipLink.js +2 -2
- package/lib-module/Spacer/Spacer.js +2 -2
- package/lib-module/StackView/StackView.js +2 -2
- package/lib-module/StackView/StackWrap.js +3 -3
- package/lib-module/StackView/StackWrapBox.js +2 -2
- package/lib-module/StackView/StackWrapGap.js +2 -2
- package/lib-module/StackView/getStackedContent.js +4 -4
- package/lib-module/StepTracker/Step.js +4 -2
- package/lib-module/StepTracker/StepTracker.js +2 -2
- package/lib-module/Tabs/Tabs.js +3 -3
- package/lib-module/Tabs/TabsItem.js +3 -3
- package/lib-module/Tags/Tags.js +2 -2
- package/lib-module/TextInput/TextArea.js +3 -3
- package/lib-module/TextInput/TextInput.js +2 -2
- package/lib-module/TextInput/TextInputBase.js +7 -7
- package/lib-module/ThemeProvider/ThemeProvider.js +5 -5
- package/lib-module/Timeline/Timeline.js +2 -2
- package/lib-module/ToggleSwitch/ToggleSwitch.js +2 -2
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +2 -2
- package/lib-module/Tooltip/Tooltip.js +6 -6
- package/lib-module/Tooltip/Tooltip.native.js +12 -12
- package/lib-module/TooltipButton/TooltipButton.js +4 -2
- package/lib-module/Typography/Typography.js +2 -2
- package/lib-module/Validator/Validator.js +11 -11
- package/lib-module/ViewportProvider/ViewportProvider.js +2 -2
- package/lib-module/index.js +1 -0
- package/lib-module/utils/BaseView/BaseView.js +2 -2
- package/lib-module/utils/children.js +4 -4
- package/lib-module/utils/withLinkRouter.js +3 -3
- package/package.json +2 -2
- package/src/A11yInfoProvider/index.jsx +8 -8
- package/src/A11yText/index.jsx +2 -2
- package/src/ActivityIndicator/Spinner.jsx +2 -2
- package/src/ActivityIndicator/Spinner.native.jsx +2 -2
- package/src/Autocomplete/Autocomplete.jsx +15 -14
- package/src/Autocomplete/Loading.jsx +6 -3
- package/src/Autocomplete/Suggestions.jsx +2 -2
- package/src/Badge/Badge.jsx +2 -2
- package/src/BaseProvider/HydrationContext.jsx +5 -5
- package/src/Box/Box.jsx +5 -5
- package/src/Button/Button.jsx +11 -9
- package/src/Button/ButtonBase.jsx +2 -3
- package/src/Button/ButtonDropdown.jsx +2 -2
- package/src/Button/ButtonGroup.jsx +11 -2
- package/src/Button/ButtonLink.jsx +2 -2
- package/src/Card/Card.jsx +151 -11
- package/src/Card/CardBase.jsx +2 -2
- package/src/Card/PressableCardBase.jsx +18 -4
- package/src/CardGroup/CardGroup.jsx +249 -0
- package/src/CardGroup/dictionary.js +8 -0
- package/src/CardGroup/index.js +3 -0
- package/src/Carousel/Carousel.jsx +338 -117
- package/src/Carousel/CarouselFirstFocus/CarouselFirstFocus.jsx +2 -2
- package/src/Carousel/CarouselItem/CarouselItem.jsx +19 -17
- package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +5 -3
- package/src/Carousel/CarouselTabs/CarouselTabs.jsx +2 -2
- package/src/Carousel/CarouselTabs/CarouselTabsPanel.jsx +6 -6
- package/src/Carousel/CarouselTabs/CarouselTabsPanelItem.jsx +3 -3
- package/src/Carousel/CarouselThumbnail.jsx +6 -2
- package/src/Carousel/CarouselThumbnailNavigation.jsx +2 -2
- package/src/Checkbox/Checkbox.jsx +2 -2
- package/src/Checkbox/CheckboxButton.jsx +5 -7
- package/src/Checkbox/CheckboxGroup.jsx +2 -2
- package/src/Checkbox/CheckboxInput.jsx +15 -12
- package/src/CheckboxCard/CheckboxCard.jsx +2 -2
- package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +2 -2
- package/src/ColourToggle/ColourBubble.jsx +5 -4
- package/src/ColourToggle/ColourToggle.jsx +3 -3
- package/src/Divider/Divider.jsx +2 -2
- package/src/ExpandCollapse/Accordion.jsx +4 -2
- package/src/ExpandCollapse/Control.jsx +2 -2
- package/src/ExpandCollapse/ExpandCollapse.jsx +15 -7
- package/src/ExpandCollapse/Panel.jsx +30 -8
- package/src/ExpandCollapse/dictionary.js +10 -0
- package/src/Feedback/Feedback.jsx +2 -2
- package/src/Fieldset/Fieldset.jsx +2 -2
- package/src/Fieldset/FieldsetContainer.jsx +2 -2
- package/src/Fieldset/FieldsetContainer.native.jsx +2 -2
- package/src/Fieldset/Legend.jsx +2 -2
- package/src/Fieldset/Legend.native.jsx +2 -2
- package/src/FlexGrid/Col/Col.jsx +3 -3
- package/src/FlexGrid/FlexGrid.jsx +2 -2
- package/src/FlexGrid/Row/Row.jsx +2 -2
- package/src/Footnote/Footnote.jsx +111 -98
- package/src/Footnote/FootnoteLink.jsx +35 -31
- package/src/HorizontalScroll/HorizontalScroll.jsx +8 -8
- package/src/HorizontalScroll/HorizontalScrollButton.jsx +2 -2
- package/src/HorizontalScroll/ScrollViewEnd.jsx +4 -8
- package/src/HorizontalScroll/ScrollViewEnd.native.jsx +2 -2
- package/src/Icon/Icon.jsx +2 -2
- package/src/Icon/IconText.jsx +7 -5
- package/src/IconButton/IconButton.jsx +2 -2
- package/src/InputLabel/InputLabel.jsx +2 -2
- package/src/InputLabel/LabelContent.jsx +2 -2
- package/src/InputLabel/LabelContent.native.jsx +2 -2
- package/src/InputSupports/InputSupports.jsx +4 -3
- package/src/Link/ChevronLink.jsx +2 -2
- package/src/Link/InlinePressable.jsx +22 -15
- package/src/Link/InlinePressable.native.jsx +12 -6
- package/src/Link/Link.jsx +2 -2
- package/src/Link/LinkBase.jsx +2 -2
- package/src/Link/TextButton.jsx +2 -2
- package/src/List/List.jsx +15 -7
- package/src/List/ListItem.jsx +2 -2
- package/src/List/ListItemBase.jsx +6 -12
- package/src/List/ListItemContent.jsx +5 -2
- package/src/List/ListItemMark.jsx +5 -3
- package/src/List/PressableListItemBase.jsx +2 -2
- package/src/Listbox/GroupControl.jsx +5 -2
- package/src/Listbox/Listbox.jsx +7 -7
- package/src/Listbox/ListboxContext.js +2 -2
- package/src/Listbox/ListboxGroup.jsx +2 -2
- package/src/Listbox/ListboxItem.jsx +2 -3
- package/src/Listbox/ListboxOverlay.jsx +2 -3
- package/src/Listbox/PressableItem.jsx +2 -3
- package/src/Modal/Modal.jsx +5 -5
- package/src/Modal/ModalContent.jsx +132 -125
- package/src/Modal/WebModal.jsx +17 -8
- package/src/MultiSelectFilter/ModalOverlay.jsx +2 -2
- package/src/MultiSelectFilter/MultiSelectFilter.jsx +263 -252
- package/src/Notification/Notification.jsx +5 -5
- package/src/OrderedList/Item.jsx +4 -6
- package/src/OrderedList/ItemBase.jsx +2 -2
- package/src/OrderedList/OrderedList.jsx +4 -7
- package/src/OrderedList/OrderedListBase.jsx +2 -2
- package/src/Pagination/PageButton.jsx +2 -2
- package/src/Pagination/Pagination.jsx +2 -2
- package/src/Pagination/SideButton.jsx +2 -2
- package/src/PriceLockup/PriceLockup.jsx +93 -88
- package/src/ProductCard/ProductCard.jsx +90 -84
- package/src/ProductCardGroup/ProductCardGroup.jsx +5 -5
- package/src/Progress/Progress.jsx +2 -2
- package/src/Progress/ProgressBar.jsx +2 -2
- package/src/Progress/ProgressBarBackground.jsx +4 -2
- package/src/QuickLinks/QuickLinks.jsx +2 -2
- package/src/QuickLinks/QuickLinksCard.jsx +9 -3
- package/src/QuickLinks/QuickLinksItem.jsx +2 -2
- package/src/QuickLinksFeature/QuickLinksFeature.jsx +31 -27
- package/src/QuickLinksFeature/QuickLinksFeatureItem.jsx +3 -3
- package/src/Radio/Radio.jsx +2 -2
- package/src/Radio/RadioButton.jsx +58 -6
- package/src/Radio/RadioGroup.jsx +2 -2
- package/src/Radio/RadioInput.jsx +15 -14
- package/src/RadioCard/RadioCard.jsx +2 -2
- package/src/RadioCard/RadioCardGroup.jsx +2 -2
- package/src/Responsive/Responsive.jsx +8 -3
- package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +23 -16
- package/src/Search/Search.jsx +2 -2
- package/src/Select/Group.jsx +9 -3
- package/src/Select/Item.jsx +7 -1
- package/src/Select/Picker.jsx +2 -2
- package/src/Select/Picker.native.jsx +3 -3
- package/src/Select/Select.jsx +4 -4
- package/src/SideNav/Item.jsx +2 -2
- package/src/SideNav/ItemContent.jsx +7 -3
- package/src/SideNav/ItemsGroup.jsx +2 -2
- package/src/SideNav/SideNav.jsx +3 -3
- package/src/Skeleton/Skeleton.jsx +2 -2
- package/src/SkipLink/SkipLink.jsx +2 -2
- package/src/Spacer/Spacer.jsx +2 -2
- package/src/StackView/StackView.jsx +2 -2
- package/src/StackView/StackWrap.jsx +3 -3
- package/src/StackView/StackWrapBox.jsx +2 -2
- package/src/StackView/StackWrapGap.jsx +2 -2
- package/src/StackView/getStackedContent.jsx +4 -4
- package/src/StepTracker/Step.jsx +75 -67
- package/src/StepTracker/StepTracker.jsx +2 -2
- package/src/Tabs/Tabs.jsx +3 -3
- package/src/Tabs/TabsItem.jsx +3 -3
- package/src/Tags/Tags.jsx +2 -2
- package/src/TextInput/TextArea.jsx +3 -3
- package/src/TextInput/TextInput.jsx +2 -2
- package/src/TextInput/TextInputBase.jsx +7 -7
- package/src/ThemeProvider/ThemeProvider.jsx +5 -5
- package/src/Timeline/Timeline.jsx +2 -2
- package/src/ToggleSwitch/ToggleSwitch.jsx +2 -2
- package/src/ToggleSwitch/ToggleSwitchGroup.jsx +2 -2
- package/src/Tooltip/Tooltip.jsx +6 -6
- package/src/Tooltip/Tooltip.native.jsx +12 -12
- package/src/TooltipButton/TooltipButton.jsx +5 -2
- package/src/Typography/Typography.jsx +2 -2
- package/src/Validator/Validator.jsx +11 -11
- package/src/ViewportProvider/ViewportProvider.jsx +2 -2
- package/src/index.js +1 -0
- package/src/utils/BaseView/BaseView.jsx +2 -2
- package/src/utils/children.jsx +4 -4
- package/src/utils/withLinkRouter.jsx +3 -3
- package/types/ExpandCollapse.d.ts +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import Text from "react-native-web/dist/exports/Text";
|
|
4
4
|
import View from "react-native-web/dist/exports/View";
|
|
@@ -41,7 +41,7 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
// General-purpose flexible theme-neutral base component for text
|
|
44
|
-
const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
44
|
+
const Typography = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
45
45
|
let {
|
|
46
46
|
children,
|
|
47
47
|
variant,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import View from "react-native-web/dist/exports/View";
|
|
4
4
|
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
@@ -21,7 +21,7 @@ const selectCodeTextInputTokens = _ref => {
|
|
|
21
21
|
icon: null
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
|
-
const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
24
|
+
const Validator = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
25
25
|
let {
|
|
26
26
|
value = '',
|
|
27
27
|
inactive,
|
|
@@ -30,18 +30,18 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
30
30
|
variant = {},
|
|
31
31
|
...rest
|
|
32
32
|
} = _ref2;
|
|
33
|
-
const defaultRef = useRef();
|
|
33
|
+
const defaultRef = React.useRef();
|
|
34
34
|
const codeRef = ref ?? defaultRef;
|
|
35
35
|
const {
|
|
36
36
|
supportsProps
|
|
37
37
|
} = selectProps(rest);
|
|
38
38
|
const strValidation = supportsProps.validation;
|
|
39
|
-
const [individualCodes, setIndividualCodes] = useState({});
|
|
40
|
-
const [text, setText] = useState(value);
|
|
39
|
+
const [individualCodes, setIndividualCodes] = React.useState({});
|
|
40
|
+
const [text, setText] = React.useState(value);
|
|
41
41
|
const validatorsLength = 6;
|
|
42
42
|
const prefix = 'code';
|
|
43
43
|
const sufixValidation = 'Validation';
|
|
44
|
-
const [isHover, setIsHover] = useState(false);
|
|
44
|
+
const [isHover, setIsHover] = React.useState(false);
|
|
45
45
|
const handleMouseOver = () => {
|
|
46
46
|
setIsHover(true);
|
|
47
47
|
};
|
|
@@ -51,11 +51,11 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
51
51
|
const themeTokens = useThemeTokens('TextInput', tokens, variant, {
|
|
52
52
|
hover: isHover
|
|
53
53
|
});
|
|
54
|
-
const [codeReferences, singleCodes] = useMemo(() => {
|
|
54
|
+
const [codeReferences, singleCodes] = React.useMemo(() => {
|
|
55
55
|
const codes = [];
|
|
56
56
|
const valueCodes = {};
|
|
57
57
|
for (let i = 0; validatorsLength && i < validatorsLength; i += 1) {
|
|
58
|
-
codes[prefix + i] = /*#__PURE__*/createRef();
|
|
58
|
+
codes[prefix + i] = /*#__PURE__*/React.createRef();
|
|
59
59
|
valueCodes[prefix + i] = '';
|
|
60
60
|
valueCodes[prefix + i + sufixValidation] = '';
|
|
61
61
|
}
|
|
@@ -135,13 +135,13 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
135
135
|
}
|
|
136
136
|
return components;
|
|
137
137
|
};
|
|
138
|
-
useEffect(() => {
|
|
138
|
+
React.useEffect(() => {
|
|
139
139
|
/* eslint-disable no-unused-expressions */
|
|
140
140
|
if (Number(value).toString() !== 'NaN') setText(value);
|
|
141
141
|
}, [value]);
|
|
142
142
|
|
|
143
143
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
144
|
-
useEffect(() => {
|
|
144
|
+
React.useEffect(() => {
|
|
145
145
|
for (let i = 0; i < validatorsLength; i += 1) {
|
|
146
146
|
codeReferences[prefix + i].current.value = text[i] ?? '';
|
|
147
147
|
handleSingleCodes(prefix + i, text[i] ?? '', text[i] ? 'success' : '');
|
|
@@ -149,7 +149,7 @@ const Validator = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
149
149
|
}, [text]);
|
|
150
150
|
|
|
151
151
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
152
|
-
useEffect(() => {
|
|
152
|
+
React.useEffect(() => {
|
|
153
153
|
const handlePasteCode = event => {
|
|
154
154
|
setText('');
|
|
155
155
|
const clipBoardText = event.clipboardData.getData('text');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { viewports } from '@telus-uds/system-constants';
|
|
4
4
|
import { ViewportContext } from './useViewport';
|
|
@@ -14,7 +14,7 @@ const ViewportProvider = _ref => {
|
|
|
14
14
|
} = _ref;
|
|
15
15
|
// Default to the smallest viewport for mobile-first SSR. On client side, this is updated
|
|
16
16
|
// by useViewportListener in a layout effect before anything is shown to the user.
|
|
17
|
-
const [viewport, setViewport] = useState(viewports.keys[0]);
|
|
17
|
+
const [viewport, setViewport] = React.useState(viewports.keys[0]);
|
|
18
18
|
useViewportListener(setViewport);
|
|
19
19
|
return /*#__PURE__*/_jsx(ViewportContext.Provider, {
|
|
20
20
|
value: viewport,
|
package/lib-module/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { default as Box } from './Box';
|
|
|
5
5
|
export { default as Badge } from './Badge';
|
|
6
6
|
export * from './Button';
|
|
7
7
|
export { default as Card, PressableCardBase } from './Card';
|
|
8
|
+
export { default as CardGroup } from './CardGroup';
|
|
8
9
|
export * from './Carousel';
|
|
9
10
|
export { default as Listbox } from './Listbox';
|
|
10
11
|
export { default as Checkbox } from './Checkbox';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
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';
|
|
@@ -9,7 +9,7 @@ import { useTheme } from '../../ThemeProvider';
|
|
|
9
9
|
* - a zIndex: 'auto' style added to prevent unexpectedly causing children to overlap other elements from other stacking contexts
|
|
10
10
|
*/
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
-
const BaseView = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
12
|
+
const BaseView = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
13
13
|
let {
|
|
14
14
|
children,
|
|
15
15
|
style,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import Text from "react-native-web/dist/exports/Text";
|
|
3
3
|
import A11yText from '../A11yText';
|
|
4
4
|
|
|
@@ -38,10 +38,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
38
38
|
export const unpackFragment = child => {
|
|
39
39
|
var _child$props;
|
|
40
40
|
// If this level is a set of top-level siblings rather than one child, check each in turn
|
|
41
|
-
if (Children.count(child) > 1) return Children.map(child, unpackFragment);
|
|
41
|
+
if (React.Children.count(child) > 1) return React.Children.map(child, unpackFragment);
|
|
42
42
|
|
|
43
43
|
// When a fragment is found, unpack its children to the top level and check them
|
|
44
|
-
if ((child === null || child === void 0 ? void 0 : child.type) === Fragment) return unpackFragment((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children);
|
|
44
|
+
if ((child === null || child === void 0 ? void 0 : child.type) === React.Fragment) return unpackFragment((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children);
|
|
45
45
|
|
|
46
46
|
// Stop unpacking as soon as any non-fragment child is found
|
|
47
47
|
return child;
|
|
@@ -84,7 +84,7 @@ const wrapChild = (child, wrappedText) => {
|
|
|
84
84
|
*/
|
|
85
85
|
export const wrapStringsInText = function (children) {
|
|
86
86
|
let textProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
87
|
-
const childrenArray = unpackFragment(Children.toArray(children));
|
|
87
|
+
const childrenArray = unpackFragment(React.Children.toArray(children));
|
|
88
88
|
|
|
89
89
|
// Group adjacent wrapable children together in one Text element to create as few Text elements
|
|
90
90
|
// as possible, e.g. give <X>Text {someString}</X> one Text, same as <X>{`Text ${someString}`}</X>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import hasOwnProperty from './hasOwnProperty';
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ import hasOwnProperty from './hasOwnProperty';
|
|
|
17
17
|
* @example A LinkRouter component to be used with link-like components might look like:
|
|
18
18
|
*
|
|
19
19
|
* ```jsx
|
|
20
|
-
* const LinkLinkRouter = forwardRef(({ Component, linkRouterProps: { to, options }, href, ...rest }, ref) => {
|
|
20
|
+
* const LinkLinkRouter = React.forwardRef(({ Component, linkRouterProps: { to, options }, href, ...rest }, ref) => {
|
|
21
21
|
* const { href: resolvedHref, onClick } = useSomeRouterHook({ to, href, options })
|
|
22
22
|
* return <Component href={resolvedHref} onPress={onClick} {...rest} />
|
|
23
23
|
* })
|
|
@@ -32,7 +32,7 @@ import hasOwnProperty from './hasOwnProperty';
|
|
|
32
32
|
*/
|
|
33
33
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
34
34
|
const withLinkRouter = Component => {
|
|
35
|
-
const wrappedComponent = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
35
|
+
const wrappedComponent = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
36
36
|
let {
|
|
37
37
|
LinkRouter,
|
|
38
38
|
linkRouterProps,
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@floating-ui/react-native": "^0.8.1",
|
|
12
12
|
"@gorhom/portal": "^1.0.14",
|
|
13
13
|
"@telus-uds/system-constants": "^1.3.0",
|
|
14
|
-
"@telus-uds/system-theme-tokens": "^2.
|
|
14
|
+
"@telus-uds/system-theme-tokens": "^2.56.0",
|
|
15
15
|
"airbnb-prop-types": "^2.16.0",
|
|
16
16
|
"css-mediaquery": "^0.1.2",
|
|
17
17
|
"expo-linear-gradient": "^12.5.0",
|
|
@@ -85,6 +85,6 @@
|
|
|
85
85
|
"standard-engine": {
|
|
86
86
|
"skip": true
|
|
87
87
|
},
|
|
88
|
-
"version": "1.
|
|
88
|
+
"version": "1.85.0",
|
|
89
89
|
"types": "types/index.d.ts"
|
|
90
90
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import { AccessibilityInfo, Platform } from 'react-native'
|
|
4
4
|
|
|
5
|
-
const ScreenReaderContext = createContext(false)
|
|
6
|
-
const ReducedMotionContext = createContext(false)
|
|
5
|
+
const ScreenReaderContext = React.createContext(false)
|
|
6
|
+
const ReducedMotionContext = React.createContext(false)
|
|
7
7
|
|
|
8
8
|
const A11yInfoProvider = ({ children }) => {
|
|
9
|
-
const [reduceMotionEnabled, setReduceMotionEnabled] = useState(false)
|
|
10
|
-
const [screenReaderEnabled, setScreenReaderEnabled] = useState(false)
|
|
9
|
+
const [reduceMotionEnabled, setReduceMotionEnabled] = React.useState(false)
|
|
10
|
+
const [screenReaderEnabled, setScreenReaderEnabled] = React.useState(false)
|
|
11
11
|
|
|
12
|
-
useEffect(() => {
|
|
12
|
+
React.useEffect(() => {
|
|
13
13
|
if (process.env.NODE_ENV === 'test') {
|
|
14
14
|
// On Jest these effects do nothing but can cause `act` state change warnings
|
|
15
15
|
// and "...after the Jest environment has been torn down" errors, so skip them.
|
|
@@ -65,8 +65,8 @@ A11yInfoProvider.propTypes = {
|
|
|
65
65
|
export default A11yInfoProvider
|
|
66
66
|
|
|
67
67
|
export const useA11yInfo = () => {
|
|
68
|
-
const screenReaderEnabled = useContext(ScreenReaderContext)
|
|
69
|
-
const reduceMotionEnabled = useContext(ReducedMotionContext)
|
|
68
|
+
const screenReaderEnabled = React.useContext(ScreenReaderContext)
|
|
69
|
+
const reduceMotionEnabled = React.useContext(ReducedMotionContext)
|
|
70
70
|
|
|
71
71
|
return {
|
|
72
72
|
reduceMotionEnabled,
|
package/src/A11yText/index.jsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import { Platform, StyleSheet, View } from 'react-native'
|
|
3
3
|
import PropTypes from 'prop-types'
|
|
4
4
|
|
|
@@ -12,7 +12,7 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
|
|
|
12
12
|
* It should be used to add selectable screen-reader-only text to the main document flow,
|
|
13
13
|
* as a sibling to blocks of text like paragraphs and interactive elements like buttons.
|
|
14
14
|
*/
|
|
15
|
-
const A11yText = forwardRef(({ text, heading, ...rest }, ref) => {
|
|
15
|
+
const A11yText = React.forwardRef(({ text, heading, ...rest }, ref) => {
|
|
16
16
|
const selectedProps = selectProps({
|
|
17
17
|
// On iOS, needs `accessible` to be true to be focusable without non-a11y content.
|
|
18
18
|
// On Web, `accessible` causes RNW to set attributes that may make the element be treated as a group.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import { DURATION, MIN_EMPTY_ANGLE, MIN_STROKE_ANGLE, BEZIER, propTypes } from './shared'
|
|
3
3
|
import { useA11yInfo } from '../A11yInfoProvider'
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ const bezierProps = {
|
|
|
21
21
|
}
|
|
22
22
|
// We're using svg rather than css here to define the animation to avoid needing to introduce css injection mechanism
|
|
23
23
|
// It's possible to replicate this functionality with RNW animations, but it snags on chrome at least, see https://github.com/telus/universal-design-system/pull/477 for details.
|
|
24
|
-
const Spinner = forwardRef(({ size, color, thickness, label, isStatic = false }, ref) => {
|
|
24
|
+
const Spinner = React.forwardRef(({ size, color, thickness, label, isStatic = false }, ref) => {
|
|
25
25
|
const { reduceMotionEnabled } = useA11yInfo()
|
|
26
26
|
const reduceMotion = reduceMotionEnabled || isStatic
|
|
27
27
|
return (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import { Animated, Easing, StyleSheet, View } from 'react-native'
|
|
3
3
|
import { DURATION, MIN_EMPTY_ANGLE, MIN_STROKE_ANGLE, BEZIER, propTypes } from './shared'
|
|
4
4
|
import { useA11yInfo } from '../A11yInfoProvider'
|
|
@@ -6,7 +6,7 @@ import { useA11yInfo } from '../A11yInfoProvider'
|
|
|
6
6
|
const ea = MIN_EMPTY_ANGLE / 2
|
|
7
7
|
const sa = MIN_STROKE_ANGLE / 2
|
|
8
8
|
|
|
9
|
-
const Spinner = forwardRef(({ size, color, thickness, label, isStatic = false }, ref) => {
|
|
9
|
+
const Spinner = React.forwardRef(({ size, color, thickness, label, isStatic = false }, ref) => {
|
|
10
10
|
const { current: timer } = React.useRef(new Animated.Value(0))
|
|
11
11
|
const { reduceMotionEnabled } = useA11yInfo()
|
|
12
12
|
const reduceMotion = reduceMotionEnabled || isStatic
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import React, { forwardRef, useEffect, useRef, useState } from 'react'
|
|
1
|
+
import React from 'react'
|
|
3
2
|
import PropTypes from 'prop-types'
|
|
4
3
|
import { Dimensions, Platform, View, StyleSheet } from 'react-native'
|
|
5
4
|
import throttle from 'lodash.throttle'
|
|
@@ -83,7 +82,7 @@ const highlight = (items = [], text = '', color) =>
|
|
|
83
82
|
return [...acc, item]
|
|
84
83
|
}, [])
|
|
85
84
|
|
|
86
|
-
const Autocomplete = forwardRef(
|
|
85
|
+
const Autocomplete = React.forwardRef(
|
|
87
86
|
(
|
|
88
87
|
{
|
|
89
88
|
children,
|
|
@@ -116,22 +115,24 @@ const Autocomplete = forwardRef(
|
|
|
116
115
|
const isControlled = value !== undefined
|
|
117
116
|
|
|
118
117
|
// We need to store current items for uncontrolled usage
|
|
119
|
-
const [currentItems, setCurrentItems] = useState(initialItems)
|
|
118
|
+
const [currentItems, setCurrentItems] = React.useState(initialItems)
|
|
120
119
|
|
|
121
|
-
const [otherItems, setOtherItems] = useState(items)
|
|
120
|
+
const [otherItems, setOtherItems] = React.useState(items)
|
|
122
121
|
|
|
123
122
|
// We need to store the current value as well to be able to highlight it
|
|
124
|
-
const [currentValue, setCurrentValue] = useState(value ?? initialValue)
|
|
123
|
+
const [currentValue, setCurrentValue] = React.useState(value ?? initialValue)
|
|
125
124
|
const inputTokens = { paddingLeft: INPUT_LEFT_PADDING }
|
|
126
125
|
|
|
127
126
|
// Setting up the overlay
|
|
128
|
-
const openOverlayRef = useRef()
|
|
129
|
-
const [isExpanded, setIsExpanded] = useState(
|
|
130
|
-
|
|
131
|
-
|
|
127
|
+
const openOverlayRef = React.useRef()
|
|
128
|
+
const [isExpanded, setIsExpanded] = React.useState(
|
|
129
|
+
(value ?? initialValue)?.length >= minToSuggestion
|
|
130
|
+
)
|
|
131
|
+
const [isFocused, setisFocused] = React.useState(false)
|
|
132
|
+
const [sourceLayout, setSourceLayout] = React.useState(null)
|
|
132
133
|
|
|
133
134
|
// When it's nested, selected value
|
|
134
|
-
const [nestedSelectedValue, setNestedSelectedValue] = useState(null)
|
|
135
|
+
const [nestedSelectedValue, setNestedSelectedValue] = React.useState(null)
|
|
135
136
|
|
|
136
137
|
const { supportsProps, ...selectedProps } = selectProps(rest)
|
|
137
138
|
const { hint, label: inputLabel } = supportsProps
|
|
@@ -148,7 +149,7 @@ const Autocomplete = forwardRef(
|
|
|
148
149
|
vertical: Platform.OS !== 'web' && (hint || inputLabel) ? 28 : 4
|
|
149
150
|
}
|
|
150
151
|
})
|
|
151
|
-
const targetRef = useRef(null)
|
|
152
|
+
const targetRef = React.useRef(null)
|
|
152
153
|
// We limit the number of suggestions displayed to avoid huge lists
|
|
153
154
|
// TODO: add a way to make the `Listbox` occupy fixed height and be scrollable
|
|
154
155
|
// within that height, which will unlock similar behaviour for `AutoComplete` as well
|
|
@@ -157,7 +158,7 @@ const Autocomplete = forwardRef(
|
|
|
157
158
|
|
|
158
159
|
const getCopy = useCopy({ dictionary, copy })
|
|
159
160
|
// Tracking input width changes to resize the listbox overlay accordingly
|
|
160
|
-
const [inputWidth, setInputWidth] = useState()
|
|
161
|
+
const [inputWidth, setInputWidth] = React.useState()
|
|
161
162
|
useSafeLayoutEffect(() => {
|
|
162
163
|
if (Platform.OS === 'web') {
|
|
163
164
|
const updateInputWidth = () => {
|
|
@@ -227,7 +228,7 @@ const Autocomplete = forwardRef(
|
|
|
227
228
|
* within the list, if doesn't exist the nested item is added to the top of the list,
|
|
228
229
|
* the nested item is added with an id equal "0"
|
|
229
230
|
*/
|
|
230
|
-
useEffect(() => {
|
|
231
|
+
React.useEffect(() => {
|
|
231
232
|
if (nestedSelectedValue && !items.find((item) => item.id === 0)) {
|
|
232
233
|
const tmpItems = [...items]
|
|
233
234
|
tmpItems.unshift({ label: nestedSelectedValue, title: true, id: 0 })
|
|
@@ -5,14 +5,17 @@ import Typography from '../Typography'
|
|
|
5
5
|
import Box from '../Box'
|
|
6
6
|
import StackView from '../StackView'
|
|
7
7
|
|
|
8
|
-
const Loading = ({ label }) => (
|
|
9
|
-
<Box space={3}>
|
|
8
|
+
const Loading = React.forwardRef(({ label }, ref) => (
|
|
9
|
+
<Box space={3} ref={ref}>
|
|
10
10
|
<StackView direction="row" space={2} tokens={{ alignItems: 'center' }}>
|
|
11
11
|
<ActivityIndicator variant={{ size: 'large' }} />
|
|
12
12
|
<Typography>{label}</Typography>
|
|
13
13
|
</StackView>
|
|
14
14
|
</Box>
|
|
15
|
-
)
|
|
15
|
+
))
|
|
16
|
+
|
|
17
|
+
Loading.displayName = 'Loading'
|
|
18
|
+
|
|
16
19
|
Loading.propTypes = { label: PropTypes.string }
|
|
17
20
|
|
|
18
21
|
export default Loading
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import A11yText from '../A11yText'
|
|
4
4
|
import Typography from '../Typography'
|
|
5
5
|
import Box from '../Box'
|
|
6
6
|
import Listbox from '../Listbox'
|
|
7
7
|
|
|
8
|
-
const Suggestions = forwardRef(
|
|
8
|
+
const Suggestions = React.forwardRef(
|
|
9
9
|
({ hasResults, items = [], noResults, onClose, onSelect, parentRef }, ref) => {
|
|
10
10
|
const pressableItems = items.map(({ id, ...rest }) => ({
|
|
11
11
|
id,
|
package/src/Badge/Badge.jsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import { View, StyleSheet } from 'react-native'
|
|
3
3
|
import PropTypes from 'prop-types'
|
|
4
4
|
import { useThemeTokens } from '../ThemeProvider'
|
|
@@ -32,7 +32,7 @@ const getTypographyTokens = ({ fontName, fontWeight, color }) => ({ fontName, fo
|
|
|
32
32
|
|
|
33
33
|
const getTypographyVariant = ({ fontSize }) => ({ size: fontSizeMapping[fontSize] })
|
|
34
34
|
|
|
35
|
-
const Badge = forwardRef(({ children, tokens, variant = {}, ...rest }, ref) => {
|
|
35
|
+
const Badge = React.forwardRef(({ children, tokens, variant = {}, ...rest }, ref) => {
|
|
36
36
|
const themeTokens = useThemeTokens('Badge', tokens, variant)
|
|
37
37
|
|
|
38
38
|
return (
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import { Platform } from 'react-native'
|
|
4
4
|
|
|
5
|
-
const HydrationContext = createContext()
|
|
5
|
+
const HydrationContext = React.createContext()
|
|
6
6
|
const isSSR = typeof window === 'undefined'
|
|
7
7
|
const hasWebStyleTag = () => {
|
|
8
8
|
if (isSSR || Platform.OS !== 'web' || typeof document !== 'object') {
|
|
@@ -18,15 +18,15 @@ const hasWebStyleTag = () => {
|
|
|
18
18
|
* during the very first client-side render or hydration, but not available on the server,
|
|
19
19
|
* to ensure no changes happen until the original SSR DOM has been hydrated.
|
|
20
20
|
*/
|
|
21
|
-
export const useHydrationContext = () => useContext(HydrationContext)
|
|
21
|
+
export const useHydrationContext = () => React.useContext(HydrationContext)
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Allows components and hooks to observe if SSR hydration is currently in progress
|
|
25
25
|
* and if so, to re-render with content that differs to the server when it is complete.
|
|
26
26
|
*/
|
|
27
27
|
export const HydrationProvider = ({ children }) => {
|
|
28
|
-
const [hasMounted, setHasMounted] = useState(false)
|
|
29
|
-
useEffect(() => {
|
|
28
|
+
const [hasMounted, setHasMounted] = React.useState(false)
|
|
29
|
+
React.useEffect(() => {
|
|
30
30
|
setHasMounted(true)
|
|
31
31
|
}, [])
|
|
32
32
|
|
package/src/Box/Box.jsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import { View, ScrollView, Platform, StyleSheet, ImageBackground, Image } from 'react-native'
|
|
4
4
|
import { useThemeTokens } from '../ThemeProvider'
|
|
@@ -181,7 +181,7 @@ const setBackgroundImage = ({
|
|
|
181
181
|
* text content is inside a scrollable box, as screens are not scrollable by default and even very
|
|
182
182
|
* short text will require scrolling on small devices at the highest accessibility text scaling settings.
|
|
183
183
|
*/
|
|
184
|
-
const Box = forwardRef(
|
|
184
|
+
const Box = React.forwardRef(
|
|
185
185
|
(
|
|
186
186
|
{
|
|
187
187
|
space,
|
|
@@ -230,8 +230,8 @@ const Box = forwardRef(
|
|
|
230
230
|
const backgroundImageResizeMode = useResponsiveProp(resizeMode, 'cover')
|
|
231
231
|
const backgroundImagePosition = useResponsiveProp(position, 'none')
|
|
232
232
|
const backgroundImageAlign = useResponsiveProp(align, 'stretch')
|
|
233
|
-
const [backgroundImageWidth, setBackgroundImageWidth] = useState(0)
|
|
234
|
-
const [backgroundImageHeight, setBackgroundImageHeight] = useState(0)
|
|
233
|
+
const [backgroundImageWidth, setBackgroundImageWidth] = React.useState(0)
|
|
234
|
+
const [backgroundImageHeight, setBackgroundImageHeight] = React.useState(0)
|
|
235
235
|
if (backgroundImage)
|
|
236
236
|
content = setBackgroundImage({
|
|
237
237
|
src,
|
|
@@ -244,7 +244,7 @@ const Box = forwardRef(
|
|
|
244
244
|
content
|
|
245
245
|
})
|
|
246
246
|
|
|
247
|
-
useEffect(() => {
|
|
247
|
+
React.useEffect(() => {
|
|
248
248
|
if (backgroundImage && backgroundImageWidth === 0 && backgroundImageHeight === 0) {
|
|
249
249
|
Image.getSize(src, (width, height) => {
|
|
250
250
|
// Only update the state if the size has changed
|
package/src/Button/Button.jsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
|
|
3
3
|
import ButtonBase from './ButtonBase'
|
|
4
4
|
import buttonPropTypes, { textAndA11yText } from './propTypes'
|
|
@@ -6,14 +6,16 @@ import { useThemeTokensCallback } from '../ThemeProvider'
|
|
|
6
6
|
import { a11yProps } from '../utils/props'
|
|
7
7
|
import { useViewport } from '../ViewportProvider'
|
|
8
8
|
|
|
9
|
-
const Button = forwardRef(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
const Button = React.forwardRef(
|
|
10
|
+
({ accessibilityRole = 'button', tokens, variant, ...props }, ref) => {
|
|
11
|
+
const viewport = useViewport()
|
|
12
|
+
const buttonVariant = { viewport, ...variant }
|
|
13
|
+
const getTokens = useThemeTokensCallback('Button', tokens, buttonVariant)
|
|
14
|
+
return (
|
|
15
|
+
<ButtonBase {...props} tokens={getTokens} accessibilityRole={accessibilityRole} ref={ref} />
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
)
|
|
17
19
|
Button.displayName = 'Button'
|
|
18
20
|
|
|
19
21
|
Button.propTypes = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import { Pressable, View, StyleSheet, Platform } from 'react-native'
|
|
4
4
|
|
|
@@ -185,7 +185,7 @@ const selectItemIconTokens = ({ color, iconColor, iconSize }) => ({
|
|
|
185
185
|
color: iconColor || color
|
|
186
186
|
})
|
|
187
187
|
|
|
188
|
-
const ButtonBase = forwardRef(
|
|
188
|
+
const ButtonBase = React.forwardRef(
|
|
189
189
|
(
|
|
190
190
|
{
|
|
191
191
|
id,
|
|
@@ -303,7 +303,6 @@ ButtonBase.propTypes = {
|
|
|
303
303
|
...selectedSystemPropTypes,
|
|
304
304
|
...buttonPropTypes
|
|
305
305
|
}
|
|
306
|
-
ButtonBase.defaultProps = { id: undefined }
|
|
307
306
|
|
|
308
307
|
const staticStyles = StyleSheet.create({
|
|
309
308
|
row: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import { Platform, Text, View } from 'react-native'
|
|
4
4
|
import buttonPropTypes, { textAndA11yText } from './propTypes'
|
|
@@ -50,7 +50,7 @@ const selectIconTokens = ({
|
|
|
50
50
|
}
|
|
51
51
|
})
|
|
52
52
|
|
|
53
|
-
const ButtonDropdown = forwardRef(
|
|
53
|
+
const ButtonDropdown = React.forwardRef(
|
|
54
54
|
(
|
|
55
55
|
{
|
|
56
56
|
value,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import ABBPropTypes from 'airbnb-prop-types'
|
|
4
4
|
import { Platform } from 'react-native'
|
|
@@ -30,10 +30,11 @@ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([
|
|
|
30
30
|
viewProps
|
|
31
31
|
])
|
|
32
32
|
|
|
33
|
-
const ButtonGroup = forwardRef(
|
|
33
|
+
const ButtonGroup = React.forwardRef(
|
|
34
34
|
(
|
|
35
35
|
{
|
|
36
36
|
variant,
|
|
37
|
+
buttonVariant,
|
|
37
38
|
tokens,
|
|
38
39
|
items = [],
|
|
39
40
|
values,
|
|
@@ -140,6 +141,7 @@ const ButtonGroup = forwardRef(
|
|
|
140
141
|
<ButtonBase
|
|
141
142
|
ref={itemRef}
|
|
142
143
|
key={id}
|
|
144
|
+
variant={buttonVariant}
|
|
143
145
|
{...pressHandlers}
|
|
144
146
|
onPress={handlePress}
|
|
145
147
|
tokens={getButtonTokens}
|
|
@@ -167,6 +169,13 @@ ButtonGroup.displayName = 'ButtonGroup'
|
|
|
167
169
|
ButtonGroup.propTypes = {
|
|
168
170
|
...selectedSystemPropTypes,
|
|
169
171
|
tokens: getTokensPropType('ButtonGroup'),
|
|
172
|
+
/**
|
|
173
|
+
* To allow Button specific variant
|
|
174
|
+
*/
|
|
175
|
+
buttonVariant: variantProp.propType,
|
|
176
|
+
/**
|
|
177
|
+
* Default variant prop
|
|
178
|
+
*/
|
|
170
179
|
variant: variantProp.propType,
|
|
171
180
|
/**
|
|
172
181
|
* The maximum number of items a user may select at once. Defaults to 1 and behaves
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import ButtonBase from './ButtonBase'
|
|
4
4
|
import buttonPropTypes, { textAndA11yText } from './propTypes'
|
|
@@ -10,7 +10,7 @@ import { useViewport } from '../ViewportProvider'
|
|
|
10
10
|
* `ButtonLink` is a component with the semantics and behaviour of a link, but with the visual appearance of a button.
|
|
11
11
|
* ButtonLink is a block-level component and should not be used inline.
|
|
12
12
|
*/
|
|
13
|
-
const ButtonLink = forwardRef(
|
|
13
|
+
const ButtonLink = React.forwardRef(
|
|
14
14
|
({ accessibilityRole = 'link', tokens, variant, dataSet, ...props }, ref) => {
|
|
15
15
|
const { hrefAttrs, rest } = hrefAttrsProp.bundle(props)
|
|
16
16
|
const viewport = useViewport()
|