@telus-uds/components-base 1.83.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 (474) hide show
  1. package/CHANGELOG.md +36 -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 +11 -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 +308 -129
  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 +20 -13
  44. package/lib/ExpandCollapse/Panel.js +15 -5
  45. package/lib/ExpandCollapse/dictionary.js +17 -0
  46. package/lib/Feedback/Feedback.js +2 -4
  47. package/lib/Fieldset/Fieldset.js +2 -4
  48. package/lib/Fieldset/FieldsetContainer.js +2 -4
  49. package/lib/Fieldset/FieldsetContainer.native.js +2 -4
  50. package/lib/Fieldset/Legend.js +2 -4
  51. package/lib/Fieldset/Legend.native.js +2 -4
  52. package/lib/FlexGrid/Col/Col.js +3 -5
  53. package/lib/FlexGrid/FlexGrid.js +2 -4
  54. package/lib/FlexGrid/Row/Row.js +2 -4
  55. package/lib/Footnote/Footnote.js +9 -9
  56. package/lib/Footnote/FootnoteLink.js +5 -3
  57. package/lib/HorizontalScroll/HorizontalScroll.js +8 -10
  58. package/lib/HorizontalScroll/HorizontalScrollButton.js +2 -4
  59. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -10
  60. package/lib/HorizontalScroll/ScrollViewEnd.native.js +2 -4
  61. package/lib/Icon/Icon.js +2 -4
  62. package/lib/Icon/IconText.js +6 -6
  63. package/lib/IconButton/IconButton.js +2 -4
  64. package/lib/InputLabel/InputLabel.js +2 -4
  65. package/lib/InputLabel/LabelContent.js +2 -4
  66. package/lib/InputLabel/LabelContent.native.js +2 -4
  67. package/lib/InputSupports/InputSupports.js +4 -5
  68. package/lib/Link/ChevronLink.js +2 -4
  69. package/lib/Link/InlinePressable.js +8 -7
  70. package/lib/Link/InlinePressable.native.js +10 -8
  71. package/lib/Link/Link.js +2 -4
  72. package/lib/Link/LinkBase.js +2 -4
  73. package/lib/Link/TextButton.js +2 -4
  74. package/lib/List/List.js +13 -11
  75. package/lib/List/ListItem.js +2 -4
  76. package/lib/List/ListItemBase.js +6 -10
  77. package/lib/List/ListItemContent.js +4 -2
  78. package/lib/List/ListItemMark.js +4 -2
  79. package/lib/List/PressableListItemBase.js +2 -4
  80. package/lib/Listbox/GroupControl.js +4 -2
  81. package/lib/Listbox/Listbox.js +6 -6
  82. package/lib/Listbox/ListboxContext.js +3 -4
  83. package/lib/Listbox/ListboxGroup.js +2 -4
  84. package/lib/Listbox/ListboxItem.js +2 -6
  85. package/lib/Listbox/ListboxOverlay.js +2 -6
  86. package/lib/Listbox/PressableItem.js +2 -6
  87. package/lib/Modal/Modal.js +5 -7
  88. package/lib/Modal/ModalContent.js +7 -7
  89. package/lib/Modal/WebModal.js +19 -10
  90. package/lib/MultiSelectFilter/ModalOverlay.js +2 -4
  91. package/lib/MultiSelectFilter/MultiSelectFilter.js +10 -10
  92. package/lib/Notification/Notification.js +5 -7
  93. package/lib/OrderedList/Item.js +4 -10
  94. package/lib/OrderedList/ItemBase.js +2 -4
  95. package/lib/OrderedList/OrderedList.js +5 -13
  96. package/lib/OrderedList/OrderedListBase.js +2 -4
  97. package/lib/Pagination/PageButton.js +1 -1
  98. package/lib/Pagination/Pagination.js +1 -1
  99. package/lib/Pagination/SideButton.js +2 -4
  100. package/lib/PriceLockup/PriceLockup.js +5 -5
  101. package/lib/ProductCard/ProductCard.js +3 -2
  102. package/lib/ProductCardGroup/ProductCardGroup.js +5 -6
  103. package/lib/Progress/Progress.js +2 -4
  104. package/lib/Progress/ProgressBar.js +2 -4
  105. package/lib/Progress/ProgressBarBackground.js +2 -4
  106. package/lib/QuickLinks/QuickLinks.js +2 -4
  107. package/lib/QuickLinks/QuickLinksCard.js +4 -2
  108. package/lib/QuickLinks/QuickLinksItem.js +2 -4
  109. package/lib/QuickLinksFeature/QuickLinksFeature.js +9 -7
  110. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +10 -12
  111. package/lib/Radio/Radio.js +3 -3
  112. package/lib/Radio/RadioButton.js +61 -15
  113. package/lib/Radio/RadioGroup.js +2 -4
  114. package/lib/Radio/RadioInput.js +6 -18
  115. package/lib/RadioCard/RadioCard.js +3 -3
  116. package/lib/RadioCard/RadioCardGroup.js +3 -3
  117. package/lib/Responsive/Responsive.js +3 -2
  118. package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
  119. package/lib/Search/Search.js +2 -4
  120. package/lib/Select/Group.js +4 -2
  121. package/lib/Select/Item.js +4 -2
  122. package/lib/Select/Picker.js +2 -4
  123. package/lib/Select/Picker.native.js +3 -5
  124. package/lib/Select/Select.js +4 -6
  125. package/lib/SideNav/Item.js +2 -4
  126. package/lib/SideNav/ItemContent.js +4 -2
  127. package/lib/SideNav/ItemsGroup.js +2 -4
  128. package/lib/SideNav/SideNav.js +2 -2
  129. package/lib/Skeleton/Skeleton.js +2 -4
  130. package/lib/SkipLink/SkipLink.js +2 -4
  131. package/lib/Spacer/Spacer.js +2 -4
  132. package/lib/StackView/StackView.js +2 -4
  133. package/lib/StackView/StackWrap.js +3 -5
  134. package/lib/StackView/StackWrapBox.js +2 -4
  135. package/lib/StackView/StackWrapGap.js +2 -4
  136. package/lib/StackView/getStackedContent.js +3 -3
  137. package/lib/StepTracker/Step.js +4 -2
  138. package/lib/StepTracker/StepTracker.js +2 -4
  139. package/lib/Tabs/Tabs.js +4 -4
  140. package/lib/Tabs/TabsItem.js +3 -5
  141. package/lib/Tags/Tags.js +2 -4
  142. package/lib/TextInput/TextArea.js +3 -5
  143. package/lib/TextInput/TextInput.js +2 -4
  144. package/lib/TextInput/TextInputBase.js +7 -9
  145. package/lib/ThemeProvider/ThemeProvider.js +5 -7
  146. package/lib/Timeline/Timeline.js +2 -4
  147. package/lib/ToggleSwitch/ToggleSwitch.js +2 -4
  148. package/lib/ToggleSwitch/ToggleSwitchGroup.js +2 -4
  149. package/lib/Tooltip/Tooltip.js +6 -8
  150. package/lib/Tooltip/Tooltip.native.js +12 -14
  151. package/lib/TooltipButton/TooltipButton.js +4 -2
  152. package/lib/Typography/Typography.js +2 -4
  153. package/lib/Validator/Validator.js +11 -13
  154. package/lib/ViewportProvider/ViewportProvider.js +2 -4
  155. package/lib/index.js +8 -0
  156. package/lib/utils/BaseView/BaseView.js +2 -4
  157. package/lib/utils/children.js +4 -6
  158. package/lib/utils/withLinkRouter.js +3 -5
  159. package/lib-module/A11yInfoProvider/index.js +8 -8
  160. package/lib-module/A11yText/index.js +2 -2
  161. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  162. package/lib-module/ActivityIndicator/Spinner.native.js +2 -2
  163. package/lib-module/Autocomplete/Autocomplete.js +13 -14
  164. package/lib-module/Autocomplete/Loading.js +4 -2
  165. package/lib-module/Autocomplete/Suggestions.js +2 -2
  166. package/lib-module/Badge/Badge.js +2 -2
  167. package/lib-module/BaseProvider/HydrationContext.js +5 -5
  168. package/lib-module/Box/Box.js +5 -5
  169. package/lib-module/Button/Button.js +2 -2
  170. package/lib-module/Button/ButtonBase.js +2 -5
  171. package/lib-module/Button/ButtonDropdown.js +2 -2
  172. package/lib-module/Button/ButtonGroup.js +11 -2
  173. package/lib-module/Button/ButtonLink.js +2 -2
  174. package/lib-module/Card/Card.js +159 -14
  175. package/lib-module/Card/CardBase.js +2 -2
  176. package/lib-module/Card/PressableCardBase.js +4 -4
  177. package/lib-module/CardGroup/CardGroup.js +210 -0
  178. package/lib-module/CardGroup/dictionary.js +8 -0
  179. package/lib-module/CardGroup/index.js +2 -0
  180. package/lib-module/Carousel/Carousel.js +308 -129
  181. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -2
  182. package/lib-module/Carousel/CarouselItem/CarouselItem.js +3 -2
  183. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
  184. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +2 -2
  185. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -6
  186. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -3
  187. package/lib-module/Carousel/CarouselThumbnail.js +4 -2
  188. package/lib-module/Carousel/CarouselThumbnailNavigation.js +2 -2
  189. package/lib-module/Checkbox/Checkbox.js +2 -2
  190. package/lib-module/Checkbox/CheckboxButton.js +3 -3
  191. package/lib-module/Checkbox/CheckboxGroup.js +2 -2
  192. package/lib-module/Checkbox/CheckboxInput.js +4 -12
  193. package/lib-module/CheckboxCard/CheckboxCard.js +2 -2
  194. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +2 -2
  195. package/lib-module/ColourToggle/ColourBubble.js +5 -4
  196. package/lib-module/ColourToggle/ColourToggle.js +3 -3
  197. package/lib-module/Divider/Divider.js +2 -2
  198. package/lib-module/ExpandCollapse/Accordion.js +2 -2
  199. package/lib-module/ExpandCollapse/Control.js +2 -2
  200. package/lib-module/ExpandCollapse/ExpandCollapse.js +20 -11
  201. package/lib-module/ExpandCollapse/Panel.js +16 -4
  202. package/lib-module/ExpandCollapse/dictionary.js +10 -0
  203. package/lib-module/Feedback/Feedback.js +2 -2
  204. package/lib-module/Fieldset/Fieldset.js +2 -2
  205. package/lib-module/Fieldset/FieldsetContainer.js +2 -2
  206. package/lib-module/Fieldset/FieldsetContainer.native.js +2 -2
  207. package/lib-module/Fieldset/Legend.js +2 -2
  208. package/lib-module/Fieldset/Legend.native.js +2 -2
  209. package/lib-module/FlexGrid/Col/Col.js +3 -3
  210. package/lib-module/FlexGrid/FlexGrid.js +2 -2
  211. package/lib-module/FlexGrid/Row/Row.js +2 -2
  212. package/lib-module/Footnote/Footnote.js +9 -7
  213. package/lib-module/Footnote/FootnoteLink.js +5 -4
  214. package/lib-module/HorizontalScroll/HorizontalScroll.js +8 -8
  215. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +2 -2
  216. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -8
  217. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +2 -2
  218. package/lib-module/Icon/Icon.js +2 -2
  219. package/lib-module/Icon/IconText.js +5 -5
  220. package/lib-module/IconButton/IconButton.js +2 -2
  221. package/lib-module/InputLabel/InputLabel.js +2 -2
  222. package/lib-module/InputLabel/LabelContent.js +2 -2
  223. package/lib-module/InputLabel/LabelContent.native.js +2 -2
  224. package/lib-module/InputSupports/InputSupports.js +4 -3
  225. package/lib-module/Link/ChevronLink.js +2 -2
  226. package/lib-module/Link/InlinePressable.js +10 -4
  227. package/lib-module/Link/InlinePressable.native.js +12 -6
  228. package/lib-module/Link/Link.js +2 -2
  229. package/lib-module/Link/LinkBase.js +2 -2
  230. package/lib-module/Link/TextButton.js +2 -2
  231. package/lib-module/List/List.js +13 -9
  232. package/lib-module/List/ListItem.js +2 -2
  233. package/lib-module/List/ListItemBase.js +6 -8
  234. package/lib-module/List/ListItemContent.js +4 -2
  235. package/lib-module/List/ListItemMark.js +4 -2
  236. package/lib-module/List/PressableListItemBase.js +2 -2
  237. package/lib-module/Listbox/GroupControl.js +4 -2
  238. package/lib-module/Listbox/Listbox.js +7 -7
  239. package/lib-module/Listbox/ListboxContext.js +2 -2
  240. package/lib-module/Listbox/ListboxGroup.js +2 -2
  241. package/lib-module/Listbox/ListboxItem.js +2 -3
  242. package/lib-module/Listbox/ListboxOverlay.js +2 -3
  243. package/lib-module/Listbox/PressableItem.js +2 -3
  244. package/lib-module/Modal/Modal.js +5 -5
  245. package/lib-module/Modal/ModalContent.js +7 -5
  246. package/lib-module/Modal/WebModal.js +19 -10
  247. package/lib-module/MultiSelectFilter/ModalOverlay.js +2 -2
  248. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +10 -8
  249. package/lib-module/Notification/Notification.js +5 -5
  250. package/lib-module/OrderedList/Item.js +4 -8
  251. package/lib-module/OrderedList/ItemBase.js +2 -2
  252. package/lib-module/OrderedList/OrderedList.js +6 -12
  253. package/lib-module/OrderedList/OrderedListBase.js +2 -2
  254. package/lib-module/Pagination/PageButton.js +2 -2
  255. package/lib-module/Pagination/Pagination.js +2 -2
  256. package/lib-module/Pagination/SideButton.js +2 -2
  257. package/lib-module/PriceLockup/PriceLockup.js +5 -5
  258. package/lib-module/ProductCard/ProductCard.js +3 -2
  259. package/lib-module/ProductCardGroup/ProductCardGroup.js +5 -4
  260. package/lib-module/Progress/Progress.js +2 -2
  261. package/lib-module/Progress/ProgressBar.js +2 -2
  262. package/lib-module/Progress/ProgressBarBackground.js +2 -2
  263. package/lib-module/QuickLinks/QuickLinks.js +2 -2
  264. package/lib-module/QuickLinks/QuickLinksCard.js +4 -2
  265. package/lib-module/QuickLinks/QuickLinksItem.js +2 -2
  266. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +9 -5
  267. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +10 -10
  268. package/lib-module/Radio/Radio.js +2 -2
  269. package/lib-module/Radio/RadioButton.js +62 -14
  270. package/lib-module/Radio/RadioGroup.js +2 -2
  271. package/lib-module/Radio/RadioInput.js +6 -16
  272. package/lib-module/RadioCard/RadioCard.js +2 -2
  273. package/lib-module/RadioCard/RadioCardGroup.js +2 -2
  274. package/lib-module/Responsive/Responsive.js +3 -2
  275. package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
  276. package/lib-module/Search/Search.js +2 -2
  277. package/lib-module/Select/Group.js +4 -2
  278. package/lib-module/Select/Item.js +4 -2
  279. package/lib-module/Select/Picker.js +2 -2
  280. package/lib-module/Select/Picker.native.js +3 -3
  281. package/lib-module/Select/Select.js +4 -4
  282. package/lib-module/SideNav/Item.js +2 -2
  283. package/lib-module/SideNav/ItemContent.js +4 -2
  284. package/lib-module/SideNav/ItemsGroup.js +2 -2
  285. package/lib-module/SideNav/SideNav.js +3 -3
  286. package/lib-module/Skeleton/Skeleton.js +2 -2
  287. package/lib-module/SkipLink/SkipLink.js +2 -2
  288. package/lib-module/Spacer/Spacer.js +2 -2
  289. package/lib-module/StackView/StackView.js +2 -2
  290. package/lib-module/StackView/StackWrap.js +3 -3
  291. package/lib-module/StackView/StackWrapBox.js +2 -2
  292. package/lib-module/StackView/StackWrapGap.js +2 -2
  293. package/lib-module/StackView/getStackedContent.js +4 -4
  294. package/lib-module/StepTracker/Step.js +4 -2
  295. package/lib-module/StepTracker/StepTracker.js +2 -2
  296. package/lib-module/Tabs/Tabs.js +3 -3
  297. package/lib-module/Tabs/TabsItem.js +3 -3
  298. package/lib-module/Tags/Tags.js +2 -2
  299. package/lib-module/TextInput/TextArea.js +3 -3
  300. package/lib-module/TextInput/TextInput.js +2 -2
  301. package/lib-module/TextInput/TextInputBase.js +7 -7
  302. package/lib-module/ThemeProvider/ThemeProvider.js +5 -5
  303. package/lib-module/Timeline/Timeline.js +2 -2
  304. package/lib-module/ToggleSwitch/ToggleSwitch.js +2 -2
  305. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +2 -2
  306. package/lib-module/Tooltip/Tooltip.js +6 -6
  307. package/lib-module/Tooltip/Tooltip.native.js +12 -12
  308. package/lib-module/TooltipButton/TooltipButton.js +4 -2
  309. package/lib-module/Typography/Typography.js +2 -2
  310. package/lib-module/Validator/Validator.js +11 -11
  311. package/lib-module/ViewportProvider/ViewportProvider.js +2 -2
  312. package/lib-module/index.js +1 -0
  313. package/lib-module/utils/BaseView/BaseView.js +2 -2
  314. package/lib-module/utils/children.js +4 -4
  315. package/lib-module/utils/withLinkRouter.js +3 -3
  316. package/package.json +2 -2
  317. package/src/A11yInfoProvider/index.jsx +8 -8
  318. package/src/A11yText/index.jsx +2 -2
  319. package/src/ActivityIndicator/Spinner.jsx +2 -2
  320. package/src/ActivityIndicator/Spinner.native.jsx +2 -2
  321. package/src/Autocomplete/Autocomplete.jsx +15 -14
  322. package/src/Autocomplete/Loading.jsx +6 -3
  323. package/src/Autocomplete/Suggestions.jsx +2 -2
  324. package/src/Badge/Badge.jsx +2 -2
  325. package/src/BaseProvider/HydrationContext.jsx +5 -5
  326. package/src/Box/Box.jsx +5 -5
  327. package/src/Button/Button.jsx +11 -9
  328. package/src/Button/ButtonBase.jsx +2 -3
  329. package/src/Button/ButtonDropdown.jsx +2 -2
  330. package/src/Button/ButtonGroup.jsx +11 -2
  331. package/src/Button/ButtonLink.jsx +2 -2
  332. package/src/Card/Card.jsx +151 -11
  333. package/src/Card/CardBase.jsx +2 -2
  334. package/src/Card/PressableCardBase.jsx +18 -4
  335. package/src/CardGroup/CardGroup.jsx +249 -0
  336. package/src/CardGroup/dictionary.js +8 -0
  337. package/src/CardGroup/index.js +3 -0
  338. package/src/Carousel/Carousel.jsx +338 -117
  339. package/src/Carousel/CarouselFirstFocus/CarouselFirstFocus.jsx +2 -2
  340. package/src/Carousel/CarouselItem/CarouselItem.jsx +19 -17
  341. package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +5 -3
  342. package/src/Carousel/CarouselTabs/CarouselTabs.jsx +2 -2
  343. package/src/Carousel/CarouselTabs/CarouselTabsPanel.jsx +6 -6
  344. package/src/Carousel/CarouselTabs/CarouselTabsPanelItem.jsx +3 -3
  345. package/src/Carousel/CarouselThumbnail.jsx +6 -2
  346. package/src/Carousel/CarouselThumbnailNavigation.jsx +2 -2
  347. package/src/Checkbox/Checkbox.jsx +2 -2
  348. package/src/Checkbox/CheckboxButton.jsx +5 -7
  349. package/src/Checkbox/CheckboxGroup.jsx +2 -2
  350. package/src/Checkbox/CheckboxInput.jsx +15 -12
  351. package/src/CheckboxCard/CheckboxCard.jsx +2 -2
  352. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +2 -2
  353. package/src/ColourToggle/ColourBubble.jsx +5 -4
  354. package/src/ColourToggle/ColourToggle.jsx +3 -3
  355. package/src/Divider/Divider.jsx +2 -2
  356. package/src/ExpandCollapse/Accordion.jsx +4 -2
  357. package/src/ExpandCollapse/Control.jsx +2 -2
  358. package/src/ExpandCollapse/ExpandCollapse.jsx +15 -7
  359. package/src/ExpandCollapse/Panel.jsx +30 -8
  360. package/src/ExpandCollapse/dictionary.js +10 -0
  361. package/src/Feedback/Feedback.jsx +2 -2
  362. package/src/Fieldset/Fieldset.jsx +2 -2
  363. package/src/Fieldset/FieldsetContainer.jsx +2 -2
  364. package/src/Fieldset/FieldsetContainer.native.jsx +2 -2
  365. package/src/Fieldset/Legend.jsx +2 -2
  366. package/src/Fieldset/Legend.native.jsx +2 -2
  367. package/src/FlexGrid/Col/Col.jsx +3 -3
  368. package/src/FlexGrid/FlexGrid.jsx +2 -2
  369. package/src/FlexGrid/Row/Row.jsx +2 -2
  370. package/src/Footnote/Footnote.jsx +111 -98
  371. package/src/Footnote/FootnoteLink.jsx +35 -31
  372. package/src/HorizontalScroll/HorizontalScroll.jsx +8 -8
  373. package/src/HorizontalScroll/HorizontalScrollButton.jsx +2 -2
  374. package/src/HorizontalScroll/ScrollViewEnd.jsx +4 -8
  375. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +2 -2
  376. package/src/Icon/Icon.jsx +2 -2
  377. package/src/Icon/IconText.jsx +7 -5
  378. package/src/IconButton/IconButton.jsx +2 -2
  379. package/src/InputLabel/InputLabel.jsx +2 -2
  380. package/src/InputLabel/LabelContent.jsx +2 -2
  381. package/src/InputLabel/LabelContent.native.jsx +2 -2
  382. package/src/InputSupports/InputSupports.jsx +4 -3
  383. package/src/Link/ChevronLink.jsx +2 -2
  384. package/src/Link/InlinePressable.jsx +22 -15
  385. package/src/Link/InlinePressable.native.jsx +12 -6
  386. package/src/Link/Link.jsx +2 -2
  387. package/src/Link/LinkBase.jsx +2 -2
  388. package/src/Link/TextButton.jsx +2 -2
  389. package/src/List/List.jsx +15 -7
  390. package/src/List/ListItem.jsx +2 -2
  391. package/src/List/ListItemBase.jsx +6 -12
  392. package/src/List/ListItemContent.jsx +5 -2
  393. package/src/List/ListItemMark.jsx +5 -3
  394. package/src/List/PressableListItemBase.jsx +2 -2
  395. package/src/Listbox/GroupControl.jsx +5 -2
  396. package/src/Listbox/Listbox.jsx +7 -7
  397. package/src/Listbox/ListboxContext.js +2 -2
  398. package/src/Listbox/ListboxGroup.jsx +2 -2
  399. package/src/Listbox/ListboxItem.jsx +2 -3
  400. package/src/Listbox/ListboxOverlay.jsx +2 -3
  401. package/src/Listbox/PressableItem.jsx +2 -3
  402. package/src/Modal/Modal.jsx +5 -5
  403. package/src/Modal/ModalContent.jsx +132 -125
  404. package/src/Modal/WebModal.jsx +17 -8
  405. package/src/MultiSelectFilter/ModalOverlay.jsx +2 -2
  406. package/src/MultiSelectFilter/MultiSelectFilter.jsx +263 -252
  407. package/src/Notification/Notification.jsx +5 -5
  408. package/src/OrderedList/Item.jsx +4 -6
  409. package/src/OrderedList/ItemBase.jsx +2 -2
  410. package/src/OrderedList/OrderedList.jsx +4 -7
  411. package/src/OrderedList/OrderedListBase.jsx +2 -2
  412. package/src/Pagination/PageButton.jsx +2 -2
  413. package/src/Pagination/Pagination.jsx +2 -2
  414. package/src/Pagination/SideButton.jsx +2 -2
  415. package/src/PriceLockup/PriceLockup.jsx +93 -88
  416. package/src/ProductCard/ProductCard.jsx +90 -84
  417. package/src/ProductCardGroup/ProductCardGroup.jsx +5 -5
  418. package/src/Progress/Progress.jsx +2 -2
  419. package/src/Progress/ProgressBar.jsx +2 -2
  420. package/src/Progress/ProgressBarBackground.jsx +4 -2
  421. package/src/QuickLinks/QuickLinks.jsx +2 -2
  422. package/src/QuickLinks/QuickLinksCard.jsx +9 -3
  423. package/src/QuickLinks/QuickLinksItem.jsx +2 -2
  424. package/src/QuickLinksFeature/QuickLinksFeature.jsx +31 -27
  425. package/src/QuickLinksFeature/QuickLinksFeatureItem.jsx +3 -3
  426. package/src/Radio/Radio.jsx +2 -2
  427. package/src/Radio/RadioButton.jsx +58 -6
  428. package/src/Radio/RadioGroup.jsx +2 -2
  429. package/src/Radio/RadioInput.jsx +15 -14
  430. package/src/RadioCard/RadioCard.jsx +2 -2
  431. package/src/RadioCard/RadioCardGroup.jsx +2 -2
  432. package/src/Responsive/Responsive.jsx +8 -3
  433. package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +23 -16
  434. package/src/Search/Search.jsx +2 -2
  435. package/src/Select/Group.jsx +9 -3
  436. package/src/Select/Item.jsx +7 -1
  437. package/src/Select/Picker.jsx +2 -2
  438. package/src/Select/Picker.native.jsx +3 -3
  439. package/src/Select/Select.jsx +4 -4
  440. package/src/SideNav/Item.jsx +2 -2
  441. package/src/SideNav/ItemContent.jsx +7 -3
  442. package/src/SideNav/ItemsGroup.jsx +2 -2
  443. package/src/SideNav/SideNav.jsx +3 -3
  444. package/src/Skeleton/Skeleton.jsx +2 -2
  445. package/src/SkipLink/SkipLink.jsx +2 -2
  446. package/src/Spacer/Spacer.jsx +2 -2
  447. package/src/StackView/StackView.jsx +2 -2
  448. package/src/StackView/StackWrap.jsx +3 -3
  449. package/src/StackView/StackWrapBox.jsx +2 -2
  450. package/src/StackView/StackWrapGap.jsx +2 -2
  451. package/src/StackView/getStackedContent.jsx +4 -4
  452. package/src/StepTracker/Step.jsx +75 -67
  453. package/src/StepTracker/StepTracker.jsx +2 -2
  454. package/src/Tabs/Tabs.jsx +3 -3
  455. package/src/Tabs/TabsItem.jsx +3 -3
  456. package/src/Tags/Tags.jsx +2 -2
  457. package/src/TextInput/TextArea.jsx +3 -3
  458. package/src/TextInput/TextInput.jsx +2 -2
  459. package/src/TextInput/TextInputBase.jsx +7 -7
  460. package/src/ThemeProvider/ThemeProvider.jsx +5 -5
  461. package/src/Timeline/Timeline.jsx +2 -2
  462. package/src/ToggleSwitch/ToggleSwitch.jsx +2 -2
  463. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +2 -2
  464. package/src/Tooltip/Tooltip.jsx +6 -6
  465. package/src/Tooltip/Tooltip.native.jsx +12 -12
  466. package/src/TooltipButton/TooltipButton.jsx +5 -2
  467. package/src/Typography/Typography.jsx +2 -2
  468. package/src/Validator/Validator.jsx +11 -11
  469. package/src/ViewportProvider/ViewportProvider.jsx +2 -2
  470. package/src/index.js +1 -0
  471. package/src/utils/BaseView/BaseView.jsx +2 -2
  472. package/src/utils/children.jsx +4 -4
  473. package/src/utils/withLinkRouter.jsx +3 -3
  474. package/types/ExpandCollapse.d.ts +1 -1
