@telus-uds/components-base 1.1.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +8 -0
- package/CHANGELOG.json +38 -0
- package/CHANGELOG.md +35 -2
- package/__fixtures__/Accessible.js +4 -2
- package/__fixtures__/Accessible.native.js +5 -2
- package/__fixtures__/testTheme.js +9 -0
- package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +35 -0
- package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +287 -0
- package/__tests__/FlexGrid/Col.test.jsx +6 -10
- package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +1 -0
- package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +10 -0
- package/__tests__/ToggleSwitch/ToggleSwitchGroup.test.jsx +192 -0
- package/__tests__/utils/props.test.js +36 -0
- package/__tests__/utils/semantics.test.jsx +1 -10
- package/babel.config.js +27 -5
- package/component-docs.json +638 -1145
- package/generate-component-docs.js +3 -0
- package/lib/A11yText/index.js +6 -5
- package/lib/ActivityIndicator/Spinner.js +46 -37
- package/lib/ActivityIndicator/Spinner.native.js +26 -15
- package/lib/ActivityIndicator/index.js +3 -3
- package/lib/Box/Box.js +8 -8
- package/lib/Button/Button.js +2 -2
- package/lib/Button/ButtonBase.js +25 -12
- package/lib/Button/ButtonGroup.js +10 -12
- package/lib/Button/ButtonLink.js +4 -4
- package/lib/Button/propTypes.js +4 -2
- package/lib/Card/Card.js +6 -5
- package/lib/Card/CardBase.js +6 -9
- package/lib/Card/PressableCardBase.js +15 -14
- package/lib/Checkbox/Checkbox.js +4 -8
- package/lib/Divider/Divider.js +14 -13
- package/lib/ExpandCollapse/Control.js +7 -7
- package/lib/ExpandCollapse/ExpandCollapse.js +6 -2
- package/lib/ExpandCollapse/Panel.js +6 -7
- package/lib/Feedback/Feedback.js +6 -5
- package/lib/Fieldset/Fieldset.js +1 -3
- package/lib/FlexGrid/FlexGrid.js +4 -4
- package/lib/FlexGrid/helpers/index.js +1 -4
- package/lib/HorizontalScroll/HorizontalScroll.js +5 -6
- package/lib/IconButton/IconButton.js +14 -9
- package/lib/InputLabel/InputLabel.js +7 -2
- package/lib/InputSupports/InputSupports.js +2 -2
- package/lib/Link/LinkBase.js +21 -15
- package/lib/List/List.js +4 -6
- package/lib/List/ListItem.js +6 -2
- package/lib/Modal/Modal.js +6 -2
- package/lib/Notification/Notification.js +7 -2
- package/lib/Pagination/PageButton.js +3 -1
- package/lib/Pagination/Pagination.js +22 -5
- package/lib/Pagination/SideButton.js +3 -1
- package/lib/Progress/Progress.js +5 -4
- package/lib/Progress/ProgressBar.js +8 -7
- package/lib/Radio/Radio.js +4 -8
- package/lib/Radio/RadioButton.js +6 -3
- package/lib/Radio/RadioGroup.js +7 -2
- package/lib/RadioCard/RadioCard.js +4 -4
- package/lib/RadioCard/RadioCardGroup.js +9 -6
- package/lib/Search/Search.js +7 -2
- package/lib/Select/Select.js +10 -9
- package/lib/SideNav/Item.js +7 -7
- package/lib/SideNav/SideNav.js +7 -3
- package/lib/Skeleton/Skeleton.js +6 -2
- package/lib/Spacer/Spacer.js +9 -20
- package/lib/StackView/StackView.js +7 -7
- package/lib/StackView/StackWrapBox.js +6 -7
- package/lib/StackView/StackWrapGap.js +6 -5
- package/lib/StackView/getStackedContent.js +1 -1
- package/lib/StepTracker/Step.js +7 -3
- package/lib/StepTracker/StepTracker.js +7 -7
- package/lib/Tabs/Tabs.js +16 -4
- package/lib/Tabs/TabsItem.js +18 -11
- package/lib/Tags/Tags.js +11 -12
- package/lib/TextInput/TextArea.js +13 -14
- package/lib/TextInput/TextInput.js +13 -14
- package/lib/TextInput/TextInputBase.js +5 -3
- package/lib/ThemeProvider/useThemeTokens.js +3 -3
- package/lib/ThemeProvider/utils/theme-tokens.js +3 -3
- package/lib/ToggleSwitch/ToggleSwitch.js +106 -43
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +228 -0
- package/lib/ToggleSwitch/index.js +14 -4
- package/lib/Tooltip/Tooltip.js +7 -2
- package/lib/TooltipButton/TooltipButton.js +7 -2
- package/lib/Typography/Typography.js +8 -6
- package/lib/index.js +20 -8
- package/lib/utils/a11y/semantics.js +4 -3
- package/lib/utils/children.js +5 -1
- package/lib/utils/index.js +28 -5
- package/lib/utils/pressability.js +2 -2
- package/lib/utils/props/a11yProps.js +153 -0
- package/lib/utils/props/clickProps.js +36 -0
- package/lib/utils/props/componentPropType.js +70 -0
- package/lib/utils/props/copyPropTypes.js +14 -0
- package/lib/utils/props/getPropSelector.js +13 -0
- package/lib/utils/props/hrefAttrsProp.js +41 -0
- package/lib/utils/props/index.js +158 -0
- package/lib/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -3
- package/lib/utils/props/linkProps.js +64 -0
- package/lib/utils/props/paddingProp.js +20 -0
- package/lib/utils/props/pressProps.js +57 -0
- package/lib/utils/props/rectProp.js +20 -0
- package/lib/utils/props/responsiveProps.js +40 -0
- package/lib/utils/props/selectSystemProps.js +31 -0
- package/lib/utils/props/spacingProps.js +71 -0
- package/lib/utils/props/tokens.js +145 -0
- package/lib/utils/props/variantProp.js +28 -0
- package/lib/utils/props/viewProps.js +34 -0
- package/lib/utils/ssr.js +51 -0
- package/lib/utils/useResponsiveProp.js +1 -1
- package/lib/utils/useSpacingScale.js +4 -4
- package/lib/utils/withLinkRouter.js +98 -0
- package/lib-module/A11yInfoProvider/index.js +62 -0
- package/lib-module/A11yText/index.js +55 -0
- package/lib-module/ActivityIndicator/Spinner.js +76 -0
- package/lib-module/ActivityIndicator/Spinner.native.js +143 -0
- package/lib-module/ActivityIndicator/index.js +40 -0
- package/lib-module/ActivityIndicator/shared.js +12 -0
- package/lib-module/BaseProvider/index.js +26 -0
- package/lib-module/Box/Box.js +243 -0
- package/lib-module/Box/index.js +2 -0
- package/lib-module/Button/Button.js +25 -0
- package/lib-module/Button/ButtonBase.js +254 -0
- package/lib-module/Button/ButtonGroup.js +164 -0
- package/lib-module/Button/ButtonLink.js +39 -0
- package/lib-module/Button/index.js +4 -0
- package/lib-module/Button/propTypes.js +36 -0
- package/lib-module/Card/Card.js +83 -0
- package/lib-module/Card/CardBase.js +62 -0
- package/lib-module/Card/PressableCardBase.js +113 -0
- package/lib-module/Card/index.js +4 -0
- package/lib-module/Checkbox/Checkbox.js +321 -0
- package/lib-module/Checkbox/CheckboxGroup.js +218 -0
- package/lib-module/Checkbox/CheckboxInput.js +58 -0
- package/lib-module/Checkbox/CheckboxInput.native.js +6 -0
- package/lib-module/Checkbox/index.js +3 -0
- package/lib-module/Divider/Divider.js +123 -0
- package/lib-module/Divider/index.js +2 -0
- package/lib-module/ExpandCollapse/Accordion.js +15 -0
- package/lib-module/ExpandCollapse/Control.js +130 -0
- package/lib-module/ExpandCollapse/ExpandCollapse.js +94 -0
- package/lib-module/ExpandCollapse/Panel.js +158 -0
- package/lib-module/ExpandCollapse/index.js +7 -0
- package/lib-module/Feedback/Feedback.js +144 -0
- package/lib-module/Feedback/index.js +2 -0
- package/lib-module/Fieldset/Fieldset.js +145 -0
- package/lib-module/Fieldset/FieldsetContainer.js +29 -0
- package/lib-module/Fieldset/FieldsetContainer.native.js +20 -0
- package/lib-module/Fieldset/Legend.js +21 -0
- package/lib-module/Fieldset/Legend.native.js +28 -0
- package/lib-module/Fieldset/cssReset.js +14 -0
- package/lib-module/Fieldset/index.js +2 -0
- package/lib-module/FlexGrid/Col/Col.js +265 -0
- package/lib-module/FlexGrid/Col/index.js +2 -0
- package/lib-module/FlexGrid/FlexGrid.js +147 -0
- package/lib-module/FlexGrid/Row/Row.js +177 -0
- package/lib-module/FlexGrid/Row/index.js +2 -0
- package/lib-module/FlexGrid/helpers/index.js +18 -0
- package/lib-module/FlexGrid/index.js +2 -0
- package/lib-module/FlexGrid/providers/GutterContext.js +3 -0
- package/lib-module/HorizontalScroll/HorizontalScroll.js +171 -0
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +102 -0
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +47 -0
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +24 -0
- package/lib-module/HorizontalScroll/dictionary.js +11 -0
- package/lib-module/HorizontalScroll/index.js +11 -0
- package/lib-module/HorizontalScroll/itemPositions.js +106 -0
- package/lib-module/Icon/Icon.js +61 -0
- package/lib-module/Icon/IconText.js +81 -0
- package/lib-module/Icon/index.js +4 -0
- package/lib-module/IconButton/IconButton.js +115 -0
- package/lib-module/IconButton/index.js +2 -0
- package/lib-module/InputLabel/InputLabel.js +131 -0
- package/lib-module/InputLabel/LabelContent.js +24 -0
- package/lib-module/InputLabel/LabelContent.native.js +16 -0
- package/lib-module/InputLabel/index.js +2 -0
- package/lib-module/InputSupports/InputSupports.js +88 -0
- package/lib-module/InputSupports/index.js +2 -0
- package/lib-module/InputSupports/useInputSupports.js +31 -0
- package/lib-module/Link/ChevronLink.js +51 -0
- package/lib-module/Link/InlinePressable.js +37 -0
- package/lib-module/Link/InlinePressable.native.js +85 -0
- package/lib-module/Link/Link.js +27 -0
- package/lib-module/Link/LinkBase.js +210 -0
- package/lib-module/Link/TextButton.js +43 -0
- package/lib-module/Link/index.js +5 -0
- package/lib-module/List/List.js +55 -0
- package/lib-module/List/ListItem.js +213 -0
- package/lib-module/List/index.js +5 -0
- package/lib-module/Modal/Modal.js +208 -0
- package/lib-module/Modal/dictionary.js +9 -0
- package/lib-module/Modal/index.js +2 -0
- package/lib-module/Notification/Notification.js +196 -0
- package/lib-module/Notification/dictionary.js +8 -0
- package/lib-module/Notification/index.js +2 -0
- package/lib-module/Pagination/PageButton.js +65 -0
- package/lib-module/Pagination/Pagination.js +140 -0
- package/lib-module/Pagination/SideButton.js +103 -0
- package/lib-module/Pagination/dictionary.js +18 -0
- package/lib-module/Pagination/index.js +2 -0
- package/lib-module/Pagination/usePagination.js +72 -0
- package/lib-module/Progress/Progress.js +85 -0
- package/lib-module/Progress/ProgressBar.js +134 -0
- package/lib-module/Progress/ProgressBarBackground.js +41 -0
- package/lib-module/Progress/index.js +4 -0
- package/lib-module/Radio/Radio.js +263 -0
- package/lib-module/Radio/RadioButton.js +128 -0
- package/lib-module/Radio/RadioGroup.js +225 -0
- package/lib-module/Radio/RadioInput.js +60 -0
- package/lib-module/Radio/RadioInput.native.js +6 -0
- package/lib-module/Radio/index.js +3 -0
- package/lib-module/RadioCard/RadioCard.js +218 -0
- package/lib-module/RadioCard/RadioCardGroup.js +232 -0
- package/lib-module/RadioCard/index.js +3 -0
- package/lib-module/Search/Search.js +233 -0
- package/lib-module/Search/dictionary.js +12 -0
- package/lib-module/Search/index.js +2 -0
- package/lib-module/Select/Group.js +20 -0
- package/lib-module/Select/Group.native.js +14 -0
- package/lib-module/Select/Item.js +17 -0
- package/lib-module/Select/Item.native.js +9 -0
- package/lib-module/Select/Picker.js +67 -0
- package/lib-module/Select/Picker.native.js +110 -0
- package/lib-module/Select/Select.js +317 -0
- package/lib-module/Select/index.js +6 -0
- package/lib-module/SideNav/Item.js +139 -0
- package/lib-module/SideNav/ItemContent.js +45 -0
- package/lib-module/SideNav/ItemsGroup.js +115 -0
- package/lib-module/SideNav/SideNav.js +133 -0
- package/lib-module/SideNav/index.js +1 -0
- package/lib-module/Skeleton/Skeleton.js +117 -0
- package/lib-module/Skeleton/index.js +2 -0
- package/lib-module/Skeleton/skeleton.constant.js +3 -0
- package/lib-module/Skeleton/skeletonWebAnimation.js +18 -0
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +24 -0
- package/lib-module/Spacer/Spacer.js +97 -0
- package/lib-module/Spacer/index.js +2 -0
- package/lib-module/StackView/StackView.js +124 -0
- package/lib-module/StackView/StackWrap.js +48 -0
- package/lib-module/StackView/StackWrap.native.js +3 -0
- package/lib-module/StackView/StackWrapBox.js +114 -0
- package/lib-module/StackView/StackWrapGap.js +58 -0
- package/lib-module/StackView/common.js +32 -0
- package/lib-module/StackView/getStackedContent.js +123 -0
- package/lib-module/StackView/index.js +5 -0
- package/lib-module/StepTracker/Step.js +229 -0
- package/lib-module/StepTracker/StepTracker.js +175 -0
- package/lib-module/StepTracker/dictionary.js +10 -0
- package/lib-module/StepTracker/index.js +2 -0
- package/lib-module/Tabs/Tabs.js +113 -0
- package/lib-module/Tabs/TabsItem.js +215 -0
- package/lib-module/Tabs/index.js +2 -0
- package/lib-module/Tags/Tags.js +238 -0
- package/lib-module/Tags/index.js +2 -0
- package/lib-module/TextInput/TextArea.js +88 -0
- package/lib-module/TextInput/TextInput.js +60 -0
- package/lib-module/TextInput/TextInputBase.js +233 -0
- package/lib-module/TextInput/index.js +3 -0
- package/lib-module/TextInput/propTypes.js +31 -0
- package/lib-module/ThemeProvider/ThemeProvider.js +35 -0
- package/lib-module/ThemeProvider/index.js +6 -0
- package/lib-module/ThemeProvider/useSetTheme.js +22 -0
- package/lib-module/ThemeProvider/useTheme.js +14 -0
- package/lib-module/ThemeProvider/useThemeTokens.js +105 -0
- package/lib-module/ThemeProvider/utils/index.js +2 -0
- package/lib-module/ThemeProvider/utils/styles.js +174 -0
- package/lib-module/ThemeProvider/utils/theme-tokens.js +151 -0
- package/lib-module/ToggleSwitch/ToggleSwitch.js +224 -0
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +202 -0
- package/lib-module/ToggleSwitch/index.js +3 -0
- package/lib-module/Tooltip/Backdrop.js +52 -0
- package/lib-module/Tooltip/Backdrop.native.js +43 -0
- package/lib-module/Tooltip/Tooltip.js +332 -0
- package/lib-module/Tooltip/dictionary.js +8 -0
- package/lib-module/Tooltip/getTooltipPosition.js +164 -0
- package/lib-module/Tooltip/index.js +2 -0
- package/lib-module/TooltipButton/TooltipButton.js +71 -0
- package/lib-module/TooltipButton/index.js +2 -0
- package/lib-module/Typography/Typography.js +118 -0
- package/lib-module/Typography/index.js +2 -0
- package/lib-module/ViewportProvider/ViewportProvider.js +28 -0
- package/lib-module/ViewportProvider/index.js +3 -0
- package/lib-module/ViewportProvider/useViewport.js +3 -0
- package/lib-module/ViewportProvider/useViewportListener.js +43 -0
- package/lib-module/index.js +48 -0
- package/lib-module/utils/a11y/index.js +2 -0
- package/lib-module/utils/a11y/semantics.js +154 -0
- package/lib-module/utils/a11y/textSize.js +34 -0
- package/lib-module/utils/animation/index.js +2 -0
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +49 -0
- package/lib-module/utils/children.js +118 -0
- package/lib-module/utils/index.js +15 -0
- package/lib-module/utils/info/index.js +7 -0
- package/lib-module/utils/info/platform/index.js +11 -0
- package/lib-module/utils/info/platform/platform.android.js +1 -0
- package/lib-module/utils/info/platform/platform.ios.js +1 -0
- package/lib-module/utils/info/platform/platform.js +1 -0
- package/lib-module/utils/info/platform/platform.native.js +4 -0
- package/lib-module/utils/info/versions.js +5 -0
- package/lib-module/utils/input.js +180 -0
- package/lib-module/utils/pressability.js +97 -0
- package/lib-module/utils/props/a11yProps.js +140 -0
- package/lib-module/utils/props/clickProps.js +25 -0
- package/lib-module/utils/props/componentPropType.js +63 -0
- package/lib-module/utils/props/copyPropTypes.js +2 -0
- package/lib-module/utils/props/getPropSelector.js +6 -0
- package/lib-module/utils/props/hrefAttrsProp.js +30 -0
- package/lib-module/utils/props/index.js +16 -0
- package/lib-module/utils/props/inputSupportsProps.js +54 -0
- package/lib-module/utils/props/linkProps.js +47 -0
- package/lib-module/utils/props/paddingProp.js +9 -0
- package/lib-module/utils/props/pressProps.js +42 -0
- package/lib-module/utils/props/rectProp.js +9 -0
- package/lib-module/utils/props/responsiveProps.js +30 -0
- package/lib-module/utils/props/selectSystemProps.js +24 -0
- package/lib-module/utils/props/spacingProps.js +56 -0
- package/lib-module/utils/props/tokens.js +120 -0
- package/lib-module/utils/props/variantProp.js +18 -0
- package/lib-module/utils/props/viewProps.js +22 -0
- package/lib-module/utils/ssr.js +35 -0
- package/lib-module/utils/useCopy.js +42 -0
- package/lib-module/utils/useHash.js +44 -0
- package/lib-module/utils/useHash.native.js +7 -0
- package/lib-module/utils/useResponsiveProp.js +47 -0
- package/lib-module/utils/useSpacingScale.js +123 -0
- package/lib-module/utils/useUniqueId.js +12 -0
- package/lib-module/utils/withLinkRouter.js +82 -0
- package/package.json +9 -5
- package/src/A11yText/index.jsx +7 -3
- package/src/ActivityIndicator/Spinner.jsx +56 -44
- package/src/ActivityIndicator/Spinner.native.jsx +20 -12
- package/src/ActivityIndicator/index.jsx +1 -1
- package/src/Box/Box.jsx +15 -13
- package/src/Button/Button.jsx +1 -1
- package/src/Button/ButtonBase.jsx +20 -12
- package/src/Button/ButtonGroup.jsx +17 -8
- package/src/Button/ButtonLink.jsx +1 -1
- package/src/Button/propTypes.js +2 -1
- package/src/Card/Card.jsx +7 -4
- package/src/Card/CardBase.jsx +6 -5
- package/src/Card/PressableCardBase.jsx +16 -14
- package/src/Checkbox/Checkbox.jsx +12 -7
- package/src/Divider/Divider.jsx +19 -12
- package/src/ExpandCollapse/Control.jsx +12 -7
- package/src/ExpandCollapse/ExpandCollapse.jsx +13 -3
- package/src/ExpandCollapse/Panel.jsx +15 -5
- package/src/Feedback/Feedback.jsx +13 -3
- package/src/Fieldset/Fieldset.jsx +1 -1
- package/src/FlexGrid/FlexGrid.jsx +11 -5
- package/src/FlexGrid/helpers/index.js +1 -3
- package/src/HorizontalScroll/HorizontalScroll.jsx +12 -5
- package/src/IconButton/IconButton.jsx +18 -12
- package/src/InputLabel/InputLabel.jsx +16 -2
- package/src/InputSupports/InputSupports.jsx +1 -1
- package/src/Link/LinkBase.jsx +15 -12
- package/src/List/List.jsx +12 -5
- package/src/List/ListItem.jsx +16 -2
- package/src/Modal/Modal.jsx +63 -50
- package/src/Notification/Notification.jsx +17 -3
- package/src/Pagination/PageButton.jsx +3 -2
- package/src/Pagination/Pagination.jsx +38 -4
- package/src/Pagination/SideButton.jsx +2 -2
- package/src/Progress/Progress.jsx +5 -3
- package/src/Progress/ProgressBar.jsx +8 -6
- package/src/Radio/Radio.jsx +13 -7
- package/src/Radio/RadioButton.jsx +13 -3
- package/src/Radio/RadioGroup.jsx +14 -2
- package/src/RadioCard/RadioCard.jsx +9 -6
- package/src/RadioCard/RadioCardGroup.jsx +16 -4
- package/src/Search/Search.jsx +15 -3
- package/src/Select/Select.jsx +21 -7
- package/src/SideNav/Item.jsx +15 -7
- package/src/SideNav/SideNav.jsx +13 -2
- package/src/Skeleton/Skeleton.jsx +55 -43
- package/src/Spacer/Spacer.jsx +10 -18
- package/src/StackView/StackView.jsx +13 -12
- package/src/StackView/StackWrapBox.jsx +12 -12
- package/src/StackView/StackWrapGap.jsx +9 -7
- package/src/StackView/getStackedContent.jsx +1 -1
- package/src/StepTracker/Step.jsx +7 -4
- package/src/StepTracker/StepTracker.jsx +8 -8
- package/src/Tabs/Tabs.jsx +63 -23
- package/src/Tabs/TabsItem.jsx +22 -14
- package/src/Tags/Tags.jsx +16 -7
- package/src/TextInput/TextArea.jsx +20 -8
- package/src/TextInput/TextInput.jsx +20 -8
- package/src/TextInput/TextInputBase.jsx +13 -3
- package/src/ThemeProvider/useThemeTokens.js +3 -3
- package/src/ThemeProvider/utils/theme-tokens.js +3 -3
- package/src/ToggleSwitch/ToggleSwitch.jsx +104 -41
- package/src/ToggleSwitch/ToggleSwitchGroup.jsx +211 -0
- package/src/ToggleSwitch/index.js +2 -1
- package/src/Tooltip/Tooltip.jsx +13 -3
- package/src/TooltipButton/TooltipButton.jsx +6 -4
- package/src/Typography/Typography.jsx +10 -6
- package/src/index.js +2 -2
- package/src/utils/a11y/semantics.js +3 -2
- package/src/utils/children.jsx +2 -1
- package/src/utils/index.js +3 -1
- package/src/utils/pressability.js +1 -1
- package/src/utils/props/a11yProps.js +151 -0
- package/src/utils/props/clickProps.js +31 -0
- package/src/utils/props/componentPropType.js +67 -0
- package/src/utils/props/copyPropTypes.js +3 -0
- package/src/utils/props/getPropSelector.js +14 -0
- package/src/utils/props/hrefAttrsProp.js +25 -0
- package/src/utils/props/index.js +16 -0
- package/src/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -4
- package/src/utils/props/linkProps.js +43 -0
- package/src/utils/props/paddingProp.js +10 -0
- package/src/utils/props/pressProps.js +45 -0
- package/src/utils/props/rectProp.js +10 -0
- package/src/utils/props/responsiveProps.js +30 -0
- package/src/utils/props/selectSystemProps.js +25 -0
- package/src/utils/props/spacingProps.js +58 -0
- package/src/utils/props/tokens.js +150 -0
- package/src/utils/props/variantProp.js +20 -0
- package/src/utils/props/viewProps.js +23 -0
- package/src/utils/ssr.js +35 -0
- package/src/utils/useResponsiveProp.js +1 -1
- package/src/utils/useSpacingScale.js +4 -4
- package/src/utils/withLinkRouter.jsx +68 -0
- package/stories/TextInput/TextArea.stories.jsx +1 -0
- package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +5 -1
- package/stories/ToggleSwitch/ToggleSwitchGroup.stories.jsx +81 -0
- package/.ultra.cache.json +0 -1
- package/lib/utils/a11y/propTypes.js +0 -61
- package/lib/utils/a11y/propTypes.native.js +0 -47
- package/lib/utils/propTypes.js +0 -541
- package/release-context.json +0 -7
- package/src/utils/a11y/propTypes.js +0 -61
- package/src/utils/a11y/propTypes.native.js +0 -39
- package/src/utils/propTypes.js +0 -531
package/lib/Tabs/TabsItem.js
CHANGED
|
@@ -35,6 +35,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
35
35
|
|
|
36
36
|
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; }
|
|
37
37
|
|
|
38
|
+
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
38
39
|
const {
|
|
39
40
|
itemPositionsPropType,
|
|
40
41
|
getItemPositionLayoutHandler
|
|
@@ -99,7 +100,6 @@ const selectContainerStyles = ({
|
|
|
99
100
|
|
|
100
101
|
|
|
101
102
|
const TabsItem = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
102
|
-
onPress,
|
|
103
103
|
href,
|
|
104
104
|
variant,
|
|
105
105
|
tokens,
|
|
@@ -114,8 +114,14 @@ const TabsItem = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
114
114
|
} : {
|
|
115
115
|
selected
|
|
116
116
|
},
|
|
117
|
-
...
|
|
117
|
+
...rawRest
|
|
118
118
|
}, ref) => {
|
|
119
|
+
// Convert onClick etc to onPress etc if used in an integration
|
|
120
|
+
const {
|
|
121
|
+
onPress,
|
|
122
|
+
...rest
|
|
123
|
+
} = _utils.clickProps.toPressProps(rawRest);
|
|
124
|
+
|
|
119
125
|
const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('TabsItem', tokens, variant);
|
|
120
126
|
|
|
121
127
|
const resolveTokens = pressableState => (0, _utils.resolvePressableTokens)(getTokens, pressableState, {
|
|
@@ -139,15 +145,15 @@ const TabsItem = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
139
145
|
href
|
|
140
146
|
});
|
|
141
147
|
|
|
142
|
-
const handlePress = onPress || openHref ? () => {
|
|
143
|
-
if (onPress) onPress();
|
|
144
|
-
if (openHref) openHref();
|
|
148
|
+
const handlePress = onPress || openHref ? (...args) => {
|
|
149
|
+
if (onPress) onPress(...args);
|
|
150
|
+
if (openHref) openHref(...args);
|
|
145
151
|
} : undefined;
|
|
146
|
-
const
|
|
152
|
+
const selectedProps = selectProps({
|
|
147
153
|
accessibilityRole,
|
|
148
154
|
accessibilityState,
|
|
149
|
-
...
|
|
150
|
-
};
|
|
155
|
+
...rest
|
|
156
|
+
});
|
|
151
157
|
(0, _react.useEffect)(() => {
|
|
152
158
|
// If this is selected while off-screen, scroll it into view
|
|
153
159
|
if (selected) {
|
|
@@ -168,7 +174,7 @@ const TabsItem = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
168
174
|
href: href,
|
|
169
175
|
style: getPressableStyle,
|
|
170
176
|
onLayout: handleLayout,
|
|
171
|
-
...
|
|
177
|
+
...selectedProps,
|
|
172
178
|
children: pressableState => {
|
|
173
179
|
const {
|
|
174
180
|
space,
|
|
@@ -206,7 +212,7 @@ const TabsItem = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
206
212
|
});
|
|
207
213
|
});
|
|
208
214
|
TabsItem.displayName = 'TabsItem';
|
|
209
|
-
TabsItem.propTypes = { ...
|
|
215
|
+
TabsItem.propTypes = { ...selectedSystemPropTypes,
|
|
210
216
|
tokens: (0, _utils.getTokensPropType)('TabsItem'),
|
|
211
217
|
variant: _utils.variantProp.propType,
|
|
212
218
|
onPress: _propTypes.default.func,
|
|
@@ -234,5 +240,6 @@ const staticStyles = _StyleSheet.default.create({
|
|
|
234
240
|
}
|
|
235
241
|
});
|
|
236
242
|
|
|
237
|
-
var _default = TabsItem;
|
|
243
|
+
var _default = (0, _utils.withLinkRouter)(TabsItem);
|
|
244
|
+
|
|
238
245
|
exports.default = _default;
|
package/lib/Tags/Tags.js
CHANGED
|
@@ -27,7 +27,7 @@ var _ViewportProvider = require("../ViewportProvider");
|
|
|
27
27
|
|
|
28
28
|
var _ThemeProvider = require("../ThemeProvider");
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _props = require("../utils/props");
|
|
31
31
|
|
|
32
32
|
var _input = require("../utils/input");
|
|
33
33
|
|
|
@@ -41,6 +41,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
41
41
|
|
|
42
42
|
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; }
|
|
43
43
|
|
|
44
|
+
const [selectProps, selectedSystemPropTypes] = (0, _props.selectSystemProps)([_props.a11yProps, _props.pressProps, _props.viewProps]);
|
|
45
|
+
|
|
44
46
|
const selectIconTextTokens = ({
|
|
45
47
|
icon,
|
|
46
48
|
iconPosition,
|
|
@@ -97,14 +99,14 @@ const Tags = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
97
99
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Tags', tokens, variant, {
|
|
98
100
|
viewport
|
|
99
101
|
});
|
|
100
|
-
const stackTokens = (0,
|
|
102
|
+
const stackTokens = (0, _props.selectTokens)('StackView', themeTokens);
|
|
101
103
|
const {
|
|
102
104
|
direction,
|
|
103
105
|
space
|
|
104
106
|
} = themeTokens;
|
|
105
107
|
const getItemTokens = (0, _ThemeProvider.useThemeTokensCallback)('TagsItem', tokens, variant);
|
|
106
108
|
|
|
107
|
-
const getButtonTokens = buttonState => (0,
|
|
109
|
+
const getButtonTokens = buttonState => (0, _props.selectTokens)('Button', getItemTokens(buttonState));
|
|
108
110
|
|
|
109
111
|
const {
|
|
110
112
|
currentValues,
|
|
@@ -116,16 +118,14 @@ const Tags = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
116
118
|
onChange,
|
|
117
119
|
readOnly
|
|
118
120
|
});
|
|
119
|
-
|
|
120
|
-
const a11y = _propTypes2.a11yProps.select({
|
|
121
|
+
const selectedProps = selectProps({
|
|
121
122
|
accessibilityRole,
|
|
122
123
|
...rest
|
|
123
124
|
});
|
|
124
|
-
|
|
125
125
|
const itemA11yRole = 'checkbox';
|
|
126
126
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, {
|
|
127
127
|
ref: ref,
|
|
128
|
-
...
|
|
128
|
+
...selectedProps,
|
|
129
129
|
space: space,
|
|
130
130
|
direction: direction,
|
|
131
131
|
tokens: stackTokens,
|
|
@@ -154,7 +154,7 @@ const Tags = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
154
154
|
},
|
|
155
155
|
accessibilityRole: itemA11yRole,
|
|
156
156
|
accessibilityLabel,
|
|
157
|
-
...
|
|
157
|
+
..._props.a11yProps.getPositionInSet(items.length, index)
|
|
158
158
|
};
|
|
159
159
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
|
|
160
160
|
ref: itemRef,
|
|
@@ -202,10 +202,9 @@ const Tags = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
202
202
|
});
|
|
203
203
|
});
|
|
204
204
|
Tags.displayName = 'Tags';
|
|
205
|
-
Tags.propTypes = { ...
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
variant: _propTypes2.variantProp.propType,
|
|
205
|
+
Tags.propTypes = { ...selectedSystemPropTypes,
|
|
206
|
+
tokens: (0, _props.getTokensPropType)('Tags'),
|
|
207
|
+
variant: _props.variantProp.propType,
|
|
209
208
|
|
|
210
209
|
/**
|
|
211
210
|
* If provided, sets a maximum number of items a user may select at once.
|
|
@@ -17,9 +17,7 @@ var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
|
|
|
17
17
|
|
|
18
18
|
var _ThemeProvider = require("../ThemeProvider");
|
|
19
19
|
|
|
20
|
-
var _propTypes = _interopRequireDefault(require("
|
|
21
|
-
|
|
22
|
-
var _propTypes2 = _interopRequireDefault(require("./propTypes"));
|
|
20
|
+
var _propTypes = _interopRequireDefault(require("./propTypes"));
|
|
23
21
|
|
|
24
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
23
|
|
|
@@ -29,6 +27,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
29
27
|
|
|
30
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; }
|
|
31
29
|
|
|
30
|
+
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.inputSupportsProps, _utils.viewProps]);
|
|
32
31
|
/**
|
|
33
32
|
* Use to collect long-form information such as product feedback or support queries.
|
|
34
33
|
* Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
|
|
@@ -53,10 +52,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
53
52
|
* or an indicator that the field is optional.
|
|
54
53
|
* It is a more usable and accessible option than the HTML `placeholder` attribute.
|
|
55
54
|
*/
|
|
55
|
+
|
|
56
56
|
const TextArea = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
57
57
|
tokens,
|
|
58
58
|
variant = {},
|
|
59
|
-
...
|
|
59
|
+
...rest
|
|
60
60
|
}, ref) => {
|
|
61
61
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('TextArea', tokens, variant);
|
|
62
62
|
const [inputHeight, setInputHeight] = (0, _react.useState)(); // adjust the text area's height as new lines are added to the content
|
|
@@ -76,10 +76,9 @@ const TextArea = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
76
76
|
|
|
77
77
|
const {
|
|
78
78
|
props: supportsProps,
|
|
79
|
-
|
|
80
|
-
} =
|
|
81
|
-
|
|
82
|
-
const inputProps = { ...rest,
|
|
79
|
+
...selectedProps
|
|
80
|
+
} = selectProps(rest);
|
|
81
|
+
const inputProps = { ...selectedProps,
|
|
83
82
|
variant: { ...variant,
|
|
84
83
|
validation: supportsProps.validation
|
|
85
84
|
},
|
|
@@ -90,19 +89,19 @@ const TextArea = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
90
89
|
};
|
|
91
90
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
|
|
92
91
|
children: ({
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
inputId,
|
|
93
|
+
...props
|
|
95
94
|
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, {
|
|
96
95
|
ref: ref,
|
|
97
96
|
...inputProps,
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
nativeID: inputId,
|
|
98
|
+
...props
|
|
100
99
|
})
|
|
101
100
|
});
|
|
102
101
|
});
|
|
103
102
|
TextArea.displayName = 'TextArea';
|
|
104
|
-
TextArea.propTypes = { ...
|
|
105
|
-
...
|
|
103
|
+
TextArea.propTypes = { ...selectedSystemPropTypes,
|
|
104
|
+
..._propTypes.default,
|
|
106
105
|
tokens: (0, _utils.getTokensPropType)('TextArea', 'TextInput'),
|
|
107
106
|
// TODO: support both TextArea and TextInput tokens
|
|
108
107
|
variant: _utils.variantProp.propType
|
|
@@ -13,9 +13,7 @@ var _InputSupports = _interopRequireDefault(require("../InputSupports"));
|
|
|
13
13
|
|
|
14
14
|
var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
|
|
15
15
|
|
|
16
|
-
var _propTypes = _interopRequireDefault(require("
|
|
17
|
-
|
|
18
|
-
var _propTypes2 = _interopRequireDefault(require("./propTypes"));
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("./propTypes"));
|
|
19
17
|
|
|
20
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
19
|
|
|
@@ -25,6 +23,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
25
23
|
|
|
26
24
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
25
|
|
|
26
|
+
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.inputSupportsProps, _utils.viewProps]);
|
|
28
27
|
/**
|
|
29
28
|
* A basic text input component. Use in forms or individually to receive user's input.
|
|
30
29
|
* Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
|
|
@@ -43,17 +42,17 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
43
42
|
* supported props and <a href="https://reactnative.dev/docs/textinput" target="_blank">React Native Web documentation</a> for
|
|
44
43
|
* their implementation on the web.
|
|
45
44
|
*/
|
|
45
|
+
|
|
46
46
|
const TextInput = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
47
47
|
tokens,
|
|
48
48
|
variant = {},
|
|
49
|
-
...
|
|
49
|
+
...rest
|
|
50
50
|
}, ref) => {
|
|
51
51
|
const {
|
|
52
52
|
props: supportsProps,
|
|
53
|
-
|
|
54
|
-
} =
|
|
55
|
-
|
|
56
|
-
const inputProps = { ...rest,
|
|
53
|
+
...selectedProps
|
|
54
|
+
} = selectProps(rest);
|
|
55
|
+
const inputProps = { ...selectedProps,
|
|
57
56
|
tokens,
|
|
58
57
|
variant: { ...variant,
|
|
59
58
|
validation: supportsProps.validation
|
|
@@ -61,19 +60,19 @@ const TextInput = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
61
60
|
};
|
|
62
61
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
|
|
63
62
|
children: ({
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
inputId,
|
|
64
|
+
...props
|
|
66
65
|
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, {
|
|
67
66
|
ref: ref,
|
|
68
67
|
...inputProps,
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
nativeID: inputId,
|
|
69
|
+
...props
|
|
71
70
|
})
|
|
72
71
|
});
|
|
73
72
|
});
|
|
74
73
|
TextInput.displayName = 'TextInput';
|
|
75
|
-
TextInput.propTypes = { ...
|
|
76
|
-
...
|
|
74
|
+
TextInput.propTypes = { ...selectedSystemPropTypes,
|
|
75
|
+
..._propTypes.default,
|
|
77
76
|
tokens: (0, _utils.getTokensPropType)('TextInput'),
|
|
78
77
|
variant: _utils.variantProp.propType
|
|
79
78
|
};
|
|
@@ -29,6 +29,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
29
29
|
|
|
30
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
31
|
|
|
32
|
+
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
33
|
+
|
|
32
34
|
const selectInputStyles = ({
|
|
33
35
|
backgroundColor,
|
|
34
36
|
color,
|
|
@@ -144,7 +146,7 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
144
146
|
onMouseOut,
|
|
145
147
|
tokens,
|
|
146
148
|
variant = {},
|
|
147
|
-
...
|
|
149
|
+
...rest
|
|
148
150
|
}, ref) => {
|
|
149
151
|
const [isFocused, setIsFocused] = (0, _react.useState)(false);
|
|
150
152
|
|
|
@@ -198,7 +200,7 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
198
200
|
const {
|
|
199
201
|
icon: IconComponent
|
|
200
202
|
} = themeTokens;
|
|
201
|
-
const inputProps = { ...
|
|
203
|
+
const inputProps = { ...selectProps(rest),
|
|
202
204
|
editable: !inactive,
|
|
203
205
|
onFocus: handleFocus,
|
|
204
206
|
onBlur: handleBlur,
|
|
@@ -229,7 +231,7 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
229
231
|
});
|
|
230
232
|
});
|
|
231
233
|
TextInputBase.displayName = 'TextInputBase';
|
|
232
|
-
TextInputBase.propTypes = {
|
|
234
|
+
TextInputBase.propTypes = { ...selectedSystemPropTypes,
|
|
233
235
|
value: _propTypes.default.string,
|
|
234
236
|
height: _propTypes.default.number,
|
|
235
237
|
initialValue: _propTypes.default.string,
|
|
@@ -14,9 +14,9 @@ var _utils = require("./utils");
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* @typedef {import('../utils/
|
|
18
|
-
* @typedef {import('../utils/
|
|
19
|
-
* @typedef {import('../utils/
|
|
17
|
+
* @typedef {import('../utils/props/variantProp.js').AppearanceSet} AppearanceSet
|
|
18
|
+
* @typedef {import('../utils/props/tokens.js').TokensProp} TokensProp
|
|
19
|
+
* @typedef {import('../utils/props/tokens.js').TokensSet} TokensSet
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -14,9 +14,9 @@ var _package = _interopRequireDefault(require("../../../package.json"));
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* @typedef {import('../../utils/
|
|
18
|
-
* @typedef {import('../../utils/
|
|
19
|
-
* @typedef {import('../../utils/
|
|
17
|
+
* @typedef {import('../../utils/props/variantProp.js').AppearanceSet} AppearanceSet
|
|
18
|
+
* @typedef {import('../../utils/props/tokens.js').TokensProp} TokensProp
|
|
19
|
+
* @typedef {import('../../utils/props/tokens.js').TokensSet} TokensSet
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -11,15 +11,19 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
|
|
12
12
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
13
13
|
|
|
14
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
15
|
+
|
|
14
16
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
15
17
|
|
|
16
|
-
var
|
|
18
|
+
var _InputLabel = _interopRequireDefault(require("../InputLabel"));
|
|
17
19
|
|
|
18
20
|
var _ButtonBase = _interopRequireDefault(require("../Button/ButtonBase"));
|
|
19
21
|
|
|
22
|
+
var _StackView = _interopRequireDefault(require("../StackView"));
|
|
23
|
+
|
|
20
24
|
var _ThemeProvider = require("../ThemeProvider");
|
|
21
25
|
|
|
22
|
-
var
|
|
26
|
+
var _utils = require("../utils");
|
|
23
27
|
|
|
24
28
|
var _input = require("../utils/input");
|
|
25
29
|
|
|
@@ -31,7 +35,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
31
35
|
|
|
32
36
|
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; }
|
|
33
37
|
|
|
34
|
-
const
|
|
38
|
+
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.pressProps, _utils.viewProps]);
|
|
39
|
+
|
|
40
|
+
const selectButtonTokens = tokens => (0, _utils.selectTokens)('Button', { ...tokens,
|
|
35
41
|
// Width tokens are applied to our inner track. Disable Button width token so it wraps our track width.
|
|
36
42
|
width: null
|
|
37
43
|
}); // Map and rename icon-specific tokens to name used within Icon
|
|
@@ -80,16 +86,42 @@ const selectSwitchStyles = ({
|
|
|
80
86
|
})
|
|
81
87
|
});
|
|
82
88
|
|
|
89
|
+
const selectLabelStyles = ({
|
|
90
|
+
labelMarginLeft
|
|
91
|
+
}) => ({
|
|
92
|
+
marginLeft: labelMarginLeft
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
const selectLabelTokens = ({
|
|
96
|
+
labelColor,
|
|
97
|
+
labelFontName,
|
|
98
|
+
labelFontSize,
|
|
99
|
+
labelFontWeight,
|
|
100
|
+
labelLineHeight
|
|
101
|
+
}) => ({
|
|
102
|
+
color: labelColor,
|
|
103
|
+
fontName: labelFontName,
|
|
104
|
+
fontWeight: labelFontWeight,
|
|
105
|
+
fontSize: labelFontSize,
|
|
106
|
+
lineHeight: labelLineHeight
|
|
107
|
+
});
|
|
108
|
+
|
|
83
109
|
const ToggleSwitch = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
84
110
|
value,
|
|
85
111
|
initialValue,
|
|
86
112
|
onChange,
|
|
113
|
+
id,
|
|
114
|
+
label,
|
|
87
115
|
inactive,
|
|
88
116
|
tokens,
|
|
117
|
+
tooltip,
|
|
89
118
|
variant,
|
|
90
|
-
accessibilityRole = 'switch'
|
|
119
|
+
accessibilityRole = 'switch',
|
|
120
|
+
accessibilityLabel = label,
|
|
121
|
+
...rest
|
|
91
122
|
}, ref) => {
|
|
92
123
|
const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('ToggleSwitch', tokens, variant);
|
|
124
|
+
const themeTokens = getTokens();
|
|
93
125
|
const {
|
|
94
126
|
currentValue,
|
|
95
127
|
setValue
|
|
@@ -103,48 +135,64 @@ const ToggleSwitch = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
103
135
|
|
|
104
136
|
const getButtonTokens = buttonState => selectButtonTokens(getTokens(buttonState));
|
|
105
137
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
138
|
+
const uniqueId = (0, _utils.useUniqueId)('toggleSwitch');
|
|
139
|
+
const inputId = id ?? uniqueId;
|
|
140
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
|
|
141
|
+
space: 2,
|
|
142
|
+
direction: "row",
|
|
143
|
+
children: [Boolean(label) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
144
|
+
style: selectLabelStyles(themeTokens),
|
|
145
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, {
|
|
146
|
+
forId: inputId,
|
|
147
|
+
label: label,
|
|
148
|
+
tokens: selectLabelTokens(themeTokens),
|
|
149
|
+
tooltip: tooltip
|
|
150
|
+
})
|
|
151
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
|
|
152
|
+
id: id,
|
|
153
|
+
ref: ref,
|
|
154
|
+
selected: currentValue,
|
|
155
|
+
inactive: inactive,
|
|
156
|
+
tokens: getButtonTokens,
|
|
157
|
+
accessibilityLabel: accessibilityLabel,
|
|
158
|
+
accessibilityRole: accessibilityRole,
|
|
159
|
+
accessibilityState: {
|
|
160
|
+
checked: currentValue
|
|
161
|
+
},
|
|
162
|
+
onPress: handlePress,
|
|
163
|
+
...selectProps(rest),
|
|
164
|
+
children: buttonState => {
|
|
165
|
+
const stateTokens = getTokens(buttonState);
|
|
166
|
+
const IconComponent = stateTokens.icon;
|
|
167
|
+
const switchStyles = selectSwitchStyles(stateTokens);
|
|
168
|
+
const trackStyles = selectTrackStyles(stateTokens);
|
|
169
|
+
const iconTokens = selectIconTokens(stateTokens); // If drag-slide support is needed, use a PanResponder and apply these to an Animated value.
|
|
170
|
+
// Use translate transforms for smoothest non-thread-blocking animations and to allow drag.
|
|
171
|
+
|
|
172
|
+
const slideStart = 0;
|
|
173
|
+
const slideEnd = stateTokens.width - stateTokens.switchSize - stateTokens.trackBorderWidth * 2;
|
|
174
|
+
const switchOffset = buttonState.selected ? slideEnd : slideStart;
|
|
175
|
+
const switchPositionStyle = {
|
|
176
|
+
transform: [{
|
|
177
|
+
translateX: switchOffset
|
|
178
|
+
}]
|
|
179
|
+
};
|
|
180
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
181
|
+
style: [staticStyles.track, trackStyles],
|
|
182
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
183
|
+
style: [staticStyles.switch, switchStyles, switchPositionStyle],
|
|
184
|
+
children: IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, { ...iconTokens
|
|
185
|
+
})
|
|
137
186
|
})
|
|
138
|
-
})
|
|
139
|
-
}
|
|
140
|
-
}
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
})]
|
|
141
190
|
});
|
|
142
191
|
});
|
|
143
192
|
ToggleSwitch.displayName = 'ToggleSwitch';
|
|
144
|
-
ToggleSwitch.propTypes = { ...
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
variant: _propTypes2.variantProp.propType,
|
|
193
|
+
ToggleSwitch.propTypes = { ...selectedSystemPropTypes,
|
|
194
|
+
tokens: (0, _utils.getTokensPropType)('ToggleSwitch'),
|
|
195
|
+
variant: _utils.variantProp.propType,
|
|
148
196
|
|
|
149
197
|
/**
|
|
150
198
|
* If this is a "controlled" component and a parent handles its selected state,
|
|
@@ -165,11 +213,26 @@ ToggleSwitch.propTypes = { ..._propTypes2.a11yProps.propTypes,
|
|
|
165
213
|
*/
|
|
166
214
|
onChange: _propTypes.default.func,
|
|
167
215
|
|
|
216
|
+
/**
|
|
217
|
+
* Input ID.
|
|
218
|
+
*/
|
|
219
|
+
id: _propTypes.default.string,
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* An optional label.
|
|
223
|
+
*/
|
|
224
|
+
label: _propTypes.default.string,
|
|
225
|
+
|
|
168
226
|
/**
|
|
169
227
|
* If passed, the switch does not respond to user input and may recieve different
|
|
170
228
|
* theme tokens if the theme supports inactive appearance.
|
|
171
229
|
*/
|
|
172
|
-
inactive: _propTypes.default.bool
|
|
230
|
+
inactive: _propTypes.default.bool,
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Content of an optional Tooltip. If set, a tooltip button will be shown next to the label.
|
|
234
|
+
*/
|
|
235
|
+
tooltip: _propTypes.default.string
|
|
173
236
|
};
|
|
174
237
|
|
|
175
238
|
const staticStyles = _StyleSheet.default.create({
|