@telus-uds/components-base 1.84.0 → 1.85.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/CHANGELOG.md +26 -2
  2. package/lib/A11yInfoProvider/index.js +8 -10
  3. package/lib/A11yText/index.js +2 -4
  4. package/lib/ActivityIndicator/Spinner.js +3 -4
  5. package/lib/ActivityIndicator/Spinner.native.js +2 -4
  6. package/lib/Autocomplete/Autocomplete.js +13 -17
  7. package/lib/Autocomplete/Loading.js +4 -2
  8. package/lib/Autocomplete/Suggestions.js +2 -4
  9. package/lib/Badge/Badge.js +2 -4
  10. package/lib/BaseProvider/HydrationContext.js +5 -7
  11. package/lib/Box/Box.js +5 -7
  12. package/lib/Button/Button.js +3 -3
  13. package/lib/Button/ButtonBase.js +2 -7
  14. package/lib/Button/ButtonDropdown.js +3 -3
  15. package/lib/Button/ButtonGroup.js +2 -4
  16. package/lib/Button/ButtonLink.js +3 -3
  17. package/lib/Card/Card.js +159 -16
  18. package/lib/Card/CardBase.js +2 -4
  19. package/lib/Card/PressableCardBase.js +3 -5
  20. package/lib/CardGroup/CardGroup.js +220 -0
  21. package/lib/CardGroup/dictionary.js +15 -0
  22. package/lib/CardGroup/index.js +10 -0
  23. package/lib/Carousel/Carousel.js +67 -57
  24. package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -4
  25. package/lib/Carousel/CarouselItem/CarouselItem.js +3 -2
  26. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
  27. package/lib/Carousel/CarouselTabs/CarouselTabs.js +2 -4
  28. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -8
  29. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -5
  30. package/lib/Carousel/CarouselThumbnail.js +4 -2
  31. package/lib/Carousel/CarouselThumbnailNavigation.js +2 -4
  32. package/lib/Checkbox/Checkbox.js +2 -4
  33. package/lib/Checkbox/CheckboxButton.js +3 -5
  34. package/lib/Checkbox/CheckboxGroup.js +2 -4
  35. package/lib/Checkbox/CheckboxInput.js +4 -14
  36. package/lib/CheckboxCard/CheckboxCard.js +3 -3
  37. package/lib/CheckboxCardGroup/CheckboxCardGroup.js +3 -3
  38. package/lib/ColourToggle/ColourBubble.js +5 -6
  39. package/lib/ColourToggle/ColourToggle.js +3 -5
  40. package/lib/Divider/Divider.js +2 -4
  41. package/lib/ExpandCollapse/Accordion.js +2 -4
  42. package/lib/ExpandCollapse/Control.js +2 -4
  43. package/lib/ExpandCollapse/ExpandCollapse.js +2 -4
  44. package/lib/ExpandCollapse/Panel.js +3 -5
  45. package/lib/Feedback/Feedback.js +2 -4
  46. package/lib/Fieldset/Fieldset.js +2 -4
  47. package/lib/Fieldset/FieldsetContainer.js +2 -4
  48. package/lib/Fieldset/FieldsetContainer.native.js +2 -4
  49. package/lib/Fieldset/Legend.js +2 -4
  50. package/lib/Fieldset/Legend.native.js +2 -4
  51. package/lib/FlexGrid/Col/Col.js +3 -5
  52. package/lib/FlexGrid/FlexGrid.js +2 -4
  53. package/lib/FlexGrid/Row/Row.js +2 -4
  54. package/lib/Footnote/Footnote.js +9 -9
  55. package/lib/Footnote/FootnoteLink.js +9 -3
  56. package/lib/HorizontalScroll/HorizontalScroll.js +8 -10
  57. package/lib/HorizontalScroll/HorizontalScrollButton.js +2 -4
  58. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -10
  59. package/lib/HorizontalScroll/ScrollViewEnd.native.js +2 -4
  60. package/lib/Icon/Icon.js +2 -4
  61. package/lib/Icon/IconText.js +3 -3
  62. package/lib/IconButton/IconButton.js +2 -4
  63. package/lib/InputLabel/InputLabel.js +2 -4
  64. package/lib/InputLabel/LabelContent.js +2 -4
  65. package/lib/InputLabel/LabelContent.native.js +2 -4
  66. package/lib/InputSupports/InputSupports.js +4 -5
  67. package/lib/Link/ChevronLink.js +2 -4
  68. package/lib/Link/InlinePressable.js +8 -7
  69. package/lib/Link/InlinePressable.native.js +10 -8
  70. package/lib/Link/Link.js +2 -4
  71. package/lib/Link/LinkBase.js +2 -4
  72. package/lib/Link/TextButton.js +2 -4
  73. package/lib/List/List.js +13 -11
  74. package/lib/List/ListItem.js +2 -4
  75. package/lib/List/ListItemBase.js +6 -10
  76. package/lib/List/ListItemContent.js +4 -2
  77. package/lib/List/ListItemMark.js +4 -2
  78. package/lib/List/PressableListItemBase.js +2 -4
  79. package/lib/Listbox/GroupControl.js +4 -2
  80. package/lib/Listbox/Listbox.js +6 -6
  81. package/lib/Listbox/ListboxContext.js +3 -4
  82. package/lib/Listbox/ListboxGroup.js +2 -4
  83. package/lib/Listbox/ListboxItem.js +2 -6
  84. package/lib/Listbox/ListboxOverlay.js +2 -6
  85. package/lib/Listbox/PressableItem.js +2 -6
  86. package/lib/Modal/Modal.js +5 -7
  87. package/lib/Modal/ModalContent.js +7 -7
  88. package/lib/Modal/WebModal.js +16 -9
  89. package/lib/MultiSelectFilter/ModalOverlay.js +2 -4
  90. package/lib/MultiSelectFilter/MultiSelectFilter.js +10 -10
  91. package/lib/Notification/Notification.js +5 -7
  92. package/lib/OrderedList/Item.js +4 -10
  93. package/lib/OrderedList/ItemBase.js +2 -4
  94. package/lib/OrderedList/OrderedList.js +5 -13
  95. package/lib/OrderedList/OrderedListBase.js +2 -4
  96. package/lib/Pagination/PageButton.js +1 -1
  97. package/lib/Pagination/Pagination.js +1 -1
  98. package/lib/Pagination/SideButton.js +2 -4
  99. package/lib/PriceLockup/PriceLockup.js +5 -5
  100. package/lib/ProductCard/ProductCard.js +3 -2
  101. package/lib/ProductCardGroup/ProductCardGroup.js +5 -6
  102. package/lib/Progress/Progress.js +2 -4
  103. package/lib/Progress/ProgressBar.js +2 -4
  104. package/lib/Progress/ProgressBarBackground.js +2 -4
  105. package/lib/QuickLinks/QuickLinks.js +2 -4
  106. package/lib/QuickLinks/QuickLinksCard.js +4 -2
  107. package/lib/QuickLinks/QuickLinksItem.js +2 -4
  108. package/lib/QuickLinksFeature/QuickLinksFeature.js +9 -7
  109. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +10 -12
  110. package/lib/Radio/Radio.js +3 -3
  111. package/lib/Radio/RadioButton.js +61 -15
  112. package/lib/Radio/RadioGroup.js +2 -4
  113. package/lib/Radio/RadioInput.js +6 -18
  114. package/lib/RadioCard/RadioCard.js +3 -3
  115. package/lib/RadioCard/RadioCardGroup.js +3 -3
  116. package/lib/Responsive/Responsive.js +3 -2
  117. package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
  118. package/lib/Search/Search.js +2 -4
  119. package/lib/Select/Group.js +4 -2
  120. package/lib/Select/Item.js +4 -2
  121. package/lib/Select/Picker.js +2 -4
  122. package/lib/Select/Picker.native.js +3 -5
  123. package/lib/Select/Select.js +4 -6
  124. package/lib/SideNav/Item.js +2 -4
  125. package/lib/SideNav/ItemContent.js +4 -2
  126. package/lib/SideNav/ItemsGroup.js +2 -4
  127. package/lib/SideNav/SideNav.js +2 -2
  128. package/lib/Skeleton/Skeleton.js +2 -4
  129. package/lib/SkipLink/SkipLink.js +2 -4
  130. package/lib/Spacer/Spacer.js +2 -4
  131. package/lib/StackView/StackView.js +2 -4
  132. package/lib/StackView/StackWrap.js +3 -5
  133. package/lib/StackView/StackWrapBox.js +2 -4
  134. package/lib/StackView/StackWrapGap.js +2 -4
  135. package/lib/StackView/getStackedContent.js +3 -3
  136. package/lib/StepTracker/Step.js +4 -2
  137. package/lib/StepTracker/StepTracker.js +2 -4
  138. package/lib/Tabs/Tabs.js +4 -4
  139. package/lib/Tabs/TabsItem.js +3 -5
  140. package/lib/Tags/Tags.js +2 -4
  141. package/lib/TextInput/TextArea.js +3 -5
  142. package/lib/TextInput/TextInput.js +2 -4
  143. package/lib/TextInput/TextInputBase.js +7 -9
  144. package/lib/ThemeProvider/ThemeProvider.js +5 -7
  145. package/lib/Timeline/Timeline.js +2 -4
  146. package/lib/ToggleSwitch/ToggleSwitch.js +2 -4
  147. package/lib/ToggleSwitch/ToggleSwitchGroup.js +2 -4
  148. package/lib/Tooltip/Tooltip.js +6 -8
  149. package/lib/Tooltip/Tooltip.native.js +12 -14
  150. package/lib/TooltipButton/TooltipButton.js +4 -2
  151. package/lib/Typography/Typography.js +2 -4
  152. package/lib/Validator/Validator.js +11 -13
  153. package/lib/ViewportProvider/ViewportProvider.js +2 -4
  154. package/lib/index.js +8 -0
  155. package/lib/utils/BaseView/BaseView.js +2 -4
  156. package/lib/utils/children.js +4 -6
  157. package/lib/utils/withLinkRouter.js +3 -5
  158. package/lib-module/A11yInfoProvider/index.js +8 -8
  159. package/lib-module/A11yText/index.js +2 -2
  160. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  161. package/lib-module/ActivityIndicator/Spinner.native.js +2 -2
  162. package/lib-module/Autocomplete/Autocomplete.js +13 -14
  163. package/lib-module/Autocomplete/Loading.js +4 -2
  164. package/lib-module/Autocomplete/Suggestions.js +2 -2
  165. package/lib-module/Badge/Badge.js +2 -2
  166. package/lib-module/BaseProvider/HydrationContext.js +5 -5
  167. package/lib-module/Box/Box.js +5 -5
  168. package/lib-module/Button/Button.js +2 -2
  169. package/lib-module/Button/ButtonBase.js +2 -5
  170. package/lib-module/Button/ButtonDropdown.js +2 -2
  171. package/lib-module/Button/ButtonGroup.js +2 -2
  172. package/lib-module/Button/ButtonLink.js +2 -2
  173. package/lib-module/Card/Card.js +159 -14
  174. package/lib-module/Card/CardBase.js +2 -2
  175. package/lib-module/Card/PressableCardBase.js +4 -4
  176. package/lib-module/CardGroup/CardGroup.js +210 -0
  177. package/lib-module/CardGroup/dictionary.js +8 -0
  178. package/lib-module/CardGroup/index.js +2 -0
  179. package/lib-module/Carousel/Carousel.js +67 -55
  180. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +2 -2
  181. package/lib-module/Carousel/CarouselItem/CarouselItem.js +3 -2
  182. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +4 -2
  183. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +2 -2
  184. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +6 -6
  185. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +3 -3
  186. package/lib-module/Carousel/CarouselThumbnail.js +4 -2
  187. package/lib-module/Carousel/CarouselThumbnailNavigation.js +2 -2
  188. package/lib-module/Checkbox/Checkbox.js +2 -2
  189. package/lib-module/Checkbox/CheckboxButton.js +3 -3
  190. package/lib-module/Checkbox/CheckboxGroup.js +2 -2
  191. package/lib-module/Checkbox/CheckboxInput.js +4 -12
  192. package/lib-module/CheckboxCard/CheckboxCard.js +2 -2
  193. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +2 -2
  194. package/lib-module/ColourToggle/ColourBubble.js +5 -4
  195. package/lib-module/ColourToggle/ColourToggle.js +3 -3
  196. package/lib-module/Divider/Divider.js +2 -2
  197. package/lib-module/ExpandCollapse/Accordion.js +2 -2
  198. package/lib-module/ExpandCollapse/Control.js +2 -2
  199. package/lib-module/ExpandCollapse/ExpandCollapse.js +2 -2
  200. package/lib-module/ExpandCollapse/Panel.js +3 -3
  201. package/lib-module/Feedback/Feedback.js +2 -2
  202. package/lib-module/Fieldset/Fieldset.js +2 -2
  203. package/lib-module/Fieldset/FieldsetContainer.js +2 -2
  204. package/lib-module/Fieldset/FieldsetContainer.native.js +2 -2
  205. package/lib-module/Fieldset/Legend.js +2 -2
  206. package/lib-module/Fieldset/Legend.native.js +2 -2
  207. package/lib-module/FlexGrid/Col/Col.js +3 -3
  208. package/lib-module/FlexGrid/FlexGrid.js +2 -2
  209. package/lib-module/FlexGrid/Row/Row.js +2 -2
  210. package/lib-module/Footnote/Footnote.js +9 -7
  211. package/lib-module/Footnote/FootnoteLink.js +9 -4
  212. package/lib-module/HorizontalScroll/HorizontalScroll.js +8 -8
  213. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +2 -2
  214. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -8
  215. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +2 -2
  216. package/lib-module/Icon/Icon.js +2 -2
  217. package/lib-module/Icon/IconText.js +2 -2
  218. package/lib-module/IconButton/IconButton.js +2 -2
  219. package/lib-module/InputLabel/InputLabel.js +2 -2
  220. package/lib-module/InputLabel/LabelContent.js +2 -2
  221. package/lib-module/InputLabel/LabelContent.native.js +2 -2
  222. package/lib-module/InputSupports/InputSupports.js +4 -3
  223. package/lib-module/Link/ChevronLink.js +2 -2
  224. package/lib-module/Link/InlinePressable.js +10 -4
  225. package/lib-module/Link/InlinePressable.native.js +12 -6
  226. package/lib-module/Link/Link.js +2 -2
  227. package/lib-module/Link/LinkBase.js +2 -2
  228. package/lib-module/Link/TextButton.js +2 -2
  229. package/lib-module/List/List.js +13 -9
  230. package/lib-module/List/ListItem.js +2 -2
  231. package/lib-module/List/ListItemBase.js +6 -8
  232. package/lib-module/List/ListItemContent.js +4 -2
  233. package/lib-module/List/ListItemMark.js +4 -2
  234. package/lib-module/List/PressableListItemBase.js +2 -2
  235. package/lib-module/Listbox/GroupControl.js +4 -2
  236. package/lib-module/Listbox/Listbox.js +7 -7
  237. package/lib-module/Listbox/ListboxContext.js +2 -2
  238. package/lib-module/Listbox/ListboxGroup.js +2 -2
  239. package/lib-module/Listbox/ListboxItem.js +2 -3
  240. package/lib-module/Listbox/ListboxOverlay.js +2 -3
  241. package/lib-module/Listbox/PressableItem.js +2 -3
  242. package/lib-module/Modal/Modal.js +5 -5
  243. package/lib-module/Modal/ModalContent.js +7 -5
  244. package/lib-module/Modal/WebModal.js +16 -9
  245. package/lib-module/MultiSelectFilter/ModalOverlay.js +2 -2
  246. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +10 -8
  247. package/lib-module/Notification/Notification.js +5 -5
  248. package/lib-module/OrderedList/Item.js +4 -8
  249. package/lib-module/OrderedList/ItemBase.js +2 -2
  250. package/lib-module/OrderedList/OrderedList.js +6 -12
  251. package/lib-module/OrderedList/OrderedListBase.js +2 -2
  252. package/lib-module/Pagination/PageButton.js +2 -2
  253. package/lib-module/Pagination/Pagination.js +2 -2
  254. package/lib-module/Pagination/SideButton.js +2 -2
  255. package/lib-module/PriceLockup/PriceLockup.js +5 -5
  256. package/lib-module/ProductCard/ProductCard.js +3 -2
  257. package/lib-module/ProductCardGroup/ProductCardGroup.js +5 -4
  258. package/lib-module/Progress/Progress.js +2 -2
  259. package/lib-module/Progress/ProgressBar.js +2 -2
  260. package/lib-module/Progress/ProgressBarBackground.js +2 -2
  261. package/lib-module/QuickLinks/QuickLinks.js +2 -2
  262. package/lib-module/QuickLinks/QuickLinksCard.js +4 -2
  263. package/lib-module/QuickLinks/QuickLinksItem.js +2 -2
  264. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +9 -5
  265. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +10 -10
  266. package/lib-module/Radio/Radio.js +2 -2
  267. package/lib-module/Radio/RadioButton.js +62 -14
  268. package/lib-module/Radio/RadioGroup.js +2 -2
  269. package/lib-module/Radio/RadioInput.js +6 -16
  270. package/lib-module/RadioCard/RadioCard.js +2 -2
  271. package/lib-module/RadioCard/RadioCardGroup.js +2 -2
  272. package/lib-module/Responsive/Responsive.js +3 -2
  273. package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +3 -2
  274. package/lib-module/Search/Search.js +2 -2
  275. package/lib-module/Select/Group.js +4 -2
  276. package/lib-module/Select/Item.js +4 -2
  277. package/lib-module/Select/Picker.js +2 -2
  278. package/lib-module/Select/Picker.native.js +3 -3
  279. package/lib-module/Select/Select.js +4 -4
  280. package/lib-module/SideNav/Item.js +2 -2
  281. package/lib-module/SideNav/ItemContent.js +4 -2
  282. package/lib-module/SideNav/ItemsGroup.js +2 -2
  283. package/lib-module/SideNav/SideNav.js +3 -3
  284. package/lib-module/Skeleton/Skeleton.js +2 -2
  285. package/lib-module/SkipLink/SkipLink.js +2 -2
  286. package/lib-module/Spacer/Spacer.js +2 -2
  287. package/lib-module/StackView/StackView.js +2 -2
  288. package/lib-module/StackView/StackWrap.js +3 -3
  289. package/lib-module/StackView/StackWrapBox.js +2 -2
  290. package/lib-module/StackView/StackWrapGap.js +2 -2
  291. package/lib-module/StackView/getStackedContent.js +4 -4
  292. package/lib-module/StepTracker/Step.js +4 -2
  293. package/lib-module/StepTracker/StepTracker.js +2 -2
  294. package/lib-module/Tabs/Tabs.js +3 -3
  295. package/lib-module/Tabs/TabsItem.js +3 -3
  296. package/lib-module/Tags/Tags.js +2 -2
  297. package/lib-module/TextInput/TextArea.js +3 -3
  298. package/lib-module/TextInput/TextInput.js +2 -2
  299. package/lib-module/TextInput/TextInputBase.js +7 -7
  300. package/lib-module/ThemeProvider/ThemeProvider.js +5 -5
  301. package/lib-module/Timeline/Timeline.js +2 -2
  302. package/lib-module/ToggleSwitch/ToggleSwitch.js +2 -2
  303. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +2 -2
  304. package/lib-module/Tooltip/Tooltip.js +6 -6
  305. package/lib-module/Tooltip/Tooltip.native.js +12 -12
  306. package/lib-module/TooltipButton/TooltipButton.js +4 -2
  307. package/lib-module/Typography/Typography.js +2 -2
  308. package/lib-module/Validator/Validator.js +11 -11
  309. package/lib-module/ViewportProvider/ViewportProvider.js +2 -2
  310. package/lib-module/index.js +1 -0
  311. package/lib-module/utils/BaseView/BaseView.js +2 -2
  312. package/lib-module/utils/children.js +4 -4
  313. package/lib-module/utils/withLinkRouter.js +3 -3
  314. package/package.json +2 -2
  315. package/src/A11yInfoProvider/index.jsx +8 -8
  316. package/src/A11yText/index.jsx +2 -2
  317. package/src/ActivityIndicator/Spinner.jsx +2 -2
  318. package/src/ActivityIndicator/Spinner.native.jsx +2 -2
  319. package/src/Autocomplete/Autocomplete.jsx +15 -14
  320. package/src/Autocomplete/Loading.jsx +6 -3
  321. package/src/Autocomplete/Suggestions.jsx +2 -2
  322. package/src/Badge/Badge.jsx +2 -2
  323. package/src/BaseProvider/HydrationContext.jsx +5 -5
  324. package/src/Box/Box.jsx +5 -5
  325. package/src/Button/Button.jsx +11 -9
  326. package/src/Button/ButtonBase.jsx +2 -3
  327. package/src/Button/ButtonDropdown.jsx +2 -2
  328. package/src/Button/ButtonGroup.jsx +2 -2
  329. package/src/Button/ButtonLink.jsx +2 -2
  330. package/src/Card/Card.jsx +151 -11
  331. package/src/Card/CardBase.jsx +2 -2
  332. package/src/Card/PressableCardBase.jsx +18 -4
  333. package/src/CardGroup/CardGroup.jsx +249 -0
  334. package/src/CardGroup/dictionary.js +8 -0
  335. package/src/CardGroup/index.js +3 -0
  336. package/src/Carousel/Carousel.jsx +69 -53
  337. package/src/Carousel/CarouselFirstFocus/CarouselFirstFocus.jsx +2 -2
  338. package/src/Carousel/CarouselItem/CarouselItem.jsx +19 -17
  339. package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +5 -3
  340. package/src/Carousel/CarouselTabs/CarouselTabs.jsx +2 -2
  341. package/src/Carousel/CarouselTabs/CarouselTabsPanel.jsx +6 -6
  342. package/src/Carousel/CarouselTabs/CarouselTabsPanelItem.jsx +3 -3
  343. package/src/Carousel/CarouselThumbnail.jsx +6 -2
  344. package/src/Carousel/CarouselThumbnailNavigation.jsx +2 -2
  345. package/src/Checkbox/Checkbox.jsx +2 -2
  346. package/src/Checkbox/CheckboxButton.jsx +5 -7
  347. package/src/Checkbox/CheckboxGroup.jsx +2 -2
  348. package/src/Checkbox/CheckboxInput.jsx +15 -12
  349. package/src/CheckboxCard/CheckboxCard.jsx +2 -2
  350. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +2 -2
  351. package/src/ColourToggle/ColourBubble.jsx +5 -4
  352. package/src/ColourToggle/ColourToggle.jsx +3 -3
  353. package/src/Divider/Divider.jsx +2 -2
  354. package/src/ExpandCollapse/Accordion.jsx +4 -2
  355. package/src/ExpandCollapse/Control.jsx +2 -2
  356. package/src/ExpandCollapse/ExpandCollapse.jsx +2 -2
  357. package/src/ExpandCollapse/Panel.jsx +3 -3
  358. package/src/Feedback/Feedback.jsx +2 -2
  359. package/src/Fieldset/Fieldset.jsx +2 -2
  360. package/src/Fieldset/FieldsetContainer.jsx +2 -2
  361. package/src/Fieldset/FieldsetContainer.native.jsx +2 -2
  362. package/src/Fieldset/Legend.jsx +2 -2
  363. package/src/Fieldset/Legend.native.jsx +2 -2
  364. package/src/FlexGrid/Col/Col.jsx +3 -3
  365. package/src/FlexGrid/FlexGrid.jsx +2 -2
  366. package/src/FlexGrid/Row/Row.jsx +2 -2
  367. package/src/Footnote/Footnote.jsx +111 -98
  368. package/src/Footnote/FootnoteLink.jsx +38 -31
  369. package/src/HorizontalScroll/HorizontalScroll.jsx +8 -8
  370. package/src/HorizontalScroll/HorizontalScrollButton.jsx +2 -2
  371. package/src/HorizontalScroll/ScrollViewEnd.jsx +4 -8
  372. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +2 -2
  373. package/src/Icon/Icon.jsx +2 -2
  374. package/src/Icon/IconText.jsx +2 -2
  375. package/src/IconButton/IconButton.jsx +2 -2
  376. package/src/InputLabel/InputLabel.jsx +2 -2
  377. package/src/InputLabel/LabelContent.jsx +2 -2
  378. package/src/InputLabel/LabelContent.native.jsx +2 -2
  379. package/src/InputSupports/InputSupports.jsx +4 -3
  380. package/src/Link/ChevronLink.jsx +2 -2
  381. package/src/Link/InlinePressable.jsx +22 -15
  382. package/src/Link/InlinePressable.native.jsx +12 -6
  383. package/src/Link/Link.jsx +2 -2
  384. package/src/Link/LinkBase.jsx +2 -2
  385. package/src/Link/TextButton.jsx +2 -2
  386. package/src/List/List.jsx +15 -7
  387. package/src/List/ListItem.jsx +2 -2
  388. package/src/List/ListItemBase.jsx +6 -12
  389. package/src/List/ListItemContent.jsx +5 -2
  390. package/src/List/ListItemMark.jsx +5 -3
  391. package/src/List/PressableListItemBase.jsx +2 -2
  392. package/src/Listbox/GroupControl.jsx +5 -2
  393. package/src/Listbox/Listbox.jsx +7 -7
  394. package/src/Listbox/ListboxContext.js +2 -2
  395. package/src/Listbox/ListboxGroup.jsx +2 -2
  396. package/src/Listbox/ListboxItem.jsx +2 -3
  397. package/src/Listbox/ListboxOverlay.jsx +2 -3
  398. package/src/Listbox/PressableItem.jsx +2 -3
  399. package/src/Modal/Modal.jsx +5 -5
  400. package/src/Modal/ModalContent.jsx +132 -125
  401. package/src/Modal/WebModal.jsx +13 -8
  402. package/src/MultiSelectFilter/ModalOverlay.jsx +2 -2
  403. package/src/MultiSelectFilter/MultiSelectFilter.jsx +263 -252
  404. package/src/Notification/Notification.jsx +5 -5
  405. package/src/OrderedList/Item.jsx +4 -6
  406. package/src/OrderedList/ItemBase.jsx +2 -2
  407. package/src/OrderedList/OrderedList.jsx +4 -7
  408. package/src/OrderedList/OrderedListBase.jsx +2 -2
  409. package/src/Pagination/PageButton.jsx +2 -2
  410. package/src/Pagination/Pagination.jsx +2 -2
  411. package/src/Pagination/SideButton.jsx +2 -2
  412. package/src/PriceLockup/PriceLockup.jsx +93 -88
  413. package/src/ProductCard/ProductCard.jsx +90 -84
  414. package/src/ProductCardGroup/ProductCardGroup.jsx +5 -5
  415. package/src/Progress/Progress.jsx +2 -2
  416. package/src/Progress/ProgressBar.jsx +2 -2
  417. package/src/Progress/ProgressBarBackground.jsx +4 -2
  418. package/src/QuickLinks/QuickLinks.jsx +2 -2
  419. package/src/QuickLinks/QuickLinksCard.jsx +9 -3
  420. package/src/QuickLinks/QuickLinksItem.jsx +2 -2
  421. package/src/QuickLinksFeature/QuickLinksFeature.jsx +31 -27
  422. package/src/QuickLinksFeature/QuickLinksFeatureItem.jsx +3 -3
  423. package/src/Radio/Radio.jsx +2 -2
  424. package/src/Radio/RadioButton.jsx +58 -6
  425. package/src/Radio/RadioGroup.jsx +2 -2
  426. package/src/Radio/RadioInput.jsx +15 -14
  427. package/src/RadioCard/RadioCard.jsx +2 -2
  428. package/src/RadioCard/RadioCardGroup.jsx +2 -2
  429. package/src/Responsive/Responsive.jsx +8 -3
  430. package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +23 -16
  431. package/src/Search/Search.jsx +2 -2
  432. package/src/Select/Group.jsx +9 -3
  433. package/src/Select/Item.jsx +7 -1
  434. package/src/Select/Picker.jsx +2 -2
  435. package/src/Select/Picker.native.jsx +3 -3
  436. package/src/Select/Select.jsx +4 -4
  437. package/src/SideNav/Item.jsx +2 -2
  438. package/src/SideNav/ItemContent.jsx +7 -3
  439. package/src/SideNav/ItemsGroup.jsx +2 -2
  440. package/src/SideNav/SideNav.jsx +3 -3
  441. package/src/Skeleton/Skeleton.jsx +2 -2
  442. package/src/SkipLink/SkipLink.jsx +2 -2
  443. package/src/Spacer/Spacer.jsx +2 -2
  444. package/src/StackView/StackView.jsx +2 -2
  445. package/src/StackView/StackWrap.jsx +3 -3
  446. package/src/StackView/StackWrapBox.jsx +2 -2
  447. package/src/StackView/StackWrapGap.jsx +2 -2
  448. package/src/StackView/getStackedContent.jsx +4 -4
  449. package/src/StepTracker/Step.jsx +75 -67
  450. package/src/StepTracker/StepTracker.jsx +2 -2
  451. package/src/Tabs/Tabs.jsx +3 -3
  452. package/src/Tabs/TabsItem.jsx +3 -3
  453. package/src/Tags/Tags.jsx +2 -2
  454. package/src/TextInput/TextArea.jsx +3 -3
  455. package/src/TextInput/TextInput.jsx +2 -2
  456. package/src/TextInput/TextInputBase.jsx +7 -7
  457. package/src/ThemeProvider/ThemeProvider.jsx +5 -5
  458. package/src/Timeline/Timeline.jsx +2 -2
  459. package/src/ToggleSwitch/ToggleSwitch.jsx +2 -2
  460. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +2 -2
  461. package/src/Tooltip/Tooltip.jsx +6 -6
  462. package/src/Tooltip/Tooltip.native.jsx +12 -12
  463. package/src/TooltipButton/TooltipButton.jsx +5 -2
  464. package/src/Typography/Typography.jsx +2 -2
  465. package/src/Validator/Validator.jsx +11 -11
  466. package/src/ViewportProvider/ViewportProvider.jsx +2 -2
  467. package/src/index.js +1 -0
  468. package/src/utils/BaseView/BaseView.jsx +2 -2
  469. package/src/utils/children.jsx +4 -4
  470. package/src/utils/withLinkRouter.jsx +3 -3
  471. package/types/ExpandCollapse.d.ts +1 -1
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useState, useCallback } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import {
4
4
  StyleSheet,
@@ -123,117 +123,130 @@ const selectCustomContentFontStyle = ({
123
123
  * - When `Footnote` is open, the inert prop must be set on all children of body excluding the Footnote
124
124
  * - When `Footnote` is closed, focus must return to the initiating element
125
125
  */
126
- const Footnote = ({
127
- copy = 'en',
128
- number = undefined,
129
- content = undefined,
130
- onClose,
131
- isOpen = false,
132
- tokens,
133
- variant = {},
134
- dictionary = defaultDictionary,
135
- ...rest
136
- }) => {
137
- const viewport = useViewport()
126
+ const Footnote = React.forwardRef(
127
+ (
128
+ {
129
+ copy = 'en',
130
+ number = undefined,
131
+ content = undefined,
132
+ onClose,
133
+ isOpen = false,
134
+ tokens,
135
+ variant = {},
136
+ dictionary = defaultDictionary,
137
+ ...rest
138
+ },
139
+ ref
140
+ ) => {
141
+ const viewport = useViewport()
138
142
 
139
- const themeTokens = useThemeTokens('Footnote', tokens, variant, { viewport })
140
- const themeOptions = useTheme()
143
+ const themeTokens = useThemeTokens('Footnote', tokens, variant, { viewport })
144
+ const themeOptions = useTheme()
141
145
 
142
- const getCopy = useCopy({ dictionary, copy })
146
+ const getCopy = useCopy({ dictionary, copy })
143
147
 
144
- const [isVisible, setIsVisible] = useState(false)
148
+ const [isVisible, setIsVisible] = React.useState(false)
145
149
 
146
- const screenHeight = Dimensions.get('screen').height
147
- const screenWidth = Dimensions.get('screen').width
150
+ const screenHeight = Dimensions.get('screen').height
151
+ const screenWidth = Dimensions.get('screen').width
148
152
 
149
- const getFootnoteBodyContent = useCallback(() => {
150
- if (!number || !content) {
151
- return null
152
- }
153
+ const getFootnoteBodyContent = React.useCallback(() => {
154
+ if (!number || !content) {
155
+ return null
156
+ }
153
157
 
154
- if (React.isValidElement(content)) {
155
- return <View style={selectCustomContentFontStyle(themeTokens)}>{content}</View>
156
- }
158
+ if (React.isValidElement(content)) {
159
+ return <View style={selectCustomContentFontStyle(themeTokens)}>{content}</View>
160
+ }
157
161
 
158
- return (
159
- <OrderedList start={number}>
160
- <OrderedList.Item key={number}>
161
- <Text style={selectCustomContentFontStyle(themeTokens)}>{content}</Text>
162
- </OrderedList.Item>
163
- </OrderedList>
164
- )
165
- }, [content, number, themeTokens])
162
+ return (
163
+ <OrderedList start={number}>
164
+ <OrderedList.Item key={number}>
165
+ <Text style={selectCustomContentFontStyle(themeTokens)}>{content}</Text>
166
+ </OrderedList.Item>
167
+ </OrderedList>
168
+ )
169
+ }, [content, number, themeTokens])
166
170
 
167
- useEffect(() => {
168
- if (isOpen) {
169
- setIsVisible(true)
170
- }
171
- }, [isOpen])
171
+ React.useEffect(() => {
172
+ if (isOpen) {
173
+ setIsVisible(true)
174
+ }
175
+ }, [isOpen])
172
176
 
173
- const closeFootnote = useCallback(
174
- (event, options) => {
175
- onClose(event, options)
176
- setIsVisible(false)
177
- },
178
- [onClose]
179
- )
177
+ const closeFootnote = React.useCallback(
178
+ (event, options) => {
179
+ onClose(event, options)
180
+ setIsVisible(false)
181
+ },
182
+ [onClose]
183
+ )
180
184
 
181
- const handleClose = (event) => closeFootnote(event, { returnFocus: true })
185
+ const handleClose = (event) => closeFootnote(event, { returnFocus: true })
182
186
 
183
- return (
184
- <View {...selectProps(rest)}>
185
- <Modal visible={isVisible} animationType="slide">
186
- <SafeAreaView style={staticStyles.container}>
187
- <ScrollView
188
- style={selectFootnoteStyle({
189
- screenHeight,
190
- isVisible,
191
- ...themeTokens
192
- })}
193
- >
194
- <View style={staticStyles.content}>
195
- <View
196
- style={[selectFootnoteHeaderContentStyle(themeTokens), staticStyles.headerContent]}
197
- >
198
- <Typography
199
- tokens={{
200
- fontSize: themeTokens?.headerFontSize,
201
- lineHeight: themeTokens?.headerLineHeight
202
- }}
203
- variant={{ size: 'h4' }}
204
- >
205
- {getCopy('heading')}
206
- </Typography>
207
- <TouchableWithoutFeedback
208
- onPress={handleClose}
209
- accessibilityLabel={getCopy('close')}
187
+ return (
188
+ <View {...selectProps(rest)} ref={ref}>
189
+ <Modal visible={isVisible} animationType="slide">
190
+ <SafeAreaView style={staticStyles.container}>
191
+ <ScrollView
192
+ style={selectFootnoteStyle({
193
+ screenHeight,
194
+ isVisible,
195
+ ...themeTokens
196
+ })}
197
+ >
198
+ <View style={staticStyles.content}>
199
+ <View
200
+ style={[
201
+ selectFootnoteHeaderContentStyle(themeTokens),
202
+ staticStyles.headerContent
203
+ ]}
210
204
  >
211
- <View
212
- style={[selectFootnoteCloseButtonStyle(themeTokens), staticStyles.closeButton]}
205
+ <Typography
206
+ tokens={{
207
+ fontSize: themeTokens?.headerFontSize,
208
+ lineHeight: themeTokens?.headerLineHeight
209
+ }}
210
+ variant={{ size: 'h4' }}
213
211
  >
214
- <Icon
215
- icon={themeTokens?.closeIcon}
216
- tokens={{ size: themeTokens?.closeButtonIconSize }}
217
- />
218
- </View>
219
- </TouchableWithoutFeedback>
220
- </View>
221
- <View
222
- style={selectFootnoteBodyStyle({
223
- maxWidth: themeOptions.contentMaxWidth,
224
- screenWidth,
225
- ...themeTokens
226
- })}
227
- >
228
- {getFootnoteBodyContent()}
212
+ {getCopy('heading')}
213
+ </Typography>
214
+ <TouchableWithoutFeedback
215
+ onPress={handleClose}
216
+ accessibilityLabel={getCopy('close')}
217
+ >
218
+ <View
219
+ style={[
220
+ selectFootnoteCloseButtonStyle(themeTokens),
221
+ staticStyles.closeButton
222
+ ]}
223
+ >
224
+ <Icon
225
+ icon={themeTokens?.closeIcon}
226
+ tokens={{ size: themeTokens?.closeButtonIconSize }}
227
+ />
228
+ </View>
229
+ </TouchableWithoutFeedback>
230
+ </View>
231
+ <View
232
+ style={selectFootnoteBodyStyle({
233
+ maxWidth: themeOptions.contentMaxWidth,
234
+ screenWidth,
235
+ ...themeTokens
236
+ })}
237
+ >
238
+ {getFootnoteBodyContent()}
239
+ </View>
229
240
  </View>
230
- </View>
231
- </ScrollView>
232
- </SafeAreaView>
233
- </Modal>
234
- </View>
235
- )
236
- }
241
+ </ScrollView>
242
+ </SafeAreaView>
243
+ </Modal>
244
+ </View>
245
+ )
246
+ }
247
+ )
248
+
249
+ Footnote.displayName = 'Footnote'
237
250
 
238
251
  const copyShape = PropTypes.shape({
239
252
  close: PropTypes.string.isRequired,
@@ -31,41 +31,45 @@ const selectTextStyle = ({ fontSize, lineHeight }) => ({
31
31
  })
32
32
  })
33
33
 
34
- const FootnoteLink = ({ copy = 'en', content = [], onClick, tokens, variant = {}, ...rest }) => {
35
- const themeTokens = useThemeTokens('FootnoteLink', tokens, variant)
36
- const textStyles = applyTextStyles(themeTokens)
34
+ const FootnoteLink = React.forwardRef(
35
+ ({ copy = 'en', content = [], onClick, tokens, variant = {}, ...rest }, ref) => {
36
+ const themeTokens = useThemeTokens('FootnoteLink', tokens, variant)
37
+ const textStyles = applyTextStyles(themeTokens)
37
38
 
38
- const numbers = Array.isArray(content) ? content : [content]
39
- const refs = numbers.map(() => React.createRef())
39
+ const numbers = Array.isArray(content) ? content : [content]
40
+ const refs = numbers.map(() => React.createRef())
40
41
 
41
- const handleOnClick = (index) => {
42
- onClick(numbers[index], refs[index])
42
+ const handleOnClick = (index) => {
43
+ onClick(numbers[index], refs[index])
44
+ }
45
+ const getCopy = useCopy({ dictionary, copy })
46
+
47
+ return (
48
+ <View ref={ref} style={staticStyles.container}>
49
+ {numbers.map((num, index) => (
50
+ <View
51
+ accessibilityLabel={getCopy('a11yLabel')}
52
+ key={num}
53
+ ref={refs[index]}
54
+ {...selectProps(rest)}
55
+ >
56
+ <TouchableWithoutFeedback onPress={handleOnClick} accessibilityRole="button">
57
+ {wrapStringsInText(`${num}${index !== numbers.length - 1 ? ',' : ''}`, {
58
+ style: {
59
+ ...textStyles,
60
+ ...staticStyles.text,
61
+ ...selectTextStyle(themeTokens)
62
+ }
63
+ })}
64
+ </TouchableWithoutFeedback>
65
+ </View>
66
+ ))}
67
+ </View>
68
+ )
43
69
  }
44
- const getCopy = useCopy({ dictionary, copy })
70
+ )
45
71
 
46
- return (
47
- <>
48
- {numbers.map((num, index) => (
49
- <View
50
- accessibilityLabel={getCopy('a11yLabel')}
51
- key={num}
52
- ref={refs[index]}
53
- {...selectProps(rest)}
54
- >
55
- <TouchableWithoutFeedback onPress={handleOnClick} accessibilityRole="button">
56
- {wrapStringsInText(`${num}${index !== numbers.length - 1 ? ',' : ''}`, {
57
- style: {
58
- ...textStyles,
59
- ...staticStyles.text,
60
- ...selectTextStyle(themeTokens)
61
- }
62
- })}
63
- </TouchableWithoutFeedback>
64
- </View>
65
- ))}
66
- </>
67
- )
68
- }
72
+ FootnoteLink.displayName = 'FootnoteLink'
69
73
 
70
74
  const copyShape = PropTypes.shape({ a11yLabel: PropTypes.string.isRequired })
71
75
 
@@ -99,5 +103,8 @@ const staticStyles = StyleSheet.create({
99
103
  text: {
100
104
  position: 'relative',
101
105
  textDecorationLine: 'underline'
106
+ },
107
+ container: {
108
+ flexDirection: 'row'
102
109
  }
103
110
  })
@@ -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, View } from 'react-native'
4
4
 
@@ -32,7 +32,7 @@ export const selectHorizontalScrollTokens = (themeTokens, prefix) =>
32
32
  *
33
33
  * @TODO revisit `ScrollButton` after IconButton is stable.
34
34
  */
35
- const HorizontalScroll = forwardRef(
35
+ const HorizontalScroll = React.forwardRef(
36
36
  ({ ScrollButton, tokens, itemPositions, children, ...rest }, ref) => {
37
37
  const {
38
38
  nextIcon,
@@ -48,8 +48,8 @@ const HorizontalScroll = forwardRef(
48
48
  'HorizontalScroll'
49
49
  )
50
50
 
51
- const [containerWidth, setContainerWidth] = useState(0)
52
- const [contentWidth, setContentWidth] = useState(0)
51
+ const [containerWidth, setContainerWidth] = React.useState(0)
52
+ const [contentWidth, setContentWidth] = React.useState(0)
53
53
  const handleContentWidth = (width) => setContentWidth(width)
54
54
  const handleContainerLayout = ({
55
55
  nativeEvent: {
@@ -59,7 +59,7 @@ const HorizontalScroll = forwardRef(
59
59
 
60
60
  // Update the scroll position only when scrolling actions ends to minimally rerender
61
61
  // and update which buttons are conditionally rendered.
62
- const [scrollOffset, setScrollOffset] = useState(0)
62
+ const [scrollOffset, setScrollOffset] = React.useState(0)
63
63
  const handleScrollEnd = ({
64
64
  nativeEvent: {
65
65
  contentOffset: { x }
@@ -72,7 +72,7 @@ const HorizontalScroll = forwardRef(
72
72
  const showNextButton = scrollOffset < scrollMax
73
73
  const showPreviousButton = scrollOffset > 0
74
74
 
75
- const scrollRef = useRef(null)
75
+ const scrollRef = React.useRef(null)
76
76
  const scrollTo = (targetX) => {
77
77
  if (typeof scrollRef.current?.scrollTo === 'function') {
78
78
  const x = getItemPositionScrollTarget(
@@ -102,8 +102,8 @@ const HorizontalScroll = forwardRef(
102
102
  /* eslint-disable-next-line no-param-reassign */
103
103
  itemPositions.scrollOffset = scrollOffset
104
104
 
105
- const hasWidths = itemPositions.contentWidth > 0 && itemPositions.contentWidth > 0
106
- useEffect(() => {
105
+ const hasWidths = itemPositions.contentWidth > 0
106
+ React.useEffect(() => {
107
107
  if (hasWidths) itemPositions.setIsReady(true)
108
108
  // itemPositions is a ref object so this should occur only when elements' widths are set in state
109
109
  }, [hasWidths, itemPositions])
@@ -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, View } from 'react-native'
4
4
  import { variantProp, getTokensPropType, useCopy, copyPropTypes, a11yProps } from '../utils'
@@ -18,7 +18,7 @@ const selectContainerStyles = ({ offset }) => ({
18
18
  *
19
19
  * @TODO when IconButton is complete and stable revisit this and update interaction state styles.
20
20
  */
21
- const HorizontalScrollButton = forwardRef(
21
+ const HorizontalScrollButton = React.forwardRef(
22
22
  ({ direction = 'next', icon, offset, onPress, variant, tokens, copy }, ref) => {
23
23
  const themeTokens = useThemeTokens('HorizontalScrollButton', tokens, variant)
24
24
  const getCopy = useCopy({ dictionary, copy })
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useCallback, useEffect } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { ScrollView } from 'react-native'
4
4
  import debounce from 'lodash.debounce'
@@ -12,11 +12,11 @@ const DEBOUNCE_MS = 100
12
12
  * so we need to work around it with debouncing on `onScroll`. See:
13
13
  * https://github.com/necolas/react-native-web/issues/1021
14
14
  */
15
- const ScrollViewEnd = forwardRef(({ onScrollEnd, onScroll, ...props }, ref) => {
15
+ const ScrollViewEnd = React.forwardRef(({ onScrollEnd, onScroll = null, ...props }, ref) => {
16
16
  // Return debounced function directly from useCallback so it has .cancel method etc.
17
17
  // Linter complains this stops it automatically scanning the deps, but we can check them manually.
18
18
  // eslint-disable-next-line react-hooks/exhaustive-deps
19
- const debounceScrollEnd = useCallback(
19
+ const debounceScrollEnd = React.useCallback(
20
20
  debounce((event) => onScrollEnd(event), DEBOUNCE_MS),
21
21
  [onScrollEnd]
22
22
  )
@@ -28,7 +28,7 @@ const ScrollViewEnd = forwardRef(({ onScrollEnd, onScroll, ...props }, ref) => {
28
28
  }
29
29
 
30
30
  // Cancel any lingering debounce timeouts on dismount
31
- useEffect(() => debounceScrollEnd.cancel)
31
+ React.useEffect(() => debounceScrollEnd.cancel)
32
32
 
33
33
  return (
34
34
  <ScrollView
@@ -46,8 +46,4 @@ ScrollViewEnd.propTypes = {
46
46
  onScroll: PropTypes.func
47
47
  }
48
48
 
49
- ScrollViewEnd.defaultProps = {
50
- onScroll: null
51
- }
52
-
53
49
  export default ScrollViewEnd
@@ -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 { ScrollView } from 'react-native'
4
4
 
@@ -7,7 +7,7 @@ import { ScrollView } from 'react-native'
7
7
  *
8
8
  * React Native has two scroll end handlers, we want to treat them both the same.
9
9
  */
10
- const ScrollViewEnd = forwardRef(({ onScrollEnd, ...props }, ref) => (
10
+ const ScrollViewEnd = React.forwardRef(({ onScrollEnd, ...props }, ref) => (
11
11
  <ScrollView
12
12
  ref={ref}
13
13
  {...props}
package/src/Icon/Icon.jsx CHANGED
@@ -1,11 +1,11 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import { Platform, View } from 'react-native'
3
3
  import PropTypes from 'prop-types'
4
4
 
5
5
  import { useThemeTokens } from '../ThemeProvider'
6
6
  import { getTokensPropType, scaleWithText, variantProp } from '../utils'
7
7
 
8
- const Icon = forwardRef(
8
+ const Icon = React.forwardRef(
9
9
  (
10
10
  {
11
11
  icon: IconComponent,
@@ -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, View } from 'react-native'
4
4
 
@@ -14,7 +14,7 @@ import { spacingProps } from '../utils'
14
14
  * - inline within a <Text> element
15
15
  * - within a container with `flexDirection: 'row'`
16
16
  */
17
- const IconText = forwardRef(
17
+ const IconText = React.forwardRef(
18
18
  ({ space, iconPosition = 'left', icon: IconComponent, iconProps, children }, ref) => {
19
19
  const iconContent = IconComponent && (
20
20
  <Icon ref={ref} icon={IconComponent} scalesWithText {...iconProps} />
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { Pressable, Platform, StyleSheet, View } from 'react-native'
4
4
 
@@ -126,7 +126,7 @@ const selectInnerStyle = (
126
126
  * based on these to an outer border and a base Card component. Not intended to be used in
127
127
  * apps or sites directly: build themed components on top of this.
128
128
  */
129
- const IconButton = forwardRef(
129
+ const IconButton = React.forwardRef(
130
130
  (
131
131
  {
132
132
  tokens,
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import { StyleSheet, Text, View } from 'react-native'
3
3
  import PropTypes from 'prop-types'
4
4
 
@@ -35,7 +35,7 @@ const selectHintStyles = (
35
35
 
36
36
  const selectGapStyles = ({ gap }) => ({ marginRight: gap })
37
37
 
38
- const InputLabel = forwardRef(
38
+ const InputLabel = React.forwardRef(
39
39
  (
40
40
  {
41
41
  copy = 'en',
@@ -1,7 +1,7 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
 
4
- const LabelContent = forwardRef(({ children, forId }, ref) => (
4
+ const LabelContent = React.forwardRef(({ children, forId }, ref) => (
5
5
  <label ref={ref} htmlFor={forId} style={staticStyles.inheritCursor}>
6
6
  {children}
7
7
  </label>
@@ -1,9 +1,9 @@
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
 
5
5
  // Since there's no equivalent for web's <label> element we're simply rendering whatever is passed to this component.
6
- const LabelContent = forwardRef(({ children }, ref) =>
6
+ const LabelContent = React.forwardRef(({ children }, ref) =>
7
7
  ref ? <View ref={ref}>{children}</View> : children
8
8
  )
9
9
  LabelContent.displayName = 'LabelContent'
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
 
3
3
  import PropTypes from 'prop-types'
4
4
  import InputLabel from '../InputLabel'
@@ -6,8 +6,9 @@ import Feedback from '../Feedback'
6
6
  import StackView from '../StackView'
7
7
  import { useThemeTokens } from '../ThemeProvider'
8
8
  import useInputSupports from './useInputSupports'
9
+ import { getTokensPropType } from '../utils'
9
10
 
10
- const InputSupports = forwardRef(
11
+ const InputSupports = React.forwardRef(
11
12
  (
12
13
  {
13
14
  children,
@@ -87,7 +88,7 @@ InputSupports.propTypes = {
87
88
  /**
88
89
  * Additional tokens to override the default feedback tokens.
89
90
  */
90
- feedbackTokens: PropTypes.objectOf(PropTypes.string),
91
+ feedbackTokens: getTokensPropType('Feedback'),
91
92
  /**
92
93
  * Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
93
94
  */
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
 
4
4
  import { useThemeTokensCallback } from '../ThemeProvider'
@@ -11,7 +11,7 @@ import LinkBase from './LinkBase'
11
11
  *
12
12
  * ChevronLink is not intended to be deeply themable; variants passed to ChevronLink are forwarded to Link.
13
13
  */
14
- const ChevronLink = forwardRef(
14
+ const ChevronLink = React.forwardRef(
15
15
  ({ direction = 'right', children, tokens = {}, variant, dataSet, ...otherlinkProps }, ref) => {
16
16
  const getChevronTokens = useThemeTokensCallback('ChevronLink', tokens, variant)
17
17
  const applyChevronTokens = (linkState) => {
@@ -1,5 +1,6 @@
1
- import React, { forwardRef } from 'react'
1
+ import React from 'react'
2
2
  import { Pressable, StyleSheet } from 'react-native'
3
+ import PropTypes from 'prop-types'
3
4
 
4
5
  /**
5
6
  * @typedef {import('react-native').PressableProps} PressableProps
@@ -13,23 +14,29 @@ import { Pressable, StyleSheet } from 'react-native'
13
14
  *
14
15
  * @param {PressableProps} PressableProps
15
16
  */
16
- // React Native exports prop Types but not propTypes, use JSDoc types here rather than duplicate RN
17
- // eslint-disable-next-line react/prop-types
18
- const InlinePressable = forwardRef(({ children, inlineFlex = true, style, ...props }, ref) => (
19
- <Pressable
20
- ref={ref}
21
- style={(pressState) => [
22
- typeof style === 'function' ? style(pressState) : style,
23
- staticStyles[inlineFlex ? 'inlineFlex' : 'inline']
24
- ]}
25
- {...props}
26
- >
27
- {(pressState) => (typeof children === 'function' ? children(pressState) : children)}
28
- </Pressable>
29
- ))
17
+ const InlinePressable = React.forwardRef(
18
+ ({ children, inlineFlex = true, style, ...props }, ref) => (
19
+ <Pressable
20
+ ref={ref}
21
+ style={(pressState) => [
22
+ typeof style === 'function' ? style(pressState) : style,
23
+ staticStyles[inlineFlex ? 'inlineFlex' : 'inline']
24
+ ]}
25
+ {...props}
26
+ >
27
+ {(pressState) => (typeof children === 'function' ? children(pressState) : children)}
28
+ </Pressable>
29
+ )
30
+ )
30
31
 
31
32
  InlinePressable.displayName = 'InlinePressable'
32
33
 
34
+ InlinePressable.propTypes = {
35
+ children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
36
+ inlineFlex: PropTypes.bool,
37
+ style: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.func])
38
+ }
39
+
33
40
  const staticStyles = StyleSheet.create({
34
41
  inline: {
35
42
  // Stop Pressable defaulting to (block) flex
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable camelcase */
2
- import React, { forwardRef, useState } from 'react'
2
+ import React from 'react'
3
3
  import { Text, TouchableWithoutFeedback } from 'react-native'
4
+ import PropTypes from 'prop-types'
4
5
 
5
6
  /**
6
7
  * @typedef {import('react-native').PressableProps} PressableProps
@@ -36,14 +37,12 @@ const pressablePropsToTouchable = ({
36
37
  *
37
38
  * @param {PressableProps} PressableProps
38
39
  */
39
- // React Native exports prop Types but not propTypes, use JSDoc types here rather than duplicate RN
40
- // eslint-disable-next-line react/prop-types
41
- const InlinePressable = forwardRef(({ onPress, children, style, ...rest }, ref) => {
42
- const [isFocused, setIsFocused] = useState(false)
40
+ const InlinePressable = React.forwardRef(({ onPress, children, style, ...rest }, ref) => {
41
+ const [isFocused, setIsFocused] = React.useState(false)
43
42
  const handleFocus = () => setIsFocused(true)
44
43
  const handleBlur = () => setIsFocused(false)
45
44
 
46
- const [isPressed, setIsPressed] = useState(false)
45
+ const [isPressed, setIsPressed] = React.useState(false)
47
46
  const handlePressIn = () => setIsPressed(true)
48
47
  const handlePressOut = () => setIsPressed(false)
49
48
 
@@ -70,6 +69,13 @@ const InlinePressable = forwardRef(({ onPress, children, style, ...rest }, ref)
70
69
  </TouchableWithoutFeedback>
71
70
  )
72
71
  })
72
+
73
73
  InlinePressable.displayName = 'InlinePressable'
74
74
 
75
+ InlinePressable.propTypes = {
76
+ children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
77
+ style: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.func]),
78
+ onPress: PropTypes.func
79
+ }
80
+
75
81
  export default InlinePressable