@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,6 +10,7 @@ import Fieldset from '../Fieldset';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
12
12
  const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
13
+
13
14
  /**
14
15
  * A group of Radios that behave as a radio group. Use when users select a single choice from mutually
15
16
  * exclusive options.
@@ -58,7 +59,6 @@ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, f
58
59
  * />
59
60
  * ```
60
61
  */
61
-
62
62
  const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
63
63
  let {
64
64
  copy = 'en',
@@ -81,9 +81,9 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
81
81
  ...rest
82
82
  } = _ref;
83
83
  const viewport = useViewport();
84
+
84
85
  /* showIcon passes a boolean to displayIcon
85
86
  */
86
-
87
87
  const {
88
88
  space,
89
89
  fieldSpace,
@@ -115,11 +115,9 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
115
115
  readOnly: readOnly || inactive
116
116
  });
117
117
  const uniqueFields = ['id', 'label'];
118
-
119
118
  if (!containUniqueFields(items, uniqueFields)) {
120
119
  throw new Error(`RadioGroup items must have unique ${uniqueFields.join(', ')}`);
121
120
  }
122
-
123
121
  const radios = items.map((_ref2, index) => {
124
122
  let {
125
123
  label,
@@ -131,12 +129,10 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
131
129
  } = _ref2;
132
130
  const radioId = id || `Radio[${index}]`;
133
131
  const isChecked = currentValue === radioId;
134
-
135
132
  const handleChange = (newCheckedState, event) => {
136
133
  if (typeof itemOnChange === 'function') itemOnChange(newCheckedState, event);
137
134
  if (newCheckedState) setValue(radioId, event);
138
135
  };
139
-
140
136
  return /*#__PURE__*/_jsx(Radio, {
141
137
  ref: itemRef,
142
138
  id: radioId,
@@ -175,97 +171,82 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
175
171
  });
176
172
  });
177
173
  RadioGroup.displayName = 'RadioGroup';
