@telus-uds/components-base 1.66.0 → 1.67.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 (486) hide show
  1. package/CHANGELOG.md +23 -3
  2. package/lib/A11yInfoProvider/index.js +5 -20
  3. package/lib/A11yText/index.js +3 -17
  4. package/lib/ActivityIndicator/Spinner.js +2 -9
  5. package/lib/ActivityIndicator/Spinner.native.js +4 -27
  6. package/lib/ActivityIndicator/index.js +1 -13
  7. package/lib/ActivityIndicator/shared.js +0 -3
  8. package/lib/Autocomplete/Autocomplete.js +34 -85
  9. package/lib/Autocomplete/Loading.js +0 -10
  10. package/lib/Autocomplete/Suggestions.js +0 -11
  11. package/lib/Autocomplete/index.js +0 -3
  12. package/lib/BaseProvider/HydrationContext.js +4 -18
  13. package/lib/BaseProvider/index.js +0 -12
  14. package/lib/Box/Box.js +10 -35
  15. package/lib/Box/index.js +0 -3
  16. package/lib/Button/Button.js +4 -13
  17. package/lib/Button/ButtonBase.js +23 -55
  18. package/lib/Button/ButtonDropdown.js +7 -32
  19. package/lib/Button/ButtonGroup.js +15 -48
  20. package/lib/Button/ButtonLink.js +3 -17
  21. package/lib/Button/index.js +0 -5
  22. package/lib/Button/propTypes.js +0 -15
  23. package/lib/Card/Card.js +3 -14
  24. package/lib/Card/CardBase.js +5 -16
  25. package/lib/Card/PressableCardBase.js +7 -30
  26. package/lib/Card/index.js +0 -7
  27. package/lib/Carousel/Carousel.js +22 -115
  28. package/lib/Carousel/CarouselContext.js +0 -14
  29. package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
  30. package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
  31. package/lib/Carousel/CarouselItem/index.js +0 -3
  32. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
  33. package/lib/Carousel/CarouselStepTracker/index.js +0 -3
  34. package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
  35. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
  36. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
  37. package/lib/Carousel/CarouselTabs/index.js +0 -3
  38. package/lib/Carousel/CarouselThumbnail.js +1 -16
  39. package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
  40. package/lib/Carousel/index.js +0 -5
  41. package/lib/Checkbox/Checkbox.js +5 -44
  42. package/lib/Checkbox/CheckboxButton.js +7 -33
  43. package/lib/Checkbox/CheckboxGroup.js +14 -45
  44. package/lib/Checkbox/CheckboxInput.js +1 -11
  45. package/lib/Checkbox/CheckboxInput.native.js +0 -2
  46. package/lib/Checkbox/index.js +0 -4
  47. package/lib/CheckboxCard/CheckboxCard.js +4 -37
  48. package/lib/CheckboxCard/index.js +0 -3
  49. package/lib/CheckboxCardGroup/CheckboxCardGroup.js +216 -0
  50. package/lib/CheckboxCardGroup/index.js +10 -0
  51. package/lib/Divider/Divider.js +13 -24
  52. package/lib/Divider/index.js +0 -3
  53. package/lib/ExpandCollapse/Accordion.js +1 -9
  54. package/lib/ExpandCollapse/Control.js +10 -32
  55. package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
  56. package/lib/ExpandCollapse/Panel.js +13 -38
  57. package/lib/ExpandCollapse/index.js +0 -5
  58. package/lib/Feedback/Feedback.js +13 -30
  59. package/lib/Feedback/index.js +0 -3
  60. package/lib/Fieldset/Fieldset.js +6 -37
  61. package/lib/Fieldset/FieldsetContainer.js +1 -10
  62. package/lib/Fieldset/FieldsetContainer.native.js +0 -8
  63. package/lib/Fieldset/Legend.js +1 -10
  64. package/lib/Fieldset/Legend.native.js +1 -13
  65. package/lib/Fieldset/index.js +0 -3
  66. package/lib/FlexGrid/Col/Col.js +10 -53
  67. package/lib/FlexGrid/Col/index.js +0 -3
  68. package/lib/FlexGrid/FlexGrid.js +3 -34
  69. package/lib/FlexGrid/Row/Row.js +0 -38
  70. package/lib/FlexGrid/Row/index.js +0 -3
  71. package/lib/FlexGrid/helpers/index.js +0 -4
  72. package/lib/FlexGrid/index.js +0 -3
  73. package/lib/FlexGrid/providers/GutterContext.js +0 -4
  74. package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
  75. package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
  76. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
  77. package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
  78. package/lib/HorizontalScroll/index.js +0 -7
  79. package/lib/HorizontalScroll/itemPositions.js +8 -19
  80. package/lib/Icon/Icon.js +4 -17
  81. package/lib/Icon/IconText.js +5 -25
  82. package/lib/Icon/index.js +0 -6
  83. package/lib/IconButton/IconButton.js +5 -37
  84. package/lib/IconButton/index.js +0 -3
  85. package/lib/InputLabel/InputLabel.js +4 -28
  86. package/lib/InputLabel/LabelContent.js +2 -8
  87. package/lib/InputLabel/LabelContent.native.js +0 -8
  88. package/lib/InputLabel/index.js +0 -3
  89. package/lib/InputSupports/InputSupports.js +0 -21
  90. package/lib/InputSupports/index.js +0 -3
  91. package/lib/InputSupports/useInputSupports.js +2 -6
  92. package/lib/Link/ChevronLink.js +7 -18
  93. package/lib/Link/InlinePressable.js +0 -10
  94. package/lib/Link/InlinePressable.native.js +5 -18
  95. package/lib/Link/Link.js +0 -8
  96. package/lib/Link/LinkBase.js +17 -47
  97. package/lib/Link/TextButton.js +3 -16
  98. package/lib/Link/index.js +0 -5
  99. package/lib/List/List.js +5 -21
  100. package/lib/List/ListItem.js +1 -11
  101. package/lib/List/ListItemBase.js +5 -34
  102. package/lib/List/ListItemContent.js +1 -14
  103. package/lib/List/ListItemMark.js +3 -23
  104. package/lib/List/PressableListItemBase.js +2 -28
  105. package/lib/List/index.js +0 -4
  106. package/lib/Listbox/GroupControl.js +0 -14
  107. package/lib/Listbox/Listbox.js +15 -40
  108. package/lib/Listbox/ListboxContext.js +0 -7
  109. package/lib/Listbox/ListboxGroup.js +7 -19
  110. package/lib/Listbox/ListboxItem.js +3 -17
  111. package/lib/Listbox/ListboxOverlay.js +4 -20
  112. package/lib/Listbox/PressableItem.js +3 -18
  113. package/lib/Listbox/index.js +0 -3
  114. package/lib/Modal/Modal.js +94 -45
  115. package/lib/Modal/ModalContent.js +184 -0
  116. package/lib/Modal/index.js +0 -3
  117. package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
  118. package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
  119. package/lib/MultiSelectFilter/index.js +0 -3
  120. package/lib/Notification/Notification.js +11 -38
  121. package/lib/Notification/index.js +0 -3
  122. package/lib/Pagination/PageButton.js +2 -22
  123. package/lib/Pagination/Pagination.js +21 -42
  124. package/lib/Pagination/SideButton.js +0 -24
  125. package/lib/Pagination/index.js +0 -3
  126. package/lib/Pagination/usePagination.js +4 -9
  127. package/lib/Progress/Progress.js +3 -17
  128. package/lib/Progress/ProgressBar.js +3 -25
  129. package/lib/Progress/ProgressBarBackground.js +0 -12
  130. package/lib/Progress/index.js +0 -4
  131. package/lib/QuickLinks/QuickLinks.js +1 -18
  132. package/lib/QuickLinks/QuickLinksCard.js +1 -11
  133. package/lib/QuickLinks/QuickLinksItem.js +3 -17
  134. package/lib/QuickLinks/index.js +0 -4
  135. package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
  136. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
  137. package/lib/QuickLinksFeature/index.js +0 -4
  138. package/lib/Radio/Radio.js +5 -39
  139. package/lib/Radio/RadioButton.js +7 -26
  140. package/lib/Radio/RadioGroup.js +6 -39
  141. package/lib/Radio/RadioInput.js +1 -11
  142. package/lib/Radio/RadioInput.native.js +0 -2
  143. package/lib/Radio/index.js +0 -4
  144. package/lib/RadioCard/RadioCard.js +5 -38
  145. package/lib/RadioCard/RadioCardGroup.js +25 -40
  146. package/lib/RadioCard/index.js +0 -4
  147. package/lib/Responsive/Responsive.js +1 -14
  148. package/lib/Responsive/index.js +0 -3
  149. package/lib/Search/Search.js +22 -45
  150. package/lib/Search/index.js +0 -3
  151. package/lib/Select/Group.js +0 -8
  152. package/lib/Select/Group.native.js +0 -6
  153. package/lib/Select/Item.js +0 -7
  154. package/lib/Select/Item.native.js +0 -2
  155. package/lib/Select/Picker.js +0 -8
  156. package/lib/Select/Picker.native.js +6 -22
  157. package/lib/Select/Select.js +9 -52
  158. package/lib/Select/index.js +0 -5
  159. package/lib/SideNav/Item.js +5 -29
  160. package/lib/SideNav/ItemContent.js +1 -14
  161. package/lib/SideNav/ItemsGroup.js +9 -31
  162. package/lib/SideNav/SideNav.js +9 -33
  163. package/lib/SideNav/index.js +0 -2
  164. package/lib/Skeleton/Skeleton.js +10 -42
  165. package/lib/Skeleton/index.js +0 -3
  166. package/lib/Skeleton/skeletonWebAnimation.js +0 -2
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
  168. package/lib/SkipLink/SkipLink.js +7 -27
  169. package/lib/SkipLink/index.js +0 -3
  170. package/lib/Spacer/Spacer.js +4 -20
  171. package/lib/Spacer/index.js +0 -3
  172. package/lib/StackView/StackView.js +3 -21
  173. package/lib/StackView/StackWrap.js +11 -21
  174. package/lib/StackView/StackWrap.native.js +0 -3
  175. package/lib/StackView/StackWrapBox.js +5 -21
  176. package/lib/StackView/StackWrapGap.js +1 -14
  177. package/lib/StackView/common.js +0 -6
  178. package/lib/StackView/getStackedContent.js +10 -21
  179. package/lib/StackView/index.js +0 -5
  180. package/lib/StepTracker/Step.js +3 -27
  181. package/lib/StepTracker/StepTracker.js +5 -32
  182. package/lib/StepTracker/index.js +0 -3
  183. package/lib/Tabs/Tabs.js +7 -30
  184. package/lib/Tabs/TabsItem.js +13 -38
  185. package/lib/Tabs/index.js +0 -3
  186. package/lib/Tags/Tags.js +9 -42
  187. package/lib/Tags/index.js +0 -3
  188. package/lib/TextInput/TextArea.js +11 -20
  189. package/lib/TextInput/TextInput.js +7 -16
  190. package/lib/TextInput/TextInputBase.js +12 -58
  191. package/lib/TextInput/index.js +0 -3
  192. package/lib/TextInput/propTypes.js +0 -8
  193. package/lib/ThemeProvider/ThemeProvider.js +10 -18
  194. package/lib/ThemeProvider/index.js +0 -9
  195. package/lib/ThemeProvider/useSetTheme.js +6 -9
  196. package/lib/ThemeProvider/useTheme.js +2 -7
  197. package/lib/ThemeProvider/useThemeTokens.js +1 -9
  198. package/lib/ThemeProvider/utils/index.js +0 -4
  199. package/lib/ThemeProvider/utils/styles.js +14 -35
  200. package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
  201. package/lib/Timeline/Timeline.js +11 -27
  202. package/lib/Timeline/index.js +0 -3
  203. package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
  204. package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
  205. package/lib/ToggleSwitch/index.js +0 -3
  206. package/lib/Tooltip/Backdrop.js +4 -11
  207. package/lib/Tooltip/Backdrop.native.js +1 -14
  208. package/lib/Tooltip/Tooltip.js +9 -37
  209. package/lib/Tooltip/Tooltip.native.js +14 -45
  210. package/lib/Tooltip/getTooltipPosition.js +26 -31
  211. package/lib/Tooltip/index.js +0 -5
  212. package/lib/Tooltip/shared.js +0 -10
  213. package/lib/TooltipButton/TooltipButton.js +5 -20
  214. package/lib/TooltipButton/index.js +0 -3
  215. package/lib/Typography/Typography.js +15 -38
  216. package/lib/Typography/index.js +0 -3
  217. package/lib/Validator/Validator.js +10 -58
  218. package/lib/Validator/index.js +0 -3
  219. package/lib/ViewportProvider/ViewportProvider.js +1 -13
  220. package/lib/ViewportProvider/index.js +0 -5
  221. package/lib/ViewportProvider/useViewport.js +0 -4
  222. package/lib/ViewportProvider/useViewportListener.js +3 -12
  223. package/lib/index.js +8 -71
  224. package/lib/utils/BaseView/BaseView.js +3 -17
  225. package/lib/utils/BaseView/BaseView.native.js +0 -3
  226. package/lib/utils/BaseView/index.js +0 -3
  227. package/lib/utils/a11y/index.js +0 -4
  228. package/lib/utils/a11y/semantics.js +14 -32
  229. package/lib/utils/a11y/textSize.js +1 -8
  230. package/lib/utils/animation/index.js +0 -2
  231. package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
  232. package/lib/utils/children.js +16 -28
  233. package/lib/utils/containUniqueFields.js +2 -5
  234. package/lib/utils/floating-ui/index.js +0 -1
  235. package/lib/utils/floating-ui/index.native.js +0 -1
  236. package/lib/utils/hasOwnProperty.js +0 -1
  237. package/lib/utils/htmlAttrs.js +2 -4
  238. package/lib/utils/index.js +0 -31
  239. package/lib/utils/info/index.js +0 -4
  240. package/lib/utils/info/platform/index.js +0 -4
  241. package/lib/utils/info/versions.js +0 -3
  242. package/lib/utils/input.js +12 -24
  243. package/lib/utils/pressability.js +7 -21
  244. package/lib/utils/props/a11yProps.js +19 -25
  245. package/lib/utils/props/clickProps.js +0 -4
  246. package/lib/utils/props/componentPropType.js +0 -14
  247. package/lib/utils/props/copyPropTypes.js +0 -4
  248. package/lib/utils/props/getPropSelector.js +11 -12
  249. package/lib/utils/props/handlerProps.js +2 -23
  250. package/lib/utils/props/hrefAttrsProp.js +0 -4
  251. package/lib/utils/props/index.js +0 -22
  252. package/lib/utils/props/inputSupportsProps.js +0 -9
  253. package/lib/utils/props/linkProps.js +2 -12
  254. package/lib/utils/props/paddingProp.js +0 -3
  255. package/lib/utils/props/pressProps.js +2 -8
  256. package/lib/utils/props/rectProp.js +0 -3
  257. package/lib/utils/props/responsiveProps.js +1 -5
  258. package/lib/utils/props/selectSystemProps.js +4 -6
  259. package/lib/utils/props/spacingProps.js +3 -10
  260. package/lib/utils/props/textInputProps.js +10 -31
  261. package/lib/utils/props/textProps.js +6 -11
  262. package/lib/utils/props/tokens.js +7 -26
  263. package/lib/utils/props/variantProp.js +0 -3
  264. package/lib/utils/props/viewProps.js +0 -5
  265. package/lib/utils/ssr.js +13 -33
  266. package/lib/utils/useCopy.js +3 -6
  267. package/lib/utils/useHash.js +5 -10
  268. package/lib/utils/useHash.native.js +0 -2
  269. package/lib/utils/useOverlaidPosition.js +6 -29
  270. package/lib/utils/useResponsiveProp.js +6 -13
  271. package/lib/utils/useSafeLayoutEffect.js +5 -10
  272. package/lib/utils/useScrollBlocking.js +3 -11
  273. package/lib/utils/useScrollBlocking.native.js +0 -2
  274. package/lib/utils/useSpacingScale.js +5 -8
  275. package/lib/utils/useUniqueId.js +0 -4
  276. package/lib/utils/withLinkRouter.js +13 -18
  277. package/lib-module/A11yInfoProvider/index.js +5 -9
  278. package/lib-module/A11yText/index.js +3 -4
  279. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  280. package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
  281. package/lib-module/ActivityIndicator/index.js +1 -5
  282. package/lib-module/ActivityIndicator/shared.js +2 -1
  283. package/lib-module/Autocomplete/Autocomplete.js +34 -59
  284. package/lib-module/Autocomplete/Loading.js +0 -2
  285. package/lib-module/BaseProvider/HydrationContext.js +4 -7
  286. package/lib-module/BaseProvider/index.js +0 -3
  287. package/lib-module/Box/Box.js +10 -24
  288. package/lib-module/Button/Button.js +4 -2
  289. package/lib-module/Button/ButtonBase.js +23 -35
  290. package/lib-module/Button/ButtonDropdown.js +7 -16
  291. package/lib-module/Button/ButtonGroup.js +15 -32
  292. package/lib-module/Button/ButtonLink.js +3 -2
  293. package/lib-module/Button/propTypes.js +0 -7
  294. package/lib-module/Card/Card.js +3 -2
  295. package/lib-module/Card/CardBase.js +5 -4
  296. package/lib-module/Card/PressableCardBase.js +7 -11
  297. package/lib-module/Carousel/Carousel.js +22 -60
  298. package/lib-module/Carousel/CarouselContext.js +0 -5
  299. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
  300. package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
  301. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
  302. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
  303. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
  304. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
  305. package/lib-module/Carousel/CarouselThumbnail.js +1 -7
  306. package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
  307. package/lib-module/Checkbox/Checkbox.js +5 -23
  308. package/lib-module/Checkbox/CheckboxButton.js +7 -17
  309. package/lib-module/Checkbox/CheckboxGroup.js +14 -31
  310. package/lib-module/Checkbox/CheckboxInput.js +1 -3
  311. package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
  312. package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
  313. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +206 -0
  314. package/lib-module/CheckboxCardGroup/index.js +2 -0
  315. package/lib-module/Divider/Divider.js +13 -11
  316. package/lib-module/ExpandCollapse/Accordion.js +1 -1
  317. package/lib-module/ExpandCollapse/Control.js +10 -17
  318. package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
  319. package/lib-module/ExpandCollapse/Panel.js +13 -23
  320. package/lib-module/Feedback/Feedback.js +13 -16
  321. package/lib-module/Fieldset/Fieldset.js +6 -25
  322. package/lib-module/Fieldset/FieldsetContainer.js +1 -1
  323. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
  324. package/lib-module/Fieldset/Legend.js +1 -1
  325. package/lib-module/Fieldset/Legend.native.js +1 -1
  326. package/lib-module/FlexGrid/Col/Col.js +10 -37
  327. package/lib-module/FlexGrid/FlexGrid.js +3 -17
  328. package/lib-module/FlexGrid/Row/Row.js +0 -25
  329. package/lib-module/FlexGrid/helpers/index.js +0 -3
  330. package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
  331. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
  332. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
  333. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
  334. package/lib-module/HorizontalScroll/itemPositions.js +11 -10
  335. package/lib-module/Icon/Icon.js +4 -8
  336. package/lib-module/Icon/IconText.js +6 -17
  337. package/lib-module/IconButton/IconButton.js +7 -20
  338. package/lib-module/InputLabel/InputLabel.js +4 -13
  339. package/lib-module/InputLabel/LabelContent.js +2 -1
  340. package/lib-module/InputLabel/LabelContent.native.js +0 -1
  341. package/lib-module/InputSupports/InputSupports.js +0 -9
  342. package/lib-module/InputSupports/useInputSupports.js +2 -4
  343. package/lib-module/Link/ChevronLink.js +7 -7
  344. package/lib-module/Link/InlinePressable.js +0 -2
  345. package/lib-module/Link/InlinePressable.native.js +4 -12
  346. package/lib-module/Link/LinkBase.js +17 -25
  347. package/lib-module/Link/TextButton.js +3 -5
  348. package/lib-module/List/List.js +5 -9
  349. package/lib-module/List/ListItem.js +1 -1
  350. package/lib-module/List/ListItemBase.js +5 -17
  351. package/lib-module/List/ListItemContent.js +1 -4
  352. package/lib-module/List/ListItemMark.js +3 -16
  353. package/lib-module/List/PressableListItemBase.js +2 -6
  354. package/lib-module/Listbox/GroupControl.js +0 -2
  355. package/lib-module/Listbox/Listbox.js +15 -23
  356. package/lib-module/Listbox/ListboxContext.js +0 -2
  357. package/lib-module/Listbox/ListboxGroup.js +6 -4
  358. package/lib-module/Listbox/ListboxItem.js +2 -1
  359. package/lib-module/Listbox/ListboxOverlay.js +3 -4
  360. package/lib-module/Listbox/PressableItem.js +2 -7
  361. package/lib-module/Modal/Modal.js +94 -25
  362. package/lib-module/Modal/ModalContent.js +175 -0
  363. package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
  364. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
  365. package/lib-module/Notification/Notification.js +11 -22
  366. package/lib-module/Pagination/PageButton.js +2 -6
  367. package/lib-module/Pagination/Pagination.js +21 -21
  368. package/lib-module/Pagination/SideButton.js +3 -8
  369. package/lib-module/Pagination/usePagination.js +4 -8
  370. package/lib-module/Progress/Progress.js +3 -7
  371. package/lib-module/Progress/ProgressBar.js +3 -11
  372. package/lib-module/Progress/ProgressBarBackground.js +0 -2
  373. package/lib-module/QuickLinks/QuickLinks.js +1 -6
  374. package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
  375. package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
  376. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
  377. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
  378. package/lib-module/Radio/Radio.js +5 -22
  379. package/lib-module/Radio/RadioButton.js +8 -10
  380. package/lib-module/Radio/RadioGroup.js +6 -25
  381. package/lib-module/Radio/RadioInput.js +1 -3
  382. package/lib-module/Radio/RadioInput.native.js +0 -1
  383. package/lib-module/RadioCard/RadioCard.js +5 -21
  384. package/lib-module/RadioCard/RadioCardGroup.js +25 -27
  385. package/lib-module/Responsive/Responsive.js +1 -6
  386. package/lib-module/Search/Search.js +22 -31
  387. package/lib-module/Select/Group.js +0 -3
  388. package/lib-module/Select/Group.native.js +0 -3
  389. package/lib-module/Select/Item.js +0 -3
  390. package/lib-module/Select/Item.native.js +0 -1
  391. package/lib-module/Select/Picker.native.js +8 -10
  392. package/lib-module/Select/Select.js +10 -35
  393. package/lib-module/SideNav/Item.js +5 -16
  394. package/lib-module/SideNav/ItemContent.js +1 -2
  395. package/lib-module/SideNav/ItemsGroup.js +9 -19
  396. package/lib-module/SideNav/SideNav.js +9 -22
  397. package/lib-module/Skeleton/Skeleton.js +10 -25
  398. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
  399. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
  400. package/lib-module/SkipLink/SkipLink.js +7 -9
  401. package/lib-module/Spacer/Spacer.js +4 -7
  402. package/lib-module/StackView/StackView.js +3 -7
  403. package/lib-module/StackView/StackWrap.js +13 -13
  404. package/lib-module/StackView/StackWrap.native.js +2 -1
  405. package/lib-module/StackView/StackWrapBox.js +5 -8
  406. package/lib-module/StackView/StackWrapGap.js +1 -1
  407. package/lib-module/StackView/getStackedContent.js +10 -10
  408. package/lib-module/StepTracker/Step.js +3 -14
  409. package/lib-module/StepTracker/StepTracker.js +5 -13
  410. package/lib-module/Tabs/Tabs.js +7 -16
  411. package/lib-module/Tabs/TabsItem.js +13 -16
  412. package/lib-module/Tags/Tags.js +9 -26
  413. package/lib-module/TextInput/TextArea.js +11 -8
  414. package/lib-module/TextInput/TextInput.js +7 -5
  415. package/lib-module/TextInput/TextInputBase.js +13 -39
  416. package/lib-module/TextInput/propTypes.js +3 -7
  417. package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
  418. package/lib-module/ThemeProvider/useSetTheme.js +6 -7
  419. package/lib-module/ThemeProvider/useTheme.js +2 -5
  420. package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
  421. package/lib-module/ThemeProvider/utils/styles.js +15 -27
  422. package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
  423. package/lib-module/Timeline/Timeline.js +11 -17
  424. package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
  425. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
  426. package/lib-module/Tooltip/Backdrop.js +4 -7
  427. package/lib-module/Tooltip/Backdrop.native.js +1 -4
  428. package/lib-module/Tooltip/Tooltip.js +9 -18
  429. package/lib-module/Tooltip/Tooltip.native.js +14 -23
  430. package/lib-module/Tooltip/getTooltipPosition.js +26 -30
  431. package/lib-module/Tooltip/shared.js +0 -6
  432. package/lib-module/TooltipButton/TooltipButton.js +5 -8
  433. package/lib-module/Typography/Typography.js +14 -22
  434. package/lib-module/Validator/Validator.js +10 -42
  435. package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
  436. package/lib-module/ViewportProvider/useViewportListener.js +6 -8
  437. package/lib-module/index.js +1 -0
  438. package/lib-module/utils/BaseView/BaseView.js +3 -4
  439. package/lib-module/utils/BaseView/BaseView.native.js +0 -1
  440. package/lib-module/utils/a11y/semantics.js +14 -27
  441. package/lib-module/utils/a11y/textSize.js +1 -2
  442. package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
  443. package/lib-module/utils/children.js +17 -19
  444. package/lib-module/utils/containUniqueFields.js +2 -4
  445. package/lib-module/utils/htmlAttrs.js +2 -1
  446. package/lib-module/utils/info/index.js +2 -1
  447. package/lib-module/utils/info/platform/index.js +4 -1
  448. package/lib-module/utils/info/versions.js +2 -1
  449. package/lib-module/utils/input.js +11 -19
  450. package/lib-module/utils/pressability.js +8 -7
  451. package/lib-module/utils/props/a11yProps.js +22 -20
  452. package/lib-module/utils/props/clickProps.js +0 -1
  453. package/lib-module/utils/props/componentPropType.js +0 -13
  454. package/lib-module/utils/props/getPropSelector.js +12 -8
  455. package/lib-module/utils/props/handlerProps.js +2 -19
  456. package/lib-module/utils/props/hrefAttrsProp.js +2 -2
  457. package/lib-module/utils/props/inputSupportsProps.js +0 -6
  458. package/lib-module/utils/props/linkProps.js +2 -3
  459. package/lib-module/utils/props/pressProps.js +2 -2
  460. package/lib-module/utils/props/responsiveProps.js +1 -3
  461. package/lib-module/utils/props/selectSystemProps.js +4 -5
  462. package/lib-module/utils/props/spacingProps.js +4 -3
  463. package/lib-module/utils/props/textInputProps.js +13 -27
  464. package/lib-module/utils/props/textProps.js +9 -7
  465. package/lib-module/utils/props/tokens.js +10 -13
  466. package/lib-module/utils/props/variantProp.js +1 -1
  467. package/lib-module/utils/props/viewProps.js +0 -1
  468. package/lib-module/utils/ssr.js +14 -18
  469. package/lib-module/utils/useCopy.js +3 -5
  470. package/lib-module/utils/useHash.js +5 -9
  471. package/lib-module/utils/useHash.native.js +0 -1
  472. package/lib-module/utils/useOverlaidPosition.js +6 -25
  473. package/lib-module/utils/useResponsiveProp.js +6 -7
  474. package/lib-module/utils/useSafeLayoutEffect.js +5 -7
  475. package/lib-module/utils/useScrollBlocking.js +3 -10
  476. package/lib-module/utils/useSpacingScale.js +4 -4
  477. package/lib-module/utils/useUniqueId.js +0 -2
  478. package/lib-module/utils/withLinkRouter.js +13 -10
  479. package/package.json +2 -2
  480. package/src/Checkbox/CheckboxGroup.jsx +10 -8
  481. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +231 -0
  482. package/src/CheckboxCardGroup/index.js +3 -0
  483. package/src/Modal/Modal.jsx +98 -5
  484. package/src/Modal/ModalContent.jsx +171 -0
  485. package/src/RadioCard/RadioCardGroup.jsx +23 -2
  486. package/src/index.js +1 -0
