@telus-uds/components-base 1.84.0 → 1.85.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -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 +2 -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 +67 -57
- 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 +2 -4
- package/lib/ExpandCollapse/Panel.js +3 -5
- 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 +9 -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 +3 -3
- 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 +16 -9
- 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 +2 -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 +67 -55
- 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 +2 -2
- package/lib-module/ExpandCollapse/Panel.js +3 -3
- 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 +9 -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 +2 -2
- 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 +16 -9
- 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 +2 -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 +69 -53
- 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 +2 -2
- package/src/ExpandCollapse/Panel.jsx +3 -3
- 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 +38 -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 +2 -2
- 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 +13 -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
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { a11yProps, focusHandlerProps, containUniqueFields, selectSystemProps, useMultipleInputValues, useInputValue, useCopy, viewProps, variantProp, getTokensPropType, copyPropTypes } from '../utils';
|
|
4
|
+
import defaultDictionary from './dictionary';
|
|
5
|
+
import { useViewport } from '../ViewportProvider';
|
|
6
|
+
import { useThemeTokens } from '../ThemeProvider';
|
|
7
|
+
import StackView, { StackWrap } from '../StackView';
|
|
8
|
+
import Card from '../Card';
|
|
9
|
+
import Fieldset from '../Fieldset';
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
12
|
+
const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
|
|
13
|
+
const uniqueFields = ['id'];
|
|
14
|
+
const CardGroup = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
15
|
+
let {
|
|
16
|
+
copy = 'en',
|
|
17
|
+
tokens = {},
|
|
18
|
+
variant = {},
|
|
19
|
+
items = [],
|
|
20
|
+
validation,
|
|
21
|
+
feedback,
|
|
22
|
+
initialCheckedIds,
|
|
23
|
+
checkedIds,
|
|
24
|
+
onChange,
|
|
25
|
+
role = 'radiogroup',
|
|
26
|
+
isInactive,
|
|
27
|
+
name: inputGroupName,
|
|
28
|
+
dictionary = defaultDictionary,
|
|
29
|
+
...rest
|
|
30
|
+
} = _ref;
|
|
31
|
+
const getCopy = useCopy({
|
|
32
|
+
dictionary,
|
|
33
|
+
copy
|
|
34
|
+
});
|
|
35
|
+
const viewport = useViewport();
|
|
36
|
+
const cardGroupTokens = useThemeTokens('CardGroup', tokens, variant, {
|
|
37
|
+
viewport
|
|
38
|
+
});
|
|
39
|
+
const {
|
|
40
|
+
space,
|
|
41
|
+
fieldSpace,
|
|
42
|
+
direction,
|
|
43
|
+
showIcon,
|
|
44
|
+
outlineWidth,
|
|
45
|
+
borderTopLeftRadius,
|
|
46
|
+
borderTopRightRadius,
|
|
47
|
+
borderBottomLeftRadius,
|
|
48
|
+
borderBottomRightRadius,
|
|
49
|
+
outlineOffset,
|
|
50
|
+
paddingTop,
|
|
51
|
+
paddingBottom,
|
|
52
|
+
paddingLeft,
|
|
53
|
+
paddingRight
|
|
54
|
+
} = cardGroupTokens;
|
|
55
|
+
const borderTokens = {
|
|
56
|
+
outlineWidth,
|
|
57
|
+
borderTopLeftRadius,
|
|
58
|
+
borderTopRightRadius,
|
|
59
|
+
borderBottomLeftRadius,
|
|
60
|
+
borderBottomRightRadius,
|
|
61
|
+
outlineOffset
|
|
62
|
+
};
|
|
63
|
+
const singleSelection = role === 'radiogroup';
|
|
64
|
+
const inputControl = {
|
|
65
|
+
value: checkedIds,
|
|
66
|
+
initialValue: initialCheckedIds,
|
|
67
|
+
onChange,
|
|
68
|
+
readOnly: isInactive
|
|
69
|
+
};
|
|
70
|
+
const singleInputValue = useInputValue(inputControl);
|
|
71
|
+
const multipleInputValues = useMultipleInputValues(inputControl);
|
|
72
|
+
const StackContainer = direction === 'row' ? StackWrap : StackView;
|
|
73
|
+
if (!containUniqueFields(items, uniqueFields)) {
|
|
74
|
+
throw new Error(`CardGroup items must have unique ${uniqueFields.join(', ')}`);
|
|
75
|
+
}
|
|
76
|
+
const handleChange = React.useCallback((checked, event, cardId, itemOnChange) => {
|
|
77
|
+
if (checked && singleSelection) {
|
|
78
|
+
singleInputValue.setValue(cardId, event);
|
|
79
|
+
} else {
|
|
80
|
+
multipleInputValues.toggleOneValue(cardId, event);
|
|
81
|
+
}
|
|
82
|
+
return itemOnChange === null || itemOnChange === void 0 ? void 0 : itemOnChange(checked, event);
|
|
83
|
+
}, [singleInputValue, multipleInputValues, singleSelection]);
|
|
84
|
+
return /*#__PURE__*/_jsx(Fieldset, {
|
|
85
|
+
copy: copy,
|
|
86
|
+
ref: ref,
|
|
87
|
+
name: inputGroupName,
|
|
88
|
+
space: fieldSpace,
|
|
89
|
+
feedback: feedback,
|
|
90
|
+
validation: validation,
|
|
91
|
+
tokens: borderTokens,
|
|
92
|
+
inactive: isInactive,
|
|
93
|
+
showErrorBorder: true,
|
|
94
|
+
showIcon: showIcon,
|
|
95
|
+
accessibilityRole: role,
|
|
96
|
+
...selectProps(rest),
|
|
97
|
+
children: props => /*#__PURE__*/_jsx(StackContainer, {
|
|
98
|
+
space: space,
|
|
99
|
+
children: items.map((_ref2, index) => {
|
|
100
|
+
let {
|
|
101
|
+
id,
|
|
102
|
+
interactiveCard,
|
|
103
|
+
card,
|
|
104
|
+
onPress: itemOnChange,
|
|
105
|
+
...itemRest
|
|
106
|
+
} = _ref2;
|
|
107
|
+
const cardId = id || `${getCopy('prefixId')}[${index}]`;
|
|
108
|
+
const itemHandleChange = (checked, event) => handleChange(checked, event, cardId, itemOnChange);
|
|
109
|
+
return /*#__PURE__*/_jsx(Card, {
|
|
110
|
+
id: cardId,
|
|
111
|
+
onPress: itemHandleChange,
|
|
112
|
+
interactiveCard: {
|
|
113
|
+
...interactiveCard,
|
|
114
|
+
tokens: {
|
|
115
|
+
paddingTop,
|
|
116
|
+
paddingBottom,
|
|
117
|
+
paddingLeft,
|
|
118
|
+
paddingRight,
|
|
119
|
+
...(interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.tokens)
|
|
120
|
+
},
|
|
121
|
+
variant: {
|
|
122
|
+
isControl: true,
|
|
123
|
+
selected: singleSelection ? singleInputValue.currentValue === cardId : multipleInputValues.currentValues.includes(cardId),
|
|
124
|
+
inactive: isInactive
|
|
125
|
+
},
|
|
126
|
+
selectionType: role
|
|
127
|
+
},
|
|
128
|
+
...selectItemProps(itemRest),
|
|
129
|
+
...props,
|
|
130
|
+
children: card === null || card === void 0 ? void 0 : card.body
|
|
131
|
+
}, cardId);
|
|
132
|
+
})
|
|
133
|
+
})
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
CardGroup.displayName = 'CardGroup';
|
|
137
|
+
const dictionaryContentShape = PropTypes.shape({
|
|
138
|
+
prefixId: PropTypes.string.isRequired
|
|
139
|
+
});
|
|
140
|
+
CardGroup.propTypes = {
|
|
141
|
+
...selectedSystemPropTypes,
|
|
142
|
+
copy: copyPropTypes,
|
|
143
|
+
/**
|
|
144
|
+
* Override the default dictionary, by passing the complete dictionary object for `en` and `fr`
|
|
145
|
+
*/
|
|
146
|
+
dictionary: PropTypes.shape({
|
|
147
|
+
en: dictionaryContentShape,
|
|
148
|
+
fr: dictionaryContentShape
|
|
149
|
+
}),
|
|
150
|
+
/**
|
|
151
|
+
* Optional theme token overrides for the outer RadioCardGroup component
|
|
152
|
+
*/
|
|
153
|
+
tokens: getTokensPropType('CardGroup'),
|
|
154
|
+
/**
|
|
155
|
+
* Theme variants, shared between both RadioCardGroup and RadioCard
|
|
156
|
+
*/
|
|
157
|
+
variant: variantProp.propType,
|
|
158
|
+
/**
|
|
159
|
+
* Array of objects containing specifics for each Card to be rendered in the group.
|
|
160
|
+
*/
|
|
161
|
+
items: PropTypes.arrayOf(PropTypes.exact({
|
|
162
|
+
...selectedItemPropTypes,
|
|
163
|
+
id: PropTypes.string,
|
|
164
|
+
interactiveCard: PropTypes.object,
|
|
165
|
+
card: PropTypes.object,
|
|
166
|
+
onPress: PropTypes.func
|
|
167
|
+
})),
|
|
168
|
+
/**
|
|
169
|
+
* Current validation status of the group, passed to the feedback element if there is one.
|
|
170
|
+
*/
|
|
171
|
+
validation: PropTypes.oneOf(['error', 'success']),
|
|
172
|
+
/**
|
|
173
|
+
* If provided, a Feedback element is rendered containing this text.
|
|
174
|
+
*/
|
|
175
|
+
feedback: PropTypes.string,
|
|
176
|
+
/**
|
|
177
|
+
* If provided, the card with this id is selected on first render.
|
|
178
|
+
* If the role is radiogroup, it's a string
|
|
179
|
+
* If the role is checkbox, it's a array of string.
|
|
180
|
+
* Can have 'null' as value
|
|
181
|
+
*/
|
|
182
|
+
initialCheckedIds: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
|
|
183
|
+
/**
|
|
184
|
+
* If not undefined, the card with this id is selected (or none is selected if `null`), and the
|
|
185
|
+
* element's selection state will be controlled by its parent using the `onChange` function.
|
|
186
|
+
* If the role is radiogroup, it's a string
|
|
187
|
+
* If the role is checkbox, it's a array of string.
|
|
188
|
+
* Can have 'null' as value
|
|
189
|
+
*/
|
|
190
|
+
checkedIds: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
|
|
191
|
+
/**
|
|
192
|
+
* Function to call on change in selection state. Is required if the selection state is controlled
|
|
193
|
+
* by a parent using checkedId and the input is not readOnly.
|
|
194
|
+
*/
|
|
195
|
+
onChange: PropTypes.func,
|
|
196
|
+
/**
|
|
197
|
+
* Renders the card group like a radio card group or a checkbox card group
|
|
198
|
+
*/
|
|
199
|
+
role: PropTypes.oneOf(['radiogroup', 'checkbox']),
|
|
200
|
+
/**
|
|
201
|
+
* If true, the card cannot be interacted with, elements are set as `disabled` and if the
|
|
202
|
+
* theme supports `inactive` appearances rules, these are applied.
|
|
203
|
+
*/
|
|
204
|
+
isInactive: PropTypes.bool,
|
|
205
|
+
/**
|
|
206
|
+
* On Web, this is passed to the `name` attribute of the fieldset and each input.
|
|
207
|
+
*/
|
|
208
|
+
name: PropTypes.string
|
|
209
|
+
};
|
|
210
|
+
export default CardGroup;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import View from "react-native-web/dist/exports/View";
|
|
3
3
|
import Animated from "react-native-web/dist/exports/Animated";
|
|
4
4
|
import PanResponder from "react-native-web/dist/exports/PanResponder";
|
|
@@ -157,7 +157,7 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
|
|
|
157
157
|
- `spaceBetweenSlideAndPreviousNextNavigation` - Horizontal space between slide and previous/next navigational buttons
|
|
158
158
|
- `spaceBetweenSlideAndPanelNavigation` - Vertical space between slide area and panel navigation area
|
|
159
159
|
*/
|
|
160
|
-
const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
160
|
+
const Carousel = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
|
|
161
161
|
let {
|
|
162
162
|
tokens,
|
|
163
163
|
variant,
|
|
@@ -216,45 +216,45 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
216
216
|
showPanelTabs,
|
|
217
217
|
spaceBetweenSlideAndPreviousNextNavigation
|
|
218
218
|
} = themeTokens;
|
|
219
|
-
const [activeIndex, setActiveIndex] = useState(0);
|
|
220
|
-
const activeIndexRef = useRef(activeIndex);
|
|
219
|
+
const [activeIndex, setActiveIndex] = React.useState(0);
|
|
220
|
+
const activeIndexRef = React.useRef(activeIndex);
|
|
221
221
|
const {
|
|
222
222
|
reduceMotionEnabled
|
|
223
223
|
} = useA11yInfo();
|
|
224
|
-
const reduceMotionRef = useRef(reduceMotionEnabled);
|
|
224
|
+
const reduceMotionRef = React.useRef(reduceMotionEnabled);
|
|
225
225
|
const [containerLayout, setContainerLayout] = React.useState({
|
|
226
226
|
x: 0,
|
|
227
227
|
y: 0,
|
|
228
228
|
width: 0
|
|
229
229
|
});
|
|
230
|
-
const containerLayoutRef = useRef(containerLayout);
|
|
231
|
-
const [previousNextNavigationButtonWidth, setPreviousNextNavigationButtonWidth] = useState(0);
|
|
232
|
-
const firstFocusRef = useRef(null);
|
|
233
|
-
const pan = useRef(new Animated.ValueXY()).current;
|
|
234
|
-
const animatedX = useRef(0);
|
|
235
|
-
const animatedY = useRef(0);
|
|
236
|
-
const [isAnimating, setIsAnimating] = useState(false);
|
|
230
|
+
const containerLayoutRef = React.useRef(containerLayout);
|
|
231
|
+
const [previousNextNavigationButtonWidth, setPreviousNextNavigationButtonWidth] = React.useState(0);
|
|
232
|
+
const firstFocusRef = React.useRef(null);
|
|
233
|
+
const pan = React.useRef(new Animated.ValueXY()).current;
|
|
234
|
+
const animatedX = React.useRef(0);
|
|
235
|
+
const animatedY = React.useRef(0);
|
|
236
|
+
const [isAnimating, setIsAnimating] = React.useState(false);
|
|
237
237
|
/**
|
|
238
238
|
* While having the same starting point, `isAutoPlayEnabled` and `isCarouselPlaying` are different states
|
|
239
239
|
*
|
|
240
240
|
* `isAutoPlayEnabled` is a state to determine if the autoplay feature is enabled or disabled
|
|
241
241
|
* `isCarouselPlaying` is a state to determine if the carousel is currently playing or paused
|
|
242
242
|
*/
|
|
243
|
-
const [isAutoPlayEnabled, setIsAutoPlayEnabled] = useState(autoPlayFeatureEnabled);
|
|
244
|
-
const [isCarouselPlaying, setisCarouselPlaying] = useState(autoPlayFeatureEnabled);
|
|
245
|
-
const isSwiping = useRef(false);
|
|
246
|
-
const autoPlayRef = useRef(null);
|
|
243
|
+
const [isAutoPlayEnabled, setIsAutoPlayEnabled] = React.useState(autoPlayFeatureEnabled);
|
|
244
|
+
const [isCarouselPlaying, setisCarouselPlaying] = React.useState(autoPlayFeatureEnabled);
|
|
245
|
+
const isSwiping = React.useRef(false);
|
|
246
|
+
const autoPlayRef = React.useRef(null);
|
|
247
247
|
const isFirstSlide = !activeIndex;
|
|
248
248
|
const isLastSlide = activeIndex + 1 >= childrenArray.length;
|
|
249
|
-
const handleAnimationStart = useCallback(function () {
|
|
249
|
+
const handleAnimationStart = React.useCallback(function () {
|
|
250
250
|
if (typeof onAnimationStart === 'function') onAnimationStart(...arguments);
|
|
251
251
|
setIsAnimating(true);
|
|
252
252
|
}, [onAnimationStart]);
|
|
253
|
-
const handleAnimationEnd = useCallback(function () {
|
|
253
|
+
const handleAnimationEnd = React.useCallback(function () {
|
|
254
254
|
if (typeof onAnimationEnd === 'function') onAnimationEnd(...arguments);
|
|
255
255
|
setIsAnimating(false);
|
|
256
256
|
}, [onAnimationEnd]);
|
|
257
|
-
const updateOffset = useCallback(() => {
|
|
257
|
+
const updateOffset = React.useCallback(() => {
|
|
258
258
|
animatedX.current = containerLayoutRef.current.width * activeIndexRef.current * -1;
|
|
259
259
|
animatedY.current = 0;
|
|
260
260
|
pan.setOffset({
|
|
@@ -266,7 +266,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
266
266
|
y: 0
|
|
267
267
|
});
|
|
268
268
|
}, [pan, animatedX]);
|
|
269
|
-
const animate = useCallback((toValue, toIndex) => {
|
|
269
|
+
const animate = React.useCallback((toValue, toIndex) => {
|
|
270
270
|
const handleAnimationEndToIndex = function () {
|
|
271
271
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
272
272
|
args[_key] = arguments[_key];
|
|
@@ -294,12 +294,21 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
294
294
|
}).start(handleAnimationEndToIndex);
|
|
295
295
|
}
|
|
296
296
|
}, [pan, springConfig, handleAnimationEnd, transitionDuration, isAutoPlayEnabled]);
|
|
297
|
-
const stopAutoplay = useCallback(() => {
|
|
297
|
+
const stopAutoplay = React.useCallback(() => {
|
|
298
298
|
if (autoPlayRef !== null && autoPlayRef !== void 0 && autoPlayRef.current) {
|
|
299
299
|
clearTimeout(autoPlayRef === null || autoPlayRef === void 0 ? void 0 : autoPlayRef.current);
|
|
300
300
|
}
|
|
301
301
|
}, []);
|
|
302
|
-
const
|
|
302
|
+
const triggerRefocus = React.useCallback(() => {
|
|
303
|
+
if (refocus && Platform.OS === 'web') {
|
|
304
|
+
var _firstFocusRef$curren;
|
|
305
|
+
(_firstFocusRef$curren = firstFocusRef.current) === null || _firstFocusRef$curren === void 0 ? void 0 : _firstFocusRef$curren.focus({
|
|
306
|
+
preventScroll: true,
|
|
307
|
+
focusVisible: false
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}, [refocus, firstFocusRef]);
|
|
311
|
+
const updateIndex = React.useCallback(function () {
|
|
303
312
|
let delta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
304
313
|
let transitionMode = arguments.length > 1 ? arguments[1] : undefined;
|
|
305
314
|
const toValue = {
|
|
@@ -330,51 +339,48 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
330
339
|
setisCarouselPlaying(false);
|
|
331
340
|
} else if (isAutoPlayEnabled) {
|
|
332
341
|
autoPlayRef.current = setTimeout(() => {
|
|
333
|
-
var _firstFocusRef$curren;
|
|
334
342
|
updateOffset();
|
|
335
343
|
handleAnimationStart(activeIndexRef.current);
|
|
336
344
|
updateIndex(slideDuration < 0 ? -1 : 1, TRANSITION_MODES.AUTOMATIC);
|
|
337
|
-
|
|
345
|
+
triggerRefocus();
|
|
338
346
|
}, Math.abs(slideDuration) * 1000);
|
|
339
347
|
}
|
|
340
348
|
}
|
|
341
349
|
if (onIndexChanged) onIndexChanged(calcDelta, index);
|
|
342
350
|
return calcDelta;
|
|
343
|
-
}, [handleAnimationStart,
|
|
344
|
-
const startAutoplay = useCallback(() => {
|
|
351
|
+
}, [handleAnimationStart, triggerRefocus, slideDuration, updateOffset, animate, childrenArray.length, onIndexChanged, isCarouselPlaying, stopAutoplay, isAutoPlayEnabled]);
|
|
352
|
+
const startAutoplay = React.useCallback(() => {
|
|
345
353
|
stopAutoplay();
|
|
346
354
|
if (isAutoPlayEnabled) {
|
|
347
355
|
autoPlayRef.current = setTimeout(() => {
|
|
348
|
-
var _firstFocusRef$curren2;
|
|
349
356
|
updateOffset();
|
|
350
357
|
handleAnimationStart(activeIndexRef.current);
|
|
351
358
|
updateIndex(slideDuration < 0 ? -1 : 1, TRANSITION_MODES.AUTOMATIC);
|
|
352
|
-
|
|
359
|
+
triggerRefocus();
|
|
353
360
|
}, Math.abs(slideDuration) * 1000);
|
|
354
361
|
}
|
|
355
|
-
}, [handleAnimationStart,
|
|
356
|
-
const fixOffsetAndGo = useCallback((delta, transitionMode) => {
|
|
357
|
-
var _firstFocusRef$curren3;
|
|
362
|
+
}, [handleAnimationStart, triggerRefocus, updateIndex, updateOffset, slideDuration, stopAutoplay, isAutoPlayEnabled]);
|
|
363
|
+
const fixOffsetAndGo = React.useCallback((delta, transitionMode) => {
|
|
358
364
|
updateOffset();
|
|
359
365
|
handleAnimationStart(activeIndexRef.current);
|
|
360
366
|
updateIndex(delta, transitionMode);
|
|
361
|
-
|
|
362
|
-
}, [updateIndex, updateOffset, handleAnimationStart,
|
|
363
|
-
const goToNeighboring = useCallback(function () {
|
|
367
|
+
triggerRefocus();
|
|
368
|
+
}, [updateIndex, updateOffset, handleAnimationStart, triggerRefocus]);
|
|
369
|
+
const goToNeighboring = React.useCallback(function () {
|
|
364
370
|
let toPrev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
365
371
|
let transitionMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TRANSITION_MODES.MANUAL;
|
|
366
372
|
fixOffsetAndGo(toPrev ? -1 : 1, transitionMode);
|
|
367
373
|
}, [fixOffsetAndGo]);
|
|
368
|
-
useEffect(() => {
|
|
374
|
+
React.useEffect(() => {
|
|
369
375
|
activeIndexRef.current = activeIndex;
|
|
370
376
|
}, [activeIndex]);
|
|
371
|
-
useEffect(() => {
|
|
377
|
+
React.useEffect(() => {
|
|
372
378
|
reduceMotionRef.current = reduceMotionEnabled;
|
|
373
379
|
}, [reduceMotionEnabled]);
|
|
374
|
-
useEffect(() => {
|
|
380
|
+
React.useEffect(() => {
|
|
375
381
|
containerLayoutRef.current = containerLayout;
|
|
376
382
|
}, [containerLayout]);
|
|
377
|
-
useEffect(() => {
|
|
383
|
+
React.useEffect(() => {
|
|
378
384
|
pan.x.addListener(_ref4 => {
|
|
379
385
|
let {
|
|
380
386
|
value
|
|
@@ -396,7 +402,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
396
402
|
pan.y.removeAllListeners();
|
|
397
403
|
};
|
|
398
404
|
}, [pan.x, pan.y, startAutoplay, stopAutoplay, isCarouselPlaying]);
|
|
399
|
-
useEffect(() => {
|
|
405
|
+
React.useEffect(() => {
|
|
400
406
|
const subscription = Dimensions.addEventListener('change', () => {
|
|
401
407
|
updateOffset();
|
|
402
408
|
});
|
|
@@ -408,10 +414,10 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
408
414
|
}
|
|
409
415
|
};
|
|
410
416
|
}, [updateOffset]);
|
|
411
|
-
useEffect(() => {
|
|
417
|
+
React.useEffect(() => {
|
|
412
418
|
setIsAutoPlayEnabled(autoPlay && slideDuration > 0 && transitionDuration > 0 && childrenArray.length > 1);
|
|
413
419
|
}, [autoPlay, slideDuration, transitionDuration, childrenArray.length]);
|
|
414
|
-
useEffect(() => {
|
|
420
|
+
React.useEffect(() => {
|
|
415
421
|
return () => {
|
|
416
422
|
stopAutoplay();
|
|
417
423
|
};
|
|
@@ -443,7 +449,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
443
449
|
} = _ref7;
|
|
444
450
|
return setPreviousNextNavigationButtonWidth(width);
|
|
445
451
|
};
|
|
446
|
-
const isSwipeAllowed = useCallback(() => {
|
|
452
|
+
const isSwipeAllowed = React.useCallback(() => {
|
|
447
453
|
if (childrenArray.length === 1) {
|
|
448
454
|
return false;
|
|
449
455
|
}
|
|
@@ -452,7 +458,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
452
458
|
}
|
|
453
459
|
return true;
|
|
454
460
|
}, [viewport, childrenArray.length]);
|
|
455
|
-
const panResponder = useMemo(() => PanResponder.create({
|
|
461
|
+
const panResponder = React.useMemo(() => PanResponder.create({
|
|
456
462
|
onPanResponderTerminationRequest: () => false,
|
|
457
463
|
onMoveShouldSetResponderCapture: () => true,
|
|
458
464
|
onMoveShouldSetPanResponderCapture: (_, gestureState) => {
|
|
@@ -492,13 +498,13 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
492
498
|
isSwiping.current = false;
|
|
493
499
|
}
|
|
494
500
|
}), [updateIndex, updateOffset, animate, isSwipeAllowed, minDistanceForAction, handleAnimationStart, minDistanceToCapture, pan.x, startAutoplay, stopAutoplay, isCarouselPlaying]);
|
|
495
|
-
const goToNext = useCallback(() => {
|
|
501
|
+
const goToNext = React.useCallback(() => {
|
|
496
502
|
goToNeighboring();
|
|
497
503
|
}, [goToNeighboring]);
|
|
498
|
-
const goToPrev = useCallback(() => {
|
|
504
|
+
const goToPrev = React.useCallback(() => {
|
|
499
505
|
goToNeighboring(true);
|
|
500
506
|
}, [goToNeighboring]);
|
|
501
|
-
const goTo = useCallback(function () {
|
|
507
|
+
const goTo = React.useCallback(function () {
|
|
502
508
|
let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
503
509
|
const delta = index - activeIndexRef.current;
|
|
504
510
|
if (delta) {
|
|
@@ -514,7 +520,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
514
520
|
raised: !(variant !== null && variant !== void 0 && variant.inverse) && true,
|
|
515
521
|
inverse: variant === null || variant === void 0 ? void 0 : variant.inverse
|
|
516
522
|
};
|
|
517
|
-
const getCopyWithPlaceholders = useCallback(copyKey => {
|
|
523
|
+
const getCopyWithPlaceholders = React.useCallback(copyKey => {
|
|
518
524
|
const copyText = getCopy(copyKey).replace(/%\{title\}/g, title).replace(/%\{itemLabel\}/g, itemLabel).replace(/%\{stepNumber\}/g, activeIndex + 1).replace(/%\{stepCount\}/g, childrenArray.length);
|
|
519
525
|
|
|
520
526
|
// First word might be a lowercase placeholder: capitalize the first letter
|
|
@@ -559,7 +565,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
559
565
|
focusable: true
|
|
560
566
|
})
|
|
561
567
|
};
|
|
562
|
-
const onAnimationControlButtonPress = useCallback(() => {
|
|
568
|
+
const onAnimationControlButtonPress = React.useCallback(() => {
|
|
563
569
|
if (isCarouselPlaying) {
|
|
564
570
|
stopAutoplay();
|
|
565
571
|
} else {
|
|
@@ -578,7 +584,13 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
578
584
|
refocus: refocus,
|
|
579
585
|
width: containerLayout.width,
|
|
580
586
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
581
|
-
style: staticStyles.root,
|
|
587
|
+
style: [staticStyles.root, {
|
|
588
|
+
...Platform.select({
|
|
589
|
+
web: {
|
|
590
|
+
outline: 'none'
|
|
591
|
+
}
|
|
592
|
+
})
|
|
593
|
+
}],
|
|
582
594
|
onLayout: onContainerLayout,
|
|
583
595
|
ref: ref,
|
|
584
596
|
...systemProps,
|
|
@@ -712,7 +724,7 @@ Carousel.propTypes = {
|
|
|
712
724
|
* This function is also provided with a parameter indicating changed index (either 1, or -1)
|
|
713
725
|
* Use it as follows:
|
|
714
726
|
* ```js
|
|
715
|
-
* const onIndexChangedCallback = useCallback((changedIndex, currentActiveIndex) => {
|
|
727
|
+
* const onIndexChangedCallback = React.useCallback((changedIndex, currentActiveIndex) => {
|
|
716
728
|
* console.log(changedIndex)
|
|
717
729
|
* }, []) // pass local dependencies as per your component
|
|
718
730
|
* <Carousel
|
|
@@ -721,7 +733,7 @@ Carousel.propTypes = {
|
|
|
721
733
|
* <Carousel.Item>First Slide</Carousel.Item>
|
|
722
734
|
* </Carousel>
|
|
723
735
|
* ```
|
|
724
|
-
* Caution: Always consider wrapping your callback for `onIndexChanged` in `useCallback` in order to avoid bugs and performance issues
|
|
736
|
+
* Caution: Always consider wrapping your callback for `onIndexChanged` in `React.useCallback` in order to avoid bugs and performance issues
|
|
725
737
|
*/
|
|
726
738
|
onIndexChanged: PropTypes.func,
|
|
727
739
|
/**
|
|
@@ -763,7 +775,7 @@ Carousel.propTypes = {
|
|
|
763
775
|
* This function is also provided with a parameter indicating the current slide index before animation starts
|
|
764
776
|
* Use it as follows:
|
|
765
777
|
* ```js
|
|
766
|
-
* const onAnimationStartCallback = useCallback((currentIndex) => {
|
|
778
|
+
* const onAnimationStartCallback = React.useCallback((currentIndex) => {
|
|
767
779
|
* console.log(currentIndex)
|
|
768
780
|
* }, []) // pass local dependencies as per your component
|
|
769
781
|
* <Carousel
|
|
@@ -772,7 +784,7 @@ Carousel.propTypes = {
|
|
|
772
784
|
* <Carousel.Item>First Slide</Carousel.Item>
|
|
773
785
|
* </Carousel>
|
|
774
786
|
* ```
|
|
775
|
-
* Caution: Always consider wrapping your callback for `onAnimationStart` in `useCallback` in order to avoid bugs and performance issues
|
|
787
|
+
* Caution: Always consider wrapping your callback for `onAnimationStart` in `React.useCallback` in order to avoid bugs and performance issues
|
|
776
788
|
*/
|
|
777
789
|
onAnimationStart: PropTypes.func,
|
|
778
790
|
/**
|
|
@@ -780,7 +792,7 @@ Carousel.propTypes = {
|
|
|
780
792
|
* This function is also provided with a parameter indicating the updated slide index after animation ends
|
|
781
793
|
* Use it as follows:
|
|
782
794
|
* ```js
|
|
783
|
-
* const onAnimationEndCallback = useCallback((changedIndex) => {
|
|
795
|
+
* const onAnimationEndCallback = React.useCallback((changedIndex) => {
|
|
784
796
|
* console.log(changedIndex)
|
|
785
797
|
* }, []) // pass local dependencies as per your component
|
|
786
798
|
* <Carousel
|
|
@@ -789,7 +801,7 @@ Carousel.propTypes = {
|
|
|
789
801
|
* <Carousel.Item>First Slide</Carousel.Item>
|
|
790
802
|
* </Carousel>
|
|
791
803
|
* ```
|
|
792
|
-
* Caution: Always consider wrapping your callback for `onAnimationEnd` in `useCallback` in order to avoid bugs and performance issues
|
|
804
|
+
* Caution: Always consider wrapping your callback for `onAnimationEnd` in `React.useCallback` in order to avoid bugs and performance issues
|
|
793
805
|
*/
|
|
794
806
|
onAnimationEnd: PropTypes.func,
|
|
795
807
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import Pressable from "react-native-web/dist/exports/Pressable";
|
|
3
3
|
import Platform from "react-native-web/dist/exports/Platform";
|
|
4
4
|
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
@@ -12,7 +12,7 @@ import { useCarousel } from '../CarouselContext';
|
|
|
12
12
|
* @TODO rework this after integrating with SkipLink when available.
|
|
13
13
|
*/
|
|
14
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
-
const CarouselFirstFocus = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
15
|
+
const CarouselFirstFocus = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
16
16
|
let {
|
|
17
17
|
title
|
|
18
18
|
} = _ref;
|
|
@@ -11,7 +11,7 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
|
|
|
11
11
|
* `Carousel.Item` is used to wrap the content of an individual slide and is suppsoed to be the
|
|
12
12
|
* only top-level component passed to the `Carousel`
|
|
13
13
|
*/
|
|
14
|
-
const CarouselItem = _ref => {
|
|
14
|
+
const CarouselItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
15
15
|
let {
|
|
16
16
|
children,
|
|
17
17
|
elementIndex,
|
|
@@ -39,9 +39,10 @@ const CarouselItem = _ref => {
|
|
|
39
39
|
style: style,
|
|
40
40
|
...selectedProps,
|
|
41
41
|
...focusabilityProps,
|
|
42
|
+
ref: ref,
|
|
42
43
|
children: children
|
|
43
44
|
});
|
|
44
|
-
};
|
|
45
|
+
});
|
|
45
46
|
CarouselItem.propTypes = {
|
|
46
47
|
...selectedSystemPropTypes,
|
|
47
48
|
variant: variantProp.propType,
|
|
@@ -4,7 +4,7 @@ import StepTracker from '../../StepTracker';
|
|
|
4
4
|
import StackView from '../../StackView';
|
|
5
5
|
import { variantProp } from '../../utils';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
const CarouselStepTracker = _ref => {
|
|
7
|
+
const CarouselStepTracker = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
8
8
|
let {
|
|
9
9
|
variant
|
|
10
10
|
} = _ref;
|
|
@@ -33,6 +33,7 @@ const CarouselStepTracker = _ref => {
|
|
|
33
33
|
return /*#__PURE__*/_jsx(StackView, {
|
|
34
34
|
direction: "row",
|
|
35
35
|
tokens: stackViewTokens,
|
|
36
|
+
ref: ref,
|
|
36
37
|
children: /*#__PURE__*/_jsx(StepTracker, {
|
|
37
38
|
current: activeIndex,
|
|
38
39
|
steps: steps,
|
|
@@ -45,7 +46,8 @@ const CarouselStepTracker = _ref => {
|
|
|
45
46
|
variant: variant
|
|
46
47
|
})
|
|
47
48
|
});
|
|
48
|
-
};
|
|
49
|
+
});
|
|
50
|
+
CarouselStepTracker.displayName = 'CarouselStepTracker';
|
|
49
51
|
CarouselStepTracker.propTypes = {
|
|
50
52
|
variant: variantProp.propType
|
|
51
53
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var _CarouselTabs$propTyp, _CarouselTabs$propTyp2;
|
|
2
|
-
import React
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { useResponsiveProp } from '../../utils';
|
|
5
5
|
import Carousel from '../Carousel';
|
|
@@ -8,7 +8,7 @@ import Carousel from '../Carousel';
|
|
|
8
8
|
* @deprecated Please use Carousel and pass the `tabs` prop.
|
|
9
9
|
*/
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
const CarouselTabs = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
11
|
+
const CarouselTabs = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
12
12
|
let {
|
|
13
13
|
items,
|
|
14
14
|
refocus = true,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import View from "react-native-web/dist/exports/View";
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import StackView from '../../StackView';
|
|
@@ -9,7 +9,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
9
9
|
const selectTabPanelStyle = () => ({
|
|
10
10
|
backgroundColor: 'transparent'
|
|
11
11
|
});
|
|
12
|
-
const CarouselTabsPanel = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
12
|
+
const CarouselTabsPanel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
13
13
|
let {
|
|
14
14
|
items
|
|
15
15
|
} = _ref;
|
|
@@ -17,13 +17,13 @@ const CarouselTabsPanel = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
17
17
|
activeIndex,
|
|
18
18
|
goTo
|
|
19
19
|
} = useCarousel();
|
|
20
|
-
const nextFocusRef = useRef();
|
|
21
|
-
const firstTabRef = useRef();
|
|
22
|
-
const [isInverse, setIsInverse] = useState(false);
|
|
20
|
+
const nextFocusRef = React.useRef();
|
|
21
|
+
const firstTabRef = React.useRef();
|
|
22
|
+
const [isInverse, setIsInverse] = React.useState(false);
|
|
23
23
|
const lastTabSelected = activeIndex === items.length - 1;
|
|
24
24
|
|
|
25
25
|
// Get current select tab style
|
|
26
|
-
useEffect(() => {
|
|
26
|
+
React.useEffect(() => {
|
|
27
27
|
const [selectedVariantIsInverse] = items.filter((_, index) => index === activeIndex);
|
|
28
28
|
setIsInverse(selectedVariantIsInverse === null || selectedVariantIsInverse === void 0 ? void 0 : selectedVariantIsInverse.inverse);
|
|
29
29
|
}, [items, activeIndex]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import Pressable from "react-native-web/dist/exports/Pressable";
|
|
4
4
|
import Text from "react-native-web/dist/exports/Text";
|
|
@@ -60,7 +60,7 @@ const selectTextStyles = _ref2 => {
|
|
|
60
60
|
color
|
|
61
61
|
});
|
|
62
62
|
};
|
|
63
|
-
const CarouselTabsPanelItem = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
63
|
+
const CarouselTabsPanelItem = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
|
|
64
64
|
let {
|
|
65
65
|
title,
|
|
66
66
|
selected,
|
|
@@ -73,7 +73,7 @@ const CarouselTabsPanelItem = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
73
73
|
// Workaround for React Native Web https://github.com/necolas/react-native-web/issues/2357
|
|
74
74
|
// Don't allow disabled to be set while focus is true else focus state gets locked `true`
|
|
75
75
|
// (must refocus _after_ calling `goTo`, else focus target content is not up to date)
|
|
76
|
-
const [isFocused, setIsFocused] = useState(false);
|
|
76
|
+
const [isFocused, setIsFocused] = React.useState(false);
|
|
77
77
|
const disabled = (inactive || selected) && !isFocused;
|
|
78
78
|
const getTokens = useThemeTokensCallback('CarouselTabsPanelItem', tokens, variant);
|
|
79
79
|
const resolveTokens = pressState => getTokens(resolvePressableState(pressState, {
|