@telus-uds/components-base 1.84.0 → 1.85.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 (471) hide show
  1. package/CHANGELOG.md +26 -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 +9 -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 +9 -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 +38 -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,4 +1,4 @@
1
- import React, { useState, useEffect } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
 
4
4
  import { View, StyleSheet } from 'react-native'
@@ -41,278 +41,289 @@ const selectDividerToknes = ({ dividerColor, width, decorative = true, weight =
41
41
  weight
42
42
  })
43
43
 
44
- const MultiSelectFilter = ({
45
- label,
46
- subtitle,
47
- id = label,
48
- variant,
49
- tokens,
50
- items = [],
51
- values,
52
- maxHeight = false,
53
- initialValues,
54
- maxValues,
55
- onChange,
56
- onConfirm = () => {},
57
- onCancel = () => {},
58
- copy = 'en',
59
- readOnly = false,
60
- inactive = false,
61
- rowLimit = 12,
62
- dictionary = defaultDictionary,
63
- ...rest
64
- }) => {
65
- const viewport = useViewport()
66
- const { currentValues, setValues } = useMultipleInputValues({
67
- initialValues,
68
- values,
69
- maxValues,
70
- onChange,
71
- readOnly
72
- })
73
- const [isOpen, setIsOpen] = useState(false)
74
- const [checkedIds, setCheckedIds] = useState(currentValues ?? [])
75
- const [maxWidth, setMaxWidth] = useState(false)
76
-
77
- const themeTokens = useThemeTokens('ButtonDropdown', tokens, variant)
78
- const getItemTokens = useThemeTokensCallback('ButtonDropdown', tokens, variant)
79
- const getButtonTokens = (buttonState) => selectTokens('Button', getItemTokens(buttonState))
80
- const getCopy = useCopy({ dictionary, copy })
81
- const colSizeNotMobile = items.length > rowLimit ? 2 : 1
82
- const colSize = viewport !== 'xs' ? colSizeNotMobile : 1
83
- const itemsLengthNotMobile = items.length > 24 ? items.length / 2 : rowLimit
84
- const isSelected = currentValues.length > 0
85
- const rowLength = viewport !== 'xs' ? itemsLengthNotMobile : items.length
44
+ const MultiSelectFilter = React.forwardRef(
45
+ (
46
+ {
47
+ label,
48
+ subtitle,
49
+ id = label,
50
+ variant,
51
+ tokens,
52
+ items = [],
53
+ values,
54
+ maxHeight = false,
55
+ initialValues,
56
+ maxValues,
57
+ onChange,
58
+ onConfirm = () => {},
59
+ onCancel = () => {},
60
+ copy = 'en',
61
+ readOnly = false,
62
+ inactive = false,
63
+ rowLimit = 12,
64
+ dictionary = defaultDictionary,
65
+ ...rest
66
+ },
67
+ ref
68
+ ) => {
69
+ const viewport = useViewport()
70
+ const { currentValues, setValues } = useMultipleInputValues({
71
+ initialValues,
72
+ values,
73
+ maxValues,
74
+ onChange,
75
+ readOnly
76
+ })
77
+ const [isOpen, setIsOpen] = React.useState(false)
78
+ const [checkedIds, setCheckedIds] = React.useState(currentValues ?? [])
79
+ const [maxWidth, setMaxWidth] = React.useState(false)
86
80
 
87
- useEffect(() => {
88
- if (colSize === 1) return setMaxWidth(false)
89
- return colSize === 2 && setMaxWidth(true)
90
- }, [colSize])
81
+ const themeTokens = useThemeTokens('ButtonDropdown', tokens, variant)
82
+ const getItemTokens = useThemeTokensCallback('ButtonDropdown', tokens, variant)
83
+ const getButtonTokens = (buttonState) => selectTokens('Button', getItemTokens(buttonState))
84
+ const getCopy = useCopy({ dictionary, copy })
85
+ const colSizeNotMobile = items.length > rowLimit ? 2 : 1
86
+ const colSize = viewport !== 'xs' ? colSizeNotMobile : 1
87
+ const itemsLengthNotMobile = items.length > 24 ? items.length / 2 : rowLimit
88
+ const isSelected = currentValues.length > 0
89
+ const rowLength = viewport !== 'xs' ? itemsLengthNotMobile : items.length
91
90
 
92
- useEffect(() => setCheckedIds(currentValues ?? []), [currentValues])
91
+ React.useEffect(() => {
92
+ if (colSize === 1) return setMaxWidth(false)
93
+ return colSize === 2 && setMaxWidth(true)
94
+ }, [colSize])
93
95
 
94
- const {
95
- headerFontColor,
96
- headerFontSize,
97
- buttonDirection,
98
- headerFontWeight,
99
- headerLineHeight,
100
- subHeaderFontWeight,
101
- subHeaderFontSize,
102
- maxHeightSize,
103
- maxWidthSize,
104
- subHeaderLineHeight,
105
- minHeight,
106
- minWidth
107
- } = useThemeTokens('MultiSelectFilter', tokens, { ...variant, maxHeight, maxWidth }, { viewport })
96
+ React.useEffect(() => setCheckedIds(currentValues ?? []), [currentValues])
108
97
 
109
- const uniqueFields = ['id', 'label']
110
- if (!containUniqueFields(items, uniqueFields)) {
111
- throw new Error(`MultiSelectFilter items must have unique ${uniqueFields.join(', ')}`)
112
- }
113
- // Pass an object of relevant component state as first argument for any passed-in press handlers
114
- const pressHandlers = getPressHandlersWithArgs(rest, [{ id, label, currentValues }])
98
+ const {
99
+ headerFontColor,
100
+ headerFontSize,
101
+ buttonDirection,
102
+ headerFontWeight,
103
+ headerLineHeight,
104
+ subHeaderFontWeight,
105
+ subHeaderFontSize,
106
+ maxHeightSize,
107
+ maxWidthSize,
108
+ subHeaderLineHeight,
109
+ minHeight,
110
+ minWidth
111
+ } = useThemeTokens(
112
+ 'MultiSelectFilter',
113
+ tokens,
114
+ { ...variant, maxHeight, maxWidth },
115
+ { viewport }
116
+ )
115
117
 
116
- const handleChange = (event) => {
117
- if (pressHandlers.onPress) pressHandlers?.onPress(event)
118
- setIsOpen(!isOpen)
119
- }
118
+ const uniqueFields = ['id', 'label']
119
+ if (!containUniqueFields(items, uniqueFields)) {
120
+ throw new Error(`MultiSelectFilter items must have unique ${uniqueFields.join(', ')}`)
121
+ }
122
+ // Pass an object of relevant component state as first argument for any passed-in press handlers
123
+ const pressHandlers = getPressHandlersWithArgs(rest, [{ id, label, currentValues }])
120
124
 
121
- const onApply = (e) => {
122
- setValues(e)
123
- setIsOpen(false)
124
- onConfirm(e)
125
- }
125
+ const handleChange = (event) => {
126
+ if (pressHandlers.onPress) pressHandlers?.onPress(event)
127
+ setIsOpen(!isOpen)
128
+ }
126
129
 
127
- const onClear = () => {
128
- setCheckedIds(() => [])
129
- setValues([])
130
- setIsOpen(false)
131
- onCancel()
132
- }
130
+ const onApply = (e) => {
131
+ setValues(e)
132
+ setIsOpen(false)
133
+ onConfirm(e)
134
+ }
133
135
 
134
- const onClose = () => {
135
- setIsOpen(false)
136
- onCancel()
137
- }
136
+ const onClear = () => {
137
+ setCheckedIds(() => [])
138
+ setValues([])
139
+ setIsOpen(false)
140
+ onCancel()
141
+ }
138
142
 
139
- const { align, offsets } = useResponsiveProp({
140
- xs: { align: { top: 'top', left: 'left' } },
141
- sm: {
142
- align: { top: 'bottom', left: 'left' },
143
- offsets: { vertical: 4 }
143
+ const onClose = () => {
144
+ setIsOpen(false)
145
+ onCancel()
144
146
  }
145
- })
146
147
 
147
- const headerStyles = applyTextStyles({
148
- fontSize: headerFontSize,
149
- fontWeight: headerFontWeight,
150
- fontColor: headerFontColor
151
- })
148
+ const { align, offsets } = useResponsiveProp({
149
+ xs: { align: { top: 'top', left: 'left' } },
150
+ sm: {
151
+ align: { top: 'bottom', left: 'left' },
152
+ offsets: { vertical: 4 }
153
+ }
154
+ })
152
155
 
153
- const subeHeaderStyles = applyTextStyles({
154
- fontSize: subHeaderFontSize,
155
- fontWeight: subHeaderFontWeight,
156
- fontColor: selectSubTitleTokens(themeTokens)
157
- })
156
+ const headerStyles = applyTextStyles({
157
+ fontSize: headerFontSize,
158
+ fontWeight: headerFontWeight,
159
+ fontColor: headerFontColor
160
+ })
158
161
 
159
- const { overlaidPosition, onTargetLayout, isReady, sourceRef } = useOverlaidPosition({
160
- isShown: isOpen,
161
- offsets,
162
- align
163
- })
162
+ const subeHeaderStyles = applyTextStyles({
163
+ fontSize: subHeaderFontSize,
164
+ fontWeight: subHeaderFontWeight,
165
+ fontColor: selectSubTitleTokens(themeTokens)
166
+ })
164
167
 
165
- return (
166
- <>
167
- <ButtonDropdown
168
- ref={sourceRef}
169
- key={id}
170
- {...pressHandlers}
171
- value={isOpen}
172
- selected={isSelected}
173
- label={label}
174
- onChange={handleChange}
175
- tokens={getButtonTokens}
176
- inactive={inactive}
177
- />
178
- {isOpen && viewport === 'xs' && (
179
- <Modal isOpen={isOpen} onClose={onClose}>
180
- <Row>
181
- <Typography tokens={{ ...headerStyles, lineHeight: headerLineHeight }}>
182
- {getCopy('filterByLabel').replace(/%\{filterCategory\}/g, label.toLowerCase())}
183
- </Typography>
184
- </Row>
185
- {subtitle && (
186
- <>
187
- <Spacer space={5} />
188
- <Row>
189
- <Typography tokens={{ ...subeHeaderStyles, lineHeight: subHeaderLineHeight }}>
190
- {subtitle}
191
- </Typography>
192
- </Row>
193
- </>
194
- )}
195
- <Spacer space={4} />
196
- <Box scroll={true}>
197
- <Row distribute="between">
198
- {[...Array(colSize).keys()].map((i) => (
199
- <Col xs={12 / colSize} key={i}>
200
- <CheckboxGroup
201
- items={items.slice(i * rowLength, (i + 1) * rowLength)}
202
- checkedIds={checkedIds}
203
- onChange={(e) => setCheckedIds(e, i)}
204
- />
205
- <Spacer size={4} />
206
- </Col>
207
- ))}
208
- </Row>
209
- </Box>
210
- <Divider variant={selectDividerToknes({ ...themeTokens, width: 'full' })} space={4} />
211
- <Row horizontalAlign={buttonDirection === 'column' ? 'center' : 'start'}>
212
- <StackView
213
- direction={buttonDirection}
214
- space={3}
215
- tokens={{
216
- alignItems: 'center',
217
- ...(viewport === 'xs' && { flexGrow: 1 })
218
- }}
219
- >
220
- <Button
221
- onPress={() => onApply(checkedIds)}
222
- variant={{
223
- size: 'small',
224
- priority: 'high',
225
- ...(viewport === 'xs' && { width: 'full' })
226
- }}
227
- >
228
- {getCopy('applyButtonLabel')}
229
- </Button>
230
- <Box>
231
- <TextButton onPress={onClear}>{getCopy('clearButtonLabel')}</TextButton>
232
- </Box>
233
- </StackView>
234
- </Row>
235
- </Modal>
236
- )}
237
- {isOpen && viewport !== 'xs' && (
238
- <ModalOverlay
239
- overlaidPosition={overlaidPosition}
240
- onClose={onClose}
241
- maxHeight={maxHeight}
242
- maxHeightSize={maxHeightSize}
243
- maxWidthSize={maxWidthSize}
244
- minHeight={minHeight}
245
- minWidth={minWidth}
246
- tokens={{
247
- ...tokens,
248
- maxWidth
249
- }}
250
- copy={copy}
251
- isReady={isReady}
252
- onLayout={onTargetLayout}
253
- >
254
- <Row>
255
- <View style={styles.textContainerStyle}>
168
+ const { overlaidPosition, onTargetLayout, isReady, sourceRef } = useOverlaidPosition({
169
+ isShown: isOpen,
170
+ offsets,
171
+ align
172
+ })
173
+
174
+ return (
175
+ <>
176
+ <ButtonDropdown
177
+ ref={sourceRef}
178
+ key={id}
179
+ {...pressHandlers}
180
+ value={isOpen}
181
+ selected={isSelected}
182
+ label={label}
183
+ onChange={handleChange}
184
+ tokens={getButtonTokens}
185
+ inactive={inactive}
186
+ />
187
+ {isOpen && viewport === 'xs' && (
188
+ <Modal isOpen={isOpen} onClose={onClose} ref={ref}>
189
+ <Row>
256
190
  <Typography tokens={{ ...headerStyles, lineHeight: headerLineHeight }}>
257
191
  {getCopy('filterByLabel').replace(/%\{filterCategory\}/g, label.toLowerCase())}
258
192
  </Typography>
259
- </View>
260
- </Row>
261
- {subtitle && (
262
- <>
263
- <Spacer space={5} />
264
- <Row>
265
- <Typography tokens={{ ...subeHeaderStyles, lineHeight: subHeaderLineHeight }}>
266
- {subtitle}
267
- </Typography>
193
+ </Row>
194
+ {subtitle && (
195
+ <>
196
+ <Spacer space={5} />
197
+ <Row>
198
+ <Typography tokens={{ ...subeHeaderStyles, lineHeight: subHeaderLineHeight }}>
199
+ {subtitle}
200
+ </Typography>
201
+ </Row>
202
+ </>
203
+ )}
204
+ <Spacer space={4} />
205
+ <Box scroll={true}>
206
+ <Row distribute="between">
207
+ {[...Array(colSize).keys()].map((i) => (
208
+ <Col xs={12 / colSize} key={i}>
209
+ <CheckboxGroup
210
+ items={items.slice(i * rowLength, (i + 1) * rowLength)}
211
+ checkedIds={checkedIds}
212
+ onChange={(e) => setCheckedIds(e, i)}
213
+ />
214
+ <Spacer size={4} />
215
+ </Col>
216
+ ))}
268
217
  </Row>
269
- </>
270
- )}
271
- <Spacer space={4} />
272
- <Box scroll={true}>
273
- <Row distribute="between">
274
- {[...Array(colSize).keys()].map((i) => (
275
- <Col xs={12 / colSize} key={i}>
276
- <CheckboxGroup
277
- items={items.slice(i * rowLength, (i + 1) * rowLength)}
278
- checkedIds={checkedIds}
279
- onChange={(e) => setCheckedIds(e, i)}
280
- />
281
- <Spacer size={4} />
282
- </Col>
283
- ))}
218
+ </Box>
219
+ <Divider variant={selectDividerToknes({ ...themeTokens, width: 'full' })} space={4} />
220
+ <Row horizontalAlign={buttonDirection === 'column' ? 'center' : 'start'}>
221
+ <StackView
222
+ direction={buttonDirection}
223
+ space={3}
224
+ tokens={{
225
+ alignItems: 'center',
226
+ ...(viewport === 'xs' && { flexGrow: 1 })
227
+ }}
228
+ >
229
+ <Button
230
+ onPress={() => onApply(checkedIds)}
231
+ variant={{
232
+ size: 'small',
233
+ priority: 'high',
234
+ ...(viewport === 'xs' && { width: 'full' })
235
+ }}
236
+ >
237
+ {getCopy('applyButtonLabel')}
238
+ </Button>
239
+ <Box>
240
+ <TextButton onPress={onClear}>{getCopy('clearButtonLabel')}</TextButton>
241
+ </Box>
242
+ </StackView>
243
+ </Row>
244
+ </Modal>
245
+ )}
246
+ {isOpen && viewport !== 'xs' && (
247
+ <ModalOverlay
248
+ overlaidPosition={overlaidPosition}
249
+ onClose={onClose}
250
+ maxHeight={maxHeight}
251
+ maxHeightSize={maxHeightSize}
252
+ maxWidthSize={maxWidthSize}
253
+ minHeight={minHeight}
254
+ minWidth={minWidth}
255
+ tokens={{
256
+ ...tokens,
257
+ maxWidth
258
+ }}
259
+ copy={copy}
260
+ isReady={isReady}
261
+ onLayout={onTargetLayout}
262
+ ref={ref}
263
+ >
264
+ <Row>
265
+ <View style={styles.textContainerStyle}>
266
+ <Typography tokens={{ ...headerStyles, lineHeight: headerLineHeight }}>
267
+ {getCopy('filterByLabel').replace(/%\{filterCategory\}/g, label.toLowerCase())}
268
+ </Typography>
269
+ </View>
284
270
  </Row>
285
- </Box>
286
- <Divider variant={selectDividerToknes({ ...themeTokens, width: 'full' })} space={4} />
287
- <Row horizontalAlign={buttonDirection === 'column' ? 'center' : 'start'}>
288
- <StackView
289
- direction={buttonDirection}
290
- space={3}
291
- tokens={{
292
- alignItems: 'center',
293
- ...(viewport === 'xs' && { flexGrow: 1 })
294
- }}
295
- >
296
- <Button
297
- onPress={() => onApply(checkedIds)}
298
- variant={{
299
- size: 'small',
300
- priority: 'high',
301
- ...(viewport === 'xs' && { width: 'full' })
271
+ {subtitle && (
272
+ <>
273
+ <Spacer space={5} />
274
+ <Row>
275
+ <Typography tokens={{ ...subeHeaderStyles, lineHeight: subHeaderLineHeight }}>
276
+ {subtitle}
277
+ </Typography>
278
+ </Row>
279
+ </>
280
+ )}
281
+ <Spacer space={4} />
282
+ <Box scroll={true}>
283
+ <Row distribute="between">
284
+ {[...Array(colSize).keys()].map((i) => (
285
+ <Col xs={12 / colSize} key={i}>
286
+ <CheckboxGroup
287
+ items={items.slice(i * rowLength, (i + 1) * rowLength)}
288
+ checkedIds={checkedIds}
289
+ onChange={(e) => setCheckedIds(e, i)}
290
+ />
291
+ <Spacer size={4} />
292
+ </Col>
293
+ ))}
294
+ </Row>
295
+ </Box>
296
+ <Divider variant={selectDividerToknes({ ...themeTokens, width: 'full' })} space={4} />
297
+ <Row horizontalAlign={buttonDirection === 'column' ? 'center' : 'start'}>
298
+ <StackView
299
+ direction={buttonDirection}
300
+ space={3}
301
+ tokens={{
302
+ alignItems: 'center',
303
+ ...(viewport === 'xs' && { flexGrow: 1 })
302
304
  }}
303
305
  >
304
- {getCopy('applyButtonLabel')}
305
- </Button>
306
- <Box>
307
- <TextButton onPress={onClear}>{getCopy('clearButtonLabel')}</TextButton>
308
- </Box>
309
- </StackView>
310
- </Row>
311
- </ModalOverlay>
312
- )}
313
- </>
314
- )
315
- }
306
+ <Button
307
+ onPress={() => onApply(checkedIds)}
308
+ variant={{
309
+ size: 'small',
310
+ priority: 'high',
311
+ ...(viewport === 'xs' && { width: 'full' })
312
+ }}
313
+ >
314
+ {getCopy('applyButtonLabel')}
315
+ </Button>
316
+ <Box>
317
+ <TextButton onPress={onClear}>{getCopy('clearButtonLabel')}</TextButton>
318
+ </Box>
319
+ </StackView>
320
+ </Row>
321
+ </ModalOverlay>
322
+ )}
323
+ </>
324
+ )
325
+ }
326
+ )
316
327
 
317
328
  MultiSelectFilter.displayName = 'MultiSelectFilter'
318
329
 
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useState, useRef } from 'react'
1
+ import React from 'react'
2
2
  import { View } from 'react-native'
3
3
 
4
4
  import PropTypes from 'prop-types'
@@ -223,9 +223,9 @@ const getDefaultStyles = (themeTokens, themeOptions, maxWidth, dismissible) => (
223
223
  * Use full-width `Notifications` to show system-based messages coming from the application, not in response to user action.
224
224
  * Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
225
225
  */
226
- const Notification = forwardRef(
226
+ const Notification = React.forwardRef(
227
227
  ({ children, system, dismissible, copy = 'en', tokens, variant, ...rest }, ref) => {
228
- const [isDismissed, setIsDismissed] = useState(false)
228
+ const [isDismissed, setIsDismissed] = React.useState(false)
229
229
  const viewport = useViewport()
230
230
  const getCopy = useCopy({ dictionary, copy })
231
231
 
@@ -235,7 +235,7 @@ const Notification = forwardRef(
235
235
  const themeTokens = useTokens('Notification', tokens, variant, { system, viewport })
236
236
  const maxWidth = useResponsiveProp(themeOptions?.contentMaxWidth)
237
237
 
238
- const notificationComponentRef = useRef({
238
+ const notificationComponentRef = React.useRef({
239
239
  containerStyles: {},
240
240
  contentContainerStyles: {},
241
241
  staticContentContainerStyles: {},
@@ -245,7 +245,7 @@ const Notification = forwardRef(
245
245
  selectIconPropsStyles: {},
246
246
  selectDismissIconPropsStyles: {}
247
247
  })
248
- const mediaIdsRef = useRef({
248
+ const mediaIdsRef = React.useRef({
249
249
  containerIds: {},
250
250
  contentContainerIds: {},
251
251
  staticContentContainerIds: {},
@@ -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, StyleSheet } from 'react-native'
4
4
 
@@ -59,8 +59,8 @@ const selectItemContentStyles = ({ interItemMargin, ...themeTokens }, isLastChil
59
59
  marginBottom: !isLastChild ? interItemMargin : 0
60
60
  })
61
61
 
62
- const Item = forwardRef(
63
- ({ children, index, isLastChild, title, tokens, variant, ...rest }, ref) => {
62
+ const Item = React.forwardRef(
63
+ ({ children, index, isLastChild, title, tokens = {}, variant, ...rest }, ref) => {
64
64
  const themeTokens = useThemeTokens('OrderedList', tokens, variant)
65
65
  const headingTokens = title && {
66
66
  lineHeight: themeTokens.itemLineHeight,
@@ -125,7 +125,7 @@ Item.propTypes = {
125
125
  /**
126
126
  * Item tokens
127
127
  */
128
- tokens: getTokensPropType('List'),
128
+ tokens: getTokensPropType('OrderedList'),
129
129
  /**
130
130
  * Item variant
131
131
  */
@@ -134,8 +134,6 @@ Item.propTypes = {
134
134
 
135
135
  Item.displayName = 'OrderedListItem'
136
136
 
137
- Item.defaultProps = { title: undefined, tokens: {} }
138
-
139
137
  export default Item
140
138
 
141
139
  const staticStyles = StyleSheet.create({
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable react-native-a11y/has-valid-accessibility-role */
2
- import React, { forwardRef } from 'react'
2
+ import React from 'react'
3
3
  import PropTypes from 'prop-types'
4
4
  import { View, StyleSheet, Platform } from 'react-native'
5
5
 
@@ -10,7 +10,7 @@ const getAccessibilityRole = () =>
10
10
  web: 'listitem'
11
11
  })
12
12
 
13
- const Item = forwardRef(({ children, style, ...rest }, ref) => (
13
+ const Item = React.forwardRef(({ children, style, ...rest }, ref) => (
14
14
  <View
15
15
  accessibilityRole={getAccessibilityRole()}
16
16
  ref={ref}
@@ -1,14 +1,14 @@
1
- import React, { forwardRef, useMemo } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
 
4
- import { getTokensPropType, htmlAttrs, selectSystemProps, variantProp, viewProps } from '../utils'
4
+ import { htmlAttrs, selectSystemProps, variantProp, viewProps } from '../utils'
5
5
  import OrderedListBase from './OrderedListBase'
6
6
  import Item from './Item'
7
7
 
8
8
  const [selectProps, selectedSystemPropsTypes] = selectSystemProps([htmlAttrs, viewProps])
9
9
 
10
- const OrderedList = forwardRef(({ children, start, variant, ...rest }, ref) => {
11
- const childrenWithParentVariants = useMemo(() => {
10
+ const OrderedList = React.forwardRef(({ children, start = 1, variant = {}, ...rest }, ref) => {
11
+ const childrenWithParentVariants = React.useMemo(() => {
12
12
  const addVariantToProps = (child, i, isLastChild) => {
13
13
  const existingChildVariants = child.props?.variant ?? {}
14
14
  return React.cloneElement(child, {
@@ -37,7 +37,6 @@ const OrderedList = forwardRef(({ children, start, variant, ...rest }, ref) => {
37
37
 
38
38
  OrderedList.propTypes = {
39
39
  ...selectedSystemPropsTypes,
40
- tokens: getTokensPropType('OrderedList'),
41
40
  /**
42
41
  * A list of ordered items wrapped in `OrderedList.Item`.
43
42
  */
@@ -49,8 +48,6 @@ OrderedList.propTypes = {
49
48
  variant: variantProp.propType
50
49
  }
51
50
 
52
- OrderedList.defaultProps = { start: 1, tokens: {}, variant: {} }
53
-
54
51
  OrderedList.displayName = 'OrderedList'
55
52
 
56
53
  OrderedList.Item = Item