package/src/Card/Card.jsx CHANGED
@@ -1,7 +1,6 @@
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'
4
-
5
4
  import {
6
5
  useThemeTokens,
7
6
  useThemeTokensCallback,
@@ -13,9 +12,45 @@ import { useViewport } from '../ViewportProvider'
13
12
  import { a11yProps, selectSystemProps, viewProps } from '../utils/props'
14
13
  import CardBase from './CardBase'
15
14
  import PressableCardBase from './PressableCardBase'
15
+ import CheckboxButton from '../Checkbox/CheckboxButton'
16
+ import RadioButton from '../Radio/RadioButton'
16
17
 
17
18
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
18
19
 
20
+ const SelectionType = {
21
+ Checkbox: 'checkbox',
22
+ Radio: 'radiogroup',
23
+ None: undefined
24
+ }
25
+
26
+ const selectInputStyle = ({ paddingTop, paddingRight }) => ({
27
+ position: 'absolute',
28
+ top: paddingTop,
29
+ right: paddingRight
30
+ })
31
+
32
+ const getInputProps = ({
33
+ id,
34
+ checkColor,
35
+ boxBackgroundColor,
36
+ checkBackgroundColor,
37
+ isControlled,
38
+ isChecked,
39
+ isInactive,
40
+ handleChange
41
+ }) => ({
42
+ inputId: id,
43
+ tokens: {
44
+ iconColor: checkColor,
45
+ inputBackgroundColor: boxBackgroundColor,
46
+ iconBackgroundColor: checkBackgroundColor
47
+ },
48
+ isControlled,
49
+ isChecked,
50
+ inactive: isInactive,
51
+ handleChange
52
+ })
53
+
19
54
  /**
20
55
  * A basic card component, unstyled by default.
21
56
  *
@@ -64,8 +99,8 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
64
99
  * you automatically make inaccessible its children, which may or may not be appropriate
65
100
  * depending on what you are trying to achieve.
66
101
  */
67
- const Card = forwardRef(
68
- ({ children, tokens, variant, dataSet, onPress, interactiveCard, ...rest }, ref) => {
102
+ const Card = React.forwardRef(
103
+ ({ children, tokens, variant, dataSet, onPress, id, interactiveCard, ...rest }, ref) => {
69
104
  const viewport = useViewport()
70
105
  const { themeOptions } = useTheme()
71
106
 
@@ -80,13 +115,60 @@ const Card = forwardRef(
80
115
  !enableMediaQueryStyleSheet && { viewport }
81
116
  )
82
117
 
118
+ const selected = interactiveCard?.variant?.selected
119
+ const inactive = interactiveCard?.variant?.inactive
120
+ const selectionType = interactiveCard?.selectionType
121
+
83
122
  const getThemeTokens = useThemeTokensCallback('Card', interactiveCard?.tokens, {
84
123
  interactive: true,
85
124
  ...(interactiveCard?.variant || {})
86
125
  })
87
126
  // When interactive area is present, spacing tokens should only be applied
88
127
  // to individual Card sections, not Card as a whole
89
- const { paddingTop, paddingBottom, paddingLeft, paddingRight, ...restOfTokens } = themeTokens
128
+ const { paddingTop, paddingBottom, paddingLeft, paddingRight, ...restOfTokens } = selectionType
129
+ ? getThemeTokens()
130
+ : themeTokens
131
+
132
+ const {
133
+ inputBackgroundColor,
134
+ iconBackgroundColor,
135
+ iconColor,
136
+ icon,
137
+ inputBorderRadius,
138
+ inputHeight,
139
+ inputWidth,
140
+ iconSize,
141
+ inputShadow,
142
+ inputBorderWidth,
143
+ inputBorderColor
144
+ } = getThemeTokens()
145
+
146
+ const checkboxTokens = {
147
+ inputBackgroundColor,
148
+ iconBackgroundColor,
149
+ icon,
150
+ iconColor,
151
+ inputBorderRadius,
152
+ inputHeight,
153
+ inputWidth,
154
+ iconSize,
155
+ inputShadow,
156
+ inputBorderWidth,
157
+ inputBorderColor
158
+ }
159
+
160
+ const radioTokens = {
161
+ iconBackgroundColor,
162
+ iconColor,
163
+ containerShadow: inputShadow,
164
+ icon,
165
+ inputBackgroundColor,
166
+ inputBorderRadius,
167
+ inputSize: inputHeight,
168
+ checkedSize: iconSize,
169
+ inputBorderWidth,
170
+ inputBorderColor
171
+ }
90
172
 
91
173
  let cardStyles
92
174
  let mediaIds
@@ -103,6 +185,29 @@ const Card = forwardRef(
103
185
  cardStyles = themeTokens
104
186
  }
105
187
 
188
+ const renderInputPerSelectionType = (props) => {
189
+ switch (selectionType) {
190
+ case SelectionType.Checkbox:
191
+ return (
192
+ <View style={selectInputStyle(getThemeTokens())}>
193
+ <CheckboxButton {...props} tokens={{ ...checkboxTokens, ...props?.tokens }} />
194
+ </View>
195
+ )
196
+ case SelectionType.Radio:
197
+ return (
198
+ <View style={selectInputStyle(getThemeTokens())}>
199
+ <RadioButton {...props} tokens={{ ...radioTokens, ...props?.tokens }} />
200
+ </View>
201
+ )
202
+ default:
203
+ return null
204
+ }
205
+ }
206
+
207
+ const renderNoSelectionView = () => (
208
+ <View style={{ paddingTop, paddingBottom, paddingLeft, paddingRight }}>{children}</View>
209
+ )
210
+
106
211
  return (
107
212
  <>
108
213
  <CardBase
@@ -120,13 +225,40 @@ const Card = forwardRef(
120
225
  onPress={onPress}
121
226
  {...selectProps(rest)}
122
227
  >
123
- {interactiveCard?.body}
228
+ {(cardState) => {
229
+ const {
230
+ iconColor: checkColor,
231
+ inputBackgroundColor: boxBackgroundColor,
232
+ iconBackgroundColor: checkBackgroundColor
233
+ } = getThemeTokens(
234
+ {
235
+ ...cardState,
236
+ selected,
237
+ interactive: true,
238
+ isControl: true
239
+ },
240
+ interactiveCard?.tokens
241
+ )
242
+ return (
243
+ <>
244
+ {renderInputPerSelectionType(
245
+ getInputProps({
246
+ id,
247
+ checkColor,
248
+ boxBackgroundColor,
249
+ checkBackgroundColor,
250
+ isControlled: true,
251
+ isChecked: selected || cardState?.hover,
252
+ isInactive: inactive,
253
+ onPress
254
+ })
255
+ )}
256
+ {interactiveCard?.body}
257
+ </>
258
+ )
259
+ }}
124
260
  </PressableCardBase>
125
- {children ? (
126
- <View style={{ paddingTop, paddingBottom, paddingLeft, paddingRight }}>
127
- {children}
128
- </View>
129
- ) : null}
261
+ {children && selectionType !== SelectionType.None ? renderNoSelectionView() : null}
130
262
  </>
131
263
  ) : (
132
264
  children
@@ -158,15 +290,23 @@ Card.propTypes = {
158
290
  * Note: This is only available when `interactiveCard` prop is used.
159
291
  */
160
292
  onPress: PropTypes.func,
293
+ /**
294
+ * Card ID.
295
+ */
296
+ id: PropTypes.string,
161
297
  /**
162
298
  * Object to set interactive card's properties
163
299
  * - body: The body of the interactive card, can be any renderable node
164
300
  * - tokens: The tokens to be used for the interactive card
301
+ * - selectionType: If the card has `isControl` variant set to `true`, the selectionType can have one of the following options:
302
+ - `radiogroup`
303
+ - `checkbox`
165
304
  * - variant: The variant to be used for the interactive card
166
305
  */
167
306
  interactiveCard: PropTypes.shape({
168
307
  body: PropTypes.node,
169
308
  tokens: getTokensPropType('Card'),
309
+ selectionType: PropTypes.oneOf(Object.values(SelectionType)),
170
310
  variant: variantProp.propType
171
311
  })
172
312
  }
@@ -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, Platform } from 'react-native'
4
4
 
@@ -50,7 +50,7 @@ const selectStyles = ({
50
50
  * A themeless base component for Card which components can apply theme tokens to. Not
51
51
  * intended to be used in apps or sites directly: build themed components on top of this.
52
52
  */
53
- const CardBase = forwardRef(({ children, tokens, dataSet, ...rest }, ref) => {
53
+ const CardBase = React.forwardRef(({ children, tokens, dataSet, ...rest }, ref) => {
54
54
  const cardStyle = selectStyles(typeof tokens === 'function' ? tokens() : tokens)
55
55
  const props = selectProps(rest)
56
56
  return (
@@ -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, Platform } from 'react-native'
4
4
 
@@ -8,7 +8,6 @@ import {
8
8
  a11yProps,
9
9
  clickProps,
10
10
  focusHandlerProps,
11
- getTokenNames,
12
11
  getTokensSetPropType,
13
12
  linkProps,
14
13
  resolvePressableState,
@@ -28,7 +27,22 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([
28
27
  ])
29
28
 
30
29
  const tokenKeys = [
31
- ...getTokenNames('Card'),
30
+ 'flex',
31
+ 'backgroundColor',
32
+ 'borderColor',
33
+ 'gradient',
34
+ 'borderRadius',
35
+ 'borderWidth',
36
+ 'paddingBottom',
37
+ 'paddingLeft',
38
+ 'paddingRight',
39
+ 'paddingTop',
40
+ 'minWidth',
41
+ 'shadow',
42
+ 'contentAlignItems',
43
+ 'contentJustifyContent',
44
+ 'contentFlexGrow',
45
+ 'contentFlexShrink',
32
46
 
33
47
  // Outer border tokens. TODO: centralise common token sets like these as part of
34
48
  // https://github.com/telus/universal-design-system/issues/782
@@ -44,7 +58,7 @@ export const selectPressableCardTokens = (tokens) =>
44
58
  * based on these to an outer border and a base Card component. Not intended to be used in
45
59
  * apps or sites directly: build themed components on top of this.
46
60
  */
47
- const PressableCardBase = forwardRef(
61
+ const PressableCardBase = React.forwardRef(
48
62
  (
49
63
  {
50
64
  children,
@@ -0,0 +1,249 @@
1
+ import React from 'react'
2
+ import PropTypes from 'prop-types'
3
+ import {
4
+ a11yProps,
5
+ focusHandlerProps,
6
+ containUniqueFields,
7
+ selectSystemProps,
8
+ useMultipleInputValues,
9
+ useInputValue,
10
+ useCopy,
11
+ viewProps,
12
+ variantProp,
13
+ getTokensPropType,
14
+ copyPropTypes
15
+ } from '../utils'
16
+ import defaultDictionary from './dictionary'
17
+ import { useViewport } from '../ViewportProvider'
18
+ import { useThemeTokens } from '../ThemeProvider'
19
+ import StackView, { StackWrap } from '../StackView'
20
+ import Card from '../Card'
21
+ import Fieldset from '../Fieldset'
22
+
23
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
24
+ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([
25
+ a11yProps,
26
+ focusHandlerProps,
27
+ viewProps
28
+ ])
29
+ const uniqueFields = ['id']
30
+
31
+ const CardGroup = React.forwardRef(
32
+ (
33
+ {
34
+ copy = 'en',
35
+ tokens = {},
36
+ variant = {},
37
+ items = [],
38
+ validation,
39
+ feedback,
40
+ initialCheckedIds,
41
+ checkedIds,
42
+ onChange,
43
+ role = 'radiogroup',
44
+ isInactive,
45
+ name: inputGroupName,
46
+ dictionary = defaultDictionary,
47
+ ...rest
48
+ },
49
+ ref
50
+ ) => {
51
+ const getCopy = useCopy({ dictionary, copy })
52
+ const viewport = useViewport()
53
+ const cardGroupTokens = useThemeTokens('CardGroup', tokens, variant, { viewport })
54
+ const {
55
+ space,
56
+ fieldSpace,
57
+ direction,
58
+ showIcon,
59
+ outlineWidth,
60
+ borderTopLeftRadius,
61
+ borderTopRightRadius,
62
+ borderBottomLeftRadius,
63
+ borderBottomRightRadius,
64
+ outlineOffset,
65
+ paddingTop,
66
+ paddingBottom,
67
+ paddingLeft,
68
+ paddingRight
69
+ } = cardGroupTokens
70
+
71
+ const borderTokens = {
72
+ outlineWidth,
73
+ borderTopLeftRadius,
74
+ borderTopRightRadius,
75
+ borderBottomLeftRadius,
76
+ borderBottomRightRadius,
77
+ outlineOffset
78
+ }
79
+
80
+ const singleSelection = role === 'radiogroup'
81
+
82
+ const inputControl = {
83
+ value: checkedIds,
84
+ initialValue: initialCheckedIds,
85
+ onChange,
86
+ readOnly: isInactive
87
+ }
88
+ const singleInputValue = useInputValue(inputControl)
89
+ const multipleInputValues = useMultipleInputValues(inputControl)
90
+
91
+ const StackContainer = direction === 'row' ? StackWrap : StackView
92
+
93
+ if (!containUniqueFields(items, uniqueFields)) {
94
+ throw new Error(`CardGroup items must have unique ${uniqueFields.join(', ')}`)
95
+ }
96
+
97
+ const handleChange = React.useCallback(
98
+ (checked, event, cardId, itemOnChange) => {
99
+ if (checked && singleSelection) {
100
+ singleInputValue.setValue(cardId, event)
101
+ } else {
102
+ multipleInputValues.toggleOneValue(cardId, event)
103
+ }
104
+ return itemOnChange?.(checked, event)
105
+ },
106
+ [singleInputValue, multipleInputValues, singleSelection]
107
+ )
108
+
109
+ return (
110
+ <Fieldset
111
+ copy={copy}
112
+ ref={ref}
113
+ name={inputGroupName}
114
+ space={fieldSpace}
115
+ feedback={feedback}
116
+ validation={validation}
117
+ tokens={borderTokens}
118
+ inactive={isInactive}
119
+ showErrorBorder
120
+ showIcon={showIcon}
121
+ accessibilityRole={role}
122
+ {...selectProps(rest)}
123
+ >
124
+ {(props) => (
125
+ <StackContainer space={space}>
126
+ {items.map(
127
+ ({ id, interactiveCard, card, onPress: itemOnChange, ...itemRest }, index) => {
128
+ const cardId = id || `${getCopy('prefixId')}[${index}]`
129
+ const itemHandleChange = (checked, event) =>
130
+ handleChange(checked, event, cardId, itemOnChange)
131
+
132
+ return (
133
+ <Card
134
+ id={cardId}
135
+ key={cardId}
136
+ onPress={itemHandleChange}
137
+ interactiveCard={{
138
+ ...interactiveCard,
139
+ tokens: {
140
+ paddingTop,
141
+ paddingBottom,
142
+ paddingLeft,
143
+ paddingRight,
144
+ ...interactiveCard?.tokens
145
+ },
146
+ variant: {
147
+ isControl: true,
148
+ selected: singleSelection
149
+ ? singleInputValue.currentValue === cardId
150
+ : multipleInputValues.currentValues.includes(cardId),
151
+ inactive: isInactive
152
+ },
153
+ selectionType: role
154
+ }}
155
+ {...selectItemProps(itemRest)}
156
+ {...props}
157
+ >
158
+ {card?.body}
159
+ </Card>
160
+ )
161
+ }
162
+ )}
163
+ </StackContainer>
164
+ )}
165
+ </Fieldset>
166
+ )
167
+ }
168
+ )
169
+
170
+ CardGroup.displayName = 'CardGroup'
171
+
172
+ const dictionaryContentShape = PropTypes.shape({
173
+ prefixId: PropTypes.string.isRequired
174
+ })
175
+
176
+ CardGroup.propTypes = {
177
+ ...selectedSystemPropTypes,
178
+ copy: copyPropTypes,
179
+ /**
180
+ * Override the default dictionary, by passing the complete dictionary object for `en` and `fr`
181
+ */
182
+ dictionary: PropTypes.shape({
183
+ en: dictionaryContentShape,
184
+ fr: dictionaryContentShape
185
+ }),
186
+ /**
187
+ * Optional theme token overrides for the outer RadioCardGroup component
188
+ */
189
+ tokens: getTokensPropType('CardGroup'),
190
+ /**
191
+ * Theme variants, shared between both RadioCardGroup and RadioCard
192
+ */
193
+ variant: variantProp.propType,
194
+ /**
195
+ * Array of objects containing specifics for each Card to be rendered in the group.
196
+ */
197
+ items: PropTypes.arrayOf(
198
+ PropTypes.exact({
199
+ ...selectedItemPropTypes,
200
+ id: PropTypes.string,
201
+ interactiveCard: PropTypes.object,
202
+ card: PropTypes.object,
203
+ onPress: PropTypes.func
204
+ })
205
+ ),
206
+ /**
207
+ * Current validation status of the group, passed to the feedback element if there is one.
208
+ */
209
+ validation: PropTypes.oneOf(['error', 'success']),
210
+ /**
211
+ * If provided, a Feedback element is rendered containing this text.
212
+ */
213
+ feedback: PropTypes.string,
214
+ /**
215
+ * If provided, the card with this id is selected on first render.
216
+ * If the role is radiogroup, it's a string
217
+ * If the role is checkbox, it's a array of string.
218
+ * Can have 'null' as value
219
+ */
220
+ initialCheckedIds: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
221
+ /**
222
+ * If not undefined, the card with this id is selected (or none is selected if `null`), and the
223
+ * element's selection state will be controlled by its parent using the `onChange` function.
224
+ * If the role is radiogroup, it's a string
225
+ * If the role is checkbox, it's a array of string.
226
+ * Can have 'null' as value
227
+ */
228
+ checkedIds: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
229
+ /**
230
+ * Function to call on change in selection state. Is required if the selection state is controlled
231
+ * by a parent using checkedId and the input is not readOnly.
232
+ */
233
+ onChange: PropTypes.func,
234
+ /**
235
+ * Renders the card group like a radio card group or a checkbox card group
236
+ */
237
+ role: PropTypes.oneOf(['radiogroup', 'checkbox']),
238
+ /**
239
+ * If true, the card cannot be interacted with, elements are set as `disabled` and if the
240
+ * theme supports `inactive` appearances rules, these are applied.
241
+ */
242
+ isInactive: PropTypes.bool,
243
+ /**
244
+ * On Web, this is passed to the `name` attribute of the fieldset and each input.
245
+ */
246
+ name: PropTypes.string
247
+ }
248
+
249
+ export default CardGroup
@@ -0,0 +1,8 @@
1
+ export default {
2
+ en: {
3
+ prefixId: 'Card'
4
+ },
5
+ fr: {
6
+ prefixId: 'Carte'
7
+ }
8
+ }
@@ -0,0 +1,3 @@
1
+ import CardGroup from './CardGroup'
2
+
3
+ export default CardGroup