@telus-uds/components-base 1.8.1 → 1.8.2
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/CHANGELOG.md +13 -2
- package/component-docs.json +682 -675
- package/lib/A11yInfoProvider/index.js +4 -3
- package/lib/A11yText/index.js +6 -5
- package/lib/ActivityIndicator/Spinner.js +7 -6
- package/lib/ActivityIndicator/Spinner.native.js +8 -6
- package/lib/ActivityIndicator/index.js +6 -5
- package/lib/ActivityIndicator/shared.js +1 -1
- package/lib/BaseProvider/index.js +13 -10
- package/lib/Box/Box.js +20 -19
- package/lib/Button/Button.js +7 -6
- package/lib/Button/ButtonBase.js +95 -77
- package/lib/Button/ButtonGroup.js +33 -31
- package/lib/Button/ButtonLink.js +9 -7
- package/lib/Button/index.js +4 -4
- package/lib/Button/propTypes.js +1 -1
- package/lib/Card/Card.js +8 -7
- package/lib/Card/CardBase.js +35 -31
- package/lib/Card/PressableCardBase.js +14 -12
- package/lib/Checkbox/Checkbox.js +96 -82
- package/lib/Checkbox/CheckboxGroup.js +27 -25
- package/lib/Checkbox/CheckboxInput.js +12 -10
- package/lib/Divider/Divider.js +8 -7
- package/lib/ExpandCollapse/Control.js +42 -36
- package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
- package/lib/ExpandCollapse/Panel.js +27 -23
- package/lib/Feedback/Feedback.js +48 -35
- package/lib/Fieldset/Fieldset.js +16 -15
- package/lib/Fieldset/FieldsetContainer.js +16 -13
- package/lib/Fieldset/FieldsetContainer.native.js +11 -8
- package/lib/Fieldset/Legend.js +10 -7
- package/lib/Fieldset/Legend.native.js +10 -7
- package/lib/FlexGrid/Col/Col.js +17 -16
- package/lib/FlexGrid/FlexGrid.js +15 -14
- package/lib/FlexGrid/Row/Row.js +13 -12
- package/lib/HorizontalScroll/HorizontalScroll.js +25 -20
- package/lib/HorizontalScroll/HorizontalScrollButton.js +18 -14
- package/lib/HorizontalScroll/ScrollViewEnd.js +6 -5
- package/lib/HorizontalScroll/ScrollViewEnd.native.js +12 -9
- package/lib/HorizontalScroll/itemPositions.js +19 -13
- package/lib/Icon/Icon.js +10 -9
- package/lib/Icon/IconText.js +8 -7
- package/lib/Icon/index.js +5 -5
- package/lib/IconButton/IconButton.js +50 -42
- package/lib/InputLabel/InputLabel.js +37 -30
- package/lib/InputLabel/LabelContent.js +12 -9
- package/lib/InputLabel/LabelContent.native.js +9 -6
- package/lib/InputSupports/InputSupports.js +11 -10
- package/lib/InputSupports/useInputSupports.js +7 -6
- package/lib/Link/ChevronLink.js +9 -8
- package/lib/Link/InlinePressable.js +13 -10
- package/lib/Link/InlinePressable.native.js +20 -16
- package/lib/Link/Link.js +10 -9
- package/lib/Link/LinkBase.js +96 -78
- package/lib/Link/TextButton.js +9 -8
- package/lib/List/List.js +9 -7
- package/lib/List/ListItem.js +99 -74
- package/lib/Modal/Modal.js +72 -59
- package/lib/Notification/Notification.js +46 -33
- package/lib/Pagination/PageButton.js +11 -10
- package/lib/Pagination/Pagination.js +39 -28
- package/lib/Pagination/SideButton.js +21 -18
- package/lib/Pagination/usePagination.js +5 -4
- package/lib/Progress/Progress.js +23 -19
- package/lib/Progress/ProgressBar.js +23 -19
- package/lib/Progress/ProgressBarBackground.js +4 -3
- package/lib/Radio/Radio.js +79 -68
- package/lib/Radio/RadioButton.js +63 -53
- package/lib/Radio/RadioGroup.js +28 -26
- package/lib/Radio/RadioInput.js +12 -10
- package/lib/RadioCard/RadioCard.js +15 -14
- package/lib/RadioCard/RadioCardGroup.js +28 -26
- package/lib/Search/Search.js +51 -31
- package/lib/Select/Group.js +5 -4
- package/lib/Select/Group.native.js +4 -3
- package/lib/Select/Item.js +10 -7
- package/lib/Select/Item.native.js +1 -9
- package/lib/Select/Picker.js +16 -15
- package/lib/Select/Picker.native.js +49 -38
- package/lib/Select/Select.js +134 -113
- package/lib/SideNav/Item.js +39 -33
- package/lib/SideNav/ItemContent.js +15 -12
- package/lib/SideNav/ItemsGroup.js +13 -11
- package/lib/SideNav/SideNav.js +19 -16
- package/lib/Skeleton/Skeleton.js +60 -44
- package/lib/Skeleton/skeleton.constant.js +1 -1
- package/lib/Spacer/Spacer.js +6 -5
- package/lib/StackView/StackView.js +12 -11
- package/lib/StackView/StackWrap.js +2 -2
- package/lib/StackView/StackWrapBox.js +12 -11
- package/lib/StackView/StackWrapGap.js +11 -10
- package/lib/StackView/common.js +14 -11
- package/lib/StackView/getStackedContent.js +8 -7
- package/lib/StackView/index.js +1 -1
- package/lib/StepTracker/Step.js +122 -103
- package/lib/StepTracker/StepTracker.js +48 -38
- package/lib/Tabs/Tabs.js +29 -24
- package/lib/Tabs/TabsItem.js +79 -68
- package/lib/Tags/Tags.js +67 -61
- package/lib/TextInput/TextArea.js +26 -20
- package/lib/TextInput/TextInput.js +20 -15
- package/lib/TextInput/TextInputBase.js +74 -62
- package/lib/TextInput/index.js +4 -4
- package/lib/ThemeProvider/ThemeProvider.js +6 -5
- package/lib/ThemeProvider/index.js +5 -5
- package/lib/ThemeProvider/useSetTheme.js +6 -3
- package/lib/ThemeProvider/useThemeTokens.js +7 -2
- package/lib/ThemeProvider/utils/styles.js +48 -41
- package/lib/ThemeProvider/utils/theme-tokens.js +26 -12
- package/lib/ToggleSwitch/ToggleSwitch.js +89 -73
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +36 -34
- package/lib/Tooltip/Backdrop.js +4 -3
- package/lib/Tooltip/Backdrop.native.js +5 -4
- package/lib/Tooltip/Tooltip.js +81 -65
- package/lib/Tooltip/getTooltipPosition.js +29 -18
- package/lib/TooltipButton/TooltipButton.js +28 -21
- package/lib/Typography/Typography.js +37 -33
- package/lib/ViewportProvider/ViewportProvider.js +4 -3
- package/lib/ViewportProvider/useViewportListener.js +6 -3
- package/lib/index.js +54 -54
- package/lib/utils/a11y/semantics.js +5 -2
- package/lib/utils/a11y/textSize.js +8 -6
- package/lib/utils/animation/useVerticalExpandAnimation.js +6 -5
- package/lib/utils/children.js +2 -1
- package/lib/utils/index.js +10 -10
- package/lib/utils/input.js +22 -17
- package/lib/utils/pressability.js +36 -22
- package/lib/utils/props/clickProps.js +2 -1
- package/lib/utils/props/getPropSelector.js +6 -3
- package/lib/utils/props/handlerProps.js +25 -19
- package/lib/utils/props/hrefAttrsProp.js +14 -11
- package/lib/utils/props/index.js +12 -12
- package/lib/utils/props/inputSupportsProps.js +15 -12
- package/lib/utils/props/linkProps.js +7 -6
- package/lib/utils/props/pressProps.js +1 -1
- package/lib/utils/props/tokens.js +27 -13
- package/lib/utils/ssr.js +6 -2
- package/lib/utils/useCopy.js +6 -4
- package/lib/utils/useHash.js +2 -1
- package/lib/utils/useResponsiveProp.js +1 -1
- package/lib/utils/useUniqueId.js +2 -1
- package/lib/utils/withLinkRouter.js +6 -5
- package/package.json +11 -10
- package/src/Pagination/Pagination.jsx +3 -0
- package/src/Search/Search.jsx +11 -0
- package/src/Select/Item.native.jsx +0 -7
- package/lib-module/A11yInfoProvider/index.js +0 -62
- package/lib-module/A11yText/index.js +0 -55
- package/lib-module/ActivityIndicator/Spinner.js +0 -76
- package/lib-module/ActivityIndicator/Spinner.native.js +0 -143
- package/lib-module/ActivityIndicator/index.js +0 -40
- package/lib-module/ActivityIndicator/shared.js +0 -12
- package/lib-module/BaseProvider/index.js +0 -26
- package/lib-module/Box/Box.js +0 -243
- package/lib-module/Box/index.js +0 -2
- package/lib-module/Button/Button.js +0 -25
- package/lib-module/Button/ButtonBase.js +0 -254
- package/lib-module/Button/ButtonGroup.js +0 -245
- package/lib-module/Button/ButtonLink.js +0 -39
- package/lib-module/Button/index.js +0 -4
- package/lib-module/Button/propTypes.js +0 -36
- package/lib-module/Card/Card.js +0 -83
- package/lib-module/Card/CardBase.js +0 -62
- package/lib-module/Card/PressableCardBase.js +0 -113
- package/lib-module/Card/index.js +0 -4
- package/lib-module/Checkbox/Checkbox.js +0 -332
- package/lib-module/Checkbox/CheckboxGroup.js +0 -231
- package/lib-module/Checkbox/CheckboxInput.js +0 -58
- package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
- package/lib-module/Checkbox/index.js +0 -3
- package/lib-module/Divider/Divider.js +0 -123
- package/lib-module/Divider/index.js +0 -2
- package/lib-module/ExpandCollapse/Accordion.js +0 -15
- package/lib-module/ExpandCollapse/Control.js +0 -130
- package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -94
- package/lib-module/ExpandCollapse/Panel.js +0 -159
- package/lib-module/ExpandCollapse/index.js +0 -7
- package/lib-module/Feedback/Feedback.js +0 -144
- package/lib-module/Feedback/index.js +0 -2
- package/lib-module/Fieldset/Fieldset.js +0 -152
- package/lib-module/Fieldset/FieldsetContainer.js +0 -29
- package/lib-module/Fieldset/FieldsetContainer.native.js +0 -20
- package/lib-module/Fieldset/Legend.js +0 -21
- package/lib-module/Fieldset/Legend.native.js +0 -28
- package/lib-module/Fieldset/cssReset.js +0 -14
- package/lib-module/Fieldset/index.js +0 -2
- package/lib-module/FlexGrid/Col/Col.js +0 -275
- package/lib-module/FlexGrid/Col/index.js +0 -2
- package/lib-module/FlexGrid/FlexGrid.js +0 -147
- package/lib-module/FlexGrid/Row/Row.js +0 -183
- package/lib-module/FlexGrid/Row/index.js +0 -2
- package/lib-module/FlexGrid/helpers/index.js +0 -18
- package/lib-module/FlexGrid/index.js +0 -2
- package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
- package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -170
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -77
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -47
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -24
- package/lib-module/HorizontalScroll/dictionary.js +0 -11
- package/lib-module/HorizontalScroll/index.js +0 -11
- package/lib-module/HorizontalScroll/itemPositions.js +0 -106
- package/lib-module/Icon/Icon.js +0 -61
- package/lib-module/Icon/IconText.js +0 -81
- package/lib-module/Icon/index.js +0 -4
- package/lib-module/IconButton/IconButton.js +0 -115
- package/lib-module/IconButton/index.js +0 -2
- package/lib-module/InputLabel/InputLabel.js +0 -141
- package/lib-module/InputLabel/LabelContent.js +0 -24
- package/lib-module/InputLabel/LabelContent.native.js +0 -16
- package/lib-module/InputLabel/index.js +0 -2
- package/lib-module/InputSupports/InputSupports.js +0 -95
- package/lib-module/InputSupports/index.js +0 -2
- package/lib-module/InputSupports/useInputSupports.js +0 -31
- package/lib-module/Link/ChevronLink.js +0 -51
- package/lib-module/Link/InlinePressable.js +0 -37
- package/lib-module/Link/InlinePressable.native.js +0 -85
- package/lib-module/Link/Link.js +0 -27
- package/lib-module/Link/LinkBase.js +0 -223
- package/lib-module/Link/TextButton.js +0 -34
- package/lib-module/Link/index.js +0 -5
- package/lib-module/List/List.js +0 -55
- package/lib-module/List/ListItem.js +0 -223
- package/lib-module/List/index.js +0 -5
- package/lib-module/Modal/Modal.js +0 -208
- package/lib-module/Modal/dictionary.js +0 -9
- package/lib-module/Modal/index.js +0 -2
- package/lib-module/Notification/Notification.js +0 -196
- package/lib-module/Notification/dictionary.js +0 -8
- package/lib-module/Notification/index.js +0 -2
- package/lib-module/Pagination/PageButton.js +0 -65
- package/lib-module/Pagination/Pagination.js +0 -140
- package/lib-module/Pagination/SideButton.js +0 -103
- package/lib-module/Pagination/dictionary.js +0 -18
- package/lib-module/Pagination/index.js +0 -2
- package/lib-module/Pagination/usePagination.js +0 -72
- package/lib-module/Progress/Progress.js +0 -85
- package/lib-module/Progress/ProgressBar.js +0 -134
- package/lib-module/Progress/ProgressBarBackground.js +0 -41
- package/lib-module/Progress/index.js +0 -4
- package/lib-module/Radio/Radio.js +0 -274
- package/lib-module/Radio/RadioButton.js +0 -128
- package/lib-module/Radio/RadioGroup.js +0 -241
- package/lib-module/Radio/RadioInput.js +0 -60
- package/lib-module/Radio/RadioInput.native.js +0 -6
- package/lib-module/Radio/index.js +0 -3
- package/lib-module/RadioCard/RadioCard.js +0 -218
- package/lib-module/RadioCard/RadioCardGroup.js +0 -248
- package/lib-module/RadioCard/index.js +0 -3
- package/lib-module/Search/Search.js +0 -241
- package/lib-module/Search/dictionary.js +0 -12
- package/lib-module/Search/index.js +0 -2
- package/lib-module/Select/Group.js +0 -20
- package/lib-module/Select/Group.native.js +0 -14
- package/lib-module/Select/Item.js +0 -17
- package/lib-module/Select/Item.native.js +0 -9
- package/lib-module/Select/Picker.js +0 -67
- package/lib-module/Select/Picker.native.js +0 -110
- package/lib-module/Select/Select.js +0 -316
- package/lib-module/Select/index.js +0 -6
- package/lib-module/SideNav/Item.js +0 -139
- package/lib-module/SideNav/ItemContent.js +0 -45
- package/lib-module/SideNav/ItemsGroup.js +0 -115
- package/lib-module/SideNav/SideNav.js +0 -133
- package/lib-module/SideNav/index.js +0 -1
- package/lib-module/Skeleton/Skeleton.js +0 -163
- package/lib-module/Skeleton/index.js +0 -2
- package/lib-module/Skeleton/skeleton.constant.js +0 -3
- package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
- package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -24
- package/lib-module/Spacer/Spacer.js +0 -97
- package/lib-module/Spacer/index.js +0 -2
- package/lib-module/StackView/StackView.js +0 -124
- package/lib-module/StackView/StackWrap.js +0 -48
- package/lib-module/StackView/StackWrap.native.js +0 -3
- package/lib-module/StackView/StackWrapBox.js +0 -114
- package/lib-module/StackView/StackWrapGap.js +0 -58
- package/lib-module/StackView/common.js +0 -32
- package/lib-module/StackView/getStackedContent.js +0 -123
- package/lib-module/StackView/index.js +0 -5
- package/lib-module/StepTracker/Step.js +0 -229
- package/lib-module/StepTracker/StepTracker.js +0 -175
- package/lib-module/StepTracker/dictionary.js +0 -10
- package/lib-module/StepTracker/index.js +0 -2
- package/lib-module/Tabs/Tabs.js +0 -113
- package/lib-module/Tabs/TabsItem.js +0 -215
- package/lib-module/Tabs/index.js +0 -2
- package/lib-module/Tags/Tags.js +0 -245
- package/lib-module/Tags/index.js +0 -2
- package/lib-module/TextInput/TextArea.js +0 -88
- package/lib-module/TextInput/TextInput.js +0 -68
- package/lib-module/TextInput/TextInputBase.js +0 -233
- package/lib-module/TextInput/index.js +0 -3
- package/lib-module/TextInput/propTypes.js +0 -37
- package/lib-module/ThemeProvider/ThemeProvider.js +0 -35
- package/lib-module/ThemeProvider/index.js +0 -6
- package/lib-module/ThemeProvider/useSetTheme.js +0 -22
- package/lib-module/ThemeProvider/useTheme.js +0 -14
- package/lib-module/ThemeProvider/useThemeTokens.js +0 -105
- package/lib-module/ThemeProvider/utils/index.js +0 -2
- package/lib-module/ThemeProvider/utils/styles.js +0 -174
- package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -151
- package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -234
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -218
- package/lib-module/ToggleSwitch/index.js +0 -3
- package/lib-module/Tooltip/Backdrop.js +0 -52
- package/lib-module/Tooltip/Backdrop.native.js +0 -43
- package/lib-module/Tooltip/Tooltip.js +0 -332
- package/lib-module/Tooltip/dictionary.js +0 -8
- package/lib-module/Tooltip/getTooltipPosition.js +0 -164
- package/lib-module/Tooltip/index.js +0 -2
- package/lib-module/TooltipButton/TooltipButton.js +0 -71
- package/lib-module/TooltipButton/index.js +0 -2
- package/lib-module/Typography/Typography.js +0 -120
- package/lib-module/Typography/index.js +0 -2
- package/lib-module/ViewportProvider/ViewportProvider.js +0 -28
- package/lib-module/ViewportProvider/index.js +0 -3
- package/lib-module/ViewportProvider/useViewport.js +0 -3
- package/lib-module/ViewportProvider/useViewportListener.js +0 -43
- package/lib-module/index.js +0 -48
- package/lib-module/utils/a11y/index.js +0 -2
- package/lib-module/utils/a11y/semantics.js +0 -154
- package/lib-module/utils/a11y/textSize.js +0 -34
- package/lib-module/utils/animation/index.js +0 -2
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -61
- package/lib-module/utils/children.js +0 -118
- package/lib-module/utils/containUniqueFields.js +0 -26
- package/lib-module/utils/index.js +0 -16
- package/lib-module/utils/info/index.js +0 -7
- package/lib-module/utils/info/platform/index.js +0 -11
- package/lib-module/utils/info/platform/platform.android.js +0 -1
- package/lib-module/utils/info/platform/platform.ios.js +0 -1
- package/lib-module/utils/info/platform/platform.js +0 -1
- package/lib-module/utils/info/platform/platform.native.js +0 -4
- package/lib-module/utils/info/versions.js +0 -5
- package/lib-module/utils/input.js +0 -180
- package/lib-module/utils/pressability.js +0 -97
- package/lib-module/utils/props/a11yProps.js +0 -140
- package/lib-module/utils/props/clickProps.js +0 -25
- package/lib-module/utils/props/componentPropType.js +0 -63
- package/lib-module/utils/props/copyPropTypes.js +0 -2
- package/lib-module/utils/props/getPropSelector.js +0 -6
- package/lib-module/utils/props/handlerProps.js +0 -59
- package/lib-module/utils/props/hrefAttrsProp.js +0 -30
- package/lib-module/utils/props/index.js +0 -19
- package/lib-module/utils/props/inputSupportsProps.js +0 -59
- package/lib-module/utils/props/linkProps.js +0 -43
- package/lib-module/utils/props/paddingProp.js +0 -9
- package/lib-module/utils/props/pressProps.js +0 -42
- package/lib-module/utils/props/rectProp.js +0 -9
- package/lib-module/utils/props/responsiveProps.js +0 -30
- package/lib-module/utils/props/selectSystemProps.js +0 -24
- package/lib-module/utils/props/spacingProps.js +0 -56
- package/lib-module/utils/props/textInputProps.js +0 -194
- package/lib-module/utils/props/textProps.js +0 -59
- package/lib-module/utils/props/tokens.js +0 -120
- package/lib-module/utils/props/variantProp.js +0 -18
- package/lib-module/utils/props/viewProps.js +0 -22
- package/lib-module/utils/ssr.js +0 -35
- package/lib-module/utils/useCopy.js +0 -42
- package/lib-module/utils/useHash.js +0 -44
- package/lib-module/utils/useHash.native.js +0 -7
- package/lib-module/utils/useResponsiveProp.js +0 -47
- package/lib-module/utils/useSpacingScale.js +0 -123
- package/lib-module/utils/useUniqueId.js +0 -12
- package/lib-module/utils/withLinkRouter.js +0 -82
|
@@ -28,7 +28,8 @@ var _default = {
|
|
|
28
28
|
* web-oriented tooling that injects web-oriented event handlers directly. For example, for
|
|
29
29
|
* to support use with NextJS's 'next/link' component, which injects `onClick` prop into its child.
|
|
30
30
|
*/
|
|
31
|
-
toPressProps: props => Object.fromEntries(Object.entries(props).map(
|
|
31
|
+
toPressProps: props => Object.fromEntries(Object.entries(props).map(_ref => {
|
|
32
|
+
let [originalName, value] = _ref;
|
|
32
33
|
const translatedName = clickHandlerMapping[originalName];
|
|
33
34
|
return translatedName ? [translatedName, value] : [originalName, value];
|
|
34
35
|
}))
|
|
@@ -7,7 +7,10 @@ exports.default = getPropSelector;
|
|
|
7
7
|
|
|
8
8
|
function getPropSelector(propTypes, regexp) {
|
|
9
9
|
const keys = Object.keys(propTypes);
|
|
10
|
-
return props => Object.entries(props).reduce((items,
|
|
11
|
-
[key]
|
|
12
|
-
|
|
10
|
+
return props => Object.entries(props).reduce((items, _ref) => {
|
|
11
|
+
let [key, value] = _ref;
|
|
12
|
+
return keys.includes(key) || regexp && regexp.test(key) ? { ...items,
|
|
13
|
+
[key]: value
|
|
14
|
+
} : items;
|
|
15
|
+
}, {});
|
|
13
16
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.textInputHandlerProps = exports.focusHandlerProps = exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
|
|
@@ -21,13 +21,16 @@ const focusHandlerProps = {
|
|
|
21
21
|
*/
|
|
22
22
|
onFocus: _propTypes.default.func
|
|
23
23
|
},
|
|
24
|
-
select:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
select: _ref => {
|
|
25
|
+
let {
|
|
26
|
+
onBlur,
|
|
27
|
+
onFocus
|
|
28
|
+
} = _ref;
|
|
29
|
+
return {
|
|
30
|
+
onBlur,
|
|
31
|
+
onFocus
|
|
32
|
+
};
|
|
33
|
+
}
|
|
31
34
|
};
|
|
32
35
|
exports.focusHandlerProps = focusHandlerProps;
|
|
33
36
|
const textInputHandlerProps = {
|
|
@@ -52,17 +55,20 @@ const textInputHandlerProps = {
|
|
|
52
55
|
*/
|
|
53
56
|
onSubmitEditing: _propTypes.default.func
|
|
54
57
|
},
|
|
55
|
-
select:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
select: _ref2 => {
|
|
59
|
+
let {
|
|
60
|
+
onChange,
|
|
61
|
+
onChangeText,
|
|
62
|
+
onSubmit,
|
|
63
|
+
onSubmitEditing
|
|
64
|
+
} = _ref2;
|
|
65
|
+
return {
|
|
66
|
+
onChange,
|
|
67
|
+
onChangeText,
|
|
68
|
+
onSubmit,
|
|
69
|
+
onSubmitEditing
|
|
70
|
+
};
|
|
71
|
+
}
|
|
66
72
|
};
|
|
67
73
|
exports.textInputHandlerProps = textInputHandlerProps;
|
|
68
74
|
var _default = {
|
|
@@ -24,18 +24,21 @@ var _default = {
|
|
|
24
24
|
* Takes a props object, bundles any hrefAttrs props present into one object
|
|
25
25
|
* and returns that keyed as `hrefAttrs` and non-hrefAttrs props keyed as `rest`
|
|
26
26
|
*/
|
|
27
|
-
bundle:
|
|
28
|
-
|
|
29
|
-
rel,
|
|
30
|
-
target,
|
|
31
|
-
...rest
|
|
32
|
-
}) => ({
|
|
33
|
-
hrefAttrs: {
|
|
27
|
+
bundle: _ref => {
|
|
28
|
+
let {
|
|
34
29
|
download,
|
|
35
30
|
rel,
|
|
36
|
-
target
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
target,
|
|
32
|
+
...rest
|
|
33
|
+
} = _ref;
|
|
34
|
+
return {
|
|
35
|
+
hrefAttrs: {
|
|
36
|
+
download,
|
|
37
|
+
rel,
|
|
38
|
+
target
|
|
39
|
+
},
|
|
40
|
+
rest
|
|
41
|
+
};
|
|
42
|
+
}
|
|
40
43
|
};
|
|
41
44
|
exports.default = _default;
|
package/lib/utils/props/index.js
CHANGED
|
@@ -34,16 +34,16 @@ Object.defineProperty(exports, "clickProps", {
|
|
|
34
34
|
return _clickProps.default;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
|
-
Object.defineProperty(exports, "
|
|
37
|
+
Object.defineProperty(exports, "componentPropType", {
|
|
38
38
|
enumerable: true,
|
|
39
39
|
get: function () {
|
|
40
|
-
return
|
|
40
|
+
return _componentPropType.default;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
-
Object.defineProperty(exports, "
|
|
43
|
+
Object.defineProperty(exports, "copyPropTypes", {
|
|
44
44
|
enumerable: true,
|
|
45
45
|
get: function () {
|
|
46
|
-
return
|
|
46
|
+
return _copyPropTypes.default;
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
Object.defineProperty(exports, "hrefAttrsProp", {
|
|
@@ -64,16 +64,16 @@ Object.defineProperty(exports, "linkProps", {
|
|
|
64
64
|
return _linkProps.default;
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
|
-
Object.defineProperty(exports, "
|
|
67
|
+
Object.defineProperty(exports, "paddingProp", {
|
|
68
68
|
enumerable: true,
|
|
69
69
|
get: function () {
|
|
70
|
-
return
|
|
70
|
+
return _paddingProp.default;
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
|
-
Object.defineProperty(exports, "
|
|
73
|
+
Object.defineProperty(exports, "pressProps", {
|
|
74
74
|
enumerable: true,
|
|
75
75
|
get: function () {
|
|
76
|
-
return
|
|
76
|
+
return _pressProps.default;
|
|
77
77
|
}
|
|
78
78
|
});
|
|
79
79
|
Object.defineProperty(exports, "rectProp", {
|
|
@@ -88,16 +88,16 @@ Object.defineProperty(exports, "responsiveProps", {
|
|
|
88
88
|
return _responsiveProps.default;
|
|
89
89
|
}
|
|
90
90
|
});
|
|
91
|
-
Object.defineProperty(exports, "
|
|
91
|
+
Object.defineProperty(exports, "selectSystemProps", {
|
|
92
92
|
enumerable: true,
|
|
93
93
|
get: function () {
|
|
94
|
-
return
|
|
94
|
+
return _selectSystemProps.default;
|
|
95
95
|
}
|
|
96
96
|
});
|
|
97
|
-
Object.defineProperty(exports, "
|
|
97
|
+
Object.defineProperty(exports, "spacingProps", {
|
|
98
98
|
enumerable: true,
|
|
99
99
|
get: function () {
|
|
100
|
-
return
|
|
100
|
+
return _spacingProps.default;
|
|
101
101
|
}
|
|
102
102
|
});
|
|
103
103
|
Object.defineProperty(exports, "textInputProps", {
|
|
@@ -47,16 +47,8 @@ var _default = {
|
|
|
47
47
|
*/
|
|
48
48
|
validation: _propTypes.default.oneOf(['error', 'success'])
|
|
49
49
|
},
|
|
50
|
-
select:
|
|
51
|
-
|
|
52
|
-
label,
|
|
53
|
-
hint,
|
|
54
|
-
hintPosition,
|
|
55
|
-
feedback,
|
|
56
|
-
tooltip,
|
|
57
|
-
validation
|
|
58
|
-
}) => ({
|
|
59
|
-
supportsProps: {
|
|
50
|
+
select: _ref => {
|
|
51
|
+
let {
|
|
60
52
|
copy,
|
|
61
53
|
label,
|
|
62
54
|
hint,
|
|
@@ -64,7 +56,18 @@ var _default = {
|
|
|
64
56
|
feedback,
|
|
65
57
|
tooltip,
|
|
66
58
|
validation
|
|
67
|
-
}
|
|
68
|
-
|
|
59
|
+
} = _ref;
|
|
60
|
+
return {
|
|
61
|
+
supportsProps: {
|
|
62
|
+
copy,
|
|
63
|
+
label,
|
|
64
|
+
hint,
|
|
65
|
+
hintPosition,
|
|
66
|
+
feedback,
|
|
67
|
+
tooltip,
|
|
68
|
+
validation
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
69
72
|
};
|
|
70
73
|
exports.default = _default;
|
|
@@ -44,14 +44,15 @@ var _default = {
|
|
|
44
44
|
* @returns {(() => void)|undefined} Returns a press handler, or undefined on web if no press
|
|
45
45
|
* handler is provided (expects calling component to render as `<a href={href}>` on web).
|
|
46
46
|
*/
|
|
47
|
-
handleHref:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
handleHref: _ref => {
|
|
48
|
+
let {
|
|
49
|
+
onPress,
|
|
50
|
+
href
|
|
51
|
+
} = _ref;
|
|
51
52
|
return _Platform.default.select({
|
|
52
53
|
web: onPress,
|
|
53
|
-
default: (
|
|
54
|
-
if (onPress) onPress(...
|
|
54
|
+
default: function () {
|
|
55
|
+
if (onPress) onPress(...arguments);
|
|
55
56
|
if (href) _Linking.default.openURL(href);
|
|
56
57
|
}
|
|
57
58
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.pressPropTypes = exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.selectTokens = exports.getTokensSetPropType = exports.getTokensPropType = exports.getTokenNames = void 0;
|
|
7
7
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
|
|
@@ -103,16 +103,22 @@ const selectTokens = (specifier, tokens, prefix) => {
|
|
|
103
103
|
|
|
104
104
|
exports.selectTokens = selectTokens;
|
|
105
105
|
|
|
106
|
-
const getTokensPropType =
|
|
107
|
-
|
|
108
|
-
[
|
|
109
|
-
}
|
|
106
|
+
const getTokensPropType = function () {
|
|
107
|
+
for (var _len = arguments.length, componentsNames = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
108
|
+
componentsNames[_key] = arguments[_key];
|
|
109
|
+
}
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
return (props, propName, componentName) => {
|
|
112
112
|
_propTypes.default.checkPropTypes({
|
|
113
|
-
[propName]: _propTypes.default.
|
|
113
|
+
[propName]: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func])
|
|
114
114
|
}, props, propName, componentName);
|
|
115
|
-
|
|
115
|
+
|
|
116
|
+
if (typeof props[propName] !== 'function') {
|
|
117
|
+
_propTypes.default.checkPropTypes({
|
|
118
|
+
[propName]: _propTypes.default.exact(Object.fromEntries(componentsNames.flatMap(component => getTokenNames(component).map(key => [key, tokenValueType]))))
|
|
119
|
+
}, props, propName, componentName);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
116
122
|
};
|
|
117
123
|
/**
|
|
118
124
|
* Get a proptypes validator for a set of tokens that is not based on a component in the theme schema.
|
|
@@ -132,12 +138,20 @@ const getTokensPropType = (...componentsNames) => (props, propName, componentNam
|
|
|
132
138
|
|
|
133
139
|
exports.getTokensPropType = getTokensPropType;
|
|
134
140
|
|
|
135
|
-
const getTokensSetPropType = (componentTokenKeys
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
141
|
+
const getTokensSetPropType = function (componentTokenKeys) {
|
|
142
|
+
let {
|
|
143
|
+
partial = false,
|
|
144
|
+
allowFunction = false
|
|
145
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
146
|
+
|
|
139
147
|
const tokensObjectValidator = _propTypes.default.exact(Object.fromEntries(componentTokenKeys.map(key => [key, partial ? tokenValueType : // Some theme tokens can validly resolve to `null`, but .isRequired treats null as undefined
|
|
140
|
-
(props, propName
|
|
148
|
+
function (props, propName) {
|
|
149
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
|
150
|
+
args[_key2 - 2] = arguments[_key2];
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return props[propName] !== null && tokenValueType.isRequired(props, propName, ...args);
|
|
154
|
+
}])));
|
|
141
155
|
|
|
142
156
|
return allowFunction ? _propTypes.default.oneOfType([tokensObjectValidator, _propTypes.default.func]) : tokensObjectValidator;
|
|
143
157
|
};
|
package/lib/utils/ssr.js
CHANGED
|
@@ -21,7 +21,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
21
21
|
* @param {string} [appName]
|
|
22
22
|
* @returns {ReactElement[]}
|
|
23
23
|
*/
|
|
24
|
-
const getReactNativeWebSSRStyles = (AppRoot
|
|
24
|
+
const getReactNativeWebSSRStyles = function (AppRoot) {
|
|
25
|
+
let appName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'app';
|
|
26
|
+
|
|
25
27
|
_AppRegistry.default.registerComponent(appName, () => AppRoot);
|
|
26
28
|
|
|
27
29
|
const {
|
|
@@ -43,7 +45,9 @@ const getReactNativeWebSSRStyles = (AppRoot, appName = 'app') => {
|
|
|
43
45
|
|
|
44
46
|
exports.getReactNativeWebSSRStyles = getReactNativeWebSSRStyles;
|
|
45
47
|
|
|
46
|
-
const getSSRStyles = (AppRoot
|
|
48
|
+
const getSSRStyles = function (AppRoot) {
|
|
49
|
+
let appName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'app';
|
|
50
|
+
let existingStyles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
47
51
|
return [...existingStyles, ...getReactNativeWebSSRStyles(AppRoot, appName) // if any other CSS-in-JS is added e.g. styled-components generate and add its styles here
|
|
48
52
|
];
|
|
49
53
|
};
|
package/lib/utils/useCopy.js
CHANGED
|
@@ -35,10 +35,12 @@ const DEFAULT_COPY = 'en';
|
|
|
35
35
|
|
|
36
36
|
exports.DEFAULT_COPY = DEFAULT_COPY;
|
|
37
37
|
|
|
38
|
-
function useCopy({
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
function useCopy(_ref) {
|
|
39
|
+
let {
|
|
40
|
+
dictionary,
|
|
41
|
+
copy = DEFAULT_COPY
|
|
42
|
+
} = _ref;
|
|
43
|
+
|
|
42
44
|
if (typeof copy === 'string') {
|
|
43
45
|
return key => key ? dictionary[copy][key] : dictionary[copy];
|
|
44
46
|
} // support overriding the entire copy dictionary with an object for a single language
|
package/lib/utils/useHash.js
CHANGED
|
@@ -29,7 +29,8 @@ const doAction = (action, event) => {
|
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
const useHash = (action
|
|
32
|
+
const useHash = function (action) {
|
|
33
|
+
let isReady = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
33
34
|
const [isDone, setIsDone] = (0, _react.useState)(false); // Do the action just once when ready after component mount, from hash on page load
|
|
34
35
|
|
|
35
36
|
const isToDo = isReady && !isDone;
|
package/lib/utils/useUniqueId.js
CHANGED
|
@@ -9,7 +9,8 @@ var _react = require("react");
|
|
|
9
9
|
|
|
10
10
|
let id = 0;
|
|
11
11
|
|
|
12
|
-
function useUniqueId(
|
|
12
|
+
function useUniqueId() {
|
|
13
|
+
let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
13
14
|
const [uniqueId] = (0, _react.useState)(() => {
|
|
14
15
|
id += 1;
|
|
15
16
|
return `${prefix}-${id}`;
|
|
@@ -50,11 +50,12 @@ const hasOwnProperty = (object, prop) => Object.prototype.hasOwnProperty.call(ob
|
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
const withLinkRouter = Component => {
|
|
53
|
-
const wrappedComponent = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
const wrappedComponent = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
54
|
+
let {
|
|
55
|
+
LinkRouter,
|
|
56
|
+
linkRouterProps,
|
|
57
|
+
...props
|
|
58
|
+
} = _ref;
|
|
58
59
|
if (!LinkRouter) return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, { ...props,
|
|
59
60
|
ref: ref
|
|
60
61
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telus-uds/components-base",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.2",
|
|
4
4
|
"description": "Base components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"base"
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
24
|
"test": "jest",
|
|
25
|
-
"lint": "
|
|
26
|
-
"lint:fix": "
|
|
25
|
+
"lint": "npm run --prefix ../.. lint:path -- --color packages/components-base",
|
|
26
|
+
"lint:fix": "npm run --prefix ../.. lint:path -- --fix packages/components-base",
|
|
27
27
|
"format": "prettier --write .",
|
|
28
|
-
"build": "
|
|
28
|
+
"build": "npm run build:code && npm run build:docs",
|
|
29
29
|
"build:main": "babel src -d lib",
|
|
30
30
|
"build:module": "babel src -d lib-module --env-name module",
|
|
31
|
-
"build:code": "
|
|
31
|
+
"build:code": "npm run build:main && npm run build:module",
|
|
32
32
|
"build:docs": "babel-node --plugins=@nearform/babel-plugin-react-docgen generate-component-docs.js",
|
|
33
33
|
"storybook": "start-storybook",
|
|
34
|
-
"dev": "
|
|
34
|
+
"dev": "npm run build:code --watch"
|
|
35
35
|
},
|
|
36
36
|
"bugs": {
|
|
37
37
|
"url": "https://github.com/telus/universal-design-system/issues"
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
],
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"react": "^17.0.2",
|
|
47
|
-
"react-dom": "
|
|
47
|
+
"react-dom": "^17.0.2",
|
|
48
48
|
"react-native": "*",
|
|
49
49
|
"react-native-web": "^0.17.0"
|
|
50
50
|
},
|
|
@@ -59,12 +59,13 @@
|
|
|
59
59
|
"@testing-library/jest-native": "^4.0.1",
|
|
60
60
|
"@testing-library/react-hooks": "^7.0.1",
|
|
61
61
|
"@testing-library/react-native": "^7.2.0",
|
|
62
|
-
"react-test-renderer": "^16.3.2"
|
|
62
|
+
"react-test-renderer": "^16.3.2",
|
|
63
|
+
"webpack": "5.x"
|
|
63
64
|
},
|
|
64
65
|
"dependencies": {
|
|
65
66
|
"airbnb-prop-types": "^2.16.0",
|
|
66
|
-
"@telus-uds/system-constants": "^1.0.
|
|
67
|
-
"@telus-uds/system-theme-tokens": "^2.0.
|
|
67
|
+
"@telus-uds/system-constants": "^1.0.4",
|
|
68
|
+
"@telus-uds/system-theme-tokens": "^2.0.2",
|
|
68
69
|
"lodash.debounce": "^4.0.8",
|
|
69
70
|
"lodash.merge": "^4.6.2",
|
|
70
71
|
"prop-types": "^15.7.2",
|
package/src/Search/Search.jsx
CHANGED
|
@@ -68,6 +68,7 @@ const Search = forwardRef(
|
|
|
68
68
|
onChange,
|
|
69
69
|
onSubmit,
|
|
70
70
|
onClear,
|
|
71
|
+
onFocus,
|
|
71
72
|
accessibilityLabel,
|
|
72
73
|
copy = 'en',
|
|
73
74
|
tokens,
|
|
@@ -112,6 +113,10 @@ const Search = forwardRef(
|
|
|
112
113
|
if (onClear !== undefined) onClear('', event)
|
|
113
114
|
}
|
|
114
115
|
|
|
116
|
+
const handleFocus = (event) => {
|
|
117
|
+
if (onFocus !== undefined) onFocus(event)
|
|
118
|
+
}
|
|
119
|
+
|
|
115
120
|
const isEmpty = currentValue === ''
|
|
116
121
|
|
|
117
122
|
// Accessibility label should always be present and correctly localised
|
|
@@ -140,6 +145,7 @@ const Search = forwardRef(
|
|
|
140
145
|
value={currentValue}
|
|
141
146
|
onChange={setValue}
|
|
142
147
|
onSubmitEditing={handleSubmit}
|
|
148
|
+
onFocus={handleFocus}
|
|
143
149
|
accessibilityLabel={a11yLabelText}
|
|
144
150
|
/>
|
|
145
151
|
<View style={[staticStyles.iconsContainer, selectIconsContainerStyle(themeTokens)]}>
|
|
@@ -214,6 +220,11 @@ Search.propTypes = {
|
|
|
214
220
|
*/
|
|
215
221
|
onClear: PropTypes.func,
|
|
216
222
|
/**
|
|
223
|
+
* Triggered when the search input is focused.
|
|
224
|
+
*/
|
|
225
|
+
onFocus: PropTypes.func,
|
|
226
|
+
/**
|
|
227
|
+
*
|
|
217
228
|
* Use to provide an accessible label for the input (visually hidden).
|
|
218
229
|
*/
|
|
219
230
|
accessibilityLabel: PropTypes.string,
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import React, { createContext, useContext, useEffect, useState } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import AccessibilityInfo from "react-native-web/dist/exports/AccessibilityInfo";
|
|
4
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
5
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
-
const ScreenReaderContext = /*#__PURE__*/createContext(false);
|
|
7
|
-
const ReducedMotionContext = /*#__PURE__*/createContext(false);
|
|
8
|
-
|
|
9
|
-
const A11yInfoProvider = ({
|
|
10
|
-
children
|
|
11
|
-
}) => {
|
|
12
|
-
const [reduceMotionEnabled, setReduceMotionEnabled] = useState(false);
|
|
13
|
-
const [screenReaderEnabled, setScreenReaderEnabled] = useState(false);
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
if (process.env.NODE_ENV === 'test') {
|
|
16
|
-
// On Jest these effects do nothing but can cause `act` state change warnings
|
|
17
|
-
// and "...after the Jest environment has been torn down" errors, so skip them.
|
|
18
|
-
return () => {};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
AccessibilityInfo.addEventListener('reduceMotionChanged', setReduceMotionEnabled);
|
|
22
|
-
AccessibilityInfo.addEventListener('screenReaderChanged', setScreenReaderEnabled);
|
|
23
|
-
|
|
24
|
-
const setInitialA11yInfo = async () => {
|
|
25
|
-
const [initialReduceMotionEnabled, initialScreenReaderEnabled] = await Promise.all([AccessibilityInfo.isReduceMotionEnabled(), AccessibilityInfo.isScreenReaderEnabled()]); // Browsers can't detect screen readers; in RNW isScreenReaderEnabled() is always `true`
|
|
26
|
-
// https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/exports/AccessibilityInfo/index.js#L14
|
|
27
|
-
|
|
28
|
-
setScreenReaderEnabled(Platform.OS !== 'web' && !!initialScreenReaderEnabled); // RNW does support isReduceMotionEnabled looking for 'prefers-reduced-motion' state
|
|
29
|
-
|
|
30
|
-
setReduceMotionEnabled(!!initialReduceMotionEnabled);
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
if (AccessibilityInfo.isReduceMotionEnabled && AccessibilityInfo.isScreenReaderEnabled) {
|
|
34
|
-
setInitialA11yInfo();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return () => {
|
|
38
|
-
AccessibilityInfo.removeEventListener('reduceMotionChanged', setReduceMotionEnabled);
|
|
39
|
-
AccessibilityInfo.removeEventListener('screenReaderChanged', setScreenReaderEnabled);
|
|
40
|
-
};
|
|
41
|
-
}, []);
|
|
42
|
-
return /*#__PURE__*/_jsx(ReducedMotionContext.Provider, {
|
|
43
|
-
value: reduceMotionEnabled,
|
|
44
|
-
children: /*#__PURE__*/_jsx(ScreenReaderContext.Provider, {
|
|
45
|
-
value: screenReaderEnabled,
|
|
46
|
-
children: children
|
|
47
|
-
})
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
A11yInfoProvider.propTypes = {
|
|
52
|
-
children: PropTypes.node.isRequired
|
|
53
|
-
};
|
|
54
|
-
export default A11yInfoProvider;
|
|
55
|
-
export const useA11yInfo = () => {
|
|
56
|
-
const screenReaderEnabled = useContext(ScreenReaderContext);
|
|
57
|
-
const reduceMotionEnabled = useContext(ReducedMotionContext);
|
|
58
|
-
return {
|
|
59
|
-
reduceMotionEnabled,
|
|
60
|
-
screenReaderEnabled
|
|
61
|
-
};
|
|
62
|
-
};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
2
|
-
import Platform from "react-native-web/dist/exports/Platform";
|
|
3
|
-
import StyleSheet from "react-native-web/dist/exports/StyleSheet";
|
|
4
|
-
import View from "react-native-web/dist/exports/View";
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
|
-
import { a11yProps, selectSystemProps, viewProps } from '../utils/props';
|
|
7
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
-
const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
|
|
9
|
-
/**
|
|
10
|
-
* A11yText is a zero-size invisible element that adds text to be read by screen readers.
|
|
11
|
-
*
|
|
12
|
-
* It should be used to add selectable screen-reader-only text to the main document flow,
|
|
13
|
-
* as a sibling to blocks of text like paragraphs and interactive elements like buttons.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
const A11yText = /*#__PURE__*/forwardRef(({
|
|
17
|
-
text,
|
|
18
|
-
heading,
|
|
19
|
-
...rest
|
|
20
|
-
}, ref) => {
|
|
21
|
-
const selectedProps = selectProps({
|
|
22
|
-
// On iOS, needs `accessible` to be true to be focusable without non-a11y content.
|
|
23
|
-
// On Web, `accessible` causes RNW to set attributes that may make the element be treated as a group.
|
|
24
|
-
// On Android, may cause this to be skipped when with `<Text>` siblings in an `accessible` View,
|
|
25
|
-
// see https://github.com/facebook/react-native/issues/30851#issuecomment-790165489
|
|
26
|
-
accessible: Platform.OS === 'ios',
|
|
27
|
-
accessibilityLabel: text,
|
|
28
|
-
accessibilityRole: heading ? 'header' : 'text',
|
|
29
|
-
...rest
|
|
30
|
-
});
|
|
31
|
-
return /*#__PURE__*/_jsx(View, {
|
|
32
|
-
style: styles.invisible,
|
|
33
|
-
ref: ref,
|
|
34
|
-
...selectedProps
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
A11yText.displayName = 'A11yText';
|
|
38
|
-
A11yText.propTypes = { ...selectedSystemPropTypes,
|
|
39
|
-
text: PropTypes.string.isRequired,
|
|
40
|
-
heading: PropTypes.bool
|
|
41
|
-
};
|
|
42
|
-
const styles = StyleSheet.create({
|
|
43
|
-
invisible: {
|
|
44
|
-
// Without width or height it is not shown
|
|
45
|
-
minHeight: 1,
|
|
46
|
-
minWidth: 1,
|
|
47
|
-
// Ensures it doesn't occupy space
|
|
48
|
-
// position: 'absolute' causes it to be read first in its container
|
|
49
|
-
marginEnd: -1,
|
|
50
|
-
marginBottom: -1,
|
|
51
|
-
// Ensures it is in the correct position on Native
|
|
52
|
-
top: -1
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
export default A11yText;
|