@telus-uds/components-base 1.83.0 → 1.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -2
- package/lib/A11yInfoProvider/index.js +8 -10
- package/lib/A11yText/index.js +2 -4
- package/lib/ActivityIndicator/Spinner.js +3 -4
- package/lib/ActivityIndicator/Spinner.native.js +2 -4
- package/lib/Autocomplete/Autocomplete.js +13 -17
- package/lib/Autocomplete/Loading.js +4 -2
- package/lib/Autocomplete/Suggestions.js +2 -4
- package/lib/Badge/Badge.js +2 -4
- package/lib/BaseProvider/HydrationContext.js +5 -7
- package/lib/Box/Box.js +5 -7
- package/lib/Button/Button.js +3 -3
- package/lib/Button/ButtonBase.js +2 -7
- package/lib/Button/ButtonDropdown.js +3 -3
- package/lib/Button/ButtonGroup.js +11 -4
- package/lib/Button/ButtonLink.js +3 -3
- package/lib/Card/Card.js +159 -16
- package/lib/Card/CardBase.js +2 -4
- package/lib/Card/PressableCardBase.js +3 -5
- package/lib/CardGroup/CardGroup.js +220 -0
- package/lib/CardGroup/dictionary.js +15 -0
- package/lib/CardGroup/index.js +10 -0
- package/lib/Carousel/Carousel.js +308 -129
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -4
- package/lib/Carousel/CarouselItem/CarouselItem.js +3 -2
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +2 -4
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -8
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -5
- package/lib/Carousel/CarouselThumbnail.js +4 -2
- package/lib/Carousel/CarouselThumbnailNavigation.js +2 -4
- package/lib/Checkbox/Checkbox.js +2 -4
- package/lib/Checkbox/CheckboxButton.js +3 -5
- package/lib/Checkbox/CheckboxGroup.js +2 -4
- package/lib/Checkbox/CheckboxInput.js +4 -14
- package/lib/CheckboxCard/CheckboxCard.js +3 -3
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +3 -3
- package/lib/ColourToggle/ColourBubble.js +5 -6
- package/lib/ColourToggle/ColourToggle.js +3 -5
- package/lib/Divider/Divider.js +2 -4
- package/lib/ExpandCollapse/Accordion.js +2 -4
- package/lib/ExpandCollapse/Control.js +2 -4
- package/lib/ExpandCollapse/ExpandCollapse.js +20 -13
- package/lib/ExpandCollapse/Panel.js +15 -5
- package/lib/ExpandCollapse/dictionary.js +17 -0
- package/lib/Feedback/Feedback.js +2 -4
- package/lib/Fieldset/Fieldset.js +2 -4
- package/lib/Fieldset/FieldsetContainer.js +2 -4
- package/lib/Fieldset/FieldsetContainer.native.js +2 -4
- package/lib/Fieldset/Legend.js +2 -4
- package/lib/Fieldset/Legend.native.js +2 -4
- package/lib/FlexGrid/Col/Col.js +3 -5
- package/lib/FlexGrid/FlexGrid.js +2 -4
- package/lib/FlexGrid/Row/Row.js +2 -4
- package/lib/Footnote/Footnote.js +9 -9
- package/lib/Footnote/FootnoteLink.js +5 -3
- package/lib/HorizontalScroll/HorizontalScroll.js +8 -10
- package/lib/HorizontalScroll/HorizontalScrollButton.js +2 -4
- package/lib/HorizontalScroll/ScrollViewEnd.js +5 -10
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +2 -4
- package/lib/Icon/Icon.js +2 -4
- package/lib/Icon/IconText.js +6 -6
- package/lib/IconButton/IconButton.js +2 -4
- package/lib/InputLabel/InputLabel.js +2 -4
- package/lib/InputLabel/LabelContent.js +2 -4
- package/lib/InputLabel/LabelContent.native.js +2 -4
- package/lib/InputSupports/InputSupports.js +4 -5
- package/lib/Link/ChevronLink.js +2 -4
- package/lib/Link/InlinePressable.js +8 -7
- package/lib/Link/InlinePressable.native.js +10 -8
- package/lib/Link/Link.js +2 -4
- package/lib/Link/LinkBase.js +2 -4
- package/lib/Link/TextButton.js +2 -4
- package/lib/List/List.js +13 -11
- package/lib/List/ListItem.js +2 -4
- package/lib/List/ListItemBase.js +6 -10
- package/lib/List/ListItemContent.js +4 -2
- package/lib/List/ListItemMark.js +4 -2
- package/lib/List/PressableListItemBase.js +2 -4
- package/lib/Listbox/GroupControl.js +4 -2
- package/lib/Listbox/Listbox.js +6 -6
- package/lib/Listbox/ListboxContext.js +3 -4
- package/lib/Listbox/ListboxGroup.js +2 -4
- package/lib/Listbox/ListboxItem.js +2 -6
- package/lib/Listbox/ListboxOverlay.js +2 -6
- package/lib/Listbox/PressableItem.js +2 -6
- package/lib/Modal/Modal.js +5 -7
- package/lib/Modal/ModalContent.js +7 -7
- package/lib/Modal/WebModal.js +19 -10
- package/lib/MultiSelectFilter/ModalOverlay.js +2 -4
- package/lib/MultiSelectFilter/MultiSelectFilter.js +10 -10
- package/lib/Notification/Notification.js +5 -7
- package/lib/OrderedList/Item.js +4 -10
- package/lib/OrderedList/ItemBase.js +2 -4
- package/lib/OrderedList/OrderedList.js +5 -13
- package/lib/OrderedList/OrderedListBase.js +2 -4
- package/lib/Pagination/PageButton.js +1 -1
- package/lib/Pagination/Pagination.js +1 -1
- package/lib/Pagination/SideButton.js +2 -4
- package/lib/PriceLockup/PriceLockup.js +5 -5
- package/lib/ProductCard/ProductCard.js +3 -2
- package/lib/ProductCardGroup/ProductCardGroup.js +5 -6
- package/lib/Progress/Progress.js +2 -4
- package/lib/Progress/ProgressBar.js +2 -4
- package/lib/Progress/ProgressBarBackground.js +2 -4
- package/lib/QuickLinks/QuickLinks.js +2 -4
- package/lib/QuickLinks/QuickLinksCard.js +4 -2
- package/lib/QuickLinks/QuickLinksItem.js +2 -4
- package/lib/QuickLinksFeature/QuickLinksFeature.js +9 -7
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +10 -12
- package/lib/Radio/Radio.js +3 -3
- package/lib/Radio/RadioButton.js +61 -15
- package/lib/Radio/RadioGroup.js +2 -4
- package/lib/Radio/RadioInput.js +6 -18
- package/lib/RadioCard/RadioCard.js +3 -3
- package/lib/RadioCard/RadioCardGroup.js +3 -3
- package/lib/Responsive/Responsive.js +3 -2
- package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
- package/lib/Search/Search.js +2 -4
- package/lib/Select/Group.js +4 -2
- package/lib/Select/Item.js +4 -2
- package/lib/Select/Picker.js +2 -4
- package/lib/Select/Picker.native.js +3 -5
- package/lib/Select/Select.js +4 -6
- package/lib/SideNav/Item.js +2 -4
- package/lib/SideNav/ItemContent.js +4 -2
- package/lib/SideNav/ItemsGroup.js +2 -4
- package/lib/SideNav/SideNav.js +2 -2
- package/lib/Skeleton/Skeleton.js +2 -4
- package/lib/SkipLink/SkipLink.js +2 -4
- package/lib/Spacer/Spacer.js +2 -4
- package/lib/StackView/StackView.js +2 -4
- package/lib/StackView/StackWrap.js +3 -5
- package/lib/StackView/StackWrapBox.js +2 -4
- package/lib/StackView/StackWrapGap.js +2 -4
- package/lib/StackView/getStackedContent.js +3 -3
- package/lib/StepTracker/Step.js +4 -2
- package/lib/StepTracker/StepTracker.js +2 -4
- package/lib/Tabs/Tabs.js +4 -4
- package/lib/Tabs/TabsItem.js +3 -5
- package/lib/Tags/Tags.js +2 -4
- package/lib/TextInput/TextArea.js +3 -5
- package/lib/TextInput/TextInput.js +2 -4
- package/lib/TextInput/TextInputBase.js +7 -9
- package/lib/ThemeProvider/ThemeProvider.js +5 -7
- package/lib/Timeline/Timeline.js +2 -4
- package/lib/ToggleSwitch/ToggleSwitch.js +2 -4
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +2 -4
- package/lib/Tooltip/Tooltip.js +6 -8
- package/lib/Tooltip/Tooltip.native.js +12 -14
- package/lib/TooltipButton/TooltipButton.js +4 -2
- package/lib/Typography/Typography.js +2 -4
- package/lib/Validator/Validator.js +11 -13
- package/lib/ViewportProvider/ViewportProvider.js +2 -4
- package/lib/index.js +8 -0
- package/lib/utils/BaseView/BaseView.js +2 -4
- package/lib/utils/children.js +4 -6
- package/lib/utils/withLinkRouter.js +3 -5
- package/lib-module/A11yInfoProvider/index.js +8 -8
- package/lib-module/A11yText/index.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.native.js +2 -2
- package/lib-module/Autocomplete/Autocomplete.js +13 -14
- package/lib-module/Autocomplete/Loading.js +4 -2
- package/lib-module/Autocomplete/Suggestions.js +2 -2
- package/lib-module/Badge/Badge.js +2 -2
- package/lib-module/BaseProvider/HydrationContext.js +5 -5
- package/lib-module/Box/Box.js +5 -5
- package/lib-module/Button/Button.js +2 -2
- package/lib-module/Button/ButtonBase.js +2 -5
- package/lib-module/Button/ButtonDropdown.js +2 -2
- package/lib-module/Button/ButtonGroup.js +11 -2
- package/lib-module/Button/ButtonLink.js +2 -2
- package/lib-module/Card/Card.js +159 -14
- package/lib-module/Card/CardBase.js +2 -2
- package/lib-module/Card/PressableCardBase.js +4 -4
- package/lib-module/CardGroup/CardGroup.js +210 -0
- package/lib-module/CardGroup/dictionary.js +8 -0
- package/lib-module/CardGroup/index.js +2 -0
- package/lib-module/Carousel/Carousel.js +308 -129
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -2
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +3 -2
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +2 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -6
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -3
- package/lib-module/Carousel/CarouselThumbnail.js +4 -2
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +2 -2
- package/lib-module/Checkbox/Checkbox.js +2 -2
- package/lib-module/Checkbox/CheckboxButton.js +3 -3
- package/lib-module/Checkbox/CheckboxGroup.js +2 -2
- package/lib-module/Checkbox/CheckboxInput.js +4 -12
- package/lib-module/CheckboxCard/CheckboxCard.js +2 -2
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +2 -2
- package/lib-module/ColourToggle/ColourBubble.js +5 -4
- package/lib-module/ColourToggle/ColourToggle.js +3 -3
- package/lib-module/Divider/Divider.js +2 -2
- package/lib-module/ExpandCollapse/Accordion.js +2 -2
- package/lib-module/ExpandCollapse/Control.js +2 -2
- package/lib-module/ExpandCollapse/ExpandCollapse.js +20 -11
- package/lib-module/ExpandCollapse/Panel.js +16 -4
- package/lib-module/ExpandCollapse/dictionary.js +10 -0
- package/lib-module/Feedback/Feedback.js +2 -2
- package/lib-module/Fieldset/Fieldset.js +2 -2
- package/lib-module/Fieldset/FieldsetContainer.js +2 -2
- package/lib-module/Fieldset/FieldsetContainer.native.js +2 -2
- package/lib-module/Fieldset/Legend.js +2 -2
- package/lib-module/Fieldset/Legend.native.js +2 -2
- package/lib-module/FlexGrid/Col/Col.js +3 -3
- package/lib-module/FlexGrid/FlexGrid.js +2 -2
- package/lib-module/FlexGrid/Row/Row.js +2 -2
- package/lib-module/Footnote/Footnote.js +9 -7
- package/lib-module/Footnote/FootnoteLink.js +5 -4
- package/lib-module/HorizontalScroll/HorizontalScroll.js +8 -8
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +2 -2
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -8
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +2 -2
- package/lib-module/Icon/Icon.js +2 -2
- package/lib-module/Icon/IconText.js +5 -5
- package/lib-module/IconButton/IconButton.js +2 -2
- package/lib-module/InputLabel/InputLabel.js +2 -2
- package/lib-module/InputLabel/LabelContent.js +2 -2
- package/lib-module/InputLabel/LabelContent.native.js +2 -2
- package/lib-module/InputSupports/InputSupports.js +4 -3
- package/lib-module/Link/ChevronLink.js +2 -2
- package/lib-module/Link/InlinePressable.js +10 -4
- package/lib-module/Link/InlinePressable.native.js +12 -6
- package/lib-module/Link/Link.js +2 -2
- package/lib-module/Link/LinkBase.js +2 -2
- package/lib-module/Link/TextButton.js +2 -2
- package/lib-module/List/List.js +13 -9
- package/lib-module/List/ListItem.js +2 -2
- package/lib-module/List/ListItemBase.js +6 -8
- package/lib-module/List/ListItemContent.js +4 -2
- package/lib-module/List/ListItemMark.js +4 -2
- package/lib-module/List/PressableListItemBase.js +2 -2
- package/lib-module/Listbox/GroupControl.js +4 -2
- package/lib-module/Listbox/Listbox.js +7 -7
- package/lib-module/Listbox/ListboxContext.js +2 -2
- package/lib-module/Listbox/ListboxGroup.js +2 -2
- package/lib-module/Listbox/ListboxItem.js +2 -3
- package/lib-module/Listbox/ListboxOverlay.js +2 -3
- package/lib-module/Listbox/PressableItem.js +2 -3
- package/lib-module/Modal/Modal.js +5 -5
- package/lib-module/Modal/ModalContent.js +7 -5
- package/lib-module/Modal/WebModal.js +19 -10
- package/lib-module/MultiSelectFilter/ModalOverlay.js +2 -2
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +10 -8
- package/lib-module/Notification/Notification.js +5 -5
- package/lib-module/OrderedList/Item.js +4 -8
- package/lib-module/OrderedList/ItemBase.js +2 -2
- package/lib-module/OrderedList/OrderedList.js +6 -12
- package/lib-module/OrderedList/OrderedListBase.js +2 -2
- package/lib-module/Pagination/PageButton.js +2 -2
- package/lib-module/Pagination/Pagination.js +2 -2
- package/lib-module/Pagination/SideButton.js +2 -2
- package/lib-module/PriceLockup/PriceLockup.js +5 -5
- package/lib-module/ProductCard/ProductCard.js +3 -2
- package/lib-module/ProductCardGroup/ProductCardGroup.js +5 -4
- package/lib-module/Progress/Progress.js +2 -2
- package/lib-module/Progress/ProgressBar.js +2 -2
- package/lib-module/Progress/ProgressBarBackground.js +2 -2
- package/lib-module/QuickLinks/QuickLinks.js +2 -2
- package/lib-module/QuickLinks/QuickLinksCard.js +4 -2
- package/lib-module/QuickLinks/QuickLinksItem.js +2 -2
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +9 -5
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +10 -10
- package/lib-module/Radio/Radio.js +2 -2
- package/lib-module/Radio/RadioButton.js +62 -14
- package/lib-module/Radio/RadioGroup.js +2 -2
- package/lib-module/Radio/RadioInput.js +6 -16
- package/lib-module/RadioCard/RadioCard.js +2 -2
- package/lib-module/RadioCard/RadioCardGroup.js +2 -2
- package/lib-module/Responsive/Responsive.js +3 -2
- package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
- package/lib-module/Search/Search.js +2 -2
- package/lib-module/Select/Group.js +4 -2
- package/lib-module/Select/Item.js +4 -2
- package/lib-module/Select/Picker.js +2 -2
- package/lib-module/Select/Picker.native.js +3 -3
- package/lib-module/Select/Select.js +4 -4
- package/lib-module/SideNav/Item.js +2 -2
- package/lib-module/SideNav/ItemContent.js +4 -2
- package/lib-module/SideNav/ItemsGroup.js +2 -2
- package/lib-module/SideNav/SideNav.js +3 -3
- package/lib-module/Skeleton/Skeleton.js +2 -2
- package/lib-module/SkipLink/SkipLink.js +2 -2
- package/lib-module/Spacer/Spacer.js +2 -2
- package/lib-module/StackView/StackView.js +2 -2
- package/lib-module/StackView/StackWrap.js +3 -3
- package/lib-module/StackView/StackWrapBox.js +2 -2
- package/lib-module/StackView/StackWrapGap.js +2 -2
- package/lib-module/StackView/getStackedContent.js +4 -4
- package/lib-module/StepTracker/Step.js +4 -2
- package/lib-module/StepTracker/StepTracker.js +2 -2
- package/lib-module/Tabs/Tabs.js +3 -3
- package/lib-module/Tabs/TabsItem.js +3 -3
- package/lib-module/Tags/Tags.js +2 -2
- package/lib-module/TextInput/TextArea.js +3 -3
- package/lib-module/TextInput/TextInput.js +2 -2
- package/lib-module/TextInput/TextInputBase.js +7 -7
- package/lib-module/ThemeProvider/ThemeProvider.js +5 -5
- package/lib-module/Timeline/Timeline.js +2 -2
- package/lib-module/ToggleSwitch/ToggleSwitch.js +2 -2
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +2 -2
- package/lib-module/Tooltip/Tooltip.js +6 -6
- package/lib-module/Tooltip/Tooltip.native.js +12 -12
- package/lib-module/TooltipButton/TooltipButton.js +4 -2
- package/lib-module/Typography/Typography.js +2 -2
- package/lib-module/Validator/Validator.js +11 -11
- package/lib-module/ViewportProvider/ViewportProvider.js +2 -2
- package/lib-module/index.js +1 -0
- package/lib-module/utils/BaseView/BaseView.js +2 -2
- package/lib-module/utils/children.js +4 -4
- package/lib-module/utils/withLinkRouter.js +3 -3
- package/package.json +2 -2
- package/src/A11yInfoProvider/index.jsx +8 -8
- package/src/A11yText/index.jsx +2 -2
- package/src/ActivityIndicator/Spinner.jsx +2 -2
- package/src/ActivityIndicator/Spinner.native.jsx +2 -2
- package/src/Autocomplete/Autocomplete.jsx +15 -14
- package/src/Autocomplete/Loading.jsx +6 -3
- package/src/Autocomplete/Suggestions.jsx +2 -2
- package/src/Badge/Badge.jsx +2 -2
- package/src/BaseProvider/HydrationContext.jsx +5 -5
- package/src/Box/Box.jsx +5 -5
- package/src/Button/Button.jsx +11 -9
- package/src/Button/ButtonBase.jsx +2 -3
- package/src/Button/ButtonDropdown.jsx +2 -2
- package/src/Button/ButtonGroup.jsx +11 -2
- package/src/Button/ButtonLink.jsx +2 -2
- package/src/Card/Card.jsx +151 -11
- package/src/Card/CardBase.jsx +2 -2
- package/src/Card/PressableCardBase.jsx +18 -4
- package/src/CardGroup/CardGroup.jsx +249 -0
- package/src/CardGroup/dictionary.js +8 -0
- package/src/CardGroup/index.js +3 -0
- package/src/Carousel/Carousel.jsx +338 -117
- package/src/Carousel/CarouselFirstFocus/CarouselFirstFocus.jsx +2 -2
- package/src/Carousel/CarouselItem/CarouselItem.jsx +19 -17
- package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +5 -3
- package/src/Carousel/CarouselTabs/CarouselTabs.jsx +2 -2
- package/src/Carousel/CarouselTabs/CarouselTabsPanel.jsx +6 -6
- package/src/Carousel/CarouselTabs/CarouselTabsPanelItem.jsx +3 -3
- package/src/Carousel/CarouselThumbnail.jsx +6 -2
- package/src/Carousel/CarouselThumbnailNavigation.jsx +2 -2
- package/src/Checkbox/Checkbox.jsx +2 -2
- package/src/Checkbox/CheckboxButton.jsx +5 -7
- package/src/Checkbox/CheckboxGroup.jsx +2 -2
- package/src/Checkbox/CheckboxInput.jsx +15 -12
- package/src/CheckboxCard/CheckboxCard.jsx +2 -2
- package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +2 -2
- package/src/ColourToggle/ColourBubble.jsx +5 -4
- package/src/ColourToggle/ColourToggle.jsx +3 -3
- package/src/Divider/Divider.jsx +2 -2
- package/src/ExpandCollapse/Accordion.jsx +4 -2
- package/src/ExpandCollapse/Control.jsx +2 -2
- package/src/ExpandCollapse/ExpandCollapse.jsx +15 -7
- package/src/ExpandCollapse/Panel.jsx +30 -8
- package/src/ExpandCollapse/dictionary.js +10 -0
- package/src/Feedback/Feedback.jsx +2 -2
- package/src/Fieldset/Fieldset.jsx +2 -2
- package/src/Fieldset/FieldsetContainer.jsx +2 -2
- package/src/Fieldset/FieldsetContainer.native.jsx +2 -2
- package/src/Fieldset/Legend.jsx +2 -2
- package/src/Fieldset/Legend.native.jsx +2 -2
- package/src/FlexGrid/Col/Col.jsx +3 -3
- package/src/FlexGrid/FlexGrid.jsx +2 -2
- package/src/FlexGrid/Row/Row.jsx +2 -2
- package/src/Footnote/Footnote.jsx +111 -98
- package/src/Footnote/FootnoteLink.jsx +35 -31
- package/src/HorizontalScroll/HorizontalScroll.jsx +8 -8
- package/src/HorizontalScroll/HorizontalScrollButton.jsx +2 -2
- package/src/HorizontalScroll/ScrollViewEnd.jsx +4 -8
- package/src/HorizontalScroll/ScrollViewEnd.native.jsx +2 -2
- package/src/Icon/Icon.jsx +2 -2
- package/src/Icon/IconText.jsx +7 -5
- package/src/IconButton/IconButton.jsx +2 -2
- package/src/InputLabel/InputLabel.jsx +2 -2
- package/src/InputLabel/LabelContent.jsx +2 -2
- package/src/InputLabel/LabelContent.native.jsx +2 -2
- package/src/InputSupports/InputSupports.jsx +4 -3
- package/src/Link/ChevronLink.jsx +2 -2
- package/src/Link/InlinePressable.jsx +22 -15
- package/src/Link/InlinePressable.native.jsx +12 -6
- package/src/Link/Link.jsx +2 -2
- package/src/Link/LinkBase.jsx +2 -2
- package/src/Link/TextButton.jsx +2 -2
- package/src/List/List.jsx +15 -7
- package/src/List/ListItem.jsx +2 -2
- package/src/List/ListItemBase.jsx +6 -12
- package/src/List/ListItemContent.jsx +5 -2
- package/src/List/ListItemMark.jsx +5 -3
- package/src/List/PressableListItemBase.jsx +2 -2
- package/src/Listbox/GroupControl.jsx +5 -2
- package/src/Listbox/Listbox.jsx +7 -7
- package/src/Listbox/ListboxContext.js +2 -2
- package/src/Listbox/ListboxGroup.jsx +2 -2
- package/src/Listbox/ListboxItem.jsx +2 -3
- package/src/Listbox/ListboxOverlay.jsx +2 -3
- package/src/Listbox/PressableItem.jsx +2 -3
- package/src/Modal/Modal.jsx +5 -5
- package/src/Modal/ModalContent.jsx +132 -125
- package/src/Modal/WebModal.jsx +17 -8
- package/src/MultiSelectFilter/ModalOverlay.jsx +2 -2
- package/src/MultiSelectFilter/MultiSelectFilter.jsx +263 -252
- package/src/Notification/Notification.jsx +5 -5
- package/src/OrderedList/Item.jsx +4 -6
- package/src/OrderedList/ItemBase.jsx +2 -2
- package/src/OrderedList/OrderedList.jsx +4 -7
- package/src/OrderedList/OrderedListBase.jsx +2 -2
- package/src/Pagination/PageButton.jsx +2 -2
- package/src/Pagination/Pagination.jsx +2 -2
- package/src/Pagination/SideButton.jsx +2 -2
- package/src/PriceLockup/PriceLockup.jsx +93 -88
- package/src/ProductCard/ProductCard.jsx +90 -84
- package/src/ProductCardGroup/ProductCardGroup.jsx +5 -5
- package/src/Progress/Progress.jsx +2 -2
- package/src/Progress/ProgressBar.jsx +2 -2
- package/src/Progress/ProgressBarBackground.jsx +4 -2
- package/src/QuickLinks/QuickLinks.jsx +2 -2
- package/src/QuickLinks/QuickLinksCard.jsx +9 -3
- package/src/QuickLinks/QuickLinksItem.jsx +2 -2
- package/src/QuickLinksFeature/QuickLinksFeature.jsx +31 -27
- package/src/QuickLinksFeature/QuickLinksFeatureItem.jsx +3 -3
- package/src/Radio/Radio.jsx +2 -2
- package/src/Radio/RadioButton.jsx +58 -6
- package/src/Radio/RadioGroup.jsx +2 -2
- package/src/Radio/RadioInput.jsx +15 -14
- package/src/RadioCard/RadioCard.jsx +2 -2
- package/src/RadioCard/RadioCardGroup.jsx +2 -2
- package/src/Responsive/Responsive.jsx +8 -3
- package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +23 -16
- package/src/Search/Search.jsx +2 -2
- package/src/Select/Group.jsx +9 -3
- package/src/Select/Item.jsx +7 -1
- package/src/Select/Picker.jsx +2 -2
- package/src/Select/Picker.native.jsx +3 -3
- package/src/Select/Select.jsx +4 -4
- package/src/SideNav/Item.jsx +2 -2
- package/src/SideNav/ItemContent.jsx +7 -3
- package/src/SideNav/ItemsGroup.jsx +2 -2
- package/src/SideNav/SideNav.jsx +3 -3
- package/src/Skeleton/Skeleton.jsx +2 -2
- package/src/SkipLink/SkipLink.jsx +2 -2
- package/src/Spacer/Spacer.jsx +2 -2
- package/src/StackView/StackView.jsx +2 -2
- package/src/StackView/StackWrap.jsx +3 -3
- package/src/StackView/StackWrapBox.jsx +2 -2
- package/src/StackView/StackWrapGap.jsx +2 -2
- package/src/StackView/getStackedContent.jsx +4 -4
- package/src/StepTracker/Step.jsx +75 -67
- package/src/StepTracker/StepTracker.jsx +2 -2
- package/src/Tabs/Tabs.jsx +3 -3
- package/src/Tabs/TabsItem.jsx +3 -3
- package/src/Tags/Tags.jsx +2 -2
- package/src/TextInput/TextArea.jsx +3 -3
- package/src/TextInput/TextInput.jsx +2 -2
- package/src/TextInput/TextInputBase.jsx +7 -7
- package/src/ThemeProvider/ThemeProvider.jsx +5 -5
- package/src/Timeline/Timeline.jsx +2 -2
- package/src/ToggleSwitch/ToggleSwitch.jsx +2 -2
- package/src/ToggleSwitch/ToggleSwitchGroup.jsx +2 -2
- package/src/Tooltip/Tooltip.jsx +6 -6
- package/src/Tooltip/Tooltip.native.jsx +12 -12
- package/src/TooltipButton/TooltipButton.jsx +5 -2
- package/src/Typography/Typography.jsx +2 -2
- package/src/Validator/Validator.jsx +11 -11
- package/src/ViewportProvider/ViewportProvider.jsx +2 -2
- package/src/index.js +1 -0
- package/src/utils/BaseView/BaseView.jsx +2 -2
- package/src/utils/children.jsx +4 -4
- package/src/utils/withLinkRouter.jsx +3 -3
- package/types/ExpandCollapse.d.ts +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import Platform from "react-native-web/dist/exports/Platform";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
const HydrationContext = /*#__PURE__*/createContext();
|
|
5
|
+
const HydrationContext = /*#__PURE__*/React.createContext();
|
|
6
6
|
const isSSR = typeof window === 'undefined';
|
|
7
7
|
const hasWebStyleTag = () => {
|
|
8
8
|
var _document;
|
|
@@ -19,7 +19,7 @@ const hasWebStyleTag = () => {
|
|
|
19
19
|
* during the very first client-side render or hydration, but not available on the server,
|
|
20
20
|
* to ensure no changes happen until the original SSR DOM has been hydrated.
|
|
21
21
|
*/
|
|
22
|
-
export const useHydrationContext = () => useContext(HydrationContext);
|
|
22
|
+
export const useHydrationContext = () => React.useContext(HydrationContext);
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Allows components and hooks to observe if SSR hydration is currently in progress
|
|
@@ -29,8 +29,8 @@ export const HydrationProvider = _ref => {
|
|
|
29
29
|
let {
|
|
30
30
|
children
|
|
31
31
|
} = _ref;
|
|
32
|
-
const [hasMounted, setHasMounted] = useState(false);
|
|
33
|
-
useEffect(() => {
|
|
32
|
+
const [hasMounted, setHasMounted] = React.useState(false);
|
|
33
|
+
React.useEffect(() => {
|
|
34
34
|
setHasMounted(true);
|
|
35
35
|
}, []);
|
|
36
36
|
|
package/lib-module/Box/Box.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import View from "react-native-web/dist/exports/View";
|
|
4
4
|
import ScrollView from "react-native-web/dist/exports/ScrollView";
|
|
@@ -170,7 +170,7 @@ const setBackgroundImage = _ref2 => {
|
|
|
170
170
|
* text content is inside a scrollable box, as screens are not scrollable by default and even very
|
|
171
171
|
* short text will require scrolling on small devices at the highest accessibility text scaling settings.
|
|
172
172
|
*/
|
|
173
|
-
const Box = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
173
|
+
const Box = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
|
|
174
174
|
let {
|
|
175
175
|
space,
|
|
176
176
|
horizontal = space,
|
|
@@ -218,8 +218,8 @@ const Box = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
218
218
|
const backgroundImageResizeMode = useResponsiveProp(resizeMode, 'cover');
|
|
219
219
|
const backgroundImagePosition = useResponsiveProp(position, 'none');
|
|
220
220
|
const backgroundImageAlign = useResponsiveProp(align, 'stretch');
|
|
221
|
-
const [backgroundImageWidth, setBackgroundImageWidth] = useState(0);
|
|
222
|
-
const [backgroundImageHeight, setBackgroundImageHeight] = useState(0);
|
|
221
|
+
const [backgroundImageWidth, setBackgroundImageWidth] = React.useState(0);
|
|
222
|
+
const [backgroundImageHeight, setBackgroundImageHeight] = React.useState(0);
|
|
223
223
|
if (backgroundImage) content = setBackgroundImage({
|
|
224
224
|
src,
|
|
225
225
|
alt,
|
|
@@ -230,7 +230,7 @@ const Box = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
230
230
|
backgroundImageHeight,
|
|
231
231
|
content
|
|
232
232
|
});
|
|
233
|
-
useEffect(() => {
|
|
233
|
+
React.useEffect(() => {
|
|
234
234
|
if (backgroundImage && backgroundImageWidth === 0 && backgroundImageHeight === 0) {
|
|
235
235
|
Image.getSize(src, (width, height) => {
|
|
236
236
|
// Only update the state if the size has changed
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import ButtonBase from './ButtonBase';
|
|
3
3
|
import buttonPropTypes, { textAndA11yText } from './propTypes';
|
|
4
4
|
import { useThemeTokensCallback } from '../ThemeProvider';
|
|
5
5
|
import { a11yProps } from '../utils/props';
|
|
6
6
|
import { useViewport } from '../ViewportProvider';
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
-
const Button = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
8
|
+
const Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
9
9
|
let {
|
|
10
10
|
accessibilityRole = 'button',
|
|
11
11
|
tokens,
|
|
@@ -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 View from "react-native-web/dist/exports/View";
|
|
@@ -218,7 +218,7 @@ const selectItemIconTokens = _ref10 => {
|
|
|
218
218
|
color: iconColor || color
|
|
219
219
|
};
|
|
220
220
|
};
|
|
221
|
-
const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
|
|
221
|
+
const ButtonBase = /*#__PURE__*/React.forwardRef((_ref11, ref) => {
|
|
222
222
|
let {
|
|
223
223
|
id,
|
|
224
224
|
href,
|
|
@@ -321,9 +321,6 @@ ButtonBase.propTypes = {
|
|
|
321
321
|
...selectedSystemPropTypes,
|
|
322
322
|
...buttonPropTypes
|
|
323
323
|
};
|
|
324
|
-
ButtonBase.defaultProps = {
|
|
325
|
-
id: undefined
|
|
326
|
-
};
|
|
327
324
|
const staticStyles = StyleSheet.create({
|
|
328
325
|
row: {
|
|
329
326
|
// Apply all button alignment horizontally; no vertical stacking within a button
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import Platform from "react-native-web/dist/exports/Platform";
|
|
4
4
|
import Text from "react-native-web/dist/exports/Text";
|
|
@@ -49,7 +49,7 @@ const selectIconTokens = _ref => {
|
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
};
|
|
52
|
-
const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
52
|
+
const ButtonDropdown = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
53
53
|
let {
|
|
54
54
|
value,
|
|
55
55
|
initialValue,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import ABBPropTypes from 'airbnb-prop-types';
|
|
4
4
|
import Platform from "react-native-web/dist/exports/Platform";
|
|
@@ -12,9 +12,10 @@ import { getPressHandlersWithArgs } from '../utils/pressability';
|
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
14
14
|
const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, pressProps, viewProps]);
|
|
15
|
-
const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
15
|
+
const ButtonGroup = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
16
16
|
let {
|
|
17
17
|
variant,
|
|
18
|
+
buttonVariant,
|
|
18
19
|
tokens,
|
|
19
20
|
items = [],
|
|
20
21
|
values,
|
|
@@ -127,6 +128,7 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
127
128
|
// "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
|
|
128
129
|
return /*#__PURE__*/_jsx(ButtonBase, {
|
|
129
130
|
ref: itemRef,
|
|
131
|
+
variant: buttonVariant,
|
|
130
132
|
...pressHandlers,
|
|
131
133
|
onPress: handlePress,
|
|
132
134
|
tokens: getButtonTokens,
|
|
@@ -148,6 +150,13 @@ ButtonGroup.displayName = 'ButtonGroup';
|
|
|
148
150
|
ButtonGroup.propTypes = {
|
|
149
151
|
...selectedSystemPropTypes,
|
|
150
152
|
tokens: getTokensPropType('ButtonGroup'),
|
|
153
|
+
/**
|
|
154
|
+
* To allow Button specific variant
|
|
155
|
+
*/
|
|
156
|
+
buttonVariant: variantProp.propType,
|
|
157
|
+
/**
|
|
158
|
+
* Default variant prop
|
|
159
|
+
*/
|
|
151
160
|
variant: variantProp.propType,
|
|
152
161
|
/**
|
|
153
162
|
* The maximum number of items a user may select at once. Defaults to 1 and behaves
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import ButtonBase from './ButtonBase';
|
|
4
4
|
import buttonPropTypes, { textAndA11yText } from './propTypes';
|
|
@@ -11,7 +11,7 @@ import { useViewport } from '../ViewportProvider';
|
|
|
11
11
|
* ButtonLink is a block-level component and should not be used inline.
|
|
12
12
|
*/
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
-
const ButtonLink = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
14
|
+
const ButtonLink = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
15
15
|
let {
|
|
16
16
|
accessibilityRole = 'link',
|
|
17
17
|
tokens,
|
package/lib-module/Card/Card.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import View from "react-native-web/dist/exports/View";
|
|
4
4
|
import { useThemeTokens, useThemeTokensCallback, useResponsiveThemeTokens, useTheme } from '../ThemeProvider';
|
|
@@ -7,10 +7,52 @@ import { useViewport } from '../ViewportProvider';
|
|
|
7
7
|
import { a11yProps, selectSystemProps, viewProps } from '../utils/props';
|
|
8
8
|
import CardBase from './CardBase';
|
|
9
9
|
import PressableCardBase from './PressableCardBase';
|
|
10
|
+
import CheckboxButton from '../Checkbox/CheckboxButton';
|
|
11
|
+
import RadioButton from '../Radio/RadioButton';
|
|
10
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
13
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
14
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
15
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
16
|
+
const SelectionType = {
|
|
17
|
+
Checkbox: 'checkbox',
|
|
18
|
+
Radio: 'radiogroup',
|
|
19
|
+
None: undefined
|
|
20
|
+
};
|
|
21
|
+
const selectInputStyle = _ref => {
|
|
22
|
+
let {
|
|
23
|
+
paddingTop,
|
|
24
|
+
paddingRight
|
|
25
|
+
} = _ref;
|
|
26
|
+
return {
|
|
27
|
+
position: 'absolute',
|
|
28
|
+
top: paddingTop,
|
|
29
|
+
right: paddingRight
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
const getInputProps = _ref2 => {
|
|
33
|
+
let {
|
|
34
|
+
id,
|
|
35
|
+
checkColor,
|
|
36
|
+
boxBackgroundColor,
|
|
37
|
+
checkBackgroundColor,
|
|
38
|
+
isControlled,
|
|
39
|
+
isChecked,
|
|
40
|
+
isInactive,
|
|
41
|
+
handleChange
|
|
42
|
+
} = _ref2;
|
|
43
|
+
return {
|
|
44
|
+
inputId: id,
|
|
45
|
+
tokens: {
|
|
46
|
+
iconColor: checkColor,
|
|
47
|
+
inputBackgroundColor: boxBackgroundColor,
|
|
48
|
+
iconBackgroundColor: checkBackgroundColor
|
|
49
|
+
},
|
|
50
|
+
isControlled,
|
|
51
|
+
isChecked,
|
|
52
|
+
inactive: isInactive,
|
|
53
|
+
handleChange
|
|
54
|
+
};
|
|
55
|
+
};
|
|
14
56
|
|
|
15
57
|
/**
|
|
16
58
|
* A basic card component, unstyled by default.
|
|
@@ -60,16 +102,18 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
|
|
|
60
102
|
* you automatically make inaccessible its children, which may or may not be appropriate
|
|
61
103
|
* depending on what you are trying to achieve.
|
|
62
104
|
*/
|
|
63
|
-
const Card = /*#__PURE__*/forwardRef((
|
|
105
|
+
const Card = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
|
|
106
|
+
var _interactiveCard$vari, _interactiveCard$vari2;
|
|
64
107
|
let {
|
|
65
108
|
children,
|
|
66
109
|
tokens,
|
|
67
110
|
variant,
|
|
68
111
|
dataSet,
|
|
69
112
|
onPress,
|
|
113
|
+
id,
|
|
70
114
|
interactiveCard,
|
|
71
115
|
...rest
|
|
72
|
-
} =
|
|
116
|
+
} = _ref3;
|
|
73
117
|
const viewport = useViewport();
|
|
74
118
|
const {
|
|
75
119
|
themeOptions
|
|
@@ -81,6 +125,9 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
81
125
|
const themeTokens = useTokens('Card', tokens, variant, !enableMediaQueryStyleSheet && {
|
|
82
126
|
viewport
|
|
83
127
|
});
|
|
128
|
+
const selected = interactiveCard === null || interactiveCard === void 0 ? void 0 : (_interactiveCard$vari = interactiveCard.variant) === null || _interactiveCard$vari === void 0 ? void 0 : _interactiveCard$vari.selected;
|
|
129
|
+
const inactive = interactiveCard === null || interactiveCard === void 0 ? void 0 : (_interactiveCard$vari2 = interactiveCard.variant) === null || _interactiveCard$vari2 === void 0 ? void 0 : _interactiveCard$vari2.inactive;
|
|
130
|
+
const selectionType = interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.selectionType;
|
|
84
131
|
const getThemeTokens = useThemeTokensCallback('Card', interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.tokens, {
|
|
85
132
|
interactive: true,
|
|
86
133
|
...((interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.variant) || {})
|
|
@@ -93,7 +140,45 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
93
140
|
paddingLeft,
|
|
94
141
|
paddingRight,
|
|
95
142
|
...restOfTokens
|
|
96
|
-
} = themeTokens;
|
|
143
|
+
} = selectionType ? getThemeTokens() : themeTokens;
|
|
144
|
+
const {
|
|
145
|
+
inputBackgroundColor,
|
|
146
|
+
iconBackgroundColor,
|
|
147
|
+
iconColor,
|
|
148
|
+
icon,
|
|
149
|
+
inputBorderRadius,
|
|
150
|
+
inputHeight,
|
|
151
|
+
inputWidth,
|
|
152
|
+
iconSize,
|
|
153
|
+
inputShadow,
|
|
154
|
+
inputBorderWidth,
|
|
155
|
+
inputBorderColor
|
|
156
|
+
} = getThemeTokens();
|
|
157
|
+
const checkboxTokens = {
|
|
158
|
+
inputBackgroundColor,
|
|
159
|
+
iconBackgroundColor,
|
|
160
|
+
icon,
|
|
161
|
+
iconColor,
|
|
162
|
+
inputBorderRadius,
|
|
163
|
+
inputHeight,
|
|
164
|
+
inputWidth,
|
|
165
|
+
iconSize,
|
|
166
|
+
inputShadow,
|
|
167
|
+
inputBorderWidth,
|
|
168
|
+
inputBorderColor
|
|
169
|
+
};
|
|
170
|
+
const radioTokens = {
|
|
171
|
+
iconBackgroundColor,
|
|
172
|
+
iconColor,
|
|
173
|
+
containerShadow: inputShadow,
|
|
174
|
+
icon,
|
|
175
|
+
inputBackgroundColor,
|
|
176
|
+
inputBorderRadius,
|
|
177
|
+
inputSize: inputHeight,
|
|
178
|
+
checkedSize: iconSize,
|
|
179
|
+
inputBorderWidth,
|
|
180
|
+
inputBorderColor
|
|
181
|
+
};
|
|
97
182
|
let cardStyles;
|
|
98
183
|
let mediaIds;
|
|
99
184
|
if (enableMediaQueryStyleSheet) {
|
|
@@ -109,6 +194,43 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
109
194
|
} else {
|
|
110
195
|
cardStyles = themeTokens;
|
|
111
196
|
}
|
|
197
|
+
const renderInputPerSelectionType = props => {
|
|
198
|
+
switch (selectionType) {
|
|
199
|
+
case SelectionType.Checkbox:
|
|
200
|
+
return /*#__PURE__*/_jsx(View, {
|
|
201
|
+
style: selectInputStyle(getThemeTokens()),
|
|
202
|
+
children: /*#__PURE__*/_jsx(CheckboxButton, {
|
|
203
|
+
...props,
|
|
204
|
+
tokens: {
|
|
205
|
+
...checkboxTokens,
|
|
206
|
+
...(props === null || props === void 0 ? void 0 : props.tokens)
|
|
207
|
+
}
|
|
208
|
+
})
|
|
209
|
+
});
|
|
210
|
+
case SelectionType.Radio:
|
|
211
|
+
return /*#__PURE__*/_jsx(View, {
|
|
212
|
+
style: selectInputStyle(getThemeTokens()),
|
|
213
|
+
children: /*#__PURE__*/_jsx(RadioButton, {
|
|
214
|
+
...props,
|
|
215
|
+
tokens: {
|
|
216
|
+
...radioTokens,
|
|
217
|
+
...(props === null || props === void 0 ? void 0 : props.tokens)
|
|
218
|
+
}
|
|
219
|
+
})
|
|
220
|
+
});
|
|
221
|
+
default:
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
const renderNoSelectionView = () => /*#__PURE__*/_jsx(View, {
|
|
226
|
+
style: {
|
|
227
|
+
paddingTop,
|
|
228
|
+
paddingBottom,
|
|
229
|
+
paddingLeft,
|
|
230
|
+
paddingRight
|
|
231
|
+
},
|
|
232
|
+
children: children
|
|
233
|
+
});
|
|
112
234
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
113
235
|
children: /*#__PURE__*/_jsx(CardBase, {
|
|
114
236
|
ref: ref,
|
|
@@ -124,16 +246,31 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
124
246
|
dataSet: dataSet,
|
|
125
247
|
onPress: onPress,
|
|
126
248
|
...selectProps(rest),
|
|
127
|
-
children:
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
249
|
+
children: cardState => {
|
|
250
|
+
const {
|
|
251
|
+
iconColor: checkColor,
|
|
252
|
+
inputBackgroundColor: boxBackgroundColor,
|
|
253
|
+
iconBackgroundColor: checkBackgroundColor
|
|
254
|
+
} = getThemeTokens({
|
|
255
|
+
...cardState,
|
|
256
|
+
selected,
|
|
257
|
+
interactive: true,
|
|
258
|
+
isControl: true
|
|
259
|
+
}, interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.tokens);
|
|
260
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
261
|
+
children: [renderInputPerSelectionType(getInputProps({
|
|
262
|
+
id,
|
|
263
|
+
checkColor,
|
|
264
|
+
boxBackgroundColor,
|
|
265
|
+
checkBackgroundColor,
|
|
266
|
+
isControlled: true,
|
|
267
|
+
isChecked: selected || (cardState === null || cardState === void 0 ? void 0 : cardState.hover),
|
|
268
|
+
isInactive: inactive,
|
|
269
|
+
onPress
|
|
270
|
+
})), interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.body]
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}), children && selectionType !== SelectionType.None ? renderNoSelectionView() : null]
|
|
137
274
|
}) : children
|
|
138
275
|
})
|
|
139
276
|
});
|
|
@@ -158,15 +295,23 @@ Card.propTypes = {
|
|
|
158
295
|
* Note: This is only available when `interactiveCard` prop is used.
|
|
159
296
|
*/
|
|
160
297
|
onPress: PropTypes.func,
|
|
298
|
+
/**
|
|
299
|
+
* Card ID.
|
|
300
|
+
*/
|
|
301
|
+
id: PropTypes.string,
|
|
161
302
|
/**
|
|
162
303
|
* Object to set interactive card's properties
|
|
163
304
|
* - body: The body of the interactive card, can be any renderable node
|
|
164
305
|
* - tokens: The tokens to be used for the interactive card
|
|
306
|
+
* - selectionType: If the card has `isControl` variant set to `true`, the selectionType can have one of the following options:
|
|
307
|
+
- `radiogroup`
|
|
308
|
+
- `checkbox`
|
|
165
309
|
* - variant: The variant to be used for the interactive card
|
|
166
310
|
*/
|
|
167
311
|
interactiveCard: PropTypes.shape({
|
|
168
312
|
body: PropTypes.node,
|
|
169
313
|
tokens: getTokensPropType('Card'),
|
|
314
|
+
selectionType: PropTypes.oneOf(Object.values(SelectionType)),
|
|
170
315
|
variant: variantProp.propType
|
|
171
316
|
})
|
|
172
317
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import View from "react-native-web/dist/exports/View";
|
|
4
4
|
import Platform from "react-native-web/dist/exports/Platform";
|
|
@@ -49,7 +49,7 @@ const selectStyles = _ref => {
|
|
|
49
49
|
* A themeless base component for Card which components can apply theme tokens to. Not
|
|
50
50
|
* intended to be used in apps or sites directly: build themed components on top of this.
|
|
51
51
|
*/
|
|
52
|
-
const CardBase = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
52
|
+
const CardBase = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
53
53
|
let {
|
|
54
54
|
children,
|
|
55
55
|
tokens,
|
|
@@ -1,14 +1,14 @@
|
|
|
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 Platform from "react-native-web/dist/exports/Platform";
|
|
5
5
|
import { useViewport } from '../ViewportProvider';
|
|
6
6
|
import { applyOuterBorder, validateThemeTokens } from '../ThemeProvider';
|
|
7
|
-
import { a11yProps, clickProps, focusHandlerProps,
|
|
7
|
+
import { a11yProps, clickProps, focusHandlerProps, getTokensSetPropType, linkProps, resolvePressableState, resolvePressableTokens, selectSystemProps, selectTokens, variantProp, viewProps, withLinkRouter } from '../utils';
|
|
8
8
|
import CardBase from './CardBase';
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
|
|
11
|
-
const tokenKeys = [
|
|
11
|
+
const tokenKeys = ['flex', 'backgroundColor', 'borderColor', 'gradient', 'borderRadius', 'borderWidth', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop', 'minWidth', 'shadow', 'contentAlignItems', 'contentJustifyContent', 'contentFlexGrow', 'contentFlexShrink',
|
|
12
12
|
// Outer border tokens. TODO: centralise common token sets like these as part of
|
|
13
13
|
// https://github.com/telus/universal-design-system/issues/782
|
|
14
14
|
'outerBorderColor', 'outerBorderWidth', 'outerBorderGap'];
|
|
@@ -19,7 +19,7 @@ export const selectPressableCardTokens = tokens => Object.fromEntries(tokenKeys.
|
|
|
19
19
|
* based on these to an outer border and a base Card component. Not intended to be used in
|
|
20
20
|
* apps or sites directly: build themed components on top of this.
|
|
21
21
|
*/
|
|
22
|
-
const PressableCardBase = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
22
|
+
const PressableCardBase = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
23
23
|
let {
|
|
24
24
|
children,
|
|
25
25
|
tokens,
|
|
@@ -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;
|