@telus-uds/components-web 2.44.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 +13 -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 +94 -103
  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 +1 -2
  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 -519
  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,335 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { A11yText, Divider, selectSystemProps, Typography, useThemeTokens, useViewport, getTokensPropType } from '@telus-uds/components-base';
4
- import styled from 'styled-components';
5
- import FootnoteLink from '../Footnote/FootnoteLink';
6
- import getTypographyTokens from './tokens';
7
- import { htmlAttrs, warn } from '../utils';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { Fragment as _Fragment } from "react/jsx-runtime";
10
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs]);
12
- const PriceLockupContainer = /*#__PURE__*/styled.div.withConfig({
13
- displayName: "PriceLockup__PriceLockupContainer",
14
- componentId: "components-web__sc-1x6duay-0"
15
- })(["align-items:", ";display:flex;flex-direction:column;width:fit-content;"], _ref => {
16
- let {
17
- alignItemsText
18
- } = _ref;
19
- return alignItemsText;
20
- });
21
- const PriceContainer = /*#__PURE__*/styled.div.withConfig({
22
- displayName: "PriceLockup__PriceContainer",
23
- componentId: "components-web__sc-1x6duay-1"
24
- })(["display:flex;margin-bottom:", ";"], _ref2 => {
25
- let {
26
- priceMarginBottom
27
- } = _ref2;
28
- return priceMarginBottom;
29
- });
30
- const FootnoteContainer = /*#__PURE__*/styled.div.withConfig({
31
- displayName: "PriceLockup__FootnoteContainer",
32
- componentId: "components-web__sc-1x6duay-2"
33
- })(["display:flex;margin-top:", ";gap:", ";"], _ref3 => {
34
- let {
35
- footnoteMarginTop
36
- } = _ref3;
37
- return footnoteMarginTop;
38
- }, _ref4 => {
39
- let {
40
- footnoteGap
41
- } = _ref4;
42
- return footnoteGap;
43
- });
44
- const BottomTextContainer = /*#__PURE__*/styled.div.withConfig({
45
- displayName: "PriceLockup__BottomTextContainer",
46
- componentId: "components-web__sc-1x6duay-3"
47
- })(["margin-top:", ";"], _ref5 => {
48
- let {
49
- bottomTextMarginTop
50
- } = _ref5;
51
- return bottomTextMarginTop;
52
- });
53
- const BottomLinksContainer = /*#__PURE__*/styled.div.withConfig({
54
- displayName: "PriceLockup__BottomLinksContainer",
55
- componentId: "components-web__sc-1x6duay-4"
56
- })(["align-self:center;margin-left:", ";"], _ref6 => {
57
- let {
58
- bottomLinksMarginLeft
59
- } = _ref6;
60
- return bottomLinksMarginLeft;
61
- });
62
- const TopTextContainer = /*#__PURE__*/styled.div.withConfig({
63
- displayName: "PriceLockup__TopTextContainer",
64
- componentId: "components-web__sc-1x6duay-5"
65
- })(["margin-bottom:", ";"], _ref7 => {
66
- let {
67
- topTextMarginBottom
68
- } = _ref7;
69
- return topTextMarginBottom;
70
- });
71
- const PriceTextContainer = /*#__PURE__*/styled.div.withConfig({
72
- displayName: "PriceLockup__PriceTextContainer",
73
- componentId: "components-web__sc-1x6duay-6"
74
- })(["display:flex;flex-direction:", ";"], _ref8 => {
75
- let {
76
- ratePosition
77
- } = _ref8;
78
- return ratePosition === 'bottom' ? 'column' : 'row';
79
- });
80
- const RateContainer = /*#__PURE__*/styled.div.withConfig({
81
- displayName: "PriceLockup__RateContainer",
82
- componentId: "components-web__sc-1x6duay-7"
83
- })(["display:flex;"]);
84
- const RateTextContainer = /*#__PURE__*/styled.div.withConfig({
85
- displayName: "PriceLockup__RateTextContainer",
86
- componentId: "components-web__sc-1x6duay-8"
87
- })(["align-self:", ";"], _ref9 => {
88
- let {
89
- ratePosition
90
- } = _ref9;
91
- return ratePosition === 'bottom' ? 'flex-start' : 'flex-end';
92
- });
93
- const StrikeThroughContainer = /*#__PURE__*/styled.div.withConfig({
94
- displayName: "PriceLockup__StrikeThroughContainer",
95
- componentId: "components-web__sc-1x6duay-9"
96
- })(["display:flex;position:relative;align-items:center;::before{content:'';width:100%;top:", ";height:", ";background:", ";position:absolute;}"], _ref10 => {
97
- let {
98
- strikeThroughPosition
99
- } = _ref10;
100
- return `${strikeThroughPosition}px`;
101
- }, _ref11 => {
102
- let {
103
- strikeThroughHeight
104
- } = _ref11;
105
- return `${strikeThroughHeight}px`;
106
- }, _ref12 => {
107
- let {
108
- strikeThroughColor
109
- } = _ref12;
110
- return strikeThroughColor;
111
- });
112
- const selectFootnoteLinkStyles = _ref13 => {
113
- let {
114
- footnoteLinkColor,
115
- footnoteLinkFontName,
116
- footnoteLinkFontWeight,
117
- footnoteLinkLineHeight
118
- } = _ref13;
119
- return {
120
- color: footnoteLinkColor,
121
- fontName: footnoteLinkFontName,
122
- fontWeight: footnoteLinkFontWeight,
123
- lineHeight: footnoteLinkLineHeight
124
- };
125
- };
126
- const selectStrikeThroughTokens = _ref14 => {
127
- let {
128
- strikeThroughPosition,
129
- strikeThroughHeight,
130
- strikeThroughColor
131
- } = _ref14;
132
- return {
133
- strikeThroughHeight,
134
- strikeThroughPosition,
135
- strikeThroughColor
136
- };
137
- };
138
- const PriceLockup = /*#__PURE__*/React.forwardRef((_ref15, ref) => {
139
- let {
140
- size = 'medium',
141
- signDirection = 'left',
142
- footnoteLinks = [],
143
- topText,
144
- price,
145
- currencySymbol = '$',
146
- rateText,
147
- ratePosition = 'right',
148
- bottomText,
149
- onClickFootnote,
150
- strikeThrough,
151
- a11yText,
152
- tokens: priceLockupTokens,
153
- variant = {},
154
- ...rest
155
- } = _ref15;
156
- const viewport = useViewport();
157
- const {
158
- footnoteMarginTop,
159
- footnoteGap,
160
- bottomTextMarginTop,
161
- priceMarginBottom,
162
- bottomLinksMarginLeft,
163
- topTextMarginBottom,
164
- fontColor,
165
- dividerColor,
166
- footnoteLinkFontSize,
167
- alignItemsText,
168
- ...themeTokens
169
- } = useThemeTokens('PriceLockup', priceLockupTokens, {
170
- ...variant,
171
- size
172
- }, {
173
- viewport,
174
- strikeThrough
175
- });
176
- const typographyTokens = getTypographyTokens(themeTokens);
177
- const priceString = String(price);
178
- const lastDotPosition = priceString.lastIndexOf('.');
179
- const lastCommaPosition = priceString.lastIndexOf(',');
180
- const [separator, separatorPosition] = lastDotPosition > lastCommaPosition ? ['.', lastDotPosition] : [',', lastCommaPosition];
181
-
182
- // If the separator is at the fourth character from the end of the string or more, it's most probably
183
- // a part of the amount, and the cents are not included in the price string
184
- const hasCents = separatorPosition !== -1 && separatorPosition >= priceString.length - 3;
185
- const amount = hasCents ? priceString.substring(0, separatorPosition) : priceString;
186
- const cents = hasCents ? priceString.substring(separatorPosition + 1) : null;
187
- const renderTypography = (value, tokens, position) => {
188
- const customProps = position === 'bottom' ? {
189
- variant: {
190
- size: 'micro'
191
- },
192
- tokens: {
193
- color: fontColor
194
- }
195
- } : {
196
- tokens: {
197
- ...tokens,
198
- color: fontColor
199
- }
200
- };
201
- return /*#__PURE__*/_jsx(Typography, {
202
- ...customProps,
203
- children: value
204
- });
205
- };
206
- const renderCurrencySymbol = () => renderTypography(`${currencySymbol}`, typographyTokens.dollarSign);
207
- const renderFootnoteLinks = () => footnoteLinks && footnoteLinks.length > 0 ? /*#__PURE__*/_jsx(FootnoteLink, {
208
- fontSize: footnoteLinkFontSize,
209
- tokens: selectFootnoteLinkStyles(themeTokens),
210
- number: footnoteLinks,
211
- onClick: onClickFootnote
212
- }) : null;
213
- const renderAmount = () => {
214
- const amountComponent = renderTypography(amount, typographyTokens.amount);
215
- if (strikeThrough) {
216
- return /*#__PURE__*/_jsxs(_Fragment, {
217
- children: [/*#__PURE__*/_jsx(A11yText, {
218
- text: a11yText
219
- }), /*#__PURE__*/_jsx(StrikeThroughContainer, {
220
- ...selectStrikeThroughTokens(themeTokens),
221
- children: amountComponent
222
- })]
223
- });
224
- }
225
- return amountComponent;
226
- };
227
- const renderPrice = () => /*#__PURE__*/_jsxs(_Fragment, {
228
- children: [/*#__PURE__*/_jsxs(PriceContainer, {
229
- priceMarginBottom: `${priceMarginBottom}px`,
230
- children: [/*#__PURE__*/_jsxs(PriceTextContainer, {
231
- ratePosition: ratePosition,
232
- children: [/*#__PURE__*/_jsxs(RateContainer, {
233
- children: [signDirection === 'left' && renderCurrencySymbol(), renderAmount(), cents && renderTypography(`${separator}${cents}`, typographyTokens.cents), signDirection === 'right' && /*#__PURE__*/_jsxs(_Fragment, {
234
- children: ["\xA0", renderCurrencySymbol()]
235
- })]
236
- }), rateText && /*#__PURE__*/_jsx(RateTextContainer, {
237
- ratePosition: ratePosition,
238
- children: renderTypography(rateText, typographyTokens.rate, ratePosition)
239
- })]
240
- }), !bottomText && footnoteLinks.length <= 3 && /*#__PURE__*/_jsx(BottomLinksContainer, {
241
- bottomLinksMarginLeft: `${bottomLinksMarginLeft}px`,
242
- children: renderFootnoteLinks()
243
- })]
244
- }), !bottomText && footnoteLinks.length > 3 && renderFootnoteLinks()]
245
- });
246
- const renderFootnoteContent = () => /*#__PURE__*/_jsxs(_Fragment, {
247
- children: [/*#__PURE__*/_jsxs(FootnoteContainer, {
248
- footnoteMarginTop: `${footnoteMarginTop}px`,
249
- footnoteGap: `${footnoteGap}px`,
250
- children: [/*#__PURE__*/_jsx(BottomTextContainer, {
251
- bottomTextMarginTop: `${bottomTextMarginTop}px`,
252
- children: renderTypography(bottomText, typographyTokens.bottomText)
253
- }), footnoteLinks.length <= 3 && renderFootnoteLinks()]
254
- }), footnoteLinks.length > 3 && renderFootnoteLinks()]
255
- });
256
- if (strikeThrough && !a11yText) {
257
- warn('PriceLockup', 'a11yText must be provided with strikethrough pricing');
258
- }
259
- return /*#__PURE__*/_jsxs(PriceLockupContainer, {
260
- ...selectProps(rest),
261
- alignItemsText: alignItemsText,
262
- ref: ref,
263
- children: [topText && /*#__PURE__*/_jsx(TopTextContainer, {
264
- topTextMarginBottom: `${topTextMarginBottom}px`,
265
- children: renderTypography(topText, typographyTokens.topText)
266
- }), renderPrice(), bottomText && /*#__PURE__*/_jsx(Divider, {
267
- testID: "price-lockup-divider",
268
- role: "separator",
269
- tokens: {
270
- color: dividerColor ?? 'rgba(0, 0, 0, 0)'
271
- }
272
- }), bottomText && renderFootnoteContent()]
273
- });
274
- });
275
- PriceLockup.displayName = 'PriceLockup';
276
- PriceLockup.propTypes = {
277
- ...selectedSystemPropTypes,
278
- /**
279
- * Size of the component
280
- *
281
- * Micro for mini cart pricing, small for pricing in product catalogue pages, medium for pricing in product comparison cards and large for pricing in banners and promo cards
282
- */
283
- size: PropTypes.oneOf(['micro', 'small', 'medium', 'large']),
284
- /**
285
- * If currency symbol other than `$` to be used
286
- */
287
- currencySymbol: PropTypes.string,
288
- /**
289
- * Shows additional info above the price
290
- */
291
- topText: PropTypes.string,
292
- /**
293
- * Monetary value (including decimals separated by ".")
294
- */
295
- price: PropTypes.string.isRequired,
296
- /**
297
- * Shows month/year unit
298
- */
299
- rateText: PropTypes.string,
300
- /**
301
- * Shows additional info below the price with a `Divider`
302
- */
303
- bottomText: PropTypes.string,
304
- /**
305
- * Displays which side the currency should apperar (left, right)
306
- */
307
- signDirection: PropTypes.oneOf(['right', 'left']),
308
- /**
309
- * Displays where the rate should apperar (bottom, right)
310
- */
311
- ratePosition: PropTypes.oneOf(['right', 'bottom']),
312
- /**
313
- * Shows additional link for context
314
- */
315
- footnoteLinks: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),
316
- /**
317
- * Function to be called when a footnote link is clicked
318
- */
319
- onClickFootnote: PropTypes.func,
320
- /**
321
- * To show price savings comparison
322
- */
323
- strikeThrough: PropTypes.bool,
324
- /**
325
- * To provide a11y text for `PriceLockup` component
326
- *
327
- * **Note:** a11yText will override strikethrough price, so it must include price (ie. "was 50 dollars per month")
328
- */
329
- a11yText: PropTypes.string,
330
- /**
331
- * `PriceLockup` tokens
332
- */
333
- tokens: getTokensPropType('PriceLockup')
334
- };
335
- export default PriceLockup;
@@ -1,2 +0,0 @@
1
- import PriceLockup from './PriceLockup';
2
- export default PriceLockup;
@@ -1,55 +0,0 @@
1
- // map typography tokens accordenly
2
- export default (_ref => {
3
- let {
4
- topTextFontSize,
5
- fontColor,
6
- topTextLineHeight,
7
- currencySymbolFontSize,
8
- currencySymbolLineHeight,
9
- currencySymbolFontWeight,
10
- amountFontSize,
11
- amountLineHeight,
12
- amountLetterSpacing,
13
- amountFontWeight,
14
- centsFontSize,
15
- centsLineHeight,
16
- rateFontSize,
17
- rateLineHeight,
18
- bottomTextFontSize,
19
- bottomTextLineHeight,
20
- rateFontWeight,
21
- centsFontWeight
22
- } = _ref;
23
- return {
24
- topText: {
25
- fontSize: topTextFontSize,
26
- lineHeight: topTextLineHeight
27
- },
28
- dollarSign: {
29
- fontSize: currencySymbolFontSize,
30
- lineHeight: currencySymbolLineHeight,
31
- fontWeight: currencySymbolFontWeight
32
- },
33
- amount: {
34
- color: fontColor,
35
- fontSize: amountFontSize,
36
- lineHeight: amountLineHeight,
37
- letterSpacing: amountLetterSpacing,
38
- fontWeight: amountFontWeight
39
- },
40
- cents: {
41
- fontSize: centsFontSize,
42
- lineHeight: centsLineHeight,
43
- fontWeight: centsFontWeight
44
- },
45
- rate: {
46
- fontSize: rateFontSize,
47
- lineHeight: rateLineHeight,
48
- fontWeight: rateFontWeight
49
- },
50
- bottomText: {
51
- fontSize: bottomTextFontSize,
52
- lineHeight: bottomTextLineHeight
53
- }
54
- };
55
- });
@@ -1,83 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { getTokensPropType, Progress, selectSystemProps, useThemeTokens, a11yProps, viewProps, variantProp, applyShadowToken } from '@telus-uds/components-base';
4
- import styled from 'styled-components';
5
-
6
- // Passes React Native-oriented system props through UDS Progress
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
9
- const {
10
- Bar: ProgressBarBase
11
- } = Progress;
12
- const Gradient = /*#__PURE__*/styled.div.attrs({
13
- 'data-testid': 'ProgressBar-Gradient'
14
- }).withConfig({
15
- displayName: "ProgressBar__Gradient",
16
- componentId: "components-web__sc-1vmzyq5-0"
17
- })(_ref => {
18
- let {
19
- gradient: {
20
- angle,
21
- stops,
22
- type
23
- },
24
- borderRadius,
25
- shadow
26
- } = _ref;
27
- return {
28
- height: '100%',
29
- width: '100%',
30
- background: `${type}-gradient(${angle}deg, ${stops[0].color}, ${stops[1].color})`,
31
- borderRadius,
32
- ...applyShadowToken(shadow)
33
- };
34
- });
35
-
36
- /**
37
- * The `ProgressBar` is a visual representation of linear progression.
38
- * It provides simple but important information at a quick glance.
39
- * This is a Web-specific progress bar.
40
- *
41
- * ## Component API
42
- *
43
- * Use props and tokens from the base ProgressBar component. The difference is that the
44
- * `gradient` is being used here to provide gradient filling.
45
- *
46
- */
47
- const ProgressBar = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
48
- let {
49
- percentage,
50
- tokens,
51
- variant,
52
- ...rest
53
- } = _ref2;
54
- const themeTokens = useThemeTokens('ProgressBar', tokens, variant);
55
- const selectedProps = selectProps(rest);
56
- return /*#__PURE__*/_jsx(ProgressBarBase, {
57
- percentage: percentage,
58
- tokens: tokens,
59
- variant: variant,
60
- ref: ref,
61
- ...selectedProps,
62
- children: themeTokens.gradient && /*#__PURE__*/_jsx(Gradient, {
63
- ...themeTokens
64
- })
65
- });
66
- });
67
- ProgressBar.displayName = 'ProgressBar';
68
- ProgressBar.propTypes = {
69
- ...selectedSystemPropTypes,
70
- /**
71
- * Percentage of completion.
72
- */
73
- percentage: PropTypes.number,
74
- /**
75
- * ProgressBar tokens.
76
- */
77
- tokens: getTokensPropType('ProgressBar'),
78
- /**
79
- * ProgressBar variant.
80
- */
81
- variant: variantProp.propType
82
- };
83
- export default ProgressBar;
@@ -1,4 +0,0 @@
1
- import { Progress } from '@telus-uds/components-base';
2
- import ProgressBar from './ProgressBar';
3
- Progress.Bar = ProgressBar;
4
- export default Progress;