@telus-uds/components-base 1.8.1 → 1.8.4

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 (288) hide show
  1. package/CHANGELOG.md +35 -2
  2. package/component-docs.json +711 -669
  3. package/lib/A11yInfoProvider/index.js +4 -3
  4. package/lib/A11yText/index.js +6 -5
  5. package/lib/ActivityIndicator/Spinner.js +14 -13
  6. package/lib/ActivityIndicator/Spinner.native.js +10 -8
  7. package/lib/ActivityIndicator/index.js +6 -5
  8. package/lib/ActivityIndicator/shared.js +1 -1
  9. package/lib/BaseProvider/index.js +13 -10
  10. package/lib/Box/Box.js +20 -19
  11. package/lib/Button/Button.js +7 -6
  12. package/lib/Button/ButtonBase.js +97 -79
  13. package/lib/Button/ButtonGroup.js +34 -32
  14. package/lib/Button/ButtonLink.js +9 -7
  15. package/lib/Button/index.js +4 -4
  16. package/lib/Button/propTypes.js +1 -1
  17. package/lib/Card/Card.js +8 -7
  18. package/lib/Card/CardBase.js +35 -31
  19. package/lib/Card/PressableCardBase.js +14 -12
  20. package/lib/Checkbox/Checkbox.js +97 -83
  21. package/lib/Checkbox/CheckboxGroup.js +29 -27
  22. package/lib/Checkbox/CheckboxInput.js +12 -10
  23. package/lib/Divider/Divider.js +10 -9
  24. package/lib/ExpandCollapse/Control.js +42 -36
  25. package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
  26. package/lib/ExpandCollapse/Panel.js +29 -40
  27. package/lib/Feedback/Feedback.js +48 -35
  28. package/lib/Fieldset/Fieldset.js +16 -15
  29. package/lib/Fieldset/FieldsetContainer.js +16 -13
  30. package/lib/Fieldset/FieldsetContainer.native.js +11 -8
  31. package/lib/Fieldset/Legend.js +10 -7
  32. package/lib/Fieldset/Legend.native.js +10 -7
  33. package/lib/FlexGrid/Col/Col.js +18 -17
  34. package/lib/FlexGrid/FlexGrid.js +15 -14
  35. package/lib/FlexGrid/Row/Row.js +13 -12
  36. package/lib/HorizontalScroll/HorizontalScroll.js +25 -20
  37. package/lib/HorizontalScroll/HorizontalScrollButton.js +18 -14
  38. package/lib/HorizontalScroll/ScrollViewEnd.js +6 -5
  39. package/lib/HorizontalScroll/ScrollViewEnd.native.js +12 -9
  40. package/lib/HorizontalScroll/itemPositions.js +19 -13
  41. package/lib/Icon/Icon.js +11 -10
  42. package/lib/Icon/IconText.js +8 -7
  43. package/lib/Icon/index.js +5 -5
  44. package/lib/IconButton/IconButton.js +50 -42
  45. package/lib/InputLabel/InputLabel.js +37 -30
  46. package/lib/InputLabel/LabelContent.js +12 -9
  47. package/lib/InputLabel/LabelContent.native.js +9 -6
  48. package/lib/InputSupports/InputSupports.js +11 -10
  49. package/lib/InputSupports/useInputSupports.js +7 -6
  50. package/lib/Link/ChevronLink.js +9 -8
  51. package/lib/Link/InlinePressable.js +13 -10
  52. package/lib/Link/InlinePressable.native.js +20 -16
  53. package/lib/Link/Link.js +10 -9
  54. package/lib/Link/LinkBase.js +96 -78
  55. package/lib/Link/TextButton.js +9 -8
  56. package/lib/List/List.js +20 -13
  57. package/lib/List/ListItem.js +103 -79
  58. package/lib/Modal/Modal.js +74 -60
  59. package/lib/Notification/Notification.js +46 -33
  60. package/lib/Pagination/PageButton.js +13 -12
  61. package/lib/Pagination/Pagination.js +43 -30
  62. package/lib/Pagination/SideButton.js +21 -18
  63. package/lib/Pagination/usePagination.js +7 -6
  64. package/lib/Progress/Progress.js +23 -19
  65. package/lib/Progress/ProgressBar.js +25 -21
  66. package/lib/Progress/ProgressBarBackground.js +7 -6
  67. package/lib/Radio/Radio.js +80 -69
  68. package/lib/Radio/RadioButton.js +63 -53
  69. package/lib/Radio/RadioGroup.js +30 -28
  70. package/lib/Radio/RadioInput.js +12 -10
  71. package/lib/RadioCard/RadioCard.js +16 -15
  72. package/lib/RadioCard/RadioCardGroup.js +30 -28
  73. package/lib/Search/Search.js +52 -32
  74. package/lib/Select/Group.js +5 -4
  75. package/lib/Select/Group.native.js +4 -3
  76. package/lib/Select/Item.js +10 -7
  77. package/lib/Select/Item.native.js +1 -9
  78. package/lib/Select/Picker.js +16 -15
  79. package/lib/Select/Picker.native.js +49 -38
  80. package/lib/Select/Select.js +134 -113
  81. package/lib/SideNav/Item.js +39 -33
  82. package/lib/SideNav/ItemContent.js +15 -12
  83. package/lib/SideNav/ItemsGroup.js +13 -11
  84. package/lib/SideNav/SideNav.js +21 -18
  85. package/lib/Skeleton/Skeleton.js +60 -44
  86. package/lib/Skeleton/skeleton.constant.js +1 -1
  87. package/lib/Skeleton/skeletonWebAnimation.js +1 -1
  88. package/lib/Spacer/Spacer.js +6 -5
  89. package/lib/StackView/StackView.js +12 -11
  90. package/lib/StackView/StackWrap.js +5 -3
  91. package/lib/StackView/StackWrapBox.js +12 -11
  92. package/lib/StackView/StackWrapGap.js +11 -10
  93. package/lib/StackView/common.js +14 -11
  94. package/lib/StackView/getStackedContent.js +10 -9
  95. package/lib/StackView/index.js +1 -1
  96. package/lib/StepTracker/Step.js +122 -103
  97. package/lib/StepTracker/StepTracker.js +48 -38
  98. package/lib/Tabs/Tabs.js +57 -27
  99. package/lib/Tabs/TabsItem.js +78 -68
  100. package/lib/Tags/Tags.js +68 -62
  101. package/lib/TextInput/TextArea.js +26 -20
  102. package/lib/TextInput/TextInput.js +20 -15
  103. package/lib/TextInput/TextInputBase.js +74 -62
  104. package/lib/TextInput/index.js +4 -4
  105. package/lib/ThemeProvider/ThemeProvider.js +6 -5
  106. package/lib/ThemeProvider/index.js +5 -5
  107. package/lib/ThemeProvider/useSetTheme.js +6 -3
  108. package/lib/ThemeProvider/useThemeTokens.js +7 -2
  109. package/lib/ThemeProvider/utils/styles.js +50 -43
  110. package/lib/ThemeProvider/utils/theme-tokens.js +33 -21
  111. package/lib/ToggleSwitch/ToggleSwitch.js +90 -74
  112. package/lib/ToggleSwitch/ToggleSwitchGroup.js +37 -35
  113. package/lib/Tooltip/Backdrop.js +6 -13
  114. package/lib/Tooltip/Backdrop.native.js +5 -4
  115. package/lib/Tooltip/Tooltip.js +81 -65
  116. package/lib/Tooltip/getTooltipPosition.js +29 -18
  117. package/lib/TooltipButton/TooltipButton.js +28 -21
  118. package/lib/Typography/Typography.js +37 -33
  119. package/lib/ViewportProvider/ViewportProvider.js +4 -3
  120. package/lib/ViewportProvider/useViewportListener.js +6 -3
  121. package/lib/index.js +54 -54
  122. package/lib/utils/a11y/semantics.js +5 -2
  123. package/lib/utils/a11y/textSize.js +8 -6
  124. package/lib/utils/animation/useVerticalExpandAnimation.js +46 -19
  125. package/lib/utils/children.js +4 -3
  126. package/lib/utils/index.js +10 -10
  127. package/lib/utils/input.js +28 -29
  128. package/lib/utils/pressability.js +36 -22
  129. package/lib/utils/props/clickProps.js +2 -1
  130. package/lib/utils/props/componentPropType.js +3 -3
  131. package/lib/utils/props/getPropSelector.js +6 -3
  132. package/lib/utils/props/handlerProps.js +25 -19
  133. package/lib/utils/props/hrefAttrsProp.js +14 -11
  134. package/lib/utils/props/index.js +12 -12
  135. package/lib/utils/props/inputSupportsProps.js +15 -12
  136. package/lib/utils/props/linkProps.js +7 -6
  137. package/lib/utils/props/pressProps.js +1 -1
  138. package/lib/utils/props/selectSystemProps.js +2 -2
  139. package/lib/utils/props/tokens.js +29 -15
  140. package/lib/utils/ssr.js +6 -2
  141. package/lib/utils/useCopy.js +6 -4
  142. package/lib/utils/useHash.js +2 -1
  143. package/lib/utils/useResponsiveProp.js +1 -1
  144. package/lib/utils/useSpacingScale.js +3 -1
  145. package/lib/utils/useUniqueId.js +3 -2
  146. package/lib/utils/withLinkRouter.js +6 -5
  147. package/lib-module/A11yInfoProvider/index.js +4 -3
  148. package/lib-module/A11yText/index.js +6 -5
  149. package/lib-module/ActivityIndicator/Spinner.js +14 -13
  150. package/lib-module/ActivityIndicator/Spinner.native.js +9 -8
  151. package/lib-module/ActivityIndicator/index.js +6 -5
  152. package/lib-module/BaseProvider/index.js +13 -10
  153. package/lib-module/Box/Box.js +20 -19
  154. package/lib-module/Button/Button.js +7 -6
  155. package/lib-module/Button/ButtonBase.js +96 -79
  156. package/lib-module/Button/ButtonGroup.js +34 -32
  157. package/lib-module/Button/ButtonLink.js +8 -7
  158. package/lib-module/Card/Card.js +8 -7
  159. package/lib-module/Card/CardBase.js +35 -31
  160. package/lib-module/Card/PressableCardBase.js +12 -11
  161. package/lib-module/Checkbox/Checkbox.js +97 -83
  162. package/lib-module/Checkbox/CheckboxGroup.js +29 -27
  163. package/lib-module/Checkbox/CheckboxInput.js +12 -10
  164. package/lib-module/Divider/Divider.js +10 -9
  165. package/lib-module/ExpandCollapse/Control.js +42 -36
  166. package/lib-module/ExpandCollapse/ExpandCollapse.js +11 -10
  167. package/lib-module/ExpandCollapse/Panel.js +29 -37
  168. package/lib-module/Feedback/Feedback.js +46 -33
  169. package/lib-module/Fieldset/Fieldset.js +16 -15
  170. package/lib-module/Fieldset/FieldsetContainer.js +16 -13
  171. package/lib-module/Fieldset/FieldsetContainer.native.js +11 -8
  172. package/lib-module/Fieldset/Legend.js +10 -7
  173. package/lib-module/Fieldset/Legend.native.js +10 -7
  174. package/lib-module/FlexGrid/Col/Col.js +18 -17
  175. package/lib-module/FlexGrid/FlexGrid.js +15 -14
  176. package/lib-module/FlexGrid/Row/Row.js +13 -12
  177. package/lib-module/HorizontalScroll/HorizontalScroll.js +24 -19
  178. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +18 -14
  179. package/lib-module/HorizontalScroll/ScrollViewEnd.js +6 -5
  180. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +12 -9
  181. package/lib-module/HorizontalScroll/itemPositions.js +18 -12
  182. package/lib-module/Icon/Icon.js +10 -9
  183. package/lib-module/Icon/IconText.js +9 -7
  184. package/lib-module/IconButton/IconButton.js +48 -41
  185. package/lib-module/InputLabel/InputLabel.js +37 -30
  186. package/lib-module/InputLabel/LabelContent.js +12 -9
  187. package/lib-module/InputLabel/LabelContent.native.js +9 -6
  188. package/lib-module/InputSupports/InputSupports.js +11 -10
  189. package/lib-module/InputSupports/useInputSupports.js +7 -6
  190. package/lib-module/Link/ChevronLink.js +9 -8
  191. package/lib-module/Link/InlinePressable.js +13 -10
  192. package/lib-module/Link/InlinePressable.native.js +20 -16
  193. package/lib-module/Link/Link.js +10 -9
  194. package/lib-module/Link/LinkBase.js +94 -77
  195. package/lib-module/Link/TextButton.js +9 -8
  196. package/lib-module/List/List.js +20 -13
  197. package/lib-module/List/ListItem.js +103 -78
  198. package/lib-module/Modal/Modal.js +74 -60
  199. package/lib-module/Notification/Notification.js +46 -33
  200. package/lib-module/Pagination/PageButton.js +13 -12
  201. package/lib-module/Pagination/Pagination.js +43 -30
  202. package/lib-module/Pagination/SideButton.js +21 -18
  203. package/lib-module/Pagination/usePagination.js +7 -6
  204. package/lib-module/Progress/Progress.js +23 -19
  205. package/lib-module/Progress/ProgressBar.js +25 -21
  206. package/lib-module/Progress/ProgressBarBackground.js +7 -6
  207. package/lib-module/Radio/Radio.js +80 -69
  208. package/lib-module/Radio/RadioButton.js +62 -52
  209. package/lib-module/Radio/RadioGroup.js +30 -28
  210. package/lib-module/Radio/RadioInput.js +12 -10
  211. package/lib-module/RadioCard/RadioCard.js +16 -15
  212. package/lib-module/RadioCard/RadioCardGroup.js +30 -28
  213. package/lib-module/Search/Search.js +52 -32
  214. package/lib-module/Select/Group.js +5 -4
  215. package/lib-module/Select/Group.native.js +4 -3
  216. package/lib-module/Select/Item.js +10 -7
  217. package/lib-module/Select/Item.native.js +1 -7
  218. package/lib-module/Select/Picker.js +16 -15
  219. package/lib-module/Select/Picker.native.js +46 -36
  220. package/lib-module/Select/Select.js +134 -113
  221. package/lib-module/SideNav/Item.js +39 -33
  222. package/lib-module/SideNav/ItemContent.js +14 -11
  223. package/lib-module/SideNav/ItemsGroup.js +13 -11
  224. package/lib-module/SideNav/SideNav.js +21 -18
  225. package/lib-module/Skeleton/Skeleton.js +60 -44
  226. package/lib-module/Skeleton/skeletonWebAnimation.js +1 -1
  227. package/lib-module/Spacer/Spacer.js +6 -5
  228. package/lib-module/StackView/StackView.js +12 -11
  229. package/lib-module/StackView/StackWrap.js +5 -3
  230. package/lib-module/StackView/StackWrapBox.js +12 -11
  231. package/lib-module/StackView/StackWrapGap.js +11 -10
  232. package/lib-module/StackView/common.js +14 -11
  233. package/lib-module/StackView/getStackedContent.js +10 -9
  234. package/lib-module/StepTracker/Step.js +122 -103
  235. package/lib-module/StepTracker/StepTracker.js +48 -38
  236. package/lib-module/Tabs/Tabs.js +57 -27
  237. package/lib-module/Tabs/TabsItem.js +77 -68
  238. package/lib-module/Tags/Tags.js +68 -62
  239. package/lib-module/TextInput/TextArea.js +26 -20
  240. package/lib-module/TextInput/TextInput.js +19 -15
  241. package/lib-module/TextInput/TextInputBase.js +74 -62
  242. package/lib-module/ThemeProvider/ThemeProvider.js +5 -4
  243. package/lib-module/ThemeProvider/useSetTheme.js +6 -3
  244. package/lib-module/ThemeProvider/useThemeTokens.js +7 -2
  245. package/lib-module/ThemeProvider/utils/styles.js +48 -41
  246. package/lib-module/ThemeProvider/utils/theme-tokens.js +32 -20
  247. package/lib-module/ToggleSwitch/ToggleSwitch.js +90 -74
  248. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +37 -35
  249. package/lib-module/Tooltip/Backdrop.js +6 -13
  250. package/lib-module/Tooltip/Backdrop.native.js +5 -4
  251. package/lib-module/Tooltip/Tooltip.js +81 -65
  252. package/lib-module/Tooltip/getTooltipPosition.js +29 -18
  253. package/lib-module/TooltipButton/TooltipButton.js +28 -21
  254. package/lib-module/Typography/Typography.js +35 -31
  255. package/lib-module/ViewportProvider/ViewportProvider.js +4 -3
  256. package/lib-module/ViewportProvider/useViewportListener.js +6 -3
  257. package/lib-module/utils/a11y/semantics.js +4 -1
  258. package/lib-module/utils/a11y/textSize.js +7 -5
  259. package/lib-module/utils/animation/useVerticalExpandAnimation.js +47 -20
  260. package/lib-module/utils/children.js +4 -3
  261. package/lib-module/utils/input.js +28 -29
  262. package/lib-module/utils/pressability.js +35 -21
  263. package/lib-module/utils/props/clickProps.js +2 -1
  264. package/lib-module/utils/props/componentPropType.js +3 -3
  265. package/lib-module/utils/props/getPropSelector.js +6 -3
  266. package/lib-module/utils/props/handlerProps.js +24 -18
  267. package/lib-module/utils/props/hrefAttrsProp.js +14 -11
  268. package/lib-module/utils/props/inputSupportsProps.js +15 -12
  269. package/lib-module/utils/props/linkProps.js +7 -6
  270. package/lib-module/utils/props/selectSystemProps.js +2 -2
  271. package/lib-module/utils/props/tokens.js +27 -14
  272. package/lib-module/utils/ssr.js +5 -2
  273. package/lib-module/utils/useCopy.js +6 -4
  274. package/lib-module/utils/useHash.js +2 -1
  275. package/lib-module/utils/useSpacingScale.js +3 -1
  276. package/lib-module/utils/useUniqueId.js +3 -2
  277. package/lib-module/utils/withLinkRouter.js +6 -5
  278. package/package.json +13 -11
  279. package/src/ExpandCollapse/Panel.jsx +2 -19
  280. package/src/List/List.jsx +34 -19
  281. package/src/List/ListItem.jsx +12 -2
  282. package/src/Modal/Modal.jsx +2 -1
  283. package/src/Pagination/Pagination.jsx +3 -0
  284. package/src/Search/Search.jsx +11 -0
  285. package/src/Select/Item.native.jsx +0 -7
  286. package/src/Tabs/Tabs.jsx +24 -2
  287. package/src/Tabs/TabsItem.jsx +6 -5
  288. package/src/utils/animation/useVerticalExpandAnimation.js +47 -13
