@telus-uds/components-base 0.0.2-prerelease.7 → 1.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/.eslintrc.js +9 -0
- package/.ultra.cache.json +1 -1
- package/CHANGELOG.md +71 -0
- package/README.md +4 -2
- package/__fixtures__/Accessible.js +33 -0
- package/__fixtures__/Accessible.native.js +32 -0
- package/__fixtures__/test-utils.js +25 -0
- package/__fixtures__/testTheme.js +438 -31
- package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
- package/__tests__/Button/ButtonGroup.test.jsx +6 -7
- package/__tests__/Checkbox/Checkbox.test.jsx +2 -2
- package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
- package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
- package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
- package/__tests__/Icon/Icon.test.jsx +3 -3
- package/__tests__/IconButton/IconButton.test.jsx +52 -0
- package/__tests__/Link/LinkBase.test.jsx +0 -14
- package/__tests__/Modal/Modal.test.jsx +47 -0
- package/__tests__/Notification/Notification.test.jsx +20 -0
- package/__tests__/Pagination/Pagination.test.jsx +2 -2
- package/__tests__/Progress/Progress.test.jsx +79 -0
- package/__tests__/Radio/Radio.test.jsx +2 -2
- package/__tests__/Radio/RadioGroup.test.jsx +220 -0
- package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
- package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
- package/__tests__/Search/Search.test.jsx +73 -0
- package/__tests__/Select/Select.test.jsx +3 -2
- package/__tests__/Skeleton/Skeleton.test.jsx +1 -1
- package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
- package/__tests__/Tabs/Tabs.test.jsx +40 -0
- package/__tests__/Tags/Tags.test.jsx +5 -6
- package/__tests__/TextInput/TextArea.test.jsx +3 -2
- package/__tests__/TextInput/TextInputBase.test.jsx +10 -5
- package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
- package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
- package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
- package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
- package/__tests__/utils/children.test.jsx +128 -0
- package/__tests__/utils/input.test.js +59 -1
- package/__tests__/utils/semantics.test.jsx +43 -0
- package/__tests__/utils/useCopy.test.js +14 -3
- package/babel.config.js +20 -0
- package/jest.config.js +6 -3
- package/lib/A11yInfoProvider/index.js +54 -26
- package/lib/A11yText/index.js +45 -17
- package/lib/ActivityIndicator/Spinner.js +81 -0
- package/lib/ActivityIndicator/Spinner.native.js +129 -91
- package/lib/ActivityIndicator/index.js +28 -12
- package/lib/ActivityIndicator/shared.js +27 -12
- package/lib/BaseProvider/index.js +34 -11
- package/lib/Box/Box.js +153 -35
- package/lib/Box/index.js +13 -2
- package/lib/Button/Button.js +38 -16
- package/lib/Button/ButtonBase.js +93 -79
- package/lib/Button/ButtonGroup.js +112 -73
- package/lib/Button/ButtonLink.js +45 -19
- package/lib/Button/index.js +31 -4
- package/lib/Button/propTypes.js +32 -9
- package/lib/Card/Card.js +38 -41
- package/lib/Card/CardBase.js +86 -0
- package/lib/Card/PressableCardBase.js +141 -0
- package/lib/Card/index.js +40 -2
- package/lib/Checkbox/Checkbox.js +158 -111
- package/lib/Checkbox/CheckboxGroup.js +241 -0
- package/lib/Checkbox/CheckboxInput.js +74 -0
- package/lib/Checkbox/CheckboxInput.native.js +9 -1
- package/lib/Checkbox/index.js +21 -2
- package/lib/Divider/Divider.js +59 -28
- package/lib/Divider/index.js +13 -2
- package/lib/ExpandCollapse/Accordion.js +26 -7
- package/lib/ExpandCollapse/Control.js +60 -31
- package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
- package/lib/ExpandCollapse/Panel.js +83 -44
- package/lib/ExpandCollapse/index.js +25 -7
- package/lib/Feedback/Feedback.js +77 -43
- package/lib/Feedback/index.js +13 -2
- package/lib/Fieldset/Fieldset.js +165 -0
- package/lib/Fieldset/FieldsetContainer.js +46 -0
- package/lib/Fieldset/FieldsetContainer.native.js +38 -0
- package/lib/Fieldset/Legend.js +38 -0
- package/lib/Fieldset/Legend.native.js +48 -0
- package/lib/Fieldset/cssReset.js +21 -0
- package/lib/Fieldset/index.js +13 -0
- package/lib/FlexGrid/Col/Col.js +73 -41
- package/lib/FlexGrid/Col/index.js +13 -2
- package/lib/FlexGrid/FlexGrid.js +99 -49
- package/lib/FlexGrid/Row/Row.js +58 -30
- package/lib/FlexGrid/Row/index.js +13 -2
- package/lib/FlexGrid/helpers/index.js +9 -1
- package/lib/FlexGrid/index.js +13 -2
- package/lib/FlexGrid/providers/GutterContext.js +15 -3
- package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
- package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
- package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
- package/lib/HorizontalScroll/dictionary.js +18 -0
- package/lib/HorizontalScroll/index.js +35 -0
- package/lib/HorizontalScroll/itemPositions.js +128 -0
- package/lib/Icon/Icon.js +57 -48
- package/lib/Icon/IconText.js +54 -25
- package/lib/Icon/index.js +31 -4
- package/lib/IconButton/IconButton.js +140 -0
- package/lib/IconButton/index.js +13 -0
- package/lib/InputLabel/InputLabel.js +102 -40
- package/lib/InputLabel/LabelContent.js +41 -0
- package/lib/InputLabel/LabelContent.native.js +32 -6
- package/lib/InputLabel/index.js +13 -2
- package/lib/InputSupports/InputSupports.js +71 -52
- package/lib/InputSupports/index.js +13 -2
- package/lib/InputSupports/propTypes.js +19 -8
- package/lib/InputSupports/useInputSupports.js +41 -0
- package/lib/Link/ChevronLink.js +44 -20
- package/lib/Link/InlinePressable.js +56 -0
- package/lib/Link/InlinePressable.native.js +39 -15
- package/lib/Link/Link.js +36 -13
- package/lib/Link/LinkBase.js +98 -61
- package/lib/Link/TextButton.js +41 -17
- package/lib/Link/index.js +39 -5
- package/lib/List/List.js +55 -26
- package/lib/List/ListItem.js +79 -41
- package/lib/List/index.js +13 -2
- package/lib/Modal/Modal.js +231 -0
- package/lib/Modal/dictionary.js +16 -0
- package/lib/Modal/index.js +13 -0
- package/lib/Notification/Notification.js +216 -0
- package/lib/Notification/dictionary.js +15 -0
- package/lib/Notification/index.js +13 -0
- package/lib/Pagination/PageButton.js +61 -28
- package/lib/Pagination/Pagination.js +78 -43
- package/lib/Pagination/SideButton.js +73 -42
- package/lib/Pagination/dictionary.js +9 -2
- package/lib/Pagination/index.js +13 -2
- package/lib/Pagination/usePagination.js +12 -2
- package/lib/Progress/Progress.js +104 -0
- package/lib/Progress/ProgressBar.js +157 -0
- package/lib/Progress/ProgressBarBackground.js +61 -0
- package/lib/Progress/index.js +16 -0
- package/lib/Radio/Radio.js +116 -114
- package/lib/Radio/RadioButton.js +152 -0
- package/lib/Radio/RadioGroup.js +244 -0
- package/lib/Radio/RadioInput.js +76 -0
- package/lib/Radio/RadioInput.native.js +9 -1
- package/lib/Radio/index.js +21 -2
- package/lib/RadioCard/RadioCard.js +244 -0
- package/lib/RadioCard/RadioCardGroup.js +252 -0
- package/lib/RadioCard/index.js +21 -0
- package/lib/Search/Search.js +254 -0
- package/lib/Search/dictionary.js +19 -0
- package/lib/Search/index.js +13 -0
- package/lib/Select/Group.js +33 -0
- package/lib/Select/Group.native.js +16 -5
- package/lib/Select/Item.js +29 -0
- package/lib/Select/Item.native.js +14 -4
- package/lib/Select/Picker.js +84 -0
- package/lib/Select/Picker.native.js +73 -30
- package/lib/Select/Select.js +155 -85
- package/lib/Select/index.js +19 -6
- package/lib/SideNav/Item.js +63 -37
- package/lib/SideNav/ItemContent.js +41 -15
- package/lib/SideNav/ItemsGroup.js +55 -31
- package/lib/SideNav/SideNav.js +100 -73
- package/lib/SideNav/index.js +15 -1
- package/lib/Skeleton/Skeleton.js +64 -46
- package/lib/Skeleton/index.js +13 -2
- package/lib/Skeleton/skeleton.constant.js +12 -0
- package/lib/Skeleton/skeletonWebAnimation.js +27 -0
- package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
- package/lib/Spacer/Spacer.js +49 -18
- package/lib/Spacer/index.js +13 -2
- package/lib/StackView/StackView.js +72 -31
- package/lib/StackView/StackWrap.js +43 -13
- package/lib/StackView/StackWrap.native.js +13 -2
- package/lib/StackView/StackWrapBox.js +77 -29
- package/lib/StackView/StackWrapGap.js +56 -26
- package/lib/StackView/common.js +23 -6
- package/lib/StackView/getStackedContent.js +47 -17
- package/lib/StackView/index.js +29 -5
- package/lib/StepTracker/Step.js +245 -0
- package/lib/StepTracker/StepTracker.js +202 -0
- package/lib/StepTracker/dictionary.js +17 -0
- package/lib/StepTracker/index.js +13 -0
- package/lib/Tabs/Tabs.js +124 -0
- package/lib/Tabs/TabsItem.js +238 -0
- package/lib/Tabs/index.js +13 -0
- package/lib/Tags/Tags.js +148 -99
- package/lib/Tags/index.js +13 -2
- package/lib/TextInput/TextArea.js +57 -28
- package/lib/TextInput/TextInput.js +50 -23
- package/lib/TextInput/TextInputBase.js +90 -63
- package/lib/TextInput/index.js +23 -3
- package/lib/TextInput/propTypes.js +18 -7
- package/lib/ThemeProvider/ThemeProvider.js +46 -18
- package/lib/ThemeProvider/index.js +61 -6
- package/lib/ThemeProvider/useSetTheme.js +19 -5
- package/lib/ThemeProvider/useTheme.js +13 -4
- package/lib/ThemeProvider/useThemeTokens.js +32 -16
- package/lib/ThemeProvider/utils/index.js +31 -2
- package/lib/ThemeProvider/utils/styles.js +50 -14
- package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
- package/lib/ToggleSwitch/ToggleSwitch.js +85 -56
- package/lib/ToggleSwitch/index.js +13 -2
- package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
- package/lib/Tooltip/Backdrop.native.js +39 -15
- package/lib/Tooltip/Tooltip.js +117 -74
- package/lib/Tooltip/dictionary.js +9 -2
- package/lib/Tooltip/getTooltipPosition.js +9 -1
- package/lib/Tooltip/index.js +13 -2
- package/lib/TooltipButton/TooltipButton.js +57 -38
- package/lib/TooltipButton/index.js +13 -2
- package/lib/Typography/Typography.js +87 -41
- package/lib/Typography/index.js +13 -2
- package/lib/ViewportProvider/ViewportProvider.js +34 -13
- package/lib/ViewportProvider/index.js +28 -3
- package/lib/ViewportProvider/useViewport.js +15 -3
- package/lib/ViewportProvider/useViewportListener.js +24 -10
- package/lib/index.js +539 -33
- package/lib/utils/a11y/index.js +31 -1
- package/lib/utils/a11y/semantics.js +173 -0
- package/lib/utils/a11y/textSize.js +23 -7
- package/lib/utils/animation/index.js +15 -2
- package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
- package/lib/utils/children.js +134 -0
- package/lib/utils/index.js +163 -10
- package/lib/utils/info/index.js +18 -6
- package/lib/utils/info/platform/index.js +19 -7
- package/lib/utils/info/platform/platform.android.js +8 -1
- package/lib/utils/info/platform/platform.ios.js +8 -1
- package/lib/utils/info/platform/platform.js +8 -0
- package/lib/utils/info/platform/platform.native.js +8 -1
- package/lib/utils/info/versions.js +15 -4
- package/lib/utils/input.js +53 -25
- package/lib/utils/pressability.js +38 -10
- package/lib/utils/propTypes.js +287 -141
- package/lib/utils/useCopy.js +40 -5
- package/lib/utils/useHash.js +52 -0
- package/lib/utils/useHash.native.js +15 -0
- package/lib/utils/useResponsiveProp.js +21 -9
- package/lib/utils/useSpacingScale.js +19 -9
- package/lib/utils/useUniqueId.js +12 -3
- package/package.json +14 -9
- package/release-context.json +4 -4
- package/src/A11yText/index.jsx +6 -4
- package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
- package/src/ActivityIndicator/Spinner.native.jsx +5 -3
- package/src/Box/Box.jsx +132 -39
- package/src/Button/Button.jsx +10 -6
- package/src/Button/ButtonBase.jsx +99 -99
- package/src/Button/ButtonGroup.jsx +81 -69
- package/src/Button/ButtonLink.jsx +21 -15
- package/src/Button/propTypes.js +12 -2
- package/src/Card/Card.jsx +5 -31
- package/src/Card/CardBase.jsx +59 -0
- package/src/Card/PressableCardBase.jsx +119 -0
- package/src/Card/index.js +3 -0
- package/src/Checkbox/Checkbox.jsx +121 -112
- package/src/Checkbox/CheckboxGroup.jsx +206 -0
- package/src/Checkbox/{CheckboxInput.web.jsx → CheckboxInput.jsx} +0 -0
- package/src/Checkbox/index.js +2 -0
- package/src/Divider/Divider.jsx +7 -4
- package/src/ExpandCollapse/Accordion.jsx +3 -2
- package/src/ExpandCollapse/Control.jsx +40 -43
- package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
- package/src/ExpandCollapse/Panel.jsx +69 -63
- package/src/Feedback/Feedback.jsx +36 -33
- package/src/Fieldset/Fieldset.jsx +136 -0
- package/src/Fieldset/FieldsetContainer.jsx +31 -0
- package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
- package/src/Fieldset/Legend.jsx +21 -0
- package/src/Fieldset/Legend.native.jsx +27 -0
- package/src/Fieldset/cssReset.js +14 -0
- package/src/Fieldset/index.js +3 -0
- package/src/FlexGrid/Col/Col.jsx +139 -132
- package/src/FlexGrid/FlexGrid.jsx +79 -51
- package/src/FlexGrid/Row/Row.jsx +55 -48
- package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
- package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
- package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
- package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
- package/src/HorizontalScroll/dictionary.js +11 -0
- package/src/HorizontalScroll/index.js +17 -0
- package/src/HorizontalScroll/itemPositions.js +101 -0
- package/src/Icon/Icon.jsx +43 -50
- package/src/Icon/IconText.jsx +23 -18
- package/src/Icon/index.js +2 -2
- package/src/IconButton/IconButton.jsx +114 -0
- package/src/IconButton/index.js +3 -0
- package/src/InputLabel/InputLabel.jsx +57 -35
- package/src/InputLabel/LabelContent.jsx +21 -0
- package/src/InputLabel/LabelContent.native.jsx +11 -2
- package/src/InputSupports/InputSupports.jsx +29 -45
- package/src/InputSupports/useInputSupports.js +30 -0
- package/src/Link/ChevronLink.jsx +26 -16
- package/src/Link/{InlinePressable.web.jsx → InlinePressable.jsx} +5 -3
- package/src/Link/InlinePressable.native.jsx +5 -3
- package/src/Link/Link.jsx +22 -16
- package/src/Link/LinkBase.jsx +76 -65
- package/src/Link/TextButton.jsx +30 -23
- package/src/List/List.jsx +5 -4
- package/src/List/ListItem.jsx +77 -82
- package/src/Modal/Modal.jsx +190 -0
- package/src/Modal/dictionary.js +9 -0
- package/src/Modal/index.js +3 -0
- package/src/Notification/Notification.jsx +164 -0
- package/src/Notification/dictionary.js +8 -0
- package/src/Notification/index.js +3 -0
- package/src/Pagination/PageButton.jsx +42 -35
- package/src/Pagination/Pagination.jsx +88 -92
- package/src/Pagination/SideButton.jsx +44 -41
- package/src/Progress/Progress.jsx +78 -0
- package/src/Progress/ProgressBar.jsx +123 -0
- package/src/Progress/ProgressBarBackground.jsx +36 -0
- package/src/Progress/index.js +6 -0
- package/src/Radio/Radio.jsx +82 -112
- package/src/Radio/RadioButton.jsx +142 -0
- package/src/Radio/RadioGroup.jsx +209 -0
- package/src/Radio/{RadioInput.web.jsx → RadioInput.jsx} +0 -0
- package/src/Radio/index.js +2 -0
- package/src/RadioCard/RadioCard.jsx +198 -0
- package/src/RadioCard/RadioCardGroup.jsx +218 -0
- package/src/RadioCard/index.js +5 -0
- package/src/Search/Search.jsx +225 -0
- package/src/Search/dictionary.js +12 -0
- package/src/Search/index.js +3 -0
- package/src/Select/{Group.web.jsx → Group.jsx} +0 -0
- package/src/Select/{Item.web.jsx → Item.jsx} +0 -0
- package/src/Select/Picker.jsx +74 -0
- package/src/Select/Picker.native.jsx +56 -49
- package/src/Select/Select.jsx +125 -92
- package/src/SideNav/Item.jsx +54 -47
- package/src/SideNav/ItemsGroup.jsx +50 -43
- package/src/SideNav/SideNav.jsx +68 -60
- package/src/Skeleton/Skeleton.jsx +25 -32
- package/src/Skeleton/skeleton.constant.js +3 -0
- package/src/Skeleton/skeletonWebAnimation.js +13 -0
- package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
- package/src/Spacer/Spacer.jsx +11 -4
- package/src/StackView/StackView.jsx +54 -23
- package/src/StackView/StackWrap.jsx +16 -7
- package/src/StackView/StackWrapBox.jsx +63 -28
- package/src/StackView/StackWrapGap.jsx +46 -24
- package/src/StackView/common.jsx +3 -2
- package/src/StackView/getStackedContent.jsx +8 -2
- package/src/StepTracker/Step.jsx +202 -0
- package/src/StepTracker/StepTracker.jsx +174 -0
- package/src/StepTracker/dictionary.js +10 -0
- package/src/StepTracker/index.js +3 -0
- package/src/Tabs/Tabs.jsx +97 -0
- package/src/Tabs/TabsItem.jsx +212 -0
- package/src/Tabs/index.js +3 -0
- package/src/Tags/Tags.jsx +115 -102
- package/src/TextInput/TextArea.jsx +5 -4
- package/src/TextInput/TextInput.jsx +5 -4
- package/src/TextInput/TextInputBase.jsx +95 -98
- package/src/ThemeProvider/ThemeProvider.jsx +11 -7
- package/src/ThemeProvider/useSetTheme.js +4 -0
- package/src/ThemeProvider/useThemeTokens.js +2 -2
- package/src/ThemeProvider/utils/styles.js +18 -5
- package/src/ThemeProvider/utils/theme-tokens.js +74 -5
- package/src/ToggleSwitch/ToggleSwitch.jsx +50 -52
- package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
- package/src/Tooltip/Tooltip.jsx +135 -131
- package/src/TooltipButton/TooltipButton.jsx +23 -27
- package/src/Typography/Typography.jsx +71 -47
- package/src/index.js +23 -2
- package/src/utils/a11y/index.js +1 -0
- package/src/utils/a11y/semantics.js +162 -0
- package/src/utils/children.jsx +119 -0
- package/src/utils/index.js +3 -0
- package/src/utils/info/platform/platform.js +1 -0
- package/src/utils/info/versions.js +2 -2
- package/src/utils/input.js +36 -25
- package/src/utils/pressability.js +4 -0
- package/src/utils/propTypes.js +199 -72
- package/src/utils/useCopy.js +30 -4
- package/src/utils/useHash.js +39 -0
- package/src/utils/useHash.native.js +6 -0
- package/stories/A11yText/A11yText.stories.jsx +6 -10
- package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
- package/stories/Box/Box.stories.jsx +1 -1
- package/stories/Button/Button.stories.jsx +2 -2
- package/stories/Button/ButtonGroup.stories.jsx +1 -1
- package/stories/Button/ButtonLink.stories.jsx +1 -1
- package/stories/Card/Card.stories.jsx +1 -1
- package/stories/Checkbox/Checkbox.stories.jsx +24 -1
- package/stories/Divider/Divider.stories.jsx +1 -1
- package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
- package/stories/Feedback/Feedback.stories.jsx +1 -1
- package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
- package/stories/FlexGrid/02 Row.stories.jsx +1 -1
- package/stories/FlexGrid/03 Col.stories.jsx +1 -1
- package/stories/Icon/Icon.stories.jsx +27 -7
- package/stories/IconButton/IconButton.stories.jsx +50 -0
- package/stories/InputLabel/InputLabel.stories.jsx +1 -1
- package/stories/Link/ChevronLink.stories.jsx +1 -1
- package/stories/Link/Link.stories.jsx +17 -21
- package/stories/Link/TextButton.stories.jsx +1 -1
- package/stories/List/List.stories.jsx +1 -1
- package/stories/Modal/Modal.stories.jsx +29 -0
- package/stories/Notification/Notification.stories.jsx +82 -0
- package/stories/Pagination/Pagination.stories.jsx +1 -1
- package/stories/Progress/Progress.stories.jsx +93 -0
- package/stories/Radio/Radio.stories.jsx +23 -36
- package/stories/RadioCard/RadioCard.stories.jsx +98 -0
- package/stories/Search/Search.stories.jsx +16 -0
- package/stories/Select/Select.stories.jsx +1 -1
- package/stories/SideNav/SideNav.stories.jsx +1 -1
- package/stories/SideNav/SideNavItem.stories.jsx +1 -1
- package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
- package/stories/Skeleton/Skeleton.stories.jsx +2 -2
- package/stories/Spacer/Spacer.stories.jsx +1 -1
- package/stories/StackView/StackView.stories.jsx +1 -1
- package/stories/StackView/StackWrap.stories.jsx +1 -1
- package/stories/StepTracker/StepTracker.stories.jsx +71 -0
- package/stories/Tabs/Tabs.stories.jsx +97 -0
- package/stories/Tags/Tags.stories.jsx +1 -1
- package/stories/TextInput/TextArea.stories.jsx +1 -1
- package/stories/TextInput/TextInput.stories.jsx +1 -1
- package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
- package/stories/Tooltip/Tooltip.stories.jsx +1 -1
- package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
- package/stories/Typography/Typography.stories.jsx +1 -1
- package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
- package/stories/supports.jsx +37 -3
- package/__fixtures__/accessible.icon.svg +0 -6
- package/babel.config.json +0 -8
- package/docs/Contributing.stories.mdx +0 -9
- package/docs/Fonts.stories.mdx +0 -104
- package/docs/Icons.stories.mdx +0 -144
- package/docs/Introduction.stories.mdx +0 -9
- package/lib/ActivityIndicator/Spinner.web.js +0 -55
- package/lib/Checkbox/CheckboxInput.web.js +0 -57
- package/lib/InputLabel/LabelContent.web.js +0 -17
- package/lib/Link/InlinePressable.web.js +0 -32
- package/lib/Radio/RadioInput.web.js +0 -59
- package/lib/Select/Group.web.js +0 -18
- package/lib/Select/Item.web.js +0 -15
- package/lib/Select/Picker.web.js +0 -63
- package/lib/config/svgr-icons-web.js +0 -9
- package/lib/config/svgr-icons.js +0 -52
- package/lib/utils/info/platform/platform.web.js +0 -1
- package/src/InputLabel/LabelContent.web.jsx +0 -13
- package/src/Select/Picker.web.jsx +0 -67
- package/src/config/svgr-icons-web.js +0 -11
- package/src/config/svgr-icons.js +0 -46
- package/src/utils/info/platform/platform.web.js +0 -1
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _default = {
|
|
2
8
|
en: {
|
|
3
9
|
a11yText: 'Reveal additional information.'
|
|
4
10
|
},
|
|
5
11
|
fr: {
|
|
6
12
|
a11yText: 'Afficher des renseignements supplémentaires.'
|
|
7
13
|
}
|
|
8
|
-
};
|
|
14
|
+
};
|
|
15
|
+
exports.default = _default;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
1
8
|
function normalizePosition(position) {
|
|
2
9
|
const {
|
|
3
10
|
left,
|
|
@@ -161,4 +168,5 @@ function getTooltipPosition(position, {
|
|
|
161
168
|
return normalizePosition(leastOverflowing.position === 'above' ? findRectByPosition('below', boundingRects) : leastOverflowing);
|
|
162
169
|
}
|
|
163
170
|
|
|
164
|
-
|
|
171
|
+
var _default = getTooltipPosition;
|
|
172
|
+
exports.default = _default;
|
package/lib/Tooltip/index.js
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _Tooltip = _interopRequireDefault(require("./Tooltip"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var _default = _Tooltip.default;
|
|
13
|
+
exports.default = _default;
|
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
15
|
+
|
|
16
|
+
var _utils = require("../utils");
|
|
17
|
+
|
|
18
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
19
|
+
|
|
20
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
23
|
|
|
25
24
|
const selectInnerContainerStyles = ({
|
|
26
25
|
borderRadius,
|
|
@@ -32,33 +31,53 @@ const selectInnerContainerStyles = ({
|
|
|
32
31
|
|
|
33
32
|
const selectIconTokens = ({
|
|
34
33
|
iconSize,
|
|
35
|
-
iconColor
|
|
36
|
-
iconScale = 1
|
|
34
|
+
iconColor
|
|
35
|
+
/* iconScale = 1 */
|
|
36
|
+
|
|
37
37
|
}) => ({
|
|
38
38
|
size: iconSize,
|
|
39
|
-
color: iconColor
|
|
40
|
-
|
|
39
|
+
color: iconColor // scale: iconScale TODO re-enable with icon component
|
|
40
|
+
|
|
41
41
|
});
|
|
42
|
+
/**
|
|
43
|
+
* `TooltipButton` is a helper component used as a default control for the `Tooltip` component.
|
|
44
|
+
* In fact though, it isn't actually a pressable - it's meant to be used as pressable's content.
|
|
45
|
+
* Due to this any interaction states (e.g. pressed, hover, etc.) has to be passed down to it as a prop.
|
|
46
|
+
*/
|
|
47
|
+
|
|
42
48
|
|
|
43
49
|
const TooltipButton = ({
|
|
50
|
+
pressableState,
|
|
44
51
|
tokens,
|
|
45
52
|
variant
|
|
46
53
|
}) => {
|
|
47
|
-
const themeTokens = useThemeTokens('TooltipButton', tokens, variant);
|
|
54
|
+
const themeTokens = (0, _ThemeProvider.useThemeTokens)('TooltipButton', tokens, variant, pressableState);
|
|
48
55
|
const {
|
|
49
56
|
icon: IconComponent
|
|
50
57
|
} = themeTokens;
|
|
51
|
-
return /*#__PURE__*/
|
|
52
|
-
style:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
59
|
+
style: (0, _ThemeProvider.applyOuterBorder)(themeTokens),
|
|
60
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
61
|
+
style: selectInnerContainerStyles(themeTokens),
|
|
62
|
+
children: IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
63
|
+
icon: IconComponent,
|
|
64
|
+
tokens: selectIconTokens(themeTokens)
|
|
65
|
+
})
|
|
66
|
+
})
|
|
67
|
+
});
|
|
58
68
|
};
|
|
59
69
|
|
|
60
70
|
TooltipButton.propTypes = {
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Used as appearances when resolving theme tokens.
|
|
73
|
+
*/
|
|
74
|
+
pressableState: _propTypes.default.shape({
|
|
75
|
+
pressed: _propTypes.default.bool,
|
|
76
|
+
hover: _propTypes.default.bool,
|
|
77
|
+
focus: _propTypes.default.bool
|
|
78
|
+
}),
|
|
79
|
+
tokens: (0, _utils.getTokensPropType)('TooltipButton'),
|
|
80
|
+
variant: _utils.variantProp.propType
|
|
63
81
|
};
|
|
64
|
-
|
|
82
|
+
var _default = TooltipButton;
|
|
83
|
+
exports.default = _default;
|
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _TooltipButton = _interopRequireDefault(require("./TooltipButton"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var _default = _TooltipButton.default;
|
|
13
|
+
exports.default = _default;
|
|
@@ -1,20 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
|
|
13
|
+
|
|
14
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
15
|
+
|
|
16
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
17
|
+
|
|
18
|
+
var _ViewportProvider = require("../ViewportProvider");
|
|
19
|
+
|
|
20
|
+
var _utils = require("../ThemeProvider/utils");
|
|
12
21
|
|
|
13
|
-
|
|
14
|
-
const match = typeof heading === 'string' && heading.match(/^h(\d)$/);
|
|
15
|
-
return match && match[1];
|
|
16
|
-
}
|
|
22
|
+
var _utils2 = require("../utils");
|
|
17
23
|
|
|
24
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
|
+
|
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
+
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
+
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @typedef {import('../utils/a11y/semantics').TextTag} TextTag
|
|
34
|
+
*/
|
|
18
35
|
const selectTextStyles = ({
|
|
19
36
|
fontWeight,
|
|
20
37
|
fontSize,
|
|
@@ -22,71 +39,100 @@ const selectTextStyles = ({
|
|
|
22
39
|
lineHeight,
|
|
23
40
|
fontName,
|
|
24
41
|
textAlign,
|
|
25
|
-
textTransform
|
|
26
|
-
|
|
42
|
+
textTransform,
|
|
43
|
+
letterSpacing
|
|
44
|
+
}) => (0, _utils.applyTextStyles)({
|
|
27
45
|
fontWeight,
|
|
28
46
|
fontSize,
|
|
29
47
|
color,
|
|
30
48
|
lineHeight,
|
|
31
49
|
fontName,
|
|
32
50
|
textAlign,
|
|
33
|
-
textTransform
|
|
51
|
+
textTransform,
|
|
52
|
+
letterSpacing
|
|
34
53
|
}); // General-purpose flexible theme-neutral base component for text
|
|
35
54
|
|
|
36
55
|
|
|
37
|
-
const Typography = ({
|
|
56
|
+
const Typography = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
38
57
|
children,
|
|
39
58
|
variant,
|
|
40
59
|
heading,
|
|
60
|
+
tag = typeof heading === 'string' ? heading : undefined,
|
|
61
|
+
accessibilityRole = heading === true ? 'header' : undefined,
|
|
41
62
|
block = false,
|
|
42
63
|
align = undefined,
|
|
43
|
-
accessibilityRole = heading ? 'header' : 'text',
|
|
44
64
|
tokens,
|
|
65
|
+
dataSet,
|
|
45
66
|
...rest
|
|
46
|
-
}) => {
|
|
47
|
-
const viewport = useViewport();
|
|
48
|
-
const themeTokens = useThemeTokens('Typography', tokens, variant, {
|
|
67
|
+
}, ref) => {
|
|
68
|
+
const viewport = (0, _ViewportProvider.useViewport)();
|
|
69
|
+
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Typography', tokens, variant, {
|
|
49
70
|
viewport
|
|
50
71
|
});
|
|
51
72
|
const textProps = {
|
|
52
73
|
style: selectTextStyles(align ? { ...themeTokens,
|
|
53
74
|
textAlign: align
|
|
54
75
|
} : themeTokens),
|
|
55
|
-
|
|
76
|
+
dataSet,
|
|
77
|
+
maxFontSizeMultiplier: (0, _utils2.getMaxFontMultiplier)(themeTokens)
|
|
56
78
|
};
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
accessibilityRole,
|
|
60
|
-
// On React Native Web, `aria-level` controls which heading tag (h1, h2 etc) is used.
|
|
61
|
-
// Must be hyphenated, not camel case; `accessibilityLevel` only works on RNW >=0.15.1
|
|
62
|
-
[headingLevel && 'aria-level']: headingLevel
|
|
79
|
+
const a11y = { ...(0, _utils2.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
|
|
80
|
+
..._utils2.a11yProps.select(rest)
|
|
63
81
|
};
|
|
64
|
-
return block ? /*#__PURE__*/
|
|
65
|
-
|
|
82
|
+
return block ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
83
|
+
ref: ref,
|
|
84
|
+
...a11y,
|
|
85
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, { ...textProps,
|
|
86
|
+
children: children
|
|
87
|
+
})
|
|
88
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
|
|
89
|
+
ref: ref,
|
|
90
|
+
...textProps,
|
|
91
|
+
...a11y,
|
|
92
|
+
children: children
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
Typography.displayName = 'Typography';
|
|
96
|
+
Typography.propTypes = { ..._utils2.a11yProps.types,
|
|
97
|
+
tokens: (0, _utils2.getTokensPropType)('Typography'),
|
|
98
|
+
variant: _utils2.variantProp.propType,
|
|
66
99
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Renders the text as a semantic heading. If a html heading tag is provided, uses that tag on Web.
|
|
102
|
+
*
|
|
103
|
+
* Does not affect styling: <Typography heading="h2"> will render a <h2> that looks like plain text.
|
|
104
|
+
* Use both `heading` and `variant` props to render semantic headings that look like headings.
|
|
105
|
+
*
|
|
106
|
+
* In native apps, if this is `true` or any html heading tag string and accessibilityRole prop
|
|
107
|
+
* is not defined, the accessibilityRole will default to "heading".
|
|
108
|
+
*/
|
|
109
|
+
heading: _propTypes.default.oneOf([..._utils2.headingTags, true]),
|
|
70
110
|
|
|
71
111
|
/**
|
|
72
|
-
*
|
|
112
|
+
* Optional semantic HTML tag, to apply to the text on web. Does not change styling.
|
|
113
|
+
*
|
|
114
|
+
* `tag` and `heading` props set the same thing, so shouldn't be used together (`tag` overrides `heading`).
|
|
115
|
+
*
|
|
116
|
+
* In native apps, if a header tag is provided ("h1", "h2" etc) and accessibilityRole prop
|
|
117
|
+
* is not defined, the accessibilityRole will default to "heading".
|
|
73
118
|
*/
|
|
74
|
-
|
|
119
|
+
tag: _propTypes.default.oneOf(_utils2.textTags),
|
|
75
120
|
|
|
76
121
|
/**
|
|
77
122
|
* If true, forces the element to behave as a View block even if nested in other text
|
|
78
123
|
*/
|
|
79
|
-
block:
|
|
124
|
+
block: _propTypes.default.bool,
|
|
80
125
|
|
|
81
126
|
/**
|
|
82
127
|
* Works the same as css text-align, note that RN doesn't support "start" or "end" (see https://reactnative.dev/docs/text-style-props#textalign)
|
|
83
128
|
* Justify is known to make text harder to read, especially for people with dyslexia (see https://developer.mozilla.org/en-US/docs/Web/CSS/text-align#accessibility_concerns)
|
|
84
129
|
*/
|
|
85
|
-
align:
|
|
130
|
+
align: _propTypes.default.oneOf(['auto', 'left', 'right', 'center', 'justify']),
|
|
86
131
|
|
|
87
132
|
/**
|
|
88
133
|
* Same children allowed as a React Native <Text> node
|
|
89
134
|
*/
|
|
90
|
-
children:
|
|
135
|
+
children: _propTypes.default.node
|
|
91
136
|
};
|
|
92
|
-
|
|
137
|
+
var _default = Typography;
|
|
138
|
+
exports.default = _default;
|
package/lib/Typography/index.js
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _Typography = _interopRequireDefault(require("./Typography"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var _default = _Typography.default;
|
|
13
|
+
exports.default = _default;
|
|
@@ -1,25 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _systemConstants = require("@telus-uds/system-constants");
|
|
13
|
+
|
|
14
|
+
var _useViewport = require("./useViewport");
|
|
15
|
+
|
|
16
|
+
var _useViewportListener = _interopRequireDefault(require("./useViewportListener"));
|
|
17
|
+
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
|
|
6
26
|
/**
|
|
7
27
|
* Provides an up-to-date viewport value from system-constants, available via the `useViewport` hook
|
|
8
28
|
*/
|
|
9
|
-
|
|
10
29
|
const ViewportProvider = ({
|
|
11
30
|
children
|
|
12
31
|
}) => {
|
|
13
32
|
// Default to the smallest viewport for mobile-first SSR. On client side, this is updated
|
|
14
33
|
// by useViewportListener in a layout effect before anything is shown to the user.
|
|
15
|
-
const [viewport, setViewport] = useState(viewports.keys[0]);
|
|
16
|
-
|
|
17
|
-
return /*#__PURE__*/
|
|
18
|
-
value: viewport
|
|
19
|
-
|
|
34
|
+
const [viewport, setViewport] = (0, _react.useState)(_systemConstants.viewports.keys[0]);
|
|
35
|
+
(0, _useViewportListener.default)(setViewport);
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_useViewport.ViewportContext.Provider, {
|
|
37
|
+
value: viewport,
|
|
38
|
+
children: children
|
|
39
|
+
});
|
|
20
40
|
};
|
|
21
41
|
|
|
22
42
|
ViewportProvider.propTypes = {
|
|
23
|
-
children:
|
|
43
|
+
children: _propTypes.default.node.isRequired
|
|
24
44
|
};
|
|
25
|
-
|
|
45
|
+
var _default = ViewportProvider;
|
|
46
|
+
exports.default = _default;
|
|
@@ -1,3 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {};
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
|
|
9
|
+
var _ViewportProvider = _interopRequireDefault(require("./ViewportProvider"));
|
|
10
|
+
|
|
11
|
+
var _useViewport = require("./useViewport");
|
|
12
|
+
|
|
13
|
+
Object.keys(_useViewport).forEach(function (key) {
|
|
14
|
+
if (key === "default" || key === "__esModule") return;
|
|
15
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
16
|
+
if (key in exports && exports[key] === _useViewport[key]) return;
|
|
17
|
+
Object.defineProperty(exports, key, {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () {
|
|
20
|
+
return _useViewport[key];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
+
|
|
27
|
+
var _default = _ViewportProvider.default;
|
|
28
|
+
exports.default = _default;
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useViewport = exports.ViewportContext = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
const ViewportContext = /*#__PURE__*/(0, _react.createContext)({});
|
|
11
|
+
exports.ViewportContext = ViewportContext;
|
|
12
|
+
|
|
13
|
+
const useViewport = () => (0, _react.useContext)(ViewportContext);
|
|
14
|
+
|
|
15
|
+
exports.useViewport = useViewport;
|
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _Dimensions = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Dimensions"));
|
|
11
|
+
|
|
12
|
+
var _systemConstants = require("@telus-uds/system-constants");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
// Use Dimensions instead of useWindowDimensions because useWindowDimensions forces context
|
|
4
17
|
// to update on every pixel change during window resize; but we only want rerenders to occur
|
|
5
18
|
// when a viewport threshold has been crossed.
|
|
6
|
-
|
|
7
|
-
const lookupViewport = () => viewports.select(Dimensions.get('window').width);
|
|
19
|
+
const lookupViewport = () => _systemConstants.viewports.select(_Dimensions.default.get('window').width);
|
|
8
20
|
/**
|
|
9
21
|
* In SSR, React gets spooked if it sees `useLayoutEffect` and fires warnings assuming the
|
|
10
22
|
* developer doesn't realise the effect won't run: https://reactjs.org/link/uselayouteffect-ssr
|
|
@@ -23,21 +35,23 @@ const useViewportListenerSSR = () => {};
|
|
|
23
35
|
|
|
24
36
|
|
|
25
37
|
const useViewportListenerCSR = setViewport => {
|
|
26
|
-
useLayoutEffect(() => {
|
|
38
|
+
(0, _react.useLayoutEffect)(() => {
|
|
27
39
|
setViewport(lookupViewport());
|
|
28
40
|
|
|
29
41
|
const onChange = ({
|
|
30
42
|
window
|
|
31
|
-
}) => setViewport(viewports.select(window.width));
|
|
43
|
+
}) => setViewport(_systemConstants.viewports.select(window.width));
|
|
32
44
|
|
|
33
|
-
const listener =
|
|
45
|
+
const listener = _Dimensions.default.addEventListener('change', onChange); // From RN 0.65.0, Dimensions.removeEventListener is deprecated for `remove` on addEventListener return value;
|
|
34
46
|
// however, that is not available in RN <=0.64.X, therefore not in any Expo release as of 2021 (Expo SDK 43).
|
|
35
47
|
|
|
36
|
-
|
|
48
|
+
|
|
49
|
+
return (listener === null || listener === void 0 ? void 0 : listener.remove) || (() => _Dimensions.default.removeEventListener('change', onChange)); // setViewport is a function from `useState` so it is stable and won't make the effect re-run
|
|
37
50
|
}, [setViewport]);
|
|
38
51
|
}; // Window is a defined global object in both Web and Native client-side, and undefined in SSR
|
|
39
52
|
|
|
40
53
|
|
|
41
54
|
const isSSR = typeof window === 'undefined';
|
|
42
55
|
const useViewportListener = isSSR ? useViewportListenerSSR : useViewportListenerCSR;
|
|
43
|
-
|
|
56
|
+
var _default = useViewportListener;
|
|
57
|
+
exports.default = _default;
|