@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
|
@@ -40,6 +40,9 @@ const parseComponentDocs = (name, generated) => {
|
|
|
40
40
|
const components = {}
|
|
41
41
|
|
|
42
42
|
Object.entries(allExports).forEach(([name, exp]) => {
|
|
43
|
+
// fail fast with meaningful error on typos, missing exports, etc
|
|
44
|
+
if (!exp) throw new Error(`components-base export "${name}" is ${exp} (typeof ${typeof exp})`)
|
|
45
|
+
|
|
43
46
|
if (exp.__docgenInfo) {
|
|
44
47
|
// populated by babel-plugin-react-docgen
|
|
45
48
|
components[name] = parseComponentDocs(name, exp.__docgenInfo)
|
package/lib/A11yText/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Vi
|
|
|
15
15
|
|
|
16
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _props = require("../utils/props");
|
|
19
19
|
|
|
20
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
21
|
|
|
@@ -25,18 +25,20 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
25
25
|
|
|
26
26
|
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
27
|
|
|
28
|
+
const [selectProps, selectedSystemPropTypes] = (0, _props.selectSystemProps)([_props.a11yProps, _props.viewProps]);
|
|
28
29
|
/**
|
|
29
30
|
* A11yText is a zero-size invisible element that adds text to be read by screen readers.
|
|
30
31
|
*
|
|
31
32
|
* It should be used to add selectable screen-reader-only text to the main document flow,
|
|
32
33
|
* as a sibling to blocks of text like paragraphs and interactive elements like buttons.
|
|
33
34
|
*/
|
|
35
|
+
|
|
34
36
|
const A11yText = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
35
37
|
text,
|
|
36
38
|
heading,
|
|
37
39
|
...rest
|
|
38
40
|
}, ref) => {
|
|
39
|
-
const
|
|
41
|
+
const selectedProps = selectProps({
|
|
40
42
|
// On iOS, needs `accessible` to be true to be focusable without non-a11y content.
|
|
41
43
|
// On Web, `accessible` causes RNW to set attributes that may make the element be treated as a group.
|
|
42
44
|
// On Android, may cause this to be skipped when with `<Text>` siblings in an `accessible` View,
|
|
@@ -46,15 +48,14 @@ const A11yText = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
46
48
|
accessibilityRole: heading ? 'header' : 'text',
|
|
47
49
|
...rest
|
|
48
50
|
});
|
|
49
|
-
|
|
50
51
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
51
52
|
style: styles.invisible,
|
|
52
53
|
ref: ref,
|
|
53
|
-
...
|
|
54
|
+
...selectedProps
|
|
54
55
|
});
|
|
55
56
|
});
|
|
56
57
|
A11yText.displayName = 'A11yText';
|
|
57
|
-
A11yText.propTypes = {
|
|
58
|
+
A11yText.propTypes = { ...selectedSystemPropTypes,
|
|
58
59
|
text: _propTypes.default.string.isRequired,
|
|
59
60
|
heading: _propTypes.default.bool
|
|
60
61
|
};
|
|
@@ -9,6 +9,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _shared = require("./shared");
|
|
11
11
|
|
|
12
|
+
var _A11yInfoProvider = require("../A11yInfoProvider");
|
|
13
|
+
|
|
12
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
15
|
|
|
14
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -37,44 +39,51 @@ const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
37
39
|
color,
|
|
38
40
|
thickness,
|
|
39
41
|
label
|
|
40
|
-
}, ref) =>
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
42
|
+
}, ref) => {
|
|
43
|
+
const {
|
|
44
|
+
reduceMotionEnabled
|
|
45
|
+
} = (0, _A11yInfoProvider.useA11yInfo)();
|
|
46
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", {
|
|
47
|
+
ref: ref,
|
|
48
|
+
width: `${size}px`,
|
|
49
|
+
height: `${size}px`,
|
|
50
|
+
viewBox: "0 0 48 48",
|
|
51
|
+
"aria-valuetext": label,
|
|
52
|
+
role: "progressbar",
|
|
53
|
+
"aria-busy": true,
|
|
54
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", {
|
|
55
|
+
children: [reduceMotionEnabled ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)("animateTransform", {
|
|
56
|
+
attributeName: "transform",
|
|
57
|
+
type: "rotate",
|
|
58
|
+
values: `-180 24 24;${360 + _shared.MIN_STROKE_ANGLE - 180} 24 24`,
|
|
59
|
+
...animationProps
|
|
60
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
|
|
61
|
+
fill: "none",
|
|
62
|
+
stroke: color,
|
|
63
|
+
strokeWidth: thickness * 48 / size,
|
|
64
|
+
strokeLinecap: "round",
|
|
65
|
+
cx: "24",
|
|
66
|
+
cy: "24",
|
|
67
|
+
r: "20",
|
|
68
|
+
strokeDasharray: reduceMotionEnabled ? MAX_SVG_LENGTH : [MIN_SVG_LENGTH, SVG_CIRCUMFERENCE],
|
|
69
|
+
strokeDashoffset: 0,
|
|
70
|
+
children: reduceMotionEnabled ? null : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
71
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("animate", {
|
|
72
|
+
attributeName: "stroke-dashoffset",
|
|
73
|
+
values: `0;-10;${MIN_SVG_LENGTH - SVG_CIRCUMFERENCE}`,
|
|
74
|
+
...animationProps,
|
|
75
|
+
...bezierProps
|
|
76
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("animate", {
|
|
77
|
+
attributeName: "stroke-dasharray",
|
|
78
|
+
values: `${MIN_SVG_LENGTH}, 200;${MAX_SVG_LENGTH}, 200;${MIN_SVG_LENGTH}, 200`,
|
|
79
|
+
...animationProps,
|
|
80
|
+
...bezierProps
|
|
81
|
+
})]
|
|
82
|
+
})
|
|
74
83
|
})]
|
|
75
|
-
})
|
|
76
|
-
})
|
|
77
|
-
})
|
|
84
|
+
})
|
|
85
|
+
});
|
|
86
|
+
});
|
|
78
87
|
Spinner.displayName = 'Spinner';
|
|
79
88
|
Spinner.propTypes = _shared.propTypes;
|
|
80
89
|
var _default = Spinner;
|
|
@@ -17,6 +17,8 @@ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Vi
|
|
|
17
17
|
|
|
18
18
|
var _shared = require("./shared");
|
|
19
19
|
|
|
20
|
+
var _A11yInfoProvider = require("../A11yInfoProvider");
|
|
21
|
+
|
|
20
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
23
|
|
|
22
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -37,6 +39,10 @@ const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
37
39
|
current: timer
|
|
38
40
|
} = _react.default.useRef(new _Animated.default.Value(0));
|
|
39
41
|
|
|
42
|
+
const {
|
|
43
|
+
reduceMotionEnabled
|
|
44
|
+
} = (0, _A11yInfoProvider.useA11yInfo)();
|
|
45
|
+
|
|
40
46
|
_react.default.useLayoutEffect(() => {
|
|
41
47
|
const loop = _Animated.default.timing(timer, {
|
|
42
48
|
duration: _shared.DURATION,
|
|
@@ -47,8 +53,8 @@ const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
47
53
|
isInteraction: false
|
|
48
54
|
});
|
|
49
55
|
|
|
50
|
-
_Animated.default.loop(loop).start();
|
|
51
|
-
}, [timer]);
|
|
56
|
+
if (!reduceMotionEnabled) _Animated.default.loop(loop).start();else loop.stop();
|
|
57
|
+
}, [timer, reduceMotionEnabled]);
|
|
52
58
|
|
|
53
59
|
const frames = 60 * _shared.DURATION / 1000;
|
|
54
60
|
|
|
@@ -56,9 +62,10 @@ const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
56
62
|
|
|
57
63
|
const containerStyle = {
|
|
58
64
|
width: size,
|
|
59
|
-
height: size / 2,
|
|
65
|
+
height: size / (reduceMotionEnabled ? 1.5 : 2),
|
|
60
66
|
overflow: 'hidden'
|
|
61
|
-
};
|
|
67
|
+
};
|
|
68
|
+
const animationFrequency = reduceMotionEnabled ? [0] : [0, 1]; // Credit to https://github.com/n4kz/react-native-indicators and https://github.com/callstack/react-native-paper for this
|
|
62
69
|
|
|
63
70
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
64
71
|
ref: ref,
|
|
@@ -75,7 +82,7 @@ const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
75
82
|
height: size
|
|
76
83
|
}],
|
|
77
84
|
collapsable: false,
|
|
78
|
-
children:
|
|
85
|
+
children: animationFrequency.map(index => {
|
|
79
86
|
const inputRange = Array.from(new Array(frames), (_, frameIndex) => frameIndex / (frames - 1));
|
|
80
87
|
const outputRange = Array.from(new Array(frames), (_, frameIndex) => {
|
|
81
88
|
let progress = 2 * frameIndex / (frames - 1);
|
|
@@ -90,26 +97,30 @@ const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
90
97
|
});
|
|
91
98
|
const layerStyle = {
|
|
92
99
|
width: size,
|
|
93
|
-
height: size
|
|
94
|
-
|
|
100
|
+
height: size
|
|
101
|
+
};
|
|
102
|
+
const viewportStyle = {
|
|
103
|
+
width: size,
|
|
104
|
+
height: size
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
if (!reduceMotionEnabled) {
|
|
108
|
+
layerStyle.transform = [{
|
|
95
109
|
rotate: timer.interpolate({
|
|
96
110
|
inputRange: [0, 1],
|
|
97
111
|
outputRange: [`${0 + ea + sa}deg`, `${2 * 360 + ea + sa}deg`]
|
|
98
112
|
})
|
|
99
|
-
}]
|
|
100
|
-
|
|
101
|
-
const viewportStyle = {
|
|
102
|
-
width: size,
|
|
103
|
-
height: size,
|
|
104
|
-
transform: [{
|
|
113
|
+
}];
|
|
114
|
+
viewportStyle.transform = [{
|
|
105
115
|
translateY: index ? -size / 2 : 0
|
|
106
116
|
}, {
|
|
107
117
|
rotate: timer.interpolate({
|
|
108
118
|
inputRange,
|
|
109
119
|
outputRange
|
|
110
120
|
})
|
|
111
|
-
}]
|
|
112
|
-
}
|
|
121
|
+
}];
|
|
122
|
+
}
|
|
123
|
+
|
|
113
124
|
const offsetStyle = index ? {
|
|
114
125
|
top: size / 2
|
|
115
126
|
} : null;
|
|
@@ -11,7 +11,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
|
|
12
12
|
var _ThemeProvider = require("../ThemeProvider");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _props = require("../utils/props");
|
|
15
15
|
|
|
16
16
|
var _Spinner = _interopRequireDefault(require("./Spinner"));
|
|
17
17
|
|
|
@@ -42,8 +42,8 @@ const ActivityIndicator = ({
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
ActivityIndicator.propTypes = {
|
|
45
|
-
variant:
|
|
46
|
-
tokens: (0,
|
|
45
|
+
variant: _props.variantProp.propType,
|
|
46
|
+
tokens: (0, _props.getTokensPropType)('ActivityIndicator'),
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
49
|
* A visually hidden accessible label describing the action taking place
|
package/lib/Box/Box.js
CHANGED
|
@@ -25,12 +25,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
25
25
|
|
|
26
26
|
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
27
|
|
|
28
|
+
const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
|
|
28
29
|
/**
|
|
29
|
-
* @typedef {import('../utils/
|
|
30
|
-
* @typedef {import('../utils/
|
|
31
|
-
* @typedef {import('../utils/
|
|
32
|
-
* @typedef {import('../utils/
|
|
30
|
+
* @typedef {import('../utils/props/spacingProps.js').SpacingValue} SpacingValue
|
|
31
|
+
* @typedef {import('../utils/props/spacingProps.js').SpacingIndex} SpacingIndex
|
|
32
|
+
* @typedef {import('../utils/props/spacingProps.js').SpacingObject} SpacingObject
|
|
33
|
+
* @typedef {import('../utils/props/spacingProps.js').SpacingOptions} SpacingOptions
|
|
33
34
|
*/
|
|
35
|
+
|
|
34
36
|
const selectBoxStyles = tokens => {
|
|
35
37
|
const styles = {
|
|
36
38
|
backgroundColor: tokens.backgroundColor
|
|
@@ -131,8 +133,7 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
131
133
|
...rest
|
|
132
134
|
}, ref) => {
|
|
133
135
|
const props = { ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
|
|
134
|
-
...
|
|
135
|
-
..._utils.viewProps.select(rest)
|
|
136
|
+
...selectProps(rest)
|
|
136
137
|
};
|
|
137
138
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Box', tokens, variant);
|
|
138
139
|
const styles = {
|
|
@@ -165,8 +166,7 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
165
166
|
});
|
|
166
167
|
});
|
|
167
168
|
Box.displayName = 'Box';
|
|
168
|
-
Box.propTypes = { ...
|
|
169
|
-
..._utils.viewProps.types,
|
|
169
|
+
Box.propTypes = { ...selectedSystemPropTypes,
|
|
170
170
|
variant: _utils.variantProp.propType,
|
|
171
171
|
tokens: (0, _utils.getTokensPropType)('Box'),
|
|
172
172
|
|
package/lib/Button/Button.js
CHANGED
|
@@ -13,7 +13,7 @@ var _propTypes = _interopRequireWildcard(require("./propTypes"));
|
|
|
13
13
|
|
|
14
14
|
var _ThemeProvider = require("../ThemeProvider");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _props = require("../utils/props");
|
|
17
17
|
|
|
18
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
19
|
|
|
@@ -37,7 +37,7 @@ const Button = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
39
|
Button.displayName = 'Button';
|
|
40
|
-
Button.propTypes = { ...
|
|
40
|
+
Button.propTypes = { ..._props.a11yProps.types,
|
|
41
41
|
..._propTypes.default,
|
|
42
42
|
children: _propTypes.textAndA11yText
|
|
43
43
|
};
|
package/lib/Button/ButtonBase.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
10
12
|
var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
|
|
11
13
|
|
|
12
14
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
@@ -17,7 +19,7 @@ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/export
|
|
|
17
19
|
|
|
18
20
|
var _utils = require("../ThemeProvider/utils");
|
|
19
21
|
|
|
20
|
-
var
|
|
22
|
+
var _propTypes2 = _interopRequireDefault(require("./propTypes"));
|
|
21
23
|
|
|
22
24
|
var _utils2 = require("../utils");
|
|
23
25
|
|
|
@@ -29,6 +31,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
29
31
|
|
|
30
32
|
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
33
|
|
|
34
|
+
const [selectProps, selectedSystemPropTypes] = (0, _utils2.selectSystemProps)([_utils2.a11yProps, _utils2.linkProps, _utils2.viewProps]);
|
|
35
|
+
|
|
32
36
|
const getOuterBorderOffset = ({
|
|
33
37
|
outerBorderGap = 0,
|
|
34
38
|
outerBorderWidth = 0
|
|
@@ -170,18 +174,22 @@ const selectWebOnlyStyles = (inactive, themeTokens, {
|
|
|
170
174
|
};
|
|
171
175
|
|
|
172
176
|
const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
177
|
+
id,
|
|
173
178
|
href,
|
|
174
179
|
hrefAttrs,
|
|
175
180
|
children,
|
|
176
|
-
onPress,
|
|
177
181
|
tokens = {},
|
|
178
182
|
disabled = false,
|
|
179
183
|
// alias for inactive
|
|
180
184
|
inactive = disabled,
|
|
181
185
|
selected = false,
|
|
182
|
-
|
|
183
|
-
...rest
|
|
186
|
+
...rawRest
|
|
184
187
|
}, ref) => {
|
|
188
|
+
const {
|
|
189
|
+
onPress,
|
|
190
|
+
...rest
|
|
191
|
+
} = _utils2.clickProps.toPressProps(rawRest);
|
|
192
|
+
|
|
185
193
|
const extraButtonState = {
|
|
186
194
|
inactive,
|
|
187
195
|
selected
|
|
@@ -189,11 +197,11 @@ const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
189
197
|
|
|
190
198
|
const resolveButtonTokens = pressableState => (0, _utils2.resolvePressableTokens)(tokens, pressableState, extraButtonState);
|
|
191
199
|
|
|
192
|
-
const
|
|
200
|
+
const systemProps = selectProps(rest);
|
|
193
201
|
|
|
194
202
|
const getPressableStyle = pressableState => {
|
|
195
203
|
const themeTokens = resolveButtonTokens(pressableState);
|
|
196
|
-
return [staticStyles.row, selectWebOnlyStyles(inactive, themeTokens,
|
|
204
|
+
return [staticStyles.row, selectWebOnlyStyles(inactive, themeTokens, systemProps), selectOuterContainerStyles(themeTokens), selectOuterWidthStyles(themeTokens)];
|
|
197
205
|
};
|
|
198
206
|
|
|
199
207
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
|
|
@@ -205,9 +213,8 @@ const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
205
213
|
}),
|
|
206
214
|
style: getPressableStyle,
|
|
207
215
|
disabled: inactive,
|
|
208
|
-
dataSet: dataSet,
|
|
209
216
|
hrefAttrs: hrefAttrs,
|
|
210
|
-
...
|
|
217
|
+
...systemProps,
|
|
211
218
|
children: pressableState => {
|
|
212
219
|
const themeTokens = resolveButtonTokens(pressableState);
|
|
213
220
|
const containerStyles = selectInnerContainerStyles(themeTokens);
|
|
@@ -217,6 +224,7 @@ const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
217
224
|
|
|
218
225
|
const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
|
|
219
226
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
227
|
+
id: id,
|
|
220
228
|
style: [containerStyles, borderStyles, stretchStyles, staticStyles.row, _Platform.default.select({
|
|
221
229
|
web: {
|
|
222
230
|
maxWidth: '100%',
|
|
@@ -235,9 +243,13 @@ const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
235
243
|
});
|
|
236
244
|
});
|
|
237
245
|
ButtonBase.displayName = 'ButtonBase';
|
|
238
|
-
ButtonBase.propTypes = {
|
|
239
|
-
|
|
240
|
-
...
|
|
246
|
+
ButtonBase.propTypes = {
|
|
247
|
+
id: _propTypes.default.string,
|
|
248
|
+
...selectedSystemPropTypes,
|
|
249
|
+
..._propTypes2.default
|
|
250
|
+
};
|
|
251
|
+
ButtonBase.defaultProps = {
|
|
252
|
+
id: undefined
|
|
241
253
|
};
|
|
242
254
|
|
|
243
255
|
const staticStyles = _StyleSheet.default.create({
|
|
@@ -265,5 +277,6 @@ const staticStyles = _StyleSheet.default.create({
|
|
|
265
277
|
}
|
|
266
278
|
});
|
|
267
279
|
|
|
268
|
-
var _default = ButtonBase;
|
|
280
|
+
var _default = (0, _utils2.withLinkRouter)(ButtonBase);
|
|
281
|
+
|
|
269
282
|
exports.default = _default;
|
|
@@ -21,7 +21,7 @@ var _ViewportProvider = require("../ViewportProvider");
|
|
|
21
21
|
|
|
22
22
|
var _ThemeProvider = require("../ThemeProvider");
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _props = require("../utils/props");
|
|
25
25
|
|
|
26
26
|
var _input = require("../utils/input");
|
|
27
27
|
|
|
@@ -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, _props.selectSystemProps)([_props.a11yProps, _props.pressProps, _props.viewProps]);
|
|
38
39
|
const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
39
40
|
variant,
|
|
40
41
|
tokens,
|
|
@@ -56,7 +57,7 @@ const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
56
57
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('ButtonGroup', tokens, variant, {
|
|
57
58
|
viewport
|
|
58
59
|
});
|
|
59
|
-
const stackTokens = (0,
|
|
60
|
+
const stackTokens = (0, _props.selectTokens)('StackView', themeTokens);
|
|
60
61
|
const {
|
|
61
62
|
direction,
|
|
62
63
|
space
|
|
@@ -72,14 +73,12 @@ const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
72
73
|
onChange,
|
|
73
74
|
readOnly
|
|
74
75
|
});
|
|
75
|
-
|
|
76
|
-
const a11y = _propTypes2.a11yProps.select({
|
|
76
|
+
const systemProps = selectProps({
|
|
77
77
|
accessibilityRole,
|
|
78
78
|
...rest
|
|
79
79
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, { ...a11y,
|
|
80
|
+
const itemA11yRole = systemProps.accessibilityRole === 'radiogroup' ? 'radio' : 'checkbox';
|
|
81
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, { ...systemProps,
|
|
83
82
|
space: space,
|
|
84
83
|
direction: direction,
|
|
85
84
|
tokens: stackTokens,
|
|
@@ -109,7 +108,7 @@ const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
109
108
|
},
|
|
110
109
|
accessibilityRole: itemA11yRole,
|
|
111
110
|
accessibilityLabel,
|
|
112
|
-
...
|
|
111
|
+
..._props.a11yProps.getPositionInSet(items.length, index)
|
|
113
112
|
}; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
|
|
114
113
|
// "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
|
|
115
114
|
|
|
@@ -127,10 +126,9 @@ const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
127
126
|
});
|
|
128
127
|
});
|
|
129
128
|
ButtonGroup.displayName = 'ButtonGroup';
|
|
130
|
-
ButtonGroup.propTypes = { ...
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
variant: _propTypes2.variantProp.propType,
|
|
129
|
+
ButtonGroup.propTypes = { ...selectedSystemPropTypes,
|
|
130
|
+
tokens: (0, _props.getTokensPropType)('ButtonGroup'),
|
|
131
|
+
variant: _props.variantProp.propType,
|
|
134
132
|
|
|
135
133
|
/**
|
|
136
134
|
* The maximum number of items a user may select at once. Defaults to 1 and behaves
|
package/lib/Button/ButtonLink.js
CHANGED
|
@@ -11,7 +11,7 @@ var _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
|
|
|
11
11
|
|
|
12
12
|
var _propTypes = _interopRequireWildcard(require("./propTypes"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _props = require("../utils/props");
|
|
15
15
|
|
|
16
16
|
var _ThemeProvider = require("../ThemeProvider");
|
|
17
17
|
|
|
@@ -37,7 +37,7 @@ const ButtonLink = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
37
37
|
const {
|
|
38
38
|
hrefAttrs,
|
|
39
39
|
rest
|
|
40
|
-
} =
|
|
40
|
+
} = _props.hrefAttrsProp.bundle(props);
|
|
41
41
|
|
|
42
42
|
const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Button', tokens, variant);
|
|
43
43
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
|
|
@@ -50,9 +50,9 @@ const ButtonLink = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
52
|
ButtonLink.displayName = 'ButtonLink';
|
|
53
|
-
ButtonLink.propTypes = { ...
|
|
53
|
+
ButtonLink.propTypes = { ..._props.a11yProps.types,
|
|
54
54
|
..._propTypes.default,
|
|
55
|
-
...
|
|
55
|
+
..._props.linkProps.types,
|
|
56
56
|
children: _propTypes.textAndA11yText
|
|
57
57
|
};
|
|
58
58
|
var _default = ButtonLink;
|
package/lib/Button/propTypes.js
CHANGED
|
@@ -9,7 +9,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
9
9
|
|
|
10
10
|
var _airbnbPropTypes = _interopRequireDefault(require("airbnb-prop-types"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _props = require("../utils/props");
|
|
13
13
|
|
|
14
14
|
var _A11yText = _interopRequireDefault(require("../A11yText"));
|
|
15
15
|
|
|
@@ -19,6 +19,8 @@ const textAndA11yText = _airbnbPropTypes.default.childrenOf(_propTypes.default.o
|
|
|
19
19
|
|
|
20
20
|
exports.textAndA11yText = textAndA11yText;
|
|
21
21
|
const buttonPropTypes = {
|
|
22
|
+
tokens: (0, _props.getTokensPropType)('Button'),
|
|
23
|
+
|
|
22
24
|
/**
|
|
23
25
|
* If true, prevents the button from being pressed, changes the cursor (on web) and accessibility
|
|
24
26
|
* attributes to communicate this to the user, and applies `inactive: true` appearances from the theme
|
|
@@ -44,7 +46,7 @@ const buttonPropTypes = {
|
|
|
44
46
|
* Function called when the button is pressed. Required unless the button has a href.
|
|
45
47
|
*/
|
|
46
48
|
onPress: _propTypes.default.func,
|
|
47
|
-
variant:
|
|
49
|
+
variant: _props.variantProp.propType
|
|
48
50
|
};
|
|
49
51
|
var _default = buttonPropTypes;
|
|
50
52
|
exports.default = _default;
|
package/lib/Card/Card.js
CHANGED
|
@@ -15,7 +15,7 @@ var _utils = require("../utils");
|
|
|
15
15
|
|
|
16
16
|
var _ViewportProvider = require("../ViewportProvider");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _props = require("../utils/props");
|
|
19
19
|
|
|
20
20
|
var _CardBase = _interopRequireDefault(require("./CardBase"));
|
|
21
21
|
|
|
@@ -23,6 +23,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
23
23
|
|
|
24
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
25
|
|
|
26
|
+
const [selectProps, selectedSystemPropTypes] = (0, _props.selectSystemProps)([_props.a11yProps, _props.viewProps]);
|
|
26
27
|
/**
|
|
27
28
|
* A basic card component, unstyled by default.
|
|
28
29
|
*
|
|
@@ -71,6 +72,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
71
72
|
* you automatically make inaccessible its children, which may or may not be appropriate
|
|
72
73
|
* depending on what you are trying to achieve.
|
|
73
74
|
*/
|
|
75
|
+
|
|
74
76
|
const Card = ({
|
|
75
77
|
children,
|
|
76
78
|
tokens,
|
|
@@ -85,16 +87,15 @@ const Card = ({
|
|
|
85
87
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardBase.default, {
|
|
86
88
|
tokens: themeTokens,
|
|
87
89
|
dataSet: dataSet,
|
|
88
|
-
...rest,
|
|
90
|
+
...selectProps(rest),
|
|
89
91
|
children: children
|
|
90
92
|
});
|
|
91
93
|
};
|
|
92
94
|
|
|
93
|
-
Card.propTypes = {
|
|
95
|
+
Card.propTypes = { ...selectedSystemPropTypes,
|
|
94
96
|
children: _propTypes.default.node,
|
|
95
97
|
tokens: (0, _utils.getTokensPropType)('Card'),
|
|
96
|
-
variant: _utils.variantProp.propType
|
|
97
|
-
..._propTypes2.a11yProps.types
|
|
98
|
+
variant: _utils.variantProp.propType
|
|
98
99
|
};
|
|
99
100
|
var _default = Card;
|
|
100
101
|
exports.default = _default;
|
package/lib/Card/CardBase.js
CHANGED
|
@@ -15,7 +15,7 @@ var _ThemeProvider = require("../ThemeProvider");
|
|
|
15
15
|
|
|
16
16
|
var _utils = require("../utils");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _props = require("../utils/props");
|
|
19
19
|
|
|
20
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
21
|
|
|
@@ -25,7 +25,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
25
25
|
|
|
26
26
|
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
27
|
|
|
28
|
-
// Ensure explicit selection of tokens
|
|
28
|
+
const [selectProps, selectedSystemPropTypes] = (0, _props.selectSystemProps)([_props.a11yProps, _props.viewProps]); // Ensure explicit selection of tokens
|
|
29
|
+
|
|
29
30
|
const selectStyles = ({
|
|
30
31
|
flex,
|
|
31
32
|
backgroundColor,
|
|
@@ -64,9 +65,7 @@ const CardBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
64
65
|
...rest
|
|
65
66
|
}, ref) => {
|
|
66
67
|
const cardStyle = selectStyles(typeof tokens === 'function' ? tokens() : tokens);
|
|
67
|
-
const props =
|
|
68
|
-
..._propTypes2.viewProps.select(rest)
|
|
69
|
-
};
|
|
68
|
+
const props = selectProps(rest);
|
|
70
69
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
71
70
|
style: cardStyle,
|
|
72
71
|
dataSet: dataSet,
|
|
@@ -76,11 +75,9 @@ const CardBase = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
76
75
|
});
|
|
77
76
|
});
|
|
78
77
|
CardBase.displayName = 'CardBase';
|
|
79
|
-
CardBase.propTypes = {
|
|
78
|
+
CardBase.propTypes = { ...selectedSystemPropTypes,
|
|
80
79
|
children: _propTypes.default.node,
|
|
81
|
-
tokens: (0, _utils.getTokensPropType)('Card')
|
|
82
|
-
..._propTypes2.viewProps.types,
|
|
83
|
-
..._propTypes2.a11yProps.types
|
|
80
|
+
tokens: (0, _utils.getTokensPropType)('Card')
|
|
84
81
|
};
|
|
85
82
|
var _default = CardBase;
|
|
86
83
|
exports.default = _default;
|