@telus-uds/components-base 0.0.2-prerelease.4 → 0.0.2-prerelease.8
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/.ultra.cache.json +1 -0
- package/CHANGELOG.md +76 -0
- package/__fixtures__/Accessible.js +33 -0
- package/__fixtures__/Accessible.native.js +32 -0
- package/__fixtures__/testTheme.js +940 -54
- package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
- package/__tests__/Button/ButtonBase.test.jsx +3 -32
- package/__tests__/Button/ButtonGroup.test.jsx +2 -2
- package/__tests__/Checkbox/Checkbox.test.jsx +94 -0
- package/__tests__/Checkbox/CheckboxGroup.test.jsx +247 -0
- package/__tests__/Divider/Divider.test.jsx +26 -5
- package/__tests__/Feedback/Feedback.test.jsx +42 -0
- package/__tests__/Icon/Icon.test.jsx +3 -3
- package/__tests__/InputSupports/InputSupports.test.jsx +50 -0
- package/__tests__/List/List.test.jsx +60 -0
- 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 +87 -0
- package/__tests__/Radio/RadioGroup.test.jsx +221 -0
- package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
- package/__tests__/RadioCard/RadioCardGroup.test.jsx +247 -0
- package/__tests__/Search/Search.test.jsx +72 -0
- package/__tests__/Select/Select.test.jsx +93 -0
- package/__tests__/Skeleton/Skeleton.test.jsx +61 -0
- package/__tests__/Spacer/Spacer.test.jsx +63 -0
- package/__tests__/StackView/StackView.test.jsx +216 -0
- package/__tests__/StackView/StackWrap.test.jsx +47 -0
- package/__tests__/StackView/getStackedContent.test.jsx +295 -0
- package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
- package/__tests__/Tabs/Tabs.test.jsx +200 -0
- package/__tests__/Tags/Tags.test.jsx +328 -0
- package/__tests__/TextInput/TextArea.test.jsx +34 -0
- package/__tests__/TextInput/TextInputBase.test.jsx +120 -0
- package/__tests__/Tooltip/Tooltip.test.jsx +65 -0
- package/__tests__/Tooltip/getTooltipPosition.test.js +79 -0
- package/__tests__/utils/input.test.js +58 -0
- package/__tests__/utils/useCopy.test.js +42 -0
- package/__tests__/utils/useResponsiveProp.test.jsx +202 -0
- package/__tests__/utils/{spacing.test.jsx → useSpacingScale.test.jsx} +1 -1
- package/__tests__/utils/useUniqueId.test.js +31 -0
- package/babel.config.js +20 -0
- package/jest.config.js +8 -2
- package/lib/A11yInfoProvider/index.js +54 -26
- package/lib/A11yText/index.js +37 -14
- package/lib/ActivityIndicator/Spinner.js +78 -0
- package/lib/ActivityIndicator/Spinner.native.js +121 -87
- 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 +56 -28
- package/lib/Box/index.js +13 -2
- package/lib/Button/Button.js +38 -10
- package/lib/Button/ButtonBase.js +120 -109
- package/lib/Button/ButtonGroup.js +98 -99
- package/lib/Button/ButtonLink.js +41 -13
- package/lib/Button/index.js +31 -4
- package/lib/Button/propTypes.js +32 -9
- package/lib/Card/Card.js +36 -41
- package/lib/Card/CardBase.js +78 -0
- package/lib/Card/PressableCardBase.js +137 -0
- package/lib/Card/index.js +40 -2
- package/lib/Checkbox/Checkbox.js +344 -0
- package/lib/Checkbox/CheckboxGroup.js +231 -0
- package/lib/Checkbox/CheckboxInput.js +74 -0
- package/lib/Checkbox/CheckboxInput.native.js +14 -0
- package/lib/Checkbox/index.js +21 -0
- package/lib/Divider/Divider.js +81 -17
- package/lib/Divider/index.js +13 -2
- package/lib/ExpandCollapse/Accordion.js +20 -7
- package/lib/ExpandCollapse/Control.js +50 -27
- package/lib/ExpandCollapse/ExpandCollapse.js +41 -24
- package/lib/ExpandCollapse/Panel.js +75 -37
- package/lib/ExpandCollapse/index.js +25 -7
- package/lib/Feedback/Feedback.js +161 -0
- package/lib/Feedback/index.js +13 -0
- package/lib/Fieldset/Fieldset.js +160 -0
- package/lib/Fieldset/FieldsetContainer.js +41 -0
- package/lib/Fieldset/FieldsetContainer.native.js +33 -0
- package/lib/Fieldset/Legend.js +33 -0
- package/lib/Fieldset/Legend.native.js +43 -0
- package/lib/Fieldset/cssReset.js +21 -0
- package/lib/Fieldset/index.js +13 -0
- package/lib/FlexGrid/Col/Col.js +67 -38
- package/lib/FlexGrid/Col/index.js +13 -2
- package/lib/FlexGrid/FlexGrid.js +70 -45
- package/lib/FlexGrid/Row/Row.js +48 -27
- 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/Icon/Icon.js +52 -47
- package/lib/Icon/IconText.js +100 -0
- package/lib/Icon/index.js +31 -3
- package/lib/InputLabel/InputLabel.js +122 -0
- package/lib/InputLabel/LabelContent.js +31 -0
- package/lib/InputLabel/LabelContent.native.js +16 -0
- package/lib/InputLabel/index.js +13 -0
- package/lib/InputSupports/InputSupports.js +104 -0
- package/lib/InputSupports/index.js +13 -0
- package/lib/InputSupports/propTypes.js +66 -0
- package/lib/InputSupports/useInputSupports.js +41 -0
- package/lib/Link/ChevronLink.js +57 -15
- package/lib/Link/InlinePressable.js +50 -0
- package/lib/Link/InlinePressable.native.js +101 -0
- package/lib/Link/Link.js +30 -13
- package/lib/Link/LinkBase.js +121 -146
- package/lib/Link/TextButton.js +47 -17
- package/lib/Link/index.js +39 -4
- package/lib/List/List.js +80 -0
- package/lib/List/ListItem.js +237 -0
- package/lib/List/index.js +13 -0
- package/lib/Modal/Modal.js +226 -0
- package/lib/Modal/dictionary.js +16 -0
- package/lib/Modal/index.js +13 -0
- package/lib/Notification/Notification.js +200 -0
- package/lib/Notification/dictionary.js +15 -0
- package/lib/Notification/index.js +13 -0
- package/lib/Pagination/PageButton.js +45 -46
- package/lib/Pagination/Pagination.js +70 -40
- package/lib/Pagination/SideButton.js +74 -58
- 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 +99 -0
- package/lib/Progress/ProgressBar.js +146 -0
- package/lib/Progress/ProgressBarBackground.js +57 -0
- package/lib/Progress/index.js +16 -0
- package/lib/Radio/Radio.js +292 -0
- package/lib/Radio/RadioButton.js +141 -0
- package/lib/Radio/RadioGroup.js +233 -0
- package/lib/Radio/RadioInput.js +76 -0
- package/lib/Radio/RadioInput.native.js +14 -0
- package/lib/Radio/index.js +21 -0
- package/lib/RadioCard/RadioCard.js +240 -0
- package/lib/RadioCard/RadioCardGroup.js +251 -0
- package/lib/RadioCard/index.js +21 -0
- package/lib/Search/Search.js +243 -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 +25 -0
- package/lib/Select/Item.js +29 -0
- package/lib/Select/Item.native.js +19 -0
- package/lib/Select/Picker.js +79 -0
- package/lib/Select/Picker.native.js +115 -0
- package/lib/Select/Select.js +300 -0
- package/lib/Select/index.js +19 -0
- package/lib/SideNav/Item.js +54 -33
- package/lib/SideNav/ItemContent.js +41 -15
- package/lib/SideNav/ItemsGroup.js +46 -27
- package/lib/SideNav/SideNav.js +92 -69
- package/lib/SideNav/index.js +15 -1
- package/lib/Skeleton/Skeleton.js +137 -0
- package/lib/Skeleton/index.js +13 -0
- 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 +117 -0
- package/lib/Spacer/index.js +13 -0
- package/lib/StackView/StackView.js +129 -0
- package/lib/StackView/StackWrap.js +55 -0
- package/lib/StackView/StackWrap.native.js +14 -0
- package/lib/StackView/StackWrapBox.js +112 -0
- package/lib/StackView/StackWrapGap.js +71 -0
- package/lib/StackView/common.js +45 -0
- package/lib/StackView/getStackedContent.js +141 -0
- package/lib/StackView/index.js +29 -0
- package/lib/StepTracker/Step.js +245 -0
- package/lib/StepTracker/StepTracker.js +197 -0
- package/lib/StepTracker/dictionary.js +17 -0
- package/lib/StepTracker/index.js +13 -0
- package/lib/Tabs/HorizontalScroll.js +199 -0
- package/lib/Tabs/ScrollViewEnd.js +66 -0
- package/lib/Tabs/ScrollViewEnd.native.js +41 -0
- package/lib/Tabs/Tabs.js +117 -0
- package/lib/Tabs/TabsItem.js +234 -0
- package/lib/Tabs/TabsScrollButton.js +121 -0
- package/lib/Tabs/dictionary.js +18 -0
- package/lib/Tabs/index.js +13 -0
- package/lib/Tabs/itemPositions.js +128 -0
- package/lib/Tags/Tags.js +250 -0
- package/lib/Tags/index.js +13 -0
- package/lib/TextInput/TextArea.js +109 -0
- package/lib/TextInput/TextInput.js +75 -0
- package/lib/TextInput/TextInputBase.js +252 -0
- package/lib/TextInput/index.js +23 -0
- package/lib/TextInput/propTypes.js +42 -0
- package/lib/ThemeProvider/ThemeProvider.js +38 -14
- package/lib/ThemeProvider/index.js +61 -6
- package/lib/ThemeProvider/useSetTheme.js +14 -5
- package/lib/ThemeProvider/useTheme.js +13 -4
- package/lib/ThemeProvider/useThemeTokens.js +86 -19
- package/lib/ThemeProvider/utils/index.js +31 -2
- package/lib/ThemeProvider/utils/styles.js +52 -16
- package/lib/ThemeProvider/utils/theme-tokens.js +94 -16
- package/lib/ToggleSwitch/ToggleSwitch.js +76 -52
- package/lib/ToggleSwitch/index.js +13 -2
- package/lib/Tooltip/Backdrop.js +56 -0
- package/lib/Tooltip/Backdrop.native.js +59 -0
- package/lib/Tooltip/Tooltip.js +357 -0
- package/lib/Tooltip/dictionary.js +15 -0
- package/lib/Tooltip/getTooltipPosition.js +172 -0
- package/lib/Tooltip/index.js +13 -0
- package/lib/TooltipButton/TooltipButton.js +83 -0
- package/lib/TooltipButton/index.js +13 -0
- package/lib/Typography/Typography.js +58 -47
- package/lib/Typography/index.js +13 -2
- package/lib/ViewportProvider/ViewportProvider.js +46 -0
- package/lib/ViewportProvider/index.js +22 -38
- package/lib/ViewportProvider/useViewport.js +15 -0
- package/lib/ViewportProvider/useViewportListener.js +57 -0
- package/lib/index.js +509 -19
- package/lib/utils/a11y/index.js +18 -0
- package/lib/utils/a11y/textSize.js +49 -0
- package/lib/utils/animation/index.js +15 -2
- package/lib/utils/animation/useVerticalExpandAnimation.js +28 -11
- package/lib/utils/children.js +87 -0
- package/lib/utils/index.js +163 -4
- package/lib/utils/info/index.js +19 -0
- package/lib/utils/info/platform/index.js +23 -0
- package/lib/utils/info/platform/platform.android.js +8 -0
- package/lib/utils/info/platform/platform.ios.js +8 -0
- package/lib/utils/info/platform/platform.js +8 -0
- package/lib/utils/info/platform/platform.native.js +11 -0
- package/lib/utils/info/versions.js +16 -0
- package/lib/utils/input.js +54 -34
- package/lib/utils/pressability.js +120 -0
- package/lib/utils/propTypes.js +269 -108
- package/lib/utils/useCopy.js +51 -0
- package/lib/utils/useHash.js +48 -0
- package/lib/utils/useHash.native.js +15 -0
- package/lib/utils/useResponsiveProp.js +59 -0
- package/lib/utils/{spacing/useSpacingScale.js → useSpacingScale.js} +45 -12
- package/lib/utils/useUniqueId.js +21 -0
- package/package.json +11 -8
- package/release-context.json +4 -4
- package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +0 -0
- package/src/Box/Box.jsx +13 -4
- package/src/Button/Button.jsx +9 -5
- package/src/Button/ButtonBase.jsx +74 -86
- package/src/Button/ButtonGroup.jsx +24 -41
- package/src/Button/ButtonLink.jsx +14 -4
- package/src/Button/propTypes.js +12 -2
- package/src/Card/Card.jsx +4 -30
- package/src/Card/CardBase.jsx +57 -0
- package/src/Card/PressableCardBase.jsx +112 -0
- package/src/Card/index.js +3 -0
- package/src/Checkbox/Checkbox.jsx +274 -0
- package/src/Checkbox/CheckboxGroup.jsx +196 -0
- package/src/Checkbox/CheckboxInput.jsx +55 -0
- package/src/Checkbox/CheckboxInput.native.jsx +6 -0
- package/src/Checkbox/index.js +5 -0
- package/src/Divider/Divider.jsx +38 -3
- package/src/ExpandCollapse/Control.jsx +1 -1
- package/src/Feedback/Feedback.jsx +108 -0
- package/src/Feedback/index.js +3 -0
- package/src/Fieldset/Fieldset.jsx +129 -0
- package/src/Fieldset/FieldsetContainer.jsx +22 -0
- package/src/Fieldset/FieldsetContainer.native.jsx +16 -0
- package/src/Fieldset/Legend.jsx +16 -0
- package/src/Fieldset/Legend.native.jsx +22 -0
- package/src/Fieldset/cssReset.js +14 -0
- package/src/Fieldset/index.js +3 -0
- package/src/Icon/Icon.jsx +23 -27
- package/src/Icon/IconText.jsx +63 -0
- package/src/Icon/index.js +3 -2
- package/src/InputLabel/InputLabel.jsx +106 -0
- package/src/InputLabel/LabelContent.jsx +13 -0
- package/src/InputLabel/LabelContent.native.jsx +6 -0
- package/src/InputLabel/index.js +3 -0
- package/src/InputSupports/InputSupports.jsx +75 -0
- package/src/InputSupports/index.js +3 -0
- package/src/InputSupports/propTypes.js +44 -0
- package/src/InputSupports/useInputSupports.js +30 -0
- package/src/Link/ChevronLink.jsx +28 -7
- package/src/Link/InlinePressable.jsx +37 -0
- package/src/Link/InlinePressable.native.jsx +73 -0
- package/src/Link/Link.jsx +17 -13
- package/src/Link/LinkBase.jsx +71 -146
- package/src/Link/TextButton.jsx +25 -11
- package/src/Link/index.js +2 -1
- package/src/List/List.jsx +47 -0
- package/src/List/ListItem.jsx +187 -0
- package/src/List/index.js +3 -0
- package/src/Modal/Modal.jsx +185 -0
- package/src/Modal/dictionary.js +9 -0
- package/src/Modal/index.js +3 -0
- package/src/Notification/Notification.jsx +149 -0
- package/src/Notification/dictionary.js +8 -0
- package/src/Notification/index.js +3 -0
- package/src/Pagination/PageButton.jsx +3 -17
- package/src/Pagination/SideButton.jsx +27 -38
- package/src/Progress/Progress.jsx +77 -0
- package/src/Progress/ProgressBar.jsx +110 -0
- package/src/Progress/ProgressBarBackground.jsx +34 -0
- package/src/Progress/index.js +6 -0
- package/src/Radio/Radio.jsx +233 -0
- package/src/Radio/RadioButton.jsx +131 -0
- package/src/Radio/RadioGroup.jsx +198 -0
- package/src/Radio/RadioInput.jsx +57 -0
- package/src/Radio/RadioInput.native.jsx +6 -0
- package/src/Radio/index.js +5 -0
- package/src/RadioCard/RadioCard.jsx +191 -0
- package/src/RadioCard/RadioCardGroup.jsx +211 -0
- package/src/RadioCard/index.js +5 -0
- package/src/Search/Search.jsx +204 -0
- package/src/Search/dictionary.js +12 -0
- package/src/Search/index.js +3 -0
- package/src/Select/Group.jsx +15 -0
- package/src/Select/Group.native.jsx +14 -0
- package/src/Select/Item.jsx +11 -0
- package/src/Select/Item.native.jsx +10 -0
- package/src/Select/Picker.jsx +67 -0
- package/src/Select/Picker.native.jsx +95 -0
- package/src/Select/Select.jsx +255 -0
- package/src/Select/index.js +8 -0
- package/src/SideNav/Item.jsx +2 -2
- package/src/Skeleton/Skeleton.jsx +98 -0
- package/src/Skeleton/index.js +3 -0
- 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 +91 -0
- package/src/Spacer/index.js +3 -0
- package/src/StackView/StackView.jsx +111 -0
- package/src/StackView/StackWrap.jsx +41 -0
- package/src/StackView/StackWrap.native.jsx +4 -0
- package/src/StackView/StackWrapBox.jsx +94 -0
- package/src/StackView/StackWrapGap.jsx +49 -0
- package/src/StackView/common.jsx +28 -0
- package/src/StackView/getStackedContent.jsx +112 -0
- package/src/StackView/index.js +6 -0
- package/src/StepTracker/Step.jsx +202 -0
- package/src/StepTracker/StepTracker.jsx +163 -0
- package/src/StepTracker/dictionary.js +10 -0
- package/src/StepTracker/index.js +3 -0
- package/src/Tabs/HorizontalScroll.jsx +165 -0
- package/src/Tabs/ScrollViewEnd.jsx +53 -0
- package/src/Tabs/ScrollViewEnd.native.jsx +24 -0
- package/src/Tabs/Tabs.jsx +89 -0
- package/src/Tabs/TabsItem.jsx +204 -0
- package/src/Tabs/TabsScrollButton.jsx +100 -0
- package/src/Tabs/dictionary.js +11 -0
- package/src/Tabs/index.js +3 -0
- package/src/Tabs/itemPositions.js +101 -0
- package/src/Tags/Tags.jsx +207 -0
- package/src/Tags/index.js +3 -0
- package/src/TextInput/TextArea.jsx +78 -0
- package/src/TextInput/TextInput.jsx +52 -0
- package/src/TextInput/TextInputBase.jsx +210 -0
- package/src/TextInput/index.js +4 -0
- package/src/TextInput/propTypes.js +29 -0
- package/src/ThemeProvider/useThemeTokens.js +56 -5
- package/src/ThemeProvider/utils/styles.js +18 -5
- package/src/ThemeProvider/utils/theme-tokens.js +46 -5
- package/src/ToggleSwitch/ToggleSwitch.jsx +3 -4
- package/src/Tooltip/Backdrop.jsx +60 -0
- package/src/Tooltip/Backdrop.native.jsx +33 -0
- package/src/Tooltip/Tooltip.jsx +294 -0
- package/src/Tooltip/dictionary.js +8 -0
- package/src/Tooltip/getTooltipPosition.js +161 -0
- package/src/Tooltip/index.js +3 -0
- package/src/TooltipButton/TooltipButton.jsx +49 -0
- package/src/TooltipButton/index.js +3 -0
- package/src/Typography/Typography.jsx +10 -24
- package/src/ViewportProvider/ViewportProvider.jsx +21 -0
- package/src/ViewportProvider/index.jsx +2 -41
- package/src/ViewportProvider/useViewport.js +5 -0
- package/src/ViewportProvider/useViewportListener.js +43 -0
- package/src/index.js +34 -2
- package/src/utils/a11y/index.js +1 -0
- package/src/utils/a11y/textSize.js +30 -0
- package/src/utils/children.jsx +66 -0
- package/src/utils/index.js +11 -1
- package/src/utils/info/index.js +8 -0
- package/src/utils/info/platform/index.js +11 -0
- package/src/utils/info/platform/platform.android.js +1 -0
- package/src/utils/info/platform/platform.ios.js +1 -0
- package/src/utils/info/platform/platform.js +1 -0
- package/src/utils/info/platform/platform.native.js +4 -0
- package/src/utils/info/versions.js +6 -0
- package/src/utils/input.js +22 -13
- package/src/utils/pressability.js +96 -0
- package/src/utils/propTypes.js +195 -47
- package/src/utils/useCopy.js +39 -0
- package/src/utils/useHash.js +34 -0
- package/src/utils/useHash.native.js +6 -0
- package/src/utils/useResponsiveProp.js +50 -0
- package/src/utils/{spacing/useSpacingScale.js → useSpacingScale.js} +25 -10
- package/src/utils/useUniqueId.js +14 -0
- package/stories/A11yText/A11yText.stories.jsx +15 -13
- package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +11 -2
- package/stories/Box/Box.stories.jsx +29 -2
- package/stories/Button/Button.stories.jsx +21 -20
- package/stories/Button/ButtonGroup.stories.jsx +2 -1
- package/stories/Button/ButtonLink.stories.jsx +6 -4
- package/stories/Card/Card.stories.jsx +13 -1
- package/stories/Checkbox/Checkbox.stories.jsx +94 -0
- package/stories/Divider/Divider.stories.jsx +26 -2
- package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +74 -79
- package/stories/Feedback/Feedback.stories.jsx +96 -0
- package/stories/FlexGrid/01 FlexGrid.stories.jsx +20 -7
- package/stories/Icon/Icon.stories.jsx +15 -6
- package/stories/InputLabel/InputLabel.stories.jsx +42 -0
- package/stories/Link/ChevronLink.stories.jsx +20 -4
- package/stories/Link/Link.stories.jsx +39 -3
- package/stories/Link/TextButton.stories.jsx +24 -2
- package/stories/List/List.stories.jsx +117 -0
- package/stories/Modal/Modal.stories.jsx +29 -0
- package/stories/Notification/Notification.stories.jsx +82 -0
- package/stories/Pagination/Pagination.stories.jsx +28 -14
- package/stories/Progress/Progress.stories.jsx +93 -0
- package/stories/Radio/Radio.stories.jsx +100 -0
- package/stories/RadioCard/RadioCard.stories.jsx +98 -0
- package/stories/Search/Search.stories.jsx +16 -0
- package/stories/Select/Select.stories.jsx +55 -0
- package/stories/SideNav/SideNav.stories.jsx +17 -2
- package/stories/Skeleton/Skeleton.stories.jsx +36 -0
- package/stories/Spacer/Spacer.stories.jsx +38 -0
- package/stories/StackView/StackView.stories.jsx +75 -0
- package/stories/StackView/StackWrap.stories.jsx +64 -0
- package/stories/StepTracker/StepTracker.stories.jsx +71 -0
- package/stories/Tabs/Tabs.stories.jsx +97 -0
- package/stories/Tags/Tags.stories.jsx +69 -0
- package/stories/TextInput/TextArea.stories.jsx +100 -0
- package/stories/TextInput/TextInput.stories.jsx +103 -0
- package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +16 -3
- package/stories/Tooltip/Tooltip.stories.jsx +81 -0
- package/stories/TooltipButton/TooltipButton.stories.jsx +11 -0
- package/stories/Typography/Typography.stories.jsx +12 -3
- package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
- package/stories/supports.jsx +110 -14
- package/__fixtures__/accessible.icon.svg +0 -6
- package/babel.config.json +0 -8
- package/lib/ActivityIndicator/Spinner.web.js +0 -55
- package/lib/Pagination/useCopy.js +0 -10
- package/lib/config/svgr-icons-web.js +0 -9
- package/lib/config/svgr-icons.js +0 -52
- package/lib/utils/spacing/index.js +0 -2
- package/lib/utils/spacing/utils.js +0 -32
- package/src/Pagination/useCopy.js +0 -7
- package/src/config/svgr-icons-web.js +0 -11
- package/src/config/svgr-icons.js +0 -46
- package/src/utils/spacing/index.js +0 -3
- package/src/utils/spacing/utils.js +0 -28
|
@@ -0,0 +1,75 @@
|
|
|
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 _utils = require("../utils");
|
|
11
|
+
|
|
12
|
+
var _InputSupports = _interopRequireDefault(require("../InputSupports"));
|
|
13
|
+
|
|
14
|
+
var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
|
|
15
|
+
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("../InputSupports/propTypes"));
|
|
17
|
+
|
|
18
|
+
var _propTypes2 = _interopRequireDefault(require("./propTypes"));
|
|
19
|
+
|
|
20
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* A basic text input component. Use in forms or individually to receive user's input.
|
|
26
|
+
* Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
|
|
27
|
+
*
|
|
28
|
+
* ## Controlled component
|
|
29
|
+
* If it is required that the state of the `TextInput` be controlled by the application or other external methods,
|
|
30
|
+
* `value` and `onChange` props must be passed to the `TextInput`.
|
|
31
|
+
* If the `TextInput` value should not be changed by user input, a `readOnly` prop must be provided.
|
|
32
|
+
*
|
|
33
|
+
* ## Uncontrolled component
|
|
34
|
+
* If it is not necessary to control the `TextInput` state, you can create one without a value prop.
|
|
35
|
+
* In this case its value can be accessed within the `onChange` callback.
|
|
36
|
+
*
|
|
37
|
+
* NOTE: In order to support more advanced usages all additional props will be passed down to the React Native's
|
|
38
|
+
* `TextInput` component. See <a href="https://reactnative.dev/docs/textinput" target="_blank">React Native documentation</a> for
|
|
39
|
+
* supported props and <a href="https://reactnative.dev/docs/textinput" target="_blank">React Native Web documentation</a> for
|
|
40
|
+
* their implementation on the web.
|
|
41
|
+
*/
|
|
42
|
+
function TextInput({
|
|
43
|
+
tokens,
|
|
44
|
+
variant = {},
|
|
45
|
+
...remainingProps
|
|
46
|
+
}) {
|
|
47
|
+
const {
|
|
48
|
+
props: supportsProps,
|
|
49
|
+
rest
|
|
50
|
+
} = _propTypes.default.select(remainingProps);
|
|
51
|
+
|
|
52
|
+
const inputProps = { ...rest,
|
|
53
|
+
tokens,
|
|
54
|
+
variant: { ...variant,
|
|
55
|
+
validation: supportsProps.validation
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
|
|
59
|
+
children: ({
|
|
60
|
+
a11yProps,
|
|
61
|
+
inputId
|
|
62
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, { ...inputProps,
|
|
63
|
+
...a11yProps,
|
|
64
|
+
nativeID: inputId
|
|
65
|
+
})
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
TextInput.propTypes = { ..._propTypes.default.types,
|
|
70
|
+
..._propTypes2.default,
|
|
71
|
+
tokens: (0, _utils.getTokensPropType)('TextInput'),
|
|
72
|
+
variant: _utils.variantProp.propType
|
|
73
|
+
};
|
|
74
|
+
var _default = TextInput;
|
|
75
|
+
exports.default = _default;
|
|
@@ -0,0 +1,252 @@
|
|
|
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 _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
11
|
+
|
|
12
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
13
|
+
|
|
14
|
+
var _TextInput = _interopRequireDefault(require("react-native-web/dist/cjs/exports/TextInput"));
|
|
15
|
+
|
|
16
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
17
|
+
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
|
|
20
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
21
|
+
|
|
22
|
+
var _utils = require("../utils");
|
|
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
|
+
const selectInputStyles = ({
|
|
33
|
+
backgroundColor,
|
|
34
|
+
color,
|
|
35
|
+
borderWidth = 0,
|
|
36
|
+
borderColor,
|
|
37
|
+
borderRadius,
|
|
38
|
+
paddingTop = 0,
|
|
39
|
+
paddingBottom = 0,
|
|
40
|
+
paddingLeft,
|
|
41
|
+
paddingRight = 0,
|
|
42
|
+
fontName,
|
|
43
|
+
fontSize,
|
|
44
|
+
fontWeight,
|
|
45
|
+
lineHeight,
|
|
46
|
+
icon,
|
|
47
|
+
iconSize = 0,
|
|
48
|
+
minLines,
|
|
49
|
+
maxLines,
|
|
50
|
+
width,
|
|
51
|
+
height
|
|
52
|
+
}, inactive) => {
|
|
53
|
+
// Subtract border width from padding so overall input width/height doesn't
|
|
54
|
+
// jump around if the border width changes (avoiding NaN and negative padding)
|
|
55
|
+
const offsetBorder = value => typeof value === 'number' ? Math.max(0, value - borderWidth) : value;
|
|
56
|
+
|
|
57
|
+
const textStyles = (0, _ThemeProvider.applyTextStyles)({
|
|
58
|
+
fontName,
|
|
59
|
+
fontSize,
|
|
60
|
+
lineHeight,
|
|
61
|
+
fontWeight
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
function linesToHeight(lines) {
|
|
65
|
+
const {
|
|
66
|
+
lineHeight: absoluteLineHeight
|
|
67
|
+
} = textStyles;
|
|
68
|
+
return lines !== undefined ? lines * absoluteLineHeight + paddingTop + paddingBottom : undefined;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const minHeight = linesToHeight(minLines);
|
|
72
|
+
const maxHeight = linesToHeight(maxLines);
|
|
73
|
+
|
|
74
|
+
const webStyles = _Platform.default.select({
|
|
75
|
+
web: {
|
|
76
|
+
outline: 'none',
|
|
77
|
+
cursor: inactive ? 'not-allowed' : undefined,
|
|
78
|
+
resize: minHeight !== maxHeight ? 'vertical' : 'none' // does nothing for an input, only needed for textarea
|
|
79
|
+
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
const paddingWithIcon = iconSize + paddingRight;
|
|
84
|
+
return {
|
|
85
|
+
backgroundColor,
|
|
86
|
+
color,
|
|
87
|
+
borderWidth,
|
|
88
|
+
borderColor,
|
|
89
|
+
borderRadius,
|
|
90
|
+
paddingLeft: offsetBorder(paddingLeft),
|
|
91
|
+
paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(paddingRight),
|
|
92
|
+
paddingTop: offsetBorder(paddingTop),
|
|
93
|
+
paddingBottom: offsetBorder(paddingBottom),
|
|
94
|
+
minHeight,
|
|
95
|
+
maxHeight,
|
|
96
|
+
width,
|
|
97
|
+
height,
|
|
98
|
+
...textStyles,
|
|
99
|
+
...webStyles
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
const selectOuterBorderStyles = ({
|
|
104
|
+
outerBackgroundColor,
|
|
105
|
+
outerBorderWidth,
|
|
106
|
+
outerBorderColor,
|
|
107
|
+
borderRadius
|
|
108
|
+
}) => ({
|
|
109
|
+
background: outerBackgroundColor,
|
|
110
|
+
...(0, _ThemeProvider.applyOuterBorder)({
|
|
111
|
+
outerBorderColor,
|
|
112
|
+
outerBorderWidth,
|
|
113
|
+
borderRadius
|
|
114
|
+
})
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
const selectIconTokens = ({
|
|
118
|
+
iconSize,
|
|
119
|
+
iconColor
|
|
120
|
+
}) => ({
|
|
121
|
+
size: iconSize,
|
|
122
|
+
color: iconColor
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
const selectIconContainerStyles = ({
|
|
126
|
+
paddingRight,
|
|
127
|
+
paddingBottom
|
|
128
|
+
}) => ({
|
|
129
|
+
paddingRight,
|
|
130
|
+
paddingBottom
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
function TextInputBase({
|
|
134
|
+
value,
|
|
135
|
+
height,
|
|
136
|
+
initialValue,
|
|
137
|
+
inactive,
|
|
138
|
+
readOnly,
|
|
139
|
+
onChange,
|
|
140
|
+
onChangeText,
|
|
141
|
+
onFocus,
|
|
142
|
+
onBlur,
|
|
143
|
+
onMouseOver,
|
|
144
|
+
onMouseOut,
|
|
145
|
+
tokens,
|
|
146
|
+
variant = {},
|
|
147
|
+
...remainingProps
|
|
148
|
+
}) {
|
|
149
|
+
const [isFocused, setIsFocused] = (0, _react.useState)(false);
|
|
150
|
+
|
|
151
|
+
const handleFocus = event => {
|
|
152
|
+
setIsFocused(true);
|
|
153
|
+
if (typeof onFocus === 'function') onFocus(event);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
const handleBlur = event => {
|
|
157
|
+
setIsFocused(false);
|
|
158
|
+
if (typeof onBlur === 'function') onBlur(event);
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
const [isHovered, setIsHovered] = (0, _react.useState)(false);
|
|
162
|
+
|
|
163
|
+
const handleMouseOver = event => {
|
|
164
|
+
setIsHovered(true);
|
|
165
|
+
if (typeof onMouseOver === 'function') onMouseOver(event);
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
const handleMouseOut = event => {
|
|
169
|
+
setIsHovered(false);
|
|
170
|
+
if (typeof onMouseOut === 'function') onMouseOut(event);
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
const {
|
|
174
|
+
currentValue,
|
|
175
|
+
setValue,
|
|
176
|
+
isControlled
|
|
177
|
+
} = (0, _utils.useInputValue)({
|
|
178
|
+
value,
|
|
179
|
+
initialValue,
|
|
180
|
+
onChange,
|
|
181
|
+
readOnly
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
const handleChangeText = text => {
|
|
185
|
+
setValue(text);
|
|
186
|
+
if (typeof onChangeText === 'function') onChangeText(text);
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
const states = {
|
|
190
|
+
focus: isFocused,
|
|
191
|
+
hover: isHovered,
|
|
192
|
+
inactive
|
|
193
|
+
};
|
|
194
|
+
const themeTokens = (0, _ThemeProvider.useThemeTokens)('TextInput', tokens, variant, states);
|
|
195
|
+
const {
|
|
196
|
+
icon: IconComponent
|
|
197
|
+
} = themeTokens;
|
|
198
|
+
const inputProps = { ...remainingProps,
|
|
199
|
+
editable: !inactive,
|
|
200
|
+
onFocus: handleFocus,
|
|
201
|
+
onBlur: handleBlur,
|
|
202
|
+
onMouseOver: handleMouseOver,
|
|
203
|
+
onMouseOut: handleMouseOut,
|
|
204
|
+
onChangeText: handleChangeText,
|
|
205
|
+
defaultValue: initialValue,
|
|
206
|
+
// currentValue is being updated even if the input is not controlled, passing it down to the
|
|
207
|
+
// Input could lead to changing its state from uncontrolled to controlled
|
|
208
|
+
value: isControlled ? currentValue : undefined
|
|
209
|
+
};
|
|
210
|
+
const nativeInputStyle = selectInputStyles({ ...themeTokens,
|
|
211
|
+
height
|
|
212
|
+
}, inactive);
|
|
213
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
214
|
+
style: selectOuterBorderStyles(themeTokens),
|
|
215
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInput.default, {
|
|
216
|
+
style: nativeInputStyle,
|
|
217
|
+
...inputProps
|
|
218
|
+
}), IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
219
|
+
pointerEvents: "none" // avoid hijacking input press events
|
|
220
|
+
,
|
|
221
|
+
style: [staticStyles.iconContainer, selectIconContainerStyles(themeTokens)],
|
|
222
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, { ...selectIconTokens(themeTokens)
|
|
223
|
+
})
|
|
224
|
+
})]
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
TextInputBase.propTypes = {
|
|
229
|
+
value: _propTypes.default.string,
|
|
230
|
+
height: _propTypes.default.number,
|
|
231
|
+
initialValue: _propTypes.default.string,
|
|
232
|
+
inactive: _propTypes.default.bool,
|
|
233
|
+
readOnly: _propTypes.default.bool,
|
|
234
|
+
onChange: _propTypes.default.func,
|
|
235
|
+
onChangeText: _propTypes.default.func,
|
|
236
|
+
onFocus: _propTypes.default.func,
|
|
237
|
+
onBlur: _propTypes.default.func,
|
|
238
|
+
onMouseOver: _propTypes.default.func,
|
|
239
|
+
onMouseOut: _propTypes.default.func,
|
|
240
|
+
tokens: (0, _utils.getTokensPropType)('TextInput', 'TextArea'),
|
|
241
|
+
variant: _utils.variantProp.propType
|
|
242
|
+
};
|
|
243
|
+
var _default = TextInputBase;
|
|
244
|
+
exports.default = _default;
|
|
245
|
+
|
|
246
|
+
const staticStyles = _StyleSheet.default.create({
|
|
247
|
+
iconContainer: {
|
|
248
|
+
position: 'absolute',
|
|
249
|
+
right: 0,
|
|
250
|
+
bottom: 0
|
|
251
|
+
}
|
|
252
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "TextInput", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _TextInput.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "TextArea", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _TextArea.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
var _TextInput = _interopRequireDefault(require("./TextInput"));
|
|
20
|
+
|
|
21
|
+
var _TextArea = _interopRequireDefault(require("./TextArea"));
|
|
22
|
+
|
|
23
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
const textInputPropTypes = {
|
|
13
|
+
/**
|
|
14
|
+
* If the input's state is to be controlled by a parent component, use this prop
|
|
15
|
+
* together with the `onChange` to pass down and update the lifted state.
|
|
16
|
+
*/
|
|
17
|
+
value: _propTypes.default.string,
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Use this to set the initial value of an uncontrolled input.
|
|
21
|
+
* Updating `initialValue` will **not** update the actual value.
|
|
22
|
+
*/
|
|
23
|
+
initialValue: _propTypes.default.string,
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Disables all user interactions with the input.
|
|
27
|
+
*/
|
|
28
|
+
inactive: _propTypes.default.bool,
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Makes it impossible to change the input's value.
|
|
32
|
+
*/
|
|
33
|
+
readOnly: _propTypes.default.bool,
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Use to react upon input's value changes. Required when the `value` prop is set.
|
|
37
|
+
* Will receive the input's value as an argument.
|
|
38
|
+
*/
|
|
39
|
+
onChange: _propTypes.default.func
|
|
40
|
+
};
|
|
41
|
+
var _default = textInputPropTypes;
|
|
42
|
+
exports.default = _default;
|
|
@@ -1,28 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.themeType = exports.ThemeSetterContext = exports.ThemeContext = exports.uninitialisedError = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
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); }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
const uninitialisedError = new Error('Theme context used outside of ThemeProvider');
|
|
21
|
+
exports.uninitialisedError = uninitialisedError;
|
|
22
|
+
const ThemeContext = /*#__PURE__*/(0, _react.createContext)(uninitialisedError);
|
|
23
|
+
exports.ThemeContext = ThemeContext;
|
|
24
|
+
const ThemeSetterContext = /*#__PURE__*/(0, _react.createContext)(uninitialisedError); // TODO: develop this as theme metadata is added
|
|
6
25
|
// https://github.com/telus/universal-design-system/issues/92
|
|
7
26
|
|
|
8
|
-
|
|
27
|
+
exports.ThemeSetterContext = ThemeSetterContext;
|
|
28
|
+
const themeType = _propTypes.default.object;
|
|
29
|
+
exports.themeType = themeType;
|
|
9
30
|
|
|
10
31
|
const ThemeProvider = ({
|
|
11
32
|
children,
|
|
12
33
|
defaultTheme
|
|
13
34
|
}) => {
|
|
14
|
-
const [theme, setTheme] = useState(defaultTheme);
|
|
15
|
-
return /*#__PURE__*/
|
|
16
|
-
value: setTheme
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
35
|
+
const [theme, setTheme] = (0, _react.useState)(defaultTheme);
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ThemeSetterContext.Provider, {
|
|
37
|
+
value: setTheme,
|
|
38
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ThemeContext.Provider, {
|
|
39
|
+
value: theme,
|
|
40
|
+
children: children
|
|
41
|
+
})
|
|
42
|
+
});
|
|
20
43
|
};
|
|
21
44
|
|
|
22
45
|
ThemeProvider.propTypes = {
|
|
23
46
|
// TODO: implement a custom propType that validates schema version
|
|
24
47
|
// https://github.com/telus/universal-design-system/issues/92
|
|
25
|
-
children:
|
|
48
|
+
children: _propTypes.default.node.isRequired,
|
|
26
49
|
defaultTheme: themeType.isRequired
|
|
27
50
|
};
|
|
28
|
-
|
|
51
|
+
var _default = ThemeProvider;
|
|
52
|
+
exports.default = _default;
|
|
@@ -1,6 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
useTheme: true,
|
|
8
|
+
useSetTheme: true
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "useTheme", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _useTheme.default;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "useSetTheme", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () {
|
|
19
|
+
return _useSetTheme.default;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
exports.default = void 0;
|
|
23
|
+
|
|
24
|
+
var _ThemeProvider = _interopRequireDefault(require("./ThemeProvider"));
|
|
25
|
+
|
|
26
|
+
var _useTheme = _interopRequireDefault(require("./useTheme"));
|
|
27
|
+
|
|
28
|
+
var _useSetTheme = _interopRequireDefault(require("./useSetTheme"));
|
|
29
|
+
|
|
30
|
+
var _useThemeTokens = require("./useThemeTokens");
|
|
31
|
+
|
|
32
|
+
Object.keys(_useThemeTokens).forEach(function (key) {
|
|
33
|
+
if (key === "default" || key === "__esModule") return;
|
|
34
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
35
|
+
if (key in exports && exports[key] === _useThemeTokens[key]) return;
|
|
36
|
+
Object.defineProperty(exports, key, {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _useThemeTokens[key];
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
var _utils = require("./utils");
|
|
45
|
+
|
|
46
|
+
Object.keys(_utils).forEach(function (key) {
|
|
47
|
+
if (key === "default" || key === "__esModule") return;
|
|
48
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
49
|
+
if (key in exports && exports[key] === _utils[key]) return;
|
|
50
|
+
Object.defineProperty(exports, key, {
|
|
51
|
+
enumerable: true,
|
|
52
|
+
get: function () {
|
|
53
|
+
return _utils[key];
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
59
|
+
|
|
60
|
+
var _default = _ThemeProvider.default;
|
|
61
|
+
exports.default = _default;
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 _ThemeProvider = require("./ThemeProvider");
|
|
3
11
|
|
|
4
12
|
const useSetTheme = () => {
|
|
5
13
|
// Replace current theme with provided object
|
|
6
|
-
const setTheme = useContext(ThemeSetterContext); // Merge provided object into current theme
|
|
14
|
+
const setTheme = (0, _react.useContext)(_ThemeProvider.ThemeSetterContext); // Merge provided object into current theme
|
|
7
15
|
|
|
8
|
-
const editTheme = useCallback(newTheme => setTheme((oldTheme = {}) => ({ ...oldTheme,
|
|
16
|
+
const editTheme = (0, _react.useCallback)(newTheme => setTheme((oldTheme = {}) => ({ ...oldTheme,
|
|
9
17
|
...newTheme
|
|
10
18
|
})), [setTheme]);
|
|
11
19
|
return {
|
|
@@ -14,4 +22,5 @@ const useSetTheme = () => {
|
|
|
14
22
|
};
|
|
15
23
|
};
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
var _default = useSetTheme;
|
|
26
|
+
exports.default = _default;
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 _ThemeProvider = require("./ThemeProvider");
|
|
3
11
|
|
|
4
12
|
const useTheme = () => {
|
|
5
|
-
const theme = useContext(ThemeContext); // Fail fast if dev uses useTheme outside of ThemeProvider
|
|
13
|
+
const theme = (0, _react.useContext)(_ThemeProvider.ThemeContext); // Fail fast if dev uses useTheme outside of ThemeProvider
|
|
6
14
|
|
|
7
15
|
if (theme instanceof Error) {
|
|
8
16
|
throw theme;
|
|
@@ -11,4 +19,5 @@ const useTheme = () => {
|
|
|
11
19
|
return theme;
|
|
12
20
|
};
|
|
13
21
|
|
|
14
|
-
|
|
22
|
+
var _default = useTheme;
|
|
23
|
+
exports.default = _default;
|