@telus-uds/components-base 1.84.0 → 1.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/CHANGELOG.md +18 -2
  2. package/lib/A11yInfoProvider/index.js +8 -10
  3. package/lib/A11yText/index.js +2 -4
  4. package/lib/ActivityIndicator/Spinner.js +3 -4
  5. package/lib/ActivityIndicator/Spinner.native.js +2 -4
  6. package/lib/Autocomplete/Autocomplete.js +13 -17
  7. package/lib/Autocomplete/Loading.js +4 -2
  8. package/lib/Autocomplete/Suggestions.js +2 -4
  9. package/lib/Badge/Badge.js +2 -4
  10. package/lib/BaseProvider/HydrationContext.js +5 -7
  11. package/lib/Box/Box.js +5 -7
  12. package/lib/Button/Button.js +3 -3
  13. package/lib/Button/ButtonBase.js +2 -7
  14. package/lib/Button/ButtonDropdown.js +3 -3
  15. package/lib/Button/ButtonGroup.js +2 -4
  16. package/lib/Button/ButtonLink.js +3 -3
  17. package/lib/Card/Card.js +159 -16
  18. package/lib/Card/CardBase.js +2 -4
  19. package/lib/Card/PressableCardBase.js +3 -5
  20. package/lib/CardGroup/CardGroup.js +220 -0
  21. package/lib/CardGroup/dictionary.js +15 -0
  22. package/lib/CardGroup/index.js +10 -0
  23. package/lib/Carousel/Carousel.js +67 -57
  24. package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -4
  25. package/lib/Carousel/CarouselItem/CarouselItem.js +3 -2
  26. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
  27. package/lib/Carousel/CarouselTabs/CarouselTabs.js +2 -4
  28. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -8
  29. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -5
  30. package/lib/Carousel/CarouselThumbnail.js +4 -2
  31. package/lib/Carousel/CarouselThumbnailNavigation.js +2 -4
  32. package/lib/Checkbox/Checkbox.js +2 -4
  33. package/lib/Checkbox/CheckboxButton.js +3 -5
  34. package/lib/Checkbox/CheckboxGroup.js +2 -4
  35. package/lib/Checkbox/CheckboxInput.js +4 -14
  36. package/lib/CheckboxCard/CheckboxCard.js +3 -3
  37. package/lib/CheckboxCardGroup/CheckboxCardGroup.js +3 -3
  38. package/lib/ColourToggle/ColourBubble.js +5 -6
  39. package/lib/ColourToggle/ColourToggle.js +3 -5
  40. package/lib/Divider/Divider.js +2 -4
  41. package/lib/ExpandCollapse/Accordion.js +2 -4
  42. package/lib/ExpandCollapse/Control.js +2 -4
  43. package/lib/ExpandCollapse/ExpandCollapse.js +2 -4
  44. package/lib/ExpandCollapse/Panel.js +3 -5
  45. package/lib/Feedback/Feedback.js +2 -4
  46. package/lib/Fieldset/Fieldset.js +2 -4
  47. package/lib/Fieldset/FieldsetContainer.js +2 -4
  48. package/lib/Fieldset/FieldsetContainer.native.js +2 -4
  49. package/lib/Fieldset/Legend.js +2 -4
  50. package/lib/Fieldset/Legend.native.js +2 -4
  51. package/lib/FlexGrid/Col/Col.js +3 -5
  52. package/lib/FlexGrid/FlexGrid.js +2 -4
  53. package/lib/FlexGrid/Row/Row.js +2 -4
  54. package/lib/Footnote/Footnote.js +9 -9
  55. package/lib/Footnote/FootnoteLink.js +5 -3
  56. package/lib/HorizontalScroll/HorizontalScroll.js +8 -10
  57. package/lib/HorizontalScroll/HorizontalScrollButton.js +2 -4
  58. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -10
  59. package/lib/HorizontalScroll/ScrollViewEnd.native.js +2 -4
  60. package/lib/Icon/Icon.js +2 -4
  61. package/lib/Icon/IconText.js +3 -3
  62. package/lib/IconButton/IconButton.js +2 -4
  63. package/lib/InputLabel/InputLabel.js +2 -4
  64. package/lib/InputLabel/LabelContent.js +2 -4
  65. package/lib/InputLabel/LabelContent.native.js +2 -4
  66. package/lib/InputSupports/InputSupports.js +4 -5
  67. package/lib/Link/ChevronLink.js +2 -4
  68. package/lib/Link/InlinePressable.js +8 -7
  69. package/lib/Link/InlinePressable.native.js +10 -8
  70. package/lib/Link/Link.js +2 -4
  71. package/lib/Link/LinkBase.js +2 -4
  72. package/lib/Link/TextButton.js +2 -4
  73. package/lib/List/List.js +13 -11
  74. package/lib/List/ListItem.js +2 -4
  75. package/lib/List/ListItemBase.js +6 -10
  76. package/lib/List/ListItemContent.js +4 -2
  77. package/lib/List/ListItemMark.js +4 -2
  78. package/lib/List/PressableListItemBase.js +2 -4
  79. package/lib/Listbox/GroupControl.js +4 -2
  80. package/lib/Listbox/Listbox.js +6 -6
  81. package/lib/Listbox/ListboxContext.js +3 -4
  82. package/lib/Listbox/ListboxGroup.js +2 -4
  83. package/lib/Listbox/ListboxItem.js +2 -6
  84. package/lib/Listbox/ListboxOverlay.js +2 -6
  85. package/lib/Listbox/PressableItem.js +2 -6
  86. package/lib/Modal/Modal.js +5 -7
  87. package/lib/Modal/ModalContent.js +7 -7
  88. package/lib/Modal/WebModal.js +16 -9
  89. package/lib/MultiSelectFilter/ModalOverlay.js +2 -4
  90. package/lib/MultiSelectFilter/MultiSelectFilter.js +10 -10
  91. package/lib/Notification/Notification.js +5 -7
  92. package/lib/OrderedList/Item.js +4 -10
  93. package/lib/OrderedList/ItemBase.js +2 -4
  94. package/lib/OrderedList/OrderedList.js +5 -13
  95. package/lib/OrderedList/OrderedListBase.js +2 -4
  96. package/lib/Pagination/PageButton.js +1 -1
  97. package/lib/Pagination/Pagination.js +1 -1
  98. package/lib/Pagination/SideButton.js +2 -4
  99. package/lib/PriceLockup/PriceLockup.js +5 -5
  100. package/lib/ProductCard/ProductCard.js +3 -2
  101. package/lib/ProductCardGroup/ProductCardGroup.js +5 -6
  102. package/lib/Progress/Progress.js +2 -4
  103. package/lib/Progress/ProgressBar.js +2 -4
  104. package/lib/Progress/ProgressBarBackground.js +2 -4
  105. package/lib/QuickLinks/QuickLinks.js +2 -4
  106. package/lib/QuickLinks/QuickLinksCard.js +4 -2
  107. package/lib/QuickLinks/QuickLinksItem.js +2 -4
  108. package/lib/QuickLinksFeature/QuickLinksFeature.js +9 -7
  109. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +10 -12
  110. package/lib/Radio/Radio.js +3 -3
  111. package/lib/Radio/RadioButton.js +61 -15
  112. package/lib/Radio/RadioGroup.js +2 -4
  113. package/lib/Radio/RadioInput.js +6 -18
  114. package/lib/RadioCard/RadioCard.js +3 -3
  115. package/lib/RadioCard/RadioCardGroup.js +3 -3
  116. package/lib/Responsive/Responsive.js +3 -2
  117. package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
  118. package/lib/Search/Search.js +2 -4
  119. package/lib/Select/Group.js +4 -2
  120. package/lib/Select/Item.js +4 -2
  121. package/lib/Select/Picker.js +2 -4
  122. package/lib/Select/Picker.native.js +3 -5
  123. package/lib/Select/Select.js +4 -6
  124. package/lib/SideNav/Item.js +2 -4
  125. package/lib/SideNav/ItemContent.js +4 -2
  126. package/lib/SideNav/ItemsGroup.js +2 -4
  127. package/lib/SideNav/SideNav.js +2 -2
  128. package/lib/Skeleton/Skeleton.js +2 -4
  129. package/lib/SkipLink/SkipLink.js +2 -4
  130. package/lib/Spacer/Spacer.js +2 -4
  131. package/lib/StackView/StackView.js +2 -4
  132. package/lib/StackView/StackWrap.js +3 -5
  133. package/lib/StackView/StackWrapBox.js +2 -4
  134. package/lib/StackView/StackWrapGap.js +2 -4
  135. package/lib/StackView/getStackedContent.js +3 -3
  136. package/lib/StepTracker/Step.js +4 -2
  137. package/lib/StepTracker/StepTracker.js +2 -4
  138. package/lib/Tabs/Tabs.js +4 -4
  139. package/lib/Tabs/TabsItem.js +3 -5
  140. package/lib/Tags/Tags.js +2 -4
  141. package/lib/TextInput/TextArea.js +3 -5
  142. package/lib/TextInput/TextInput.js +2 -4
  143. package/lib/TextInput/TextInputBase.js +7 -9
  144. package/lib/ThemeProvider/ThemeProvider.js +5 -7
  145. package/lib/Timeline/Timeline.js +2 -4
  146. package/lib/ToggleSwitch/ToggleSwitch.js +2 -4
  147. package/lib/ToggleSwitch/ToggleSwitchGroup.js +2 -4
  148. package/lib/Tooltip/Tooltip.js +6 -8
  149. package/lib/Tooltip/Tooltip.native.js +12 -14
  150. package/lib/TooltipButton/TooltipButton.js +4 -2
  151. package/lib/Typography/Typography.js +2 -4
  152. package/lib/Validator/Validator.js +11 -13
  153. package/lib/ViewportProvider/ViewportProvider.js +2 -4
  154. package/lib/index.js +8 -0
  155. package/lib/utils/BaseView/BaseView.js +2 -4
  156. package/lib/utils/children.js +4 -6
  157. package/lib/utils/withLinkRouter.js +3 -5
  158. package/lib-module/A11yInfoProvider/index.js +8 -8
  159. package/lib-module/A11yText/index.js +2 -2
  160. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  161. package/lib-module/ActivityIndicator/Spinner.native.js +2 -2
  162. package/lib-module/Autocomplete/Autocomplete.js +13 -14
  163. package/lib-module/Autocomplete/Loading.js +4 -2
  164. package/lib-module/Autocomplete/Suggestions.js +2 -2
  165. package/lib-module/Badge/Badge.js +2 -2
  166. package/lib-module/BaseProvider/HydrationContext.js +5 -5
  167. package/lib-module/Box/Box.js +5 -5
  168. package/lib-module/Button/Button.js +2 -2
  169. package/lib-module/Button/ButtonBase.js +2 -5
  170. package/lib-module/Button/ButtonDropdown.js +2 -2
  171. package/lib-module/Button/ButtonGroup.js +2 -2
  172. package/lib-module/Button/ButtonLink.js +2 -2
  173. package/lib-module/Card/Card.js +159 -14
  174. package/lib-module/Card/CardBase.js +2 -2
  175. package/lib-module/Card/PressableCardBase.js +4 -4
  176. package/lib-module/CardGroup/CardGroup.js +210 -0
  177. package/lib-module/CardGroup/dictionary.js +8 -0
  178. package/lib-module/CardGroup/index.js +2 -0
  179. package/lib-module/Carousel/Carousel.js +67 -55
  180. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -2
  181. package/lib-module/Carousel/CarouselItem/CarouselItem.js +3 -2
  182. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
  183. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +2 -2
  184. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -6
  185. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -3
  186. package/lib-module/Carousel/CarouselThumbnail.js +4 -2
  187. package/lib-module/Carousel/CarouselThumbnailNavigation.js +2 -2
  188. package/lib-module/Checkbox/Checkbox.js +2 -2
  189. package/lib-module/Checkbox/CheckboxButton.js +3 -3
  190. package/lib-module/Checkbox/CheckboxGroup.js +2 -2
  191. package/lib-module/Checkbox/CheckboxInput.js +4 -12
  192. package/lib-module/CheckboxCard/CheckboxCard.js +2 -2
  193. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +2 -2
  194. package/lib-module/ColourToggle/ColourBubble.js +5 -4
  195. package/lib-module/ColourToggle/ColourToggle.js +3 -3
  196. package/lib-module/Divider/Divider.js +2 -2
  197. package/lib-module/ExpandCollapse/Accordion.js +2 -2
  198. package/lib-module/ExpandCollapse/Control.js +2 -2
  199. package/lib-module/ExpandCollapse/ExpandCollapse.js +2 -2
  200. package/lib-module/ExpandCollapse/Panel.js +3 -3
  201. package/lib-module/Feedback/Feedback.js +2 -2
  202. package/lib-module/Fieldset/Fieldset.js +2 -2
  203. package/lib-module/Fieldset/FieldsetContainer.js +2 -2
  204. package/lib-module/Fieldset/FieldsetContainer.native.js +2 -2
  205. package/lib-module/Fieldset/Legend.js +2 -2
  206. package/lib-module/Fieldset/Legend.native.js +2 -2
  207. package/lib-module/FlexGrid/Col/Col.js +3 -3
  208. package/lib-module/FlexGrid/FlexGrid.js +2 -2
  209. package/lib-module/FlexGrid/Row/Row.js +2 -2
  210. package/lib-module/Footnote/Footnote.js +9 -7
  211. package/lib-module/Footnote/FootnoteLink.js +5 -4
  212. package/lib-module/HorizontalScroll/HorizontalScroll.js +8 -8
  213. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +2 -2
  214. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -8
  215. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +2 -2
  216. package/lib-module/Icon/Icon.js +2 -2
  217. package/lib-module/Icon/IconText.js +2 -2
  218. package/lib-module/IconButton/IconButton.js +2 -2
  219. package/lib-module/InputLabel/InputLabel.js +2 -2
  220. package/lib-module/InputLabel/LabelContent.js +2 -2
  221. package/lib-module/InputLabel/LabelContent.native.js +2 -2
  222. package/lib-module/InputSupports/InputSupports.js +4 -3
  223. package/lib-module/Link/ChevronLink.js +2 -2
  224. package/lib-module/Link/InlinePressable.js +10 -4
  225. package/lib-module/Link/InlinePressable.native.js +12 -6
  226. package/lib-module/Link/Link.js +2 -2
  227. package/lib-module/Link/LinkBase.js +2 -2
  228. package/lib-module/Link/TextButton.js +2 -2
  229. package/lib-module/List/List.js +13 -9
  230. package/lib-module/List/ListItem.js +2 -2
  231. package/lib-module/List/ListItemBase.js +6 -8
  232. package/lib-module/List/ListItemContent.js +4 -2
  233. package/lib-module/List/ListItemMark.js +4 -2
  234. package/lib-module/List/PressableListItemBase.js +2 -2
  235. package/lib-module/Listbox/GroupControl.js +4 -2
  236. package/lib-module/Listbox/Listbox.js +7 -7
  237. package/lib-module/Listbox/ListboxContext.js +2 -2
  238. package/lib-module/Listbox/ListboxGroup.js +2 -2
  239. package/lib-module/Listbox/ListboxItem.js +2 -3
  240. package/lib-module/Listbox/ListboxOverlay.js +2 -3
  241. package/lib-module/Listbox/PressableItem.js +2 -3
  242. package/lib-module/Modal/Modal.js +5 -5
  243. package/lib-module/Modal/ModalContent.js +7 -5
  244. package/lib-module/Modal/WebModal.js +16 -9
  245. package/lib-module/MultiSelectFilter/ModalOverlay.js +2 -2
  246. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +10 -8
  247. package/lib-module/Notification/Notification.js +5 -5
  248. package/lib-module/OrderedList/Item.js +4 -8
  249. package/lib-module/OrderedList/ItemBase.js +2 -2
  250. package/lib-module/OrderedList/OrderedList.js +6 -12
  251. package/lib-module/OrderedList/OrderedListBase.js +2 -2
  252. package/lib-module/Pagination/PageButton.js +2 -2
  253. package/lib-module/Pagination/Pagination.js +2 -2
  254. package/lib-module/Pagination/SideButton.js +2 -2
  255. package/lib-module/PriceLockup/PriceLockup.js +5 -5
  256. package/lib-module/ProductCard/ProductCard.js +3 -2
  257. package/lib-module/ProductCardGroup/ProductCardGroup.js +5 -4
  258. package/lib-module/Progress/Progress.js +2 -2
  259. package/lib-module/Progress/ProgressBar.js +2 -2
  260. package/lib-module/Progress/ProgressBarBackground.js +2 -2
  261. package/lib-module/QuickLinks/QuickLinks.js +2 -2
  262. package/lib-module/QuickLinks/QuickLinksCard.js +4 -2
  263. package/lib-module/QuickLinks/QuickLinksItem.js +2 -2
  264. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +9 -5
  265. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +10 -10
  266. package/lib-module/Radio/Radio.js +2 -2
  267. package/lib-module/Radio/RadioButton.js +62 -14
  268. package/lib-module/Radio/RadioGroup.js +2 -2
  269. package/lib-module/Radio/RadioInput.js +6 -16
  270. package/lib-module/RadioCard/RadioCard.js +2 -2
  271. package/lib-module/RadioCard/RadioCardGroup.js +2 -2
  272. package/lib-module/Responsive/Responsive.js +3 -2
  273. package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
  274. package/lib-module/Search/Search.js +2 -2
  275. package/lib-module/Select/Group.js +4 -2
  276. package/lib-module/Select/Item.js +4 -2
  277. package/lib-module/Select/Picker.js +2 -2
  278. package/lib-module/Select/Picker.native.js +3 -3
  279. package/lib-module/Select/Select.js +4 -4
  280. package/lib-module/SideNav/Item.js +2 -2
  281. package/lib-module/SideNav/ItemContent.js +4 -2
  282. package/lib-module/SideNav/ItemsGroup.js +2 -2
  283. package/lib-module/SideNav/SideNav.js +3 -3
  284. package/lib-module/Skeleton/Skeleton.js +2 -2
  285. package/lib-module/SkipLink/SkipLink.js +2 -2
  286. package/lib-module/Spacer/Spacer.js +2 -2
  287. package/lib-module/StackView/StackView.js +2 -2
  288. package/lib-module/StackView/StackWrap.js +3 -3
  289. package/lib-module/StackView/StackWrapBox.js +2 -2
  290. package/lib-module/StackView/StackWrapGap.js +2 -2
  291. package/lib-module/StackView/getStackedContent.js +4 -4
  292. package/lib-module/StepTracker/Step.js +4 -2
  293. package/lib-module/StepTracker/StepTracker.js +2 -2
  294. package/lib-module/Tabs/Tabs.js +3 -3
  295. package/lib-module/Tabs/TabsItem.js +3 -3
  296. package/lib-module/Tags/Tags.js +2 -2
  297. package/lib-module/TextInput/TextArea.js +3 -3
  298. package/lib-module/TextInput/TextInput.js +2 -2
  299. package/lib-module/TextInput/TextInputBase.js +7 -7
  300. package/lib-module/ThemeProvider/ThemeProvider.js +5 -5
  301. package/lib-module/Timeline/Timeline.js +2 -2
  302. package/lib-module/ToggleSwitch/ToggleSwitch.js +2 -2
  303. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +2 -2
  304. package/lib-module/Tooltip/Tooltip.js +6 -6
  305. package/lib-module/Tooltip/Tooltip.native.js +12 -12
  306. package/lib-module/TooltipButton/TooltipButton.js +4 -2
  307. package/lib-module/Typography/Typography.js +2 -2
  308. package/lib-module/Validator/Validator.js +11 -11
  309. package/lib-module/ViewportProvider/ViewportProvider.js +2 -2
  310. package/lib-module/index.js +1 -0
  311. package/lib-module/utils/BaseView/BaseView.js +2 -2
  312. package/lib-module/utils/children.js +4 -4
  313. package/lib-module/utils/withLinkRouter.js +3 -3
  314. package/package.json +2 -2
  315. package/src/A11yInfoProvider/index.jsx +8 -8
  316. package/src/A11yText/index.jsx +2 -2
  317. package/src/ActivityIndicator/Spinner.jsx +2 -2
  318. package/src/ActivityIndicator/Spinner.native.jsx +2 -2
  319. package/src/Autocomplete/Autocomplete.jsx +15 -14
  320. package/src/Autocomplete/Loading.jsx +6 -3
  321. package/src/Autocomplete/Suggestions.jsx +2 -2
  322. package/src/Badge/Badge.jsx +2 -2
  323. package/src/BaseProvider/HydrationContext.jsx +5 -5
  324. package/src/Box/Box.jsx +5 -5
  325. package/src/Button/Button.jsx +11 -9
  326. package/src/Button/ButtonBase.jsx +2 -3
  327. package/src/Button/ButtonDropdown.jsx +2 -2
  328. package/src/Button/ButtonGroup.jsx +2 -2
  329. package/src/Button/ButtonLink.jsx +2 -2
  330. package/src/Card/Card.jsx +151 -11
  331. package/src/Card/CardBase.jsx +2 -2
  332. package/src/Card/PressableCardBase.jsx +18 -4
  333. package/src/CardGroup/CardGroup.jsx +249 -0
  334. package/src/CardGroup/dictionary.js +8 -0
  335. package/src/CardGroup/index.js +3 -0
  336. package/src/Carousel/Carousel.jsx +69 -53
  337. package/src/Carousel/CarouselFirstFocus/CarouselFirstFocus.jsx +2 -2
  338. package/src/Carousel/CarouselItem/CarouselItem.jsx +19 -17
  339. package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +5 -3
  340. package/src/Carousel/CarouselTabs/CarouselTabs.jsx +2 -2
  341. package/src/Carousel/CarouselTabs/CarouselTabsPanel.jsx +6 -6
  342. package/src/Carousel/CarouselTabs/CarouselTabsPanelItem.jsx +3 -3
  343. package/src/Carousel/CarouselThumbnail.jsx +6 -2
  344. package/src/Carousel/CarouselThumbnailNavigation.jsx +2 -2
  345. package/src/Checkbox/Checkbox.jsx +2 -2
  346. package/src/Checkbox/CheckboxButton.jsx +5 -7
  347. package/src/Checkbox/CheckboxGroup.jsx +2 -2
  348. package/src/Checkbox/CheckboxInput.jsx +15 -12
  349. package/src/CheckboxCard/CheckboxCard.jsx +2 -2
  350. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +2 -2
  351. package/src/ColourToggle/ColourBubble.jsx +5 -4
  352. package/src/ColourToggle/ColourToggle.jsx +3 -3
  353. package/src/Divider/Divider.jsx +2 -2
  354. package/src/ExpandCollapse/Accordion.jsx +4 -2
  355. package/src/ExpandCollapse/Control.jsx +2 -2
  356. package/src/ExpandCollapse/ExpandCollapse.jsx +2 -2
  357. package/src/ExpandCollapse/Panel.jsx +3 -3
  358. package/src/Feedback/Feedback.jsx +2 -2
  359. package/src/Fieldset/Fieldset.jsx +2 -2
  360. package/src/Fieldset/FieldsetContainer.jsx +2 -2
  361. package/src/Fieldset/FieldsetContainer.native.jsx +2 -2
  362. package/src/Fieldset/Legend.jsx +2 -2
  363. package/src/Fieldset/Legend.native.jsx +2 -2
  364. package/src/FlexGrid/Col/Col.jsx +3 -3
  365. package/src/FlexGrid/FlexGrid.jsx +2 -2
  366. package/src/FlexGrid/Row/Row.jsx +2 -2
  367. package/src/Footnote/Footnote.jsx +111 -98
  368. package/src/Footnote/FootnoteLink.jsx +35 -31
  369. package/src/HorizontalScroll/HorizontalScroll.jsx +8 -8
  370. package/src/HorizontalScroll/HorizontalScrollButton.jsx +2 -2
  371. package/src/HorizontalScroll/ScrollViewEnd.jsx +4 -8
  372. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +2 -2
  373. package/src/Icon/Icon.jsx +2 -2
  374. package/src/Icon/IconText.jsx +2 -2
  375. package/src/IconButton/IconButton.jsx +2 -2
  376. package/src/InputLabel/InputLabel.jsx +2 -2
  377. package/src/InputLabel/LabelContent.jsx +2 -2
  378. package/src/InputLabel/LabelContent.native.jsx +2 -2
  379. package/src/InputSupports/InputSupports.jsx +4 -3
  380. package/src/Link/ChevronLink.jsx +2 -2
  381. package/src/Link/InlinePressable.jsx +22 -15
  382. package/src/Link/InlinePressable.native.jsx +12 -6
  383. package/src/Link/Link.jsx +2 -2
  384. package/src/Link/LinkBase.jsx +2 -2
  385. package/src/Link/TextButton.jsx +2 -2
  386. package/src/List/List.jsx +15 -7
  387. package/src/List/ListItem.jsx +2 -2
  388. package/src/List/ListItemBase.jsx +6 -12
  389. package/src/List/ListItemContent.jsx +5 -2
  390. package/src/List/ListItemMark.jsx +5 -3
  391. package/src/List/PressableListItemBase.jsx +2 -2
  392. package/src/Listbox/GroupControl.jsx +5 -2
  393. package/src/Listbox/Listbox.jsx +7 -7
  394. package/src/Listbox/ListboxContext.js +2 -2
  395. package/src/Listbox/ListboxGroup.jsx +2 -2
  396. package/src/Listbox/ListboxItem.jsx +2 -3
  397. package/src/Listbox/ListboxOverlay.jsx +2 -3
  398. package/src/Listbox/PressableItem.jsx +2 -3
  399. package/src/Modal/Modal.jsx +5 -5
  400. package/src/Modal/ModalContent.jsx +132 -125
  401. package/src/Modal/WebModal.jsx +13 -8
  402. package/src/MultiSelectFilter/ModalOverlay.jsx +2 -2
  403. package/src/MultiSelectFilter/MultiSelectFilter.jsx +263 -252
  404. package/src/Notification/Notification.jsx +5 -5
  405. package/src/OrderedList/Item.jsx +4 -6
  406. package/src/OrderedList/ItemBase.jsx +2 -2
  407. package/src/OrderedList/OrderedList.jsx +4 -7
  408. package/src/OrderedList/OrderedListBase.jsx +2 -2
  409. package/src/Pagination/PageButton.jsx +2 -2
  410. package/src/Pagination/Pagination.jsx +2 -2
  411. package/src/Pagination/SideButton.jsx +2 -2
  412. package/src/PriceLockup/PriceLockup.jsx +93 -88
  413. package/src/ProductCard/ProductCard.jsx +90 -84
  414. package/src/ProductCardGroup/ProductCardGroup.jsx +5 -5
  415. package/src/Progress/Progress.jsx +2 -2
  416. package/src/Progress/ProgressBar.jsx +2 -2
  417. package/src/Progress/ProgressBarBackground.jsx +4 -2
  418. package/src/QuickLinks/QuickLinks.jsx +2 -2
  419. package/src/QuickLinks/QuickLinksCard.jsx +9 -3
  420. package/src/QuickLinks/QuickLinksItem.jsx +2 -2
  421. package/src/QuickLinksFeature/QuickLinksFeature.jsx +31 -27
  422. package/src/QuickLinksFeature/QuickLinksFeatureItem.jsx +3 -3
  423. package/src/Radio/Radio.jsx +2 -2
  424. package/src/Radio/RadioButton.jsx +58 -6
  425. package/src/Radio/RadioGroup.jsx +2 -2
  426. package/src/Radio/RadioInput.jsx +15 -14
  427. package/src/RadioCard/RadioCard.jsx +2 -2
  428. package/src/RadioCard/RadioCardGroup.jsx +2 -2
  429. package/src/Responsive/Responsive.jsx +8 -3
  430. package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +23 -16
  431. package/src/Search/Search.jsx +2 -2
  432. package/src/Select/Group.jsx +9 -3
  433. package/src/Select/Item.jsx +7 -1
  434. package/src/Select/Picker.jsx +2 -2
  435. package/src/Select/Picker.native.jsx +3 -3
  436. package/src/Select/Select.jsx +4 -4
  437. package/src/SideNav/Item.jsx +2 -2
  438. package/src/SideNav/ItemContent.jsx +7 -3
  439. package/src/SideNav/ItemsGroup.jsx +2 -2
  440. package/src/SideNav/SideNav.jsx +3 -3
  441. package/src/Skeleton/Skeleton.jsx +2 -2
  442. package/src/SkipLink/SkipLink.jsx +2 -2
  443. package/src/Spacer/Spacer.jsx +2 -2
  444. package/src/StackView/StackView.jsx +2 -2
  445. package/src/StackView/StackWrap.jsx +3 -3
  446. package/src/StackView/StackWrapBox.jsx +2 -2
  447. package/src/StackView/StackWrapGap.jsx +2 -2
  448. package/src/StackView/getStackedContent.jsx +4 -4
  449. package/src/StepTracker/Step.jsx +75 -67
  450. package/src/StepTracker/StepTracker.jsx +2 -2
  451. package/src/Tabs/Tabs.jsx +3 -3
  452. package/src/Tabs/TabsItem.jsx +3 -3
  453. package/src/Tags/Tags.jsx +2 -2
  454. package/src/TextInput/TextArea.jsx +3 -3
  455. package/src/TextInput/TextInput.jsx +2 -2
  456. package/src/TextInput/TextInputBase.jsx +7 -7
  457. package/src/ThemeProvider/ThemeProvider.jsx +5 -5
  458. package/src/Timeline/Timeline.jsx +2 -2
  459. package/src/ToggleSwitch/ToggleSwitch.jsx +2 -2
  460. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +2 -2
  461. package/src/Tooltip/Tooltip.jsx +6 -6
  462. package/src/Tooltip/Tooltip.native.jsx +12 -12
  463. package/src/TooltipButton/TooltipButton.jsx +5 -2
  464. package/src/Typography/Typography.jsx +2 -2
  465. package/src/Validator/Validator.jsx +11 -11
  466. package/src/ViewportProvider/ViewportProvider.jsx +2 -2
  467. package/src/index.js +1 -0
  468. package/src/utils/BaseView/BaseView.jsx +2 -2
  469. package/src/utils/children.jsx +4 -4
  470. package/src/utils/withLinkRouter.jsx +3 -3
  471. package/types/ExpandCollapse.d.ts +1 -1
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { View } from 'react-native'
4
4
  import {
@@ -47,7 +47,7 @@ const spaceSides = {
47
47
  * Unlike the cleaner and more side-effect-free CSS gap StackWrap implementation, this renders a Box (View)
48
48
  * between the container and the stacked children, and requires a negative margin on the container.
49
49
  */
50
- const StackWrapBox = forwardRef(
50
+ const StackWrapBox = React.forwardRef(
51
51
  (
52
52
  {
53
53
  space = 1,
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import { View } from 'react-native'
3
3
 
4
4
  import StackWrapBox from './StackWrapBox'
@@ -27,7 +27,7 @@ const [selectProps] = selectSystemProps([a11yProps, viewProps])
27
27
  * - The `space` between items is the same as the `gap` between wrapped rows (this is the
28
28
  * default if `gap` prop is undefined)
29
29
  */
30
- const StackWrapGap = forwardRef(
30
+ const StackWrapGap = React.forwardRef(
31
31
  (
32
32
  {
33
33
  space = 1,
@@ -1,4 +1,4 @@
1
- import React, { Children, Fragment } from 'react'
1
+ import React from 'react'
2
2
 
3
3
  import Box from '../Box'
4
4
  import Divider from '../Divider'
@@ -39,7 +39,7 @@ const getStackedContent = (
39
39
 
40
40
  // Avoid surprises if children contains comments, nulls, or is a variable wrapped as a fragment
41
41
  const topLevelChildren = preserveFragments ? children : unpackFragment(children)
42
- const validChildren = Children.toArray(topLevelChildren).filter(Boolean)
42
+ const validChildren = React.Children.toArray(topLevelChildren).filter(Boolean)
43
43
  const content = validChildren.reduce((newChildren, child, index) => {
44
44
  const boxID = `Stack-Box-${index}`
45
45
  const item = box ? (
@@ -109,10 +109,10 @@ const getStackedContent = (
109
109
  */
110
110
  const unpackFragment = (child) => {
111
111
  // If this level is a set of top-level siblings rather than one child, check each in turn
112
- if (Children.count(child) > 1) return Children.map(child, unpackFragment)
112
+ if (React.Children.count(child) > 1) return React.Children.map(child, unpackFragment)
113
113
 
114
114
  // When a fragment is found, unpack its children to the top level and check them
115
- if (child?.type === Fragment) return unpackFragment(child.props?.children)
115
+ if (child?.type === React.Fragment) return unpackFragment(child.props?.children)
116
116
 
117
117
  // Stop unpacking as soon as any non-fragment child is found
118
118
  return child
@@ -141,79 +141,87 @@ const getStepTestID = (isCompleted, isCurrent) => {
141
141
  /**
142
142
  * A single step of a StepTracker.
143
143
  */
144
- const Step = ({ label, name, status = 0, stepCount = 0, stepIndex = 0, tokens, ...rest }) => {
145
- const { completedIcon, showStepLabel, showStepName, textStepTrackerLabel, ...themeTokens } =
146
- tokens
147
- const isFirst = stepIndex === 0
148
- const isLast = stepIndex === stepCount - 1
149
- const isCompleted = status > stepIndex
150
- const isCurrent = status === stepIndex
151
- const isActive = isCompleted || isCurrent
152
- const { themeOptions } = useTheme()
144
+ const Step = React.forwardRef(
145
+ ({ label, name, status = 0, stepCount = 0, stepIndex = 0, tokens, ...rest }, ref) => {
146
+ const { completedIcon, showStepLabel, showStepName, textStepTrackerLabel, ...themeTokens } =
147
+ tokens
148
+ const isFirst = stepIndex === 0
149
+ const isLast = stepIndex === stepCount - 1
150
+ const isCompleted = status > stepIndex
151
+ const isCurrent = status === stepIndex
152
+ const isActive = isCompleted || isCurrent
153
+ const { themeOptions } = useTheme()
153
154
 
154
- return (
155
- <StackView
156
- space={0}
157
- tokens={{ alignItems: 'stretch', flexGrow: 1 }}
158
- accessibilityLabel={label}
159
- accessibilityLevel={2}
160
- accessibilityCurrent={status === stepIndex}
161
- {...selectProps(rest)}
162
- >
155
+ return (
163
156
  <StackView
164
- direction="row"
165
157
  space={0}
166
- tokens={{ alignItems: 'center', flexGrow: 0, justifyContent: 'center' }}
158
+ tokens={{ alignItems: 'stretch', flexGrow: 1 }}
159
+ accessibilityLabel={label}
160
+ accessibilityLevel={2}
161
+ accessibilityCurrent={status === stepIndex}
162
+ ref={ref}
163
+ {...selectProps(rest)}
167
164
  >
168
- <View
169
- style={[staticStyles.connector, !isFirst && selectConnectorStyles(themeTokens, isActive)]}
170
- />
171
- <View
172
- style={[staticStyles.knob, selectKnobStyles(themeTokens, isCompleted, isCurrent)]}
173
- testID={getStepTestID(isCompleted, isCurrent)}
165
+ <StackView
166
+ direction="row"
167
+ space={0}
168
+ tokens={{ alignItems: 'center', flexGrow: 0, justifyContent: 'center' }}
174
169
  >
175
- {isCompleted && completedIcon && (
176
- <Icon icon={completedIcon} tokens={selectCompletedIconTokens(themeTokens)} />
177
- )}
178
- {((isCurrent && completedIcon) || (isCurrent && !completedIcon)) && (
179
- <View style={selectCurrentInnerStyles(themeTokens)} />
180
- )}
181
- </View>
182
- <View
183
- style={[
184
- staticStyles.connector,
185
- !isLast && selectConnectorStyles(themeTokens, isCompleted)
186
- ]}
187
- />
170
+ <View
171
+ style={[
172
+ staticStyles.connector,
173
+ !isFirst && selectConnectorStyles(themeTokens, isActive)
174
+ ]}
175
+ />
176
+ <View
177
+ style={[staticStyles.knob, selectKnobStyles(themeTokens, isCompleted, isCurrent)]}
178
+ testID={getStepTestID(isCompleted, isCurrent)}
179
+ >
180
+ {isCompleted && completedIcon && (
181
+ <Icon icon={completedIcon} tokens={selectCompletedIconTokens(themeTokens)} />
182
+ )}
183
+ {((isCurrent && completedIcon) || (isCurrent && !completedIcon)) && (
184
+ <View style={selectCurrentInnerStyles(themeTokens)} />
185
+ )}
186
+ </View>
187
+ <View
188
+ style={[
189
+ staticStyles.connector,
190
+ !isLast && selectConnectorStyles(themeTokens, isCompleted)
191
+ ]}
192
+ />
193
+ </StackView>
194
+ {showStepLabel && (
195
+ <View style={[staticStyles.stepLabelContainer, selectLabelContainerStyles(tokens)]}>
196
+ {showStepName && (
197
+ <Text
198
+ style={[
199
+ staticStyles.centeredText,
200
+ selectStepLabelStyles(tokens, themeOptions, isCurrent)
201
+ ]}
202
+ >
203
+ {name}
204
+ </Text>
205
+ )}
206
+ <StackView direction="row">
207
+ <Text
208
+ style={[
209
+ staticStyles.centeredText,
210
+ tokens.labelDirection === 'column' && staticStyles.wrappingLabel,
211
+ selectLabelStyles(tokens, themeOptions, isCurrent)
212
+ ]}
213
+ >
214
+ {label}
215
+ </Text>
216
+ </StackView>
217
+ </View>
218
+ )}
188
219
  </StackView>
189
- {showStepLabel && (
190
- <View style={[staticStyles.stepLabelContainer, selectLabelContainerStyles(tokens)]}>
191
- {showStepName && (
192
- <Text
193
- style={[
194
- staticStyles.centeredText,
195
- selectStepLabelStyles(tokens, themeOptions, isCurrent)
196
- ]}
197
- >
198
- {name}
199
- </Text>
200
- )}
201
- <StackView direction="row">
202
- <Text
203
- style={[
204
- staticStyles.centeredText,
205
- tokens.labelDirection === 'column' && staticStyles.wrappingLabel,
206
- selectLabelStyles(tokens, themeOptions, isCurrent)
207
- ]}
208
- >
209
- {label}
210
- </Text>
211
- </StackView>
212
- </View>
213
- )}
214
- </StackView>
215
- )
216
- }
220
+ )
221
+ }
222
+ )
223
+
224
+ Step.displayName = 'Step'
217
225
 
218
226
  Step.propTypes = {
219
227
  ...selectedSystemPropTypes,
@@ -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 { StyleSheet, Text, View } from 'react-native'
4
4
  import StackView from '../StackView'
@@ -70,7 +70,7 @@ const selectStepTrackerLabelStyles = (
70
70
  * - `accessibilityValue.text` (`aria-valuetext`): `<Current Step Label>`,
71
71
  *
72
72
  */
73
- const StepTracker = forwardRef(
73
+ const StepTracker = React.forwardRef(
74
74
  (
75
75
  {
76
76
  current = 0,
package/src/Tabs/Tabs.jsx CHANGED
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useCallback } from 'react'
1
+ import React from 'react'
2
2
  import { Platform } from 'react-native'
3
3
  import PropTypes from 'prop-types'
4
4
  import ABBPropTypes from 'airbnb-prop-types'
@@ -62,7 +62,7 @@ const getStackViewTokens = (variant) => {
62
62
  * `navigation`as the `accessibilityRole` to te Tabs component, this will cause
63
63
  * TabItems to default to a role of link and obtain aria-current behaviour.
64
64
  */
65
- const Tabs = forwardRef(
65
+ const Tabs = React.forwardRef(
66
66
  (
67
67
  {
68
68
  tokens,
@@ -85,7 +85,7 @@ const Tabs = forwardRef(
85
85
  const [itemPositions, isPositioningReady] = useItemPositions()
86
86
 
87
87
  useHash(
88
- useCallback(
88
+ React.useCallback(
89
89
  (hash, event) => {
90
90
  const hashItem = hash && items.find(({ href }) => hash === href)
91
91
  const hashId = hashItem && (hashItem.id || hashItem.label)
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useEffect } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { Platform, Pressable, StyleSheet, Text, View } from 'react-native'
4
4
 
@@ -76,7 +76,7 @@ const selectContainerStyles = ({
76
76
  *
77
77
  * This is rendered automatically by `Tabs` and isn't intended be used directly.
78
78
  */
79
- const TabsItem = forwardRef(
79
+ const TabsItem = React.forwardRef(
80
80
  (
81
81
  {
82
82
  href,
@@ -127,7 +127,7 @@ const TabsItem = forwardRef(
127
127
  ...rest
128
128
  })
129
129
 
130
- useEffect(() => {
130
+ React.useEffect(() => {
131
131
  // If this is selected while off-screen, scroll it into view
132
132
  if (selected) {
133
133
  const position = itemPositions.positions[index]
package/src/Tags/Tags.jsx CHANGED
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import ABBPropTypes from 'airbnb-prop-types'
4
4
  import { Platform, Text, View } from 'react-native'
@@ -74,7 +74,7 @@ const separateIconTextTokens = (
74
74
  const selectIconTextTokens = (tokens) => separateIconTextTokens(tokens, false)
75
75
  const selectNonIconTextTokens = (tokens) => separateIconTextTokens(tokens, true)
76
76
 
77
- const Tags = forwardRef(
77
+ const Tags = React.forwardRef(
78
78
  (
79
79
  {
80
80
  variant,
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useState } from 'react'
1
+ import React from 'react'
2
2
 
3
3
  import { Platform } from 'react-native'
4
4
  import {
@@ -50,9 +50,9 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([
50
50
  * or an indicator that the field is optional.
51
51
  * It is a more usable and accessible option than the HTML `placeholder` attribute.
52
52
  */
53
- const TextArea = forwardRef(({ tokens, variant = {}, ...rest }, ref) => {
53
+ const TextArea = React.forwardRef(({ tokens, variant = {}, ...rest }, ref) => {
54
54
  const themeTokens = useThemeTokens('TextArea', tokens, variant)
55
- const [inputHeight, setInputHeight] = useState()
55
+ const [inputHeight, setInputHeight] = React.useState()
56
56
 
57
57
  // adjust the text area's height as new lines are added to the content
58
58
  const onHeightChange = ({
@@ -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 {
4
4
  a11yProps,
@@ -42,7 +42,7 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([
42
42
  * supported props and <a href="https://reactnative.dev/docs/textinput" target="_blank">React Native Web documentation</a> for
43
43
  * their implementation on the web.
44
44
  */
45
- const TextInput = forwardRef(({ tokens, nativeID, variant = {}, ...rest }, ref) => {
45
+ const TextInput = React.forwardRef(({ tokens, nativeID, variant = {}, ...rest }, ref) => {
46
46
  const { supportsProps, ...selectedProps } = selectProps(rest)
47
47
 
48
48
  const inputProps = {
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useEffect, useRef, useState } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { Platform, StyleSheet, TextInput as NativeTextInput, View } from 'react-native'
4
4
  import { applyTextStyles, useTheme, useThemeTokens, applyOuterBorder } from '../ThemeProvider'
@@ -161,7 +161,7 @@ const getIcon = (cardNumber = '', { defaultCreditIcon, amexIcon, visaIcon, maste
161
161
  return <Icon icon={selectedIcon.icon} variant={{ size: 'large' }} testID={selectedIcon.testID} />
162
162
  }
163
163
 
164
- const TextInputBase = forwardRef(
164
+ const TextInputBase = React.forwardRef(
165
165
  (
166
166
  {
167
167
  buttons = [],
@@ -187,8 +187,8 @@ const TextInputBase = forwardRef(
187
187
  },
188
188
  ref
189
189
  ) => {
190
- const [isFocused, setIsFocused] = useState(false)
191
- const [showPassword, setShowPassword] = useState(false)
190
+ const [isFocused, setIsFocused] = React.useState(false)
191
+ const [showPassword, setShowPassword] = React.useState(false)
192
192
  const handleFocus = (event) => {
193
193
  setIsFocused(true)
194
194
  if (typeof onFocus === 'function') onFocus(event)
@@ -198,7 +198,7 @@ const TextInputBase = forwardRef(
198
198
  if (typeof onBlur === 'function') onBlur(event)
199
199
  }
200
200
 
201
- const [isHovered, setIsHovered] = useState(false)
201
+ const [isHovered, setIsHovered] = React.useState(false)
202
202
  const handleMouseOver = (event) => {
203
203
  setIsHovered(true)
204
204
  if (typeof onMouseOver === 'function') onMouseOver(event)
@@ -208,7 +208,7 @@ const TextInputBase = forwardRef(
208
208
  if (typeof onMouseOut === 'function') onMouseOut(event)
209
209
  }
210
210
 
211
- const defaultRef = useRef()
211
+ const defaultRef = React.useRef()
212
212
  const inputRef = ref ?? defaultRef
213
213
 
214
214
  const { currentValue, resetValue, setValue, isControlled, isDirty } = useInputValue({
@@ -223,7 +223,7 @@ const TextInputBase = forwardRef(
223
223
  const isPassword = password || type === 'password'
224
224
 
225
225
  const element = inputRef?.current
226
- useEffect(() => {
226
+ React.useEffect(() => {
227
227
  if (Platform.OS === 'web' && pattern && element) {
228
228
  // React Native Web doesn't support `pattern`, so we have to attach it via a ref,
229
229
  // which a `pattern` user must provide anyway to call .checkValidity() on the element.
@@ -1,12 +1,12 @@
1
- import React, { createContext, useEffect, useState } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { validateThemeTokensVersion } from './utils'
4
4
  import responsiveProps from '../utils/props/responsiveProps'
5
5
 
6
6
  export const uninitialisedError = new Error('Theme context used outside of ThemeProvider')
7
7
 
8
- export const ThemeContext = createContext(uninitialisedError)
9
- export const ThemeSetterContext = createContext(uninitialisedError)
8
+ export const ThemeContext = React.createContext(uninitialisedError)
9
+ export const ThemeSetterContext = React.createContext(uninitialisedError)
10
10
 
11
11
  // These options default to `true` in v1.x to match legacy defaults and avoid breaking changes.
12
12
  // This should change in future major releases to become "opt-in" legacy support.
@@ -21,9 +21,9 @@ const defaultThemeOptions = {
21
21
  }
22
22
 
23
23
  const ThemeProvider = ({ children, defaultTheme, themeOptions = {} }) => {
24
- const [theme, setTheme] = useState(defaultTheme)
24
+ const [theme, setTheme] = React.useState(defaultTheme)
25
25
 
26
- useEffect(() => {
26
+ React.useEffect(() => {
27
27
  if (theme.metadata.name !== defaultTheme.metadata.name) {
28
28
  setTheme(defaultTheme)
29
29
  }
@@ -1,5 +1,5 @@
1
1
  import PropTypes from 'prop-types'
2
- import React, { forwardRef } from 'react'
2
+ import React from 'react'
3
3
  import { View } from 'react-native'
4
4
 
5
5
  import { useThemeTokens } from '../ThemeProvider'
@@ -76,7 +76,7 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
76
76
  * ## A11y guidelines
77
77
  * Timeline link supports all the common a11y props.
78
78
  */
79
- const Timeline = forwardRef(
79
+ const Timeline = React.forwardRef(
80
80
  (
81
81
  { tokens, variant = {}, children, accessibilityLabel, tag = 'ul', childrenTag = 'li', ...rest },
82
82
  ref
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { Platform, StyleSheet, View } from 'react-native'
4
4
 
@@ -92,7 +92,7 @@ const selectLabelTokens = ({
92
92
  lineHeight: labelLineHeight
93
93
  })
94
94
 
95
- const ToggleSwitch = forwardRef(
95
+ const ToggleSwitch = React.forwardRef(
96
96
  (
97
97
  {
98
98
  copy = 'en',
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import ABBPropTypes from 'airbnb-prop-types'
4
4
  import { Platform } from 'react-native'
@@ -25,7 +25,7 @@ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([
25
25
  focusHandlerProps,
26
26
  viewProps
27
27
  ])
28
- const ToggleSwitchGroup = forwardRef(
28
+ const ToggleSwitchGroup = React.forwardRef(
29
29
  (
30
30
  {
31
31
  copy = 'en',
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useEffect, useRef, useState } from 'react'
1
+ import React from 'react'
2
2
  import { Platform, Pressable, StyleSheet, Text, View } from 'react-native'
3
3
  import propTypes from './shared'
4
4
  import { useFloating, arrow, offset, shift, flip, autoPlacement } from '../utils/floating-ui'
@@ -81,7 +81,7 @@ const defaultControl = (pressableState, variant) => (
81
81
  * - You may use one when the information is useful only to a small percentage of users (ie. tech savvy people wouldn't need this info).
82
82
  * - Tooltips may also be useful when vertical space is an issue.
83
83
  */
84
- const Tooltip = forwardRef(
84
+ const Tooltip = React.forwardRef(
85
85
  (
86
86
  {
87
87
  children,
@@ -97,10 +97,10 @@ const Tooltip = forwardRef(
97
97
  },
98
98
  ref
99
99
  ) => {
100
- const [isOpen, setIsOpen] = useState(false)
101
- const arrowRef = useRef()
100
+ const [isOpen, setIsOpen] = React.useState(false)
101
+ const arrowRef = React.useRef()
102
102
 
103
- const [tooltipDimensions, setTooltipDimensions] = useState(null)
103
+ const [tooltipDimensions, setTooltipDimensions] = React.useState(null)
104
104
 
105
105
  const positions = {
106
106
  auto: undefined, // Auto needs to specifically bet set to undefined
@@ -161,7 +161,7 @@ const Tooltip = forwardRef(
161
161
  }
162
162
  }
163
163
 
164
- useEffect(() => {
164
+ React.useEffect(() => {
165
165
  if (!isOpen) {
166
166
  setTooltipDimensions(null)
167
167
  }
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useEffect, useRef, useState } from 'react'
1
+ import React from 'react'
2
2
  import { Dimensions, Platform, Pressable, StyleSheet, Text, View } from 'react-native'
3
3
  import propTypes from './shared'
4
4
 
@@ -107,7 +107,7 @@ const defaultControl = (pressableState, variant) => (
107
107
  * - You may use one when the information is useful only to a small percentage of users (ie. tech savvy people wouldn't need this info).
108
108
  * - Tooltips may also be useful when vertical space is an issue.
109
109
  */
110
- const Tooltip = forwardRef(
110
+ const Tooltip = React.forwardRef(
111
111
  (
112
112
  {
113
113
  children,
@@ -123,20 +123,20 @@ const Tooltip = forwardRef(
123
123
  },
124
124
  ref
125
125
  ) => {
126
- const [isOpen, setIsOpen] = useState(false)
126
+ const [isOpen, setIsOpen] = React.useState(false)
127
127
 
128
- const controlRef = useRef()
129
- const [controlLayout, setControlLayout] = useState(null)
130
- const [tooltipDimensions, setTooltipDimensions] = useState(null)
131
- const [windowDimensions, setWindowDimensions] = useState(Dimensions.get('window'))
132
- const [tooltipPosition, setTooltipPosition] = useState(null)
128
+ const controlRef = React.useRef()
129
+ const [controlLayout, setControlLayout] = React.useState(null)
130
+ const [tooltipDimensions, setTooltipDimensions] = React.useState(null)
131
+ const [windowDimensions, setWindowDimensions] = React.useState(Dimensions.get('window'))
132
+ const [tooltipPosition, setTooltipPosition] = React.useState(null)
133
133
 
134
134
  const getCopy = useCopy({ dictionary, copy })
135
135
  const themeTokens = useThemeTokens('Tooltip', tokens, variant)
136
136
 
137
137
  const { arrowWidth, arrowOffset } = themeTokens
138
138
 
139
- useEffect(() => {
139
+ React.useEffect(() => {
140
140
  const subscription = Dimensions.addEventListener('change', ({ window }) => {
141
141
  setWindowDimensions(window)
142
142
  })
@@ -176,7 +176,7 @@ const Tooltip = forwardRef(
176
176
  }
177
177
  }
178
178
 
179
- useEffect(() => {
179
+ React.useEffect(() => {
180
180
  if (isOpen) {
181
181
  controlRef.current.measureInWindow((x, y, width, height) => {
182
182
  setControlLayout({ x, y, width, height })
@@ -188,11 +188,11 @@ const Tooltip = forwardRef(
188
188
  }
189
189
  }, [isOpen])
190
190
 
191
- useEffect(() => {
191
+ React.useEffect(() => {
192
192
  setIsOpen(false)
193
193
  }, [windowDimensions])
194
194
 
195
- useEffect(() => {
195
+ React.useEffect(() => {
196
196
  if (
197
197
  (tooltipPosition !== null && !tooltipPosition?.isNormalized) ||
198
198
  !isOpen ||
@@ -24,7 +24,7 @@ const selectIconTokens = ({ iconSize, iconColor, iconScale = 1 }) => ({
24
24
  * In fact though, it isn't actually a pressable - it's meant to be used as pressable's content.
25
25
  * Due to this any interaction states (e.g. pressed, hover, etc.) has to be passed down to it as a prop.
26
26
  */
27
- const TooltipButton = ({ pressableState, tokens, variant, ...rest }) => {
27
+ const TooltipButton = React.forwardRef(({ pressableState, tokens, variant, ...rest }, ref) => {
28
28
  const themeTokens = useThemeTokens('TooltipButton', tokens, variant, pressableState)
29
29
 
30
30
  const { icon: IconComponent } = themeTokens
@@ -39,13 +39,16 @@ const TooltipButton = ({ pressableState, tokens, variant, ...rest }) => {
39
39
  staticStyles.bubblePointerEvents
40
40
  ]}
41
41
  {...selectProps(rest)}
42
+ ref={ref}
42
43
  >
43
44
  <View style={selectInnerContainerStyles(themeTokens)}>
44
45
  {IconComponent && <Icon icon={IconComponent} tokens={selectIconTokens(themeTokens)} />}
45
46
  </View>
46
47
  </View>
47
48
  )
48
- }
49
+ })
50
+
51
+ TooltipButton.displayName = 'TooltipButton'
49
52
 
50
53
  const staticStyles = StyleSheet.create({
51
54
  bubblePointerEvents: {
@@ -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 { Text, View } from 'react-native'
4
4
 
@@ -55,7 +55,7 @@ const selectTextStyles = (
55
55
  })
56
56
 
57
57
  // General-purpose flexible theme-neutral base component for text
58
- const Typography = forwardRef(
58
+ const Typography = React.forwardRef(
59
59
  (
60
60
  {
61
61
  children,