@telus-uds/components-base 0.0.2-prerelease.7 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.ultra.cache.json +1 -1
  3. package/CHANGELOG.md +71 -0
  4. package/README.md +4 -2
  5. package/__fixtures__/Accessible.js +33 -0
  6. package/__fixtures__/Accessible.native.js +32 -0
  7. package/__fixtures__/test-utils.js +25 -0
  8. package/__fixtures__/testTheme.js +438 -31
  9. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  10. package/__tests__/Button/ButtonGroup.test.jsx +6 -7
  11. package/__tests__/Checkbox/Checkbox.test.jsx +2 -2
  12. package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
  13. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
  14. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
  15. package/__tests__/Icon/Icon.test.jsx +3 -3
  16. package/__tests__/IconButton/IconButton.test.jsx +52 -0
  17. package/__tests__/Link/LinkBase.test.jsx +0 -14
  18. package/__tests__/Modal/Modal.test.jsx +47 -0
  19. package/__tests__/Notification/Notification.test.jsx +20 -0
  20. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  21. package/__tests__/Progress/Progress.test.jsx +79 -0
  22. package/__tests__/Radio/Radio.test.jsx +2 -2
  23. package/__tests__/Radio/RadioGroup.test.jsx +220 -0
  24. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  25. package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
  26. package/__tests__/Search/Search.test.jsx +73 -0
  27. package/__tests__/Select/Select.test.jsx +3 -2
  28. package/__tests__/Skeleton/Skeleton.test.jsx +1 -1
  29. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  30. package/__tests__/Tabs/Tabs.test.jsx +40 -0
  31. package/__tests__/Tags/Tags.test.jsx +5 -6
  32. package/__tests__/TextInput/TextArea.test.jsx +3 -2
  33. package/__tests__/TextInput/TextInputBase.test.jsx +10 -5
  34. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
  35. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
  36. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
  37. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
  38. package/__tests__/utils/children.test.jsx +128 -0
  39. package/__tests__/utils/input.test.js +59 -1
  40. package/__tests__/utils/semantics.test.jsx +43 -0
  41. package/__tests__/utils/useCopy.test.js +14 -3
  42. package/babel.config.js +20 -0
  43. package/jest.config.js +6 -3
  44. package/lib/A11yInfoProvider/index.js +54 -26
  45. package/lib/A11yText/index.js +45 -17
  46. package/lib/ActivityIndicator/Spinner.js +81 -0
  47. package/lib/ActivityIndicator/Spinner.native.js +129 -91
  48. package/lib/ActivityIndicator/index.js +28 -12
  49. package/lib/ActivityIndicator/shared.js +27 -12
  50. package/lib/BaseProvider/index.js +34 -11
  51. package/lib/Box/Box.js +153 -35
  52. package/lib/Box/index.js +13 -2
  53. package/lib/Button/Button.js +38 -16
  54. package/lib/Button/ButtonBase.js +93 -79
  55. package/lib/Button/ButtonGroup.js +112 -73
  56. package/lib/Button/ButtonLink.js +45 -19
  57. package/lib/Button/index.js +31 -4
  58. package/lib/Button/propTypes.js +32 -9
  59. package/lib/Card/Card.js +38 -41
  60. package/lib/Card/CardBase.js +86 -0
  61. package/lib/Card/PressableCardBase.js +141 -0
  62. package/lib/Card/index.js +40 -2
  63. package/lib/Checkbox/Checkbox.js +158 -111
  64. package/lib/Checkbox/CheckboxGroup.js +241 -0
  65. package/lib/Checkbox/CheckboxInput.js +74 -0
  66. package/lib/Checkbox/CheckboxInput.native.js +9 -1
  67. package/lib/Checkbox/index.js +21 -2
  68. package/lib/Divider/Divider.js +59 -28
  69. package/lib/Divider/index.js +13 -2
  70. package/lib/ExpandCollapse/Accordion.js +26 -7
  71. package/lib/ExpandCollapse/Control.js +60 -31
  72. package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
  73. package/lib/ExpandCollapse/Panel.js +83 -44
  74. package/lib/ExpandCollapse/index.js +25 -7
  75. package/lib/Feedback/Feedback.js +77 -43
  76. package/lib/Feedback/index.js +13 -2
  77. package/lib/Fieldset/Fieldset.js +165 -0
  78. package/lib/Fieldset/FieldsetContainer.js +46 -0
  79. package/lib/Fieldset/FieldsetContainer.native.js +38 -0
  80. package/lib/Fieldset/Legend.js +38 -0
  81. package/lib/Fieldset/Legend.native.js +48 -0
  82. package/lib/Fieldset/cssReset.js +21 -0
  83. package/lib/Fieldset/index.js +13 -0
  84. package/lib/FlexGrid/Col/Col.js +73 -41
  85. package/lib/FlexGrid/Col/index.js +13 -2
  86. package/lib/FlexGrid/FlexGrid.js +99 -49
  87. package/lib/FlexGrid/Row/Row.js +58 -30
  88. package/lib/FlexGrid/Row/index.js +13 -2
  89. package/lib/FlexGrid/helpers/index.js +9 -1
  90. package/lib/FlexGrid/index.js +13 -2
  91. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  92. package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
  93. package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
  94. package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
  95. package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
  96. package/lib/HorizontalScroll/dictionary.js +18 -0
  97. package/lib/HorizontalScroll/index.js +35 -0
  98. package/lib/HorizontalScroll/itemPositions.js +128 -0
  99. package/lib/Icon/Icon.js +57 -48
  100. package/lib/Icon/IconText.js +54 -25
  101. package/lib/Icon/index.js +31 -4
  102. package/lib/IconButton/IconButton.js +140 -0
  103. package/lib/IconButton/index.js +13 -0
  104. package/lib/InputLabel/InputLabel.js +102 -40
  105. package/lib/InputLabel/LabelContent.js +41 -0
  106. package/lib/InputLabel/LabelContent.native.js +32 -6
  107. package/lib/InputLabel/index.js +13 -2
  108. package/lib/InputSupports/InputSupports.js +71 -52
  109. package/lib/InputSupports/index.js +13 -2
  110. package/lib/InputSupports/propTypes.js +19 -8
  111. package/lib/InputSupports/useInputSupports.js +41 -0
  112. package/lib/Link/ChevronLink.js +44 -20
  113. package/lib/Link/InlinePressable.js +56 -0
  114. package/lib/Link/InlinePressable.native.js +39 -15
  115. package/lib/Link/Link.js +36 -13
  116. package/lib/Link/LinkBase.js +98 -61
  117. package/lib/Link/TextButton.js +41 -17
  118. package/lib/Link/index.js +39 -5
  119. package/lib/List/List.js +55 -26
  120. package/lib/List/ListItem.js +79 -41
  121. package/lib/List/index.js +13 -2
  122. package/lib/Modal/Modal.js +231 -0
  123. package/lib/Modal/dictionary.js +16 -0
  124. package/lib/Modal/index.js +13 -0
  125. package/lib/Notification/Notification.js +216 -0
  126. package/lib/Notification/dictionary.js +15 -0
  127. package/lib/Notification/index.js +13 -0
  128. package/lib/Pagination/PageButton.js +61 -28
  129. package/lib/Pagination/Pagination.js +78 -43
  130. package/lib/Pagination/SideButton.js +73 -42
  131. package/lib/Pagination/dictionary.js +9 -2
  132. package/lib/Pagination/index.js +13 -2
  133. package/lib/Pagination/usePagination.js +12 -2
  134. package/lib/Progress/Progress.js +104 -0
  135. package/lib/Progress/ProgressBar.js +157 -0
  136. package/lib/Progress/ProgressBarBackground.js +61 -0
  137. package/lib/Progress/index.js +16 -0
  138. package/lib/Radio/Radio.js +116 -114
  139. package/lib/Radio/RadioButton.js +152 -0
  140. package/lib/Radio/RadioGroup.js +244 -0
  141. package/lib/Radio/RadioInput.js +76 -0
  142. package/lib/Radio/RadioInput.native.js +9 -1
  143. package/lib/Radio/index.js +21 -2
  144. package/lib/RadioCard/RadioCard.js +244 -0
  145. package/lib/RadioCard/RadioCardGroup.js +252 -0
  146. package/lib/RadioCard/index.js +21 -0
  147. package/lib/Search/Search.js +254 -0
  148. package/lib/Search/dictionary.js +19 -0
  149. package/lib/Search/index.js +13 -0
  150. package/lib/Select/Group.js +33 -0
  151. package/lib/Select/Group.native.js +16 -5
  152. package/lib/Select/Item.js +29 -0
  153. package/lib/Select/Item.native.js +14 -4
  154. package/lib/Select/Picker.js +84 -0
  155. package/lib/Select/Picker.native.js +73 -30
  156. package/lib/Select/Select.js +155 -85
  157. package/lib/Select/index.js +19 -6
  158. package/lib/SideNav/Item.js +63 -37
  159. package/lib/SideNav/ItemContent.js +41 -15
  160. package/lib/SideNav/ItemsGroup.js +55 -31
  161. package/lib/SideNav/SideNav.js +100 -73
  162. package/lib/SideNav/index.js +15 -1
  163. package/lib/Skeleton/Skeleton.js +64 -46
  164. package/lib/Skeleton/index.js +13 -2
  165. package/lib/Skeleton/skeleton.constant.js +12 -0
  166. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  168. package/lib/Spacer/Spacer.js +49 -18
  169. package/lib/Spacer/index.js +13 -2
  170. package/lib/StackView/StackView.js +72 -31
  171. package/lib/StackView/StackWrap.js +43 -13
  172. package/lib/StackView/StackWrap.native.js +13 -2
  173. package/lib/StackView/StackWrapBox.js +77 -29
  174. package/lib/StackView/StackWrapGap.js +56 -26
  175. package/lib/StackView/common.js +23 -6
  176. package/lib/StackView/getStackedContent.js +47 -17
  177. package/lib/StackView/index.js +29 -5
  178. package/lib/StepTracker/Step.js +245 -0
  179. package/lib/StepTracker/StepTracker.js +202 -0
  180. package/lib/StepTracker/dictionary.js +17 -0
  181. package/lib/StepTracker/index.js +13 -0
  182. package/lib/Tabs/Tabs.js +124 -0
  183. package/lib/Tabs/TabsItem.js +238 -0
  184. package/lib/Tabs/index.js +13 -0
  185. package/lib/Tags/Tags.js +148 -99
  186. package/lib/Tags/index.js +13 -2
  187. package/lib/TextInput/TextArea.js +57 -28
  188. package/lib/TextInput/TextInput.js +50 -23
  189. package/lib/TextInput/TextInputBase.js +90 -63
  190. package/lib/TextInput/index.js +23 -3
  191. package/lib/TextInput/propTypes.js +18 -7
  192. package/lib/ThemeProvider/ThemeProvider.js +46 -18
  193. package/lib/ThemeProvider/index.js +61 -6
  194. package/lib/ThemeProvider/useSetTheme.js +19 -5
  195. package/lib/ThemeProvider/useTheme.js +13 -4
  196. package/lib/ThemeProvider/useThemeTokens.js +32 -16
  197. package/lib/ThemeProvider/utils/index.js +31 -2
  198. package/lib/ThemeProvider/utils/styles.js +50 -14
  199. package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
  200. package/lib/ToggleSwitch/ToggleSwitch.js +85 -56
  201. package/lib/ToggleSwitch/index.js +13 -2
  202. package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
  203. package/lib/Tooltip/Backdrop.native.js +39 -15
  204. package/lib/Tooltip/Tooltip.js +117 -74
  205. package/lib/Tooltip/dictionary.js +9 -2
  206. package/lib/Tooltip/getTooltipPosition.js +9 -1
  207. package/lib/Tooltip/index.js +13 -2
  208. package/lib/TooltipButton/TooltipButton.js +57 -38
  209. package/lib/TooltipButton/index.js +13 -2
  210. package/lib/Typography/Typography.js +87 -41
  211. package/lib/Typography/index.js +13 -2
  212. package/lib/ViewportProvider/ViewportProvider.js +34 -13
  213. package/lib/ViewportProvider/index.js +28 -3
  214. package/lib/ViewportProvider/useViewport.js +15 -3
  215. package/lib/ViewportProvider/useViewportListener.js +24 -10
  216. package/lib/index.js +539 -33
  217. package/lib/utils/a11y/index.js +31 -1
  218. package/lib/utils/a11y/semantics.js +173 -0
  219. package/lib/utils/a11y/textSize.js +23 -7
  220. package/lib/utils/animation/index.js +15 -2
  221. package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
  222. package/lib/utils/children.js +134 -0
  223. package/lib/utils/index.js +163 -10
  224. package/lib/utils/info/index.js +18 -6
  225. package/lib/utils/info/platform/index.js +19 -7
  226. package/lib/utils/info/platform/platform.android.js +8 -1
  227. package/lib/utils/info/platform/platform.ios.js +8 -1
  228. package/lib/utils/info/platform/platform.js +8 -0
  229. package/lib/utils/info/platform/platform.native.js +8 -1
  230. package/lib/utils/info/versions.js +15 -4
  231. package/lib/utils/input.js +53 -25
  232. package/lib/utils/pressability.js +38 -10
  233. package/lib/utils/propTypes.js +287 -141
  234. package/lib/utils/useCopy.js +40 -5
  235. package/lib/utils/useHash.js +52 -0
  236. package/lib/utils/useHash.native.js +15 -0
  237. package/lib/utils/useResponsiveProp.js +21 -9
  238. package/lib/utils/useSpacingScale.js +19 -9
  239. package/lib/utils/useUniqueId.js +12 -3
  240. package/package.json +14 -9
  241. package/release-context.json +4 -4
  242. package/src/A11yText/index.jsx +6 -4
  243. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
  244. package/src/ActivityIndicator/Spinner.native.jsx +5 -3
  245. package/src/Box/Box.jsx +132 -39
  246. package/src/Button/Button.jsx +10 -6
  247. package/src/Button/ButtonBase.jsx +99 -99
  248. package/src/Button/ButtonGroup.jsx +81 -69
  249. package/src/Button/ButtonLink.jsx +21 -15
  250. package/src/Button/propTypes.js +12 -2
  251. package/src/Card/Card.jsx +5 -31
  252. package/src/Card/CardBase.jsx +59 -0
  253. package/src/Card/PressableCardBase.jsx +119 -0
  254. package/src/Card/index.js +3 -0
  255. package/src/Checkbox/Checkbox.jsx +121 -112
  256. package/src/Checkbox/CheckboxGroup.jsx +206 -0
  257. package/src/Checkbox/{CheckboxInput.web.jsx → CheckboxInput.jsx} +0 -0
  258. package/src/Checkbox/index.js +2 -0
  259. package/src/Divider/Divider.jsx +7 -4
  260. package/src/ExpandCollapse/Accordion.jsx +3 -2
  261. package/src/ExpandCollapse/Control.jsx +40 -43
  262. package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
  263. package/src/ExpandCollapse/Panel.jsx +69 -63
  264. package/src/Feedback/Feedback.jsx +36 -33
  265. package/src/Fieldset/Fieldset.jsx +136 -0
  266. package/src/Fieldset/FieldsetContainer.jsx +31 -0
  267. package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
  268. package/src/Fieldset/Legend.jsx +21 -0
  269. package/src/Fieldset/Legend.native.jsx +27 -0
  270. package/src/Fieldset/cssReset.js +14 -0
  271. package/src/Fieldset/index.js +3 -0
  272. package/src/FlexGrid/Col/Col.jsx +139 -132
  273. package/src/FlexGrid/FlexGrid.jsx +79 -51
  274. package/src/FlexGrid/Row/Row.jsx +55 -48
  275. package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
  276. package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
  277. package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
  278. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
  279. package/src/HorizontalScroll/dictionary.js +11 -0
  280. package/src/HorizontalScroll/index.js +17 -0
  281. package/src/HorizontalScroll/itemPositions.js +101 -0
  282. package/src/Icon/Icon.jsx +43 -50
  283. package/src/Icon/IconText.jsx +23 -18
  284. package/src/Icon/index.js +2 -2
  285. package/src/IconButton/IconButton.jsx +114 -0
  286. package/src/IconButton/index.js +3 -0
  287. package/src/InputLabel/InputLabel.jsx +57 -35
  288. package/src/InputLabel/LabelContent.jsx +21 -0
  289. package/src/InputLabel/LabelContent.native.jsx +11 -2
  290. package/src/InputSupports/InputSupports.jsx +29 -45
  291. package/src/InputSupports/useInputSupports.js +30 -0
  292. package/src/Link/ChevronLink.jsx +26 -16
  293. package/src/Link/{InlinePressable.web.jsx → InlinePressable.jsx} +5 -3
  294. package/src/Link/InlinePressable.native.jsx +5 -3
  295. package/src/Link/Link.jsx +22 -16
  296. package/src/Link/LinkBase.jsx +76 -65
  297. package/src/Link/TextButton.jsx +30 -23
  298. package/src/List/List.jsx +5 -4
  299. package/src/List/ListItem.jsx +77 -82
  300. package/src/Modal/Modal.jsx +190 -0
  301. package/src/Modal/dictionary.js +9 -0
  302. package/src/Modal/index.js +3 -0
  303. package/src/Notification/Notification.jsx +164 -0
  304. package/src/Notification/dictionary.js +8 -0
  305. package/src/Notification/index.js +3 -0
  306. package/src/Pagination/PageButton.jsx +42 -35
  307. package/src/Pagination/Pagination.jsx +88 -92
  308. package/src/Pagination/SideButton.jsx +44 -41
  309. package/src/Progress/Progress.jsx +78 -0
  310. package/src/Progress/ProgressBar.jsx +123 -0
  311. package/src/Progress/ProgressBarBackground.jsx +36 -0
  312. package/src/Progress/index.js +6 -0
  313. package/src/Radio/Radio.jsx +82 -112
  314. package/src/Radio/RadioButton.jsx +142 -0
  315. package/src/Radio/RadioGroup.jsx +209 -0
  316. package/src/Radio/{RadioInput.web.jsx → RadioInput.jsx} +0 -0
  317. package/src/Radio/index.js +2 -0
  318. package/src/RadioCard/RadioCard.jsx +198 -0
  319. package/src/RadioCard/RadioCardGroup.jsx +218 -0
  320. package/src/RadioCard/index.js +5 -0
  321. package/src/Search/Search.jsx +225 -0
  322. package/src/Search/dictionary.js +12 -0
  323. package/src/Search/index.js +3 -0
  324. package/src/Select/{Group.web.jsx → Group.jsx} +0 -0
  325. package/src/Select/{Item.web.jsx → Item.jsx} +0 -0
  326. package/src/Select/Picker.jsx +74 -0
  327. package/src/Select/Picker.native.jsx +56 -49
  328. package/src/Select/Select.jsx +125 -92
  329. package/src/SideNav/Item.jsx +54 -47
  330. package/src/SideNav/ItemsGroup.jsx +50 -43
  331. package/src/SideNav/SideNav.jsx +68 -60
  332. package/src/Skeleton/Skeleton.jsx +25 -32
  333. package/src/Skeleton/skeleton.constant.js +3 -0
  334. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  335. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  336. package/src/Spacer/Spacer.jsx +11 -4
  337. package/src/StackView/StackView.jsx +54 -23
  338. package/src/StackView/StackWrap.jsx +16 -7
  339. package/src/StackView/StackWrapBox.jsx +63 -28
  340. package/src/StackView/StackWrapGap.jsx +46 -24
  341. package/src/StackView/common.jsx +3 -2
  342. package/src/StackView/getStackedContent.jsx +8 -2
  343. package/src/StepTracker/Step.jsx +202 -0
  344. package/src/StepTracker/StepTracker.jsx +174 -0
  345. package/src/StepTracker/dictionary.js +10 -0
  346. package/src/StepTracker/index.js +3 -0
  347. package/src/Tabs/Tabs.jsx +97 -0
  348. package/src/Tabs/TabsItem.jsx +212 -0
  349. package/src/Tabs/index.js +3 -0
  350. package/src/Tags/Tags.jsx +115 -102
  351. package/src/TextInput/TextArea.jsx +5 -4
  352. package/src/TextInput/TextInput.jsx +5 -4
  353. package/src/TextInput/TextInputBase.jsx +95 -98
  354. package/src/ThemeProvider/ThemeProvider.jsx +11 -7
  355. package/src/ThemeProvider/useSetTheme.js +4 -0
  356. package/src/ThemeProvider/useThemeTokens.js +2 -2
  357. package/src/ThemeProvider/utils/styles.js +18 -5
  358. package/src/ThemeProvider/utils/theme-tokens.js +74 -5
  359. package/src/ToggleSwitch/ToggleSwitch.jsx +50 -52
  360. package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
  361. package/src/Tooltip/Tooltip.jsx +135 -131
  362. package/src/TooltipButton/TooltipButton.jsx +23 -27
  363. package/src/Typography/Typography.jsx +71 -47
  364. package/src/index.js +23 -2
  365. package/src/utils/a11y/index.js +1 -0
  366. package/src/utils/a11y/semantics.js +162 -0
  367. package/src/utils/children.jsx +119 -0
  368. package/src/utils/index.js +3 -0
  369. package/src/utils/info/platform/platform.js +1 -0
  370. package/src/utils/info/versions.js +2 -2
  371. package/src/utils/input.js +36 -25
  372. package/src/utils/pressability.js +4 -0
  373. package/src/utils/propTypes.js +199 -72
  374. package/src/utils/useCopy.js +30 -4
  375. package/src/utils/useHash.js +39 -0
  376. package/src/utils/useHash.native.js +6 -0
  377. package/stories/A11yText/A11yText.stories.jsx +6 -10
  378. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
  379. package/stories/Box/Box.stories.jsx +1 -1
  380. package/stories/Button/Button.stories.jsx +2 -2
  381. package/stories/Button/ButtonGroup.stories.jsx +1 -1
  382. package/stories/Button/ButtonLink.stories.jsx +1 -1
  383. package/stories/Card/Card.stories.jsx +1 -1
  384. package/stories/Checkbox/Checkbox.stories.jsx +24 -1
  385. package/stories/Divider/Divider.stories.jsx +1 -1
  386. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
  387. package/stories/Feedback/Feedback.stories.jsx +1 -1
  388. package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
  389. package/stories/FlexGrid/02 Row.stories.jsx +1 -1
  390. package/stories/FlexGrid/03 Col.stories.jsx +1 -1
  391. package/stories/Icon/Icon.stories.jsx +27 -7
  392. package/stories/IconButton/IconButton.stories.jsx +50 -0
  393. package/stories/InputLabel/InputLabel.stories.jsx +1 -1
  394. package/stories/Link/ChevronLink.stories.jsx +1 -1
  395. package/stories/Link/Link.stories.jsx +17 -21
  396. package/stories/Link/TextButton.stories.jsx +1 -1
  397. package/stories/List/List.stories.jsx +1 -1
  398. package/stories/Modal/Modal.stories.jsx +29 -0
  399. package/stories/Notification/Notification.stories.jsx +82 -0
  400. package/stories/Pagination/Pagination.stories.jsx +1 -1
  401. package/stories/Progress/Progress.stories.jsx +93 -0
  402. package/stories/Radio/Radio.stories.jsx +23 -36
  403. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  404. package/stories/Search/Search.stories.jsx +16 -0
  405. package/stories/Select/Select.stories.jsx +1 -1
  406. package/stories/SideNav/SideNav.stories.jsx +1 -1
  407. package/stories/SideNav/SideNavItem.stories.jsx +1 -1
  408. package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
  409. package/stories/Skeleton/Skeleton.stories.jsx +2 -2
  410. package/stories/Spacer/Spacer.stories.jsx +1 -1
  411. package/stories/StackView/StackView.stories.jsx +1 -1
  412. package/stories/StackView/StackWrap.stories.jsx +1 -1
  413. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  414. package/stories/Tabs/Tabs.stories.jsx +97 -0
  415. package/stories/Tags/Tags.stories.jsx +1 -1
  416. package/stories/TextInput/TextArea.stories.jsx +1 -1
  417. package/stories/TextInput/TextInput.stories.jsx +1 -1
  418. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
  419. package/stories/Tooltip/Tooltip.stories.jsx +1 -1
  420. package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
  421. package/stories/Typography/Typography.stories.jsx +1 -1
  422. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
  423. package/stories/supports.jsx +37 -3
  424. package/__fixtures__/accessible.icon.svg +0 -6
  425. package/babel.config.json +0 -8
  426. package/docs/Contributing.stories.mdx +0 -9
  427. package/docs/Fonts.stories.mdx +0 -104
  428. package/docs/Icons.stories.mdx +0 -144
  429. package/docs/Introduction.stories.mdx +0 -9
  430. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  431. package/lib/Checkbox/CheckboxInput.web.js +0 -57
  432. package/lib/InputLabel/LabelContent.web.js +0 -17
  433. package/lib/Link/InlinePressable.web.js +0 -32
  434. package/lib/Radio/RadioInput.web.js +0 -59
  435. package/lib/Select/Group.web.js +0 -18
  436. package/lib/Select/Item.web.js +0 -15
  437. package/lib/Select/Picker.web.js +0 -63
  438. package/lib/config/svgr-icons-web.js +0 -9
  439. package/lib/config/svgr-icons.js +0 -52
  440. package/lib/utils/info/platform/platform.web.js +0 -1
  441. package/src/InputLabel/LabelContent.web.jsx +0 -13
  442. package/src/Select/Picker.web.jsx +0 -67
  443. package/src/config/svgr-icons-web.js +0 -11
  444. package/src/config/svgr-icons.js +0 -46
  445. package/src/utils/info/platform/platform.web.js +0 -1
