@telus-uds/components-web 2.26.0 → 2.28.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +31 -2
  2. package/lib/DatePicker/DatePicker.js +129 -69
  3. package/lib/Image/Image.js +20 -44
  4. package/lib/Image/index.js +11 -1
  5. package/lib/Image/server.js +12 -0
  6. package/lib/OptimizeImage/OptimizeImage.js +1 -1
  7. package/lib/OptimizeImage/utils/getFallbackUrl.js +2 -2
  8. package/lib/Table/Cell.js +14 -5
  9. package/lib/baseExports.js +6 -0
  10. package/lib/index.js +12 -2
  11. package/lib/server.js +13 -0
  12. package/lib/utils/theming/get-theme-from-server.js +24 -0
  13. package/lib/utils/theming/with-client-theme.js +32 -0
  14. package/lib/utils/theming/with-server-theme.js +34 -0
  15. package/lib-module/DatePicker/DatePicker.js +132 -72
  16. package/lib-module/Image/Image.js +17 -41
  17. package/lib-module/Image/index.js +6 -1
  18. package/lib-module/Image/server.js +4 -0
  19. package/lib-module/OptimizeImage/OptimizeImage.js +1 -1
  20. package/lib-module/OptimizeImage/utils/getFallbackUrl.js +2 -2
  21. package/lib-module/Table/Cell.js +14 -5
  22. package/lib-module/baseExports.js +1 -1
  23. package/lib-module/index.js +3 -1
  24. package/lib-module/server.js +5 -0
  25. package/lib-module/utils/theming/get-theme-from-server.js +16 -0
  26. package/lib-module/utils/theming/with-client-theme.js +24 -0
  27. package/lib-module/utils/theming/with-server-theme.js +26 -0
  28. package/package.json +25 -4
  29. package/src/DatePicker/DatePicker.jsx +125 -63
  30. package/src/Image/Image.jsx +15 -24
  31. package/src/Image/index.js +6 -1
  32. package/src/Image/server.js +5 -0
  33. package/src/OptimizeImage/OptimizeImage.jsx +1 -1
  34. package/src/OptimizeImage/utils/getFallbackUrl.js +2 -2
  35. package/src/Table/Cell.jsx +9 -2
  36. package/src/baseExports.js +1 -0
  37. package/src/index.js +3 -1
  38. package/src/server.js +5 -0
  39. package/src/utils/theming/get-theme-from-server.js +22 -0
  40. package/src/utils/theming/with-client-theme.jsx +20 -0
  41. package/src/utils/theming/with-server-theme.jsx +21 -0
  42. package/types/WebVideo.d.ts +4 -3
package/CHANGELOG.md CHANGED
@@ -1,12 +1,41 @@
1
1
  # Change Log - @telus-uds/components-web
2
2
 
3
- This log was last generated on Fri, 01 Dec 2023 20:57:37 GMT and should not be manually modified.
3
+ This log was last generated on Mon, 08 Jan 2024 20:08:06 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 2.28.0
8
+
9
+ Mon, 08 Jan 2024 20:08:06 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - Get a theme wrapper to grab thteme from either server or client (wlsdud194@hotmail.com)
14
+ - Update eslintrc (wlsdud194@hotmail.com)
15
+ - update badge story to include subtle variant (evander.owusu@telus.com)
16
+ - add the display token to the table component (guillermo.peitzner@telus.com)
17
+ - Bump @telus-uds/components-base to v1.73.0
18
+ - Bump @telus-uds/system-theme-tokens to v2.49.0
19
+
20
+ ## 2.27.0
21
+
22
+ Wed, 13 Dec 2023 21:24:24 GMT
23
+
24
+ ### Minor changes
25
+
26
+ - fixed WebVideo youtube callback type by adding event params (kristina.kirpichnikova@telus.com)
27
+ - Bump @telus-uds/components-base to v1.72.0
28
+ - Bump @telus-uds/system-theme-tokens to v2.48.0
29
+
30
+ ### Patches
31
+
32
+ - `DatePicker`: Fix stacking context and positioning issue (shahzaibkhalidmalik@outlook.com)
33
+ - fixes the size-by-height property (guillermo.peitzner@telus.com)
34
+ - adding colour toggle to imports (mauricio.batresmontejo@telus.com)
35
+
7
36
  ## 2.26.0
