@telus-uds/components-web 2.21.2 → 2.22.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 (241) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/lib/Badge/Badge.js +2 -14
  3. package/lib/Badge/index.js +0 -3
  4. package/lib/BlockQuote/BlockQuote.js +4 -25
  5. package/lib/BlockQuote/index.js +0 -3
  6. package/lib/Breadcrumbs/Breadcrumbs.js +9 -36
  7. package/lib/Breadcrumbs/Item/Item.js +15 -25
  8. package/lib/Breadcrumbs/index.js +0 -2
  9. package/lib/Callout/Callout.js +2 -24
  10. package/lib/Callout/index.js +0 -3
  11. package/lib/Card/Card.js +15 -29
  12. package/lib/Card/CardContent.js +5 -18
  13. package/lib/Card/CardFooter.js +7 -19
  14. package/lib/Card/index.js +0 -3
  15. package/lib/Countdown/Countdown.js +5 -24
  16. package/lib/Countdown/Segment.js +3 -15
  17. package/lib/Countdown/index.js +0 -3
  18. package/lib/Countdown/types.js +2 -7
  19. package/lib/Countdown/useCountdown.js +0 -7
  20. package/lib/DatePicker/CalendarContainer.js +0 -5
  21. package/lib/DatePicker/DatePicker.js +9 -61
  22. package/lib/DatePicker/dictionary.js +0 -8
  23. package/lib/DatePicker/index.js +0 -3
  24. package/lib/DatePicker/reactDatesCss.js +0 -2
  25. package/lib/Disclaimer/Disclaimer.js +5 -14
  26. package/lib/Disclaimer/index.js +0 -2
  27. package/lib/ExpandCollapseMini/ExpandCollapseMini.js +6 -17
  28. package/lib/ExpandCollapseMini/ExpandCollapseMiniControl.js +12 -25
  29. package/lib/ExpandCollapseMini/index.js +0 -3
  30. package/lib/Footnote/Footnote.js +17 -63
  31. package/lib/Footnote/FootnoteLink.js +3 -24
  32. package/lib/Footnote/index.js +0 -4
  33. package/lib/IconButton/IconButton.js +4 -14
  34. package/lib/IconButton/index.js +0 -3
  35. package/lib/Image/Image.js +5 -24
  36. package/lib/Image/index.js +0 -3
  37. package/lib/List/List.js +0 -2
  38. package/lib/List/ListItem.js +0 -8
  39. package/lib/List/index.js +0 -4
  40. package/lib/NavigationBar/NavigationBar.js +10 -35
  41. package/lib/NavigationBar/NavigationItem.js +5 -17
  42. package/lib/NavigationBar/NavigationSubMenu.js +3 -19
  43. package/lib/NavigationBar/collapseItems.js +6 -9
  44. package/lib/NavigationBar/index.js +0 -3
  45. package/lib/NavigationBar/resolveItemSelection.js +2 -3
  46. package/lib/OptimizeImage/OptimizeImage.js +6 -27
  47. package/lib/OptimizeImage/index.js +0 -3
  48. package/lib/OptimizeImage/utils/getFallbackUrl.js +0 -4
  49. package/lib/OptimizeImage/utils/getOptimizedUrl.js +0 -8
  50. package/lib/OptimizeImage/utils/hasWebpSupport.js +1 -5
  51. package/lib/OptimizeImage/utils/index.js +0 -4
  52. package/lib/OptimizeImage/utils/isSvgUrl.js +0 -1
  53. package/lib/OrderedList/Item.js +4 -21
  54. package/lib/OrderedList/ItemBase.js +2 -9
  55. package/lib/OrderedList/OrderedList.js +11 -22
  56. package/lib/OrderedList/OrderedListBase.js +3 -13
  57. package/lib/OrderedList/index.js +0 -4
  58. package/lib/Paragraph/Paragraph.js +3 -18
  59. package/lib/Paragraph/index.js +0 -3
  60. package/lib/PreviewCard/AuthorDate.js +1 -10
  61. package/lib/PreviewCard/PreviewCard.js +15 -35
  62. package/lib/PreviewCard/index.js +0 -3
  63. package/lib/PriceLockup/PriceLockup.js +78 -75
  64. package/lib/PriceLockup/index.js +0 -3
  65. package/lib/PriceLockup/tokens.js +0 -2
  66. package/lib/Progress/ProgressBar.js +5 -16
  67. package/lib/Progress/index.js +0 -4
  68. package/lib/QuantitySelector/QuantitySelector.js +8 -42
  69. package/lib/QuantitySelector/SideButton.js +4 -11
  70. package/lib/QuantitySelector/index.js +0 -3
  71. package/lib/QuantitySelector/styles.js +0 -6
  72. package/lib/ResponsiveImage/ResponsiveImage.js +5 -20
  73. package/lib/ResponsiveImage/index.js +0 -3
  74. package/lib/Ribbon/Ribbon.js +4 -20
  75. package/lib/Ribbon/index.js +0 -3
  76. package/lib/SkeletonProvider/SkeletonImage.js +0 -10
  77. package/lib/SkeletonProvider/SkeletonProvider.js +4 -22
  78. package/lib/SkeletonProvider/SkeletonTypography.js +0 -10
  79. package/lib/SkeletonProvider/index.js +0 -3
  80. package/lib/Span/Span.js +3 -17
  81. package/lib/Span/index.js +0 -3
  82. package/lib/Spinner/Spinner.js +11 -39
  83. package/lib/Spinner/SpinnerContent.js +2 -18
  84. package/lib/Spinner/index.js +0 -3
  85. package/lib/StoryCard/StoryCard.js +11 -31
  86. package/lib/StoryCard/index.js +0 -3
  87. package/lib/Table/Body.js +0 -6
  88. package/lib/Table/Cell.js +4 -24
  89. package/lib/Table/Header.js +0 -9
  90. package/lib/Table/Row.js +0 -8
  91. package/lib/Table/SubHeading.js +0 -9
  92. package/lib/Table/Table.js +5 -23
  93. package/lib/Table/index.js +0 -8
  94. package/lib/TermsAndConditions/ExpandCollapse.js +4 -14
  95. package/lib/TermsAndConditions/TermsAndConditions.js +7 -29
  96. package/lib/TermsAndConditions/index.js +0 -2
  97. package/lib/Testimonial/Testimonial.js +2 -26
  98. package/lib/Testimonial/index.js +0 -3
  99. package/lib/Toast/Toast.js +4 -25
  100. package/lib/Toast/index.js +0 -3
  101. package/lib/Video/ControlBar/ControlBar.js +2 -25
  102. package/lib/Video/ControlBar/Controls/VideoButton/VideoButton.js +4 -17
  103. package/lib/Video/ControlBar/Controls/VideoMenu/VideoMenu.js +4 -20
  104. package/lib/Video/ControlBar/Controls/VideoProgressBar/VideoProgressBar.js +12 -26
  105. package/lib/Video/ControlBar/Controls/VolumeSlider/VolumeSlider.js +8 -23
  106. package/lib/Video/MiddleControlButton/MiddleControlButton.js +2 -12
  107. package/lib/Video/Video.js +122 -194
  108. package/lib/Video/index.js +0 -3
  109. package/lib/VideoPicker/VideoPicker.js +6 -32
  110. package/lib/VideoPicker/VideoPickerPlayer.js +2 -10
  111. package/lib/VideoPicker/VideoPickerThumbnail.js +7 -28
  112. package/lib/VideoPicker/VideoSlider.js +7 -17
  113. package/lib/VideoPicker/index.js +0 -3
  114. package/lib/VideoPicker/videoPropType.js +2 -8
  115. package/lib/WaffleGrid/WaffleGrid.js +11 -28
  116. package/lib/WaffleGrid/index.js +0 -3
  117. package/lib/WebPortal/WebPortal.js +1 -5
  118. package/lib/WebPortal/index.js +0 -3
  119. package/lib/WebVideo/WebVideo.js +4 -30
  120. package/lib/WebVideo/index.js +0 -3
  121. package/lib/baseExports.js +6 -1
  122. package/lib/index.js +0 -49
  123. package/lib/shared/FullBleedContent/FullBleedContent.js +5 -17
  124. package/lib/shared/FullBleedContent/getFullBleedBorderRadius.js +0 -11
  125. package/lib/shared/FullBleedContent/index.js +0 -5
  126. package/lib/shared/FullBleedContent/useFullBleedContentProps.js +1 -12
  127. package/lib/shared/VideoSplash/SplashButton/SplashButton.js +2 -12
  128. package/lib/shared/VideoSplash/SplashButtonWithDetails/SplashButtonWithDetails.js +7 -23
  129. package/lib/shared/VideoSplash/VideoSplash.js +4 -17
  130. package/lib/shared/VideoSplash/helpers.js +0 -6
  131. package/lib/utils/index.js +0 -9
  132. package/lib/utils/logger.js +0 -6
  133. package/lib/utils/media.js +2 -11
  134. package/lib/utils/renderStructuredContent.js +14 -31
  135. package/lib/utils/ssr.js +0 -6
  136. package/lib/utils/transforms.js +0 -2
  137. package/lib/utils/useOverlaidPosition.js +6 -28
  138. package/lib/utils/useTypographyTheme.js +4 -5
  139. package/lib-module/Badge/Badge.js +2 -5
  140. package/lib-module/BlockQuote/BlockQuote.js +4 -15
  141. package/lib-module/Breadcrumbs/Breadcrumbs.js +9 -25
  142. package/lib-module/Breadcrumbs/Item/Item.js +15 -12
  143. package/lib-module/Callout/Callout.js +2 -16
  144. package/lib-module/Card/Card.js +14 -17
  145. package/lib-module/Card/CardContent.js +5 -8
  146. package/lib-module/Card/CardFooter.js +7 -9
  147. package/lib-module/Countdown/Countdown.js +6 -11
  148. package/lib-module/Countdown/Segment.js +6 -8
  149. package/lib-module/Countdown/types.js +2 -1
  150. package/lib-module/Countdown/useCountdown.js +0 -6
  151. package/lib-module/DatePicker/CalendarContainer.js +3 -1
  152. package/lib-module/DatePicker/DatePicker.js +9 -39
  153. package/lib-module/DatePicker/dictionary.js +0 -8
  154. package/lib-module/Disclaimer/Disclaimer.js +5 -4
  155. package/lib-module/ExpandCollapseMini/ExpandCollapseMini.js +6 -8
  156. package/lib-module/ExpandCollapseMini/ExpandCollapseMiniControl.js +13 -19
  157. package/lib-module/Footnote/Footnote.js +17 -41
  158. package/lib-module/Footnote/FootnoteLink.js +3 -12
  159. package/lib-module/IconButton/IconButton.js +4 -6
  160. package/lib-module/Image/Image.js +5 -14
  161. package/lib-module/NavigationBar/NavigationBar.js +10 -20
  162. package/lib-module/NavigationBar/NavigationItem.js +5 -5
  163. package/lib-module/NavigationBar/NavigationSubMenu.js +3 -8
  164. package/lib-module/NavigationBar/collapseItems.js +6 -8
  165. package/lib-module/NavigationBar/resolveItemSelection.js +2 -2
  166. package/lib-module/OptimizeImage/OptimizeImage.js +6 -16
  167. package/lib-module/OptimizeImage/utils/getFallbackUrl.js +0 -1
  168. package/lib-module/OptimizeImage/utils/getOptimizedUrl.js +0 -5
  169. package/lib-module/OptimizeImage/utils/hasWebpSupport.js +1 -5
  170. package/lib-module/OrderedList/Item.js +4 -7
  171. package/lib-module/OrderedList/ItemBase.js +2 -3
  172. package/lib-module/OrderedList/OrderedList.js +11 -9
  173. package/lib-module/OrderedList/OrderedListBase.js +3 -3
  174. package/lib-module/Paragraph/Paragraph.js +3 -8
  175. package/lib-module/PreviewCard/AuthorDate.js +1 -4
  176. package/lib-module/PreviewCard/PreviewCard.js +16 -19
  177. package/lib-module/PriceLockup/PriceLockup.js +78 -57
  178. package/lib-module/Progress/ProgressBar.js +7 -8
  179. package/lib-module/QuantitySelector/QuantitySelector.js +8 -30
  180. package/lib-module/QuantitySelector/SideButton.js +4 -6
  181. package/lib-module/ResponsiveImage/ResponsiveImage.js +5 -12
  182. package/lib-module/Ribbon/Ribbon.js +4 -9
  183. package/lib-module/SkeletonProvider/SkeletonImage.js +0 -5
  184. package/lib-module/SkeletonProvider/SkeletonProvider.js +4 -12
  185. package/lib-module/SkeletonProvider/SkeletonTypography.js +0 -5
  186. package/lib-module/Span/Span.js +3 -7
  187. package/lib-module/Spinner/Spinner.js +11 -24
  188. package/lib-module/Spinner/SpinnerContent.js +2 -8
  189. package/lib-module/StoryCard/StoryCard.js +12 -17
  190. package/lib-module/Table/Body.js +0 -2
  191. package/lib-module/Table/Cell.js +4 -14
  192. package/lib-module/Table/Header.js +0 -2
  193. package/lib-module/Table/Row.js +0 -2
  194. package/lib-module/Table/SubHeading.js +0 -2
  195. package/lib-module/Table/Table.js +5 -6
  196. package/lib-module/TermsAndConditions/ExpandCollapse.js +4 -2
  197. package/lib-module/TermsAndConditions/TermsAndConditions.js +7 -9
  198. package/lib-module/Testimonial/Testimonial.js +2 -11
  199. package/lib-module/Toast/Toast.js +4 -15
  200. package/lib-module/Video/ControlBar/ControlBar.js +2 -9
  201. package/lib-module/Video/ControlBar/Controls/VideoButton/VideoButton.js +4 -8
  202. package/lib-module/Video/ControlBar/Controls/VideoMenu/VideoMenu.js +4 -8
  203. package/lib-module/Video/ControlBar/Controls/VideoProgressBar/VideoProgressBar.js +12 -13
  204. package/lib-module/Video/ControlBar/Controls/VolumeSlider/VolumeSlider.js +8 -10
  205. package/lib-module/Video/MiddleControlButton/MiddleControlButton.js +2 -3
  206. package/lib-module/Video/Video.js +122 -173
  207. package/lib-module/VideoPicker/VideoPicker.js +6 -15
  208. package/lib-module/VideoPicker/VideoPickerPlayer.js +2 -3
  209. package/lib-module/VideoPicker/VideoPickerThumbnail.js +7 -13
  210. package/lib-module/VideoPicker/VideoSlider.js +6 -9
  211. package/lib-module/VideoPicker/videoPropType.js +2 -1
  212. package/lib-module/WaffleGrid/WaffleGrid.js +11 -15
  213. package/lib-module/WebPortal/WebPortal.js +1 -1
  214. package/lib-module/WebVideo/WebVideo.js +4 -15
  215. package/lib-module/baseExports.js +3 -2
  216. package/lib-module/index.js +0 -1
  217. package/lib-module/shared/FullBleedContent/FullBleedContent.js +5 -10
  218. package/lib-module/shared/FullBleedContent/getFullBleedBorderRadius.js +0 -10
  219. package/lib-module/shared/FullBleedContent/useFullBleedContentProps.js +1 -11
  220. package/lib-module/shared/VideoSplash/SplashButton/SplashButton.js +2 -3
  221. package/lib-module/shared/VideoSplash/SplashButtonWithDetails/SplashButtonWithDetails.js +7 -12
  222. package/lib-module/shared/VideoSplash/VideoSplash.js +4 -4
  223. package/lib-module/utils/logger.js +2 -2
  224. package/lib-module/utils/media.js +2 -9
  225. package/lib-module/utils/renderStructuredContent.js +14 -25
  226. package/lib-module/utils/ssr.js +0 -4
  227. package/lib-module/utils/useOverlaidPosition.js +8 -27
  228. package/lib-module/utils/useTypographyTheme.js +4 -4
  229. package/package.json +3 -3
  230. package/src/PriceLockup/PriceLockup.jsx +36 -11
  231. package/src/baseExports.js +1 -0
  232. package/src/index.js +0 -1
  233. package/lib/Modal/Modal.js +0 -146
  234. package/lib/Modal/ModalContent.js +0 -203
  235. package/lib/Modal/index.js +0 -13
  236. package/lib-module/Modal/Modal.js +0 -132
  237. package/lib-module/Modal/ModalContent.js +0 -181
  238. package/lib-module/Modal/index.js +0 -2
  239. package/src/Modal/Modal.jsx +0 -121
  240. package/src/Modal/ModalContent.jsx +0 -167
  241. package/src/Modal/index.js +0 -3
