@telus-uds/components-web 2.43.0 → 3.0.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 (315) hide show
  1. package/.eslintrc.cjs +26 -0
  2. package/CHANGELOG.md +21 -2
  3. package/babel.config.cjs +4 -0
  4. package/jest.config.cjs +29 -0
  5. package/lib/Badge/Badge.js +21 -29
  6. package/lib/Badge/index.js +2 -10
  7. package/lib/BlockQuote/BlockQuote.js +31 -39
  8. package/lib/BlockQuote/index.js +2 -10
  9. package/lib/Breadcrumbs/Breadcrumbs.js +39 -49
  10. package/lib/Breadcrumbs/Item/Item.js +26 -34
  11. package/lib/Breadcrumbs/index.js +1 -13
  12. package/lib/Callout/Callout.js +19 -27
  13. package/lib/Callout/index.js +2 -10
  14. package/lib/Card/Card.js +44 -54
  15. package/lib/Card/CardContent.js +17 -25
  16. package/lib/Card/CardFooter.js +16 -24
  17. package/lib/Card/index.js +2 -10
  18. package/lib/Countdown/Countdown.js +34 -42
  19. package/lib/Countdown/Segment.js +26 -34
  20. package/lib/Countdown/constants.js +4 -14
  21. package/lib/Countdown/dictionary.js +2 -9
  22. package/lib/Countdown/index.js +2 -10
  23. package/lib/Countdown/types.js +18 -28
  24. package/lib/Countdown/useCountdown.js +4 -11
  25. package/lib/DatePicker/CalendarContainer.js +6 -12
  26. package/lib/DatePicker/DatePicker.js +105 -101
  27. package/lib/DatePicker/dictionary.js +1 -8
  28. package/lib/DatePicker/index.js +2 -10
  29. package/lib/DatePicker/reactDatesCss.js +3 -10
  30. package/lib/Disclaimer/Disclaimer.js +15 -23
  31. package/lib/Disclaimer/index.js +1 -13
  32. package/lib/ExpandCollapseMini/ExpandCollapseMini.js +16 -24
  33. package/lib/ExpandCollapseMini/ExpandCollapseMiniControl.js +17 -26
  34. package/lib/ExpandCollapseMini/index.js +2 -10
  35. package/lib/Footnote/Footnote.js +85 -95
  36. package/lib/Footnote/FootnoteLink.js +25 -33
  37. package/lib/Footnote/dictionary.js +2 -9
  38. package/lib/Footnote/index.js +4 -12
  39. package/lib/IconButton/IconButton.js +12 -20
  40. package/lib/IconButton/index.js +2 -10
  41. package/lib/Image/Image.js +17 -25
  42. package/lib/Image/index.js +6 -18
  43. package/lib/Image/server.js +4 -12
  44. package/lib/List/List.js +2 -9
  45. package/lib/List/ListItem.js +10 -18
  46. package/lib/List/index.js +4 -12
  47. package/lib/NavigationBar/NavigationBar.js +51 -59
  48. package/lib/NavigationBar/NavigationItem.js +19 -27
  49. package/lib/NavigationBar/NavigationSubMenu.js +34 -40
  50. package/lib/NavigationBar/collapseItems.js +1 -11
  51. package/lib/NavigationBar/index.js +4 -12
  52. package/lib/NavigationBar/resolveItemSelection.js +1 -8
  53. package/lib/OptimizeImage/OptimizeImage.js +26 -34
  54. package/lib/OptimizeImage/index.js +2 -10
  55. package/lib/OptimizeImage/utils/getFallbackUrl.js +3 -10
  56. package/lib/OptimizeImage/utils/getImageUrls.js +9 -16
  57. package/lib/OptimizeImage/utils/getOptimizedUrl.js +3 -10
  58. package/lib/OptimizeImage/utils/hasWebpSupport.js +1 -7
  59. package/lib/OptimizeImage/utils/index.js +5 -34
  60. package/lib/OptimizeImage/utils/isSvgUrl.js +1 -7
  61. package/lib/OrderedList/Item.js +28 -36
  62. package/lib/OrderedList/ItemBase.js +8 -16
  63. package/lib/OrderedList/OrderedList.js +22 -30
  64. package/lib/OrderedList/OrderedListBase.js +12 -20
  65. package/lib/OrderedList/constants.js +1 -8
  66. package/lib/OrderedList/index.js +4 -12
  67. package/lib/Paragraph/Paragraph.js +22 -30
  68. package/lib/Paragraph/index.js +2 -10
  69. package/lib/PreviewCard/AuthorDate.js +17 -21
  70. package/lib/PreviewCard/PreviewCard.js +40 -49
  71. package/lib/PreviewCard/index.js +2 -10
  72. package/lib/PriceLockup/PriceLockup.js +56 -64
  73. package/lib/PriceLockup/index.js +2 -10
  74. package/lib/PriceLockup/tokens.js +2 -9
  75. package/lib/Progress/ProgressBar.js +17 -24
  76. package/lib/Progress/index.js +4 -12
  77. package/lib/QuantitySelector/QuantitySelector.js +55 -63
  78. package/lib/QuantitySelector/SideButton.js +15 -23
  79. package/lib/QuantitySelector/dictionary.js +2 -9
  80. package/lib/QuantitySelector/index.js +2 -10
  81. package/lib/QuantitySelector/styles.js +4 -13
  82. package/lib/ResponsiveImage/ResponsiveImage.js +29 -37
  83. package/lib/ResponsiveImage/index.js +2 -10
  84. package/lib/Ribbon/Ribbon.js +22 -30
  85. package/lib/Ribbon/index.js +2 -10
  86. package/lib/SkeletonProvider/SkeletonImage.js +14 -22
  87. package/lib/SkeletonProvider/SkeletonProvider.js +17 -25
  88. package/lib/SkeletonProvider/SkeletonTypography.js +14 -22
  89. package/lib/SkeletonProvider/index.js +2 -10
  90. package/lib/Span/Span.js +23 -31
  91. package/lib/Span/index.js +2 -10
  92. package/lib/Spinner/Spinner.js +43 -51
  93. package/lib/Spinner/SpinnerContent.js +21 -29
  94. package/lib/Spinner/constants.js +4 -14
  95. package/lib/Spinner/index.js +2 -10
  96. package/lib/StoryCard/StoryCard.js +40 -49
  97. package/lib/StoryCard/index.js +2 -10
  98. package/lib/Table/Body.js +7 -15
  99. package/lib/Table/Cell.js +28 -38
  100. package/lib/Table/Header.js +11 -19
  101. package/lib/Table/Row.js +8 -16
  102. package/lib/Table/SubHeading.js +10 -18
  103. package/lib/Table/Table.js +26 -35
  104. package/lib/Table/index.js +12 -20
  105. package/lib/TermsAndConditions/ExpandCollapse.js +22 -30
  106. package/lib/TermsAndConditions/TermsAndConditions.js +52 -60
  107. package/lib/TermsAndConditions/dictionary.js +2 -9
  108. package/lib/TermsAndConditions/index.js +1 -13
  109. package/lib/Testimonial/Testimonial.js +37 -45
  110. package/lib/Testimonial/index.js +2 -10
  111. package/lib/Toast/Toast.js +32 -42
  112. package/lib/Toast/index.js +2 -10
  113. package/lib/Video/ControlBar/ControlBar.js +73 -81
  114. package/lib/Video/ControlBar/Controls/VideoButton/VideoButton.js +16 -24
  115. package/lib/Video/ControlBar/Controls/VideoMenu/VideoMenu.js +27 -35
  116. package/lib/Video/ControlBar/Controls/VideoProgressBar/VideoProgressBar.js +27 -36
  117. package/lib/Video/ControlBar/Controls/VolumeSlider/VolumeSlider.js +30 -38
  118. package/lib/Video/MiddleControlButton/MiddleControlButton.js +16 -24
  119. package/lib/Video/Video.js +74 -83
  120. package/lib/Video/index.js +2 -10
  121. package/lib/Video/videoText.js +1 -8
  122. package/lib/VideoPicker/VideoPicker.js +43 -53
  123. package/lib/VideoPicker/VideoPickerPlayer.js +17 -25
  124. package/lib/VideoPicker/VideoPickerThumbnail.js +38 -46
  125. package/lib/VideoPicker/VideoSlider.js +17 -26
  126. package/lib/VideoPicker/index.js +2 -10
  127. package/lib/VideoPicker/videoPropType.js +9 -18
  128. package/lib/WaffleGrid/WaffleGrid.js +33 -43
  129. package/lib/WaffleGrid/index.js +2 -10
  130. package/lib/WebVideo/WebVideo.js +42 -52
  131. package/lib/WebVideo/index.js +2 -10
  132. package/lib/WebVideo/utils/index.js +3 -11
  133. package/lib/baseExports.js +18 -431
  134. package/lib/index.js +38 -323
  135. package/lib/server.js +4 -12
  136. package/lib/shared/ConditionalWrapper/ConditionalWrapper.js +9 -17
  137. package/lib/shared/ConditionalWrapper/index.js +2 -10
  138. package/lib/shared/FullBleedContent/FullBleedContent.js +21 -29
  139. package/lib/shared/FullBleedContent/getFullBleedBorderRadius.js +1 -8
  140. package/lib/shared/FullBleedContent/index.js +4 -24
  141. package/lib/shared/FullBleedContent/useFullBleedContentProps.js +4 -11
  142. package/lib/shared/VideoSplash/SplashButton/SplashButton.js +19 -27
  143. package/lib/shared/VideoSplash/SplashButtonWithDetails/SplashButtonWithDetails.js +27 -35
  144. package/lib/shared/VideoSplash/VideoSplash.js +24 -32
  145. package/lib/shared/VideoSplash/helpers.js +5 -14
  146. package/lib/utils/index.js +10 -75
  147. package/lib/utils/isElementFocusable.js +1 -8
  148. package/lib/utils/logger.js +6 -15
  149. package/lib/utils/media.js +5 -11
  150. package/lib/utils/renderStructuredContent.js +8 -15
  151. package/lib/utils/ssr.js +5 -12
  152. package/lib/utils/theming/get-theme-from-server.js +2 -10
  153. package/lib/utils/theming/with-client-theme.js +9 -17
  154. package/lib/utils/theming/with-server-theme.js +11 -19
  155. package/lib/utils/transforms.js +3 -11
  156. package/lib/utils/useOverlaidPosition.js +15 -23
  157. package/lib/utils/useTypographyTheme.js +6 -13
  158. package/package.json +18 -20
  159. package/src/Card/Card.jsx +2 -2
  160. package/src/DatePicker/DatePicker.jsx +17 -4
  161. package/src/PreviewCard/AuthorDate.jsx +5 -3
  162. package/src/utils/logger.js +2 -2
  163. package/lib-module/Badge/Badge.js +0 -121
  164. package/lib-module/Badge/index.js +0 -2
  165. package/lib-module/BlockQuote/BlockQuote.js +0 -204
  166. package/lib-module/BlockQuote/index.js +0 -2
  167. package/lib-module/Breadcrumbs/Breadcrumbs.js +0 -250
  168. package/lib-module/Breadcrumbs/Item/Item.js +0 -175
  169. package/lib-module/Breadcrumbs/index.js +0 -1
  170. package/lib-module/Callout/Callout.js +0 -135
  171. package/lib-module/Callout/index.js +0 -2
  172. package/lib-module/Card/Card.js +0 -251
  173. package/lib-module/Card/CardContent.js +0 -90
  174. package/lib-module/Card/CardFooter.js +0 -78
  175. package/lib-module/Card/index.js +0 -2
  176. package/lib-module/Countdown/Countdown.js +0 -169
  177. package/lib-module/Countdown/Segment.js +0 -96
  178. package/lib-module/Countdown/constants.js +0 -4
  179. package/lib-module/Countdown/dictionary.js +0 -22
  180. package/lib-module/Countdown/index.js +0 -2
  181. package/lib-module/Countdown/types.js +0 -24
  182. package/lib-module/Countdown/useCountdown.js +0 -26
  183. package/lib-module/DatePicker/CalendarContainer.js +0 -208
  184. package/lib-module/DatePicker/DatePicker.js +0 -506
  185. package/lib-module/DatePicker/dictionary.js +0 -119
  186. package/lib-module/DatePicker/index.js +0 -2
  187. package/lib-module/DatePicker/reactDatesCss.js +0 -3
  188. package/lib-module/Disclaimer/Disclaimer.js +0 -54
  189. package/lib-module/Disclaimer/index.js +0 -1
  190. package/lib-module/ExpandCollapseMini/ExpandCollapseMini.js +0 -73
  191. package/lib-module/ExpandCollapseMini/ExpandCollapseMiniControl.js +0 -117
  192. package/lib-module/ExpandCollapseMini/index.js +0 -2
  193. package/lib-module/Footnote/Footnote.js +0 -632
  194. package/lib-module/Footnote/FootnoteLink.js +0 -118
  195. package/lib-module/Footnote/dictionary.js +0 -12
  196. package/lib-module/Footnote/index.js +0 -4
  197. package/lib-module/IconButton/IconButton.js +0 -55
  198. package/lib-module/IconButton/index.js +0 -2
  199. package/lib-module/Image/Image.js +0 -83
  200. package/lib-module/Image/index.js +0 -9
  201. package/lib-module/Image/server.js +0 -4
  202. package/lib-module/List/List.js +0 -2
  203. package/lib-module/List/ListItem.js +0 -28
  204. package/lib-module/List/index.js +0 -4
  205. package/lib-module/NavigationBar/NavigationBar.js +0 -224
  206. package/lib-module/NavigationBar/NavigationItem.js +0 -87
  207. package/lib-module/NavigationBar/NavigationSubMenu.js +0 -162
  208. package/lib-module/NavigationBar/collapseItems.js +0 -41
  209. package/lib-module/NavigationBar/index.js +0 -4
  210. package/lib-module/NavigationBar/resolveItemSelection.js +0 -16
  211. package/lib-module/OptimizeImage/OptimizeImage.js +0 -92
  212. package/lib-module/OptimizeImage/index.js +0 -2
  213. package/lib-module/OptimizeImage/utils/getFallbackUrl.js +0 -7
  214. package/lib-module/OptimizeImage/utils/getImageUrls.js +0 -12
  215. package/lib-module/OptimizeImage/utils/getOptimizedUrl.js +0 -17
  216. package/lib-module/OptimizeImage/utils/hasWebpSupport.js +0 -28
  217. package/lib-module/OptimizeImage/utils/index.js +0 -5
  218. package/lib-module/OptimizeImage/utils/isSvgUrl.js +0 -3
  219. package/lib-module/OrderedList/Item.js +0 -145
  220. package/lib-module/OrderedList/ItemBase.js +0 -27
  221. package/lib-module/OrderedList/OrderedList.js +0 -86
  222. package/lib-module/OrderedList/OrderedListBase.js +0 -45
  223. package/lib-module/OrderedList/constants.js +0 -2
  224. package/lib-module/OrderedList/index.js +0 -4
  225. package/lib-module/Paragraph/Paragraph.js +0 -90
  226. package/lib-module/Paragraph/index.js +0 -2
  227. package/lib-module/PreviewCard/AuthorDate.js +0 -57
  228. package/lib-module/PreviewCard/PreviewCard.js +0 -209
  229. package/lib-module/PreviewCard/index.js +0 -2
  230. package/lib-module/PriceLockup/PriceLockup.js +0 -335
  231. package/lib-module/PriceLockup/index.js +0 -2
  232. package/lib-module/PriceLockup/tokens.js +0 -55
  233. package/lib-module/Progress/ProgressBar.js +0 -83
  234. package/lib-module/Progress/index.js +0 -4
  235. package/lib-module/QuantitySelector/QuantitySelector.js +0 -261
  236. package/lib-module/QuantitySelector/SideButton.js +0 -70
  237. package/lib-module/QuantitySelector/dictionary.js +0 -26
  238. package/lib-module/QuantitySelector/index.js +0 -2
  239. package/lib-module/QuantitySelector/styles.js +0 -9
  240. package/lib-module/ResponsiveImage/ResponsiveImage.js +0 -95
  241. package/lib-module/ResponsiveImage/index.js +0 -2
  242. package/lib-module/Ribbon/Ribbon.js +0 -216
  243. package/lib-module/Ribbon/index.js +0 -2
  244. package/lib-module/SkeletonProvider/SkeletonImage.js +0 -39
  245. package/lib-module/SkeletonProvider/SkeletonProvider.js +0 -57
  246. package/lib-module/SkeletonProvider/SkeletonTypography.js +0 -38
  247. package/lib-module/SkeletonProvider/index.js +0 -2
  248. package/lib-module/Span/Span.js +0 -72
  249. package/lib-module/Span/index.js +0 -2
  250. package/lib-module/Spinner/Spinner.js +0 -215
  251. package/lib-module/Spinner/SpinnerContent.js +0 -94
  252. package/lib-module/Spinner/constants.js +0 -4
  253. package/lib-module/Spinner/index.js +0 -2
  254. package/lib-module/StoryCard/StoryCard.js +0 -212
  255. package/lib-module/StoryCard/index.js +0 -2
  256. package/lib-module/Table/Body.js +0 -17
  257. package/lib-module/Table/Cell.js +0 -176
  258. package/lib-module/Table/Header.js +0 -25
  259. package/lib-module/Table/Row.js +0 -19
  260. package/lib-module/Table/SubHeading.js +0 -23
  261. package/lib-module/Table/Table.js +0 -114
  262. package/lib-module/Table/index.js +0 -12
  263. package/lib-module/TermsAndConditions/ExpandCollapse.js +0 -153
  264. package/lib-module/TermsAndConditions/TermsAndConditions.js +0 -277
  265. package/lib-module/TermsAndConditions/dictionary.js +0 -16
  266. package/lib-module/TermsAndConditions/index.js +0 -1
  267. package/lib-module/Testimonial/Testimonial.js +0 -234
  268. package/lib-module/Testimonial/index.js +0 -2
  269. package/lib-module/Toast/Toast.js +0 -158
  270. package/lib-module/Toast/index.js +0 -2
  271. package/lib-module/Video/ControlBar/ControlBar.js +0 -288
  272. package/lib-module/Video/ControlBar/Controls/VideoButton/VideoButton.js +0 -70
  273. package/lib-module/Video/ControlBar/Controls/VideoMenu/VideoMenu.js +0 -163
  274. package/lib-module/Video/ControlBar/Controls/VideoProgressBar/VideoProgressBar.js +0 -203
  275. package/lib-module/Video/ControlBar/Controls/VolumeSlider/VolumeSlider.js +0 -191
  276. package/lib-module/Video/MiddleControlButton/MiddleControlButton.js +0 -71
  277. package/lib-module/Video/Video.js +0 -959
  278. package/lib-module/Video/index.js +0 -2
  279. package/lib-module/Video/videoText.js +0 -55
  280. package/lib-module/VideoPicker/VideoPicker.js +0 -190
  281. package/lib-module/VideoPicker/VideoPickerPlayer.js +0 -48
  282. package/lib-module/VideoPicker/VideoPickerThumbnail.js +0 -218
  283. package/lib-module/VideoPicker/VideoSlider.js +0 -82
  284. package/lib-module/VideoPicker/index.js +0 -2
  285. package/lib-module/VideoPicker/videoPropType.js +0 -10
  286. package/lib-module/WaffleGrid/WaffleGrid.js +0 -157
  287. package/lib-module/WaffleGrid/index.js +0 -2
  288. package/lib-module/WebVideo/WebVideo.js +0 -191
  289. package/lib-module/WebVideo/index.js +0 -2
  290. package/lib-module/WebVideo/utils/index.js +0 -50
  291. package/lib-module/baseExports.js +0 -19
  292. package/lib-module/index.js +0 -40
  293. package/lib-module/server.js +0 -5
  294. package/lib-module/shared/ConditionalWrapper/ConditionalWrapper.js +0 -22
  295. package/lib-module/shared/ConditionalWrapper/index.js +0 -2
  296. package/lib-module/shared/FullBleedContent/FullBleedContent.js +0 -101
  297. package/lib-module/shared/FullBleedContent/getFullBleedBorderRadius.js +0 -55
  298. package/lib-module/shared/FullBleedContent/index.js +0 -4
  299. package/lib-module/shared/FullBleedContent/useFullBleedContentProps.js +0 -55
  300. package/lib-module/shared/VideoSplash/SplashButton/SplashButton.js +0 -84
  301. package/lib-module/shared/VideoSplash/SplashButtonWithDetails/SplashButtonWithDetails.js +0 -223
  302. package/lib-module/shared/VideoSplash/VideoSplash.js +0 -65
  303. package/lib-module/shared/VideoSplash/helpers.js +0 -23
  304. package/lib-module/utils/index.js +0 -10
  305. package/lib-module/utils/isElementFocusable.js +0 -8
  306. package/lib-module/utils/logger.js +0 -18
  307. package/lib-module/utils/media.js +0 -39
  308. package/lib-module/utils/renderStructuredContent.js +0 -66
  309. package/lib-module/utils/ssr.js +0 -37
  310. package/lib-module/utils/theming/get-theme-from-server.js +0 -16
  311. package/lib-module/utils/theming/with-client-theme.js +0 -24
  312. package/lib-module/utils/theming/with-server-theme.js +0 -26
  313. package/lib-module/utils/transforms.js +0 -4
  314. package/lib-module/utils/useOverlaidPosition.js +0 -216
  315. package/lib-module/utils/useTypographyTheme.js +0 -24