8
37
 
9
- Fri, 01 Dec 2023 20:57:37 GMT
38
+ Fri, 01 Dec 2023 21:08:36 GMT
10
39
 
11
40
  ### Minor changes
12
41
 
@@ -54,6 +54,24 @@ const DateInputWrapper = /*#__PURE__*/_styledComponents.default.div.withConfig({
54
54
  display: 'flex',
55
55
  flexDirection: 'column'
56
56
  });
57
+ const PortalPositionedContainer = /*#__PURE__*/_styledComponents.default.div.withConfig({
58
+ displayName: "DatePicker__PortalPositionedContainer",
59
+ componentId: "components-web__sc-mz8fi3-2"
60
+ })({
61
+ position: 'absolute',
62
+ left: _ref => {
63
+ let {
64
+ left
65
+ } = _ref;
66
+ return `${left}px`;
67
+ },
68
+ top: _ref2 => {
69
+ let {
70
+ top
71
+ } = _ref2;
72
+ return `${top}px`;
73
+ }
74
+ });
57
75
 
58
76
  /**
59
77
  * Use DatePicker to select a date on a calendar.
@@ -76,7 +94,7 @@ const DateInputWrapper = /*#__PURE__*/_styledComponents.default.div.withConfig({
76
94
  * - Optimized for keyboard interaction and tablet touch
77
95
  * - Recommended for viewports greater than or equal to 576px
78
96
  */
79
- const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
97
+ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref3, ref) => {
80
98
  var _dictionary$copy;
81
99
  let {
82
100
  copy = 'en',
@@ -97,9 +115,33 @@ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
97
115
  prevTestID,
98
116
  nextTestID,
99
117
  ...rest
100
- } = _ref;
118
+ } = _ref3;
101
119
  const [inputDate, setInputDate] = (0, _react.useState)(date instanceof _moment.default ? date : undefined);
102
120
  const [inputText, setInputText] = (0, _react.useState)(date instanceof _moment.default ? date.format(dateFormat) : '');
121
+ const textInputRef = (0, _react.useRef)();
122
+ const [datePickerPosition, setDatePickerPosition] = (0, _react.useState)({
123
+ left: 0,
124
+ top: 0
125
+ });
126
+ (0, _componentsBase.useSafeLayoutEffect)(() => {
127
+ const updateDimensions = () => {
128
+ if (inline) return;
129
+ const {
130
+ left,
131
+ top
132
+ } = textInputRef.current.getBoundingClientRect();
133
+ setDatePickerPosition({
134
+ left,
135
+ top: top + textInputRef.current.offsetHeight
136
+ });
137
+ };
138
+ const throttledUpdateDimensions = (0, _lodash.throttle)(updateDimensions, 100, {
139
+ leading: false
140
+ });
141
+ updateDimensions();
142
+ window.addEventListener('resize', throttledUpdateDimensions);
143
+ return () => window.removeEventListener('resize', throttledUpdateDimensions);
144
+ }, []);
103
145
  const [isFocused, setIsFocused] = (0, _react.useState)(false);
104
146
  const [isClickedInside, setIsClickedInside] = (0, _react.useState)(false);
105
147
  const getCopy = (0, _componentsBase.useCopy)({
@@ -116,10 +158,10 @@ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
116
158
  setInputText(date instanceof _moment.default ? date.format(dateFormat) : '');
117
159
  }
118
160
  }, [date, inputDate]);
119
- const onFocusChange = _ref2 => {
161
+ const onFocusChange = _ref4 => {
120
162
  let {
121
163
  focused
122
- } = _ref2;
164
+ } = _ref4;
123
165
  if (!isClickedInside) {
124
166
  setIsFocused(focused);
125
167
  }
@@ -164,7 +206,7 @@ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
164
206
  const circleSize = getResponsiveCircleSize(inline, viewport);
165
207
  const HiddenInputFieldContainer = /*#__PURE__*/_styledComponents.default.div.withConfig({
166
208
  displayName: "DatePicker__HiddenInputFieldContainer",
167
- componentId: "components-web__sc-mz8fi3-2"
209
+ componentId: "components-web__sc-mz8fi3-3"
168
210
  })(["height:", ";width:", ";overflow:hidden;"], props => props.height, props => props.width);
169
211
  const {
170
212
  hiddenInputFieldContainerHeight,
@@ -190,10 +232,10 @@ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
190
232
  fontName: remainingTokens.dayPickerWeekHeaderFontName,
191
233
  fontWeight: remainingTokens.dayPickerWeekHeaderFontWeight
192
234
  });
