@telus-uds/components-base 1.1.0 → 1.3.1

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 (432) hide show
  1. package/.turbo/turbo-build.log +8 -0
  2. package/CHANGELOG.json +38 -0
  3. package/CHANGELOG.md +35 -2
  4. package/__fixtures__/Accessible.js +4 -2
  5. package/__fixtures__/Accessible.native.js +5 -2
  6. package/__fixtures__/testTheme.js +9 -0
  7. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +35 -0
  8. package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +287 -0
  9. package/__tests__/FlexGrid/Col.test.jsx +6 -10
  10. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +1 -0
  11. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +10 -0
  12. package/__tests__/ToggleSwitch/ToggleSwitchGroup.test.jsx +192 -0
  13. package/__tests__/utils/props.test.js +36 -0
  14. package/__tests__/utils/semantics.test.jsx +1 -10
  15. package/babel.config.js +27 -5
  16. package/component-docs.json +638 -1145
  17. package/generate-component-docs.js +3 -0
  18. package/lib/A11yText/index.js +6 -5
  19. package/lib/ActivityIndicator/Spinner.js +46 -37
  20. package/lib/ActivityIndicator/Spinner.native.js +26 -15
  21. package/lib/ActivityIndicator/index.js +3 -3
  22. package/lib/Box/Box.js +8 -8
  23. package/lib/Button/Button.js +2 -2
  24. package/lib/Button/ButtonBase.js +25 -12
  25. package/lib/Button/ButtonGroup.js +10 -12
  26. package/lib/Button/ButtonLink.js +4 -4
  27. package/lib/Button/propTypes.js +4 -2
  28. package/lib/Card/Card.js +6 -5
  29. package/lib/Card/CardBase.js +6 -9
  30. package/lib/Card/PressableCardBase.js +15 -14
  31. package/lib/Checkbox/Checkbox.js +4 -8
  32. package/lib/Divider/Divider.js +14 -13
  33. package/lib/ExpandCollapse/Control.js +7 -7
  34. package/lib/ExpandCollapse/ExpandCollapse.js +6 -2
  35. package/lib/ExpandCollapse/Panel.js +6 -7
  36. package/lib/Feedback/Feedback.js +6 -5
  37. package/lib/Fieldset/Fieldset.js +1 -3
  38. package/lib/FlexGrid/FlexGrid.js +4 -4
  39. package/lib/FlexGrid/helpers/index.js +1 -4
  40. package/lib/HorizontalScroll/HorizontalScroll.js +5 -6
  41. package/lib/IconButton/IconButton.js +14 -9
  42. package/lib/InputLabel/InputLabel.js +7 -2
  43. package/lib/InputSupports/InputSupports.js +2 -2
  44. package/lib/Link/LinkBase.js +21 -15
  45. package/lib/List/List.js +4 -6
  46. package/lib/List/ListItem.js +6 -2
  47. package/lib/Modal/Modal.js +6 -2
  48. package/lib/Notification/Notification.js +7 -2
  49. package/lib/Pagination/PageButton.js +3 -1
  50. package/lib/Pagination/Pagination.js +22 -5
  51. package/lib/Pagination/SideButton.js +3 -1
  52. package/lib/Progress/Progress.js +5 -4
  53. package/lib/Progress/ProgressBar.js +8 -7
  54. package/lib/Radio/Radio.js +4 -8
  55. package/lib/Radio/RadioButton.js +6 -3
  56. package/lib/Radio/RadioGroup.js +7 -2
  57. package/lib/RadioCard/RadioCard.js +4 -4
  58. package/lib/RadioCard/RadioCardGroup.js +9 -6
  59. package/lib/Search/Search.js +7 -2
  60. package/lib/Select/Select.js +10 -9
  61. package/lib/SideNav/Item.js +7 -7
  62. package/lib/SideNav/SideNav.js +7 -3
  63. package/lib/Skeleton/Skeleton.js +6 -2
  64. package/lib/Spacer/Spacer.js +9 -20
  65. package/lib/StackView/StackView.js +7 -7
  66. package/lib/StackView/StackWrapBox.js +6 -7
  67. package/lib/StackView/StackWrapGap.js +6 -5
  68. package/lib/StackView/getStackedContent.js +1 -1
  69. package/lib/StepTracker/Step.js +7 -3
  70. package/lib/StepTracker/StepTracker.js +7 -7
  71. package/lib/Tabs/Tabs.js +16 -4
  72. package/lib/Tabs/TabsItem.js +18 -11
  73. package/lib/Tags/Tags.js +11 -12
  74. package/lib/TextInput/TextArea.js +13 -14
  75. package/lib/TextInput/TextInput.js +13 -14
  76. package/lib/TextInput/TextInputBase.js +5 -3
  77. package/lib/ThemeProvider/useThemeTokens.js +3 -3
  78. package/lib/ThemeProvider/utils/theme-tokens.js +3 -3
  79. package/lib/ToggleSwitch/ToggleSwitch.js +106 -43
  80. package/lib/ToggleSwitch/ToggleSwitchGroup.js +228 -0
  81. package/lib/ToggleSwitch/index.js +14 -4
  82. package/lib/Tooltip/Tooltip.js +7 -2
  83. package/lib/TooltipButton/TooltipButton.js +7 -2
  84. package/lib/Typography/Typography.js +8 -6
  85. package/lib/index.js +20 -8
  86. package/lib/utils/a11y/semantics.js +4 -3
  87. package/lib/utils/children.js +5 -1
  88. package/lib/utils/index.js +28 -5
  89. package/lib/utils/pressability.js +2 -2
  90. package/lib/utils/props/a11yProps.js +153 -0
  91. package/lib/utils/props/clickProps.js +36 -0
  92. package/lib/utils/props/componentPropType.js +70 -0
  93. package/lib/utils/props/copyPropTypes.js +14 -0
  94. package/lib/utils/props/getPropSelector.js +13 -0
  95. package/lib/utils/props/hrefAttrsProp.js +41 -0
  96. package/lib/utils/props/index.js +158 -0
  97. package/lib/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -3
  98. package/lib/utils/props/linkProps.js +64 -0
  99. package/lib/utils/props/paddingProp.js +20 -0
  100. package/lib/utils/props/pressProps.js +57 -0
  101. package/lib/utils/props/rectProp.js +20 -0
  102. package/lib/utils/props/responsiveProps.js +40 -0
  103. package/lib/utils/props/selectSystemProps.js +31 -0
  104. package/lib/utils/props/spacingProps.js +71 -0
  105. package/lib/utils/props/tokens.js +145 -0
  106. package/lib/utils/props/variantProp.js +28 -0
  107. package/lib/utils/props/viewProps.js +34 -0
  108. package/lib/utils/ssr.js +51 -0
  109. package/lib/utils/useResponsiveProp.js +1 -1
  110. package/lib/utils/useSpacingScale.js +4 -4
  111. package/lib/utils/withLinkRouter.js +98 -0
  112. package/lib-module/A11yInfoProvider/index.js +62 -0
  113. package/lib-module/A11yText/index.js +55 -0
  114. package/lib-module/ActivityIndicator/Spinner.js +76 -0
  115. package/lib-module/ActivityIndicator/Spinner.native.js +143 -0
  116. package/lib-module/ActivityIndicator/index.js +40 -0
  117. package/lib-module/ActivityIndicator/shared.js +12 -0
  118. package/lib-module/BaseProvider/index.js +26 -0
  119. package/lib-module/Box/Box.js +243 -0
  120. package/lib-module/Box/index.js +2 -0
  121. package/lib-module/Button/Button.js +25 -0
  122. package/lib-module/Button/ButtonBase.js +254 -0
  123. package/lib-module/Button/ButtonGroup.js +164 -0
  124. package/lib-module/Button/ButtonLink.js +39 -0
  125. package/lib-module/Button/index.js +4 -0
  126. package/lib-module/Button/propTypes.js +36 -0
  127. package/lib-module/Card/Card.js +83 -0
  128. package/lib-module/Card/CardBase.js +62 -0
  129. package/lib-module/Card/PressableCardBase.js +113 -0
  130. package/lib-module/Card/index.js +4 -0
  131. package/lib-module/Checkbox/Checkbox.js +321 -0
  132. package/lib-module/Checkbox/CheckboxGroup.js +218 -0
  133. package/lib-module/Checkbox/CheckboxInput.js +58 -0
  134. package/lib-module/Checkbox/CheckboxInput.native.js +6 -0
  135. package/lib-module/Checkbox/index.js +3 -0
  136. package/lib-module/Divider/Divider.js +123 -0
  137. package/lib-module/Divider/index.js +2 -0
  138. package/lib-module/ExpandCollapse/Accordion.js +15 -0
  139. package/lib-module/ExpandCollapse/Control.js +130 -0
  140. package/lib-module/ExpandCollapse/ExpandCollapse.js +94 -0
  141. package/lib-module/ExpandCollapse/Panel.js +158 -0
  142. package/lib-module/ExpandCollapse/index.js +7 -0
  143. package/lib-module/Feedback/Feedback.js +144 -0
  144. package/lib-module/Feedback/index.js +2 -0
  145. package/lib-module/Fieldset/Fieldset.js +145 -0
  146. package/lib-module/Fieldset/FieldsetContainer.js +29 -0
  147. package/lib-module/Fieldset/FieldsetContainer.native.js +20 -0
  148. package/lib-module/Fieldset/Legend.js +21 -0
  149. package/lib-module/Fieldset/Legend.native.js +28 -0
  150. package/lib-module/Fieldset/cssReset.js +14 -0
  151. package/lib-module/Fieldset/index.js +2 -0
  152. package/lib-module/FlexGrid/Col/Col.js +265 -0
  153. package/lib-module/FlexGrid/Col/index.js +2 -0
  154. package/lib-module/FlexGrid/FlexGrid.js +147 -0
  155. package/lib-module/FlexGrid/Row/Row.js +177 -0
  156. package/lib-module/FlexGrid/Row/index.js +2 -0
  157. package/lib-module/FlexGrid/helpers/index.js +18 -0
  158. package/lib-module/FlexGrid/index.js +2 -0
  159. package/lib-module/FlexGrid/providers/GutterContext.js +3 -0
  160. package/lib-module/HorizontalScroll/HorizontalScroll.js +171 -0
  161. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +102 -0
  162. package/lib-module/HorizontalScroll/ScrollViewEnd.js +47 -0
  163. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +24 -0
  164. package/lib-module/HorizontalScroll/dictionary.js +11 -0
  165. package/lib-module/HorizontalScroll/index.js +11 -0
  166. package/lib-module/HorizontalScroll/itemPositions.js +106 -0
  167. package/lib-module/Icon/Icon.js +61 -0
  168. package/lib-module/Icon/IconText.js +81 -0
  169. package/lib-module/Icon/index.js +4 -0
  170. package/lib-module/IconButton/IconButton.js +115 -0
  171. package/lib-module/IconButton/index.js +2 -0
  172. package/lib-module/InputLabel/InputLabel.js +131 -0
  173. package/lib-module/InputLabel/LabelContent.js +24 -0
  174. package/lib-module/InputLabel/LabelContent.native.js +16 -0
  175. package/lib-module/InputLabel/index.js +2 -0
  176. package/lib-module/InputSupports/InputSupports.js +88 -0
  177. package/lib-module/InputSupports/index.js +2 -0
  178. package/lib-module/InputSupports/useInputSupports.js +31 -0
  179. package/lib-module/Link/ChevronLink.js +51 -0
  180. package/lib-module/Link/InlinePressable.js +37 -0
  181. package/lib-module/Link/InlinePressable.native.js +85 -0
  182. package/lib-module/Link/Link.js +27 -0
  183. package/lib-module/Link/LinkBase.js +210 -0
  184. package/lib-module/Link/TextButton.js +43 -0
  185. package/lib-module/Link/index.js +5 -0
  186. package/lib-module/List/List.js +55 -0
  187. package/lib-module/List/ListItem.js +213 -0
  188. package/lib-module/List/index.js +5 -0
  189. package/lib-module/Modal/Modal.js +208 -0
  190. package/lib-module/Modal/dictionary.js +9 -0
  191. package/lib-module/Modal/index.js +2 -0
  192. package/lib-module/Notification/Notification.js +196 -0
  193. package/lib-module/Notification/dictionary.js +8 -0
  194. package/lib-module/Notification/index.js +2 -0
  195. package/lib-module/Pagination/PageButton.js +65 -0
  196. package/lib-module/Pagination/Pagination.js +140 -0
  197. package/lib-module/Pagination/SideButton.js +103 -0
  198. package/lib-module/Pagination/dictionary.js +18 -0
  199. package/lib-module/Pagination/index.js +2 -0
  200. package/lib-module/Pagination/usePagination.js +72 -0
  201. package/lib-module/Progress/Progress.js +85 -0
  202. package/lib-module/Progress/ProgressBar.js +134 -0
  203. package/lib-module/Progress/ProgressBarBackground.js +41 -0
  204. package/lib-module/Progress/index.js +4 -0
  205. package/lib-module/Radio/Radio.js +263 -0
  206. package/lib-module/Radio/RadioButton.js +128 -0
  207. package/lib-module/Radio/RadioGroup.js +225 -0
  208. package/lib-module/Radio/RadioInput.js +60 -0
  209. package/lib-module/Radio/RadioInput.native.js +6 -0
  210. package/lib-module/Radio/index.js +3 -0
  211. package/lib-module/RadioCard/RadioCard.js +218 -0
  212. package/lib-module/RadioCard/RadioCardGroup.js +232 -0
  213. package/lib-module/RadioCard/index.js +3 -0
  214. package/lib-module/Search/Search.js +233 -0
  215. package/lib-module/Search/dictionary.js +12 -0
  216. package/lib-module/Search/index.js +2 -0
  217. package/lib-module/Select/Group.js +20 -0
  218. package/lib-module/Select/Group.native.js +14 -0
  219. package/lib-module/Select/Item.js +17 -0
  220. package/lib-module/Select/Item.native.js +9 -0
  221. package/lib-module/Select/Picker.js +67 -0
  222. package/lib-module/Select/Picker.native.js +110 -0
  223. package/lib-module/Select/Select.js +317 -0
  224. package/lib-module/Select/index.js +6 -0
  225. package/lib-module/SideNav/Item.js +139 -0
  226. package/lib-module/SideNav/ItemContent.js +45 -0
  227. package/lib-module/SideNav/ItemsGroup.js +115 -0
  228. package/lib-module/SideNav/SideNav.js +133 -0
  229. package/lib-module/SideNav/index.js +1 -0
  230. package/lib-module/Skeleton/Skeleton.js +117 -0
  231. package/lib-module/Skeleton/index.js +2 -0
  232. package/lib-module/Skeleton/skeleton.constant.js +3 -0
  233. package/lib-module/Skeleton/skeletonWebAnimation.js +18 -0
  234. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +24 -0
  235. package/lib-module/Spacer/Spacer.js +97 -0
  236. package/lib-module/Spacer/index.js +2 -0
  237. package/lib-module/StackView/StackView.js +124 -0
  238. package/lib-module/StackView/StackWrap.js +48 -0
  239. package/lib-module/StackView/StackWrap.native.js +3 -0
  240. package/lib-module/StackView/StackWrapBox.js +114 -0
  241. package/lib-module/StackView/StackWrapGap.js +58 -0
  242. package/lib-module/StackView/common.js +32 -0
  243. package/lib-module/StackView/getStackedContent.js +123 -0
  244. package/lib-module/StackView/index.js +5 -0
  245. package/lib-module/StepTracker/Step.js +229 -0
  246. package/lib-module/StepTracker/StepTracker.js +175 -0
  247. package/lib-module/StepTracker/dictionary.js +10 -0
  248. package/lib-module/StepTracker/index.js +2 -0
  249. package/lib-module/Tabs/Tabs.js +113 -0
  250. package/lib-module/Tabs/TabsItem.js +215 -0
  251. package/lib-module/Tabs/index.js +2 -0
  252. package/lib-module/Tags/Tags.js +238 -0
  253. package/lib-module/Tags/index.js +2 -0
  254. package/lib-module/TextInput/TextArea.js +88 -0
  255. package/lib-module/TextInput/TextInput.js +60 -0
  256. package/lib-module/TextInput/TextInputBase.js +233 -0
  257. package/lib-module/TextInput/index.js +3 -0
  258. package/lib-module/TextInput/propTypes.js +31 -0
  259. package/lib-module/ThemeProvider/ThemeProvider.js +35 -0
  260. package/lib-module/ThemeProvider/index.js +6 -0
  261. package/lib-module/ThemeProvider/useSetTheme.js +22 -0
  262. package/lib-module/ThemeProvider/useTheme.js +14 -0
  263. package/lib-module/ThemeProvider/useThemeTokens.js +105 -0
  264. package/lib-module/ThemeProvider/utils/index.js +2 -0
  265. package/lib-module/ThemeProvider/utils/styles.js +174 -0
  266. package/lib-module/ThemeProvider/utils/theme-tokens.js +151 -0
  267. package/lib-module/ToggleSwitch/ToggleSwitch.js +224 -0
  268. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +202 -0
  269. package/lib-module/ToggleSwitch/index.js +3 -0
  270. package/lib-module/Tooltip/Backdrop.js +52 -0
  271. package/lib-module/Tooltip/Backdrop.native.js +43 -0
  272. package/lib-module/Tooltip/Tooltip.js +332 -0
  273. package/lib-module/Tooltip/dictionary.js +8 -0
  274. package/lib-module/Tooltip/getTooltipPosition.js +164 -0
  275. package/lib-module/Tooltip/index.js +2 -0
  276. package/lib-module/TooltipButton/TooltipButton.js +71 -0
  277. package/lib-module/TooltipButton/index.js +2 -0
  278. package/lib-module/Typography/Typography.js +118 -0
  279. package/lib-module/Typography/index.js +2 -0
  280. package/lib-module/ViewportProvider/ViewportProvider.js +28 -0
  281. package/lib-module/ViewportProvider/index.js +3 -0
  282. package/lib-module/ViewportProvider/useViewport.js +3 -0
  283. package/lib-module/ViewportProvider/useViewportListener.js +43 -0
  284. package/lib-module/index.js +48 -0
  285. package/lib-module/utils/a11y/index.js +2 -0
  286. package/lib-module/utils/a11y/semantics.js +154 -0
  287. package/lib-module/utils/a11y/textSize.js +34 -0
  288. package/lib-module/utils/animation/index.js +2 -0
  289. package/lib-module/utils/animation/useVerticalExpandAnimation.js +49 -0
  290. package/lib-module/utils/children.js +118 -0
  291. package/lib-module/utils/index.js +15 -0
  292. package/lib-module/utils/info/index.js +7 -0
  293. package/lib-module/utils/info/platform/index.js +11 -0
  294. package/lib-module/utils/info/platform/platform.android.js +1 -0
  295. package/lib-module/utils/info/platform/platform.ios.js +1 -0
  296. package/lib-module/utils/info/platform/platform.js +1 -0
  297. package/lib-module/utils/info/platform/platform.native.js +4 -0
  298. package/lib-module/utils/info/versions.js +5 -0
  299. package/lib-module/utils/input.js +180 -0
  300. package/lib-module/utils/pressability.js +97 -0
  301. package/lib-module/utils/props/a11yProps.js +140 -0
  302. package/lib-module/utils/props/clickProps.js +25 -0
  303. package/lib-module/utils/props/componentPropType.js +63 -0
  304. package/lib-module/utils/props/copyPropTypes.js +2 -0
  305. package/lib-module/utils/props/getPropSelector.js +6 -0
  306. package/lib-module/utils/props/hrefAttrsProp.js +30 -0
  307. package/lib-module/utils/props/index.js +16 -0
  308. package/lib-module/utils/props/inputSupportsProps.js +54 -0
  309. package/lib-module/utils/props/linkProps.js +47 -0
  310. package/lib-module/utils/props/paddingProp.js +9 -0
  311. package/lib-module/utils/props/pressProps.js +42 -0
  312. package/lib-module/utils/props/rectProp.js +9 -0
  313. package/lib-module/utils/props/responsiveProps.js +30 -0
  314. package/lib-module/utils/props/selectSystemProps.js +24 -0
  315. package/lib-module/utils/props/spacingProps.js +56 -0
  316. package/lib-module/utils/props/tokens.js +120 -0
  317. package/lib-module/utils/props/variantProp.js +18 -0
  318. package/lib-module/utils/props/viewProps.js +22 -0
  319. package/lib-module/utils/ssr.js +35 -0
  320. package/lib-module/utils/useCopy.js +42 -0
  321. package/lib-module/utils/useHash.js +44 -0
  322. package/lib-module/utils/useHash.native.js +7 -0
  323. package/lib-module/utils/useResponsiveProp.js +47 -0
  324. package/lib-module/utils/useSpacingScale.js +123 -0
  325. package/lib-module/utils/useUniqueId.js +12 -0
  326. package/lib-module/utils/withLinkRouter.js +82 -0
  327. package/package.json +9 -5
  328. package/src/A11yText/index.jsx +7 -3
  329. package/src/ActivityIndicator/Spinner.jsx +56 -44
  330. package/src/ActivityIndicator/Spinner.native.jsx +20 -12
  331. package/src/ActivityIndicator/index.jsx +1 -1
  332. package/src/Box/Box.jsx +15 -13
  333. package/src/Button/Button.jsx +1 -1
  334. package/src/Button/ButtonBase.jsx +20 -12
  335. package/src/Button/ButtonGroup.jsx +17 -8
  336. package/src/Button/ButtonLink.jsx +1 -1
  337. package/src/Button/propTypes.js +2 -1
  338. package/src/Card/Card.jsx +7 -4
  339. package/src/Card/CardBase.jsx +6 -5
  340. package/src/Card/PressableCardBase.jsx +16 -14
  341. package/src/Checkbox/Checkbox.jsx +12 -7
  342. package/src/Divider/Divider.jsx +19 -12
  343. package/src/ExpandCollapse/Control.jsx +12 -7
  344. package/src/ExpandCollapse/ExpandCollapse.jsx +13 -3
  345. package/src/ExpandCollapse/Panel.jsx +15 -5
  346. package/src/Feedback/Feedback.jsx +13 -3
  347. package/src/Fieldset/Fieldset.jsx +1 -1
  348. package/src/FlexGrid/FlexGrid.jsx +11 -5
  349. package/src/FlexGrid/helpers/index.js +1 -3
  350. package/src/HorizontalScroll/HorizontalScroll.jsx +12 -5
  351. package/src/IconButton/IconButton.jsx +18 -12
  352. package/src/InputLabel/InputLabel.jsx +16 -2
  353. package/src/InputSupports/InputSupports.jsx +1 -1
  354. package/src/Link/LinkBase.jsx +15 -12
  355. package/src/List/List.jsx +12 -5
  356. package/src/List/ListItem.jsx +16 -2
  357. package/src/Modal/Modal.jsx +63 -50
  358. package/src/Notification/Notification.jsx +17 -3
  359. package/src/Pagination/PageButton.jsx +3 -2
  360. package/src/Pagination/Pagination.jsx +38 -4
  361. package/src/Pagination/SideButton.jsx +2 -2
  362. package/src/Progress/Progress.jsx +5 -3
  363. package/src/Progress/ProgressBar.jsx +8 -6
  364. package/src/Radio/Radio.jsx +13 -7
  365. package/src/Radio/RadioButton.jsx +13 -3
  366. package/src/Radio/RadioGroup.jsx +14 -2
  367. package/src/RadioCard/RadioCard.jsx +9 -6
  368. package/src/RadioCard/RadioCardGroup.jsx +16 -4
  369. package/src/Search/Search.jsx +15 -3
  370. package/src/Select/Select.jsx +21 -7
  371. package/src/SideNav/Item.jsx +15 -7
  372. package/src/SideNav/SideNav.jsx +13 -2
  373. package/src/Skeleton/Skeleton.jsx +55 -43
  374. package/src/Spacer/Spacer.jsx +10 -18
  375. package/src/StackView/StackView.jsx +13 -12
  376. package/src/StackView/StackWrapBox.jsx +12 -12
  377. package/src/StackView/StackWrapGap.jsx +9 -7
  378. package/src/StackView/getStackedContent.jsx +1 -1
  379. package/src/StepTracker/Step.jsx +7 -4
  380. package/src/StepTracker/StepTracker.jsx +8 -8
  381. package/src/Tabs/Tabs.jsx +63 -23
  382. package/src/Tabs/TabsItem.jsx +22 -14
  383. package/src/Tags/Tags.jsx +16 -7
  384. package/src/TextInput/TextArea.jsx +20 -8
  385. package/src/TextInput/TextInput.jsx +20 -8
  386. package/src/TextInput/TextInputBase.jsx +13 -3
  387. package/src/ThemeProvider/useThemeTokens.js +3 -3
  388. package/src/ThemeProvider/utils/theme-tokens.js +3 -3
  389. package/src/ToggleSwitch/ToggleSwitch.jsx +104 -41
  390. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +211 -0
  391. package/src/ToggleSwitch/index.js +2 -1
  392. package/src/Tooltip/Tooltip.jsx +13 -3
  393. package/src/TooltipButton/TooltipButton.jsx +6 -4
  394. package/src/Typography/Typography.jsx +10 -6
  395. package/src/index.js +2 -2
  396. package/src/utils/a11y/semantics.js +3 -2
  397. package/src/utils/children.jsx +2 -1
  398. package/src/utils/index.js +3 -1
  399. package/src/utils/pressability.js +1 -1
  400. package/src/utils/props/a11yProps.js +151 -0
  401. package/src/utils/props/clickProps.js +31 -0
  402. package/src/utils/props/componentPropType.js +67 -0
  403. package/src/utils/props/copyPropTypes.js +3 -0
  404. package/src/utils/props/getPropSelector.js +14 -0
  405. package/src/utils/props/hrefAttrsProp.js +25 -0
  406. package/src/utils/props/index.js +16 -0
  407. package/src/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -4
  408. package/src/utils/props/linkProps.js +43 -0
  409. package/src/utils/props/paddingProp.js +10 -0
  410. package/src/utils/props/pressProps.js +45 -0
  411. package/src/utils/props/rectProp.js +10 -0
  412. package/src/utils/props/responsiveProps.js +30 -0
  413. package/src/utils/props/selectSystemProps.js +25 -0
  414. package/src/utils/props/spacingProps.js +58 -0
  415. package/src/utils/props/tokens.js +150 -0
  416. package/src/utils/props/variantProp.js +20 -0
  417. package/src/utils/props/viewProps.js +23 -0
  418. package/src/utils/ssr.js +35 -0
  419. package/src/utils/useResponsiveProp.js +1 -1
  420. package/src/utils/useSpacingScale.js +4 -4
  421. package/src/utils/withLinkRouter.jsx +68 -0
  422. package/stories/TextInput/TextArea.stories.jsx +1 -0
  423. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +5 -1
  424. package/stories/ToggleSwitch/ToggleSwitchGroup.stories.jsx +81 -0
  425. package/.ultra.cache.json +0 -1
  426. package/lib/utils/a11y/propTypes.js +0 -61
  427. package/lib/utils/a11y/propTypes.native.js +0 -47
  428. package/lib/utils/propTypes.js +0 -541
  429. package/release-context.json +0 -7
  430. package/src/utils/a11y/propTypes.js +0 -61
  431. package/src/utils/a11y/propTypes.native.js +0 -39
  432. package/src/utils/propTypes.js +0 -531
