@telus-uds/components-web 2.9.0 → 2.11.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 (90) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/component-docs.json +94 -81
  3. package/lib/BlockQuote/BlockQuote.js +53 -5
  4. package/lib/Callout/Callout.js +12 -0
  5. package/lib/DatePicker/CalendarContainer.js +24 -0
  6. package/lib/DatePicker/DatePicker.js +26 -9
  7. package/lib/Disclaimer/Disclaimer.js +0 -4
  8. package/lib/ExpandCollapseMini/ExpandCollapseMini.js +4 -0
  9. package/lib/ExpandCollapseMini/ExpandCollapseMiniControl.js +16 -0
  10. package/lib/IconButton/IconButton.js +8 -0
  11. package/lib/Listbox/GroupControl.js +44 -28
  12. package/lib/Listbox/Listbox.js +62 -47
  13. package/lib/Listbox/ListboxGroup.js +36 -20
  14. package/lib/Listbox/ListboxItem.js +14 -51
  15. package/lib/Listbox/ListboxOverlay.js +1 -1
  16. package/lib/NavigationBar/NavigationBar.js +4 -0
  17. package/lib/OrderedList/Item.js +4 -0
  18. package/lib/Paragraph/Paragraph.js +4 -0
  19. package/lib/PreviewCard/AuthorDate.js +7 -0
  20. package/lib/PriceLockup/PriceLockup.js +48 -0
  21. package/lib/QuantitySelector/QuantitySelector.js +51 -0
  22. package/lib/Span/Span.js +4 -0
  23. package/lib/Table/Table.js +4 -0
  24. package/lib/Toast/Toast.js +16 -0
  25. package/lib/Video/ControlBar/ControlBar.js +13 -10
  26. package/lib/Video/ControlBar/Controls/VideoProgressBar/VideoProgressBar.js +4 -1
  27. package/lib/VideoPicker/VideoPicker.js +1 -1
  28. package/lib/shared/VideoSplash/SplashButtonWithDetails/SplashButtonWithDetails.js +14 -2
  29. package/lib/utils/index.js +3 -3
  30. package/lib-module/BlockQuote/BlockQuote.js +54 -6
  31. package/lib-module/Callout/Callout.js +12 -0
  32. package/lib-module/DatePicker/CalendarContainer.js +24 -0
  33. package/lib-module/DatePicker/DatePicker.js +26 -9
  34. package/lib-module/Disclaimer/Disclaimer.js +0 -4
  35. package/lib-module/ExpandCollapseMini/ExpandCollapseMini.js +4 -0
  36. package/lib-module/ExpandCollapseMini/ExpandCollapseMiniControl.js +16 -0
  37. package/lib-module/IconButton/IconButton.js +8 -0
  38. package/lib-module/Listbox/GroupControl.js +45 -29
  39. package/lib-module/Listbox/Listbox.js +62 -46
  40. package/lib-module/Listbox/ListboxGroup.js +37 -21
  41. package/lib-module/Listbox/ListboxItem.js +15 -51
  42. package/lib-module/Listbox/ListboxOverlay.js +1 -1
  43. package/lib-module/NavigationBar/NavigationBar.js +4 -0
  44. package/lib-module/OrderedList/Item.js +4 -0
  45. package/lib-module/Paragraph/Paragraph.js +4 -0
  46. package/lib-module/PreviewCard/AuthorDate.js +7 -0
  47. package/lib-module/PriceLockup/PriceLockup.js +48 -0
  48. package/lib-module/QuantitySelector/QuantitySelector.js +51 -0
  49. package/lib-module/Span/Span.js +4 -0
  50. package/lib-module/Table/Table.js +4 -0
  51. package/lib-module/Toast/Toast.js +16 -0
  52. package/lib-module/Video/ControlBar/ControlBar.js +14 -11
  53. package/lib-module/Video/ControlBar/Controls/VideoProgressBar/VideoProgressBar.js +4 -1
  54. package/lib-module/VideoPicker/VideoPicker.js +1 -1
  55. package/lib-module/shared/VideoSplash/SplashButtonWithDetails/SplashButtonWithDetails.js +14 -2
  56. package/lib-module/utils/index.js +1 -1
  57. package/package.json +3 -3
  58. package/src/BlockQuote/BlockQuote.jsx +66 -7
  59. package/src/Callout/Callout.jsx +9 -0
  60. package/src/DatePicker/CalendarContainer.jsx +24 -0
  61. package/src/DatePicker/DatePicker.jsx +25 -9
  62. package/src/Disclaimer/Disclaimer.jsx +0 -3
  63. package/src/ExpandCollapseMini/ExpandCollapseMini.jsx +3 -0
  64. package/src/ExpandCollapseMini/ExpandCollapseMiniControl.jsx +12 -0
  65. package/src/IconButton/IconButton.jsx +6 -0
  66. package/src/Listbox/GroupControl.jsx +50 -33
  67. package/src/Listbox/Listbox.jsx +65 -50
  68. package/src/Listbox/ListboxGroup.jsx +34 -19
  69. package/src/Listbox/ListboxItem.jsx +26 -48
  70. package/src/Listbox/ListboxOverlay.jsx +1 -1
  71. package/src/NavigationBar/NavigationBar.jsx +3 -0
  72. package/src/OrderedList/Item.jsx +3 -0
  73. package/src/Paragraph/Paragraph.jsx +3 -0
  74. package/src/PreviewCard/AuthorDate.jsx +6 -0
  75. package/src/PriceLockup/PriceLockup.jsx +37 -0
  76. package/src/QuantitySelector/QuantitySelector.jsx +39 -0
  77. package/src/Span/Span.jsx +3 -0
  78. package/src/Table/Table.jsx +3 -0
  79. package/src/Toast/Toast.jsx +12 -0
  80. package/src/Video/ControlBar/ControlBar.jsx +17 -13
  81. package/src/Video/ControlBar/Controls/VideoProgressBar/VideoProgressBar.jsx +2 -1
  82. package/src/VideoPicker/VideoPicker.jsx +1 -1
  83. package/src/shared/VideoSplash/SplashButtonWithDetails/SplashButtonWithDetails.jsx +8 -1
  84. package/src/utils/index.js +1 -1
  85. package/lib/Listbox/PressableItem.js +0 -149
  86. package/lib/utils/htmlAttrs.js +0 -33
  87. package/lib-module/Listbox/PressableItem.js +0 -128
  88. package/lib-module/utils/htmlAttrs.js +0 -22
  89. package/src/Listbox/PressableItem.jsx +0 -121
  90. package/src/utils/htmlAttrs.js +0 -29
