@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
|
@@ -11,7 +11,6 @@ import { useThemeTokens } from '../ThemeProvider';
|
|
|
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, viewProps]);
|
|
14
|
-
|
|
15
14
|
const selectItemBlockStyles = _ref => {
|
|
16
15
|
let {
|
|
17
16
|
interItemMargin
|
|
@@ -20,7 +19,6 @@ const selectItemBlockStyles = _ref => {
|
|
|
20
19
|
marginBottom: interItemMargin
|
|
21
20
|
};
|
|
22
21
|
};
|
|
23
|
-
|
|
24
22
|
const selectDividerStyles = _ref2 => {
|
|
25
23
|
let {
|
|
26
24
|
dividerColor,
|
|
@@ -34,11 +32,10 @@ const selectDividerStyles = _ref2 => {
|
|
|
34
32
|
paddingBottom: interItemMarginWithDivider
|
|
35
33
|
};
|
|
36
34
|
};
|
|
35
|
+
|
|
37
36
|
/**
|
|
38
37
|
* ListItem is responsible for rendering icon or a bullet as side item
|
|
39
38
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
39
|
const ListItemBase = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
43
40
|
let {
|
|
44
41
|
tokens,
|
|
@@ -70,7 +67,6 @@ const ListItemBase = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
70
67
|
size: 'h4',
|
|
71
68
|
bold: true
|
|
72
69
|
});
|
|
73
|
-
|
|
74
70
|
if (title) {
|
|
75
71
|
adjustedIconMarginTop = (fontSize * lineHeightRatio - itemIconSize) / 2;
|
|
76
72
|
}
|
|
@@ -79,20 +75,15 @@ const ListItemBase = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
79
75
|
* add extra margin on the bottom, if "showDivider" is true it should add a divider
|
|
80
76
|
* and custom margin and padding, otherwise just adds a margin to the bottom
|
|
81
77
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
84
78
|
const getContainerStyle = () => {
|
|
85
79
|
if (isLastItem) {
|
|
86
80
|
return undefined;
|
|
87
81
|
}
|
|
88
|
-
|
|
89
82
|
if (showDivider) {
|
|
90
83
|
return dividerStyles;
|
|
91
84
|
}
|
|
92
|
-
|
|
93
85
|
return itemBlockStyles;
|
|
94
86
|
};
|
|
95
|
-
|
|
96
87
|
return /*#__PURE__*/_jsx(View, {
|
|
97
88
|
ref: ref,
|
|
98
89
|
style: [staticStyles.itemContainer, getContainerStyle()],
|
|
@@ -110,7 +101,8 @@ const ListItemBase = /*#__PURE__*/forwardRef((_ref3, ref) => {
|
|
|
110
101
|
flexDirection: 'row'
|
|
111
102
|
}],
|
|
112
103
|
children: [/*#__PURE__*/_jsx(ListItemMark, {
|
|
113
|
-
tokens: {
|
|
104
|
+
tokens: {
|
|
105
|
+
...tokens,
|
|
114
106
|
iconMarginTop: adjustedIconMarginTop
|
|
115
107
|
},
|
|
116
108
|
icon: icon,
|
|
@@ -142,32 +134,28 @@ const staticStyles = StyleSheet.create({
|
|
|
142
134
|
flexShrink: 1
|
|
143
135
|
}
|
|
144
136
|
});
|
|
145
|
-
ListItemBase.propTypes = {
|
|
137
|
+
ListItemBase.propTypes = {
|
|
138
|
+
...selectedSystemPropTypes,
|
|
146
139
|
tokens: getTokensPropType('List'),
|
|
147
140
|
variant: variantProp.propType,
|
|
148
141
|
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,
|
|
149
|
-
|
|
150
142
|
/**
|
|
151
143
|
* Renders side item icon
|
|
152
144
|
*/
|
|
153
145
|
icon: PropTypes.elementType,
|
|
154
|
-
|
|
155
146
|
/**
|
|
156
147
|
* Will set display icon color
|
|
157
148
|
*/
|
|
158
149
|
iconColor: PropTypes.string,
|
|
159
|
-
|
|
160
150
|
/**
|
|
161
151
|
* Allow the user define the icon size if not defined the theme's file
|
|
162
152
|
*/
|
|
163
153
|
iconSize: PropTypes.number,
|
|
164
|
-
|
|
165
154
|
/**
|
|
166
155
|
* @ignore
|
|
167
156
|
* Defined by parent if it's last item on the list
|
|
168
157
|
*/
|
|
169
158
|
isLastItem: PropTypes.bool,
|
|
170
|
-
|
|
171
159
|
/**
|
|
172
160
|
* @ignore
|
|
173
161
|
* In case it is not the last item allow display divider
|
|
@@ -12,7 +12,6 @@ export const tokenTypes = {
|
|
|
12
12
|
itemFontName: PropTypes.string.isRequired,
|
|
13
13
|
itemFontColor: PropTypes.string
|
|
14
14
|
};
|
|
15
|
-
|
|
16
15
|
const selectItemTextStyles = (_ref, themeOptions) => {
|
|
17
16
|
let {
|
|
18
17
|
itemFontWeight,
|
|
@@ -30,6 +29,7 @@ const selectItemTextStyles = (_ref, themeOptions) => {
|
|
|
30
29
|
themeOptions
|
|
31
30
|
});
|
|
32
31
|
};
|
|
32
|
+
|
|
33
33
|
/**
|
|
34
34
|
* Subcomponent used within ListItem and similar components for rendering content that fills
|
|
35
35
|
* and wraps available space in a { flexDirection: row } container alongside a ListIconMark,
|
|
@@ -38,8 +38,6 @@ const selectItemTextStyles = (_ref, themeOptions) => {
|
|
|
38
38
|
* It's the responsibility of themes to make sure that these text tokens align the first line of
|
|
39
39
|
* text nicely against the bullet or icon rendered by ListIconMark.
|
|
40
40
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
41
|
const ListItemContent = _ref2 => {
|
|
44
42
|
let {
|
|
45
43
|
tokens,
|
|
@@ -59,7 +57,6 @@ const ListItemContent = _ref2 => {
|
|
|
59
57
|
})
|
|
60
58
|
});
|
|
61
59
|
};
|
|
62
|
-
|
|
63
60
|
const staticStyles = StyleSheet.create({
|
|
64
61
|
wrap: {
|
|
65
62
|
flex: 1
|
|
@@ -10,7 +10,6 @@ export const tokenTypes = {
|
|
|
10
10
|
listGutter: PropTypes.number.isRequired,
|
|
11
11
|
iconMarginTop: PropTypes.number.isRequired
|
|
12
12
|
};
|
|
13
|
-
|
|
14
13
|
const selectItemIconTokens = _ref => {
|
|
15
14
|
let {
|
|
16
15
|
itemIconSize,
|
|
@@ -21,7 +20,6 @@ const selectItemIconTokens = _ref => {
|
|
|
21
20
|
color: itemIconColor
|
|
22
21
|
};
|
|
23
22
|
};
|
|
24
|
-
|
|
25
23
|
const selectSideItemContainerStyles = _ref2 => {
|
|
26
24
|
let {
|
|
27
25
|
listGutter,
|
|
@@ -31,9 +29,9 @@ const selectSideItemContainerStyles = _ref2 => {
|
|
|
31
29
|
marginTop: iconMarginTop,
|
|
32
30
|
marginRight: listGutter
|
|
33
31
|
};
|
|
34
|
-
};
|
|
35
|
-
|
|
32
|
+
};
|
|
36
33
|
|
|
34
|
+
// Align bullets with the top line of text the same way icons are aligned
|
|
37
35
|
const selectBulletPositioningStyles = _ref3 => {
|
|
38
36
|
let {
|
|
39
37
|
itemIconSize
|
|
@@ -43,7 +41,6 @@ const selectBulletPositioningStyles = _ref3 => {
|
|
|
43
41
|
height: itemIconSize
|
|
44
42
|
};
|
|
45
43
|
};
|
|
46
|
-
|
|
47
44
|
const selectBulletStyles = _ref4 => {
|
|
48
45
|
let {
|
|
49
46
|
itemBulletWidth,
|
|
@@ -57,7 +54,6 @@ const selectBulletStyles = _ref4 => {
|
|
|
57
54
|
backgroundColor: itemBulletColor
|
|
58
55
|
};
|
|
59
56
|
};
|
|
60
|
-
|
|
61
57
|
const selectBulletContainerStyles = _ref5 => {
|
|
62
58
|
let {
|
|
63
59
|
itemBulletContainerWidth,
|
|
@@ -68,6 +64,7 @@ const selectBulletContainerStyles = _ref5 => {
|
|
|
68
64
|
alignItems: itemBulletContainerAlign
|
|
69
65
|
};
|
|
70
66
|
};
|
|
67
|
+
|
|
71
68
|
/**
|
|
72
69
|
* Subcomponent used within ListItem and similar components for rendering bullets or icons
|
|
73
70
|
* that sit alongside a ListIconContent in a { flexDirection: row } container.
|
|
@@ -75,8 +72,6 @@ const selectBulletContainerStyles = _ref5 => {
|
|
|
75
72
|
* It's the responsibility of themes to make sure that the supplied tokens align the
|
|
76
73
|
* icon or bullet nicely against the first line of text in a ListIconContent.
|
|
77
74
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
75
|
const ListItemMark = _ref6 => {
|
|
81
76
|
let {
|
|
82
77
|
icon,
|
|
@@ -84,12 +79,9 @@ const ListItemMark = _ref6 => {
|
|
|
84
79
|
iconSize,
|
|
85
80
|
tokens = {}
|
|
86
81
|
} = _ref6;
|
|
87
|
-
|
|
88
82
|
const IconComponent = icon || /*#__PURE__*/_jsx(_Fragment, {});
|
|
89
|
-
|
|
90
83
|
const themeTokens = typeof tokens === 'function' ? tokens() : tokens;
|
|
91
84
|
const sideItemContainerStyles = selectSideItemContainerStyles(themeTokens);
|
|
92
|
-
|
|
93
85
|
if (icon) {
|
|
94
86
|
const iconTokens = selectItemIconTokens(themeTokens);
|
|
95
87
|
return /*#__PURE__*/_jsx(View, {
|
|
@@ -100,7 +92,6 @@ const ListItemMark = _ref6 => {
|
|
|
100
92
|
})
|
|
101
93
|
});
|
|
102
94
|
}
|
|
103
|
-
|
|
104
95
|
const itemBulletContainerStyles = selectBulletContainerStyles(themeTokens);
|
|
105
96
|
const itemBulletStyles = selectBulletStyles(themeTokens);
|
|
106
97
|
const itemBulletPositioningStyles = selectBulletPositioningStyles(themeTokens);
|
|
@@ -115,20 +106,16 @@ const ListItemMark = _ref6 => {
|
|
|
115
106
|
})
|
|
116
107
|
});
|
|
117
108
|
};
|
|
118
|
-
|
|
119
109
|
ListItemMark.propTypes = {
|
|
120
110
|
tokens: PropTypes.shape(tokenTypes).isRequired,
|
|
121
|
-
|
|
122
111
|
/**
|
|
123
112
|
* Renders side item icon
|
|
124
113
|
*/
|
|
125
114
|
icon: PropTypes.elementType,
|
|
126
|
-
|
|
127
115
|
/**
|
|
128
116
|
* Will set display icon color
|
|
129
117
|
*/
|
|
130
118
|
iconColor: PropTypes.string,
|
|
131
|
-
|
|
132
119
|
/**
|
|
133
120
|
* Allow the user define the icon size
|
|
134
121
|
*/
|
|
@@ -11,7 +11,6 @@ import ListItemMark from './ListItemMark';
|
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
13
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
|
|
15
14
|
const selectPressableStyles = _ref => {
|
|
16
15
|
let {
|
|
17
16
|
backgroundColor,
|
|
@@ -37,7 +36,6 @@ const selectPressableStyles = _ref => {
|
|
|
37
36
|
})
|
|
38
37
|
};
|
|
39
38
|
};
|
|
40
|
-
|
|
41
39
|
const PressableListItemBase = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
42
40
|
let {
|
|
43
41
|
href,
|
|
@@ -68,13 +66,10 @@ const PressableListItemBase = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
68
66
|
let {
|
|
69
67
|
isLastItem
|
|
70
68
|
} = _ref3;
|
|
71
|
-
|
|
72
69
|
const getTokens = pressableState => resolvePressableTokens(tokens, pressableState, {
|
|
73
70
|
last: isLastItem
|
|
74
71
|
});
|
|
75
|
-
|
|
76
72
|
const getPressableStyle = pressableState => [staticStyles.itemContainer, selectPressableStyles(getTokens(pressableState))];
|
|
77
|
-
|
|
78
73
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
79
74
|
onPress: handlePress,
|
|
80
75
|
href: href,
|
|
@@ -104,7 +99,8 @@ const staticStyles = StyleSheet.create({
|
|
|
104
99
|
flex: 1
|
|
105
100
|
}
|
|
106
101
|
});
|
|
107
|
-
PressableListItemBase.propTypes = {
|
|
102
|
+
PressableListItemBase.propTypes = {
|
|
103
|
+
...withLinkRouter.propTypes,
|
|
108
104
|
href: PropTypes.string,
|
|
109
105
|
onPress: PropTypes.func,
|
|
110
106
|
// eslint-disable-next-line react/forbid-prop-types
|
|
@@ -19,7 +19,6 @@ const styles = StyleSheet.create({
|
|
|
19
19
|
boxSizing: 'border-box'
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
|
-
|
|
23
22
|
const GroupControl = _ref => {
|
|
24
23
|
let {
|
|
25
24
|
expanded,
|
|
@@ -90,7 +89,6 @@ const GroupControl = _ref => {
|
|
|
90
89
|
})]
|
|
91
90
|
});
|
|
92
91
|
};
|
|
93
|
-
|
|
94
92
|
GroupControl.propTypes = {
|
|
95
93
|
id: PropTypes.string,
|
|
96
94
|
expanded: PropTypes.bool,
|
|
@@ -18,9 +18,7 @@ const styles = StyleSheet.create({
|
|
|
18
18
|
margin: 0
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
|
|
22
21
|
const getInitialOpen = (items, selectedId) => items.filter(item => item.items && item.items.some(nestedItem => (nestedItem.id ?? nestedItem.label) === selectedId)).map(item => item.id ?? item.label);
|
|
23
|
-
|
|
24
22
|
const Listbox = _ref => {
|
|
25
23
|
let {
|
|
26
24
|
items = [],
|
|
@@ -40,25 +38,23 @@ const Listbox = _ref => {
|
|
|
40
38
|
const {
|
|
41
39
|
minHeight,
|
|
42
40
|
minWidth
|
|
43
|
-
} = useThemeTokens('Listbox', variant, tokens);
|
|
44
|
-
// focus on a specific item via keyboard navigation
|
|
41
|
+
} = useThemeTokens('Listbox', variant, tokens);
|
|
45
42
|
|
|
43
|
+
// We need to keep track of each item's ref in order to be able to
|
|
44
|
+
// focus on a specific item via keyboard navigation
|
|
46
45
|
const itemRefs = useRef([]);
|
|
47
46
|
if (firstItemRef !== null && firstItemRef !== void 0 && firstItemRef.current) itemRefs.current[0] = firstItemRef.current;
|
|
48
47
|
const [focusedIndex, setFocusedIndex] = useState(0);
|
|
49
48
|
const handleKeydown = useCallback(event => {
|
|
50
49
|
const nextItemRef = itemRefs.current[focusedIndex + 1];
|
|
51
50
|
const prevItemRef = itemRefs.current[focusedIndex - 1];
|
|
52
|
-
|
|
53
51
|
if (event.key === 'ArrowUp' || event.shiftKey && event.key === 'Tab') {
|
|
54
52
|
var _parentRef$current;
|
|
55
|
-
|
|
56
53
|
// Move the focus to the previous item or to the parent one if on the first
|
|
57
54
|
if (prevItemRef) {
|
|
58
55
|
event.preventDefault();
|
|
59
56
|
prevItemRef.focus();
|
|
60
57
|
} else if (parentRef) (_parentRef$current = parentRef.current) === null || _parentRef$current === void 0 ? void 0 : _parentRef$current.focus();
|
|
61
|
-
|
|
62
58
|
setFocusedIndex(focusedIndex - 1);
|
|
63
59
|
} else if ((event.key === 'ArrowDown' || event.key === 'Tab') && nextItemRef) {
|
|
64
60
|
event.preventDefault();
|
|
@@ -66,15 +62,15 @@ const Listbox = _ref => {
|
|
|
66
62
|
nextItemRef.focus();
|
|
67
63
|
} else if (event.key === 'Escape') {
|
|
68
64
|
var _parentRef$current2, _parentRef$current3;
|
|
69
|
-
|
|
70
65
|
// Close the dropdown
|
|
71
|
-
parentRef === null || parentRef === void 0 ? void 0 : (_parentRef$current2 = parentRef.current) === null || _parentRef$current2 === void 0 ? void 0 : _parentRef$current2.click();
|
|
72
|
-
|
|
66
|
+
parentRef === null || parentRef === void 0 ? void 0 : (_parentRef$current2 = parentRef.current) === null || _parentRef$current2 === void 0 ? void 0 : _parentRef$current2.click();
|
|
67
|
+
// Return focus to the dropdown control after leaving the last item
|
|
73
68
|
parentRef === null || parentRef === void 0 ? void 0 : (_parentRef$current3 = parentRef.current) === null || _parentRef$current3 === void 0 ? void 0 : _parentRef$current3.focus();
|
|
74
69
|
if (onClose) onClose(event);
|
|
75
70
|
}
|
|
76
|
-
}, [focusedIndex, onClose, parentRef]);
|
|
71
|
+
}, [focusedIndex, onClose, parentRef]);
|
|
77
72
|
|
|
73
|
+
// Add listeners for mouse clicks outside and for key presses
|
|
78
74
|
useEffect(() => {
|
|
79
75
|
if (Platform.OS === 'web') {
|
|
80
76
|
window.addEventListener('click', onClose);
|
|
@@ -86,7 +82,6 @@ const Listbox = _ref => {
|
|
|
86
82
|
window.removeEventListener('touchstart', onClose);
|
|
87
83
|
};
|
|
88
84
|
}
|
|
89
|
-
|
|
90
85
|
return () => {};
|
|
91
86
|
}, [onClose, handleKeydown]);
|
|
92
87
|
return /*#__PURE__*/_jsx(ListboxContext.Provider, {
|
|
@@ -109,14 +104,15 @@ const Listbox = _ref => {
|
|
|
109
104
|
label,
|
|
110
105
|
items: nestedItems
|
|
111
106
|
} = item;
|
|
112
|
-
const itemId = id ?? label;
|
|
107
|
+
const itemId = id ?? label;
|
|
113
108
|
|
|
109
|
+
// Give the list of refs.
|
|
114
110
|
const itemRef = ref => {
|
|
115
111
|
itemRefs.current[index] = ref;
|
|
116
112
|
return ref;
|
|
117
113
|
};
|
|
118
|
-
|
|
119
|
-
|
|
114
|
+
return nestedItems ? /*#__PURE__*/_createElement(ListboxGroup, {
|
|
115
|
+
...item,
|
|
120
116
|
expandProps: expandProps,
|
|
121
117
|
LinkRouter: LinkRouter,
|
|
122
118
|
itemRouterProps: itemRouterProps,
|
|
@@ -124,7 +120,8 @@ const Listbox = _ref => {
|
|
|
124
120
|
nextItemRef: itemRefs.current[index + 1] ?? null,
|
|
125
121
|
ref: index === 0 ? firstItemRef : itemRef,
|
|
126
122
|
key: itemId
|
|
127
|
-
}) : /*#__PURE__*/_createElement(ListboxItem, {
|
|
123
|
+
}) : /*#__PURE__*/_createElement(ListboxItem, {
|
|
124
|
+
...item,
|
|
128
125
|
key: itemId,
|
|
129
126
|
id: itemId,
|
|
130
127
|
LinkRouter: LinkRouter,
|
|
@@ -138,31 +135,26 @@ const Listbox = _ref => {
|
|
|
138
135
|
})
|
|
139
136
|
});
|
|
140
137
|
};
|
|
141
|
-
|
|
142
|
-
|
|
138
|
+
Listbox.propTypes = {
|
|
139
|
+
...withLinkRouter.propTypes,
|
|
143
140
|
tokens: getTokensPropType('Listbox'),
|
|
144
|
-
|
|
145
141
|
/**
|
|
146
142
|
* Focus will be moved to the item with this ref once within the menu.
|
|
147
143
|
*/
|
|
148
144
|
firstItemRef: PropTypes.object,
|
|
149
|
-
|
|
150
145
|
/**
|
|
151
146
|
* Focus will be returned to the dropdown control with this ref after leaving
|
|
152
147
|
* the last menu item.
|
|
153
148
|
*/
|
|
154
149
|
parentRef: PropTypes.object,
|
|
155
|
-
|
|
156
150
|
/**
|
|
157
151
|
* `Listbox` items
|
|
158
152
|
*/
|
|
159
153
|
items: PropTypes.array,
|
|
160
|
-
|
|
161
154
|
/**
|
|
162
155
|
* To select an item by default
|
|
163
156
|
*/
|
|
164
157
|
selectedId: PropTypes.string,
|
|
165
|
-
|
|
166
158
|
/**
|
|
167
159
|
* onClose event
|
|
168
160
|
*/
|
|
@@ -34,8 +34,9 @@ const ListboxGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
34
34
|
} = _ref;
|
|
35
35
|
const {
|
|
36
36
|
selectedId
|
|
37
|
-
} = useListboxContext();
|
|
37
|
+
} = useListboxContext();
|
|
38
38
|
|
|
39
|
+
// TODO: implement keyboard navigation via refs for grouped items separately here
|
|
39
40
|
return /*#__PURE__*/_jsx(View, {
|
|
40
41
|
id: "test",
|
|
41
42
|
style: styles.groupWrapper,
|
|
@@ -52,7 +53,8 @@ const ListboxGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
52
53
|
borderColor: 'transparent',
|
|
53
54
|
textLine: 'none',
|
|
54
55
|
borderWidth: 0
|
|
55
|
-
}
|
|
56
|
+
}
|
|
57
|
+
// TODO refactor
|
|
56
58
|
// eslint-disable-next-line react/no-unstable-nested-components
|
|
57
59
|
,
|
|
58
60
|
control: controlProps => /*#__PURE__*/_jsx(GroupControl, {
|
|
@@ -98,7 +100,8 @@ const ListboxGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
98
100
|
});
|
|
99
101
|
});
|
|
100
102
|
ListboxGroup.displayName = 'ListboxGroup';
|
|
101
|
-
ListboxGroup.propTypes = {
|
|
103
|
+
ListboxGroup.propTypes = {
|
|
104
|
+
...withLinkRouter.propTypes,
|
|
102
105
|
label: PropTypes.string,
|
|
103
106
|
items: PropTypes.arrayOf(PropTypes.shape({
|
|
104
107
|
href: PropTypes.string,
|
|
@@ -108,7 +111,6 @@ ListboxGroup.propTypes = { ...withLinkRouter.propTypes,
|
|
|
108
111
|
expandProps: PropTypes.object,
|
|
109
112
|
nextItemRef: PropTypes.object,
|
|
110
113
|
prevItemRef: PropTypes.object,
|
|
111
|
-
|
|
112
114
|
/**
|
|
113
115
|
* Use this callback to redirect the focus after it leaves the last item of the group.
|
|
114
116
|
*/
|
|
@@ -63,7 +63,8 @@ const ListboxItem = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
63
63
|
});
|
|
64
64
|
});
|
|
65
65
|
ListboxItem.displayName = 'ListboxItem';
|
|
66
|
-
ListboxItem.propTypes = {
|
|
66
|
+
ListboxItem.propTypes = {
|
|
67
|
+
...selectedSystemPropTypes,
|
|
67
68
|
...withLinkRouter.propTypes,
|
|
68
69
|
href: PropTypes.string,
|
|
69
70
|
isChild: PropTypes.bool,
|
|
@@ -14,8 +14,8 @@ const staticStyles = StyleSheet.create({
|
|
|
14
14
|
// Grow to maxWidth when possible, shrink when not possible
|
|
15
15
|
position: 'absolute',
|
|
16
16
|
zIndex: 1000000000000000 // Position on top of all the other overlays, including backdrops and modals
|
|
17
|
-
|
|
18
17
|
},
|
|
18
|
+
|
|
19
19
|
hidden: {
|
|
20
20
|
// Use opacity not visibility to hide the dropdown during positioning
|
|
21
21
|
// so on web, children may be focused from the first render
|
|
@@ -53,17 +53,16 @@ const DropdownOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
53
53
|
})
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
|
-
|
|
57
56
|
const withPortal = Overlay => {
|
|
58
57
|
// eslint-disable-next-line react/display-name, react/no-multi-comp
|
|
59
58
|
return props => {
|
|
60
59
|
return /*#__PURE__*/_jsx(Portal, {
|
|
61
|
-
children: /*#__PURE__*/_jsx(Overlay, {
|
|
60
|
+
children: /*#__PURE__*/_jsx(Overlay, {
|
|
61
|
+
...props
|
|
62
62
|
})
|
|
63
63
|
});
|
|
64
64
|
};
|
|
65
65
|
};
|
|
66
|
-
|
|
67
66
|
DropdownOverlay.displayName = 'DropdownOverlay';
|
|
68
67
|
DropdownOverlay.propTypes = {
|
|
69
68
|
children: PropTypes.node.isRequired,
|
|
@@ -8,7 +8,6 @@ import { useListboxContext } from './ListboxContext';
|
|
|
8
8
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs]);
|
|
11
|
-
|
|
12
11
|
const getItemStyles = _ref => {
|
|
13
12
|
let {
|
|
14
13
|
groupFontName,
|
|
@@ -52,7 +51,6 @@ const getItemStyles = _ref => {
|
|
|
52
51
|
justifyContent: 'center'
|
|
53
52
|
};
|
|
54
53
|
};
|
|
55
|
-
|
|
56
54
|
const PressableItem = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
57
55
|
let {
|
|
58
56
|
children,
|
|
@@ -71,7 +69,6 @@ const PressableItem = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
71
69
|
selectedId,
|
|
72
70
|
setSelectedId
|
|
73
71
|
} = useListboxContext();
|
|
74
|
-
|
|
75
72
|
const selectTextStyles = _ref3 => {
|
|
76
73
|
let {
|
|
77
74
|
groupFontName,
|
|
@@ -87,7 +84,6 @@ const PressableItem = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
87
84
|
lineHeight: lineHeight * itemFontSize
|
|
88
85
|
};
|
|
89
86
|
};
|
|
90
|
-
|
|
91
87
|
const resolveButtonTokens = pressableState => {
|
|
92
88
|
const themeTokens = resolvePressableTokens(tokens, pressableState, {
|
|
93
89
|
isChild,
|
|
@@ -95,7 +91,6 @@ const PressableItem = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
95
91
|
});
|
|
96
92
|
return themeTokens;
|
|
97
93
|
};
|
|
98
|
-
|
|
99
94
|
const handleKeyPress = event => {
|
|
100
95
|
if (['Enter', ' '].includes(event === null || event === void 0 ? void 0 : event.key)) {
|
|
101
96
|
onPress === null || onPress === void 0 ? void 0 : onPress(event);
|
|
@@ -105,7 +100,6 @@ const PressableItem = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
105
100
|
prevItemRef.current.focus();
|
|
106
101
|
}
|
|
107
102
|
};
|
|
108
|
-
|
|
109
103
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
110
104
|
isChild: isChild,
|
|
111
105
|
style: pressableState => getItemStyles(resolveButtonTokens(pressableState)),
|
|
@@ -134,7 +128,8 @@ const PressableItem = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
134
128
|
});
|
|
135
129
|
});
|
|
136
130
|
PressableItem.displayName = 'PressableItem';
|
|
137
|
-
PressableItem.propTypes = {
|
|
131
|
+
PressableItem.propTypes = {
|
|
132
|
+
...selectedSystemPropTypes,
|
|
138
133
|
href: PropTypes.string,
|
|
139
134
|
isChild: PropTypes.bool,
|
|
140
135
|
children: PropTypes.node.isRequired,
|