@@ -21,6 +21,7 @@ const StyledTable = /*#__PURE__*/styled.table.withConfig({
21
21
  }, props => `${props.borderWidth}px solid ${props.borderColor}`);
22
22
  const TableContext = /*#__PURE__*/React.createContext({});
23
23
  export const useTableContext = () => useContext(TableContext);
24
+
24
25
  /**
25
26
  * Use `Table` to display tabular data.
26
27
  *
@@ -35,7 +36,6 @@ export const useTableContext = () => useContext(TableContext);
35
36
  * - Use `Table.Row` and `Table.Cell` to build up the tabular data
36
37
  * - Use `Cell`'s `type` prop to visually mark it as a row heading (`type="rowHeading"`)
37
38
  */
38
-
39
39
  const Table = _ref2 => {
40
40
  let {
41
41
  children,
@@ -62,12 +62,12 @@ const Table = _ref2 => {
62
62
  setContainerWidth(containerClientWidth);
63
63
  setTableWidth(responsiveTableWidth);
64
64
  };
65
-
66
65
  const throttledUpdateDimensions = throttle(updateDimensions, 100, {
67
66
  leading: false
68
67
  });
69
- updateDimensions(); // a pretty naive way of repeating the measurement after the fonts are loaded
68
+ updateDimensions();
70
69
 
70
+ // a pretty naive way of repeating the measurement after the fonts are loaded
71
71
  window.addEventListener('load', updateDimensions);
72
72
  window.addEventListener('resize', throttledUpdateDimensions);
73
73
  return () => {
@@ -99,11 +99,10 @@ const Table = _ref2 => {
99
99
  })
100
100
  });