@@ -15,8 +15,6 @@ var _componentsBase = require("@telus-uds/components-base");
15
15
 
16
16
  var _utils = require("../utils");
17
17
 
18
- var _PressableItem = _interopRequireDefault(require("./PressableItem"));
19
-
20
18
  var _jsxRuntime = require("react/jsx-runtime");
21
19
 
22
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -45,48 +43,10 @@ const StyledItemContainer = /*#__PURE__*/_styledComponents.default.li.withConfig
45
43
  }
46
44
  });
47
45
 
48
- const getSelectedItemStyles = _ref2 => {
49
- let {
50
- tokens
51
- } = _ref2;
52
- return {
53
- display: tokens.itemDisplay,
54
- fontFamily: `${tokens.itemFontName}${tokens.itemFontWeight}normal`,
55
- fontSize: tokens.itemFontSize,
56
- paddingTop: tokens.itemPaddingTop,
57
- paddingBottom: tokens.itemPaddingBottom,
58
- paddingLeft: tokens.itemPaddingLeft,
59
- paddingRight: tokens.itemPaddingRight,
60
- color: tokens.itemColor,
61
- textDecoration: tokens.itemTextDecoration,
62
- backgroundColor: tokens.itemBackgroundColor,
63
- outline: tokens.itemOutline,
64
- borderWidth: tokens.itemBorderWidth,
65
- width: '100%'
66
- };
67
- };
68
-
69
- const SelectedItem = /*#__PURE__*/_styledComponents.default.div.withConfig({
70
- displayName: "ListboxItem__SelectedItem",
71
- componentId: "components-web__sc-tlroet-1"
72
- })(_ref3 => {
73
- let {
74
- isChild,
75
- tokens
76
- } = _ref3;
77
- return { ...getSelectedItemStyles({
78
- tokens
79
- }),
80
- borderLeft: isChild ? `${tokens.itemBorderLeftWidth}px solid ${tokens.itemBorderLeftColor}` : 'none'
81
- };
82
- });
83
-
84
- const ListboxItem = /*#__PURE__*/(0, _react.forwardRef)((_ref4, ref) => {
46
+ const ListboxItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
85
47
  let {
86
48
  href,
87
49
  label,
88
- onPress,
89
- selected = false,
90
50
  isChild = false,
91
51
  onBlur,
92
52
  nextItemRef,
@@ -95,21 +55,22 @@ const ListboxItem = /*#__PURE__*/(0, _react.forwardRef)((_ref4, ref) => {
95
55
  variant = {},
96
56
  LinkRouter,
97
57
  linkRouterProps,
58
+ id,
59
+ onPress = () => {},
60
+ ...rest
61
+ } = _ref2;
62
+ const selectedProps = selectProps({
63
+ href,
98
64
  ...rest
99
- } = _ref4;
100
- const selectedProps = selectProps(rest);
101
- const systemTokens = (0, _componentsBase.useThemeTokens)('ListBox', tokens, variant, {
65
+ });
66
+ const getTokens = (0, _componentsBase.useThemeTokensCallback)('Listbox', tokens, variant, {
102
67
  isChild
103
68
  });
104
69
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledItemContainer, {
105
70
  isChild: isChild,
106
71
  ...selectedProps,
107
72
  role: "option",
108
- children: selected ? /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectedItem, {
109
- isChild: isChild,
110
- tokens: systemTokens,
111
- children: label
112
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_PressableItem.default, {
73
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.PressableItem, {
113
74
  href: href,
114
75
  isChild: isChild,
115
76
  onPress: onPress,
@@ -117,6 +78,9 @@ const ListboxItem = /*#__PURE__*/(0, _react.forwardRef)((_ref4, ref) => {
117
78
  nextItemRef: nextItemRef,
118
79
  prevItemRef: prevItemRef,
119
80
  ref: ref,
81
+ tokens: getTokens,
82
+ selectedProps: selectedProps,
83
+ id: id,
120
84
  children: label
121
85
  })
122
86
  });
@@ -129,8 +93,7 @@ ListboxItem.propTypes = { ...selectedSystemPropTypes,
129
93
  label: _propTypes.default.node.isRequired,
130
94
  nextItemRef: _propTypes.default.object,
131
95
  prevItemRef: _propTypes.default.object,
132
- onPress: _propTypes.default.func,
133
- selected: _propTypes.default.bool
96
+ onPress: _propTypes.default.func
134
97
  };
135
98
 
136
99
  var _default = (0, _componentsBase.withLinkRouter)(ListboxItem);
@@ -52,7 +52,7 @@ const DropdownOverlay = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
52
52
  minWidth,
53
53
  onLayout
54
54
  } = _ref;
55
- const systemTokens = (0, _componentsBase.useThemeTokens)('ListBox', {}, {});
55
+ const systemTokens = (0, _componentsBase.useThemeTokens)('Listbox', {}, {});
56
56
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_WebPortal.default, {
57
57
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
58
58
  ref: ref,
@@ -210,6 +210,10 @@ NavigationBar.propTypes = { ...selectedSystemPropTypes,
210
210
  * Common navigation bar heading.
211
211
  */
212
212
  heading: _propTypes.default.string,
213
+
214
+ /**
215
+ * Sets the `headingLevel` of the `heading`
216
+ */
213
217
  headingLevel: _propTypes.default.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'h6']),
214
218
 
215
219
  /**
@@ -147,6 +147,10 @@ Item.propTypes = { ...selectedSystemPropTypes,
147
147
  * Item content
148
148
  */
149
149
  children: _propTypes.default.node.isRequired,
150
+
151
+ /**
152
+ * Defines the title of the `OrderedList.Item`
153
+ */
150
154
  title: _propTypes.default.string,
151
155
 
152
156
  /**
@@ -73,6 +73,10 @@ const Paragraph = _ref3 => {
73
73
 
74
74
  Paragraph.propTypes = { ...selectedSystemPropTypes,
75
75
  children: _propTypes.default.node.isRequired,
76
+
77
+ /**
78
+ * Adds a `data-testid` attribute to the element for testing purposes
79
+ */
76
80
  testID: _propTypes.default.string,
77
81
 
78
82
  /**
@@ -57,7 +57,14 @@ const AuthorDate = _ref => {
57
57
  };
58
58
 
59
59
  AuthorDate.propTypes = {
60
+ /**
61
+ * Name of the author
62
+ */
60
63
  author: _propTypes.default.string.isRequired,
64
+
65
+ /**
66
+ * Date of the post
67
+ */
61
68
  date: _propTypes.default.string.isRequired
62
69
  };
63
70
  var _default = AuthorDate;
@@ -258,16 +258,64 @@ const PriceLockup = _ref12 => {
258
258
  };
259
259
 
260
260
  PriceLockup.propTypes = { ...selectedSystemPropTypes,
261
+
262
+ /**
263
+ * Size of the component
264
+ *
265
+ * Small for pricing in product catalogue pages, medium for pricing in product comparison cards and large for pricing in banners and promo cards
266
+ */
261
267
  size: _propTypes.default.oneOf(['small', 'medium', 'large']),
268
+
269
+ /**
270
+ * If currency symbol other than `$` to be used
271
+ */
262
272
  currencySymbol: _propTypes.default.string,
273
+
274
+ /**
275
+ * Shows additional info above the price
276
+ */
263
277
  topText: _propTypes.default.string,
278
+
279
+ /**
280
+ * Monetary value (including decimals separated by ".")
281
+ */
264
282
  price: _propTypes.default.string.isRequired,
283
+
284
+ /**
285
+ * Shows month/year unit
286
+ */
265
287
  rateText: _propTypes.default.string,
288
+
289
+ /**
290
+ * Shows additional info below the price with a `Divider`
291
+ */
266
292
  bottomText: _propTypes.default.string,
293
+
294
+ /**
295
+ * Displays which side the currency should apperar (left, right)
296
+ */
267
297
  signDirection: _propTypes.default.oneOf(['right', 'left']),
298
+
299
+ /**
300
+ * Shows additional link for context
301
+ */
268
302
  footnoteLinks: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])),
303
+
304
+ /**
305
+ * Function to be called when a footnote link is clicked
306
+ */
269
307
  onClickFootnote: _propTypes.default.func,
308
+
309
+ /**
310
+ * To show price savings comparison
311
+ */
270
312
  strikeThrough: _propTypes.default.bool,
313
+
314
+ /**
315
+ * To provide a11y text for `PriceLockup` component
316
+ *
317
+ * **Note:** a11yText will override strikethrough price, so it must include price (ie. "was 50 dollars per month")
318
+ */
271
319
  a11yText: _propTypes.default.string
272
320
  };
273
321
  var _default = PriceLockup;
@@ -219,25 +219,76 @@ const dictionaryContentShape = _propTypes.default.shape({
219
219
  });
220
220
 
221
221
  QuantitySelector.propTypes = {
222
+ /**
223
+ * The id of the input field
224
+ */
222
225
  id: _propTypes.default.string,
226
+
227
+ /**
228
+ * The minimum number allowed
229
+ */
223
230
  minNumber: _propTypes.default.number,
231
+
232
+ /**
233
+ * The maximum number allowed
234
+ */
224
235
  maxNumber: _propTypes.default.number,
236
+
237
+ /**
238
+ * The callback function that is called when the value of the input field changes
239
+ */
225
240
  onChange: _propTypes.default.func,
241
+
242
+ /**
243
+ * The default value of the input field
244
+ */
226
245
  defaultValue: _propTypes.default.number,
246
+
247
+ /**
248
+ * The label of the input field
249
+ */
227
250
  label: _propTypes.default.string,
251
+
252
+ /**
253
+ * The hint of the input field
254
+ */
228
255
  hint: _propTypes.default.string,
256
+
257
+ /**
258
+ * The position of the hint. Could be shown along side the label or below it
259
+ */
229
260
  hintPosition: _propTypes.default.oneOf(['inline', 'below']),
261
+
262
+ /**
263
+ * Adds a question mark which will display a tooltip when clicked
264
+ */
230
265
  tooltip: _propTypes.default.string,
266
+
267
+ /**
268
+ * The accessibility label of the input field
269
+ */
231
270
  accessibilityLabel: _propTypes.default.string,
271
+
272
+ /**
273
+ * The dictionary object containing the content for the input field
274
+ */
232
275
  dictionary: _propTypes.default.shape({
233
276
  en: dictionaryContentShape,
234
277
  fr: dictionaryContentShape
235
278
  }),
279
+
280
+ /**
281
+ * The language to use for the copy.
282
+ */
236
283
  copy: _propTypes.default.oneOfType([_propTypes.default.oneOf(['en', 'fr'])]),
237
284
  variant: _propTypes.default.exact({
238
285
  alternative: _propTypes.default.bool
239
286
  }),
240
287
  tokens: _propTypes.default.oneOf([_propTypes.default.object, _propTypes.default.func]),
288
+
289
+ /**
290
+ * Sets `data-testid` attribute on the input field for testing purposes.
291
+ */
241
292
  testID: _propTypes.default.string
242
293
  };
243
294
  QuantitySelector.defaultProps = {
package/lib/Span/Span.js CHANGED
@@ -59,6 +59,10 @@ const Span = _ref2 => {
59
59
 
60
60
  Span.propTypes = { ...selectedSystemPropTypes,
61
61
  children: _propTypes.default.node.isRequired,
62
+
63
+ /**
64
+ * Adds `data-testid` attribute for testing
65
+ */
62
66
  testID: _propTypes.default.string,
63
67
 
64
68
  /**
@@ -124,6 +124,10 @@ const Table = _ref2 => {
124
124
 
125
125
  Table.propTypes = { ...selectedSystemPropTypes,
126
126
  children: _propTypes.default.node,
127
+
128
+ /**
129
+ * Sets text style
130
+ */
127
131
  text: _propTypes.default.oneOf(['medium', 'small'])
128
132
  };
129
133
  var _default = Table;
@@ -143,9 +143,25 @@ const Toast = _ref3 => {
143
143
  };
144
144
 
145
145
  Toast.propTypes = { ...selectedSystemPropTypes,
146
+
147
+ /**
148
+ * If true, the toast will be displayed
149
+ */
146
150
  toast: _propTypes.default.bool,
151
+
152
+ /**
153
+ * The copy to display in the toast
154
+ */
147
155
  copy: _propTypes.default.string.isRequired,
156
+
157
+ /**
158
+ * The headline to display in the toast (before copy)
159
+ */
148
160
  headline: _propTypes.default.string,
161
+
162
+ /**
163
+ * The link to display in the toast (after copy)
164
+ */
149
165
  link: _propTypes.default.shape({
150
166
  href: _propTypes.default.string.isRequired,
151
167
  text: _propTypes.default.string.isRequired,
@@ -57,13 +57,14 @@ const StyledControlBar = /*#__PURE__*/_styledComponents.default.div.withConfig({
57
57
  componentId: "components-web__sc-13y61ky-1"
58
58
  })(_ref2 => {
59
59
  let {
60
- padding
60
+ padding,
61
+ height
61
62
  } = _ref2;
62
63
  return {
63
64
  boxSizing: 'border-box',
64
65
  position: 'absolute',
65
66
  width: '100%',
66
- height: 56,
67
+ height,
67
68
  padding,
68
69
  bottom: 0,
69
70
  backgroundColor: 'rgba(42, 44, 46, 0.85)',
@@ -141,21 +142,23 @@ const ControlBar = _ref4 => {
141
142
  variant,
142
143
  ...rest
143
144
  } = _ref4;
145
+ const viewport = (0, _componentsBase.useViewport)();
144
146
  const {
145
147
  paddingTop,
146
148
  paddingBottom,
147
- paddingLeft: paddingLeftDefault,
148
- paddingRight: paddingRightDefault,
149
- paddingLeftCompactMode,
150
- paddingRightCompactMode,
149
+ paddingLeft,
150
+ paddingRight,
151
151
  menuBottom,
152
152
  menuRight,
153
153
  menuMarginLeft,
154
154
  captionsIcon,
155
155
  settingsIcon,
156
156
  minimizeIcon,
157
- maximizeIcon
158
- } = (0, _componentsBase.useThemeTokens)('VideoControlBar', tokens, variant);
157
+ maximizeIcon,
158
+ height
159
+ } = (0, _componentsBase.useThemeTokens)('VideoControlBar', tokens, variant, {
160
+ viewport
161
+ });
159
162
 
160
163
  const parseVideoQuality = () => {
161
164
  return sources.map(source => {
@@ -184,8 +187,6 @@ const ControlBar = _ref4 => {
184
187
  return parsed;
185
188
  };
186
189
 
187
- const paddingLeft = videoPlayerWidth > compactModeThreshold ? paddingLeftDefault : paddingLeftCompactMode;
188
- const paddingRight = videoPlayerWidth > compactModeThreshold ? paddingRightDefault : paddingRightCompactMode;
189
190
  const menuContainerStyleProps = {
190
191
  menuBottom,
191
192
  menuRight,
@@ -197,10 +198,12 @@ const ControlBar = _ref4 => {
197
198
  ...selectProps(rest),
198
199
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledControlBar, {
199
200
  padding: `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`,
201
+ height: `${height}px`,
200
202
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(VideoProgressBarContainer, {
201
203
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_VideoProgressBar.default, {
202
204
  copy: copy,
203
205
  videoPlayer: videoPlayer,
206
+ playing: videoPlaying,
204
207
  videoLength: videoLength,
205
208
  videoCurrentTime: videoCurrentTime,
206
209
  videoBufferEnd: videoBufferEnd,
@@ -140,6 +140,7 @@ const VideoProgressBar = _ref5 => {
140
140
  videoLength,
141
141
  videoCurrentTime,
142
142
  videoBufferEnd,
143
+ playing,
143
144
  setSeek,
144
145
  resetInactivityTimer,
145
146
  tokens,
@@ -155,7 +156,9 @@ const VideoProgressBar = _ref5 => {
155
156
  trackGradientStart,
156
157
  trackGradientEnd,
157
158
  rangeBackground
158
- } = (0, _componentsBase.useThemeTokens)('VideoProgressBar', tokens, variant);
159
+ } = (0, _componentsBase.useThemeTokens)('VideoProgressBar', tokens, variant, {
160
+ playing
161
+ });
159
162
 
160
163
  const videoProgressBar = /*#__PURE__*/_react.default.createRef();
161
164
 
@@ -112,7 +112,7 @@ const VideoPicker = _ref6 => {
112
112
  setCurrentVideoId(selectedVideo);
113
113
  }, [selectedVideo]); // `frame` variant should only work on larger screens
114
114
 
115
- const isFramed = frame && [_systemConstants.viewports.md, _systemConstants.viewports.lg, _systemConstants.viewports.xl].includes(viewport);
115
+ const isFramed = frame && [_systemConstants.viewports.lg, _systemConstants.viewports.xl].includes(viewport);
116
116
  const hasSlider = !frame && [_systemConstants.viewports.md, _systemConstants.viewports.lg, _systemConstants.viewports.xl].includes(viewport);
117
117
  const listElements = videoList.map((video, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_VideoPickerThumbnail.default, {
118
118
  video: video,
@@ -174,14 +174,25 @@ const selectButtonContentTokens = _ref14 => {
174
174
  };
175
175
  };
176
176
 
177
- const SplashButtonWithDetails = _ref15 => {
177
+ const getLabelTokens = _ref15 => {
178
+ let {
179
+ labelFontName: fontName,
180
+ labelFontWeight: fontWeight
181
+ } = _ref15;
182
+ return {
183
+ fontName,
184
+ fontWeight
185
+ };
186
+ };
187
+
188
+ const SplashButtonWithDetails = _ref16 => {
178
189
  let {
179
190
  label,
180
191
  tokens,
181
192
  variant,
182
193
  copy,
183
194
  videoLength
184
- } = _ref15;
195
+ } = _ref16;
185
196
  const {
186
197
  buttonContentChildrenBackground
187
198
  } = (0, _componentsBase.useThemeTokens)('SplashButtonWithDetails', tokens, variant, {
@@ -208,6 +219,7 @@ const SplashButtonWithDetails = _ref15 => {
208
219
  variant: {
209
220
  bold: true
210
221
  },
222
+ tokens: getLabelTokens(themeTokens),
211
223
  children: label
212
224
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.Typography, {
213
225
  variant: {
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "deprecate", {
12
12
  Object.defineProperty(exports, "htmlAttrs", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _htmlAttrs.default;
15
+ return _componentsBase.htmlAttrs;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "media", {
@@ -58,14 +58,14 @@ Object.defineProperty(exports, "warn", {
58
58
  }
59
59
  });
60
60
 
61
+ var _componentsBase = require("@telus-uds/components-base");
62
+
61
63
  var _logger = require("./logger");
62
64
 
63
65
  var _transforms = require("./transforms");
64
66
 
65
67
  var _useTypographyTheme = _interopRequireDefault(require("./useTypographyTheme"));
66
68
 
67
- var _htmlAttrs = _interopRequireDefault(require("./htmlAttrs"));
68
-
69
69
  var _media = _interopRequireDefault(require("./media"));
70
70
 
71
71
  var _ssr = _interopRequireDefault(require("./ssr"));
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { Link, selectSystemProps, StackView, Typography, useThemeTokens, withLinkRouter } from '@telus-uds/components-base';
3
+ import { Link, selectSystemProps, StackView, Typography, useThemeTokens, withLinkRouter, useViewport } from '@telus-uds/components-base';
4
4
  import styled from 'styled-components';
5
5
  import { htmlAttrs, transformGradient } from '../utils';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -63,6 +63,7 @@ const BlockQuote = _ref8 => {
63
63
  variant,
64
64
  ...rest
65
65
  } = _ref8;
66
+ const viewport = useViewport();
66
67
  const {
67
68
  color,
68
69
  paddingTop,
@@ -71,16 +72,44 @@ const BlockQuote = _ref8 => {
71
72
  paddingRight,
72
73
  marginBottom,
73
74
  width,
74
- backgroundGradient
75
- } = useThemeTokens('BlockQuote', tokens, variant);
75
+ backgroundGradient,
76
+ titleHeadingFontSize,
77
+ titleHeadingFontName,
78
+ titleHeadingFontWeight,
79
+ titleHeadingLineHeight,
80
+ titleFontSize,
81
+ titleFontName,
82
+ titleFontWeight,
83
+ titleLineHeight,
84
+ linkFontSize,
85
+ linkFontName,
86
+ linkFontWeight,
87
+ linkLineHeight
88
+ } = useThemeTokens('BlockQuote', tokens, variant, {
89
+ viewport
90
+ });
76
91
  const mappedTextSize = textStyle === 'heading' ? 'h3' : textStyle;
92
+ const titleTokens = textStyle === 'heading' ? {
93
+ fontSize: titleHeadingFontSize,
94
+ fontName: titleHeadingFontName,
95
+ fontWeight: titleHeadingFontWeight,
96
+ lineHeight: titleHeadingLineHeight
97
+ } : {
98
+ fontSize: titleFontSize,
99
+ fontName: titleFontName,
100
+ fontWeight: titleFontWeight,
101
+ lineHeight: titleLineHeight
102
+ };
77
103
 
78
104
  const renderLink = () => {
79
105
  if (linkHref) {
80
106
  return /*#__PURE__*/_jsx(Link, {
81
107
  href: linkHref,
82
108
  tokens: {
83
- blockFontWeight: '500',
109
+ blockFontSize: linkFontSize,
110
+ blockFontName: linkFontName,
111
+ blockFontWeight: linkFontWeight,
112
+ blockLineHeight: linkLineHeight,
84
113
  color
85
114
  },
86
115
  variant: {
@@ -95,7 +124,10 @@ const BlockQuote = _ref8 => {
95
124
  return /*#__PURE__*/_jsx(Typography, {
96
125
  tokens: {
97
126
  color,
98
- fontWeight: '500'
127
+ fontName: linkFontName,
128
+ fontSize: linkFontSize,
129
+ fontWeight: linkFontWeight,
130
+ lineHeight: linkLineHeight
99
131
  },
100
132
  children: link
101
133
  });
@@ -105,7 +137,7 @@ const BlockQuote = _ref8 => {
105
137
  const quote = /*#__PURE__*/_jsx(Typography, {
106
138
  tokens: {
107
139
  color,
108
- fontWeight: '400'
140
+ ...titleTokens
109
141
  },
110
142
  variant: {
111
143
  size: mappedTextSize
@@ -148,9 +180,25 @@ const BlockQuote = _ref8 => {
148
180
  BlockQuote.propTypes = { ...selectedSystemPropTypes,
149
181
  ...withLinkRouter.propTypes,
150
182
  children: PropTypes.node.isRequired,
183
+
184
+ /**
185
+ * External source's identifier (e.g. author's name)
186
+ */
151
187
  link: PropTypes.string,
188
+
189
+ /**
190
+ * External source's URL
191
+ */
152
192
  linkHref: PropTypes.string,
193
+
194
+ /**
195
+ * To provide additional information about the source, rendered underneath `link`
196
+ */
153
197
  additionalInfo: PropTypes.string,
198
+
199
+ /**
200
+ * Whether to render BlockQuote as a heading size of `h3` or large text size
201
+ */
154
202
  textStyle: PropTypes.oneOf(['large', 'heading'])
155
203
  };
156
204
  export default BlockQuote;
@@ -122,9 +122,21 @@ const Callout = _ref2 => {
122
122
  };
123
123
 
124
124
  Callout.propTypes = { ...selectedSystemPropTypes,
125
+
126
+ /**
127
+ * Icon to display on the left side of the Callout
128
+ */
125
129
  icon: PropTypes.elementType,
126
130
  children: PropTypes.node.isRequired,
131
+
132
+ /**
133
+ * To change the horizontal alignment of the Callout's text
134
+ */
127
135
  textAlignToFlex: PropTypes.oneOf(['center', 'left']),
136
+
137
+ /**
138
+ * To change the vertical alignment of the Callout's icon
139
+ */
128
140
  verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom'])
129
141
  };
130
142
  export default Callout;
@@ -162,6 +162,30 @@ const CalendarContainer = /*#__PURE__*/styled.div.withConfig({
162
162
  }
163
163
  }
164
164
 
165
+ .CalendarDay
166
+ .CalendarDay__default
167
+ .CalendarDay__selected
168
+ .CalendarDay__blocked_out_of_range{
169
+ background: ${remainingTokens.calendarDaySelectedDisabledBackground};
170
+ color: ${remainingTokens.calendarDaySelectedDisabledColor};
171
+ text-decoration: none;
172
+ z-index: 0;
173
+ &:before {
174
+ content: '';
175
+ position: absolute;
176
+ top: 50%;
177
+ left: 50%;
178
+ transform: translate(-50%, -50%);
179
+ height: ${calendarDayDefaultHeight}px;
180
+ border: 1px solid ${remainingTokens.calendarDaySelectedDisabledContentBackgroundColor};
181
+ width: ${calendarDayDefaultWidth}px;
182
+ border-radius: 50%;
183
+ background: ${remainingTokens.calendarDaySelectedDisabledContentBackgroundColor};
184
+ transition: all 0.3s;
185
+ z-index: -1;
186
+ }
187
+ }
188
+
165
189
  .CalendarDay__blocked_out_of_range,
166
190
  .CalendarDay__blocked_out_of_range:active,
167
191
  .CalendarDay__blocked_out_of_range:hover,