@telus-uds/components-base 1.97.0 → 1.97.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 +11 -2
- 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/lib/A11yInfoProvider/index.js +29 -35
- package/lib/A11yText/index.js +16 -24
- package/lib/ActionCard/ActionCard.js +47 -55
- package/lib/ActionCard/index.js +2 -10
- package/lib/ActivityIndicator/Spinner.js +20 -28
- package/lib/ActivityIndicator/Spinner.native.js +32 -40
- package/lib/ActivityIndicator/index.js +18 -22
- package/lib/ActivityIndicator/shared.js +12 -23
- package/lib/Autocomplete/Autocomplete.js +90 -99
- package/lib/Autocomplete/Loading.js +14 -22
- package/lib/Autocomplete/Suggestions.js +23 -31
- package/lib/Autocomplete/constants.js +4 -14
- package/lib/Autocomplete/dictionary.js +2 -9
- package/lib/Autocomplete/index.js +2 -10
- package/lib/Badge/Badge.js +18 -26
- package/lib/Badge/index.js +2 -10
- package/lib/BaseProvider/HydrationContext.js +13 -23
- package/lib/BaseProvider/index.js +24 -29
- package/lib/Box/Box.js +60 -68
- package/lib/Box/backgroundImageStylesMap.js +2 -9
- package/lib/Box/index.js +2 -10
- package/lib/Button/Button.js +15 -25
- package/lib/Button/ButtonBase.js +37 -46
- package/lib/Button/ButtonDropdown.js +37 -47
- package/lib/Button/ButtonGroup.js +53 -61
- package/lib/Button/ButtonLink.js +21 -29
- package/lib/Button/index.js +5 -34
- package/lib/Button/propTypes.js +16 -25
- package/lib/Card/Card.js +47 -55
- package/lib/Card/CardBase.js +27 -35
- package/lib/Card/PressableCardBase.js +26 -35
- package/lib/Card/index.js +4 -33
- package/lib/CardGroup/CardGroup.js +45 -55
- package/lib/CardGroup/dictionary.js +2 -9
- package/lib/CardGroup/index.js +2 -10
- package/lib/Carousel/Carousel.js +137 -145
- package/lib/Carousel/CarouselContext.js +19 -27
- package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +15 -22
- package/lib/Carousel/CarouselItem/CarouselItem.js +29 -37
- package/lib/Carousel/CarouselItem/index.js +2 -10
- package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +12 -20
- package/lib/Carousel/CarouselStepTracker/index.js +2 -10
- package/lib/Carousel/CarouselTabs/CarouselTabs.js +16 -23
- package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +20 -28
- package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +23 -31
- package/lib/Carousel/CarouselTabs/index.js +2 -10
- package/lib/Carousel/CarouselThumbnail.js +19 -27
- package/lib/Carousel/CarouselThumbnailNavigation.js +22 -30
- package/lib/Carousel/dictionary.js +2 -9
- package/lib/Carousel/index.js +3 -36
- package/lib/Checkbox/Checkbox.js +52 -60
- package/lib/Checkbox/CheckboxButton.js +32 -41
- package/lib/Checkbox/CheckboxGroup.js +41 -49
- package/lib/Checkbox/CheckboxInput.js +15 -21
- package/lib/Checkbox/CheckboxInput.native.js +1 -8
- package/lib/Checkbox/index.js +3 -17
- package/lib/CheckboxCard/CheckboxCard.js +45 -55
- package/lib/CheckboxCard/index.js +2 -10
- package/lib/CheckboxCardGroup/CheckboxCardGroup.js +42 -52
- package/lib/CheckboxCardGroup/index.js +2 -10
- package/lib/ColourToggle/ColourBubble.js +23 -31
- package/lib/ColourToggle/ColourToggle.js +27 -35
- package/lib/ColourToggle/index.js +2 -10
- package/lib/Divider/Divider.js +23 -31
- package/lib/Divider/index.js +2 -10
- package/lib/DownloadApp/DownloadApp.js +32 -40
- package/lib/DownloadApp/dictionary.js +2 -9
- package/lib/DownloadApp/index.js +2 -10
- package/lib/ExpandCollapse/Accordion.js +7 -13
- package/lib/ExpandCollapse/Control.js +26 -34
- package/lib/ExpandCollapse/ExpandCollapse.js +22 -30
- package/lib/ExpandCollapse/Panel.js +43 -51
- package/lib/ExpandCollapse/dictionary.js +2 -9
- package/lib/ExpandCollapse/index.js +7 -20
- package/lib/Feedback/Feedback.js +33 -41
- package/lib/Feedback/index.js +2 -10
- package/lib/Fieldset/Fieldset.js +37 -43
- package/lib/Fieldset/FieldsetContainer.js +17 -25
- package/lib/Fieldset/FieldsetContainer.native.js +12 -20
- package/lib/Fieldset/Legend.js +10 -16
- package/lib/Fieldset/Legend.native.js +11 -17
- package/lib/Fieldset/cssReset.js +2 -9
- package/lib/Fieldset/index.js +2 -10
- package/lib/FileUpload/FileUpload.js +50 -58
- package/lib/FileUpload/NotificationContent.js +12 -18
- package/lib/FileUpload/dictionary.js +2 -9
- package/lib/FileUpload/index.js +2 -10
- package/lib/FlexGrid/Col/Col.js +35 -43
- package/lib/FlexGrid/Col/index.js +2 -10
- package/lib/FlexGrid/FlexGrid.js +38 -46
- package/lib/FlexGrid/Row/Row.js +24 -32
- package/lib/FlexGrid/Row/index.js +2 -10
- package/lib/FlexGrid/helpers/index.js +1 -8
- package/lib/FlexGrid/index.js +2 -10
- package/lib/FlexGrid/providers/GutterContext.js +3 -11
- package/lib/Footnote/Footnote.js +63 -71
- package/lib/Footnote/FootnoteLink.js +30 -38
- package/lib/Footnote/dictionary.js +2 -9
- package/lib/Footnote/index.js +4 -12
- package/lib/HorizontalScroll/HorizontalScroll.js +32 -41
- package/lib/HorizontalScroll/HorizontalScrollButton.js +25 -33
- package/lib/HorizontalScroll/ScrollViewEnd.js +12 -20
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +9 -16
- package/lib/HorizontalScroll/dictionary.js +2 -9
- package/lib/HorizontalScroll/index.js +11 -28
- package/lib/HorizontalScroll/itemPositions.js +17 -27
- package/lib/Icon/Icon.js +21 -30
- package/lib/Icon/IconText.js +29 -39
- package/lib/Icon/index.js +4 -25
- package/lib/IconButton/IconButton.js +35 -42
- package/lib/IconButton/index.js +2 -10
- package/lib/InputLabel/InputLabel.js +36 -44
- package/lib/InputLabel/LabelContent.js +8 -16
- package/lib/InputLabel/LabelContent.native.js +8 -17
- package/lib/InputLabel/index.js +2 -10
- package/lib/InputSupports/InputSupports.js +27 -35
- package/lib/InputSupports/index.js +2 -10
- package/lib/InputSupports/useInputSupports.js +5 -13
- package/lib/Link/ChevronLink.js +22 -28
- package/lib/Link/InlinePressable.js +13 -19
- package/lib/Link/InlinePressable.native.js +14 -23
- package/lib/Link/Link.js +9 -17
- package/lib/Link/LinkBase.js +40 -48
- package/lib/Link/TextButton.js +16 -22
- package/lib/Link/index.js +5 -34
- package/lib/List/List.js +22 -30
- package/lib/List/ListItem.js +12 -18
- package/lib/List/ListItemBase.js +31 -39
- package/lib/List/ListItemContent.js +22 -31
- package/lib/List/ListItemMark.js +24 -33
- package/lib/List/PressableListItemBase.js +32 -40
- package/lib/List/index.js +5 -24
- package/lib/Listbox/GroupControl.js +25 -33
- package/lib/Listbox/Listbox.js +40 -50
- package/lib/Listbox/ListboxContext.js +4 -12
- package/lib/Listbox/ListboxGroup.js +31 -40
- package/lib/Listbox/ListboxItem.js +23 -31
- package/lib/Listbox/ListboxOverlay.js +26 -35
- package/lib/Listbox/PressableItem.js +22 -30
- package/lib/Listbox/index.js +2 -10
- package/lib/Modal/Modal.js +75 -85
- package/lib/Modal/ModalContent.js +48 -56
- package/lib/Modal/WebModal.js +15 -23
- package/lib/Modal/dictionary.js +2 -9
- package/lib/Modal/index.js +2 -10
- package/lib/MultiSelectFilter/ModalOverlay.js +45 -53
- package/lib/MultiSelectFilter/MultiSelectFilter.js +110 -118
- package/lib/MultiSelectFilter/dictionary.js +2 -9
- package/lib/MultiSelectFilter/index.js +2 -10
- package/lib/Notification/Notification.js +59 -67
- package/lib/Notification/dictionary.js +2 -9
- package/lib/Notification/index.js +2 -10
- package/lib/OrderedList/Item.js +31 -39
- package/lib/OrderedList/ItemBase.js +13 -22
- package/lib/OrderedList/OrderedList.js +17 -25
- package/lib/OrderedList/OrderedListBase.js +12 -21
- package/lib/OrderedList/index.js +2 -10
- package/lib/Pagination/PageButton.js +22 -32
- package/lib/Pagination/Pagination.js +42 -52
- package/lib/Pagination/SideButton.js +25 -32
- package/lib/Pagination/constants.js +3 -12
- package/lib/Pagination/dictionary.js +2 -9
- package/lib/Pagination/index.js +2 -10
- package/lib/Pagination/usePagination.js +5 -13
- package/lib/Portal/Portal.js +8 -15
- package/lib/Portal/Portal.native.js +2 -9
- package/lib/Portal/index.js +2 -10
- package/lib/PriceLockup/PriceLockup.js +37 -45
- package/lib/PriceLockup/index.js +2 -10
- package/lib/PriceLockup/utils/renderFootnoteContent.js +20 -28
- package/lib/PriceLockup/utils/renderFootnoteLinks.js +5 -13
- package/lib/PriceLockup/utils/renderPrice.js +30 -38
- package/lib/PriceLockup/utils/renderTypography.js +5 -13
- package/lib/ProductCard/ProductCard.js +62 -70
- package/lib/ProductCard/dictionary.js +2 -9
- package/lib/ProductCard/index.js +2 -10
- package/lib/ProductCardGroup/ProductCardGroup.js +20 -28
- package/lib/ProductCardGroup/index.js +2 -10
- package/lib/Progress/Progress.js +15 -23
- package/lib/Progress/ProgressBar.js +23 -31
- package/lib/Progress/ProgressBarBackground.js +10 -18
- package/lib/Progress/index.js +4 -12
- package/lib/QuickLinks/QuickLinks.js +23 -29
- package/lib/QuickLinks/QuickLinksCard.js +14 -20
- package/lib/QuickLinks/QuickLinksItem.js +22 -28
- package/lib/QuickLinks/index.js +4 -12
- package/lib/QuickLinksFeature/QuickLinksFeature.js +20 -27
- package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +31 -38
- package/lib/QuickLinksFeature/index.js +4 -12
- package/lib/Radio/Radio.js +43 -53
- package/lib/Radio/RadioButton.js +34 -43
- package/lib/Radio/RadioGroup.js +43 -51
- package/lib/Radio/RadioInput.js +15 -21
- package/lib/Radio/RadioInput.native.js +1 -8
- package/lib/Radio/index.js +3 -17
- package/lib/RadioCard/RadioCard.js +43 -53
- package/lib/RadioCard/RadioCardGroup.js +42 -52
- package/lib/RadioCard/index.js +3 -17
- package/lib/Responsive/Responsive.js +16 -22
- package/lib/Responsive/ResponsiveProp.js +13 -21
- package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +15 -23
- package/lib/Responsive/index.js +2 -10
- package/lib/Search/Search.js +47 -55
- package/lib/Search/dictionary.js +2 -9
- package/lib/Search/index.js +2 -10
- package/lib/Select/Group.js +9 -17
- package/lib/Select/Group.native.js +5 -13
- package/lib/Select/Item.js +8 -16
- package/lib/Select/Item.native.js +1 -8
- package/lib/Select/Picker.js +27 -35
- package/lib/Select/Picker.native.js +34 -41
- package/lib/Select/Select.js +45 -54
- package/lib/Select/constants.js +4 -14
- package/lib/Select/index.js +6 -14
- package/lib/SideNav/Item.js +29 -37
- package/lib/SideNav/ItemContent.js +17 -26
- package/lib/SideNav/ItemsGroup.js +25 -32
- package/lib/SideNav/SideNav.js +28 -38
- package/lib/SideNav/index.js +1 -13
- package/lib/Skeleton/Skeleton.js +32 -40
- package/lib/Skeleton/index.js +2 -10
- package/lib/Skeleton/skeleton.constant.js +2 -10
- package/lib/Skeleton/skeletonWebAnimation.js +1 -8
- package/lib/Skeleton/useSkeletonNativeAnimation.js +14 -22
- package/lib/SkipLink/SkipLink.js +24 -33
- package/lib/SkipLink/index.js +2 -10
- package/lib/Spacer/Spacer.js +15 -21
- package/lib/Spacer/index.js +2 -10
- package/lib/StackView/StackView.js +28 -36
- package/lib/StackView/StackWrap.js +14 -21
- package/lib/StackView/StackWrap.native.js +2 -9
- package/lib/StackView/StackWrapBox.js +27 -35
- package/lib/StackView/StackWrapGap.js +22 -30
- package/lib/StackView/common.js +4 -13
- package/lib/StackView/getStackedContent.js +14 -22
- package/lib/StackView/index.js +5 -24
- package/lib/Status/Status.js +27 -35
- package/lib/Status/index.js +2 -10
- package/lib/StepTracker/Step.js +35 -43
- package/lib/StepTracker/StepTracker.js +38 -46
- package/lib/StepTracker/dictionary.js +2 -9
- package/lib/StepTracker/index.js +2 -10
- package/lib/TabBar/TabBar.js +28 -36
- package/lib/TabBar/TabBarItem.js +33 -42
- package/lib/TabBar/index.js +2 -10
- package/lib/Tabs/Tabs.js +38 -48
- package/lib/Tabs/TabsItem.js +45 -53
- package/lib/Tabs/index.js +2 -10
- package/lib/Tags/Tags.js +47 -55
- package/lib/Tags/index.js +2 -10
- package/lib/TextInput/TextArea.js +19 -27
- package/lib/TextInput/TextInput.js +18 -26
- package/lib/TextInput/TextInputBase.js +64 -73
- package/lib/TextInput/dictionary.js +2 -9
- package/lib/TextInput/index.js +3 -20
- package/lib/TextInput/propTypes.js +8 -15
- package/lib/ThemeProvider/ThemeProvider.js +25 -36
- package/lib/ThemeProvider/index.js +7 -60
- package/lib/ThemeProvider/useResponsiveThemeTokens.js +10 -18
- package/lib/ThemeProvider/useSetTheme.js +5 -12
- package/lib/ThemeProvider/useTheme.js +4 -11
- package/lib/ThemeProvider/useThemeTokens.js +15 -24
- package/lib/ThemeProvider/utils/index.js +2 -27
- package/lib/ThemeProvider/utils/styles.js +12 -24
- package/lib/ThemeProvider/utils/theme-tokens.js +19 -34
- package/lib/Timeline/Timeline.js +28 -34
- package/lib/Timeline/index.js +2 -10
- package/lib/ToggleSwitch/ToggleSwitch.js +40 -48
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +43 -51
- package/lib/ToggleSwitch/index.js +3 -20
- package/lib/Tooltip/Backdrop.js +8 -16
- package/lib/Tooltip/Backdrop.native.js +16 -22
- package/lib/Tooltip/Tooltip.js +42 -50
- package/lib/Tooltip/Tooltip.native.js +52 -61
- package/lib/Tooltip/dictionary.js +2 -9
- package/lib/Tooltip/getTooltipPosition.js +1 -9
- package/lib/Tooltip/index.js +5 -13
- package/lib/Tooltip/shared.js +14 -22
- package/lib/TooltipButton/TooltipButton.js +25 -33
- package/lib/TooltipButton/index.js +2 -10
- package/lib/Typography/Typography.js +39 -46
- package/lib/Typography/index.js +2 -10
- package/lib/Validator/Validator.js +42 -50
- package/lib/Validator/index.js +2 -10
- package/lib/ViewportProvider/ViewportProvider.js +13 -19
- package/lib/ViewportProvider/index.js +3 -23
- package/lib/ViewportProvider/useViewport.js +3 -11
- package/lib/ViewportProvider/useViewportListener.js +10 -17
- package/lib/index.js +71 -772
- package/lib/server.js +4 -40
- package/lib/utils/BaseView/BaseView.js +14 -20
- package/lib/utils/BaseView/BaseView.native.js +2 -10
- package/lib/utils/BaseView/index.js +2 -10
- package/lib/utils/a11y/index.js +2 -27
- package/lib/utils/a11y/semantics.js +11 -35
- package/lib/utils/a11y/textSize.js +7 -16
- package/lib/utils/animation/index.js +2 -13
- package/lib/utils/animation/useVerticalExpandAnimation.js +19 -26
- package/lib/utils/children.js +12 -20
- package/lib/utils/containUniqueFields.js +1 -8
- package/lib/utils/convertFromMegaByteToByte.js +1 -7
- package/lib/utils/floating-ui/index.js +1 -42
- package/lib/utils/floating-ui/index.native.js +1 -42
- package/lib/utils/formatImageSource.js +1 -8
- package/lib/utils/hasOwnProperty.js +1 -7
- package/lib/utils/htmlAttrs.js +11 -19
- package/lib/utils/index.js +25 -245
- package/lib/utils/info/index.js +6 -13
- package/lib/utils/info/platform/index.js +8 -13
- 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 -11
- package/lib/utils/input.js +13 -21
- package/lib/utils/pressability.js +14 -22
- package/lib/utils/props/a11yProps.js +90 -98
- package/lib/utils/props/clickProps.js +4 -12
- package/lib/utils/props/componentPropType.js +1 -7
- package/lib/utils/props/copyPropTypes.js +2 -10
- package/lib/utils/props/getPropSelector.js +6 -11
- package/lib/utils/props/handlerProps.js +23 -31
- package/lib/utils/props/hrefAttrsProp.js +6 -13
- package/lib/utils/props/index.js +19 -168
- package/lib/utils/props/inputSupportsProps.js +12 -20
- package/lib/utils/props/linkProps.js +16 -24
- package/lib/utils/props/paddingProp.js +8 -16
- package/lib/utils/props/pressProps.js +22 -31
- package/lib/utils/props/rectProp.js +8 -16
- package/lib/utils/props/responsiveProps.js +5 -13
- package/lib/utils/props/selectSystemProps.js +1 -7
- package/lib/utils/props/spacingProps.js +12 -19
- package/lib/utils/props/textInputProps.js +56 -62
- package/lib/utils/props/textProps.js +18 -24
- package/lib/utils/props/tokens.js +16 -26
- package/lib/utils/props/variantProp.js +4 -11
- package/lib/utils/props/viewProps.js +10 -18
- package/lib/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +8 -16
- package/lib/utils/ssr-media-query/create-stylesheet/index.android.js +2 -10
- package/lib/utils/ssr-media-query/create-stylesheet/index.ios.js +2 -10
- package/lib/utils/ssr-media-query/create-stylesheet/index.js +12 -20
- package/lib/utils/ssr-media-query/hash.js +1 -7
- package/lib/utils/ssr-media-query/index.js +4 -17
- package/lib/utils/ssr-media-query/utils/common.js +1 -12
- package/lib/utils/ssr-media-query/utils/create-declaration-block.js +6 -14
- package/lib/utils/ssr-media-query/utils/create-media-query-styles.js +5 -12
- package/lib/utils/ssr-media-query/utils/hyphenate-style-name.js +1 -8
- package/lib/utils/ssr-media-query/utils/inject.js +8 -18
- package/lib/utils/ssr.js +19 -28
- package/lib/utils/transformGradient.js +3 -11
- package/lib/utils/useCopy.js +2 -10
- package/lib/utils/useHash.js +7 -14
- package/lib/utils/useHash.native.js +1 -8
- package/lib/utils/useOverlaidPosition.js +17 -25
- package/lib/utils/useResponsiveProp.js +10 -19
- package/lib/utils/useSafeLayoutEffect.js +6 -13
- package/lib/utils/useScrollBlocking.js +10 -17
- package/lib/utils/useScrollBlocking.native.js +1 -8
- package/lib/utils/useSpacingScale.js +7 -14
- package/lib/utils/useUniqueId.js +3 -10
- package/lib/utils/withLinkRouter.js +13 -19
- package/package.json +20 -25
- package/src/A11yInfoProvider/index.jsx +5 -2
- package/src/ActivityIndicator/index.jsx +12 -3
- package/src/BaseProvider/index.jsx +5 -2
- package/src/Icon/IconText.jsx +0 -1
- package/src/TextInput/TextInputBase.jsx +1 -1
- package/src/Timeline/Timeline.jsx +6 -2
- package/src/index.js +9 -10
- package/src/utils/a11y/semantics.js +0 -7
- package/lib-module/A11yInfoProvider/index.js +0 -62
- package/lib-module/A11yText/index.js +0 -68
- package/lib-module/ActionCard/ActionCard.js +0 -343
- package/lib-module/ActionCard/index.js +0 -2
- package/lib-module/ActivityIndicator/Spinner.js +0 -80
- package/lib-module/ActivityIndicator/Spinner.native.js +0 -144
- package/lib-module/ActivityIndicator/index.js +0 -44
- package/lib-module/ActivityIndicator/shared.js +0 -14
- package/lib-module/Autocomplete/Autocomplete.js +0 -481
- package/lib-module/Autocomplete/Loading.js +0 -36
- package/lib-module/Autocomplete/Suggestions.js +0 -66
- package/lib-module/Autocomplete/constants.js +0 -4
- package/lib-module/Autocomplete/dictionary.js +0 -12
- package/lib-module/Autocomplete/index.js +0 -2
- package/lib-module/Badge/Badge.js +0 -102
- package/lib-module/Badge/index.js +0 -2
- package/lib-module/BaseProvider/HydrationContext.js +0 -48
- package/lib-module/BaseProvider/index.js +0 -38
- package/lib-module/Box/Box.js +0 -379
- package/lib-module/Box/backgroundImageStylesMap.js +0 -94
- package/lib-module/Box/index.js +0 -2
- package/lib-module/Button/Button.js +0 -34
- package/lib-module/Button/ButtonBase.js +0 -347
- package/lib-module/Button/ButtonDropdown.js +0 -173
- package/lib-module/Button/ButtonGroup.js +0 -272
- package/lib-module/Button/ButtonLink.js +0 -50
- package/lib-module/Button/index.js +0 -5
- package/lib-module/Button/propTypes.js +0 -46
- package/lib-module/Card/Card.js +0 -330
- package/lib-module/Card/CardBase.js +0 -114
- package/lib-module/Card/PressableCardBase.js +0 -112
- package/lib-module/Card/index.js +0 -4
- package/lib-module/CardGroup/CardGroup.js +0 -210
- package/lib-module/CardGroup/dictionary.js +0 -8
- package/lib-module/CardGroup/index.js +0 -2
- package/lib-module/Carousel/Carousel.js +0 -894
- package/lib-module/Carousel/CarouselContext.js +0 -51
- package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +0 -53
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +0 -146
- package/lib-module/Carousel/CarouselItem/index.js +0 -2
- package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -54
- package/lib-module/Carousel/CarouselStepTracker/index.js +0 -2
- package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +0 -50
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +0 -89
- package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +0 -118
- package/lib-module/Carousel/CarouselTabs/index.js +0 -2
- package/lib-module/Carousel/CarouselThumbnail.js +0 -113
- package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -71
- package/lib-module/Carousel/dictionary.js +0 -22
- package/lib-module/Carousel/index.js +0 -3
- package/lib-module/Checkbox/Checkbox.js +0 -343
- package/lib-module/Checkbox/CheckboxButton.js +0 -164
- package/lib-module/Checkbox/CheckboxGroup.js +0 -240
- package/lib-module/Checkbox/CheckboxInput.js +0 -50
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -5
- package/lib-module/Checkbox/index.js +0 -3
- package/lib-module/CheckboxCard/CheckboxCard.js +0 -183
- package/lib-module/CheckboxCard/index.js +0 -2
- package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +0 -206
- package/lib-module/CheckboxCardGroup/index.js +0 -2
- package/lib-module/ColourToggle/ColourBubble.js +0 -126
- package/lib-module/ColourToggle/ColourToggle.js +0 -92
- package/lib-module/ColourToggle/index.js +0 -2
- package/lib-module/Divider/Divider.js +0 -133
- package/lib-module/Divider/index.js +0 -2
- package/lib-module/DownloadApp/DownloadApp.js +0 -160
- package/lib-module/DownloadApp/dictionary.js +0 -10
- package/lib-module/DownloadApp/index.js +0 -2
- package/lib-module/ExpandCollapse/Accordion.js +0 -15
- package/lib-module/ExpandCollapse/Control.js +0 -165
- package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -98
- package/lib-module/ExpandCollapse/Panel.js +0 -242
- package/lib-module/ExpandCollapse/dictionary.js +0 -10
- package/lib-module/ExpandCollapse/index.js +0 -7
- package/lib-module/Feedback/Feedback.js +0 -161
- package/lib-module/Feedback/index.js +0 -2
- package/lib-module/Fieldset/Fieldset.js +0 -194
- package/lib-module/Fieldset/FieldsetContainer.js +0 -48
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -32
- 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/FileUpload/FileUpload.js +0 -329
- package/lib-module/FileUpload/NotificationContent.js +0 -55
- package/lib-module/FileUpload/dictionary.js +0 -40
- package/lib-module/FileUpload/index.js +0 -2
- package/lib-module/FlexGrid/Col/Col.js +0 -257
- package/lib-module/FlexGrid/Col/index.js +0 -2
- package/lib-module/FlexGrid/FlexGrid.js +0 -158
- package/lib-module/FlexGrid/Row/Row.js +0 -181
- package/lib-module/FlexGrid/Row/index.js +0 -2
- package/lib-module/FlexGrid/helpers/index.js +0 -15
- package/lib-module/FlexGrid/index.js +0 -2
- package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
- package/lib-module/Footnote/Footnote.js +0 -317
- package/lib-module/Footnote/FootnoteLink.js +0 -107
- package/lib-module/Footnote/dictionary.js +0 -12
- package/lib-module/Footnote/index.js +0 -4
- package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -165
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -79
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -46
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -26
- package/lib-module/HorizontalScroll/dictionary.js +0 -11
- package/lib-module/HorizontalScroll/index.js +0 -11
- package/lib-module/HorizontalScroll/itemPositions.js +0 -113
- package/lib-module/Icon/Icon.js +0 -93
- package/lib-module/Icon/IconText.js +0 -114
- package/lib-module/Icon/index.js +0 -4
- package/lib-module/IconButton/IconButton.js +0 -203
- package/lib-module/IconButton/index.js +0 -2
- package/lib-module/InputLabel/InputLabel.js +0 -145
- package/lib-module/InputLabel/LabelContent.js +0 -28
- package/lib-module/InputLabel/LabelContent.native.js +0 -18
- package/lib-module/InputLabel/index.js +0 -2
- package/lib-module/InputSupports/InputSupports.js +0 -108
- package/lib-module/InputSupports/index.js +0 -2
- package/lib-module/InputSupports/useInputSupports.js +0 -31
- package/lib-module/Link/ChevronLink.js +0 -68
- package/lib-module/Link/InlinePressable.js +0 -48
- package/lib-module/Link/InlinePressable.native.js +0 -87
- package/lib-module/Link/Link.js +0 -28
- package/lib-module/Link/LinkBase.js +0 -269
- package/lib-module/Link/TextButton.js +0 -43
- package/lib-module/Link/index.js +0 -5
- package/lib-module/List/List.js +0 -77
- package/lib-module/List/ListItem.js +0 -32
- package/lib-module/List/ListItemBase.js +0 -165
- package/lib-module/List/ListItemContent.js +0 -73
- package/lib-module/List/ListItemMark.js +0 -126
- package/lib-module/List/PressableListItemBase.js +0 -112
- package/lib-module/List/index.js +0 -5
- package/lib-module/Listbox/GroupControl.js +0 -106
- package/lib-module/Listbox/Listbox.js +0 -172
- package/lib-module/Listbox/ListboxContext.js +0 -4
- package/lib-module/Listbox/ListboxGroup.js +0 -125
- package/lib-module/Listbox/ListboxItem.js +0 -76
- package/lib-module/Listbox/ListboxOverlay.js +0 -78
- package/lib-module/Listbox/PressableItem.js +0 -140
- package/lib-module/Listbox/index.js +0 -2
- package/lib-module/Modal/Modal.js +0 -373
- package/lib-module/Modal/ModalContent.js +0 -180
- package/lib-module/Modal/WebModal.js +0 -76
- package/lib-module/Modal/dictionary.js +0 -9
- package/lib-module/Modal/index.js +0 -2
- package/lib-module/MultiSelectFilter/ModalOverlay.js +0 -156
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +0 -526
- package/lib-module/MultiSelectFilter/dictionary.js +0 -12
- package/lib-module/MultiSelectFilter/index.js +0 -2
- package/lib-module/Notification/Notification.js +0 -429
- package/lib-module/Notification/dictionary.js +0 -8
- package/lib-module/Notification/index.js +0 -2
- package/lib-module/OrderedList/Item.js +0 -160
- package/lib-module/OrderedList/ItemBase.js +0 -43
- package/lib-module/OrderedList/OrderedList.js +0 -64
- package/lib-module/OrderedList/OrderedListBase.js +0 -36
- package/lib-module/OrderedList/index.js +0 -2
- package/lib-module/Pagination/PageButton.js +0 -74
- package/lib-module/Pagination/Pagination.js +0 -218
- package/lib-module/Pagination/SideButton.js +0 -113
- package/lib-module/Pagination/constants.js +0 -3
- package/lib-module/Pagination/dictionary.js +0 -18
- package/lib-module/Pagination/index.js +0 -2
- package/lib-module/Pagination/usePagination.js +0 -79
- package/lib-module/Portal/Portal.js +0 -50
- package/lib-module/Portal/Portal.native.js +0 -2
- package/lib-module/Portal/index.js +0 -2
- package/lib-module/PriceLockup/PriceLockup.js +0 -225
- package/lib-module/PriceLockup/index.js +0 -2
- package/lib-module/PriceLockup/utils/renderFootnoteContent.js +0 -87
- package/lib-module/PriceLockup/utils/renderFootnoteLinks.js +0 -28
- package/lib-module/PriceLockup/utils/renderPrice.js +0 -141
- package/lib-module/PriceLockup/utils/renderTypography.js +0 -23
- package/lib-module/ProductCard/ProductCard.js +0 -232
- package/lib-module/ProductCard/dictionary.js +0 -38
- package/lib-module/ProductCard/index.js +0 -2
- package/lib-module/ProductCardGroup/ProductCardGroup.js +0 -70
- package/lib-module/ProductCardGroup/index.js +0 -2
- package/lib-module/Progress/Progress.js +0 -88
- package/lib-module/Progress/ProgressBar.js +0 -133
- package/lib-module/Progress/ProgressBarBackground.js +0 -40
- package/lib-module/Progress/index.js +0 -4
- package/lib-module/QuickLinks/QuickLinks.js +0 -78
- package/lib-module/QuickLinks/QuickLinksCard.js +0 -33
- package/lib-module/QuickLinks/QuickLinksItem.js +0 -51
- package/lib-module/QuickLinks/index.js +0 -4
- package/lib-module/QuickLinksFeature/QuickLinksFeature.js +0 -69
- package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +0 -147
- package/lib-module/QuickLinksFeature/index.js +0 -4
- package/lib-module/Radio/Radio.js +0 -283
- package/lib-module/Radio/RadioButton.js +0 -184
- package/lib-module/Radio/RadioGroup.js +0 -255
- package/lib-module/Radio/RadioInput.js +0 -50
- package/lib-module/Radio/RadioInput.native.js +0 -5
- package/lib-module/Radio/index.js +0 -3
- package/lib-module/RadioCard/RadioCard.js +0 -211
- package/lib-module/RadioCard/RadioCardGroup.js +0 -257
- package/lib-module/RadioCard/index.js +0 -3
- package/lib-module/Responsive/Responsive.js +0 -65
- package/lib-module/Responsive/ResponsiveProp.js +0 -39
- package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +0 -68
- package/lib-module/Responsive/index.js +0 -2
- package/lib-module/Search/Search.js +0 -242
- package/lib-module/Search/dictionary.js +0 -12
- package/lib-module/Search/index.js +0 -2
- package/lib-module/Select/Group.js +0 -24
- package/lib-module/Select/Group.native.js +0 -16
- package/lib-module/Select/Item.js +0 -23
- package/lib-module/Select/Item.native.js +0 -2
- package/lib-module/Select/Picker.js +0 -97
- package/lib-module/Select/Picker.native.js +0 -120
- package/lib-module/Select/Select.js +0 -337
- package/lib-module/Select/constants.js +0 -5
- package/lib-module/Select/index.js +0 -6
- package/lib-module/SideNav/Item.js +0 -143
- package/lib-module/SideNav/ItemContent.js +0 -50
- package/lib-module/SideNav/ItemsGroup.js +0 -121
- package/lib-module/SideNav/SideNav.js +0 -131
- package/lib-module/SideNav/index.js +0 -1
- package/lib-module/Skeleton/Skeleton.js +0 -177
- package/lib-module/Skeleton/index.js +0 -2
- package/lib-module/Skeleton/skeleton.constant.js +0 -2
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -14
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -28
- package/lib-module/SkipLink/SkipLink.js +0 -190
- package/lib-module/SkipLink/index.js +0 -2
- package/lib-module/Spacer/Spacer.js +0 -95
- package/lib-module/Spacer/index.js +0 -2
- package/lib-module/StackView/StackView.js +0 -126
- package/lib-module/StackView/StackWrap.js +0 -51
- package/lib-module/StackView/StackWrap.native.js +0 -4
- package/lib-module/StackView/StackWrapBox.js +0 -114
- package/lib-module/StackView/StackWrapGap.js +0 -61
- package/lib-module/StackView/common.js +0 -35
- package/lib-module/StackView/getStackedContent.js +0 -123
- package/lib-module/StackView/index.js +0 -5
- package/lib-module/Status/Status.js +0 -167
- package/lib-module/Status/index.js +0 -2
- package/lib-module/StepTracker/Step.js +0 -265
- package/lib-module/StepTracker/StepTracker.js +0 -208
- package/lib-module/StepTracker/dictionary.js +0 -30
- package/lib-module/StepTracker/index.js +0 -2
- package/lib-module/TabBar/TabBar.js +0 -125
- package/lib-module/TabBar/TabBarItem.js +0 -177
- package/lib-module/TabBar/index.js +0 -2
- package/lib-module/Tabs/Tabs.js +0 -179
- package/lib-module/Tabs/TabsItem.js +0 -239
- package/lib-module/Tabs/index.js +0 -2
- package/lib-module/Tags/Tags.js +0 -245
- package/lib-module/Tags/index.js +0 -2
- package/lib-module/TextInput/TextArea.js +0 -97
- package/lib-module/TextInput/TextInput.js +0 -80
- package/lib-module/TextInput/TextInputBase.js +0 -436
- package/lib-module/TextInput/dictionary.js +0 -12
- package/lib-module/TextInput/index.js +0 -3
- package/lib-module/TextInput/propTypes.js +0 -34
- package/lib-module/ThemeProvider/ThemeProvider.js +0 -84
- package/lib-module/ThemeProvider/index.js +0 -7
- package/lib-module/ThemeProvider/useResponsiveThemeTokens.js +0 -81
- package/lib-module/ThemeProvider/useSetTheme.js +0 -24
- package/lib-module/ThemeProvider/useTheme.js +0 -11
- package/lib-module/ThemeProvider/useThemeTokens.js +0 -109
- package/lib-module/ThemeProvider/utils/index.js +0 -2
- package/lib-module/ThemeProvider/utils/styles.js +0 -198
- package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -160
- package/lib-module/Timeline/Timeline.js +0 -168
- package/lib-module/Timeline/index.js +0 -2
- package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -280
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -208
- package/lib-module/ToggleSwitch/index.js +0 -3
- package/lib-module/Tooltip/Backdrop.js +0 -50
- package/lib-module/Tooltip/Backdrop.native.js +0 -41
- package/lib-module/Tooltip/Tooltip.js +0 -280
- package/lib-module/Tooltip/Tooltip.native.js +0 -356
- package/lib-module/Tooltip/dictionary.js +0 -8
- package/lib-module/Tooltip/getTooltipPosition.js +0 -170
- package/lib-module/Tooltip/index.js +0 -5
- package/lib-module/Tooltip/shared.js +0 -41
- package/lib-module/TooltipButton/TooltipButton.js +0 -90
- package/lib-module/TooltipButton/index.js +0 -2
- package/lib-module/Typography/Typography.js +0 -254
- package/lib-module/Typography/index.js +0 -2
- package/lib-module/Validator/Validator.js +0 -222
- package/lib-module/Validator/index.js +0 -2
- package/lib-module/ViewportProvider/ViewportProvider.js +0 -27
- package/lib-module/ViewportProvider/index.js +0 -3
- package/lib-module/ViewportProvider/useViewport.js +0 -3
- package/lib-module/ViewportProvider/useViewportListener.js +0 -37
- package/lib-module/index.js +0 -76
- package/lib-module/server.js +0 -4
- package/lib-module/utils/BaseView/BaseView.js +0 -42
- package/lib-module/utils/BaseView/BaseView.native.js +0 -5
- 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 -144
- package/lib-module/utils/a11y/textSize.js +0 -35
- package/lib-module/utils/animation/index.js +0 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -86
- package/lib-module/utils/children.js +0 -117
- package/lib-module/utils/containUniqueFields.js +0 -24
- package/lib-module/utils/convertFromMegaByteToByte.js +0 -10
- 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/formatImageSource.js +0 -27
- package/lib-module/utils/hasOwnProperty.js +0 -11
- package/lib-module/utils/htmlAttrs.js +0 -23
- package/lib-module/utils/index.js +0 -25
- package/lib-module/utils/info/index.js +0 -8
- package/lib-module/utils/info/platform/index.js +0 -14
- 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 -6
- package/lib-module/utils/input.js +0 -185
- package/lib-module/utils/pressability.js +0 -112
- package/lib-module/utils/props/a11yProps.js +0 -310
- package/lib-module/utils/props/clickProps.js +0 -25
- package/lib-module/utils/props/componentPropType.js +0 -50
- package/lib-module/utils/props/copyPropTypes.js +0 -2
- package/lib-module/utils/props/getPropSelector.js +0 -52
- package/lib-module/utils/props/handlerProps.js +0 -105
- 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 -68
- package/lib-module/utils/props/linkProps.js +0 -43
- 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 -28
- package/lib-module/utils/props/selectSystemProps.js +0 -23
- package/lib-module/utils/props/spacingProps.js +0 -57
- package/lib-module/utils/props/textInputProps.js +0 -188
- package/lib-module/utils/props/textProps.js +0 -61
- package/lib-module/utils/props/tokens.js +0 -130
- package/lib-module/utils/props/variantProp.js +0 -18
- package/lib-module/utils/props/viewProps.js +0 -21
- package/lib-module/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +0 -48
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.android.js +0 -2
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.ios.js +0 -2
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.js +0 -36
- package/lib-module/utils/ssr-media-query/hash.js +0 -13
- package/lib-module/utils/ssr-media-query/index.js +0 -6
- package/lib-module/utils/ssr-media-query/utils/common.js +0 -33
- package/lib-module/utils/ssr-media-query/utils/create-declaration-block.js +0 -16
- package/lib-module/utils/ssr-media-query/utils/create-media-query-styles.js +0 -60
- package/lib-module/utils/ssr-media-query/utils/hyphenate-style-name.js +0 -12
- package/lib-module/utils/ssr-media-query/utils/inject.js +0 -39
- package/lib-module/utils/ssr.js +0 -142
- package/lib-module/utils/transformGradient.js +0 -15
- package/lib-module/utils/useCopy.js +0 -42
- package/lib-module/utils/useHash.js +0 -41
- package/lib-module/utils/useHash.native.js +0 -6
- package/lib-module/utils/useOverlaidPosition.js +0 -214
- package/lib-module/utils/useResponsiveProp.js +0 -45
- package/lib-module/utils/useSafeLayoutEffect.js +0 -28
- package/lib-module/utils/useScrollBlocking.js +0 -51
- package/lib-module/utils/useScrollBlocking.native.js +0 -2
- package/lib-module/utils/useSpacingScale.js +0 -123
- package/lib-module/utils/useUniqueId.js +0 -11
- package/lib-module/utils/withLinkRouter.js +0 -84
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import PropTypes from 'prop-types';
|
|
2
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
3
|
-
import getPropSelector from './getPropSelector';
|
|
4
|
-
|
|
5
|
-
// These are the props accepted specifically on React Native (Web) `Text` elements.
|
|
6
|
-
// They are generally concerned with the behaviour of multiline text.
|
|
7
|
-
|
|
8
|
-
const crossPlatform = {
|
|
9
|
-
/**
|
|
10
|
-
* Truncates text after this many lines with an ellipsis at the end.
|
|
11
|
-
* On native, ellipsis behaviour may be changed with `ellipsizeMode` prop.
|
|
12
|
-
*/
|
|
13
|
-
numberOfLines: PropTypes.number,
|
|
14
|
-
/**
|
|
15
|
-
* Default is true on web and false on native
|
|
16
|
-
*/
|
|
17
|
-
selectable: PropTypes.bool
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* See React Native docs for latest details on these.
|
|
22
|
-
* https://reactnative.dev/docs/text
|
|
23
|
-
*/
|
|
24
|
-
const nativeOnly = {
|
|
25
|
-
ellipsizeMode: PropTypes.string,
|
|
26
|
-
maxFontSizeMultiplier: PropTypes.number,
|
|
27
|
-
minimumFontScale: PropTypes.number,
|
|
28
|
-
onTextLayout: PropTypes.func,
|
|
29
|
-
suppressHighlighting: PropTypes.bool,
|
|
30
|
-
textBreakStrategy: PropTypes.string
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* These set HTML attributes of the same name.
|
|
35
|
-
*/
|
|
36
|
-
const webOnly = {
|
|
37
|
-
dir: PropTypes.oneOf(['auto', 'ltr', 'rtl']),
|
|
38
|
-
lang: PropTypes.string
|
|
39
|
-
};
|
|
40
|
-
export default {
|
|
41
|
-
/**
|
|
42
|
-
* Set of prop types specific to React Native and React Native Web `Text`,
|
|
43
|
-
* which largely revolve around the behaviour of multiline non-pressable text.
|
|
44
|
-
*/
|
|
45
|
-
types: {
|
|
46
|
-
...crossPlatform,
|
|
47
|
-
...webOnly,
|
|
48
|
-
...nativeOnly
|
|
49
|
-
},
|
|
50
|
-
/**
|
|
51
|
-
* Filters a props object, returning only props specific to `Text` elements
|
|
52
|
-
* on the current platform. Does not include props applicable to `Text` and `View`.
|
|
53
|
-
*/
|
|
54
|
-
select: getPropSelector({
|
|
55
|
-
...crossPlatform,
|
|
56
|
-
...Platform.select({
|
|
57
|
-
web: webOnly,
|
|
58
|
-
default: nativeOnly
|
|
59
|
-
})
|
|
60
|
-
})
|
|
61
|
-
};
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import PropTypes from 'prop-types';
|
|
2
|
-
import { components as tokenKeys } from '@telus-uds/system-theme-tokens';
|
|
3
|
-
|
|
4
|
-
// Tokens can be primitive values (e.g. `'rgba(0,0,0,0'`, `12`), or objects of such values,
|
|
5
|
-
// such as tokens that describe shadow (e.g. shadow: { inset: true, color: 'rgba(...)' ... }),
|
|
6
|
-
// or components (e.g. Icon tokens)
|
|
7
|
-
const tokenValue = PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.elementType]);
|
|
8
|
-
const tokenValueType = PropTypes.oneOfType([tokenValue, PropTypes.objectOf(tokenValue)]);
|
|
9
|
-
export const getTokenNames = componentName => {
|
|
10
|
-
const componentTokenSchema = tokenKeys[componentName];
|
|
11
|
-
if (!componentTokenSchema) {
|
|
12
|
-
throw new Error(`No "${componentName}" tokenKeys in @telus-uds/system-theme-tokens`);
|
|
13
|
-
}
|
|
14
|
-
return Object.keys(componentTokenSchema);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Returns the subset of a set of tokens that may be accepted by the `tokens` prop of a named component
|
|
19
|
-
* or by a provided array of tokens. A prefix may be provided, for example:
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```jsx
|
|
23
|
-
* // returns tokens from `themeTokens` that exist in the theme schema for `Button`.
|
|
24
|
-
* selectTokens('Button', themeTokens)
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```jsx
|
|
29
|
-
* // returns `{ backgroundColor, width }` where the values of those keys come from
|
|
30
|
-
* // the source object's `{ containerBackgroundColor, containerWidth }` properties.
|
|
31
|
-
* selectTokens(['backgroundColor', 'width'], themeTokens, 'container')
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```jsx
|
|
36
|
-
* // returns tokens that are defined in the `Button` theme schema, from tokens with
|
|
37
|
-
* // a prefix `'button'` e.g. a token `buttonBorderWidth` outputs as `borderWidth`.
|
|
38
|
-
* selectTokens('Button', themeTokens, 'button')
|
|
39
|
-
* ```
|
|
40
|
-
*
|
|
41
|
-
* @param {string[]|string} specifier - a name of a component in the theme schema, or an array of token names
|
|
42
|
-
* @param {object} tokens - a source object of theme tokens
|
|
43
|
-
* @param {string} [prefix] - if provided, matches keys in the source object with this as the first camelCase item
|
|
44
|
-
* @returns {object} - subset of theme tokens
|
|
45
|
-
*/
|
|
46
|
-
export const selectTokens = (specifier, tokens, prefix) => {
|
|
47
|
-
const tokenNames = typeof specifier === 'string' ? getTokenNames(specifier) : specifier;
|
|
48
|
-
const filteredTokens = tokenNames.reduce((validTokens, key) => {
|
|
49
|
-
const prefixedKey = prefix ? `${prefix}${key[0].toUpperCase()}${key.slice(1)}` : key;
|
|
50
|
-
const token = tokens[prefixedKey];
|
|
51
|
-
return token !== undefined ? {
|
|
52
|
-
...validTokens,
|
|
53
|
-
[key]: token
|
|
54
|
-
} : validTokens;
|
|
55
|
-
}, {});
|
|
56
|
-
return filteredTokens;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* @typedef {string|number|boolean|{[key: string]:string|number|boolean}} TokenValue
|
|
61
|
-
* @typedef {{[key: string]: TokenValue}} TokensSet
|
|
62
|
-
* @typedef {(AppearanceSet) => TokensSet} TokensGetter
|
|
63
|
-
* @typedef {TokensSet|TokensGetter} TokensProp
|
|
64
|
-
*/
|
|
65
|
-
/**
|
|
66
|
-
* 'tokens' is an optional object prop on all themable components. Its keys must match the
|
|
67
|
-
* token keys in the component's theme schema.
|
|
68
|
-
*
|
|
69
|
-
* This prop is intended to be used as an 'escape hatch' for difficult or exceptional cases
|
|
70
|
-
* where the main theming system doesn't apply. It is intentionally permissive about values.
|
|
71
|
-
*
|
|
72
|
-
* @param {...string} componentsNames - one or more ComponentName, which tokens keys are accepted
|
|
73
|
-
* @return {function} - a custom PropTypes validator
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* Component.propTypes = {
|
|
77
|
-
* // accepts all tokens keys defined in Component schema
|
|
78
|
-
* tokens: getTokensPropType('Component')
|
|
79
|
-
* }
|
|
80
|
-
*
|
|
81
|
-
* Component.propTypes = {
|
|
82
|
-
* // accepts all tokens keys defined in schemas for Component1 and Component2
|
|
83
|
-
* tokens: getTokensPropType('Component1', 'Component2')
|
|
84
|
-
* }
|
|
85
|
-
*/
|
|
86
|
-
export const getTokensPropType = function () {
|
|
87
|
-
for (var _len = arguments.length, componentsNames = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
88
|
-
componentsNames[_key] = arguments[_key];
|
|
89
|
-
}
|
|
90
|
-
return (props, propName, componentName) => {
|
|
91
|
-
PropTypes.checkPropTypes({
|
|
92
|
-
[propName]: PropTypes.oneOfType([PropTypes.object, PropTypes.func])
|
|
93
|
-
}, props, propName, componentName);
|
|
94
|
-
if (typeof props[propName] !== 'function') {
|
|
95
|
-
PropTypes.checkPropTypes({
|
|
96
|
-
[propName]: PropTypes.exact(Object.fromEntries(componentsNames.flatMap(component => getTokenNames(component).map(key => [key, tokenValueType]))))
|
|
97
|
-
}, props, propName, componentName);
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Get a proptypes validator for a set of tokens that is not based on a component in the theme schema.
|
|
104
|
-
*
|
|
105
|
-
* For example, for a set of tokens used in a common style, or for a set of tokens required by
|
|
106
|
-
* a themeless component whose tokens are set by a parent but requires tokens of a certain shape.
|
|
107
|
-
*
|
|
108
|
-
* By default, requires an object with a complete set of tokens (allowing `null` and `undefined`).
|
|
109
|
-
*
|
|
110
|
-
* @param {string[]} componentTokenKeys - array of strings of token names
|
|
111
|
-
* @param {object} [options]
|
|
112
|
-
* @param {boolean} [options.partial] - if true, allows tokens to be undefined
|
|
113
|
-
* @param {boolean} [options.allowFunction] - if true, allows functions as well as tokens objects
|
|
114
|
-
* @returns
|
|
115
|
-
*/
|
|
116
|
-
export const getTokensSetPropType = function (componentTokenKeys) {
|
|
117
|
-
let {
|
|
118
|
-
partial = false,
|
|
119
|
-
allowFunction = false
|
|
120
|
-
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
121
|
-
const tokensObjectValidator = PropTypes.exact(Object.fromEntries(componentTokenKeys.map(key => [key, partial ? tokenValueType :
|
|
122
|
-
// Some theme tokens can validly resolve to `null`, but .isRequired treats null as undefined
|
|
123
|
-
function (props, propName) {
|
|
124
|
-
for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
|
125
|
-
args[_key2 - 2] = arguments[_key2];
|
|
126
|
-
}
|
|
127
|
-
return props[propName] !== null && props[propName] !== undefined && tokenValueType.isRequired(props, propName, ...args);
|
|
128
|
-
}])));
|
|
129
|
-
return allowFunction ? PropTypes.oneOfType([tokensObjectValidator, PropTypes.func]) : tokensObjectValidator;
|
|
130
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import PropTypes from 'prop-types';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @typedef {{[key: string]: string|number|boolean}} AppearanceSet
|
|
5
|
-
* @typedef {AppearanceSet} VariantProp
|
|
6
|
-
*/
|
|
7
|
-
export default {
|
|
8
|
-
/**
|
|
9
|
-
* 'variant' is an optional object prop on all themable components.
|
|
10
|
-
*
|
|
11
|
-
* Contains an object with keys that correspond to the current component theme's allowed
|
|
12
|
-
* appearances and values that correspond to the allowed values of that component.
|
|
13
|
-
*
|
|
14
|
-
* Since the particular keys and values depend on which theme is currently active,
|
|
15
|
-
* the exact shape of variant props is not enforced using PropTypes.
|
|
16
|
-
*/
|
|
17
|
-
propType: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]))
|
|
18
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import PropTypes from 'prop-types';
|
|
2
|
-
import getPropSelector from './getPropSelector';
|
|
3
|
-
const viewPropTypes = {
|
|
4
|
-
pointerEvents: PropTypes.oneOf(['all', 'none', 'box-only', 'box-none']),
|
|
5
|
-
onLayout: PropTypes.func,
|
|
6
|
-
nativeID: PropTypes.string,
|
|
7
|
-
testID: PropTypes.string,
|
|
8
|
-
dataSet: PropTypes.object
|
|
9
|
-
};
|
|
10
|
-
export default {
|
|
11
|
-
/**
|
|
12
|
-
* Subset of `View` proptypes that could conceivably be needed on any component
|
|
13
|
-
* that renders a single View.
|
|
14
|
-
*/
|
|
15
|
-
types: viewPropTypes,
|
|
16
|
-
/**
|
|
17
|
-
* Filters a props object, returning only cross-platform View props that are potentially
|
|
18
|
-
* relevant to any basic layout component that renders one View.
|
|
19
|
-
*/
|
|
20
|
-
select: getPropSelector(viewPropTypes)
|
|
21
|
-
};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import mediaQuery from 'css-mediaquery';
|
|
2
|
-
import Dimensions from "react-native-web/dist/exports/Dimensions";
|
|
3
|
-
import { isMediaOrPseudo, isMedia } from '../utils/common';
|
|
4
|
-
const createStyleSheet = stylesWithQuery => {
|
|
5
|
-
if (!stylesWithQuery) return {
|
|
6
|
-
ids: {},
|
|
7
|
-
styles: {},
|
|
8
|
-
fullStyles: {}
|
|
9
|
-
};
|
|
10
|
-
let cleanStyles;
|
|
11
|
-
const ids = {};
|
|
12
|
-
Object.keys(stylesWithQuery).forEach(key => {
|
|
13
|
-
if (!(stylesWithQuery !== null && stylesWithQuery !== void 0 && stylesWithQuery[key])) return;
|
|
14
|
-
const mediaQueriesAndPseudoClasses = Object.keys(stylesWithQuery[key]).filter(isMediaOrPseudo);
|
|
15
|
-
cleanStyles = JSON.parse(JSON.stringify(stylesWithQuery));
|
|
16
|
-
mediaQueriesAndPseudoClasses.forEach(str => {
|
|
17
|
-
if (isMedia(str)) {
|
|
18
|
-
const mqStr = str.replace('@media', '');
|
|
19
|
-
const {
|
|
20
|
-
width,
|
|
21
|
-
height
|
|
22
|
-
} = Dimensions.get('window');
|
|
23
|
-
const isMatchingMediaQuery = mediaQuery.match(mqStr, {
|
|
24
|
-
width,
|
|
25
|
-
height,
|
|
26
|
-
orientation: width > height ? 'landscape' : 'portrait',
|
|
27
|
-
'aspect-ratio': width / height
|
|
28
|
-
});
|
|
29
|
-
if (isMatchingMediaQuery) {
|
|
30
|
-
cleanStyles = {
|
|
31
|
-
...cleanStyles,
|
|
32
|
-
[key]: {
|
|
33
|
-
...cleanStyles[key],
|
|
34
|
-
...stylesWithQuery[key][str]
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
delete cleanStyles[key][str];
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
return {
|
|
43
|
-
ids,
|
|
44
|
-
styles: cleanStyles,
|
|
45
|
-
fullStyles: stylesWithQuery
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
export default createStyleSheet;
|
|
@@ -1,36 +0,0 @@
|
|
|
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
|
-
const createStyleSheet = stylesWithQuery => {
|
|
6
|
-
if (!stylesWithQuery) return {
|
|
7
|
-
ids: {},
|
|
8
|
-
styles: {},
|
|
9
|
-
fullStyles: {}
|
|
10
|
-
};
|
|
11
|
-
let ids = {};
|
|
12
|
-
const cleanStyles = deepClone(stylesWithQuery);
|
|
13
|
-
Object.keys(stylesWithQuery).forEach(key => {
|
|
14
|
-
if (!(stylesWithQuery !== null && stylesWithQuery !== void 0 && stylesWithQuery[key])) return;
|
|
15
|
-
const mediaQueriesAndPseudoClasses = Object.keys(stylesWithQuery[key]).filter(isMediaOrPseudo);
|
|
16
|
-
mediaQueriesAndPseudoClasses.forEach(query => {
|
|
17
|
-
var _ids;
|
|
18
|
-
const sanitizedStyle = sanitizeStyle(stylesWithQuery[key][query]);
|
|
19
|
-
const css = createDeclarationBlock(sanitizedStyle);
|
|
20
|
-
const stringHash = `rnmq-${hash(`${key}${query}${css}`)}`;
|
|
21
|
-
const rule = createCssRule(query, stringHash, css);
|
|
22
|
-
addCss(`${stringHash}`, rule);
|
|
23
|
-
delete cleanStyles[key][query];
|
|
24
|
-
ids = {
|
|
25
|
-
...ids,
|
|
26
|
-
[key]: `${(_ids = ids) !== null && _ids !== void 0 && _ids[key] ? `${ids[key]} ` : ''}${stringHash}`
|
|
27
|
-
};
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
return {
|
|
31
|
-
ids,
|
|
32
|
-
styles: cleanStyles,
|
|
33
|
-
fullStyles: stylesWithQuery
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
export default createStyleSheet;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-bitwise */
|
|
2
|
-
export default function hash(text) {
|
|
3
|
-
if (!text) {
|
|
4
|
-
return '';
|
|
5
|
-
}
|
|
6
|
-
let hashValue = 5381;
|
|
7
|
-
let index = text.length - 1;
|
|
8
|
-
while (index) {
|
|
9
|
-
hashValue = hashValue * 33 ^ text.charCodeAt(index);
|
|
10
|
-
index -= 1;
|
|
11
|
-
}
|
|
12
|
-
return (hashValue >>> 0).toString(16);
|
|
13
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
const isMedia = query => query.indexOf('@media') === 0;
|
|
2
|
-
const isPseudo = query => query.indexOf(':') === 0;
|
|
3
|
-
const isMediaOrPseudo = query => isMedia(query) || isPseudo(query);
|
|
4
|
-
const deepClone = obj => JSON.parse(JSON.stringify(obj));
|
|
5
|
-
const createCssRule = (query, stringHash, css) => {
|
|
6
|
-
let rule;
|
|
7
|
-
const dataMediaSelector = `[data-media~="${stringHash}"]`;
|
|
8
|
-
if (isMedia(query)) {
|
|
9
|
-
rule = `${query} {${dataMediaSelector} ${css}}`;
|
|
10
|
-
} else {
|
|
11
|
-
rule = `${dataMediaSelector}${query} ${css}`;
|
|
12
|
-
}
|
|
13
|
-
return rule;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Sanitizes the style object by converting any functions to their string representation.
|
|
18
|
-
*
|
|
19
|
-
* @param {Object} style - The style object to sanitize.
|
|
20
|
-
* @returns {Object} - The sanitized style object.
|
|
21
|
-
*/
|
|
22
|
-
const sanitizeStyle = style => {
|
|
23
|
-
const sanitizedStyle = {
|
|
24
|
-
...style
|
|
25
|
-
};
|
|
26
|
-
Object.keys(sanitizedStyle).forEach(property => {
|
|
27
|
-
if (typeof sanitizedStyle[property] === 'function') {
|
|
28
|
-
sanitizedStyle[property] = sanitizedStyle[property].toString();
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
return sanitizedStyle;
|
|
32
|
-
};
|
|
33
|
-
export { isMedia, isPseudo, isMediaOrPseudo, deepClone, createCssRule, sanitizeStyle };
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
-
const createDeclarationBlock = style => {
|
|
5
|
-
const domStyle = prefixStyles(createReactDOMStyle(style));
|
|
6
|
-
const declarationsString = Object.keys(domStyle).map(property => {
|
|
7
|
-
const value = domStyle[property];
|
|
8
|
-
const prop = hyphenateStyleName(property);
|
|
9
|
-
if (Array.isArray(value)) {
|
|
10
|
-
return value.map(v => `${prop}:${v}`).join(';');
|
|
11
|
-
}
|
|
12
|
-
return `${prop}:${value} !important`;
|
|
13
|
-
}).sort().join(';');
|
|
14
|
-
return `{${declarationsString};}`;
|
|
15
|
-
};
|
|
16
|
-
export default createDeclarationBlock;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { viewports } from '@telus-uds/system-constants';
|
|
2
|
-
const inherit = _ref => {
|
|
3
|
-
let {
|
|
4
|
-
xs,
|
|
5
|
-
sm = xs,
|
|
6
|
-
md = sm,
|
|
7
|
-
lg = md,
|
|
8
|
-
xl = lg
|
|
9
|
-
} = _ref;
|
|
10
|
-
return {
|
|
11
|
-
xs,
|
|
12
|
-
sm,
|
|
13
|
-
md,
|
|
14
|
-
lg,
|
|
15
|
-
xl
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @typedef { Object } CssStyles
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @typedef { Object } ViewportStyles
|
|
25
|
-
* @property { CssStyles } xs - The CSS styles for the "xs" viewport (required).
|
|
26
|
-
* @property { CssStyles } [sm] - Optional styles for the "sm" viewport. Inherits from "xs" if not specified.
|
|
27
|
-
* @property { CssStyles } [md] - Optional styles for the "md" viewport. Inherits from "sm" if not specified.
|
|
28
|
-
* @property { CssStyles } [lg] - Optional styles for the "lg" viewport. Inherits from "md" if not specified.
|
|
29
|
-
* @property { CssStyles } [xl] - Optional styles for the "xl" viewport. Inherits from "lg" if not specified.
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* @typedef { Record<String, CssStyles> } MediaQueryStyles
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Generates media query styles based on specified viewport styles.
|
|
38
|
-
* @param { Object } viewportStyles - The styles for different viewports.
|
|
39
|
-
* @param { boolean } [shouldInherit=true] - Flag indicating whether to inherit styles.
|
|
40
|
-
* @returns { Object } - The media query styles.
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
function createMediaQueryStyles(viewportStyles) {
|
|
44
|
-
let shouldInherit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
45
|
-
const effectiveStyles = shouldInherit ? inherit(viewportStyles) : viewportStyles;
|
|
46
|
-
const viewportsArray = viewports.keys;
|
|
47
|
-
const mediaQueries = Object.entries(effectiveStyles).reduce((acc, _ref2) => {
|
|
48
|
-
let [viewport, styles] = _ref2;
|
|
49
|
-
const minWidth = viewports.map.get(viewport);
|
|
50
|
-
const nextViewport = viewportsArray[viewportsArray.indexOf(viewport) + 1];
|
|
51
|
-
const maxWidth = viewports.map.get(nextViewport);
|
|
52
|
-
const mediaQuery = `@media (min-width: ${minWidth}px)${maxWidth ? ` and (max-width: ${maxWidth}px)` : ''}`;
|
|
53
|
-
return {
|
|
54
|
-
...acc,
|
|
55
|
-
[mediaQuery]: styles
|
|
56
|
-
};
|
|
57
|
-
}, {});
|
|
58
|
-
return mediaQueries;
|
|
59
|
-
}
|
|
60
|
-
export default createMediaQueryStyles;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const uppercasePattern = /[A-Z]/g;
|
|
2
|
-
const msPattern = /^ms-/;
|
|
3
|
-
const cache = {};
|
|
4
|
-
const toHyphenLower = match => `-${match.toLowerCase()}`;
|
|
5
|
-
const hyphenateStyleName = name => {
|
|
6
|
-
if (Object.prototype.hasOwnProperty.call(cache, name)) {
|
|
7
|
-
return cache[name];
|
|
8
|
-
}
|
|
9
|
-
const hName = name.replace(uppercasePattern, toHyphenLower);
|
|
10
|
-
return cache[name] === msPattern.test(hName) ? `-${hName}` : hName;
|
|
11
|
-
};
|
|
12
|
-
export default hyphenateStyleName;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
3
|
-
const rules = {};
|
|
4
|
-
let styleSheet;
|
|
5
|
-
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
6
|
-
styleSheet = (() => {
|
|
7
|
-
const style = document.createElement('style');
|
|
8
|
-
style.id = 'RNMQCSS';
|
|
9
|
-
style.appendChild(document.createTextNode(''));
|
|
10
|
-
document.head.appendChild(style);
|
|
11
|
-
return style.sheet;
|
|
12
|
-
})();
|
|
13
|
-
}
|
|
14
|
-
export const hasCss = (id, text) => {
|
|
15
|
-
var _rules$id$text, _rules$id$text$includ;
|
|
16
|
-
return !!rules[id] && !!((_rules$id$text = rules[id].text) !== null && _rules$id$text !== void 0 && (_rules$id$text$includ = _rules$id$text.includes) !== null && _rules$id$text$includ !== void 0 && _rules$id$text$includ.call(_rules$id$text, text));
|
|
17
|
-
};
|
|
18
|
-
export const addCss = (id, text) => {
|
|
19
|
-
if (!hasCss(id, text)) {
|
|
20
|
-
var _rules$id;
|
|
21
|
-
rules[id] = (rules === null || rules === void 0 ? void 0 : rules[id]) || {};
|
|
22
|
-
rules[id].text = (((_rules$id = rules[id]) === null || _rules$id === void 0 ? void 0 : _rules$id.text) || '') + text;
|
|
23
|
-
if (styleSheet) {
|
|
24
|
-
styleSheet.insertRule(text, Object.keys(rules).length - 1);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
export const flush = () => {
|
|
29
|
-
if (Platform.OS === 'web') {
|
|
30
|
-
return /*#__PURE__*/React.createElement('style', {
|
|
31
|
-
id: 'rnmq',
|
|
32
|
-
key: 'rnmq',
|
|
33
|
-
dangerouslySetInnerHTML: {
|
|
34
|
-
__html: Object.keys(rules).map(key => rules[key].text).join('\n')
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
return {};
|
|
39
|
-
};
|
package/lib-module/utils/ssr.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import AppRegistry from "react-native-web/dist/exports/AppRegistry";
|
|
3
|
-
import { flush } from './ssr-media-query/utils/inject';
|
|
4
|
-
/** @typedef {import('react').ComponentType} ReactComponent */
|
|
5
|
-
/** @typedef {import('react').ReactElement} ReactElement */
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Returns object with `renderApp` and `getStyles` functions.
|
|
9
|
-
* Weave these into your app's server-side render process:
|
|
10
|
-
*
|
|
11
|
-
* - Call `renderApp` first to do the actual server-side render
|
|
12
|
-
* - After the render is complete, call `getStyles`
|
|
13
|
-
* - Include the style tags returned by `getStyles` in the SSR <head>
|
|
14
|
-
*
|
|
15
|
-
* @param {string} [appName] - optional unique identifier if ssrStyles is called multiple times for multiple apps
|
|
16
|
-
* @param {object} [options] -
|
|
17
|
-
* - `styleGetters`: optional array of additional style getter functions to call after render
|
|
18
|
-
* - `collectStyles`: optional function, takes the rendered app, returns either the same or a new app element
|
|
19
|
-
* @param {boolean} [options.styleGetters]
|
|
20
|
-
* @param {(ReactElement) => ReactElement} [options.collectStyles]
|
|
21
|
-
*/
|
|
22
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
|
-
export const ssrStyles = function () {
|
|
24
|
-
let appName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'UDS app';
|
|
25
|
-
let {
|
|
26
|
-
styleGetters = [],
|
|
27
|
-
collectStyles
|
|
28
|
-
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
29
|
-
let hasAppRendered = false;
|
|
30
|
-
return {
|
|
31
|
-
/**
|
|
32
|
-
* Server-side-renders the provided app in a way that supports collecting
|
|
33
|
-
* styles for Styled Components and React Native Web stylesheets.
|
|
34
|
-
*
|
|
35
|
-
* @param {ReactComponent} App - the root component for the app
|
|
36
|
-
* @param {object} [props] - props for this render e.g. page routing props
|
|
37
|
-
* @param {object} [options] -
|
|
38
|
-
* - `renderedByRNW`: pass as true if the main render is by AppRegistry.runApplication from React Native
|
|
39
|
-
* - `WrapperComponent`: Component rendered with no props around app content and inside root tag
|
|
40
|
-
* @param {boolean} [options.renderedByRNW]
|
|
41
|
-
* @param {ReactComponent} [options.WrapperComponent]
|
|
42
|
-
*
|
|
43
|
-
* @returns {ReactElement} - the rendered app output
|
|
44
|
-
*/
|
|
45
|
-
renderApp: function (App, props) {
|
|
46
|
-
let {
|
|
47
|
-
renderedByRNW = false,
|
|
48
|
-
WrapperComponent
|
|
49
|
-
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
50
|
-
AppRegistry.registerComponent(appName, () => App);
|
|
51
|
-
// AppRegistry.getApplication renders the app in a container, and collects styles.
|
|
52
|
-
const {
|
|
53
|
-
element,
|
|
54
|
-
getStyleElement
|
|
55
|
-
} = AppRegistry.getApplication(appName, {
|
|
56
|
-
WrapperComponent,
|
|
57
|
-
initialProps: props
|
|
58
|
-
});
|
|
59
|
-
let renderedApp =
|
|
60
|
-
// React Native Web's AppRegistry.getApplication assumes the app is rendered using
|
|
61
|
-
// AppRegistry.runApplication and wraps it in <AppContainer>, which wraps the entire app
|
|
62
|
-
// in two outer containers resembling <View style={{ flex: 1 }} pointerEvents="box-none">.
|
|
63
|
-
// So, use that IF user says AppRegistry.runApplication will do the client-side render.
|
|
64
|
-
renderedByRNW && element ||
|
|
65
|
-
// If the live app is not rendered using AppRegistry.runApplication, we need to
|
|
66
|
-
// re-render it without the <AppContainer> wrapper, to avoid SSR mismatch errors.
|
|
67
|
-
// Default to this as many platforms (e.g. NextJS) will use their own renderers.
|
|
68
|
-
WrapperComponent ? /*#__PURE__*/_jsx(WrapperComponent, {
|
|
69
|
-
children: /*#__PURE__*/_jsx(App, {
|
|
70
|
-
...props
|
|
71
|
-
})
|
|
72
|
-
}) : /*#__PURE__*/_jsx(App, {
|
|
73
|
-
...props
|
|
74
|
-
});
|
|
75
|
-
const getRNWStyle = () => getStyleElement({
|
|
76
|
-
key: 'react-native-stylesheet'
|
|
77
|
-
});
|
|
78
|
-
styleGetters.push(getRNWStyle);
|
|
79
|
-
if (typeof collectStyles === 'function') {
|
|
80
|
-
renderedApp = collectStyles(renderedApp);
|
|
81
|
-
}
|
|
82
|
-
hasAppRendered = true;
|
|
83
|
-
return renderedApp;
|
|
84
|
-
},
|
|
85
|
-
/**
|
|
86
|
-
* Turns styles collected during renderApp into an array of React elements of
|
|
87
|
-
* HTML <style> tags ready for insertion into the SSR HTML's <head>.
|
|
88
|
-
*
|
|
89
|
-
* Must be called after `renderApp` has completed.
|
|
90
|
-
*
|
|
91
|
-
* @param {...ReactElement} existingStyles - any existing style tag elements to merge in
|
|
92
|
-
* @returns {ReactElement[]} - flat array of <style> React elements
|
|
93
|
-
*/
|
|
94
|
-
getStyles: function () {
|
|
95
|
-
if (!hasAppRendered) throw new Error('Called getStyles before renderApp in ssrStyles');
|
|
96
|
-
for (var _len = arguments.length, existingStyles = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
97
|
-
existingStyles[_key] = arguments[_key];
|
|
98
|
-
}
|
|
99
|
-
return [...existingStyles, ...styleGetters.flatMap(getter => getter()), flush()];
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
export default ssrStyles;
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* @deprecated - use ssrStyles instead
|
|
107
|
-
*
|
|
108
|
-
* Registers the app's root component with React Native Web and generates
|
|
109
|
-
* the main <style> tag containing React Native Web stylesheet styles.
|
|
110
|
-
*
|
|
111
|
-
* @param {ReactComponent} AppRoot
|
|
112
|
-
* @param {string} [appName]
|
|
113
|
-
* @returns {ReactElement[]}
|
|
114
|
-
*/
|
|
115
|
-
|
|
116
|
-
export const getReactNativeWebSSRStyles = function (AppRoot) {
|
|
117
|
-
let appName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'app';
|
|
118
|
-
AppRegistry.registerComponent(appName, () => AppRoot);
|
|
119
|
-
const {
|
|
120
|
-
getStyleElement
|
|
121
|
-
} = AppRegistry.getApplication(appName);
|
|
122
|
-
return [getStyleElement()];
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* @deprecated - use ssrStyles instead
|
|
127
|
-
*
|
|
128
|
-
* Gets style tags for each currently supported CSS-in-JS library and returns
|
|
129
|
-
* them alongside any existing style tags.
|
|
130
|
-
*
|
|
131
|
-
* @param {ReactComponent} AppRoot
|
|
132
|
-
* @param {string} [appName]
|
|
133
|
-
* @param {ReactElement[]} [existingStyles]
|
|
134
|
-
* @returns {ReactElement[]}
|
|
135
|
-
*/
|
|
136
|
-
export const getSSRStyles = function (AppRoot) {
|
|
137
|
-
let appName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'app';
|
|
138
|
-
let existingStyles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
139
|
-
return [...existingStyles, ...getReactNativeWebSSRStyles(AppRoot, appName)
|
|
140
|
-
// if any other CSS-in-JS is added e.g. styled-components generate and add its styles here
|
|
141
|
-
];
|
|
142
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transforms a gradient object into a CSS gradient string.
|
|
3
|
-
*
|
|
4
|
-
* @param {Object} gradient - The gradient object to transform.
|
|
5
|
-
* @param {string} gradient.type - The type of gradient (linear or radial).
|
|
6
|
-
* @param {number} gradient.angle - The angle of the linear gradient in degrees.
|
|
7
|
-
* @param {Array} gradient.stops - An array of gradient stops.
|
|
8
|
-
* @param {string} gradient.stops[].color - The color of the gradient stop.
|
|
9
|
-
* @param {number} gradient.stops[].stop - The position of the gradient stop as a percentage.
|
|
10
|
-
* @returns {string} The CSS gradient string.
|
|
11
|
-
*/
|
|
12
|
-
export const transformGradient = gradient => `${gradient.type}-gradient(${gradient.angle}deg, ${gradient.stops[0].color} ${gradient.stops[0].stop * 100}%, ${gradient.stops[1].color} ${gradient.stops[1].stop * 100}%)`;
|
|
13
|
-
export default {
|
|
14
|
-
transformGradient
|
|
15
|
-
};
|