193
- const renderPrevButton = _ref3 => {
235
+ const renderPrevButton = _ref5 => {
194
236
  let {
195
237
  onClick
196
- } = _ref3;
238
+ } = _ref5;
197
239
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.IconButton, {
198
240
  onPress: () => {
199
241
  onClick();
@@ -205,10 +247,10 @@ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
205
247
  testID: prevTestID
206
248
  });
207
249
  };
208
- const renderNextButton = _ref4 => {
250
+ const renderNextButton = _ref6 => {
209
251
  let {
210
252
  onClick
211
- } = _ref4;
253
+ } = _ref6;
212
254
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.IconButton, {
213
255
  onPress: () => {
214
256
  onClick();
@@ -220,18 +262,7 @@ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
220
262
  testID: nextTestID
221
263
  });
222
264
  };
223
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CalendarContainer.default, {
224
- ...selectProps(rest),
225
- daySize: daySize,
226
- validation: validation,
227
- remainingTokens: {
228
- ...remainingTokens
229
- },
230
- calendarDayDefaultHeight: circleSize,
231
- calendarDayDefaultWidth: circleSize,
232
- calendarMonthFontTokens: calendarMonthFontTokens,
233
- calendarWeekFontTokens: calendarWeekFontTokens,
234
- defaultFontTokens: defaultFontTokens,
265
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
235
266
  children: inline ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
236
267
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(HiddenInputFieldContainer, {
237
268
  height: hiddenInputFieldContainerHeight,
@@ -243,68 +274,33 @@ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
243
274
  value: inputText,
244
275
  readOnly: true
245
276
  })
246
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DayPickerSingleDateController.default, {
247
- date: inputDate,
248
- onDateChange: onChange,
249
- focused: isFocused,
250
- onFocusChange: onFocusChange,
251
- numberOfMonths: 1,
252
- hideKeyboardShortcutsPanel: true,
253
- keepOpenOnDateSelect: false,
277
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CalendarContainer.default, {
278
+ ...selectProps(rest),
254
279
  daySize: daySize,
255
- renderNavPrevButton: renderPrevButton,
256
- renderNavNextButton: renderNextButton,
257
- isOutsideRange: isDayDisabled,
258
- phrases: getCopy(),
259
- renderMonthElement: _ref5 => {
260
- let {
261
- month
262
- } = _ref5;
263
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(MonthCenterContainer, {
264
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
265
- children: [_dictionary.default[copy] ? _dictionary.default[copy].months[month.month()] : month.format('MMMM'), ' ', month.year()]
266
- })
267
- });
268
- },
269
- renderWeekHeaderElement: day => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
270
- children: _dictionary.default[copy] ? _dictionary.default[copy].weekDays[day] : day
271
- })
272
- })]
273
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(DateInputWrapper, {
274
- onMouseDown: handleMouseDown,
275
- onFocus: handleFocus,
276
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.TextInput, {
277
- copy: copy,
278
- feedback: feedback,
279
- hint: hint,
280
- placeholder: "DD / MM / YYYY",
281
- onChange: onChangeInput,
282
- tooltip: tooltip,
283
- hintPosition: hintPosition,
284
- label: ((_dictionary$copy = _dictionary.default[copy]) === null || _dictionary$copy === void 0 ? void 0 : _dictionary$copy.roleDescription) ?? label,
285
- value: inputText,
286
280
  validation: validation,
287
- inactive: disabled,
288
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SingleDatePicker.default, {
281
+ remainingTokens: remainingTokens,
282
+ calendarDayDefaultHeight: circleSize,
283
+ calendarDayDefaultWidth: circleSize,
284
+ calendarMonthFontTokens: calendarMonthFontTokens,
285
+ calendarWeekFontTokens: calendarWeekFontTokens,
286
+ defaultFontTokens: defaultFontTokens,
287
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DayPickerSingleDateController.default, {
289
288
  date: inputDate,
290
- disabled: disabled,
291
289
  onDateChange: onChange,
292
290
  focused: isFocused,
293
291
  onFocusChange: onFocusChange,
294
292
  numberOfMonths: 1,
295
293
  hideKeyboardShortcutsPanel: true,
296
- keepOpenOnDateSelect: true,
294
+ keepOpenOnDateSelect: false,
297
295
  daySize: daySize,
298
- ref: ref,
299
296
  renderNavPrevButton: renderPrevButton,
297
+ renderNavNextButton: renderNextButton,
300
298
  isOutsideRange: isDayDisabled,
301
299
  phrases: getCopy(),
302
- id: id,
303
- renderNavNextButton: renderNextButton,
304
- renderMonthElement: _ref6 => {
300
+ renderMonthElement: _ref7 => {
305
301
  let {
306
302
  month
307
- } = _ref6;
303
+ } = _ref7;
308
304
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(MonthCenterContainer, {
309
305
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
310
306
  children: [_dictionary.default[copy] ? _dictionary.default[copy].months[month.month()] : month.format('MMMM'), ' ', month.year()]
@@ -315,6 +311,70 @@ const DatePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
315
311
  children: _dictionary.default[copy] ? _dictionary.default[copy].weekDays[day] : day
316
312
  })
317
313
  })
314
+ })]
315
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(DateInputWrapper, {
316
+ onMouseDown: handleMouseDown,
317
+ onFocus: handleFocus,
318
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.TextInput, {
319
+ copy: copy,
320
+ feedback: feedback,
321
+ hint: hint,
322
+ placeholder: "DD / MM / YYYY",
323
+ onChange: onChangeInput,
324
+ tooltip: tooltip,
325
+ hintPosition: hintPosition,
326
+ label: ((_dictionary$copy = _dictionary.default[copy]) === null || _dictionary$copy === void 0 ? void 0 : _dictionary$copy.roleDescription) ?? label,
327
+ value: inputText,
328
+ validation: validation,
329
+ inactive: disabled,
330
+ ref: textInputRef,
331
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.Portal, {
332
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PortalPositionedContainer, {
333
+ top: datePickerPosition.top,
334
+ left: datePickerPosition.left,
335
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CalendarContainer.default, {
336
+ ...selectProps(rest),
337
+ daySize: daySize,
338
+ validation: validation,
339
+ remainingTokens: remainingTokens,
340
+ calendarDayDefaultHeight: circleSize,
341
+ calendarDayDefaultWidth: circleSize,
342
+ calendarMonthFontTokens: calendarMonthFontTokens,
343
+ calendarWeekFontTokens: calendarWeekFontTokens,
344
+ defaultFontTokens: defaultFontTokens,
345
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SingleDatePicker.default, {
346
+ date: inputDate,
347
+ disabled: disabled,
348
+ onDateChange: onChange,
349
+ focused: isFocused,
350
+ onFocusChange: onFocusChange,
351
+ numberOfMonths: 1,
352
+ hideKeyboardShortcutsPanel: true,
353
+ keepOpenOnDateSelect: true,
354
+ daySize: daySize,
355
+ ref: ref,
356
+ renderNavPrevButton: renderPrevButton,
357
+ isOutsideRange: isDayDisabled,
358
+ phrases: getCopy(),
359
+ id: id,
360
+ renderNavNextButton: renderNextButton,
361
+ renderMonthElement: _ref8 => {
362
+ let {
363
+ month
364
+ } = _ref8;
365
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(MonthCenterContainer, {
366
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
367
+ children: [_dictionary.default[copy] ? _dictionary.default[copy].months[month.month()] : month.format('MMMM'), ' ', month.year()]
368
+ })
369
+ });
370
+ },
371
+ renderWeekHeaderElement: day => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
372
+ children: _dictionary.default[copy] ? _dictionary.default[copy].weekDays[day] : day
373
+ })
374
+ })
375
+ })
376
+ })
377
+ })
318
378
  })
