@telus-uds/components-base 1.65.0 → 1.67.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 +22 -2
- 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 +5 -37
- 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 +215 -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 +7 -38
- 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 +106 -69
- package/lib/TextInput/index.js +0 -3
- package/lib/TextInput/propTypes.js +4 -7
- 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 +11 -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 +5 -23
- 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 +205 -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 +7 -25
- 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 +107 -51
- package/lib-module/TextInput/propTypes.js +7 -6
- 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 +14 -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/CheckboxCardGroup/CheckboxCardGroup.jsx +230 -0
- package/src/CheckboxCardGroup/index.js +3 -0
- package/src/Modal/Modal.jsx +98 -5
- package/src/Modal/ModalContent.jsx +171 -0
- package/src/TextInput/TextInputBase.jsx +67 -12
- package/src/TextInput/propTypes.js +4 -0
- package/src/index.js +1 -0
- package/src/utils/props/textInputProps.js +1 -0
|
@@ -2,7 +2,6 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { componentPropType } from '../utils';
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
|
|
6
5
|
const Group = _ref => {
|
|
7
6
|
let {
|
|
8
7
|
children,
|
|
@@ -13,11 +12,9 @@ const Group = _ref => {
|
|
|
13
12
|
children: children
|
|
14
13
|
});
|
|
15
14
|
};
|
|
16
|
-
|
|
17
15
|
export default Group;
|
|
18
16
|
Group.propTypes = {
|
|
19
17
|
children: componentPropType('Item'),
|
|
20
|
-
|
|
21
18
|
/**
|
|
22
19
|
* The label for the group.
|
|
23
20
|
*/
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import { componentPropType } from '../utils';
|
|
3
|
-
|
|
4
3
|
const Group = _ref => {
|
|
5
4
|
let {
|
|
6
5
|
children
|
|
7
6
|
} = _ref;
|
|
8
7
|
return children;
|
|
9
8
|
};
|
|
10
|
-
|
|
11
9
|
export default Group;
|
|
12
10
|
Group.propTypes = {
|
|
13
11
|
children: componentPropType('Item'),
|
|
14
|
-
|
|
15
12
|
/**
|
|
16
13
|
* The label for the group.
|
|
17
14
|
*/
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
-
|
|
5
4
|
const Item = _ref => {
|
|
6
5
|
let {
|
|
7
6
|
children,
|
|
@@ -12,11 +11,9 @@ const Item = _ref => {
|
|
|
12
11
|
children: children
|
|
13
12
|
});
|
|
14
13
|
};
|
|
15
|
-
|
|
16
14
|
export default Item;
|
|
17
15
|
Item.propTypes = {
|
|
18
16
|
children: PropTypes.string.isRequired,
|
|
19
|
-
|
|
20
17
|
/**
|
|
21
18
|
* The value of the option
|
|
22
19
|
*/
|
|
@@ -5,11 +5,11 @@ import Platform from "react-native-web/dist/exports/Platform";
|
|
|
5
5
|
import NativePicker from 'react-native-picker-select';
|
|
6
6
|
import { a11yProps, componentPropType } from '../utils';
|
|
7
7
|
import Group from './Group';
|
|
8
|
-
import { ANDROID_HEIGHT_OFFSET, ANDROID_HORIZONTAL_PADDING_OFFSET, ANDROID_DEFAULT_PADDING } from './constants';
|
|
8
|
+
import { ANDROID_HEIGHT_OFFSET, ANDROID_HORIZONTAL_PADDING_OFFSET, ANDROID_DEFAULT_PADDING } from './constants';
|
|
9
9
|
|
|
10
|
+
// Styling of the native input is very limited, most of the styles have to be applied to an additional View
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
12
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
|
-
|
|
13
13
|
const selectAndroidInputStyles = _ref => {
|
|
14
14
|
let {
|
|
15
15
|
height = 0,
|
|
@@ -21,16 +21,17 @@ const selectAndroidInputStyles = _ref => {
|
|
|
21
21
|
paddingTop: 0,
|
|
22
22
|
color
|
|
23
23
|
};
|
|
24
|
-
};
|
|
25
|
-
|
|
24
|
+
};
|
|
26
25
|
|
|
26
|
+
// The native input has a side padding of 8px, which can't be adjusted, so we have to account for that in the container
|
|
27
27
|
const selectAndroidContainerStyles = _ref2 => {
|
|
28
28
|
let {
|
|
29
29
|
paddingLeft = ANDROID_DEFAULT_PADDING,
|
|
30
30
|
paddingRight = ANDROID_DEFAULT_PADDING,
|
|
31
31
|
...rest
|
|
32
32
|
} = _ref2;
|
|
33
|
-
return {
|
|
33
|
+
return {
|
|
34
|
+
...rest,
|
|
34
35
|
paddingLeft: paddingLeft > ANDROID_HORIZONTAL_PADDING_OFFSET ? paddingLeft - ANDROID_HORIZONTAL_PADDING_OFFSET : ANDROID_DEFAULT_PADDING,
|
|
35
36
|
paddingRight: paddingRight > ANDROID_HORIZONTAL_PADDING_OFFSET ? paddingRight - ANDROID_HORIZONTAL_PADDING_OFFSET : ANDROID_DEFAULT_PADDING,
|
|
36
37
|
paddingBottom: ANDROID_DEFAULT_PADDING,
|
|
@@ -38,7 +39,6 @@ const selectAndroidContainerStyles = _ref2 => {
|
|
|
38
39
|
height: rest.height + ANDROID_HEIGHT_OFFSET
|
|
39
40
|
};
|
|
40
41
|
};
|
|
41
|
-
|
|
42
42
|
const Picker = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
43
43
|
let {
|
|
44
44
|
value,
|
|
@@ -56,7 +56,6 @@ const Picker = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
56
56
|
if (child.type === Group) {
|
|
57
57
|
return child.props.children;
|
|
58
58
|
}
|
|
59
|
-
|
|
60
59
|
return child;
|
|
61
60
|
});
|
|
62
61
|
const items = flatChildren.map(_ref4 => {
|
|
@@ -67,8 +66,9 @@ const Picker = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
67
66
|
label: props.children,
|
|
68
67
|
value: props.value
|
|
69
68
|
};
|
|
70
|
-
});
|
|
69
|
+
});
|
|
71
70
|
|
|
71
|
+
// Unlike other input components, react-native-picker-select doesn't pass an event to its change fn.
|
|
72
72
|
const handleChange = (newValue, index) => {
|
|
73
73
|
if (onChange) onChange(newValue, {
|
|
74
74
|
// TODO: see if it's possible to pass a real React SyntheticEvent here. For now, just pass an
|
|
@@ -79,7 +79,6 @@ const Picker = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
81
|
};
|
|
82
|
-
|
|
83
82
|
const picker = /*#__PURE__*/_jsx(NativePicker, {
|
|
84
83
|
pickerProps: {
|
|
85
84
|
ref
|
|
@@ -97,7 +96,6 @@ const Picker = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
97
96
|
},
|
|
98
97
|
placeholder: placeholder !== undefined ? placeholder : {}
|
|
99
98
|
});
|
|
100
|
-
|
|
101
99
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
102
100
|
children: Platform.OS === 'android' ? /*#__PURE__*/_jsx(View, {
|
|
103
101
|
style: selectAndroidContainerStyles(style),
|
|
@@ -11,7 +11,6 @@ import { ANDROID_VALIDATION_ICON_CONTAINER_OFFSET } from './constants';
|
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, inputSupportsProps, viewProps]);
|
|
14
|
-
|
|
15
14
|
const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
16
15
|
let {
|
|
17
16
|
backgroundColor,
|
|
@@ -33,11 +32,9 @@ const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
|
33
32
|
validationIconSize = 0,
|
|
34
33
|
height
|
|
35
34
|
} = _ref;
|
|
36
|
-
|
|
37
35
|
// Subtract border width from padding so overall input width/height doesn't
|
|
38
36
|
// jump around if the border width changes (avoiding NaN and negative padding)
|
|
39
37
|
const offsetBorder = value => typeof value === 'number' ? Math.max(0, value - borderWidth) : value;
|
|
40
|
-
|
|
41
38
|
const textStyles = applyTextStyles({
|
|
42
39
|
fontName,
|
|
43
40
|
fontSize,
|
|
@@ -53,21 +50,18 @@ const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
|
53
50
|
outline: 'none',
|
|
54
51
|
cursor: inactive ? 'not-allowed' : undefined,
|
|
55
52
|
opacity: inactive ? 1 : undefined // override Chrome's default fadeout of a disabled select
|
|
56
|
-
|
|
57
53
|
}
|
|
58
54
|
});
|
|
59
|
-
let paddingWithIcons = paddingRight;
|
|
60
55
|
|
|
56
|
+
let paddingWithIcons = paddingRight;
|
|
61
57
|
if (Platform.OS !== 'android') {
|
|
62
58
|
if (icon) {
|
|
63
59
|
paddingWithIcons += iconSize;
|
|
64
60
|
}
|
|
65
|
-
|
|
66
61
|
if (validationIcon) {
|
|
67
62
|
paddingWithIcons += validationIconSize;
|
|
68
63
|
}
|
|
69
64
|
}
|
|
70
|
-
|
|
71
65
|
return {
|
|
72
66
|
backgroundColor,
|
|
73
67
|
color,
|
|
@@ -83,7 +77,6 @@ const selectInputStyles = (_ref, themeOptions, inactive) => {
|
|
|
83
77
|
...webStyles
|
|
84
78
|
};
|
|
85
79
|
};
|
|
86
|
-
|
|
87
80
|
const selectOuterBorderStyles = _ref2 => {
|
|
88
81
|
let {
|
|
89
82
|
outerBackgroundColor,
|
|
@@ -100,7 +93,6 @@ const selectOuterBorderStyles = _ref2 => {
|
|
|
100
93
|
})
|
|
101
94
|
};
|
|
102
95
|
};
|
|
103
|
-
|
|
104
96
|
const selectIconTokens = _ref3 => {
|
|
105
97
|
let {
|
|
106
98
|
iconSize,
|
|
@@ -111,7 +103,6 @@ const selectIconTokens = _ref3 => {
|
|
|
111
103
|
color: iconColor
|
|
112
104
|
};
|
|
113
105
|
};
|
|
114
|
-
|
|
115
106
|
const selectIconContainerStyles = _ref4 => {
|
|
116
107
|
let {
|
|
117
108
|
paddingRight,
|
|
@@ -123,7 +114,6 @@ const selectIconContainerStyles = _ref4 => {
|
|
|
123
114
|
paddingBottom
|
|
124
115
|
};
|
|
125
116
|
};
|
|
126
|
-
|
|
127
117
|
const selectValidationIconTokens = _ref5 => {
|
|
128
118
|
let {
|
|
129
119
|
validationIconSize,
|
|
@@ -134,7 +124,6 @@ const selectValidationIconTokens = _ref5 => {
|
|
|
134
124
|
color: validationIconColor
|
|
135
125
|
};
|
|
136
126
|
};
|
|
137
|
-
|
|
138
127
|
const selectValidationIconContainerStyles = _ref6 => {
|
|
139
128
|
let {
|
|
140
129
|
icon,
|
|
@@ -151,7 +140,6 @@ const selectValidationIconContainerStyles = _ref6 => {
|
|
|
151
140
|
})
|
|
152
141
|
};
|
|
153
142
|
};
|
|
154
|
-
|
|
155
143
|
const selectCustomFeedbackStyles = _ref7 => {
|
|
156
144
|
let {
|
|
157
145
|
feedbackBackgroundColor
|
|
@@ -160,6 +148,7 @@ const selectCustomFeedbackStyles = _ref7 => {
|
|
|
160
148
|
backgroundColor: feedbackBackgroundColor
|
|
161
149
|
};
|
|
162
150
|
};
|
|
151
|
+
|
|
163
152
|
/**
|
|
164
153
|
* A basic form single-choice select component. Use in forms or individually to receive user's input.
|
|
165
154
|
*
|
|
@@ -192,8 +181,6 @@ const selectCustomFeedbackStyles = _ref7 => {
|
|
|
192
181
|
* NOTE: this does not work on native platforms - the grouped items will be shown at the same level as the non-grouped items.
|
|
193
182
|
*
|
|
194
183
|
*/
|
|
195
|
-
|
|
196
|
-
|
|
197
184
|
const Select = /*#__PURE__*/forwardRef((_ref8, ref) => {
|
|
198
185
|
let {
|
|
199
186
|
value,
|
|
@@ -219,17 +206,11 @@ const Select = /*#__PURE__*/forwardRef((_ref8, ref) => {
|
|
|
219
206
|
readOnly
|
|
220
207
|
});
|
|
221
208
|
const [isFocused, setIsFocused] = useState(false);
|
|
222
|
-
|
|
223
209
|
const handleFocus = () => setIsFocused(true);
|
|
224
|
-
|
|
225
210
|
const handleBlur = () => setIsFocused(false);
|
|
226
|
-
|
|
227
211
|
const [isHovered, setIsHovered] = useState(false);
|
|
228
|
-
|
|
229
212
|
const handleMouseOver = () => setIsHovered(true);
|
|
230
|
-
|
|
231
213
|
const handleMouseOut = () => setIsHovered(false);
|
|
232
|
-
|
|
233
214
|
const {
|
|
234
215
|
supportsProps,
|
|
235
216
|
...selectedProps
|
|
@@ -247,7 +228,8 @@ const Select = /*#__PURE__*/forwardRef((_ref8, ref) => {
|
|
|
247
228
|
const {
|
|
248
229
|
themeOptions
|
|
249
230
|
} = useTheme();
|
|
250
|
-
return /*#__PURE__*/_jsx(InputSupports, {
|
|
231
|
+
return /*#__PURE__*/_jsx(InputSupports, {
|
|
232
|
+
...supportsProps,
|
|
251
233
|
...selectedProps,
|
|
252
234
|
validation: validation,
|
|
253
235
|
feedbackTokens: selectCustomFeedbackStyles(themeTokens),
|
|
@@ -279,7 +261,8 @@ const Select = /*#__PURE__*/forwardRef((_ref8, ref) => {
|
|
|
279
261
|
}), ValidationIconComponent && /*#__PURE__*/_jsx(View, {
|
|
280
262
|
pointerEvents: "none",
|
|
281
263
|
style: [staticStyles.iconContainer, selectValidationIconContainerStyles(themeTokens)],
|
|
282
|
-
children: /*#__PURE__*/_jsx(ValidationIconComponent, {
|
|
264
|
+
children: /*#__PURE__*/_jsx(ValidationIconComponent, {
|
|
265
|
+
...selectValidationIconTokens(themeTokens)
|
|
283
266
|
})
|
|
284
267
|
}), IconComponent && Platform.OS !== 'android' &&
|
|
285
268
|
/*#__PURE__*/
|
|
@@ -287,7 +270,8 @@ const Select = /*#__PURE__*/forwardRef((_ref8, ref) => {
|
|
|
287
270
|
_jsx(View, {
|
|
288
271
|
pointerEvents: "none",
|
|
289
272
|
style: [staticStyles.iconContainer, selectIconContainerStyles(themeTokens)],
|
|
290
|
-
children: /*#__PURE__*/_jsx(IconComponent, {
|
|
273
|
+
children: /*#__PURE__*/_jsx(IconComponent, {
|
|
274
|
+
...selectIconTokens(themeTokens)
|
|
291
275
|
})
|
|
292
276
|
})]
|
|
293
277
|
});
|
|
@@ -295,54 +279,45 @@ const Select = /*#__PURE__*/forwardRef((_ref8, ref) => {
|
|
|
295
279
|
});
|
|
296
280
|
});
|
|
297
281
|
Select.displayName = 'Select';
|
|
298
|
-
Select.propTypes = {
|
|
299
|
-
|
|
282
|
+
Select.propTypes = {
|
|
283
|
+
...selectedSystemPropTypes,
|
|
300
284
|
/**
|
|
301
285
|
* Initial value for the uncontrolled version.
|
|
302
286
|
*/
|
|
303
287
|
initialValue: PropTypes.string,
|
|
304
|
-
|
|
305
288
|
/**
|
|
306
289
|
* Current value to be set as selected.
|
|
307
290
|
*/
|
|
308
291
|
value: PropTypes.string,
|
|
309
|
-
|
|
310
292
|
/**
|
|
311
293
|
* Callback to be called when the value changes.
|
|
312
294
|
*/
|
|
313
295
|
onChange: PropTypes.func,
|
|
314
|
-
|
|
315
296
|
/**
|
|
316
297
|
* An array of items or item groups to be used as options.
|
|
317
298
|
*/
|
|
318
299
|
children: componentPropType(['Item', 'Group']),
|
|
319
|
-
|
|
320
300
|
/**
|
|
321
301
|
* Whether the select is disabled.
|
|
322
302
|
*/
|
|
323
303
|
inactive: PropTypes.bool,
|
|
324
|
-
|
|
325
304
|
/**
|
|
326
305
|
* Whether the select is read-only.
|
|
327
306
|
*/
|
|
328
307
|
readOnly: PropTypes.bool,
|
|
329
|
-
|
|
330
308
|
/**
|
|
331
309
|
* A placeholder to provide instructions (such as "Please select...")
|
|
332
310
|
* as an unselectable option
|
|
333
311
|
*/
|
|
334
312
|
placeholder: PropTypes.string,
|
|
335
|
-
|
|
336
313
|
/**
|
|
337
314
|
* Select tokens.
|
|
338
315
|
*/
|
|
339
316
|
tokens: getTokensPropType('Select'),
|
|
340
|
-
|
|
341
317
|
/**
|
|
342
318
|
* Select variant.
|
|
343
319
|
*/
|
|
344
320
|
variant: variantProp.propType,
|
|
345
|
-
|
|
346
321
|
/**
|
|
347
322
|
* Dedicated ID for testing.
|
|
348
323
|
*/
|
|
@@ -7,7 +7,6 @@ import { useThemeTokensCallback, verticalAlignRow } from '../ThemeProvider';
|
|
|
7
7
|
import ItemContent from './ItemContent';
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, linkProps, viewProps]);
|
|
10
|
-
|
|
11
10
|
function selectItemStyles(_ref) {
|
|
12
11
|
let {
|
|
13
12
|
backgroundColor,
|
|
@@ -34,13 +33,12 @@ function selectItemStyles(_ref) {
|
|
|
34
33
|
...verticalAlignRow(verticalAlign)
|
|
35
34
|
};
|
|
36
35
|
}
|
|
36
|
+
|
|
37
37
|
/**
|
|
38
38
|
`SideNav.Item` is a navigational element that is used within `SideNav` or `SideNav.ItemsGroup`.
|
|
39
39
|
|
|
40
40
|
This component can only be accessed as a name-spaced component: `SideNav.Item`.
|
|
41
41
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
42
|
const Item = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
45
43
|
let {
|
|
46
44
|
children,
|
|
@@ -56,9 +54,7 @@ const Item = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
56
54
|
testID,
|
|
57
55
|
...props
|
|
58
56
|
} = _ref2;
|
|
59
|
-
|
|
60
57
|
const handlePress = () => onPress(itemId, groupId);
|
|
61
|
-
|
|
62
58
|
const {
|
|
63
59
|
hrefAttrs,
|
|
64
60
|
rest
|
|
@@ -71,7 +67,6 @@ const Item = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
71
67
|
...rest
|
|
72
68
|
});
|
|
73
69
|
const getTokens = useThemeTokensCallback('SideNavItem', tokens, variant);
|
|
74
|
-
|
|
75
70
|
const getAppearanceState = _ref3 => {
|
|
76
71
|
let {
|
|
77
72
|
hovered,
|
|
@@ -84,13 +79,12 @@ const Item = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
84
79
|
focus: focused
|
|
85
80
|
};
|
|
86
81
|
};
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
const getPressableStyle = pressableState => ({
|
|
83
|
+
...selectItemStyles(getTokens(getAppearanceState(pressableState))),
|
|
89
84
|
...(Platform.OS === 'web' ? {
|
|
90
85
|
outline: 'none'
|
|
91
86
|
} : {})
|
|
92
87
|
});
|
|
93
|
-
|
|
94
88
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
95
89
|
ref: ref,
|
|
96
90
|
style: getPressableStyle,
|
|
@@ -108,19 +102,17 @@ const Item = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
108
102
|
});
|
|
109
103
|
});
|
|
110
104
|
Item.displayName = 'Item';
|
|
111
|
-
Item.propTypes = {
|
|
112
|
-
|
|
105
|
+
Item.propTypes = {
|
|
106
|
+
...selectedSystemPropTypes,
|
|
113
107
|
/**
|
|
114
108
|
* Text content of the `Item`.
|
|
115
109
|
*/
|
|
116
110
|
children: PropTypes.node.isRequired,
|
|
117
|
-
|
|
118
111
|
/**
|
|
119
112
|
* @ignore
|
|
120
113
|
* Set internally in `SideNav` render function - used to keep track of active item.
|
|
121
114
|
*/
|
|
122
115
|
itemId: PropTypes.string,
|
|
123
|
-
|
|
124
116
|
/**
|
|
125
117
|
* @ignore
|
|
126
118
|
* Set internally in `SideNav` render function - used to keep track of expanded items groups.
|
|
@@ -128,19 +120,16 @@ Item.propTypes = { ...selectedSystemPropTypes,
|
|
|
128
120
|
groupId: PropTypes.string,
|
|
129
121
|
onPress: PropTypes.func,
|
|
130
122
|
href: PropTypes.string,
|
|
131
|
-
|
|
132
123
|
/**
|
|
133
124
|
* On Web if href is passed, React Native Web maps this object's props to
|
|
134
125
|
* `rel`, `target` and `download` attrs.
|
|
135
126
|
*/
|
|
136
127
|
hrefAttrs: PropTypes.shape(hrefAttrsProp.types),
|
|
137
|
-
|
|
138
128
|
/**
|
|
139
129
|
* @ignore
|
|
140
130
|
* Set internally in `SideNav` render function.
|
|
141
131
|
*/
|
|
142
132
|
isActive: PropTypes.bool,
|
|
143
|
-
|
|
144
133
|
/**
|
|
145
134
|
* @ignore
|
|
146
135
|
* Set internally in `SideNav.ItemsGroup` render function. Used to mark expanded `ItemsGroup` parent.
|
|
@@ -17,10 +17,10 @@ export function selectAccentStyles(tokens) {
|
|
|
17
17
|
position: 'absolute'
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
+
|
|
20
21
|
/**
|
|
21
22
|
* Content inside an item or control in a SideNav, themed by the SideNavItem theme
|
|
22
23
|
*/
|
|
23
|
-
|
|
24
24
|
const ItemContent = _ref => {
|
|
25
25
|
let {
|
|
26
26
|
children,
|
|
@@ -36,7 +36,6 @@ const ItemContent = _ref => {
|
|
|
36
36
|
})]
|
|
37
37
|
});
|
|
38
38
|
};
|
|
39
|
-
|
|
40
39
|
ItemContent.propTypes = {
|
|
41
40
|
tokens: getTokensPropType('SideNavItem'),
|
|
42
41
|
children: PropTypes.node
|
|
@@ -4,6 +4,7 @@ import ItemContent from './ItemContent';
|
|
|
4
4
|
import ExpandCollapse from '../ExpandCollapse';
|
|
5
5
|
import { getTokensPropType, variantProp, componentPropType, selectTokens } from '../utils';
|
|
6
6
|
import { useThemeTokensCallback } from '../ThemeProvider';
|
|
7
|
+
|
|
7
8
|
/**
|
|
8
9
|
Expandable content areas for use within `SideNav`.
|
|
9
10
|
|
|
@@ -14,7 +15,6 @@ import { useThemeTokensCallback } from '../ThemeProvider';
|
|
|
14
15
|
## Usage Criteria
|
|
15
16
|
- Use `SideNav.ItemsGroup` with large pages that have multiple sections
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
19
|
const ItemsGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
20
20
|
let {
|
|
@@ -28,38 +28,35 @@ const ItemsGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
28
28
|
itemTokens,
|
|
29
29
|
onToggle
|
|
30
30
|
} = _ref;
|
|
31
|
-
|
|
32
31
|
// A SideNav control uses the same style and theme as SideNavItem, with a 'parent' variant,
|
|
33
32
|
// plus control-specific tokens from the SideNavItemsGroup theme (e.g. open/close icon, etc).
|
|
34
|
-
const getAppearance = appearance => ({
|
|
33
|
+
const getAppearance = appearance => ({
|
|
34
|
+
...variant,
|
|
35
35
|
...appearance,
|
|
36
36
|
active: isActive
|
|
37
37
|
});
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
const getItemAppearance = appearance => ({
|
|
39
|
+
...getAppearance(appearance),
|
|
40
40
|
type: 'parent'
|
|
41
41
|
});
|
|
42
|
-
|
|
43
42
|
const getGroupTokens = useThemeTokensCallback('SideNavItemsGroup', tokens, variant);
|
|
44
|
-
|
|
45
43
|
const getPanelTokens = appearance => {
|
|
46
44
|
const {
|
|
47
45
|
panelBorderColor,
|
|
48
46
|
...itemsGroupTokens
|
|
49
47
|
} = getGroupTokens(getAppearance(appearance));
|
|
50
|
-
const groupTokens = {
|
|
48
|
+
const groupTokens = {
|
|
49
|
+
...itemsGroupTokens,
|
|
51
50
|
borderWidth: 0,
|
|
52
51
|
marginBottom: 0
|
|
53
52
|
};
|
|
54
53
|
return selectTokens('ExpandCollapsePanel', groupTokens);
|
|
55
54
|
};
|
|
56
|
-
|
|
57
55
|
const getItemTokens = useThemeTokensCallback('SideNavItem', itemTokens, variant);
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
const getControlTokens = appearance => selectTokens('ExpandCollapseControl', {
|
|
57
|
+
...getItemTokens(getItemAppearance(appearance)),
|
|
60
58
|
// main style from SideNavItem
|
|
61
59
|
...getGroupTokens(getAppearance(appearance)) // control-specific tokens like icon etc
|
|
62
|
-
|
|
63
60
|
});
|
|
64
61
|
|
|
65
62
|
const controlContent = controlState => {
|
|
@@ -69,7 +66,6 @@ const ItemsGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
69
66
|
children: label
|
|
70
67
|
});
|
|
71
68
|
};
|
|
72
|
-
|
|
73
69
|
return /*#__PURE__*/_jsx(ExpandCollapse.Panel, {
|
|
74
70
|
ref: ref,
|
|
75
71
|
openIds: openGroups,
|
|
@@ -91,30 +87,25 @@ ItemsGroup.propTypes = {
|
|
|
91
87
|
* Specifies the links contained within. It may only contain `SideNav.Item`.
|
|
92
88
|
*/
|
|
93
89
|
children: componentPropType('Item'),
|
|
94
|
-
|
|
95
90
|
/**
|
|
96
91
|
* Text content of the group's parent `SideNav.Item`.
|
|
97
92
|
*/
|
|
98
93
|
label: PropTypes.string.isRequired,
|
|
99
|
-
|
|
100
94
|
/**
|
|
101
95
|
* @ignore
|
|
102
96
|
* Set internally in `SideNav` render function - used to keep track of expanded items groups.
|
|
103
97
|
*/
|
|
104
98
|
groupId: PropTypes.string,
|
|
105
|
-
|
|
106
99
|
/**
|
|
107
100
|
* @ignore
|
|
108
101
|
* Set internally in `SideNav` render function. Called when the group is expanded/collapsed.
|
|
109
102
|
*/
|
|
110
103
|
onToggle: PropTypes.func,
|
|
111
|
-
|
|
112
104
|
/**
|
|
113
105
|
* @ignore
|
|
114
106
|
* Set internally in `SideNav` render function. Contains `groupId`s of currently open groups.
|
|
115
107
|
*/
|
|
116
108
|
openGroups: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),
|
|
117
|
-
|
|
118
109
|
/**
|
|
119
110
|
* @ignore
|
|
120
111
|
* Set internally in `SideNav` render function. Used to mark group containing the currently active `SideNav.Item`.
|
|
@@ -122,7 +113,6 @@ ItemsGroup.propTypes = {
|
|
|
122
113
|
isActive: PropTypes.bool,
|
|
123
114
|
variant: variantProp.propType,
|
|
124
115
|
tokens: getTokensPropType('SideNavItemsGroup'),
|
|
125
|
-
|
|
126
116
|
/**
|
|
127
117
|
* Custom tokens for `SideNav.Item`
|
|
128
118
|
*/
|