@telus-uds/components-base 0.0.2-prerelease.4 → 0.0.2-prerelease.8

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 (447) hide show
  1. package/.ultra.cache.json +1 -0
  2. package/CHANGELOG.md +76 -0
  3. package/__fixtures__/Accessible.js +33 -0
  4. package/__fixtures__/Accessible.native.js +32 -0
  5. package/__fixtures__/testTheme.js +940 -54
  6. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  7. package/__tests__/Button/ButtonBase.test.jsx +3 -32
  8. package/__tests__/Button/ButtonGroup.test.jsx +2 -2
  9. package/__tests__/Checkbox/Checkbox.test.jsx +94 -0
  10. package/__tests__/Checkbox/CheckboxGroup.test.jsx +247 -0
  11. package/__tests__/Divider/Divider.test.jsx +26 -5
  12. package/__tests__/Feedback/Feedback.test.jsx +42 -0
  13. package/__tests__/Icon/Icon.test.jsx +3 -3
  14. package/__tests__/InputSupports/InputSupports.test.jsx +50 -0
  15. package/__tests__/List/List.test.jsx +60 -0
  16. package/__tests__/Modal/Modal.test.jsx +47 -0
  17. package/__tests__/Notification/Notification.test.jsx +20 -0
  18. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  19. package/__tests__/Progress/Progress.test.jsx +79 -0
  20. package/__tests__/Radio/Radio.test.jsx +87 -0
  21. package/__tests__/Radio/RadioGroup.test.jsx +221 -0
  22. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  23. package/__tests__/RadioCard/RadioCardGroup.test.jsx +247 -0
  24. package/__tests__/Search/Search.test.jsx +72 -0
  25. package/__tests__/Select/Select.test.jsx +93 -0
  26. package/__tests__/Skeleton/Skeleton.test.jsx +61 -0
  27. package/__tests__/Spacer/Spacer.test.jsx +63 -0
  28. package/__tests__/StackView/StackView.test.jsx +216 -0
  29. package/__tests__/StackView/StackWrap.test.jsx +47 -0
  30. package/__tests__/StackView/getStackedContent.test.jsx +295 -0
  31. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  32. package/__tests__/Tabs/Tabs.test.jsx +200 -0
  33. package/__tests__/Tags/Tags.test.jsx +328 -0
  34. package/__tests__/TextInput/TextArea.test.jsx +34 -0
  35. package/__tests__/TextInput/TextInputBase.test.jsx +120 -0
  36. package/__tests__/Tooltip/Tooltip.test.jsx +65 -0
  37. package/__tests__/Tooltip/getTooltipPosition.test.js +79 -0
  38. package/__tests__/utils/input.test.js +58 -0
  39. package/__tests__/utils/useCopy.test.js +42 -0
  40. package/__tests__/utils/useResponsiveProp.test.jsx +202 -0
  41. package/__tests__/utils/{spacing.test.jsx → useSpacingScale.test.jsx} +1 -1
  42. package/__tests__/utils/useUniqueId.test.js +31 -0
  43. package/babel.config.js +20 -0
  44. package/jest.config.js +8 -2
  45. package/lib/A11yInfoProvider/index.js +54 -26
  46. package/lib/A11yText/index.js +37 -14
  47. package/lib/ActivityIndicator/Spinner.js +78 -0
  48. package/lib/ActivityIndicator/Spinner.native.js +121 -87
  49. package/lib/ActivityIndicator/index.js +28 -12
  50. package/lib/ActivityIndicator/shared.js +27 -12
  51. package/lib/BaseProvider/index.js +34 -11
  52. package/lib/Box/Box.js +56 -28
  53. package/lib/Box/index.js +13 -2
  54. package/lib/Button/Button.js +38 -10
  55. package/lib/Button/ButtonBase.js +120 -109
  56. package/lib/Button/ButtonGroup.js +98 -99
  57. package/lib/Button/ButtonLink.js +41 -13
  58. package/lib/Button/index.js +31 -4
  59. package/lib/Button/propTypes.js +32 -9
  60. package/lib/Card/Card.js +36 -41
  61. package/lib/Card/CardBase.js +78 -0
  62. package/lib/Card/PressableCardBase.js +137 -0
  63. package/lib/Card/index.js +40 -2
  64. package/lib/Checkbox/Checkbox.js +344 -0
  65. package/lib/Checkbox/CheckboxGroup.js +231 -0
  66. package/lib/Checkbox/CheckboxInput.js +74 -0
  67. package/lib/Checkbox/CheckboxInput.native.js +14 -0
  68. package/lib/Checkbox/index.js +21 -0
  69. package/lib/Divider/Divider.js +81 -17
  70. package/lib/Divider/index.js +13 -2
  71. package/lib/ExpandCollapse/Accordion.js +20 -7
  72. package/lib/ExpandCollapse/Control.js +50 -27
  73. package/lib/ExpandCollapse/ExpandCollapse.js +41 -24
  74. package/lib/ExpandCollapse/Panel.js +75 -37
  75. package/lib/ExpandCollapse/index.js +25 -7
  76. package/lib/Feedback/Feedback.js +161 -0
  77. package/lib/Feedback/index.js +13 -0
  78. package/lib/Fieldset/Fieldset.js +160 -0
  79. package/lib/Fieldset/FieldsetContainer.js +41 -0
  80. package/lib/Fieldset/FieldsetContainer.native.js +33 -0
  81. package/lib/Fieldset/Legend.js +33 -0
  82. package/lib/Fieldset/Legend.native.js +43 -0
  83. package/lib/Fieldset/cssReset.js +21 -0
  84. package/lib/Fieldset/index.js +13 -0
  85. package/lib/FlexGrid/Col/Col.js +67 -38
  86. package/lib/FlexGrid/Col/index.js +13 -2
  87. package/lib/FlexGrid/FlexGrid.js +70 -45
  88. package/lib/FlexGrid/Row/Row.js +48 -27
  89. package/lib/FlexGrid/Row/index.js +13 -2
  90. package/lib/FlexGrid/helpers/index.js +9 -1
  91. package/lib/FlexGrid/index.js +13 -2
  92. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  93. package/lib/Icon/Icon.js +52 -47
  94. package/lib/Icon/IconText.js +100 -0
  95. package/lib/Icon/index.js +31 -3
  96. package/lib/InputLabel/InputLabel.js +122 -0
  97. package/lib/InputLabel/LabelContent.js +31 -0
  98. package/lib/InputLabel/LabelContent.native.js +16 -0
  99. package/lib/InputLabel/index.js +13 -0
  100. package/lib/InputSupports/InputSupports.js +104 -0
  101. package/lib/InputSupports/index.js +13 -0
  102. package/lib/InputSupports/propTypes.js +66 -0
  103. package/lib/InputSupports/useInputSupports.js +41 -0
  104. package/lib/Link/ChevronLink.js +57 -15
  105. package/lib/Link/InlinePressable.js +50 -0
  106. package/lib/Link/InlinePressable.native.js +101 -0
  107. package/lib/Link/Link.js +30 -13
  108. package/lib/Link/LinkBase.js +121 -146
  109. package/lib/Link/TextButton.js +47 -17
  110. package/lib/Link/index.js +39 -4
  111. package/lib/List/List.js +80 -0
  112. package/lib/List/ListItem.js +237 -0
  113. package/lib/List/index.js +13 -0
  114. package/lib/Modal/Modal.js +226 -0
  115. package/lib/Modal/dictionary.js +16 -0
  116. package/lib/Modal/index.js +13 -0
  117. package/lib/Notification/Notification.js +200 -0
  118. package/lib/Notification/dictionary.js +15 -0
  119. package/lib/Notification/index.js +13 -0
  120. package/lib/Pagination/PageButton.js +45 -46
  121. package/lib/Pagination/Pagination.js +70 -40
  122. package/lib/Pagination/SideButton.js +74 -58
  123. package/lib/Pagination/dictionary.js +9 -2
  124. package/lib/Pagination/index.js +13 -2
  125. package/lib/Pagination/usePagination.js +12 -2
  126. package/lib/Progress/Progress.js +99 -0
  127. package/lib/Progress/ProgressBar.js +146 -0
  128. package/lib/Progress/ProgressBarBackground.js +57 -0
  129. package/lib/Progress/index.js +16 -0
  130. package/lib/Radio/Radio.js +292 -0
  131. package/lib/Radio/RadioButton.js +141 -0
  132. package/lib/Radio/RadioGroup.js +233 -0
  133. package/lib/Radio/RadioInput.js +76 -0
  134. package/lib/Radio/RadioInput.native.js +14 -0
  135. package/lib/Radio/index.js +21 -0
  136. package/lib/RadioCard/RadioCard.js +240 -0
  137. package/lib/RadioCard/RadioCardGroup.js +251 -0
  138. package/lib/RadioCard/index.js +21 -0
  139. package/lib/Search/Search.js +243 -0
  140. package/lib/Search/dictionary.js +19 -0
  141. package/lib/Search/index.js +13 -0
  142. package/lib/Select/Group.js +33 -0
  143. package/lib/Select/Group.native.js +25 -0
  144. package/lib/Select/Item.js +29 -0
  145. package/lib/Select/Item.native.js +19 -0
  146. package/lib/Select/Picker.js +79 -0
  147. package/lib/Select/Picker.native.js +115 -0
  148. package/lib/Select/Select.js +300 -0
  149. package/lib/Select/index.js +19 -0
  150. package/lib/SideNav/Item.js +54 -33
  151. package/lib/SideNav/ItemContent.js +41 -15
  152. package/lib/SideNav/ItemsGroup.js +46 -27
  153. package/lib/SideNav/SideNav.js +92 -69
  154. package/lib/SideNav/index.js +15 -1
  155. package/lib/Skeleton/Skeleton.js +137 -0
  156. package/lib/Skeleton/index.js +13 -0
  157. package/lib/Skeleton/skeleton.constant.js +12 -0
  158. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  159. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  160. package/lib/Spacer/Spacer.js +117 -0
  161. package/lib/Spacer/index.js +13 -0
  162. package/lib/StackView/StackView.js +129 -0
  163. package/lib/StackView/StackWrap.js +55 -0
  164. package/lib/StackView/StackWrap.native.js +14 -0
  165. package/lib/StackView/StackWrapBox.js +112 -0
  166. package/lib/StackView/StackWrapGap.js +71 -0
  167. package/lib/StackView/common.js +45 -0
  168. package/lib/StackView/getStackedContent.js +141 -0
  169. package/lib/StackView/index.js +29 -0
  170. package/lib/StepTracker/Step.js +245 -0
  171. package/lib/StepTracker/StepTracker.js +197 -0
  172. package/lib/StepTracker/dictionary.js +17 -0
  173. package/lib/StepTracker/index.js +13 -0
  174. package/lib/Tabs/HorizontalScroll.js +199 -0
  175. package/lib/Tabs/ScrollViewEnd.js +66 -0
  176. package/lib/Tabs/ScrollViewEnd.native.js +41 -0
  177. package/lib/Tabs/Tabs.js +117 -0
  178. package/lib/Tabs/TabsItem.js +234 -0
  179. package/lib/Tabs/TabsScrollButton.js +121 -0
  180. package/lib/Tabs/dictionary.js +18 -0
  181. package/lib/Tabs/index.js +13 -0
  182. package/lib/Tabs/itemPositions.js +128 -0
  183. package/lib/Tags/Tags.js +250 -0
  184. package/lib/Tags/index.js +13 -0
  185. package/lib/TextInput/TextArea.js +109 -0
  186. package/lib/TextInput/TextInput.js +75 -0
  187. package/lib/TextInput/TextInputBase.js +252 -0
  188. package/lib/TextInput/index.js +23 -0
  189. package/lib/TextInput/propTypes.js +42 -0
  190. package/lib/ThemeProvider/ThemeProvider.js +38 -14
  191. package/lib/ThemeProvider/index.js +61 -6
  192. package/lib/ThemeProvider/useSetTheme.js +14 -5
  193. package/lib/ThemeProvider/useTheme.js +13 -4
  194. package/lib/ThemeProvider/useThemeTokens.js +86 -19
  195. package/lib/ThemeProvider/utils/index.js +31 -2
  196. package/lib/ThemeProvider/utils/styles.js +52 -16
  197. package/lib/ThemeProvider/utils/theme-tokens.js +94 -16
  198. package/lib/ToggleSwitch/ToggleSwitch.js +76 -52
  199. package/lib/ToggleSwitch/index.js +13 -2
  200. package/lib/Tooltip/Backdrop.js +56 -0
  201. package/lib/Tooltip/Backdrop.native.js +59 -0
  202. package/lib/Tooltip/Tooltip.js +357 -0
  203. package/lib/Tooltip/dictionary.js +15 -0
  204. package/lib/Tooltip/getTooltipPosition.js +172 -0
  205. package/lib/Tooltip/index.js +13 -0
  206. package/lib/TooltipButton/TooltipButton.js +83 -0
  207. package/lib/TooltipButton/index.js +13 -0
  208. package/lib/Typography/Typography.js +58 -47
  209. package/lib/Typography/index.js +13 -2
  210. package/lib/ViewportProvider/ViewportProvider.js +46 -0
  211. package/lib/ViewportProvider/index.js +22 -38
  212. package/lib/ViewportProvider/useViewport.js +15 -0
  213. package/lib/ViewportProvider/useViewportListener.js +57 -0
  214. package/lib/index.js +509 -19
  215. package/lib/utils/a11y/index.js +18 -0
  216. package/lib/utils/a11y/textSize.js +49 -0
  217. package/lib/utils/animation/index.js +15 -2
  218. package/lib/utils/animation/useVerticalExpandAnimation.js +28 -11
  219. package/lib/utils/children.js +87 -0
  220. package/lib/utils/index.js +163 -4
  221. package/lib/utils/info/index.js +19 -0
  222. package/lib/utils/info/platform/index.js +23 -0
  223. package/lib/utils/info/platform/platform.android.js +8 -0
  224. package/lib/utils/info/platform/platform.ios.js +8 -0
  225. package/lib/utils/info/platform/platform.js +8 -0
  226. package/lib/utils/info/platform/platform.native.js +11 -0
  227. package/lib/utils/info/versions.js +16 -0
  228. package/lib/utils/input.js +54 -34
  229. package/lib/utils/pressability.js +120 -0
  230. package/lib/utils/propTypes.js +269 -108
  231. package/lib/utils/useCopy.js +51 -0
  232. package/lib/utils/useHash.js +48 -0
  233. package/lib/utils/useHash.native.js +15 -0
  234. package/lib/utils/useResponsiveProp.js +59 -0
  235. package/lib/utils/{spacing/useSpacingScale.js → useSpacingScale.js} +45 -12
  236. package/lib/utils/useUniqueId.js +21 -0
  237. package/package.json +11 -8
  238. package/release-context.json +4 -4
  239. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +0 -0
  240. package/src/Box/Box.jsx +13 -4
  241. package/src/Button/Button.jsx +9 -5
  242. package/src/Button/ButtonBase.jsx +74 -86
  243. package/src/Button/ButtonGroup.jsx +24 -41
  244. package/src/Button/ButtonLink.jsx +14 -4
  245. package/src/Button/propTypes.js +12 -2
  246. package/src/Card/Card.jsx +4 -30
  247. package/src/Card/CardBase.jsx +57 -0
  248. package/src/Card/PressableCardBase.jsx +112 -0
  249. package/src/Card/index.js +3 -0
  250. package/src/Checkbox/Checkbox.jsx +274 -0
  251. package/src/Checkbox/CheckboxGroup.jsx +196 -0
  252. package/src/Checkbox/CheckboxInput.jsx +55 -0
  253. package/src/Checkbox/CheckboxInput.native.jsx +6 -0
  254. package/src/Checkbox/index.js +5 -0
  255. package/src/Divider/Divider.jsx +38 -3
  256. package/src/ExpandCollapse/Control.jsx +1 -1
  257. package/src/Feedback/Feedback.jsx +108 -0
  258. package/src/Feedback/index.js +3 -0
  259. package/src/Fieldset/Fieldset.jsx +129 -0
  260. package/src/Fieldset/FieldsetContainer.jsx +22 -0
  261. package/src/Fieldset/FieldsetContainer.native.jsx +16 -0
  262. package/src/Fieldset/Legend.jsx +16 -0
  263. package/src/Fieldset/Legend.native.jsx +22 -0
  264. package/src/Fieldset/cssReset.js +14 -0
  265. package/src/Fieldset/index.js +3 -0
  266. package/src/Icon/Icon.jsx +23 -27
  267. package/src/Icon/IconText.jsx +63 -0
  268. package/src/Icon/index.js +3 -2
  269. package/src/InputLabel/InputLabel.jsx +106 -0
  270. package/src/InputLabel/LabelContent.jsx +13 -0
  271. package/src/InputLabel/LabelContent.native.jsx +6 -0
  272. package/src/InputLabel/index.js +3 -0
  273. package/src/InputSupports/InputSupports.jsx +75 -0
  274. package/src/InputSupports/index.js +3 -0
  275. package/src/InputSupports/propTypes.js +44 -0
  276. package/src/InputSupports/useInputSupports.js +30 -0
  277. package/src/Link/ChevronLink.jsx +28 -7
  278. package/src/Link/InlinePressable.jsx +37 -0
  279. package/src/Link/InlinePressable.native.jsx +73 -0
  280. package/src/Link/Link.jsx +17 -13
  281. package/src/Link/LinkBase.jsx +71 -146
  282. package/src/Link/TextButton.jsx +25 -11
  283. package/src/Link/index.js +2 -1
  284. package/src/List/List.jsx +47 -0
  285. package/src/List/ListItem.jsx +187 -0
  286. package/src/List/index.js +3 -0
  287. package/src/Modal/Modal.jsx +185 -0
  288. package/src/Modal/dictionary.js +9 -0
  289. package/src/Modal/index.js +3 -0
  290. package/src/Notification/Notification.jsx +149 -0
  291. package/src/Notification/dictionary.js +8 -0
  292. package/src/Notification/index.js +3 -0
  293. package/src/Pagination/PageButton.jsx +3 -17
  294. package/src/Pagination/SideButton.jsx +27 -38
  295. package/src/Progress/Progress.jsx +77 -0
  296. package/src/Progress/ProgressBar.jsx +110 -0
  297. package/src/Progress/ProgressBarBackground.jsx +34 -0
  298. package/src/Progress/index.js +6 -0
  299. package/src/Radio/Radio.jsx +233 -0
  300. package/src/Radio/RadioButton.jsx +131 -0
  301. package/src/Radio/RadioGroup.jsx +198 -0
  302. package/src/Radio/RadioInput.jsx +57 -0
  303. package/src/Radio/RadioInput.native.jsx +6 -0
  304. package/src/Radio/index.js +5 -0
  305. package/src/RadioCard/RadioCard.jsx +191 -0
  306. package/src/RadioCard/RadioCardGroup.jsx +211 -0
  307. package/src/RadioCard/index.js +5 -0
  308. package/src/Search/Search.jsx +204 -0
  309. package/src/Search/dictionary.js +12 -0
  310. package/src/Search/index.js +3 -0
  311. package/src/Select/Group.jsx +15 -0
  312. package/src/Select/Group.native.jsx +14 -0
  313. package/src/Select/Item.jsx +11 -0
  314. package/src/Select/Item.native.jsx +10 -0
  315. package/src/Select/Picker.jsx +67 -0
  316. package/src/Select/Picker.native.jsx +95 -0
  317. package/src/Select/Select.jsx +255 -0
  318. package/src/Select/index.js +8 -0
  319. package/src/SideNav/Item.jsx +2 -2
  320. package/src/Skeleton/Skeleton.jsx +98 -0
  321. package/src/Skeleton/index.js +3 -0
  322. package/src/Skeleton/skeleton.constant.js +3 -0
  323. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  324. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  325. package/src/Spacer/Spacer.jsx +91 -0
  326. package/src/Spacer/index.js +3 -0
  327. package/src/StackView/StackView.jsx +111 -0
  328. package/src/StackView/StackWrap.jsx +41 -0
  329. package/src/StackView/StackWrap.native.jsx +4 -0
  330. package/src/StackView/StackWrapBox.jsx +94 -0
  331. package/src/StackView/StackWrapGap.jsx +49 -0
  332. package/src/StackView/common.jsx +28 -0
  333. package/src/StackView/getStackedContent.jsx +112 -0
  334. package/src/StackView/index.js +6 -0
  335. package/src/StepTracker/Step.jsx +202 -0
  336. package/src/StepTracker/StepTracker.jsx +163 -0
  337. package/src/StepTracker/dictionary.js +10 -0
  338. package/src/StepTracker/index.js +3 -0
  339. package/src/Tabs/HorizontalScroll.jsx +165 -0
  340. package/src/Tabs/ScrollViewEnd.jsx +53 -0
  341. package/src/Tabs/ScrollViewEnd.native.jsx +24 -0
  342. package/src/Tabs/Tabs.jsx +89 -0
  343. package/src/Tabs/TabsItem.jsx +204 -0
  344. package/src/Tabs/TabsScrollButton.jsx +100 -0
  345. package/src/Tabs/dictionary.js +11 -0
  346. package/src/Tabs/index.js +3 -0
  347. package/src/Tabs/itemPositions.js +101 -0
  348. package/src/Tags/Tags.jsx +207 -0
  349. package/src/Tags/index.js +3 -0
  350. package/src/TextInput/TextArea.jsx +78 -0
  351. package/src/TextInput/TextInput.jsx +52 -0
  352. package/src/TextInput/TextInputBase.jsx +210 -0
  353. package/src/TextInput/index.js +4 -0
  354. package/src/TextInput/propTypes.js +29 -0
  355. package/src/ThemeProvider/useThemeTokens.js +56 -5
  356. package/src/ThemeProvider/utils/styles.js +18 -5
  357. package/src/ThemeProvider/utils/theme-tokens.js +46 -5
  358. package/src/ToggleSwitch/ToggleSwitch.jsx +3 -4
  359. package/src/Tooltip/Backdrop.jsx +60 -0
  360. package/src/Tooltip/Backdrop.native.jsx +33 -0
  361. package/src/Tooltip/Tooltip.jsx +294 -0
  362. package/src/Tooltip/dictionary.js +8 -0
  363. package/src/Tooltip/getTooltipPosition.js +161 -0
  364. package/src/Tooltip/index.js +3 -0
  365. package/src/TooltipButton/TooltipButton.jsx +49 -0
  366. package/src/TooltipButton/index.js +3 -0
  367. package/src/Typography/Typography.jsx +10 -24
  368. package/src/ViewportProvider/ViewportProvider.jsx +21 -0
  369. package/src/ViewportProvider/index.jsx +2 -41
  370. package/src/ViewportProvider/useViewport.js +5 -0
  371. package/src/ViewportProvider/useViewportListener.js +43 -0
  372. package/src/index.js +34 -2
  373. package/src/utils/a11y/index.js +1 -0
  374. package/src/utils/a11y/textSize.js +30 -0
  375. package/src/utils/children.jsx +66 -0
  376. package/src/utils/index.js +11 -1
  377. package/src/utils/info/index.js +8 -0
  378. package/src/utils/info/platform/index.js +11 -0
  379. package/src/utils/info/platform/platform.android.js +1 -0
  380. package/src/utils/info/platform/platform.ios.js +1 -0
  381. package/src/utils/info/platform/platform.js +1 -0
  382. package/src/utils/info/platform/platform.native.js +4 -0
  383. package/src/utils/info/versions.js +6 -0
  384. package/src/utils/input.js +22 -13
  385. package/src/utils/pressability.js +96 -0
  386. package/src/utils/propTypes.js +195 -47
  387. package/src/utils/useCopy.js +39 -0
  388. package/src/utils/useHash.js +34 -0
  389. package/src/utils/useHash.native.js +6 -0
  390. package/src/utils/useResponsiveProp.js +50 -0
  391. package/src/utils/{spacing/useSpacingScale.js → useSpacingScale.js} +25 -10
  392. package/src/utils/useUniqueId.js +14 -0
  393. package/stories/A11yText/A11yText.stories.jsx +15 -13
  394. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +11 -2
  395. package/stories/Box/Box.stories.jsx +29 -2
  396. package/stories/Button/Button.stories.jsx +21 -20
  397. package/stories/Button/ButtonGroup.stories.jsx +2 -1
  398. package/stories/Button/ButtonLink.stories.jsx +6 -4
  399. package/stories/Card/Card.stories.jsx +13 -1
  400. package/stories/Checkbox/Checkbox.stories.jsx +94 -0
  401. package/stories/Divider/Divider.stories.jsx +26 -2
  402. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +74 -79
  403. package/stories/Feedback/Feedback.stories.jsx +96 -0
  404. package/stories/FlexGrid/01 FlexGrid.stories.jsx +20 -7
  405. package/stories/Icon/Icon.stories.jsx +15 -6
  406. package/stories/InputLabel/InputLabel.stories.jsx +42 -0
  407. package/stories/Link/ChevronLink.stories.jsx +20 -4
  408. package/stories/Link/Link.stories.jsx +39 -3
  409. package/stories/Link/TextButton.stories.jsx +24 -2
  410. package/stories/List/List.stories.jsx +117 -0
  411. package/stories/Modal/Modal.stories.jsx +29 -0
  412. package/stories/Notification/Notification.stories.jsx +82 -0
  413. package/stories/Pagination/Pagination.stories.jsx +28 -14
  414. package/stories/Progress/Progress.stories.jsx +93 -0
  415. package/stories/Radio/Radio.stories.jsx +100 -0
  416. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  417. package/stories/Search/Search.stories.jsx +16 -0
  418. package/stories/Select/Select.stories.jsx +55 -0
  419. package/stories/SideNav/SideNav.stories.jsx +17 -2
  420. package/stories/Skeleton/Skeleton.stories.jsx +36 -0
  421. package/stories/Spacer/Spacer.stories.jsx +38 -0
  422. package/stories/StackView/StackView.stories.jsx +75 -0
  423. package/stories/StackView/StackWrap.stories.jsx +64 -0
  424. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  425. package/stories/Tabs/Tabs.stories.jsx +97 -0
  426. package/stories/Tags/Tags.stories.jsx +69 -0
  427. package/stories/TextInput/TextArea.stories.jsx +100 -0
  428. package/stories/TextInput/TextInput.stories.jsx +103 -0
  429. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +16 -3
  430. package/stories/Tooltip/Tooltip.stories.jsx +81 -0
  431. package/stories/TooltipButton/TooltipButton.stories.jsx +11 -0
  432. package/stories/Typography/Typography.stories.jsx +12 -3
  433. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
  434. package/stories/supports.jsx +110 -14
  435. package/__fixtures__/accessible.icon.svg +0 -6
  436. package/babel.config.json +0 -8
  437. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  438. package/lib/Pagination/useCopy.js +0 -10
  439. package/lib/config/svgr-icons-web.js +0 -9
  440. package/lib/config/svgr-icons.js +0 -52
  441. package/lib/utils/spacing/index.js +0 -2
  442. package/lib/utils/spacing/utils.js +0 -32
  443. package/src/Pagination/useCopy.js +0 -7
  444. package/src/config/svgr-icons-web.js +0 -11
  445. package/src/config/svgr-icons.js +0 -46
  446. package/src/utils/spacing/index.js +0 -3
  447. package/src/utils/spacing/utils.js +0 -28