319
379
  })
320
380
  });
@@ -6,40 +6,12 @@ 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 _styledComponents = _interopRequireDefault(require("styled-components"));
10
- var _componentsBase = require("@telus-uds/components-base");
11
- var _utils = require("../utils");
9
+ var _server = require("@telus-uds/components-base/server");
10
+ var _logger = require("../utils/logger");
12
11
  var _jsxRuntime = require("react/jsx-runtime");
13
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- const [selectProps, selectedSystemPropTypes] = (0, _componentsBase.selectSystemProps)([_utils.htmlAttrs]);
15
- const StyledImage = /*#__PURE__*/_styledComponents.default.img.withConfig({
16
- displayName: "Image__StyledImage",
17
- componentId: "components-web__sc-blwu4l-0"
18
- })(_ref => {
19
- let {
20
- height
21
- } = _ref;
22
- return {
23
- height: height ?? 'auto',
24
- maxWidth: '100%'
25
- };
26
- });
27
- const StyledRoundedImage = /*#__PURE__*/(0, _styledComponents.default)(StyledImage).withConfig({
28
- displayName: "Image__StyledRoundedImage",
29
- componentId: "components-web__sc-blwu4l-1"
30
- })(["border-radius:", "px;"], _ref2 => {
31
- let {
32
- borderRadius
33
- } = _ref2;
34
- return borderRadius;
35
- });
36
- const StyledCircularImage = /*#__PURE__*/(0, _styledComponents.default)(StyledImage).withConfig({
37
- displayName: "Image__StyledCircularImage",
38
- componentId: "components-web__sc-blwu4l-2"
39
- })({
40
- borderRadius: '50%'
41
- });
42
- const Image = _ref3 => {
13
+ const [selectProps, selectedSystemPropTypes] = (0, _server.selectSystemProps)([_server.htmlAttrs]);
14
+ const Image = _ref => {
43
15
  let {
44
16
  src,
45
17
  width,
@@ -48,29 +20,32 @@ const Image = _ref3 => {
48
20
  rounded,
49
21
  loading = 'eager',
50
22
  tokens,
23
+ theme,
51
24
  variant,
52
25
  ...rest
53
- } = _ref3;
54
- const {
26
+ } = _ref;
27
+ let {
55
28
  borderRadius
56
- } = (0, _componentsBase.useThemeTokens)('Image', tokens, variant);
29
+ } = theme;
57
30
  const isCircle = rounded === 'circle';
58
31
  const isCorners = rounded === 'corners';
59
32
  const isSquare = width === height;
60
33
  if (isCircle && !isSquare) {
61
- (0, _utils.warn)('Image', 'rounded="circle" is not supported for non-square images. Please provide a square image, otherwise the resulting shape will not be a circle.');
34
+ (0, _logger.warn)('Image', 'rounded="circle" is not supported for non-square images. Please provide a square image, otherwise the resulting shape will not be a circle.');
62
35
  }
63
- let ImageComponent;
64
36
  if (isCircle) {
65
- ImageComponent = StyledCircularImage;
37
+ borderRadius = '50%';
66
38
  } else if (isCorners) {
67
- ImageComponent = StyledRoundedImage;
68
- } else {
69
- ImageComponent = StyledImage;
39
+ borderRadius = '4px';
70
40
  }
71
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(ImageComponent, {
41
+ const style = {
42
+ borderRadius,
43
+ height: height ?? 'auto',
44
+ maxWidth: '100%'
45
+ };
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
72
47
  ...selectProps(rest),
73
- borderRadius: borderRadius,
48
+ style: style,
74
49
  src: src,
75
50
  width: width,
76
51
  height: height,
@@ -107,7 +82,8 @@ Image.propTypes = {
107
82
  * Make image render as a circle or with rounded corners.
108
83
  */
109
84
  rounded: _propTypes.default.oneOf(['circle', 'corners']),
110
- tokens: (0, _componentsBase.getTokensPropType)('Image')
85
+ tokens: (0, _server.getTokensPropType)('Image')
111
86
  };
87
+ Image.displayName = 'Image';
112
88
  var _default = Image;
113
89
  exports.default = _default;
@@ -3,8 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "DefaultImage", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Image.default;
10
+ }
11
+ });
6
12
  exports.default = void 0;
7
13
  var _Image = _interopRequireDefault(require("./Image"));
14
+ var _withClientTheme = _interopRequireDefault(require("../utils/theming/with-client-theme"));
8
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- var _default = _Image.default;
16
+ // Exporting the unwrapped component separately for react-docgen to extract info for docsite
17
+
18
+ const ClientThemedImage = (0, _withClientTheme.default)(_Image.default);
19
+ var _default = ClientThemedImage;
10
20
  exports.default = _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _withServerTheme = _interopRequireDefault(require("../utils/theming/with-server-theme"));
8
+ var _Image = _interopRequireDefault(require("./Image"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const ServerThemedImage = (0, _withServerTheme.default)(_Image.default, 'Image');
11
+ var _default = ServerThemedImage;
12
+ exports.default = _default;
@@ -42,7 +42,7 @@ const OptimizeImage = _ref => {
42
42
  mdSrc: (0, _utils.getOptimizedUrl)(contentfulAssetUrl, dimension, md, quality, disableRetina, supportsWebp),
43
43
  lgSrc: (0, _utils.getOptimizedUrl)(contentfulAssetUrl, dimension, lg, quality, disableRetina, supportsWebp),
44
44
  xlSrc: (0, _utils.getOptimizedUrl)(contentfulAssetUrl, dimension, xl, quality, disableRetina, supportsWebp),
45
- fallbackSrc: (0, _utils.getFallbackUrl)(contentfulAssetUrl, xl, quality)
45
+ fallbackSrc: (0, _utils.getFallbackUrl)(contentfulAssetUrl, dimension, xl, quality)
46
46
  });
47
47
  });
