@telus-uds/components-base 1.84.0 → 1.85.0

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 (471) hide show
  1. package/CHANGELOG.md +18 -2
  2. package/lib/A11yInfoProvider/index.js +8 -10
  3. package/lib/A11yText/index.js +2 -4
  4. package/lib/ActivityIndicator/Spinner.js +3 -4
  5. package/lib/ActivityIndicator/Spinner.native.js +2 -4
  6. package/lib/Autocomplete/Autocomplete.js +13 -17
  7. package/lib/Autocomplete/Loading.js +4 -2
  8. package/lib/Autocomplete/Suggestions.js +2 -4
  9. package/lib/Badge/Badge.js +2 -4
  10. package/lib/BaseProvider/HydrationContext.js +5 -7
  11. package/lib/Box/Box.js +5 -7
  12. package/lib/Button/Button.js +3 -3
  13. package/lib/Button/ButtonBase.js +2 -7
  14. package/lib/Button/ButtonDropdown.js +3 -3
  15. package/lib/Button/ButtonGroup.js +2 -4
  16. package/lib/Button/ButtonLink.js +3 -3
  17. package/lib/Card/Card.js +159 -16
  18. package/lib/Card/CardBase.js +2 -4
  19. package/lib/Card/PressableCardBase.js +3 -5
  20. package/lib/CardGroup/CardGroup.js +220 -0
  21. package/lib/CardGroup/dictionary.js +15 -0
  22. package/lib/CardGroup/index.js +10 -0
  23. package/lib/Carousel/Carousel.js +67 -57
  24. package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -4
  25. package/lib/Carousel/CarouselItem/CarouselItem.js +3 -2
  26. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
  27. package/lib/Carousel/CarouselTabs/CarouselTabs.js +2 -4
  28. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -8
  29. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -5
  30. package/lib/Carousel/CarouselThumbnail.js +4 -2
  31. package/lib/Carousel/CarouselThumbnailNavigation.js +2 -4
  32. package/lib/Checkbox/Checkbox.js +2 -4
  33. package/lib/Checkbox/CheckboxButton.js +3 -5
  34. package/lib/Checkbox/CheckboxGroup.js +2 -4
  35. package/lib/Checkbox/CheckboxInput.js +4 -14
  36. package/lib/CheckboxCard/CheckboxCard.js +3 -3
  37. package/lib/CheckboxCardGroup/CheckboxCardGroup.js +3 -3
  38. package/lib/ColourToggle/ColourBubble.js +5 -6
  39. package/lib/ColourToggle/ColourToggle.js +3 -5
  40. package/lib/Divider/Divider.js +2 -4
  41. package/lib/ExpandCollapse/Accordion.js +2 -4
  42. package/lib/ExpandCollapse/Control.js +2 -4
  43. package/lib/ExpandCollapse/ExpandCollapse.js +2 -4
  44. package/lib/ExpandCollapse/Panel.js +3 -5
  45. package/lib/Feedback/Feedback.js +2 -4
  46. package/lib/Fieldset/Fieldset.js +2 -4
  47. package/lib/Fieldset/FieldsetContainer.js +2 -4
  48. package/lib/Fieldset/FieldsetContainer.native.js +2 -4
  49. package/lib/Fieldset/Legend.js +2 -4
  50. package/lib/Fieldset/Legend.native.js +2 -4
  51. package/lib/FlexGrid/Col/Col.js +3 -5
  52. package/lib/FlexGrid/FlexGrid.js +2 -4
  53. package/lib/FlexGrid/Row/Row.js +2 -4
  54. package/lib/Footnote/Footnote.js +9 -9
  55. package/lib/Footnote/FootnoteLink.js +5 -3
  56. package/lib/HorizontalScroll/HorizontalScroll.js +8 -10
  57. package/lib/HorizontalScroll/HorizontalScrollButton.js +2 -4
  58. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -10
  59. package/lib/HorizontalScroll/ScrollViewEnd.native.js +2 -4
  60. package/lib/Icon/Icon.js +2 -4
  61. package/lib/Icon/IconText.js +3 -3
  62. package/lib/IconButton/IconButton.js +2 -4
  63. package/lib/InputLabel/InputLabel.js +2 -4
  64. package/lib/InputLabel/LabelContent.js +2 -4
  65. package/lib/InputLabel/LabelContent.native.js +2 -4
  66. package/lib/InputSupports/InputSupports.js +4 -5
  67. package/lib/Link/ChevronLink.js +2 -4
  68. package/lib/Link/InlinePressable.js +8 -7
  69. package/lib/Link/InlinePressable.native.js +10 -8
  70. package/lib/Link/Link.js +2 -4
  71. package/lib/Link/LinkBase.js +2 -4
  72. package/lib/Link/TextButton.js +2 -4
  73. package/lib/List/List.js +13 -11
  74. package/lib/List/ListItem.js +2 -4
  75. package/lib/List/ListItemBase.js +6 -10
  76. package/lib/List/ListItemContent.js +4 -2
  77. package/lib/List/ListItemMark.js +4 -2
  78. package/lib/List/PressableListItemBase.js +2 -4
  79. package/lib/Listbox/GroupControl.js +4 -2
  80. package/lib/Listbox/Listbox.js +6 -6
  81. package/lib/Listbox/ListboxContext.js +3 -4
  82. package/lib/Listbox/ListboxGroup.js +2 -4
  83. package/lib/Listbox/ListboxItem.js +2 -6
  84. package/lib/Listbox/ListboxOverlay.js +2 -6
  85. package/lib/Listbox/PressableItem.js +2 -6
  86. package/lib/Modal/Modal.js +5 -7
  87. package/lib/Modal/ModalContent.js +7 -7
  88. package/lib/Modal/WebModal.js +16 -9
  89. package/lib/MultiSelectFilter/ModalOverlay.js +2 -4
  90. package/lib/MultiSelectFilter/MultiSelectFilter.js +10 -10
  91. package/lib/Notification/Notification.js +5 -7
  92. package/lib/OrderedList/Item.js +4 -10
  93. package/lib/OrderedList/ItemBase.js +2 -4
  94. package/lib/OrderedList/OrderedList.js +5 -13
  95. package/lib/OrderedList/OrderedListBase.js +2 -4
  96. package/lib/Pagination/PageButton.js +1 -1
  97. package/lib/Pagination/Pagination.js +1 -1
  98. package/lib/Pagination/SideButton.js +2 -4
  99. package/lib/PriceLockup/PriceLockup.js +5 -5
  100. package/lib/ProductCard/ProductCard.js +3 -2
  101. package/lib/ProductCardGroup/ProductCardGroup.js +5 -6
  102. package/lib/Progress/Progress.js +2 -4
  103. package/lib/Progress/ProgressBar.js +2 -4
  104. package/lib/Progress/ProgressBarBackground.js +2 -4
  105. package/lib/QuickLinks/QuickLinks.js +2 -4
  106. package/lib/QuickLinks/QuickLinksCard.js +4 -2
  107. package/lib/QuickLinks/QuickLinksItem.js +2 -4
  108. package/lib/QuickLinksFeature/QuickLinksFeature.js +9 -7
  109. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +10 -12
  110. package/lib/Radio/Radio.js +3 -3
  111. package/lib/Radio/RadioButton.js +61 -15
  112. package/lib/Radio/RadioGroup.js +2 -4
  113. package/lib/Radio/RadioInput.js +6 -18
  114. package/lib/RadioCard/RadioCard.js +3 -3
  115. package/lib/RadioCard/RadioCardGroup.js +3 -3
  116. package/lib/Responsive/Responsive.js +3 -2
  117. package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
  118. package/lib/Search/Search.js +2 -4
  119. package/lib/Select/Group.js +4 -2
  120. package/lib/Select/Item.js +4 -2
  121. package/lib/Select/Picker.js +2 -4
  122. package/lib/Select/Picker.native.js +3 -5
  123. package/lib/Select/Select.js +4 -6
  124. package/lib/SideNav/Item.js +2 -4
  125. package/lib/SideNav/ItemContent.js +4 -2
  126. package/lib/SideNav/ItemsGroup.js +2 -4
  127. package/lib/SideNav/SideNav.js +2 -2
  128. package/lib/Skeleton/Skeleton.js +2 -4
  129. package/lib/SkipLink/SkipLink.js +2 -4
  130. package/lib/Spacer/Spacer.js +2 -4
  131. package/lib/StackView/StackView.js +2 -4
  132. package/lib/StackView/StackWrap.js +3 -5
  133. package/lib/StackView/StackWrapBox.js +2 -4
  134. package/lib/StackView/StackWrapGap.js +2 -4
  135. package/lib/StackView/getStackedContent.js +3 -3
  136. package/lib/StepTracker/Step.js +4 -2
  137. package/lib/StepTracker/StepTracker.js +2 -4
  138. package/lib/Tabs/Tabs.js +4 -4
  139. package/lib/Tabs/TabsItem.js +3 -5
  140. package/lib/Tags/Tags.js +2 -4
  141. package/lib/TextInput/TextArea.js +3 -5
  142. package/lib/TextInput/TextInput.js +2 -4
  143. package/lib/TextInput/TextInputBase.js +7 -9
  144. package/lib/ThemeProvider/ThemeProvider.js +5 -7
  145. package/lib/Timeline/Timeline.js +2 -4
  146. package/lib/ToggleSwitch/ToggleSwitch.js +2 -4
  147. package/lib/ToggleSwitch/ToggleSwitchGroup.js +2 -4
  148. package/lib/Tooltip/Tooltip.js +6 -8
  149. package/lib/Tooltip/Tooltip.native.js +12 -14
  150. package/lib/TooltipButton/TooltipButton.js +4 -2
  151. package/lib/Typography/Typography.js +2 -4
  152. package/lib/Validator/Validator.js +11 -13
  153. package/lib/ViewportProvider/ViewportProvider.js +2 -4
  154. package/lib/index.js +8 -0
  155. package/lib/utils/BaseView/BaseView.js +2 -4
  156. package/lib/utils/children.js +4 -6
  157. package/lib/utils/withLinkRouter.js +3 -5
  158. package/lib-module/A11yInfoProvider/index.js +8 -8
  159. package/lib-module/A11yText/index.js +2 -2
  160. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  161. package/lib-module/ActivityIndicator/Spinner.native.js +2 -2
  162. package/lib-module/Autocomplete/Autocomplete.js +13 -14
  163. package/lib-module/Autocomplete/Loading.js +4 -2
  164. package/lib-module/Autocomplete/Suggestions.js +2 -2
  165. package/lib-module/Badge/Badge.js +2 -2
  166. package/lib-module/BaseProvider/HydrationContext.js +5 -5
  167. package/lib-module/Box/Box.js +5 -5
  168. package/lib-module/Button/Button.js +2 -2
  169. package/lib-module/Button/ButtonBase.js +2 -5
  170. package/lib-module/Button/ButtonDropdown.js +2 -2
  171. package/lib-module/Button/ButtonGroup.js +2 -2
  172. package/lib-module/Button/ButtonLink.js +2 -2
  173. package/lib-module/Card/Card.js +159 -14
  174. package/lib-module/Card/CardBase.js +2 -2
  175. package/lib-module/Card/PressableCardBase.js +4 -4
  176. package/lib-module/CardGroup/CardGroup.js +210 -0
  177. package/lib-module/CardGroup/dictionary.js +8 -0
  178. package/lib-module/CardGroup/index.js +2 -0
  179. package/lib-module/Carousel/Carousel.js +67 -55
  180. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -2
  181. package/lib-module/Carousel/CarouselItem/CarouselItem.js +3 -2
  182. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
  183. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +2 -2
  184. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -6
  185. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -3
  186. package/lib-module/Carousel/CarouselThumbnail.js +4 -2
  187. package/lib-module/Carousel/CarouselThumbnailNavigation.js +2 -2
  188. package/lib-module/Checkbox/Checkbox.js +2 -2
  189. package/lib-module/Checkbox/CheckboxButton.js +3 -3
  190. package/lib-module/Checkbox/CheckboxGroup.js +2 -2
  191. package/lib-module/Checkbox/CheckboxInput.js +4 -12
  192. package/lib-module/CheckboxCard/CheckboxCard.js +2 -2
  193. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +2 -2
  194. package/lib-module/ColourToggle/ColourBubble.js +5 -4
  195. package/lib-module/ColourToggle/ColourToggle.js +3 -3
  196. package/lib-module/Divider/Divider.js +2 -2
  197. package/lib-module/ExpandCollapse/Accordion.js +2 -2
  198. package/lib-module/ExpandCollapse/Control.js +2 -2
  199. package/lib-module/ExpandCollapse/ExpandCollapse.js +2 -2
  200. package/lib-module/ExpandCollapse/Panel.js +3 -3
  201. package/lib-module/Feedback/Feedback.js +2 -2
  202. package/lib-module/Fieldset/Fieldset.js +2 -2
  203. package/lib-module/Fieldset/FieldsetContainer.js +2 -2
  204. package/lib-module/Fieldset/FieldsetContainer.native.js +2 -2
  205. package/lib-module/Fieldset/Legend.js +2 -2
  206. package/lib-module/Fieldset/Legend.native.js +2 -2
  207. package/lib-module/FlexGrid/Col/Col.js +3 -3
  208. package/lib-module/FlexGrid/FlexGrid.js +2 -2
  209. package/lib-module/FlexGrid/Row/Row.js +2 -2
  210. package/lib-module/Footnote/Footnote.js +9 -7
  211. package/lib-module/Footnote/FootnoteLink.js +5 -4
  212. package/lib-module/HorizontalScroll/HorizontalScroll.js +8 -8
  213. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +2 -2
  214. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -8
  215. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +2 -2
  216. package/lib-module/Icon/Icon.js +2 -2
  217. package/lib-module/Icon/IconText.js +2 -2
  218. package/lib-module/IconButton/IconButton.js +2 -2
  219. package/lib-module/InputLabel/InputLabel.js +2 -2
  220. package/lib-module/InputLabel/LabelContent.js +2 -2
  221. package/lib-module/InputLabel/LabelContent.native.js +2 -2
  222. package/lib-module/InputSupports/InputSupports.js +4 -3
  223. package/lib-module/Link/ChevronLink.js +2 -2
  224. package/lib-module/Link/InlinePressable.js +10 -4
  225. package/lib-module/Link/InlinePressable.native.js +12 -6
  226. package/lib-module/Link/Link.js +2 -2
  227. package/lib-module/Link/LinkBase.js +2 -2
  228. package/lib-module/Link/TextButton.js +2 -2
  229. package/lib-module/List/List.js +13 -9
  230. package/lib-module/List/ListItem.js +2 -2
  231. package/lib-module/List/ListItemBase.js +6 -8
  232. package/lib-module/List/ListItemContent.js +4 -2
  233. package/lib-module/List/ListItemMark.js +4 -2
  234. package/lib-module/List/PressableListItemBase.js +2 -2
  235. package/lib-module/Listbox/GroupControl.js +4 -2
  236. package/lib-module/Listbox/Listbox.js +7 -7
  237. package/lib-module/Listbox/ListboxContext.js +2 -2
  238. package/lib-module/Listbox/ListboxGroup.js +2 -2
  239. package/lib-module/Listbox/ListboxItem.js +2 -3
  240. package/lib-module/Listbox/ListboxOverlay.js +2 -3
  241. package/lib-module/Listbox/PressableItem.js +2 -3
  242. package/lib-module/Modal/Modal.js +5 -5
  243. package/lib-module/Modal/ModalContent.js +7 -5
  244. package/lib-module/Modal/WebModal.js +16 -9
  245. package/lib-module/MultiSelectFilter/ModalOverlay.js +2 -2
  246. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +10 -8
  247. package/lib-module/Notification/Notification.js +5 -5
  248. package/lib-module/OrderedList/Item.js +4 -8
  249. package/lib-module/OrderedList/ItemBase.js +2 -2
  250. package/lib-module/OrderedList/OrderedList.js +6 -12
  251. package/lib-module/OrderedList/OrderedListBase.js +2 -2
  252. package/lib-module/Pagination/PageButton.js +2 -2
  253. package/lib-module/Pagination/Pagination.js +2 -2
  254. package/lib-module/Pagination/SideButton.js +2 -2
  255. package/lib-module/PriceLockup/PriceLockup.js +5 -5
  256. package/lib-module/ProductCard/ProductCard.js +3 -2
  257. package/lib-module/ProductCardGroup/ProductCardGroup.js +5 -4
  258. package/lib-module/Progress/Progress.js +2 -2
  259. package/lib-module/Progress/ProgressBar.js +2 -2
  260. package/lib-module/Progress/ProgressBarBackground.js +2 -2
  261. package/lib-module/QuickLinks/QuickLinks.js +2 -2
  262. package/lib-module/QuickLinks/QuickLinksCard.js +4 -2
  263. package/lib-module/QuickLinks/QuickLinksItem.js +2 -2
  264. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +9 -5
  265. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +10 -10
  266. package/lib-module/Radio/Radio.js +2 -2
  267. package/lib-module/Radio/RadioButton.js +62 -14
  268. package/lib-module/Radio/RadioGroup.js +2 -2
  269. package/lib-module/Radio/RadioInput.js +6 -16
  270. package/lib-module/RadioCard/RadioCard.js +2 -2
  271. package/lib-module/RadioCard/RadioCardGroup.js +2 -2
  272. package/lib-module/Responsive/Responsive.js +3 -2
  273. package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
  274. package/lib-module/Search/Search.js +2 -2
  275. package/lib-module/Select/Group.js +4 -2
  276. package/lib-module/Select/Item.js +4 -2
  277. package/lib-module/Select/Picker.js +2 -2
  278. package/lib-module/Select/Picker.native.js +3 -3
  279. package/lib-module/Select/Select.js +4 -4
  280. package/lib-module/SideNav/Item.js +2 -2
  281. package/lib-module/SideNav/ItemContent.js +4 -2
  282. package/lib-module/SideNav/ItemsGroup.js +2 -2
  283. package/lib-module/SideNav/SideNav.js +3 -3
  284. package/lib-module/Skeleton/Skeleton.js +2 -2
  285. package/lib-module/SkipLink/SkipLink.js +2 -2
  286. package/lib-module/Spacer/Spacer.js +2 -2
  287. package/lib-module/StackView/StackView.js +2 -2
  288. package/lib-module/StackView/StackWrap.js +3 -3
  289. package/lib-module/StackView/StackWrapBox.js +2 -2
  290. package/lib-module/StackView/StackWrapGap.js +2 -2
  291. package/lib-module/StackView/getStackedContent.js +4 -4
  292. package/lib-module/StepTracker/Step.js +4 -2
  293. package/lib-module/StepTracker/StepTracker.js +2 -2
  294. package/lib-module/Tabs/Tabs.js +3 -3
  295. package/lib-module/Tabs/TabsItem.js +3 -3
  296. package/lib-module/Tags/Tags.js +2 -2
  297. package/lib-module/TextInput/TextArea.js +3 -3
  298. package/lib-module/TextInput/TextInput.js +2 -2
  299. package/lib-module/TextInput/TextInputBase.js +7 -7
  300. package/lib-module/ThemeProvider/ThemeProvider.js +5 -5
  301. package/lib-module/Timeline/Timeline.js +2 -2
  302. package/lib-module/ToggleSwitch/ToggleSwitch.js +2 -2
  303. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +2 -2
  304. package/lib-module/Tooltip/Tooltip.js +6 -6
  305. package/lib-module/Tooltip/Tooltip.native.js +12 -12
  306. package/lib-module/TooltipButton/TooltipButton.js +4 -2
  307. package/lib-module/Typography/Typography.js +2 -2
  308. package/lib-module/Validator/Validator.js +11 -11
  309. package/lib-module/ViewportProvider/ViewportProvider.js +2 -2
  310. package/lib-module/index.js +1 -0
  311. package/lib-module/utils/BaseView/BaseView.js +2 -2
  312. package/lib-module/utils/children.js +4 -4
  313. package/lib-module/utils/withLinkRouter.js +3 -3
  314. package/package.json +2 -2
  315. package/src/A11yInfoProvider/index.jsx +8 -8
  316. package/src/A11yText/index.jsx +2 -2
  317. package/src/ActivityIndicator/Spinner.jsx +2 -2
  318. package/src/ActivityIndicator/Spinner.native.jsx +2 -2
  319. package/src/Autocomplete/Autocomplete.jsx +15 -14
  320. package/src/Autocomplete/Loading.jsx +6 -3
  321. package/src/Autocomplete/Suggestions.jsx +2 -2
  322. package/src/Badge/Badge.jsx +2 -2
  323. package/src/BaseProvider/HydrationContext.jsx +5 -5
  324. package/src/Box/Box.jsx +5 -5
  325. package/src/Button/Button.jsx +11 -9
  326. package/src/Button/ButtonBase.jsx +2 -3
  327. package/src/Button/ButtonDropdown.jsx +2 -2
  328. package/src/Button/ButtonGroup.jsx +2 -2
  329. package/src/Button/ButtonLink.jsx +2 -2
  330. package/src/Card/Card.jsx +151 -11
  331. package/src/Card/CardBase.jsx +2 -2
  332. package/src/Card/PressableCardBase.jsx +18 -4
  333. package/src/CardGroup/CardGroup.jsx +249 -0
  334. package/src/CardGroup/dictionary.js +8 -0
  335. package/src/CardGroup/index.js +3 -0
  336. package/src/Carousel/Carousel.jsx +69 -53
  337. package/src/Carousel/CarouselFirstFocus/CarouselFirstFocus.jsx +2 -2
  338. package/src/Carousel/CarouselItem/CarouselItem.jsx +19 -17
  339. package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +5 -3
  340. package/src/Carousel/CarouselTabs/CarouselTabs.jsx +2 -2
  341. package/src/Carousel/CarouselTabs/CarouselTabsPanel.jsx +6 -6
  342. package/src/Carousel/CarouselTabs/CarouselTabsPanelItem.jsx +3 -3
  343. package/src/Carousel/CarouselThumbnail.jsx +6 -2
  344. package/src/Carousel/CarouselThumbnailNavigation.jsx +2 -2
  345. package/src/Checkbox/Checkbox.jsx +2 -2
  346. package/src/Checkbox/CheckboxButton.jsx +5 -7
  347. package/src/Checkbox/CheckboxGroup.jsx +2 -2
  348. package/src/Checkbox/CheckboxInput.jsx +15 -12
  349. package/src/CheckboxCard/CheckboxCard.jsx +2 -2
  350. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +2 -2
  351. package/src/ColourToggle/ColourBubble.jsx +5 -4
  352. package/src/ColourToggle/ColourToggle.jsx +3 -3
  353. package/src/Divider/Divider.jsx +2 -2
  354. package/src/ExpandCollapse/Accordion.jsx +4 -2
  355. package/src/ExpandCollapse/Control.jsx +2 -2
  356. package/src/ExpandCollapse/ExpandCollapse.jsx +2 -2
  357. package/src/ExpandCollapse/Panel.jsx +3 -3
  358. package/src/Feedback/Feedback.jsx +2 -2
  359. package/src/Fieldset/Fieldset.jsx +2 -2
  360. package/src/Fieldset/FieldsetContainer.jsx +2 -2
  361. package/src/Fieldset/FieldsetContainer.native.jsx +2 -2
  362. package/src/Fieldset/Legend.jsx +2 -2
  363. package/src/Fieldset/Legend.native.jsx +2 -2
  364. package/src/FlexGrid/Col/Col.jsx +3 -3
  365. package/src/FlexGrid/FlexGrid.jsx +2 -2
  366. package/src/FlexGrid/Row/Row.jsx +2 -2
  367. package/src/Footnote/Footnote.jsx +111 -98
  368. package/src/Footnote/FootnoteLink.jsx +35 -31
  369. package/src/HorizontalScroll/HorizontalScroll.jsx +8 -8
  370. package/src/HorizontalScroll/HorizontalScrollButton.jsx +2 -2
  371. package/src/HorizontalScroll/ScrollViewEnd.jsx +4 -8
  372. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +2 -2
  373. package/src/Icon/Icon.jsx +2 -2
  374. package/src/Icon/IconText.jsx +2 -2
  375. package/src/IconButton/IconButton.jsx +2 -2
  376. package/src/InputLabel/InputLabel.jsx +2 -2
  377. package/src/InputLabel/LabelContent.jsx +2 -2
  378. package/src/InputLabel/LabelContent.native.jsx +2 -2
  379. package/src/InputSupports/InputSupports.jsx +4 -3
  380. package/src/Link/ChevronLink.jsx +2 -2
  381. package/src/Link/InlinePressable.jsx +22 -15
  382. package/src/Link/InlinePressable.native.jsx +12 -6
  383. package/src/Link/Link.jsx +2 -2
  384. package/src/Link/LinkBase.jsx +2 -2
  385. package/src/Link/TextButton.jsx +2 -2
  386. package/src/List/List.jsx +15 -7
  387. package/src/List/ListItem.jsx +2 -2
  388. package/src/List/ListItemBase.jsx +6 -12
  389. package/src/List/ListItemContent.jsx +5 -2
  390. package/src/List/ListItemMark.jsx +5 -3
  391. package/src/List/PressableListItemBase.jsx +2 -2
  392. package/src/Listbox/GroupControl.jsx +5 -2
  393. package/src/Listbox/Listbox.jsx +7 -7
  394. package/src/Listbox/ListboxContext.js +2 -2
  395. package/src/Listbox/ListboxGroup.jsx +2 -2
  396. package/src/Listbox/ListboxItem.jsx +2 -3
  397. package/src/Listbox/ListboxOverlay.jsx +2 -3
  398. package/src/Listbox/PressableItem.jsx +2 -3
  399. package/src/Modal/Modal.jsx +5 -5
  400. package/src/Modal/ModalContent.jsx +132 -125
  401. package/src/Modal/WebModal.jsx +13 -8
  402. package/src/MultiSelectFilter/ModalOverlay.jsx +2 -2
  403. package/src/MultiSelectFilter/MultiSelectFilter.jsx +263 -252
  404. package/src/Notification/Notification.jsx +5 -5
  405. package/src/OrderedList/Item.jsx +4 -6
  406. package/src/OrderedList/ItemBase.jsx +2 -2
  407. package/src/OrderedList/OrderedList.jsx +4 -7
  408. package/src/OrderedList/OrderedListBase.jsx +2 -2
  409. package/src/Pagination/PageButton.jsx +2 -2
  410. package/src/Pagination/Pagination.jsx +2 -2
  411. package/src/Pagination/SideButton.jsx +2 -2
  412. package/src/PriceLockup/PriceLockup.jsx +93 -88
  413. package/src/ProductCard/ProductCard.jsx +90 -84
  414. package/src/ProductCardGroup/ProductCardGroup.jsx +5 -5
  415. package/src/Progress/Progress.jsx +2 -2
  416. package/src/Progress/ProgressBar.jsx +2 -2
  417. package/src/Progress/ProgressBarBackground.jsx +4 -2
  418. package/src/QuickLinks/QuickLinks.jsx +2 -2
  419. package/src/QuickLinks/QuickLinksCard.jsx +9 -3
  420. package/src/QuickLinks/QuickLinksItem.jsx +2 -2
  421. package/src/QuickLinksFeature/QuickLinksFeature.jsx +31 -27
  422. package/src/QuickLinksFeature/QuickLinksFeatureItem.jsx +3 -3
  423. package/src/Radio/Radio.jsx +2 -2
  424. package/src/Radio/RadioButton.jsx +58 -6
  425. package/src/Radio/RadioGroup.jsx +2 -2
  426. package/src/Radio/RadioInput.jsx +15 -14
  427. package/src/RadioCard/RadioCard.jsx +2 -2
  428. package/src/RadioCard/RadioCardGroup.jsx +2 -2
  429. package/src/Responsive/Responsive.jsx +8 -3
  430. package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +23 -16
  431. package/src/Search/Search.jsx +2 -2
  432. package/src/Select/Group.jsx +9 -3
  433. package/src/Select/Item.jsx +7 -1
  434. package/src/Select/Picker.jsx +2 -2
  435. package/src/Select/Picker.native.jsx +3 -3
  436. package/src/Select/Select.jsx +4 -4
  437. package/src/SideNav/Item.jsx +2 -2
  438. package/src/SideNav/ItemContent.jsx +7 -3
  439. package/src/SideNav/ItemsGroup.jsx +2 -2
  440. package/src/SideNav/SideNav.jsx +3 -3
  441. package/src/Skeleton/Skeleton.jsx +2 -2
  442. package/src/SkipLink/SkipLink.jsx +2 -2
  443. package/src/Spacer/Spacer.jsx +2 -2
  444. package/src/StackView/StackView.jsx +2 -2
  445. package/src/StackView/StackWrap.jsx +3 -3
  446. package/src/StackView/StackWrapBox.jsx +2 -2
  447. package/src/StackView/StackWrapGap.jsx +2 -2
  448. package/src/StackView/getStackedContent.jsx +4 -4
  449. package/src/StepTracker/Step.jsx +75 -67
  450. package/src/StepTracker/StepTracker.jsx +2 -2
  451. package/src/Tabs/Tabs.jsx +3 -3
  452. package/src/Tabs/TabsItem.jsx +3 -3
  453. package/src/Tags/Tags.jsx +2 -2
  454. package/src/TextInput/TextArea.jsx +3 -3
  455. package/src/TextInput/TextInput.jsx +2 -2
  456. package/src/TextInput/TextInputBase.jsx +7 -7
  457. package/src/ThemeProvider/ThemeProvider.jsx +5 -5
  458. package/src/Timeline/Timeline.jsx +2 -2
  459. package/src/ToggleSwitch/ToggleSwitch.jsx +2 -2
  460. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +2 -2
  461. package/src/Tooltip/Tooltip.jsx +6 -6
  462. package/src/Tooltip/Tooltip.native.jsx +12 -12
  463. package/src/TooltipButton/TooltipButton.jsx +5 -2
  464. package/src/Typography/Typography.jsx +2 -2
  465. package/src/Validator/Validator.jsx +11 -11
  466. package/src/ViewportProvider/ViewportProvider.jsx +2 -2
  467. package/src/index.js +1 -0
  468. package/src/utils/BaseView/BaseView.jsx +2 -2
  469. package/src/utils/children.jsx +4 -4
  470. package/src/utils/withLinkRouter.jsx +3 -3
  471. package/types/ExpandCollapse.d.ts +1 -1
