@telus-uds/components-base 1.7.1 → 1.8.2

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 (509) hide show
  1. package/CHANGELOG.md +41 -2
  2. package/component-docs.json +944 -691
  3. package/lib/A11yInfoProvider/index.js +4 -3
  4. package/lib/A11yText/index.js +6 -5
  5. package/lib/ActivityIndicator/Spinner.js +7 -6
  6. package/lib/ActivityIndicator/Spinner.native.js +8 -6
  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 +95 -77
  13. package/lib/Button/ButtonGroup.js +140 -65
  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 +96 -82
  21. package/lib/Checkbox/CheckboxGroup.js +30 -28
  22. package/lib/Checkbox/CheckboxInput.js +12 -10
  23. package/lib/Divider/Divider.js +8 -7
  24. package/lib/ExpandCollapse/Control.js +42 -36
  25. package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
  26. package/lib/ExpandCollapse/Panel.js +29 -24
  27. package/lib/Feedback/Feedback.js +48 -35
  28. package/lib/Fieldset/Fieldset.js +22 -14
  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 +17 -16
  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 +10 -9
  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 +44 -30
  46. package/lib/InputLabel/LabelContent.js +12 -9
  47. package/lib/InputLabel/LabelContent.native.js +9 -6
  48. package/lib/InputSupports/InputSupports.js +17 -9
  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 +9 -7
  57. package/lib/List/ListItem.js +99 -74
  58. package/lib/Modal/Modal.js +72 -59
  59. package/lib/Notification/Notification.js +47 -34
  60. package/lib/Pagination/PageButton.js +11 -10
  61. package/lib/Pagination/Pagination.js +39 -28
  62. package/lib/Pagination/SideButton.js +21 -18
  63. package/lib/Pagination/usePagination.js +5 -4
  64. package/lib/Progress/Progress.js +23 -19
  65. package/lib/Progress/ProgressBar.js +23 -19
  66. package/lib/Progress/ProgressBarBackground.js +4 -3
  67. package/lib/Radio/Radio.js +79 -68
  68. package/lib/Radio/RadioButton.js +63 -53
  69. package/lib/Radio/RadioGroup.js +39 -30
  70. package/lib/Radio/RadioInput.js +12 -10
  71. package/lib/RadioCard/RadioCard.js +15 -14
  72. package/lib/RadioCard/RadioCardGroup.js +34 -25
  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 +19 -16
  85. package/lib/Skeleton/Skeleton.js +106 -44
  86. package/lib/Skeleton/skeleton.constant.js +1 -1
  87. package/lib/Spacer/Spacer.js +6 -5
  88. package/lib/StackView/StackView.js +12 -11
  89. package/lib/StackView/StackWrap.js +2 -2
  90. package/lib/StackView/StackWrapBox.js +12 -11
  91. package/lib/StackView/StackWrapGap.js +11 -10
  92. package/lib/StackView/common.js +14 -11
  93. package/lib/StackView/getStackedContent.js +8 -7
  94. package/lib/StackView/index.js +1 -1
  95. package/lib/StepTracker/Step.js +122 -103
  96. package/lib/StepTracker/StepTracker.js +48 -38
  97. package/lib/Tabs/Tabs.js +29 -24
  98. package/lib/Tabs/TabsItem.js +79 -68
  99. package/lib/Tags/Tags.js +67 -61
  100. package/lib/TextInput/TextArea.js +26 -20
  101. package/lib/TextInput/TextInput.js +20 -15
  102. package/lib/TextInput/TextInputBase.js +74 -62
  103. package/lib/TextInput/index.js +4 -4
  104. package/lib/ThemeProvider/ThemeProvider.js +6 -5
  105. package/lib/ThemeProvider/index.js +5 -5
  106. package/lib/ThemeProvider/useSetTheme.js +6 -3
  107. package/lib/ThemeProvider/useThemeTokens.js +7 -2
  108. package/lib/ThemeProvider/utils/styles.js +48 -41
  109. package/lib/ThemeProvider/utils/theme-tokens.js +26 -12
  110. package/lib/ToggleSwitch/ToggleSwitch.js +95 -72
  111. package/lib/ToggleSwitch/ToggleSwitchGroup.js +42 -33
  112. package/lib/Tooltip/Backdrop.js +4 -3
  113. package/lib/Tooltip/Backdrop.native.js +5 -4
  114. package/lib/Tooltip/Tooltip.js +82 -66
  115. package/lib/Tooltip/getTooltipPosition.js +29 -18
  116. package/lib/TooltipButton/TooltipButton.js +28 -21
  117. package/lib/Typography/Typography.js +37 -33
  118. package/lib/ViewportProvider/ViewportProvider.js +4 -3
  119. package/lib/ViewportProvider/useViewportListener.js +6 -3
  120. package/lib/index.js +54 -54
  121. package/lib/utils/a11y/semantics.js +5 -2
  122. package/lib/utils/a11y/textSize.js +8 -6
  123. package/lib/utils/animation/useVerticalExpandAnimation.js +32 -18
  124. package/lib/utils/children.js +2 -1
  125. package/lib/utils/index.js +10 -10
  126. package/lib/utils/input.js +22 -17
  127. package/lib/utils/pressability.js +36 -22
  128. package/lib/utils/props/clickProps.js +2 -1
  129. package/lib/utils/props/getPropSelector.js +6 -3
  130. package/lib/utils/props/handlerProps.js +25 -19
  131. package/lib/utils/props/hrefAttrsProp.js +14 -11
  132. package/lib/utils/props/index.js +12 -12
  133. package/lib/utils/props/inputSupportsProps.js +21 -11
  134. package/lib/utils/props/linkProps.js +7 -6
  135. package/lib/utils/props/pressProps.js +1 -1
  136. package/lib/utils/props/tokens.js +27 -13
  137. package/lib/utils/ssr.js +6 -2
  138. package/lib/utils/useCopy.js +6 -4
  139. package/lib/utils/useHash.js +2 -1
  140. package/lib/utils/useResponsiveProp.js +1 -1
  141. package/lib/utils/useUniqueId.js +2 -1
  142. package/lib/utils/withLinkRouter.js +6 -5
  143. package/package.json +18 -12
  144. package/src/Button/ButtonGroup.jsx +106 -41
  145. package/src/Checkbox/Checkbox.jsx +7 -4
  146. package/src/Checkbox/CheckboxGroup.jsx +3 -3
  147. package/src/ExpandCollapse/Panel.jsx +3 -1
  148. package/src/Fieldset/Fieldset.jsx +6 -0
  149. package/src/InputLabel/InputLabel.jsx +17 -2
  150. package/src/InputSupports/InputSupports.jsx +9 -1
  151. package/src/Notification/Notification.jsx +1 -1
  152. package/src/Pagination/Pagination.jsx +3 -0
  153. package/src/Radio/Radio.jsx +5 -1
  154. package/src/Radio/RadioGroup.jsx +11 -5
  155. package/src/RadioCard/RadioCard.jsx +5 -1
  156. package/src/RadioCard/RadioCardGroup.jsx +6 -0
  157. package/src/Search/Search.jsx +12 -1
  158. package/src/Select/Item.native.jsx +0 -7
  159. package/src/Skeleton/Skeleton.jsx +56 -3
  160. package/src/ToggleSwitch/ToggleSwitch.jsx +6 -0
  161. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +6 -0
  162. package/src/Tooltip/Tooltip.jsx +1 -1
  163. package/src/utils/animation/useVerticalExpandAnimation.js +25 -12
  164. package/src/utils/props/inputSupportsProps.js +6 -1
  165. package/src/utils/props/tokens.js +21 -19
  166. package/.storybook/main.js +0 -4
  167. package/.storybook/preview.js +0 -37
  168. package/.turbo/turbo-build.log +0 -8
  169. package/.turbo/turbo-lint.log +0 -13
  170. package/CHANGELOG.json +0 -250
  171. package/__fixtures__/Accessible.js +0 -35
  172. package/__fixtures__/Accessible.native.js +0 -35
  173. package/__fixtures__/Theme.jsx +0 -13
  174. package/__fixtures__/Viewport.jsx +0 -17
  175. package/__fixtures__/test-utils.js +0 -25
  176. package/__fixtures__/testTheme.js +0 -1830
  177. package/__tests__/A11yText/A11yText.test.jsx +0 -34
  178. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +0 -68
  179. package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +0 -287
  180. package/__tests__/Box/Box.test.jsx +0 -111
  181. package/__tests__/Button/Button.test.jsx +0 -86
  182. package/__tests__/Button/ButtonBase.test.jsx +0 -82
  183. package/__tests__/Button/ButtonGroup.test.jsx +0 -347
  184. package/__tests__/Button/ButtonLink.test.jsx +0 -61
  185. package/__tests__/Card/Card.test.jsx +0 -63
  186. package/__tests__/Checkbox/Checkbox.test.jsx +0 -94
  187. package/__tests__/Checkbox/CheckboxGroup.test.jsx +0 -246
  188. package/__tests__/Divider/Divider.test.jsx +0 -91
  189. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +0 -109
  190. package/__tests__/Feedback/Feedback.test.jsx +0 -42
  191. package/__tests__/FlexGrid/Col.test.jsx +0 -256
  192. package/__tests__/FlexGrid/FlexGrid.test.jsx +0 -136
  193. package/__tests__/FlexGrid/Row.test.jsx +0 -273
  194. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +0 -165
  195. package/__tests__/Icon/Icon.test.jsx +0 -61
  196. package/__tests__/IconButton/IconButton.test.jsx +0 -52
  197. package/__tests__/InputSupports/InputSupports.test.jsx +0 -50
  198. package/__tests__/Link/Link.test.jsx +0 -63
  199. package/__tests__/Link/TextButton.test.jsx +0 -35
  200. package/__tests__/List/List.test.jsx +0 -60
  201. package/__tests__/Modal/Modal.test.jsx +0 -47
  202. package/__tests__/Notification/Notification.test.jsx +0 -20
  203. package/__tests__/Pagination/Pagination.test.jsx +0 -160
  204. package/__tests__/Progress/Progress.test.jsx +0 -79
  205. package/__tests__/Radio/Radio.test.jsx +0 -87
  206. package/__tests__/Radio/RadioGroup.test.jsx +0 -220
  207. package/__tests__/RadioCard/RadioCard.test.jsx +0 -87
  208. package/__tests__/RadioCard/RadioCardGroup.test.jsx +0 -246
  209. package/__tests__/Search/Search.test.jsx +0 -73
  210. package/__tests__/Select/Select.test.jsx +0 -94
  211. package/__tests__/SideNav/SideNav.test.jsx +0 -110
  212. package/__tests__/Skeleton/Skeleton.test.jsx +0 -61
  213. package/__tests__/Spacer/Spacer.test.jsx +0 -63
  214. package/__tests__/StackView/StackView.test.jsx +0 -216
  215. package/__tests__/StackView/StackWrap.test.jsx +0 -47
  216. package/__tests__/StackView/getStackedContent.test.jsx +0 -295
  217. package/__tests__/StepTracker/StepTracker.test.jsx +0 -94
  218. package/__tests__/Tabs/Tabs.test.jsx +0 -40
  219. package/__tests__/Tags/Tags.test.jsx +0 -327
  220. package/__tests__/TextInput/TextArea.test.jsx +0 -35
  221. package/__tests__/TextInput/TextInputBase.test.jsx +0 -125
  222. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +0 -77
  223. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +0 -514
  224. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +0 -41
  225. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +0 -82
  226. package/__tests__/ToggleSwitch/ToggleSwitchGroup.test.jsx +0 -192
  227. package/__tests__/Tooltip/Tooltip.test.jsx +0 -65
  228. package/__tests__/Tooltip/getTooltipPosition.test.js +0 -79
  229. package/__tests__/Typography/typography.test.jsx +0 -90
  230. package/__tests__/utils/children.test.jsx +0 -128
  231. package/__tests__/utils/containUniqueFields.test.js +0 -25
  232. package/__tests__/utils/input.test.js +0 -375
  233. package/__tests__/utils/props.test.js +0 -36
  234. package/__tests__/utils/semantics.test.jsx +0 -34
  235. package/__tests__/utils/useCopy.test.js +0 -42
  236. package/__tests__/utils/useResponsiveProp.test.jsx +0 -202
  237. package/__tests__/utils/useSpacingScale.test.jsx +0 -273
  238. package/__tests__/utils/useUniqueId.test.js +0 -31
  239. package/babel.config.js +0 -35
  240. package/generate-component-docs.js +0 -72
  241. package/jest.config.js +0 -32
  242. package/lib-module/A11yInfoProvider/index.js +0 -62
  243. package/lib-module/A11yText/index.js +0 -55
  244. package/lib-module/ActivityIndicator/Spinner.js +0 -76
  245. package/lib-module/ActivityIndicator/Spinner.native.js +0 -143
  246. package/lib-module/ActivityIndicator/index.js +0 -40
  247. package/lib-module/ActivityIndicator/shared.js +0 -12
  248. package/lib-module/BaseProvider/index.js +0 -26
  249. package/lib-module/Box/Box.js +0 -243
  250. package/lib-module/Box/index.js +0 -2
  251. package/lib-module/Button/Button.js +0 -25
  252. package/lib-module/Button/ButtonBase.js +0 -254
  253. package/lib-module/Button/ButtonGroup.js +0 -173
  254. package/lib-module/Button/ButtonLink.js +0 -39
  255. package/lib-module/Button/index.js +0 -4
  256. package/lib-module/Button/propTypes.js +0 -36
  257. package/lib-module/Card/Card.js +0 -83
  258. package/lib-module/Card/CardBase.js +0 -62
  259. package/lib-module/Card/PressableCardBase.js +0 -113
  260. package/lib-module/Card/index.js +0 -4
  261. package/lib-module/Checkbox/Checkbox.js +0 -332
  262. package/lib-module/Checkbox/CheckboxGroup.js +0 -231
  263. package/lib-module/Checkbox/CheckboxInput.js +0 -58
  264. package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
  265. package/lib-module/Checkbox/index.js +0 -3
  266. package/lib-module/Divider/Divider.js +0 -123
  267. package/lib-module/Divider/index.js +0 -2
  268. package/lib-module/ExpandCollapse/Accordion.js +0 -15
  269. package/lib-module/ExpandCollapse/Control.js +0 -130
  270. package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -94
  271. package/lib-module/ExpandCollapse/Panel.js +0 -158
  272. package/lib-module/ExpandCollapse/index.js +0 -7
  273. package/lib-module/Feedback/Feedback.js +0 -144
  274. package/lib-module/Feedback/index.js +0 -2
  275. package/lib-module/Fieldset/Fieldset.js +0 -145
  276. package/lib-module/Fieldset/FieldsetContainer.js +0 -29
  277. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -20
  278. package/lib-module/Fieldset/Legend.js +0 -21
  279. package/lib-module/Fieldset/Legend.native.js +0 -28
  280. package/lib-module/Fieldset/cssReset.js +0 -14
  281. package/lib-module/Fieldset/index.js +0 -2
  282. package/lib-module/FlexGrid/Col/Col.js +0 -275
  283. package/lib-module/FlexGrid/Col/index.js +0 -2
  284. package/lib-module/FlexGrid/FlexGrid.js +0 -147
  285. package/lib-module/FlexGrid/Row/Row.js +0 -183
  286. package/lib-module/FlexGrid/Row/index.js +0 -2
  287. package/lib-module/FlexGrid/helpers/index.js +0 -18
  288. package/lib-module/FlexGrid/index.js +0 -2
  289. package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
  290. package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -170
  291. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -77
  292. package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -47
  293. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -24
  294. package/lib-module/HorizontalScroll/dictionary.js +0 -11
  295. package/lib-module/HorizontalScroll/index.js +0 -11
  296. package/lib-module/HorizontalScroll/itemPositions.js +0 -106
  297. package/lib-module/Icon/Icon.js +0 -61
  298. package/lib-module/Icon/IconText.js +0 -81
  299. package/lib-module/Icon/index.js +0 -4
  300. package/lib-module/IconButton/IconButton.js +0 -115
  301. package/lib-module/IconButton/index.js +0 -2
  302. package/lib-module/InputLabel/InputLabel.js +0 -134
  303. package/lib-module/InputLabel/LabelContent.js +0 -24
  304. package/lib-module/InputLabel/LabelContent.native.js +0 -16
  305. package/lib-module/InputLabel/index.js +0 -2
  306. package/lib-module/InputSupports/InputSupports.js +0 -88
  307. package/lib-module/InputSupports/index.js +0 -2
  308. package/lib-module/InputSupports/useInputSupports.js +0 -31
  309. package/lib-module/Link/ChevronLink.js +0 -51
  310. package/lib-module/Link/InlinePressable.js +0 -37
  311. package/lib-module/Link/InlinePressable.native.js +0 -85
  312. package/lib-module/Link/Link.js +0 -27
  313. package/lib-module/Link/LinkBase.js +0 -223
  314. package/lib-module/Link/TextButton.js +0 -34
  315. package/lib-module/Link/index.js +0 -5
  316. package/lib-module/List/List.js +0 -55
  317. package/lib-module/List/ListItem.js +0 -223
  318. package/lib-module/List/index.js +0 -5
  319. package/lib-module/Modal/Modal.js +0 -208
  320. package/lib-module/Modal/dictionary.js +0 -9
  321. package/lib-module/Modal/index.js +0 -2
  322. package/lib-module/Notification/Notification.js +0 -196
  323. package/lib-module/Notification/dictionary.js +0 -8
  324. package/lib-module/Notification/index.js +0 -2
  325. package/lib-module/Pagination/PageButton.js +0 -65
  326. package/lib-module/Pagination/Pagination.js +0 -140
  327. package/lib-module/Pagination/SideButton.js +0 -103
  328. package/lib-module/Pagination/dictionary.js +0 -18
  329. package/lib-module/Pagination/index.js +0 -2
  330. package/lib-module/Pagination/usePagination.js +0 -72
  331. package/lib-module/Progress/Progress.js +0 -85
  332. package/lib-module/Progress/ProgressBar.js +0 -134
  333. package/lib-module/Progress/ProgressBarBackground.js +0 -41
  334. package/lib-module/Progress/index.js +0 -4
  335. package/lib-module/Radio/Radio.js +0 -274
  336. package/lib-module/Radio/RadioButton.js +0 -128
  337. package/lib-module/Radio/RadioGroup.js +0 -234
  338. package/lib-module/Radio/RadioInput.js +0 -60
  339. package/lib-module/Radio/RadioInput.native.js +0 -6
  340. package/lib-module/Radio/index.js +0 -3
  341. package/lib-module/RadioCard/RadioCard.js +0 -218
  342. package/lib-module/RadioCard/RadioCardGroup.js +0 -241
  343. package/lib-module/RadioCard/index.js +0 -3
  344. package/lib-module/Search/Search.js +0 -241
  345. package/lib-module/Search/dictionary.js +0 -12
  346. package/lib-module/Search/index.js +0 -2
  347. package/lib-module/Select/Group.js +0 -20
  348. package/lib-module/Select/Group.native.js +0 -14
  349. package/lib-module/Select/Item.js +0 -17
  350. package/lib-module/Select/Item.native.js +0 -9
  351. package/lib-module/Select/Picker.js +0 -67
  352. package/lib-module/Select/Picker.native.js +0 -110
  353. package/lib-module/Select/Select.js +0 -316
  354. package/lib-module/Select/index.js +0 -6
  355. package/lib-module/SideNav/Item.js +0 -139
  356. package/lib-module/SideNav/ItemContent.js +0 -45
  357. package/lib-module/SideNav/ItemsGroup.js +0 -115
  358. package/lib-module/SideNav/SideNav.js +0 -133
  359. package/lib-module/SideNav/index.js +0 -1
  360. package/lib-module/Skeleton/Skeleton.js +0 -117
  361. package/lib-module/Skeleton/index.js +0 -2
  362. package/lib-module/Skeleton/skeleton.constant.js +0 -3
  363. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
  364. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -24
  365. package/lib-module/Spacer/Spacer.js +0 -97
  366. package/lib-module/Spacer/index.js +0 -2
  367. package/lib-module/StackView/StackView.js +0 -124
  368. package/lib-module/StackView/StackWrap.js +0 -48
  369. package/lib-module/StackView/StackWrap.native.js +0 -3
  370. package/lib-module/StackView/StackWrapBox.js +0 -114
  371. package/lib-module/StackView/StackWrapGap.js +0 -58
  372. package/lib-module/StackView/common.js +0 -32
  373. package/lib-module/StackView/getStackedContent.js +0 -123
  374. package/lib-module/StackView/index.js +0 -5
  375. package/lib-module/StepTracker/Step.js +0 -229
  376. package/lib-module/StepTracker/StepTracker.js +0 -175
  377. package/lib-module/StepTracker/dictionary.js +0 -10
  378. package/lib-module/StepTracker/index.js +0 -2
  379. package/lib-module/Tabs/Tabs.js +0 -113
  380. package/lib-module/Tabs/TabsItem.js +0 -215
  381. package/lib-module/Tabs/index.js +0 -2
  382. package/lib-module/Tags/Tags.js +0 -245
  383. package/lib-module/Tags/index.js +0 -2
  384. package/lib-module/TextInput/TextArea.js +0 -88
  385. package/lib-module/TextInput/TextInput.js +0 -68
  386. package/lib-module/TextInput/TextInputBase.js +0 -233
  387. package/lib-module/TextInput/index.js +0 -3
  388. package/lib-module/TextInput/propTypes.js +0 -37
  389. package/lib-module/ThemeProvider/ThemeProvider.js +0 -35
  390. package/lib-module/ThemeProvider/index.js +0 -6
  391. package/lib-module/ThemeProvider/useSetTheme.js +0 -22
  392. package/lib-module/ThemeProvider/useTheme.js +0 -14
  393. package/lib-module/ThemeProvider/useThemeTokens.js +0 -105
  394. package/lib-module/ThemeProvider/utils/index.js +0 -2
  395. package/lib-module/ThemeProvider/utils/styles.js +0 -174
  396. package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -151
  397. package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -227
  398. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -211
  399. package/lib-module/ToggleSwitch/index.js +0 -3
  400. package/lib-module/Tooltip/Backdrop.js +0 -52
  401. package/lib-module/Tooltip/Backdrop.native.js +0 -43
  402. package/lib-module/Tooltip/Tooltip.js +0 -332
  403. package/lib-module/Tooltip/dictionary.js +0 -8
  404. package/lib-module/Tooltip/getTooltipPosition.js +0 -164
  405. package/lib-module/Tooltip/index.js +0 -2
  406. package/lib-module/TooltipButton/TooltipButton.js +0 -71
  407. package/lib-module/TooltipButton/index.js +0 -2
  408. package/lib-module/Typography/Typography.js +0 -120
  409. package/lib-module/Typography/index.js +0 -2
  410. package/lib-module/ViewportProvider/ViewportProvider.js +0 -28
  411. package/lib-module/ViewportProvider/index.js +0 -3
  412. package/lib-module/ViewportProvider/useViewport.js +0 -3
  413. package/lib-module/ViewportProvider/useViewportListener.js +0 -43
  414. package/lib-module/index.js +0 -48
  415. package/lib-module/utils/a11y/index.js +0 -2
  416. package/lib-module/utils/a11y/semantics.js +0 -154
  417. package/lib-module/utils/a11y/textSize.js +0 -34
  418. package/lib-module/utils/animation/index.js +0 -2
  419. package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -49
  420. package/lib-module/utils/children.js +0 -118
  421. package/lib-module/utils/containUniqueFields.js +0 -26
  422. package/lib-module/utils/index.js +0 -16
  423. package/lib-module/utils/info/index.js +0 -7
  424. package/lib-module/utils/info/platform/index.js +0 -11
  425. package/lib-module/utils/info/platform/platform.android.js +0 -1
  426. package/lib-module/utils/info/platform/platform.ios.js +0 -1
  427. package/lib-module/utils/info/platform/platform.js +0 -1
  428. package/lib-module/utils/info/platform/platform.native.js +0 -4
  429. package/lib-module/utils/info/versions.js +0 -5
  430. package/lib-module/utils/input.js +0 -180
  431. package/lib-module/utils/pressability.js +0 -97
  432. package/lib-module/utils/props/a11yProps.js +0 -140
  433. package/lib-module/utils/props/clickProps.js +0 -25
  434. package/lib-module/utils/props/componentPropType.js +0 -63
  435. package/lib-module/utils/props/copyPropTypes.js +0 -2
  436. package/lib-module/utils/props/getPropSelector.js +0 -6
  437. package/lib-module/utils/props/handlerProps.js +0 -59
  438. package/lib-module/utils/props/hrefAttrsProp.js +0 -30
  439. package/lib-module/utils/props/index.js +0 -19
  440. package/lib-module/utils/props/inputSupportsProps.js +0 -52
  441. package/lib-module/utils/props/linkProps.js +0 -43
  442. package/lib-module/utils/props/paddingProp.js +0 -9
  443. package/lib-module/utils/props/pressProps.js +0 -42
  444. package/lib-module/utils/props/rectProp.js +0 -9
  445. package/lib-module/utils/props/responsiveProps.js +0 -30
  446. package/lib-module/utils/props/selectSystemProps.js +0 -24
  447. package/lib-module/utils/props/spacingProps.js +0 -56
  448. package/lib-module/utils/props/textInputProps.js +0 -194
  449. package/lib-module/utils/props/textProps.js +0 -59
  450. package/lib-module/utils/props/tokens.js +0 -120
  451. package/lib-module/utils/props/variantProp.js +0 -18
  452. package/lib-module/utils/props/viewProps.js +0 -22
  453. package/lib-module/utils/ssr.js +0 -35
  454. package/lib-module/utils/useCopy.js +0 -42
  455. package/lib-module/utils/useHash.js +0 -44
  456. package/lib-module/utils/useHash.native.js +0 -7
  457. package/lib-module/utils/useResponsiveProp.js +0 -47
  458. package/lib-module/utils/useSpacingScale.js +0 -123
  459. package/lib-module/utils/useUniqueId.js +0 -12
  460. package/lib-module/utils/withLinkRouter.js +0 -82
  461. package/stories/A11yText/A11yText.stories.jsx +0 -71
  462. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +0 -22
  463. package/stories/Box/Box.stories.jsx +0 -143
  464. package/stories/Button/Button.stories.jsx +0 -72
  465. package/stories/Button/ButtonGroup.stories.jsx +0 -81
  466. package/stories/Button/ButtonLink.stories.jsx +0 -30
  467. package/stories/Card/Card.stories.jsx +0 -62
  468. package/stories/Checkbox/Checkbox.stories.jsx +0 -94
  469. package/stories/Divider/Divider.stories.jsx +0 -68
  470. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +0 -112
  471. package/stories/Feedback/Feedback.stories.jsx +0 -96
  472. package/stories/FlexGrid/01 FlexGrid.stories.jsx +0 -54
  473. package/stories/FlexGrid/02 Row.stories.jsx +0 -41
  474. package/stories/FlexGrid/03 Col.stories.jsx +0 -141
  475. package/stories/Icon/Icon.stories.jsx +0 -79
  476. package/stories/IconButton/IconButton.stories.jsx +0 -50
  477. package/stories/InputLabel/InputLabel.stories.jsx +0 -39
  478. package/stories/Link/ChevronLink.stories.jsx +0 -48
  479. package/stories/Link/Link.stories.jsx +0 -90
  480. package/stories/Link/TextButton.stories.jsx +0 -79
  481. package/stories/List/List.stories.jsx +0 -117
  482. package/stories/Modal/Modal.stories.jsx +0 -54
  483. package/stories/Notification/Notification.stories.jsx +0 -82
  484. package/stories/Pagination/Pagination.stories.jsx +0 -64
  485. package/stories/Progress/Progress.stories.jsx +0 -93
  486. package/stories/Radio/Radio.stories.jsx +0 -100
  487. package/stories/RadioCard/RadioCard.stories.jsx +0 -98
  488. package/stories/Search/Search.stories.jsx +0 -66
  489. package/stories/Select/Select.stories.jsx +0 -55
  490. package/stories/SideNav/SideNav.stories.jsx +0 -42
  491. package/stories/SideNav/SideNavItem.stories.jsx +0 -9
  492. package/stories/SideNav/SideNavItemsGroup.stories.jsx +0 -17
  493. package/stories/Skeleton/Skeleton.stories.jsx +0 -36
  494. package/stories/Spacer/Spacer.stories.jsx +0 -38
  495. package/stories/StackView/StackView.stories.jsx +0 -75
  496. package/stories/StackView/StackWrap.stories.jsx +0 -64
  497. package/stories/StepTracker/StepTracker.stories.jsx +0 -71
  498. package/stories/Tabs/Tabs.stories.jsx +0 -97
  499. package/stories/Tags/Tags.stories.jsx +0 -69
  500. package/stories/TextInput/TextArea.stories.jsx +0 -101
  501. package/stories/TextInput/TextInput.stories.jsx +0 -141
  502. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +0 -64
  503. package/stories/ToggleSwitch/ToggleSwitchGroup.stories.jsx +0 -81
  504. package/stories/Tooltip/Tooltip.stories.jsx +0 -81
  505. package/stories/TooltipButton/TooltipButton.stories.jsx +0 -11
  506. package/stories/Typography/Typography.stories.jsx +0 -49
  507. package/stories/platform-supports.jsx +0 -32
  508. package/stories/platform-supports.native.jsx +0 -3
  509. package/stories/supports.jsx +0 -236
