@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
@@ -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