package/lib/Box/Box.js CHANGED
@@ -1,15 +1,32 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { View, ScrollView } from 'react-native';
4
- import { useThemeTokens } from '../ThemeProvider';
5
- import { a11yProps, spacingProps, variantProp, getTokensPropType, useSpacingScale } from '../utils';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
13
+
14
+ var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
15
+
16
+ var _ThemeProvider = require("../ThemeProvider");
17
+
18
+ var _utils = require("../utils");
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
6
24
  /**
7
25
  * @typedef {import('../utils/propTypes.js').SpacingValue} SpacingValue
8
26
  * @typedef {import('../utils/propTypes.js').SpacingIndex} SpacingIndex
9
27
  * @typedef {import('../utils/propTypes.js').SpacingObject} SpacingObject
10
28
  * @typedef {import('../utils/propTypes.js').SpacingOptions} SpacingOptions
11
29
  */
12
-
13
30
  const selectBoxStyles = tokens => {
14
31
  const styles = {
15
32
  backgroundColor: tokens.backgroundColor
@@ -102,40 +119,51 @@ const Box = ({
102
119
  variant,
103
120
  tokens,
104
121
  scroll,
122
+ testID,
105
123
  ...rest
106
124
  }) => {
107
- const a11y = a11yProps.select(rest);
108
- const themeTokens = useThemeTokens('Box', tokens, variant);
125
+ const props = { ..._utils.a11yProps.select(rest),
126
+ ..._utils.viewProps.select(rest)
127
+ };
128
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Box', tokens, variant);
109
129
  const styles = {
110
- paddingLeft: useSpacingScale(left),
111
- paddingRight: useSpacingScale(right),
112
- paddingTop: useSpacingScale(top),
113
- paddingBottom: useSpacingScale(bottom),
130
+ paddingLeft: (0, _utils.useSpacingScale)(left),
131
+ paddingRight: (0, _utils.useSpacingScale)(right),
132
+ paddingTop: (0, _utils.useSpacingScale)(top),
133
+ paddingBottom: (0, _utils.useSpacingScale)(bottom),
114
134
  ...selectBoxStyles(themeTokens)
115
135
  };
116
136
 
117
137
  if (scroll) {
118
138
  const scrollProps = typeof scroll === 'object' ? scroll : {};
119
139
  scrollProps.contentContainerStyle = [styles, scrollProps.contentContainerStyle];
120
- return /*#__PURE__*/React.createElement(ScrollView, Object.assign({}, scrollProps, a11y), children);
140
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollView.default, { ...scrollProps,
141
+ ...props,
142
+ testID: testID,
143
+ children: children
144
+ });
121
145
  }
122
146
 
123
- return /*#__PURE__*/React.createElement(View, Object.assign({}, a11y, {
124
- style: styles
125
- }), children);
147
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, { ...props,
148
+ style: styles,
149
+ testID: testID,
150
+ children: children
151
+ });
126
152
  };