@@ -1,8 +1,33 @@
1
- import React from 'react';
2
- import { Pressable, Text, View, StyleSheet, Platform } from 'react-native';
3
- import { applyTextStyles, applyShadowToken } from '../ThemeProvider/utils';
4
- import buttonPropTypes from './propTypes';
5
- import { a11yProps, getCursorStyle, hrefAttrsProp, linkProps, resolvePressableState, resolvePressableTokens } from '../utils';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
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 }; }
27
+
28
+ 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); }
29
+
30
+ 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; }
6
31
 
7
32
  const getOuterBorderOffset = ({
8
33
  outerBorderGap = 0,
@@ -14,17 +39,19 @@ const selectOuterContainerStyles = ({
14
39
  opacity,
15
40
  outerBorderColor,
16
41
  outerBorderWidth,
17
- outerBorderGap = 0,
18
- outerBorderRadius = 0,
42
+ outerBorderGap,
43
+ borderRadius,
19
44
  outerBackgroundColor
20
45
  }) => ({
21
46
  alignSelf,
22
- padding: outerBorderGap,
23
- borderWidth: outerBorderWidth,
24
- borderColor: outerBorderColor,
25
- borderRadius: outerBorderRadius + outerBorderGap,
26
47
  backgroundColor: outerBackgroundColor,
27
- opacity
48
+ opacity,
49
+ ...(0, _utils.applyOuterBorder)({
50
+ outerBorderGap,
51
+ outerBorderWidth,
52
+ outerBorderColor,
53
+ borderRadius
54
+ })
28
55
  });
29
56
 
30
57
  const selectOuterWidthStyles = ({
@@ -38,14 +65,12 @@ const selectOuterWidthStyles = ({
38
65
  outerBorderGap,
39
66
  outerBorderWidth
40
67
  });
41
- const widthStyles = {
42
- margin: 0 - outerBorderOffset
43
- };
68
+ const widthStyles = {};
44
69
 
45
70
  if (!width) {
46
71
  return { ...widthStyles,
47
72
  // Wrap content, stopping a flex parent's default align-items: stretch stretching focus ring beyond content
48
- ...Platform.select({
73
+ ..._Platform.default.select({
49
74
  // width: fit-content isn't supported on Firefox; can't cascade props like CSS `width: fit-content; width: --moz-fit-content;`
50
75
  web: {
51
76
  display: 'inline-flex'
@@ -61,7 +86,7 @@ const selectOuterWidthStyles = ({
61
86
  } // Ensure the negative margin doesn't make element off-centre
62
87
 
63
88
 
64
- if (Platform.OS === 'web') {
89
+ if (_Platform.default.OS === 'web') {
65
90
  widthStyles.width = `calc(${width} + ${outerBorderOffset * 2}px)`;
66
91
  return widthStyles;
67
92
  } // Can't use calc() on native but (unlike on web) flexGrow fills the container width here
@@ -99,7 +124,7 @@ const selectInnerContainerStyles = ({
99
124
  paddingBottom: offsetBorder(paddingBottom),
100
125
  backgroundColor,
101
126
  minWidth,
102
- ...applyShadowToken(shadow)
127
+ ...(0, _utils.applyShadowToken)(shadow)
103
128
  };
104
129
  };
105
130
 
@@ -120,7 +145,7 @@ const selectTextStyles = ({
120
145
  fontName,
121
146
  fontWeight,
122
147
  textAlign
123
- }) => applyTextStyles({
148
+ }) => (0, _utils.applyTextStyles)({
124
149
  fontSize,
125
150
  color,
126
151
  lineHeight,
@@ -132,39 +157,19 @@ const selectTextStyles = ({
132
157
  const selectWebOnlyStyles = (inactive, themeTokens, {
133
158
  accessibilityRole
134
159
  }) => {
135
- return Platform.select({
160
+ return _Platform.default.select({
136
161
  web: {
137
162
  // if it would overflow the container, wraps instead
138
163
  maxWidth: `calc(100% + ${getOuterBorderOffset(themeTokens) * 2}px)`,
139
164
  outline: 'none',
140
165
  // removes the default browser :focus outline
141
- ...getCursorStyle(inactive, accessibilityRole)
166
+ ...(0, _utils2.getCursorStyle)(inactive, accessibilityRole)
142
167
  },
143
168
  default: {}
144
169
  });
145
- }; // TODO: see if this can be made into a generalised utility, ideally when
146
- // there is a stable, generic, generalised approach to within-component text
147
-
148
-
149
- const resolveChildren = (children, {
150
- textStyles,
151
- state
152
- }) => {
153
- switch (typeof children) {
154
- case 'function':
155
- return children(state);
156
-
157
- case 'string':
158
- return /*#__PURE__*/React.createElement(Text, {
159
- style: textStyles
160
- }, children);
161
-
162
- default:
163
- return children;
164
- }
165
170
  };
166
171
 
167
- const ButtonBase = ({
172
+ const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)(({
168
173
  href,
169
174
  hrefAttrs,
170
175
  children,
@@ -174,61 +179,68 @@ const ButtonBase = ({
174
179
  // alias for inactive
175
180
  inactive = disabled,
176
181
  selected = false,
182
+ dataSet,
177
183
  ...rest
178
- }) => {
184
+ }, ref) => {
179
185
  const extraButtonState = {
180
186
  inactive,
181
187
  selected
182
188
  };
183
189
 
184
- const resolveTokens = pressableState => resolvePressableTokens(tokens, pressableState, extraButtonState);
190
+ const resolveButtonTokens = pressableState => (0, _utils2.resolvePressableTokens)(tokens, pressableState, extraButtonState);
185
191
 
186
- const a11y = a11yProps.select(rest);
192
+ const a11y = _utils2.a11yProps.select(rest);
187
193
 
188
194
  const getPressableStyle = pressableState => {
189
- const themeTokens = resolveTokens(pressableState);
195
+ const themeTokens = resolveButtonTokens(pressableState);
190
196
  return [staticStyles.row, selectWebOnlyStyles(inactive, themeTokens, a11y), selectOuterContainerStyles(themeTokens), selectOuterWidthStyles(themeTokens)];
191
197
  };
192
198
 
193
- return /*#__PURE__*/React.createElement(Pressable, Object.assign({
199
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
200
+ ref: ref,
194
201
  href: href,
195
- onPress: linkProps.handleHref({
202
+ onPress: _utils2.linkProps.handleHref({
196
203
  href,
197
204
  onPress
198
205
  }),
199
206
  style: getPressableStyle,
200
- disabled: inactive
201
- }, hrefAttrsProp.spread(hrefAttrs), a11y), pressableState => {
202
- const themeTokens = resolveTokens(pressableState);
203
- const containerStyles = selectInnerContainerStyles(themeTokens);
204
- const borderStyles = selectBorderStyles(themeTokens);
205
- const textStyles = [selectTextStyles(themeTokens), staticStyles.text]; // If the container has a width set, fill it instead of sizing from content.
206
- // If in future we support text alignments other than center, add here.
207
-
208
- const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
209
- return /*#__PURE__*/React.createElement(View, {
210
- style: [containerStyles, borderStyles, stretchStyles, staticStyles.row, Platform.select({
211
- web: {
212
- maxWidth: '100%',
213
- // ensure overflowing content wraps
214
- // TODO: https://github.com/telus/universal-design-system/issues/487
215
- transition: 'background-color 200ms, border-color 200ms'
216
- }
217
- })]
218
- }, resolveChildren(children, {
219
- state: { ...resolvePressableState(pressableState, extraButtonState),
220
- textStyles
221
- },
222
- textStyles
223
- }));
207
+ disabled: inactive,
208
+ dataSet: dataSet,
209
+ hrefAttrs: hrefAttrs,
210
+ ...a11y,
211
+ children: pressableState => {
212
+ const themeTokens = resolveButtonTokens(pressableState);
213
+ const containerStyles = selectInnerContainerStyles(themeTokens);
214
+ const borderStyles = selectBorderStyles(themeTokens);
215
+ const textStyles = [selectTextStyles(themeTokens), staticStyles.text]; // 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.
217
+
218
+ const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
219
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
220
+ style: [containerStyles, borderStyles, stretchStyles, staticStyles.row, _Platform.default.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
+ children: (0, _utils2.wrapStringsInText)(typeof children === 'function' ? children({ ...(0, _utils2.resolvePressableState)(pressableState, extraButtonState),
229
+ textStyles
230
+ }) : children, {
231
+ style: textStyles
232
+ })
233
+ });
234
+ }
224
235
  });
236
+ });
237
+ ButtonBase.displayName = 'ButtonBase';
238
+ ButtonBase.propTypes = { ..._utils2.a11yProps.types,
239
+ ..._propTypes.default,
240
+ ..._utils2.linkProps.types
225
241
  };
226
242
 
227
- ButtonBase.propTypes = { ...a11yProps.types,
228
- ...buttonPropTypes,
229
- ...linkProps.types
230
- };
231
- const staticStyles = StyleSheet.create({
243
+ const staticStyles = _StyleSheet.default.create({
232
244
  row: {
233
245
  // Apply all button alignment horizontally; no vertical stacking within a button
234
246
  flexDirection: 'row'
@@ -236,7 +248,7 @@ const staticStyles = StyleSheet.create({
236
248
  text: {
237
249
  flexGrow: 1,
238
250
  // On native but not web, flexShrink here wraps text prematurely
239
- ...Platform.select({
251
+ ..._Platform.default.select({
240
252
  // TODO: https://github.com/telus/universal-design-system/issues/487
241
253
  web: {
242
254
  transition: 'color 200ms'
@@ -252,4 +264,6 @@ const staticStyles = StyleSheet.create({
252
264
  justifyContent: 'center'
253
265
  }
254
266
  });
255
- export default ButtonBase;
267
+
268
+ var _default = ButtonBase;
269
+ exports.default = _default;
@@ -1,15 +1,41 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Platform } from 'react-native';
4
- import ButtonBase from './ButtonBase';
5
- import { StackWrap } from '../StackView';
6
- import { useViewport } from '../ViewportProvider';
7
- import { useThemeTokens, useThemeTokensCallback } from '../ThemeProvider';
8
- import { a11yProps, pressProps, variantProp, getTokensPropType, selectTokens } from '../utils/propTypes';
9
- import { useMultipleInputValues } from '../utils/input';
10
- import { getPressHandlersWithArgs } from '../utils/pressability';
11
-
12
- const ButtonGroup = ({
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _airbnbPropTypes = _interopRequireDefault(require("airbnb-prop-types"));
13
+
14
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
15
+
16
+ var _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
17
+
18
+ var _StackView = require("../StackView");
19
+
20
+ var _ViewportProvider = require("../ViewportProvider");
21
+
22
+ var _ThemeProvider = require("../ThemeProvider");
23
+
24
+ var _propTypes2 = require("../utils/propTypes");
25
+
26
+ var _input = require("../utils/input");
27
+
28
+ var _pressability = require("../utils/pressability");
29
+
30
+ var _jsxRuntime = require("react/jsx-runtime");
31
+
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+
34
+ 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); }
35
+
36
+ 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; }
37
+
38
+ const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
13
39
  variant,
14
40
  tokens,
15
41
  items = [],
@@ -19,121 +45,133 @@ const ButtonGroup = ({
19
45
  onChange,
20
46
  readOnly = false,
21
47
  inactive = false,
22
- accessibilityRole = maxValues === 1 ? 'radioGroup' // radioGroup is cross-platform; only web aria has generic groups
23
- : Platform.select({
48
+ accessibilityRole = maxValues === 1 ? 'radiogroup' // radiogroup is cross-platform; only web aria has generic groups
49
+ : _Platform.default.select({
24
50
  web: 'group',
25
51
  default: 'none'
26
52
  }),
27
53
  ...rest
28
- }) => {
29
- const viewport = useViewport();
30
- const themeTokens = useThemeTokens('ButtonGroup', tokens, variant, {
54
+ }, ref) => {
55
+ const viewport = (0, _ViewportProvider.useViewport)();
56
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('ButtonGroup', tokens, variant, {
31
57
  viewport
32
58
  });
33
- const stackTokens = selectTokens('StackView', themeTokens);
59
+ const stackTokens = (0, _propTypes2.selectTokens)('StackView', themeTokens);
34
60
  const {
35
61
  direction,
36
62
  space
37
63
  } = themeTokens;
38
- const getButtonTokens = useThemeTokensCallback('ButtonGroupItem', tokens, variant);
64
+ const getButtonTokens = (0, _ThemeProvider.useThemeTokensCallback)('ButtonGroupItem', tokens, variant);
39
65
  const {
40
66
  currentValues,
41
67
  toggleOneValue
42
- } = useMultipleInputValues({
68
+ } = (0, _input.useMultipleInputValues)({
43
69
  initialValues,
44
70
  values,
45
71
  maxValues,
46
72
  onChange,
47
73
  readOnly
48
74
  });
49
- const a11y = a11yProps.select({
75
+
76
+ const a11y = _propTypes2.a11yProps.select({
50
77
  accessibilityRole,
51
78
  ...rest
52
79
  });
53
- const itemA11yRole = a11y.accessibilityRole === 'radioGroup' ? 'radio' : 'checkbox';
54
- return /*#__PURE__*/React.createElement(StackWrap, Object.assign({}, a11y, {
80
+
81
+ const itemA11yRole = a11y.accessibilityRole === 'radiogroup' ? 'radio' : 'checkbox';
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, { ...a11y,
55
83
  space: space,
56
84
  direction: direction,
57
- tokens: stackTokens
58
- }), items.map(({
59
- label,
60
- id = label,
61
- accessibilityLabel
62
- }, index) => {
63
- const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
64
-
65
- const pressHandlers = getPressHandlersWithArgs(rest, [{
66
- id,
85
+ tokens: stackTokens,
86
+ ref: ref,
87
+ children: items.map(({
67
88
  label,
68
- currentValues
69
- }]);
70
-
71
- const handlePress = () => {
72
- if (pressHandlers.onPress) pressHandlers.onPress();
73
- toggleOneValue(id);
74
- };
75
-
76
- const itemA11y = {
77
- accessibilityState: {
78
- checked: isSelected
79
- },
80
- accessibilityRole: itemA11yRole,
89
+ id = label,
81
90
  accessibilityLabel,
82
- ...a11yProps.getPositionInSet(items.length, index)
83
- }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
84
- // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
85
-
86
- return /*#__PURE__*/React.createElement(ButtonBase, Object.assign({
87
- key: id
88
- }, pressHandlers, {
89
- onPress: handlePress,
90
- tokens: getButtonTokens,
91
- selected: isSelected,
92
- inactive: inactive
93
- }, itemA11y), label);
94
- }));
95
- };
91
+ ref: itemRef
92
+ }, index) => {
93
+ const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
94
+
95
+ const pressHandlers = (0, _pressability.getPressHandlersWithArgs)(rest, [{
96
+ id,
97
+ label,
98
+ currentValues
99
+ }]);
96
100
 
97
- ButtonGroup.propTypes = { ...a11yProps.propTypes,
98
- ...pressProps.propTypes,
99
- tokens: getTokensPropType('ButtonGroup'),
100
- variant: variantProp.propType,
101
+ const handlePress = event => {
102
+ if (pressHandlers.onPress) pressHandlers.onPress();
103
+ toggleOneValue(id, event);
104
+ };
105
+
106
+ const itemA11y = {
107
+ accessibilityState: {
108
+ checked: isSelected
109
+ },
110
+ accessibilityRole: itemA11yRole,
111
+ accessibilityLabel,
112
+ ..._propTypes2.a11yProps.getPositionInSet(items.length, index)
113
+ }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
114
+ // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
115
+
116
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
117
+ ref: itemRef,
118
+ ...pressHandlers,
119
+ onPress: handlePress,
120
+ tokens: getButtonTokens,
121
+ selected: isSelected,
122
+ inactive: inactive,
123
+ ...itemA11y,
124
+ children: label
125
+ }, id);
126
+ })
127
+ });
128
+ });
129
+ ButtonGroup.displayName = 'ButtonGroup';
130
+ ButtonGroup.propTypes = { ..._propTypes2.a11yProps.propTypes,
131
+ ..._propTypes2.pressProps.propTypes,
132
+ tokens: (0, _propTypes2.getTokensPropType)('ButtonGroup'),
133
+ variant: _propTypes2.variantProp.propType,
101
134
 
102
135
  /**
103
136
  * The maximum number of items a user may select at once. Defaults to 1 and behaves
104
137
  * like radio buttons. To have no limit and allow any number of selections, pass `null`.
105
138
  */
106
- maxValues: PropTypes.number,
139
+ maxValues: _propTypes.default.number,
107
140
 
108
141
  /**
109
142
  * The options a user may select
110
143
  */
111
- items: PropTypes.arrayOf(PropTypes.shape({
144
+ items: _propTypes.default.arrayOf(_propTypes.default.shape({
112
145
  /**
113
146
  * The text displayed to the user in the button, describing this option,
114
147
  * passed to the button as its child.
115
148
  */
116
- label: PropTypes.string.isRequired,
149
+ label: _propTypes.default.string.isRequired,
117
150
 
118
151
  /**
119
152
  * An optional accessibility label may be passed to ButtonGroup Buttons
120
153
  * which is applied as normal for a React Native accessibilityLabel prop.
121
154
  */
122
- accessibilityLabel: PropTypes.string,
155
+ accessibilityLabel: _propTypes.default.string,
123
156
 
124
157
  /**
125
158
  * An optional unique string may be provided to identify this option,
126
159
  * which will be used in code and passed to any onChange function.
127
160
  * If not provided, the label is used.
128
161
  */
129
- id: PropTypes.string
162
+ id: _propTypes.default.string,
163
+
164
+ /**
165
+ * An optional ref for one individual button in the ButtonGroup
166
+ */
167
+ ref: _airbnbPropTypes.default.ref()
130
168
  })),
131
169
 
132
170
  /**
133
171
  * If provided, this function is called when the current selection is changed
134
172
  * and is passed an array of the `id`s of all currently selected `items`.
135
173
  */
136
- onChange: PropTypes.func,
174
+ onChange: _propTypes.default.func,
137
175
 
138
176
  /**
139
177
  * If the selected item(s) in the button group are to be controlled externally by
@@ -141,13 +179,14 @@ ButtonGroup.propTypes = { ...a11yProps.propTypes,
141
179
  * Passing an array for "values" makes the ButtonGroup a "controlled" component that
142
180
  * expects its state to be handled via `onChange` and so doesn't handle it itself.
143
181
  */
144
- values: PropTypes.arrayOf(PropTypes.string),
182
+ values: _propTypes.default.arrayOf(_propTypes.default.string),
145
183
 
146
184
  /**
147
185
  * If `values` is not passed, making the ButtonGroup an "uncontrolled" component
148
186
  * managing its own selected state, a default set of selections may be provided.
149
187
  * Changing the `initialValues` does not change the user's selections.
150
188
  */
151
- initialValues: PropTypes.arrayOf(PropTypes.string)
189
+ initialValues: _propTypes.default.arrayOf(_propTypes.default.string)
152
190
  };
153
- export default ButtonGroup;
191
+ var _default = ButtonGroup;
192
+ exports.default = _default;
@@ -1,33 +1,59 @@
1
- import React from 'react';
2
- import ButtonBase from './ButtonBase';
3
- import buttonPropTypes from './propTypes';
4
- import { a11yProps, hrefAttrsProp, linkProps } from '../utils/propTypes';
5
- import { useThemeTokensCallback } from '../ThemeProvider';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
6
26
  /**
7
27
  * `ButtonLink` is a component with the semantics and behaviour of a link, but with the visual appearance of a button.
8
28
  * ButtonLink is a block-level component and should not be used inline.
9
29
  */
10
-
11
- const ButtonLink = ({
30
+ const ButtonLink = /*#__PURE__*/(0, _react.forwardRef)(({
12
31
  accessibilityRole = 'link',
13
32
  tokens,
14
33
  variant,
34
+ dataSet,
15
35
  ...props
16
- }) => {
36
+ }, ref) => {
17
37
  const {
18
38
  hrefAttrs,
19
39
  rest
20
- } = hrefAttrsProp.bundle(props);
21
- const getTokens = useThemeTokensCallback('Button', tokens, variant);
22
- return /*#__PURE__*/React.createElement(ButtonBase, Object.assign({
40
+ } = _propTypes2.hrefAttrsProp.bundle(props);
41
+
42
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Button', tokens, variant);
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
44
+ ref: ref,
23
45
  accessibilityRole: accessibilityRole,
24
46
  tokens: getTokens,
25
- hrefAttrs: hrefAttrs
26
- }, rest));
27
- };
28
-
29
- ButtonLink.propTypes = { ...a11yProps.types,
30
- ...buttonPropTypes,
31
- ...linkProps.types
47
+ hrefAttrs: hrefAttrs,
48
+ dataSet: dataSet,
49
+ ...rest
50
+ });
51
+ });
52
+ ButtonLink.displayName = 'ButtonLink';
53
+ ButtonLink.propTypes = { ..._propTypes2.a11yProps.types,
54
+ ..._propTypes.default,
55
+ ..._propTypes2.linkProps.types,
56
+ children: _propTypes.textAndA11yText
32
57
  };
33
- export default ButtonLink;
58
+ var _default = ButtonLink;
59
+ 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 }; }