@@ -10,7 +10,6 @@ import { a11yProps, clickProps, focusHandlerProps, getCursorStyle, linkProps, re
10
10
  import { IconText } from '../Icon';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, linkProps, viewProps]);
13
-
14
13
  const getOuterBorderOffset = _ref => {
15
14
  let {
16
15
  outerBorderGap = 0,
@@ -18,7 +17,6 @@ const getOuterBorderOffset = _ref => {
18
17
  } = _ref;
19
18
  return outerBorderGap + outerBorderWidth;
20
19
  };
21
-
22
20
  const selectOuterContainerStyles = _ref2 => {
23
21
  let {
24
22
  opacity,
@@ -28,7 +26,8 @@ const selectOuterContainerStyles = _ref2 => {
28
26
  borderRadius,
29
27
  outerBackgroundColor
30
28
  } = _ref2;
31
- return { ...Platform.select({
29
+ return {
30
+ ...Platform.select({
32
31
  native: {
33
32
  alignSelf: 'flex-start'
34
33
  }
@@ -43,7 +42,6 @@ const selectOuterContainerStyles = _ref2 => {
43
42
  })
44
43
  };
45
44
  };
46
-
47
45
  const selectOuterSizeStyles = _ref3 => {
48
46
  let {
49
47
  outerBorderGap,
@@ -57,16 +55,16 @@ const selectOuterSizeStyles = _ref3 => {
57
55
  outerBorderGap,
58
56
  outerBorderWidth
59
57
  });
60
- const sizeStyles = {}; // Apply width/height tokens: number === pixels, string === explicit units e.g. %
61
-
58
+ const sizeStyles = {};
59
+ // Apply width/height tokens: number === pixels, string === explicit units e.g. %
62
60
  if (typeof width === 'number' && width > 0 || typeof height === 'number' && height > 0) {
63
61
  sizeStyles.width = width ? width + outerBorderOffset * 2 : width;
64
62
  sizeStyles.height = height ? height + outerBorderOffset * 2 : height;
65
63
  return sizeStyles;
66
64
  }
67
-
68
65
  if (!width) {
69
- return { ...sizeStyles,
66
+ return {
67
+ ...sizeStyles,
70
68
  // Wrap content, stopping a flex parent's default align-items: stretch stretching focus ring beyond content
71
69
  ...Platform.select({
72
70
  // width: fit-content isn't supported on Firefox; can't cascade props like CSS `width: fit-content; width: --moz-fit-content;`
@@ -75,28 +73,26 @@ const selectOuterSizeStyles = _ref3 => {
75
73
  }
76
74
  })
77
75
  };
78
- } // Ensure the negative margin doesn't make element off-centre
79
-
76
+ }
80
77
 
78
+ // Ensure the negative margin doesn't make element off-centre
81
79
  if (Platform.OS === 'web') {
82
80
  sizeStyles.width = `calc(${width} + ${outerBorderOffset * 2}px)`;
83
81
  sizeStyles.height = `calc(${height} + ${outerBorderOffset * 2}px)`;
84
82
  return sizeStyles;
85
- } // Can't use calc() on native but (unlike on web) flexGrow fills the container width here
86
-
87
-
83
+ }
84
+ // Can't use calc() on native but (unlike on web) flexGrow fills the container width here
88
85
  if (width === '100%') {
89
86
  sizeStyles.flexGrow = 1;
90
87
  return sizeStyles;
91
- } // Slight offset not such a concern if % width < 100%, as the button isn't centered anyway.
92
- // If centering support is added (e.g. alignSelf: center), set marginHorizontal 0 when centered.
93
-
88
+ }
94
89
 
90
+ // Slight offset not such a concern if % width < 100%, as the button isn't centered anyway.
91
+ // If centering support is added (e.g. alignSelf: center), set marginHorizontal 0 when centered.
95
92
  sizeStyles.width = width;
96
93
  sizeStyles.height = height;
97
94
  return sizeStyles;
98
95
  };
99
-
100
96
  const selectInnerContainerStyles = _ref4 => {
101
97
  let {
102
98
  backgroundColor,
@@ -112,7 +108,6 @@ const selectInnerContainerStyles = _ref4 => {
112
108
  borderBottomWidth,
113
109
  minWidth
114
110
  } = _ref4;
115
-
116
111
  // Subtract border width from padding so overall button width/height doesn't
117
112
  // jump around if the border width changes (avoiding NaN and negative padding)
118
113
  const offsetBorder = _ref5 => {
@@ -122,7 +117,6 @@ const selectInnerContainerStyles = _ref4 => {
122
117
  } = _ref5;
123
118
  return typeof value === 'number' && typeof borderSize === 'number' ? Math.max(0, value - borderSize) : value;
124
119
  };
125
-
126
120
  return {
127
121
  paddingLeft: offsetBorder({
128
122
  value: paddingLeft,
@@ -145,7 +139,6 @@ const selectInnerContainerStyles = _ref4 => {
145
139
  ...applyShadowToken(shadow)
146
140
  };
147
141
  };
148
-
149
142
  const selectBorderStyles = _ref6 => {
150
143
  let {
151
144
  borderColor,
@@ -166,7 +159,6 @@ const selectBorderStyles = _ref6 => {
166
159
  borderBottomWidth
167
160
  };
168
161
  };
169
-
170
162
  const selectTextStyles = (_ref7, themeOptions) => {
171
163
  let {
172
164
  fontSize,
@@ -190,7 +182,6 @@ const selectTextStyles = (_ref7, themeOptions) => {
190
182
  textDecorationStyle: textLineStyle
191
183
  });
192
184
  };
193
-
194
185
  const selectWebOnlyStyles = (inactive, themeTokens, _ref8) => {
195
186
  let {
196
187
  accessibilityRole
@@ -207,7 +198,6 @@ const selectWebOnlyStyles = (inactive, themeTokens, _ref8) => {
207
198
  default: {}
208
199
  });
209
200
  };
210
-
211
201
  const selectButtonStyles = _ref9 => {
212
202
  let {
213
203
  textAlign
@@ -217,7 +207,6 @@ const selectButtonStyles = _ref9 => {
217
207
  justifyContent: textAlign
218
208
  };
219
209
  };
220
-
221
210
  const selectItemIconTokens = _ref10 => {
222
211
  let {
223
212
  color,
@@ -229,7 +218,6 @@ const selectItemIconTokens = _ref10 => {
229
218
  color: iconColor || color
230
219
  };
231
220
  };
232
-
233
221
  const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
234
222
  let {
235
223
  id,
@@ -255,16 +243,12 @@ const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
255
243
  selected,
256
244
  iconPosition
257
245
  };
258
-
259
246
  const resolveButtonTokens = pressableState => resolvePressableTokens(tokens, pressableState, extraButtonState);
260
-
261
247
  const systemProps = selectProps(rest);
262
-
263
248
  const getPressableStyle = pressableState => {
264
249
  const themeTokens = resolveButtonTokens(pressableState);
265
250
  return [staticStyles.row, selectWebOnlyStyles(inactive, themeTokens, systemProps), selectOuterContainerStyles(themeTokens), selectOuterSizeStyles(themeTokens)];
266
251
  };
267
-
268
252
  const {
269
253
  themeOptions
270
254
  } = useTheme();
@@ -286,15 +270,16 @@ const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
286
270
  const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text, Platform.select({
287
271
  web: {
288
272
  pointerEvents: 'none' // bubbles press event to parent `Pressable`
289
-
290
273
  }
291
274
  })];
275
+
292
276
  const iconTokens = selectItemIconTokens(themeTokens);
293
277
  const {
294
278
  iconSpace
295
- } = themeTokens; // If the container has a width set, fill it instead of sizing from content.
296
- // If in future we support text alignments other than center, add here.
279
+ } = themeTokens;
297
280
 
281
+ // If the container has a width set, fill it instead of sizing from content.
282
+ // If in future we support text alignments other than center, add here.
298
283
  const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
299
284
  const IconComponent = icon || themeTokens.icon;
300
285
  const rowStyles = selectButtonStyles(themeTokens);
@@ -315,10 +300,12 @@ const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
315
300
  icon: IconComponent,
316
301
  iconPosition: iconPosition,
317
302
  space: iconSpace,
318
- iconProps: { ...iconProps,
303
+ iconProps: {
304
+ ...iconProps,
319
305
  tokens: iconTokens
320
306
  },
321
- children: wrapStringsInText(typeof children === 'function' ? children({ ...resolvePressableState(pressableState, extraButtonState),
307
+ children: wrapStringsInText(typeof children === 'function' ? children({
308
+ ...resolvePressableState(pressableState, extraButtonState),
322
309
  textStyles
323
310
  }) : children, {
324
311
  style: textStyles
@@ -343,7 +330,8 @@ const staticStyles = StyleSheet.create({
343
330
  flexDirection: 'row',
344
331
  justifyContent: 'center'
345
332
  },
346
- text: { ...Platform.select({
333
+ text: {
334
+ ...Platform.select({
347
335
  // TODO: https://github.com/telus/universal-design-system/issues/487
348
336
  web: {
349
337
  transition: 'color 200ms'
@@ -11,7 +11,6 @@ import Icon from '../Icon';
11
11
  import { getStackedContent } from '../StackView';
12
12
  import { getPressHandlersWithArgs } from '../utils/pressability';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
-
15
14
  const selectIconTokens = _ref => {
16
15
  let {
17
16
  icon,
@@ -50,7 +49,6 @@ const selectIconTokens = _ref => {
50
49
  }
51
50
  };
52
51
  };
53
-
54
52
  const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
55
53
  let {
56
54
  value,
@@ -80,22 +78,19 @@ const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
80
78
  ...variant
81
79
  };
82
80
  const getTokens = useThemeTokensCallback('ButtonDropdown', tokens, extraState);
81
+ const getButtonTokens = buttonState => selectTokens('Button', getTokens(buttonState));
83
82
 
84
- const getButtonTokens = buttonState => selectTokens('Button', getTokens(buttonState)); // Pass an object of relevant component state as first argument for any passed-in press handlers
85
-
86
-
83
+ // Pass an object of relevant component state as first argument for any passed-in press handlers
87
84
  const pressHandlers = getPressHandlersWithArgs(props, [{
88
85
  label,
89
86
  open: isOpen
90
87
  }]);
91
-
92
88
  const handlePress = event => {
93
89
  if (!inactive) {
94
90
  if (pressHandlers.onPress) pressHandlers === null || pressHandlers === void 0 ? void 0 : pressHandlers.onPress(event);
95
91
  setIsOpen(!isOpen, event);
96
92
  }
97
93
  };
98
-
99
94
  return /*#__PURE__*/_jsx(ButtonBase, {
100
95
  ref: ref,
101
96
  ...pressHandlers,
@@ -115,6 +110,7 @@ const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
115
110
  // - Icon: https://github.com/telus/universal-design-system/issues/327
116
111
  // - IconButton: https://github.com/telus/universal-design-system/issues/281
117
112
  // - Token sets: https://github.com/telus/universal-design-system/issues/782
113
+
118
114
  const itemTokens = getTokens(buttonState);
119
115
  const {
120
116
  iconTokens,
@@ -130,11 +126,10 @@ const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
130
126
  tokens: iconTokens
131
127
  })
132
128
  }) : null;
133
-
134
- const childrenContent = () => typeof children === 'function' ? children({ ...resolvePressableState(buttonState, extraState),
129
+ const childrenContent = () => typeof children === 'function' ? children({
130
+ ...resolvePressableState(buttonState, extraState),
135
131
  textStyles
136
132
  }) : children;
137
-
138
133
  const content = children ? childrenContent() : /*#__PURE__*/_jsx(Text, {
139
134
  style: textStyles,
140
135
  children: label
@@ -147,33 +142,29 @@ const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
147
142
  });
148
143
  });
149
144
  ButtonDropdown.displayName = 'ButtonDropdown';
150
- ButtonDropdown.propTypes = { ...a11yProps.types,
145
+ ButtonDropdown.propTypes = {
146
+ ...a11yProps.types,
151
147
  ...focusHandlerProps.types,
152
148
  ...buttonPropTypes,
153
149
  children: textAndA11yText,
154
150
  tokens: getTokensPropType('ButtonDropdown'),
155
-
156
151
  /**
157
152
  * Callback called when a controlled ButtonDropdown gets interacted with.
158
153
  */
159
154
  onChange: PropTypes.func,
160
-
161
155
  /**
162
156
  * `value` prop is being used to set the 'open' state of ButtonDropdown. Use it for
163
157
  * controlled ButtonDropdown. For uncontrolled ButtonDropdown, use `initialValue`.
164
158
  */
165
159
  value: PropTypes.bool,
166
-
167
160
  /**
168
161
  * Use `initialValue` to provide the initial value for an uncontrolled version.
169
162
  */
170
163
  initialValue: PropTypes.bool,
171
-
172
164
  /**
173
165
  * The label of ButtonDropdown.
174
166
  */
175
167
  label: PropTypes.string,
176
-
177
168
  /**
178
169
  * By default, `ButtonDropdown` is treated by accessibility tools as a radio button.
179
170
  */
@@ -66,14 +66,14 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
66
66
  });
67
67
  const itemA11yRole = systemProps.accessibilityRole === 'radiogroup' ? 'radio' : 'checkbox';
68
68
  const uniqueFields = ['id', 'label'];
69
-
70
69
  if (!containUniqueFields(items, uniqueFields)) {
71
70
  throw new Error(`ButtonGroup items must have unique ${uniqueFields.join(', ')}`);
72
- } // Some web screenreaders e.g. MacOS Voiceover don't handle radiogroups properly unless radio is direct child of radiogroup
73
-
71
+ }
74
72
 
73
+ // Some web screenreaders e.g. MacOS Voiceover don't handle radiogroups properly unless radio is direct child of radiogroup
75
74
  const innerRole = Platform.OS === 'web' && accessibilityRole === 'radiogroup' ? accessibilityRole : undefined;
76
- return /*#__PURE__*/_jsx(Fieldset, { ...systemProps,
75
+ return /*#__PURE__*/_jsx(Fieldset, {
76
+ ...systemProps,
77
77
  ref: ref,
78
78
  name: inputGroupName,
79
79
  legend: legend,
@@ -101,19 +101,18 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
101
101
  ref: itemRef,
102
102
  ...itemRest
103
103
  } = _ref2;
104
- const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
104
+ const isSelected = currentValues.includes(id);
105
105
 
106
+ // Pass an object of relevant component state as first argument for any passed-in press handlers
106
107
  const pressHandlers = getPressHandlersWithArgs(rest, [{
107
108
  id,
108
109
  label,
109
110
  currentValues
110
111
  }]);
111
-
112
112
  const handlePress = event => {
113
113
  if (pressHandlers.onPress) pressHandlers.onPress(event);
114
114
  toggleOneValue(id, event);
115
115
  };
116
-
117
116
  const iconProp = itemRest.icon || undefined;
118
117
  const itemA11y = {
119
118
  accessibilityState: {
@@ -122,9 +121,10 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
122
121
  accessibilityRole: itemA11yRole,
123
122
  accessibilityLabel,
124
123
  ...a11yProps.getPositionInSet(items.length, index)
125
- }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
126
- // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
124
+ };
127
125
 
126
+ // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
127
+ // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
128
128
  return /*#__PURE__*/_jsx(ButtonBase, {
129
129
  ref: itemRef,
130
130
  ...pressHandlers,
@@ -133,7 +133,8 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
133
133
  selected: isSelected,
134
134
  inactive: inactive,
135
135
  icon: iconProp,
136
- ...selectItemProps({ ...itemRest,
136
+ ...selectItemProps({
137
+ ...itemRest,
137
138
  ...itemA11y
138
139
  }),
139
140
  iconPosition: iconPosition,
@@ -144,52 +145,46 @@ const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
144
145
  });
145
146
  });
146
147
  ButtonGroup.displayName = 'ButtonGroup';
147
- ButtonGroup.propTypes = { ...selectedSystemPropTypes,
148
+ ButtonGroup.propTypes = {
149
+ ...selectedSystemPropTypes,
148
150
  tokens: getTokensPropType('ButtonGroup'),
149
151
  variant: variantProp.propType,
150
-
151
152
  /**
152
153
  * The maximum number of items a user may select at once. Defaults to 1 and behaves
153
154
  * like radio buttons. To have no limit and allow any number of selections, pass `null`.
154
155
  */
155
156
  maxValues: PropTypes.number,
156
-
157
157
  /**
158
158
  * The options a user may select
159
159
  */
160
- items: PropTypes.arrayOf(PropTypes.shape({ ...selectedItemPropTypes,
161
-
160
+ items: PropTypes.arrayOf(PropTypes.shape({
161
+ ...selectedItemPropTypes,
162
162
  /**
163
163
  * The text displayed to the user in the button, describing this option,
164
164
  * passed to the button as its child.
165
165
  */
166
166
  label: PropTypes.string.isRequired,
167
-
168
167
  /**
169
168
  * An optional accessibility label may be passed to ButtonGroup Buttons
170
169
  * which is applied as normal for a React Native accessibilityLabel prop.
171
170
  */
172
171
  accessibilityLabel: PropTypes.string,
173
-
174
172
  /**
175
173
  * An optional unique string may be provided to identify this option,
176
174
  * which will be used in code and passed to any onChange function.
177
175
  * If not provided, the label is used.
178
176
  */
179
177
  id: PropTypes.string,
180
-
181
178
  /**
182
179
  * An optional ref for one individual button in the ButtonGroup
183
180
  */
184
181
  ref: ABBPropTypes.ref()
185
182
  })),
186
-
187
183
  /**
188
184
  * If provided, this function is called when the current selection is changed
189
185
  * and is passed an array of the `id`s of all currently selected `items`.
190
186
  */
191
187
  onChange: PropTypes.func,
192
-
193
188
  /**
194
189
  * If the selected item(s) in the button group are to be controlled externally by
195
190
  * a parent component, pass an array of strings as well as an `onChange` handler.
@@ -197,65 +192,53 @@ ButtonGroup.propTypes = { ...selectedSystemPropTypes,
197
192
  * expects its state to be handled via `onChange` and so doesn't handle it itself.
198
193
  */
199
194
  values: PropTypes.arrayOf(PropTypes.string),
200
-
201
195
  /**
202
196
  * If `values` is not passed, making the ButtonGroup an "uncontrolled" component
203
197
  * managing its own selected state, a default set of selections may be provided.
204
198
  * Changing the `initialValues` does not change the user's selections.
205
199
  */
206
200
  initialValues: PropTypes.arrayOf(PropTypes.string),
207
-
208
201
  /**
209
202
  * Defines if the icon will be displayed on the right or left side of the label.
210
203
  */
211
204
  iconPosition: PropTypes.oneOf(['left', 'right']),
212
-
213
205
  /**
214
206
  * Main text used to describe this group, used in Fieldset's Legend element.
215
207
  */
216
208
  legend: PropTypes.string,
217
-
218
209
  /**
219
210
  * Optional additional text giving more detail to help a user make a choice.
220
211
  */
221
212
  hint: PropTypes.string,
222
-
223
213
  /**
224
214
  * Position of the hint relative to label. Use `below` to display a larger hint below the label.
225
215
  */
226
216
  hintPosition: PropTypes.oneOf(['inline', 'below']),
227
-
228
217
  /**
229
218
  * Optional tooltip text content to include alongside the legend and hint.
230
219
  */
231
220
  tooltip: PropTypes.string,
232
-
233
221
  /**
234
222
  * Current validation status of the group, passed to the feedback element if there is one.
235
223
  */
236
224
  validation: PropTypes.oneOf(['error', 'success']),
237
-
238
225
  /**
239
226
  * If provided, a Feedback element is rendered containing this text.
240
227
  */
241
228
  feedback: PropTypes.string,
242
-
243
229
  /**
244
230
  * If true, the buttons cannot be selected by the user and simply show their current state.
245
231
  */
246
232
  readOnly: PropTypes.bool,
247
-
248
233
  /**
249
234
  * If true, the buttons cannot be interacted with, elements are set as `disabled` and if the
250
235
  * theme supports `inactive` appearances rules, these are applied.
251
236
  */
252
237
  inactive: PropTypes.bool,
253
-
254
238
  /**
255
239
  * On Web, this is passed to the `name` attribute of the fieldset.
256
240
  */
257
241
  name: PropTypes.string,
258
-
259
242
  /**
260
243
  * Sets the language of microcopy in subcomponents (e.g. Tooltip's default accessibility label).
261
244
  */
@@ -5,11 +5,11 @@ import buttonPropTypes, { textAndA11yText } from './propTypes';
5
5
  import { a11yProps, hrefAttrsProp, linkProps } from '../utils/props';
6
6
  import { useThemeTokensCallback } from '../ThemeProvider';
7
7
  import { useViewport } from '../ViewportProvider';
8
+
8
9
  /**
9
10
  * `ButtonLink` is a component with the semantics and behaviour of a link, but with the visual appearance of a button.
10
11
  * ButtonLink is a block-level component and should not be used inline.
11
12
  */
12
-
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  const ButtonLink = /*#__PURE__*/forwardRef((_ref, ref) => {
15
15
  let {
@@ -39,7 +39,8 @@ const ButtonLink = /*#__PURE__*/forwardRef((_ref, ref) => {
39
39
  });
40
40
  });
41
41
  ButtonLink.displayName = 'ButtonLink';
42
- ButtonLink.propTypes = { ...a11yProps.types,
42
+ ButtonLink.propTypes = {
43
+ ...a11yProps.types,
43
44
  ...buttonPropTypes,
44
45
  ...linkProps.types,
45
46
  children: textAndA11yText,
@@ -6,18 +6,15 @@ import { iconComponentPropTypes } from '../Icon';
6
6
  export const textAndA11yText = ABBPropTypes.childrenOf(PropTypes.oneOfType([ABBPropTypes.elementType(A11yText), PropTypes.string]));
7
7
  const buttonPropTypes = {
8
8
  tokens: getTokensPropType('Button'),
9
-
10
9
  /**
11
10
  * If true, prevents the button from being pressed, changes the cursor (on web) and accessibility
12
11
  * attributes to communicate this to the user, and applies `inactive: true` appearances from the theme
13
12
  */
14
13
  inactive: PropTypes.bool,
15
-
16
14
  /**
17
15
  * Alias for `inactive`
18
16
  */
19
17
  disabled: PropTypes.bool,
20
-
21
18
  /**
22
19
  * Button's children must be either:
23
20
  * - One or more text strings and / or A11yText components
@@ -27,22 +24,18 @@ const buttonPropTypes = {
27
24
  * ```
28
25
  */
29
26
  children: PropTypes.oneOfType([PropTypes.func, textAndA11yText]).isRequired,
30
-
31
27
  /**
32
28
  * Function called when the button is pressed. Required unless the button has a href.
33
29
  */
34
30
  onPress: PropTypes.func,
35
-
36
31
  /**
37
32
  * Optional variant that may be passed down to the link's icon if there is one
38
33
  */
39
34
  iconProps: PropTypes.exact(iconComponentPropTypes),
40
-
41
35
  /**
42
36
  * When `icon` is provided, use `iconPosition` to place the Icon to the left or right side of the button.
43
37
  */
44
38
  iconPosition: PropTypes.oneOf(['left', 'right']),
45
-
46
39
  /**
47
40
  * A function component for an SVG icon to render inside the link. Inherits size and color from
48
41
  * the link and any Typography the link is nested inside.
@@ -7,6 +7,7 @@ import { a11yProps, selectSystemProps, viewProps } from '../utils/props';
7
7
  import CardBase from './CardBase';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
10
+
10
11
  /**
11
12
  * A basic card component, unstyled by default.
12
13
  *
@@ -55,7 +56,6 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
55
56
  * you automatically make inaccessible its children, which may or may not be appropriate
56
57
  * depending on what you are trying to achieve.
57
58
  */
58
-
59
59
  const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
60
60
  let {
61
61
  children,
@@ -77,7 +77,8 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
77
77
  });
78
78
  });
79
79
  Card.displayName = 'Card';
80
- Card.propTypes = { ...selectedSystemPropTypes,
80
+ Card.propTypes = {
81
+ ...selectedSystemPropTypes,
81
82
  children: PropTypes.node,
82
83
  tokens: getTokensPropType('Card'),
83
84
  variant: variantProp.propType
@@ -6,8 +6,9 @@ import { applyShadowToken } from '../ThemeProvider';
6
6
  import { getTokensPropType } from '../utils';
7
7
  import { a11yProps, viewProps, selectSystemProps } from '../utils/props';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]); // Ensure explicit selection of tokens
9
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
10
10
 
11
+ // Ensure explicit selection of tokens
11
12
  const selectStyles = _ref => {
12
13
  let {
13
14
  flex,
@@ -43,12 +44,11 @@ const selectStyles = _ref => {
43
44
  } : {})
44
45
  };
45
46
  };
47
+
46
48
  /**
47
49
  * A themeless base component for Card which components can apply theme tokens to. Not
48
50
  * intended to be used in apps or sites directly: build themed components on top of this.
49
51
  */
50
-
51
-
52
52
  const CardBase = /*#__PURE__*/forwardRef((_ref2, ref) => {
53
53
  let {
54
54
  children,
@@ -67,7 +67,8 @@ const CardBase = /*#__PURE__*/forwardRef((_ref2, ref) => {
67
67
  });
68
68
  });
69
69
  CardBase.displayName = 'CardBase';
70
- CardBase.propTypes = { ...selectedSystemPropTypes,
70
+ CardBase.propTypes = {
71
+ ...selectedSystemPropTypes,
71
72
  children: PropTypes.node,
72
73
  tokens: getTokensPropType('Card')
73
74
  };