178
- RadioGroup.propTypes = { ...selectedSystemPropTypes,
179
-
174
+ RadioGroup.propTypes = {
175
+ ...selectedSystemPropTypes,
180
176
  /**
181
177
  * Whether the English or French copy will be used (e.g. for accessibility labels).
182
178
  */
183
179
  copy: PropTypes.oneOf(['en', 'fr']),
184
-
185
180
  /**
186
181
  * Optional theme token overrides for the outer RadioGroup component
187
182
  */
188
183
  tokens: getTokensPropType('RadioGroup'),
189
-
190
184
  /**
191
185
  * Optional theme token overrides for each inner Radio component
192
186
  */
193
187
  radioTokens: getTokensPropType('Radio'),
194
-
195
188
  /**
196
189
  * Theme variants, shared between both RadioGroup and Radio
197
190
  */
198
191
  variant: variantProp.propType,
199
-
200
192
  /**
201
193
  * Array of objects containing specifics for each Radio to be rendered in the group.
202
194
  */
203
- items: PropTypes.arrayOf(PropTypes.exact({ ...selectedItemPropTypes,
195
+ items: PropTypes.arrayOf(PropTypes.exact({
196
+ ...selectedItemPropTypes,
204
197
  label: PropTypes.string,
205
198
  id: PropTypes.string,
206
199
  onChange: PropTypes.func,
207
200
  description: PropTypes.string,
208
201
  ref: ABBPropTypes.ref()
209
202
  })),
210
-
211
203
  /**
212
204
  * Main text used to describe this group, used in Fieldset's Legend element.
213
205
  */
214
206
  legend: PropTypes.string,
215
-
216
207
  /**
217
208
  * Optional additional text giving more detail to help a user make a choice.
218
209
  */
219
210
  hint: PropTypes.string,
220
-
221
211
  /**
222
212
  * Position of the hint relative to label. Use `below` to display a larger hint below the label.
223
213
  */
224
214
  hintPosition: PropTypes.oneOf(['inline', 'below']),
225
-
226
215
  /**
227
216
  * Optional tooltip text content to include alongside the legend and hint.
228
217
  */
229
218
  tooltip: PropTypes.string,
230
-
231
219
  /**
232
220
  * Current validation status of the group, passed to the feedback element if there is one.
233
221
  */
234
222
  validation: PropTypes.oneOf(['error', 'success']),
235
-
236
223
  /**
237
224
  * If provided, a Feedback element is rendered containing this text.
238
225
  */
239
226
  feedback: PropTypes.string,
240
-
241
227
  /**
242
228
  * If provided, the radio with this id is selected on first render.
243
229
  */
244
230
  initialCheckedId: PropTypes.string,
245
-
246
231
  /**
247
232
  * If not undefined, the radio with this id is selected (or none is selected if `null`), and the
248
233
  * element's selection state will be controlled by its parent using the `onChange` function.
249
234
  */
250
235
  checkedId: PropTypes.string,
251
-
252
236
  /**
253
237
  * Function to call on change in selection state. Is required if the selection state is controlled
254
238
  * by a parent using checkedId and the input is not readOnly.
255
239
  */
256
240
  onChange: PropTypes.func,
257
-
258
241
  /**
259
242
  * If true, the radios cannot be selected by the user and simply show their current state.
260
243
  */
261
244
  readOnly: PropTypes.bool,
262
-
263
245
  /**
264
246
  * If true, the radios cannot be interacted with, elements are set as `disabled` and if the
265
247
  * theme supports `inactive` appearances rules, these are applied.
266
248
  */
267
249
  inactive: PropTypes.bool,
268
-
269
250
  /**
270
251
  * On Web, this is passed to the `name` attribute of the fieldset and each radio input.
271
252
  */
@@ -1,9 +1,9 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+
3
4
  /**
4
5
  * On Web we need to include an actual input but hide it.
5
6
  */
6
-
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const RadioInput = /*#__PURE__*/forwardRef((_ref, ref) => {
9
9
  let {
@@ -16,14 +16,12 @@ const RadioInput = /*#__PURE__*/forwardRef((_ref, ref) => {
16
16
  onChange,
17
17
  value
18
18
  } = _ref;
19
-
20
19
  const handleClick = event => {
21
20
  // Cancel the click dispatched via the label tag, since it's already wrapped
22
21
  // in <Pressable>
23
22
  event.preventDefault();
24
23
  event.stopPropagation();
25
24
  };
26
-
27
25
  return /*#__PURE__*/_jsx("input", {
28
26
  checked: isControlled ? checked : undefined,
29
27
  defaultChecked: isControlled ? undefined : defaultChecked,
@@ -2,5 +2,4 @@
2
2
  * There's no radio button input on native platforms, so this is a noop.
3
3
  */
4
4
  const RadioInput = () => null;
5
-
6
5
  export default RadioInput;
@@ -11,6 +11,7 @@ import RadioButton, { selectRadioButtonTokens } from '../Radio/RadioButton';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
13
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
14
+
14
15
  /**
15
16
  * A Card that behaves like a radio button. Use when users select a single choice from mutually exclusive options
16
17
  * with need to show additional information for each option. The whole card is interactive as one item.
@@ -46,7 +47,6 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, foc
46
47
  * accessibility role `'radio'` and accessibility state that depends on the other props (`checked`, `inactive`)
47
48
  * or the internal state in case of uncontrolled radio button.
48
49
  */
49
-
50
50
  const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
51
51
  let {
52
52
  tokens,
@@ -71,19 +71,15 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
71
71
  initialValue: defaultChecked,
72
72
  onChange
73
73
  });
74
-
75
74
  const handleChange = event => {
76
75
  if (!inactive && !isChecked) {
77
76
  setIsChecked(true, event);
78
77
  }
79
78
  };
80
-
81
79
  const uniqueId = useUniqueId('RadioCard');
82
80
  const inputId = id ?? uniqueId;
83
81
  const getTokens = useThemeTokensCallback('RadioCard', tokens, variant);
84
-
85
82
  const getCardTokens = cardState => selectPressableCardTokens(getTokens(cardState));
86
-
87
83
  const {
88
84
  themeOptions
89
85
  } = useTheme();
@@ -110,7 +106,8 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
110
106
  } = getTokens(cardState);
111
107
  const radioTokens = selectRadioButtonTokens(themeTokens, 'radio');
112
108
  const titleTokens = selectTokens('Typography', themeTokens);
113
- const textStyle = applyTextStyles({ ...titleTokens,
109
+ const textStyle = applyTextStyles({
110
+ ...titleTokens,
114
111
  themeOptions
115
112
  });
116
113
  return /*#__PURE__*/_jsxs(StackView, {
@@ -147,73 +144,60 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
147
144
  });
148
145
  });
149
146
  RadioCard.displayName = 'RadioCard';
150
- RadioCard.propTypes = { ...selectedSystemPropTypes,
151
-
147
+ RadioCard.propTypes = {
148
+ ...selectedSystemPropTypes,
152
149
  /**
153
150
  * Content to be displayed at the top of the card alongside the radio button
154
151
  */
155
152
  title: PropTypes.string,
156
-
157
153
  /**
158
154
  * Additional content to be displayed below the button.
159
155
  */
160
156
  children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
161
-
162
157
  /**
163
158
  * Use `checked` for controlled Radio. For uncontrolled Radio, use the `defaultChecked` prop.
164
159
  */
165
160
  checked: PropTypes.bool,
166
-
167
161
  /**
168
162
  * Use `defaultChecked` to provide the initial value for an uncontrolled Radio.
169
163
  */
170
164
  defaultChecked: PropTypes.bool,
171
-
172
165
  /**
173
166
  * An optional radio button description.
174
167
  */
175
168
  description: PropTypes.string,
176
-
177
169
  /**
178
170
  * Radio card button ID.
179
171
  */
180
172
  id: PropTypes.string,
181
-
182
173
  /**
183
174
  * Whether the corresponding input is disabled or active.
184
175
  */
185
176
  inactive: PropTypes.bool,
186
-
187
177
  /**
188
178
  * The label.
189
179
  */
190
180
  label: PropTypes.string,
191
-
192
181
  /**
193
182
  * Associate this radio card with a group (set as the name attribute).
194
183
  */
195
184
  name: PropTypes.string,
196
-
197
185
  /**
198
186
  * Whether the underlying input triggered a validation error or not.
199
187
  */
200
188
  error: PropTypes.bool,
201
-
202
189
  /**
203
190
  * The value. Must be unique within the group.
204
191
  */
205
192
  value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),
206
-
207
193
  /**
208
194
  * Callback called when a controlled radio card gets interacted with.
209
195
  */
210
196
  onChange: PropTypes.func,
211
-
212
197
  /**
213
198
  * Radio card tokens.
214
199
  */
215
200
  tokens: getTokensPropType('RadioCard'),
216
-
217
201
  /**
218
202
  * Radio variant.
219
203
  */
@@ -9,6 +9,7 @@ import Fieldset from '../Fieldset';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
11
11
  const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
12
+
12
13
  /**
13
14
  * A group of Cards that behave as a radio button group. Use when users select a single choice from mutually
14
15
  * exclusive options with need to show additional information for each option. The whole cards are each
@@ -59,7 +60,6 @@ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, f
59
60
  * />
60
61
  * ```
61
62
  */
62
-
63
63
  const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
64
64
  let {
65
65
  copy = 'en',
@@ -85,10 +85,25 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
85
85
  const {
86
86
  space,
87
87
  fieldSpace,
88
- direction
88
+ direction,
89
+ showIcon,
90
+ outlineWidth,
91
+ borderTopLeftRadius,
92
+ borderTopRightRadius,
93
+ borderBottomLeftRadius,
94
+ borderBottomRightRadius,
95
+ outlineOffset
89
96
  } = useThemeTokens('RadioCardGroup', tokens, variant, {
90
97
  viewport
91
98
  });
99
+ const borderTokens = {
100
+ outlineWidth,
101
+ borderTopLeftRadius,
102
+ borderTopRightRadius,
103
+ borderBottomLeftRadius,
104
+ borderBottomRightRadius,
105
+ outlineOffset
106
+ };
92
107
  const {
93
108
  currentValue,
94
109
  setValue
@@ -98,16 +113,15 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
98
113
  onChange,
99
114
  readOnly: readOnly || inactive
100
115
  });
101
- const StackContainer = direction === 'row' ? StackWrap : StackView; // Needs 'radiogroup' role on direct parent of radios for MacOS Voiceover's numbering to work,
116
+ const StackContainer = direction === 'row' ? StackWrap : StackView;
117
+ // Needs 'radiogroup' role on direct parent of radios for MacOS Voiceover's numbering to work,
102
118
  // and also needs 'radiogroup' role on fieldset for correct description on focusing the set.
103
119
  // TODO: test this on more web screen readers.
104
120
 
105
121
  const uniqueFields = ['id'];
106
-
107
122
  if (!containUniqueFields(items, uniqueFields)) {
108
123
  throw new Error(`RadioCardGroup items must have unique ${uniqueFields.join(', ')}`);
109
124
  }
110
-
111
125
  return /*#__PURE__*/_jsx(Fieldset, {
112
126
  copy: copy,
113
127
  ref: ref,
@@ -121,7 +135,8 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
121
135
  inactive: inactive || readOnly,
122
136
  validation: validation,
123
137
  showErrorBorder: true,
124
- showIcon: true,
138
+ tokens: borderTokens,
139
+ showIcon: showIcon,
125
140
  accessibilityRole: "radiogroup",
126
141
  ...selectProps(rest),
127
142
  children: props => /*#__PURE__*/_jsx(StackContainer, {
@@ -136,12 +151,10 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
136
151
  ...itemRest
137
152
  } = _ref2;
138
153
  const cardId = id || `RadioCard[${index}]`;
139
-
140
154
  const handleChange = (newCheckedState, event) => {
141
155
  if (typeof itemOnChange === 'function') itemOnChange(newCheckedState, event);
142
156
  if (newCheckedState) setValue(cardId, event);
143
157
  };
144
-
145
158
  return /*#__PURE__*/_jsx(RadioCard, {
146
159
  id: cardId,
147
160
  checked: currentValue === cardId,
@@ -161,96 +174,81 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
161
174
  });
162
175
  });
163
176
  RadioCardGroup.displayName = 'RadioCardGroup';
164
- RadioCardGroup.propTypes = { ...selectedSystemPropTypes,
165
-
177
+ RadioCardGroup.propTypes = {
178
+ ...selectedSystemPropTypes,
166
179
  /**
167
180
  * Whether the English or French copy will be used (e.g. for accessibility labels).
168
181
  */
169
182
  copy: PropTypes.oneOf(['en', 'fr']),
170
-
171
183
  /**
172
184
  * Optional theme token overrides for the outer RadioCardGroup component
173
185
  */
174
186
  tokens: getTokensPropType('RadioCardGroup'),
175
-
176
187
  /**
177
188
  * Optional theme token overrides for each inner RadioCard component
178
189
  */
179
190
  radioCardTokens: getTokensPropType('RadioCard'),
180
-
181
191
  /**
182
192
  * Theme variants, shared between both RadioCardGroup and RadioCard
183
193
  */
184
194
  variant: variantProp.propType,
185
-
186
195
  /**
187
196
  * Array of objects containing specifics for each RadioCard to be rendered in the group.
188
197
  */
189
- items: PropTypes.arrayOf(PropTypes.exact({ ...selectedItemPropTypes,
198
+ items: PropTypes.arrayOf(PropTypes.exact({
199
+ ...selectedItemPropTypes,
190
200
  title: PropTypes.string,
191
201
  content: PropTypes.node,
192
202
  id: PropTypes.string,
193
203
  onChange: PropTypes.func
194
204
  })),
195
-
196
205
  /**
197
206
  * Main text used to describe this group, used in Fieldset's Legend element.
198
207
  */
199
208
  legend: PropTypes.string,
200
-
201
209
  /**
202
210
  * Optional additional text giving more detail to help a user make a choice.
203
211
  */
204
212
  hint: PropTypes.string,
205
-
206
213
  /**
207
214
  * Position of the hint relative to label. Use `below` to display a larger hint below the label.
208
215
  */
209
216
  hintPosition: PropTypes.oneOf(['inline', 'below']),
210
-
211
217
  /**
212
218
  * Optional tooltip text content to include alongside the legend and hint.
213
219
  */
214
220
  tooltip: PropTypes.string,
215
-
216
221
  /**
217
222
  * Current validation status of the group, passed to the feedback element if there is one.
218
223
  */
219
224
  validation: PropTypes.oneOf(['error', 'success']),
220
-
221
225
  /**
222
226
  * If provided, a Feedback element is rendered containing this text.
223
227
  */
224
228
  feedback: PropTypes.string,
225
-
226
229
  /**
227
230
  * If provided, the radio card with this id is selected on first render.
228
231
  */
229
232
  initialCheckedId: PropTypes.string,
230
-
231
233
  /**
232
234
  * If not undefined, the radio card with this id is selected (or none is selected if `null`), and the
233
235
  * element's selection state will be controlled by its parent using the `onChange` function.
234
236
  */
235
237
  checkedId: PropTypes.string,
236
-
237
238
  /**
238
239
  * Function to call on change in selection state. Is required if the selection state is controlled
239
240
  * by a parent using checkedId and the input is not readOnly.
240
241
  */
241
242
  onChange: PropTypes.func,
242
-
243
243
  /**
244
244
  * If true, the radio cards cannot be selected by the user and simply show their current state.
245
245
  */
246
246
  readOnly: PropTypes.bool,
247
-
248
247
  /**
249
248
  * If true, the radio card cannot be interacted with, elements are set as `disabled` and if the
250
249
  * theme supports `inactive` appearances rules, these are applied.
251
250
  */
252
251
  inactive: PropTypes.bool,
253
-
254
252
  /**
255
253
  * On Web, this is passed to the `name` attribute of the fieldset and each radio input.
256
254
  */
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { viewports } from '@telus-uds/system-constants';
4
4
  import { useResponsiveProp } from '../utils';
5
+
5
6
  /**
6
7
  * Responsive conditionally renders children based on whether the viewport matches the provided
7
8
  * min and max viewports.
@@ -10,10 +11,8 @@ import { useResponsiveProp } from '../utils';
10
11
  * during first hydration on the client side; then if the viewport is not `xs`, it re-renders
11
12
  * after hydration. This may cause a layout shift on devices other than the narrowest.
12
13
  */
13
-
14
14
  import { Fragment as _Fragment } from "react/jsx-runtime";
15
15
  import { jsx as _jsx } from "react/jsx-runtime";
16
-
17
16
  const Responsive = _ref => {
18
17
  let {
19
18
  min = 'xs',
@@ -24,25 +23,21 @@ const Responsive = _ref => {
24
23
  const byViewports = {
25
24
  [min]: children
26
25
  };
27
-
28
26
  if (max && max !== 'xl') {
29
27
  // Stop returning children at the viewport one above 'max' or greater
30
28
  const maxIndex = viewports.keys.indexOf(max);
31
29
  const maxPlusOne = maxIndex >= 0 ? viewports.keys[maxIndex + 1] : null;
32
30
  if (maxPlusOne) byViewports[maxPlusOne] = null;
33
31
  }
34
-
35
32
  return /*#__PURE__*/_jsx(_Fragment, {
36
33
  children: useResponsiveProp(byViewports, null)
37
34
  });
38
35
  };
39
-
40
36
  Responsive.propTypes = {
41
37
  /**
42
38
  * To hide children of `Responsive` if the current viewport is smaller than `min`
43
39
  */
44
40
  min: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),
45
-
46
41
  /**
47
42
  * To hide children of `Responsive` if the current viewport is larger than `max`
48
43
  */