@telus-uds/components-base 1.7.1 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/CHANGELOG.md +41 -2
  2. package/component-docs.json +944 -691
  3. package/lib/A11yInfoProvider/index.js +4 -3
  4. package/lib/A11yText/index.js +6 -5
  5. package/lib/ActivityIndicator/Spinner.js +7 -6
  6. package/lib/ActivityIndicator/Spinner.native.js +8 -6
  7. package/lib/ActivityIndicator/index.js +6 -5
  8. package/lib/ActivityIndicator/shared.js +1 -1
  9. package/lib/BaseProvider/index.js +13 -10
  10. package/lib/Box/Box.js +20 -19
  11. package/lib/Button/Button.js +7 -6
  12. package/lib/Button/ButtonBase.js +95 -77
  13. package/lib/Button/ButtonGroup.js +140 -65
  14. package/lib/Button/ButtonLink.js +9 -7
  15. package/lib/Button/index.js +4 -4
  16. package/lib/Button/propTypes.js +1 -1
  17. package/lib/Card/Card.js +8 -7
  18. package/lib/Card/CardBase.js +35 -31
  19. package/lib/Card/PressableCardBase.js +14 -12
  20. package/lib/Checkbox/Checkbox.js +96 -82
  21. package/lib/Checkbox/CheckboxGroup.js +30 -28
  22. package/lib/Checkbox/CheckboxInput.js +12 -10
  23. package/lib/Divider/Divider.js +8 -7
  24. package/lib/ExpandCollapse/Control.js +42 -36
  25. package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
  26. package/lib/ExpandCollapse/Panel.js +29 -24
  27. package/lib/Feedback/Feedback.js +48 -35
  28. package/lib/Fieldset/Fieldset.js +22 -14
  29. package/lib/Fieldset/FieldsetContainer.js +16 -13
  30. package/lib/Fieldset/FieldsetContainer.native.js +11 -8
  31. package/lib/Fieldset/Legend.js +10 -7
  32. package/lib/Fieldset/Legend.native.js +10 -7
  33. package/lib/FlexGrid/Col/Col.js +17 -16
  34. package/lib/FlexGrid/FlexGrid.js +15 -14
  35. package/lib/FlexGrid/Row/Row.js +13 -12
  36. package/lib/HorizontalScroll/HorizontalScroll.js +25 -20
  37. package/lib/HorizontalScroll/HorizontalScrollButton.js +18 -14
  38. package/lib/HorizontalScroll/ScrollViewEnd.js +6 -5
  39. package/lib/HorizontalScroll/ScrollViewEnd.native.js +12 -9
  40. package/lib/HorizontalScroll/itemPositions.js +19 -13
  41. package/lib/Icon/Icon.js +10 -9
  42. package/lib/Icon/IconText.js +8 -7
  43. package/lib/Icon/index.js +5 -5
  44. package/lib/IconButton/IconButton.js +50 -42
  45. package/lib/InputLabel/InputLabel.js +44 -30
  46. package/lib/InputLabel/LabelContent.js +12 -9
  47. package/lib/InputLabel/LabelContent.native.js +9 -6
  48. package/lib/InputSupports/InputSupports.js +17 -9
  49. package/lib/InputSupports/useInputSupports.js +7 -6
  50. package/lib/Link/ChevronLink.js +9 -8
  51. package/lib/Link/InlinePressable.js +13 -10
  52. package/lib/Link/InlinePressable.native.js +20 -16
  53. package/lib/Link/Link.js +10 -9
  54. package/lib/Link/LinkBase.js +96 -78
  55. package/lib/Link/TextButton.js +9 -8
  56. package/lib/List/List.js +9 -7
  57. package/lib/List/ListItem.js +99 -74
  58. package/lib/Modal/Modal.js +72 -59
  59. package/lib/Notification/Notification.js +47 -34
  60. package/lib/Pagination/PageButton.js +11 -10
  61. package/lib/Pagination/Pagination.js +39 -28
  62. package/lib/Pagination/SideButton.js +21 -18
  63. package/lib/Pagination/usePagination.js +5 -4
  64. package/lib/Progress/Progress.js +23 -19
  65. package/lib/Progress/ProgressBar.js +23 -19
  66. package/lib/Progress/ProgressBarBackground.js +4 -3
  67. package/lib/Radio/Radio.js +79 -68
  68. package/lib/Radio/RadioButton.js +63 -53
  69. package/lib/Radio/RadioGroup.js +39 -30
  70. package/lib/Radio/RadioInput.js +12 -10
  71. package/lib/RadioCard/RadioCard.js +15 -14
  72. package/lib/RadioCard/RadioCardGroup.js +34 -25
  73. package/lib/Search/Search.js +52 -32
  74. package/lib/Select/Group.js +5 -4
  75. package/lib/Select/Group.native.js +4 -3
  76. package/lib/Select/Item.js +10 -7
  77. package/lib/Select/Item.native.js +1 -9
  78. package/lib/Select/Picker.js +16 -15
  79. package/lib/Select/Picker.native.js +49 -38
  80. package/lib/Select/Select.js +134 -113
  81. package/lib/SideNav/Item.js +39 -33
  82. package/lib/SideNav/ItemContent.js +15 -12
  83. package/lib/SideNav/ItemsGroup.js +13 -11
  84. package/lib/SideNav/SideNav.js +19 -16
  85. package/lib/Skeleton/Skeleton.js +106 -44
  86. package/lib/Skeleton/skeleton.constant.js +1 -1
  87. package/lib/Spacer/Spacer.js +6 -5
  88. package/lib/StackView/StackView.js +12 -11
  89. package/lib/StackView/StackWrap.js +2 -2
  90. package/lib/StackView/StackWrapBox.js +12 -11
  91. package/lib/StackView/StackWrapGap.js +11 -10
  92. package/lib/StackView/common.js +14 -11
  93. package/lib/StackView/getStackedContent.js +8 -7
  94. package/lib/StackView/index.js +1 -1
  95. package/lib/StepTracker/Step.js +122 -103
  96. package/lib/StepTracker/StepTracker.js +48 -38
  97. package/lib/Tabs/Tabs.js +29 -24
  98. package/lib/Tabs/TabsItem.js +79 -68
  99. package/lib/Tags/Tags.js +67 -61
  100. package/lib/TextInput/TextArea.js +26 -20
  101. package/lib/TextInput/TextInput.js +20 -15
  102. package/lib/TextInput/TextInputBase.js +74 -62
  103. package/lib/TextInput/index.js +4 -4
  104. package/lib/ThemeProvider/ThemeProvider.js +6 -5
  105. package/lib/ThemeProvider/index.js +5 -5
  106. package/lib/ThemeProvider/useSetTheme.js +6 -3
  107. package/lib/ThemeProvider/useThemeTokens.js +7 -2
  108. package/lib/ThemeProvider/utils/styles.js +48 -41
  109. package/lib/ThemeProvider/utils/theme-tokens.js +26 -12
  110. package/lib/ToggleSwitch/ToggleSwitch.js +95 -72
  111. package/lib/ToggleSwitch/ToggleSwitchGroup.js +42 -33
  112. package/lib/Tooltip/Backdrop.js +4 -3
  113. package/lib/Tooltip/Backdrop.native.js +5 -4
  114. package/lib/Tooltip/Tooltip.js +82 -66
  115. package/lib/Tooltip/getTooltipPosition.js +29 -18
  116. package/lib/TooltipButton/TooltipButton.js +28 -21
  117. package/lib/Typography/Typography.js +37 -33
  118. package/lib/ViewportProvider/ViewportProvider.js +4 -3
  119. package/lib/ViewportProvider/useViewportListener.js +6 -3
  120. package/lib/index.js +54 -54
  121. package/lib/utils/a11y/semantics.js +5 -2
  122. package/lib/utils/a11y/textSize.js +8 -6
  123. package/lib/utils/animation/useVerticalExpandAnimation.js +32 -18
  124. package/lib/utils/children.js +2 -1
  125. package/lib/utils/index.js +10 -10
  126. package/lib/utils/input.js +22 -17
  127. package/lib/utils/pressability.js +36 -22
  128. package/lib/utils/props/clickProps.js +2 -1
  129. package/lib/utils/props/getPropSelector.js +6 -3
  130. package/lib/utils/props/handlerProps.js +25 -19
  131. package/lib/utils/props/hrefAttrsProp.js +14 -11
  132. package/lib/utils/props/index.js +12 -12
  133. package/lib/utils/props/inputSupportsProps.js +21 -11
  134. package/lib/utils/props/linkProps.js +7 -6
  135. package/lib/utils/props/pressProps.js +1 -1
  136. package/lib/utils/props/tokens.js +27 -13
  137. package/lib/utils/ssr.js +6 -2
  138. package/lib/utils/useCopy.js +6 -4
  139. package/lib/utils/useHash.js +2 -1
  140. package/lib/utils/useResponsiveProp.js +1 -1
  141. package/lib/utils/useUniqueId.js +2 -1
  142. package/lib/utils/withLinkRouter.js +6 -5
  143. package/package.json +18 -12
  144. package/src/Button/ButtonGroup.jsx +106 -41
  145. package/src/Checkbox/Checkbox.jsx +7 -4
  146. package/src/Checkbox/CheckboxGroup.jsx +3 -3
  147. package/src/ExpandCollapse/Panel.jsx +3 -1
  148. package/src/Fieldset/Fieldset.jsx +6 -0
  149. package/src/InputLabel/InputLabel.jsx +17 -2
  150. package/src/InputSupports/InputSupports.jsx +9 -1
  151. package/src/Notification/Notification.jsx +1 -1
  152. package/src/Pagination/Pagination.jsx +3 -0
  153. package/src/Radio/Radio.jsx +5 -1
  154. package/src/Radio/RadioGroup.jsx +11 -5
  155. package/src/RadioCard/RadioCard.jsx +5 -1
  156. package/src/RadioCard/RadioCardGroup.jsx +6 -0
  157. package/src/Search/Search.jsx +12 -1
  158. package/src/Select/Item.native.jsx +0 -7
  159. package/src/Skeleton/Skeleton.jsx +56 -3
  160. package/src/ToggleSwitch/ToggleSwitch.jsx +6 -0
  161. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +6 -0
  162. package/src/Tooltip/Tooltip.jsx +1 -1
  163. package/src/utils/animation/useVerticalExpandAnimation.js +25 -12
  164. package/src/utils/props/inputSupportsProps.js +6 -1
  165. package/src/utils/props/tokens.js +21 -19
  166. package/.storybook/main.js +0 -4
  167. package/.storybook/preview.js +0 -37
  168. package/.turbo/turbo-build.log +0 -8
  169. package/.turbo/turbo-lint.log +0 -13
  170. package/CHANGELOG.json +0 -250
  171. package/__fixtures__/Accessible.js +0 -35
  172. package/__fixtures__/Accessible.native.js +0 -35
  173. package/__fixtures__/Theme.jsx +0 -13
  174. package/__fixtures__/Viewport.jsx +0 -17
  175. package/__fixtures__/test-utils.js +0 -25
  176. package/__fixtures__/testTheme.js +0 -1830
  177. package/__tests__/A11yText/A11yText.test.jsx +0 -34
  178. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +0 -68
  179. package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +0 -287
  180. package/__tests__/Box/Box.test.jsx +0 -111
  181. package/__tests__/Button/Button.test.jsx +0 -86
  182. package/__tests__/Button/ButtonBase.test.jsx +0 -82
  183. package/__tests__/Button/ButtonGroup.test.jsx +0 -347
  184. package/__tests__/Button/ButtonLink.test.jsx +0 -61
  185. package/__tests__/Card/Card.test.jsx +0 -63
  186. package/__tests__/Checkbox/Checkbox.test.jsx +0 -94
  187. package/__tests__/Checkbox/CheckboxGroup.test.jsx +0 -246
  188. package/__tests__/Divider/Divider.test.jsx +0 -91
  189. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +0 -109
  190. package/__tests__/Feedback/Feedback.test.jsx +0 -42
  191. package/__tests__/FlexGrid/Col.test.jsx +0 -256
  192. package/__tests__/FlexGrid/FlexGrid.test.jsx +0 -136
  193. package/__tests__/FlexGrid/Row.test.jsx +0 -273
  194. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +0 -165
  195. package/__tests__/Icon/Icon.test.jsx +0 -61
  196. package/__tests__/IconButton/IconButton.test.jsx +0 -52
  197. package/__tests__/InputSupports/InputSupports.test.jsx +0 -50
  198. package/__tests__/Link/Link.test.jsx +0 -63
  199. package/__tests__/Link/TextButton.test.jsx +0 -35
  200. package/__tests__/List/List.test.jsx +0 -60
  201. package/__tests__/Modal/Modal.test.jsx +0 -47
  202. package/__tests__/Notification/Notification.test.jsx +0 -20
  203. package/__tests__/Pagination/Pagination.test.jsx +0 -160
  204. package/__tests__/Progress/Progress.test.jsx +0 -79
  205. package/__tests__/Radio/Radio.test.jsx +0 -87
  206. package/__tests__/Radio/RadioGroup.test.jsx +0 -220
  207. package/__tests__/RadioCard/RadioCard.test.jsx +0 -87
  208. package/__tests__/RadioCard/RadioCardGroup.test.jsx +0 -246
  209. package/__tests__/Search/Search.test.jsx +0 -73
  210. package/__tests__/Select/Select.test.jsx +0 -94
  211. package/__tests__/SideNav/SideNav.test.jsx +0 -110
  212. package/__tests__/Skeleton/Skeleton.test.jsx +0 -61
  213. package/__tests__/Spacer/Spacer.test.jsx +0 -63
  214. package/__tests__/StackView/StackView.test.jsx +0 -216
  215. package/__tests__/StackView/StackWrap.test.jsx +0 -47
  216. package/__tests__/StackView/getStackedContent.test.jsx +0 -295
  217. package/__tests__/StepTracker/StepTracker.test.jsx +0 -94
  218. package/__tests__/Tabs/Tabs.test.jsx +0 -40
  219. package/__tests__/Tags/Tags.test.jsx +0 -327
  220. package/__tests__/TextInput/TextArea.test.jsx +0 -35
  221. package/__tests__/TextInput/TextInputBase.test.jsx +0 -125
  222. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +0 -77
  223. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +0 -514
  224. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +0 -41
  225. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +0 -82
  226. package/__tests__/ToggleSwitch/ToggleSwitchGroup.test.jsx +0 -192
  227. package/__tests__/Tooltip/Tooltip.test.jsx +0 -65
  228. package/__tests__/Tooltip/getTooltipPosition.test.js +0 -79
  229. package/__tests__/Typography/typography.test.jsx +0 -90
  230. package/__tests__/utils/children.test.jsx +0 -128
  231. package/__tests__/utils/containUniqueFields.test.js +0 -25
  232. package/__tests__/utils/input.test.js +0 -375
  233. package/__tests__/utils/props.test.js +0 -36
  234. package/__tests__/utils/semantics.test.jsx +0 -34
  235. package/__tests__/utils/useCopy.test.js +0 -42
  236. package/__tests__/utils/useResponsiveProp.test.jsx +0 -202
  237. package/__tests__/utils/useSpacingScale.test.jsx +0 -273
  238. package/__tests__/utils/useUniqueId.test.js +0 -31
  239. package/babel.config.js +0 -35
  240. package/generate-component-docs.js +0 -72
  241. package/jest.config.js +0 -32
  242. package/lib-module/A11yInfoProvider/index.js +0 -62
  243. package/lib-module/A11yText/index.js +0 -55
  244. package/lib-module/ActivityIndicator/Spinner.js +0 -76
  245. package/lib-module/ActivityIndicator/Spinner.native.js +0 -143
  246. package/lib-module/ActivityIndicator/index.js +0 -40
  247. package/lib-module/ActivityIndicator/shared.js +0 -12
  248. package/lib-module/BaseProvider/index.js +0 -26
  249. package/lib-module/Box/Box.js +0 -243
  250. package/lib-module/Box/index.js +0 -2
  251. package/lib-module/Button/Button.js +0 -25
  252. package/lib-module/Button/ButtonBase.js +0 -254
  253. package/lib-module/Button/ButtonGroup.js +0 -173
  254. package/lib-module/Button/ButtonLink.js +0 -39
  255. package/lib-module/Button/index.js +0 -4
  256. package/lib-module/Button/propTypes.js +0 -36
  257. package/lib-module/Card/Card.js +0 -83
  258. package/lib-module/Card/CardBase.js +0 -62
  259. package/lib-module/Card/PressableCardBase.js +0 -113
  260. package/lib-module/Card/index.js +0 -4
  261. package/lib-module/Checkbox/Checkbox.js +0 -332
  262. package/lib-module/Checkbox/CheckboxGroup.js +0 -231
  263. package/lib-module/Checkbox/CheckboxInput.js +0 -58
  264. package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
  265. package/lib-module/Checkbox/index.js +0 -3
  266. package/lib-module/Divider/Divider.js +0 -123
  267. package/lib-module/Divider/index.js +0 -2
  268. package/lib-module/ExpandCollapse/Accordion.js +0 -15
  269. package/lib-module/ExpandCollapse/Control.js +0 -130
  270. package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -94
  271. package/lib-module/ExpandCollapse/Panel.js +0 -158
  272. package/lib-module/ExpandCollapse/index.js +0 -7
  273. package/lib-module/Feedback/Feedback.js +0 -144
  274. package/lib-module/Feedback/index.js +0 -2
  275. package/lib-module/Fieldset/Fieldset.js +0 -145
  276. package/lib-module/Fieldset/FieldsetContainer.js +0 -29
  277. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -20
  278. package/lib-module/Fieldset/Legend.js +0 -21
  279. package/lib-module/Fieldset/Legend.native.js +0 -28
  280. package/lib-module/Fieldset/cssReset.js +0 -14
  281. package/lib-module/Fieldset/index.js +0 -2
  282. package/lib-module/FlexGrid/Col/Col.js +0 -275
  283. package/lib-module/FlexGrid/Col/index.js +0 -2
  284. package/lib-module/FlexGrid/FlexGrid.js +0 -147
  285. package/lib-module/FlexGrid/Row/Row.js +0 -183
  286. package/lib-module/FlexGrid/Row/index.js +0 -2
  287. package/lib-module/FlexGrid/helpers/index.js +0 -18
  288. package/lib-module/FlexGrid/index.js +0 -2
  289. package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
  290. package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -170
  291. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -77
  292. package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -47
  293. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -24
  294. package/lib-module/HorizontalScroll/dictionary.js +0 -11
  295. package/lib-module/HorizontalScroll/index.js +0 -11
  296. package/lib-module/HorizontalScroll/itemPositions.js +0 -106
  297. package/lib-module/Icon/Icon.js +0 -61
  298. package/lib-module/Icon/IconText.js +0 -81
  299. package/lib-module/Icon/index.js +0 -4
  300. package/lib-module/IconButton/IconButton.js +0 -115
  301. package/lib-module/IconButton/index.js +0 -2
  302. package/lib-module/InputLabel/InputLabel.js +0 -134
  303. package/lib-module/InputLabel/LabelContent.js +0 -24
  304. package/lib-module/InputLabel/LabelContent.native.js +0 -16
  305. package/lib-module/InputLabel/index.js +0 -2
  306. package/lib-module/InputSupports/InputSupports.js +0 -88
  307. package/lib-module/InputSupports/index.js +0 -2
  308. package/lib-module/InputSupports/useInputSupports.js +0 -31
  309. package/lib-module/Link/ChevronLink.js +0 -51
  310. package/lib-module/Link/InlinePressable.js +0 -37
  311. package/lib-module/Link/InlinePressable.native.js +0 -85
  312. package/lib-module/Link/Link.js +0 -27
  313. package/lib-module/Link/LinkBase.js +0 -223
  314. package/lib-module/Link/TextButton.js +0 -34
  315. package/lib-module/Link/index.js +0 -5
  316. package/lib-module/List/List.js +0 -55
  317. package/lib-module/List/ListItem.js +0 -223
  318. package/lib-module/List/index.js +0 -5
  319. package/lib-module/Modal/Modal.js +0 -208
  320. package/lib-module/Modal/dictionary.js +0 -9
  321. package/lib-module/Modal/index.js +0 -2
  322. package/lib-module/Notification/Notification.js +0 -196
  323. package/lib-module/Notification/dictionary.js +0 -8
  324. package/lib-module/Notification/index.js +0 -2
  325. package/lib-module/Pagination/PageButton.js +0 -65
  326. package/lib-module/Pagination/Pagination.js +0 -140
  327. package/lib-module/Pagination/SideButton.js +0 -103
  328. package/lib-module/Pagination/dictionary.js +0 -18
  329. package/lib-module/Pagination/index.js +0 -2
  330. package/lib-module/Pagination/usePagination.js +0 -72
  331. package/lib-module/Progress/Progress.js +0 -85
  332. package/lib-module/Progress/ProgressBar.js +0 -134
  333. package/lib-module/Progress/ProgressBarBackground.js +0 -41
  334. package/lib-module/Progress/index.js +0 -4
  335. package/lib-module/Radio/Radio.js +0 -274
  336. package/lib-module/Radio/RadioButton.js +0 -128
  337. package/lib-module/Radio/RadioGroup.js +0 -234
  338. package/lib-module/Radio/RadioInput.js +0 -60
  339. package/lib-module/Radio/RadioInput.native.js +0 -6
  340. package/lib-module/Radio/index.js +0 -3
  341. package/lib-module/RadioCard/RadioCard.js +0 -218
  342. package/lib-module/RadioCard/RadioCardGroup.js +0 -241
  343. package/lib-module/RadioCard/index.js +0 -3
  344. package/lib-module/Search/Search.js +0 -241
  345. package/lib-module/Search/dictionary.js +0 -12
  346. package/lib-module/Search/index.js +0 -2
  347. package/lib-module/Select/Group.js +0 -20
  348. package/lib-module/Select/Group.native.js +0 -14
  349. package/lib-module/Select/Item.js +0 -17
  350. package/lib-module/Select/Item.native.js +0 -9
  351. package/lib-module/Select/Picker.js +0 -67
  352. package/lib-module/Select/Picker.native.js +0 -110
  353. package/lib-module/Select/Select.js +0 -316
  354. package/lib-module/Select/index.js +0 -6
  355. package/lib-module/SideNav/Item.js +0 -139
  356. package/lib-module/SideNav/ItemContent.js +0 -45
  357. package/lib-module/SideNav/ItemsGroup.js +0 -115
  358. package/lib-module/SideNav/SideNav.js +0 -133
  359. package/lib-module/SideNav/index.js +0 -1
  360. package/lib-module/Skeleton/Skeleton.js +0 -117
  361. package/lib-module/Skeleton/index.js +0 -2
  362. package/lib-module/Skeleton/skeleton.constant.js +0 -3
  363. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
  364. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -24
  365. package/lib-module/Spacer/Spacer.js +0 -97
  366. package/lib-module/Spacer/index.js +0 -2
  367. package/lib-module/StackView/StackView.js +0 -124
  368. package/lib-module/StackView/StackWrap.js +0 -48
  369. package/lib-module/StackView/StackWrap.native.js +0 -3
  370. package/lib-module/StackView/StackWrapBox.js +0 -114
  371. package/lib-module/StackView/StackWrapGap.js +0 -58
  372. package/lib-module/StackView/common.js +0 -32
  373. package/lib-module/StackView/getStackedContent.js +0 -123
  374. package/lib-module/StackView/index.js +0 -5
  375. package/lib-module/StepTracker/Step.js +0 -229
  376. package/lib-module/StepTracker/StepTracker.js +0 -175
  377. package/lib-module/StepTracker/dictionary.js +0 -10
  378. package/lib-module/StepTracker/index.js +0 -2
  379. package/lib-module/Tabs/Tabs.js +0 -113
  380. package/lib-module/Tabs/TabsItem.js +0 -215
  381. package/lib-module/Tabs/index.js +0 -2
  382. package/lib-module/Tags/Tags.js +0 -245
  383. package/lib-module/Tags/index.js +0 -2
  384. package/lib-module/TextInput/TextArea.js +0 -88
  385. package/lib-module/TextInput/TextInput.js +0 -68
  386. package/lib-module/TextInput/TextInputBase.js +0 -233
  387. package/lib-module/TextInput/index.js +0 -3
  388. package/lib-module/TextInput/propTypes.js +0 -37
  389. package/lib-module/ThemeProvider/ThemeProvider.js +0 -35
  390. package/lib-module/ThemeProvider/index.js +0 -6
  391. package/lib-module/ThemeProvider/useSetTheme.js +0 -22
  392. package/lib-module/ThemeProvider/useTheme.js +0 -14
  393. package/lib-module/ThemeProvider/useThemeTokens.js +0 -105
  394. package/lib-module/ThemeProvider/utils/index.js +0 -2
  395. package/lib-module/ThemeProvider/utils/styles.js +0 -174
  396. package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -151
  397. package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -227
  398. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -211
  399. package/lib-module/ToggleSwitch/index.js +0 -3
  400. package/lib-module/Tooltip/Backdrop.js +0 -52
  401. package/lib-module/Tooltip/Backdrop.native.js +0 -43
  402. package/lib-module/Tooltip/Tooltip.js +0 -332
  403. package/lib-module/Tooltip/dictionary.js +0 -8
  404. package/lib-module/Tooltip/getTooltipPosition.js +0 -164
  405. package/lib-module/Tooltip/index.js +0 -2
  406. package/lib-module/TooltipButton/TooltipButton.js +0 -71
  407. package/lib-module/TooltipButton/index.js +0 -2
  408. package/lib-module/Typography/Typography.js +0 -120
  409. package/lib-module/Typography/index.js +0 -2
  410. package/lib-module/ViewportProvider/ViewportProvider.js +0 -28
  411. package/lib-module/ViewportProvider/index.js +0 -3
  412. package/lib-module/ViewportProvider/useViewport.js +0 -3
  413. package/lib-module/ViewportProvider/useViewportListener.js +0 -43
  414. package/lib-module/index.js +0 -48
  415. package/lib-module/utils/a11y/index.js +0 -2
  416. package/lib-module/utils/a11y/semantics.js +0 -154
  417. package/lib-module/utils/a11y/textSize.js +0 -34
  418. package/lib-module/utils/animation/index.js +0 -2
  419. package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -49
  420. package/lib-module/utils/children.js +0 -118
  421. package/lib-module/utils/containUniqueFields.js +0 -26
  422. package/lib-module/utils/index.js +0 -16
  423. package/lib-module/utils/info/index.js +0 -7
  424. package/lib-module/utils/info/platform/index.js +0 -11
  425. package/lib-module/utils/info/platform/platform.android.js +0 -1
  426. package/lib-module/utils/info/platform/platform.ios.js +0 -1
  427. package/lib-module/utils/info/platform/platform.js +0 -1
  428. package/lib-module/utils/info/platform/platform.native.js +0 -4
  429. package/lib-module/utils/info/versions.js +0 -5
  430. package/lib-module/utils/input.js +0 -180
  431. package/lib-module/utils/pressability.js +0 -97
  432. package/lib-module/utils/props/a11yProps.js +0 -140
  433. package/lib-module/utils/props/clickProps.js +0 -25
  434. package/lib-module/utils/props/componentPropType.js +0 -63
  435. package/lib-module/utils/props/copyPropTypes.js +0 -2
  436. package/lib-module/utils/props/getPropSelector.js +0 -6
  437. package/lib-module/utils/props/handlerProps.js +0 -59
  438. package/lib-module/utils/props/hrefAttrsProp.js +0 -30
  439. package/lib-module/utils/props/index.js +0 -19
  440. package/lib-module/utils/props/inputSupportsProps.js +0 -52
  441. package/lib-module/utils/props/linkProps.js +0 -43
  442. package/lib-module/utils/props/paddingProp.js +0 -9
  443. package/lib-module/utils/props/pressProps.js +0 -42
  444. package/lib-module/utils/props/rectProp.js +0 -9
  445. package/lib-module/utils/props/responsiveProps.js +0 -30
  446. package/lib-module/utils/props/selectSystemProps.js +0 -24
  447. package/lib-module/utils/props/spacingProps.js +0 -56
  448. package/lib-module/utils/props/textInputProps.js +0 -194
  449. package/lib-module/utils/props/textProps.js +0 -59
  450. package/lib-module/utils/props/tokens.js +0 -120
  451. package/lib-module/utils/props/variantProp.js +0 -18
  452. package/lib-module/utils/props/viewProps.js +0 -22
  453. package/lib-module/utils/ssr.js +0 -35
  454. package/lib-module/utils/useCopy.js +0 -42
  455. package/lib-module/utils/useHash.js +0 -44
  456. package/lib-module/utils/useHash.native.js +0 -7
  457. package/lib-module/utils/useResponsiveProp.js +0 -47
  458. package/lib-module/utils/useSpacingScale.js +0 -123
  459. package/lib-module/utils/useUniqueId.js +0 -12
  460. package/lib-module/utils/withLinkRouter.js +0 -82
  461. package/stories/A11yText/A11yText.stories.jsx +0 -71
  462. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +0 -22
  463. package/stories/Box/Box.stories.jsx +0 -143
  464. package/stories/Button/Button.stories.jsx +0 -72
  465. package/stories/Button/ButtonGroup.stories.jsx +0 -81
  466. package/stories/Button/ButtonLink.stories.jsx +0 -30
  467. package/stories/Card/Card.stories.jsx +0 -62
  468. package/stories/Checkbox/Checkbox.stories.jsx +0 -94
  469. package/stories/Divider/Divider.stories.jsx +0 -68
  470. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +0 -112
  471. package/stories/Feedback/Feedback.stories.jsx +0 -96
  472. package/stories/FlexGrid/01 FlexGrid.stories.jsx +0 -54
  473. package/stories/FlexGrid/02 Row.stories.jsx +0 -41
  474. package/stories/FlexGrid/03 Col.stories.jsx +0 -141
  475. package/stories/Icon/Icon.stories.jsx +0 -79
  476. package/stories/IconButton/IconButton.stories.jsx +0 -50
  477. package/stories/InputLabel/InputLabel.stories.jsx +0 -39
  478. package/stories/Link/ChevronLink.stories.jsx +0 -48
  479. package/stories/Link/Link.stories.jsx +0 -90
  480. package/stories/Link/TextButton.stories.jsx +0 -79
  481. package/stories/List/List.stories.jsx +0 -117
  482. package/stories/Modal/Modal.stories.jsx +0 -54
  483. package/stories/Notification/Notification.stories.jsx +0 -82
  484. package/stories/Pagination/Pagination.stories.jsx +0 -64
  485. package/stories/Progress/Progress.stories.jsx +0 -93
  486. package/stories/Radio/Radio.stories.jsx +0 -100
  487. package/stories/RadioCard/RadioCard.stories.jsx +0 -98
  488. package/stories/Search/Search.stories.jsx +0 -66
  489. package/stories/Select/Select.stories.jsx +0 -55
  490. package/stories/SideNav/SideNav.stories.jsx +0 -42
  491. package/stories/SideNav/SideNavItem.stories.jsx +0 -9
  492. package/stories/SideNav/SideNavItemsGroup.stories.jsx +0 -17
  493. package/stories/Skeleton/Skeleton.stories.jsx +0 -36
  494. package/stories/Spacer/Spacer.stories.jsx +0 -38
  495. package/stories/StackView/StackView.stories.jsx +0 -75
  496. package/stories/StackView/StackWrap.stories.jsx +0 -64
  497. package/stories/StepTracker/StepTracker.stories.jsx +0 -71
  498. package/stories/Tabs/Tabs.stories.jsx +0 -97
  499. package/stories/Tags/Tags.stories.jsx +0 -69
  500. package/stories/TextInput/TextArea.stories.jsx +0 -101
  501. package/stories/TextInput/TextInput.stories.jsx +0 -141
  502. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +0 -64
  503. package/stories/ToggleSwitch/ToggleSwitchGroup.stories.jsx +0 -81
  504. package/stories/Tooltip/Tooltip.stories.jsx +0 -81
  505. package/stories/TooltipButton/TooltipButton.stories.jsx +0 -11
  506. package/stories/Typography/Typography.stories.jsx +0 -49
  507. package/stories/platform-supports.jsx +0 -32
  508. package/stories/platform-supports.native.jsx +0 -3
  509. package/stories/supports.jsx +0 -236