48
48
  }, [contentfulAssetUrl, dimension, disableRetina, lg, md, quality, sm, xl, xs]);
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = getFallbackUrl;
7
7
  var _isSvgUrl = _interopRequireDefault(require("./isSvgUrl"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- function getFallbackUrl(url, width, quality) {
9
+ function getFallbackUrl(url, dimension, size, quality) {
10
10
  if (!(0, _isSvgUrl.default)(url)) {
11
- return `${url}?w=${width}&q=${quality}`;
11
+ return `${url}?${dimension}=${size}&q=${quality}`;
12
12
  }
13
13
  return url;
14
14
  }
package/lib/Table/Cell.js CHANGED
@@ -49,23 +49,30 @@ const sharedStyles = /*#__PURE__*/(0, _styledComponents.css)(["", ""], _ref2 =>
49
49
  const createStyledCell = htmlElement => _styledComponents.default[htmlElement].withConfig({
50
50
  displayName: "Cell__createStyledCell",
51
51
  componentId: "components-web__sc-ltgfic-0"
52
- })(["", ";box-shadow:", ";"], sharedStyles, _ref3 => {
52
+ })(["", ";box-shadow:", ";", ""], sharedStyles, _ref3 => {
53
53
  let {
54
54
  cellBoxShadowColor,
55
55
  type
56
56
  } = _ref3;
57
57
  return type === HEADER_TYPE.HEADING ? `inset 0 1px 0 ${cellBoxShadowColor}, inset 0 -1px 0 ${cellBoxShadowColor}` : `inset 0 1px 0 ${cellBoxShadowColor}`;
58
+ }, _ref4 => {
59
+ let {
60
+ display
61
+ } = _ref4;
62
+ return display && `*:not(:empty) {
63
+ display: ${display};
64
+ }`;
58
65
  });
59
66
  const StyledHeaderCell = createStyledCell('th');
60
67
  const StyledDataCell = createStyledCell('td');
61
- const Cell = _ref4 => {
68
+ const Cell = _ref5 => {
62
69
  let {
63
70
  children,
64
71
  isFirstInRow,
65
72
  align = 'left',
66
73
  tokens: cellTokens,
67
74
  type = 'default'
68
- } = _ref4;
75
+ } = _ref5;
69
76
  const {
70
77
  text,
71
78
  isScrollable: isTableScrollable,
@@ -90,7 +97,8 @@ const Cell = _ref4 => {
90
97
  fontSize,
91
98
  lineHeight,
92
99
  stickyBackgroundColor,
93
- fontColor
100
+ fontColor,
101
+ display
94
102
  } = (0, _componentsBase.useThemeTokens)('Table', themeTokens, {
95
103
  spacing,
96
104
  type,
@@ -107,7 +115,8 @@ const Cell = _ref4 => {
107
115
  cellPaddingLeft,
108
116
  cellPaddingBottom,
109
117
  stickyBackgroundColor,
110
- cellBoxShadowColor
118
+ cellBoxShadowColor,
119
+ display
111
120
  };
112
121
  const typographyTokens = {
113
122
  fontName,
@@ -93,6 +93,12 @@ Object.defineProperty(exports, "ChevronLink", {
93
93
  return _componentsBase.ChevronLink;
94
94
  }
95
95
  });
96
+ Object.defineProperty(exports, "ColourToggle", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _componentsBase.ColourToggle;
100
+ }
101
+ });
96
102
  Object.defineProperty(exports, "Divider", {
97
103
  enumerable: true,
98
104
  get: function () {
package/lib/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
@@ -19,6 +20,8 @@ var _exportNames = {
19
20
  Footnote: true,
20
21
  QuantitySelector: true,
21
22
  IconButton: true,
23
+ Image: true,
24
+ DefaultImage: true,
22
25
  transformGradient: true,
23
26
  ssrStyles: true,
24
27
  Breadcrumbs: true,
@@ -27,7 +30,6 @@ var _exportNames = {
27
30
  Testimonial: true,
28
31
  Toast: true,
29
32
  Table: true,
30
- Image: true,
31
33
  WebVideo: true,
32
34
  WaffleGrid: true,
33
35
  Spinner: true,
@@ -85,6 +87,12 @@ Object.defineProperty(exports, "DatePicker", {
85
87
  return _DatePicker.default;
86
88
  }
87
89
  });
90
+ Object.defineProperty(exports, "DefaultImage", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _Image.DefaultImage;
94
+ }
95
+ });
88
96
  Object.defineProperty(exports, "Disclaimer", {
89
97
  enumerable: true,
90
98
  get: function () {
@@ -286,6 +294,7 @@ var _PriceLockup = _interopRequireDefault(require("./PriceLockup"));
286
294
  var _Footnote = _interopRequireDefault(require("./Footnote"));
287
295
  var _QuantitySelector = _interopRequireDefault(require("./QuantitySelector"));
288
296
  var _IconButton = _interopRequireDefault(require("./IconButton"));
297
+ var _Image = _interopRequireWildcard(require("./Image"));
289
298
  var _utils = require("./utils");
290
299
  var _Breadcrumbs = _interopRequireDefault(require("./Breadcrumbs"));
291
300
  var _BlockQuote = _interopRequireDefault(require("./BlockQuote"));
@@ -293,7 +302,6 @@ var _OptimizeImage = _interopRequireDefault(require("./OptimizeImage"));
293
302
  var _Testimonial = _interopRequireDefault(require("./Testimonial"));
294
303
  var _Toast = _interopRequireDefault(require("./Toast"));
295
304
  var _Table = _interopRequireDefault(require("./Table"));
296
- var _Image = _interopRequireDefault(require("./Image"));
297
305
  var _WebVideo = _interopRequireDefault(require("./WebVideo"));
298
306
  var _WaffleGrid = _interopRequireDefault(require("./WaffleGrid"));
299
307
  var _Spinner = _interopRequireDefault(require("./Spinner"));
@@ -320,4 +328,6 @@ Object.keys(_baseExports).forEach(function (key) {
320
328
  }
321
329
  });
322
330
  });
331
+ 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); }
332
+ 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; }
323
333
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
package/lib/server.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Image", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _server.default;
10
+ }
11
+ });
12
+ var _server = _interopRequireDefault(require("./Image/server"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getTheme;
7
+ 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); }
8
+ 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; }
9
+ const cachedTheme = {};
10
+ const theme = process.env.UDS_THEME;
11
+ async function importTheme(componentName) {
12
+ try {
13
+ cachedTheme[componentName] = await Promise.resolve(`@telus-uds/theme-${theme}/build/rn/${componentName}.js`).then(s => _interopRequireWildcard(require(s)));
14
+ } catch (_) {
15
+ throw new Error(`An error occurred while trying to import theme-${process.env.UDS_THEME}. Please check that the theme has been installed in your app or that you are not importing a server component inside a client component.`);
16
+ }
17
+ }
18
+ async function getTheme(componentName) {
19
+ if (cachedTheme[componentName]) {
20
+ return cachedTheme[componentName];
21
+ }
22
+ await importTheme(componentName);
23
+ return cachedTheme[componentName];
24
+ }