@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
package/lib/Carousel/Carousel.js
CHANGED
|
@@ -28,6 +28,11 @@ var _CarouselTabsPanelItem = _interopRequireDefault(require("./CarouselTabs/Caro
|
|
|
28
28
|
var _dictionary = _interopRequireDefault(require("./dictionary"));
|
|
29
29
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
30
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
|
+
const TRANSITION_MODES = {
|
|
32
|
+
MANUAL: 'manual',
|
|
33
|
+
AUTOMATIC: 'automatic',
|
|
34
|
+
SWIPE: 'swipe'
|
|
35
|
+
};
|
|
31
36
|
const staticStyles = _StyleSheet.default.create({
|
|
32
37
|
root: {
|
|
33
38
|
backgroundColor: 'transparent',
|
|
@@ -36,6 +41,12 @@ const staticStyles = _StyleSheet.default.create({
|
|
|
36
41
|
position: 'relative',
|
|
37
42
|
top: 0,
|
|
38
43
|
left: 0
|
|
44
|
+
},
|
|
45
|
+
animationControlButton: {
|
|
46
|
+
position: 'absolute',
|
|
47
|
+
zIndex: 1,
|
|
48
|
+
right: _Platform.default.OS === 'web' ? undefined : 40,
|
|
49
|
+
top: 40
|
|
39
50
|
}
|
|
40
51
|
});
|
|
41
52
|
const selectContainerStyles = width => ({
|
|
@@ -48,12 +59,29 @@ const selectSwipeAreaStyles = (count, width) => ({
|
|
|
48
59
|
justifyContent: 'space-between',
|
|
49
60
|
flexDirection: 'row'
|
|
50
61
|
});
|
|
62
|
+
const getDynamicPositionProperty = areStylesAppliedOnPreviousButton => areStylesAppliedOnPreviousButton ? 'left' : 'right';
|
|
63
|
+
const selectControlButtonPositionStyles = _ref => {
|
|
64
|
+
let {
|
|
65
|
+
positionVariant,
|
|
66
|
+
buttonWidth,
|
|
67
|
+
positionProperty = getDynamicPositionProperty(),
|
|
68
|
+
spaceBetweenSlideAndButton
|
|
69
|
+
} = _ref;
|
|
70
|
+
const styles = {};
|
|
71
|
+
if (positionVariant === 'edge') {
|
|
72
|
+
styles[positionProperty] = -1 * (buttonWidth / 2);
|
|
73
|
+
} else if (positionVariant === 'inside') {
|
|
74
|
+
styles[positionProperty] = 0;
|
|
75
|
+
} else if (positionVariant === 'outside') {
|
|
76
|
+
styles[positionProperty] = -1 * (spaceBetweenSlideAndButton + buttonWidth);
|
|
77
|
+
}
|
|
78
|
+
return styles;
|
|
79
|
+
};
|
|
51
80
|
const selectPreviousNextNavigationButtonStyles = (previousNextNavigationButtonWidth, previousNextNavigationPosition, spaceBetweenSlideAndPreviousNextNavigation, isFirstSlide, isLastSlide, areStylesAppliedOnPreviousButton) => {
|
|
52
81
|
const styles = {
|
|
53
82
|
zIndex: 1,
|
|
54
83
|
position: 'absolute'
|
|
55
84
|
};
|
|
56
|
-
const dynamicPositionProperty = areStylesAppliedOnPreviousButton ? 'left' : 'right';
|
|
57
85
|
if (isFirstSlide) {
|
|
58
86
|
styles.visibility = areStylesAppliedOnPreviousButton ? 'hidden' : 'visible';
|
|
59
87
|
} else if (isLastSlide) {
|
|
@@ -61,19 +89,20 @@ const selectPreviousNextNavigationButtonStyles = (previousNextNavigationButtonWi
|
|
|
61
89
|
} else {
|
|
62
90
|
styles.visibility = 'visible';
|
|
63
91
|
}
|
|
64
|
-
|
|
65
|
-
styles
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
92
|
+
return {
|
|
93
|
+
...styles,
|
|
94
|
+
...selectControlButtonPositionStyles({
|
|
95
|
+
positionVariant: previousNextNavigationPosition,
|
|
96
|
+
buttonWidth: previousNextNavigationButtonWidth,
|
|
97
|
+
positionProperty: getDynamicPositionProperty(areStylesAppliedOnPreviousButton),
|
|
98
|
+
spaceBetweenSlideAndButton: spaceBetweenSlideAndPreviousNextNavigation
|
|
99
|
+
})
|
|
100
|
+
};
|
|
72
101
|
};
|
|
73
|
-
const selectIconStyles =
|
|
102
|
+
const selectIconStyles = _ref2 => {
|
|
74
103
|
let {
|
|
75
104
|
iconBackgroundColor
|
|
76
|
-
} =
|
|
105
|
+
} = _ref2;
|
|
77
106
|
return {
|
|
78
107
|
backgroundColor: iconBackgroundColor
|
|
79
108
|
};
|
|
@@ -134,7 +163,7 @@ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_u
|
|
|
134
163
|
- `spaceBetweenSlideAndPreviousNextNavigation` - Horizontal space between slide and previous/next navigational buttons
|
|
135
164
|
- `spaceBetweenSlideAndPanelNavigation` - Vertical space between slide area and panel navigation area
|
|
136
165
|
*/
|
|
137
|
-
const Carousel = /*#__PURE__*/_react.default.forwardRef((
|
|
166
|
+
const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
|
|
138
167
|
let {
|
|
139
168
|
tokens,
|
|
140
169
|
variant,
|
|
@@ -164,8 +193,21 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
164
193
|
accessibilityLabel,
|
|
165
194
|
accessibilityLiveRegion = 'polite',
|
|
166
195
|
copy,
|
|
196
|
+
slideDuration = 0,
|
|
197
|
+
transitionDuration = 0,
|
|
198
|
+
autoPlay = false,
|
|
167
199
|
...rest
|
|
168
|
-
} =
|
|
200
|
+
} = _ref3;
|
|
201
|
+
let childrenArray = (0, _utils.unpackFragment)(children);
|
|
202
|
+
const autoPlayFeatureEnabled = autoPlay && slideDuration > 0 && transitionDuration > 0 && childrenArray.length > 1;
|
|
203
|
+
// if `Carousel` only has one `Carousel.Item`, convert this to a single-item array
|
|
204
|
+
if (!Array.isArray(childrenArray)) {
|
|
205
|
+
childrenArray = [childrenArray];
|
|
206
|
+
}
|
|
207
|
+
const getCopy = (0, _utils.useCopy)({
|
|
208
|
+
dictionary: _dictionary.default,
|
|
209
|
+
copy
|
|
210
|
+
});
|
|
169
211
|
const viewport = (0, _ViewportProvider.useViewport)();
|
|
170
212
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Carousel', tokens, variant, {
|
|
171
213
|
viewport
|
|
@@ -173,84 +215,53 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
173
215
|
const {
|
|
174
216
|
previousIcon,
|
|
175
217
|
nextIcon,
|
|
218
|
+
playIcon,
|
|
219
|
+
pauseIcon,
|
|
176
220
|
showPreviousNextNavigation,
|
|
177
221
|
showPanelNavigation,
|
|
178
222
|
showPanelTabs,
|
|
179
223
|
spaceBetweenSlideAndPreviousNextNavigation
|
|
180
224
|
} = themeTokens;
|
|
181
225
|
const [activeIndex, setActiveIndex] = _react.default.useState(0);
|
|
182
|
-
const
|
|
183
|
-
const handleAnimationStart = _react.default.useCallback(function () {
|
|
184
|
-
if (typeof onAnimationStart === 'function') onAnimationStart(...arguments);
|
|
185
|
-
setIsAnimating(true);
|
|
186
|
-
}, [onAnimationStart]);
|
|
187
|
-
const handleAnimationEnd = _react.default.useCallback(function () {
|
|
188
|
-
if (typeof onAnimationEnd === 'function') onAnimationEnd(...arguments);
|
|
189
|
-
setIsAnimating(false);
|
|
190
|
-
}, [onAnimationEnd]);
|
|
191
|
-
const getCopy = (0, _utils.useCopy)({
|
|
192
|
-
dictionary: _dictionary.default,
|
|
193
|
-
copy
|
|
194
|
-
});
|
|
195
|
-
let childrenArray = (0, _utils.unpackFragment)(children);
|
|
196
|
-
// if `Carousel` only has one `Carousel.Item`, convert this to a single-item array
|
|
197
|
-
if (!Array.isArray(childrenArray)) {
|
|
198
|
-
childrenArray = [childrenArray];
|
|
199
|
-
}
|
|
200
|
-
const systemProps = selectProps({
|
|
201
|
-
...rest,
|
|
202
|
-
accessibilityRole,
|
|
203
|
-
accessibilityLabel,
|
|
204
|
-
accessibilityValue: {
|
|
205
|
-
min: 1,
|
|
206
|
-
max: childrenArray.length,
|
|
207
|
-
now: activeIndex + 1
|
|
208
|
-
}
|
|
209
|
-
});
|
|
226
|
+
const activeIndexRef = _react.default.useRef(activeIndex);
|
|
210
227
|
const {
|
|
211
228
|
reduceMotionEnabled
|
|
212
229
|
} = (0, _A11yInfoProvider.useA11yInfo)();
|
|
230
|
+
const reduceMotionRef = _react.default.useRef(reduceMotionEnabled);
|
|
213
231
|
const [containerLayout, setContainerLayout] = _react.default.useState({
|
|
214
232
|
x: 0,
|
|
215
233
|
y: 0,
|
|
216
234
|
width: 0
|
|
217
235
|
});
|
|
236
|
+
const containerLayoutRef = _react.default.useRef(containerLayout);
|
|
218
237
|
const [previousNextNavigationButtonWidth, setPreviousNextNavigationButtonWidth] = _react.default.useState(0);
|
|
219
238
|
const firstFocusRef = _react.default.useRef(null);
|
|
220
239
|
const pan = _react.default.useRef(new _Animated.default.ValueXY()).current;
|
|
221
240
|
const animatedX = _react.default.useRef(0);
|
|
222
241
|
const animatedY = _react.default.useRef(0);
|
|
242
|
+
const [isAnimating, setIsAnimating] = _react.default.useState(false);
|
|
243
|
+
/**
|
|
244
|
+
* While having the same starting point, `isAutoPlayEnabled` and `isCarouselPlaying` are different states
|
|
245
|
+
*
|
|
246
|
+
* `isAutoPlayEnabled` is a state to determine if the autoplay feature is enabled or disabled
|
|
247
|
+
* `isCarouselPlaying` is a state to determine if the carousel is currently playing or paused
|
|
248
|
+
*/
|
|
249
|
+
const [isAutoPlayEnabled, setIsAutoPlayEnabled] = _react.default.useState(autoPlayFeatureEnabled);
|
|
250
|
+
const [isCarouselPlaying, setisCarouselPlaying] = _react.default.useState(autoPlayFeatureEnabled);
|
|
251
|
+
const isSwiping = _react.default.useRef(false);
|
|
252
|
+
const autoPlayRef = _react.default.useRef(null);
|
|
223
253
|
const isFirstSlide = !activeIndex;
|
|
224
|
-
const isLastSlide = activeIndex + 1 >=
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
234
|
-
} = _ref3;
|
|
235
|
-
return setContainerLayout(prevState => ({
|
|
236
|
-
...prevState,
|
|
237
|
-
x,
|
|
238
|
-
y,
|
|
239
|
-
width
|
|
240
|
-
}));
|
|
241
|
-
};
|
|
242
|
-
const onPreviousNextNavigationButtonLayout = _ref4 => {
|
|
243
|
-
let {
|
|
244
|
-
nativeEvent: {
|
|
245
|
-
layout: {
|
|
246
|
-
width
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
} = _ref4;
|
|
250
|
-
return setPreviousNextNavigationButtonWidth(width);
|
|
251
|
-
};
|
|
254
|
+
const isLastSlide = activeIndex + 1 >= childrenArray.length;
|
|
255
|
+
const handleAnimationStart = _react.default.useCallback(function () {
|
|
256
|
+
if (typeof onAnimationStart === 'function') onAnimationStart(...arguments);
|
|
257
|
+
setIsAnimating(true);
|
|
258
|
+
}, [onAnimationStart]);
|
|
259
|
+
const handleAnimationEnd = _react.default.useCallback(function () {
|
|
260
|
+
if (typeof onAnimationEnd === 'function') onAnimationEnd(...arguments);
|
|
261
|
+
setIsAnimating(false);
|
|
262
|
+
}, [onAnimationEnd]);
|
|
252
263
|
const updateOffset = _react.default.useCallback(() => {
|
|
253
|
-
animatedX.current =
|
|
264
|
+
animatedX.current = containerLayoutRef.current.width * activeIndexRef.current * -1;
|
|
254
265
|
animatedY.current = 0;
|
|
255
266
|
pan.setOffset({
|
|
256
267
|
x: animatedX.current,
|
|
@@ -260,7 +271,7 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
260
271
|
x: 0,
|
|
261
272
|
y: 0
|
|
262
273
|
});
|
|
263
|
-
}, [
|
|
274
|
+
}, [pan, animatedX]);
|
|
264
275
|
const animate = _react.default.useCallback((toValue, toIndex) => {
|
|
265
276
|
const handleAnimationEndToIndex = function () {
|
|
266
277
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
@@ -268,12 +279,19 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
268
279
|
}
|
|
269
280
|
return handleAnimationEnd(toIndex, ...args);
|
|
270
281
|
};
|
|
271
|
-
if (
|
|
282
|
+
if (reduceMotionRef.current || isSwiping.current) {
|
|
272
283
|
_Animated.default.timing(pan, {
|
|
273
284
|
toValue,
|
|
274
285
|
duration: 1,
|
|
275
286
|
useNativeDriver: false
|
|
276
287
|
}).start(handleAnimationEndToIndex);
|
|
288
|
+
} else if (isAutoPlayEnabled) {
|
|
289
|
+
_Animated.default.timing(pan, {
|
|
290
|
+
...springConfig,
|
|
291
|
+
toValue,
|
|
292
|
+
useNativeDriver: false,
|
|
293
|
+
duration: transitionDuration * 1000
|
|
294
|
+
}).start(handleAnimationEndToIndex);
|
|
277
295
|
} else {
|
|
278
296
|
_Animated.default.spring(pan, {
|
|
279
297
|
...springConfig,
|
|
@@ -281,44 +299,162 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
281
299
|
useNativeDriver: false
|
|
282
300
|
}).start(handleAnimationEndToIndex);
|
|
283
301
|
}
|
|
284
|
-
}, [pan, springConfig,
|
|
302
|
+
}, [pan, springConfig, handleAnimationEnd, transitionDuration, isAutoPlayEnabled]);
|
|
303
|
+
const stopAutoplay = _react.default.useCallback(() => {
|
|
304
|
+
if (autoPlayRef !== null && autoPlayRef !== void 0 && autoPlayRef.current) {
|
|
305
|
+
clearTimeout(autoPlayRef === null || autoPlayRef === void 0 ? void 0 : autoPlayRef.current);
|
|
306
|
+
}
|
|
307
|
+
}, []);
|
|
308
|
+
const triggerRefocus = _react.default.useCallback(() => {
|
|
309
|
+
if (refocus && _Platform.default.OS === 'web') {
|
|
310
|
+
var _firstFocusRef$curren;
|
|
311
|
+
(_firstFocusRef$curren = firstFocusRef.current) === null || _firstFocusRef$curren === void 0 ? void 0 : _firstFocusRef$curren.focus({
|
|
312
|
+
preventScroll: true,
|
|
313
|
+
focusVisible: false
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}, [refocus, firstFocusRef]);
|
|
285
317
|
const updateIndex = _react.default.useCallback(function () {
|
|
286
318
|
let delta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
319
|
+
let transitionMode = arguments.length > 1 ? arguments[1] : undefined;
|
|
287
320
|
const toValue = {
|
|
288
321
|
x: 0,
|
|
289
322
|
y: 0
|
|
290
323
|
};
|
|
291
324
|
let skipChanges = !delta;
|
|
292
325
|
let calcDelta = delta;
|
|
293
|
-
if (
|
|
294
|
-
skipChanges =
|
|
295
|
-
calcDelta =
|
|
296
|
-
} else if (
|
|
297
|
-
skipChanges =
|
|
298
|
-
calcDelta = -1 *
|
|
326
|
+
if (activeIndexRef.current <= 0 && delta < 0) {
|
|
327
|
+
skipChanges = transitionMode !== TRANSITION_MODES.AUTOMATIC;
|
|
328
|
+
calcDelta = childrenArray.length + delta;
|
|
329
|
+
} else if (activeIndexRef.current + 1 >= childrenArray.length && delta > 0) {
|
|
330
|
+
skipChanges = transitionMode !== TRANSITION_MODES.AUTOMATIC;
|
|
331
|
+
calcDelta = -1 * activeIndexRef.current + delta - 1;
|
|
299
332
|
}
|
|
300
|
-
const index =
|
|
333
|
+
const index = activeIndexRef.current + calcDelta;
|
|
301
334
|
if (skipChanges) {
|
|
302
335
|
animate(toValue, index);
|
|
303
336
|
return calcDelta;
|
|
304
337
|
}
|
|
338
|
+
stopAutoplay();
|
|
305
339
|
setActiveIndex(index);
|
|
306
|
-
toValue.x =
|
|
340
|
+
toValue.x = containerLayoutRef.current.width * -1 * calcDelta;
|
|
307
341
|
animate(toValue, index);
|
|
342
|
+
if (isCarouselPlaying) {
|
|
343
|
+
stopAutoplay();
|
|
344
|
+
if (index === 0 && activeIndexRef.current + 1 === childrenArray.length && transitionMode === TRANSITION_MODES.AUTOMATIC) {
|
|
345
|
+
setisCarouselPlaying(false);
|
|
346
|
+
} else if (isAutoPlayEnabled) {
|
|
347
|
+
autoPlayRef.current = setTimeout(() => {
|
|
348
|
+
updateOffset();
|
|
349
|
+
handleAnimationStart(activeIndexRef.current);
|
|
350
|
+
updateIndex(slideDuration < 0 ? -1 : 1, TRANSITION_MODES.AUTOMATIC);
|
|
351
|
+
triggerRefocus();
|
|
352
|
+
}, Math.abs(slideDuration) * 1000);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
308
355
|
if (onIndexChanged) onIndexChanged(calcDelta, index);
|
|
309
356
|
return calcDelta;
|
|
310
|
-
}, [
|
|
311
|
-
const
|
|
312
|
-
|
|
357
|
+
}, [handleAnimationStart, triggerRefocus, slideDuration, updateOffset, animate, childrenArray.length, onIndexChanged, isCarouselPlaying, stopAutoplay, isAutoPlayEnabled]);
|
|
358
|
+
const startAutoplay = _react.default.useCallback(() => {
|
|
359
|
+
stopAutoplay();
|
|
360
|
+
if (isAutoPlayEnabled) {
|
|
361
|
+
autoPlayRef.current = setTimeout(() => {
|
|
362
|
+
updateOffset();
|
|
363
|
+
handleAnimationStart(activeIndexRef.current);
|
|
364
|
+
updateIndex(slideDuration < 0 ? -1 : 1, TRANSITION_MODES.AUTOMATIC);
|
|
365
|
+
triggerRefocus();
|
|
366
|
+
}, Math.abs(slideDuration) * 1000);
|
|
367
|
+
}
|
|
368
|
+
}, [handleAnimationStart, triggerRefocus, updateIndex, updateOffset, slideDuration, stopAutoplay, isAutoPlayEnabled]);
|
|
369
|
+
const fixOffsetAndGo = _react.default.useCallback((delta, transitionMode) => {
|
|
313
370
|
updateOffset();
|
|
314
|
-
handleAnimationStart(
|
|
315
|
-
updateIndex(delta);
|
|
316
|
-
|
|
317
|
-
}, [updateIndex, updateOffset,
|
|
371
|
+
handleAnimationStart(activeIndexRef.current);
|
|
372
|
+
updateIndex(delta, transitionMode);
|
|
373
|
+
triggerRefocus();
|
|
374
|
+
}, [updateIndex, updateOffset, handleAnimationStart, triggerRefocus]);
|
|
318
375
|
const goToNeighboring = _react.default.useCallback(function () {
|
|
319
376
|
let toPrev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
320
|
-
|
|
377
|
+
let transitionMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TRANSITION_MODES.MANUAL;
|
|
378
|
+
fixOffsetAndGo(toPrev ? -1 : 1, transitionMode);
|
|
321
379
|
}, [fixOffsetAndGo]);
|
|
380
|
+
_react.default.useEffect(() => {
|
|
381
|
+
activeIndexRef.current = activeIndex;
|
|
382
|
+
}, [activeIndex]);
|
|
383
|
+
_react.default.useEffect(() => {
|
|
384
|
+
reduceMotionRef.current = reduceMotionEnabled;
|
|
385
|
+
}, [reduceMotionEnabled]);
|
|
386
|
+
_react.default.useEffect(() => {
|
|
387
|
+
containerLayoutRef.current = containerLayout;
|
|
388
|
+
}, [containerLayout]);
|
|
389
|
+
_react.default.useEffect(() => {
|
|
390
|
+
pan.x.addListener(_ref4 => {
|
|
391
|
+
let {
|
|
392
|
+
value
|
|
393
|
+
} = _ref4;
|
|
394
|
+
animatedX.current = value;
|
|
395
|
+
});
|
|
396
|
+
pan.y.addListener(_ref5 => {
|
|
397
|
+
let {
|
|
398
|
+
value
|
|
399
|
+
} = _ref5;
|
|
400
|
+
animatedY.current = value;
|
|
401
|
+
});
|
|
402
|
+
if (isCarouselPlaying) {
|
|
403
|
+
startAutoplay();
|
|
404
|
+
}
|
|
405
|
+
return () => {
|
|
406
|
+
stopAutoplay();
|
|
407
|
+
pan.x.removeAllListeners();
|
|
408
|
+
pan.y.removeAllListeners();
|
|
409
|
+
};
|
|
410
|
+
}, [pan.x, pan.y, startAutoplay, stopAutoplay, isCarouselPlaying]);
|
|
411
|
+
_react.default.useEffect(() => {
|
|
412
|
+
const subscription = _Dimensions.default.addEventListener('change', () => {
|
|
413
|
+
updateOffset();
|
|
414
|
+
});
|
|
415
|
+
return () => {
|
|
416
|
+
if (subscription.remove) {
|
|
417
|
+
subscription.remove();
|
|
418
|
+
} else {
|
|
419
|
+
_Dimensions.default.removeEventListener('change', updateOffset);
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
}, [updateOffset]);
|
|
423
|
+
_react.default.useEffect(() => {
|
|
424
|
+
setIsAutoPlayEnabled(autoPlay && slideDuration > 0 && transitionDuration > 0 && childrenArray.length > 1);
|
|
425
|
+
}, [autoPlay, slideDuration, transitionDuration, childrenArray.length]);
|
|
426
|
+
_react.default.useEffect(() => {
|
|
427
|
+
return () => {
|
|
428
|
+
stopAutoplay();
|
|
429
|
+
};
|
|
430
|
+
}, [stopAutoplay]);
|
|
431
|
+
const onContainerLayout = _ref6 => {
|
|
432
|
+
let {
|
|
433
|
+
nativeEvent: {
|
|
434
|
+
layout: {
|
|
435
|
+
x,
|
|
436
|
+
y,
|
|
437
|
+
width
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
} = _ref6;
|
|
441
|
+
return setContainerLayout(prevState => ({
|
|
442
|
+
...prevState,
|
|
443
|
+
x,
|
|
444
|
+
y,
|
|
445
|
+
width
|
|
446
|
+
}));
|
|
447
|
+
};
|
|
448
|
+
const onPreviousNextNavigationButtonLayout = _ref7 => {
|
|
449
|
+
let {
|
|
450
|
+
nativeEvent: {
|
|
451
|
+
layout: {
|
|
452
|
+
width
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
} = _ref7;
|
|
456
|
+
return setPreviousNextNavigationButtonWidth(width);
|
|
457
|
+
};
|
|
322
458
|
const isSwipeAllowed = _react.default.useCallback(() => {
|
|
323
459
|
if (childrenArray.length === 1) {
|
|
324
460
|
return false;
|
|
@@ -335,52 +471,39 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
335
471
|
if (!isSwipeAllowed()) {
|
|
336
472
|
return false;
|
|
337
473
|
}
|
|
338
|
-
handleAnimationStart(
|
|
339
|
-
|
|
474
|
+
handleAnimationStart(activeIndexRef.current);
|
|
475
|
+
const allow = Math.abs(gestureState.dx) > minDistanceToCapture;
|
|
476
|
+
if (allow) {
|
|
477
|
+
isSwiping.current = true;
|
|
478
|
+
stopAutoplay();
|
|
479
|
+
}
|
|
480
|
+
return allow;
|
|
481
|
+
},
|
|
482
|
+
onPanResponderGrant: () => {
|
|
483
|
+
updateOffset();
|
|
340
484
|
},
|
|
341
|
-
onPanResponderGrant: () => updateOffset(),
|
|
342
485
|
onPanResponderMove: _Animated.default.event([null, {
|
|
343
486
|
dx: pan.x
|
|
344
487
|
}], {
|
|
345
488
|
useNativeDriver: false
|
|
346
489
|
}),
|
|
347
490
|
onPanResponderRelease: (_, gesture) => {
|
|
491
|
+
if (isCarouselPlaying) {
|
|
492
|
+
startAutoplay();
|
|
493
|
+
}
|
|
348
494
|
const correction = gesture.moveX - gesture.x0;
|
|
349
|
-
if (Math.abs(correction) <
|
|
495
|
+
if (Math.abs(correction) < containerLayoutRef.current.width * minDistanceForAction) {
|
|
350
496
|
animate({
|
|
351
497
|
x: 0,
|
|
352
498
|
y: 0
|
|
353
499
|
}, 0);
|
|
354
500
|
} else {
|
|
355
501
|
const delta = correction > 0 ? -1 : 1;
|
|
356
|
-
updateIndex(delta);
|
|
502
|
+
updateIndex(delta, TRANSITION_MODES.SWIPE);
|
|
357
503
|
}
|
|
504
|
+
isSwiping.current = false;
|
|
358
505
|
}
|
|
359
|
-
}), [
|
|
360
|
-
_react.default.useEffect(() => {
|
|
361
|
-
pan.x.addListener(_ref5 => {
|
|
362
|
-
let {
|
|
363
|
-
value
|
|
364
|
-
} = _ref5;
|
|
365
|
-
animatedX.current = value;
|
|
366
|
-
});
|
|
367
|
-
pan.y.addListener(_ref6 => {
|
|
368
|
-
let {
|
|
369
|
-
value
|
|
370
|
-
} = _ref6;
|
|
371
|
-
animatedY.current = value;
|
|
372
|
-
});
|
|
373
|
-
return () => {
|
|
374
|
-
pan.x.removeAllListeners();
|
|
375
|
-
pan.y.removeAllListeners();
|
|
376
|
-
};
|
|
377
|
-
}, [pan.x, pan.y]);
|
|
378
|
-
_react.default.useEffect(() => {
|
|
379
|
-
const subscription = _Dimensions.default.addEventListener('change', () => {
|
|
380
|
-
updateOffset();
|
|
381
|
-
});
|
|
382
|
-
return () => subscription === null || subscription === void 0 ? void 0 : subscription.remove();
|
|
383
|
-
});
|
|
506
|
+
}), [updateIndex, updateOffset, animate, isSwipeAllowed, minDistanceForAction, handleAnimationStart, minDistanceToCapture, pan.x, startAutoplay, stopAutoplay, isCarouselPlaying]);
|
|
384
507
|
const goToNext = _react.default.useCallback(() => {
|
|
385
508
|
goToNeighboring();
|
|
386
509
|
}, [goToNeighboring]);
|
|
@@ -389,11 +512,11 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
389
512
|
}, [goToNeighboring]);
|
|
390
513
|
const goTo = _react.default.useCallback(function () {
|
|
391
514
|
let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
392
|
-
const delta = index -
|
|
515
|
+
const delta = index - activeIndexRef.current;
|
|
393
516
|
if (delta) {
|
|
394
|
-
fixOffsetAndGo(delta);
|
|
517
|
+
fixOffsetAndGo(delta, TRANSITION_MODES.MANUAL);
|
|
395
518
|
}
|
|
396
|
-
}, [fixOffsetAndGo
|
|
519
|
+
}, [fixOffsetAndGo]);
|
|
397
520
|
|
|
398
521
|
// @TODO: - these are Allium-theme variants and won't have any effect in themes that don't implement them.
|
|
399
522
|
// Normally we avoid setting variants of subcomponents, however this could be re-considered.
|
|
@@ -426,6 +549,17 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
426
549
|
}
|
|
427
550
|
}
|
|
428
551
|
};
|
|
552
|
+
const systemProps = selectProps({
|
|
553
|
+
...rest,
|
|
554
|
+
accessibilityRole,
|
|
555
|
+
accessibilityLabel,
|
|
556
|
+
accessibilityValue: {
|
|
557
|
+
min: 1,
|
|
558
|
+
max: childrenArray.length,
|
|
559
|
+
now: activeIndex + 1
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
|
|
429
563
|
// If container isn't used for focus, give it a label of title if none is passed in,
|
|
430
564
|
// otherwise read the current position on focus
|
|
431
565
|
const containerAccessibilityLabel = systemProps.accessibilityLabel ?? isFirstFocusContainer ? `${title ? `${title} ` : ''}${getCopyWithPlaceholders('stepTrackerLabel')}` : title;
|
|
@@ -437,6 +571,14 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
437
571
|
focusable: true
|
|
438
572
|
})
|
|
439
573
|
};
|
|
574
|
+
const onAnimationControlButtonPress = _react.default.useCallback(() => {
|
|
575
|
+
if (isCarouselPlaying) {
|
|
576
|
+
stopAutoplay();
|
|
577
|
+
} else {
|
|
578
|
+
startAutoplay();
|
|
579
|
+
}
|
|
580
|
+
setisCarouselPlaying(prevState => !prevState);
|
|
581
|
+
}, [isCarouselPlaying, stopAutoplay, startAutoplay]);
|
|
440
582
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CarouselContext.CarouselProvider, {
|
|
441
583
|
activeIndex: activeIndex,
|
|
442
584
|
goTo: goTo,
|
|
@@ -448,12 +590,30 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
448
590
|
refocus: refocus,
|
|
449
591
|
width: containerLayout.width,
|
|
450
592
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
451
|
-
style: staticStyles.root,
|
|
593
|
+
style: [staticStyles.root, {
|
|
594
|
+
..._Platform.default.select({
|
|
595
|
+
web: {
|
|
596
|
+
outline: 'none'
|
|
597
|
+
}
|
|
598
|
+
})
|
|
599
|
+
}],
|
|
452
600
|
onLayout: onContainerLayout,
|
|
453
601
|
ref: ref,
|
|
454
602
|
...systemProps,
|
|
455
603
|
...containerProps,
|
|
456
|
-
children: [
|
|
604
|
+
children: [isAutoPlayEnabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
605
|
+
style: [staticStyles.animationControlButton, selectControlButtonPositionStyles({
|
|
606
|
+
positionVariant: previousNextNavigationPosition,
|
|
607
|
+
buttonWidth: previousNextNavigationButtonWidth,
|
|
608
|
+
positionProperty: getDynamicPositionProperty(),
|
|
609
|
+
spaceBetweenSlideAndButton: spaceBetweenSlideAndPreviousNextNavigation
|
|
610
|
+
})],
|
|
611
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
612
|
+
icon: isCarouselPlaying ? pauseIcon : playIcon,
|
|
613
|
+
variant: previousNextIconButtonVariants,
|
|
614
|
+
onPress: onAnimationControlButtonPress
|
|
615
|
+
})
|
|
616
|
+
}) : null, showPreviousNextNavigation && childrenArray.length > 1 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
457
617
|
style: selectPreviousNextNavigationButtonStyles(previousNextNavigationButtonWidth, previousNextNavigationPosition, spaceBetweenSlideAndPreviousNextNavigation, isFirstSlide, isLastSlide, true),
|
|
458
618
|
testID: "previous-button-container",
|
|
459
619
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
@@ -477,7 +637,7 @@ const Carousel = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
|
477
637
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
478
638
|
style: selectContainerStyles(containerLayout.width),
|
|
479
639
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
|
|
480
|
-
style: _StyleSheet.default.flatten([selectSwipeAreaStyles(
|
|
640
|
+
style: _StyleSheet.default.flatten([selectSwipeAreaStyles(childrenArray.length, containerLayout.width), {
|
|
481
641
|
transform: [{
|
|
482
642
|
translateX: pan.x
|
|
483
643
|
}, {
|
|
@@ -579,7 +739,7 @@ Carousel.propTypes = {
|
|
|
579
739
|
* <Carousel.Item>First Slide</Carousel.Item>
|
|
580
740
|
* </Carousel>
|
|
581
741
|
* ```
|
|
582
|
-
* Caution: Always consider wrapping your callback for `onIndexChanged` in `useCallback` in order to avoid bugs and performance issues
|
|
742
|
+
* Caution: Always consider wrapping your callback for `onIndexChanged` in `React.useCallback` in order to avoid bugs and performance issues
|
|
583
743
|
*/
|
|
584
744
|
onIndexChanged: _propTypes.default.func,
|
|
585
745
|
/**
|
|
@@ -630,7 +790,7 @@ Carousel.propTypes = {
|
|
|
630
790
|
* <Carousel.Item>First Slide</Carousel.Item>
|
|
631
791
|
* </Carousel>
|
|
632
792
|
* ```
|
|
633
|
-
* Caution: Always consider wrapping your callback for `onAnimationStart` in `useCallback` in order to avoid bugs and performance issues
|
|
793
|
+
* Caution: Always consider wrapping your callback for `onAnimationStart` in `React.useCallback` in order to avoid bugs and performance issues
|
|
634
794
|
*/
|
|
635
795
|
onAnimationStart: _propTypes.default.func,
|
|
636
796
|
/**
|
|
@@ -647,7 +807,7 @@ Carousel.propTypes = {
|
|
|
647
807
|
* <Carousel.Item>First Slide</Carousel.Item>
|
|
648
808
|
* </Carousel>
|
|
649
809
|
* ```
|
|
650
|
-
* Caution: Always consider wrapping your callback for `onAnimationEnd` in `useCallback` in order to avoid bugs and performance issues
|
|
810
|
+
* Caution: Always consider wrapping your callback for `onAnimationEnd` in `React.useCallback` in order to avoid bugs and performance issues
|
|
651
811
|
*/
|
|
652
812
|
onAnimationEnd: _propTypes.default.func,
|
|
653
813
|
/**
|
|
@@ -676,7 +836,26 @@ Carousel.propTypes = {
|
|
|
676
836
|
* Note that if the immediate Carousel children do not all render as `'li'` elements,
|
|
677
837
|
* this should be changed (e.g. pass tag="div") because only 'li' is a valid child of 'ul'.
|
|
678
838
|
*/
|
|
679
|
-
tag: _propTypes.default.oneOf(_utils.layoutTags)
|
|
839
|
+
tag: _propTypes.default.oneOf(_utils.layoutTags),
|
|
840
|
+
/**
|
|
841
|
+
* If set to `true`, the Carousel will automatically transition between slides
|
|
842
|
+
* and show the play/pause button
|
|
843
|
+
* - Default value is `false`
|
|
844
|
+
* - `slideDuration` and `transitionDuration` are required to be set for this to work
|
|
845
|
+
*/
|
|
846
|
+
autoPlay: _propTypes.default.bool,
|
|
847
|
+
/**
|
|
848
|
+
* Duration of the time in seconds spent on each slide
|
|
849
|
+
* - Default value is `0`
|
|
850
|
+
* - `autoPlay` and `transitionDuration` are required to be set for this to work
|
|
851
|
+
*/
|
|
852
|
+
slideDuration: _propTypes.default.number,
|
|
853
|
+
/**
|
|
854
|
+
* Duration of the time in seconds between each slide transition
|
|
855
|
+
* - Default value is `0`
|
|
856
|
+
* - `autoPlay` and `slideDuration` are required to be set for this to work
|
|
857
|
+
*/
|
|
858
|
+
transitionDuration: _propTypes.default.number
|
|
680
859
|
};
|
|
681
860
|
Carousel.Item = _CarouselItem.default;
|
|
682
861
|
Carousel.displayName = 'Carousel';
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
|
|
9
9
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
10
10
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
@@ -12,14 +12,12 @@ var _propTypes = require("prop-types");
|
|
|
12
12
|
var _CarouselContext = require("../CarouselContext");
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
15
|
/**
|
|
18
16
|
* Focus target so that when a new slide is shown, the user can tab into
|
|
19
17
|
* its content using the keyboard.
|
|
20
18
|
*
|
|
21
19
|
* @TODO rework this after integrating with SkipLink when available.
|
|
22
|
-
*/const CarouselFirstFocus = /*#__PURE__*/
|
|
20
|
+
*/const CarouselFirstFocus = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
23
21
|
let {
|
|
24
22
|
title
|
|
25
23
|
} = _ref;
|