@@ -1,39 +0,0 @@
1
- var _Skeleton$propTypes, _Skeleton$propTypes2, _Skeleton$propTypes3;
2
- import React from 'react';
3
- import PropTypes from 'prop-types';
4
- import { Skeleton } from '@telus-uds/components-base';
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- const SkeletonImage = /*#__PURE__*/React.forwardRef((_ref, ref) => {
7
- let {
8
- rounded,
9
- imgHeight,
10
- size,
11
- sizeIndex,
12
- // Size automatically from image height, unless any size prop is passed in
13
- sizePixels = !(size || sizeIndex) ? imgHeight : undefined,
14
- show,
15
- children
16
- } = _ref;
17
- if (!show) {
18
- return children;
19
- }
20
- const shape = rounded !== 'circle' ? 'box' : rounded;
21
- return /*#__PURE__*/_jsx(Skeleton, {
22
- size: size,
23
- sizePixels: sizePixels,
24
- sizeIndex: sizeIndex,
25
- shape: shape,
26
- ref: ref
27
- });
28
- });
29
- SkeletonImage.displayName = 'SkeletonImage';
30
- SkeletonImage.propTypes = {
31
- imgHeight: PropTypes.number,
32
- rounded: PropTypes.oneOf(['circle', 'corners']),
33
- size: (_Skeleton$propTypes = Skeleton.propTypes) === null || _Skeleton$propTypes === void 0 ? void 0 : _Skeleton$propTypes.size,
34
- sizeIndex: (_Skeleton$propTypes2 = Skeleton.propTypes) === null || _Skeleton$propTypes2 === void 0 ? void 0 : _Skeleton$propTypes2.sizeIndex,
35
- sizePixels: (_Skeleton$propTypes3 = Skeleton.propTypes) === null || _Skeleton$propTypes3 === void 0 ? void 0 : _Skeleton$propTypes3.sizePixels,
36
- show: PropTypes.bool.isRequired,
37
- children: PropTypes.node
38
- };
39
- export default SkeletonImage;
@@ -1,57 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Typography } from '@telus-uds/components-base';
4
- import Image from '../Image';
5
- import SkeletonTypography from './SkeletonTypography';
6
- import SkeletonImage from './SkeletonImage';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { Fragment as _Fragment } from "react/jsx-runtime";
9
- const SkeletonProvider = _ref => {
10
- let {
11
- children,
12
- show
13
- } = _ref;
14
- if (!show) {
15
- return children;
16
- }
17
- const mapChild = child => {
18
- if (!child) {
19
- return null;
20
- }
21
- let childElement = child;
22
- if (childElement.props && 'children' in childElement.props) {
23
- const {
24
- children: elementChildren
25
- } = childElement.props;
26
- const mappedChildren = Array.isArray(elementChildren) ? elementChildren.map(mapChild) : mapChild(elementChildren);
27
- childElement = /*#__PURE__*/React.cloneElement(childElement, {
28
- children: mappedChildren
29
- });
30
- }
31
- if (childElement.type === Typography) {
32
- return /*#__PURE__*/_jsx(SkeletonTypography, {
33
- ...childElement.props.skeleton,
34
- show: show,
35
- children: childElement
36
- });
37
- }
38
- if (childElement.type === Image) {
39
- return /*#__PURE__*/_jsx(SkeletonImage, {
40
- ...childElement.props.skeleton,
41
- imgHeight: childElement.props.height,
42
- rounded: childElement.props.rounded,
43
- show: show,
44
- children: childElement
45
- });
46
- }
47
- return childElement;
48
- };
49
- return /*#__PURE__*/_jsx(_Fragment, {
50
- children: React.Children.map(children, mapChild)
51
- });
52
- };
53
- SkeletonProvider.propTypes = {
54
- show: PropTypes.bool.isRequired,
55
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]).isRequired
56
- };
57
- export default SkeletonProvider;
@@ -1,38 +0,0 @@
1
- var _Skeleton$propTypes, _Skeleton$propTypes2, _Skeleton$propTypes3, _Skeleton$propTypes4, _Skeleton$propTypes5;
2
- import React from 'react';
3
- import PropTypes from 'prop-types';
4
- import { Skeleton } from '@telus-uds/components-base';
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- const SkeletonTypography = /*#__PURE__*/React.forwardRef((_ref, ref) => {
7
- let {
8
- show,
9
- size,
10
- sizeIndex,
11
- sizePixels,
12
- characters,
13
- lines,
14
- children
15
- } = _ref;
16
- if (!show) {
17
- return children;
18
- }
19
- return /*#__PURE__*/_jsx(Skeleton, {
20
- size: size,
21
- sizeIndex: sizeIndex,
22
- sizePixels: sizePixels,
23
- characters: characters,
24
- lines: lines,
25
- ref: ref
26
- });
27
- });
28
- SkeletonTypography.displayName = 'SkeletonTypography';
29
- SkeletonTypography.propTypes = {
30
- show: PropTypes.bool.isRequired,
31
- children: PropTypes.node,
32
- size: (_Skeleton$propTypes = Skeleton.propTypes) === null || _Skeleton$propTypes === void 0 ? void 0 : _Skeleton$propTypes.size,
33
- sizeIndex: (_Skeleton$propTypes2 = Skeleton.propTypes) === null || _Skeleton$propTypes2 === void 0 ? void 0 : _Skeleton$propTypes2.sizeIndex,
34
- sizePixels: (_Skeleton$propTypes3 = Skeleton.propTypes) === null || _Skeleton$propTypes3 === void 0 ? void 0 : _Skeleton$propTypes3.sizePixels,
35
- characters: (_Skeleton$propTypes4 = Skeleton.propTypes) === null || _Skeleton$propTypes4 === void 0 ? void 0 : _Skeleton$propTypes4.characters,
36
- lines: (_Skeleton$propTypes5 = Skeleton.propTypes) === null || _Skeleton$propTypes5 === void 0 ? void 0 : _Skeleton$propTypes5.lines
37
- };
38
- export default SkeletonTypography;
@@ -1,2 +0,0 @@
1
- import SkeletonProvider from './SkeletonProvider';
2
- export default SkeletonProvider;
@@ -1,72 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import { getTokensPropType, selectSystemProps } from '@telus-uds/components-base';
5
- import { htmlAttrs, useTypographyTheme } from '../utils';
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs]);
8
- const StyledSpan = /*#__PURE__*/styled.span.withConfig({
9
- displayName: "Span__StyledSpan",
10
- componentId: "components-web__sc-o7sihn-0"
11
- })(["", "};"], _ref => {
12
- let {
13
- flex
14
- } = _ref;
15
- return flex ? 'display: inline-flex' : '';
16
- });
17
-
18
- /**
19
- * Text as an HTML ```<span>``` element.
20
- *
21
- * Span may be used in cases where an inline span or direct access to HTML attributes is required.
22
- * In most cases, `Typography` should be used for text, or Paragraph for body text.
23
- */
24
- const Span = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
25
- let {
26
- children,
27
- variant,
28
- tokens,
29
- testID,
30
- flex,
31
- ...rest
32
- } = _ref2;
33
- const style = useTypographyTheme(variant, tokens);
34
- return /*#__PURE__*/_jsx(StyledSpan, {
35
- "data-testid": testID,
36
- flex: flex,
37
- style: style,
38
- ref: ref,
39
- ...selectProps(rest),
40
- children: children
41
- });
42
- });
43
- Span.displayName = 'Span';
44
- Span.propTypes = {
45
- ...selectedSystemPropTypes,
46
- children: PropTypes.node.isRequired,
47
- /**
48
- * Adds `data-testid` attribute for testing
49
- */
50
- testID: PropTypes.string,
51
- /**
52
- * Sets display to inline-flex so that children are laid out using the flex model.
53
- * Use this if the span contains children that expect to be inside a flex container.
54
- */
55
- flex: PropTypes.bool,
56
- /**
57
- * Span takes the same tokens overrides as Typography
58
- */
59
- tokens: getTokensPropType('Typography'),
60
- /**
61
- * Span can take any of Typography's theme variants
62
- */
63
- variant: PropTypes.exact({
64
- bold: PropTypes.bool,
65
- colour: PropTypes.oneOf(['secondary', 'tertiary']),
66
- compact: PropTypes.bool,
67
- inverse: PropTypes.bool,
68
- size: PropTypes.oneOf(['micro', 'small', 'large', 'eyebrow', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'display1', 'display2']),
69
- weight: PropTypes.oneOf(['semibold', 'bold'])
70
- })
71
- };
72
- export default Span;
@@ -1,2 +0,0 @@
1
- import Span from './Span';
2
- export default Span;
@@ -1,215 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import { selectSystemProps, useScrollBlocking, useThemeTokens, getTokensPropType } from '@telus-uds/components-base';
5
- import { Portal } from '@gorhom/portal';
6
- import SpinnerContent from './SpinnerContent';
7
- import { htmlAttrs, media } from '../utils';
8
- import { BACKDROP_OPACITY, BACKDROP_Z_INDEX } from './constants';
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs]);
12
- const SpinnerContainer = /*#__PURE__*/styled.div.withConfig({
13
- displayName: "Spinner__SpinnerContainer",
14
- componentId: "components-web__sc-116rqck-0"
15
- })(_ref => {
16
- let {
17
- inline,
18
- fullScreen
19
- } = _ref;
20
- return {
21
- position: 'relative',
22
- ...(inline && {
23
- display: 'block',
24
- ...media().from('md').css({
25
- display: 'inline-block'
26
- })
27
- }),
28
- ...(fullScreen && {
29
- top: '50%',
30
- transform: 'translateY(-50%)'
31
- })
32
- };
33
- });
34
- const ContentOverlay = /*#__PURE__*/styled.div.withConfig({
35
- displayName: "Spinner__ContentOverlay",
36
- componentId: "components-web__sc-116rqck-1"
37
- })({
38
- position: 'absolute',
39
- width: '100%',
40
- height: '100%',
41
- zIndex: BACKDROP_Z_INDEX
42
- });
43
- const FullscreenOverlay = /*#__PURE__*/styled.div.withConfig({
44
- displayName: "Spinner__FullscreenOverlay",
45
- componentId: "components-web__sc-116rqck-2"
46
- })(_ref2 => {
47
- let {
48
- fullScreenOverLayBackground
49
- } = _ref2;
50
- return {
51
- position: 'fixed',
52
- width: '100vw',
53
- height: '100vh',
54
- top: 0,
55
- left: 0,
56
- zIndex: BACKDROP_Z_INDEX,
57
- backgroundColor: fullScreenOverLayBackground
58
- };
59
- });
60
- const OpaqueContainer = /*#__PURE__*/styled.div.withConfig({
61
- displayName: "Spinner__OpaqueContainer",
62
- componentId: "components-web__sc-116rqck-3"
63
- })({
64
- opacity: BACKDROP_OPACITY
65
- });
66
- const recursiveMap = (children, fn) => React.Children.map(children, child => {
67
- if (! /*#__PURE__*/React.isValidElement(child)) {
68
- return child;
69
- }
70
- if (child.props.children) {
71
- return fn( /*#__PURE__*/React.cloneElement(child, {
72
- children: recursiveMap(child.props.children, fn)
73
- }));
74
- }
75
- return fn(child);
76
- });
77
-
78
- /**
79
- * Loading indicator.
80
- */
81
- const Spinner = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
82
- let {
83
- children,
84
- fullScreen = false,
85
- inline = false,
86
- label,
87
- labelPosition,
88
- show = false,
89
- isStatic = false,
90
- tokens,
91
- variant = {},
92
- ...rest
93
- } = _ref3;
94
- const {
95
- fullScreenOverLayBackground,
96
- size,
97
- thickness
98
- } = useThemeTokens('Spinner', tokens, variant);
99
- const {
100
- size: sizeVariant = 'large'
101
- } = variant;
102
- useScrollBlocking([fullScreen, show]);
103
- if (!show) {
104
- return children ?? null;
105
- }
106
-
107
- // Full screen spinner
108
- if (fullScreen) {
109
- return /*#__PURE__*/_jsx(Portal, {
110
- children: /*#__PURE__*/_jsx(FullscreenOverlay, {
111
- fullScreenOverLayBackground: fullScreenOverLayBackground,
112
- children: /*#__PURE__*/_jsx(SpinnerContainer, {
113
- inline: inline,
114
- fullScreen: fullScreen,
115
- "aria-live": "assertive",
116
- ...selectProps(rest),
117
- children: /*#__PURE__*/_jsx(SpinnerContent, {
118
- label: label,
119
- labelPosition: labelPosition,
120
- overlay: true,
121
- size: size,
122
- thickness: thickness,
123
- sizeVariant: sizeVariant,
124
- isStatic: isStatic
125
- })
126
- })
127
- })
128
- });
129
- }
130
-
131
- // Overlay spinner
132
- if (children) {
133
- return /*#__PURE__*/_jsxs(SpinnerContainer, {
134
- inline: inline,
135
- "aria-live": "assertive",
136
- ...selectProps(rest),
137
- children: [/*#__PURE__*/_jsx(SpinnerContent, {
138
- label: label,
139
- labelPosition: labelPosition,
140
- overlay: true,
141
- size: size,
142
- thickness: thickness,
143
- sizeVariant: sizeVariant,
144
- isStatic: isStatic
145
- }), /*#__PURE__*/_jsx(ContentOverlay, {}), /*#__PURE__*/_jsx(OpaqueContainer, {
146
- inert: "true",
147
- children: recursiveMap(children, c => {
148
- if (c) {
149
- return /*#__PURE__*/React.cloneElement(c, {
150
- tabIndex: '-1',
151
- 'aria-hidden': 'true'
152
- });
153
- }
154
- return undefined;
155
- })
156
- })]
157
- });
158
- }
159
-
160
- // Standalone spinner
161
- return /*#__PURE__*/_jsx(SpinnerContainer, {
162
- ref: ref,
163
- ...selectProps(rest),
164
- children: /*#__PURE__*/_jsx(SpinnerContent, {
165
- label: label,
166
- labelPosition: labelPosition,
167
- size: size,
168
- thickness: thickness,
169
- sizeVariant: sizeVariant,
170
- isStatic: isStatic
171
- })
172
- });
173
- });
174
- Spinner.displayName = 'Spinner';
175
- Spinner.propTypes = {
176
- ...selectedSystemPropTypes,
177
- tokens: getTokensPropType('Spinner'),
178
- /**
179
- * Content to be overlaid while the spinner is active. Can be text, any HTML element,
180
- * or any component.
181
- */
182
- children: PropTypes.node,
183
- /**
184
- * Enables body locking.
185
- */
186
- fullScreen: PropTypes.bool,
187
- /**
188
- * Set the inline prop to true if the Spinner should only cover its children; if
189
- * the Spinner should cover the full width of its parent regardless of the size of
190
- * its children, inline should be set to false
191
- */
192
- inline: PropTypes.bool,
193
- /**
194
- * Communicates a message to assistive technology while visible. This same message
195
- * will appear underneath the spinner when its `size` is `large`.
196
- */
197
- label: PropTypes.string.isRequired,
198
- /**
199
- * The size of the spinner
200
- */
201
- // size: PropTypes.oneOf(['large', 'small']),
202
- /**
203
- * Whether or not to render the spinner.
204
- */
205
- show: PropTypes.bool,
206
- /**
207
- * If true, it should render a static spinner
208
- */
209
- isStatic: PropTypes.bool,
210
- /**
211
- * Determine where the label of the spinner should be placed, left, right, bottom or top.
212
- */
213
- labelPosition: PropTypes.string
214
- };
215
- export default Spinner;
@@ -1,94 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import { ActivityIndicator, StackView, Typography, selectSystemProps } from '@telus-uds/components-base';
5
- import { htmlAttrs } from '../utils';
6
- import { BACKDROP_Z_INDEX, LARGE } from './constants';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { jsxs as _jsxs } from "react/jsx-runtime";
9
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs]);
10
- const Container = /*#__PURE__*/styled.div.withConfig({
11
- displayName: "SpinnerContent__Container",
12
- componentId: "components-web__sc-1c8bd8e-0"
13
- })(_ref => {
14
- let {
15
- overlay
16
- } = _ref;
17
- return {
18
- display: 'inline-flex',
19
- flexDirection: 'column',
20
- alignItems: 'center',
21
- ...(overlay && {
22
- position: 'absolute',
23
- top: '50%',
24
- left: '50%',
25
- transform: 'translate(-50%, -50%)',
26
- zIndex: BACKDROP_Z_INDEX
27
- })
28
- };
29
- });
30
- const SpinnerContent = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
31
- let {
32
- label,
33
- labelPosition,
34
- overlay = false,
35
- sizeVariant,
36
- size,
37
- thickness,
38
- isStatic,
39
- ...rest
40
- } = _ref2;
41
- const labelMapping = {
42
- top: 'column-reverse',
43
- bottom: 'column',
44
- left: 'row-reverse',
45
- right: 'row'
46
- };
47
- return /*#__PURE__*/_jsx(Container, {
48
- overlay: overlay,
49
- ref: ref,
50
- children: /*#__PURE__*/_jsxs(StackView, {
51
- space: 3,
52
- tokens: {
53
- alignItems: 'center'
54
- },
55
- direction: labelMapping[labelPosition],
56
- children: [/*#__PURE__*/_jsx(ActivityIndicator, {
57
- label: label,
58
- tokens: {
59
- size,
60
- thickness
61
- },
62
- isStatic: isStatic,
63
- ...selectProps(rest)
64
- }), sizeVariant === LARGE && /*#__PURE__*/_jsx(Typography, {
65
- children: label
66
- })]
67
- })
68
- });
69
- });
70
- SpinnerContent.displayName = 'SpinnerContent';
71
- SpinnerContent.propTypes = {
72
- ...selectedSystemPropTypes,
73
- /**
74
- * Communicates a message to assistive technology while visible. This same message will appear underneath the spinner when its `size` is `large`.
75
- */
76
- label: PropTypes.string.isRequired,
77
- /**
78
- * Whether the container has to have an overlay styling.
79
- */
80
- overlay: PropTypes.bool,
81
- /**
82
- * Size (width and height) of the spinner.
83
- */
84
- size: PropTypes.number,
85
- /**
86
- * The size of the spinner
87
- */
88
- sizeVariant: PropTypes.oneOf(['large', 'small']),
89
- /**
90
- * If true, it should render a static spinner
91
- */
92
- isStatic: PropTypes.bool
93
- };
94
- export default SpinnerContent;
@@ -1,4 +0,0 @@
1
- export const BACKDROP_OPACITY = 0.06;
2
- export const BACKDROP_Z_INDEX = 1400;
3
- export const LARGE = 'large';
4
- export const SMALL = 'small';
@@ -1,2 +0,0 @@
1
- import Spinner from './Spinner';
2
- export default Spinner;