127
153
 
128
154
  Box.propTypes = {
129
- space: spacingProps.types.spacingValue,
130
- vertical: spacingProps.types.spacingValue,
131
- horizontal: spacingProps.types.spacingValue,
132
- bottom: spacingProps.types.spacingValue,
133
- left: spacingProps.types.spacingValue,
134
- right: spacingProps.types.spacingValue,
135
- top: spacingProps.types.spacingValue,
136
- scroll: PropTypes.oneOfType([PropTypes.bool, ScrollView.propTypes ? PropTypes.shape(ScrollView.propTypes) : PropTypes.object]),
137
- variant: variantProp.propType,
138
- tokens: getTokensPropType('Box'),
139
- children: PropTypes.node.isRequired
155
+ space: _utils.spacingProps.types.spacingValue,
156
+ vertical: _utils.spacingProps.types.spacingValue,
157
+ horizontal: _utils.spacingProps.types.spacingValue,
158
+ bottom: _utils.spacingProps.types.spacingValue,
159
+ left: _utils.spacingProps.types.spacingValue,
160
+ right: _utils.spacingProps.types.spacingValue,
161
+ top: _utils.spacingProps.types.spacingValue,
162
+ scroll: _propTypes.default.oneOfType([_propTypes.default.bool, _ScrollView.default.propTypes ? _propTypes.default.shape(_ScrollView.default.propTypes) : _propTypes.default.object]),
163
+ variant: _utils.variantProp.propType,
164
+ tokens: (0, _utils.getTokensPropType)('Box'),
165
+ testID: _propTypes.default.string,
166
+ children: _propTypes.default.node.isRequired
140
167
  };
