@telus-uds/components-base 3.7.1 → 3.8.0
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 +19 -2
- package/lib/cjs/ActivityIndicator/FullScreenIndicator.js +89 -0
- package/lib/cjs/ActivityIndicator/InlineIndicator.js +64 -0
- package/lib/cjs/ActivityIndicator/OverlayIndicator.js +156 -0
- package/lib/cjs/ActivityIndicator/RenderActivityIndicator.js +88 -0
- package/lib/cjs/ActivityIndicator/index.js +91 -23
- package/lib/cjs/ActivityIndicator/shared.js +12 -1
- package/lib/cjs/ActivityIndicator/sharedProptypes.js +67 -0
- package/lib/cjs/Card/Card.js +38 -45
- package/lib/cjs/ExpandCollapseMini/ExpandCollapseMiniControl.js +1 -1
- package/lib/cjs/List/ListItemMark.js +13 -2
- package/lib/cjs/MultiSelectFilter/ModalOverlay.js +12 -3
- package/lib/cjs/MultiSelectFilter/MultiSelectFilter.js +9 -2
- package/lib/cjs/utils/index.js +9 -1
- package/lib/cjs/utils/useDetectOutsideClick.js +39 -0
- package/lib/cjs/utils/useVariants.js +46 -0
- package/lib/esm/ActivityIndicator/FullScreenIndicator.js +82 -0
- package/lib/esm/ActivityIndicator/InlineIndicator.js +57 -0
- package/lib/esm/ActivityIndicator/OverlayIndicator.js +149 -0
- package/lib/esm/ActivityIndicator/RenderActivityIndicator.js +83 -0
- package/lib/esm/ActivityIndicator/index.js +89 -23
- package/lib/esm/ActivityIndicator/shared.js +11 -0
- package/lib/esm/ActivityIndicator/sharedProptypes.js +61 -0
- package/lib/esm/Card/Card.js +38 -45
- package/lib/esm/ExpandCollapseMini/ExpandCollapseMiniControl.js +1 -1
- package/lib/esm/List/ListItemMark.js +13 -2
- package/lib/esm/MultiSelectFilter/ModalOverlay.js +12 -3
- package/lib/esm/MultiSelectFilter/MultiSelectFilter.js +9 -2
- package/lib/esm/utils/index.js +2 -1
- package/lib/esm/utils/useDetectOutsideClick.js +31 -0
- package/lib/esm/utils/useVariants.js +41 -0
- package/lib/package.json +2 -2
- package/package.json +2 -2
- package/src/ActivityIndicator/FullScreenIndicator.jsx +65 -0
- package/src/ActivityIndicator/InlineIndicator.jsx +47 -0
- package/src/ActivityIndicator/OverlayIndicator.jsx +140 -0
- package/src/ActivityIndicator/RenderActivityIndicator.jsx +82 -0
- package/src/ActivityIndicator/index.jsx +113 -32
- package/src/ActivityIndicator/shared.js +11 -0
- package/src/ActivityIndicator/sharedProptypes.js +62 -0
- package/src/Card/Card.jsx +51 -54
- package/src/ExpandCollapseMini/ExpandCollapseMiniControl.jsx +1 -1
- package/src/List/ListItemMark.jsx +18 -2
- package/src/MultiSelectFilter/ModalOverlay.jsx +15 -3
- package/src/MultiSelectFilter/MultiSelectFilter.jsx +9 -2
- package/src/utils/index.js +1 -0
- package/src/utils/useDetectOutsideClick.js +35 -0
- package/src/utils/useVariants.js +44 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
# Change Log - @telus-uds/components-base
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Fri, 23 May 2025 15:12:18 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 3.8.0
|
|
8
|
+
|
|
9
|
+
Fri, 23 May 2025 15:12:18 GMT
|
|
10
|
+
|
|
11
|
+
### Minor changes
|
|
12
|
+
|
|
13
|
+
- `ActivityIndicator`: new `Spinner` functionalities added because it will be deprecated soon (35577399+JoshHC@users.noreply.github.com)
|
|
14
|
+
- `MultiSelectFilter`: close the overlay box when we click outside (sergio.ramirez@telus.com)
|
|
15
|
+
- `Notification`: feature variant added for allium, koodo and pm (35577399+JoshHC@users.noreply.github.com)
|
|
16
|
+
- Bump @telus-uds/system-theme-tokens to v4.6.0
|
|
17
|
+
|
|
18
|
+
### Patches
|
|
19
|
+
|
|
20
|
+
- `List`: fix itemIconColor token override (guillermo.peitzner@telus.com)
|
|
21
|
+
- `ExpandCollapseMini`: quiet variant fixed (35577399+JoshHC@users.noreply.github.com)
|
|
22
|
+
- `Card`: The inability to activate radio selection in `InteractiveCard` has been fixed (35577399+JoshHC@users.noreply.github.com)
|
|
23
|
+
|
|
7
24
|
## 3.7.1
|
|
8
25
|
|
|
9
|
-
Mon, 05 May 2025 21:
|
|
26
|
+
Mon, 05 May 2025 21:30:13 GMT
|
|
10
27
|
|
|
11
28
|
### Patches
|
|
12
29
|
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
9
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
10
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _StackView = _interopRequireDefault(require("../StackView"));
|
|
13
|
+
var _Typography = _interopRequireDefault(require("../Typography"));
|
|
14
|
+
var _RenderActivityIndicator = _interopRequireDefault(require("./RenderActivityIndicator"));
|
|
15
|
+
var _shared = require("./shared");
|
|
16
|
+
var _sharedProptypes = require("./sharedProptypes");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
const FullScreenIndicator = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
20
|
+
let {
|
|
21
|
+
variantProps,
|
|
22
|
+
label,
|
|
23
|
+
labelPosition,
|
|
24
|
+
labelMapping,
|
|
25
|
+
backgroundColor,
|
|
26
|
+
showLabel
|
|
27
|
+
} = _ref;
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
29
|
+
style: [staticStyles.fullScreenOverlay, {
|
|
30
|
+
backgroundColor
|
|
31
|
+
}],
|
|
32
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
|
|
33
|
+
space: showLabel ? _shared.SPACE_WITH_LABEL : _shared.SPACE_WITHOUT_LABEL,
|
|
34
|
+
tokens: {
|
|
35
|
+
alignItems: 'center'
|
|
36
|
+
},
|
|
37
|
+
direction: labelMapping[labelPosition],
|
|
38
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderActivityIndicator.default, {
|
|
39
|
+
...variantProps,
|
|
40
|
+
ref: ref,
|
|
41
|
+
label: label
|
|
42
|
+
}), showLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
43
|
+
children: label
|
|
44
|
+
})]
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
FullScreenIndicator.displayName = 'FullScreenIndicator';
|
|
49
|
+
const staticStyles = _StyleSheet.default.create({
|
|
50
|
+
fullScreenOverlay: {
|
|
51
|
+
..._Platform.default.select({
|
|
52
|
+
web: {
|
|
53
|
+
position: 'fixed',
|
|
54
|
+
top: 0,
|
|
55
|
+
left: 0,
|
|
56
|
+
width: '100vw',
|
|
57
|
+
height: '100vh',
|
|
58
|
+
zIndex: _shared.BACKDROP_Z_INDEX,
|
|
59
|
+
justifyContent: 'center',
|
|
60
|
+
alignItems: 'center'
|
|
61
|
+
},
|
|
62
|
+
default: {
|
|
63
|
+
position: 'absolute',
|
|
64
|
+
top: 0,
|
|
65
|
+
left: 0,
|
|
66
|
+
right: 0,
|
|
67
|
+
bottom: 0,
|
|
68
|
+
justifyContent: 'center',
|
|
69
|
+
alignItems: 'center',
|
|
70
|
+
...(_Platform.default.OS === 'android' ? {
|
|
71
|
+
elevation: 5
|
|
72
|
+
} : {
|
|
73
|
+
zIndex: _shared.BACKDROP_Z_INDEX
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
FullScreenIndicator.propTypes = {
|
|
80
|
+
/**
|
|
81
|
+
* Shared props
|
|
82
|
+
* */
|
|
83
|
+
..._sharedProptypes.activityIndicatorCommonProps,
|
|
84
|
+
/**
|
|
85
|
+
* Background color for overlay
|
|
86
|
+
* */
|
|
87
|
+
backgroundColor: _propTypes.default.string.isRequired
|
|
88
|
+
};
|
|
89
|
+
var _default = exports.default = FullScreenIndicator;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
9
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
10
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _StackView = _interopRequireDefault(require("../StackView"));
|
|
13
|
+
var _Typography = _interopRequireDefault(require("../Typography"));
|
|
14
|
+
var _RenderActivityIndicator = _interopRequireDefault(require("./RenderActivityIndicator"));
|
|
15
|
+
var _sharedProptypes = require("./sharedProptypes");
|
|
16
|
+
var _shared = require("./shared");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
const InlineIndicator = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
20
|
+
let {
|
|
21
|
+
variantProps,
|
|
22
|
+
label,
|
|
23
|
+
labelPosition,
|
|
24
|
+
labelMapping,
|
|
25
|
+
showLabel
|
|
26
|
+
} = _ref;
|
|
27
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
28
|
+
style: staticStyles.container,
|
|
29
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
|
|
30
|
+
space: showLabel ? _shared.SPACE_WITH_LABEL : _shared.SPACE_WITHOUT_LABEL,
|
|
31
|
+
direction: labelMapping[labelPosition],
|
|
32
|
+
tokens: {
|
|
33
|
+
alignItems: 'center'
|
|
34
|
+
},
|
|
35
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderActivityIndicator.default, {
|
|
36
|
+
...variantProps,
|
|
37
|
+
ref: ref,
|
|
38
|
+
label: label
|
|
39
|
+
}), showLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
40
|
+
children: label
|
|
41
|
+
})]
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
InlineIndicator.displayName = 'InlineIndicator';
|
|
46
|
+
const staticStyles = _StyleSheet.default.create({
|
|
47
|
+
container: {
|
|
48
|
+
flexDirection: 'column',
|
|
49
|
+
alignItems: 'center',
|
|
50
|
+
display: _Platform.default.OS === 'web' ? 'inline-flex' : 'flex',
|
|
51
|
+
alignSelf: 'flex-start'
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
InlineIndicator.propTypes = {
|
|
55
|
+
/**
|
|
56
|
+
* Shared props
|
|
57
|
+
* */
|
|
58
|
+
..._sharedProptypes.activityIndicatorCommonProps,
|
|
59
|
+
/**
|
|
60
|
+
* Whether the indicator sits inline with text/other elements
|
|
61
|
+
* */
|
|
62
|
+
inline: _propTypes.default.bool
|
|
63
|
+
};
|
|
64
|
+
var _default = exports.default = InlineIndicator;
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
9
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
10
|
+
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _StackView = _interopRequireDefault(require("../StackView"));
|
|
13
|
+
var _Typography = _interopRequireDefault(require("../Typography"));
|
|
14
|
+
var _RenderActivityIndicator = _interopRequireDefault(require("./RenderActivityIndicator"));
|
|
15
|
+
var _shared = require("./shared");
|
|
16
|
+
var _sharedProptypes = require("./sharedProptypes");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
const recursiveMap = (nodeChildren, fn) => _react.default.Children.map(nodeChildren, child => {
|
|
20
|
+
if (! /*#__PURE__*/_react.default.isValidElement(child)) return child;
|
|
21
|
+
if (child.props?.children) {
|
|
22
|
+
return fn(/*#__PURE__*/_react.default.cloneElement(child, {
|
|
23
|
+
children: recursiveMap(child.props.children, fn)
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
return fn(child);
|
|
27
|
+
});
|
|
28
|
+
const OverlayIndicator = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
29
|
+
let {
|
|
30
|
+
variantProps,
|
|
31
|
+
label,
|
|
32
|
+
labelPosition,
|
|
33
|
+
labelMapping,
|
|
34
|
+
children,
|
|
35
|
+
inline,
|
|
36
|
+
showLabel,
|
|
37
|
+
isActive = true
|
|
38
|
+
} = _ref;
|
|
39
|
+
const safeChildren = _Platform.default.OS === 'web' && isActive ? recursiveMap(children, c => /*#__PURE__*/_react.default.isValidElement(c) ? /*#__PURE__*/_react.default.cloneElement(c, {
|
|
40
|
+
role: 'presentation'
|
|
41
|
+
}) : c) : children;
|
|
42
|
+
|
|
43
|
+
// inline + children
|
|
44
|
+
if (inline && children) {
|
|
45
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
46
|
+
style: [staticStyles.container, _Platform.default.OS === 'web' && staticStyles.inlineContainer],
|
|
47
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
48
|
+
style: staticStyles.backdropContainer,
|
|
49
|
+
children: safeChildren
|
|
50
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
51
|
+
style: staticStyles.buttonOverlaySpinner,
|
|
52
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderActivityIndicator.default, {
|
|
53
|
+
...variantProps,
|
|
54
|
+
ref: ref,
|
|
55
|
+
label: label
|
|
56
|
+
})
|
|
57
|
+
})]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// overlay
|
|
62
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
63
|
+
style: staticStyles.container,
|
|
64
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
65
|
+
style: staticStyles.backdropContainer,
|
|
66
|
+
children: safeChildren
|
|
67
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
68
|
+
style: [staticStyles.overlayContainer, _Platform.default.OS === 'web' && staticStyles.webOverlayContainer],
|
|
69
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
|
|
70
|
+
space: showLabel ? _shared.SPACE_WITH_LABEL : _shared.SPACE_WITHOUT_LABEL,
|
|
71
|
+
tokens: {
|
|
72
|
+
alignItems: 'center'
|
|
73
|
+
},
|
|
74
|
+
direction: labelMapping[labelPosition],
|
|
75
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderActivityIndicator.default, {
|
|
76
|
+
...variantProps,
|
|
77
|
+
ref: ref,
|
|
78
|
+
label: label
|
|
79
|
+
}), showLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
80
|
+
children: label
|
|
81
|
+
})]
|
|
82
|
+
})
|
|
83
|
+
})]
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
OverlayIndicator.displayName = 'OverlayIndicator';
|
|
87
|
+
const staticStyles = _StyleSheet.default.create({
|
|
88
|
+
container: {
|
|
89
|
+
position: 'relative'
|
|
90
|
+
},
|
|
91
|
+
inlineContainer: {
|
|
92
|
+
display: 'inline-flex'
|
|
93
|
+
},
|
|
94
|
+
backdropContainer: {
|
|
95
|
+
opacity: _shared.BACKDROP_OPACITY
|
|
96
|
+
},
|
|
97
|
+
overlayContainer: {
|
|
98
|
+
position: 'absolute',
|
|
99
|
+
top: '50%',
|
|
100
|
+
left: '50%',
|
|
101
|
+
..._Platform.default.select({
|
|
102
|
+
ios: {
|
|
103
|
+
zIndex: _shared.BACKDROP_Z_INDEX
|
|
104
|
+
},
|
|
105
|
+
android: {
|
|
106
|
+
elevation: 5
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
},
|
|
110
|
+
webOverlayContainer: {
|
|
111
|
+
transform: [{
|
|
112
|
+
translateX: '-50%'
|
|
113
|
+
}, {
|
|
114
|
+
translateY: '-50%'
|
|
115
|
+
}],
|
|
116
|
+
zIndex: _shared.BACKDROP_Z_INDEX
|
|
117
|
+
},
|
|
118
|
+
buttonOverlaySpinner: {
|
|
119
|
+
position: 'absolute',
|
|
120
|
+
top: '50%',
|
|
121
|
+
left: '50%',
|
|
122
|
+
..._Platform.default.select({
|
|
123
|
+
web: {
|
|
124
|
+
transform: 'translate(-50%, -50%)',
|
|
125
|
+
zIndex: _shared.BACKDROP_Z_INDEX
|
|
126
|
+
},
|
|
127
|
+
default: {
|
|
128
|
+
transform: [{
|
|
129
|
+
translateX: -0.5
|
|
130
|
+
}, {
|
|
131
|
+
translateY: -0.5
|
|
132
|
+
}],
|
|
133
|
+
zIndex: _shared.BACKDROP_Z_INDEX
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
OverlayIndicator.propTypes = {
|
|
139
|
+
/**
|
|
140
|
+
* Shared props
|
|
141
|
+
* */
|
|
142
|
+
..._sharedProptypes.activityIndicatorCommonProps,
|
|
143
|
+
/**
|
|
144
|
+
* Background color for overlay
|
|
145
|
+
* */
|
|
146
|
+
inline: _propTypes.default.bool,
|
|
147
|
+
/**
|
|
148
|
+
* Children on which the overlay is drawn
|
|
149
|
+
* */
|
|
150
|
+
children: _propTypes.default.node,
|
|
151
|
+
/**
|
|
152
|
+
* Controls whether the overlay is active and should apply the presentation role
|
|
153
|
+
* */
|
|
154
|
+
isActive: _propTypes.default.bool
|
|
155
|
+
};
|
|
156
|
+
var _default = exports.default = OverlayIndicator;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Spinner = _interopRequireDefault(require("./Spinner"));
|
|
10
|
+
var _Dots = _interopRequireDefault(require("./Dots"));
|
|
11
|
+
var _shared = require("./shared");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
/**
|
|
15
|
+
* Return <Dots/> or <Spinner/> based on `variant?.dots`.
|
|
16
|
+
* Reused in all the variants of the component.
|
|
17
|
+
*/const RenderActivityIndicator = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
18
|
+
let {
|
|
19
|
+
variant = {},
|
|
20
|
+
dotSize,
|
|
21
|
+
size,
|
|
22
|
+
color,
|
|
23
|
+
indicatorBackgroundColor,
|
|
24
|
+
thickness,
|
|
25
|
+
label,
|
|
26
|
+
isStatic
|
|
27
|
+
} = _ref;
|
|
28
|
+
const {
|
|
29
|
+
dots,
|
|
30
|
+
style
|
|
31
|
+
} = variant || {};
|
|
32
|
+
const isDots = dots === true || style === _shared.DOTS_STYLE;
|
|
33
|
+
return isDots ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dots.default, {
|
|
34
|
+
ref: ref,
|
|
35
|
+
size: dotSize,
|
|
36
|
+
color: color,
|
|
37
|
+
indicatorBackgroundColor: indicatorBackgroundColor,
|
|
38
|
+
label: label,
|
|
39
|
+
isStatic: isStatic
|
|
40
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
|
|
41
|
+
ref: ref,
|
|
42
|
+
size: size,
|
|
43
|
+
color: color,
|
|
44
|
+
indicatorBackgroundColor: indicatorBackgroundColor,
|
|
45
|
+
thickness: thickness,
|
|
46
|
+
label: label,
|
|
47
|
+
isStatic: isStatic
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
RenderActivityIndicator.displayName = 'RenderActivityIndicator';
|
|
51
|
+
RenderActivityIndicator.propTypes = {
|
|
52
|
+
/**
|
|
53
|
+
* ActivityIndicator variants
|
|
54
|
+
* */
|
|
55
|
+
variant: _propTypes.default.shape({
|
|
56
|
+
dots: _propTypes.default.bool,
|
|
57
|
+
style: _propTypes.default.oneOf([_shared.DOTS_STYLE])
|
|
58
|
+
}),
|
|
59
|
+
/**
|
|
60
|
+
* Size of the dots
|
|
61
|
+
* */
|
|
62
|
+
dotSize: _propTypes.default.number,
|
|
63
|
+
/**
|
|
64
|
+
* Size of the spinner
|
|
65
|
+
* */
|
|
66
|
+
size: _propTypes.default.number,
|
|
67
|
+
/**
|
|
68
|
+
* Primary color
|
|
69
|
+
* */
|
|
70
|
+
color: _propTypes.default.string,
|
|
71
|
+
/**
|
|
72
|
+
* Secondary color (background) of the indicator
|
|
73
|
+
* */
|
|
74
|
+
indicatorBackgroundColor: _propTypes.default.string,
|
|
75
|
+
/**
|
|
76
|
+
* Thickness of the indicator
|
|
77
|
+
* */
|
|
78
|
+
thickness: _propTypes.default.number,
|
|
79
|
+
/**
|
|
80
|
+
* Label for the ActivityIndicator
|
|
81
|
+
* */
|
|
82
|
+
label: _propTypes.default.string,
|
|
83
|
+
/**
|
|
84
|
+
* if true, there's no animation for ActivityIndicator
|
|
85
|
+
* */
|
|
86
|
+
isStatic: _propTypes.default.bool
|
|
87
|
+
};
|
|
88
|
+
var _default = exports.default = RenderActivityIndicator;
|
|
@@ -6,45 +6,85 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
10
|
+
var _utils = require("../utils");
|
|
9
11
|
var _ThemeProvider = require("../ThemeProvider");
|
|
10
12
|
var _props = require("../utils/props");
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
+
var _FullScreenIndicator = _interopRequireDefault(require("./FullScreenIndicator"));
|
|
14
|
+
var _OverlayIndicator = _interopRequireDefault(require("./OverlayIndicator"));
|
|
15
|
+
var _InlineIndicator = _interopRequireDefault(require("./InlineIndicator"));
|
|
13
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
const labelMapping = {
|
|
19
|
+
top: 'column-reverse',
|
|
20
|
+
bottom: 'column',
|
|
21
|
+
left: 'row-reverse',
|
|
22
|
+
right: 'row'
|
|
23
|
+
};
|
|
24
|
+
|
|
15
25
|
/**
|
|
16
26
|
* `ActivityIndicator` renders a visual loading state.
|
|
17
27
|
* It does not handle positioning or layout of that visual loader.
|
|
18
|
-
*/
|
|
28
|
+
*/
|
|
29
|
+
const ActivityIndicator = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
19
30
|
let {
|
|
20
31
|
variant,
|
|
21
32
|
tokens,
|
|
22
33
|
label,
|
|
23
|
-
|
|
34
|
+
labelPosition = 'bottom',
|
|
35
|
+
showLabel = true,
|
|
36
|
+
inline = false,
|
|
37
|
+
fullScreen = false,
|
|
38
|
+
overlay = false,
|
|
39
|
+
isStatic = false,
|
|
40
|
+
children,
|
|
41
|
+
fullScreenBackgroundColor
|
|
24
42
|
} = _ref;
|
|
25
43
|
const {
|
|
26
44
|
size,
|
|
27
45
|
dotSize,
|
|
28
46
|
color,
|
|
29
47
|
indicatorBackgroundColor,
|
|
48
|
+
fullScreenOverlayBackground,
|
|
30
49
|
thickness
|
|
31
50
|
} = (0, _ThemeProvider.useThemeTokens)('ActivityIndicator', tokens, variant);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
(0, _utils.useScrollBlocking)([_Platform.default.OS === 'web' && fullScreen]);
|
|
52
|
+
const variantProps = {
|
|
53
|
+
variant,
|
|
54
|
+
dotSize,
|
|
55
|
+
size,
|
|
56
|
+
color,
|
|
57
|
+
indicatorBackgroundColor,
|
|
58
|
+
thickness,
|
|
59
|
+
isStatic
|
|
60
|
+
};
|
|
61
|
+
const visibleLabel = showLabel && !!label;
|
|
62
|
+
const commonProps = {
|
|
63
|
+
ref,
|
|
64
|
+
variantProps,
|
|
65
|
+
label,
|
|
66
|
+
labelPosition,
|
|
67
|
+
labelMapping,
|
|
68
|
+
showLabel: visibleLabel
|
|
69
|
+
};
|
|
70
|
+
switch (true) {
|
|
71
|
+
case fullScreen:
|
|
72
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FullScreenIndicator.default, {
|
|
73
|
+
...commonProps,
|
|
74
|
+
backgroundColor: fullScreenBackgroundColor || fullScreenOverlayBackground
|
|
75
|
+
});
|
|
76
|
+
case overlay:
|
|
77
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_OverlayIndicator.default, {
|
|
78
|
+
...commonProps,
|
|
79
|
+
inline: inline,
|
|
80
|
+
isActive: overlay,
|
|
81
|
+
children: children
|
|
82
|
+
});
|
|
83
|
+
default:
|
|
84
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InlineIndicator.default, {
|
|
85
|
+
...commonProps
|
|
86
|
+
});
|
|
87
|
+
}
|
|
48
88
|
});
|
|
49
89
|
ActivityIndicator.displayName = 'ActivityIndicator';
|
|
50
90
|
ActivityIndicator.propTypes = {
|
|
@@ -53,10 +93,38 @@ ActivityIndicator.propTypes = {
|
|
|
53
93
|
/**
|
|
54
94
|
* A visually hidden accessible label describing the action taking place
|
|
55
95
|
*/
|
|
56
|
-
label: _propTypes.default.string
|
|
96
|
+
label: _propTypes.default.string,
|
|
97
|
+
/**
|
|
98
|
+
* If true, it should render a static ActivityIndicator
|
|
99
|
+
*/
|
|
100
|
+
isStatic: _propTypes.default.bool,
|
|
101
|
+
/**
|
|
102
|
+
* Position of the label relative to ActivityIndicator
|
|
103
|
+
*/
|
|
104
|
+
labelPosition: _propTypes.default.oneOf(['top', 'bottom', 'left', 'right']),
|
|
105
|
+
/**
|
|
106
|
+
* show or hide the label
|
|
107
|
+
*/
|
|
108
|
+
showLabel: _propTypes.default.bool,
|
|
109
|
+
/**
|
|
110
|
+
* If true, the ActivityIndicator will be displayed in full screen mode
|
|
111
|
+
*/
|
|
112
|
+
fullScreen: _propTypes.default.bool,
|
|
113
|
+
/**
|
|
114
|
+
* If true, the ActivityIndicator will be displayed inline
|
|
115
|
+
*/
|
|
116
|
+
inline: _propTypes.default.bool,
|
|
117
|
+
/**
|
|
118
|
+
* If true, the ActivityIndicator will be displayed in overlay mode
|
|
119
|
+
*/
|
|
120
|
+
overlay: _propTypes.default.bool,
|
|
121
|
+
/**
|
|
122
|
+
* Children to be rendered inside ActivityIndicator
|
|
123
|
+
*/
|
|
124
|
+
children: _propTypes.default.node,
|
|
57
125
|
/**
|
|
58
|
-
*
|
|
126
|
+
* Background color of the full screen overlay
|
|
59
127
|
*/
|
|
60
|
-
|
|
128
|
+
fullScreenBackgroundColor: _propTypes.default.string
|
|
61
129
|
};
|
|
62
130
|
var _default = exports.default = ActivityIndicator;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.propTypes = exports.UNDERSHOOT_FACTOR = exports.SVG_SIZE = exports.SVG_RADIUS = exports.SVG_CIRCUMFERENCE = exports.SVG_CENTER = exports.SPINNER_ROTATION_DEGREES = exports.SPINNER_RADIUS = exports.SPINNER_KEYTIMES = exports.SPINNER_DASHOFFSET_FACTOR = exports.SPINNER_DASHARRAY_MIN = exports.SPINNER_DASHARRAY_MAX = exports.SPINNER_DASHARRAY_HALF = exports.ROTATION_TRANSFORM = exports.OVERSHOOT_FACTOR = exports.DURATION = exports.DOT_FADEOUT_OUTPUT_RANGE = exports.DOT_FADEOUT_INPUT_RANGE = exports.DOTS_TOTAL_ANIMATION_DURATION = exports.DOTS_SPACING_X = exports.DOTS_PADDING_FACTOR = exports.DOTS_JUMP_HEIGHT_FACTOR = exports.DOTS_FADEOUT_VALUES = exports.DOTS_FADEOUT_KEYTIMES = exports.DOTS_BASE_Y_FACTOR = exports.DOTS_ANIMATION_DURATION = exports.DOT3_COLOR_KEYTIMES = exports.DOT3_ANIMATION_KEYTIMES = exports.DOT3_ANIMATION_INPUT_RANGE = exports.DOT2_COLOR_KEYTIMES = exports.DOT2_ANIMATION_KEYTIMES = exports.DOT2_ANIMATION_INPUT_RANGE = exports.DOT1_COLOR_KEYTIMES = exports.DOT1_ANIMATION_KEYTIMES = exports.DOT1_ANIMATION_INPUT_RANGE = exports.BOUNCY_CURVE = void 0;
|
|
6
|
+
exports.propTypes = exports.UNDERSHOOT_FACTOR = exports.SVG_SIZE = exports.SVG_RADIUS = exports.SVG_CIRCUMFERENCE = exports.SVG_CENTER = exports.SPINNER_ROTATION_DEGREES = exports.SPINNER_RADIUS = exports.SPINNER_KEYTIMES = exports.SPINNER_DASHOFFSET_FACTOR = exports.SPINNER_DASHARRAY_MIN = exports.SPINNER_DASHARRAY_MAX = exports.SPINNER_DASHARRAY_HALF = exports.SPACE_WITH_LABEL = exports.SPACE_WITHOUT_LABEL = exports.ROTATION_TRANSFORM = exports.OVERSHOOT_FACTOR = exports.DURATION = exports.DOT_FADEOUT_OUTPUT_RANGE = exports.DOT_FADEOUT_INPUT_RANGE = exports.DOTS_TOTAL_ANIMATION_DURATION = exports.DOTS_STYLE = exports.DOTS_SPACING_X = exports.DOTS_PADDING_FACTOR = exports.DOTS_JUMP_HEIGHT_FACTOR = exports.DOTS_FADEOUT_VALUES = exports.DOTS_FADEOUT_KEYTIMES = exports.DOTS_BASE_Y_FACTOR = exports.DOTS_ANIMATION_DURATION = exports.DOT3_COLOR_KEYTIMES = exports.DOT3_ANIMATION_KEYTIMES = exports.DOT3_ANIMATION_INPUT_RANGE = exports.DOT2_COLOR_KEYTIMES = exports.DOT2_ANIMATION_KEYTIMES = exports.DOT2_ANIMATION_INPUT_RANGE = exports.DOT1_COLOR_KEYTIMES = exports.DOT1_ANIMATION_KEYTIMES = exports.DOT1_ANIMATION_INPUT_RANGE = exports.BOUNCY_CURVE = exports.BACKDROP_Z_INDEX = exports.BACKDROP_OPACITY = void 0;
|
|
7
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
// Spinner
|
|
@@ -56,6 +56,17 @@ const DOT_FADEOUT_OUTPUT_RANGE = exports.DOT_FADEOUT_OUTPUT_RANGE = [1, 1, 0, 0]
|
|
|
56
56
|
const DOT1_ANIMATION_INPUT_RANGE = exports.DOT1_ANIMATION_INPUT_RANGE = [0, 0.1, 0.2, 1];
|
|
57
57
|
const DOT2_ANIMATION_INPUT_RANGE = exports.DOT2_ANIMATION_INPUT_RANGE = [0, 0.3, 0.4, 0.5, 1];
|
|
58
58
|
const DOT3_ANIMATION_INPUT_RANGE = exports.DOT3_ANIMATION_INPUT_RANGE = [0, 0.6, 0.7, 0.8, 1];
|
|
59
|
+
|
|
60
|
+
// Backdrop
|
|
61
|
+
const BACKDROP_OPACITY = exports.BACKDROP_OPACITY = 0.06;
|
|
62
|
+
const BACKDROP_Z_INDEX = exports.BACKDROP_Z_INDEX = 1400;
|
|
63
|
+
|
|
64
|
+
// Space
|
|
65
|
+
const SPACE_WITH_LABEL = exports.SPACE_WITH_LABEL = 3;
|
|
66
|
+
const SPACE_WITHOUT_LABEL = exports.SPACE_WITHOUT_LABEL = 0;
|
|
67
|
+
|
|
68
|
+
// Style
|
|
69
|
+
const DOTS_STYLE = exports.DOTS_STYLE = 'dots';
|
|
59
70
|
const propTypes = exports.propTypes = {
|
|
60
71
|
color: _propTypes.default.string.isRequired,
|
|
61
72
|
baseColor: _propTypes.default.string,
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.activityIndicatorVariantProps = exports.activityIndicatorCommonProps = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
/**
|
|
10
|
+
* PropTypes for the 3 variants of the ActivityIndicator:
|
|
11
|
+
* - InlineIndicator
|
|
12
|
+
* - OverlayIndicator
|
|
13
|
+
* - FullScreenIndicator
|
|
14
|
+
*/
|
|
15
|
+
const activityIndicatorVariantProps = exports.activityIndicatorVariantProps = _propTypes.default.shape({
|
|
16
|
+
/**
|
|
17
|
+
* Indicates the variant style for the ActivityIndicator
|
|
18
|
+
* */
|
|
19
|
+
variant: _propTypes.default.object,
|
|
20
|
+
/**
|
|
21
|
+
* Size of the dots
|
|
22
|
+
* */
|
|
23
|
+
dotSize: _propTypes.default.number,
|
|
24
|
+
/**
|
|
25
|
+
* Size of the ActivityIndicator Spinner
|
|
26
|
+
* */
|
|
27
|
+
size: _propTypes.default.number,
|
|
28
|
+
/**
|
|
29
|
+
* Primary color (Spinner)
|
|
30
|
+
* */
|
|
31
|
+
color: _propTypes.default.string,
|
|
32
|
+
/**
|
|
33
|
+
* Secondary color (background) of the indicator
|
|
34
|
+
* */
|
|
35
|
+
indicatorBackgroundColor: _propTypes.default.string,
|
|
36
|
+
/**
|
|
37
|
+
* Thickness of the ActivityIndicator Spinner
|
|
38
|
+
* */
|
|
39
|
+
thickness: _propTypes.default.number,
|
|
40
|
+
/**
|
|
41
|
+
* Indicates if the ActivityIndicator is static
|
|
42
|
+
* (not animated)
|
|
43
|
+
* */
|
|
44
|
+
isStatic: _propTypes.default.bool
|
|
45
|
+
}).isRequired;
|
|
46
|
+
const activityIndicatorCommonProps = exports.activityIndicatorCommonProps = {
|
|
47
|
+
/**
|
|
48
|
+
* Props used by RenderActivityIndicator
|
|
49
|
+
* */
|
|
50
|
+
variantProps: activityIndicatorVariantProps,
|
|
51
|
+
/**
|
|
52
|
+
* Shows or hide the label
|
|
53
|
+
* */
|
|
54
|
+
showLabel: _propTypes.default.bool,
|
|
55
|
+
/**
|
|
56
|
+
* A visually hidden accessible label describing the action taking place
|
|
57
|
+
*/
|
|
58
|
+
label: _propTypes.default.string,
|
|
59
|
+
/**
|
|
60
|
+
* Position of the label relative to ActivityIndicator
|
|
61
|
+
*/
|
|
62
|
+
labelPosition: _propTypes.default.oneOf(['top', 'bottom', 'left', 'right']),
|
|
63
|
+
/**
|
|
64
|
+
* Map of flex-direction position for label
|
|
65
|
+
* */
|
|
66
|
+
labelMapping: _propTypes.default.object.isRequired
|
|
67
|
+
};
|