@telus-uds/components-base 1.66.0 → 1.67.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -3
- package/lib/A11yInfoProvider/index.js +5 -20
- package/lib/A11yText/index.js +3 -17
- package/lib/ActivityIndicator/Spinner.js +2 -9
- package/lib/ActivityIndicator/Spinner.native.js +4 -27
- package/lib/ActivityIndicator/index.js +1 -13
- package/lib/ActivityIndicator/shared.js +0 -3
- package/lib/Autocomplete/Autocomplete.js +34 -85
- package/lib/Autocomplete/Loading.js +0 -10
- package/lib/Autocomplete/Suggestions.js +0 -11
- package/lib/Autocomplete/index.js +0 -3
- package/lib/BaseProvider/HydrationContext.js +4 -18
- package/lib/BaseProvider/index.js +0 -12
- package/lib/Box/Box.js +10 -35
- package/lib/Box/index.js +0 -3
- package/lib/Button/Button.js +4 -13
- package/lib/Button/ButtonBase.js +23 -55
- package/lib/Button/ButtonDropdown.js +7 -32
- package/lib/Button/ButtonGroup.js +15 -48
- package/lib/Button/ButtonLink.js +3 -17
- package/lib/Button/index.js +0 -5
- package/lib/Button/propTypes.js +0 -15
- package/lib/Card/Card.js +3 -14
- package/lib/Card/CardBase.js +5 -16
- package/lib/Card/PressableCardBase.js +7 -30
- package/lib/Card/index.js +0 -7
- package/lib/Carousel/Carousel.js +22 -115
- package/lib/Carousel/CarouselContext.js +0 -14
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
- package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
- package/lib/Carousel/CarouselItem/index.js +0 -3
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
- package/lib/Carousel/CarouselStepTracker/index.js +0 -3
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
- package/lib/Carousel/CarouselTabs/index.js +0 -3
- package/lib/Carousel/CarouselThumbnail.js +1 -16
- package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
- package/lib/Carousel/index.js +0 -5
- package/lib/Checkbox/Checkbox.js +5 -44
- package/lib/Checkbox/CheckboxButton.js +7 -33
- package/lib/Checkbox/CheckboxGroup.js +14 -45
- package/lib/Checkbox/CheckboxInput.js +1 -11
- package/lib/Checkbox/CheckboxInput.native.js +0 -2
- package/lib/Checkbox/index.js +0 -4
- package/lib/CheckboxCard/CheckboxCard.js +4 -37
- package/lib/CheckboxCard/index.js +0 -3
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +216 -0
- package/lib/CheckboxCardGroup/index.js +10 -0
- package/lib/Divider/Divider.js +13 -24
- package/lib/Divider/index.js +0 -3
- package/lib/ExpandCollapse/Accordion.js +1 -9
- package/lib/ExpandCollapse/Control.js +10 -32
- package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
- package/lib/ExpandCollapse/Panel.js +13 -38
- package/lib/ExpandCollapse/index.js +0 -5
- package/lib/Feedback/Feedback.js +13 -30
- package/lib/Feedback/index.js +0 -3
- package/lib/Fieldset/Fieldset.js +6 -37
- package/lib/Fieldset/FieldsetContainer.js +1 -10
- package/lib/Fieldset/FieldsetContainer.native.js +0 -8
- package/lib/Fieldset/Legend.js +1 -10
- package/lib/Fieldset/Legend.native.js +1 -13
- package/lib/Fieldset/index.js +0 -3
- package/lib/FlexGrid/Col/Col.js +10 -53
- package/lib/FlexGrid/Col/index.js +0 -3
- package/lib/FlexGrid/FlexGrid.js +3 -34
- package/lib/FlexGrid/Row/Row.js +0 -38
- package/lib/FlexGrid/Row/index.js +0 -3
- package/lib/FlexGrid/helpers/index.js +0 -4
- package/lib/FlexGrid/index.js +0 -3
- package/lib/FlexGrid/providers/GutterContext.js +0 -4
- package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
- package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
- package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
- package/lib/HorizontalScroll/index.js +0 -7
- package/lib/HorizontalScroll/itemPositions.js +8 -19
- package/lib/Icon/Icon.js +4 -17
- package/lib/Icon/IconText.js +5 -25
- package/lib/Icon/index.js +0 -6
- package/lib/IconButton/IconButton.js +5 -37
- package/lib/IconButton/index.js +0 -3
- package/lib/InputLabel/InputLabel.js +4 -28
- package/lib/InputLabel/LabelContent.js +2 -8
- package/lib/InputLabel/LabelContent.native.js +0 -8
- package/lib/InputLabel/index.js +0 -3
- package/lib/InputSupports/InputSupports.js +0 -21
- package/lib/InputSupports/index.js +0 -3
- package/lib/InputSupports/useInputSupports.js +2 -6
- package/lib/Link/ChevronLink.js +7 -18
- package/lib/Link/InlinePressable.js +0 -10
- package/lib/Link/InlinePressable.native.js +5 -18
- package/lib/Link/Link.js +0 -8
- package/lib/Link/LinkBase.js +17 -47
- package/lib/Link/TextButton.js +3 -16
- package/lib/Link/index.js +0 -5
- package/lib/List/List.js +5 -21
- package/lib/List/ListItem.js +1 -11
- package/lib/List/ListItemBase.js +5 -34
- package/lib/List/ListItemContent.js +1 -14
- package/lib/List/ListItemMark.js +3 -23
- package/lib/List/PressableListItemBase.js +2 -28
- package/lib/List/index.js +0 -4
- package/lib/Listbox/GroupControl.js +0 -14
- package/lib/Listbox/Listbox.js +15 -40
- package/lib/Listbox/ListboxContext.js +0 -7
- package/lib/Listbox/ListboxGroup.js +7 -19
- package/lib/Listbox/ListboxItem.js +3 -17
- package/lib/Listbox/ListboxOverlay.js +4 -20
- package/lib/Listbox/PressableItem.js +3 -18
- package/lib/Listbox/index.js +0 -3
- package/lib/Modal/Modal.js +94 -45
- package/lib/Modal/ModalContent.js +184 -0
- package/lib/Modal/index.js +0 -3
- package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
- package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
- package/lib/MultiSelectFilter/index.js +0 -3
- package/lib/Notification/Notification.js +11 -38
- package/lib/Notification/index.js +0 -3
- package/lib/Pagination/PageButton.js +2 -22
- package/lib/Pagination/Pagination.js +21 -42
- package/lib/Pagination/SideButton.js +0 -24
- package/lib/Pagination/index.js +0 -3
- package/lib/Pagination/usePagination.js +4 -9
- package/lib/Progress/Progress.js +3 -17
- package/lib/Progress/ProgressBar.js +3 -25
- package/lib/Progress/ProgressBarBackground.js +0 -12
- package/lib/Progress/index.js +0 -4
- package/lib/QuickLinks/QuickLinks.js +1 -18
- package/lib/QuickLinks/QuickLinksCard.js +1 -11
- package/lib/QuickLinks/QuickLinksItem.js +3 -17
- package/lib/QuickLinks/index.js +0 -4
- package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
- package/lib/QuickLinksFeature/index.js +0 -4
- package/lib/Radio/Radio.js +5 -39
- package/lib/Radio/RadioButton.js +7 -26
- package/lib/Radio/RadioGroup.js +6 -39
- package/lib/Radio/RadioInput.js +1 -11
- package/lib/Radio/RadioInput.native.js +0 -2
- package/lib/Radio/index.js +0 -4
- package/lib/RadioCard/RadioCard.js +5 -38
- package/lib/RadioCard/RadioCardGroup.js +25 -40
- package/lib/RadioCard/index.js +0 -4
- package/lib/Responsive/Responsive.js +1 -14
- package/lib/Responsive/index.js +0 -3
- package/lib/Search/Search.js +22 -45
- package/lib/Search/index.js +0 -3
- package/lib/Select/Group.js +0 -8
- package/lib/Select/Group.native.js +0 -6
- package/lib/Select/Item.js +0 -7
- package/lib/Select/Item.native.js +0 -2
- package/lib/Select/Picker.js +0 -8
- package/lib/Select/Picker.native.js +6 -22
- package/lib/Select/Select.js +9 -52
- package/lib/Select/index.js +0 -5
- package/lib/SideNav/Item.js +5 -29
- package/lib/SideNav/ItemContent.js +1 -14
- package/lib/SideNav/ItemsGroup.js +9 -31
- package/lib/SideNav/SideNav.js +9 -33
- package/lib/SideNav/index.js +0 -2
- package/lib/Skeleton/Skeleton.js +10 -42
- package/lib/Skeleton/index.js +0 -3
- package/lib/Skeleton/skeletonWebAnimation.js +0 -2
- package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
- package/lib/SkipLink/SkipLink.js +7 -27
- package/lib/SkipLink/index.js +0 -3
- package/lib/Spacer/Spacer.js +4 -20
- package/lib/Spacer/index.js +0 -3
- package/lib/StackView/StackView.js +3 -21
- package/lib/StackView/StackWrap.js +11 -21
- package/lib/StackView/StackWrap.native.js +0 -3
- package/lib/StackView/StackWrapBox.js +5 -21
- package/lib/StackView/StackWrapGap.js +1 -14
- package/lib/StackView/common.js +0 -6
- package/lib/StackView/getStackedContent.js +10 -21
- package/lib/StackView/index.js +0 -5
- package/lib/StepTracker/Step.js +3 -27
- package/lib/StepTracker/StepTracker.js +5 -32
- package/lib/StepTracker/index.js +0 -3
- package/lib/Tabs/Tabs.js +7 -30
- package/lib/Tabs/TabsItem.js +13 -38
- package/lib/Tabs/index.js +0 -3
- package/lib/Tags/Tags.js +9 -42
- package/lib/Tags/index.js +0 -3
- package/lib/TextInput/TextArea.js +11 -20
- package/lib/TextInput/TextInput.js +7 -16
- package/lib/TextInput/TextInputBase.js +12 -58
- package/lib/TextInput/index.js +0 -3
- package/lib/TextInput/propTypes.js +0 -8
- package/lib/ThemeProvider/ThemeProvider.js +10 -18
- package/lib/ThemeProvider/index.js +0 -9
- package/lib/ThemeProvider/useSetTheme.js +6 -9
- package/lib/ThemeProvider/useTheme.js +2 -7
- package/lib/ThemeProvider/useThemeTokens.js +1 -9
- package/lib/ThemeProvider/utils/index.js +0 -4
- package/lib/ThemeProvider/utils/styles.js +14 -35
- package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
- package/lib/Timeline/Timeline.js +11 -27
- package/lib/Timeline/index.js +0 -3
- package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
- package/lib/ToggleSwitch/index.js +0 -3
- package/lib/Tooltip/Backdrop.js +4 -11
- package/lib/Tooltip/Backdrop.native.js +1 -14
- package/lib/Tooltip/Tooltip.js +9 -37
- package/lib/Tooltip/Tooltip.native.js +14 -45
- package/lib/Tooltip/getTooltipPosition.js +26 -31
- package/lib/Tooltip/index.js +0 -5
- package/lib/Tooltip/shared.js +0 -10
- package/lib/TooltipButton/TooltipButton.js +5 -20
- package/lib/TooltipButton/index.js +0 -3
- package/lib/Typography/Typography.js +15 -38
- package/lib/Typography/index.js +0 -3
- package/lib/Validator/Validator.js +10 -58
- package/lib/Validator/index.js +0 -3
- package/lib/ViewportProvider/ViewportProvider.js +1 -13
- package/lib/ViewportProvider/index.js +0 -5
- package/lib/ViewportProvider/useViewport.js +0 -4
- package/lib/ViewportProvider/useViewportListener.js +3 -12
- package/lib/index.js +8 -71
- package/lib/utils/BaseView/BaseView.js +3 -17
- package/lib/utils/BaseView/BaseView.native.js +0 -3
- package/lib/utils/BaseView/index.js +0 -3
- package/lib/utils/a11y/index.js +0 -4
- package/lib/utils/a11y/semantics.js +14 -32
- package/lib/utils/a11y/textSize.js +1 -8
- package/lib/utils/animation/index.js +0 -2
- package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
- package/lib/utils/children.js +16 -28
- package/lib/utils/containUniqueFields.js +2 -5
- package/lib/utils/floating-ui/index.js +0 -1
- package/lib/utils/floating-ui/index.native.js +0 -1
- package/lib/utils/hasOwnProperty.js +0 -1
- package/lib/utils/htmlAttrs.js +2 -4
- package/lib/utils/index.js +0 -31
- package/lib/utils/info/index.js +0 -4
- package/lib/utils/info/platform/index.js +0 -4
- package/lib/utils/info/versions.js +0 -3
- package/lib/utils/input.js +12 -24
- package/lib/utils/pressability.js +7 -21
- package/lib/utils/props/a11yProps.js +19 -25
- package/lib/utils/props/clickProps.js +0 -4
- package/lib/utils/props/componentPropType.js +0 -14
- package/lib/utils/props/copyPropTypes.js +0 -4
- package/lib/utils/props/getPropSelector.js +11 -12
- package/lib/utils/props/handlerProps.js +2 -23
- package/lib/utils/props/hrefAttrsProp.js +0 -4
- package/lib/utils/props/index.js +0 -22
- package/lib/utils/props/inputSupportsProps.js +0 -9
- package/lib/utils/props/linkProps.js +2 -12
- package/lib/utils/props/paddingProp.js +0 -3
- package/lib/utils/props/pressProps.js +2 -8
- package/lib/utils/props/rectProp.js +0 -3
- package/lib/utils/props/responsiveProps.js +1 -5
- package/lib/utils/props/selectSystemProps.js +4 -6
- package/lib/utils/props/spacingProps.js +3 -10
- package/lib/utils/props/textInputProps.js +10 -31
- package/lib/utils/props/textProps.js +6 -11
- package/lib/utils/props/tokens.js +7 -26
- package/lib/utils/props/variantProp.js +0 -3
- package/lib/utils/props/viewProps.js +0 -5
- package/lib/utils/ssr.js +13 -33
- package/lib/utils/useCopy.js +3 -6
- package/lib/utils/useHash.js +5 -10
- package/lib/utils/useHash.native.js +0 -2
- package/lib/utils/useOverlaidPosition.js +6 -29
- package/lib/utils/useResponsiveProp.js +6 -13
- package/lib/utils/useSafeLayoutEffect.js +5 -10
- package/lib/utils/useScrollBlocking.js +3 -11
- package/lib/utils/useScrollBlocking.native.js +0 -2
- package/lib/utils/useSpacingScale.js +5 -8
- package/lib/utils/useUniqueId.js +0 -4
- package/lib/utils/withLinkRouter.js +13 -18
- package/lib-module/A11yInfoProvider/index.js +5 -9
- package/lib-module/A11yText/index.js +3 -4
- package/lib-module/ActivityIndicator/Spinner.js +2 -2
- package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
- package/lib-module/ActivityIndicator/index.js +1 -5
- package/lib-module/ActivityIndicator/shared.js +2 -1
- package/lib-module/Autocomplete/Autocomplete.js +34 -59
- package/lib-module/Autocomplete/Loading.js +0 -2
- package/lib-module/BaseProvider/HydrationContext.js +4 -7
- package/lib-module/BaseProvider/index.js +0 -3
- package/lib-module/Box/Box.js +10 -24
- package/lib-module/Button/Button.js +4 -2
- package/lib-module/Button/ButtonBase.js +23 -35
- package/lib-module/Button/ButtonDropdown.js +7 -16
- package/lib-module/Button/ButtonGroup.js +15 -32
- package/lib-module/Button/ButtonLink.js +3 -2
- package/lib-module/Button/propTypes.js +0 -7
- package/lib-module/Card/Card.js +3 -2
- package/lib-module/Card/CardBase.js +5 -4
- package/lib-module/Card/PressableCardBase.js +7 -11
- package/lib-module/Carousel/Carousel.js +22 -60
- package/lib-module/Carousel/CarouselContext.js +0 -5
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
- package/lib-module/Carousel/CarouselThumbnail.js +1 -7
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
- package/lib-module/Checkbox/Checkbox.js +5 -23
- package/lib-module/Checkbox/CheckboxButton.js +7 -17
- package/lib-module/Checkbox/CheckboxGroup.js +14 -31
- package/lib-module/Checkbox/CheckboxInput.js +1 -3
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
- package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +206 -0
- package/lib-module/CheckboxCardGroup/index.js +2 -0
- package/lib-module/Divider/Divider.js +13 -11
- package/lib-module/ExpandCollapse/Accordion.js +1 -1
- package/lib-module/ExpandCollapse/Control.js +10 -17
- package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
- package/lib-module/ExpandCollapse/Panel.js +13 -23
- package/lib-module/Feedback/Feedback.js +13 -16
- package/lib-module/Fieldset/Fieldset.js +6 -25
- package/lib-module/Fieldset/FieldsetContainer.js +1 -1
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
- package/lib-module/Fieldset/Legend.js +1 -1
- package/lib-module/Fieldset/Legend.native.js +1 -1
- package/lib-module/FlexGrid/Col/Col.js +10 -37
- package/lib-module/FlexGrid/FlexGrid.js +3 -17
- package/lib-module/FlexGrid/Row/Row.js +0 -25
- package/lib-module/FlexGrid/helpers/index.js +0 -3
- package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
- package/lib-module/HorizontalScroll/itemPositions.js +11 -10
- package/lib-module/Icon/Icon.js +4 -8
- package/lib-module/Icon/IconText.js +6 -17
- package/lib-module/IconButton/IconButton.js +7 -20
- package/lib-module/InputLabel/InputLabel.js +4 -13
- package/lib-module/InputLabel/LabelContent.js +2 -1
- package/lib-module/InputLabel/LabelContent.native.js +0 -1
- package/lib-module/InputSupports/InputSupports.js +0 -9
- package/lib-module/InputSupports/useInputSupports.js +2 -4
- package/lib-module/Link/ChevronLink.js +7 -7
- package/lib-module/Link/InlinePressable.js +0 -2
- package/lib-module/Link/InlinePressable.native.js +4 -12
- package/lib-module/Link/LinkBase.js +17 -25
- package/lib-module/Link/TextButton.js +3 -5
- package/lib-module/List/List.js +5 -9
- package/lib-module/List/ListItem.js +1 -1
- package/lib-module/List/ListItemBase.js +5 -17
- package/lib-module/List/ListItemContent.js +1 -4
- package/lib-module/List/ListItemMark.js +3 -16
- package/lib-module/List/PressableListItemBase.js +2 -6
- package/lib-module/Listbox/GroupControl.js +0 -2
- package/lib-module/Listbox/Listbox.js +15 -23
- package/lib-module/Listbox/ListboxContext.js +0 -2
- package/lib-module/Listbox/ListboxGroup.js +6 -4
- package/lib-module/Listbox/ListboxItem.js +2 -1
- package/lib-module/Listbox/ListboxOverlay.js +3 -4
- package/lib-module/Listbox/PressableItem.js +2 -7
- package/lib-module/Modal/Modal.js +94 -25
- package/lib-module/Modal/ModalContent.js +175 -0
- package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
- package/lib-module/Notification/Notification.js +11 -22
- package/lib-module/Pagination/PageButton.js +2 -6
- package/lib-module/Pagination/Pagination.js +21 -21
- package/lib-module/Pagination/SideButton.js +3 -8
- package/lib-module/Pagination/usePagination.js +4 -8
- package/lib-module/Progress/Progress.js +3 -7
- package/lib-module/Progress/ProgressBar.js +3 -11
- package/lib-module/Progress/ProgressBarBackground.js +0 -2
- package/lib-module/QuickLinks/QuickLinks.js +1 -6
- package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
- package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
- package/lib-module/Radio/Radio.js +5 -22
- package/lib-module/Radio/RadioButton.js +8 -10
- package/lib-module/Radio/RadioGroup.js +6 -25
- package/lib-module/Radio/RadioInput.js +1 -3
- package/lib-module/Radio/RadioInput.native.js +0 -1
- package/lib-module/RadioCard/RadioCard.js +5 -21
- package/lib-module/RadioCard/RadioCardGroup.js +25 -27
- package/lib-module/Responsive/Responsive.js +1 -6
- package/lib-module/Search/Search.js +22 -31
- package/lib-module/Select/Group.js +0 -3
- package/lib-module/Select/Group.native.js +0 -3
- package/lib-module/Select/Item.js +0 -3
- package/lib-module/Select/Item.native.js +0 -1
- package/lib-module/Select/Picker.native.js +8 -10
- package/lib-module/Select/Select.js +10 -35
- package/lib-module/SideNav/Item.js +5 -16
- package/lib-module/SideNav/ItemContent.js +1 -2
- package/lib-module/SideNav/ItemsGroup.js +9 -19
- package/lib-module/SideNav/SideNav.js +9 -22
- package/lib-module/Skeleton/Skeleton.js +10 -25
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
- package/lib-module/SkipLink/SkipLink.js +7 -9
- package/lib-module/Spacer/Spacer.js +4 -7
- package/lib-module/StackView/StackView.js +3 -7
- package/lib-module/StackView/StackWrap.js +13 -13
- package/lib-module/StackView/StackWrap.native.js +2 -1
- package/lib-module/StackView/StackWrapBox.js +5 -8
- package/lib-module/StackView/StackWrapGap.js +1 -1
- package/lib-module/StackView/getStackedContent.js +10 -10
- package/lib-module/StepTracker/Step.js +3 -14
- package/lib-module/StepTracker/StepTracker.js +5 -13
- package/lib-module/Tabs/Tabs.js +7 -16
- package/lib-module/Tabs/TabsItem.js +13 -16
- package/lib-module/Tags/Tags.js +9 -26
- package/lib-module/TextInput/TextArea.js +11 -8
- package/lib-module/TextInput/TextInput.js +7 -5
- package/lib-module/TextInput/TextInputBase.js +13 -39
- package/lib-module/TextInput/propTypes.js +3 -7
- package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
- package/lib-module/ThemeProvider/useSetTheme.js +6 -7
- package/lib-module/ThemeProvider/useTheme.js +2 -5
- package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
- package/lib-module/ThemeProvider/utils/styles.js +15 -27
- package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
- package/lib-module/Timeline/Timeline.js +11 -17
- package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
- package/lib-module/Tooltip/Backdrop.js +4 -7
- package/lib-module/Tooltip/Backdrop.native.js +1 -4
- package/lib-module/Tooltip/Tooltip.js +9 -18
- package/lib-module/Tooltip/Tooltip.native.js +14 -23
- package/lib-module/Tooltip/getTooltipPosition.js +26 -30
- package/lib-module/Tooltip/shared.js +0 -6
- package/lib-module/TooltipButton/TooltipButton.js +5 -8
- package/lib-module/Typography/Typography.js +14 -22
- package/lib-module/Validator/Validator.js +10 -42
- package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
- package/lib-module/ViewportProvider/useViewportListener.js +6 -8
- package/lib-module/index.js +1 -0
- package/lib-module/utils/BaseView/BaseView.js +3 -4
- package/lib-module/utils/BaseView/BaseView.native.js +0 -1
- package/lib-module/utils/a11y/semantics.js +14 -27
- package/lib-module/utils/a11y/textSize.js +1 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
- package/lib-module/utils/children.js +17 -19
- package/lib-module/utils/containUniqueFields.js +2 -4
- package/lib-module/utils/htmlAttrs.js +2 -1
- package/lib-module/utils/info/index.js +2 -1
- package/lib-module/utils/info/platform/index.js +4 -1
- package/lib-module/utils/info/versions.js +2 -1
- package/lib-module/utils/input.js +11 -19
- package/lib-module/utils/pressability.js +8 -7
- package/lib-module/utils/props/a11yProps.js +22 -20
- package/lib-module/utils/props/clickProps.js +0 -1
- package/lib-module/utils/props/componentPropType.js +0 -13
- package/lib-module/utils/props/getPropSelector.js +12 -8
- package/lib-module/utils/props/handlerProps.js +2 -19
- package/lib-module/utils/props/hrefAttrsProp.js +2 -2
- package/lib-module/utils/props/inputSupportsProps.js +0 -6
- package/lib-module/utils/props/linkProps.js +2 -3
- package/lib-module/utils/props/pressProps.js +2 -2
- package/lib-module/utils/props/responsiveProps.js +1 -3
- package/lib-module/utils/props/selectSystemProps.js +4 -5
- package/lib-module/utils/props/spacingProps.js +4 -3
- package/lib-module/utils/props/textInputProps.js +13 -27
- package/lib-module/utils/props/textProps.js +9 -7
- package/lib-module/utils/props/tokens.js +10 -13
- package/lib-module/utils/props/variantProp.js +1 -1
- package/lib-module/utils/props/viewProps.js +0 -1
- package/lib-module/utils/ssr.js +14 -18
- package/lib-module/utils/useCopy.js +3 -5
- package/lib-module/utils/useHash.js +5 -9
- package/lib-module/utils/useHash.native.js +0 -1
- package/lib-module/utils/useOverlaidPosition.js +6 -25
- package/lib-module/utils/useResponsiveProp.js +6 -7
- package/lib-module/utils/useSafeLayoutEffect.js +5 -7
- package/lib-module/utils/useScrollBlocking.js +3 -10
- package/lib-module/utils/useSpacingScale.js +4 -4
- package/lib-module/utils/useUniqueId.js +0 -2
- package/lib-module/utils/withLinkRouter.js +13 -10
- package/package.json +2 -2
- package/src/Checkbox/CheckboxGroup.jsx +10 -8
- package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +231 -0
- package/src/CheckboxCardGroup/index.js +3 -0
- package/src/Modal/Modal.jsx +98 -5
- package/src/Modal/ModalContent.jsx +171 -0
- package/src/RadioCard/RadioCardGroup.jsx +23 -2
- package/src/index.js +1 -0
|
@@ -4,47 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
13
|
-
|
|
14
10
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
15
|
-
|
|
16
11
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
17
|
-
|
|
18
12
|
var _portal = require("@gorhom/portal");
|
|
19
|
-
|
|
20
13
|
var _ThemeProvider = require("../ThemeProvider");
|
|
21
|
-
|
|
22
14
|
var _Card = _interopRequireDefault(require("../Card"));
|
|
23
|
-
|
|
24
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
|
-
|
|
26
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
-
|
|
28
17
|
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); }
|
|
29
|
-
|
|
30
18
|
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; }
|
|
31
|
-
|
|
32
19
|
/* eslint-disable react/require-default-props */
|
|
20
|
+
|
|
33
21
|
const staticStyles = _StyleSheet.default.create({
|
|
34
22
|
positioner: {
|
|
35
23
|
flex: 1,
|
|
36
24
|
// Grow to maxWidth when possible, shrink when not possible
|
|
37
25
|
position: 'absolute',
|
|
38
26
|
zIndex: 1000000000000000 // Position on top of all the other overlays, including backdrops and modals
|
|
39
|
-
|
|
40
27
|
},
|
|
28
|
+
|
|
41
29
|
hidden: {
|
|
42
30
|
// Use opacity not visibility to hide the dropdown during positioning
|
|
43
31
|
// so on web, children may be focused from the first render
|
|
44
32
|
opacity: 0
|
|
45
33
|
}
|
|
46
34
|
});
|
|
47
|
-
|
|
48
35
|
const paddingVertical = 0;
|
|
49
36
|
const paddingHorizontal = 0;
|
|
50
37
|
const DropdownOverlay = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
@@ -76,17 +63,16 @@ const DropdownOverlay = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
76
63
|
})
|
|
77
64
|
});
|
|
78
65
|
});
|
|
79
|
-
|
|
80
66
|
const withPortal = Overlay => {
|
|
81
67
|
// eslint-disable-next-line react/display-name, react/no-multi-comp
|
|
82
68
|
return props => {
|
|
83
69
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_portal.Portal, {
|
|
84
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Overlay, {
|
|
70
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Overlay, {
|
|
71
|
+
...props
|
|
85
72
|
})
|
|
86
73
|
});
|
|
87
74
|
};
|
|
88
75
|
};
|
|
89
|
-
|
|
90
76
|
DropdownOverlay.displayName = 'DropdownOverlay';
|
|
91
77
|
DropdownOverlay.propTypes = {
|
|
92
78
|
children: _propTypes.default.node.isRequired,
|
|
@@ -100,7 +86,5 @@ DropdownOverlay.propTypes = {
|
|
|
100
86
|
minWidth: _propTypes.default.number,
|
|
101
87
|
onLayout: _propTypes.default.func
|
|
102
88
|
};
|
|
103
|
-
|
|
104
89
|
var _default = _Platform.default.OS === 'web' ? withPortal(DropdownOverlay) : DropdownOverlay;
|
|
105
|
-
|
|
106
90
|
exports.default = _default;
|
|
@@ -4,30 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
|
|
13
|
-
|
|
14
10
|
var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
|
|
15
|
-
|
|
16
11
|
var _utils = require("../utils");
|
|
17
|
-
|
|
18
12
|
var _ListboxContext = require("./ListboxContext");
|
|
19
|
-
|
|
20
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
-
|
|
22
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
-
|
|
24
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
-
|
|
26
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
-
|
|
28
17
|
/* eslint-disable react/require-default-props */
|
|
29
|
-
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.htmlAttrs]);
|
|
30
18
|
|
|
19
|
+
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.htmlAttrs]);
|
|
31
20
|
const getItemStyles = _ref => {
|
|
32
21
|
let {
|
|
33
22
|
groupFontName,
|
|
@@ -71,7 +60,6 @@ const getItemStyles = _ref => {
|
|
|
71
60
|
justifyContent: 'center'
|
|
72
61
|
};
|
|
73
62
|
};
|
|
74
|
-
|
|
75
63
|
const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
76
64
|
let {
|
|
77
65
|
children,
|
|
@@ -90,7 +78,6 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
90
78
|
selectedId,
|
|
91
79
|
setSelectedId
|
|
92
80
|
} = (0, _ListboxContext.useListboxContext)();
|
|
93
|
-
|
|
94
81
|
const selectTextStyles = _ref3 => {
|
|
95
82
|
let {
|
|
96
83
|
groupFontName,
|
|
@@ -106,7 +93,6 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
106
93
|
lineHeight: lineHeight * itemFontSize
|
|
107
94
|
};
|
|
108
95
|
};
|
|
109
|
-
|
|
110
96
|
const resolveButtonTokens = pressableState => {
|
|
111
97
|
const themeTokens = (0, _utils.resolvePressableTokens)(tokens, pressableState, {
|
|
112
98
|
isChild,
|
|
@@ -114,7 +100,6 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
114
100
|
});
|
|
115
101
|
return themeTokens;
|
|
116
102
|
};
|
|
117
|
-
|
|
118
103
|
const handleKeyPress = event => {
|
|
119
104
|
if (['Enter', ' '].includes(event === null || event === void 0 ? void 0 : event.key)) {
|
|
120
105
|
onPress === null || onPress === void 0 ? void 0 : onPress(event);
|
|
@@ -124,7 +109,6 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
124
109
|
prevItemRef.current.focus();
|
|
125
110
|
}
|
|
126
111
|
};
|
|
127
|
-
|
|
128
112
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
|
|
129
113
|
isChild: isChild,
|
|
130
114
|
style: pressableState => getItemStyles(resolveButtonTokens(pressableState)),
|
|
@@ -153,7 +137,8 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
153
137
|
});
|
|
154
138
|
});
|
|
155
139
|
PressableItem.displayName = 'PressableItem';
|
|
156
|
-
PressableItem.propTypes = {
|
|
140
|
+
PressableItem.propTypes = {
|
|
141
|
+
...selectedSystemPropTypes,
|
|
157
142
|
href: _propTypes.default.string,
|
|
158
143
|
isChild: _propTypes.default.bool,
|
|
159
144
|
children: _propTypes.default.node.isRequired,
|
package/lib/Listbox/index.js
CHANGED
|
@@ -4,10 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _Listbox = _interopRequireDefault(require("./Listbox"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
var _default = _Listbox.default;
|
|
13
10
|
exports.default = _default;
|
package/lib/Modal/Modal.js
CHANGED
|
@@ -4,45 +4,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
11
|
-
|
|
12
9
|
var _TouchableWithoutFeedback = _interopRequireDefault(require("react-native-web/dist/cjs/exports/TouchableWithoutFeedback"));
|
|
13
|
-
|
|
14
10
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
15
|
-
|
|
16
11
|
var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
|
|
17
|
-
|
|
18
12
|
var _Modal = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Modal"));
|
|
19
|
-
|
|
20
13
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
21
|
-
|
|
22
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
|
-
|
|
24
15
|
var _ThemeProvider = require("../ThemeProvider");
|
|
25
|
-
|
|
26
16
|
var _utils = require("../utils");
|
|
27
|
-
|
|
28
17
|
var _ViewportProvider = require("../ViewportProvider");
|
|
29
|
-
|
|
30
18
|
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
|
31
|
-
|
|
32
19
|
var _dictionary = _interopRequireDefault(require("./dictionary"));
|
|
33
|
-
|
|
34
20
|
var _useScrollBlocking = _interopRequireDefault(require("../utils/useScrollBlocking"));
|
|
35
|
-
|
|
21
|
+
var _ModalContent = _interopRequireDefault(require("./ModalContent"));
|
|
36
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
37
|
-
|
|
38
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
|
-
|
|
40
24
|
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); }
|
|
41
|
-
|
|
42
25
|
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; }
|
|
43
|
-
|
|
44
26
|
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
45
|
-
|
|
46
27
|
const selectContainerStyles = _ref => {
|
|
47
28
|
let {
|
|
48
29
|
containerPaddingLeft,
|
|
@@ -61,7 +42,6 @@ const selectContainerStyles = _ref => {
|
|
|
61
42
|
paddingBottom: containerPaddingBottom
|
|
62
43
|
};
|
|
63
44
|
};
|
|
64
|
-
|
|
65
45
|
const selectModalStyles = _ref2 => {
|
|
66
46
|
let {
|
|
67
47
|
backgroundColor,
|
|
@@ -79,12 +59,12 @@ const selectModalStyles = _ref2 => {
|
|
|
79
59
|
height,
|
|
80
60
|
paddingLeft,
|
|
81
61
|
paddingRight,
|
|
82
|
-
paddingTop,
|
|
62
|
+
paddingTop: _Platform.default.OS !== 'web' ? 16 + paddingTop : paddingTop,
|
|
63
|
+
// the 16 additions are due to the border that is present in the mobile version
|
|
83
64
|
paddingBottom,
|
|
84
65
|
...(0, _ThemeProvider.applyShadowToken)(shadow)
|
|
85
66
|
};
|
|
86
67
|
};
|
|
87
|
-
|
|
88
68
|
const selectBackdropStyles = _ref3 => {
|
|
89
69
|
let {
|
|
90
70
|
backdropColor,
|
|
@@ -95,7 +75,6 @@ const selectBackdropStyles = _ref3 => {
|
|
|
95
75
|
opacity: backdropOpacity
|
|
96
76
|
};
|
|
97
77
|
};
|
|
98
|
-
|
|
99
78
|
const selectCloseButtonContainerStyles = _ref4 => {
|
|
100
79
|
let {
|
|
101
80
|
paddingRight,
|
|
@@ -103,9 +82,14 @@ const selectCloseButtonContainerStyles = _ref4 => {
|
|
|
103
82
|
} = _ref4;
|
|
104
83
|
return {
|
|
105
84
|
paddingRight,
|
|
106
|
-
paddingTop
|
|
85
|
+
paddingTop: _Platform.default.OS !== 'web' ? 24 + paddingTop : paddingTop // The 24 additions are due to the border that is present in the mobile version for the close button
|
|
107
86
|
};
|
|
108
87
|
};
|
|
88
|
+
|
|
89
|
+
const selectScrollViewStyles = () => ({
|
|
90
|
+
flex: 1
|
|
91
|
+
});
|
|
92
|
+
|
|
109
93
|
/**
|
|
110
94
|
* A modal window is a secondary window that opens on top of the main one.
|
|
111
95
|
* Users have to interact with it before they can carry out their task and return to the main window.
|
|
@@ -120,8 +104,6 @@ const selectCloseButtonContainerStyles = _ref4 => {
|
|
|
120
104
|
* - Don’t use modals to reinforce or repeat information already available in the parent page or view
|
|
121
105
|
* - Don’t use modals consecutively
|
|
122
106
|
*/
|
|
123
|
-
|
|
124
|
-
|
|
125
107
|
const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
126
108
|
let {
|
|
127
109
|
children,
|
|
@@ -129,9 +111,20 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
|
129
111
|
onClose,
|
|
130
112
|
maxWidth,
|
|
131
113
|
tokens,
|
|
132
|
-
variant,
|
|
133
114
|
copy,
|
|
134
115
|
closeButton,
|
|
116
|
+
onCancel = onClose,
|
|
117
|
+
onConfirm,
|
|
118
|
+
heading,
|
|
119
|
+
headingLevel,
|
|
120
|
+
subHeading,
|
|
121
|
+
subHeadingSize,
|
|
122
|
+
bodyText,
|
|
123
|
+
variant = {},
|
|
124
|
+
confirmButtonText,
|
|
125
|
+
confirmButtonVariant,
|
|
126
|
+
cancelButtonText,
|
|
127
|
+
cancelButtonType,
|
|
135
128
|
...rest
|
|
136
129
|
} = _ref5;
|
|
137
130
|
const viewport = (0, _ViewportProvider.useViewport)();
|
|
@@ -148,23 +141,19 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
|
148
141
|
copy
|
|
149
142
|
});
|
|
150
143
|
const closeLabel = getCopy('closeButton');
|
|
151
|
-
|
|
152
144
|
const handleClose = () => {
|
|
153
145
|
if (typeof onClose === 'function') onClose();
|
|
154
146
|
};
|
|
155
|
-
|
|
156
147
|
const handleKeyUp = event => {
|
|
157
148
|
if (event.key === 'Escape') onClose();
|
|
158
|
-
};
|
|
159
|
-
// Hide the close button if `closeButton` is `null`.
|
|
160
|
-
|
|
149
|
+
};
|
|
161
150
|
|
|
151
|
+
// Show the custom react node passed to `closedButton` or the default close button if `closeButton` is `undefined`.
|
|
152
|
+
// Hide the close button if `closeButton` is `null`.
|
|
162
153
|
const showCloseButton = closeButton !== null;
|
|
163
|
-
|
|
164
154
|
if (!isOpen) {
|
|
165
155
|
return null;
|
|
166
156
|
}
|
|
167
|
-
|
|
168
157
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.default, {
|
|
169
158
|
transparent: true,
|
|
170
159
|
...selectProps(rest),
|
|
@@ -187,7 +176,27 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
|
187
176
|
accessibilityRole: "button",
|
|
188
177
|
accessibilityLabel: closeLabel
|
|
189
178
|
})
|
|
190
|
-
}),
|
|
179
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ModalContent.default, {
|
|
180
|
+
tokens: tokens,
|
|
181
|
+
variant: variant,
|
|
182
|
+
onCancel: onCancel,
|
|
183
|
+
onConfirm: onConfirm,
|
|
184
|
+
heading: heading,
|
|
185
|
+
headingLevel: headingLevel,
|
|
186
|
+
subHeading: subHeading,
|
|
187
|
+
subHeadingSize: subHeadingSize,
|
|
188
|
+
bodyText: bodyText,
|
|
189
|
+
confirmButtonText: confirmButtonText,
|
|
190
|
+
confirmButtonVariant: confirmButtonVariant,
|
|
191
|
+
cancelButtonText: cancelButtonText,
|
|
192
|
+
cancelButtonType: cancelButtonType,
|
|
193
|
+
children: _Platform.default !== 'web' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollView.default, {
|
|
194
|
+
style: selectScrollViewStyles,
|
|
195
|
+
children: children
|
|
196
|
+
}) : {
|
|
197
|
+
children
|
|
198
|
+
}
|
|
199
|
+
})]
|
|
191
200
|
})
|
|
192
201
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TouchableWithoutFeedback.default, {
|
|
193
202
|
onPress: handleClose,
|
|
@@ -199,39 +208,79 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
|
199
208
|
});
|
|
200
209
|
});
|
|
201
210
|
Modal.displayName = 'Modal';
|
|
202
|
-
Modal.propTypes = {
|
|
211
|
+
Modal.propTypes = {
|
|
212
|
+
...selectedSystemPropTypes,
|
|
203
213
|
children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.arrayOf(_propTypes.default.node)]),
|
|
204
|
-
|
|
205
214
|
/**
|
|
206
215
|
* To define the locale of the copy
|
|
207
216
|
*/
|
|
208
217
|
copy: _utils.copyPropTypes,
|
|
209
|
-
|
|
210
218
|
/**
|
|
211
219
|
* Setting this to `true` will open the `Modal`
|
|
212
220
|
*/
|
|
213
221
|
isOpen: _propTypes.default.bool,
|
|
214
|
-
|
|
215
222
|
/**
|
|
216
223
|
* This function is triggered when the `Modal` is closed
|
|
217
224
|
*/
|
|
218
225
|
onClose: _propTypes.default.func,
|
|
219
|
-
|
|
220
226
|
/**
|
|
221
227
|
* `max-width` is applied to the `Modal` container
|
|
222
228
|
*/
|
|
223
229
|
maxWidth: _propTypes.default.bool,
|
|
224
230
|
tokens: (0, _utils.getTokensPropType)('Modal'),
|
|
225
231
|
variant: _utils.variantProp.propType,
|
|
226
|
-
|
|
227
232
|
/**
|
|
228
233
|
* Pass a react node to override the default close button or pass `null` to hide the close button.
|
|
229
234
|
*/
|
|
230
|
-
closeButton: _propTypes.default.node
|
|
235
|
+
closeButton: _propTypes.default.node,
|
|
236
|
+
/**
|
|
237
|
+
* Receive a string to set the heading of the modal.
|
|
238
|
+
*/
|
|
239
|
+
heading: _propTypes.default.string,
|
|
240
|
+
/**
|
|
241
|
+
* Receive h3 or h4 to define the level of the heading.
|
|
242
|
+
*/
|
|
243
|
+
headingLevel: _propTypes.default.oneOf(['h3', 'h4']),
|
|
244
|
+
/**
|
|
245
|
+
* Receive a string to set the sub heading of the modal.
|
|
246
|
+
*/
|
|
247
|
+
subHeading: _propTypes.default.string,
|
|
248
|
+
/**
|
|
249
|
+
* Receive small, medium or large to set the size of the sub heading.
|
|
250
|
+
*/
|
|
251
|
+
subHeadingSize: _propTypes.default.oneOf(['small', 'medium', 'large']),
|
|
252
|
+
/**
|
|
253
|
+
* Receive a string to set the bodyText of the modal.
|
|
254
|
+
*/
|
|
255
|
+
bodyText: _propTypes.default.string,
|
|
256
|
+
/**
|
|
257
|
+
* Receive a string text for the confirm button.
|
|
258
|
+
*/
|
|
259
|
+
confirmButtonText: _propTypes.default.string,
|
|
260
|
+
/**
|
|
261
|
+
* Receives a variant of button for the confirm button.
|
|
262
|
+
*/
|
|
263
|
+
confirmButtonVariant: _propTypes.default.object,
|
|
264
|
+
/**
|
|
265
|
+
* Receive a function for the onConfirm event in the confirm button.
|
|
266
|
+
*/
|
|
267
|
+
onConfirm: _propTypes.default.func,
|
|
268
|
+
/**
|
|
269
|
+
* Receive a string text for the cancel button.
|
|
270
|
+
*/
|
|
271
|
+
cancelButtonText: _propTypes.default.string,
|
|
272
|
+
/**
|
|
273
|
+
* Receives a variant of button for the cancel button.
|
|
274
|
+
*/
|
|
275
|
+
cancelButtonType: _propTypes.default.elementType,
|
|
276
|
+
// TODO: figure out a way of passing an icon to the TextButton
|
|
277
|
+
/**
|
|
278
|
+
* Receive a function for the onCancel event in the cancel button.
|
|
279
|
+
*/
|
|
280
|
+
onCancel: _propTypes.default.func
|
|
231
281
|
};
|
|
232
282
|
var _default = Modal;
|
|
233
283
|
exports.default = _default;
|
|
234
|
-
|
|
235
284
|
const staticStyles = _StyleSheet.default.create({
|
|
236
285
|
backdrop: {
|
|
237
286
|
position: 'absolute',
|
|
@@ -255,8 +304,8 @@ const staticStyles = _StyleSheet.default.create({
|
|
|
255
304
|
maxHeight: '100%',
|
|
256
305
|
// so that the container can expand up to the full viewport height
|
|
257
306
|
width: '100%' // ensure that the modal actually expands to the set maxWidth
|
|
258
|
-
|
|
259
307
|
},
|
|
308
|
+
|
|
260
309
|
modal: {
|
|
261
310
|
maxHeight: '100%',
|
|
262
311
|
// so that the modal can expand vertically up to the sizing container's height (exclusive of its vertical padding)
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
9
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
10
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _Box = _interopRequireDefault(require("../Box"));
|
|
13
|
+
var _Button = require("../Button");
|
|
14
|
+
var _Link = require("../Link");
|
|
15
|
+
var _Spacer = _interopRequireDefault(require("../Spacer"));
|
|
16
|
+
var _Typography = _interopRequireDefault(require("../Typography"));
|
|
17
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
18
|
+
var _ViewportProvider = require("../ViewportProvider");
|
|
19
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
const ModalContent = _ref => {
|
|
24
|
+
let {
|
|
25
|
+
heading,
|
|
26
|
+
headingLevel = 'h3',
|
|
27
|
+
subHeading,
|
|
28
|
+
subHeadingSize = 'medium',
|
|
29
|
+
bodyText,
|
|
30
|
+
confirmButtonText,
|
|
31
|
+
confirmButtonVariant = {
|
|
32
|
+
priority: 'high'
|
|
33
|
+
},
|
|
34
|
+
onConfirm,
|
|
35
|
+
tokens,
|
|
36
|
+
variant,
|
|
37
|
+
cancelButtonText,
|
|
38
|
+
cancelButtonType: CancelButton = _Link.TextButton,
|
|
39
|
+
children,
|
|
40
|
+
onCancel
|
|
41
|
+
} = _ref;
|
|
42
|
+
const {
|
|
43
|
+
headingColor,
|
|
44
|
+
cancelButtonColor,
|
|
45
|
+
...themeTokens
|
|
46
|
+
} = (0, _ThemeProvider.useThemeTokens)('Modal', tokens, variant);
|
|
47
|
+
const [scrollContainerHeight, setScrollContainerHeight] = (0, _react.useState)(0);
|
|
48
|
+
const [scrollContentHeight, setScrollContentHeight] = (0, _react.useState)(0);
|
|
49
|
+
const viewport = (0, _ViewportProvider.useViewport)();
|
|
50
|
+
const handleContainerLayout = _ref2 => {
|
|
51
|
+
let {
|
|
52
|
+
nativeEvent: {
|
|
53
|
+
layout: {
|
|
54
|
+
height
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
} = _ref2;
|
|
58
|
+
return setScrollContainerHeight(height);
|
|
59
|
+
};
|
|
60
|
+
const onContentSizeChange = (_, height) => setScrollContentHeight(height);
|
|
61
|
+
const isContentOverflowing = scrollContentHeight > scrollContainerHeight;
|
|
62
|
+
const hasConfirmButton = confirmButtonText !== undefined && onConfirm !== undefined;
|
|
63
|
+
const hasCancelButton = cancelButtonText !== undefined && onCancel !== undefined;
|
|
64
|
+
const hasHeadingSection = Boolean(heading || subHeading);
|
|
65
|
+
const selectFooterContainerStyles = _ref3 => {
|
|
66
|
+
let {
|
|
67
|
+
paddingLeft,
|
|
68
|
+
paddingRight,
|
|
69
|
+
paddingTop,
|
|
70
|
+
marginLeft,
|
|
71
|
+
marginRight,
|
|
72
|
+
borderColor,
|
|
73
|
+
gap,
|
|
74
|
+
direction,
|
|
75
|
+
hasBorder
|
|
76
|
+
} = _ref3;
|
|
77
|
+
return {
|
|
78
|
+
flexDirection: direction,
|
|
79
|
+
alignItems: 'center',
|
|
80
|
+
gap,
|
|
81
|
+
marginLeft: -marginLeft,
|
|
82
|
+
marginRight: -marginRight,
|
|
83
|
+
paddingLeft,
|
|
84
|
+
paddingRight,
|
|
85
|
+
paddingTop,
|
|
86
|
+
borderTopColor: hasBorder ? borderColor : 'transparent',
|
|
87
|
+
borderTopWidth: hasBorder ? 1 : 0
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
const headingStyles = {
|
|
91
|
+
flexDirection: 'column',
|
|
92
|
+
paddingTop: 8,
|
|
93
|
+
paddingRight: themeTokens.headingPaddingRight
|
|
94
|
+
};
|
|
95
|
+
const subheadingStyles = {
|
|
96
|
+
marginTop: themeTokens.subHeadingMarginTop
|
|
97
|
+
};
|
|
98
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
99
|
+
style: styles.modalContent,
|
|
100
|
+
children: [hasHeadingSection && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
101
|
+
style: headingStyles,
|
|
102
|
+
children: [heading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
103
|
+
variant: {
|
|
104
|
+
size: headingLevel
|
|
105
|
+
},
|
|
106
|
+
tokens: {
|
|
107
|
+
color: headingColor
|
|
108
|
+
},
|
|
109
|
+
heading: headingLevel,
|
|
110
|
+
children: heading
|
|
111
|
+
}), subHeading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
112
|
+
style: subheadingStyles,
|
|
113
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
114
|
+
variant: {
|
|
115
|
+
size: subHeadingSize
|
|
116
|
+
},
|
|
117
|
+
children: subHeading
|
|
118
|
+
})
|
|
119
|
+
}), Boolean(bodyText && hasHeadingSection) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
120
|
+
space: 3
|
|
121
|
+
})]
|
|
122
|
+
}), bodyText && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
123
|
+
scroll: {
|
|
124
|
+
onContentSizeChange,
|
|
125
|
+
showsVerticalScrollIndicator: true
|
|
126
|
+
},
|
|
127
|
+
onLayout: handleContainerLayout,
|
|
128
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
129
|
+
children: bodyText
|
|
130
|
+
})
|
|
131
|
+
}), children, (hasConfirmButton || hasCancelButton) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
132
|
+
style: [selectFooterContainerStyles({
|
|
133
|
+
...themeTokens,
|
|
134
|
+
hasBorder: isContentOverflowing
|
|
135
|
+
})],
|
|
136
|
+
children: [hasConfirmButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, {
|
|
137
|
+
variant: confirmButtonVariant,
|
|
138
|
+
tokens: {
|
|
139
|
+
width: viewport === 'xs' || viewport === 'sm' ? '100%' : undefined
|
|
140
|
+
},
|
|
141
|
+
onPress: onConfirm,
|
|
142
|
+
children: confirmButtonText
|
|
143
|
+
}), hasCancelButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
144
|
+
style: styles.styledTextButtonContainer,
|
|
145
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CancelButton, {
|
|
146
|
+
tokens: {
|
|
147
|
+
color: cancelButtonColor
|
|
148
|
+
},
|
|
149
|
+
onPress: onCancel,
|
|
150
|
+
children: cancelButtonText
|
|
151
|
+
})
|
|
152
|
+
}) : null]
|
|
153
|
+
})]
|
|
154
|
+
});
|
|
155
|
+
};
|
|
156
|
+
const styles = _StyleSheet.default.create({
|
|
157
|
+
modalContent: {
|
|
158
|
+
flex: 1,
|
|
159
|
+
flexDirection: 'column',
|
|
160
|
+
minHeight: _Platform.default.OS === 'web' ? '100%' : 'auto'
|
|
161
|
+
},
|
|
162
|
+
styledTextButtonContainer: {
|
|
163
|
+
flex: 1
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
ModalContent.propTypes = {
|
|
167
|
+
tokens: _propTypes.default.object,
|
|
168
|
+
variant: _propTypes.default.object,
|
|
169
|
+
heading: _propTypes.default.string,
|
|
170
|
+
headingLevel: _propTypes.default.oneOf(['h3', 'h4']),
|
|
171
|
+
subHeading: _propTypes.default.string,
|
|
172
|
+
subHeadingSize: _propTypes.default.oneOf(['small', 'medium', 'large']),
|
|
173
|
+
bodyText: _propTypes.default.string,
|
|
174
|
+
confirmButtonText: _propTypes.default.string,
|
|
175
|
+
confirmButtonVariant: _propTypes.default.object,
|
|
176
|
+
onConfirm: _propTypes.default.func,
|
|
177
|
+
cancelButtonText: _propTypes.default.string,
|
|
178
|
+
cancelButtonType: _propTypes.default.elementType,
|
|
179
|
+
// TODO: figure out a way of passing an icon to the TextButton
|
|
180
|
+
children: _propTypes.default.node,
|
|
181
|
+
onCancel: _propTypes.default.func
|
|
182
|
+
};
|
|
183
|
+
var _default = ModalContent;
|
|
184
|
+
exports.default = _default;
|
package/lib/Modal/index.js
CHANGED
|
@@ -4,10 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _Modal = _interopRequireDefault(require("./Modal"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
var _default = _Modal.default;
|
|
13
10
|
exports.default = _default;
|