@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,79 @@
|
|
|
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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _utils = require("../utils");
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
const Picker = ({
|
|
19
|
+
value,
|
|
20
|
+
onChange,
|
|
21
|
+
onFocus,
|
|
22
|
+
onBlur,
|
|
23
|
+
onMouseOver,
|
|
24
|
+
onMouseOut,
|
|
25
|
+
style,
|
|
26
|
+
inactive,
|
|
27
|
+
children,
|
|
28
|
+
placeholder,
|
|
29
|
+
nativeID,
|
|
30
|
+
testID,
|
|
31
|
+
...rest
|
|
32
|
+
}) => {
|
|
33
|
+
const {
|
|
34
|
+
accessibilityLabel,
|
|
35
|
+
accessibilityDescribedBy,
|
|
36
|
+
accessibilityInvalid
|
|
37
|
+
} = rest;
|
|
38
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("select", {
|
|
39
|
+
style: style,
|
|
40
|
+
onMouseOver: onMouseOver,
|
|
41
|
+
onMouseOut: onMouseOut,
|
|
42
|
+
onFocus: onFocus,
|
|
43
|
+
onBlur: onBlur,
|
|
44
|
+
disabled: inactive,
|
|
45
|
+
value: value || (placeholder !== undefined ? placeholder.value : undefined),
|
|
46
|
+
onChange: event => onChange(event.target.value),
|
|
47
|
+
id: nativeID,
|
|
48
|
+
"aria-label": accessibilityLabel,
|
|
49
|
+
"aria-describedby": accessibilityDescribedBy,
|
|
50
|
+
"aria-invalid": accessibilityInvalid,
|
|
51
|
+
"data-testid": testID,
|
|
52
|
+
children: [placeholder !== undefined && /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
53
|
+
value: placeholder.value,
|
|
54
|
+
disabled: true,
|
|
55
|
+
hidden: true,
|
|
56
|
+
children: placeholder.label
|
|
57
|
+
}), children]
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var _default = Picker;
|
|
62
|
+
exports.default = _default;
|
|
63
|
+
Picker.propTypes = {
|
|
64
|
+
value: _propTypes.default.string,
|
|
65
|
+
onChange: _propTypes.default.func,
|
|
66
|
+
onFocus: _propTypes.default.func,
|
|
67
|
+
onBlur: _propTypes.default.func,
|
|
68
|
+
onMouseOver: _propTypes.default.func,
|
|
69
|
+
onMouseOut: _propTypes.default.func,
|
|
70
|
+
style: _propTypes.default.object,
|
|
71
|
+
inactive: _propTypes.default.bool,
|
|
72
|
+
children: (0, _utils.componentPropType)(['Item', 'Group']),
|
|
73
|
+
placeholder: _propTypes.default.shape({
|
|
74
|
+
value: _propTypes.default.string,
|
|
75
|
+
label: _propTypes.default.string
|
|
76
|
+
}),
|
|
77
|
+
nativeID: _propTypes.default.string,
|
|
78
|
+
testID: _propTypes.default.string
|
|
79
|
+
};
|
|
@@ -0,0 +1,115 @@
|
|
|
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 _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
13
|
+
|
|
14
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
15
|
+
|
|
16
|
+
var _reactNativePickerSelect = _interopRequireDefault(require("react-native-picker-select"));
|
|
17
|
+
|
|
18
|
+
var _utils = require("../utils");
|
|
19
|
+
|
|
20
|
+
var _Group = _interopRequireDefault(require("./Group"));
|
|
21
|
+
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
|
+
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); }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
// styling of the native input is very limited, most of the styles have to be applied to an additional View
|
|
31
|
+
const selectAndroidInputStyles = ({
|
|
32
|
+
height = 0,
|
|
33
|
+
paddingBottom = 0,
|
|
34
|
+
paddingTop = 0,
|
|
35
|
+
borderWidth = 0,
|
|
36
|
+
color
|
|
37
|
+
}) => ({
|
|
38
|
+
height: height - paddingTop - paddingBottom - 2 * borderWidth,
|
|
39
|
+
color
|
|
40
|
+
}); // the native input has a side padding of 8px, which can't be adjusted, so we have to account for that in the container
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
const selectAndroidContainerStyles = ({
|
|
44
|
+
paddingLeft = 0,
|
|
45
|
+
paddingRight = 0,
|
|
46
|
+
...rest
|
|
47
|
+
}) => ({
|
|
48
|
+
paddingLeft: paddingLeft > 8 ? paddingLeft - 8 : 0,
|
|
49
|
+
paddingRight: paddingRight > 8 ? paddingRight - 8 : 0,
|
|
50
|
+
...rest
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const Picker = ({
|
|
54
|
+
value,
|
|
55
|
+
onChange,
|
|
56
|
+
onFocus,
|
|
57
|
+
onBlur,
|
|
58
|
+
style,
|
|
59
|
+
inactive,
|
|
60
|
+
children,
|
|
61
|
+
placeholder,
|
|
62
|
+
...rest
|
|
63
|
+
}) => {
|
|
64
|
+
// ungroup items, since there's no way to support groups on native
|
|
65
|
+
const flatChildren = _react.Children.toArray(children).flatMap(child => {
|
|
66
|
+
if (child.type === _Group.default) {
|
|
67
|
+
return child.props.children;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return child;
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
const items = flatChildren.map(({
|
|
74
|
+
props
|
|
75
|
+
}) => ({
|
|
76
|
+
label: props.children,
|
|
77
|
+
value: props.value
|
|
78
|
+
}));
|
|
79
|
+
const picker = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePickerSelect.default, {
|
|
80
|
+
touchableWrapperProps: _utils.a11yProps.select(rest),
|
|
81
|
+
onOpen: onFocus,
|
|
82
|
+
onClose: onBlur,
|
|
83
|
+
disabled: inactive,
|
|
84
|
+
items: items,
|
|
85
|
+
value: value,
|
|
86
|
+
onValueChange: onChange,
|
|
87
|
+
style: {
|
|
88
|
+
inputIOS: style,
|
|
89
|
+
inputAndroid: selectAndroidInputStyles(style)
|
|
90
|
+
},
|
|
91
|
+
placeholder: placeholder !== undefined ? placeholder : {}
|
|
92
|
+
});
|
|
93
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
94
|
+
children: _Platform.default.OS === 'android' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
95
|
+
style: selectAndroidContainerStyles(style),
|
|
96
|
+
children: picker
|
|
97
|
+
}) : picker
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
var _default = Picker;
|
|
102
|
+
exports.default = _default;
|
|
103
|
+
Picker.propTypes = {
|
|
104
|
+
value: _propTypes.default.string,
|
|
105
|
+
onChange: _propTypes.default.func,
|
|
106
|
+
onFocus: _propTypes.default.func,
|
|
107
|
+
onBlur: _propTypes.default.func,
|
|
108
|
+
style: _propTypes.default.object,
|
|
109
|
+
inactive: _propTypes.default.bool,
|
|
110
|
+
children: (0, _utils.componentPropType)(['Item', 'Group']),
|
|
111
|
+
placeholder: _propTypes.default.shape({
|
|
112
|
+
value: _propTypes.default.string,
|
|
113
|
+
label: _propTypes.default.string
|
|
114
|
+
})
|
|
115
|
+
};
|
|
@@ -0,0 +1,300 @@
|
|
|
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 _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
11
|
+
|
|
12
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
13
|
+
|
|
14
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
15
|
+
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
|
|
18
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
19
|
+
|
|
20
|
+
var _utils = require("../utils");
|
|
21
|
+
|
|
22
|
+
var _Picker = _interopRequireDefault(require("./Picker"));
|
|
23
|
+
|
|
24
|
+
var _InputSupports = _interopRequireDefault(require("../InputSupports"));
|
|
25
|
+
|
|
26
|
+
var _propTypes2 = _interopRequireDefault(require("../InputSupports/propTypes"));
|
|
27
|
+
|
|
28
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
+
|
|
30
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
|
+
|
|
32
|
+
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); }
|
|
33
|
+
|
|
34
|
+
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; }
|
|
35
|
+
|
|
36
|
+
const selectInputStyles = ({
|
|
37
|
+
backgroundColor,
|
|
38
|
+
color,
|
|
39
|
+
borderWidth = 0,
|
|
40
|
+
borderColor,
|
|
41
|
+
borderRadius,
|
|
42
|
+
paddingTop,
|
|
43
|
+
paddingBottom,
|
|
44
|
+
paddingLeft = 0,
|
|
45
|
+
paddingRight,
|
|
46
|
+
fontName,
|
|
47
|
+
fontSize,
|
|
48
|
+
fontWeight,
|
|
49
|
+
lineHeight,
|
|
50
|
+
icon,
|
|
51
|
+
iconSize = 0,
|
|
52
|
+
validationIcon,
|
|
53
|
+
validationIconSize = 0,
|
|
54
|
+
height
|
|
55
|
+
}, inactive) => {
|
|
56
|
+
// Subtract border width from padding so overall input width/height doesn't
|
|
57
|
+
// jump around if the border width changes (avoiding NaN and negative padding)
|
|
58
|
+
const offsetBorder = value => typeof value === 'number' ? Math.max(0, value - borderWidth) : value;
|
|
59
|
+
|
|
60
|
+
const textStyles = (0, _ThemeProvider.applyTextStyles)({
|
|
61
|
+
fontName,
|
|
62
|
+
fontSize,
|
|
63
|
+
lineHeight,
|
|
64
|
+
fontWeight
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
const webStyles = _Platform.default.select({
|
|
68
|
+
web: {
|
|
69
|
+
appearance: 'none',
|
|
70
|
+
WebkitAppearance: 'none',
|
|
71
|
+
// since iOS Safari needs a prefix
|
|
72
|
+
outline: 'none',
|
|
73
|
+
cursor: inactive ? 'not-allowed' : undefined,
|
|
74
|
+
opacity: inactive ? 1 : undefined // override Chrome's default fadeout of a disabled select
|
|
75
|
+
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
let paddingWithIcons = paddingRight;
|
|
80
|
+
|
|
81
|
+
if (_Platform.default.OS !== 'android') {
|
|
82
|
+
if (icon) {
|
|
83
|
+
paddingWithIcons += iconSize;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (validationIcon) {
|
|
87
|
+
paddingWithIcons += validationIconSize;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return {
|
|
92
|
+
backgroundColor,
|
|
93
|
+
color,
|
|
94
|
+
borderWidth,
|
|
95
|
+
borderColor,
|
|
96
|
+
borderRadius,
|
|
97
|
+
paddingLeft: offsetBorder(paddingLeft),
|
|
98
|
+
paddingRight: offsetBorder(paddingWithIcons),
|
|
99
|
+
paddingTop: offsetBorder(paddingTop),
|
|
100
|
+
paddingBottom: offsetBorder(paddingBottom),
|
|
101
|
+
height,
|
|
102
|
+
...textStyles,
|
|
103
|
+
...webStyles
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const selectOuterBorderStyles = ({
|
|
108
|
+
outerBackgroundColor,
|
|
109
|
+
outerBorderWidth,
|
|
110
|
+
outerBorderColor,
|
|
111
|
+
borderRadius
|
|
112
|
+
}) => ({
|
|
113
|
+
background: outerBackgroundColor,
|
|
114
|
+
...(0, _ThemeProvider.applyOuterBorder)({
|
|
115
|
+
outerBorderColor,
|
|
116
|
+
outerBorderWidth,
|
|
117
|
+
borderRadius
|
|
118
|
+
})
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
const selectIconTokens = ({
|
|
122
|
+
iconSize,
|
|
123
|
+
iconColor
|
|
124
|
+
}) => ({
|
|
125
|
+
size: iconSize,
|
|
126
|
+
color: iconColor
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
const selectIconContainerStyles = ({
|
|
130
|
+
paddingRight,
|
|
131
|
+
paddingBottom
|
|
132
|
+
}) => ({
|
|
133
|
+
paddingRight,
|
|
134
|
+
paddingBottom
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
const selectValidationIconTokens = ({
|
|
138
|
+
validationIconSize,
|
|
139
|
+
validationIconColor
|
|
140
|
+
}) => ({
|
|
141
|
+
size: validationIconSize,
|
|
142
|
+
color: validationIconColor
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const selectValidationIconContainerStyles = ({
|
|
146
|
+
icon,
|
|
147
|
+
iconSize = 0,
|
|
148
|
+
paddingRight = 0,
|
|
149
|
+
paddingBottom
|
|
150
|
+
}) => ({
|
|
151
|
+
paddingRight: icon ? paddingRight + iconSize : paddingRight,
|
|
152
|
+
paddingBottom
|
|
153
|
+
});
|
|
154
|
+
/**
|
|
155
|
+
* A basic form single-choice select component. Use in forms or individually to receive user's input.
|
|
156
|
+
*
|
|
157
|
+
* ## Usage criteria
|
|
158
|
+
* - Include a `placeholder` to provide instructions such as "Please select..." as an unselectable option (recommended)
|
|
159
|
+
* - Use when options are between 7-15 (recommended)
|
|
160
|
+
* - For options are 6 and under, use `Radio` groups or `ButtonGroup`.
|
|
161
|
+
* - For options 15 and above, look for alternatives (e.g grouping into categories, or input field with auto-complete etc.)
|
|
162
|
+
*
|
|
163
|
+
* ## Controlled component
|
|
164
|
+
* If it is required that the state of the `Select` be controlled by the application or other external methods,
|
|
165
|
+
* `value` and `onChange` props must be passed to the `Select`.
|
|
166
|
+
* If the `Select` value should not be changed by user input, a `readOnly` prop must be provided.
|
|
167
|
+
*
|
|
168
|
+
* ## Uncontrolled component
|
|
169
|
+
* If it is not necessary to control the `Select` state, you can create one without a value prop.
|
|
170
|
+
* In this case its value can be accessed within the `onChange` callback. Use the `initialValue` prop to set the
|
|
171
|
+
* default value for an uncontrolled `Select`.
|
|
172
|
+
*
|
|
173
|
+
* ## Getting feedback for entered values
|
|
174
|
+
* Use the `feedback` prop to give the user feedback regarding their selection.
|
|
175
|
+
* You can affirm that the user's selection was correct, or highlight errors that must be corrected, using the `validation` prop.
|
|
176
|
+
* Keep feedback text as brief as possible, should be limited to text and links.
|
|
177
|
+
*
|
|
178
|
+
* ## Using a tooltip
|
|
179
|
+
* When a more in-depth explanation is needed to fill out a `Select` properly, the tooltip prop may be used.
|
|
180
|
+
*
|
|
181
|
+
* ## Grouping options
|
|
182
|
+
* `Select` supports option groups. Use a `Select.Group` component to render an `<optgroup>` element with its items.
|
|
183
|
+
* NOTE: this does not work on native platforms - the grouped items will be shown at the same level as the non-grouped items.
|
|
184
|
+
*
|
|
185
|
+
*/
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
const Select = ({
|
|
189
|
+
value,
|
|
190
|
+
initialValue,
|
|
191
|
+
onChange,
|
|
192
|
+
children,
|
|
193
|
+
inactive,
|
|
194
|
+
readOnly,
|
|
195
|
+
placeholder,
|
|
196
|
+
validation,
|
|
197
|
+
tokens,
|
|
198
|
+
variant,
|
|
199
|
+
testID,
|
|
200
|
+
...rest
|
|
201
|
+
}) => {
|
|
202
|
+
const {
|
|
203
|
+
currentValue,
|
|
204
|
+
setValue
|
|
205
|
+
} = (0, _utils.useInputValue)({
|
|
206
|
+
value,
|
|
207
|
+
initialValue,
|
|
208
|
+
onChange,
|
|
209
|
+
readOnly
|
|
210
|
+
});
|
|
211
|
+
const [isFocused, setIsFocused] = (0, _react.useState)(false);
|
|
212
|
+
|
|
213
|
+
const handleFocus = () => setIsFocused(true);
|
|
214
|
+
|
|
215
|
+
const handleBlur = () => setIsFocused(false);
|
|
216
|
+
|
|
217
|
+
const [isHovered, setIsHovered] = (0, _react.useState)(false);
|
|
218
|
+
|
|
219
|
+
const handleMouseOver = () => setIsHovered(true);
|
|
220
|
+
|
|
221
|
+
const handleMouseOut = () => setIsHovered(false);
|
|
222
|
+
|
|
223
|
+
const {
|
|
224
|
+
props: supportsProps
|
|
225
|
+
} = _propTypes2.default.select(rest);
|
|
226
|
+
|
|
227
|
+
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Select', tokens, variant, {
|
|
228
|
+
focus: isFocused,
|
|
229
|
+
hover: isHovered,
|
|
230
|
+
inactive,
|
|
231
|
+
validation
|
|
232
|
+
});
|
|
233
|
+
const {
|
|
234
|
+
icon: IconComponent,
|
|
235
|
+
validationIcon: ValidationIconComponent
|
|
236
|
+
} = themeTokens;
|
|
237
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
|
|
238
|
+
children: ({
|
|
239
|
+
a11yProps,
|
|
240
|
+
inputId
|
|
241
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
242
|
+
style: selectOuterBorderStyles(themeTokens),
|
|
243
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.default, {
|
|
244
|
+
style: selectInputStyles(themeTokens, inactive),
|
|
245
|
+
onFocus: handleFocus,
|
|
246
|
+
onBlur: handleBlur,
|
|
247
|
+
onMouseOver: handleMouseOver,
|
|
248
|
+
onMouseOut: handleMouseOut,
|
|
249
|
+
onChange: setValue,
|
|
250
|
+
value: currentValue,
|
|
251
|
+
inactive: inactive,
|
|
252
|
+
placeholder: placeholder !== undefined ? {
|
|
253
|
+
label: placeholder,
|
|
254
|
+
value: ''
|
|
255
|
+
} : undefined,
|
|
256
|
+
...a11yProps,
|
|
257
|
+
nativeID: inputId,
|
|
258
|
+
testID: testID,
|
|
259
|
+
children: children
|
|
260
|
+
}), ValidationIconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
261
|
+
pointerEvents: "none",
|
|
262
|
+
style: [staticStyles.iconContainer, selectValidationIconContainerStyles(themeTokens)],
|
|
263
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ValidationIconComponent, {
|
|
264
|
+
tokens: selectValidationIconTokens(themeTokens)
|
|
265
|
+
})
|
|
266
|
+
}), IconComponent && _Platform.default.OS !== 'android' &&
|
|
267
|
+
/*#__PURE__*/
|
|
268
|
+
// we can't hide the default caret of a native picker on android
|
|
269
|
+
(0, _jsxRuntime.jsx)(_View.default, {
|
|
270
|
+
pointerEvents: "none",
|
|
271
|
+
style: [staticStyles.iconContainer, selectIconContainerStyles(themeTokens)],
|
|
272
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, { ...selectIconTokens(themeTokens)
|
|
273
|
+
})
|
|
274
|
+
})]
|
|
275
|
+
})
|
|
276
|
+
});
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
Select.propTypes = { ..._propTypes2.default.types,
|
|
280
|
+
initialValue: _propTypes.default.string,
|
|
281
|
+
value: _propTypes.default.string,
|
|
282
|
+
onChange: _propTypes.default.func,
|
|
283
|
+
children: (0, _utils.componentPropType)(['Item', 'Group']),
|
|
284
|
+
inactive: _propTypes.default.bool,
|
|
285
|
+
readOnly: _propTypes.default.bool,
|
|
286
|
+
placeholder: _propTypes.default.string,
|
|
287
|
+
tokens: (0, _utils.getTokensPropType)('Select'),
|
|
288
|
+
variant: _utils.variantProp.propType,
|
|
289
|
+
testID: _propTypes.default.string
|
|
290
|
+
};
|
|
291
|
+
var _default = Select;
|
|
292
|
+
exports.default = _default;
|
|
293
|
+
|
|
294
|
+
const staticStyles = _StyleSheet.default.create({
|
|
295
|
+
iconContainer: {
|
|
296
|
+
position: 'absolute',
|
|
297
|
+
right: 0,
|
|
298
|
+
bottom: 0
|
|
299
|
+
}
|
|
300
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _Select = _interopRequireDefault(require("./Select"));
|
|
9
|
+
|
|
10
|
+
var _Group = _interopRequireDefault(require("./Group"));
|
|
11
|
+
|
|
12
|
+
var _Item = _interopRequireDefault(require("./Item"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
_Select.default.Group = _Group.default;
|
|
17
|
+
_Select.default.Item = _Item.default;
|
|
18
|
+
var _default = _Select.default;
|
|
19
|
+
exports.default = _default;
|
package/lib/SideNav/Item.js
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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 _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _utils = require("../utils");
|
|
15
|
+
|
|
16
|
+
var _ThemeProvider = require("../ThemeProvider");
|
|
17
|
+
|
|
18
|
+
var _ItemContent = _interopRequireDefault(require("./ItemContent"));
|
|
19
|
+
|
|
20
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
7
23
|
|
|
8
24
|
function selectItemStyles({
|
|
9
25
|
backgroundColor,
|
|
@@ -27,7 +43,7 @@ function selectItemStyles({
|
|
|
27
43
|
paddingTop,
|
|
28
44
|
paddingBottom,
|
|
29
45
|
justifyContent,
|
|
30
|
-
...verticalAlignRow(verticalAlign)
|
|
46
|
+
...(0, _ThemeProvider.verticalAlignRow)(verticalAlign)
|
|
31
47
|
};
|
|
32
48
|
}
|
|
33
49
|
/**
|
|
@@ -56,15 +72,17 @@ const Item = ({
|
|
|
56
72
|
const {
|
|
57
73
|
hrefAttrs,
|
|
58
74
|
rest
|
|
59
|
-
} = hrefAttrsProp.bundle(props);
|
|
60
|
-
|
|
75
|
+
} = _utils.hrefAttrsProp.bundle(props);
|
|
76
|
+
|
|
77
|
+
const linkPropSet = _utils.linkProps.select({
|
|
61
78
|
accessibilityRole,
|
|
62
79
|
href,
|
|
63
80
|
onPress: handlePress,
|
|
64
|
-
|
|
81
|
+
hrefAttrs,
|
|
65
82
|
...rest
|
|
66
83
|
});
|
|
67
|
-
|
|
84
|
+
|
|
85
|
+
const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItem', tokens, variant);
|
|
68
86
|
|
|
69
87
|
const getAppearanceState = ({
|
|
70
88
|
hovered
|
|
@@ -76,18 +94,20 @@ const Item = ({
|
|
|
76
94
|
|
|
77
95
|
const getPressableStyle = pressableState => selectItemStyles(getTokens(getAppearanceState(pressableState)));
|
|
78
96
|
|
|
79
|
-
return /*#__PURE__*/
|
|
80
|
-
style: getPressableStyle
|
|
81
|
-
|
|
97
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
|
|
98
|
+
style: getPressableStyle,
|
|
99
|
+
...linkPropSet,
|
|
82
100
|
accessibilityState: {
|
|
83
101
|
selected: isActive
|
|
84
102
|
},
|
|
85
|
-
testID: testID
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
103
|
+
testID: testID,
|
|
104
|
+
children: pressableState => {
|
|
105
|
+
const themeTokens = getTokens(getAppearanceState(pressableState));
|
|
106
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ItemContent.default, {
|
|
107
|
+
tokens: themeTokens,
|
|
108
|
+
children: children
|
|
109
|
+
});
|
|
110
|
+
}
|
|
91
111
|
});
|
|
92
112
|
};
|
|
93
113
|
|
|
@@ -95,41 +115,42 @@ Item.propTypes = {
|
|
|
95
115
|
/**
|
|
96
116
|
* Text content of the `Item`.
|
|
97
117
|
*/
|
|
98
|
-
children:
|
|
118
|
+
children: _propTypes.default.node.isRequired,
|
|
99
119
|
|
|
100
120
|
/**
|
|
101
121
|
* @ignore
|
|
102
122
|
* Set internally in `SideNav` render function - used to keep track of active item.
|
|
103
123
|
*/
|
|
104
|
-
itemId:
|
|
124
|
+
itemId: _propTypes.default.string,
|
|
105
125
|
|
|
106
126
|
/**
|
|
107
127
|
* @ignore
|
|
108
128
|
* Set internally in `SideNav` render function - used to keep track of expanded items groups.
|
|
109
129
|
*/
|
|
110
|
-
groupId:
|
|
111
|
-
onPress:
|
|
112
|
-
href:
|
|
130
|
+
groupId: _propTypes.default.string,
|
|
131
|
+
onPress: _propTypes.default.func,
|
|
132
|
+
href: _propTypes.default.string,
|
|
113
133
|
|
|
114
134
|
/**
|
|
115
135
|
* On Web if href is passed, React Native Web maps this object's props to
|
|
116
|
-
* `rel`, `target` and
|
|
136
|
+
* `rel`, `target` and `download` attrs.
|
|
117
137
|
*/
|
|
118
|
-
hrefAttrs:
|
|
138
|
+
hrefAttrs: _propTypes.default.shape(_utils.hrefAttrsProp.types),
|
|
119
139
|
|
|
120
140
|
/**
|
|
121
141
|
* @ignore
|
|
122
142
|
* Set internally in `SideNav` render function.
|
|
123
143
|
*/
|
|
124
|
-
isActive:
|
|
144
|
+
isActive: _propTypes.default.bool,
|
|
125
145
|
|
|
126
146
|
/**
|
|
127
147
|
* @ignore
|
|
128
148
|
* Set internally in `SideNav.ItemsGroup` render function. Used to mark expanded `ItemsGroup` parent.
|
|
129
149
|
*/
|
|
130
|
-
isExpanded:
|
|
131
|
-
tokens: getTokensPropType('SideNavItem'),
|
|
132
|
-
variant: variantProp.propType,
|
|
133
|
-
...a11yProps.types
|
|
150
|
+
isExpanded: _propTypes.default.bool,
|
|
151
|
+
tokens: (0, _utils.getTokensPropType)('SideNavItem'),
|
|
152
|
+
variant: _utils.variantProp.propType,
|
|
153
|
+
..._utils.a11yProps.types
|
|
134
154
|
};
|
|
135
|
-
|
|
155
|
+
var _default = Item;
|
|
156
|
+
exports.default = _default;
|