@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
@@ -1,27 +1,36 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { View, Platform } from 'react-native';
4
- import ButtonBase from './ButtonBase';
5
- import { useViewport } from '../ViewportProvider';
6
- import { useThemeTokens } from '../ThemeProvider';
7
- import { a11yProps, pressProps, variantProp, getTokensPropType } from '../utils/propTypes';
8
- import { useMultipleInputValues } from '../utils/input';
9
-
10
- const selectContainerStyles = ({
11
- direction
12
- }) => ({
13
- flexDirection: direction
14
- });
1
+ "use strict";
15
2
 
16
- const selectItemTokens = ({
17
- gap
18
- }, index) => ({
19
- marginLeft: index && gap
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
20
5
  });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
+
14
+ var _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
15
+
16
+ var _StackView = require("../StackView");
17
+
18
+ var _ViewportProvider = require("../ViewportProvider");
19
+
20
+ var _ThemeProvider = require("../ThemeProvider");
21
+
22
+ var _propTypes2 = require("../utils/propTypes");
23
+
24
+ var _input = require("../utils/input");
25
+
26
+ var _pressability = require("../utils/pressability");
27
+
28
+ var _jsxRuntime = require("react/jsx-runtime");
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
31
 
22
32
  const ButtonGroup = ({
23
33
  variant,
24
- buttonVariant = {},
25
34
  tokens,
26
35
  items = [],
27
36
  values,
@@ -30,135 +39,124 @@ const ButtonGroup = ({
30
39
  onChange,
31
40
  readOnly = false,
32
41
  inactive = false,
33
- accessibilityRole = maxValues === 1 ? 'radioGroup' // radioGroup is cross-platform; only web aria has generic groups
34
- : Platform.select({
42
+ accessibilityRole = maxValues === 1 ? 'radiogroup' // radiogroup is cross-platform; only web aria has generic groups
43
+ : _Platform.default.select({
35
44
  web: 'group',
36
45
  default: 'none'
37
46
  }),
38
47
  ...rest
39
48
  }) => {
40
- const viewport = useViewport();
41
- const themeTokens = useThemeTokens('ButtonGroup', tokens, variant, {
49
+ const viewport = (0, _ViewportProvider.useViewport)();
50
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('ButtonGroup', tokens, variant, {
42
51
  viewport
43
52
  });
44
- const containerStyles = selectContainerStyles(themeTokens);
53
+ const stackTokens = (0, _propTypes2.selectTokens)('StackView', themeTokens);
54
+ const {
55
+ direction,
56
+ space
57
+ } = themeTokens;
58
+ const getButtonTokens = (0, _ThemeProvider.useThemeTokensCallback)('ButtonGroupItem', tokens, variant);
45
59
  const {
46
60
  currentValues,
47
61
  toggleOneValue
48
- } = useMultipleInputValues({
62
+ } = (0, _input.useMultipleInputValues)({
49
63
  initialValues,
50
64
  values,
51
65
  maxValues,
52
66
  onChange,
53
67
  readOnly
54
68
  });
55
- const a11y = a11yProps.select({
69
+
70
+ const a11y = _propTypes2.a11yProps.select({
56
71
  accessibilityRole,
57
72
  ...rest
58
73
  });
59
- const itemA11yRole = a11y.accessibilityRole === 'radioGroup' ? 'radio' : 'checkbox';
60
- return /*#__PURE__*/React.createElement(View, Object.assign({
61
- style: containerStyles
62
- }, a11y), items.map(({
63
- label,
64
- id = label,
65
- accessibilityLabel
66
- }, index) => {
67
- const itemTokens = selectItemTokens(themeTokens, index);
68
- const isSelected = currentValues.includes(id); // Allow handlers to be passed down for blur, hover, focus, pressIn, etc
69
-
70
- const pressHandlers = Object.fromEntries(Object.entries(pressProps.select(rest)).map(([key, handler]) => ({
71
- [key]: args => {
72
- // Pass each handler data on this button and current selection
73
- handler({
74
- id,
75
- label,
76
- currentValues
77
- }, ...args);
78
- }
79
- })));
80
-
81
- const handlePress = () => {
82
- if (pressHandlers.onPress) pressHandlers.onPress();
83
- toggleOneValue(id);
84
- };
85
-
86
- const itemA11y = {
87
- accessibilityState: {
88
- checked: isSelected
89
- },
90
- accessibilityRole: itemA11yRole,
91
- accessibilityLabel,
92
- ...Platform.select({
93
- web: {
94
- // accessibilityPosInSet etc exists in React Native Web main branch
95
- // but not in a release compatible with Expo etc; just use `aria-*`
96
- 'aria-setsize': items.length,
97
- 'aria-posinset': index + 1
74
+
75
+ const itemA11yRole = a11y.accessibilityRole === 'radiogroup' ? 'radio' : 'checkbox';
76
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, { ...a11y,
77
+ space: space,
78
+ direction: direction,
79
+ tokens: stackTokens,
80
+ children: items.map(({
81
+ label,
82
+ id = label,
83
+ accessibilityLabel
84
+ }, index) => {
85
+ const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
86
+
87
+ const pressHandlers = (0, _pressability.getPressHandlersWithArgs)(rest, [{
88
+ id,
89
+ label,
90
+ currentValues
91
+ }]);
92
+
93
+ const handlePress = () => {
94
+ if (pressHandlers.onPress) pressHandlers.onPress();
95
+ toggleOneValue(id);
96
+ };
97
+
98
+ const itemA11y = {
99
+ accessibilityState: {
100
+ checked: isSelected
98
101
  },
99
- default: {}
100
- })
101
- }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
102
- // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
103
- // See also: TODO: make margin the responsibility of a parent
104
- // https://github.com/telus/universal-design-system/issues/525
105
-
106
- return /*#__PURE__*/React.createElement(ButtonBase, Object.assign({
107
- key: id
108
- }, pressHandlers, {
109
- onPress: handlePress,
110
- variant: {
111
- component: 'ButtonGroup',
112
- ...buttonVariant
113
- },
114
- tokens: itemTokens,
115
- selected: isSelected,
116
- inactive: inactive
117
- }, itemA11y), label);
118
- }));
102
+ accessibilityRole: itemA11yRole,
103
+ accessibilityLabel,
104
+ ..._propTypes2.a11yProps.getPositionInSet(items.length, index)
105
+ }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
106
+ // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
107
+
108
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, { ...pressHandlers,
109
+ onPress: handlePress,
110
+ tokens: getButtonTokens,
111
+ selected: isSelected,
112
+ inactive: inactive,
113
+ ...itemA11y,
114
+ children: label
115
+ }, id);
116
+ })
117
+ });
119
118
  };
120
119
 
121
- ButtonGroup.propTypes = { ...a11yProps.propTypes,
122
- ...pressProps.propTypes,
123
- tokens: getTokensPropType('ButtonGroup'),
124
- variant: variantProp.propType,
125
- buttonVariant: variantProp.propType,
120
+ ButtonGroup.propTypes = { ..._propTypes2.a11yProps.propTypes,
121
+ ..._propTypes2.pressProps.propTypes,
122
+ tokens: (0, _propTypes2.getTokensPropType)('ButtonGroup'),
123
+ variant: _propTypes2.variantProp.propType,
126
124
 
127
125
  /**
128
126
  * The maximum number of items a user may select at once. Defaults to 1 and behaves
129
127
  * like radio buttons. To have no limit and allow any number of selections, pass `null`.
130
128
  */
131
- maxValues: PropTypes.number,
129
+ maxValues: _propTypes.default.number,
132
130
 
133
131
  /**
134
132
  * The options a user may select
135
133
  */
136
- items: PropTypes.arrayOf(PropTypes.shape({
134
+ items: _propTypes.default.arrayOf(_propTypes.default.shape({
137
135
  /**
138
136
  * The text displayed to the user in the button, describing this option,
139
137
  * passed to the button as its child.
140
138
  */
141
- label: PropTypes.string.isRequired,
139
+ label: _propTypes.default.string.isRequired,
142
140
 
143
141
  /**
144
142
  * An optional accessibility label may be passed to ButtonGroup Buttons
145
143
  * which is applied as normal for a React Native accessibilityLabel prop.
146
144
  */
147
- accessibilityLabel: PropTypes.string,
145
+ accessibilityLabel: _propTypes.default.string,
148
146
 
149
147
  /**
150
148
  * An optional unique string may be provided to identify this option,
151
149
  * which will be used in code and passed to any onChange function.
152
150
  * If not provided, the label is used.
153
151
  */
154
- id: PropTypes.string
152
+ id: _propTypes.default.string
155
153
  })),
156
154
 
157
155
  /**
158
156
  * If provided, this function is called when the current selection is changed
159
157
  * and is passed an array of the `id`s of all currently selected `items`.
160
158
  */
161
- onChange: PropTypes.func,
159
+ onChange: _propTypes.default.func,
162
160
 
163
161
  /**
164
162
  * If the selected item(s) in the button group are to be controlled externally by
@@ -166,13 +164,14 @@ ButtonGroup.propTypes = { ...a11yProps.propTypes,
166
164
  * Passing an array for "values" makes the ButtonGroup a "controlled" component that
167
165
  * expects its state to be handled via `onChange` and so doesn't handle it itself.
168
166
  */
169
- values: PropTypes.arrayOf(PropTypes.string),
167
+ values: _propTypes.default.arrayOf(_propTypes.default.string),
170
168
 
171
169
  /**
172
170
  * If `values` is not passed, making the ButtonGroup an "uncontrolled" component
173
171
  * managing its own selected state, a default set of selections may be provided.
174
172
  * Changing the `initialValues` does not change the user's selections.
175
173
  */
176
- initialValues: PropTypes.arrayOf(PropTypes.string)
174
+ initialValues: _propTypes.default.arrayOf(_propTypes.default.string)
177
175
  };
178
- export default ButtonGroup;
176
+ var _default = ButtonGroup;
177
+ exports.default = _default;
@@ -1,28 +1,56 @@
1
- import React from 'react';
2
- import ButtonBase from './ButtonBase';
3
- import buttonPropTypes from './propTypes';
4
- import { a11yProps, hrefAttrsProp, linkProps } 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 _propTypes2 = require("../utils/propTypes");
15
+
16
+ var _ThemeProvider = require("../ThemeProvider");
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 }; }
25
+
5
26
  /**
6
27
  * `ButtonLink` is a component with the semantics and behaviour of a link, but with the visual appearance of a button.
7
28
  * ButtonLink is a block-level component and should not be used inline.
8
29
  */
9
-
10
30
  const ButtonLink = ({
11
31
  accessibilityRole = 'link',
32
+ tokens,
33
+ variant,
12
34
  ...props
13
35
  }) => {
14
36
  const {
15
37
  hrefAttrs,
16
38
  rest
17
- } = hrefAttrsProp.bundle(props);
18
- return /*#__PURE__*/React.createElement(ButtonBase, Object.assign({
39
+ } = _propTypes2.hrefAttrsProp.bundle(props);
40
+
41
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Button', tokens, variant);
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
19
43
  accessibilityRole: accessibilityRole,
20
- hrefAttrs: hrefAttrs
21
- }, rest));
44
+ tokens: getTokens,
45
+ hrefAttrs: hrefAttrs,
46
+ ...rest
47
+ });
22
48
  };
23
49
 
24
- ButtonLink.propTypes = { ...a11yProps.types,
25
- ...buttonPropTypes,
26
- ...linkProps.types
50
+ ButtonLink.propTypes = { ..._propTypes2.a11yProps.types,
51
+ ..._propTypes.default,
52
+ ..._propTypes2.linkProps.types,
53
+ children: _propTypes.textAndA11yText
27
54
  };
28
- export default ButtonLink;
55
+ var _default = ButtonLink;
56
+ exports.default = _default;
@@ -1,4 +1,31 @@
1
- import Button from './Button';
2
- import ButtonLink from './ButtonLink';
3
- import ButtonGroup from './ButtonGroup';
4
- export { Button, ButtonGroup, ButtonLink };
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Button", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Button.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ButtonLink", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _ButtonLink.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "ButtonGroup", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _ButtonGroup.default;
22
+ }
23
+ });
24
+
25
+ var _Button = _interopRequireDefault(require("./Button"));
26
+
27
+ var _ButtonLink = _interopRequireDefault(require("./ButtonLink"));
28
+
29
+ var _ButtonGroup = _interopRequireDefault(require("./ButtonGroup"));
30
+
31
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,27 +1,50 @@
1
- import PropTypes from 'prop-types';
2
- import { variantProp } from '../utils/propTypes';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.textAndA11yText = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _airbnbPropTypes = _interopRequireDefault(require("airbnb-prop-types"));
11
+
12
+ var _propTypes2 = require("../utils/propTypes");
13
+
14
+ var _A11yText = _interopRequireDefault(require("../A11yText"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ const textAndA11yText = _airbnbPropTypes.default.childrenOf(_propTypes.default.oneOfType([_airbnbPropTypes.default.elementType(_A11yText.default), _propTypes.default.string]));
19
+
20
+ exports.textAndA11yText = textAndA11yText;
3
21
  const buttonPropTypes = {
4
22
  /**
5
23
  * If true, prevents the button from being pressed, changes the cursor (on web) and accessibility
6
24
  * attributes to communicate this to the user, and applies `inactive: true` appearances from the theme
7
25
  */
8
- inactive: PropTypes.bool,
26
+ inactive: _propTypes.default.bool,
9
27
 
10
28
  /**
11
29
  * Alias for `inactive`
12
30
  */
13
- disabled: PropTypes.bool,
31
+ disabled: _propTypes.default.bool,
14
32
 
15
33
  /**
16
- * Button's children must be either a text string, or a render function which is passed an object of
34
+ * Button's children must be either:
35
+ * - One or more text strings and / or A11yText components
36
+ * - A render function with contents that responds to current button state by being passed an object of:
37
+ * ```
17
38
  * { hovered<bool>, focused<bool>, pressed<bool>, inactive<bool>, selected<bool>, textStyles<RNStyle> }
39
+ * ```
18
40
  */
19
- children: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,
41
+ children: _propTypes.default.oneOfType([_propTypes.default.func, textAndA11yText]).isRequired,
20
42
 
21
43
  /**
22
44
  * Function called when the button is pressed. Required unless the button has a href.
23
45
  */
24
- onPress: PropTypes.func,
25
- variant: variantProp.propType
46
+ onPress: _propTypes.default.func,
47
+ variant: _propTypes2.variantProp.propType
26
48
  };
27
- export default buttonPropTypes;
49
+ var _default = buttonPropTypes;
50
+ exports.default = _default;
package/lib/Card/Card.js CHANGED
@@ -1,32 +1,28 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { View } from 'react-native';
4
- import { applyShadowToken, useThemeTokens } from '../ThemeProvider';
5
- import { getTokensPropType, variantProp } from '../utils';
6
- import { useViewport } from '../ViewportProvider';
7
- import { a11yProps } from '../utils/propTypes'; // Ensure explicit selection of tokens
1
+ "use strict";
8
2
 
9
- const selectStyles = ({
10
- backgroundColor,
11
- borderColor,
12
- borderRadius,
13
- borderWidth,
14
- paddingBottom,
15
- paddingLeft,
16
- paddingRight,
17
- paddingTop,
18
- shadow
19
- }) => ({
20
- backgroundColor,
21
- borderColor,
22
- borderRadius,
23
- borderWidth,
24
- paddingBottom,
25
- paddingLeft,
26
- paddingRight,
27
- paddingTop,
28
- ...applyShadowToken(shadow)
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
29
5
  });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ThemeProvider = require("../ThemeProvider");
13
+
14
+ var _utils = require("../utils");
15
+
16
+ var _ViewportProvider = require("../ViewportProvider");
17
+
18
+ var _propTypes2 = require("../utils/propTypes");
19
+
20
+ var _CardBase = _interopRequireDefault(require("./CardBase"));
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
30
26
  /**
31
27
  * A basic card component, unstyled by default.
32
28
  *
@@ -75,29 +71,28 @@ const selectStyles = ({
75
71
  * you automatically make inaccessible its children, which may or may not be appropriate
76
72
  * depending on what you are trying to achieve.
77
73
  */
78
-
79
-
80
74
  const Card = ({
81
75
  children,
82
76
  tokens,
83
77
  variant,
84
78
  ...rest
85
79
  }) => {
86
- const viewport = useViewport();
87
- const themeTokens = useThemeTokens('Card', tokens, variant, {
80
+ const viewport = (0, _ViewportProvider.useViewport)();
81
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Card', tokens, variant, {
88
82
  viewport
89
83
  });
90
- const cardStyle = selectStyles(themeTokens);
91
- const a11y = a11yProps.select(rest);
92
- return /*#__PURE__*/React.createElement(View, Object.assign({
93
- style: cardStyle
94
- }, a11y), children);
84
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardBase.default, {
85
+ tokens: themeTokens,
86
+ ...rest,
87
+ children: children
88
+ });
95
89
  };
96
90
 
97
91
  Card.propTypes = {
98
- children: PropTypes.node,
99
- tokens: getTokensPropType('Card'),
100
- variant: variantProp.propType,
101
- ...a11yProps.types
92
+ children: _propTypes.default.node,
93
+ tokens: (0, _utils.getTokensPropType)('Card'),
94
+ variant: _utils.variantProp.propType,
95
+ ..._propTypes2.a11yProps.types
102
96
  };
103
- export default Card;
97
+ var _default = Card;
98
+ exports.default = _default;
@@ -0,0 +1,78 @@
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 _ThemeProvider = require("../ThemeProvider");
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _propTypes2 = require("../utils/propTypes");
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ // Ensure explicit selection of tokens
25
+ const selectStyles = ({
26
+ flex,
27
+ backgroundColor,
28
+ borderColor,
29
+ borderRadius,
30
+ borderWidth,
31
+ paddingBottom,
32
+ paddingLeft,
33
+ paddingRight,
34
+ paddingTop,
35
+ minWidth,
36
+ shadow
37
+ }) => ({
38
+ flex,
39
+ backgroundColor,
40
+ borderColor,
41
+ borderRadius,
42
+ borderWidth,
43
+ paddingBottom,
44
+ paddingLeft,
45
+ paddingRight,
46
+ paddingTop,
47
+ minWidth,
48
+ ...(0, _ThemeProvider.applyShadowToken)(shadow)
49
+ });
50
+ /**
51
+ * A themeless base component for Card which components can apply theme tokens to. Not
52
+ * intended to be used in apps or sites directly: build themed components on top of this.
53
+ */
54
+
55
+
56
+ const CardBase = ({
57
+ children,
58
+ tokens,
59
+ ...rest
60
+ }) => {
61
+ const cardStyle = selectStyles(typeof tokens === 'function' ? tokens() : tokens);
62
+ const props = { ..._propTypes2.a11yProps.select(rest),
63
+ ..._propTypes2.viewProps.select(rest)
64
+ };
65
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
66
+ style: cardStyle,
67
+ ...props,
68
+ children: children
69
+ });
70
+ };
71
+
72
+ CardBase.propTypes = {
73
+ children: _propTypes.default.node,
74
+ tokens: (0, _utils.getTokensPropType)('Card'),
75
+ ..._propTypes2.a11yProps.types
76
+ };
77
+ var _default = CardBase;
78
+ exports.default = _default;