@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
@@ -0,0 +1,210 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { a11yProps, focusHandlerProps, containUniqueFields, selectSystemProps, useMultipleInputValues, useInputValue, useCopy, viewProps, variantProp, getTokensPropType, copyPropTypes } from '../utils';
4
+ import defaultDictionary from './dictionary';
5
+ import { useViewport } from '../ViewportProvider';
6
+ import { useThemeTokens } from '../ThemeProvider';
7
+ import StackView, { StackWrap } from '../StackView';
8
+ import Card from '../Card';
9
+ import Fieldset from '../Fieldset';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
12
+ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
13
+ const uniqueFields = ['id'];
14
+ const CardGroup = /*#__PURE__*/React.forwardRef((_ref, ref) => {
15
+ let {
16
+ copy = 'en',
17
+ tokens = {},
18
+ variant = {},
19
+ items = [],
20
+ validation,
21
+ feedback,
22
+ initialCheckedIds,
23
+ checkedIds,
24
+ onChange,
25
+ role = 'radiogroup',
26
+ isInactive,
27
+ name: inputGroupName,
28
+ dictionary = defaultDictionary,
29
+ ...rest
30
+ } = _ref;
31
+ const getCopy = useCopy({
32
+ dictionary,
33
+ copy
34
+ });
35
+ const viewport = useViewport();
36
+ const cardGroupTokens = useThemeTokens('CardGroup', tokens, variant, {
37
+ viewport
38
+ });
39
+ const {
40
+ space,
41
+ fieldSpace,
42
+ direction,
43
+ showIcon,
44
+ outlineWidth,
45
+ borderTopLeftRadius,
46
+ borderTopRightRadius,
47
+ borderBottomLeftRadius,
48
+ borderBottomRightRadius,
49
+ outlineOffset,
50
+ paddingTop,
51
+ paddingBottom,
52
+ paddingLeft,
53
+ paddingRight
54
+ } = cardGroupTokens;
55
+ const borderTokens = {
56
+ outlineWidth,
57
+ borderTopLeftRadius,
58
+ borderTopRightRadius,
59
+ borderBottomLeftRadius,
60
+ borderBottomRightRadius,
61
+ outlineOffset
62
+ };
63
+ const singleSelection = role === 'radiogroup';
64
+ const inputControl = {
65
+ value: checkedIds,
66
+ initialValue: initialCheckedIds,
67
+ onChange,
68
+ readOnly: isInactive
69
+ };
70
+ const singleInputValue = useInputValue(inputControl);
71
+ const multipleInputValues = useMultipleInputValues(inputControl);
72
+ const StackContainer = direction === 'row' ? StackWrap : StackView;
73
+ if (!containUniqueFields(items, uniqueFields)) {
74
+ throw new Error(`CardGroup items must have unique ${uniqueFields.join(', ')}`);
75
+ }
76
+ const handleChange = React.useCallback((checked, event, cardId, itemOnChange) => {
77
+ if (checked && singleSelection) {
78
+ singleInputValue.setValue(cardId, event);
79
+ } else {
80
+ multipleInputValues.toggleOneValue(cardId, event);
81
+ }
82
+ return itemOnChange === null || itemOnChange === void 0 ? void 0 : itemOnChange(checked, event);
83
+ }, [singleInputValue, multipleInputValues, singleSelection]);
84
+ return /*#__PURE__*/_jsx(Fieldset, {
85
+ copy: copy,
86
+ ref: ref,
87
+ name: inputGroupName,
88
+ space: fieldSpace,
89
+ feedback: feedback,
90
+ validation: validation,
91
+ tokens: borderTokens,
92
+ inactive: isInactive,
93
+ showErrorBorder: true,
94
+ showIcon: showIcon,
95
+ accessibilityRole: role,
96
+ ...selectProps(rest),
97
+ children: props => /*#__PURE__*/_jsx(StackContainer, {
98
+ space: space,
99
+ children: items.map((_ref2, index) => {
100
+ let {
101
+ id,
102
+ interactiveCard,
103
+ card,
104
+ onPress: itemOnChange,
105
+ ...itemRest
106
+ } = _ref2;
107
+ const cardId = id || `${getCopy('prefixId')}[${index}]`;
108
+ const itemHandleChange = (checked, event) => handleChange(checked, event, cardId, itemOnChange);
109
+ return /*#__PURE__*/_jsx(Card, {
110
+ id: cardId,
111
+ onPress: itemHandleChange,
112
+ interactiveCard: {
113
+ ...interactiveCard,
114
+ tokens: {
115
+ paddingTop,
116
+ paddingBottom,
117
+ paddingLeft,
118
+ paddingRight,
119
+ ...(interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.tokens)
120
+ },
121
+ variant: {
122
+ isControl: true,
123
+ selected: singleSelection ? singleInputValue.currentValue === cardId : multipleInputValues.currentValues.includes(cardId),
124
+ inactive: isInactive
125
+ },
126
+ selectionType: role
127
+ },
128
+ ...selectItemProps(itemRest),
129
+ ...props,
130
+ children: card === null || card === void 0 ? void 0 : card.body
131
+ }, cardId);
132
+ })
133
+ })
134
+ });
135
+ });
136
+ CardGroup.displayName = 'CardGroup';
137
+ const dictionaryContentShape = PropTypes.shape({
138
+ prefixId: PropTypes.string.isRequired
139
+ });
140
+ CardGroup.propTypes = {
141
+ ...selectedSystemPropTypes,
142
+ copy: copyPropTypes,
143
+ /**
144
+ * Override the default dictionary, by passing the complete dictionary object for `en` and `fr`
145
+ */
146
+ dictionary: PropTypes.shape({
147
+ en: dictionaryContentShape,
148
+ fr: dictionaryContentShape
149
+ }),
150
+ /**
151
+ * Optional theme token overrides for the outer RadioCardGroup component
152
+ */
153
+ tokens: getTokensPropType('CardGroup'),
154
+ /**
155
+ * Theme variants, shared between both RadioCardGroup and RadioCard
156
+ */
157
+ variant: variantProp.propType,
158
+ /**
159
+ * Array of objects containing specifics for each Card to be rendered in the group.
160
+ */
161
+ items: PropTypes.arrayOf(PropTypes.exact({
162
+ ...selectedItemPropTypes,
163
+ id: PropTypes.string,
164
+ interactiveCard: PropTypes.object,
165
+ card: PropTypes.object,
166
+ onPress: PropTypes.func
167
+ })),
168
+ /**
169
+ * Current validation status of the group, passed to the feedback element if there is one.
170
+ */
171
+ validation: PropTypes.oneOf(['error', 'success']),
172
+ /**
173
+ * If provided, a Feedback element is rendered containing this text.
174
+ */
175
+ feedback: PropTypes.string,
176
+ /**
177
+ * If provided, the card with this id is selected on first render.
178
+ * If the role is radiogroup, it's a string
179
+ * If the role is checkbox, it's a array of string.
180
+ * Can have 'null' as value
181
+ */
182
+ initialCheckedIds: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
183
+ /**
184
+ * If not undefined, the card with this id is selected (or none is selected if `null`), and the
185
+ * element's selection state will be controlled by its parent using the `onChange` function.
186
+ * If the role is radiogroup, it's a string
187
+ * If the role is checkbox, it's a array of string.
188
+ * Can have 'null' as value
189
+ */
190
+ checkedIds: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
191
+ /**
192
+ * Function to call on change in selection state. Is required if the selection state is controlled
193
+ * by a parent using checkedId and the input is not readOnly.
194
+ */
195
+ onChange: PropTypes.func,
196
+ /**
197
+ * Renders the card group like a radio card group or a checkbox card group
198
+ */
199
+ role: PropTypes.oneOf(['radiogroup', 'checkbox']),
200
+ /**
201
+ * If true, the card cannot be interacted with, elements are set as `disabled` and if the
202
+ * theme supports `inactive` appearances rules, these are applied.
203
+ */
204
+ isInactive: PropTypes.bool,
205
+ /**
206
+ * On Web, this is passed to the `name` attribute of the fieldset and each input.
207
+ */
208
+ name: PropTypes.string
209
+ };
210
+ export default CardGroup;
@@ -0,0 +1,8 @@
1
+ export default {
2
+ en: {
3
+ prefixId: 'Card'
4
+ },
5
+ fr: {
6
+ prefixId: 'Carte'
7
+ }
8
+ };
@@ -0,0 +1,2 @@
1
+ import CardGroup from './CardGroup';
2
+ export default CardGroup;
@@ -1,4 +1,4 @@
1
- import React, { useState, useRef, useEffect, useCallback, useMemo, forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import View from "react-native-web/dist/exports/View";
3
3
  import Animated from "react-native-web/dist/exports/Animated";
4
4
  import PanResponder from "react-native-web/dist/exports/PanResponder";
@@ -157,7 +157,7 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
157
157
  - `spaceBetweenSlideAndPreviousNextNavigation` - Horizontal space between slide and previous/next navigational buttons
158
158
  - `spaceBetweenSlideAndPanelNavigation` - Vertical space between slide area and panel navigation area
159
159
  */
160
- const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
160
+ const Carousel = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
161
161
  let {
162
162
  tokens,
163
163
  variant,
@@ -216,45 +216,45 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
216
216
  showPanelTabs,
217
217
  spaceBetweenSlideAndPreviousNextNavigation
218
218
  } = themeTokens;
219
- const [activeIndex, setActiveIndex] = useState(0);
220
- const activeIndexRef = useRef(activeIndex);
219
+ const [activeIndex, setActiveIndex] = React.useState(0);
220
+ const activeIndexRef = React.useRef(activeIndex);
221
221
  const {
222
222
  reduceMotionEnabled
223
223
  } = useA11yInfo();
224
- const reduceMotionRef = useRef(reduceMotionEnabled);
224
+ const reduceMotionRef = React.useRef(reduceMotionEnabled);
225
225
  const [containerLayout, setContainerLayout] = React.useState({
226
226
  x: 0,
227
227
  y: 0,
228
228
  width: 0
229
229
  });
230
- const containerLayoutRef = useRef(containerLayout);
231
- const [previousNextNavigationButtonWidth, setPreviousNextNavigationButtonWidth] = useState(0);
232
- const firstFocusRef = useRef(null);
233
- const pan = useRef(new Animated.ValueXY()).current;
234
- const animatedX = useRef(0);
235
- const animatedY = useRef(0);
236
- const [isAnimating, setIsAnimating] = useState(false);
230
+ const containerLayoutRef = React.useRef(containerLayout);
231
+ const [previousNextNavigationButtonWidth, setPreviousNextNavigationButtonWidth] = React.useState(0);
232
+ const firstFocusRef = React.useRef(null);
233
+ const pan = React.useRef(new Animated.ValueXY()).current;
234
+ const animatedX = React.useRef(0);
235
+ const animatedY = React.useRef(0);
236
+ const [isAnimating, setIsAnimating] = React.useState(false);
237
237
  /**
238
238
  * While having the same starting point, `isAutoPlayEnabled` and `isCarouselPlaying` are different states
239
239
  *
240
240
  * `isAutoPlayEnabled` is a state to determine if the autoplay feature is enabled or disabled
241
241
  * `isCarouselPlaying` is a state to determine if the carousel is currently playing or paused
242
242
  */
243
- const [isAutoPlayEnabled, setIsAutoPlayEnabled] = useState(autoPlayFeatureEnabled);
244
- const [isCarouselPlaying, setisCarouselPlaying] = useState(autoPlayFeatureEnabled);
245
- const isSwiping = useRef(false);
246
- const autoPlayRef = useRef(null);
243
+ const [isAutoPlayEnabled, setIsAutoPlayEnabled] = React.useState(autoPlayFeatureEnabled);
244
+ const [isCarouselPlaying, setisCarouselPlaying] = React.useState(autoPlayFeatureEnabled);
245
+ const isSwiping = React.useRef(false);
246
+ const autoPlayRef = React.useRef(null);
247
247
  const isFirstSlide = !activeIndex;
248
248
  const isLastSlide = activeIndex + 1 >= childrenArray.length;
249
- const handleAnimationStart = useCallback(function () {
249
+ const handleAnimationStart = React.useCallback(function () {
250
250
  if (typeof onAnimationStart === 'function') onAnimationStart(...arguments);
251
251
  setIsAnimating(true);
252
252
  }, [onAnimationStart]);
253
- const handleAnimationEnd = useCallback(function () {
253
+ const handleAnimationEnd = React.useCallback(function () {
254
254
  if (typeof onAnimationEnd === 'function') onAnimationEnd(...arguments);
255
255
  setIsAnimating(false);
256
256
  }, [onAnimationEnd]);
257
- const updateOffset = useCallback(() => {
257
+ const updateOffset = React.useCallback(() => {
258
258
  animatedX.current = containerLayoutRef.current.width * activeIndexRef.current * -1;
259
259
  animatedY.current = 0;
260
260
  pan.setOffset({
@@ -266,7 +266,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
266
266
  y: 0
267
267
  });
268
268
  }, [pan, animatedX]);
269
- const animate = useCallback((toValue, toIndex) => {
269
+ const animate = React.useCallback((toValue, toIndex) => {
270
270
  const handleAnimationEndToIndex = function () {
271
271
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
272
272
  args[_key] = arguments[_key];
@@ -294,12 +294,21 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
294
294
  }).start(handleAnimationEndToIndex);
295
295
  }
296
296
  }, [pan, springConfig, handleAnimationEnd, transitionDuration, isAutoPlayEnabled]);
297
- const stopAutoplay = useCallback(() => {
297
+ const stopAutoplay = React.useCallback(() => {
298
298
  if (autoPlayRef !== null && autoPlayRef !== void 0 && autoPlayRef.current) {
299
299
  clearTimeout(autoPlayRef === null || autoPlayRef === void 0 ? void 0 : autoPlayRef.current);
300
300
  }
301
301
  }, []);
302
- const updateIndex = useCallback(function () {
302
+ const triggerRefocus = React.useCallback(() => {
303
+ if (refocus && Platform.OS === 'web') {
304
+ var _firstFocusRef$curren;
305
+ (_firstFocusRef$curren = firstFocusRef.current) === null || _firstFocusRef$curren === void 0 ? void 0 : _firstFocusRef$curren.focus({
306
+ preventScroll: true,
307
+ focusVisible: false
308
+ });
309
+ }
310
+ }, [refocus, firstFocusRef]);
311
+ const updateIndex = React.useCallback(function () {
303
312
  let delta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
304
313
  let transitionMode = arguments.length > 1 ? arguments[1] : undefined;
305
314
  const toValue = {
@@ -330,51 +339,48 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
330
339
  setisCarouselPlaying(false);
331
340
  } else if (isAutoPlayEnabled) {
332
341
  autoPlayRef.current = setTimeout(() => {
333
- var _firstFocusRef$curren;
334
342
  updateOffset();
335
343
  handleAnimationStart(activeIndexRef.current);
336
344
  updateIndex(slideDuration < 0 ? -1 : 1, TRANSITION_MODES.AUTOMATIC);
337
- if (refocus) (_firstFocusRef$curren = firstFocusRef.current) === null || _firstFocusRef$curren === void 0 ? void 0 : _firstFocusRef$curren.focus();
345
+ triggerRefocus();
338
346
  }, Math.abs(slideDuration) * 1000);
339
347
  }
340
348
  }
341
349
  if (onIndexChanged) onIndexChanged(calcDelta, index);
342
350
  return calcDelta;
343
- }, [handleAnimationStart, refocus, slideDuration, updateOffset, animate, childrenArray.length, onIndexChanged, isCarouselPlaying, stopAutoplay, isAutoPlayEnabled]);
344
- const startAutoplay = useCallback(() => {
351
+ }, [handleAnimationStart, triggerRefocus, slideDuration, updateOffset, animate, childrenArray.length, onIndexChanged, isCarouselPlaying, stopAutoplay, isAutoPlayEnabled]);
352
+ const startAutoplay = React.useCallback(() => {
345
353
  stopAutoplay();
346
354
  if (isAutoPlayEnabled) {
347
355
  autoPlayRef.current = setTimeout(() => {
348
- var _firstFocusRef$curren2;
349
356
  updateOffset();
350
357
  handleAnimationStart(activeIndexRef.current);
351
358
  updateIndex(slideDuration < 0 ? -1 : 1, TRANSITION_MODES.AUTOMATIC);
352
- if (refocus && Platform.OS === 'web') (_firstFocusRef$curren2 = firstFocusRef.current) === null || _firstFocusRef$curren2 === void 0 ? void 0 : _firstFocusRef$curren2.focus();
359
+ triggerRefocus();
353
360
  }, Math.abs(slideDuration) * 1000);
354
361
  }
355
- }, [handleAnimationStart, refocus, updateIndex, updateOffset, slideDuration, stopAutoplay, isAutoPlayEnabled]);
356
- const fixOffsetAndGo = useCallback((delta, transitionMode) => {
357
- var _firstFocusRef$curren3;
362
+ }, [handleAnimationStart, triggerRefocus, updateIndex, updateOffset, slideDuration, stopAutoplay, isAutoPlayEnabled]);
363
+ const fixOffsetAndGo = React.useCallback((delta, transitionMode) => {
358
364
  updateOffset();
359
365
  handleAnimationStart(activeIndexRef.current);
360
366
  updateIndex(delta, transitionMode);
361
- if (refocus && Platform.OS === 'web') (_firstFocusRef$curren3 = firstFocusRef.current) === null || _firstFocusRef$curren3 === void 0 ? void 0 : _firstFocusRef$curren3.focus();
362
- }, [updateIndex, updateOffset, handleAnimationStart, refocus]);
363
- const goToNeighboring = useCallback(function () {
367
+ triggerRefocus();
368
+ }, [updateIndex, updateOffset, handleAnimationStart, triggerRefocus]);
369
+ const goToNeighboring = React.useCallback(function () {
364
370
  let toPrev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
365
371
  let transitionMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TRANSITION_MODES.MANUAL;
366
372
  fixOffsetAndGo(toPrev ? -1 : 1, transitionMode);
367
373
  }, [fixOffsetAndGo]);
368
- useEffect(() => {
374
+ React.useEffect(() => {
369
375
  activeIndexRef.current = activeIndex;
370
376
  }, [activeIndex]);
371
- useEffect(() => {
377
+ React.useEffect(() => {
372
378
  reduceMotionRef.current = reduceMotionEnabled;
373
379
  }, [reduceMotionEnabled]);
374
- useEffect(() => {
380
+ React.useEffect(() => {
375
381
  containerLayoutRef.current = containerLayout;
376
382
  }, [containerLayout]);
377
- useEffect(() => {
383
+ React.useEffect(() => {
378
384
  pan.x.addListener(_ref4 => {
379
385
  let {
380
386
  value
@@ -396,7 +402,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
396
402
  pan.y.removeAllListeners();
397
403
  };
398
404
  }, [pan.x, pan.y, startAutoplay, stopAutoplay, isCarouselPlaying]);
399
- useEffect(() => {
405
+ React.useEffect(() => {
400
406
  const subscription = Dimensions.addEventListener('change', () => {
401
407
  updateOffset();
402
408
  });
@@ -408,10 +414,10 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
408
414
  }
409
415
  };
410
416
  }, [updateOffset]);
411
- useEffect(() => {
417
+ React.useEffect(() => {
412
418
  setIsAutoPlayEnabled(autoPlay && slideDuration > 0 && transitionDuration > 0 && childrenArray.length > 1);
413
419
  }, [autoPlay, slideDuration, transitionDuration, childrenArray.length]);
414
- useEffect(() => {
420
+ React.useEffect(() => {
415
421
  return () => {
416
422
  stopAutoplay();
417
423
  };
@@ -443,7 +449,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
443
449
  } = _ref7;
444
450
  return setPreviousNextNavigationButtonWidth(width);
445
451
  };
446
- const isSwipeAllowed = useCallback(() => {
452
+ const isSwipeAllowed = React.useCallback(() => {
447
453
  if (childrenArray.length === 1) {
448
454
  return false;
449
455
  }
@@ -452,7 +458,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
452
458
  }
453
459
  return true;
454
460
  }, [viewport, childrenArray.length]);
455
- const panResponder = useMemo(() => PanResponder.create({
461
+ const panResponder = React.useMemo(() => PanResponder.create({
456
462
  onPanResponderTerminationRequest: () => false,
457
463
  onMoveShouldSetResponderCapture: () => true,
458
464
  onMoveShouldSetPanResponderCapture: (_, gestureState) => {
@@ -492,13 +498,13 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
492
498
  isSwiping.current = false;
493
499
  }
494
500
  }), [updateIndex, updateOffset, animate, isSwipeAllowed, minDistanceForAction, handleAnimationStart, minDistanceToCapture, pan.x, startAutoplay, stopAutoplay, isCarouselPlaying]);
495
- const goToNext = useCallback(() => {
501
+ const goToNext = React.useCallback(() => {
496
502
  goToNeighboring();
497
503
  }, [goToNeighboring]);
498
- const goToPrev = useCallback(() => {
504
+ const goToPrev = React.useCallback(() => {
499
505
  goToNeighboring(true);
500
506
  }, [goToNeighboring]);
501
- const goTo = useCallback(function () {
507
+ const goTo = React.useCallback(function () {
502
508
  let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
503
509
  const delta = index - activeIndexRef.current;
504
510
  if (delta) {
@@ -514,7 +520,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
514
520
  raised: !(variant !== null && variant !== void 0 && variant.inverse) && true,
515
521
  inverse: variant === null || variant === void 0 ? void 0 : variant.inverse
516
522
  };
517
- const getCopyWithPlaceholders = useCallback(copyKey => {
523
+ const getCopyWithPlaceholders = React.useCallback(copyKey => {
518
524
  const copyText = getCopy(copyKey).replace(/%\{title\}/g, title).replace(/%\{itemLabel\}/g, itemLabel).replace(/%\{stepNumber\}/g, activeIndex + 1).replace(/%\{stepCount\}/g, childrenArray.length);
519
525
 
520
526
  // First word might be a lowercase placeholder: capitalize the first letter
@@ -559,7 +565,7 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
559
565
  focusable: true
560
566
  })
561
567
  };
562
- const onAnimationControlButtonPress = useCallback(() => {
568
+ const onAnimationControlButtonPress = React.useCallback(() => {
563
569
  if (isCarouselPlaying) {
564
570
  stopAutoplay();
565
571
  } else {
@@ -578,7 +584,13 @@ const Carousel = /*#__PURE__*/forwardRef((_ref3, ref) => {
578
584
  refocus: refocus,
579
585
  width: containerLayout.width,
580
586
  children: [/*#__PURE__*/_jsxs(View, {
581
- style: staticStyles.root,
587
+ style: [staticStyles.root, {
588
+ ...Platform.select({
589
+ web: {
590
+ outline: 'none'
591
+ }
592
+ })
593
+ }],
582
594
  onLayout: onContainerLayout,
583
595
  ref: ref,
584
596
  ...systemProps,
@@ -712,7 +724,7 @@ Carousel.propTypes = {
712
724
  * This function is also provided with a parameter indicating changed index (either 1, or -1)
713
725
  * Use it as follows:
714
726
  * ```js
715
- * const onIndexChangedCallback = useCallback((changedIndex, currentActiveIndex) => {
727
+ * const onIndexChangedCallback = React.useCallback((changedIndex, currentActiveIndex) => {
716
728
  * console.log(changedIndex)
717
729
  * }, []) // pass local dependencies as per your component
718
730
  * <Carousel
@@ -721,7 +733,7 @@ Carousel.propTypes = {
721
733
  * <Carousel.Item>First Slide</Carousel.Item>
722
734
  * </Carousel>
723
735
  * ```
724
- * Caution: Always consider wrapping your callback for `onIndexChanged` in `useCallback` in order to avoid bugs and performance issues
736
+ * Caution: Always consider wrapping your callback for `onIndexChanged` in `React.useCallback` in order to avoid bugs and performance issues
725
737
  */
726
738
  onIndexChanged: PropTypes.func,
727
739
  /**
@@ -763,7 +775,7 @@ Carousel.propTypes = {
763
775
  * This function is also provided with a parameter indicating the current slide index before animation starts
764
776
  * Use it as follows:
765
777
  * ```js
766
- * const onAnimationStartCallback = useCallback((currentIndex) => {
778
+ * const onAnimationStartCallback = React.useCallback((currentIndex) => {
767
779
  * console.log(currentIndex)
768
780
  * }, []) // pass local dependencies as per your component
769
781
  * <Carousel
@@ -772,7 +784,7 @@ Carousel.propTypes = {
772
784
  * <Carousel.Item>First Slide</Carousel.Item>
773
785
  * </Carousel>
774
786
  * ```
775
- * Caution: Always consider wrapping your callback for `onAnimationStart` in `useCallback` in order to avoid bugs and performance issues
787
+ * Caution: Always consider wrapping your callback for `onAnimationStart` in `React.useCallback` in order to avoid bugs and performance issues
776
788
  */
777
789
  onAnimationStart: PropTypes.func,
778
790
  /**
@@ -780,7 +792,7 @@ Carousel.propTypes = {
780
792
  * This function is also provided with a parameter indicating the updated slide index after animation ends
781
793
  * Use it as follows:
782
794
  * ```js
783
- * const onAnimationEndCallback = useCallback((changedIndex) => {
795
+ * const onAnimationEndCallback = React.useCallback((changedIndex) => {
784
796
  * console.log(changedIndex)
785
797
  * }, []) // pass local dependencies as per your component
786
798
  * <Carousel
@@ -789,7 +801,7 @@ Carousel.propTypes = {
789
801
  * <Carousel.Item>First Slide</Carousel.Item>
790
802
  * </Carousel>
791
803
  * ```
792
- * Caution: Always consider wrapping your callback for `onAnimationEnd` in `useCallback` in order to avoid bugs and performance issues
804
+ * Caution: Always consider wrapping your callback for `onAnimationEnd` in `React.useCallback` in order to avoid bugs and performance issues
793
805
  */
794
806
  onAnimationEnd: PropTypes.func,
795
807
  /**
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React from 'react';
2
2
  import Pressable from "react-native-web/dist/exports/Pressable";
3
3
  import Platform from "react-native-web/dist/exports/Platform";
4
4
  import StyleSheet from "react-native-web/dist/exports/StyleSheet";
@@ -12,7 +12,7 @@ import { useCarousel } from '../CarouselContext';
12
12
  * @TODO rework this after integrating with SkipLink when available.
13
13
  */
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
- const CarouselFirstFocus = /*#__PURE__*/forwardRef((_ref, ref) => {
15
+ const CarouselFirstFocus = /*#__PURE__*/React.forwardRef((_ref, ref) => {
16
16
  let {
17
17
  title
18
18
  } = _ref;
@@ -11,7 +11,7 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
11
11
  * `Carousel.Item` is used to wrap the content of an individual slide and is suppsoed to be the
12
12
  * only top-level component passed to the `Carousel`
13
13
  */
14
- const CarouselItem = _ref => {
14
+ const CarouselItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {
15
15
  let {
16
16
  children,
17
17
  elementIndex,
@@ -39,9 +39,10 @@ const CarouselItem = _ref => {
39
39
  style: style,
40
40
  ...selectedProps,
41
41
  ...focusabilityProps,
42
+ ref: ref,
42
43
  children: children
43
44
  });
44
- };
45
+ });
45
46
  CarouselItem.propTypes = {
46
47
  ...selectedSystemPropTypes,
47
48
  variant: variantProp.propType,
@@ -4,7 +4,7 @@ import StepTracker from '../../StepTracker';
4
4
  import StackView from '../../StackView';
5
5
  import { variantProp } from '../../utils';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
- const CarouselStepTracker = _ref => {
7
+ const CarouselStepTracker = /*#__PURE__*/React.forwardRef((_ref, ref) => {
8
8
  let {
9
9
  variant
10
10
  } = _ref;
@@ -33,6 +33,7 @@ const CarouselStepTracker = _ref => {
33
33
  return /*#__PURE__*/_jsx(StackView, {
34
34
  direction: "row",
35
35
  tokens: stackViewTokens,
36
+ ref: ref,
36
37
  children: /*#__PURE__*/_jsx(StepTracker, {
37
38
  current: activeIndex,
38
39
  steps: steps,
@@ -45,7 +46,8 @@ const CarouselStepTracker = _ref => {
45
46
  variant: variant
46
47
  })
47
48
  });
48
- };
49
+ });
50
+ CarouselStepTracker.displayName = 'CarouselStepTracker';
49
51
  CarouselStepTracker.propTypes = {
50
52
  variant: variantProp.propType
51
53
  };
@@ -1,5 +1,5 @@
1
1
  var _CarouselTabs$propTyp, _CarouselTabs$propTyp2;
2
- import React, { forwardRef } from 'react';
2
+ import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { useResponsiveProp } from '../../utils';
5
5
  import Carousel from '../Carousel';
@@ -8,7 +8,7 @@ import Carousel from '../Carousel';
8
8
  * @deprecated Please use Carousel and pass the `tabs` prop.
9
9
  */
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
- const CarouselTabs = /*#__PURE__*/forwardRef((_ref, ref) => {
11
+ const CarouselTabs = /*#__PURE__*/React.forwardRef((_ref, ref) => {
12
12
  let {
13
13
  items,
14
14
  refocus = true,
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useEffect, useRef, useState } from 'react';
1
+ import React from 'react';
2
2
  import View from "react-native-web/dist/exports/View";
3
3
  import PropTypes from 'prop-types';
4
4
  import StackView from '../../StackView';
@@ -9,7 +9,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
9
9
  const selectTabPanelStyle = () => ({
10
10
  backgroundColor: 'transparent'
11
11
  });
12
- const CarouselTabsPanel = /*#__PURE__*/forwardRef((_ref, ref) => {
12
+ const CarouselTabsPanel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
13
13
  let {
14
14
  items
15
15
  } = _ref;
@@ -17,13 +17,13 @@ const CarouselTabsPanel = /*#__PURE__*/forwardRef((_ref, ref) => {
17
17
  activeIndex,
18
18
  goTo
19
19
  } = useCarousel();
20
- const nextFocusRef = useRef();
21
- const firstTabRef = useRef();
22
- const [isInverse, setIsInverse] = useState(false);
20
+ const nextFocusRef = React.useRef();
21
+ const firstTabRef = React.useRef();
22
+ const [isInverse, setIsInverse] = React.useState(false);
23
23
  const lastTabSelected = activeIndex === items.length - 1;
24
24
 
25
25
  // Get current select tab style
26
- useEffect(() => {
26
+ React.useEffect(() => {
27
27
  const [selectedVariantIsInverse] = items.filter((_, index) => index === activeIndex);
28
28
  setIsInverse(selectedVariantIsInverse === null || selectedVariantIsInverse === void 0 ? void 0 : selectedVariantIsInverse.inverse);
29
29
  }, [items, activeIndex]);
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useState } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Pressable from "react-native-web/dist/exports/Pressable";
4
4
  import Text from "react-native-web/dist/exports/Text";
@@ -60,7 +60,7 @@ const selectTextStyles = _ref2 => {
60
60
  color
61
61
  });
62
62
  };
63
- const CarouselTabsPanelItem = /*#__PURE__*/forwardRef((_ref3, ref) => {
63
+ const CarouselTabsPanelItem = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
64
64
  let {
65
65
  title,
66
66
  selected,
@@ -73,7 +73,7 @@ const CarouselTabsPanelItem = /*#__PURE__*/forwardRef((_ref3, ref) => {
73
73
  // Workaround for React Native Web https://github.com/necolas/react-native-web/issues/2357
74
74
  // Don't allow disabled to be set while focus is true else focus state gets locked `true`
75
75
  // (must refocus _after_ calling `goTo`, else focus target content is not up to date)
76
- const [isFocused, setIsFocused] = useState(false);
76
+ const [isFocused, setIsFocused] = React.useState(false);
77
77
  const disabled = (inactive || selected) && !isFocused;
78
78
  const getTokens = useThemeTokensCallback('CarouselTabsPanelItem', tokens, variant);
79
79
  const resolveTokens = pressState => getTokens(resolvePressableState(pressState, {