@@ -35,39 +35,43 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
35
35
  const [selectContainerProps, selectedContainerPropTypes] = (0, _utils2.selectSystemProps)([_utils2.a11yProps, _utils2.viewProps]);
36
36
  const [selectTextProps, selectedTextPropTypes] = (0, _utils2.selectSystemProps)([_utils2.textProps]);
37
37
 
38
- const selectTextStyles = ({
39
- fontWeight,
40
- fontSize,
41
- color,
42
- lineHeight,
43
- fontName,
44
- textAlign,
45
- textTransform,
46
- letterSpacing
47
- }) => (0, _utils.applyTextStyles)({
48
- fontWeight,
49
- fontSize,
50
- color,
51
- lineHeight,
52
- fontName,
53
- textAlign,
54
- textTransform,
55
- letterSpacing
56
- }); // General-purpose flexible theme-neutral base component for text
57
-
58
-
59
- const Typography = /*#__PURE__*/(0, _react.forwardRef)(({
60
- children,
61
- variant,
62
- heading,
63
- tag = typeof heading === 'string' ? heading : undefined,
64
- accessibilityRole = heading === true ? 'header' : undefined,
65
- block = false,
66
- align = undefined,
67
- tokens,
68
- dataSet,
69
- ...rest
70
- }, ref) => {
38
+ const selectTextStyles = _ref => {
39
+ let {
40
+ fontWeight,
41
+ fontSize,
42
+ color,
43
+ lineHeight,
44
+ fontName,
45
+ textAlign,
46
+ textTransform,
47
+ letterSpacing
48
+ } = _ref;
49
+ return (0, _utils.applyTextStyles)({
50
+ fontWeight,
51
+ fontSize,
52
+ color,
53
+ lineHeight,
54
+ fontName,
55
+ textAlign,
56
+ textTransform,
57
+ letterSpacing
58
+ });
59
+ }; // General-purpose flexible theme-neutral base component for text
60
+
61
+
62
+ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
63
+ let {
64
+ children,
65
+ variant,
66
+ heading,
67
+ tag = typeof heading === 'string' ? heading : undefined,
68
+ accessibilityRole = heading === true ? 'header' : undefined,
69
+ block = false,
70
+ align = undefined,
71
+ tokens,
72
+ dataSet,
73
+ ...rest
74
+ } = _ref2;
71
75
  const viewport = (0, _ViewportProvider.useViewport)();
72
76
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Typography', tokens, variant, {
73
77
  viewport
@@ -26,9 +26,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
26
26
  /**
27
27
  * Provides an up-to-date viewport value from system-constants, available via the `useViewport` hook
28
28
  */
29
- const ViewportProvider = ({
30
- children
31
- }) => {
29
+ const ViewportProvider = _ref => {
30
+ let {
31
+ children
32
+ } = _ref;
32
33
  // Default to the smallest viewport for mobile-first SSR. On client side, this is updated
33
34
  // by useViewportListener in a layout effect before anything is shown to the user.
34
35
  const [viewport, setViewport] = (0, _react.useState)(_systemConstants.viewports.keys[0]);
@@ -38,9 +38,12 @@ const useViewportListenerCSR = setViewport => {
38
38
  (0, _react.useLayoutEffect)(() => {
39
39
  setViewport(lookupViewport());
40
40
 
41
- const onChange = ({
42
- window
43
- }) => setViewport(_systemConstants.viewports.select(window.width));
41
+ const onChange = _ref => {
42
+ let {
43
+ window
44
+ } = _ref;
45
+ return setViewport(_systemConstants.viewports.select(window.width));
46
+ };
44
47
 
45
48
  const listener = _Dimensions.default.addEventListener('change', onChange); // From RN 0.65.0, Dimensions.removeEventListener is deprecated for `remove` on addEventListener return value;
46
49
  // however, that is not available in RN <=0.64.X, therefore not in any Expo release as of 2021 (Expo SDK 43).
package/lib/index.js CHANGED
@@ -56,34 +56,46 @@ var _exportNames = {
56
56
  applyTextStyles: true,
57
57
  applyShadowToken: true
58
58
  };
59
+ Object.defineProperty(exports, "A11yInfoProvider", {
60
+ enumerable: true,
61
+ get: function () {
62
+ return _A11yInfoProvider.default;
63
+ }
64
+ });
59
65
  Object.defineProperty(exports, "A11yText", {
60
66
  enumerable: true,
61
67
  get: function () {
62
68
  return _A11yText.default;
63
69
  }
64
70
  });
71
+ Object.defineProperty(exports, "Accordion", {
72
+ enumerable: true,
73
+ get: function () {
74
+ return _ExpandCollapse.Accordion;
75
+ }
76
+ });
65
77
  Object.defineProperty(exports, "ActivityIndicator", {
66
78
  enumerable: true,
67
79
  get: function () {
68
80
  return _ActivityIndicator.default;
69
81
  }
70
82
  });
71
- Object.defineProperty(exports, "Box", {
83
+ Object.defineProperty(exports, "BaseProvider", {
72
84
  enumerable: true,
73
85
  get: function () {
74
- return _Box.default;
86
+ return _BaseProvider.default;
75
87
  }
76
88
  });
77
- Object.defineProperty(exports, "Card", {
89
+ Object.defineProperty(exports, "Box", {
78
90
  enumerable: true,
79
91
  get: function () {
80
- return _Card.default;
92
+ return _Box.default;
81
93
  }
82
94
  });
83
- Object.defineProperty(exports, "PressableCardBase", {
95
+ Object.defineProperty(exports, "Card", {
84
96
  enumerable: true,
85
97
  get: function () {
86
- return _Card.PressableCardBase;
98
+ return _Card.default;
87
99
  }
88
100
  });
89
101
  Object.defineProperty(exports, "Checkbox", {
@@ -104,12 +116,6 @@ Object.defineProperty(exports, "ExpandCollapse", {
104
116
  return _ExpandCollapse.default;
105
117
  }
106
118
  });
107
- Object.defineProperty(exports, "Accordion", {
108
- enumerable: true,
109
- get: function () {
110
- return _ExpandCollapse.Accordion;
111
- }
112
- });
113
119
  Object.defineProperty(exports, "Feedback", {
114
120
  enumerable: true,
115
121
  get: function () {
@@ -158,16 +164,16 @@ Object.defineProperty(exports, "List", {
158
164
  return _List.default;
159
165
  }
160
166
  });
161
- Object.defineProperty(exports, "ListItem", {
167
+ Object.defineProperty(exports, "ListBase", {
162
168
  enumerable: true,
163
169
  get: function () {
164
- return _List.ListItem;
170
+ return _List.ListBase;
165
171
  }
166
172
  });
167
- Object.defineProperty(exports, "ListBase", {
173
+ Object.defineProperty(exports, "ListItem", {
168
174
  enumerable: true,
169
175
  get: function () {
170
- return _List.ListBase;
176
+ return _List.ListItem;
171
177
  }
172
178
  });
173
179
  Object.defineProperty(exports, "Modal", {
@@ -188,6 +194,12 @@ Object.defineProperty(exports, "Pagination", {
188
194
  return _Pagination.default;
189
195
  }
190
196
  });
197
+ Object.defineProperty(exports, "PressableCardBase", {
198
+ enumerable: true,
199
+ get: function () {
200
+ return _Card.PressableCardBase;
201
+ }
202
+ });
191
203
  Object.defineProperty(exports, "Progress", {
192
204
  enumerable: true,
193
205
  get: function () {
@@ -260,6 +272,12 @@ Object.defineProperty(exports, "Tags", {
260
272
  return _Tags.default;
261
273
  }
262
274
  });
275
+ Object.defineProperty(exports, "ThemeProvider", {
276
+ enumerable: true,
277
+ get: function () {
278
+ return _ThemeProvider.default;
279
+ }
280
+ });
263
281
  Object.defineProperty(exports, "Tooltip", {
264
282
  enumerable: true,
265
283
  get: function () {
@@ -278,22 +296,10 @@ Object.defineProperty(exports, "Typography", {
278
296
  return _Typography.default;
279
297
  }
280
298
  });
281
- Object.defineProperty(exports, "A11yInfoProvider", {
282
- enumerable: true,
283
- get: function () {
284
- return _A11yInfoProvider.default;
285
- }
286
- });
287
- Object.defineProperty(exports, "useA11yInfo", {
288
- enumerable: true,
289
- get: function () {
290
- return _A11yInfoProvider.useA11yInfo;
291
- }
292
- });
293
- Object.defineProperty(exports, "BaseProvider", {
299
+ Object.defineProperty(exports, "ViewportContext", {
294
300
  enumerable: true,
295
301
  get: function () {
296
- return _BaseProvider.default;
302
+ return _ViewportProvider.ViewportContext;
297
303
  }
298
304
  });
299
305
  Object.defineProperty(exports, "ViewportProvider", {
@@ -302,64 +308,58 @@ Object.defineProperty(exports, "ViewportProvider", {
302
308
  return _ViewportProvider.default;
303
309
  }
304
310
  });
305
- Object.defineProperty(exports, "useViewport", {
306
- enumerable: true,
307
- get: function () {
308
- return _ViewportProvider.useViewport;
309
- }
310
- });
311
- Object.defineProperty(exports, "ViewportContext", {
311
+ Object.defineProperty(exports, "applyOuterBorder", {
312
312
  enumerable: true,
313
313
  get: function () {
314
- return _ViewportProvider.ViewportContext;
314
+ return _ThemeProvider.applyOuterBorder;
315
315
  }
316
316
  });
317
- Object.defineProperty(exports, "ThemeProvider", {
317
+ Object.defineProperty(exports, "applyShadowToken", {
318
318
  enumerable: true,
319
319
  get: function () {
320
- return _ThemeProvider.default;
320
+ return _ThemeProvider.applyShadowToken;
321
321
  }
322
322
  });
323
- Object.defineProperty(exports, "useTheme", {
323
+ Object.defineProperty(exports, "applyTextStyles", {
324
324
  enumerable: true,
325
325
  get: function () {
326
- return _ThemeProvider.useTheme;
326
+ return _ThemeProvider.applyTextStyles;
327
327
  }
328
328
  });
329
- Object.defineProperty(exports, "useSetTheme", {
329
+ Object.defineProperty(exports, "getThemeTokens", {
330
330
  enumerable: true,
331
331
  get: function () {
332
- return _ThemeProvider.useSetTheme;
332
+ return _ThemeProvider.getThemeTokens;
333
333
  }
334
334
  });
335
- Object.defineProperty(exports, "useThemeTokens", {
335
+ Object.defineProperty(exports, "useA11yInfo", {
336
336
  enumerable: true,
337
337
  get: function () {
338
- return _ThemeProvider.useThemeTokens;
338
+ return _A11yInfoProvider.useA11yInfo;
339
339
  }
340
340
  });
341
- Object.defineProperty(exports, "getThemeTokens", {
341
+ Object.defineProperty(exports, "useSetTheme", {
342
342
  enumerable: true,
343
343
  get: function () {
344
- return _ThemeProvider.getThemeTokens;
344
+ return _ThemeProvider.useSetTheme;
345
345
  }
346
346
  });
347
- Object.defineProperty(exports, "applyOuterBorder", {
347
+ Object.defineProperty(exports, "useTheme", {
348
348
  enumerable: true,
349
349
  get: function () {
350
- return _ThemeProvider.applyOuterBorder;
350
+ return _ThemeProvider.useTheme;
351
351
  }
352
352
  });
353
- Object.defineProperty(exports, "applyTextStyles", {
353
+ Object.defineProperty(exports, "useThemeTokens", {
354
354
  enumerable: true,
355
355
  get: function () {
356
- return _ThemeProvider.applyTextStyles;
356
+ return _ThemeProvider.useThemeTokens;
357
357
  }
358
358
  });
359
- Object.defineProperty(exports, "applyShadowToken", {
359
+ Object.defineProperty(exports, "useViewport", {
360
360
  enumerable: true,
361
361
  get: function () {
362
- return _ThemeProvider.applyShadowToken;
362
+ return _ViewportProvider.useViewport;
363
363
  }
364
364
  });
365
365
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getA11yPropsFromHtmlTag = exports.getHeadingLevel = exports.textTags = exports.layoutTags = exports.supportedTags = exports.headingTags = exports.tagsToRoles = void 0;
6
+ exports.textTags = exports.tagsToRoles = exports.supportedTags = exports.layoutTags = exports.headingTags = exports.getHeadingLevel = exports.getA11yPropsFromHtmlTag = void 0;
7
7
 
8
8
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
9
9
 
@@ -58,7 +58,10 @@ const rolesToTags =
58
58
 
59
59
  }; // Invert React Native Web's mapping, so a tag gets the role that gets that tag
60
60
 
61
- const tagsToRoles = Object.fromEntries(Object.entries(rolesToTags).map(([key, value]) => [value, key]));
61
+ const tagsToRoles = Object.fromEntries(Object.entries(rolesToTags).map(_ref => {
62
+ let [key, value] = _ref;
63
+ return [value, key];
64
+ }));
62
65
  /**
63
66
  * Heading HTML tags map to the "heading" accessibilityRole in native apps, which is similar
64
67
  * to headings on web but without the expectation of a hierarchy of headings within one screen.
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getMaxFontMultiplier = exports.scaleWithText = void 0;
6
+ exports.scaleWithText = exports.getMaxFontMultiplier = void 0;
7
7
 
8
8
  var _PixelRatio = _interopRequireDefault(require("react-native-web/dist/cjs/exports/PixelRatio"));
9
9
 
@@ -18,7 +18,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
18
18
  * @param {number} [value] - the value to multiply; defaults to system default font size
19
19
  * @param {number} [maxScale] - the maximum multiplier to apply; defaults to no maximum
20
20
  */
21
- const scaleWithText = (value, maxScale = Infinity) => {
21
+ const scaleWithText = function (value) {
22
+ let maxScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
22
23
  if (!value) return value;
23
24
  const scale = Math.min(_PixelRatio.default.getFontScale(), maxScale) || 1;
24
25
  return value * scale;
@@ -37,10 +38,11 @@ const scaleWithText = (value, maxScale = Infinity) => {
37
38
 
38
39
  exports.scaleWithText = scaleWithText;
39
40
 
40
- const getMaxFontMultiplier = ({
41
- fontSize,
42
- fontScaleCap
43
- }) => {
41
+ const getMaxFontMultiplier = _ref => {
42
+ let {
43
+ fontSize,
44
+ fontScaleCap
45
+ } = _ref;
44
46
  if (_Platform.default.OS === 'web' || !fontScaleCap || !fontSize) return undefined;
45
47
  if (fontScaleCap <= fontSize) return 1;
46
48
  return fontScaleCap / fontSize;
@@ -17,22 +17,29 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
17
17
 
18
18
  // TODO: systematise animations
19
19
  // https://github.com/telus/universal-design-system/issues/487
20
- function useVerticalExpandAnimation({
21
- containerHeight,
22
- isExpanded,
23
- tokens
24
- }) {
20
+ function useVerticalExpandAnimation(_ref) {
21
+ let {
22
+ containerHeight,
23
+ isExpanded,
24
+ tokens
25
+ } = _ref;
25
26
  const [isAnimating, setIsAnimating] = (0, _react.useState)(false);
27
+ const [wasExpanded, setWasExpanded] = (0, _react.useState)(isExpanded);
28
+ const expandStateChanged = isExpanded !== wasExpanded;
26
29
  const expandAnimatedValue = (0, _react.useRef)(new _Animated.default.Value(0)).current;
27
30
  const elementRef = (0, _react.useRef)(null);
28
31
  const {
29
32
  expandDuration,
30
33
  collapseDuration
31
- } = tokens; // Treat as animating from when expanded state changes, until animation completes
32
-
33
- (0, _react.useEffect)(() => setIsAnimating(true), [isExpanded]);
34
+ } = tokens;
35
+ (0, _react.useLayoutEffect)(() => {
36
+ if (expandStateChanged) {
37
+ setIsAnimating(true);
38
+ setWasExpanded(isExpanded);
39
+ }
40
+ }, [expandStateChanged, isExpanded]);
34
41
  (0, _react.useEffect)(() => {
35
- const onComplete = () => !isExpanded && setIsAnimating(false);
42
+ const onComplete = () => setIsAnimating(false);
36
43
 
37
44
  if (_Platform.default.OS === 'web') {
38
45
  if (!elementRef.current) return () => {}; // React Native Web does not pass `onTransitionEnd` through, must attach manually.
@@ -54,20 +61,40 @@ function useVerticalExpandAnimation({
54
61
 
55
62
  animation.start(onComplete);
56
63
  return () => animation.stop();
57
- }, [isExpanded, expandAnimatedValue, containerHeight, expandDuration, collapseDuration]); // Without `visibility: 'hidden', descendents are focusable on web even when collapsed
64
+ }, [isExpanded, expandAnimatedValue, containerHeight, expandDuration, collapseDuration]);
65
+ const containerStyles = {};
66
+ if (isAnimating || expandStateChanged) containerStyles.overflow = 'hidden';
58
67
 
59
- const containerStyles = !isExpanded && !isAnimating ? {
60
- visibility: 'hidden'
61
- } : {}; // don't visually collapse the container until we have it measured
62
-
63
- if (containerHeight !== null) {
68
+ if (!isExpanded && !isAnimating && !expandStateChanged) {
64
69
  if (_Platform.default.OS === 'web') {
65
- const transitionDuration = isExpanded ? expandDuration : collapseDuration;
66
- containerStyles.transition = `height ${transitionDuration}ms ease-in-out`;
67
- containerStyles.height = isExpanded ? containerHeight : 0;
70
+ // Without `visibility: 'hidden', descendents are focusable on web even when collapsed.
71
+ containerStyles.visibility = 'hidden';
68
72
  } else {
69
- containerStyles.height = expandAnimatedValue;
73
+ // There's no `visibility: hidden` in React Native, and display: none causes a flicker on expand.
74
+ // Without some form of hiding, some children leak through even when closed e.g. `List.Item` bullets.
75
+ containerStyles.opacity = 0;
76
+ }
77
+ } // don't visually collapse the container until we have it measured
78
+
79
+
80
+ if (containerHeight === null) {
81
+ if (_Platform.default.OS === 'web') {
82
+ // on web we can hide the contents until we have the container measured and avoid occasional jitter
83
+ // this won't work on native platforms
84
+ containerStyles.height = 0;
85
+ containerStyles.visibility = 'hidden';
70
86
  }
87
+ } else if (_Platform.default.OS === 'web') {
88
+ const transitionDuration = isExpanded ? expandDuration : collapseDuration;
89
+ containerStyles.transition = "height ".concat(transitionDuration, "ms ease-in-out");
90
+ containerStyles.height = isExpanded ? containerHeight : 0;
91
+ } else if (_Platform.default.OS === 'ios' && isExpanded && !isAnimating && !expandStateChanged && typeof containerHeight === 'number') {
92
+ // iOS reflows text while the height animation is in progress. Sometimes, it hits a timing bug where
93
+ // it fails to reflow properly after the last animation frame, leaving the last line of text not visible.
94
+ // Force reflow after animation completes with a static height non-identical to the last animated height.
95
+ containerStyles.height = containerHeight + 1;
96
+ } else {
97
+ containerStyles.height = expandAnimatedValue;
71
98
  }
72
99
 
73
100
  return [containerStyles, elementRef];
@@ -73,7 +73,7 @@ const isWrapable = child => {
73
73
  return isStringOrNumber(child) || child.type === _A11yText.default || ((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.name) === 'FootnoteLink';
74
74
  };
75
75
 
76
- const combineKeys = childrenArray => childrenArray.reduce((newKey, child) => `${newKey}${child.key || ''}`, ''); // Group wrappable children for one `<Text>` parent, merging adjacent text nodes
76
+ const combineKeys = childrenArray => childrenArray.reduce((newKey, child) => "".concat(newKey).concat(child.key || ''), ''); // Group wrappable children for one `<Text>` parent, merging adjacent text nodes
77
77
 
78
78
 
79
79
  const wrapChild = (child, wrappedText) => {
@@ -82,7 +82,7 @@ const wrapChild = (child, wrappedText) => {
82
82
 
83
83
  if (lastIndex >= 0 && isStringOrNumber(child) && isStringOrNumber(wrappedText[lastIndex])) {
84
84
  /* eslint-disable-next-line no-param-reassign */
85
- wrappedText[lastIndex] = `${wrappedText[lastIndex]}${child}`;
85
+ wrappedText[lastIndex] = "".concat(wrappedText[lastIndex]).concat(child);
86
86
  } else {
87
87
  wrappedText.push(child);
88
88
  }
@@ -104,7 +104,8 @@ const wrapChild = (child, wrappedText) => {
104
104
  */
105
105
 
106
106
 
107
- const wrapStringsInText = (children, textProps = {}) => {
107
+ const wrapStringsInText = function (children) {
108
+ let textProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
108
109
  const childrenArray = unpackFragment(_react.Children.toArray(children)); // Group adjacent wrapable children together in one Text element to create as few Text elements
109
110
  // as possible, e.g. give <X>Text {someString}</X> one Text, same as <X>{`Text ${someString}`}</X>
110
111
 
@@ -13,6 +13,12 @@ var _exportNames = {
13
13
  withLinkRouter: true,
14
14
  containUniqueFields: true
15
15
  };
16
+ Object.defineProperty(exports, "containUniqueFields", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _containUniqueFields.default;
20
+ }
21
+ });
16
22
  Object.defineProperty(exports, "info", {
17
23
  enumerable: true,
18
24
  get: function () {
@@ -31,16 +37,16 @@ Object.defineProperty(exports, "useHash", {
31
37
  return _useHash.default;
32
38
  }
33
39
  });
34
- Object.defineProperty(exports, "useSpacingScale", {
40
+ Object.defineProperty(exports, "useResponsiveProp", {
35
41
  enumerable: true,
36
42
  get: function () {
37
- return _useSpacingScale.default;
43
+ return _useResponsiveProp.default;
38
44
  }
39
45
  });
40
- Object.defineProperty(exports, "useResponsiveProp", {
46
+ Object.defineProperty(exports, "useSpacingScale", {
41
47
  enumerable: true,
42
48
  get: function () {
43
- return _useResponsiveProp.default;
49
+ return _useSpacingScale.default;
44
50
  }
45
51
  });
46
52
  Object.defineProperty(exports, "useUniqueId", {
@@ -55,12 +61,6 @@ Object.defineProperty(exports, "withLinkRouter", {
55
61
  return _withLinkRouter.default;
56
62
  }
57
63
  });
58
- Object.defineProperty(exports, "containUniqueFields", {
59
- enumerable: true,
60
- get: function () {
61
- return _containUniqueFields.default;
62
- }
63
- });
64
64
 
65
65
  var _a11y = require("./a11y");
66
66
 
@@ -12,43 +12,39 @@ var _react = require("react");
12
12
  */
13
13
  const pluralHooks = ['useMultipleInputValues'];
14
14
 
15
- const validateProps = ({
16
- value,
17
- onChange,
18
- readOnly,
19
- initialValue
20
- }, {
21
- isCurrentlyControlled,
22
- isControlled
23
- }, hookName) => {
15
+ const validateProps = (_ref, _ref2, hookName) => {
16
+ let {
17
+ value,
18
+ onChange,
19
+ readOnly,
20
+ initialValue
21
+ } = _ref;
22
+ let {
23
+ isCurrentlyControlled,
24
+ isControlled
25
+ } = _ref2;
24
26
  const s = pluralHooks.includes(hookName) ? 's' : '';
25
27
 
26
28
  const usageError = error => {
27
29
  // Errors inside hooks in React Native get incomplete stack traces pointing at parent component only.
28
30
  // Help devs out by telling them exactly which hook threw the error as well as why.
29
- throw new Error(`${hookName} ${error}.
30
-
31
- Consumers of this hook must be one of:
32
- 1. An "uncontrolled" component responding directly to user actions, with an optional \`initialValue${s}\` but no \`value${s}\` prop,
33
- 2. A "controlled" component where an always-defined \`value${s}\` prop is managed by an \`onChange\` handler, with no \`initialValue${s}\`,
34
- 3. A "read-only" component, with \`readOnly\` prop set as \`true\`.
35
- `);
31
+ throw new Error("".concat(hookName, " ").concat(error, ".\n\nConsumers of this hook must be one of:\n1. An \"uncontrolled\" component responding directly to user actions, with an optional `initialValue").concat(s, "` but no `value").concat(s, "` prop,\n2. A \"controlled\" component where an always-defined `value").concat(s, "` prop is managed by an `onChange` handler, with no `initialValue").concat(s, "`,\n3. A \"read-only\" component, with `readOnly` prop set as `true`.\n"));
36
32
  };
37
33
 
38
34
  if (value && !onChange && !readOnly) {
39
- usageError(`has \`value${s}\` prop without \`onChange\` or \`readOnly\``);
35
+ usageError("has `value".concat(s, "` prop without `onChange` or `readOnly`"));
40
36
  }
41
37
 
42
38
  if (initialValue && value) {
43
- usageError(`has both \`initialValue${s}\` and \`value${s}\``);
39
+ usageError("has both `initialValue".concat(s, "` and `value").concat(s, "`"));
44
40
  }
45
41
 
46
42
  if (isControlled && !isCurrentlyControlled) {
47
- usageError(`stopped receiving \`value${s}\` from parent after delegating state management`);
43
+ usageError("stopped receiving `value".concat(s, "` from parent after delegating state management"));
48
44
  }
49
45
 
50
46
  if (!isControlled && isCurrentlyControlled) {
51
- usageError(`started receiving \`value${s}\` from parent after starting managing own state`);
47
+ usageError("started receiving `value".concat(s, "` from parent after starting managing own state"));
52
48
  }
53
49
  };
54
50
  /**
@@ -76,7 +72,9 @@ Consumers of this hook must be one of:
76
72
  */
77
73
 
78
74
 
79
- const useInputValue = (props = {}, hookName = 'useInputValue') => {
75
+ const useInputValue = function () {
76
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
77
+ let hookName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'useInputValue';
80
78
  const isCurrentlyControlled = props.value !== undefined;
81
79
  const [isControlled] = (0, _react.useState)(isCurrentlyControlled);
82
80
  validateProps(props, {
@@ -143,13 +141,14 @@ const useInputValue = (props = {}, hookName = 'useInputValue') => {
143
141
 
144
142
  exports.useInputValue = useInputValue;
145
143
 
146
- const useMultipleInputValues = ({
147
- values,
148
- initialValues,
149
- maxValues,
150
- onChange,
151
- readOnly
152
- } = {}) => {
144
+ const useMultipleInputValues = function () {
145
+ let {
146
+ values,
147
+ initialValues,
148
+ maxValues,
149
+ onChange,
150
+ readOnly
151
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
153
152
  const {
154
153
  currentValue,
155
154
  setValue,
@@ -159,7 +158,7 @@ const useMultipleInputValues = ({
159
158
  onChange,
160
159
  value: values,
161
160
  // if we're controlling our own state, always start with an array
162
- initialValue: initialValues ?? (values === undefined ? [] : undefined)
161
+ initialValue: initialValues !== null && initialValues !== void 0 ? initialValues : values === undefined ? [] : undefined
163
162
  }, 'useMultipleInputValues');
164
163
  const enforceMaxValues = (0, _react.useCallback)(newValues => {
165
164
  if (!maxValues) return newValues;