141
- export default Box;
168
+ var _default = Box;
169
+ exports.default = _default;
package/lib/Box/index.js CHANGED
@@ -1,2 +1,13 @@
1
- import Box from './Box';
2
- export default Box;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Box = _interopRequireDefault(require("./Box"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _Box.default;
13
+ exports.default = _default;
@@ -1,16 +1,44 @@
1
- import React from 'react';
2
- import ButtonBase from './ButtonBase';
3
- import buttonPropTypes from './propTypes';
4
- import { a11yProps } from '../utils/propTypes';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
11
+
12
+ var _propTypes = _interopRequireWildcard(require("./propTypes"));
13
+
14
+ var _ThemeProvider = require("../ThemeProvider");
15
+
16
+ var _propTypes2 = require("../utils/propTypes");
17
+
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
25
 
6
26
  const Button = ({
7
27
  accessibilityRole = 'button',
28
+ tokens,
29
+ variant,
8
30
  ...props
9
- }) => /*#__PURE__*/React.createElement(ButtonBase, Object.assign({}, props, {
10
- accessibilityRole: accessibilityRole
11
- }));
31
+ }) => {
32
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Button', tokens, variant);
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, { ...props,
34
+ tokens: getTokens,
35
+ accessibilityRole: accessibilityRole
36
+ });
37
+ };
12
38
 