@@ -1,5 +1,4 @@
1
- /* eslint-disable react/require-default-props */
2
- import React, { forwardRef, useEffect, useRef, useState } from 'react';
1
+ import React from 'react';
3
2
  import PropTypes from 'prop-types';
4
3
  import Dimensions from "react-native-web/dist/exports/Dimensions";
5
4
  import Platform from "react-native-web/dist/exports/Platform";
@@ -87,7 +86,7 @@ const highlight = function () {
87
86
  return [...acc, item];
88
87
  }, []);
89
88
  };
90
- const Autocomplete = /*#__PURE__*/forwardRef((_ref2, ref) => {
89
+ const Autocomplete = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
91
90
  var _ref3;
92
91
  let {
93
92
  children,
@@ -122,23 +121,23 @@ const Autocomplete = /*#__PURE__*/forwardRef((_ref2, ref) => {
122
121
  const isControlled = value !== undefined;
123
122
 
124
123
  // We need to store current items for uncontrolled usage
125
- const [currentItems, setCurrentItems] = useState(initialItems);
126
- const [otherItems, setOtherItems] = useState(items);
124
+ const [currentItems, setCurrentItems] = React.useState(initialItems);
125
+ const [otherItems, setOtherItems] = React.useState(items);
127
126
 
128
127
  // We need to store the current value as well to be able to highlight it
129
- const [currentValue, setCurrentValue] = useState(value ?? initialValue);
128
+ const [currentValue, setCurrentValue] = React.useState(value ?? initialValue);
130
129
  const inputTokens = {
131
130
  paddingLeft: INPUT_LEFT_PADDING
132
131
  };
133
132
 
134
133
  // Setting up the overlay
135
- const openOverlayRef = useRef();
136
- const [isExpanded, setIsExpanded] = useState(((_ref3 = value ?? initialValue) === null || _ref3 === void 0 ? void 0 : _ref3.length) >= minToSuggestion);
137
- const [isFocused, setisFocused] = useState(false);
138
- const [sourceLayout, setSourceLayout] = useState(null);
134
+ const openOverlayRef = React.useRef();
135
+ const [isExpanded, setIsExpanded] = React.useState(((_ref3 = value ?? initialValue) === null || _ref3 === void 0 ? void 0 : _ref3.length) >= minToSuggestion);
136
+ const [isFocused, setisFocused] = React.useState(false);
137
+ const [sourceLayout, setSourceLayout] = React.useState(null);
139
138
 
140
139
  // When it's nested, selected value
141
- const [nestedSelectedValue, setNestedSelectedValue] = useState(null);
140
+ const [nestedSelectedValue, setNestedSelectedValue] = React.useState(null);
142
141
  const {
143
142
  supportsProps,
144
143
  ...selectedProps
@@ -160,7 +159,7 @@ const Autocomplete = /*#__PURE__*/forwardRef((_ref2, ref) => {
160
159
  vertical: Platform.OS !== 'web' && (hint || inputLabel) ? 28 : 4
161
160
  }
162
161
  });
163
- const targetRef = useRef(null);
162
+ const targetRef = React.useRef(null);
164
163
  // We limit the number of suggestions displayed to avoid huge lists
165
164
  // TODO: add a way to make the `Listbox` occupy fixed height and be scrollable
166
165
  // within that height, which will unlock similar behaviour for `AutoComplete` as well
@@ -173,7 +172,7 @@ const Autocomplete = /*#__PURE__*/forwardRef((_ref2, ref) => {
173
172
  copy
174
173
  });
175
174
  // Tracking input width changes to resize the listbox overlay accordingly
176
- const [inputWidth, setInputWidth] = useState();
175
+ const [inputWidth, setInputWidth] = React.useState();
177
176
  useSafeLayoutEffect(() => {
178
177
  if (Platform.OS === 'web') {
179
178
  const updateInputWidth = () => {
@@ -248,7 +247,7 @@ const Autocomplete = /*#__PURE__*/forwardRef((_ref2, ref) => {
248
247
  * within the list, if doesn't exist the nested item is added to the top of the list,
249
248
  * the nested item is added with an id equal "0"
250
249
  */
251
- useEffect(() => {
250
+ React.useEffect(() => {
252
251
  if (nestedSelectedValue && !items.find(item => item.id === 0)) {
253
252
  const tmpItems = [...items];
254
253
  tmpItems.unshift({
@@ -6,12 +6,13 @@ import Box from '../Box';
6
6
  import StackView from '../StackView';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
- const Loading = _ref => {
9
+ const Loading = /*#__PURE__*/React.forwardRef((_ref, ref) => {
10
10
  let {
11
11
  label
12
12
  } = _ref;
13
13
  return /*#__PURE__*/_jsx(Box, {
14
14
  space: 3,
15
+ ref: ref,
15
16
  children: /*#__PURE__*/_jsxs(StackView, {
16
17
  direction: "row",
17
18
  space: 2,
@@ -27,7 +28,8 @@ const Loading = _ref => {
27
28
  })]
28
29
  })
29
30
  });
30
- };
31
+ });
32
+ Loading.displayName = 'Loading';
31
33
  Loading.propTypes = {
32
34
  label: PropTypes.string
33
35
  };
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import A11yText from '../A11yText';
4
4
  import Typography from '../Typography';
@@ -7,7 +7,7 @@ import Listbox from '../Listbox';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  import { Fragment as _Fragment } from "react/jsx-runtime";
9
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
- const Suggestions = /*#__PURE__*/forwardRef((_ref, ref) => {
10
+ const Suggestions = /*#__PURE__*/React.forwardRef((_ref, ref) => {
11
11
  let {
12
12
  hasResults,
13
13
  items = [],
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import View from "react-native-web/dist/exports/View";
3
3
  import StyleSheet from "react-native-web/dist/exports/StyleSheet";
4
4
  import PropTypes from 'prop-types';
@@ -66,7 +66,7 @@ const getTypographyVariant = _ref5 => {
66
66
  size: fontSizeMapping[fontSize]
67
67
  };
68
68
  };
69
- const Badge = /*#__PURE__*/forwardRef((_ref6, ref) => {
69
+ const Badge = /*#__PURE__*/React.forwardRef((_ref6, ref) => {
70
70
  let {
71
71
  children,
72
72
  tokens,
@@ -1,8 +1,8 @@
1
- import React, { createContext, useContext, useEffect, useState } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Platform from "react-native-web/dist/exports/Platform";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- const HydrationContext = /*#__PURE__*/createContext();
5
+ const HydrationContext = /*#__PURE__*/React.createContext();
6
6
  const isSSR = typeof window === 'undefined';
7
7
  const hasWebStyleTag = () => {
8
8
  var _document;
@@ -19,7 +19,7 @@ const hasWebStyleTag = () => {
19
19
  * during the very first client-side render or hydration, but not available on the server,
20
20
  * to ensure no changes happen until the original SSR DOM has been hydrated.
21
21
  */
22
- export const useHydrationContext = () => useContext(HydrationContext);
22
+ export const useHydrationContext = () => React.useContext(HydrationContext);
23
23
 
24
24
  /**
25
25
  * Allows components and hooks to observe if SSR hydration is currently in progress
@@ -29,8 +29,8 @@ export const HydrationProvider = _ref => {
29
29
  let {
30
30
  children
31
31
  } = _ref;
32
- const [hasMounted, setHasMounted] = useState(false);
33
- useEffect(() => {
32
+ const [hasMounted, setHasMounted] = React.useState(false);
33
+ React.useEffect(() => {
34
34
  setHasMounted(true);
35
35
  }, []);
36
36
 
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useEffect, useState } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import View from "react-native-web/dist/exports/View";
4
4
  import ScrollView from "react-native-web/dist/exports/ScrollView";
@@ -170,7 +170,7 @@ const setBackgroundImage = _ref2 => {
170
170
  * text content is inside a scrollable box, as screens are not scrollable by default and even very
171
171
  * short text will require scrolling on small devices at the highest accessibility text scaling settings.
172
172
  */
173
- const Box = /*#__PURE__*/forwardRef((_ref3, ref) => {
173
+ const Box = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
174
174
  let {
175
175
  space,
176
176
  horizontal = space,
@@ -218,8 +218,8 @@ const Box = /*#__PURE__*/forwardRef((_ref3, ref) => {
218
218
  const backgroundImageResizeMode = useResponsiveProp(resizeMode, 'cover');
219
219
  const backgroundImagePosition = useResponsiveProp(position, 'none');
220
220
  const backgroundImageAlign = useResponsiveProp(align, 'stretch');
221
- const [backgroundImageWidth, setBackgroundImageWidth] = useState(0);
222
- const [backgroundImageHeight, setBackgroundImageHeight] = useState(0);
221
+ const [backgroundImageWidth, setBackgroundImageWidth] = React.useState(0);
222
+ const [backgroundImageHeight, setBackgroundImageHeight] = React.useState(0);
223
223
  if (backgroundImage) content = setBackgroundImage({
224
224
  src,
225
225
  alt,
@@ -230,7 +230,7 @@ const Box = /*#__PURE__*/forwardRef((_ref3, ref) => {
230
230
  backgroundImageHeight,
231
231
  content
232
232
  });
233
- useEffect(() => {
233
+ React.useEffect(() => {
234
234
  if (backgroundImage && backgroundImageWidth === 0 && backgroundImageHeight === 0) {
235
235
  Image.getSize(src, (width, height) => {
236
236
  // Only update the state if the size has changed
@@ -1,11 +1,11 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import ButtonBase from './ButtonBase';
3
3
  import buttonPropTypes, { textAndA11yText } from './propTypes';
4
4
  import { useThemeTokensCallback } from '../ThemeProvider';
5
5
  import { a11yProps } from '../utils/props';
6
6
  import { useViewport } from '../ViewportProvider';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
- const Button = /*#__PURE__*/forwardRef((_ref, ref) => {
8
+ const Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {
9
9
  let {
10
10
  accessibilityRole = 'button',
11
11
  tokens,
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Pressable from "react-native-web/dist/exports/Pressable";
4
4
  import View from "react-native-web/dist/exports/View";
@@ -218,7 +218,7 @@ const selectItemIconTokens = _ref10 => {
218
218
  color: iconColor || color
219
219
  };
220
220
  };
221
- const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
221
+ const ButtonBase = /*#__PURE__*/React.forwardRef((_ref11, ref) => {
222
222
  let {
223
223
  id,
224
224
  href,
@@ -321,9 +321,6 @@ ButtonBase.propTypes = {
321
321
  ...selectedSystemPropTypes,
322
322
  ...buttonPropTypes
323
323
  };
324
- ButtonBase.defaultProps = {
325
- id: undefined
326
- };
327
324
  const staticStyles = StyleSheet.create({
328
325
  row: {
329
326
  // Apply all button alignment horizontally; no vertical stacking within a button
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Platform from "react-native-web/dist/exports/Platform";
4
4
  import Text from "react-native-web/dist/exports/Text";
@@ -49,7 +49,7 @@ const selectIconTokens = _ref => {
49
49
  }
50
50
  };
51
51
  };
52
- const ButtonDropdown = /*#__PURE__*/forwardRef((_ref2, ref) => {
52
+ const ButtonDropdown = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
53
53
  let {
54
54
  value,
55
55
  initialValue,
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import ABBPropTypes from 'airbnb-prop-types';
4
4
  import Platform from "react-native-web/dist/exports/Platform";
@@ -12,7 +12,7 @@ import { getPressHandlersWithArgs } from '../utils/pressability';
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
14
14
  const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, pressProps, viewProps]);
15
- const ButtonGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
15
+ const ButtonGroup = /*#__PURE__*/React.forwardRef((_ref, ref) => {
16
16
  let {
17
17
  variant,
18
18
  buttonVariant,
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import ButtonBase from './ButtonBase';
4
4
  import buttonPropTypes, { textAndA11yText } from './propTypes';
@@ -11,7 +11,7 @@ import { useViewport } from '../ViewportProvider';
11
11
  * ButtonLink is a block-level component and should not be used inline.
12
12
  */
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
- const ButtonLink = /*#__PURE__*/forwardRef((_ref, ref) => {
14
+ const ButtonLink = /*#__PURE__*/React.forwardRef((_ref, ref) => {
15
15
  let {
16
16
  accessibilityRole = 'link',
17
17
  tokens,
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import View from "react-native-web/dist/exports/View";
4
4
  import { useThemeTokens, useThemeTokensCallback, useResponsiveThemeTokens, useTheme } from '../ThemeProvider';
@@ -7,10 +7,52 @@ import { useViewport } from '../ViewportProvider';
7
7
  import { a11yProps, selectSystemProps, viewProps } from '../utils/props';
8
8
  import CardBase from './CardBase';
9
9
  import PressableCardBase from './PressableCardBase';
10
+ import CheckboxButton from '../Checkbox/CheckboxButton';
11
+ import RadioButton from '../Radio/RadioButton';
10
12
  import { jsx as _jsx } from "react/jsx-runtime";
11
13
  import { Fragment as _Fragment } from "react/jsx-runtime";
12
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
15
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
16
+ const SelectionType = {
17
+ Checkbox: 'checkbox',
18
+ Radio: 'radiogroup',
19
+ None: undefined
20
+ };
21
+ const selectInputStyle = _ref => {
22
+ let {
23
+ paddingTop,
24
+ paddingRight
25
+ } = _ref;
26
+ return {
27
+ position: 'absolute',
28
+ top: paddingTop,
29
+ right: paddingRight
30
+ };
31
+ };
32
+ const getInputProps = _ref2 => {
33
+ let {
34
+ id,
35
+ checkColor,
36
+ boxBackgroundColor,
37
+ checkBackgroundColor,
38
+ isControlled,
39
+ isChecked,
40
+ isInactive,
41
+ handleChange
42
+ } = _ref2;
43
+ return {
44
+ inputId: id,
45
+ tokens: {
46
+ iconColor: checkColor,
47
+ inputBackgroundColor: boxBackgroundColor,
48
+ iconBackgroundColor: checkBackgroundColor
49
+ },
50
+ isControlled,
51
+ isChecked,
52
+ inactive: isInactive,
53
+ handleChange
54
+ };
55
+ };
14
56
 
15
57
  /**
16
58
  * A basic card component, unstyled by default.
@@ -60,16 +102,18 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
60
102
  * you automatically make inaccessible its children, which may or may not be appropriate
61
103
  * depending on what you are trying to achieve.
62
104
  */
63
- const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
105
+ const Card = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
106
+ var _interactiveCard$vari, _interactiveCard$vari2;
64
107
  let {
65
108
  children,
66
109
  tokens,
67
110
  variant,
68
111
  dataSet,
69
112
  onPress,
113
+ id,
70
114
  interactiveCard,
71
115
  ...rest
72
- } = _ref;
116
+ } = _ref3;
73
117
  const viewport = useViewport();
74
118
  const {
75
119
  themeOptions
@@ -81,6 +125,9 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
81
125
  const themeTokens = useTokens('Card', tokens, variant, !enableMediaQueryStyleSheet && {
82
126
  viewport
83
127
  });
128
+ const selected = interactiveCard === null || interactiveCard === void 0 ? void 0 : (_interactiveCard$vari = interactiveCard.variant) === null || _interactiveCard$vari === void 0 ? void 0 : _interactiveCard$vari.selected;
129
+ const inactive = interactiveCard === null || interactiveCard === void 0 ? void 0 : (_interactiveCard$vari2 = interactiveCard.variant) === null || _interactiveCard$vari2 === void 0 ? void 0 : _interactiveCard$vari2.inactive;
130
+ const selectionType = interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.selectionType;
84
131
  const getThemeTokens = useThemeTokensCallback('Card', interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.tokens, {
85
132
  interactive: true,
86
133
  ...((interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.variant) || {})
@@ -93,7 +140,45 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
93
140
  paddingLeft,
94
141
  paddingRight,
95
142
  ...restOfTokens
96
- } = themeTokens;
143
+ } = selectionType ? getThemeTokens() : themeTokens;
144
+ const {
145
+ inputBackgroundColor,
146
+ iconBackgroundColor,
147
+ iconColor,
148
+ icon,
149
+ inputBorderRadius,
150
+ inputHeight,
151
+ inputWidth,
152
+ iconSize,
153
+ inputShadow,
154
+ inputBorderWidth,
155
+ inputBorderColor
156
+ } = getThemeTokens();
157
+ const checkboxTokens = {
158
+ inputBackgroundColor,
159
+ iconBackgroundColor,
160
+ icon,
161
+ iconColor,
162
+ inputBorderRadius,
163
+ inputHeight,
164
+ inputWidth,
165
+ iconSize,
166
+ inputShadow,
167
+ inputBorderWidth,
168
+ inputBorderColor
169
+ };
170
+ const radioTokens = {
171
+ iconBackgroundColor,
172
+ iconColor,
173
+ containerShadow: inputShadow,
174
+ icon,
175
+ inputBackgroundColor,
176
+ inputBorderRadius,
177
+ inputSize: inputHeight,
178
+ checkedSize: iconSize,
179
+ inputBorderWidth,
180
+ inputBorderColor
181
+ };
97
182
  let cardStyles;
98
183
  let mediaIds;
99
184
  if (enableMediaQueryStyleSheet) {
@@ -109,6 +194,43 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
109
194
  } else {
110
195
  cardStyles = themeTokens;
111
196
  }
197
+ const renderInputPerSelectionType = props => {
198
+ switch (selectionType) {
199
+ case SelectionType.Checkbox:
200
+ return /*#__PURE__*/_jsx(View, {
201
+ style: selectInputStyle(getThemeTokens()),
202
+ children: /*#__PURE__*/_jsx(CheckboxButton, {
203
+ ...props,
204
+ tokens: {
205
+ ...checkboxTokens,
206
+ ...(props === null || props === void 0 ? void 0 : props.tokens)
207
+ }
208
+ })
209
+ });
210
+ case SelectionType.Radio:
211
+ return /*#__PURE__*/_jsx(View, {
212
+ style: selectInputStyle(getThemeTokens()),
213
+ children: /*#__PURE__*/_jsx(RadioButton, {
214
+ ...props,
215
+ tokens: {
216
+ ...radioTokens,
217
+ ...(props === null || props === void 0 ? void 0 : props.tokens)
218
+ }
219
+ })
220
+ });
221
+ default:
222
+ return null;
223
+ }
224
+ };
225
+ const renderNoSelectionView = () => /*#__PURE__*/_jsx(View, {
226
+ style: {
227
+ paddingTop,
228
+ paddingBottom,
229
+ paddingLeft,
230
+ paddingRight
231
+ },
232
+ children: children
233
+ });
112
234
  return /*#__PURE__*/_jsx(_Fragment, {
113
235
  children: /*#__PURE__*/_jsx(CardBase, {
114
236
  ref: ref,
@@ -124,16 +246,31 @@ const Card = /*#__PURE__*/forwardRef((_ref, ref) => {
124
246
  dataSet: dataSet,
125
247
  onPress: onPress,
126
248
  ...selectProps(rest),
127
- children: interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.body
128
- }), children ? /*#__PURE__*/_jsx(View, {
129
- style: {
130
- paddingTop,
131
- paddingBottom,
132
- paddingLeft,
133
- paddingRight
134
- },
135
- children: children
136
- }) : null]
249
+ children: cardState => {
250
+ const {
251
+ iconColor: checkColor,
252
+ inputBackgroundColor: boxBackgroundColor,
253
+ iconBackgroundColor: checkBackgroundColor
254
+ } = getThemeTokens({
255
+ ...cardState,
256
+ selected,
257
+ interactive: true,
258
+ isControl: true
259
+ }, interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.tokens);
260
+ return /*#__PURE__*/_jsxs(_Fragment, {
261
+ children: [renderInputPerSelectionType(getInputProps({
262
+ id,
263
+ checkColor,
264
+ boxBackgroundColor,
265
+ checkBackgroundColor,
266
+ isControlled: true,
267
+ isChecked: selected || (cardState === null || cardState === void 0 ? void 0 : cardState.hover),
268
+ isInactive: inactive,
269
+ onPress
270
+ })), interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.body]
271
+ });
272
+ }
273
+ }), children && selectionType !== SelectionType.None ? renderNoSelectionView() : null]
137
274
  }) : children
138
275
  })
139
276
  });
@@ -158,15 +295,23 @@ Card.propTypes = {
158
295
  * Note: This is only available when `interactiveCard` prop is used.
159
296
  */
160
297
  onPress: PropTypes.func,
298
+ /**
299
+ * Card ID.
300
+ */
301
+ id: PropTypes.string,
161
302
  /**
162
303
  * Object to set interactive card's properties
163
304
  * - body: The body of the interactive card, can be any renderable node
164
305
  * - tokens: The tokens to be used for the interactive card
306
+ * - selectionType: If the card has `isControl` variant set to `true`, the selectionType can have one of the following options:
307
+ - `radiogroup`
308
+ - `checkbox`
165
309
  * - variant: The variant to be used for the interactive card
166
310
  */
167
311
  interactiveCard: PropTypes.shape({
168
312
  body: PropTypes.node,
169
313
  tokens: getTokensPropType('Card'),
314
+ selectionType: PropTypes.oneOf(Object.values(SelectionType)),
170
315
  variant: variantProp.propType
171
316
  })
172
317
  };
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import View from "react-native-web/dist/exports/View";
4
4
  import Platform from "react-native-web/dist/exports/Platform";
@@ -49,7 +49,7 @@ const selectStyles = _ref => {
49
49
  * A themeless base component for Card which components can apply theme tokens to. Not
50
50
  * intended to be used in apps or sites directly: build themed components on top of this.
51
51
  */
52
- const CardBase = /*#__PURE__*/forwardRef((_ref2, ref) => {
52
+ const CardBase = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
53
53
  let {
54
54
  children,
55
55
  tokens,
@@ -1,14 +1,14 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Pressable from "react-native-web/dist/exports/Pressable";
4
4
  import Platform from "react-native-web/dist/exports/Platform";
5
5
  import { useViewport } from '../ViewportProvider';
6
6
  import { applyOuterBorder, validateThemeTokens } from '../ThemeProvider';
7
- import { a11yProps, clickProps, focusHandlerProps, getTokenNames, getTokensSetPropType, linkProps, resolvePressableState, resolvePressableTokens, selectSystemProps, selectTokens, variantProp, viewProps, withLinkRouter } from '../utils';
7
+ import { a11yProps, clickProps, focusHandlerProps, getTokensSetPropType, linkProps, resolvePressableState, resolvePressableTokens, selectSystemProps, selectTokens, variantProp, viewProps, withLinkRouter } from '../utils';
8
8
  import CardBase from './CardBase';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
11
- const tokenKeys = [...getTokenNames('Card'),
11
+ const tokenKeys = ['flex', 'backgroundColor', 'borderColor', 'gradient', 'borderRadius', 'borderWidth', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop', 'minWidth', 'shadow', 'contentAlignItems', 'contentJustifyContent', 'contentFlexGrow', 'contentFlexShrink',
12
12
  // Outer border tokens. TODO: centralise common token sets like these as part of
13
13
  // https://github.com/telus/universal-design-system/issues/782
14
14
  'outerBorderColor', 'outerBorderWidth', 'outerBorderGap'];
@@ -19,7 +19,7 @@ export const selectPressableCardTokens = tokens => Object.fromEntries(tokenKeys.
19
19
  * based on these to an outer border and a base Card component. Not intended to be used in
20
20
  * apps or sites directly: build themed components on top of this.
21
21
  */
22
- const PressableCardBase = /*#__PURE__*/forwardRef((_ref, ref) => {
22
+ const PressableCardBase = /*#__PURE__*/React.forwardRef((_ref, ref) => {
23
23
  let {
24
24
  children,
25
25
  tokens,