@telus-uds/components-base 1.93.0 → 1.95.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 +32 -3
- package/lib/Autocomplete/Autocomplete.js +2 -1
- package/lib/Button/ButtonGroup.js +17 -1
- package/lib/Card/Card.js +12 -0
- package/lib/Card/CardBase.js +37 -2
- package/lib/Carousel/Carousel.js +55 -13
- package/lib/Carousel/CarouselItem/CarouselItem.js +86 -12
- package/lib/DownloadApp/DownloadApp.js +168 -0
- package/lib/DownloadApp/dictionary.js +17 -0
- package/lib/DownloadApp/index.js +10 -0
- package/lib/Fieldset/FieldsetContainer.js +7 -2
- package/lib/Fieldset/FieldsetContainer.native.js +4 -1
- package/lib/FileUpload/FileUpload.js +336 -0
- package/lib/FileUpload/NotificationContent.js +60 -0
- package/lib/FileUpload/dictionary.js +47 -0
- package/lib/FileUpload/index.js +10 -0
- package/lib/Icon/IconText.js +19 -2
- package/lib/Link/LinkBase.js +2 -2
- package/lib/Link/TextButton.js +7 -17
- package/lib/Modal/Modal.js +1 -1
- package/lib/Modal/ModalContent.js +12 -6
- package/lib/MultiSelectFilter/ModalOverlay.js +49 -30
- package/lib/MultiSelectFilter/MultiSelectFilter.js +170 -131
- package/lib/Notification/Notification.js +11 -2
- package/lib/Status/Status.js +9 -4
- package/lib/TabBar/TabBar.js +133 -0
- package/lib/TabBar/TabBarItem.js +184 -0
- package/lib/TabBar/index.js +10 -0
- package/lib/TextInput/TextInputBase.js +2 -1
- package/lib/Tooltip/getTooltipPosition.js +8 -9
- package/lib/index.js +24 -0
- package/lib/utils/convertFromMegaByteToByte.js +16 -0
- package/lib/utils/formatImageSource.js +34 -0
- package/lib/utils/index.js +17 -1
- package/lib-module/Autocomplete/Autocomplete.js +2 -1
- package/lib-module/Button/ButtonGroup.js +17 -1
- package/lib-module/Card/Card.js +13 -1
- package/lib-module/Card/CardBase.js +38 -3
- package/lib-module/Carousel/Carousel.js +55 -13
- package/lib-module/Carousel/CarouselItem/CarouselItem.js +86 -12
- package/lib-module/DownloadApp/DownloadApp.js +160 -0
- package/lib-module/DownloadApp/dictionary.js +10 -0
- package/lib-module/DownloadApp/index.js +2 -0
- package/lib-module/Fieldset/FieldsetContainer.js +7 -2
- package/lib-module/Fieldset/FieldsetContainer.native.js +4 -1
- package/lib-module/FileUpload/FileUpload.js +329 -0
- package/lib-module/FileUpload/NotificationContent.js +55 -0
- package/lib-module/FileUpload/dictionary.js +40 -0
- package/lib-module/FileUpload/index.js +2 -0
- package/lib-module/Icon/IconText.js +19 -2
- package/lib-module/Link/LinkBase.js +2 -2
- package/lib-module/Link/TextButton.js +7 -17
- package/lib-module/Modal/Modal.js +1 -1
- package/lib-module/Modal/ModalContent.js +12 -6
- package/lib-module/MultiSelectFilter/ModalOverlay.js +49 -30
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +171 -132
- package/lib-module/Notification/Notification.js +11 -2
- package/lib-module/Status/Status.js +9 -4
- package/lib-module/TabBar/TabBar.js +125 -0
- package/lib-module/TabBar/TabBarItem.js +177 -0
- package/lib-module/TabBar/index.js +2 -0
- package/lib-module/TextInput/TextInputBase.js +2 -1
- package/lib-module/Tooltip/getTooltipPosition.js +8 -9
- package/lib-module/index.js +3 -0
- package/lib-module/utils/convertFromMegaByteToByte.js +10 -0
- package/lib-module/utils/formatImageSource.js +27 -0
- package/lib-module/utils/index.js +3 -1
- package/package.json +4 -3
- package/src/Autocomplete/Autocomplete.jsx +2 -1
- package/src/Button/ButtonGroup.jsx +9 -1
- package/src/Card/Card.jsx +18 -2
- package/src/Card/CardBase.jsx +47 -12
- package/src/Carousel/Carousel.jsx +59 -13
- package/src/Carousel/CarouselItem/CarouselItem.jsx +94 -9
- package/src/DownloadApp/DownloadApp.jsx +165 -0
- package/src/DownloadApp/dictionary.js +10 -0
- package/src/DownloadApp/index.js +3 -0
- package/src/Fieldset/FieldsetContainer.jsx +4 -3
- package/src/Fieldset/FieldsetContainer.native.jsx +9 -6
- package/src/FileUpload/FileUpload.jsx +396 -0
- package/src/FileUpload/NotificationContent.jsx +44 -0
- package/src/FileUpload/dictionary.js +40 -0
- package/src/FileUpload/index.js +3 -0
- package/src/Icon/IconText.jsx +21 -4
- package/src/Link/LinkBase.jsx +2 -2
- package/src/Link/TextButton.jsx +10 -17
- package/src/Modal/Modal.jsx +1 -1
- package/src/Modal/ModalContent.jsx +8 -3
- package/src/MultiSelectFilter/ModalOverlay.jsx +44 -18
- package/src/MultiSelectFilter/MultiSelectFilter.jsx +188 -126
- package/src/Notification/Notification.jsx +12 -4
- package/src/Status/Status.jsx +15 -4
- package/src/TabBar/TabBar.jsx +123 -0
- package/src/TabBar/TabBarItem.jsx +149 -0
- package/src/TabBar/index.js +3 -0
- package/src/TextInput/TextInputBase.jsx +1 -1
- package/src/Tooltip/getTooltipPosition.js +11 -12
- package/src/index.js +3 -0
- package/src/utils/convertFromMegaByteToByte.js +11 -0
- package/src/utils/formatImageSource.js +29 -0
- package/src/utils/index.js +2 -0
|
@@ -8,6 +8,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
10
10
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
11
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
11
12
|
var _portal = require("@gorhom/portal");
|
|
12
13
|
var _utils = require("../utils");
|
|
13
14
|
var _ViewportProvider = require("../ViewportProvider");
|
|
@@ -21,10 +22,32 @@ const staticStyles = _StyleSheet.default.create({
|
|
|
21
22
|
positioner: {
|
|
22
23
|
flex: 1,
|
|
23
24
|
// Grow to maxWidth when possible, shrink when not possible
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
zIndex: 10000,
|
|
26
|
+
// Position on top of all the other overlays, including backdrops and modals,
|
|
27
|
+
elevation: 10000,
|
|
28
|
+
// Position on top of all the other overlays, including backdrops and modals,
|
|
29
|
+
borderRadius: 4,
|
|
30
|
+
..._Platform.default.select({
|
|
31
|
+
web: {
|
|
32
|
+
boxShadow: 'rgba(0, 0, 0, 0.1) 0px 4px 8px 0px'
|
|
33
|
+
},
|
|
34
|
+
default: {
|
|
35
|
+
shadowColor: 'rgba(0, 0, 0, 0.1)',
|
|
36
|
+
shadowOffset: {
|
|
37
|
+
width: 0,
|
|
38
|
+
height: 4
|
|
39
|
+
},
|
|
40
|
+
shadowOpacity: 1,
|
|
41
|
+
shadowRadius: 8
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
},
|
|
45
|
+
card: {
|
|
46
|
+
paddingLeft: 0,
|
|
47
|
+
paddingRight: 0,
|
|
48
|
+
paddingTop: 0,
|
|
49
|
+
paddingBottom: 0
|
|
26
50
|
},
|
|
27
|
-
|
|
28
51
|
closeButtonContainer: {
|
|
29
52
|
position: 'absolute',
|
|
30
53
|
top: 0,
|
|
@@ -37,6 +60,17 @@ const staticStyles = _StyleSheet.default.create({
|
|
|
37
60
|
opacity: 0
|
|
38
61
|
}
|
|
39
62
|
});
|
|
63
|
+
const selectContainerStyle = (enableFullscreen, themeTokens) => ({
|
|
64
|
+
borderColor: themeTokens.borderColor,
|
|
65
|
+
..._Platform.default.select({
|
|
66
|
+
web: {
|
|
67
|
+
position: enableFullscreen ? 'fixed' : 'absolute'
|
|
68
|
+
},
|
|
69
|
+
default: {
|
|
70
|
+
position: 'absolute'
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
});
|
|
40
74
|
const selectCloseButtonContainerStyles = _ref => {
|
|
41
75
|
let {
|
|
42
76
|
paddingRight,
|
|
@@ -47,20 +81,7 @@ const selectCloseButtonContainerStyles = _ref => {
|
|
|
47
81
|
paddingTop
|
|
48
82
|
};
|
|
49
83
|
};
|
|
50
|
-
const
|
|
51
|
-
let {
|
|
52
|
-
paddingTop,
|
|
53
|
-
paddingLeft,
|
|
54
|
-
paddingRight
|
|
55
|
-
} = _ref2;
|
|
56
|
-
return {
|
|
57
|
-
paddingBottom: 35,
|
|
58
|
-
paddingTop,
|
|
59
|
-
paddingLeft,
|
|
60
|
-
paddingRight
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
const ModalOverlay = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
|
|
84
|
+
const ModalOverlay = /*#__PURE__*/_react.default.forwardRef((_ref2, ref) => {
|
|
64
85
|
let {
|
|
65
86
|
children,
|
|
66
87
|
isReady = false,
|
|
@@ -74,22 +95,19 @@ const ModalOverlay = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
|
|
|
74
95
|
variant,
|
|
75
96
|
tokens,
|
|
76
97
|
copy,
|
|
77
|
-
onClose
|
|
78
|
-
|
|
98
|
+
onClose,
|
|
99
|
+
enableFullscreen = false
|
|
100
|
+
} = _ref2;
|
|
79
101
|
const viewport = (0, _ViewportProvider.useViewport)();
|
|
80
102
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Modal', tokens, variant, {
|
|
81
103
|
viewport,
|
|
82
104
|
maxWidth: false
|
|
83
105
|
});
|
|
84
106
|
const containerWidthHeight = {
|
|
85
|
-
minWidth,
|
|
86
|
-
minHeight,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}),
|
|
90
|
-
...(maxHeight && maxHeightSize && {
|
|
91
|
-
maxHeight: maxHeightSize
|
|
92
|
-
})
|
|
107
|
+
minWidth: tokens.maxWidth ? maxWidthSize : minWidth,
|
|
108
|
+
minHeight: maxHeight ? maxHeightSize : minHeight,
|
|
109
|
+
maxWidth: maxWidthSize,
|
|
110
|
+
maxHeight: maxHeightSize
|
|
93
111
|
};
|
|
94
112
|
const {
|
|
95
113
|
closeIcon: CloseIconComponent
|
|
@@ -103,9 +121,9 @@ const ModalOverlay = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
|
|
|
103
121
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
104
122
|
ref: ref,
|
|
105
123
|
onLayout: onLayout,
|
|
106
|
-
style: [overlaidPosition, containerWidthHeight, staticStyles.positioner, !isReady && staticStyles.hidden],
|
|
124
|
+
style: [overlaidPosition, containerWidthHeight, staticStyles.positioner, !isReady && staticStyles.hidden, selectContainerStyle(enableFullscreen, themeTokens)],
|
|
107
125
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Card.default, {
|
|
108
|
-
tokens:
|
|
126
|
+
tokens: staticStyles.card,
|
|
109
127
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
110
128
|
style: [staticStyles.closeButtonContainer, selectCloseButtonContainerStyles(themeTokens)],
|
|
111
129
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
@@ -138,7 +156,8 @@ ModalOverlay.propTypes = {
|
|
|
138
156
|
variant: _utils.variantProp.propType,
|
|
139
157
|
tokens: (0, _utils.getTokensPropType)('Modal'),
|
|
140
158
|
copy: _utils.copyPropTypes,
|
|
141
|
-
onClose: _propTypes.default.func
|
|
159
|
+
onClose: _propTypes.default.func,
|
|
160
|
+
enableFullscreen: _propTypes.default.bool
|
|
142
161
|
};
|
|
143
162
|
var _default = ModalOverlay;
|
|
144
163
|
exports.default = _default;
|
|
@@ -8,6 +8,10 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
10
10
|
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
11
|
+
var _Dimensions = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Dimensions"));
|
|
12
|
+
var _SafeAreaView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/SafeAreaView"));
|
|
13
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
14
|
+
var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
|
|
11
15
|
var _ThemeProvider = require("../ThemeProvider");
|
|
12
16
|
var _utils = require("../utils");
|
|
13
17
|
var _dictionary = _interopRequireDefault(require("./dictionary"));
|
|
@@ -22,7 +26,6 @@ var _StackView = _interopRequireDefault(require("../StackView"));
|
|
|
22
26
|
var _Typography = _interopRequireDefault(require("../Typography"));
|
|
23
27
|
var _Link = require("../Link");
|
|
24
28
|
var _ModalOverlay = _interopRequireDefault(require("./ModalOverlay"));
|
|
25
|
-
var _Modal = _interopRequireDefault(require("../Modal"));
|
|
26
29
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
31
|
const {
|
|
@@ -37,21 +40,54 @@ const selectSubTitleTokens = _ref => {
|
|
|
37
40
|
color: subtitleColor
|
|
38
41
|
};
|
|
39
42
|
};
|
|
40
|
-
const
|
|
43
|
+
const selectDividerTokens = _ref2 => {
|
|
41
44
|
let {
|
|
42
|
-
dividerColor
|
|
43
|
-
width,
|
|
44
|
-
decorative = true,
|
|
45
|
-
weight = 'thin'
|
|
45
|
+
dividerColor
|
|
46
46
|
} = _ref2;
|
|
47
47
|
return {
|
|
48
|
-
color: dividerColor
|
|
49
|
-
width,
|
|
50
|
-
decorative,
|
|
51
|
-
weight
|
|
48
|
+
color: dividerColor
|
|
52
49
|
};
|
|
53
50
|
};
|
|
54
|
-
const
|
|
51
|
+
const selectHeaderTokens = _ref3 => {
|
|
52
|
+
let {
|
|
53
|
+
contentMarginLeft,
|
|
54
|
+
contentMarginRight,
|
|
55
|
+
contentMarginTop,
|
|
56
|
+
contentPaddingLeft,
|
|
57
|
+
contentPaddingRight
|
|
58
|
+
} = _ref3;
|
|
59
|
+
return {
|
|
60
|
+
marginLeft: contentMarginLeft,
|
|
61
|
+
marginRight: contentMarginRight,
|
|
62
|
+
marginTop: contentMarginTop,
|
|
63
|
+
paddingLeft: contentPaddingLeft,
|
|
64
|
+
paddingRight: contentPaddingRight,
|
|
65
|
+
flexGrow: 1
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
const selectControlsTokens = _ref4 => {
|
|
69
|
+
let {
|
|
70
|
+
contentMarginBottom,
|
|
71
|
+
contentMarginLeft,
|
|
72
|
+
contentMarginRight,
|
|
73
|
+
contentPaddingLeft,
|
|
74
|
+
contentPaddingRight
|
|
75
|
+
} = _ref4;
|
|
76
|
+
return {
|
|
77
|
+
marginBottom: contentMarginBottom,
|
|
78
|
+
marginLeft: contentMarginLeft,
|
|
79
|
+
marginRight: contentMarginRight,
|
|
80
|
+
paddingLeft: contentPaddingLeft,
|
|
81
|
+
paddingRight: contentPaddingRight
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
const selectContainerStyle = (windowHeight, windowWidth) => ({
|
|
85
|
+
height: windowHeight,
|
|
86
|
+
width: windowWidth
|
|
87
|
+
});
|
|
88
|
+
const TOTAL_COLUMNS = 12;
|
|
89
|
+
const MAX_ITEMS_THRESHOLD = 12;
|
|
90
|
+
const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref5, ref) => {
|
|
55
91
|
let {
|
|
56
92
|
label,
|
|
57
93
|
subtitle,
|
|
@@ -73,7 +109,7 @@ const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) =>
|
|
|
73
109
|
rowLimit = 12,
|
|
74
110
|
dictionary = _dictionary.default,
|
|
75
111
|
...rest
|
|
76
|
-
} =
|
|
112
|
+
} = _ref5;
|
|
77
113
|
const viewport = (0, _ViewportProvider.useViewport)();
|
|
78
114
|
const {
|
|
79
115
|
currentValues,
|
|
@@ -117,7 +153,8 @@ const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) =>
|
|
|
117
153
|
maxWidthSize,
|
|
118
154
|
subHeaderLineHeight,
|
|
119
155
|
minHeight,
|
|
120
|
-
minWidth
|
|
156
|
+
minWidth,
|
|
157
|
+
...restTokens
|
|
121
158
|
} = (0, _ThemeProvider.useThemeTokens)('MultiSelectFilter', tokens, {
|
|
122
159
|
...variant,
|
|
123
160
|
maxHeight,
|
|
@@ -195,21 +232,35 @@ const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) =>
|
|
|
195
232
|
offsets,
|
|
196
233
|
align
|
|
197
234
|
});
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
235
|
+
const [isScrolling, setIsScrolling] = _react.default.useState(false);
|
|
236
|
+
const [scrollViewHeight, setScrollViewHeight] = _react.default.useState(0);
|
|
237
|
+
const [rowHeight, setRowHeight] = _react.default.useState(0);
|
|
238
|
+
const modalRef = (0, _utils.useScrollBlocking)(isOpen);
|
|
239
|
+
const windowWidth = _Dimensions.default.get('window').width;
|
|
240
|
+
const windowHeight = _Dimensions.default.get('window').height;
|
|
241
|
+
_react.default.useEffect(() => {
|
|
242
|
+
if (rowHeight > scrollViewHeight) {
|
|
243
|
+
setIsScrolling(true);
|
|
244
|
+
} else {
|
|
245
|
+
setIsScrolling(false);
|
|
246
|
+
}
|
|
247
|
+
}, [scrollViewHeight, rowHeight]);
|
|
248
|
+
const handleScrollViewLayout = event => {
|
|
249
|
+
const {
|
|
250
|
+
height
|
|
251
|
+
} = event.nativeEvent.layout;
|
|
252
|
+
setScrollViewHeight(height);
|
|
253
|
+
};
|
|
254
|
+
const handleRowLayout = event => {
|
|
255
|
+
const {
|
|
256
|
+
height
|
|
257
|
+
} = event.nativeEvent.layout;
|
|
258
|
+
setRowHeight(height);
|
|
259
|
+
};
|
|
260
|
+
const headerContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
261
|
+
style: [selectHeaderTokens(restTokens), styles.container],
|
|
262
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
|
|
263
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
213
264
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
214
265
|
tokens: {
|
|
215
266
|
...headerStyles,
|
|
@@ -217,26 +268,30 @@ const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) =>
|
|
|
217
268
|
},
|
|
218
269
|
children: getCopy('filterByLabel').replace(/%\{filterCategory\}/g, label.toLowerCase())
|
|
219
270
|
})
|
|
220
|
-
})
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
})
|
|
271
|
+
})
|
|
272
|
+
}), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
273
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
274
|
+
space: 4
|
|
275
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
|
|
276
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
277
|
+
tokens: {
|
|
278
|
+
...subeHeaderStyles,
|
|
279
|
+
lineHeight: subHeaderLineHeight
|
|
280
|
+
},
|
|
281
|
+
children: subtitle
|
|
282
|
+
})
|
|
232
283
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
233
284
|
space: 4
|
|
234
|
-
})
|
|
235
|
-
|
|
285
|
+
})]
|
|
286
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
287
|
+
style: styles.options,
|
|
288
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollView.default, {
|
|
289
|
+
onLayout: handleScrollViewLayout,
|
|
236
290
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
|
|
237
291
|
distribute: "between",
|
|
292
|
+
onLayout: handleRowLayout,
|
|
238
293
|
children: [...Array(colSize).keys()].map(i => /*#__PURE__*/(0, _jsxRuntime.jsxs)(Col, {
|
|
239
|
-
xs:
|
|
294
|
+
xs: TOTAL_COLUMNS / colSize,
|
|
240
295
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxGroup, {
|
|
241
296
|
items: items.slice(i * rowLength, (i + 1) * rowLength),
|
|
242
297
|
checkedIds: checkedIds,
|
|
@@ -246,13 +301,18 @@ const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) =>
|
|
|
246
301
|
})]
|
|
247
302
|
}, i))
|
|
248
303
|
})
|
|
249
|
-
})
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
304
|
+
})
|
|
305
|
+
})]
|
|
306
|
+
});
|
|
307
|
+
const controlsContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
308
|
+
children: [isScrolling ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {
|
|
309
|
+
tokens: selectDividerTokens(themeTokens),
|
|
310
|
+
space: 4
|
|
311
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
312
|
+
space: 4
|
|
313
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
314
|
+
style: selectControlsTokens(restTokens),
|
|
315
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
|
|
256
316
|
horizontalAlign: buttonDirection === 'column' ? 'center' : 'start',
|
|
257
317
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
|
|
258
318
|
direction: buttonDirection,
|
|
@@ -266,7 +326,6 @@ const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) =>
|
|
|
266
326
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, {
|
|
267
327
|
onPress: () => onApply(checkedIds),
|
|
268
328
|
variant: {
|
|
269
|
-
size: 'small',
|
|
270
329
|
priority: 'high',
|
|
271
330
|
...(viewport === 'xs' && {
|
|
272
331
|
width: 'full'
|
|
@@ -280,105 +339,85 @@ const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) =>
|
|
|
280
339
|
})
|
|
281
340
|
})]
|
|
282
341
|
})
|
|
283
|
-
})
|
|
342
|
+
})
|
|
343
|
+
})]
|
|
344
|
+
});
|
|
345
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
346
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonDropdown, {
|
|
347
|
+
ref: sourceRef,
|
|
348
|
+
...pressHandlers,
|
|
349
|
+
value: isOpen,
|
|
350
|
+
selected: isSelected,
|
|
351
|
+
label: label,
|
|
352
|
+
onChange: handleChange,
|
|
353
|
+
tokens: getButtonTokens,
|
|
354
|
+
inactive: inactive
|
|
355
|
+
}, id), isOpen && viewport === 'xs' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ModalOverlay.default, {
|
|
356
|
+
overlaidPosition: {
|
|
357
|
+
top: 0,
|
|
358
|
+
left: 0
|
|
359
|
+
},
|
|
360
|
+
onClose: onClose,
|
|
361
|
+
maxHeight: true,
|
|
362
|
+
maxHeightSize: windowHeight,
|
|
363
|
+
maxWidthSize: windowWidth,
|
|
364
|
+
minHeight: windowHeight,
|
|
365
|
+
minWidth: windowWidth,
|
|
366
|
+
tokens: {
|
|
367
|
+
...tokens,
|
|
368
|
+
maxWidth: true
|
|
369
|
+
},
|
|
370
|
+
copy: copy,
|
|
371
|
+
isReady: isReady,
|
|
372
|
+
onLayout: onTargetLayout,
|
|
373
|
+
ref: modalRef,
|
|
374
|
+
enableFullscreen: true,
|
|
375
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_SafeAreaView.default, {
|
|
376
|
+
style: [selectContainerStyle(windowHeight, windowWidth), styles.content],
|
|
377
|
+
ref: ref,
|
|
378
|
+
children: [headerContent, /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
379
|
+
style: styles.controls,
|
|
380
|
+
children: controlsContent
|
|
381
|
+
})]
|
|
382
|
+
})
|
|
284
383
|
}), isOpen && viewport !== 'xs' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ModalOverlay.default, {
|
|
285
384
|
overlaidPosition: overlaidPosition,
|
|
286
385
|
onClose: onClose,
|
|
287
|
-
maxHeight: maxHeight,
|
|
386
|
+
maxHeight: items.length > MAX_ITEMS_THRESHOLD ? true : maxHeight,
|
|
288
387
|
maxHeightSize: maxHeightSize,
|
|
289
388
|
maxWidthSize: maxWidthSize,
|
|
290
389
|
minHeight: minHeight,
|
|
291
390
|
minWidth: minWidth,
|
|
292
391
|
tokens: {
|
|
293
392
|
...tokens,
|
|
294
|
-
maxWidth
|
|
393
|
+
maxWidth: items.length > MAX_ITEMS_THRESHOLD ? true : maxWidth
|
|
295
394
|
},
|
|
296
395
|
copy: copy,
|
|
297
396
|
isReady: isReady,
|
|
298
397
|
onLayout: onTargetLayout,
|
|
299
398
|
ref: ref,
|
|
300
|
-
children: [
|
|
301
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
302
|
-
style: styles.textContainerStyle,
|
|
303
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
304
|
-
tokens: {
|
|
305
|
-
...headerStyles,
|
|
306
|
-
lineHeight: headerLineHeight
|
|
307
|
-
},
|
|
308
|
-
children: getCopy('filterByLabel').replace(/%\{filterCategory\}/g, label.toLowerCase())
|
|
309
|
-
})
|
|
310
|
-
})
|
|
311
|
-
}), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
312
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
313
|
-
space: 5
|
|
314
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
|
|
315
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
316
|
-
tokens: {
|
|
317
|
-
...subeHeaderStyles,
|
|
318
|
-
lineHeight: subHeaderLineHeight
|
|
319
|
-
},
|
|
320
|
-
children: subtitle
|
|
321
|
-
})
|
|
322
|
-
})]
|
|
323
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
324
|
-
space: 4
|
|
325
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
326
|
-
scroll: true,
|
|
327
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
|
|
328
|
-
distribute: "between",
|
|
329
|
-
children: [...Array(colSize).keys()].map(i => /*#__PURE__*/(0, _jsxRuntime.jsxs)(Col, {
|
|
330
|
-
xs: 12 / colSize,
|
|
331
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxGroup, {
|
|
332
|
-
items: items.slice(i * rowLength, (i + 1) * rowLength),
|
|
333
|
-
checkedIds: checkedIds,
|
|
334
|
-
onChange: e => setCheckedIds(e, i)
|
|
335
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
336
|
-
size: 4
|
|
337
|
-
})]
|
|
338
|
-
}, i))
|
|
339
|
-
})
|
|
340
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {
|
|
341
|
-
variant: selectDividerToknes({
|
|
342
|
-
...themeTokens,
|
|
343
|
-
width: 'full'
|
|
344
|
-
}),
|
|
345
|
-
space: 4
|
|
346
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
|
|
347
|
-
horizontalAlign: buttonDirection === 'column' ? 'center' : 'start',
|
|
348
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
|
|
349
|
-
direction: buttonDirection,
|
|
350
|
-
space: 3,
|
|
351
|
-
tokens: {
|
|
352
|
-
alignItems: 'center',
|
|
353
|
-
...(viewport === 'xs' && {
|
|
354
|
-
flexGrow: 1
|
|
355
|
-
})
|
|
356
|
-
},
|
|
357
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, {
|
|
358
|
-
onPress: () => onApply(checkedIds),
|
|
359
|
-
variant: {
|
|
360
|
-
size: 'small',
|
|
361
|
-
priority: 'high',
|
|
362
|
-
...(viewport === 'xs' && {
|
|
363
|
-
width: 'full'
|
|
364
|
-
})
|
|
365
|
-
},
|
|
366
|
-
children: getCopy('applyButtonLabel')
|
|
367
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
368
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.TextButton, {
|
|
369
|
-
onPress: onClear,
|
|
370
|
-
children: getCopy('clearButtonLabel')
|
|
371
|
-
})
|
|
372
|
-
})]
|
|
373
|
-
})
|
|
374
|
-
})]
|
|
399
|
+
children: [headerContent, controlsContent]
|
|
375
400
|
})]
|
|
376
401
|
});
|
|
377
402
|
});
|
|
378
403
|
MultiSelectFilter.displayName = 'MultiSelectFilter';
|
|
379
404
|
const styles = _StyleSheet.default.create({
|
|
380
|
-
|
|
381
|
-
|
|
405
|
+
container: {
|
|
406
|
+
flex: 1
|
|
407
|
+
},
|
|
408
|
+
controls: _Platform.default.select({
|
|
409
|
+
web: {},
|
|
410
|
+
default: {
|
|
411
|
+
flex: 0.35
|
|
412
|
+
}
|
|
413
|
+
}),
|
|
414
|
+
content: {
|
|
415
|
+
flex: 1,
|
|
416
|
+
justifyContent: 'space-between',
|
|
417
|
+
backgroundColor: 'transparent'
|
|
418
|
+
},
|
|
419
|
+
options: {
|
|
420
|
+
flex: 1
|
|
382
421
|
}
|
|
383
422
|
});
|
|
384
423
|
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
9
|
+
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
9
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
11
|
var _ThemeProvider = require("../ThemeProvider");
|
|
11
12
|
var _utils = require("../utils");
|
|
@@ -182,7 +183,7 @@ const getMediaQueryStyles = (themeTokens, themeOptions, mediaIdsRef, dismissible
|
|
|
182
183
|
const getDefaultStyles = (themeTokens, themeOptions, maxWidth, dismissible, viewport, system) => ({
|
|
183
184
|
containerStyles: {
|
|
184
185
|
container: {
|
|
185
|
-
flexDirection: system === true && viewport === 'xl' ? 'row' : 'inherit',
|
|
186
|
+
flexDirection: system === true && viewport === 'xl' || _Platform.default.OS === 'android' ? 'row' : 'inherit',
|
|
186
187
|
...selectContainerStyles(themeTokens)
|
|
187
188
|
}
|
|
188
189
|
},
|
|
@@ -287,6 +288,7 @@ const Notification = /*#__PURE__*/_react.default.forwardRef((_ref6, ref) => {
|
|
|
287
288
|
copy = 'en',
|
|
288
289
|
tokens,
|
|
289
290
|
variant,
|
|
291
|
+
onDismiss,
|
|
290
292
|
...rest
|
|
291
293
|
} = _ref6;
|
|
292
294
|
const [isDismissed, setIsDismissed] = _react.default.useState(false);
|
|
@@ -346,7 +348,10 @@ const Notification = /*#__PURE__*/_react.default.forwardRef((_ref6, ref) => {
|
|
|
346
348
|
dismissIcon: DismissIconComponent,
|
|
347
349
|
dismissIconColor
|
|
348
350
|
} = enableMediaQueryStyleSheet === false ? themeTokens : themeTokens[viewport];
|
|
349
|
-
const onDismissPress = () =>
|
|
351
|
+
const onDismissPress = () => {
|
|
352
|
+
setIsDismissed(true);
|
|
353
|
+
onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
|
|
354
|
+
};
|
|
350
355
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
351
356
|
ref: ref,
|
|
352
357
|
style: notificationComponentRef.current.containerStyles.container,
|
|
@@ -420,6 +425,10 @@ Notification.propTypes = {
|
|
|
420
425
|
copy: _propTypes.default.oneOfType([_propTypes.default.oneOf(['en', 'fr']), _propTypes.default.shape({
|
|
421
426
|
dismiss: _propTypes.default.string
|
|
422
427
|
})]),
|
|
428
|
+
/**
|
|
429
|
+
* Callback function called when the dismiss button is clicked
|
|
430
|
+
*/
|
|
431
|
+
onDismiss: _propTypes.default.func,
|
|
423
432
|
tokens: (0, _utils.getTokensPropType)('Notification'),
|
|
424
433
|
variant: _utils.variantProp.propType
|
|
425
434
|
};
|
package/lib/Status/Status.js
CHANGED
|
@@ -80,7 +80,8 @@ const selectTextStyles = _ref3 => {
|
|
|
80
80
|
textLineHeight,
|
|
81
81
|
fontName,
|
|
82
82
|
fontSize,
|
|
83
|
-
fontWeight
|
|
83
|
+
fontWeight,
|
|
84
|
+
marginLeft
|
|
84
85
|
} = _ref3;
|
|
85
86
|
return (0, _ThemeProvider.applyTextStyles)({
|
|
86
87
|
fontColor: textColor,
|
|
@@ -88,7 +89,7 @@ const selectTextStyles = _ref3 => {
|
|
|
88
89
|
fontSize,
|
|
89
90
|
fontWeight,
|
|
90
91
|
lineHeight: _Platform.default.OS === 'web' ? textLineHeight : textLineHeight * 1.2,
|
|
91
|
-
marginLeft
|
|
92
|
+
marginLeft
|
|
92
93
|
});
|
|
93
94
|
};
|
|
94
95
|
|
|
@@ -100,6 +101,7 @@ const selectTextStyles = _ref3 => {
|
|
|
100
101
|
* @param {string} variant - The variant of the status component.
|
|
101
102
|
* @param {ReactNode} children - The content to be displayed inside the status component.
|
|
102
103
|
* @param {function} customGradient - The custom gradient function for the status component.
|
|
104
|
+
* @param {elementType} customGradient - Defines an icon to be rendered.
|
|
103
105
|
* @param {object} rest - The rest of the props to be applied to the status component.
|
|
104
106
|
* @param {React.Ref} ref - The ref to be applied to the status component.
|
|
105
107
|
* @returns {ReactNode} The rendered status component.
|
|
@@ -113,14 +115,17 @@ const Status = /*#__PURE__*/_react.default.forwardRef((_ref4, ref) => {
|
|
|
113
115
|
...rest
|
|
114
116
|
} = _ref4;
|
|
115
117
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Status', tokens, variant);
|
|
118
|
+
const {
|
|
119
|
+
icon
|
|
120
|
+
} = themeTokens;
|
|
116
121
|
const containerStyles = {
|
|
117
122
|
...selectContainerStyles(themeTokens),
|
|
118
123
|
...staticStyles.container
|
|
119
124
|
};
|
|
120
125
|
let content = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
121
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
126
|
+
children: [icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
122
127
|
...selectIconProps(themeTokens)
|
|
123
|
-
}), (0, _utils.wrapStringsInText)(children, {
|
|
128
|
+
}) : null, (0, _utils.wrapStringsInText)(children, {
|
|
124
129
|
style: selectTextStyles(themeTokens)
|
|
125
130
|
})]
|
|
126
131
|
});
|