@telus-uds/components-base 1.93.0 → 1.94.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 +14 -3
- 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/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/Link/TextButton.js +7 -17
- 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/index.js +8 -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/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/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/Link/TextButton.js +7 -17
- 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/index.js +1 -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/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/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/Link/TextButton.jsx +10 -17
- 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/index.js +1 -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,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
|
});
|
package/lib/index.js
CHANGED
|
@@ -13,6 +13,7 @@ var _exportNames = {
|
|
|
13
13
|
Card: true,
|
|
14
14
|
PressableCardBase: true,
|
|
15
15
|
CardGroup: true,
|
|
16
|
+
FileUpload: true,
|
|
16
17
|
Listbox: true,
|
|
17
18
|
Checkbox: true,
|
|
18
19
|
CheckboxCard: true,
|
|
@@ -195,6 +196,12 @@ Object.defineProperty(exports, "Fieldset", {
|
|
|
195
196
|
return _Fieldset.default;
|
|
196
197
|
}
|
|
197
198
|
});
|
|
199
|
+
Object.defineProperty(exports, "FileUpload", {
|
|
200
|
+
enumerable: true,
|
|
201
|
+
get: function () {
|
|
202
|
+
return _FileUpload.default;
|
|
203
|
+
}
|
|
204
|
+
});
|
|
198
205
|
Object.defineProperty(exports, "FlexGrid", {
|
|
199
206
|
enumerable: true,
|
|
200
207
|
get: function () {
|
|
@@ -569,6 +576,7 @@ Object.keys(_Carousel).forEach(function (key) {
|
|
|
569
576
|
}
|
|
570
577
|
});
|
|
571
578
|
});
|
|
579
|
+
var _FileUpload = _interopRequireDefault(require("./FileUpload"));
|
|
572
580
|
var _Listbox = _interopRequireDefault(require("./Listbox"));
|
|
573
581
|
var _Checkbox = _interopRequireWildcard(require("./Checkbox"));
|
|
574
582
|
Object.keys(_Checkbox).forEach(function (key) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = convertFromMegaByteToByte;
|
|
7
|
+
/**
|
|
8
|
+
* Converts a value from megabytes to bytes.
|
|
9
|
+
*
|
|
10
|
+
* @param {number} megaByte - The value in megabytes to be converted.
|
|
11
|
+
* @returns {number} The converted value in bytes.
|
|
12
|
+
*/
|
|
13
|
+
const BYTES_IN_A_MEGABYTE = 1024 * 1024;
|
|
14
|
+
function convertFromMegaByteToByte(megaByte) {
|
|
15
|
+
return megaByte * BYTES_IN_A_MEGABYTE;
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
// react native source for Image and ImageBackground needs proper formatting to work
|
|
8
|
+
// remote sources that start with 'http' and base64 encoded sources that start with 'data:' need be wrapped in uri when passing source prop for Image and ImageBackground ie. source={ uri: image }
|
|
9
|
+
// local source for image can be passed normally without wrapping in uri ie. source={ image }
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* example code from react native docs: https://reactnative.dev/docs/imagebackground
|
|
13
|
+
*
|
|
14
|
+
* const image = {uri: 'https://legacy.reactjs.org/logo-og.png'}
|
|
15
|
+
*
|
|
16
|
+
* const App = () => (
|
|
17
|
+
* <View style={styles.container}>
|
|
18
|
+
* <ImageBackground source={image} resizeMode="cover" style={styles.image}>
|
|
19
|
+
* <Text style={styles.text}>Inside</Text>
|
|
20
|
+
* </ImageBackground>
|
|
21
|
+
* </View>
|
|
22
|
+
* )
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Formats the image source for React Native Image and ImageBackground components.
|
|
27
|
+
* @param {string|number} source - The image source, either a URI string or a number (when a local image source is bundled in IOS or Android app).
|
|
28
|
+
* @returns {object|string} - The formatted image source.
|
|
29
|
+
*/
|
|
30
|
+
const formatImageSource = source => typeof source === 'string' && (source.startsWith('http') || source.startsWith('data:')) ? {
|
|
31
|
+
uri: source
|
|
32
|
+
} : source;
|
|
33
|
+
var _default = formatImageSource;
|
|
34
|
+
exports.default = _default;
|
package/lib/utils/index.js
CHANGED
|
@@ -17,7 +17,9 @@ var _exportNames = {
|
|
|
17
17
|
containUniqueFields: true,
|
|
18
18
|
BaseView: true,
|
|
19
19
|
htmlAttrs: true,
|
|
20
|
-
transformGradient: true
|
|
20
|
+
transformGradient: true,
|
|
21
|
+
convertFromMegaByteToByte: true,
|
|
22
|
+
formatImageSource: true
|
|
21
23
|
};
|
|
22
24
|
Object.defineProperty(exports, "BaseView", {
|
|
23
25
|
enumerable: true,
|
|
@@ -31,6 +33,18 @@ Object.defineProperty(exports, "containUniqueFields", {
|
|
|
31
33
|
return _containUniqueFields.default;
|
|
32
34
|
}
|
|
33
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "convertFromMegaByteToByte", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _convertFromMegaByteToByte.default;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "formatImageSource", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _formatImageSource.default;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
34
48
|
Object.defineProperty(exports, "htmlAttrs", {
|
|
35
49
|
enumerable: true,
|
|
36
50
|
get: function () {
|
|
@@ -224,6 +238,8 @@ var _containUniqueFields = _interopRequireDefault(require("./containUniqueFields
|
|
|
224
238
|
var _BaseView = _interopRequireDefault(require("./BaseView"));
|
|
225
239
|
var _htmlAttrs = _interopRequireDefault(require("./htmlAttrs"));
|
|
226
240
|
var _transformGradient = require("./transformGradient");
|
|
241
|
+
var _convertFromMegaByteToByte = _interopRequireDefault(require("./convertFromMegaByteToByte"));
|
|
242
|
+
var _formatImageSource = _interopRequireDefault(require("./formatImageSource"));
|
|
227
243
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
228
244
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
229
245
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -48,7 +48,11 @@ const ButtonGroup = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
|
48
48
|
const {
|
|
49
49
|
direction,
|
|
50
50
|
space,
|
|
51
|
-
fieldSpace
|
|
51
|
+
fieldSpace,
|
|
52
|
+
borderRadius,
|
|
53
|
+
backgroundColor,
|
|
54
|
+
padding,
|
|
55
|
+
gap
|
|
52
56
|
} = themeTokens;
|
|
53
57
|
const getButtonTokens = useThemeTokensCallback('ButtonGroupItem', tokens, variant);
|
|
54
58
|
const {
|
|
@@ -87,12 +91,24 @@ const ButtonGroup = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
|
87
91
|
inactive: inactive,
|
|
88
92
|
validation: validation,
|
|
89
93
|
accessibilityRole: accessibilityRole,
|
|
94
|
+
style: {
|
|
95
|
+
borderRadius,
|
|
96
|
+
backgroundColor,
|
|
97
|
+
padding,
|
|
98
|
+
...(Platform.OS === 'web' ? {
|
|
99
|
+
gap,
|
|
100
|
+
width: 'fit-content'
|
|
101
|
+
} : {
|
|
102
|
+
alignSelf: 'flex-start'
|
|
103
|
+
})
|
|
104
|
+
},
|
|
90
105
|
...selectProps(rest),
|
|
91
106
|
children: /*#__PURE__*/_jsx(StackWrap, {
|
|
92
107
|
accessibilityRole: innerRole,
|
|
93
108
|
space: space,
|
|
94
109
|
direction: direction,
|
|
95
110
|
tokens: stackTokens,
|
|
111
|
+
gap: gap,
|
|
96
112
|
ref: ref,
|
|
97
113
|
children: items.map((_ref2, index) => {
|
|
98
114
|
let {
|