@@ -24,9 +24,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
24
  const ScreenReaderContext = /*#__PURE__*/(0, _react.createContext)(false);
25
25
  const ReducedMotionContext = /*#__PURE__*/(0, _react.createContext)(false);
26
26
 
27
- const A11yInfoProvider = ({
28
- children
29
- }) => {
27
+ const A11yInfoProvider = _ref => {
28
+ let {
29
+ children
30
+ } = _ref;
30
31
  const [reduceMotionEnabled, setReduceMotionEnabled] = (0, _react.useState)(false);
31
32
  const [screenReaderEnabled, setScreenReaderEnabled] = (0, _react.useState)(false);
32
33
  (0, _react.useEffect)(() => {
@@ -33,11 +33,12 @@ const [selectProps, selectedSystemPropTypes] = (0, _props.selectSystemProps)([_p
33
33
  * as a sibling to blocks of text like paragraphs and interactive elements like buttons.
34
34
  */
35
35
 
36
- const A11yText = /*#__PURE__*/(0, _react.forwardRef)(({
37
- text,
38
- heading,
39
- ...rest
40
- }, ref) => {
36
+ const A11yText = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
37
+ let {
38
+ text,
39
+ heading,
40
+ ...rest
41
+ } = _ref;
41
42
  const selectedProps = selectProps({
42
43
  // On iOS, needs `accessible` to be true to be focusable without non-a11y content.
43
44
  // On Web, `accessible` causes RNW to set attributes that may make the element be treated as a group.
@@ -34,12 +34,13 @@ const bezierProps = {
34
34
  }; // We're using svg rather than css here to define the animation to avoid needing to introduce css injection mechanism
35
35
  // It's possible to replicate this functionality with RNW animations, but it snags on chrome at least, see https://github.com/telus/universal-design-system/pull/477 for details.
36
36
 
37
- const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
38
- size,
39
- color,
40
- thickness,
41
- label
42
- }, ref) => {
37
+ const Spinner = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
38
+ let {
39
+ size,
40
+ color,
41
+ thickness,
42
+ label
43
+ } = _ref;
43
44
  const {
44
45
  reduceMotionEnabled
45
46
  } = (0, _A11yInfoProvider.useA11yInfo)();
@@ -29,12 +29,14 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
29
29
 
30
30
  const ea = _shared.MIN_EMPTY_ANGLE / 2;
31
31
  const sa = _shared.MIN_STROKE_ANGLE / 2;
32
- const Spinner = /*#__PURE__*/(0, _react.forwardRef)(({
33
- size,
34
- color,
35
- thickness,
36
- label
37
- }, ref) => {
32
+ const Spinner = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
33
+ let {
34
+ size,
35
+ color,
36
+ thickness,
37
+ label
38
+ } = _ref;
39
+
38
40
  const {
39
41
  current: timer
40
42
  } = _react.default.useRef(new _Animated.default.Value(0));
@@ -23,11 +23,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
23
  * `ActivityIndicator` renders a visual loading state.
24
24
  * It does not handle positioning or layout of that visual loader.
25
25
  */
26
- const ActivityIndicator = ({
27
- variant,
28
- tokens,
29
- label
30
- }) => {
26
+ const ActivityIndicator = _ref => {
27
+ let {
28
+ variant,
29
+ tokens,
30
+ label
31
+ } = _ref;
31
32
  const {
32
33
  size,
33
34
  color,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.propTypes = exports.BEZIER = exports.MIN_STROKE_ANGLE = exports.MIN_EMPTY_ANGLE = exports.DURATION = void 0;
6
+ exports.propTypes = exports.MIN_STROKE_ANGLE = exports.MIN_EMPTY_ANGLE = exports.DURATION = exports.BEZIER = void 0;
7
7
 
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
 
@@ -21,17 +21,20 @@ var _ThemeProvider$propTy;
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
- const BaseProvider = ({
25
- defaultTheme,
26
- children
27
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_A11yInfoProvider.default, {
28
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ViewportProvider.default, {
29
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProvider.default, {
30
- defaultTheme: defaultTheme,
31
- children: children
24
+ const BaseProvider = _ref => {
25
+ let {
26
+ defaultTheme,
27
+ children
28
+ } = _ref;
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_A11yInfoProvider.default, {
30
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ViewportProvider.default, {
31
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProvider.default, {
32
+ defaultTheme: defaultTheme,
33
+ children: children
34
+ })
32
35
  })
33
- })
34
- });
36
+ });
37
+ };
35
38
 
36
39
  BaseProvider.propTypes = {
37
40
  defaultTheme: (_ThemeProvider$propTy = _ThemeProvider.default.propTypes) === null || _ThemeProvider$propTy === void 0 ? void 0 : _ThemeProvider$propTy.defaultTheme,
package/lib/Box/Box.js CHANGED
@@ -113,25 +113,26 @@ const selectBoxStyles = tokens => {
113
113
  */
114
114
 
115
115
 
116
- const Box = /*#__PURE__*/(0, _react.forwardRef)(({
117
- space,
118
- horizontal = space,
119
- vertical = space,
120
- top = vertical,
121
- bottom = vertical,
122
- left = horizontal,
123
- right = horizontal,
124
- flex,
125
- children,
126
- variant,
127
- tokens,
128
- scroll,
129
- tag,
130
- accessibilityRole,
131
- testID,
132
- dataSet,
133
- ...rest
134
- }, ref) => {
116
+ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
117
+ let {
118
+ space,
119
+ horizontal = space,
120
+ vertical = space,
121
+ top = vertical,
122
+ bottom = vertical,
123
+ left = horizontal,
124
+ right = horizontal,
125
+ flex,
126
+ children,
127
+ variant,
128
+ tokens,
129
+ scroll,
130
+ tag,
131
+ accessibilityRole,
132
+ testID,
133
+ dataSet,
134
+ ...rest
135
+ } = _ref;
135
136
  const props = { ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
136
137
  ...selectProps(rest)
137
138
  };
@@ -23,12 +23,13 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
23
23
 
24
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
25
 
26
- const Button = /*#__PURE__*/(0, _react.forwardRef)(({
27
- accessibilityRole = 'button',
28
- tokens,
29
- variant,
30
- ...props
31
- }, ref) => {
26
+ const Button = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
27
+ let {
28
+ accessibilityRole = 'button',
29
+ tokens,
30
+ variant,
31
+ ...props
32
+ } = _ref;
32
33
  const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Button', tokens, variant);
33
34
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, { ...props,
34
35
  tokens: getTokens,
@@ -33,36 +33,43 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
33
33
 
34
34
  const [selectProps, selectedSystemPropTypes] = (0, _utils2.selectSystemProps)([_utils2.a11yProps, _utils2.focusHandlerProps, _utils2.linkProps, _utils2.viewProps]);
35
35
 
36
- const getOuterBorderOffset = ({
37
- outerBorderGap = 0,
38
- outerBorderWidth = 0
39
- }) => outerBorderGap + outerBorderWidth;
40
-
41
- const selectOuterContainerStyles = ({
42
- alignSelf,
43
- opacity,
44
- outerBorderColor,
45
- outerBorderWidth,
46
- outerBorderGap,
47
- borderRadius,
48
- outerBackgroundColor
49
- }) => ({
50
- alignSelf,
51
- backgroundColor: outerBackgroundColor,
52
- opacity,
53
- ...(0, _utils.applyOuterBorder)({
54
- outerBorderGap,
55
- outerBorderWidth,
36
+ const getOuterBorderOffset = _ref => {
37
+ let {
38
+ outerBorderGap = 0,
39
+ outerBorderWidth = 0
40
+ } = _ref;
41
+ return outerBorderGap + outerBorderWidth;
42
+ };
43
+
44
+ const selectOuterContainerStyles = _ref2 => {
45
+ let {
46
+ alignSelf,
47
+ opacity,
56
48
  outerBorderColor,
57
- borderRadius
58
- })
59
- });
49
+ outerBorderWidth,
50
+ outerBorderGap,
51
+ borderRadius,
52
+ outerBackgroundColor
53
+ } = _ref2;
54
+ return {
55
+ alignSelf,
56
+ backgroundColor: outerBackgroundColor,
57
+ opacity,
58
+ ...(0, _utils.applyOuterBorder)({
59
+ outerBorderGap,
60
+ outerBorderWidth,
61
+ outerBorderColor,
62
+ borderRadius
63
+ })
64
+ };
65
+ };
60
66
 
61
- const selectOuterWidthStyles = ({
62
- outerBorderGap,
63
- outerBorderWidth,
64
- width
65
- }) => {
67
+ const selectOuterWidthStyles = _ref3 => {
68
+ let {
69
+ outerBorderGap,
70
+ outerBorderWidth,
71
+ width
72
+ } = _ref3;
66
73
  // The inner container's bounding box is the bounding box of the button overall
67
74
  // so this many device pixels will sit outside of the overall bounding box
68
75
  const outerBorderOffset = getOuterBorderOffset({
@@ -107,16 +114,18 @@ const selectOuterWidthStyles = ({
107
114
  return widthStyles;
108
115
  };
109
116
 
110
- const selectInnerContainerStyles = ({
111
- backgroundColor,
112
- paddingLeft,
113
- paddingRight,
114
- paddingTop,
115
- paddingBottom,
116
- shadow,
117
- borderWidth,
118
- minWidth
119
- }) => {
117
+ const selectInnerContainerStyles = _ref4 => {
118
+ let {
119
+ backgroundColor,
120
+ paddingLeft,
121
+ paddingRight,
122
+ paddingTop,
123
+ paddingBottom,
124
+ shadow,
125
+ borderWidth,
126
+ minWidth
127
+ } = _ref4;
128
+
120
129
  // Subtract border width from padding so overall button width/height doesn't
121
130
  // jump around if the border width changes (avoiding NaN and negative padding)
122
131
  const offsetBorder = value => typeof value === 'number' && typeof borderWidth === 'number' ? Math.max(0, value - borderWidth) : value;
@@ -132,35 +141,42 @@ const selectInnerContainerStyles = ({
132
141
  };
133
142
  };
134
143
 
135
- const selectBorderStyles = ({
136
- borderColor,
137
- borderWidth,
138
- borderRadius
139
- }) => ({
140
- borderColor,
141
- borderWidth,
142
- borderRadius
143
- });
144
+ const selectBorderStyles = _ref5 => {
145
+ let {
146
+ borderColor,
147
+ borderWidth,
148
+ borderRadius
149
+ } = _ref5;
150
+ return {
151
+ borderColor,
152
+ borderWidth,
153
+ borderRadius
154
+ };
155
+ };
144
156
 
145
- const selectTextStyles = ({
146
- fontSize,
147
- color,
148
- lineHeight,
149
- fontName,
150
- fontWeight,
151
- textAlign
152
- }) => (0, _utils.applyTextStyles)({
153
- fontSize,
154
- color,
155
- lineHeight,
156
- fontName,
157
- fontWeight,
158
- textAlign
159
- });
157
+ const selectTextStyles = _ref6 => {
158
+ let {
159
+ fontSize,
160
+ color,
161
+ lineHeight,
162
+ fontName,
163
+ fontWeight,
164
+ textAlign
165
+ } = _ref6;
166
+ return (0, _utils.applyTextStyles)({
167
+ fontSize,
168
+ color,
169
+ lineHeight,
170
+ fontName,
171
+ fontWeight,
172
+ textAlign
173
+ });
174
+ };
160
175
 
161
- const selectWebOnlyStyles = (inactive, themeTokens, {
162
- accessibilityRole
163
- }) => {
176
+ const selectWebOnlyStyles = (inactive, themeTokens, _ref7) => {
177
+ let {
178
+ accessibilityRole
179
+ } = _ref7;
164
180
  return _Platform.default.select({
165
181
  web: {
166
182
  // if it would overflow the container, wraps instead
@@ -173,18 +189,20 @@ const selectWebOnlyStyles = (inactive, themeTokens, {
173
189
  });
174
190
  };
175
191
 
176
- const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)(({
177
- id,
178
- href,
179
- hrefAttrs,
180
- children,
181
- tokens = {},
182
- disabled = false,
183
- // alias for inactive
184
- inactive = disabled,
185
- selected = false,
186
- ...rawRest
187
- }, ref) => {
192
+ const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)((_ref8, ref) => {
193
+ let {
194
+ id,
195
+ href,
196
+ hrefAttrs,
197
+ children,
198
+ tokens = {},
199
+ disabled = false,
200
+ // alias for inactive
201
+ inactive = disabled,
202
+ selected = false,
203
+ ...rawRest
204
+ } = _ref8;
205
+
188
206
  const {
189
207
  onPress,
190
208
  ...rest
@@ -17,6 +17,8 @@ var _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
17
17
 
18
18
  var _StackView = require("../StackView");
19
19
 
20
+ var _Fieldset = _interopRequireDefault(require("../Fieldset"));
21
+
20
22
  var _ViewportProvider = require("../ViewportProvider");
21
23
 
22
24
  var _ThemeProvider = require("../ThemeProvider");
@@ -35,23 +37,31 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
35
37
 
36
38
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
37
39
  const [selectItemProps, selectedItemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.focusHandlerProps, _utils.pressProps, _utils.viewProps]);
38
- const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
39
- variant,
40
- tokens,
41
- items = [],
42
- values,
43
- initialValues,
44
- maxValues = 1,
45
- onChange,
46
- readOnly = false,
47
- inactive = false,
48
- accessibilityRole = maxValues === 1 ? 'radiogroup' // radiogroup is cross-platform; only web aria has generic groups
49
- : _Platform.default.select({
50
- web: 'group',
51
- default: 'none'
52
- }),
53
- ...rest
54
- }, ref) => {
40
+ const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
41
+ let {
42
+ variant,
43
+ tokens,
44
+ items = [],
45
+ values,
46
+ initialValues,
47
+ maxValues = 1,
48
+ onChange,
49
+ readOnly = false,
50
+ inactive = false,
51
+ legend,
52
+ tooltip,
53
+ hint,
54
+ validation,
55
+ feedback,
56
+ name: inputGroupName,
57
+ copy,
58
+ accessibilityRole = maxValues === 1 ? 'radiogroup' // radiogroup is cross-platform; only web aria has generic groups
59
+ : _Platform.default.select({
60
+ web: 'group',
61
+ default: 'none'
62
+ }),
63
+ ...rest
64
+ } = _ref;
55
65
  const viewport = (0, _ViewportProvider.useViewport)();
56
66
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('ButtonGroup', tokens, variant, {
57
67
  viewport
@@ -59,7 +69,8 @@ const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
59
69
  const stackTokens = (0, _utils.selectTokens)('StackView', themeTokens);
60
70
  const {
61
71
  direction,
62
- space
72
+ space,
73
+ fieldSpace
63
74
  } = themeTokens;
64
75
  const getButtonTokens = (0, _ThemeProvider.useThemeTokensCallback)('ButtonGroupItem', tokens, variant);
65
76
  const {
@@ -81,54 +92,72 @@ const ButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(({
81
92
 
82
93
  if (!(0, _utils.containUniqueFields)(items, uniqueFields)) {
83
94
  throw new Error(`ButtonGroup items must have unique ${uniqueFields.join(', ')}`);
84
- }
95
+ } // Some web screenreaders e.g. MacOS Voiceover don't handle radiogroups properly unless radio is direct child of radiogroup
85
96
 
86
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, { ...systemProps,
87
- space: space,
88
- direction: direction,
89
- tokens: stackTokens,
97
+
98
+ const innerRole = _Platform.default.OS === 'web' && accessibilityRole === 'radiogroup' ? accessibilityRole : undefined;
99
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Fieldset.default, { ...systemProps,
90
100
  ref: ref,
91
- children: items.map(({
92
- label,
93
- id = label,
94
- accessibilityLabel,
95
- ref: itemRef,
96
- ...itemRest
97
- }, index) => {
98
- const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
99
-
100
- const pressHandlers = (0, _pressability.getPressHandlersWithArgs)(rest, [{
101
- id,
102
- label,
103
- currentValues
104
- }]);
105
-
106
- const handlePress = event => {
107
- if (pressHandlers.onPress) pressHandlers.onPress(event);
108
- toggleOneValue(id, event);
109
- };
110
-
111
- const itemA11y = {
112
- accessibilityState: {
113
- checked: isSelected
114
- },
115
- accessibilityRole: itemA11yRole,
116
- accessibilityLabel,
117
- ..._utils.a11yProps.getPositionInSet(items.length, index)
118
- }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
119
- // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
120
-
121
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
122
- ref: itemRef,
123
- ...pressHandlers,
124
- onPress: handlePress,
125
- tokens: getButtonTokens,
126
- selected: isSelected,
127
- inactive: inactive,
128
- ...itemA11y,
129
- ...selectItemProps(itemRest),
130
- children: label
131
- }, id);
101
+ name: inputGroupName,
102
+ legend: legend,
103
+ tooltip: tooltip,
104
+ hint: hint,
105
+ space: fieldSpace,
106
+ feedback: feedback,
107
+ readOnly: readOnly,
108
+ inactive: inactive,
109
+ validation: validation,
110
+ accessibilityRole: accessibilityRole,
111
+ ...selectProps(rest),
112
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, {
113
+ accessibilityRole: innerRole,
114
+ space: space,
115
+ direction: direction,
116
+ tokens: stackTokens,
117
+ ref: ref,
118
+ children: items.map((_ref2, index) => {
119
+ let {
120
+ label,
121
+ id = label,
122
+ accessibilityLabel,
123
+ ref: itemRef,
124
+ ...itemRest
125
+ } = _ref2;
126
+ const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
127
+
128
+ const pressHandlers = (0, _pressability.getPressHandlersWithArgs)(rest, [{
129
+ id,
130
+ label,
131
+ currentValues
132
+ }]);
133
+
134
+ const handlePress = event => {
135
+ if (pressHandlers.onPress) pressHandlers.onPress(event);
136
+ toggleOneValue(id, event);
137
+ };
138
+
139
+ const itemA11y = {
140
+ accessibilityState: {
141
+ checked: isSelected
142
+ },
143
+ accessibilityRole: itemA11yRole,
144
+ accessibilityLabel,
145
+ ..._utils.a11yProps.getPositionInSet(items.length, index)
146
+ }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
147
+ // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
148
+
149
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
150
+ ref: itemRef,
151
+ ...pressHandlers,
152
+ onPress: handlePress,
153
+ tokens: getButtonTokens,
154
+ selected: isSelected,
155
+ inactive: inactive,
156
+ ...itemA11y,
157
+ ...selectItemProps(itemRest),
158
+ children: label
159
+ }, id);
160
+ })
132
161
  })
133
162
  });
134
163
  });
@@ -192,7 +221,53 @@ ButtonGroup.propTypes = { ...selectedSystemPropTypes,
192
221
  * managing its own selected state, a default set of selections may be provided.
193
222
  * Changing the `initialValues` does not change the user's selections.
194
223
  */
195
- initialValues: _propTypes.default.arrayOf(_propTypes.default.string)
224
+ initialValues: _propTypes.default.arrayOf(_propTypes.default.string),
225
+
226
+ /**
227
+ * Main text used to describe this group, used in Fieldset's Legend element.
228
+ */
229
+ legend: _propTypes.default.string,
230
+
231
+ /**
232
+ * Optional additional text giving more detail to help a user make a choice.
233
+ */
234
+ hint: _propTypes.default.string,
235
+
236
+ /**
237
+ * Optional tooltip text content to include alongside the legend and hint.
238
+ */
239
+ tooltip: _propTypes.default.string,
240
+
241
+ /**
242
+ * Current validation status of the group, passed to the feedback element if there is one.
243
+ */
244
+ validation: _propTypes.default.oneOf(['error', 'success']),
245
+
246
+ /**
247
+ * If provided, a Feedback element is rendered containing this text.
248
+ */
249
+ feedback: _propTypes.default.string,
250
+
251
+ /**
252
+ * If true, the buttons cannot be selected by the user and simply show their current state.
253
+ */
254
+ readOnly: _propTypes.default.bool,
255
+
256
+ /**
257
+ * If true, the buttons cannot be interacted with, elements are set as `disabled` and if the
258
+ * theme supports `inactive` appearances rules, these are applied.
259
+ */
260
+ inactive: _propTypes.default.bool,
261
+
262
+ /**
263
+ * On Web, this is passed to the `name` attribute of the fieldset.
264
+ */
265
+ name: _propTypes.default.string,
266
+
267
+ /**
268
+ * Sets the language of microcopy in subcomponents (e.g. Tooltip's default accessibility label).
269
+ */
270
+ copy: _propTypes.default.oneOf(['en', 'fr'])
196
271
  };
197
272
  var _default = ButtonGroup;
198
273
  exports.default = _default;