@@ -0,0 +1,8 @@
1
+ @telus-uds/components-base:build: cache hit, replaying output 4c5b413de9c92c19
2
+ @telus-uds/components-base:build: $ yarn build:code && yarn build:docs
3
+ @telus-uds/components-base:build: $ yarn build:main && yarn build:module
4
+ @telus-uds/components-base:build: $ babel src -d lib
5
+ @telus-uds/components-base:build: Successfully compiled 215 files with Babel (14990ms).
6
+ @telus-uds/components-base:build: $ babel src -d lib-module --env-name module
7
+ @telus-uds/components-base:build: Successfully compiled 215 files with Babel (11089ms).
8
+ @telus-uds/components-base:build: $ babel-node --plugins=react-docgen-alpha generate-component-docs.js
package/CHANGELOG.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@telus-uds/components-base",
3
+ "entries": [
4
+ {
5
+ "date": "Wed, 30 Mar 2022 09:49:08 GMT",
6
+ "tag": "@telus-uds/components-base_v1.3.1",
7
+ "version": "1.3.1",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "cody.zuschlag@nearform.com",
12
+ "package": "@telus-uds/components-base",
13
+ "commit": "cdbb7a9be4572e4a3650b917a80bb6f0f57a471e",
14
+ "comment": "post monorepo reorganization release"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@telus-uds/components-base",
19
+ "comment": "Bump @telus-uds/system-constants to v1.0.2",
20
+ "commit": "cdbb7a9be4572e4a3650b917a80bb6f0f57a471e"
21
+ },
22
+ {
23
+ "author": "beachball",
24
+ "package": "@telus-uds/components-base",
25
+ "comment": "Bump @telus-uds/system-theme-tokens to v1.2.2",
26
+ "commit": "cdbb7a9be4572e4a3650b917a80bb6f0f57a471e"
27
+ },
28
+ {
29
+ "author": "beachball",
30
+ "package": "@telus-uds/components-base",
31
+ "comment": "Bump @telus-uds/browserslist-config to v1.0.1",
32
+ "commit": "cdbb7a9be4572e4a3650b917a80bb6f0f57a471e"
33
+ }
34
+ ]
35
+ }
36
+ }
37
+ ]
38
+ }
package/CHANGELOG.md CHANGED
@@ -1,6 +1,39 @@
1
- # Changelog
1
+ # Change Log - @telus-uds/components-base
2
2
 
