@telus-uds/components-base 2.0.0 → 2.0.2
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 +1046 -3
- package/README.md +35 -0
- package/babel.config.cjs +35 -0
- package/{jest.config-android.js → jest.config-android.cjs} +1 -1
- package/{jest.config-ios.js → jest.config-ios.cjs} +1 -1
- package/{jest.config-web.js → jest.config-web.cjs} +1 -1
- package/jest.config.cjs +40 -0
- package/jest.setup.js +7 -0
- package/lib/A11yInfoProvider/index.js +33 -64
- package/lib/A11yText/index.js +29 -40
- package/lib/ActionCard/ActionCard.js +342 -0
- package/lib/ActionCard/index.js +2 -0
- package/lib/ActivityIndicator/Spinner.js +27 -42
- package/lib/ActivityIndicator/Spinner.native.js +37 -70
- package/lib/ActivityIndicator/index.js +17 -33
- package/lib/ActivityIndicator/shared.js +12 -26
- package/lib/Autocomplete/Autocomplete.js +478 -0
- package/lib/Autocomplete/Loading.js +35 -0
- package/lib/Autocomplete/Suggestions.js +64 -0
- package/lib/Autocomplete/constants.js +4 -0
- package/lib/Autocomplete/dictionary.js +12 -0
- package/lib/Autocomplete/index.js +2 -0
- package/lib/Badge/Badge.js +102 -0
- package/lib/Badge/index.js +2 -0
- package/lib/BaseProvider/HydrationContext.js +17 -43
- package/lib/BaseProvider/index.js +24 -41
- package/lib/Box/Box.js +191 -93
- package/lib/Box/backgroundImageStylesMap.js +94 -0
- package/lib/Box/index.js +2 -13
- package/lib/Button/Button.js +21 -33
- package/lib/Button/ButtonBase.js +143 -136
- package/lib/Button/ButtonDropdown.js +41 -75
- package/lib/Button/ButtonGroup.js +92 -110
- package/lib/Button/ButtonLink.js +25 -36
- package/lib/Button/index.js +5 -39
- package/lib/Button/propTypes.js +16 -40
- package/lib/Card/Card.js +266 -45
- package/lib/Card/CardBase.js +67 -40
- package/lib/Card/PressableCardBase.js +35 -67
- package/lib/Card/index.js +4 -40
- package/lib/CardGroup/CardGroup.js +210 -0
- package/lib/CardGroup/dictionary.js +8 -0
- package/lib/CardGroup/index.js +2 -0
- package/lib/Carousel/Carousel.js +476 -332
- package/lib/Carousel/CarouselContext.js +20 -42
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +18 -39
- package/lib/Carousel/CarouselItem/CarouselItem.js +106 -58
- package/lib/Carousel/CarouselItem/index.js +2 -13
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +21 -32
- package/lib/Carousel/CarouselStepTracker/index.js +2 -13
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +17 -36
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +36 -51
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +25 -55
- package/lib/Carousel/CarouselTabs/index.js +2 -13
- package/lib/Carousel/CarouselThumbnail.js +76 -62
- package/lib/Carousel/CarouselThumbnailNavigation.js +31 -47
- package/lib/Carousel/dictionary.js +13 -16
- package/lib/Carousel/index.js +3 -41
- package/lib/Checkbox/Checkbox.js +64 -107
- package/lib/Checkbox/CheckboxButton.js +163 -0
- package/lib/Checkbox/CheckboxGroup.js +64 -90
- package/lib/Checkbox/CheckboxInput.js +16 -42
- package/lib/Checkbox/CheckboxInput.native.js +1 -10
- package/lib/Checkbox/index.js +3 -21
- package/{lib-module/RadioCard/RadioCard.js → lib/CheckboxCard/CheckboxCard.js} +43 -88
- package/lib/CheckboxCard/index.js +2 -0
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +206 -0
- package/lib/CheckboxCardGroup/index.js +2 -0
- package/lib/ColourToggle/ColourBubble.js +126 -0
- package/lib/ColourToggle/ColourToggle.js +91 -0
- package/lib/ColourToggle/index.js +2 -0
- package/lib/Divider/Divider.js +37 -54
- package/lib/Divider/index.js +2 -13
- package/lib/DownloadApp/DownloadApp.js +160 -0
- package/lib/DownloadApp/dictionary.js +10 -0
- package/lib/DownloadApp/index.js +2 -0
- package/lib/ExpandCollapse/Accordion.js +6 -22
- package/lib/ExpandCollapse/Control.js +72 -67
- package/lib/ExpandCollapse/ExpandCollapse.js +39 -56
- package/lib/ExpandCollapse/Panel.js +144 -86
- package/lib/ExpandCollapse/dictionary.js +10 -0
- package/lib/ExpandCollapse/index.js +7 -25
- package/lib/Feedback/Feedback.js +41 -69
- package/lib/Feedback/index.js +2 -13
- package/lib/Fieldset/Fieldset.js +81 -90
- package/lib/Fieldset/FieldsetContainer.js +26 -33
- package/lib/Fieldset/FieldsetContainer.native.js +18 -27
- package/lib/Fieldset/Legend.js +9 -26
- package/lib/Fieldset/Legend.native.js +10 -30
- package/lib/Fieldset/cssReset.js +2 -9
- package/lib/Fieldset/index.js +2 -13
- package/lib/FileUpload/FileUpload.js +328 -0
- package/lib/FileUpload/NotificationContent.js +54 -0
- package/lib/FileUpload/dictionary.js +40 -0
- package/lib/FileUpload/index.js +2 -0
- package/lib/FlexGrid/Col/Col.js +104 -148
- package/lib/FlexGrid/Col/index.js +2 -13
- package/lib/FlexGrid/FlexGrid.js +92 -110
- package/lib/FlexGrid/Row/Row.js +82 -108
- package/lib/FlexGrid/Row/index.js +2 -13
- package/lib/FlexGrid/helpers/index.js +1 -12
- package/lib/FlexGrid/index.js +2 -13
- package/lib/FlexGrid/providers/GutterContext.js +3 -15
- package/lib/Footnote/Footnote.js +316 -0
- package/lib/Footnote/FootnoteLink.js +107 -0
- package/lib/Footnote/dictionary.js +12 -0
- package/lib/Footnote/index.js +4 -0
- package/lib/HorizontalScroll/HorizontalScroll.js +48 -87
- package/lib/HorizontalScroll/HorizontalScrollButton.js +26 -52
- package/lib/HorizontalScroll/ScrollViewEnd.js +17 -38
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +8 -26
- package/lib/HorizontalScroll/dictionary.js +2 -9
- package/lib/HorizontalScroll/index.js +11 -35
- package/lib/HorizontalScroll/itemPositions.js +25 -46
- package/lib/Icon/Icon.js +59 -48
- package/lib/Icon/IconText.js +59 -55
- package/lib/Icon/index.js +4 -31
- package/lib/IconButton/IconButton.js +127 -85
- package/lib/IconButton/index.js +2 -13
- package/lib/InputLabel/InputLabel.js +42 -76
- package/lib/InputLabel/LabelContent.js +10 -26
- package/lib/InputLabel/LabelContent.native.js +8 -27
- package/lib/InputLabel/index.js +2 -13
- package/lib/InputSupports/InputSupports.js +39 -56
- package/lib/InputSupports/index.js +2 -13
- package/lib/InputSupports/useInputSupports.js +7 -19
- package/lib/Link/ChevronLink.js +35 -38
- package/lib/Link/InlinePressable.js +14 -29
- package/lib/Link/InlinePressable.native.js +20 -40
- package/lib/Link/Link.js +9 -27
- package/lib/Link/LinkBase.js +96 -103
- package/lib/Link/TextButton.js +19 -29
- package/lib/Link/index.js +5 -39
- package/lib/List/List.js +39 -50
- package/lib/List/ListItem.js +13 -37
- package/lib/List/ListItemBase.js +72 -70
- package/lib/List/ListItemContent.js +36 -48
- package/lib/List/ListItemMark.js +42 -75
- package/lib/List/PressableListItemBase.js +35 -69
- package/lib/List/index.js +5 -28
- package/lib/Listbox/GroupControl.js +105 -0
- package/lib/Listbox/Listbox.js +171 -0
- package/lib/Listbox/ListboxContext.js +4 -0
- package/lib/Listbox/ListboxGroup.js +125 -0
- package/lib/Listbox/ListboxItem.js +76 -0
- package/lib/Listbox/ListboxOverlay.js +77 -0
- package/lib/Listbox/PressableItem.js +139 -0
- package/lib/Listbox/index.js +2 -0
- package/lib/Modal/Modal.js +212 -96
- package/lib/Modal/ModalContent.js +179 -0
- package/lib/Modal/WebModal.js +76 -0
- package/lib/Modal/dictionary.js +2 -9
- package/lib/Modal/index.js +2 -13
- package/lib/MultiSelectFilter/ModalOverlay.js +114 -95
- package/lib/MultiSelectFilter/MultiSelectFilter.js +380 -170
- package/lib/MultiSelectFilter/dictionary.js +2 -9
- package/lib/MultiSelectFilter/index.js +2 -13
- package/lib/Notification/Notification.js +290 -116
- package/lib/Notification/dictionary.js +2 -9
- package/lib/Notification/index.js +2 -13
- package/lib/OrderedList/Item.js +159 -0
- package/lib/OrderedList/ItemBase.js +43 -0
- package/lib/OrderedList/OrderedList.js +64 -0
- package/lib/OrderedList/OrderedListBase.js +36 -0
- package/lib/OrderedList/index.js +2 -0
- package/lib/Pagination/PageButton.js +38 -57
- package/lib/Pagination/Pagination.js +124 -95
- package/lib/Pagination/SideButton.js +25 -58
- package/lib/Pagination/constants.js +3 -0
- package/lib/Pagination/dictionary.js +5 -12
- package/lib/Pagination/index.js +2 -13
- package/lib/Pagination/usePagination.js +20 -23
- package/lib/Portal/Portal.js +50 -0
- package/lib/Portal/Portal.native.js +2 -0
- package/lib/Portal/index.js +2 -0
- package/lib/PriceLockup/PriceLockup.js +223 -0
- package/lib/PriceLockup/index.js +2 -0
- package/lib/PriceLockup/utils/renderFootnoteContent.js +85 -0
- package/lib/PriceLockup/utils/renderFootnoteLinks.js +28 -0
- package/lib/PriceLockup/utils/renderPrice.js +139 -0
- package/lib/PriceLockup/utils/renderTypography.js +23 -0
- package/lib/ProductCard/ProductCard.js +231 -0
- package/lib/ProductCard/dictionary.js +38 -0
- package/lib/ProductCard/index.js +2 -0
- package/lib/ProductCardGroup/ProductCardGroup.js +70 -0
- package/lib/ProductCardGroup/index.js +2 -0
- package/lib/Progress/Progress.js +22 -43
- package/lib/Progress/ProgressBar.js +31 -60
- package/lib/Progress/ProgressBarBackground.js +13 -35
- package/lib/Progress/index.js +4 -16
- package/lib/QuickLinks/QuickLinks.js +31 -44
- package/lib/QuickLinks/QuickLinksCard.js +16 -30
- package/lib/QuickLinks/QuickLinksItem.js +22 -44
- package/lib/QuickLinks/index.js +4 -16
- package/lib/QuickLinksFeature/QuickLinksFeature.js +25 -47
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +88 -99
- package/lib/QuickLinksFeature/index.js +4 -16
- package/lib/Radio/Radio.js +63 -95
- package/lib/Radio/RadioButton.js +94 -76
- package/lib/Radio/RadioGroup.js +70 -94
- package/lib/Radio/RadioInput.js +18 -46
- package/lib/Radio/RadioInput.native.js +1 -10
- package/lib/Radio/index.js +3 -21
- package/lib/RadioCard/RadioCard.js +47 -90
- package/lib/RadioCard/RadioCardGroup.js +66 -91
- package/lib/RadioCard/index.js +3 -21
- package/lib/Responsive/Responsive.js +48 -41
- package/{lib-module/Responsive/Responsive.js → lib/Responsive/ResponsiveProp.js} +13 -20
- package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +68 -0
- package/lib/Responsive/index.js +2 -13
- package/lib/Search/Search.js +73 -96
- package/lib/Search/dictionary.js +2 -9
- package/lib/Search/index.js +2 -13
- package/lib/Select/Group.js +15 -25
- package/lib/Select/Group.native.js +8 -18
- package/lib/Select/Item.js +14 -23
- package/lib/Select/Item.native.js +1 -10
- package/lib/Select/Picker.js +71 -60
- package/lib/Select/Picker.native.js +40 -65
- package/lib/Select/Select.js +70 -109
- package/lib/Select/constants.js +4 -14
- package/lib/Select/index.js +6 -19
- package/lib/SideNav/Item.js +41 -65
- package/lib/SideNav/ItemContent.js +22 -41
- package/lib/SideNav/ItemsGroup.js +43 -60
- package/lib/SideNav/SideNav.js +42 -68
- package/lib/SideNav/index.js +1 -15
- package/lib/Skeleton/Skeleton.js +54 -86
- package/lib/Skeleton/index.js +2 -13
- package/lib/Skeleton/skeleton.constant.js +2 -12
- package/lib/Skeleton/skeletonWebAnimation.js +12 -25
- package/lib/Skeleton/useSkeletonNativeAnimation.js +22 -33
- package/lib/SkipLink/SkipLink.js +48 -75
- package/lib/SkipLink/index.js +2 -13
- package/lib/Spacer/Spacer.js +17 -41
- package/lib/Spacer/index.js +2 -13
- package/lib/StackView/StackView.js +34 -59
- package/lib/StackView/StackWrap.js +23 -44
- package/lib/StackView/StackWrap.native.js +2 -12
- package/lib/StackView/StackWrapBox.js +32 -58
- package/lib/StackView/StackWrapGap.js +22 -45
- package/lib/StackView/common.js +4 -19
- package/lib/StackView/getStackedContent.js +21 -41
- package/lib/StackView/index.js +5 -29
- package/lib/Status/Status.js +165 -0
- package/lib/Status/index.js +2 -0
- package/lib/StepTracker/Step.js +70 -79
- package/lib/StepTracker/StepTracker.js +67 -79
- package/lib/StepTracker/dictionary.js +26 -13
- package/lib/StepTracker/index.js +2 -13
- package/lib/TabBar/TabBar.js +125 -0
- package/lib/TabBar/TabBarItem.js +175 -0
- package/lib/TabBar/index.js +2 -0
- package/lib/Tabs/Tabs.js +75 -71
- package/lib/Tabs/TabsItem.js +70 -91
- package/lib/Tabs/index.js +2 -13
- package/lib/Tags/Tags.js +59 -97
- package/lib/Tags/index.js +2 -13
- package/lib/TextInput/TextArea.js +27 -46
- package/lib/TextInput/TextInput.js +38 -54
- package/lib/TextInput/TextInputBase.js +210 -137
- package/lib/TextInput/dictionary.js +8 -11
- package/lib/TextInput/index.js +3 -23
- package/lib/TextInput/propTypes.js +11 -21
- package/lib/ThemeProvider/ThemeProvider.js +40 -52
- package/lib/ThemeProvider/index.js +7 -61
- package/lib/ThemeProvider/useResponsiveThemeTokens.js +81 -0
- package/lib/ThemeProvider/useSetTheme.js +10 -20
- package/lib/ThemeProvider/useTheme.js +5 -17
- package/lib/ThemeProvider/useThemeTokens.js +16 -33
- package/lib/ThemeProvider/utils/index.js +2 -31
- package/lib/ThemeProvider/utils/styles.js +48 -60
- package/lib/ThemeProvider/utils/theme-tokens.js +37 -78
- package/lib/Timeline/Timeline.js +39 -63
- package/lib/Timeline/index.js +2 -13
- package/lib/ToggleSwitch/ToggleSwitch.js +105 -108
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +47 -91
- package/lib/ToggleSwitch/index.js +3 -23
- package/lib/Tooltip/Backdrop.js +22 -29
- package/lib/Tooltip/Backdrop.native.js +14 -33
- package/lib/Tooltip/Tooltip.js +65 -92
- package/lib/Tooltip/Tooltip.native.js +107 -110
- package/lib/Tooltip/dictionary.js +2 -9
- package/lib/Tooltip/getTooltipPosition.js +35 -49
- package/lib/Tooltip/index.js +5 -18
- package/lib/Tooltip/shared.js +26 -24
- package/lib/TooltipButton/TooltipButton.js +48 -53
- package/lib/TooltipButton/index.js +2 -13
- package/lib/Typography/Typography.js +164 -87
- package/lib/Typography/index.js +2 -13
- package/lib/Validator/Validator.js +222 -0
- package/lib/Validator/index.js +2 -0
- package/lib/ViewportProvider/ViewportProvider.js +11 -31
- package/lib/ViewportProvider/index.js +3 -28
- package/lib/ViewportProvider/useViewport.js +3 -15
- package/lib/ViewportProvider/useViewportListener.js +13 -29
- package/lib/index.js +71 -681
- package/lib/server.js +4 -0
- package/lib/utils/BaseView/BaseView.js +14 -36
- package/lib/utils/BaseView/BaseView.native.js +2 -13
- package/lib/utils/BaseView/index.js +2 -13
- package/lib/utils/a11y/index.js +2 -31
- package/lib/utils/a11y/semantics.js +18 -60
- package/lib/utils/a11y/textSize.js +8 -24
- package/lib/utils/animation/index.js +2 -15
- package/lib/utils/animation/useVerticalExpandAnimation.js +27 -47
- package/lib/utils/children.js +25 -47
- package/lib/utils/containUniqueFields.js +3 -13
- package/lib/utils/convertFromMegaByteToByte.js +10 -0
- package/lib/utils/floating-ui/index.js +1 -43
- package/lib/utils/floating-ui/index.native.js +1 -43
- package/lib/utils/formatImageSource.js +27 -0
- package/lib/utils/hasOwnProperty.js +1 -8
- package/lib/utils/htmlAttrs.js +23 -0
- package/lib/utils/index.js +25 -222
- package/lib/utils/info/index.js +6 -17
- package/lib/utils/info/platform/index.js +8 -17
- package/lib/utils/info/platform/platform.android.js +1 -8
- package/lib/utils/info/platform/platform.ios.js +1 -8
- package/lib/utils/info/platform/platform.js +1 -8
- package/lib/utils/info/platform/platform.native.js +1 -8
- package/lib/utils/info/versions.js +4 -14
- package/lib/utils/input.js +38 -52
- package/lib/utils/pressability.js +18 -40
- package/lib/utils/props/a11yProps.js +105 -119
- package/lib/utils/props/clickProps.js +4 -16
- package/lib/utils/props/componentPropType.js +4 -24
- package/lib/utils/props/copyPropTypes.js +2 -14
- package/lib/utils/props/getPropSelector.js +15 -21
- package/lib/utils/props/handlerProps.js +28 -52
- package/lib/utils/props/hrefAttrsProp.js +6 -17
- package/lib/utils/props/index.js +19 -190
- package/lib/utils/props/inputSupportsProps.js +22 -27
- package/lib/utils/props/linkProps.js +17 -35
- package/lib/utils/props/paddingProp.js +8 -19
- package/lib/utils/props/pressProps.js +23 -38
- package/lib/utils/props/rectProp.js +8 -19
- package/lib/utils/props/responsiveProps.js +6 -18
- package/lib/utils/props/selectSystemProps.js +7 -15
- package/lib/utils/props/spacingProps.js +13 -27
- package/lib/utils/props/textInputProps.js +64 -90
- package/lib/utils/props/textProps.js +23 -34
- package/lib/utils/props/tokens.js +26 -55
- package/lib/utils/props/variantProp.js +4 -14
- package/lib/utils/props/viewProps.js +10 -23
- package/lib/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +48 -0
- package/lib/utils/ssr-media-query/create-stylesheet/index.android.js +2 -0
- package/lib/utils/ssr-media-query/create-stylesheet/index.ios.js +2 -0
- package/lib/utils/ssr-media-query/create-stylesheet/index.js +36 -0
- package/lib/utils/ssr-media-query/hash.js +13 -0
- package/lib/utils/ssr-media-query/index.js +6 -0
- package/lib/utils/ssr-media-query/utils/common.js +33 -0
- package/lib/utils/ssr-media-query/utils/create-declaration-block.js +16 -0
- package/lib/utils/ssr-media-query/utils/create-media-query-styles.js +60 -0
- package/lib/utils/ssr-media-query/utils/hyphenate-style-name.js +12 -0
- package/lib/utils/ssr-media-query/utils/inject.js +39 -0
- package/lib/utils/ssr.js +27 -55
- package/lib/utils/transformGradient.js +15 -0
- package/lib/utils/useCopy.js +4 -15
- package/lib/utils/useHash.js +11 -23
- package/lib/utils/useHash.native.js +1 -10
- package/lib/utils/useOverlaidPosition.js +214 -0
- package/lib/utils/useResponsiveProp.js +13 -29
- package/lib/utils/useSafeLayoutEffect.js +10 -22
- package/lib/utils/useScrollBlocking.js +13 -28
- package/lib/utils/useScrollBlocking.native.js +1 -10
- package/lib/utils/useSpacingScale.js +12 -24
- package/lib/utils/useUniqueId.js +4 -15
- package/lib/utils/withLinkRouter.js +23 -36
- package/package.json +32 -22
- package/src/A11yInfoProvider/index.jsx +13 -20
- package/src/A11yText/index.jsx +14 -4
- package/src/ActionCard/ActionCard.jsx +306 -0
- package/src/ActionCard/index.js +3 -0
- package/src/ActivityIndicator/Spinner.jsx +3 -2
- package/src/ActivityIndicator/Spinner.native.jsx +2 -2
- package/src/ActivityIndicator/index.jsx +12 -3
- package/src/Autocomplete/Autocomplete.jsx +486 -0
- package/src/Autocomplete/Loading.jsx +21 -0
- package/src/Autocomplete/Suggestions.jsx +54 -0
- package/src/Autocomplete/constants.js +4 -0
- package/src/Autocomplete/dictionary.js +12 -0
- package/src/Autocomplete/index.js +3 -0
- package/src/Badge/Badge.jsx +76 -0
- package/src/Badge/index.js +3 -0
- package/src/BaseProvider/HydrationContext.jsx +5 -5
- package/src/BaseProvider/index.jsx +5 -2
- package/src/Box/Box.jsx +162 -20
- package/src/Box/backgroundImageStylesMap.js +21 -0
- package/src/Button/Button.jsx +12 -7
- package/src/Button/ButtonBase.jsx +76 -35
- package/src/Button/ButtonDropdown.jsx +5 -2
- package/src/Button/ButtonGroup.jsx +20 -3
- package/src/Button/ButtonLink.jsx +10 -4
- package/src/Card/Card.jsx +269 -17
- package/src/Card/CardBase.jsx +79 -28
- package/src/Card/PressableCardBase.jsx +21 -5
- package/src/CardGroup/CardGroup.jsx +249 -0
- package/src/CardGroup/dictionary.js +8 -0
- package/src/CardGroup/index.js +3 -0
- package/src/Carousel/Carousel.jsx +406 -117
- package/src/Carousel/CarouselFirstFocus/CarouselFirstFocus.jsx +2 -2
- package/src/Carousel/CarouselItem/CarouselItem.jsx +99 -18
- package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +15 -5
- package/src/Carousel/CarouselTabs/CarouselTabs.jsx +2 -2
- package/src/Carousel/CarouselTabs/CarouselTabsPanel.jsx +22 -12
- package/src/Carousel/CarouselTabs/CarouselTabsPanelItem.jsx +3 -3
- package/src/Carousel/CarouselThumbnail.jsx +45 -27
- package/src/Carousel/CarouselThumbnailNavigation.jsx +11 -7
- package/src/Carousel/dictionary.js +11 -7
- package/src/Checkbox/Checkbox.jsx +8 -4
- package/src/Checkbox/CheckboxButton.jsx +178 -0
- package/src/Checkbox/CheckboxGroup.jsx +24 -4
- package/src/Checkbox/CheckboxInput.jsx +15 -12
- package/src/CheckboxCard/CheckboxCard.jsx +190 -0
- package/src/CheckboxCard/index.js +3 -0
- package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +231 -0
- package/src/CheckboxCardGroup/index.js +3 -0
- package/src/ColourToggle/ColourBubble.jsx +112 -0
- package/src/ColourToggle/ColourToggle.jsx +83 -0
- package/src/ColourToggle/index.js +3 -0
- package/src/Divider/Divider.jsx +5 -2
- package/src/DownloadApp/DownloadApp.jsx +165 -0
- package/src/DownloadApp/dictionary.js +10 -0
- package/src/DownloadApp/index.js +3 -0
- package/src/ExpandCollapse/Accordion.jsx +4 -2
- package/src/ExpandCollapse/Control.jsx +44 -14
- package/src/ExpandCollapse/ExpandCollapse.jsx +15 -7
- package/src/ExpandCollapse/Panel.jsx +119 -24
- package/src/ExpandCollapse/dictionary.js +10 -0
- package/src/Feedback/Feedback.jsx +3 -4
- package/src/Fieldset/Fieldset.jsx +47 -23
- package/src/Fieldset/FieldsetContainer.jsx +15 -7
- package/src/Fieldset/FieldsetContainer.native.jsx +15 -7
- package/src/Fieldset/Legend.jsx +2 -2
- package/src/Fieldset/Legend.native.jsx +2 -2
- package/src/FileUpload/FileUpload.jsx +396 -0
- package/src/FileUpload/NotificationContent.jsx +44 -0
- package/src/FileUpload/dictionary.js +40 -0
- package/src/FileUpload/index.js +3 -0
- package/src/FlexGrid/Col/Col.jsx +76 -79
- package/src/FlexGrid/FlexGrid.jsx +62 -43
- package/src/FlexGrid/Row/Row.jsx +60 -54
- package/src/Footnote/Footnote.jsx +326 -0
- package/src/Footnote/FootnoteLink.jsx +110 -0
- package/src/Footnote/dictionary.js +12 -0
- package/src/Footnote/index.js +6 -0
- package/src/HorizontalScroll/HorizontalScroll.jsx +8 -8
- package/src/HorizontalScroll/HorizontalScrollButton.jsx +2 -2
- package/src/HorizontalScroll/ScrollViewEnd.jsx +4 -8
- package/src/HorizontalScroll/ScrollViewEnd.native.jsx +2 -2
- package/src/Icon/Icon.jsx +53 -6
- package/src/Icon/IconText.jsx +46 -14
- package/src/IconButton/IconButton.jsx +116 -20
- package/src/InputLabel/InputLabel.jsx +8 -6
- package/src/InputLabel/LabelContent.jsx +2 -2
- package/src/InputLabel/LabelContent.native.jsx +2 -2
- package/src/InputSupports/InputSupports.jsx +22 -3
- package/src/Link/ChevronLink.jsx +24 -7
- package/src/Link/InlinePressable.jsx +23 -15
- package/src/Link/InlinePressable.native.jsx +12 -6
- package/src/Link/Link.jsx +2 -2
- package/src/Link/LinkBase.jsx +75 -31
- package/src/Link/TextButton.jsx +11 -4
- package/src/List/List.jsx +26 -8
- package/src/List/ListItem.jsx +3 -5
- package/src/List/ListItemBase.jsx +38 -9
- package/src/List/ListItemContent.jsx +24 -6
- package/src/List/ListItemMark.jsx +14 -13
- package/src/List/PressableListItemBase.jsx +4 -2
- package/src/Listbox/GroupControl.jsx +101 -0
- package/src/Listbox/Listbox.jsx +177 -0
- package/src/Listbox/ListboxContext.js +6 -0
- package/src/Listbox/ListboxGroup.jsx +127 -0
- package/src/Listbox/ListboxItem.jsx +87 -0
- package/src/Listbox/ListboxOverlay.jsx +81 -0
- package/src/Listbox/PressableItem.jsx +138 -0
- package/src/Listbox/index.js +3 -0
- package/src/Modal/Modal.jsx +190 -16
- package/src/Modal/ModalContent.jsx +180 -0
- package/src/Modal/WebModal.jsx +70 -0
- package/src/MultiSelectFilter/ModalOverlay.jsx +103 -30
- package/src/MultiSelectFilter/MultiSelectFilter.jsx +326 -68
- package/src/Notification/Notification.jsx +273 -49
- package/src/OrderedList/Item.jsx +147 -0
- package/src/OrderedList/ItemBase.jsx +43 -0
- package/src/OrderedList/OrderedList.jsx +64 -0
- package/src/OrderedList/OrderedListBase.jsx +33 -0
- package/src/OrderedList/index.js +3 -0
- package/src/Pagination/PageButton.jsx +14 -5
- package/src/Pagination/Pagination.jsx +83 -17
- package/src/Pagination/SideButton.jsx +2 -2
- package/src/Pagination/constants.js +3 -0
- package/src/Pagination/dictionary.js +3 -3
- package/src/Pagination/usePagination.js +14 -3
- package/src/Portal/Portal.jsx +52 -0
- package/src/Portal/Portal.native.jsx +3 -0
- package/src/Portal/index.js +3 -0
- package/src/PriceLockup/PriceLockup.jsx +237 -0
- package/src/PriceLockup/index.js +3 -0
- package/src/PriceLockup/utils/renderFootnoteContent.jsx +77 -0
- package/src/PriceLockup/utils/renderFootnoteLinks.jsx +38 -0
- package/src/PriceLockup/utils/renderPrice.jsx +201 -0
- package/src/PriceLockup/utils/renderTypography.jsx +13 -0
- package/src/ProductCard/ProductCard.jsx +199 -0
- package/src/ProductCard/dictionary.js +38 -0
- package/src/ProductCard/index.js +3 -0
- package/src/ProductCardGroup/ProductCardGroup.jsx +75 -0
- package/src/ProductCardGroup/index.js +3 -0
- package/src/Progress/Progress.jsx +8 -5
- package/src/Progress/ProgressBar.jsx +6 -4
- package/src/Progress/ProgressBarBackground.jsx +6 -4
- package/src/QuickLinks/QuickLinks.jsx +11 -2
- package/src/QuickLinks/QuickLinksCard.jsx +9 -3
- package/src/QuickLinks/QuickLinksItem.jsx +2 -2
- package/src/QuickLinksFeature/QuickLinksFeature.jsx +31 -27
- package/src/QuickLinksFeature/QuickLinksFeatureItem.jsx +43 -36
- package/src/Radio/Radio.jsx +24 -6
- package/src/Radio/RadioButton.jsx +58 -6
- package/src/Radio/RadioGroup.jsx +27 -5
- package/src/Radio/RadioInput.jsx +15 -14
- package/src/RadioCard/RadioCard.jsx +2 -2
- package/src/RadioCard/RadioCardGroup.jsx +25 -4
- package/src/Responsive/Responsive.jsx +43 -13
- package/src/Responsive/ResponsiveProp.jsx +33 -0
- package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +67 -0
- package/src/Search/Search.jsx +10 -5
- package/src/Select/Group.jsx +12 -3
- package/src/Select/Group.native.jsx +3 -0
- package/src/Select/Item.jsx +10 -1
- package/src/Select/Picker.jsx +32 -5
- package/src/Select/Picker.native.jsx +3 -3
- package/src/Select/Select.jsx +27 -10
- package/src/SideNav/Item.jsx +12 -7
- package/src/SideNav/ItemContent.jsx +14 -6
- package/src/SideNav/ItemsGroup.jsx +15 -4
- package/src/SideNav/SideNav.jsx +11 -3
- package/src/Skeleton/Skeleton.jsx +19 -7
- package/src/Skeleton/skeleton.constant.js +0 -1
- package/src/Skeleton/skeletonWebAnimation.js +11 -11
- package/src/Skeleton/useSkeletonNativeAnimation.js +5 -4
- package/src/SkipLink/SkipLink.jsx +14 -14
- package/src/Spacer/Spacer.jsx +2 -2
- package/src/StackView/StackView.jsx +5 -4
- package/src/StackView/StackWrap.jsx +3 -3
- package/src/StackView/StackWrapBox.jsx +2 -2
- package/src/StackView/StackWrapGap.jsx +2 -2
- package/src/StackView/getStackedContent.jsx +16 -7
- package/src/Status/Status.jsx +153 -0
- package/src/Status/index.js +3 -0
- package/src/StepTracker/Step.jsx +102 -70
- package/src/StepTracker/StepTracker.jsx +28 -6
- package/src/StepTracker/dictionary.js +24 -4
- package/src/TabBar/TabBar.jsx +123 -0
- package/src/TabBar/TabBarItem.jsx +149 -0
- package/src/TabBar/index.js +3 -0
- package/src/Tabs/Tabs.jsx +37 -5
- package/src/Tabs/TabsItem.jsx +19 -7
- package/src/Tags/Tags.jsx +7 -3
- package/src/TextInput/TextArea.jsx +3 -3
- package/src/TextInput/TextInput.jsx +11 -7
- package/src/TextInput/TextInputBase.jsx +145 -29
- package/src/TextInput/dictionary.js +6 -2
- package/src/TextInput/propTypes.js +4 -0
- package/src/ThemeProvider/ThemeProvider.jsx +17 -7
- package/src/ThemeProvider/index.js +1 -0
- package/src/ThemeProvider/useResponsiveThemeTokens.js +85 -0
- package/src/ThemeProvider/utils/styles.js +34 -2
- package/src/Timeline/Timeline.jsx +10 -6
- package/src/ToggleSwitch/ToggleSwitch.jsx +28 -11
- package/src/ToggleSwitch/ToggleSwitchGroup.jsx +2 -2
- package/src/Tooltip/Tooltip.jsx +38 -9
- package/src/Tooltip/Tooltip.native.jsx +82 -20
- package/src/Tooltip/getTooltipPosition.js +12 -13
- package/src/Tooltip/shared.js +17 -0
- package/src/TooltipButton/TooltipButton.jsx +34 -8
- package/src/Typography/Typography.jsx +173 -29
- package/src/Validator/Validator.jsx +230 -0
- package/src/Validator/index.js +3 -0
- package/src/ViewportProvider/ViewportProvider.jsx +2 -2
- package/src/index.js +31 -12
- package/src/server.js +4 -0
- package/src/utils/BaseView/BaseView.jsx +2 -2
- package/src/utils/a11y/semantics.js +7 -14
- package/src/utils/animation/useVerticalExpandAnimation.js +3 -3
- package/src/utils/children.jsx +4 -4
- package/src/utils/convertFromMegaByteToByte.js +11 -0
- package/src/utils/formatImageSource.js +29 -0
- package/src/utils/htmlAttrs.js +29 -0
- package/src/utils/index.js +6 -1
- package/src/utils/props/handlerProps.js +5 -1
- package/src/utils/props/inputSupportsProps.js +21 -1
- package/src/utils/props/textInputProps.js +1 -0
- package/src/utils/props/tokens.js +4 -2
- package/src/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +41 -0
- package/src/utils/ssr-media-query/create-stylesheet/index.android.js +3 -0
- package/src/utils/ssr-media-query/create-stylesheet/index.ios.js +3 -0
- package/src/utils/ssr-media-query/create-stylesheet/index.js +35 -0
- package/src/utils/ssr-media-query/hash.js +16 -0
- package/src/utils/ssr-media-query/index.js +8 -0
- package/src/utils/ssr-media-query/utils/common.js +38 -0
- package/src/utils/ssr-media-query/utils/create-declaration-block.js +21 -0
- package/src/utils/ssr-media-query/utils/create-media-query-styles.js +46 -0
- package/src/utils/ssr-media-query/utils/hyphenate-style-name.js +15 -0
- package/src/utils/ssr-media-query/utils/inject.js +43 -0
- package/src/utils/ssr.jsx +3 -1
- package/src/utils/transformGradient.js +17 -0
- package/src/utils/useOverlaidPosition.js +224 -0
- package/src/utils/withLinkRouter.jsx +3 -3
- package/types/Badge.d.ts +28 -0
- package/types/Box.d.ts +52 -0
- package/types/Checkbox.d.ts +47 -0
- package/types/CheckboxCardGroup.d.ts +72 -0
- package/types/ChevronLink.d.ts +47 -0
- package/types/Common.d.ts +106 -0
- package/types/Divider.d.ts +19 -0
- package/types/ExpandCollapse.d.ts +65 -0
- package/types/FileUpload.d.ts +40 -0
- package/types/HorizontalScrollButton.d.ts +16 -0
- package/types/Icon.d.ts +21 -0
- package/types/Link.d.ts +48 -0
- package/types/List.d.ts +48 -0
- package/types/Portal.d.ts +5 -0
- package/types/Search.d.ts +38 -0
- package/types/Select.d.ts +57 -0
- package/types/Spacer.d.ts +5 -0
- package/types/StackView.d.ts +28 -0
- package/types/Tabs.d.ts +46 -0
- package/types/TextButton.d.ts +11 -0
- package/types/ToggleSwitch.d.ts +54 -0
- package/types/ToolTip.d.ts +40 -0
- package/types/Typography.d.ts +40 -0
- package/types/index.d.ts +78 -0
- package/.eslintrc.js +0 -9
- package/__tests17__/A11yText/A11yText.test.jsx +0 -34
- package/__tests17__/ActivityIndicator/ActivityIndicator.test.jsx +0 -68
- package/__tests17__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +0 -299
- package/__tests17__/Box/Box.test.jsx +0 -111
- package/__tests17__/Button/Button.test.jsx +0 -86
- package/__tests17__/Button/ButtonBase.test.jsx +0 -82
- package/__tests17__/Button/ButtonGroup.test.jsx +0 -347
- package/__tests17__/Button/ButtonLink.test.jsx +0 -61
- package/__tests17__/Card/Card.test.jsx +0 -63
- package/__tests17__/Carousel/Carousel.test.jsx +0 -128
- package/__tests17__/Carousel/CarouselTabs.test.jsx +0 -142
- package/__tests17__/Checkbox/Checkbox.test.jsx +0 -94
- package/__tests17__/Checkbox/CheckboxGroup.test.jsx +0 -246
- package/__tests17__/Divider/Divider.test.jsx +0 -91
- package/__tests17__/ExpandCollapse/ExpandCollapse.test.jsx +0 -109
- package/__tests17__/Feedback/Feedback.test.jsx +0 -42
- package/__tests17__/FlexGrid/Col.test.jsx +0 -261
- package/__tests17__/FlexGrid/FlexGrid.test.jsx +0 -136
- package/__tests17__/FlexGrid/Row.test.jsx +0 -273
- package/__tests17__/HorizontalScroll/HorizontalScroll.test.jsx +0 -165
- package/__tests17__/Icon/Icon.test.jsx +0 -61
- package/__tests17__/IconButton/IconButton.test.jsx +0 -52
- package/__tests17__/InputLabel/InputLabel.test.jsx +0 -28
- package/__tests17__/InputLabel/__snapshots__/InputLabel.test.jsx.snap +0 -3
- package/__tests17__/InputSupports/InputSupports.test.jsx +0 -60
- package/__tests17__/Link/Link.test.jsx +0 -63
- package/__tests17__/Link/TextButton.test.jsx +0 -35
- package/__tests17__/List/List.test.jsx +0 -82
- package/__tests17__/Modal/Modal.test.jsx +0 -47
- package/__tests17__/Notification/Notification.test.jsx +0 -20
- package/__tests17__/Pagination/Pagination.test.jsx +0 -160
- package/__tests17__/Progress/Progress.test.jsx +0 -79
- package/__tests17__/Radio/Radio.test.jsx +0 -87
- package/__tests17__/Radio/RadioGroup.test.jsx +0 -220
- package/__tests17__/RadioCard/RadioCard.test.jsx +0 -87
- package/__tests17__/RadioCard/RadioCardGroup.test.jsx +0 -246
- package/__tests17__/Search/Search.test.jsx +0 -87
- package/__tests17__/Select/Select.test.jsx +0 -94
- package/__tests17__/SideNav/SideNav.test.jsx +0 -110
- package/__tests17__/Skeleton/Skeleton.test.jsx +0 -61
- package/__tests17__/SkipLink/SkipLink.test.jsx +0 -61
- package/__tests17__/Spacer/Spacer.test.jsx +0 -63
- package/__tests17__/StackView/StackView.test.jsx +0 -211
- package/__tests17__/StackView/StackWrap.test.jsx +0 -47
- package/__tests17__/StackView/getStackedContent.test.jsx +0 -295
- package/__tests17__/StepTracker/StepTracker.test.jsx +0 -108
- package/__tests17__/Tabs/Tabs.test.jsx +0 -49
- package/__tests17__/Tags/Tags.test.jsx +0 -327
- package/__tests17__/TextInput/TextArea.test.jsx +0 -35
- package/__tests17__/TextInput/TextInputBase.test.jsx +0 -125
- package/__tests17__/ThemeProvider/ThemeProvider.test.jsx +0 -82
- package/__tests17__/ThemeProvider/useThemeTokens.test.jsx +0 -514
- package/__tests17__/ThemeProvider/utils/theme-tokens.test.js +0 -41
- package/__tests17__/ToggleSwitch/ToggleSwitch.test.jsx +0 -82
- package/__tests17__/ToggleSwitch/ToggleSwitchGroup.test.jsx +0 -192
- package/__tests17__/Tooltip/Tooltip.test.jsx +0 -65
- package/__tests17__/Tooltip/getTooltipPosition.test.js +0 -79
- package/__tests17__/Typography/typography.test.jsx +0 -90
- package/__tests17__/utils/children.test.jsx +0 -128
- package/__tests17__/utils/containUniqueFields.test.js +0 -25
- package/__tests17__/utils/input.test.js +0 -375
- package/__tests17__/utils/props.test.js +0 -36
- package/__tests17__/utils/semantics.test.jsx +0 -34
- package/__tests17__/utils/useCopy.test.js +0 -42
- package/__tests17__/utils/useResponsiveProp.test.jsx +0 -202
- package/__tests17__/utils/useSpacingScale.test.jsx +0 -273
- package/__tests17__/utils/useUniqueId.test.js +0 -31
- package/component-docs.json +0 -13646
- package/lib-module/A11yInfoProvider/index.js +0 -73
- package/lib-module/A11yText/index.js +0 -56
- package/lib-module/ActivityIndicator/Spinner.js +0 -79
- package/lib-module/ActivityIndicator/Spinner.native.js +0 -146
- package/lib-module/ActivityIndicator/index.js +0 -48
- package/lib-module/ActivityIndicator/shared.js +0 -13
- package/lib-module/BaseProvider/HydrationContext.js +0 -51
- package/lib-module/BaseProvider/index.js +0 -41
- package/lib-module/Box/Box.js +0 -259
- package/lib-module/Box/index.js +0 -2
- package/lib-module/Button/Button.js +0 -26
- package/lib-module/Button/ButtonBase.js +0 -309
- package/lib-module/Button/ButtonDropdown.js +0 -181
- package/lib-module/Button/ButtonGroup.js +0 -264
- package/lib-module/Button/ButtonLink.js +0 -40
- package/lib-module/Button/index.js +0 -5
- package/lib-module/Button/propTypes.js +0 -53
- package/lib-module/Card/Card.js +0 -85
- package/lib-module/Card/CardBase.js +0 -66
- package/lib-module/Card/PressableCardBase.js +0 -114
- package/lib-module/Card/index.js +0 -4
- package/lib-module/Carousel/Carousel.js +0 -690
- package/lib-module/Carousel/CarouselContext.js +0 -56
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +0 -51
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +0 -81
- package/lib-module/Carousel/CarouselItem/index.js +0 -2
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -50
- package/lib-module/Carousel/CarouselStepTracker/index.js +0 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +0 -51
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +0 -84
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +0 -126
- package/lib-module/Carousel/CarouselTabs/index.js +0 -2
- package/lib-module/Carousel/CarouselThumbnail.js +0 -85
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -66
- package/lib-module/Carousel/dictionary.js +0 -18
- package/lib-module/Carousel/index.js +0 -3
- package/lib-module/Checkbox/Checkbox.js +0 -355
- package/lib-module/Checkbox/CheckboxGroup.js +0 -242
- package/lib-module/Checkbox/CheckboxInput.js +0 -60
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
- package/lib-module/Checkbox/index.js +0 -3
- package/lib-module/Divider/Divider.js +0 -127
- package/lib-module/Divider/index.js +0 -2
- package/lib-module/ExpandCollapse/Accordion.js +0 -15
- package/lib-module/ExpandCollapse/Control.js +0 -139
- package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -95
- package/lib-module/ExpandCollapse/Panel.js +0 -160
- package/lib-module/ExpandCollapse/index.js +0 -7
- package/lib-module/Feedback/Feedback.js +0 -165
- package/lib-module/Feedback/index.js +0 -2
- package/lib-module/Fieldset/Fieldset.js +0 -182
- package/lib-module/Fieldset/FieldsetContainer.js +0 -38
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -23
- package/lib-module/Fieldset/Legend.js +0 -24
- package/lib-module/Fieldset/Legend.native.js +0 -31
- package/lib-module/Fieldset/cssReset.js +0 -14
- package/lib-module/Fieldset/index.js +0 -2
- package/lib-module/FlexGrid/Col/Col.js +0 -275
- package/lib-module/FlexGrid/Col/index.js +0 -2
- package/lib-module/FlexGrid/FlexGrid.js +0 -149
- package/lib-module/FlexGrid/Row/Row.js +0 -184
- package/lib-module/FlexGrid/Row/index.js +0 -2
- package/lib-module/FlexGrid/helpers/index.js +0 -18
- package/lib-module/FlexGrid/index.js +0 -2
- package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
- package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -175
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -81
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -48
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -27
- package/lib-module/HorizontalScroll/dictionary.js +0 -11
- package/lib-module/HorizontalScroll/index.js +0 -11
- package/lib-module/HorizontalScroll/itemPositions.js +0 -112
- package/lib-module/Icon/Icon.js +0 -62
- package/lib-module/Icon/IconText.js +0 -88
- package/lib-module/Icon/index.js +0 -4
- package/lib-module/IconButton/IconButton.js +0 -132
- package/lib-module/IconButton/index.js +0 -2
- package/lib-module/InputLabel/InputLabel.js +0 -154
- package/lib-module/InputLabel/LabelContent.js +0 -27
- package/lib-module/InputLabel/LabelContent.native.js +0 -19
- package/lib-module/InputLabel/index.js +0 -2
- package/lib-module/InputSupports/InputSupports.js +0 -103
- package/lib-module/InputSupports/index.js +0 -2
- package/lib-module/InputSupports/useInputSupports.js +0 -33
- package/lib-module/Link/ChevronLink.js +0 -52
- package/lib-module/Link/InlinePressable.js +0 -44
- package/lib-module/Link/InlinePressable.native.js +0 -89
- package/lib-module/Link/Link.js +0 -28
- package/lib-module/Link/LinkBase.js +0 -244
- package/lib-module/Link/TextButton.js +0 -35
- package/lib-module/Link/index.js +0 -5
- package/lib-module/List/List.js +0 -66
- package/lib-module/List/ListItem.js +0 -38
- package/lib-module/List/ListItemBase.js +0 -139
- package/lib-module/List/ListItemContent.js +0 -66
- package/lib-module/List/ListItemMark.js +0 -143
- package/lib-module/List/PressableListItemBase.js +0 -114
- package/lib-module/List/index.js +0 -5
- package/lib-module/Modal/Modal.js +0 -225
- package/lib-module/Modal/dictionary.js +0 -9
- package/lib-module/Modal/index.js +0 -2
- package/lib-module/MultiSelectFilter/ModalOverlay.js +0 -112
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +0 -286
- package/lib-module/MultiSelectFilter/dictionary.js +0 -12
- package/lib-module/MultiSelectFilter/index.js +0 -2
- package/lib-module/Notification/Notification.js +0 -230
- package/lib-module/Notification/dictionary.js +0 -8
- package/lib-module/Notification/index.js +0 -2
- package/lib-module/Pagination/PageButton.js +0 -66
- package/lib-module/Pagination/Pagination.js +0 -159
- package/lib-module/Pagination/SideButton.js +0 -118
- package/lib-module/Pagination/dictionary.js +0 -18
- package/lib-module/Pagination/index.js +0 -2
- package/lib-module/Pagination/usePagination.js +0 -73
- package/lib-module/Progress/Progress.js +0 -89
- package/lib-module/Progress/ProgressBar.js +0 -138
- package/lib-module/Progress/ProgressBarBackground.js +0 -42
- package/lib-module/Progress/index.js +0 -4
- package/lib-module/QuickLinks/QuickLinks.js +0 -71
- package/lib-module/QuickLinks/QuickLinksCard.js +0 -33
- package/lib-module/QuickLinks/QuickLinksItem.js +0 -50
- package/lib-module/QuickLinks/index.js +0 -4
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +0 -69
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +0 -130
- package/lib-module/QuickLinksFeature/index.js +0 -4
- package/lib-module/Radio/Radio.js +0 -288
- package/lib-module/Radio/RadioButton.js +0 -138
- package/lib-module/Radio/RadioGroup.js +0 -255
- package/lib-module/Radio/RadioInput.js +0 -62
- package/lib-module/Radio/RadioInput.native.js +0 -6
- package/lib-module/Radio/index.js +0 -3
- package/lib-module/RadioCard/RadioCardGroup.js +0 -259
- package/lib-module/RadioCard/index.js +0 -3
- package/lib-module/Responsive/index.js +0 -2
- package/lib-module/Search/Search.js +0 -241
- package/lib-module/Search/dictionary.js +0 -12
- package/lib-module/Search/index.js +0 -2
- package/lib-module/Select/Group.js +0 -21
- package/lib-module/Select/Group.native.js +0 -15
- package/lib-module/Select/Item.js +0 -20
- package/lib-module/Select/Item.native.js +0 -3
- package/lib-module/Select/Picker.js +0 -68
- package/lib-module/Select/Picker.native.js +0 -122
- package/lib-module/Select/Select.js +0 -347
- package/lib-module/Select/constants.js +0 -5
- package/lib-module/Select/index.js +0 -6
- package/lib-module/SideNav/Item.js +0 -145
- package/lib-module/SideNav/ItemContent.js +0 -48
- package/lib-module/SideNav/ItemsGroup.js +0 -117
- package/lib-module/SideNav/SideNav.js +0 -136
- package/lib-module/SideNav/index.js +0 -1
- package/lib-module/Skeleton/Skeleton.js +0 -182
- package/lib-module/Skeleton/index.js +0 -2
- package/lib-module/Skeleton/skeleton.constant.js +0 -3
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -25
- package/lib-module/SkipLink/SkipLink.js +0 -188
- package/lib-module/SkipLink/index.js +0 -2
- package/lib-module/Spacer/Spacer.js +0 -98
- package/lib-module/Spacer/index.js +0 -2
- package/lib-module/StackView/StackView.js +0 -127
- package/lib-module/StackView/StackWrap.js +0 -53
- package/lib-module/StackView/StackWrap.native.js +0 -3
- package/lib-module/StackView/StackWrapBox.js +0 -117
- package/lib-module/StackView/StackWrapGap.js +0 -61
- package/lib-module/StackView/common.js +0 -35
- package/lib-module/StackView/getStackedContent.js +0 -124
- package/lib-module/StackView/index.js +0 -5
- package/lib-module/StepTracker/Step.js +0 -253
- package/lib-module/StepTracker/StepTracker.js +0 -191
- package/lib-module/StepTracker/dictionary.js +0 -10
- package/lib-module/StepTracker/index.js +0 -2
- package/lib-module/Tabs/Tabs.js +0 -152
- package/lib-module/Tabs/TabsItem.js +0 -228
- package/lib-module/Tabs/index.js +0 -2
- package/lib-module/Tags/Tags.js +0 -257
- package/lib-module/Tags/index.js +0 -2
- package/lib-module/TextInput/TextArea.js +0 -94
- package/lib-module/TextInput/TextInput.js +0 -73
- package/lib-module/TextInput/TextInputBase.js +0 -333
- package/lib-module/TextInput/dictionary.js +0 -8
- package/lib-module/TextInput/index.js +0 -3
- package/lib-module/TextInput/propTypes.js +0 -33
- package/lib-module/ThemeProvider/ThemeProvider.js +0 -74
- package/lib-module/ThemeProvider/index.js +0 -6
- package/lib-module/ThemeProvider/useSetTheme.js +0 -25
- package/lib-module/ThemeProvider/useTheme.js +0 -14
- package/lib-module/ThemeProvider/useThemeTokens.js +0 -110
- package/lib-module/ThemeProvider/utils/index.js +0 -2
- package/lib-module/ThemeProvider/utils/styles.js +0 -188
- package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -163
- package/lib-module/Timeline/Timeline.js +0 -174
- package/lib-module/Timeline/index.js +0 -2
- package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -255
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -227
- package/lib-module/ToggleSwitch/index.js +0 -3
- package/lib-module/Tooltip/Backdrop.js +0 -45
- package/lib-module/Tooltip/Backdrop.native.js +0 -44
- package/lib-module/Tooltip/Tooltip.js +0 -278
- package/lib-module/Tooltip/Tooltip.native.js +0 -326
- package/lib-module/Tooltip/dictionary.js +0 -8
- package/lib-module/Tooltip/getTooltipPosition.js +0 -175
- package/lib-module/Tooltip/index.js +0 -5
- package/lib-module/Tooltip/shared.js +0 -27
- package/lib-module/TooltipButton/TooltipButton.js +0 -78
- package/lib-module/TooltipButton/index.js +0 -2
- package/lib-module/Typography/Typography.js +0 -154
- package/lib-module/Typography/index.js +0 -2
- package/lib-module/ViewportProvider/ViewportProvider.js +0 -29
- package/lib-module/ViewportProvider/index.js +0 -3
- package/lib-module/ViewportProvider/useViewport.js +0 -3
- package/lib-module/ViewportProvider/useViewportListener.js +0 -39
- package/lib-module/index.js +0 -58
- package/lib-module/utils/BaseView/BaseView.js +0 -43
- package/lib-module/utils/BaseView/BaseView.native.js +0 -6
- package/lib-module/utils/BaseView/index.js +0 -2
- package/lib-module/utils/a11y/index.js +0 -2
- package/lib-module/utils/a11y/semantics.js +0 -157
- package/lib-module/utils/a11y/textSize.js +0 -36
- package/lib-module/utils/animation/index.js +0 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -89
- package/lib-module/utils/children.js +0 -119
- package/lib-module/utils/containUniqueFields.js +0 -26
- package/lib-module/utils/floating-ui/index.js +0 -1
- package/lib-module/utils/floating-ui/index.native.js +0 -1
- package/lib-module/utils/hasOwnProperty.js +0 -11
- package/lib-module/utils/index.js +0 -19
- package/lib-module/utils/info/index.js +0 -7
- package/lib-module/utils/info/platform/index.js +0 -11
- package/lib-module/utils/info/platform/platform.android.js +0 -1
- package/lib-module/utils/info/platform/platform.ios.js +0 -1
- package/lib-module/utils/info/platform/platform.js +0 -1
- package/lib-module/utils/info/platform/platform.native.js +0 -4
- package/lib-module/utils/info/versions.js +0 -5
- package/lib-module/utils/input.js +0 -187
- package/lib-module/utils/pressability.js +0 -111
- package/lib-module/utils/props/a11yProps.js +0 -308
- package/lib-module/utils/props/clickProps.js +0 -26
- package/lib-module/utils/props/componentPropType.js +0 -63
- package/lib-module/utils/props/copyPropTypes.js +0 -2
- package/lib-module/utils/props/getPropSelector.js +0 -48
- package/lib-module/utils/props/handlerProps.js +0 -117
- package/lib-module/utils/props/hrefAttrsProp.js +0 -33
- package/lib-module/utils/props/index.js +0 -19
- package/lib-module/utils/props/inputSupportsProps.js +0 -62
- package/lib-module/utils/props/linkProps.js +0 -44
- package/lib-module/utils/props/paddingProp.js +0 -9
- package/lib-module/utils/props/pressProps.js +0 -42
- package/lib-module/utils/props/rectProp.js +0 -9
- package/lib-module/utils/props/responsiveProps.js +0 -30
- package/lib-module/utils/props/selectSystemProps.js +0 -24
- package/lib-module/utils/props/spacingProps.js +0 -56
- package/lib-module/utils/props/textInputProps.js +0 -201
- package/lib-module/utils/props/textProps.js +0 -59
- package/lib-module/utils/props/tokens.js +0 -133
- package/lib-module/utils/props/variantProp.js +0 -18
- package/lib-module/utils/props/viewProps.js +0 -22
- package/lib-module/utils/ssr.js +0 -144
- package/lib-module/utils/useCopy.js +0 -44
- package/lib-module/utils/useHash.js +0 -45
- package/lib-module/utils/useHash.native.js +0 -7
- package/lib-module/utils/useResponsiveProp.js +0 -46
- package/lib-module/utils/useSafeLayoutEffect.js +0 -30
- package/lib-module/utils/useScrollBlocking.js +0 -58
- package/lib-module/utils/useScrollBlocking.native.js +0 -2
- package/lib-module/utils/useSpacingScale.js +0 -125
- package/lib-module/utils/useUniqueId.js +0 -13
- package/lib-module/utils/withLinkRouter.js +0 -81
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
2
|
-
/**
|
|
3
|
-
* @typedef {import('react-native').AccessibilityRole} AccessibilityRole
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* This is based on the role-to-tag mapping that React Native Web uses to set HTML tags.
|
|
8
|
-
* It's not exported in any way from RNW, so we need to keep this up-to-date manually.
|
|
9
|
-
* https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/modules/AccessibilityUtil/propsToAccessibilityComponent.js
|
|
10
|
-
*
|
|
11
|
-
* Note: every role in this list is a web-only aria-role. There is no overlap between _these_ web tags
|
|
12
|
-
* or roles and native accessibilityRoles. Only h1, h2, h3 etc map to an RN equivalent ("heading").
|
|
13
|
-
*
|
|
14
|
-
* - RN "summary" native role maps to "region" aria-role, but setting `<section>`/"region" does not
|
|
15
|
-
* set React Native's "summary" role, which has a much narrower use case.
|
|
16
|
-
* - `<Header>`/"Banner" also do not map to RN's "heading". Only h1 / h2 etc map to RN "heading".
|
|
17
|
-
*
|
|
18
|
-
* Therefore, all of these tags / roles default to no accessibilityRole in native apps. This is not wrong:
|
|
19
|
-
* in general, RN accessibilityRoles tend to be more about interaction and less about semantics than web roles.
|
|
20
|
-
*
|
|
21
|
-
* RNW's one-way mapping of React Native accessibilityRoles to web aria-roles:
|
|
22
|
-
* https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/modules/AccessibilityUtil/propsToAriaRole.js
|
|
23
|
-
*/
|
|
24
|
-
// Adding `/** @type {const} */ ({...})` denotes object content as `readonly` in many IDEs
|
|
25
|
-
// eslint-disable-next-line prettier/prettier
|
|
26
|
-
|
|
27
|
-
const rolesToTags =
|
|
28
|
-
/** @type {const} */
|
|
29
|
-
{
|
|
30
|
-
article: 'article',
|
|
31
|
-
banner: 'header',
|
|
32
|
-
blockquote: 'blockquote',
|
|
33
|
-
code: 'code',
|
|
34
|
-
complementary: 'aside',
|
|
35
|
-
contentinfo: 'footer',
|
|
36
|
-
deletion: 'del',
|
|
37
|
-
emphasis: 'em',
|
|
38
|
-
figure: 'figure',
|
|
39
|
-
insertion: 'ins',
|
|
40
|
-
form: 'form',
|
|
41
|
-
list: 'ul',
|
|
42
|
-
listitem: 'li',
|
|
43
|
-
main: 'main',
|
|
44
|
-
navigation: 'nav',
|
|
45
|
-
region: 'section',
|
|
46
|
-
strong: 'strong',
|
|
47
|
-
// Add special cases that are in RNW's function logic but not in its mapping object
|
|
48
|
-
label: 'label' // eslint-disable-next-line prettier/prettier
|
|
49
|
-
|
|
50
|
-
}; // Invert React Native Web's mapping, so a tag gets the role that gets that tag
|
|
51
|
-
|
|
52
|
-
export const tagsToRoles = Object.fromEntries(Object.entries(rolesToTags).map(_ref => {
|
|
53
|
-
let [key, value] = _ref;
|
|
54
|
-
return [value, key];
|
|
55
|
-
}));
|
|
56
|
-
/**
|
|
57
|
-
* Heading HTML tags map to the "heading" accessibilityRole in native apps, which is similar
|
|
58
|
-
* to headings on web but without the expectation of a hierarchy of headings within one screen.
|
|
59
|
-
*/
|
|
60
|
-
// eslint-disable-next-line prettier/prettier
|
|
61
|
-
|
|
62
|
-
export const headingTags =
|
|
63
|
-
/** @type {const} */
|
|
64
|
-
['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
|
|
65
|
-
/**
|
|
66
|
-
* @typedef {typeof headingTags[number]} HeadingTag
|
|
67
|
-
*/
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* All HTML tags that may be set via RNW accesibility props alone and therefore may be set using
|
|
71
|
-
* the getA11yPropsFromHtmlTag function without changing other behaviour.
|
|
72
|
-
*
|
|
73
|
-
* Of these, only headers (h1, h2, ...h5, h6) set a corresponding accessibilityRole in native apps ("heading").
|
|
74
|
-
*/
|
|
75
|
-
|
|
76
|
-
export const supportedTags = [...Object.keys(tagsToRoles), ...headingTags];
|
|
77
|
-
/**
|
|
78
|
-
* Uses readonly mapping keys/values to generate static types for IDEs that support TS in JSDoc.
|
|
79
|
-
* @typedef {keyof rolesToTags} RoleWithTag
|
|
80
|
-
* @typedef {typeof rolesToTags[RoleWithTag] | typeof headingTags[number]} SupportedTag
|
|
81
|
-
*/
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Subset of supported HTML tags that may be used with layout containers like Box.
|
|
85
|
-
*
|
|
86
|
-
* Of these, only headers (h1, h2, ...h5, h6) set a corresponding accessibilityRole in native apps ("heading").
|
|
87
|
-
*/
|
|
88
|
-
// eslint-disable-next-line prettier/prettier
|
|
89
|
-
|
|
90
|
-
export const layoutTags =
|
|
91
|
-
/** @type {const} */
|
|
92
|
-
[...headingTags, 'article', 'aside', 'blockquote', 'footer', 'figure', 'form', 'header', 'ul', 'li', 'main', 'nav', 'section', 'label' // eslint-disable-next-line prettier/prettier
|
|
93
|
-
];
|
|
94
|
-
/**
|
|
95
|
-
* @typedef {typeof layoutTags[number]} LayoutTag
|
|
96
|
-
*/
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Subset of supported HTML tags that may be used with text elements like Typography.
|
|
100
|
-
*
|
|
101
|
-
* Of these, only headers (h1, h2, ...h5, h6) set a corresponding accessibilityRole in native apps ("heading").
|
|
102
|
-
*/
|
|
103
|
-
// eslint-disable-next-line prettier/prettier
|
|
104
|
-
|
|
105
|
-
export const textTags =
|
|
106
|
-
/** @type {const} */
|
|
107
|
-
[...headingTags, 'blockquote', 'code', 'del', 'em', 'ins', 'li', 'strong', 'label' // eslint-disable-next-line prettier/prettier
|
|
108
|
-
];
|
|
109
|
-
/**
|
|
110
|
-
* @typedef {typeof layoutTags[number]} TextTag
|
|
111
|
-
*/
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* If passed a heading tag string like 'h1', 'h2' etc, returns the heading number as a number
|
|
115
|
-
* ready for use in `accessibilityLevel` props and similar.
|
|
116
|
-
*
|
|
117
|
-
* @param {string} [tag] - HTML tag string; returns undefined if not a {@link HeadingTag}
|
|
118
|
-
* @returns {'1' | '2' | '3' | '4' | '5' | '6' | undefined}
|
|
119
|
-
*/
|
|
120
|
-
|
|
121
|
-
export const getHeadingLevel = tag => headingTags.includes(tag) ? Number(tag[1]) : undefined;
|
|
122
|
-
/**
|
|
123
|
-
* Takes a supported HTML tag, and returns the accessibility props that, on web, make React Native Web
|
|
124
|
-
* render that tag.
|
|
125
|
-
*
|
|
126
|
-
* For cross-platform apps, a second argument may be passed with an [accessibilityRole](https://reactnative.dev/docs/accessibility#accessibilityrole)
|
|
127
|
-
* to use in native apps. Heading tags (h1, h2, ...h5, h6) map to "heading" role by default;
|
|
128
|
-
* no other supported semantic HTML tags have an equivalent native accessibilityRole.
|
|
129
|
-
*
|
|
130
|
-
* @param {SupportedTag} tag - HTML tag to use on web
|
|
131
|
-
* @param {AccessibilityRole | null} [nativeRole] - optional accessibilityRole for native apps
|
|
132
|
-
* @returns {{ accessibilityRole: string, accessibilityLevel?: string } | undefined}
|
|
133
|
-
*/
|
|
134
|
-
|
|
135
|
-
export const getA11yPropsFromHtmlTag = (tag, nativeRole) => {
|
|
136
|
-
// Allow cross-platform apps to set accessibilityRoles alongside a web tag without conflict
|
|
137
|
-
if (nativeRole !== undefined && Platform.OS !== 'web') return {
|
|
138
|
-
accessibilityRole: nativeRole
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
if (tag) {
|
|
142
|
-
// aria roles don't have native counterparts and RN may throw an error if an unrecognised role is passed
|
|
143
|
-
const ariaRole = Platform.OS === 'web' && tagsToRoles[tag];
|
|
144
|
-
if (ariaRole) return {
|
|
145
|
-
accessibilityRole: ariaRole
|
|
146
|
-
};
|
|
147
|
-
const accessibilityLevel = getHeadingLevel(tag);
|
|
148
|
-
if (accessibilityLevel) return {
|
|
149
|
-
accessibilityRole: 'header',
|
|
150
|
-
accessibilityLevel
|
|
151
|
-
};
|
|
152
|
-
} // If nothing matches or no tag supplied, return undefined and let component decide how to fall back.
|
|
153
|
-
// Note that return value may always be spread in objects (it is safe to spread undefined like { ...undefined })
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
return undefined;
|
|
157
|
-
};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import PixelRatio from "react-native-web/dist/exports/PixelRatio";
|
|
2
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
3
|
-
/**
|
|
4
|
-
* When a user increases text size using device accessibility settings, some elements
|
|
5
|
-
* should also scale, such as icons alongside text and space between paragraphs.
|
|
6
|
-
*
|
|
7
|
-
* @param {number} [value] - the value to multiply; defaults to system default font size
|
|
8
|
-
* @param {number} [maxScale] - the maximum multiplier to apply; defaults to no maximum
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
export const scaleWithText = function (value) {
|
|
12
|
-
let maxScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
|
|
13
|
-
if (!value) return value;
|
|
14
|
-
const scale = Math.min(PixelRatio.getFontScale(), maxScale) || 1;
|
|
15
|
-
return value * scale;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Native only, returns `undefined` on Web.
|
|
19
|
-
*
|
|
20
|
-
* Enforces `fontScaleCap` theme tokens as the maximum font size text can become
|
|
21
|
-
* after iOS or Android font scaling, to give consistent accessible maximum sizes
|
|
22
|
-
* that don't make the content unusable.
|
|
23
|
-
*
|
|
24
|
-
* The return value of this function can be used as a React Native `Text` element's
|
|
25
|
-
* `maxFontSizeMultiplier` prop value.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
export const getMaxFontMultiplier = _ref => {
|
|
29
|
-
let {
|
|
30
|
-
fontSize,
|
|
31
|
-
fontScaleCap
|
|
32
|
-
} = _ref;
|
|
33
|
-
if (Platform.OS === 'web' || !fontScaleCap || !fontSize) return undefined;
|
|
34
|
-
if (fontScaleCap <= fontSize) return 1;
|
|
35
|
-
return fontScaleCap / fontSize;
|
|
36
|
-
};
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from 'react';
|
|
2
|
-
import Animated from "react-native-web/dist/exports/Animated";
|
|
3
|
-
import Easing from "react-native-web/dist/exports/Easing";
|
|
4
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
5
|
-
import useSafeLayoutEffect from '../useSafeLayoutEffect'; // TODO: systematise animations
|
|
6
|
-
// https://github.com/telus/universal-design-system/issues/487
|
|
7
|
-
|
|
8
|
-
function useVerticalExpandAnimation(_ref) {
|
|
9
|
-
let {
|
|
10
|
-
containerHeight,
|
|
11
|
-
isExpanded,
|
|
12
|
-
tokens
|
|
13
|
-
} = _ref;
|
|
14
|
-
const [isAnimating, setIsAnimating] = useState(false);
|
|
15
|
-
const [wasExpanded, setWasExpanded] = useState(isExpanded);
|
|
16
|
-
const expandStateChanged = isExpanded !== wasExpanded;
|
|
17
|
-
const expandAnimatedValue = useRef(new Animated.Value(0)).current;
|
|
18
|
-
const elementRef = useRef(null);
|
|
19
|
-
const {
|
|
20
|
-
expandDuration,
|
|
21
|
-
collapseDuration
|
|
22
|
-
} = tokens;
|
|
23
|
-
useSafeLayoutEffect(() => {
|
|
24
|
-
if (expandStateChanged) {
|
|
25
|
-
setIsAnimating(true);
|
|
26
|
-
setWasExpanded(isExpanded);
|
|
27
|
-
}
|
|
28
|
-
}, [expandStateChanged, isExpanded]);
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
const onComplete = () => setIsAnimating(false);
|
|
31
|
-
|
|
32
|
-
if (Platform.OS === 'web') {
|
|
33
|
-
if (!elementRef.current) return () => {}; // React Native Web does not pass `onTransitionEnd` through, must attach manually.
|
|
34
|
-
// https://github.com/necolas/react-native-web/pull/1713
|
|
35
|
-
|
|
36
|
-
const element = elementRef.current;
|
|
37
|
-
element.addEventListener('transitionend', onComplete);
|
|
38
|
-
return () => element.removeEventListener('transitionend', onComplete);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const animationConfig = {
|
|
42
|
-
duration: isExpanded ? expandDuration : collapseDuration,
|
|
43
|
-
easing: Easing.inOut(Easing.ease),
|
|
44
|
-
toValue: isExpanded ? containerHeight : 0,
|
|
45
|
-
useNativeDriver: false
|
|
46
|
-
};
|
|
47
|
-
const animation = Animated.timing(expandAnimatedValue, animationConfig);
|
|
48
|
-
animation.start(onComplete);
|
|
49
|
-
return () => animation.stop();
|
|
50
|
-
}, [isExpanded, expandAnimatedValue, containerHeight, expandDuration, collapseDuration]);
|
|
51
|
-
const containerStyles = {};
|
|
52
|
-
if (isAnimating || expandStateChanged) containerStyles.overflow = 'hidden';
|
|
53
|
-
|
|
54
|
-
if (!isExpanded && !isAnimating && !expandStateChanged) {
|
|
55
|
-
if (Platform.OS === 'web') {
|
|
56
|
-
// Without `visibility: 'hidden', descendents are focusable on web even when collapsed.
|
|
57
|
-
containerStyles.visibility = 'hidden';
|
|
58
|
-
} else {
|
|
59
|
-
// There's no `visibility: hidden` in React Native, and display: none causes a flicker on expand.
|
|
60
|
-
// Without some form of hiding, some children leak through even when closed e.g. `List.Item` bullets.
|
|
61
|
-
containerStyles.opacity = 0;
|
|
62
|
-
}
|
|
63
|
-
} // don't visually collapse the container until we have it measured
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (containerHeight === null) {
|
|
67
|
-
if (Platform.OS === 'web') {
|
|
68
|
-
// on web we can hide the contents until we have the container measured and avoid occasional jitter
|
|
69
|
-
// this won't work on native platforms
|
|
70
|
-
containerStyles.height = 0;
|
|
71
|
-
containerStyles.visibility = 'hidden';
|
|
72
|
-
}
|
|
73
|
-
} else if (Platform.OS === 'web') {
|
|
74
|
-
const transitionDuration = isExpanded ? expandDuration : collapseDuration;
|
|
75
|
-
containerStyles.transition = "height ".concat(transitionDuration, "ms ease-in-out");
|
|
76
|
-
containerStyles.height = isExpanded ? containerHeight : 0;
|
|
77
|
-
} else if (Platform.OS === 'ios' && isExpanded && !isAnimating && !expandStateChanged && typeof containerHeight === 'number') {
|
|
78
|
-
// iOS reflows text while the height animation is in progress. Sometimes, it hits a timing bug where
|
|
79
|
-
// it fails to reflow properly after the last animation frame, leaving the last line of text not visible.
|
|
80
|
-
// Force reflow after animation completes with a static height non-identical to the last animated height.
|
|
81
|
-
containerStyles.height = containerHeight + 1;
|
|
82
|
-
} else {
|
|
83
|
-
containerStyles.height = expandAnimatedValue;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return [containerStyles, elementRef];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export default useVerticalExpandAnimation;
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import React, { Children, Fragment } from 'react';
|
|
2
|
-
import Text from "react-native-web/dist/exports/Text";
|
|
3
|
-
import A11yText from '../A11yText';
|
|
4
|
-
/**
|
|
5
|
-
* Unpacks top-level fragments, so that common compositional patterns such as the following examples
|
|
6
|
-
* can be iterated as flat siblings (as if they were `<Child1 /><Child2 /><Child3 />`):
|
|
7
|
-
*
|
|
8
|
-
* - Setting `children` as a property wrapped in a fragment:
|
|
9
|
-
*
|
|
10
|
-
* ```jsx
|
|
11
|
-
* args.children = <><Child1 /><Child2 /><Child3 /></>
|
|
12
|
-
* ```
|
|
13
|
-
*
|
|
14
|
-
* - Defining `children` as a variable wrapped in a fragment:
|
|
15
|
-
*
|
|
16
|
-
* ```jsx
|
|
17
|
-
* const content = <><Child1 /><Child2 /><Child3 /></>
|
|
18
|
-
* if (someCondition) return <SomeWrapper>{content}</SomeWrapper>
|
|
19
|
-
* ```
|
|
20
|
-
*
|
|
21
|
-
* - Using fragments at the top level of a JSX block for conditional rendering:
|
|
22
|
-
*
|
|
23
|
-
* ```jsx
|
|
24
|
-
* <Child1 />
|
|
25
|
-
* {someCondition && (
|
|
26
|
-
* <>
|
|
27
|
-
* <Child2 />
|
|
28
|
-
* <Child3 />
|
|
29
|
-
* </>
|
|
30
|
-
* )}
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* @param {ReactChildren} child
|
|
34
|
-
* @returns {ReactChildren}
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
38
|
-
export const unpackFragment = child => {
|
|
39
|
-
var _child$props;
|
|
40
|
-
|
|
41
|
-
// If this level is a set of top-level siblings rather than one child, check each in turn
|
|
42
|
-
if (Children.count(child) > 1) return Children.map(child, unpackFragment); // When a fragment is found, unpack its children to the top level and check them
|
|
43
|
-
|
|
44
|
-
if ((child === null || child === void 0 ? void 0 : child.type) === Fragment) return unpackFragment((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children); // Stop unpacking as soon as any non-fragment child is found
|
|
45
|
-
|
|
46
|
-
return child;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const isStringOrNumber = child => typeof child === 'string' || typeof child === 'number'; // Wrap an A11yText with neighouring text strings so it doesn't split them into multiple <Text>s
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const isWrapable = child => {
|
|
53
|
-
var _child$type;
|
|
54
|
-
|
|
55
|
-
return isStringOrNumber(child) || child.type === A11yText || ((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.name) === 'FootnoteLink';
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const combineKeys = childrenArray => childrenArray.reduce((newKey, child) => "".concat(newKey).concat(child.key || ''), ''); // Group wrappable children for one `<Text>` parent, merging adjacent text nodes
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const wrapChild = (child, wrappedText) => {
|
|
62
|
-
const lastIndex = wrappedText.length - 1; // If possible, simplify content by combining text nodes into one string.
|
|
63
|
-
// jest-native's `.toHaveTextContent` is buggy about array of text nodes in <Text> elements.
|
|
64
|
-
|
|
65
|
-
if (lastIndex >= 0 && isStringOrNumber(child) && isStringOrNumber(wrappedText[lastIndex])) {
|
|
66
|
-
/* eslint-disable-next-line no-param-reassign */
|
|
67
|
-
wrappedText[lastIndex] = "".concat(wrappedText[lastIndex]).concat(child);
|
|
68
|
-
} else {
|
|
69
|
-
wrappedText.push(child);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* React Native on Native crashes if text content is rendered outside `<Text>`, and on web,
|
|
74
|
-
* text style inheritance behaves differently with text compared to regular HTML.
|
|
75
|
-
*
|
|
76
|
-
* Call this function on children that may contain text (strings or numbers) at the top level,
|
|
77
|
-
* and any that are found will be wrapped in a React Native `<Text>` element with supplied props.
|
|
78
|
-
*
|
|
79
|
-
* Note that this does not wrap strings that are nested children of rendered top level children:
|
|
80
|
-
* `wrapStringsInText(<View>Some text</View>)` will not wrap the inner text and will still crash,
|
|
81
|
-
* but `wrapStringsInText(<>{someString}{anotherString}</>)` wraps the strings inside the fragment.
|
|
82
|
-
*
|
|
83
|
-
* @param {ReactChildren} children
|
|
84
|
-
* @param {TextProps} props
|
|
85
|
-
* @returns {ReactChildren}
|
|
86
|
-
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
export const wrapStringsInText = function (children) {
|
|
90
|
-
let textProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
91
|
-
const childrenArray = unpackFragment(Children.toArray(children)); // Group adjacent wrapable children together in one Text element to create as few Text elements
|
|
92
|
-
// as possible, e.g. give <X>Text {someString}</X> one Text, same as <X>{`Text ${someString}`}</X>
|
|
93
|
-
|
|
94
|
-
const wrapables = [[]];
|
|
95
|
-
let wrapablesIndex = 0;
|
|
96
|
-
childrenArray.forEach(child => {
|
|
97
|
-
if (isWrapable(child)) {
|
|
98
|
-
// Make this child a child of the current `Text`
|
|
99
|
-
wrapChild(child, wrapables[wrapablesIndex]);
|
|
100
|
-
} else {
|
|
101
|
-
// Close current `Text` and start a new one after this child
|
|
102
|
-
wrapables.push(child, []);
|
|
103
|
-
wrapablesIndex += 2;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
const items = wrapables.reduce((flatChildren, group, index) => {
|
|
107
|
-
// Skip nullish children and empty arrays
|
|
108
|
-
if (!group || Array.isArray(group) && !group.length) return flatChildren;
|
|
109
|
-
return [...flatChildren, Array.isArray(group) && group.some(child => isStringOrNumber(child)) ?
|
|
110
|
-
/*#__PURE__*/
|
|
111
|
-
// Wrap text nodes and their wrappable neighbours in Text with as stable a key as possible.
|
|
112
|
-
// Avoid one-item arrays because jest-native's `.toHaveTextContent` is buggy
|
|
113
|
-
// and sometimes fails to match text content in arrays.
|
|
114
|
-
_jsx(Text, { ...textProps,
|
|
115
|
-
children: group.length === 1 ? group[0] : group
|
|
116
|
-
}, combineKeys(group) || index) : group];
|
|
117
|
-
}, []);
|
|
118
|
-
return items.length === 1 ? items[0] : items;
|
|
119
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// Returns true if there are no duplicate values of the fields listed
|
|
2
|
-
// in the `fields` array across the objects in the `items` array, false
|
|
3
|
-
// otherwise.
|
|
4
|
-
// Note that if a value of a field in an item is not set, it will be
|
|
5
|
-
// excluded from comparison.
|
|
6
|
-
const containUniqueFields = (items, fields) => {
|
|
7
|
-
const map = [];
|
|
8
|
-
const itemsHaveDuplicateFields = items.some(item => fields.some(field => {
|
|
9
|
-
if (!map[field]) {
|
|
10
|
-
map[field] = [];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (!item[field]) {
|
|
14
|
-
// We exclude empty values from comparison
|
|
15
|
-
return false;
|
|
16
|
-
} // Duplicate found!
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (map[field][item[field]]) return true;
|
|
20
|
-
map[field][item[field]] = true;
|
|
21
|
-
return false;
|
|
22
|
-
}));
|
|
23
|
-
return !itemsHaveDuplicateFields;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export default containUniqueFields;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useFloating, arrow, offset, shift, flip, autoPlacement } from '@floating-ui/react-dom';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useFloating, arrow, offset, shift, flip, autoPlacement } from '@floating-ui/react-native';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Linter disallows object instance prototype methods like someObject.hasOwnProperty(key),
|
|
3
|
-
* but we can use this instead.
|
|
4
|
-
*
|
|
5
|
-
* @param {object} object
|
|
6
|
-
* @param {String} key
|
|
7
|
-
* @returns {Boolean}
|
|
8
|
-
*/
|
|
9
|
-
export default function hasOwnProperty(object, key) {
|
|
10
|
-
return Object.prototype.hasOwnProperty.call(object, key);
|
|
11
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export * from './a11y';
|
|
2
|
-
export * from './animation';
|
|
3
|
-
export * from './children';
|
|
4
|
-
export * from './input';
|
|
5
|
-
export * from './pressability';
|
|
6
|
-
export * from './props';
|
|
7
|
-
export { default as info } from './info';
|
|
8
|
-
export { default as useCopy } from './useCopy';
|
|
9
|
-
export { default as useHash } from './useHash';
|
|
10
|
-
export { default as useSpacingScale } from './useSpacingScale';
|
|
11
|
-
export { default as useResponsiveProp } from './useResponsiveProp';
|
|
12
|
-
export { default as useSafeLayoutEffect } from './useSafeLayoutEffect';
|
|
13
|
-
export { default as useScrollBlocking } from './useScrollBlocking';
|
|
14
|
-
export * from './useResponsiveProp';
|
|
15
|
-
export { default as useUniqueId } from './useUniqueId';
|
|
16
|
-
export { default as withLinkRouter } from './withLinkRouter';
|
|
17
|
-
export * from './ssr';
|
|
18
|
-
export { default as containUniqueFields } from './containUniqueFields';
|
|
19
|
-
export { default as BaseView } from './BaseView';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
2
|
-
import fileSuffix from './platform'; // Allows consuming libraries that might not have a direct dependency on
|
|
3
|
-
// React Native to check what the current platform is.
|
|
4
|
-
// Particularly useful for validating Jest config: it is possible for Jest to
|
|
5
|
-
// get configured such that Platform.OS returns a different mocked value to the
|
|
6
|
-
// OS being used to select files by platform suffix (e.g. .web, .native).
|
|
7
|
-
|
|
8
|
-
export default {
|
|
9
|
-
OS: Platform.OS,
|
|
10
|
-
fileSuffix
|
|
11
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default '.android';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default '.ios';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default '.web (default)';
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
// This shouldn't ever be chosen, as the more specific '.ios' and '.android' are available.
|
|
2
|
-
// If this gets picked, either an unsupported React Native platform is being used somehow
|
|
3
|
-
// (e.g. a native Windows app), or there's a serious config problem somewhere.
|
|
4
|
-
export default '.native';
|