13
- Button.propTypes = { ...a11yProps.types,
14
- ...buttonPropTypes
39
+ Button.propTypes = { ..._propTypes2.a11yProps.types,
40
+ ..._propTypes.default,
41
+ children: _propTypes.textAndA11yText
15
42
  };
16
- export default Button;
43
+ var _default = Button;
44
+ exports.default = _default;
@@ -1,17 +1,29 @@
1
- import React from 'react';
2
- import { Pressable, Text, View, StyleSheet, Platform } from 'react-native';
3
- import { useThemeTokensCallback } from '../ThemeProvider';
4
- import { applyTextStyles, applyShadowToken } from '../ThemeProvider/utils';
5
- import buttonPropTypes from './propTypes';
6
- import { a11yProps, hrefAttrsProp, linkProps } from '../utils/propTypes';
1
+ "use strict";
7
2
 
8
- const getCursorStyle = (inactive, accessibilityRole) => {
9
- if (inactive) return 'not-allowed'; // These roles should result in cursor: pointer but don't in current RNW releases
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
10
7
 
11
- if (['checkbox', 'radio', 'switch'].includes(accessibilityRole)) return 'pointer'; // For everything else, let React Native Web figure it out internally
8
+ var _react = _interopRequireDefault(require("react"));
12
9
 
13
- return undefined;
14
- };
10
+ var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
11
+
12
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
13
+
14
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
+
16
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
17
+
18
+ var _utils = require("../ThemeProvider/utils");
19
+
20
+ var _propTypes = _interopRequireDefault(require("./propTypes"));
21
+
22
+ var _utils2 = require("../utils");
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
27
 
16
28
  const getOuterBorderOffset = ({
17
29
  outerBorderGap = 0,
@@ -19,31 +31,29 @@ const getOuterBorderOffset = ({
19
31
  }) => outerBorderGap + outerBorderWidth;
20
32
 
21
33
  const selectOuterContainerStyles = ({
34
+ alignSelf,
22
35
  opacity,
23
36
  outerBorderColor,
24
37
  outerBorderWidth,
25
- outerBorderGap = 0,
26
- outerBorderRadius = 0,
38
+ outerBorderGap,
39
+ borderRadius,
27
40
  outerBackgroundColor
28
41
  }) => ({
29
- padding: outerBorderGap,
30
- borderWidth: outerBorderWidth,
31
- borderColor: outerBorderColor,
32
- borderRadius: outerBorderRadius + outerBorderGap,
42
+ alignSelf,
33
43
  backgroundColor: outerBackgroundColor,
34
- opacity
44
+ opacity,
45
+ ...(0, _utils.applyOuterBorder)({
46
+ outerBorderGap,
47
+ outerBorderWidth,
48
+ outerBorderColor,
49
+ borderRadius
50
+ })
35
51
  });
36
52
 
37
53
  const selectOuterWidthStyles = ({
38
54
  outerBorderGap,
39
55
  outerBorderWidth,
40
- width,
41
- // TODO: make margin the responsibility of a parent
42
- // https://github.com/telus/universal-design-system/issues/525
43
- marginTop = 0,
44
- marginBottom = 0,
45
- marginLeft = 0,
46
- marginRight = 0
56
+ width
47
57
  }) => {
48
58
  // The inner container's bounding box is the bounding box of the button overall
49
59
  // so this many device pixels will sit outside of the overall bounding box
@@ -51,23 +61,15 @@ const selectOuterWidthStyles = ({
51
61
  outerBorderGap,
52
62
  outerBorderWidth
53
63
  });
54
- const widthStyles = {
55
- marginTop: marginTop - outerBorderOffset,
56
- marginBottom: marginBottom - outerBorderOffset,
57
- marginLeft: marginLeft - outerBorderOffset,
58
- marginRight: marginRight - outerBorderOffset
59
- };
64
+ const widthStyles = {};
60
65
 
61
66
  if (!width) {
62
67
  return { ...widthStyles,
63
68
  // Wrap content, stopping a flex parent's default align-items: stretch stretching focus ring beyond content
64
- ...Platform.select({
69
+ ..._Platform.default.select({
70
+ // width: fit-content isn't supported on Firefox; can't cascade props like CSS `width: fit-content; width: --moz-fit-content;`
65
71
  web: {
66
- width: 'fit-content'
67
- },
68
- // No fit-content or inline-block in RN. TODO: we might need to provide a prop to allow flex-end or center
69
- native: {
70
- alignSelf: 'flex-start'
72
+ display: 'inline-flex'
71
73
  }
72
74
  })
73
75
  };
@@ -80,8 +82,8 @@ const selectOuterWidthStyles = ({
80
82
  } // Ensure the negative margin doesn't make element off-centre
81
83
 
82
84
 
83
- if (Platform.OS === 'web') {
84
- widthStyles.width = `calc(${width} + ${outerBorderOffset * 2}px)`;
85
+ if (_Platform.default.OS === 'web') {
86
+ widthStyles.width = "calc(".concat(width, " + ").concat(outerBorderOffset * 2, "px)");
85
87
  return widthStyles;
86
88
  } // Can't use calc() on native but (unlike on web) flexGrow fills the container width here
87
89
 
@@ -104,7 +106,8 @@ const selectInnerContainerStyles = ({
104
106
  paddingTop,
105
107
  paddingBottom,
106
108
  shadow,
107
- borderWidth
109
+ borderWidth,
110
+ minWidth
108
111
  }) => {
109
112
  // Subtract border width from padding so overall button width/height doesn't
110
113
  // jump around if the border width changes (avoiding NaN and negative padding)
@@ -116,7 +119,8 @@ const selectInnerContainerStyles = ({
116
119
  paddingTop: offsetBorder(paddingTop),
117
120
  paddingBottom: offsetBorder(paddingBottom),
118
121
  backgroundColor,
119
- ...applyShadowToken(shadow)
122
+ minWidth,
123
+ ...(0, _utils.applyShadowToken)(shadow)
120
124
  };
121
125
  };
122
126
 
@@ -137,7 +141,7 @@ const selectTextStyles = ({
137
141
  fontName,
138
142
  fontWeight,
139
143
  textAlign
140
- }) => applyTextStyles({
144
+ }) => (0, _utils.applyTextStyles)({
141
145
  fontSize,
142
146
  color,
143
147
  lineHeight,
@@ -148,104 +152,111 @@ const selectTextStyles = ({
148
152
 
149
153
  const selectWebOnlyStyles = (inactive, themeTokens, {
150
154
  accessibilityRole
151
- }) => Platform.OS === 'web' ? {
152
- // if it would overflow the container, wraps instead
153
- maxWidth: `calc(100% + ${getOuterBorderOffset(themeTokens) * 2}px)`,
154
- cursor: getCursorStyle(inactive, accessibilityRole),
155
- outline: 'none' // removes the default browser :focus outline
156
-
157
- } : {};
155
+ }) => {
156
+ return _Platform.default.select({
157
+ web: {
158
+ // if it would overflow the container, wraps instead
159
+ maxWidth: "calc(100% + ".concat(getOuterBorderOffset(themeTokens) * 2, "px)"),
160
+ outline: 'none',
161
+ // removes the default browser :focus outline
162
+ ...(0, _utils2.getCursorStyle)(inactive, accessibilityRole)
163
+ },
164
+ default: {}
165
+ });
166
+ };
158
167
 
159
168
  const ButtonBase = ({
160
169
  href,
161
170
  hrefAttrs,
162
171
  children,
163
- variant,
164
172
  onPress,
165
- tokens,
173
+ tokens = {},
166
174
  disabled = false,
167
175
  // alias for inactive
168
176
  inactive = disabled,
169
177
  selected = false,
170
178
  ...rest
171
179
  }) => {
172
- const getTokens = useThemeTokensCallback('Button', tokens, variant);
173
-
174
- const getButtonState = ({
175
- pressed,
176
- focused,
177
- hovered
178
- }) => ({
179
- pressed,
180
- focus: focused,
181
- hover: hovered,
180
+ const extraButtonState = {
182
181
  inactive,
183
182
  selected
184
- });
183
+ };
185
184
 
186
- const getTokensByPressableState = pressableState => getTokens(getButtonState(pressableState));
185
+ const resolveButtonTokens = pressableState => (0, _utils2.resolvePressableTokens)(tokens, pressableState, extraButtonState);
187
186
 
188
- const a11y = a11yProps.select(rest);
187
+ const a11y = _utils2.a11yProps.select(rest);
189
188
 
190
189
  const getPressableStyle = pressableState => {
191
- const themeTokens = getTokensByPressableState(pressableState);
192
- return [staticStyles.wrapper, selectWebOnlyStyles(inactive, themeTokens, a11y), selectOuterContainerStyles(themeTokens), selectOuterWidthStyles(themeTokens)];
190
+ const themeTokens = resolveButtonTokens(pressableState);
191
+ return [staticStyles.row, selectWebOnlyStyles(inactive, themeTokens, a11y), selectOuterContainerStyles(themeTokens), selectOuterWidthStyles(themeTokens)];
193
192
  };
194
193
 
195
- const handlePress = linkProps.handleHref({
196
- href,
197
- onPress
198
- });
199
- return /*#__PURE__*/React.createElement(Pressable, Object.assign({
200
- onPress: handlePress,
194
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
195
+ href: href,
196
+ onPress: _utils2.linkProps.handleHref({
197
+ href,
198
+ onPress
199
+ }),
201
200
  style: getPressableStyle,
202
201
  disabled: inactive,
203
- href: href
204
- }, hrefAttrsProp.spread(hrefAttrs), a11y), pressableState => {
205
- const themeTokens = getTokensByPressableState(pressableState);
206
- const containerStyles = selectInnerContainerStyles(themeTokens);
207
- const borderStyles = selectBorderStyles(themeTokens);
208
- const textStyles = { ...selectTextStyles(themeTokens),
209
- ...Platform.select({
210
- // TODO: https://github.com/telus/universal-design-system/issues/487
211
- web: {
212
- transition: 'color 200ms'
213
- }
214
- })
215
- }; // If the container has a width set, fill it instead of sizing from content.
216
- // If in future we support text alignments other than center, add here.
202
+ hrefAttrs: hrefAttrs,
203
+ ...a11y,
204
+ children: pressableState => {
205
+ const themeTokens = resolveButtonTokens(pressableState);
206
+ const containerStyles = selectInnerContainerStyles(themeTokens);
207
+ const borderStyles = selectBorderStyles(themeTokens);
208
+ const textStyles = [selectTextStyles(themeTokens), staticStyles.text]; // If the container has a width set, fill it instead of sizing from content.
209
+ // If in future we support text alignments other than center, add here.
217
210
 
218
- const stretchStyles = !!themeTokens.width && staticStyles.center;
219
- return /*#__PURE__*/React.createElement(View, {
220
- style: [containerStyles, borderStyles, stretchStyles, Platform.select({
221
- web: {
222
- maxWidth: '100%',
223
- // ensure overflowing content wraps
224
- // TODO: https://github.com/telus/universal-design-system/issues/487
225
- transition: 'background-color 200ms, border-color 200ms'
226
- }
227
- })]
228
- }, typeof children === 'function' ? children({ ...getButtonState(pressableState),
229
- textStyles
230
- }) : /*#__PURE__*/React.createElement(Text, {
231
- style: textStyles
232
- }, children));
211
+ const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
212
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
213
+ style: [containerStyles, borderStyles, stretchStyles, staticStyles.row, _Platform.default.select({
214
+ web: {
215
+ maxWidth: '100%',
216
+ // ensure overflowing content wraps
217
+ // TODO: https://github.com/telus/universal-design-system/issues/487
218
+ transition: 'background-color 200ms, border-color 200ms'
219
+ }
220
+ })],
221
+ children: (0, _utils2.wrapStringsInText)(typeof children === 'function' ? children({ ...(0, _utils2.resolvePressableState)(pressableState, extraButtonState),
222
+ textStyles
223
+ }) : children, {
224
+ style: textStyles
225
+ })
226
+ });
227
+ }
233
228
  });
234
229
  };
235
230
 
236
- ButtonBase.propTypes = { ...a11yProps.types,
237
- ...buttonPropTypes,
238
- ...linkProps.types
231
+ ButtonBase.propTypes = { ..._utils2.a11yProps.types,
232
+ ..._propTypes.default,
233
+ ..._utils2.linkProps.types
239
234
  };
240
- const staticStyles = StyleSheet.create({
241
- wrapper: {
242
- flexDirection: 'row' // ensures alignSelf is horizontal
243
235
 
236
+ const staticStyles = _StyleSheet.default.create({
237
+ row: {
238
+ // Apply all button alignment horizontally; no vertical stacking within a button
239
+ flexDirection: 'row'
244
240
  },
245
- center: {
241
+ text: {
242
+ flexGrow: 1,
243
+ // On native but not web, flexShrink here wraps text prematurely
244
+ ..._Platform.default.select({
245
+ // TODO: https://github.com/telus/universal-design-system/issues/487
246
+ web: {
247
+ transition: 'color 200ms'
248
+ }
249
+ })
250
+ },
251
+ align: {
252
+ alignItems: 'center'
253
+ },
254
+ stretch: {
246
255
  flex: 1,
247
256
  alignItems: 'center',
248
257
  justifyContent: 'center'
249
258
  }
250
259
  });
251
- export default ButtonBase;
260
+
261
+ var _default = ButtonBase;
262
+ exports.default = _default;