3
- All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
3
+ This log was last generated on Wed, 30 Mar 2022 09:49:08 GMT and should not be manually modified.
4
+
5
+ <!-- Start content -->
6
+
7
+ ## 1.3.1
8
+
9
+ Wed, 30 Mar 2022 09:49:08 GMT
10
+
11
+ ### Patches
12
+
13
+ - post monorepo reorganization release (cody.zuschlag@nearform.com)
14
+ - Bump @telus-uds/system-constants to v1.0.2
15
+ - Bump @telus-uds/system-theme-tokens to v1.2.2
16
+ - Bump @telus-uds/browserslist-config to v1.0.1
17
+
18
+ ## [1.3.0](https://github.com/telus/universal-design-system/compare/@telus-uds/components-base/v1.2.0...@telus-uds/components-base/v1.3.0) (2022-03-21)
19
+
20
+ ### Features
21
+
22
+ - **components-base:** add common system props handler and restructure props-related utils ([#1444](https://github.com/telus/universal-design-system/issues/1444)) ([ab655ec](https://github.com/telus/universal-design-system/commit/ab655ec61796b6a6d7094c2c42ceef8b5197c634))
23
+ - **docs:** add tokens override documentation ([#1330](https://github.com/telus/universal-design-system/issues/1330)) ([49092e5](https://github.com/telus/universal-design-system/commit/49092e5d5f6c2d3a85de930a74a03afff8a60062))
24
+
25
+ ### Bug Fixes
26
+
27
+ - **base:** inherit FlexGrid.Col responsive size if 0 ([#1419](https://github.com/telus/universal-design-system/issues/1419)) ([9defeb0](https://github.com/telus/universal-design-system/commit/9defeb0da08099afb83df9e7ee902f037cb4de02))
28
+ - **ds-allium:** fix some errors in RN builds ([#1448](https://github.com/telus/universal-design-system/issues/1448)) ([8bc4778](https://github.com/telus/universal-design-system/commit/8bc477890f0183584fdc1009d7929b71d23820a3))
29
+
30
+ ## [1.2.0](https://github.com/telus/universal-design-system/compare/@telus-uds/components-base/v1.1.0...@telus-uds/components-base/v1.2.0) (2022-03-02)
31
+
32
+ ### Features
33
+
34
+ - add withLinkRouter to support router integration ([#1324](https://github.com/telus/universal-design-system/issues/1324)) ([e56f491](https://github.com/telus/universal-design-system/commit/e56f491ac088a005f364330cfc70901532df7cea))
35
+ - **component-base:** refactor ToggleSwitch to use input label and add tooltip support ([#1341](https://github.com/telus/universal-design-system/issues/1341)) ([979da1a](https://github.com/telus/universal-design-system/commit/979da1afb5b319df51026f44299d363f50f1be7d))
36
+ - **components-base:** add ToggleSwitchGroup ([#1307](https://github.com/telus/universal-design-system/issues/1307)) ([402630a](https://github.com/telus/universal-design-system/commit/402630ad04c2d81c4f882fed564cf4ae33096cea))
4
37
 
5
38
  ## [1.1.0](https://github.com/telus/universal-design-system/compare/@telus-uds/components-base/v1.0.1...@telus-uds/components-base/v1.1.0) (2022-02-28)
6
39
 
@@ -1,5 +1,6 @@
1
1
  // this is a copy of an autogenerated file
2
- /* eslint-disable */
2
+ /* eslint-disable spaced-comment */
3
+ /* eslint-disable react/prop-types */
3
4
 
4
5
  import * as React from 'react'
5
6
 
@@ -25,7 +26,8 @@ const Accessible = ({ title, titleId, size, color }) =>
25
26
  )
26
27
  : null,
27
28
  /*#__PURE__*/ React.createElement('path', {
28
- d: 'M4.231 12.257l.662.662a5.87 5.87 0 00-.982 3.235c0 1.585.618 3.078 1.74 4.2a5.903 5.903 0 004.2 1.739 5.839 5.839 0 002.991-.831l.242-.151.647.645c-1.167.81-2.517 1.244-3.88 1.244a6.83 6.83 0 01-4.845-2.003A6.805 6.805 0 013 16.154c0-1.315.378-2.568 1.067-3.65l.165-.247zm5.81-9.99c.178 0 .358.037.527.112l.175.093c.575.334 5.897 3.426 5.907 3.433.307.192.507.492.579.822.124.433.054.913-.22 1.3l-.1.125-2.68 2.738c.106.088.21.178.313.273l.166.162.014.016 5.136-.603.07-.002a1.3 1.3 0 011.3 1.265l-.004.14-.39 6.71a1.46 1.46 0 01-1.455 1.369l-.094-.003a1.456 1.456 0 01-1.362-1.41l.003-.141.337-4.465a.09.09 0 00-.09-.103l-1.71.3a6.86 6.86 0 01-.809 5.367l-.165.254-.66-.66a5.882 5.882 0 00.96-3.206 5.903 5.903 0 00-1.738-4.2 5.904 5.904 0 00-4.201-1.74c-1.06 0-2.073.291-2.966.813l-.24.148-.648-.648a6.827 6.827 0 012.94-1.156l.312-.035 2.507-2.778-1.5-.876L8.33 7.31a1.47 1.47 0 01-2.081.002c-.542-.542-.554-1.423-.078-2.008l.102-.112 2.902-2.596c.244-.217.552-.33.865-.33zm10.24 10.386c.096-.848-.406-.964-.75-.955l-.061.003-3.975.467c.223.338.41.701.576 1.073l.12.28 1.75-.308.077-.022.156-.004c.288 0 .562.125.754.34.15.174.236.392.246.618l-.003.136-.337 4.454a.541.541 0 00.136.389.536.536 0 00.287.171l.086.013c.289 0 .509-.18.567-.422l.015-.093.357-6.14zm-10.24-9.475a.387.387 0 00-.202.056l-.057.043L6.905 5.85c-.215.23-.222.607-.012.817a.558.558 0 00.725.057l.068-.058.027-.027 2.444-2.07 3.024 1.766-2.663 2.952a6.958 6.958 0 012.683.85l.31.183 2.727-2.784a.602.602 0 00.135-.46l-.02-.1-.013-.053a.385.385 0 00-.165-.241l-5.94-3.451a.38.38 0 00-.194-.053zM17.743 1c1.16 0 2.106.945 2.106 2.106a2.11 2.11 0 01-2.106 2.107 2.11 2.11 0 01-2.106-2.107c0-1.161.945-2.106 2.106-2.106zm0 .91a1.196 1.196 0 000 2.392 1.196 1.196 0 000-2.391z',
29
+ d:
30
+ 'M4.231 12.257l.662.662a5.87 5.87 0 00-.982 3.235c0 1.585.618 3.078 1.74 4.2a5.903 5.903 0 004.2 1.739 5.839 5.839 0 002.991-.831l.242-.151.647.645c-1.167.81-2.517 1.244-3.88 1.244a6.83 6.83 0 01-4.845-2.003A6.805 6.805 0 013 16.154c0-1.315.378-2.568 1.067-3.65l.165-.247zm5.81-9.99c.178 0 .358.037.527.112l.175.093c.575.334 5.897 3.426 5.907 3.433.307.192.507.492.579.822.124.433.054.913-.22 1.3l-.1.125-2.68 2.738c.106.088.21.178.313.273l.166.162.014.016 5.136-.603.07-.002a1.3 1.3 0 011.3 1.265l-.004.14-.39 6.71a1.46 1.46 0 01-1.455 1.369l-.094-.003a1.456 1.456 0 01-1.362-1.41l.003-.141.337-4.465a.09.09 0 00-.09-.103l-1.71.3a6.86 6.86 0 01-.809 5.367l-.165.254-.66-.66a5.882 5.882 0 00.96-3.206 5.903 5.903 0 00-1.738-4.2 5.904 5.904 0 00-4.201-1.74c-1.06 0-2.073.291-2.966.813l-.24.148-.648-.648a6.827 6.827 0 012.94-1.156l.312-.035 2.507-2.778-1.5-.876L8.33 7.31a1.47 1.47 0 01-2.081.002c-.542-.542-.554-1.423-.078-2.008l.102-.112 2.902-2.596c.244-.217.552-.33.865-.33zm10.24 10.386c.096-.848-.406-.964-.75-.955l-.061.003-3.975.467c.223.338.41.701.576 1.073l.12.28 1.75-.308.077-.022.156-.004c.288 0 .562.125.754.34.15.174.236.392.246.618l-.003.136-.337 4.454a.541.541 0 00.136.389.536.536 0 00.287.171l.086.013c.289 0 .509-.18.567-.422l.015-.093.357-6.14zm-10.24-9.475a.387.387 0 00-.202.056l-.057.043L6.905 5.85c-.215.23-.222.607-.012.817a.558.558 0 00.725.057l.068-.058.027-.027 2.444-2.07 3.024 1.766-2.663 2.952a6.958 6.958 0 012.683.85l.31.183 2.727-2.784a.602.602 0 00.135-.46l-.02-.1-.013-.053a.385.385 0 00-.165-.241l-5.94-3.451a.38.38 0 00-.194-.053zM17.743 1c1.16 0 2.106.945 2.106 2.106a2.11 2.11 0 01-2.106 2.107 2.11 2.11 0 01-2.106-2.107c0-1.161.945-2.106 2.106-2.106zm0 .91a1.196 1.196 0 000 2.392 1.196 1.196 0 000-2.391z',
29
31
  fillRule: 'evenodd'
30
32
  })
31
33
  )
@@ -1,5 +1,7 @@
1
1
  // this is a copy of an autogenerated file
2
- /* eslint-disable */
2
+ /* eslint-disable spaced-comment */
3
+ /* eslint-disable import/no-extraneous-dependencies */
4
+ /* eslint-disable react/prop-types */
3
5
 
4
6
  import * as React from 'react'
5
7
  import Svg, { Path } from 'react-native-svg'
@@ -24,7 +26,8 @@ const Accessible = ({ title, titleId, size, color }) =>
24
26
  )
25
27
  : null,
26
28
  /*#__PURE__*/ React.createElement(Path, {
27
- d: 'M4.231 12.257l.662.662a5.87 5.87 0 00-.982 3.235c0 1.585.618 3.078 1.74 4.2a5.903 5.903 0 004.2 1.739 5.839 5.839 0 002.991-.831l.242-.151.647.645c-1.167.81-2.517 1.244-3.88 1.244a6.83 6.83 0 01-4.845-2.003A6.805 6.805 0 013 16.154c0-1.315.378-2.568 1.067-3.65l.165-.247zm5.81-9.99c.178 0 .358.037.527.112l.175.093c.575.334 5.897 3.426 5.907 3.433.307.192.507.492.579.822.124.433.054.913-.22 1.3l-.1.125-2.68 2.738c.106.088.21.178.313.273l.166.162.014.016 5.136-.603.07-.002a1.3 1.3 0 011.3 1.265l-.004.14-.39 6.71a1.46 1.46 0 01-1.455 1.369l-.094-.003a1.456 1.456 0 01-1.362-1.41l.003-.141.337-4.465a.09.09 0 00-.09-.103l-1.71.3a6.86 6.86 0 01-.809 5.367l-.165.254-.66-.66a5.882 5.882 0 00.96-3.206 5.903 5.903 0 00-1.738-4.2 5.904 5.904 0 00-4.201-1.74c-1.06 0-2.073.291-2.966.813l-.24.148-.648-.648a6.827 6.827 0 012.94-1.156l.312-.035 2.507-2.778-1.5-.876L8.33 7.31a1.47 1.47 0 01-2.081.002c-.542-.542-.554-1.423-.078-2.008l.102-.112 2.902-2.596c.244-.217.552-.33.865-.33zm10.24 10.386c.096-.848-.406-.964-.75-.955l-.061.003-3.975.467c.223.338.41.701.576 1.073l.12.28 1.75-.308.077-.022.156-.004c.288 0 .562.125.754.34.15.174.236.392.246.618l-.003.136-.337 4.454a.541.541 0 00.136.389.536.536 0 00.287.171l.086.013c.289 0 .509-.18.567-.422l.015-.093.357-6.14zm-10.24-9.475a.387.387 0 00-.202.056l-.057.043L6.905 5.85c-.215.23-.222.607-.012.817a.558.558 0 00.725.057l.068-.058.027-.027 2.444-2.07 3.024 1.766-2.663 2.952a6.958 6.958 0 012.683.85l.31.183 2.727-2.784a.602.602 0 00.135-.46l-.02-.1-.013-.053a.385.385 0 00-.165-.241l-5.94-3.451a.38.38 0 00-.194-.053zM17.743 1c1.16 0 2.106.945 2.106 2.106a2.11 2.11 0 01-2.106 2.107 2.11 2.11 0 01-2.106-2.107c0-1.161.945-2.106 2.106-2.106zm0 .91a1.196 1.196 0 000 2.392 1.196 1.196 0 000-2.391z',
29
+ d:
30
+ 'M4.231 12.257l.662.662a5.87 5.87 0 00-.982 3.235c0 1.585.618 3.078 1.74 4.2a5.903 5.903 0 004.2 1.739 5.839 5.839 0 002.991-.831l.242-.151.647.645c-1.167.81-2.517 1.244-3.88 1.244a6.83 6.83 0 01-4.845-2.003A6.805 6.805 0 013 16.154c0-1.315.378-2.568 1.067-3.65l.165-.247zm5.81-9.99c.178 0 .358.037.527.112l.175.093c.575.334 5.897 3.426 5.907 3.433.307.192.507.492.579.822.124.433.054.913-.22 1.3l-.1.125-2.68 2.738c.106.088.21.178.313.273l.166.162.014.016 5.136-.603.07-.002a1.3 1.3 0 011.3 1.265l-.004.14-.39 6.71a1.46 1.46 0 01-1.455 1.369l-.094-.003a1.456 1.456 0 01-1.362-1.41l.003-.141.337-4.465a.09.09 0 00-.09-.103l-1.71.3a6.86 6.86 0 01-.809 5.367l-.165.254-.66-.66a5.882 5.882 0 00.96-3.206 5.903 5.903 0 00-1.738-4.2 5.904 5.904 0 00-4.201-1.74c-1.06 0-2.073.291-2.966.813l-.24.148-.648-.648a6.827 6.827 0 012.94-1.156l.312-.035 2.507-2.778-1.5-.876L8.33 7.31a1.47 1.47 0 01-2.081.002c-.542-.542-.554-1.423-.078-2.008l.102-.112 2.902-2.596c.244-.217.552-.33.865-.33zm10.24 10.386c.096-.848-.406-.964-.75-.955l-.061.003-3.975.467c.223.338.41.701.576 1.073l.12.28 1.75-.308.077-.022.156-.004c.288 0 .562.125.754.34.15.174.236.392.246.618l-.003.136-.337 4.454a.541.541 0 00.136.389.536.536 0 00.287.171l.086.013c.289 0 .509-.18.567-.422l.015-.093.357-6.14zm-10.24-9.475a.387.387 0 00-.202.056l-.057.043L6.905 5.85c-.215.23-.222.607-.012.817a.558.558 0 00.725.057l.068-.058.027-.027 2.444-2.07 3.024 1.766-2.663 2.952a6.958 6.958 0 012.683.85l.31.183 2.727-2.784a.602.602 0 00.135-.46l-.02-.1-.013-.053a.385.385 0 00-.165-.241l-5.94-3.451a.38.38 0 00-.194-.053zM17.743 1c1.16 0 2.106.945 2.106 2.106a2.11 2.11 0 01-2.106 2.107 2.11 2.11 0 01-2.106-2.107c0-1.161.945-2.106 2.106-2.106zm0 .91a1.196 1.196 0 000 2.392 1.196 1.196 0 000-2.391z',
28
31
  fillRule: 'evenodd'
29
32
  })
30
33
  )
@@ -1515,6 +1515,15 @@ export default {
1515
1515
  }
1516
1516
  ]
1517
1517
  },
1518
+ ToggleSwitchGroup: {
1519
+ tokens: {
1520
+ space: 2,
1521
+ direction: 'row',
1522
+ alignItems: 'flex-start',
1523
+ justifyContent: 'flex-start',
1524
+ flexGrow: 1
1525
+ }
1526
+ },
1518
1527
  TextInput: {
1519
1528
  appearances: {
1520
1529
  validation: appearances.TextInput.validation,
@@ -1,7 +1,9 @@
1
1
  import React from 'react'
2
+ import { Platform } from 'react-native'
2
3
  import { render as baseRender } from '@testing-library/react-native'
3
4
  import Theme from '../../__fixtures__/Theme'
4
5
  import ActivityIndicator from '../../src/ActivityIndicator'
6
+ import * as A11yInfoProvider from '../../src/A11yInfoProvider'
5
7
 
6
8
  // Used to remove the "Animated: `useNativeDriver` is not supported because the native animated module is missing." warnings
7
9
  jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper')
@@ -30,4 +32,37 @@ describe('ActivityIndicator', () => {
30
32
  const { getByText } = render(<ActivityIndicator label="I'm a loader" />)
31
33
  expect(() => getByText("I'm a loader")).toThrow()
32
34
  })
35
+
36
+ it("doesn't animate when reduced motion is enabled", async () => {
37
+ jest
38
+ .spyOn(A11yInfoProvider, 'useA11yInfo')
39
+ .mockImplementation(() => ({ reduceMotionEnabled: true }))
40
+ // TODO: this won't be called until cross-platform Jest tests are configured
41
+ // see https://github.com/telus/universal-design-system/issues/319
42
+ if (Platform.OS === 'web') {
43
+ const { container } = render(<ActivityIndicator label="I'm a loader" />)
44
+ expect(container.querySelector('[attributeName="transform"]')).not.toBeInTheDocument()
45
+ expect(container.querySelector('[attributeName="stroke-dashoffset"]')).not.toBeInTheDocument()
46
+ expect(container.querySelector('[attributeName="stroke-dasharray"]')).not.toBeInTheDocument()
47
+ } else {
48
+ const component = render(<ActivityIndicator label="I'm a loader" />)
49
+ expect(component).toMatchSnapshot()
50
+ }
51
+ })
52
+ it("animates when reduced motion isn't enabled", async () => {
53
+ jest
54
+ .spyOn(A11yInfoProvider, 'useA11yInfo')
55
+ .mockImplementation(() => ({ reduceMotionEnabled: false }))
56
+ // TODO: this won't be called until cross-platform Jest tests are configured
57
+ // see https://github.com/telus/universal-design-system/issues/319
58
+ if (Platform.OS === 'web') {
59
+ const { container } = render(<ActivityIndicator label="I'm a loader" />)
60
+ expect(container.querySelector('[attributeName="transform"]')).toBeInTheDocument()
61
+ expect(container.querySelector('[attributeName="stroke-dashoffset"]')).toBeInTheDocument()
62
+ expect(container.querySelector('[attributeName="stroke-dasharray"]')).toBeInTheDocument()
63
+ } else {
64
+ const component = render(<ActivityIndicator label="I'm a loader" />)
65
+ expect(component).toMatchSnapshot()
66
+ }
67
+ })
33
68
  })
@@ -0,0 +1,287 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ActivityIndicator animates when reduced motion isn't enabled 1`] = `
4
+ <View
5
+ accessibilityLabel="I'm a loader"
6
+ accessibilityRole="progressbar"
7
+ accessibilityState={
8
+ Object {
9
+ "busy": true,
10
+ }
11
+ }
12
+ accessible={true}
13
+ style={
14
+ Array [
15
+ Object {
16
+ "flexGrow": 0,
17
+ "flexShrink": 0,
18
+ },
19
+ ]
20
+ }
21
+ >
22
+ <View
23
+ collapsable={false}
24
+ style={
25
+ Object {
26
+ "height": 24,
27
+ "width": 24,
28
+ }
29
+ }
30
+ >
31
+ <View
32
+ style={
33
+ Object {
34
+ "alignItems": "center",
35
+ "bottom": 0,
36
+ "justifyContent": "center",
37
+ "left": 0,
38
+ "position": "absolute",
39
+ "right": 0,
40
+ "top": 0,
41
+ }
42
+ }
43
+ >
44
+ <View
45
+ style={
46
+ Object {
47
+ "height": 24,
48
+ "transform": Array [
49
+ Object {
50
+ "rotate": "45deg",
51
+ },
52
+ ],
53
+ "width": 24,
54
+ }
55
+ }
56
+ >
57
+ <View
58
+ collapsable={false}
59
+ style={
60
+ Object {
61
+ "height": 12,
62
+ "overflow": "hidden",
63
+ "width": 24,
64
+ }
65
+ }
66
+ >
67
+ <View
68
+ style={
69
+ Object {
70
+ "height": 24,
71
+ "transform": Array [
72
+ Object {
73
+ "translateY": 0,
74
+ },
75
+ Object {
76
+ "rotate": "-165deg",
77
+ },
78
+ ],
79
+ "width": 24,
80
+ }
81
+ }
82
+ >
83
+ <View
84
+ collapsable={false}
85
+ style={
86
+ Object {
87
+ "height": 12,
88
+ "overflow": "hidden",
89
+ "width": 24,
90
+ }
91
+ }
92
+ >
93
+ <View
94
+ style={
95
+ Object {
96
+ "borderColor": "#0e6ac8",
97
+ "borderRadius": 12,
98
+ "borderWidth": 2,
99
+ "height": 24,
100
+ "width": 24,
101
+ }
102
+ }
103
+ />
104
+ </View>
105
+ </View>
106
+ </View>
107
+ </View>
108
+ </View>
109
+ <View
110
+ style={
111
+ Object {
112
+ "alignItems": "center",
113
+ "bottom": 0,
114
+ "justifyContent": "center",
115
+ "left": 0,
116
+ "position": "absolute",
117
+ "right": 0,
118
+ "top": 0,
119
+ }
120
+ }
121
+ >
122
+ <View
123
+ style={
124
+ Object {
125
+ "height": 24,
126
+ "transform": Array [
127
+ Object {
128
+ "rotate": "45deg",
129
+ },
130
+ ],
131
+ "width": 24,
132
+ }
133
+ }
134
+ >
135
+ <View
136
+ collapsable={false}
137
+ style={
138
+ Object {
139
+ "height": 12,
140
+ "overflow": "hidden",
141
+ "top": 12,
142
+ "width": 24,
143
+ }
144
+ }
145
+ >
146
+ <View
147
+ style={
148
+ Object {
149
+ "height": 24,
150
+ "transform": Array [
151
+ Object {
152
+ "translateY": -12,
153
+ },
154
+ Object {
155
+ "rotate": "345deg",
156
+ },
157
+ ],
158
+ "width": 24,
159
+ }
160
+ }
161
+ >
162
+ <View
163
+ collapsable={false}
164
+ style={
165
+ Object {
166
+ "height": 12,
167
+ "overflow": "hidden",
168
+ "width": 24,
169
+ }
170
+ }
171
+ >
172
+ <View
173
+ style={
174
+ Object {
175
+ "borderColor": "#0e6ac8",
176
+ "borderRadius": 12,
177
+ "borderWidth": 2,
178
+ "height": 24,
179
+ "width": 24,
180
+ }
181
+ }
182
+ />
183
+ </View>
184
+ </View>
185
+ </View>
186
+ </View>
187
+ </View>
188
+ </View>
189
+ </View>
190
+ `;
191
+
192
+ exports[`ActivityIndicator doesn't animate when reduced motion is enabled 1`] = `
193
+ <View
194
+ accessibilityLabel="I'm a loader"
195
+ accessibilityRole="progressbar"
196
+ accessibilityState={
197
+ Object {
198
+ "busy": true,
199
+ }
200
+ }
201
+ accessible={true}
202
+ style={
203
+ Array [
204
+ Object {
205
+ "flexGrow": 0,
206
+ "flexShrink": 0,
207
+ },
208
+ ]
209
+ }
210
+ >
211
+ <View
212
+ collapsable={false}
213
+ style={
214
+ Object {
215
+ "height": 24,
216
+ "width": 24,
217
+ }
218
+ }
219
+ >
220
+ <View
221
+ style={
222
+ Object {
223
+ "alignItems": "center",
224
+ "bottom": 0,
225
+ "justifyContent": "center",
226
+ "left": 0,
227
+ "position": "absolute",
228
+ "right": 0,
229
+ "top": 0,
230
+ }
231
+ }
232
+ >
233
+ <View
234
+ style={
235
+ Object {
236
+ "height": 24,
237
+ "width": 24,
238
+ }
239
+ }
240
+ >
241
+ <View
242
+ collapsable={false}
243
+ style={
244
+ Object {
245
+ "height": 16,
246
+ "overflow": "hidden",
247
+ "width": 24,
248
+ }
249
+ }
250
+ >
251
+ <View
252
+ style={
253
+ Object {
254
+ "height": 24,
255
+ "width": 24,
256
+ }
257
+ }
258
+ >
259
+ <View
260
+ collapsable={false}
261
+ style={
262
+ Object {
263
+ "height": 16,
264
+ "overflow": "hidden",
265
+ "width": 24,
266
+ }
267
+ }
268
+ >
269
+ <View
270
+ style={
271
+ Object {
272
+ "borderColor": "#0e6ac8",
273
+ "borderRadius": 12,
274
+ "borderWidth": 2,
275
+ "height": 24,
276
+ "width": 24,
277
+ }
278
+ }
279
+ />
280
+ </View>
281
+ </View>
282
+ </View>
283
+ </View>
284
+ </View>
285
+ </View>
286
+ </View>
287
+ `;
@@ -48,7 +48,6 @@ describe('FlexGrid.Col offsets', () => {
48
48
  )
49
49
  const expectIfOffsetExpected = (propViewport) => {
50
50
  const target = getByText(`${propViewport}Offset`).parent
51
- // eslint-disable-next-line jest/valid-expect
52
51
  return expected[propViewport] ? expect(target) : expect(target).not
53
52
  }
54
53
  expectIfOffsetExpected('xs').toHaveStyle(getOffsetStyle('xs'))
@@ -104,7 +103,6 @@ describe('FlexGrid.Col sizes', () => {
104
103
 
105
104
  const expectIfSizeExpected = (propViewport) => {
106
105
  const target = getByText(propViewport).parent
107
- // eslint-disable-next-line jest/valid-expect
108
106
  return expected[propViewport] ? expect(target) : expect(target).not
109
107
  }
110
108
  expectIfSizeExpected('xs').toHaveStyle(getNumericSizeStyle('xs'))
@@ -154,7 +152,6 @@ describe('FlexGrid.Col sizes', () => {
154
152
 
155
153
  const expectIfSizeExpected = (text) => {
156
154
  const target = getByText(text).parent
157
- // eslint-disable-next-line jest/valid-expect
158
155
  return expected[text] ? expect(target) : expect(target).not
159
156
  }
160
157
  expectIfSizeExpected('xs-md').toHaveStyle(getNumericSizeStyle('xs'))
@@ -166,16 +163,17 @@ describe('FlexGrid.Col sizes', () => {
166
163
  })
167
164
 
168
165
  // Testing special "hiding" case on passing xs, sm, md, lg, xl props as 0.
169
- // Doesn't inherit like other values for these props, only applies to the given prop
166
+ // Should inherit like other values for these props, confirmed in:
167
+ // https://github.com/telus/universal-design-system/pull/364#discussion_r671382300
170
168
  it.each(
171
169
  // true here indicates hiding styles should apply
172
170
  // Align expected results like a table so they're easier to read
173
171
  /* prettier-ignore */ [
174
172
  ['xs', { xs: true, sm: false, md: false, lg: false, xl: false }],
175
- ['sm', { xs: false, sm: true, md: false, lg: false, xl: false }],
176
- ['md', { xs: false, sm: false, md: true, lg: false, xl: false }],
177
- ['lg', { xs: false, sm: false, md: false, lg: true, xl: false }],
178
- ['xl', { xs: false, sm: false, md: false, lg: false, xl: true }]
173
+ ['sm', { xs: true, sm: true, md: false, lg: false, xl: false }],
174
+ ['md', { xs: true, sm: true, md: true, lg: false, xl: false }],
175
+ ['lg', { xs: true, sm: true, md: true, lg: true, xl: false }],
176
+ ['xl', { xs: true, sm: true, md: true, lg: true, xl: true }]
179
177
  ]
180
178
  )('applies hiding styles from one prop at viewport "%s"', (viewport, expected) => {
181
179
  const hidingStyle = { display: 'none' }
@@ -199,7 +197,6 @@ describe('FlexGrid.Col sizes', () => {
199
197
  )
200
198
  const expectIfHidingExpected = (propViewport) => {
201
199
  const target = getByText(propViewport).parent
202
- // eslint-disable-next-line jest/valid-expect
203
200
  return expected[propViewport] ? expect(target) : expect(target).not
204
201
  }
205
202
  expectIfHidingExpected('xs').toHaveStyle(hidingStyle)
@@ -248,7 +245,6 @@ describe('FlexGrid.Col horizontalAlign', () => {
248
245
 
249
246
  const expectIfAlignExpected = (propViewport) => {
250
247
  const target = getByText(propViewport).parent
251
- // eslint-disable-next-line jest/valid-expect
252
248
  return expected[propViewport] ? expect(target) : expect(target).not
253
249
  }
254
250
  expectIfAlignExpected('xs').toHaveStyle(alignRightStyle)
@@ -1,3 +1,4 @@
1
+ /* eslint-disable react/no-multi-comp */
1
2
  import React, { useState } from 'react'
2
3
  import { Pressable, Text, View } from 'react-native'
3
4
  import { fireEvent, render } from '@testing-library/react-native'
@@ -69,4 +69,14 @@ describe('ToggleSwitch', () => {
69
69
  expect(handleChange).toHaveBeenLastCalledWith(true, { nativeEvent: 'example' })
70
70
  expect(queryAllByA11yState(checked)).toHaveLength(0)
71
71
  })
72
+
73
+ it('displays the label', () => {
74
+ const label = 'Toggle me!'
75
+ const { getByText } = render(
76
+ <Theme>
77
+ <ToggleSwitch label={label} />
78
+ </Theme>
79
+ )
80
+ expect(getByText(label)).toBeTruthy()
81
+ })
72
82
  })