@telus-uds/components-base 0.0.2-prerelease.5 → 0.0.2-prerelease.9
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 +65 -0
- package/__fixtures__/Accessible.js +33 -0
- package/__fixtures__/Accessible.native.js +32 -0
- package/__fixtures__/testTheme.js +871 -52
- 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__/Icon/Icon.test.jsx +3 -3
- package/__tests__/IconButton/IconButton.test.jsx +52 -0
- 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__/StackView/StackView.test.jsx +0 -26
- 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/{TextInput.test.jsx → TextInputBase.test.jsx} +20 -46
- 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/babel.config.js +20 -0
- package/jest.config.js +13 -4
- 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 +54 -31
- package/lib/Box/index.js +13 -2
- package/lib/Button/Button.js +38 -10
- package/lib/Button/ButtonBase.js +115 -94
- package/lib/Button/ButtonGroup.js +94 -86
- 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 +50 -24
- 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 +85 -34
- package/lib/Feedback/index.js +13 -2
- 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/IconButton/IconButton.js +135 -0
- package/lib/IconButton/index.js +13 -0
- package/lib/InputLabel/InputLabel.js +70 -34
- package/lib/InputLabel/LabelContent.js +31 -0
- package/lib/InputLabel/LabelContent.native.js +9 -1
- package/lib/InputLabel/index.js +13 -2
- 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 +114 -145
- 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 +31 -12
- package/lib/Spacer/index.js +13 -2
- package/lib/StackView/StackView.js +57 -33
- package/lib/StackView/StackWrap.js +33 -10
- package/lib/StackView/StackWrap.native.js +13 -2
- package/lib/StackView/StackWrapBox.js +50 -23
- package/lib/StackView/StackWrapGap.js +45 -19
- package/lib/StackView/common.js +19 -4
- package/lib/StackView/getStackedContent.js +49 -19
- package/lib/StackView/index.js +29 -5
- 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 +41 -303
- package/lib/TextInput/TextInputBase.js +252 -0
- package/lib/TextInput/index.js +23 -2
- 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 -43
- 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 +518 -24
- 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 +51 -33
- package/lib/utils/pressability.js +120 -0
- package/lib/utils/propTypes.js +269 -116
- 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 +13 -4
- package/package.json +12 -9
- package/release-context.json +4 -4
- package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +0 -0
- package/src/Box/Box.jsx +11 -4
- package/src/Button/Button.jsx +9 -5
- package/src/Button/ButtonBase.jsx +69 -69
- package/src/Button/ButtonGroup.jsx +11 -24
- 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/ExpandCollapse/Control.jsx +1 -1
- package/src/Feedback/Feedback.jsx +31 -22
- 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 +21 -26
- package/src/Icon/IconText.jsx +63 -0
- package/src/Icon/index.js +3 -2
- package/src/IconButton/IconButton.jsx +107 -0
- package/src/IconButton/index.js +3 -0
- package/src/InputLabel/InputLabel.jsx +11 -4
- package/src/InputLabel/{LabelContent.web.jsx → LabelContent.jsx} +0 -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 +67 -148
- 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/StackView/StackView.jsx +25 -17
- package/src/StackView/StackWrap.jsx +9 -1
- package/src/StackView/StackWrapBox.jsx +19 -7
- package/src/StackView/StackWrapGap.jsx +15 -5
- package/src/StackView/getStackedContent.jsx +8 -2
- 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 +17 -290
- package/src/TextInput/TextInputBase.jsx +210 -0
- package/src/TextInput/index.js +2 -1
- 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 -20
- 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 +31 -3
- 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 +20 -12
- package/src/utils/pressability.js +96 -0
- package/src/utils/propTypes.js +195 -56
- 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/stories/A11yText/A11yText.stories.jsx +4 -8
- package/stories/Button/Button.stories.jsx +5 -0
- package/stories/Card/Card.stories.jsx +1 -1
- package/stories/Checkbox/Checkbox.stories.jsx +94 -0
- package/stories/Feedback/Feedback.stories.jsx +5 -6
- package/stories/Icon/Icon.stories.jsx +27 -7
- package/stories/IconButton/IconButton.stories.jsx +50 -0
- package/stories/InputLabel/InputLabel.stories.jsx +8 -3
- package/stories/Link/ChevronLink.stories.jsx +3 -3
- package/stories/Link/Link.stories.jsx +28 -18
- 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/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/Skeleton/Skeleton.stories.jsx +36 -0
- package/stories/Spacer/Spacer.stories.jsx +7 -2
- package/stories/StackView/StackView.stories.jsx +10 -0
- package/stories/StackView/StackWrap.stories.jsx +12 -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/Tooltip/Tooltip.stories.jsx +81 -0
- package/stories/TooltipButton/TooltipButton.stories.jsx +11 -0
- package/stories/{platform-supports.web.jsx → platform-supports.jsx} +0 -0
- package/stories/supports.jsx +36 -2
- 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/InputLabel/LabelContent.web.js +0 -17
- 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
|
@@ -1,93 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
import { View, TextInput as NativeTextInput, Platform, StyleSheet } from 'react-native';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import { useThemeTokens, applyTextStyles } from '../ThemeProvider';
|
|
5
|
-
import { getTokensPropType, useInputValue, variantProp } from '../utils';
|
|
6
|
-
import InputLabel from '../InputLabel';
|
|
7
|
-
import Feedback from '../Feedback';
|
|
8
|
-
import Box from '../Box';
|
|
9
|
-
import useUniqueId from '../utils/useUniqueId';
|
|
1
|
+
"use strict";
|
|
10
2
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
borderColor,
|
|
16
|
-
borderRadius,
|
|
17
|
-
paddingTop,
|
|
18
|
-
paddingBottom,
|
|
19
|
-
paddingLeft,
|
|
20
|
-
paddingRight = 0,
|
|
21
|
-
fontName,
|
|
22
|
-
fontSize,
|
|
23
|
-
fontWeight,
|
|
24
|
-
lineHeight,
|
|
25
|
-
icon,
|
|
26
|
-
iconSize = 0
|
|
27
|
-
}, inactive) => {
|
|
28
|
-
// Subtract border width from padding so overall input width/height doesn't
|
|
29
|
-
// jump around if the border width changes (avoiding NaN and negative padding)
|
|
30
|
-
const offsetBorder = value => typeof value === 'number' && typeof borderWidth === 'number' ? Math.max(0, value - borderWidth) : value;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
31
7
|
|
|
32
|
-
|
|
33
|
-
fontName,
|
|
34
|
-
fontSize,
|
|
35
|
-
lineHeight,
|
|
36
|
-
fontWeight
|
|
37
|
-
});
|
|
38
|
-
const webStyles = Platform.select({
|
|
39
|
-
web: {
|
|
40
|
-
outline: 'none',
|
|
41
|
-
cursor: inactive ? 'not-allowed' : undefined
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
const paddingWithIcon = iconSize + paddingRight;
|
|
45
|
-
return {
|
|
46
|
-
backgroundColor,
|
|
47
|
-
color,
|
|
48
|
-
borderWidth,
|
|
49
|
-
borderColor,
|
|
50
|
-
borderRadius,
|
|
51
|
-
paddingLeft: offsetBorder(paddingLeft),
|
|
52
|
-
paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(paddingRight),
|
|
53
|
-
paddingTop: offsetBorder(paddingTop),
|
|
54
|
-
paddingBottom: offsetBorder(paddingBottom),
|
|
55
|
-
...textStyles,
|
|
56
|
-
...webStyles
|
|
57
|
-
};
|
|
58
|
-
};
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
59
9
|
|
|
60
|
-
|
|
61
|
-
outerBackgroundColor,
|
|
62
|
-
outerBorderWidth = 0,
|
|
63
|
-
outerBorderColor,
|
|
64
|
-
outerBorderRadius = 0
|
|
65
|
-
}) => {
|
|
66
|
-
// Use negative margins so that the outer border doesn't expand the input's bounding box
|
|
67
|
-
const margin = -1 * outerBorderWidth; // Account for the border width since we style it as an outline
|
|
10
|
+
var _utils = require("../utils");
|
|
68
11
|
|
|
69
|
-
|
|
70
|
-
return {
|
|
71
|
-
background: outerBackgroundColor,
|
|
72
|
-
borderWidth: outerBorderWidth,
|
|
73
|
-
borderColor: outerBorderColor,
|
|
74
|
-
borderRadius,
|
|
75
|
-
marginTop: margin,
|
|
76
|
-
marginBottom: margin,
|
|
77
|
-
marginLeft: margin,
|
|
78
|
-
marginRight: margin
|
|
79
|
-
};
|
|
80
|
-
};
|
|
12
|
+
var _InputSupports = _interopRequireDefault(require("../InputSupports"));
|
|
81
13
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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 }; }
|
|
89
23
|
|
|
90
|
-
const joinDefined = array => array.filter(item => item !== undefined).join(' ');
|
|
91
24
|
/**
|
|
92
25
|
* A basic text input component. Use in forms or individually to receive user's input.
|
|
93
26
|
* Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
|
|
@@ -106,232 +39,37 @@ const joinDefined = array => array.filter(item => item !== undefined).join(' ');
|
|
|
106
39
|
* supported props and <a href="https://reactnative.dev/docs/textinput" target="_blank">React Native Web documentation</a> for
|
|
107
40
|
* their implementation on the web.
|
|
108
41
|
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
42
|
function TextInput({
|
|
112
|
-
value,
|
|
113
|
-
initialValue,
|
|
114
|
-
label,
|
|
115
|
-
hint,
|
|
116
|
-
hintPosition = 'inline',
|
|
117
|
-
feedback,
|
|
118
|
-
tooltip,
|
|
119
|
-
validation,
|
|
120
|
-
inactive,
|
|
121
|
-
readOnly,
|
|
122
|
-
onChange,
|
|
123
|
-
onChangeText,
|
|
124
|
-
onFocus,
|
|
125
|
-
onBlur,
|
|
126
|
-
onMouseOver,
|
|
127
|
-
onMouseOut,
|
|
128
43
|
tokens,
|
|
129
44
|
variant = {},
|
|
130
45
|
...remainingProps
|
|
131
46
|
}) {
|
|
132
|
-
const inputId = useUniqueId('text-input');
|
|
133
|
-
const hintId = useUniqueId('text-input-hint');
|
|
134
|
-
const feedbackId = useUniqueId('text-input-feedback');
|
|
135
|
-
const [isFocused, setIsFocused] = useState(false);
|
|
136
|
-
|
|
137
|
-
const handleFocus = event => {
|
|
138
|
-
setIsFocused(true);
|
|
139
|
-
if (typeof onFocus === 'function') onFocus(event);
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
const handleBlur = event => {
|
|
143
|
-
setIsFocused(false);
|
|
144
|
-
if (typeof onBlur === 'function') onBlur(event);
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
const [isHovered, setIsHovered] = useState(false);
|
|
148
|
-
|
|
149
|
-
const handleMouseOver = event => {
|
|
150
|
-
setIsHovered(true);
|
|
151
|
-
if (typeof onMouseOver === 'function') onMouseOver(event);
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
const handleMouseOut = event => {
|
|
155
|
-
setIsHovered(false);
|
|
156
|
-
if (typeof onMouseOut === 'function') onMouseOut(event);
|
|
157
|
-
};
|
|
158
|
-
|
|
159
47
|
const {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const handleChangeText = text => {
|
|
171
|
-
setValue(text);
|
|
172
|
-
if (typeof onChangeText === 'function') onChangeText(text);
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
const states = {
|
|
176
|
-
focus: isFocused,
|
|
177
|
-
hover: isHovered,
|
|
178
|
-
inactive
|
|
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
|
+
}
|
|
179
57
|
};
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
onFocus: handleFocus,
|
|
190
|
-
onBlur: handleBlur,
|
|
191
|
-
onMouseOver: handleMouseOver,
|
|
192
|
-
onMouseOut: handleMouseOut,
|
|
193
|
-
onChangeText: handleChangeText,
|
|
194
|
-
accessibilityLabel: label,
|
|
195
|
-
accessibilityHint: joinDefined([!hasValidationError && feedback, hint]),
|
|
196
|
-
// native only -> replaced with describedBy on web
|
|
197
|
-
accessibilityDescribedBy: joinDefined([!hasValidationError && feedback && feedbackId, // feedback receives a11yRole=alert, so there's no need to include it here
|
|
198
|
-
hint && hintId]),
|
|
199
|
-
// introduced in RNW 0.15.0
|
|
200
|
-
accessibilityInvalid: hasValidationError,
|
|
201
|
-
// introduced in RNW 0.15.0
|
|
202
|
-
nativeID: inputId,
|
|
203
|
-
defaultValue: initialValue,
|
|
204
|
-
// currentValue is being updated even if the input is not controlled, passing it down to the
|
|
205
|
-
// Input could lead to changing its state from uncontrolled to controlled
|
|
206
|
-
value: isControlled ? currentValue : undefined
|
|
207
|
-
}; // TODO: use Stack instead of the Boxes
|
|
208
|
-
|
|
209
|
-
const feedbackVariant = {};
|
|
210
|
-
|
|
211
|
-
if (hasValidationError) {
|
|
212
|
-
feedbackVariant.state = 'error';
|
|
213
|
-
} else if (validation === 'success') {
|
|
214
|
-
feedbackVariant.state = 'success';
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
return /*#__PURE__*/React.createElement(View, null, label && /*#__PURE__*/React.createElement(Box, {
|
|
218
|
-
bottom: 1
|
|
219
|
-
}, /*#__PURE__*/React.createElement(InputLabel, {
|
|
220
|
-
label: label,
|
|
221
|
-
hint: hint,
|
|
222
|
-
hintPosition: hintPosition,
|
|
223
|
-
hintId: hintId,
|
|
224
|
-
tooltip: tooltip,
|
|
225
|
-
forId: inputId
|
|
226
|
-
})), /*#__PURE__*/React.createElement(View, {
|
|
227
|
-
style: selectOuterBorderStyles(themeTokens)
|
|
228
|
-
}, /*#__PURE__*/React.createElement(NativeTextInput, Object.assign({
|
|
229
|
-
style: selectInputStyles(themeTokens, inactive)
|
|
230
|
-
}, inputProps)), IconComponent && /*#__PURE__*/React.createElement(View, {
|
|
231
|
-
pointerEvents: "none" // avoid hijacking input press events
|
|
232
|
-
,
|
|
233
|
-
style: [staticStyles.iconContainer, selectIconContainerStyles(themeTokens)]
|
|
234
|
-
}, /*#__PURE__*/React.createElement(IconComponent, {
|
|
235
|
-
tokens: selectIconTokens(themeTokens)
|
|
236
|
-
}))), feedback && /*#__PURE__*/React.createElement(Box, {
|
|
237
|
-
top: 1
|
|
238
|
-
}, /*#__PURE__*/React.createElement(Feedback, {
|
|
239
|
-
title: feedback,
|
|
240
|
-
variant: feedbackVariant,
|
|
241
|
-
accessibilityRole: hasValidationError ? 'alert' : undefined
|
|
242
|
-
})));
|
|
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
|
+
});
|
|
243
67
|
}
|
|
244
68
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
TextInput.propTypes = {
|
|
252
|
-
/**
|
|
253
|
-
* The input label.
|
|
254
|
-
*/
|
|
255
|
-
label: PropTypes.string,
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* If the `TextInput's` state is to be controlled by a parent component, use this prop
|
|
259
|
-
* together with the `onChange` to pass down and update the lifted state.
|
|
260
|
-
*/
|
|
261
|
-
value: PropTypes.string,
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Use this to set the initial value of an uncontrolled `TextInput`.
|
|
265
|
-
* Updating `initialValue` will **not** update the actual value.
|
|
266
|
-
*/
|
|
267
|
-
initialValue: PropTypes.string,
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* A short description of the expected input.
|
|
271
|
-
*/
|
|
272
|
-
hint: PropTypes.string,
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Position of the hint relative to label.
|
|
276
|
-
*/
|
|
277
|
-
hintPosition: PropTypes.oneOf(['inline', 'below']),
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* A detailed description of validation error/success or additional instructions.
|
|
281
|
-
* Visual variant is determined based on the `validation` prop.
|
|
282
|
-
*/
|
|
283
|
-
feedback: PropTypes.string,
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
|
|
287
|
-
*/
|
|
288
|
-
tooltip: PropTypes.string,
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* Use to visually mark an input as valid or invalid.
|
|
292
|
-
*/
|
|
293
|
-
validation: PropTypes.oneOf(['error', 'success']),
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* Disables all user interactions with the input.
|
|
297
|
-
*/
|
|
298
|
-
inactive: PropTypes.bool,
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* Makes it impossible to change the input's value.
|
|
302
|
-
*/
|
|
303
|
-
readOnly: PropTypes.bool,
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Use to react upon input's value changes. Required when the `value` prop is set.
|
|
307
|
-
* Will receive the input's value as an argument.
|
|
308
|
-
*/
|
|
309
|
-
onChange: PropTypes.func,
|
|
310
|
-
|
|
311
|
-
/** @ignore */
|
|
312
|
-
onChangeText: PropTypes.func,
|
|
313
|
-
|
|
314
|
-
/** @ignore */
|
|
315
|
-
onFocus: PropTypes.func,
|
|
316
|
-
|
|
317
|
-
/** @ignore */
|
|
318
|
-
onBlur: PropTypes.func,
|
|
319
|
-
|
|
320
|
-
/** @ignore */
|
|
321
|
-
onMouseOver: PropTypes.func,
|
|
322
|
-
|
|
323
|
-
/** @ignore */
|
|
324
|
-
onMouseOut: PropTypes.func,
|
|
325
|
-
tokens: getTokensPropType('TextInput'),
|
|
326
|
-
variant: variantProp.propType
|
|
69
|
+
TextInput.propTypes = { ..._propTypes.default.types,
|
|
70
|
+
..._propTypes2.default,
|
|
71
|
+
tokens: (0, _utils.getTokensPropType)('TextInput'),
|
|
72
|
+
variant: _utils.variantProp.propType
|
|
327
73
|
};
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
iconContainer: {
|
|
331
|
-
position: 'absolute',
|
|
332
|
-
right: 0,
|
|
333
|
-
top: 0,
|
|
334
|
-
bottom: 0,
|
|
335
|
-
justifyContent: 'center'
|
|
336
|
-
}
|
|
337
|
-
});
|
|
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
|
+
});
|
package/lib/TextInput/index.js
CHANGED
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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;
|