@telus-uds/components-base 2.0.0 → 2.0.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 +1050 -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
package/src/index.js
CHANGED
|
@@ -1,20 +1,33 @@
|
|
|
1
1
|
export { default as A11yText } from './A11yText'
|
|
2
|
+
export { default as ActionCard } from './ActionCard'
|
|
2
3
|
export { default as ActivityIndicator } from './ActivityIndicator'
|
|
4
|
+
export { default as Autocomplete } from './Autocomplete'
|
|
3
5
|
export { default as Box } from './Box'
|
|
6
|
+
export { default as Badge } from './Badge'
|
|
4
7
|
export * from './Button'
|
|
5
8
|
export { default as Card, PressableCardBase } from './Card'
|
|
9
|
+
export { default as CardGroup } from './CardGroup'
|
|
6
10
|
export * from './Carousel'
|
|
11
|
+
export { default as FileUpload } from './FileUpload'
|
|
12
|
+
export { default as Listbox } from './Listbox'
|
|
7
13
|
export { default as Checkbox } from './Checkbox'
|
|
8
14
|
export * from './Checkbox'
|
|
15
|
+
export { default as CheckboxCard } from './CheckboxCard'
|
|
16
|
+
export { default as CheckboxCardGroup } from './CheckboxCardGroup'
|
|
17
|
+
export { default as ColourToggle } from './ColourToggle'
|
|
18
|
+
export { default as DownloadApp } from './DownloadApp'
|
|
9
19
|
export { default as Divider } from './Divider'
|
|
10
20
|
export { default as ExpandCollapse, Accordion } from './ExpandCollapse'
|
|
11
21
|
export { default as Feedback } from './Feedback'
|
|
12
22
|
export { default as Fieldset } from './Fieldset'
|
|
13
23
|
export { default as FlexGrid } from './FlexGrid'
|
|
14
|
-
export { default as
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
24
|
+
export { default as Footnote } from './Footnote'
|
|
25
|
+
export {
|
|
26
|
+
default as HorizontalScroll,
|
|
27
|
+
horizontalScrollUtils,
|
|
28
|
+
HorizontalScrollButton
|
|
29
|
+
} from './HorizontalScroll'
|
|
30
|
+
export { default as Icon, IconText, iconComponentPropTypes } from './Icon'
|
|
18
31
|
export { default as IconButton } from './IconButton'
|
|
19
32
|
export { default as InputLabel } from './InputLabel'
|
|
20
33
|
export { default as InputSupports } from './InputSupports'
|
|
@@ -23,14 +36,16 @@ export { default as List, ListItem, ListBase } from './List'
|
|
|
23
36
|
export { default as Modal } from './Modal'
|
|
24
37
|
export { default as MultiSelectFilter } from './MultiSelectFilter'
|
|
25
38
|
export { default as Notification } from './Notification'
|
|
39
|
+
export { default as OrderedList } from './OrderedList'
|
|
26
40
|
export { default as Pagination } from './Pagination'
|
|
41
|
+
export { default as PriceLockup } from './PriceLockup'
|
|
42
|
+
export { default as ProductCard } from './ProductCard'
|
|
43
|
+
export { default as ProductCardGroup } from './ProductCardGroup'
|
|
27
44
|
export { default as Progress } from './Progress'
|
|
28
45
|
export { default as QuickLinks } from './QuickLinks'
|
|
29
46
|
export { default as QuickLinksFeature } from './QuickLinksFeature'
|
|
30
|
-
export { default as Radio } from './Radio'
|
|
31
|
-
export
|
|
32
|
-
export { default as RadioCard } from './RadioCard'
|
|
33
|
-
export * from './RadioCard'
|
|
47
|
+
export { default as Radio, RadioGroup } from './Radio'
|
|
48
|
+
export { default as RadioCard, RadioCardGroup } from './RadioCard'
|
|
34
49
|
export { default as Responsive } from './Responsive'
|
|
35
50
|
export { default as Search } from './Search'
|
|
36
51
|
export { default as Select } from './Select'
|
|
@@ -38,10 +53,11 @@ export { default as SideNav } from './SideNav'
|
|
|
38
53
|
export { default as Skeleton } from './Skeleton'
|
|
39
54
|
export { default as SkipLink } from './SkipLink'
|
|
40
55
|
export { default as Spacer } from './Spacer'
|
|
41
|
-
export { default as StackView } from './StackView'
|
|
42
|
-
export
|
|
56
|
+
export { default as StackView, StackWrap, getStackedContent } from './StackView'
|
|
57
|
+
export { default as Status } from './Status'
|
|
43
58
|
export { default as StepTracker } from './StepTracker'
|
|
44
59
|
export { default as Tabs } from './Tabs'
|
|
60
|
+
export { default as TabBar } from './TabBar'
|
|
45
61
|
export { default as Tags } from './Tags'
|
|
46
62
|
export * from './TextInput'
|
|
47
63
|
export { default as Timeline } from './Timeline'
|
|
@@ -53,17 +69,20 @@ export { default as Typography } from './Typography'
|
|
|
53
69
|
export { default as A11yInfoProvider, useA11yInfo } from './A11yInfoProvider'
|
|
54
70
|
export { default as BaseProvider } from './BaseProvider'
|
|
55
71
|
export { useHydrationContext } from './BaseProvider/HydrationContext'
|
|
72
|
+
export { default as Validator } from './Validator'
|
|
56
73
|
export { default as ViewportProvider, useViewport, ViewportContext } from './ViewportProvider'
|
|
57
74
|
export {
|
|
58
75
|
default as ThemeProvider,
|
|
59
76
|
useTheme,
|
|
60
77
|
useSetTheme,
|
|
61
78
|
useThemeTokens,
|
|
79
|
+
useThemeTokensCallback,
|
|
62
80
|
getThemeTokens,
|
|
63
81
|
applyOuterBorder,
|
|
64
82
|
applyTextStyles,
|
|
65
|
-
applyShadowToken
|
|
83
|
+
applyShadowToken,
|
|
84
|
+
useResponsiveThemeTokens
|
|
66
85
|
} from './ThemeProvider'
|
|
67
86
|
|
|
68
87
|
export * from './utils'
|
|
69
|
-
export { Portal } from '
|
|
88
|
+
export { default as Portal } from './Portal'
|
package/src/server.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default as selectSystemProps } from './utils/props/selectSystemProps'
|
|
2
|
+
export { getTokensPropType } from './utils/props/tokens'
|
|
3
|
+
export { default as htmlAttrs } from './utils/htmlAttrs'
|
|
4
|
+
export { getComponentTheme, getThemeTokens } from './ThemeProvider/utils/theme-tokens'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import { View as NativeView, StyleSheet } from 'react-native'
|
|
3
3
|
import PropTypes from 'prop-types'
|
|
4
4
|
import { useTheme } from '../../ThemeProvider'
|
|
@@ -7,7 +7,7 @@ import { useTheme } from '../../ThemeProvider'
|
|
|
7
7
|
* Identical to React Native's View and supporting all the same props, but with:
|
|
8
8
|
* - a zIndex: 'auto' style added to prevent unexpectedly causing children to overlap other elements from other stacking contexts
|
|
9
9
|
*/
|
|
10
|
-
const BaseView = forwardRef(({ children, style, ...rest }, ref) => {
|
|
10
|
+
const BaseView = React.forwardRef(({ children, style, ...rest }, ref) => {
|
|
11
11
|
const { themeOptions } = useTheme()
|
|
12
12
|
const styleProp = Array.isArray(style) ? [...style] : [style]
|
|
13
13
|
|
|
@@ -22,8 +22,7 @@ import { Platform } from 'react-native'
|
|
|
22
22
|
* https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/modules/AccessibilityUtil/propsToAriaRole.js
|
|
23
23
|
*/
|
|
24
24
|
// Adding `/** @type {const} */ ({...})` denotes object content as `readonly` in many IDEs
|
|
25
|
-
|
|
26
|
-
const rolesToTags = /** @type {const} */ ({
|
|
25
|
+
const rolesToTags = /** @type {const} */ {
|
|
27
26
|
article: 'article',
|
|
28
27
|
banner: 'header',
|
|
29
28
|
blockquote: 'blockquote',
|
|
@@ -44,8 +43,7 @@ const rolesToTags = /** @type {const} */ ({
|
|
|
44
43
|
|
|
45
44
|
// Add special cases that are in RNW's function logic but not in its mapping object
|
|
46
45
|
label: 'label'
|
|
47
|
-
|
|
48
|
-
})
|
|
46
|
+
}
|
|
49
47
|
|
|
50
48
|
// Invert React Native Web's mapping, so a tag gets the role that gets that tag
|
|
51
49
|
export const tagsToRoles = Object.fromEntries(
|
|
@@ -56,8 +54,7 @@ export const tagsToRoles = Object.fromEntries(
|
|
|
56
54
|
* Heading HTML tags map to the "heading" accessibilityRole in native apps, which is similar
|
|
57
55
|
* to headings on web but without the expectation of a hierarchy of headings within one screen.
|
|
58
56
|
*/
|
|
59
|
-
|
|
60
|
-
export const headingTags = /** @type {const} */ (['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])
|
|
57
|
+
export const headingTags = /** @type {const} */ ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
|
|
61
58
|
/**
|
|
62
59
|
* @typedef {typeof headingTags[number]} HeadingTag
|
|
63
60
|
*/
|
|
@@ -80,8 +77,7 @@ export const supportedTags = [...Object.keys(tagsToRoles), ...headingTags]
|
|
|
80
77
|
*
|
|
81
78
|
* Of these, only headers (h1, h2, ...h5, h6) set a corresponding accessibilityRole in native apps ("heading").
|
|
82
79
|
*/
|
|
83
|
-
|
|
84
|
-
export const layoutTags = /** @type {const} */ ([
|
|
80
|
+
export const layoutTags = /** @type {const} */ [
|
|
85
81
|
...headingTags,
|
|
86
82
|
'article',
|
|
87
83
|
'aside',
|
|
@@ -96,8 +92,7 @@ export const layoutTags = /** @type {const} */ ([
|
|
|
96
92
|
'nav',
|
|
97
93
|
'section',
|
|
98
94
|
'label'
|
|
99
|
-
|
|
100
|
-
])
|
|
95
|
+
]
|
|
101
96
|
/**
|
|
102
97
|
* @typedef {typeof layoutTags[number]} LayoutTag
|
|
103
98
|
*/
|
|
@@ -107,8 +102,7 @@ export const layoutTags = /** @type {const} */ ([
|
|
|
107
102
|
*
|
|
108
103
|
* Of these, only headers (h1, h2, ...h5, h6) set a corresponding accessibilityRole in native apps ("heading").
|
|
109
104
|
*/
|
|
110
|
-
|
|
111
|
-
export const textTags = /** @type {const} */ ([
|
|
105
|
+
export const textTags = /** @type {const} */ [
|
|
112
106
|
...headingTags,
|
|
113
107
|
'blockquote',
|
|
114
108
|
'code',
|
|
@@ -118,8 +112,7 @@ export const textTags = /** @type {const} */ ([
|
|
|
118
112
|
'li',
|
|
119
113
|
'strong',
|
|
120
114
|
'label'
|
|
121
|
-
|
|
122
|
-
])
|
|
115
|
+
]
|
|
123
116
|
/**
|
|
124
117
|
* @typedef {typeof layoutTags[number]} TextTag
|
|
125
118
|
*/
|
|
@@ -53,8 +53,8 @@ function useVerticalExpandAnimation({ containerHeight, isExpanded, tokens }) {
|
|
|
53
53
|
|
|
54
54
|
if (!isExpanded && !isAnimating && !expandStateChanged) {
|
|
55
55
|
if (Platform.OS === 'web') {
|
|
56
|
-
// Without `
|
|
57
|
-
containerStyles.
|
|
56
|
+
// Without `display: 'none', descendents are focusable on web even when collapsed.
|
|
57
|
+
containerStyles.display = 'none'
|
|
58
58
|
} else {
|
|
59
59
|
// There's no `visibility: hidden` in React Native, and display: none causes a flicker on expand.
|
|
60
60
|
// Without some form of hiding, some children leak through even when closed e.g. `List.Item` bullets.
|
|
@@ -68,7 +68,7 @@ function useVerticalExpandAnimation({ containerHeight, isExpanded, tokens }) {
|
|
|
68
68
|
// on web we can hide the contents until we have the container measured and avoid occasional jitter
|
|
69
69
|
// this won't work on native platforms
|
|
70
70
|
containerStyles.height = 0
|
|
71
|
-
containerStyles.
|
|
71
|
+
containerStyles.display = 'none'
|
|
72
72
|
}
|
|
73
73
|
} else if (Platform.OS === 'web') {
|
|
74
74
|
const transitionDuration = isExpanded ? expandDuration : collapseDuration
|
package/src/utils/children.jsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import { Text } from 'react-native'
|
|
3
3
|
import A11yText from '../A11yText'
|
|
4
4
|
|
|
@@ -36,10 +36,10 @@ import A11yText from '../A11yText'
|
|
|
36
36
|
*/
|
|
37
37
|
export const unpackFragment = (child) => {
|
|
38
38
|
// If this level is a set of top-level siblings rather than one child, check each in turn
|
|
39
|
-
if (Children.count(child) > 1) return Children.map(child, unpackFragment)
|
|
39
|
+
if (React.Children.count(child) > 1) return React.Children.map(child, unpackFragment)
|
|
40
40
|
|
|
41
41
|
// When a fragment is found, unpack its children to the top level and check them
|
|
42
|
-
if (child?.type === Fragment) return unpackFragment(child.props?.children)
|
|
42
|
+
if (child?.type === React.Fragment) return unpackFragment(child.props?.children)
|
|
43
43
|
|
|
44
44
|
// Stop unpacking as soon as any non-fragment child is found
|
|
45
45
|
return child
|
|
@@ -81,7 +81,7 @@ const wrapChild = (child, wrappedText) => {
|
|
|
81
81
|
* @returns {ReactChildren}
|
|
82
82
|
*/
|
|
83
83
|
export const wrapStringsInText = (children, textProps = {}) => {
|
|
84
|
-
const childrenArray = unpackFragment(Children.toArray(children))
|
|
84
|
+
const childrenArray = unpackFragment(React.Children.toArray(children))
|
|
85
85
|
|
|
86
86
|
// Group adjacent wrapable children together in one Text element to create as few Text elements
|
|
87
87
|
// as possible, e.g. give <X>Text {someString}</X> one Text, same as <X>{`Text ${someString}`}</X>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a value from megabytes to bytes.
|
|
3
|
+
*
|
|
4
|
+
* @param {number} megaByte - The value in megabytes to be converted.
|
|
5
|
+
* @returns {number} The converted value in bytes.
|
|
6
|
+
*/
|
|
7
|
+
const BYTES_IN_A_MEGABYTE = 1024 * 1024
|
|
8
|
+
|
|
9
|
+
export default function convertFromMegaByteToByte(megaByte) {
|
|
10
|
+
return megaByte * BYTES_IN_A_MEGABYTE
|
|
11
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// react native source for Image and ImageBackground needs proper formatting to work
|
|
2
|
+
// remote sources that start with 'http' and base64 encoded sources that start with 'data:' need be wrapped in uri when passing source prop for Image and ImageBackground ie. source={ uri: image }
|
|
3
|
+
// local source for image can be passed normally without wrapping in uri ie. source={ image }
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* example code from react native docs: https://reactnative.dev/docs/imagebackground
|
|
7
|
+
*
|
|
8
|
+
* const image = {uri: 'https://legacy.reactjs.org/logo-og.png'}
|
|
9
|
+
*
|
|
10
|
+
* const App = () => (
|
|
11
|
+
* <View style={styles.container}>
|
|
12
|
+
* <ImageBackground source={image} resizeMode="cover" style={styles.image}>
|
|
13
|
+
* <Text style={styles.text}>Inside</Text>
|
|
14
|
+
* </ImageBackground>
|
|
15
|
+
* </View>
|
|
16
|
+
* )
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Formats the image source for React Native Image and ImageBackground components.
|
|
21
|
+
* @param {string|number} source - The image source, either a URI string or a number (when a local image source is bundled in IOS or Android app).
|
|
22
|
+
* @returns {object|string} - The formatted image source.
|
|
23
|
+
*/
|
|
24
|
+
const formatImageSource = (source) =>
|
|
25
|
+
typeof source === 'string' && (source.startsWith('http') || source.startsWith('data:'))
|
|
26
|
+
? { uri: source }
|
|
27
|
+
: source
|
|
28
|
+
|
|
29
|
+
export default formatImageSource
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import PropTypes from 'prop-types'
|
|
2
|
+
|
|
3
|
+
const htmlAttrTypes = {
|
|
4
|
+
dataSet: PropTypes.object,
|
|
5
|
+
id: PropTypes.string,
|
|
6
|
+
loading: PropTypes.oneOf(['eager', 'lazy']),
|
|
7
|
+
// @todo figure out if we need to enum all the possible roles or maybe use
|
|
8
|
+
// an npm package
|
|
9
|
+
role: PropTypes.string,
|
|
10
|
+
src: PropTypes.string,
|
|
11
|
+
tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
12
|
+
testID: PropTypes.string,
|
|
13
|
+
title: PropTypes.string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default {
|
|
17
|
+
types: htmlAttrTypes,
|
|
18
|
+
select: (props) =>
|
|
19
|
+
Object.entries(props).reduce(
|
|
20
|
+
(items, [key, value]) =>
|
|
21
|
+
Object.keys(htmlAttrTypes).includes(key) || /^(data|aria)-/.test(key)
|
|
22
|
+
? {
|
|
23
|
+
...items,
|
|
24
|
+
[key]: value
|
|
25
|
+
}
|
|
26
|
+
: items,
|
|
27
|
+
{}
|
|
28
|
+
)
|
|
29
|
+
}
|
package/src/utils/index.js
CHANGED
|
@@ -4,12 +4,13 @@ export * from './children'
|
|
|
4
4
|
export * from './input'
|
|
5
5
|
export * from './pressability'
|
|
6
6
|
export * from './props'
|
|
7
|
-
|
|
7
|
+
export * from './ssr-media-query'
|
|
8
8
|
export { default as info } from './info'
|
|
9
9
|
export { default as useCopy } from './useCopy'
|
|
10
10
|
export { default as useHash } from './useHash'
|
|
11
11
|
export { default as useSpacingScale } from './useSpacingScale'
|
|
12
12
|
export { default as useResponsiveProp } from './useResponsiveProp'
|
|
13
|
+
export { default as useOverlaidPosition } from './useOverlaidPosition'
|
|
13
14
|
export { default as useSafeLayoutEffect } from './useSafeLayoutEffect'
|
|
14
15
|
export { default as useScrollBlocking } from './useScrollBlocking'
|
|
15
16
|
export * from './useResponsiveProp'
|
|
@@ -18,3 +19,7 @@ export { default as withLinkRouter } from './withLinkRouter'
|
|
|
18
19
|
export * from './ssr'
|
|
19
20
|
export { default as containUniqueFields } from './containUniqueFields'
|
|
20
21
|
export { default as BaseView } from './BaseView'
|
|
22
|
+
export { default as htmlAttrs } from './htmlAttrs'
|
|
23
|
+
export { transformGradient } from './transformGradient'
|
|
24
|
+
export { default as convertFromMegaByteToByte } from './convertFromMegaByteToByte'
|
|
25
|
+
export { default as formatImageSource } from './formatImageSource'
|
|
@@ -65,7 +65,11 @@ const textInputHandlerProps = {
|
|
|
65
65
|
/**
|
|
66
66
|
* onKeyDown handler (only supported on Web)
|
|
67
67
|
*/
|
|
68
|
-
|
|
68
|
+
onMouseOver: PropTypes.func,
|
|
69
|
+
/**
|
|
70
|
+
* onKeyDown handler (only supported on Web)
|
|
71
|
+
*/
|
|
72
|
+
onMouseOut: PropTypes.func
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
75
|
const selectTextInputHandlers = getPropSelector(textInputHandlerProps.types)
|
|
@@ -23,6 +23,14 @@ export default {
|
|
|
23
23
|
* Visual variant is determined based on the `validation` prop.
|
|
24
24
|
*/
|
|
25
25
|
feedback: PropTypes.string,
|
|
26
|
+
/**
|
|
27
|
+
* Tokens to be passed to the feedback component.
|
|
28
|
+
*/
|
|
29
|
+
feedbackTokens: PropTypes.object,
|
|
30
|
+
/**
|
|
31
|
+
* Props to be passed to the feedback component.
|
|
32
|
+
*/
|
|
33
|
+
feedbackProps: PropTypes.object,
|
|
26
34
|
/**
|
|
27
35
|
* Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
|
|
28
36
|
*/
|
|
@@ -32,13 +40,25 @@ export default {
|
|
|
32
40
|
*/
|
|
33
41
|
validation: PropTypes.oneOf(['error', 'success'])
|
|
34
42
|
},
|
|
35
|
-
select: ({
|
|
43
|
+
select: ({
|
|
44
|
+
copy,
|
|
45
|
+
label,
|
|
46
|
+
hint,
|
|
47
|
+
hintPosition,
|
|
48
|
+
feedback,
|
|
49
|
+
feedbackTokens,
|
|
50
|
+
feedbackProps,
|
|
51
|
+
tooltip,
|
|
52
|
+
validation
|
|
53
|
+
}) => ({
|
|
36
54
|
supportsProps: {
|
|
37
55
|
copy,
|
|
38
56
|
label,
|
|
39
57
|
hint,
|
|
40
58
|
hintPosition,
|
|
41
59
|
feedback,
|
|
60
|
+
feedbackTokens,
|
|
61
|
+
feedbackProps,
|
|
42
62
|
tooltip,
|
|
43
63
|
validation
|
|
44
64
|
}
|
|
@@ -122,7 +122,7 @@ export const getTokensPropType =
|
|
|
122
122
|
* For example, for a set of tokens used in a common style, or for a set of tokens required by
|
|
123
123
|
* a themeless component whose tokens are set by a parent but requires tokens of a certain shape.
|
|
124
124
|
*
|
|
125
|
-
* By default, requires an object with a complete set of tokens (allowing `null
|
|
125
|
+
* By default, requires an object with a complete set of tokens (allowing `null` and `undefined`).
|
|
126
126
|
*
|
|
127
127
|
* @param {string[]} componentTokenKeys - array of strings of token names
|
|
128
128
|
* @param {object} [options]
|
|
@@ -142,7 +142,9 @@ export const getTokensSetPropType = (
|
|
|
142
142
|
? tokenValueType
|
|
143
143
|
: // Some theme tokens can validly resolve to `null`, but .isRequired treats null as undefined
|
|
144
144
|
(props, propName, ...args) =>
|
|
145
|
-
props[propName] !== null &&
|
|
145
|
+
props[propName] !== null &&
|
|
146
|
+
props[propName] !== undefined &&
|
|
147
|
+
tokenValueType.isRequired(props, propName, ...args)
|
|
146
148
|
])
|
|
147
149
|
)
|
|
148
150
|
)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import mediaQuery from 'css-mediaquery'
|
|
2
|
+
import { Dimensions } from 'react-native'
|
|
3
|
+
import { isMediaOrPseudo, isMedia } from '../utils/common'
|
|
4
|
+
|
|
5
|
+
const createStyleSheet = (stylesWithQuery) => {
|
|
6
|
+
if (!stylesWithQuery) return { ids: {}, styles: {}, fullStyles: {} }
|
|
7
|
+
let cleanStyles
|
|
8
|
+
const ids = {}
|
|
9
|
+
Object.keys(stylesWithQuery).forEach((key) => {
|
|
10
|
+
if (!stylesWithQuery?.[key]) return
|
|
11
|
+
|
|
12
|
+
const mediaQueriesAndPseudoClasses = Object.keys(stylesWithQuery[key]).filter(isMediaOrPseudo)
|
|
13
|
+
cleanStyles = JSON.parse(JSON.stringify(stylesWithQuery))
|
|
14
|
+
mediaQueriesAndPseudoClasses.forEach((str) => {
|
|
15
|
+
if (isMedia(str)) {
|
|
16
|
+
const mqStr = str.replace('@media', '')
|
|
17
|
+
const { width, height } = Dimensions.get('window')
|
|
18
|
+
|
|
19
|
+
const isMatchingMediaQuery = mediaQuery.match(mqStr, {
|
|
20
|
+
width,
|
|
21
|
+
height,
|
|
22
|
+
orientation: width > height ? 'landscape' : 'portrait',
|
|
23
|
+
'aspect-ratio': width / height
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
if (isMatchingMediaQuery) {
|
|
27
|
+
cleanStyles = {
|
|
28
|
+
...cleanStyles,
|
|
29
|
+
[key]: { ...cleanStyles[key], ...stylesWithQuery[key][str] }
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
delete cleanStyles[key][str]
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
return { ids, styles: cleanStyles, fullStyles: stylesWithQuery }
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default createStyleSheet
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { addCss } from '../utils/inject'
|
|
2
|
+
import createDeclarationBlock from '../utils/create-declaration-block'
|
|
3
|
+
import hash from '../hash'
|
|
4
|
+
import { isMediaOrPseudo, deepClone, createCssRule, sanitizeStyle } from '../utils/common'
|
|
5
|
+
|
|
6
|
+
const createStyleSheet = (stylesWithQuery) => {
|
|
7
|
+
if (!stylesWithQuery) return { ids: {}, styles: {}, fullStyles: {} }
|
|
8
|
+
|
|
9
|
+
let ids = {}
|
|
10
|
+
const cleanStyles = deepClone(stylesWithQuery)
|
|
11
|
+
|
|
12
|
+
Object.keys(stylesWithQuery).forEach((key) => {
|
|
13
|
+
if (!stylesWithQuery?.[key]) return
|
|
14
|
+
|
|
15
|
+
const mediaQueriesAndPseudoClasses = Object.keys(stylesWithQuery[key]).filter(isMediaOrPseudo)
|
|
16
|
+
mediaQueriesAndPseudoClasses.forEach((query) => {
|
|
17
|
+
const sanitizedStyle = sanitizeStyle(stylesWithQuery[key][query])
|
|
18
|
+
const css = createDeclarationBlock(sanitizedStyle)
|
|
19
|
+
const stringHash = `rnmq-${hash(`${key}${query}${css}`)}`
|
|
20
|
+
const rule = createCssRule(query, stringHash, css)
|
|
21
|
+
|
|
22
|
+
addCss(`${stringHash}`, rule)
|
|
23
|
+
delete cleanStyles[key][query]
|
|
24
|
+
|
|
25
|
+
ids = {
|
|
26
|
+
...ids,
|
|
27
|
+
[key]: `${ids?.[key] ? `${ids[key]} ` : ''}${stringHash}`
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return { ids, styles: cleanStyles, fullStyles: stylesWithQuery }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export default createStyleSheet
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable no-bitwise */
|
|
2
|
+
export default function hash(text) {
|
|
3
|
+
if (!text) {
|
|
4
|
+
return ''
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
let hashValue = 5381
|
|
8
|
+
let index = text.length - 1
|
|
9
|
+
|
|
10
|
+
while (index) {
|
|
11
|
+
hashValue = (hashValue * 33) ^ text.charCodeAt(index)
|
|
12
|
+
index -= 1
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return (hashValue >>> 0).toString(16)
|
|
16
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const isMedia = (query) => query.indexOf('@media') === 0
|
|
2
|
+
const isPseudo = (query) => query.indexOf(':') === 0
|
|
3
|
+
const isMediaOrPseudo = (query) => isMedia(query) || isPseudo(query)
|
|
4
|
+
|
|
5
|
+
const deepClone = (obj) => JSON.parse(JSON.stringify(obj))
|
|
6
|
+
|
|
7
|
+
const createCssRule = (query, stringHash, css) => {
|
|
8
|
+
let rule
|
|
9
|
+
const dataMediaSelector = `[data-media~="${stringHash}"]`
|
|
10
|
+
|
|
11
|
+
if (isMedia(query)) {
|
|
12
|
+
rule = `${query} {${dataMediaSelector} ${css}}`
|
|
13
|
+
} else {
|
|
14
|
+
rule = `${dataMediaSelector}${query} ${css}`
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return rule
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Sanitizes the style object by converting any functions to their string representation.
|
|
22
|
+
*
|
|
23
|
+
* @param {Object} style - The style object to sanitize.
|
|
24
|
+
* @returns {Object} - The sanitized style object.
|
|
25
|
+
*/
|
|
26
|
+
const sanitizeStyle = (style) => {
|
|
27
|
+
const sanitizedStyle = { ...style }
|
|
28
|
+
|
|
29
|
+
Object.keys(sanitizedStyle).forEach((property) => {
|
|
30
|
+
if (typeof sanitizedStyle[property] === 'function') {
|
|
31
|
+
sanitizedStyle[property] = sanitizedStyle[property].toString()
|
|
32
|
+
}
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
return sanitizedStyle
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { isMedia, isPseudo, isMediaOrPseudo, deepClone, createCssRule, sanitizeStyle }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import createReactDOMStyle from 'react-native-web/dist/cjs/exports/StyleSheet/compiler/createReactDOMStyle'
|
|
2
|
+
import prefixStyles from 'react-native-web/dist/cjs/modules/prefixStyles'
|
|
3
|
+
import hyphenateStyleName from './hyphenate-style-name'
|
|
4
|
+
|
|
5
|
+
const createDeclarationBlock = (style) => {
|
|
6
|
+
const domStyle = prefixStyles(createReactDOMStyle(style))
|
|
7
|
+
const declarationsString = Object.keys(domStyle)
|
|
8
|
+
.map((property) => {
|
|
9
|
+
const value = domStyle[property]
|
|
10
|
+
const prop = hyphenateStyleName(property)
|
|
11
|
+
if (Array.isArray(value)) {
|
|
12
|
+
return value.map((v) => `${prop}:${v}`).join(';')
|
|
13
|
+
}
|
|
14
|
+
return `${prop}:${value} !important`
|
|
15
|
+
})
|
|
16
|
+
.sort()
|
|
17
|
+
.join(';')
|
|
18
|
+
return `{${declarationsString};}`
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default createDeclarationBlock
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { viewports } from '@telus-uds/system-constants'
|
|
2
|
+
|
|
3
|
+
const inherit = ({ xs, sm = xs, md = sm, lg = md, xl = lg }) => ({ xs, sm, md, lg, xl })
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @typedef { Object } CssStyles
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @typedef { Object } ViewportStyles
|
|
11
|
+
* @property { CssStyles } xs - The CSS styles for the "xs" viewport (required).
|
|
12
|
+
* @property { CssStyles } [sm] - Optional styles for the "sm" viewport. Inherits from "xs" if not specified.
|
|
13
|
+
* @property { CssStyles } [md] - Optional styles for the "md" viewport. Inherits from "sm" if not specified.
|
|
14
|
+
* @property { CssStyles } [lg] - Optional styles for the "lg" viewport. Inherits from "md" if not specified.
|
|
15
|
+
* @property { CssStyles } [xl] - Optional styles for the "xl" viewport. Inherits from "lg" if not specified.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @typedef { Record<String, CssStyles> } MediaQueryStyles
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Generates media query styles based on specified viewport styles.
|
|
24
|
+
* @param { Object } viewportStyles - The styles for different viewports.
|
|
25
|
+
* @param { boolean } [shouldInherit=true] - Flag indicating whether to inherit styles.
|
|
26
|
+
* @returns { Object } - The media query styles.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
function createMediaQueryStyles(viewportStyles, shouldInherit = true) {
|
|
30
|
+
const effectiveStyles = shouldInherit ? inherit(viewportStyles) : viewportStyles
|
|
31
|
+
const viewportsArray = viewports.keys
|
|
32
|
+
const mediaQueries = Object.entries(effectiveStyles).reduce((acc, [viewport, styles]) => {
|
|
33
|
+
const minWidth = viewports.map.get(viewport)
|
|
34
|
+
const nextViewport = viewportsArray[viewportsArray.indexOf(viewport) + 1]
|
|
35
|
+
const maxWidth = viewports.map.get(nextViewport)
|
|
36
|
+
|
|
37
|
+
const mediaQuery = `@media (min-width: ${minWidth}px)${
|
|
38
|
+
maxWidth ? ` and (max-width: ${maxWidth}px)` : ''
|
|
39
|
+
}`
|
|
40
|
+
return { ...acc, [mediaQuery]: styles }
|
|
41
|
+
}, {})
|
|
42
|
+
|
|
43
|
+
return mediaQueries
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export default createMediaQueryStyles
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const uppercasePattern = /[A-Z]/g
|
|
2
|
+
const msPattern = /^ms-/
|
|
3
|
+
const cache = {}
|
|
4
|
+
|
|
5
|
+
const toHyphenLower = (match) => `-${match.toLowerCase()}`
|
|
6
|
+
|
|
7
|
+
const hyphenateStyleName = (name) => {
|
|
8
|
+
if (Object.prototype.hasOwnProperty.call(cache, name)) {
|
|
9
|
+
return cache[name]
|
|
10
|
+
}
|
|
11
|
+
const hName = name.replace(uppercasePattern, toHyphenLower)
|
|
12
|
+
return cache[name] === msPattern.test(hName) ? `-${hName}` : hName
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default hyphenateStyleName
|