@@ -1,327 +0,0 @@
1
- import React from 'react'
2
- import { render, fireEvent } from '@testing-library/react-native'
3
- import { toHaveTextContent } from '@testing-library/jest-native'
4
-
5
- import Theme from '../../__fixtures__/Theme'
6
- import Tags from '../../src/Tags'
7
-
8
- const items = [
9
- { label: 'One', id: 'one', accessibilityLabel: 'Option one' },
10
- { label: 'Two', id: 'two', accessibilityLabel: 'Option two' },
11
- { label: 'Three', id: 'three', accessibilityLabel: 'Option three' },
12
- { label: 'Four', id: 'four', accessibilityLabel: 'Option four' }
13
- ]
14
- const checked = { checked: true }
15
-
16
- // expect().toHaveTextContent doesn't work on arrays, expect().toContain etc doesn't match elements
17
- const containsText = (queryResult, text) =>
18
- queryResult.some((testInstance) => toHaveTextContent(testInstance, text).pass)
19
-
20
- describe('Tags', () => {
21
- // eslint-disable-next-line no-console
22
- const consoleError = console.error
23
- beforeEach(() => {
24
- // eslint-disable-next-line no-console
25
- console.error = () => {}
26
- })
27
- afterEach(() => {
28
- // eslint-disable-next-line no-console
29
- console.error = consoleError
30
- })
31
-
32
- it('Throws if has `values` without `onChange`', () => {
33
- expect(() =>
34
- render(
35
- <Theme>
36
- <Tags items={items} values={['one']} />
37
- </Theme>
38
- )
39
- ).toThrow(/values.+without.+onChange/)
40
- })
41
- it("Doesn't throw if has `values` without `onChange` and is read only", () => {
42
- expect(() =>
43
- render(
44
- <Theme>
45
- <Tags items={items} values={['one']} readOnly />
46
- </Theme>
47
- )
48
- ).not.toThrow()
49
- })
50
- it('Throws if has both `values` and `initialValues`', () => {
51
- expect(() =>
52
- render(
53
- <Theme>
54
- <Tags items={items} values={['one']} initialValues={['one']} onChange={() => {}} />
55
- </Theme>
56
- )
57
- ).toThrow(/both(?=.*initialValues)(?=.*values){2}/)
58
- })
59
- })
60
-
61
- describe('Tags (uncontrolled)', () => {
62
- // These tests are almost the same as ButtonGroup while Tags-specific behaviours are still TBC
63
- it('Selects one and only one item if maxValues is passed', async () => {
64
- const { getByText, queryAllByA11yState } = render(
65
- <Theme>
66
- <Tags items={items} maxValues={1} />
67
- </Theme>
68
- )
69
-
70
- expect(queryAllByA11yState(checked)).toHaveLength(0)
71
-
72
- const one = getByText('One')
73
- await fireEvent.press(one)
74
- expect(queryAllByA11yState(checked)).toHaveLength(1)
75
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
76
-
77
- const two = getByText('Two')
78
- await fireEvent.press(two)
79
- expect(queryAllByA11yState(checked)).toHaveLength(1)
80
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
81
- expect(containsText(queryAllByA11yState(checked), 'One')).not.toBeTruthy()
82
- })
83
-
84
- it('Deselects if the selected item is pressed', async () => {
85
- const { getByText, queryAllByA11yState } = render(
86
- <Theme>
87
- <Tags items={items} />
88
- </Theme>
89
- )
90
-
91
- expect(queryAllByA11yState(checked)).toHaveLength(0)
92
-
93
- const three = getByText('Three')
94
- await fireEvent.press(three)
95
- expect(queryAllByA11yState(checked)).toHaveLength(1)
96
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
97
-
98
- await fireEvent.press(three)
99
- expect(queryAllByA11yState(checked)).toHaveLength(0)
100
- expect(containsText(queryAllByA11yState(checked), 'Three')).not.toBeTruthy()
101
- })
102
-
103
- it('Selects <= two items when maxValues === 2', async () => {
104
- const { getByText, queryAllByA11yState } = render(
105
- <Theme>
106
- <Tags items={items} maxValues={2} />
107
- </Theme>
108
- )
109
-
110
- expect(queryAllByA11yState(checked)).toHaveLength(0)
111
-
112
- const one = getByText('One')
113
- await fireEvent.press(one)
114
- expect(queryAllByA11yState(checked)).toHaveLength(1)
115
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
116
-
117
- const two = getByText('Two')
118
- await fireEvent.press(two)
119
- expect(queryAllByA11yState(checked)).toHaveLength(2)
120
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
121
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
122
-
123
- const three = getByText('Three')
124
- await fireEvent.press(three)
125
- expect(queryAllByA11yState(checked)).toHaveLength(2)
126
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
127
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
128
- expect(containsText(queryAllByA11yState(checked), 'One')).not.toBeTruthy()
129
-
130
- const four = getByText('Four')
131
- await fireEvent.press(four)
132
- expect(queryAllByA11yState(checked)).toHaveLength(2)
133
- expect(containsText(queryAllByA11yState(checked), 'Four')).toBeTruthy()
134
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
135
- expect(containsText(queryAllByA11yState(checked), 'Two')).not.toBeTruthy()
136
- expect(containsText(queryAllByA11yState(checked), 'One')).not.toBeTruthy()
137
- })
138
-
139
- it('Is accessible as checkboxes by default', async () => {
140
- const { queryAllByA11yRole, queryAllByA11yState } = render(
141
- <Theme>
142
- <Tags items={items} />
143
- </Theme>
144
- )
145
-
146
- expect(queryAllByA11yRole('radiogroup')).toHaveLength(0)
147
- expect(queryAllByA11yRole('radio')).toHaveLength(0)
148
-
149
- const checks = queryAllByA11yRole('checkbox')
150
- expect(checks).toHaveLength(4)
151
-
152
- expect(queryAllByA11yState(checked)).toHaveLength(0)
153
- await fireEvent.press(checks[0])
154
- expect(queryAllByA11yState(checked)).toHaveLength(1)
155
- })
156
-
157
- it('Selects unlimited items by default', async () => {
158
- const { getByText, queryAllByA11yState } = render(
159
- <Theme>
160
- <Tags items={items} />
161
- </Theme>
162
- )
163
-
164
- expect(queryAllByA11yState(checked)).toHaveLength(0)
165
-
166
- const one = getByText('One')
167
- await fireEvent.press(one)
168
- expect(queryAllByA11yState(checked)).toHaveLength(1)
169
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
170
-
171
- const two = getByText('Two')
172
- await fireEvent.press(two)
173
- expect(queryAllByA11yState(checked)).toHaveLength(2)
174
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
175
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
176
-
177
- const three = getByText('Three')
178
- await fireEvent.press(three)
179
- expect(queryAllByA11yState(checked)).toHaveLength(3)
180
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
181
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
182
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
183
-
184
- const four = getByText('Four')
185
- await fireEvent.press(four)
186
- expect(queryAllByA11yState(checked)).toHaveLength(4)
187
- expect(containsText(queryAllByA11yState(checked), 'Four')).toBeTruthy()
188
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
189
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
190
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
191
- })
192
-
193
- it('Auto-selects any provided initialValues', async () => {
194
- const { getByText, queryAllByA11yState } = render(
195
- <Theme>
196
- <Tags items={items} initialValues={['one', 'two']} maxValues={3} />
197
- </Theme>
198
- )
199
- expect(queryAllByA11yState(checked)).toHaveLength(2)
200
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
201
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
202
-
203
- const three = getByText('Three')
204
- await fireEvent.press(three)
205
-
206
- expect(queryAllByA11yState(checked)).toHaveLength(3)
207
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
208
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
209
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
210
-
211
- const four = getByText('Four')
212
- await fireEvent.press(four)
213
- expect(queryAllByA11yState(checked)).toHaveLength(3)
214
- expect(containsText(queryAllByA11yState(checked), 'Four')).toBeTruthy()
215
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
216
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
217
- expect(containsText(queryAllByA11yState(checked), 'One')).not.toBeTruthy()
218
-
219
- const two = getByText('Two')
220
- await fireEvent.press(two)
221
- expect(queryAllByA11yState(checked)).toHaveLength(2)
222
- expect(containsText(queryAllByA11yState(checked), 'Four')).toBeTruthy()
223
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
224
- expect(containsText(queryAllByA11yState(checked), 'Two')).not.toBeTruthy()
225
- expect(containsText(queryAllByA11yState(checked), 'One')).not.toBeTruthy()
226
- })
227
- })
228
-
229
- describe('Tags (controlled)', () => {
230
- it('Calls onChange handler on press in controlled mode, providing pressed id', async () => {
231
- const handleChange = jest.fn((arg) => arg)
232
- const { getByText } = render(
233
- <Theme>
234
- <Tags items={items} values={[]} onChange={handleChange} />
235
- </Theme>
236
- )
237
-
238
- expect(handleChange).toHaveBeenCalledTimes(0)
239
-
240
- const one = getByText('One')
241
- await fireEvent(one, 'press', { nativeEvent: 'example' })
242
- expect(handleChange).toHaveBeenCalledTimes(1)
243
- expect(handleChange).toHaveBeenLastCalledWith(['one'], { nativeEvent: 'example' })
244
-
245
- const two = getByText('Two')
246
- await fireEvent(two, 'press', { nativeEvent: 'example2' })
247
- expect(handleChange).toHaveBeenCalledTimes(2)
248
- expect(handleChange).toHaveBeenLastCalledWith(['two'], { nativeEvent: 'example2' })
249
- })
250
-
251
- it("Doesn't change its own selection if `values` is passed", async () => {
252
- const { getByText, queryAllByA11yState } = render(
253
- <Theme>
254
- <Tags items={items} values={['one']} onChange={() => {}} />
255
- </Theme>
256
- )
257
-
258
- expect(queryAllByA11yState(checked)).toHaveLength(1)
259
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
260
-
261
- const one = getByText('One')
262
- await fireEvent.press(one)
263
- expect(queryAllByA11yState(checked)).toHaveLength(1)
264
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
265
-
266
- const two = getByText('Two')
267
- await fireEvent.press(two)
268
- expect(queryAllByA11yState(checked)).toHaveLength(1)
269
- expect(containsText(queryAllByA11yState(checked), 'Two')).not.toBeTruthy()
270
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
271
- })
272
-
273
- it('Does not render an invalid `values` invalidly', async () => {
274
- const { queryAllByA11yState } = render(
275
- <Theme>
276
- <Tags items={items} values={['one', 'two', 'three']} maxValues={2} onChange={() => {}} />
277
- </Theme>
278
- )
279
- expect(queryAllByA11yState(checked)).toHaveLength(2)
280
- expect(containsText(queryAllByA11yState(checked), 'One')).not.toBeTruthy()
281
- expect(containsText(queryAllByA11yState(checked), 'Two')).toBeTruthy()
282
- expect(containsText(queryAllByA11yState(checked), 'Three')).toBeTruthy()
283
- })
284
- })
285
-
286
- describe('Tags (read-only)', () => {
287
- it("Doesn't call onChange handler when read-only", async () => {
288
- const handleChange = jest.fn((arg) => arg)
289
- const { getByText } = render(
290
- <Theme>
291
- <Tags items={items} values={[]} onChange={handleChange} readOnly />
292
- </Theme>
293
- )
294
-
295
- expect(handleChange).toHaveBeenCalledTimes(0)
296
-
297
- const one = getByText('One')
298
- await fireEvent.press(one)
299
- expect(handleChange).toHaveBeenCalledTimes(0)
300
-
301
- const two = getByText('Two')
302
- await fireEvent.press(two)
303
- expect(handleChange).toHaveBeenCalledTimes(0)
304
- })
305
-
306
- it("Doesn't change its selection on press", async () => {
307
- const { getByText, queryAllByA11yState } = render(
308
- <Theme>
309
- <Tags items={items} values={['one']} readOnly />
310
- </Theme>
311
- )
312
-
313
- expect(queryAllByA11yState(checked)).toHaveLength(1)
314
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
315
-
316
- const one = getByText('One')
317
- await fireEvent.press(one)
318
- expect(queryAllByA11yState(checked)).toHaveLength(1)
319
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
320
-
321
- const two = getByText('Two')
322
- await fireEvent.press(two)
323
- expect(queryAllByA11yState(checked)).toHaveLength(1)
324
- expect(containsText(queryAllByA11yState(checked), 'Two')).not.toBeTruthy()
325
- expect(containsText(queryAllByA11yState(checked), 'One')).toBeTruthy()
326
- })
327
- })
@@ -1,35 +0,0 @@
1
- import React from 'react'
2
- import { render } from '@testing-library/react-native'
3
-
4
- import { Platform } from 'react-native'
5
- import { TextArea } from '../../src'
6
- import Theme from '../../__fixtures__/Theme'
7
- import { fireChange } from '../../__fixtures__/test-utils'
8
-
9
- describe('TextArea', () => {
10
- it('renders', () => {
11
- // at least one called test is required in a suite
12
- render(<TextArea />, { wrapper: Theme })
13
- })
14
-
15
- // TODO: this won't be called until cross-platform Jest tests are configured
16
- // see https://github.com/telus/universal-design-system/issues/319
17
- if (Platform.OS === 'web') {
18
- it('grows in size on input', () => {
19
- const { getByTestId } = render(
20
- <TextArea tokens={{ minLines: 1, maxLines: 5, lineHeight: 20 }} testID="textarea" />,
21
- {
22
- wrapper: Theme
23
- }
24
- )
25
-
26
- const textarea = getByTestId('textarea')
27
-
28
- expect(textarea).toHaveStyle({ height: 20 })
29
-
30
- fireChange(textarea, '\n\n\n')
31
-
32
- expect(textarea).toHaveStyle({ height: 60 })
33
- })
34
- }
35
- })
@@ -1,125 +0,0 @@
1
- import { fireEvent, render } from '@testing-library/react-native'
2
- import React from 'react'
3
- import TextInputBase from '../../src/TextInput/TextInputBase'
4
- import Viewport from '../../__fixtures__/Viewport'
5
- import Theme from '../../__fixtures__/Theme'
6
- import { getMockEvent, fireChange } from '../../__fixtures__/test-utils'
7
-
8
- // eslint-disable-next-line react/prop-types
9
- const Wrapper = ({ children }) => (
10
- <Viewport viewport="xs">
11
- <Theme>{children}</Theme>
12
- </Viewport>
13
- )
14
-
15
- const text = 'new value'
16
- const changeEvent = getMockEvent({ text })
17
-
18
- describe('TextInputBaseBase', () => {
19
- it('triggers the interactive callbacks', () => {
20
- const onFocus = jest.fn()
21
- const onBlur = jest.fn()
22
- const onMouseOver = jest.fn()
23
- const onMouseOut = jest.fn()
24
-
25
- const { getByA11yLabel } = render(
26
- <TextInputBase
27
- accessibilityLabel="Input label"
28
- onFocus={onFocus}
29
- onBlur={onBlur}
30
- onMouseOver={onMouseOver}
31
- onMouseOut={onMouseOut}
32
- />,
33
- {
34
- wrapper: Wrapper
35
- }
36
- )
37
-
38
- const input = getByA11yLabel('Input label')
39
-
40
- expect(onFocus).not.toHaveBeenCalled()
41
- fireEvent(input, 'focus')
42
- expect(onFocus).toHaveBeenCalledTimes(1)
43
-
44
- expect(onBlur).not.toHaveBeenCalled()
45
- fireEvent(input, 'blur')
46
- expect(onBlur).toHaveBeenCalledTimes(1)
47
-
48
- expect(onMouseOver).not.toHaveBeenCalled()
49
- fireEvent(input, 'mouseOver')
50
- expect(onMouseOver).toHaveBeenCalledTimes(1)
51
-
52
- expect(onMouseOut).not.toHaveBeenCalled()
53
- fireEvent(input, 'mouseOut')
54
- expect(onMouseOut).toHaveBeenCalledTimes(1)
55
- })
56
-
57
- it("can't be edited when inactive", () => {
58
- const { getByA11yLabel } = render(<TextInputBase accessibilityLabel="Input label" inactive />, {
59
- wrapper: Wrapper
60
- })
61
-
62
- const input = getByA11yLabel('Input label')
63
-
64
- expect(input).toHaveProp('editable', false)
65
- })
66
-
67
- it('changes value when uncontrolled', () => {
68
- const onChange = jest.fn()
69
-
70
- const { getByA11yLabel } = render(
71
- <TextInputBase accessibilityLabel="Input label" onChange={onChange} />,
72
- {
73
- wrapper: Wrapper
74
- }
75
- )
76
-
77
- const input = getByA11yLabel('Input label')
78
-
79
- expect(onChange).not.toHaveBeenCalled()
80
- fireChange(input, text)
81
- expect(onChange).toHaveBeenCalledTimes(1)
82
- expect(onChange).toHaveBeenLastCalledWith(text, changeEvent)
83
- })
84
-
85
- it('changes value when controlled', () => {
86
- const onChange = jest.fn()
87
-
88
- const { getByA11yLabel } = render(
89
- <TextInputBase accessibilityLabel="Input label" onChange={onChange} value="initial value" />,
90
- {
91
- wrapper: Wrapper
92
- }
93
- )
94
-
95
- const input = getByA11yLabel('Input label')
96
-
97
- expect(onChange).not.toHaveBeenCalled()
98
-
99
- fireChange(input, text)
100
- expect(onChange).toHaveBeenCalledTimes(1)
101
- expect(onChange).toHaveBeenLastCalledWith(text, changeEvent)
102
- })
103
-
104
- it("doesn't change value when readOnly", () => {
105
- const onChange = jest.fn()
106
-
107
- const { getByA11yLabel } = render(
108
- <TextInputBase
109
- accessibilityLabel="Input label"
110
- onChange={onChange}
111
- value="initial value"
112
- readOnly
113
- />,
114
- {
115
- wrapper: Wrapper
116
- }
117
- )
118
-
119
- const input = getByA11yLabel('Input label')
120
-
121
- expect(onChange).not.toHaveBeenCalled()
122
- fireChange(input, text)
123
- expect(onChange).not.toHaveBeenCalled()
124
- })
125
- })
@@ -1,77 +0,0 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { renderHook } from '@testing-library/react-hooks'
4
- import semVerSatisfies from 'semver/functions/satisfies'
5
- import ThemeProvider, { useTheme, useSetTheme } from '../../src/ThemeProvider'
6
- import pkg from '../../package.json'
7
-
8
- jest.mock('semver/functions/satisfies')
9
-
10
- const expectedThemeTokensVersion = 'expected'
11
- const actualThemeTokensVersion = 'actual'
12
- pkg.dependencies['@telus-uds/system-theme-tokens'] = expectedThemeTokensVersion
13
- const theme = {
14
- metadata: {
15
- name: 'tokens-test',
16
- themeTokensVersion: actualThemeTokensVersion
17
- },
18
- components: {}
19
- }
20
-
21
- beforeEach(() => {
22
- semVerSatisfies.mockReset()
23
- })
24
-
25
- describe('Uninitialized ThemeProvider context', () => {
26
- test('throws on useTheme', () => {
27
- const { result } = renderHook(useTheme)
28
- expect(() => result.current).toThrow('Theme context used outside of ThemeProvider')
29
- })
30
-
31
- test('error useSetTheme hook without provider', () => {
32
- const { result } = renderHook(useSetTheme)
33
- expect(() => result.current).toThrow('Theme context used outside of ThemeProvider')
34
- })
35
- })
36
-
37
- describe('ThemeProvider theme tokens version validation', () => {
38
- const renderThemeHook = (hookFn) => {
39
- const ThemeWrapper = ({ children }) => (
40
- <ThemeProvider defaultTheme={theme}>{children}</ThemeProvider>
41
- )
42
- ThemeWrapper.propTypes = { children: PropTypes.node.isRequired }
43
-
44
- return renderHook(hookFn, {
45
- wrapper: ThemeWrapper
46
- })
47
- }
48
-
49
- test('validates theme tokens version with semver', () => {
50
- semVerSatisfies.mockImplementationOnce(() => true)
51
-
52
- const { result } = renderThemeHook(useTheme)
53
-
54
- expect(result.current).toEqual(theme)
55
- expect(semVerSatisfies).toHaveBeenCalledWith(
56
- actualThemeTokensVersion,
57
- expectedThemeTokensVersion
58
- )
59
- })
60
-
61
- test('warning if theme tokens version does not match', () => {
62
- semVerSatisfies.mockImplementationOnce(() => false)
63
-
64
- const { result } = renderThemeHook(useTheme)
65
-
66
- expect(() => result.current).toThrow('Invalid UDS token schema version detected')
67
- })
68
-
69
- test('validates on every render', () => {
70
- semVerSatisfies.mockImplementationOnce(() => true)
71
-
72
- const { rerender } = renderThemeHook(useTheme)
73
- rerender()
74
-
75
- expect(semVerSatisfies).toHaveBeenCalledTimes(2)
76
- })
77
- })