@telus-uds/components-base 1.8.1 → 1.8.4
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 +35 -2
- package/component-docs.json +711 -669
- package/lib/A11yInfoProvider/index.js +4 -3
- package/lib/A11yText/index.js +6 -5
- package/lib/ActivityIndicator/Spinner.js +14 -13
- package/lib/ActivityIndicator/Spinner.native.js +10 -8
- 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 +97 -79
- package/lib/Button/ButtonGroup.js +34 -32
- 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 +97 -83
- package/lib/Checkbox/CheckboxGroup.js +29 -27
- package/lib/Checkbox/CheckboxInput.js +12 -10
- package/lib/Divider/Divider.js +10 -9
- package/lib/ExpandCollapse/Control.js +42 -36
- package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
- package/lib/ExpandCollapse/Panel.js +29 -40
- 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 +18 -17
- 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 +11 -10
- 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 +20 -13
- package/lib/List/ListItem.js +103 -79
- package/lib/Modal/Modal.js +74 -60
- package/lib/Notification/Notification.js +46 -33
- package/lib/Pagination/PageButton.js +13 -12
- package/lib/Pagination/Pagination.js +43 -30
- package/lib/Pagination/SideButton.js +21 -18
- package/lib/Pagination/usePagination.js +7 -6
- package/lib/Progress/Progress.js +23 -19
- package/lib/Progress/ProgressBar.js +25 -21
- package/lib/Progress/ProgressBarBackground.js +7 -6
- package/lib/Radio/Radio.js +80 -69
- package/lib/Radio/RadioButton.js +63 -53
- package/lib/Radio/RadioGroup.js +30 -28
- package/lib/Radio/RadioInput.js +12 -10
- package/lib/RadioCard/RadioCard.js +16 -15
- package/lib/RadioCard/RadioCardGroup.js +30 -28
- package/lib/Search/Search.js +52 -32
- 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 +21 -18
- package/lib/Skeleton/Skeleton.js +60 -44
- package/lib/Skeleton/skeleton.constant.js +1 -1
- package/lib/Skeleton/skeletonWebAnimation.js +1 -1
- package/lib/Spacer/Spacer.js +6 -5
- package/lib/StackView/StackView.js +12 -11
- package/lib/StackView/StackWrap.js +5 -3
- 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 +10 -9
- 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 +57 -27
- package/lib/Tabs/TabsItem.js +78 -68
- package/lib/Tags/Tags.js +68 -62
- 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 +50 -43
- package/lib/ThemeProvider/utils/theme-tokens.js +33 -21
- package/lib/ToggleSwitch/ToggleSwitch.js +90 -74
- package/lib/ToggleSwitch/ToggleSwitchGroup.js +37 -35
- package/lib/Tooltip/Backdrop.js +6 -13
- 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 +46 -19
- package/lib/utils/children.js +4 -3
- package/lib/utils/index.js +10 -10
- package/lib/utils/input.js +28 -29
- package/lib/utils/pressability.js +36 -22
- package/lib/utils/props/clickProps.js +2 -1
- package/lib/utils/props/componentPropType.js +3 -3
- 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/selectSystemProps.js +2 -2
- package/lib/utils/props/tokens.js +29 -15
- 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/useSpacingScale.js +3 -1
- package/lib/utils/useUniqueId.js +3 -2
- package/lib/utils/withLinkRouter.js +6 -5
- package/lib-module/A11yInfoProvider/index.js +4 -3
- package/lib-module/A11yText/index.js +6 -5
- package/lib-module/ActivityIndicator/Spinner.js +14 -13
- package/lib-module/ActivityIndicator/Spinner.native.js +9 -8
- package/lib-module/ActivityIndicator/index.js +6 -5
- package/lib-module/BaseProvider/index.js +13 -10
- package/lib-module/Box/Box.js +20 -19
- package/lib-module/Button/Button.js +7 -6
- package/lib-module/Button/ButtonBase.js +96 -79
- package/lib-module/Button/ButtonGroup.js +34 -32
- package/lib-module/Button/ButtonLink.js +8 -7
- package/lib-module/Card/Card.js +8 -7
- package/lib-module/Card/CardBase.js +35 -31
- package/lib-module/Card/PressableCardBase.js +12 -11
- package/lib-module/Checkbox/Checkbox.js +97 -83
- package/lib-module/Checkbox/CheckboxGroup.js +29 -27
- package/lib-module/Checkbox/CheckboxInput.js +12 -10
- package/lib-module/Divider/Divider.js +10 -9
- package/lib-module/ExpandCollapse/Control.js +42 -36
- package/lib-module/ExpandCollapse/ExpandCollapse.js +11 -10
- package/lib-module/ExpandCollapse/Panel.js +29 -37
- package/lib-module/Feedback/Feedback.js +46 -33
- package/lib-module/Fieldset/Fieldset.js +16 -15
- package/lib-module/Fieldset/FieldsetContainer.js +16 -13
- package/lib-module/Fieldset/FieldsetContainer.native.js +11 -8
- package/lib-module/Fieldset/Legend.js +10 -7
- package/lib-module/Fieldset/Legend.native.js +10 -7
- package/lib-module/FlexGrid/Col/Col.js +18 -17
- package/lib-module/FlexGrid/FlexGrid.js +15 -14
- package/lib-module/FlexGrid/Row/Row.js +13 -12
- package/lib-module/HorizontalScroll/HorizontalScroll.js +24 -19
- package/lib-module/HorizontalScroll/HorizontalScrollButton.js +18 -14
- package/lib-module/HorizontalScroll/ScrollViewEnd.js +6 -5
- package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +12 -9
- package/lib-module/HorizontalScroll/itemPositions.js +18 -12
- package/lib-module/Icon/Icon.js +10 -9
- package/lib-module/Icon/IconText.js +9 -7
- package/lib-module/IconButton/IconButton.js +48 -41
- package/lib-module/InputLabel/InputLabel.js +37 -30
- package/lib-module/InputLabel/LabelContent.js +12 -9
- package/lib-module/InputLabel/LabelContent.native.js +9 -6
- package/lib-module/InputSupports/InputSupports.js +11 -10
- package/lib-module/InputSupports/useInputSupports.js +7 -6
- package/lib-module/Link/ChevronLink.js +9 -8
- package/lib-module/Link/InlinePressable.js +13 -10
- package/lib-module/Link/InlinePressable.native.js +20 -16
- package/lib-module/Link/Link.js +10 -9
- package/lib-module/Link/LinkBase.js +94 -77
- package/lib-module/Link/TextButton.js +9 -8
- package/lib-module/List/List.js +20 -13
- package/lib-module/List/ListItem.js +103 -78
- package/lib-module/Modal/Modal.js +74 -60
- package/lib-module/Notification/Notification.js +46 -33
- package/lib-module/Pagination/PageButton.js +13 -12
- package/lib-module/Pagination/Pagination.js +43 -30
- package/lib-module/Pagination/SideButton.js +21 -18
- package/lib-module/Pagination/usePagination.js +7 -6
- package/lib-module/Progress/Progress.js +23 -19
- package/lib-module/Progress/ProgressBar.js +25 -21
- package/lib-module/Progress/ProgressBarBackground.js +7 -6
- package/lib-module/Radio/Radio.js +80 -69
- package/lib-module/Radio/RadioButton.js +62 -52
- package/lib-module/Radio/RadioGroup.js +30 -28
- package/lib-module/Radio/RadioInput.js +12 -10
- package/lib-module/RadioCard/RadioCard.js +16 -15
- package/lib-module/RadioCard/RadioCardGroup.js +30 -28
- package/lib-module/Search/Search.js +52 -32
- package/lib-module/Select/Group.js +5 -4
- package/lib-module/Select/Group.native.js +4 -3
- package/lib-module/Select/Item.js +10 -7
- package/lib-module/Select/Item.native.js +1 -7
- package/lib-module/Select/Picker.js +16 -15
- package/lib-module/Select/Picker.native.js +46 -36
- package/lib-module/Select/Select.js +134 -113
- package/lib-module/SideNav/Item.js +39 -33
- package/lib-module/SideNav/ItemContent.js +14 -11
- package/lib-module/SideNav/ItemsGroup.js +13 -11
- package/lib-module/SideNav/SideNav.js +21 -18
- package/lib-module/Skeleton/Skeleton.js +60 -44
- package/lib-module/Skeleton/skeletonWebAnimation.js +1 -1
- package/lib-module/Spacer/Spacer.js +6 -5
- package/lib-module/StackView/StackView.js +12 -11
- package/lib-module/StackView/StackWrap.js +5 -3
- package/lib-module/StackView/StackWrapBox.js +12 -11
- package/lib-module/StackView/StackWrapGap.js +11 -10
- package/lib-module/StackView/common.js +14 -11
- package/lib-module/StackView/getStackedContent.js +10 -9
- package/lib-module/StepTracker/Step.js +122 -103
- package/lib-module/StepTracker/StepTracker.js +48 -38
- package/lib-module/Tabs/Tabs.js +57 -27
- package/lib-module/Tabs/TabsItem.js +77 -68
- package/lib-module/Tags/Tags.js +68 -62
- package/lib-module/TextInput/TextArea.js +26 -20
- package/lib-module/TextInput/TextInput.js +19 -15
- package/lib-module/TextInput/TextInputBase.js +74 -62
- package/lib-module/ThemeProvider/ThemeProvider.js +5 -4
- package/lib-module/ThemeProvider/useSetTheme.js +6 -3
- package/lib-module/ThemeProvider/useThemeTokens.js +7 -2
- package/lib-module/ThemeProvider/utils/styles.js +48 -41
- package/lib-module/ThemeProvider/utils/theme-tokens.js +32 -20
- package/lib-module/ToggleSwitch/ToggleSwitch.js +90 -74
- package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +37 -35
- package/lib-module/Tooltip/Backdrop.js +6 -13
- package/lib-module/Tooltip/Backdrop.native.js +5 -4
- package/lib-module/Tooltip/Tooltip.js +81 -65
- package/lib-module/Tooltip/getTooltipPosition.js +29 -18
- package/lib-module/TooltipButton/TooltipButton.js +28 -21
- package/lib-module/Typography/Typography.js +35 -31
- package/lib-module/ViewportProvider/ViewportProvider.js +4 -3
- package/lib-module/ViewportProvider/useViewportListener.js +6 -3
- package/lib-module/utils/a11y/semantics.js +4 -1
- package/lib-module/utils/a11y/textSize.js +7 -5
- package/lib-module/utils/animation/useVerticalExpandAnimation.js +47 -20
- package/lib-module/utils/children.js +4 -3
- package/lib-module/utils/input.js +28 -29
- package/lib-module/utils/pressability.js +35 -21
- package/lib-module/utils/props/clickProps.js +2 -1
- package/lib-module/utils/props/componentPropType.js +3 -3
- package/lib-module/utils/props/getPropSelector.js +6 -3
- package/lib-module/utils/props/handlerProps.js +24 -18
- package/lib-module/utils/props/hrefAttrsProp.js +14 -11
- package/lib-module/utils/props/inputSupportsProps.js +15 -12
- package/lib-module/utils/props/linkProps.js +7 -6
- package/lib-module/utils/props/selectSystemProps.js +2 -2
- package/lib-module/utils/props/tokens.js +27 -14
- package/lib-module/utils/ssr.js +5 -2
- package/lib-module/utils/useCopy.js +6 -4
- package/lib-module/utils/useHash.js +2 -1
- package/lib-module/utils/useSpacingScale.js +3 -1
- package/lib-module/utils/useUniqueId.js +3 -2
- package/lib-module/utils/withLinkRouter.js +6 -5
- package/package.json +13 -11
- package/src/ExpandCollapse/Panel.jsx +2 -19
- package/src/List/List.jsx +34 -19
- package/src/List/ListItem.jsx +12 -2
- package/src/Modal/Modal.jsx +2 -1
- package/src/Pagination/Pagination.jsx +3 -0
- package/src/Search/Search.jsx +11 -0
- package/src/Select/Item.native.jsx +0 -7
- package/src/Tabs/Tabs.jsx +24 -2
- package/src/Tabs/TabsItem.jsx +6 -5
- package/src/utils/animation/useVerticalExpandAnimation.js +47 -13
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.resolvePressableTokens = exports.resolvePressableState = exports.getPressHandlersWithArgs = exports.getCursorStyle = void 0;
|
|
7
7
|
|
|
8
8
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
9
9
|
|
|
@@ -30,11 +30,12 @@ const shouldUseCursor = ['checkbox', 'radio', 'switch'];
|
|
|
30
30
|
* @returns
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
|
-
const getCursorStyle =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
const getCursorStyle = _ref => {
|
|
34
|
+
let {
|
|
35
|
+
inactive,
|
|
36
|
+
disabled,
|
|
37
|
+
accessibilityRole
|
|
38
|
+
} = _ref;
|
|
38
39
|
if (_Platform.default.OS !== 'web') return undefined;
|
|
39
40
|
if (inactive || disabled) return staticStyles.notAllowed;
|
|
40
41
|
if (shouldUseCursor.includes(accessibilityRole)) return staticStyles.pointer;
|
|
@@ -58,15 +59,19 @@ const getCursorStyle = ({
|
|
|
58
59
|
|
|
59
60
|
exports.getCursorStyle = getCursorStyle;
|
|
60
61
|
|
|
61
|
-
const resolvePressableState = ({
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
const resolvePressableState = function () {
|
|
63
|
+
let {
|
|
64
|
+
pressed = false,
|
|
65
|
+
focused = false,
|
|
66
|
+
hovered = false
|
|
67
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
68
|
+
let additionalState = arguments.length > 1 ? arguments[1] : undefined;
|
|
69
|
+
return { ...additionalState,
|
|
70
|
+
focus: focused,
|
|
71
|
+
hover: hovered,
|
|
72
|
+
pressed
|
|
73
|
+
};
|
|
74
|
+
};
|
|
70
75
|
/**
|
|
71
76
|
* Takes a UDS `tokens` prop and, if it is a function, resolves it based on a state
|
|
72
77
|
* object passed from the React Native `Pressable` component and optional extra properties.
|
|
@@ -106,14 +111,23 @@ const staticStyles = _StyleSheet.default.create(_Platform.default.select({
|
|
|
106
111
|
*/
|
|
107
112
|
|
|
108
113
|
|
|
109
|
-
const getPressHandlersWithArgs = (
|
|
114
|
+
const getPressHandlersWithArgs = function () {
|
|
115
|
+
let pressableProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
116
|
+
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
110
117
|
// Allow handlers to be passed down for blur, hover, focus, pressIn, etc
|
|
111
|
-
const pressHandlers = Object.fromEntries(Object.entries(_pressProps.default.selectHandlers(pressableProps)).map(
|
|
112
|
-
[key]
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
118
|
+
const pressHandlers = Object.fromEntries(Object.entries(_pressProps.default.selectHandlers(pressableProps)).map(_ref2 => {
|
|
119
|
+
let [key, handler] = _ref2;
|
|
120
|
+
return {
|
|
121
|
+
[key]: function () {
|
|
122
|
+
for (var _len = arguments.length, defaultArgs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
123
|
+
defaultArgs[_key] = arguments[_key];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Pass each handler data on this button and current selection
|
|
127
|
+
handler(...args, ...defaultArgs);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}));
|
|
117
131
|
return pressHandlers;
|
|
118
132
|
};
|
|
119
133
|
|
|
@@ -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
|
}))
|
|
@@ -33,8 +33,8 @@ function componentPropType(passedName) {
|
|
|
33
33
|
const nameInProp = ((_props$propName$type = props[propName].type) === null || _props$propName$type === void 0 ? void 0 : _props$propName$type.displayName) || ((_props$propName$type2 = props[propName].type) === null || _props$propName$type2 === void 0 ? void 0 : _props$propName$type2.name);
|
|
34
34
|
|
|
35
35
|
if (!nameInProp || !passedNames.includes(nameInProp)) {
|
|
36
|
-
const propDescription = nameInProp ?
|
|
37
|
-
return new Error(
|
|
36
|
+
const propDescription = nameInProp ? "Component ".concat(nameInProp) : typeof props[propName];
|
|
37
|
+
return new Error("".concat(componentName, ": ").concat(propDescription, " was passed to `").concat(propName, "` prop; should be ").concat(passedNames.join(' or ')));
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
return undefined;
|
|
@@ -42,7 +42,7 @@ function componentPropType(passedName) {
|
|
|
42
42
|
|
|
43
43
|
const checkRequired = (props, propName, componentName) => {
|
|
44
44
|
if (props[propName] === undefined) {
|
|
45
|
-
return new Error(
|
|
45
|
+
return new Error("The prop `".concat(propName, "` is marked as required in `").concat(componentName, "`, but its value is ").concat(props[propName], "."));
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
return undefined;
|
|
@@ -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
|
|
|
@@ -10,7 +10,7 @@ exports.default = selectSystemProps;
|
|
|
10
10
|
function selectSystemProps(systemPropHelpers) {
|
|
11
11
|
const selectProps = props => systemPropHelpers.reduce((acc, propHelper) => {
|
|
12
12
|
if (typeof (propHelper === null || propHelper === void 0 ? void 0 : propHelper.select) !== 'function') {
|
|
13
|
-
throw new Error(
|
|
13
|
+
throw new Error("An invalid system prop helper has been passed to 'selectSystemProps': prop selector ('.select') is missing in ".concat(propHelper));
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
return { ...acc,
|
|
@@ -20,7 +20,7 @@ function selectSystemProps(systemPropHelpers) {
|
|
|
20
20
|
|
|
21
21
|
const selectedPropTypes = systemPropHelpers.reduce((acc, propHelper) => {
|
|
22
22
|
if (!(propHelper !== null && propHelper !== void 0 && propHelper.types)) {
|
|
23
|
-
throw new Error(
|
|
23
|
+
throw new Error("An invalid system prop helper has been passed to 'selectSystemProps': types selector ('.types') is missing in ".concat(propHelper));
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
return { ...acc,
|
|
@@ -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
|
|
|
@@ -22,7 +22,7 @@ const getTokenNames = componentName => {
|
|
|
22
22
|
const componentTokenSchema = _systemThemeTokens.components[componentName];
|
|
23
23
|
|
|
24
24
|
if (!componentTokenSchema) {
|
|
25
|
-
throw new Error(
|
|
25
|
+
throw new Error("No \"".concat(componentName, "\" tokenKeys in @telus-uds/system-theme-tokens"));
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
return Object.keys(componentTokenSchema);
|
|
@@ -63,7 +63,7 @@ exports.getTokenNames = getTokenNames;
|
|
|
63
63
|
const selectTokens = (specifier, tokens, prefix) => {
|
|
64
64
|
const tokenNames = typeof specifier === 'string' ? getTokenNames(specifier) : specifier;
|
|
65
65
|
const filteredTokens = tokenNames.reduce((validTokens, key) => {
|
|
66
|
-
const prefixedKey = prefix ?
|
|
66
|
+
const prefixedKey = prefix ? "".concat(prefix).concat(key[0].toUpperCase()).concat(key.slice(1)) : key;
|
|
67
67
|
const token = tokens[prefixedKey];
|
|
68
68
|
return token !== undefined ? { ...validTokens,
|
|
69
69
|
[key]: token
|
|
@@ -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;
|
|
@@ -110,6 +110,8 @@ const resolveSpacingOptions = space => {
|
|
|
110
110
|
|
|
111
111
|
|
|
112
112
|
const useSpacingScale = spaceValue => {
|
|
113
|
+
var _spaceValue$space;
|
|
114
|
+
|
|
113
115
|
// In future, may need to consider window height as well as width, particularly for native apps,
|
|
114
116
|
// e.g. to ensure designs don't look lost on large, tall, not-so-wide portrait screens.
|
|
115
117
|
const viewport = (0, _ViewportProvider.useViewport)();
|
|
@@ -119,7 +121,7 @@ const useSpacingScale = spaceValue => {
|
|
|
119
121
|
overridden,
|
|
120
122
|
subtract = 0
|
|
121
123
|
} = resolveSpacingOptions(spaceValue);
|
|
122
|
-
const space = !overridden && ((spaceValue === null || spaceValue === void 0 ? void 0 : spaceValue.space)
|
|
124
|
+
const space = !overridden && ((_spaceValue$space = spaceValue === null || spaceValue === void 0 ? void 0 : spaceValue.space) !== null && _spaceValue$space !== void 0 ? _spaceValue$space : (0, _useResponsiveProp.resolveResponsiveProp)(spaceValue, viewport, 0));
|
|
123
125
|
const {
|
|
124
126
|
size
|
|
125
127
|
} = (0, _ThemeProvider.useThemeTokens)('spacingScale', tokens, variant, {
|
package/lib/utils/useUniqueId.js
CHANGED
|
@@ -9,10 +9,11 @@ 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
|
-
return
|
|
16
|
+
return "".concat(prefix, "-").concat(id);
|
|
16
17
|
});
|
|
17
18
|
return uniqueId;
|
|
18
19
|
}
|
|
@@ -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
|
});
|
|
@@ -6,9 +6,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
6
|
const ScreenReaderContext = /*#__PURE__*/createContext(false);
|
|
7
7
|
const ReducedMotionContext = /*#__PURE__*/createContext(false);
|
|
8
8
|
|
|
9
|
-
const A11yInfoProvider =
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const A11yInfoProvider = _ref => {
|
|
10
|
+
let {
|
|
11
|
+
children
|
|
12
|
+
} = _ref;
|
|
12
13
|
const [reduceMotionEnabled, setReduceMotionEnabled] = useState(false);
|
|
13
14
|
const [screenReaderEnabled, setScreenReaderEnabled] = useState(false);
|
|
14
15
|
useEffect(() => {
|
|
@@ -13,11 +13,12 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
|
|
|
13
13
|
* as a sibling to blocks of text like paragraphs and interactive elements like buttons.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
const A11yText = /*#__PURE__*/forwardRef(({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
const A11yText = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
17
|
+
let {
|
|
18
|
+
text,
|
|
19
|
+
heading,
|
|
20
|
+
...rest
|
|
21
|
+
} = _ref;
|
|
21
22
|
const selectedProps = selectProps({
|
|
22
23
|
// On iOS, needs `accessible` to be true to be focusable without non-a11y content.
|
|
23
24
|
// On Web, `accessible` causes RNW to set attributes that may make the element be treated as a group.
|