@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
package/lib/utils/info/index.js
CHANGED
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _platform = _interopRequireDefault(require("./platform"));
|
|
9
|
-
|
|
10
8
|
var _versions = _interopRequireDefault(require("./versions"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
// export an object accessed like info.platform.OS, info.version.uds, etc
|
|
15
11
|
var _default = {
|
|
16
12
|
platform: _platform.default,
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
9
|
-
|
|
10
8
|
var _platform = _interopRequireDefault(require("./platform"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
// Allows consuming libraries that might not have a direct dependency on
|
|
15
11
|
// React Native to check what the current platform is.
|
|
16
12
|
// Particularly useful for validating Jest config: it is possible for Jest to
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _package = _interopRequireDefault(require("../../../package.json"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
// Add more versions if they are useful e.g. theme schema version
|
|
13
10
|
var _default = {
|
|
14
11
|
uds: _package.default.version
|
package/lib/utils/input.js
CHANGED
|
@@ -4,14 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useMultipleInputValues = exports.useInputValue = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* @typedef {import('react').SyntheticEvent} Event
|
|
12
10
|
*/
|
|
13
|
-
const pluralHooks = ['useMultipleInputValues'];
|
|
14
11
|
|
|
12
|
+
const pluralHooks = ['useMultipleInputValues'];
|
|
15
13
|
const validateProps = (_ref, _ref2, hookName) => {
|
|
16
14
|
let {
|
|
17
15
|
value,
|
|
@@ -24,7 +22,6 @@ const validateProps = (_ref, _ref2, hookName) => {
|
|
|
24
22
|
isControlled
|
|
25
23
|
} = _ref2;
|
|
26
24
|
const s = pluralHooks.includes(hookName) ? 's' : '';
|
|
27
|
-
|
|
28
25
|
const usageError = error => {
|
|
29
26
|
// Errors inside hooks in React Native get incomplete stack traces pointing at parent component only.
|
|
30
27
|
// Help devs out by telling them exactly which hook threw the error as well as why.
|
|
@@ -36,23 +33,20 @@ Consumers of this hook must be one of:
|
|
|
36
33
|
3. A "read-only" component, with \`readOnly\` prop set as \`true\`.
|
|
37
34
|
`);
|
|
38
35
|
};
|
|
39
|
-
|
|
40
36
|
if (value && !onChange && !readOnly) {
|
|
41
37
|
usageError(`has \`value${s}\` prop without \`onChange\` or \`readOnly\``);
|
|
42
38
|
}
|
|
43
|
-
|
|
44
39
|
if (initialValue && value) {
|
|
45
40
|
usageError(`has both \`initialValue${s}\` and \`value${s}\``);
|
|
46
41
|
}
|
|
47
|
-
|
|
48
42
|
if (isControlled && !isCurrentlyControlled) {
|
|
49
43
|
usageError(`stopped receiving \`value${s}\` from parent after delegating state management`);
|
|
50
44
|
}
|
|
51
|
-
|
|
52
45
|
if (!isControlled && isCurrentlyControlled) {
|
|
53
46
|
usageError(`started receiving \`value${s}\` from parent after starting managing own state`);
|
|
54
47
|
}
|
|
55
48
|
};
|
|
49
|
+
|
|
56
50
|
/**
|
|
57
51
|
* Hook used for controlling the input state of input components that have a singular value.
|
|
58
52
|
* If `value` prop is passed in, this delegates state management to a parent using a passed-in `onChange` prop.
|
|
@@ -76,8 +70,6 @@ Consumers of this hook must be one of:
|
|
|
76
70
|
* isControlled: bool
|
|
77
71
|
* }}
|
|
78
72
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
81
73
|
const useInputValue = function () {
|
|
82
74
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
83
75
|
let hookName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'useInputValue';
|
|
@@ -95,26 +87,25 @@ const useInputValue = function () {
|
|
|
95
87
|
readOnly = false
|
|
96
88
|
} = props;
|
|
97
89
|
const [ownValue, setOwnValue] = (0, _react.useState)(!isControlled && initialValue);
|
|
98
|
-
const currentValue = isControlled ? value : ownValue;
|
|
99
|
-
// is needed, add useEffect calling a set fn if !deepEqual(initializedValues, initialValues)
|
|
90
|
+
const currentValue = isControlled ? value : ownValue;
|
|
100
91
|
|
|
92
|
+
// Store the first valid value, for resetting input to default. If behaviour like Formik's `enableReinitialize`
|
|
93
|
+
// is needed, add useEffect calling a set fn if !deepEqual(initializedValues, initialValues)
|
|
101
94
|
const valueRef = (0, _react.useRef)({
|
|
102
95
|
initial: currentValue,
|
|
103
96
|
value: currentValue
|
|
104
|
-
});
|
|
105
|
-
|
|
97
|
+
});
|
|
98
|
+
// Make current value accessible inside useCallback without rememoizing every time the value changes
|
|
106
99
|
valueRef.current.value = currentValue;
|
|
107
100
|
const isDirty = currentValue !== valueRef.current.initial;
|
|
108
101
|
const setValue = (0, _react.useCallback)((arg, event) => {
|
|
109
102
|
if (readOnly) return;
|
|
110
103
|
const newValue = typeof arg === 'function' ? arg(valueRef.current.value) : arg;
|
|
111
|
-
|
|
112
104
|
if (!isControlled) {
|
|
113
105
|
setOwnValue(newValue);
|
|
114
106
|
if (inputRef !== null && inputRef !== void 0 && inputRef.current) inputRef.current.value = newValue ?? '';
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
|
|
107
|
+
}
|
|
108
|
+
// Call onChange handler if there's something for it to handle (event or a changed value)
|
|
118
109
|
if (onChange && (event || valueRef.current.value !== newValue)) onChange(newValue, event);
|
|
119
110
|
}, [inputRef, isControlled, onChange, readOnly]);
|
|
120
111
|
const resetValue = (0, _react.useCallback)(event => setValue(valueRef.current.initial, event), [setValue]);
|
|
@@ -126,6 +117,7 @@ const useInputValue = function () {
|
|
|
126
117
|
isDirty
|
|
127
118
|
};
|
|
128
119
|
};
|
|
120
|
+
|
|
129
121
|
/**
|
|
130
122
|
* Hook used for controlling the input state of input components that have multiple named on/off states.
|
|
131
123
|
* If `values` are passed in, this delegates state management to a parent using a passed-in `onChange` prop.
|
|
@@ -151,10 +143,7 @@ const useInputValue = function () {
|
|
|
151
143
|
* unsetValues: () => void
|
|
152
144
|
* }}
|
|
153
145
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
146
|
exports.useInputValue = useInputValue;
|
|
157
|
-
|
|
158
147
|
const useMultipleInputValues = function () {
|
|
159
148
|
let {
|
|
160
149
|
values,
|
|
@@ -187,9 +176,9 @@ const useMultipleInputValues = function () {
|
|
|
187
176
|
const resetValues = resetValue;
|
|
188
177
|
const unsetValues = (0, _react.useCallback)(event => setValues([], event), [setValues]);
|
|
189
178
|
const toggleOneValue = (0, _react.useCallback)((newValue, event) => {
|
|
190
|
-
if (readOnly) return;
|
|
179
|
+
if (readOnly) return;
|
|
180
|
+
// This will only work with primitive values (e.g. strings, numbers), swap for .some() and
|
|
191
181
|
// a deepEqual() function if there's any use case for toggling stored objects or arrays.
|
|
192
|
-
|
|
193
182
|
const newValues = currentValues.includes(newValue) ? currentValues.filter(oldValue => oldValue !== newValue) : [...currentValues, newValue];
|
|
194
183
|
setValues(newValues, event);
|
|
195
184
|
}, [currentValues, readOnly, setValues]);
|
|
@@ -201,5 +190,4 @@ const useMultipleInputValues = function () {
|
|
|
201
190
|
unsetValues
|
|
202
191
|
};
|
|
203
192
|
};
|
|
204
|
-
|
|
205
193
|
exports.useMultipleInputValues = useMultipleInputValues;
|
|
@@ -4,20 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.resolvePressableTokens = exports.resolvePressableState = exports.getPressHandlersWithArgs = exports.getCursorStyle = void 0;
|
|
7
|
-
|
|
8
7
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
9
|
-
|
|
10
8
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
11
|
-
|
|
12
9
|
var _pressProps = _interopRequireDefault(require("./props/pressProps"));
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
/**
|
|
17
12
|
* @typedef {import('react').ReactNode} ReactNode
|
|
18
|
-
*/
|
|
19
|
-
// These roles should result in cursor: pointer but don't in current RNW releases
|
|
13
|
+
*/ // These roles should result in cursor: pointer but don't in current RNW releases
|
|
20
14
|
const shouldUseCursor = ['checkbox', 'radio', 'switch'];
|
|
15
|
+
|
|
21
16
|
/**
|
|
22
17
|
* React Native Web has some built-in logic for applying cursor styles based on accessibility roles;
|
|
23
18
|
* however, it misses certain cases. This fills in known cases where widely used versions of RNW
|
|
@@ -29,7 +24,6 @@ const shouldUseCursor = ['checkbox', 'radio', 'switch'];
|
|
|
29
24
|
* @param {string} [props.accessibilityRole]
|
|
30
25
|
* @returns
|
|
31
26
|
*/
|
|
32
|
-
|
|
33
27
|
const getCursorStyle = _ref => {
|
|
34
28
|
let {
|
|
35
29
|
inactive,
|
|
@@ -41,6 +35,7 @@ const getCursorStyle = _ref => {
|
|
|
41
35
|
if (shouldUseCursor.includes(accessibilityRole)) return staticStyles.pointer;
|
|
42
36
|
return undefined; // allows React Native Web's built-in logic to apply
|
|
43
37
|
};
|
|
38
|
+
|
|
44
39
|
/**
|
|
45
40
|
* @typedef {{ pressed: boolean, focused: boolean, hovered?: boolean }} PressableState
|
|
46
41
|
*/
|
|
@@ -55,10 +50,7 @@ const getCursorStyle = _ref => {
|
|
|
55
50
|
* such as `inactive`, `selected`, etc.
|
|
56
51
|
* @returns {object}
|
|
57
52
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
53
|
exports.getCursorStyle = getCursorStyle;
|
|
61
|
-
|
|
62
54
|
const resolvePressableState = function () {
|
|
63
55
|
let {
|
|
64
56
|
pressed = false,
|
|
@@ -66,12 +58,14 @@ const resolvePressableState = function () {
|
|
|
66
58
|
hovered = false
|
|
67
59
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
68
60
|
let additionalState = arguments.length > 1 ? arguments[1] : undefined;
|
|
69
|
-
return {
|
|
61
|
+
return {
|
|
62
|
+
...additionalState,
|
|
70
63
|
focus: focused,
|
|
71
64
|
hover: hovered,
|
|
72
65
|
pressed
|
|
73
66
|
};
|
|
74
67
|
};
|
|
68
|
+
|
|
75
69
|
/**
|
|
76
70
|
* Takes a UDS `tokens` prop and, if it is a function, resolves it based on a state
|
|
77
71
|
* object passed from the React Native `Pressable` component and optional extra properties.
|
|
@@ -81,18 +75,13 @@ const resolvePressableState = function () {
|
|
|
81
75
|
* @param {object} [additionalState] - properties specific to the current component
|
|
82
76
|
* @returns {object} - resolved tokens object
|
|
83
77
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
86
78
|
exports.resolvePressableState = resolvePressableState;
|
|
87
|
-
|
|
88
79
|
const resolvePressableTokens = (tokens, pressableState, additionalState) => {
|
|
89
80
|
if (typeof tokens !== 'function') return tokens;
|
|
90
81
|
const udsPressableState = resolvePressableState(pressableState, additionalState);
|
|
91
82
|
return tokens(udsPressableState);
|
|
92
83
|
};
|
|
93
|
-
|
|
94
84
|
exports.resolvePressableTokens = resolvePressableTokens;
|
|
95
|
-
|
|
96
85
|
const staticStyles = _StyleSheet.default.create(_Platform.default.select({
|
|
97
86
|
web: {
|
|
98
87
|
notAllowed: {
|
|
@@ -104,13 +93,12 @@ const staticStyles = _StyleSheet.default.create(_Platform.default.select({
|
|
|
104
93
|
},
|
|
105
94
|
default: {}
|
|
106
95
|
}));
|
|
96
|
+
|
|
107
97
|
/**
|
|
108
98
|
* From an object of props, extracts any platform-appropriate press handler functions and wraps
|
|
109
99
|
* them in a function that passes in some provided args. Allows components containing a Pressable
|
|
110
100
|
* to pass in press handlers that are then called with state or values that is otherwise internal.
|
|
111
101
|
*/
|
|
112
|
-
|
|
113
|
-
|
|
114
102
|
const getPressHandlersWithArgs = function () {
|
|
115
103
|
let pressableProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
116
104
|
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
@@ -122,7 +110,6 @@ const getPressHandlersWithArgs = function () {
|
|
|
122
110
|
for (var _len = arguments.length, defaultArgs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
123
111
|
defaultArgs[_key] = arguments[_key];
|
|
124
112
|
}
|
|
125
|
-
|
|
126
113
|
// Pass each handler data on this button and current selection
|
|
127
114
|
handler(...args, ...defaultArgs);
|
|
128
115
|
}
|
|
@@ -130,5 +117,4 @@ const getPressHandlersWithArgs = function () {
|
|
|
130
117
|
}));
|
|
131
118
|
return pressHandlers;
|
|
132
119
|
};
|
|
133
|
-
|
|
134
120
|
exports.getPressHandlersWithArgs = getPressHandlersWithArgs;
|
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
|
|
10
8
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
11
|
-
|
|
12
9
|
var _getPropSelector = _interopRequireDefault(require("./getPropSelector"));
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
// React Native exports a11y prop definitions as TypeScript Interfaces, but no longer exports PropTypes
|
|
17
12
|
// so we have to define them ourselves.
|
|
18
13
|
const nativeA11yPropTypes = {
|
|
@@ -48,7 +43,8 @@ const nativeA11yPropTypes = {
|
|
|
48
43
|
onAccessibilityEscape: _propTypes.default.func,
|
|
49
44
|
onAccessibilityTap: _propTypes.default.func
|
|
50
45
|
};
|
|
51
|
-
const a11yPropTypes = {
|
|
46
|
+
const a11yPropTypes = {
|
|
47
|
+
...nativeA11yPropTypes,
|
|
52
48
|
// React Native Web adds many a11y props that alias aria-* attributes
|
|
53
49
|
// Types based on https://necolas.github.io/react-native-web/docs/accessibility/
|
|
54
50
|
accessibilityActiveDescendant: _propTypes.default.string,
|
|
@@ -95,14 +91,15 @@ const a11yPropTypes = { ...nativeA11yPropTypes,
|
|
|
95
91
|
accessibilityValueNow: _propTypes.default.number,
|
|
96
92
|
accessibilityValueText: _propTypes.default.string
|
|
97
93
|
};
|
|
98
|
-
|
|
99
94
|
const a11yPropTypesByPlatform = _Platform.default.select({
|
|
100
95
|
// React Native Web adds many a11y props that alias aria-* attributes
|
|
101
96
|
// Types based on https://necolas.github.io/react-native-web/docs/accessibility/
|
|
102
97
|
web: a11yPropTypes,
|
|
103
98
|
// Ignore web-only props in native builds
|
|
104
99
|
default: nativeA11yPropTypes
|
|
105
|
-
});
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// These RNW-only props only exist in RNW >=0.18. Catch them and map them according to platform
|
|
106
103
|
// so all props work on RN, RNW >=0.18 and RNW <=0.18, regardless of which they were written for:
|
|
107
104
|
// - On native, bundle them into objects, like `accessibilityValue: { max: 100 }`
|
|
108
105
|
// - On web, split them into both of:
|
|
@@ -110,8 +107,6 @@ const a11yPropTypesByPlatform = _Platform.default.select({
|
|
|
110
107
|
// - The corresponding RNW >=0.18 prop, like `accessibilityValueNow`, which in some cases does more
|
|
111
108
|
// than just add the aria-* (e.g. `accessibilityDisabled` adds `disabled` if element supports it,
|
|
112
109
|
// and future releases might add more features here).
|
|
113
|
-
|
|
114
|
-
|
|
115
110
|
const rwnPropMappings = {
|
|
116
111
|
// Former accessibilityValue props.
|
|
117
112
|
accessibilityValueMax: value => _Platform.default.select({
|
|
@@ -219,14 +214,13 @@ const rwnPropMappings = {
|
|
|
219
214
|
}
|
|
220
215
|
})
|
|
221
216
|
};
|
|
222
|
-
|
|
223
217
|
if (_Platform.default.OS === 'web') {
|
|
224
|
-
const mapIfDefined = (value, fn) => value === undefined ? undefined : fn(value);
|
|
218
|
+
const mapIfDefined = (value, fn) => value === undefined ? undefined : fn(value);
|
|
219
|
+
|
|
220
|
+
// On Web only, these React Native object props need manual mapping in RNW >=0.18
|
|
225
221
|
// which dropped support for the React Native shape of these props.
|
|
226
222
|
// Re-use our RNW 0.18 prop mappings to support both RNW <0.18 (aria-*) and
|
|
227
223
|
// new features added in >=0.18 (e.g. for accessibilityDisabled).
|
|
228
|
-
|
|
229
|
-
|
|
230
224
|
rwnPropMappings.accessibilityValue = function () {
|
|
231
225
|
let {
|
|
232
226
|
max,
|
|
@@ -234,13 +228,13 @@ if (_Platform.default.OS === 'web') {
|
|
|
234
228
|
now,
|
|
235
229
|
text
|
|
236
230
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
237
|
-
return {
|
|
231
|
+
return {
|
|
232
|
+
...mapIfDefined(max, rwnPropMappings.accessibilityValueMax),
|
|
238
233
|
...mapIfDefined(min, rwnPropMappings.accessibilityValueMin),
|
|
239
234
|
...mapIfDefined(now, rwnPropMappings.accessibilityValueNow),
|
|
240
235
|
...mapIfDefined(text, rwnPropMappings.accessibilityValueText)
|
|
241
236
|
};
|
|
242
237
|
};
|
|
243
|
-
|
|
244
238
|
rwnPropMappings.accessibilityState = function () {
|
|
245
239
|
let {
|
|
246
240
|
busy,
|
|
@@ -249,7 +243,8 @@ if (_Platform.default.OS === 'web') {
|
|
|
249
243
|
expanded,
|
|
250
244
|
selected
|
|
251
245
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
252
|
-
return {
|
|
246
|
+
return {
|
|
247
|
+
...mapIfDefined(busy, rwnPropMappings.accessibilityBusy),
|
|
253
248
|
...mapIfDefined(checked, rwnPropMappings.accessibilityChecked),
|
|
254
249
|
...mapIfDefined(disabled, rwnPropMappings.accessibilityDisabled),
|
|
255
250
|
...mapIfDefined(expanded, rwnPropMappings.accessibilityExpanded),
|
|
@@ -257,29 +252,29 @@ if (_Platform.default.OS === 'web') {
|
|
|
257
252
|
};
|
|
258
253
|
};
|
|
259
254
|
}
|
|
260
|
-
|
|
261
255
|
var _default = {
|
|
262
256
|
/**
|
|
263
257
|
* Proptypes for recognised React Native accessiblity (a11y) props.
|
|
264
258
|
* Spread this in the propTypes of components that accept React Native a11y props.
|
|
265
259
|
*/
|
|
266
260
|
types: a11yPropTypes,
|
|
267
|
-
|
|
268
261
|
/**
|
|
269
262
|
* Filters a props object, returning only recognised React Native accessiblity (a11y) props.
|
|
270
263
|
*
|
|
271
264
|
* Where components accept React Native a11y props, pass { ...rest } from its props to this,
|
|
272
265
|
* then spread the returned object into the component's props (usually its outer container).
|
|
273
266
|
*/
|
|
274
|
-
select: (0, _getPropSelector.default)(
|
|
275
|
-
|
|
276
|
-
|
|
267
|
+
select: (0, _getPropSelector.default)(
|
|
268
|
+
// Allow all React Native accessibility props
|
|
269
|
+
a11yPropTypesByPlatform,
|
|
270
|
+
// Allow any `aria-*` attribute on web; ignore them on native
|
|
271
|
+
_Platform.default.OS === 'web' && /^aria-/,
|
|
272
|
+
// For the props added and deprecated in React Native Web 0.18, convert them to
|
|
277
273
|
// a form that is platform-appropriate and RNW-version safe
|
|
278
274
|
(key, value) => {
|
|
279
275
|
const rnwPropMapper = rwnPropMappings[key];
|
|
280
276
|
return rnwPropMapper ? rnwPropMapper(value) : undefined;
|
|
281
277
|
}),
|
|
282
|
-
|
|
283
278
|
/**
|
|
284
279
|
* Use this to disable focus for elements which are visually hidden but still rendered.
|
|
285
280
|
*/
|
|
@@ -289,8 +284,8 @@ var _default = {
|
|
|
289
284
|
..._Platform.default.select({
|
|
290
285
|
web: {
|
|
291
286
|
accessibilityHidden: true // web screenreaders
|
|
292
|
-
|
|
293
287
|
},
|
|
288
|
+
|
|
294
289
|
android: {
|
|
295
290
|
importantForAccessibility: 'no-hide-descendants'
|
|
296
291
|
},
|
|
@@ -299,7 +294,6 @@ var _default = {
|
|
|
299
294
|
}
|
|
300
295
|
})
|
|
301
296
|
},
|
|
302
|
-
|
|
303
297
|
/**
|
|
304
298
|
* Generates an object of platform-appropriate a11y props describing an item that has an
|
|
305
299
|
* ordered position in a set. Examples of usage by accessibility tools includes screenreaders
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
const clickHandlerMapping = {
|
|
13
10
|
onClick: 'onPress',
|
|
14
11
|
onMouseDown: 'onPressIn',
|
|
@@ -19,7 +16,6 @@ var _default = {
|
|
|
19
16
|
* Web-oriented HTML click handlers that may be mapped to React Native press handlers
|
|
20
17
|
*/
|
|
21
18
|
types: Object.fromEntries(Object.keys(clickHandlerMapping).map(mouseName => [mouseName, _propTypes.default.func])),
|
|
22
|
-
|
|
23
19
|
/**
|
|
24
20
|
* Takes a set of props and converts HTML mouse click oriented event handlers to closest
|
|
25
21
|
* equivalent React Native press event handler.
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = componentPropType;
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* Returns a prop type validator which checks whether a prop is either a component or an array of
|
|
10
9
|
* components of a given type, based on their `name` or `displayName` properties.
|
|
@@ -16,54 +15,41 @@ exports.default = componentPropType;
|
|
|
16
15
|
*/
|
|
17
16
|
function componentPropType(passedName) {
|
|
18
17
|
const passedNames = typeof passedName === 'string' ? [passedName] : passedName;
|
|
19
|
-
|
|
20
18
|
const checkProp = (props, propName, componentName) => {
|
|
21
19
|
var _props$propName$type, _props$propName$type2;
|
|
22
|
-
|
|
23
20
|
if (props[propName] === undefined || props[propName] === null) {
|
|
24
21
|
return undefined;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
if (Array.isArray(props[propName])) {
|
|
28
24
|
// Iterates through every child and try to find the first element that does not match the passed name
|
|
29
25
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean
|
|
30
26
|
return props[propName].map((_, index) => checkProp(props[propName], index, componentName)).find(Boolean);
|
|
31
27
|
}
|
|
32
|
-
|
|
33
28
|
const nameInProp = ((_props$propName$type = props[propName].type) === null || _props$propName$type === void 0 ? void 0 : _props$propName$type.displayName) || ((_props$propName$type2 = props[propName].type) === null || _props$propName$type2 === void 0 ? void 0 : _props$propName$type2.name);
|
|
34
|
-
|
|
35
29
|
if (!nameInProp || !passedNames.includes(nameInProp)) {
|
|
36
30
|
const propDescription = nameInProp ? `Component ${nameInProp}` : typeof props[propName];
|
|
37
31
|
return new Error(`${componentName}: ${propDescription} was passed to \`${propName}\` prop; should be ${passedNames.join(' or ')}`);
|
|
38
32
|
}
|
|
39
|
-
|
|
40
33
|
return undefined;
|
|
41
34
|
};
|
|
42
|
-
|
|
43
35
|
const checkRequired = (props, propName, componentName) => {
|
|
44
36
|
if (props[propName] === undefined) {
|
|
45
37
|
return new Error(`The prop \`${propName}\` is marked as required in \`${componentName}\`, but its value is ${props[propName]}.`);
|
|
46
38
|
}
|
|
47
|
-
|
|
48
39
|
return undefined;
|
|
49
40
|
};
|
|
50
|
-
|
|
51
41
|
const createValidate = isRequired => {
|
|
52
42
|
if (isRequired) {
|
|
53
43
|
return (props, propName, componentName) => {
|
|
54
44
|
const checkForError = checkProp(props, propName, componentName);
|
|
55
|
-
|
|
56
45
|
if (checkForError) {
|
|
57
46
|
return checkForError;
|
|
58
47
|
}
|
|
59
|
-
|
|
60
48
|
return checkRequired(props, propName, componentName);
|
|
61
49
|
};
|
|
62
50
|
}
|
|
63
|
-
|
|
64
51
|
return checkProp;
|
|
65
52
|
};
|
|
66
|
-
|
|
67
53
|
const validate = createValidate();
|
|
68
54
|
validate.isRequired = createValidate(true);
|
|
69
55
|
return validate;
|
|
@@ -4,11 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
var _default = _propTypes.default.oneOf(['en', 'fr']);
|
|
13
|
-
|
|
14
10
|
exports.default = _default;
|
|
@@ -4,20 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = getPropSelector;
|
|
7
|
-
|
|
8
7
|
var _lodash = _interopRequireDefault(require("lodash.merge"));
|
|
9
|
-
|
|
10
8
|
var _hasOwnProperty = _interopRequireDefault(require("../hasOwnProperty"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
/**
|
|
15
11
|
* @callback PropSelectorCallback - a callback called for each prop passed to a component
|
|
16
12
|
* @param {string} key - the key for the prop to be tested
|
|
17
13
|
* @param {*} value - the value of the prop being passed in to the component
|
|
18
14
|
* @returns {object|undefined}
|
|
19
15
|
*/
|
|
20
|
-
|
|
21
16
|
/**
|
|
22
17
|
* @param {PropSelectorCallback} callback
|
|
23
18
|
* @param {object} items
|
|
@@ -28,12 +23,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
28
23
|
const applyCallback = (callback, items, key, value) => {
|
|
29
24
|
// If there's no callback, continue and look up keys as normal
|
|
30
25
|
if (typeof callback !== 'function') return undefined;
|
|
31
|
-
const newItems = callback(key, value);
|
|
26
|
+
const newItems = callback(key, value);
|
|
32
27
|
|
|
33
|
-
|
|
28
|
+
// If the callback doesn't return anything, continue and look up keys as normal
|
|
29
|
+
if (!newItems) return undefined;
|
|
34
30
|
|
|
31
|
+
// If the callback returns items, merge them in, deep merging props that are objects
|
|
35
32
|
return (0, _lodash.default)({}, items, newItems);
|
|
36
33
|
};
|
|
34
|
+
|
|
37
35
|
/**
|
|
38
36
|
* Generates a function to filter an object of props down to a subset of allowed props, with
|
|
39
37
|
* optional prop alteration and re-mapping via an optional callback.
|
|
@@ -43,14 +41,15 @@ const applyCallback = (callback, items, key, value) => {
|
|
|
43
41
|
* @param {PropSelectorCallback} callback - optional function taking `(key, value)` returning either undefined or an object of new props to merge in
|
|
44
42
|
* @returns {object} - valid props for this component
|
|
45
43
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
44
|
function getPropSelector(propTypes, regexp, callback) {
|
|
49
45
|
return props => Object.entries(props).reduce((items, _ref) => {
|
|
50
46
|
let [key, value] = _ref;
|
|
51
|
-
return (
|
|
52
|
-
|
|
53
|
-
(
|
|
47
|
+
return (
|
|
48
|
+
// If there's a callback and it matches something, applyCallback merges it in; return that
|
|
49
|
+
applyCallback(callback, items, key, value) || (
|
|
50
|
+
// If there's no callback match, check if this prop is valid and merge it in if it is
|
|
51
|
+
(0, _hasOwnProperty.default)(propTypes, key) || regexp && regexp.test(key) ? {
|
|
52
|
+
...items,
|
|
54
53
|
[key]: value
|
|
55
54
|
} : items)
|
|
56
55
|
);
|