101
101
  };
102
-
103
- Table.propTypes = { ...selectedSystemPropTypes,
102
+ Table.propTypes = {
103
+ ...selectedSystemPropTypes,
104
104
  tokens: getTokensPropType('Table'),
105
105
  children: PropTypes.node,
106
-
107
106
  /**
108
107
  * Sets text style
109
108
  */
@@ -69,7 +69,8 @@ const ExpandCollapse = /*#__PURE__*/forwardRef((_ref3, ref) => {
69
69
  tokens: {
70
70
  borderWidth: expandBaseBorderWidth
71
71
  },
72
- children: expandProps => /*#__PURE__*/_jsx(ExpandCollapseBase.Panel, { ...expandProps,
72
+ children: expandProps => /*#__PURE__*/_jsx(ExpandCollapseBase.Panel, {
73
+ ...expandProps,
73
74
  panelId: "ExpandCollapsePanel",
74
75
  controlTokens: {
75
76
  icon: null,
@@ -78,7 +79,8 @@ const ExpandCollapse = /*#__PURE__*/forwardRef((_ref3, ref) => {
78
79
  borderColor: expandTitleBorderColor,
79
80
  borderWidth: expandTitleBorder,
80
81
  textLine: expandTitleUnderline
81
- } // TODO refactor
82
+ }
83
+ // TODO refactor
82
84
  // eslint-disable-next-line react/no-unstable-nested-components
83
85
  ,
84
86
  control: pressableState => {
@@ -89,6 +89,7 @@ const NonIndexedContentTitle = /*#__PURE__*/styled.div.withConfig({
89
89
  paddingLeft: tokens.titlePaddingLeft
90
90
  };
91
91
  });
92
+
92
93
  /**
93
94
  * Use `TermsAndConditions` to display important legal content.
94
95
  *
@@ -98,7 +99,6 @@ const NonIndexedContentTitle = /*#__PURE__*/styled.div.withConfig({
98
99
  * - Responsive display based on breakpoints
99
100
  * - Use `copy` to set language, ‘en’ for English or ‘fr’ for French
100
101
  */
101
-
102
102
  const TermsAndConditions = /*#__PURE__*/forwardRef((_ref6, ref) => {
103
103
  let {
104
104
  copy = 'en',
@@ -119,7 +119,8 @@ const TermsAndConditions = /*#__PURE__*/forwardRef((_ref6, ref) => {
119
119
  const themeTokens = useThemeTokens('TermsAndConditions', tokens, variant, {
120
120
  viewport
121
121
  });
122
- return /*#__PURE__*/_jsxs("div", { ...selectProps(rest),
122
+ return /*#__PURE__*/_jsxs("div", {
123
+ ...selectProps(rest),
123
124
  children: [/*#__PURE__*/_jsx(Divider, {
124
125
  tokens: {
125
126
  color: themeTokens.dividerColor
@@ -173,15 +174,16 @@ const TermsAndConditions = /*#__PURE__*/forwardRef((_ref6, ref) => {
173
174
  })]
174
175
  });
175
176
  });
176
- TermsAndConditions.displayName = 'TermsAndConditions'; // If a language dictionary entry is provided, it must contain every key
177
+ TermsAndConditions.displayName = 'TermsAndConditions';
177
178
 
179
+ // If a language dictionary entry is provided, it must contain every key
178
180
  const dictionaryContentShape = PropTypes.shape({
179
181
  headingHide: PropTypes.string.isRequired,
180
182
  headingView: PropTypes.string.isRequired,
181
183
  nonIndexedTitle: PropTypes.string.isRequired
182
184
  });
183
- TermsAndConditions.propTypes = { ...selectedSystemPropTypes,
184
-
185
+ TermsAndConditions.propTypes = {
186
+ ...selectedSystemPropTypes,
185
187
  /**
186
188
  * Use the `copy` prop to either select provided English or French copy by passing 'en' or 'fr' respectively.
187
189
  *
@@ -192,26 +194,22 @@ TermsAndConditions.propTypes = { ...selectedSystemPropTypes,
192
194
  headingHide: PropTypes.string,
193
195
  nonIndexedTitle: PropTypes.string
194
196
  })]),
195
-
196
197
  /**
197
198
  * Sets the tokens for TermsAndConditions element.
198
199
  */
199
200
  tokens: getTokensPropType('TermsAndConditions'),
200
-
201
201
  /**
202
202
  * An array of nodes, strings, or a combination to be displayed in an ordered list.
203
203
  *
204
204
  * Each item in the array must have a corresponding superscript in the page.
205
205
  */
206
206
  indexedContent: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.node, PropTypes.string])),
207
-
208
207
  /**
209
208
  * An array of nodes, strings, or a combination to be displayed in an unordered list.
210
209
  *
211
210
  * nonIndexedContent do not have a corresponding superscript and instead apply to the page as a whole.
212
211
  */
213
212
  nonIndexedContent: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.node, PropTypes.string])),
214
-
215
213
  /**
216
214
  * Custom dictionary containing the labels to use for `TermsAndConditions`
217
215
  */
@@ -74,7 +74,6 @@ const Figcaption = /*#__PURE__*/styled.figcaption.withConfig({
74
74
  gap: figcaptionGap
75
75
  };
76
76
  });
77
-
78
77
  const Testimonial = _ref5 => {
79
78
  let {
80
79
  showDivider,
@@ -119,13 +118,11 @@ const Testimonial = _ref5 => {
119
118
  } = useThemeTokens('Testimonial', tokens, variant, {
120
119
  viewport
121
120
  });
122
-
123
121
  const getQuoteTestimonial = open => {
124
122
  let quote = '';
125
123
  if (copy === 'en') quote = open ? '\u201C' : '\u201D';else quote = open ? '\u00AB ' : ' \u00BB';
126
124
  return quote;
127
125
  };
128
-
129
126
  return /*#__PURE__*/_jsxs(TestimonialContainer, {
130
127
  testimonialContainerGap: testimonialContainerGap,
131
128
  ...selectProps(rest),
@@ -200,30 +197,25 @@ const Testimonial = _ref5 => {
200
197
  })]
201
198
  });
202
199
  };
203
-
204
- Testimonial.propTypes = { ...selectedSystemPropTypes,
200
+ Testimonial.propTypes = {
201
+ ...selectedSystemPropTypes,
205
202
  tokens: getTokensPropType('Testimonial'),
206
-
207
203
  /**
208
204
  * Testimonial content
209
205
  */
210
206
  testimonial: PropTypes.string.isRequired,
211
-
212
207
  /**
213
208
  * Testimonial author or source
214
209
  */
215
210
  title: PropTypes.string,
216
-
217
211
  /**
218
212
  * Additional information on the author or source
219
213
  */
220
214
  additionalInfo: PropTypes.string,
221
-
222
215
  /**
223
216
  * Testimonial style
224
217
  */
225
218
  testimonialStyle: PropTypes.oneOf(['large', 'heading']),
226
-
227
219
  /**
228
220
  * Whether to show or not dividers at the top and the bottom of the testimonial
229
221
  showDivider: PropTypes.bool,
@@ -231,7 +223,6 @@ Testimonial.propTypes = { ...selectedSystemPropTypes,
231
223
  * The src attribute for the Image component or custom JSX content to render instead
232
224
  */
233
225
  image: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
234
-
235
226
  /**
236
227
  * The src attribute for the `Image` component to be displayed on the testimonial
237
228
  * @deprecated please use the `image` prop instead
@@ -1,5 +1,4 @@
1
1
  var _withLinkRouter$propT, _withLinkRouter$propT2;
2
-
3
2
  import React from 'react';
4
3
  import PropTypes from 'prop-types';
5
4
  import { ChevronLink, selectSystemProps, useThemeTokens, Typography, withLinkRouter, Spacer, useViewport, getTokensPropType } from '@telus-uds/components-base';
@@ -8,16 +7,12 @@ import { htmlAttrs } from '../utils';
8
7
  import { jsx as _jsx } from "react/jsx-runtime";
9
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
9
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs]);
11
-
12
10
  const transform = property => (from, to) => keyframes(["from{", ":", ";}to{", ":", ";}"], property, from, property, to);
13
-
14
11
  const slideDown = property => function (from, to) {
15
12
  let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : to;
16
13
  return keyframes(["0%{", ":", ";}99%{", ":", ";}100%{", ":", ";}"], property, from, property, to, property, end);
17
14
  };
18
-
19
15
  const animation = props => css(["", " 1s ease-in-out 2s forwards,", " 1s ease-in-out 2s forwards,", " 1s ease-in-out 2s forwards,", " 1s ease-in-out 3.2s forwards;& *{animation:", " 1s ease-in-out 3s forwards;}& > a div{animation:", " 1s ease-in-out 3s forwards;}& > a svg{animation:", " 1s ease-in-out 3s forwards;}& > a div{animation:", " 1s ease-in-out 3s forwards;}"], slideDown('height')(`${props.animationHeightBefore}px`, `${props.animationHeightAfter}px`, 'auto'), transform('padding-bottom')(`${props.animationPaddingBottomBefore}px`, `${props.animationPaddingBottomAfter}px`), transform('padding-top')(`${props.animationPaddingTopBefore}px`, `${props.animationPaddingTopAfter}px`), transform('background')(props.animationBackgroundColorBefore, props.animationBackgroundColorAfter), transform('color')(props.animationColorBefore, props.animationColorAfter), transform('color')(props.animationDivColorBefore, props.animationDivColorAfter), transform('fill')(props.animationFillColorBefore, props.animationFillColorAfter), transform('color')(props.animationFillColorBefore, props.animationFillColorAfter));
20
-
21
16
  const ToastContainer = /*#__PURE__*/styled.div.withConfig({
22
17
  displayName: "Toast__ToastContainer",
23
18
  componentId: "components-web__sc-p78jdh-0"
@@ -42,7 +37,6 @@ const ToastContainer = /*#__PURE__*/styled.div.withConfig({
42
37
  } = _ref4;
43
38
  return containerGap;
44
39
  }, animation);
45
-
46
40
  const Toast = _ref5 => {
47
41
  let {
48
42
  toast,
@@ -72,8 +66,9 @@ const Toast = _ref5 => {
72
66
  ...extraTokens
73
67
  } = useThemeTokens('Toast', tokens, variant, {
74
68
  viewport
75
- }); // inherit ChevronLink tokens for animation colors
69
+ });
76
70
 
71
+ // inherit ChevronLink tokens for animation colors
77
72
  const {
78
73
  color: chevronDefaultColor
79
74
  } = useThemeTokens('ChevronLink', {}, {});
@@ -82,11 +77,9 @@ const Toast = _ref5 => {
82
77
  } = useThemeTokens('ChevronLink', {}, {
83
78
  inverse: true
84
79
  });
85
-
86
80
  if (!toast) {
87
81
  return null;
88
82
  }
89
-
90
83
  return /*#__PURE__*/_jsxs(ToastContainer, {
91
84
  containerBackgroundColor: containerBackgroundColor,
92
85
  containerGap: containerGap,
@@ -135,25 +128,21 @@ const Toast = _ref5 => {
135
128
  })]
136
129
  });
137
130
  };
138
-
139
- Toast.propTypes = { ...selectedSystemPropTypes,
131
+ Toast.propTypes = {
132
+ ...selectedSystemPropTypes,
140
133
  tokens: getTokensPropType('Toast'),
141
-
142
134
  /**
143
135
  * If true, the toast will be displayed
144
136
  */
145
137
  toast: PropTypes.bool,
146
-
147
138
  /**
148
139
  * The copy to display in the toast
149
140
  */
150
141
  copy: PropTypes.string.isRequired,
151
-
152
142
  /**
153
143
  * The headline to display in the toast (before copy)
154
144
  */
155
145
  headline: PropTypes.string,
156
-
157
146
  /**
158
147
  * The link to display in the toast (after copy)
159
148
  */
@@ -11,11 +11,9 @@ import { htmlAttrs } from '../../utils';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
13
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs]);
14
-
15
14
  const getIcon = icon => /*#__PURE__*/_jsx(Icon, {
16
15
  icon: icon
17
16
  });
18
-
19
17
  const ControlBarContainer = /*#__PURE__*/styled.div.withConfig({
20
18
  displayName: "ControlBar__ControlBarContainer",
21
19
  componentId: "components-web__sc-13y61ky-0"
@@ -80,7 +78,6 @@ const MenuContainer = /*#__PURE__*/styled.div.withConfig({
80
78
  marginLeft: menuMarginLeft
81
79
  };
82
80
  });
83
-
84
81
  const ControlBar = _ref4 => {
85
82
  let {
86
83
  videoPlayer,
@@ -137,7 +134,6 @@ const ControlBar = _ref4 => {
137
134
  } = useThemeTokens('VideoControlBar', tokens, variant, {
138
135
  viewport
139
136
  });
140
-
141
137
  const parseVideoQuality = () => {
142
138
  return sources.map(source => {
143
139
  if (!source.isFallback) {
@@ -146,11 +142,9 @@ const ControlBar = _ref4 => {
146
142
  value: source.qualityRank
147
143
  };
148
144
  }
149
-
150
145
  return {};
151
146
  });
152
147
  };
153
-
154
148
  const parseTracks = () => {
155
149
  const parsed = tracks.map((track, trackNumber) => {
156
150
  return {
@@ -164,7 +158,6 @@ const ControlBar = _ref4 => {
164
158
  });
165
159
  return parsed;
166
160
  };
167
-
168
161
  const menuContainerStyleProps = {
169
162
  menuBottom,
170
163
  menuRight,
@@ -256,8 +249,8 @@ const ControlBar = _ref4 => {
256
249
  })
257
250
  });
258
251
  };
259
-
260
- ControlBar.propTypes = { ...selectedSystemPropTypes,
252
+ ControlBar.propTypes = {
253
+ ...selectedSystemPropTypes,
261
254
  videoPlayer: PropTypes.object.isRequired,
262
255
  videoPlayerContainer: PropTypes.object.isRequired,
263
256
  sources: PropTypes.array.isRequired,
@@ -24,7 +24,6 @@ const StyledButton = /*#__PURE__*/styled.button.withConfig({
24
24
  }
25
25
  };
26
26
  });
27
-
28
27
  const VideoButton = _ref2 => {
29
28
  let {
30
29
  icon,
@@ -38,22 +37,19 @@ const VideoButton = _ref2 => {
38
37
  const {
39
38
  color
40
39
  } = useThemeTokens('VideoButton', tokens, variant);
41
-
42
40
  const handleOnKeyDown = event => {
43
- const key = event.key || event.keyCode; // Disables playing by space bar, as that can be used to click a button
41
+ const key = event.key || event.keyCode;
44
42
 
43
+ // Disables playing by space bar, as that can be used to click a button
45
44
  if (key === ' ' || key === 32) {
46
45
  event.stopPropagation();
47
46
  }
48
47
  };
49
-
50
48
  const handleClick = event => {
51
49
  var _rest$onClick;
52
-
53
50
  event.preventDefault();
54
51
  (_rest$onClick = rest.onClick) === null || _rest$onClick === void 0 ? void 0 : _rest$onClick.call(rest, event);
55
52
  };
56
-
57
53
  return /*#__PURE__*/_jsxs(StyledButton, {
58
54
  "aria-label": label,
59
55
  onKeyDown: handleOnKeyDown,
@@ -64,8 +60,8 @@ const VideoButton = _ref2 => {
64
60
  children: [icon, children]
65
61
  });
66
62
  };
67
-
68
- VideoButton.propTypes = { ...selectedSystemPropTypes,
63
+ VideoButton.propTypes = {
64
+ ...selectedSystemPropTypes,
69
65
  icon: PropTypes.element.isRequired,
70
66
  label: PropTypes.string.isRequired,
71
67
  disableFocus: PropTypes.bool.isRequired,
@@ -64,7 +64,6 @@ const CheckmarkContainer = /*#__PURE__*/styled.div.withConfig({
64
64
  }
65
65
  };
66
66
  });
67
-
68
67
  const VideoMenu = _ref3 => {
69
68
  let {
70
69
  menuLabel,
@@ -87,7 +86,6 @@ const VideoMenu = _ref3 => {
87
86
  checkMarkUnselectedColor,
88
87
  checkMarkIcon
89
88
  } = useThemeTokens('VideoMenu', tokens, variant);
90
-
91
89
  const getMenuItems = () => {
92
90
  return menuOptions.map(option => {
93
91
  if (option.name) {
@@ -122,19 +120,17 @@ const VideoMenu = _ref3 => {
122
120
  })]
123
121
  }, option.value);
124
122
  }
125
-
126
123
  return null;
127
124
  });
128
125
  };
129
-
130
126
  const handleOnKeyDown = event => {
131
- const key = event.key || event.keyCode; // Disables playing by space bar, as that can be used to click a button
127
+ const key = event.key || event.keyCode;
132
128
 
129
+ // Disables playing by space bar, as that can be used to click a button
133
130
  if (key === ' ' || key === 32) {
134
131
  event.stopPropagation();
135
132
  }
136
133
  };
137
-
138
134
  return /*#__PURE__*/_jsx(MenuContainer, {
139
135
  onKeyDown: handleOnKeyDown,
140
136
  padding: padding,
@@ -156,8 +152,8 @@ const VideoMenu = _ref3 => {
156
152
  })
157
153
  });
158
154
  };
159
-
160
- VideoMenu.propTypes = { ...selectedSystemPropTypes,
155
+ VideoMenu.propTypes = {
156
+ ...selectedSystemPropTypes,
161
157
  menuLabel: PropTypes.string.isRequired,
162
158
  menuOptions: PropTypes.array.isRequired,
163
159
  setSelection: PropTypes.func.isRequired,
@@ -15,7 +15,6 @@ const ProgressBarContainer = /*#__PURE__*/styled.div.withConfig({
15
15
  width: '100%',
16
16
  alignItems: 'center'
17
17
  });
18
-
19
18
  const sharedStyles = _ref => {
20
19
  let {
21
20
  thumbHeight,
@@ -43,7 +42,6 @@ const sharedStyles = _ref => {
43
42
  cursor: 'pointer',
44
43
  borderRadius: 1.3,
45
44
  background: `linear-gradient(to right, ${trackGradientStart} 0%,${trackGradientEnd} ${videoBufferDisplay - 0.01}% ,rgba(255,255,255,0.5) ${videoBufferDisplay}%)` // TODO: replace with opaque white from palette
46
-
47
45
  })
48
46
  };
49
47
  };
@@ -77,16 +75,19 @@ const StyledProgressBar = /*#__PURE__*/styled.input.attrs(_ref2 => {
77
75
  outline: 'none'
78
76
  },
79
77
  'input[type=range]&::-webkit-slider-thumb': sharedStyles(sharedProps).thumb,
80
- 'input[type=range]&::-moz-range-thumb': { ...sharedStyles(sharedProps).thumb,
78
+ 'input[type=range]&::-moz-range-thumb': {
79
+ ...sharedStyles(sharedProps).thumb,
81
80
  border: 'none'
82
81
  },
83
- 'input[type=range]&::-ms-thumb': { ...sharedStyles(sharedProps).thumb,
82
+ 'input[type=range]&::-ms-thumb': {
83
+ ...sharedStyles(sharedProps).thumb,
84
84
  margin: 0,
85
85
  border: 'none'
86
86
  },
87
87
  'input[type=range]&::-webkit-slider-runnable-track': sharedStyles(sharedProps).track(videoBufferDisplay),
88
88
  'input[type=range]&::-moz-range-track': sharedStyles(sharedProps).track(videoBufferDisplay),
89
- 'input[type=range]&::-ms-track': { ...sharedStyles(sharedProps).track(videoBufferDisplay),
89
+ 'input[type=range]&::-ms-track': {
90
+ ...sharedStyles(sharedProps).track(videoBufferDisplay),
90
91
  margin: '6px 0',
91
92
  border: 'none'
92
93
  },
@@ -108,14 +109,13 @@ const StyledTimestamp = /*#__PURE__*/styled.span.withConfig({
108
109
  return {
109
110
  margin
110
111
  };
111
- }); // TODO: unify with the helper from `VideoSplash`
112
-
112
+ });
113
+ // TODO: unify with the helper from `VideoSplash`
113
114
  function getTimestamp(duration) {
114
115
  const minutes = Math.floor(duration / 60);
115
116
  const seconds = Math.floor(duration - 60 * minutes);
116
117
  return `${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;
117
118
  }
118
-
119
119
  const VideoProgressBar = _ref5 => {
120
120
  let {
121
121
  copy = 'en',
@@ -142,11 +142,9 @@ const VideoProgressBar = _ref5 => {
142
142
  playing
143
143
  });
144
144
  const videoProgressBar = /*#__PURE__*/React.createRef();
145
-
146
145
  const handleVideoSkip = () => {
147
146
  setSeek(videoProgressBar.current.value);
148
147
  };
149
-
150
148
  const videoBufferDisplay = videoBufferEnd / videoLength * 100;
151
149
  const isVideoUnplayed = videoCurrentTime === -1;
152
150
  const currentTime = isVideoUnplayed ? 0 : videoCurrentTime;
@@ -161,7 +159,8 @@ const VideoProgressBar = _ref5 => {
161
159
  trackGradientEnd,
162
160
  rangeBackground
163
161
  };
164
- return /*#__PURE__*/_jsxs(ProgressBarContainer, { ...selectProps(rest),
162
+ return /*#__PURE__*/_jsxs(ProgressBarContainer, {
163
+ ...selectProps(rest),
165
164
  children: [/*#__PURE__*/_jsx(StyledTimestamp, {
166
165
  margin: `0 ${timestampMarginRight}px 0 ${timestampMarginLeft}px`,
167
166
  children: /*#__PURE__*/_jsx(Typography, {
@@ -192,8 +191,8 @@ const VideoProgressBar = _ref5 => {
192
191
  })]
193
192
  });
194
193
  };
195
-
196
- VideoProgressBar.propTypes = { ...selectedSystemPropTypes,
194
+ VideoProgressBar.propTypes = {
195
+ ...selectedSystemPropTypes,
197
196
  copy: PropTypes.oneOf(['en', 'fr']),
198
197
  videoLength: PropTypes.number.isRequired,
199
198
  videoCurrentTime: PropTypes.number.isRequired,
@@ -25,7 +25,6 @@ const VolumeSliderContainer = /*#__PURE__*/styled.div.withConfig({
25
25
  alignItems: 'center'
26
26
  };
27
27
  });
28
-
29
28
  const sharedStyles = _ref2 => {
30
29
  let {
31
30
  thumbHeight,
@@ -56,7 +55,6 @@ const sharedStyles = _ref2 => {
56
55
  })
57
56
  };
58
57
  };
59
-
60
58
  const StyledVolumeSlider = /*#__PURE__*/styled.input.attrs(_ref3 => {
61
59
  let {
62
60
  videoCurrentVolume
@@ -86,16 +84,19 @@ const StyledVolumeSlider = /*#__PURE__*/styled.input.attrs(_ref3 => {
86
84
  outline: 'none'
87
85
  },
88
86
  'input[type=range]&::-webkit-slider-thumb': sharedStyles(sharedProps).thumb,
89
- 'input[type=range]&::-moz-range-thumb': { ...sharedStyles.thumb,
87
+ 'input[type=range]&::-moz-range-thumb': {
88
+ ...sharedStyles.thumb,
90
89
  border: 'none'
91
90
  },
92
- 'input[type=range]&::-ms-thumb': { ...sharedStyles.thumb,
91
+ 'input[type=range]&::-ms-thumb': {
92
+ ...sharedStyles.thumb,
93
93
  margin: 0,
94
94
  border: 'none'
95
95
  },
96
96
  'input[type=range]&::-webkit-slider-runnable-track': sharedStyles(sharedProps).track(videoCurrentVolume),
97
97
  'input[type=range]&::-moz-range-track': sharedStyles(sharedProps).track(videoCurrentVolume),
98
- 'input[type=range]&::-ms-track': { ...sharedStyles(sharedProps).track(videoCurrentVolume),
98
+ 'input[type=range]&::-ms-track': {
99
+ ...sharedStyles(sharedProps).track(videoCurrentVolume),
99
100
  margin: '6px 0',
100
101
  border: 'none'
101
102
  },
@@ -107,7 +108,6 @@ const StyledVolumeSlider = /*#__PURE__*/styled.input.attrs(_ref3 => {
107
108
  }
108
109
  };
109
110
  });
110
-
111
111
  const VolumeSlider = _ref5 => {
112
112
  let {
113
113
  setVolume,
@@ -144,9 +144,7 @@ const VolumeSlider = _ref5 => {
144
144
  trackGradientEnd,
145
145
  rangeBackground
146
146
  };
147
-
148
147
  const handleVolumeChange = () => setVolume(refVolumeSlider.current.value);
149
-
150
148
  return /*#__PURE__*/_jsxs(VolumeSliderContainer, {
151
149
  compactModeThreshold: compactModeThreshold,
152
150
  videoPlayerWidth: videoPlayerWidth,
@@ -178,8 +176,8 @@ const VolumeSlider = _ref5 => {
178
176
  })]
179
177
  });
180
178
  };
181
-
182
- VolumeSlider.propTypes = { ...selectedSystemPropTypes,
179
+ VolumeSlider.propTypes = {
180
+ ...selectedSystemPropTypes,
183
181
  videoCurrentVolume: PropTypes.number.isRequired,
184
182
  setVolume: PropTypes.func.isRequired,
185
183
  videoIsMuted: PropTypes.bool.isRequired,
@@ -31,7 +31,6 @@ const StyledMiddleControlButton = /*#__PURE__*/styled.button.withConfig({
31
31
  alignItems: 'center'
32
32
  };
33
33
  });
34
-
35
34
  const MiddleControlButton = _ref2 => {
36
35
  let {
37
36
  icon: Icon,
@@ -62,8 +61,8 @@ const MiddleControlButton = _ref2 => {
62
61
  })
63
62
  });
64
63
  };
65
-
66
- MiddleControlButton.propTypes = { ...selectedSystemPropTypes,
64
+ MiddleControlButton.propTypes = {
65
+ ...selectedSystemPropTypes,
67
66
  icon: PropTypes.elementType.isRequired,
68
67
  isHidden: PropTypes.bool,
69
68
  onClick: PropTypes.func,