@telus-uds/components-base 1.66.0 → 1.67.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 (486) hide show
  1. package/CHANGELOG.md +23 -3
  2. package/lib/A11yInfoProvider/index.js +5 -20
  3. package/lib/A11yText/index.js +3 -17
  4. package/lib/ActivityIndicator/Spinner.js +2 -9
  5. package/lib/ActivityIndicator/Spinner.native.js +4 -27
  6. package/lib/ActivityIndicator/index.js +1 -13
  7. package/lib/ActivityIndicator/shared.js +0 -3
  8. package/lib/Autocomplete/Autocomplete.js +34 -85
  9. package/lib/Autocomplete/Loading.js +0 -10
  10. package/lib/Autocomplete/Suggestions.js +0 -11
  11. package/lib/Autocomplete/index.js +0 -3
  12. package/lib/BaseProvider/HydrationContext.js +4 -18
  13. package/lib/BaseProvider/index.js +0 -12
  14. package/lib/Box/Box.js +10 -35
  15. package/lib/Box/index.js +0 -3
  16. package/lib/Button/Button.js +4 -13
  17. package/lib/Button/ButtonBase.js +23 -55
  18. package/lib/Button/ButtonDropdown.js +7 -32
  19. package/lib/Button/ButtonGroup.js +15 -48
  20. package/lib/Button/ButtonLink.js +3 -17
  21. package/lib/Button/index.js +0 -5
  22. package/lib/Button/propTypes.js +0 -15
  23. package/lib/Card/Card.js +3 -14
  24. package/lib/Card/CardBase.js +5 -16
  25. package/lib/Card/PressableCardBase.js +7 -30
  26. package/lib/Card/index.js +0 -7
  27. package/lib/Carousel/Carousel.js +22 -115
  28. package/lib/Carousel/CarouselContext.js +0 -14
  29. package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
  30. package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
  31. package/lib/Carousel/CarouselItem/index.js +0 -3
  32. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
  33. package/lib/Carousel/CarouselStepTracker/index.js +0 -3
  34. package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
  35. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
  36. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
  37. package/lib/Carousel/CarouselTabs/index.js +0 -3
  38. package/lib/Carousel/CarouselThumbnail.js +1 -16
  39. package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
  40. package/lib/Carousel/index.js +0 -5
  41. package/lib/Checkbox/Checkbox.js +5 -44
  42. package/lib/Checkbox/CheckboxButton.js +7 -33
  43. package/lib/Checkbox/CheckboxGroup.js +14 -45
  44. package/lib/Checkbox/CheckboxInput.js +1 -11
  45. package/lib/Checkbox/CheckboxInput.native.js +0 -2
  46. package/lib/Checkbox/index.js +0 -4
  47. package/lib/CheckboxCard/CheckboxCard.js +4 -37
  48. package/lib/CheckboxCard/index.js +0 -3
  49. package/lib/CheckboxCardGroup/CheckboxCardGroup.js +216 -0
  50. package/lib/CheckboxCardGroup/index.js +10 -0
  51. package/lib/Divider/Divider.js +13 -24
  52. package/lib/Divider/index.js +0 -3
  53. package/lib/ExpandCollapse/Accordion.js +1 -9
  54. package/lib/ExpandCollapse/Control.js +10 -32
  55. package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
  56. package/lib/ExpandCollapse/Panel.js +13 -38
  57. package/lib/ExpandCollapse/index.js +0 -5
  58. package/lib/Feedback/Feedback.js +13 -30
  59. package/lib/Feedback/index.js +0 -3
  60. package/lib/Fieldset/Fieldset.js +6 -37
  61. package/lib/Fieldset/FieldsetContainer.js +1 -10
  62. package/lib/Fieldset/FieldsetContainer.native.js +0 -8
  63. package/lib/Fieldset/Legend.js +1 -10
  64. package/lib/Fieldset/Legend.native.js +1 -13
  65. package/lib/Fieldset/index.js +0 -3
  66. package/lib/FlexGrid/Col/Col.js +10 -53
  67. package/lib/FlexGrid/Col/index.js +0 -3
  68. package/lib/FlexGrid/FlexGrid.js +3 -34
  69. package/lib/FlexGrid/Row/Row.js +0 -38
  70. package/lib/FlexGrid/Row/index.js +0 -3
  71. package/lib/FlexGrid/helpers/index.js +0 -4
  72. package/lib/FlexGrid/index.js +0 -3
  73. package/lib/FlexGrid/providers/GutterContext.js +0 -4
  74. package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
  75. package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
  76. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
  77. package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
  78. package/lib/HorizontalScroll/index.js +0 -7
  79. package/lib/HorizontalScroll/itemPositions.js +8 -19
  80. package/lib/Icon/Icon.js +4 -17
  81. package/lib/Icon/IconText.js +5 -25
  82. package/lib/Icon/index.js +0 -6
  83. package/lib/IconButton/IconButton.js +5 -37
  84. package/lib/IconButton/index.js +0 -3
  85. package/lib/InputLabel/InputLabel.js +4 -28
  86. package/lib/InputLabel/LabelContent.js +2 -8
  87. package/lib/InputLabel/LabelContent.native.js +0 -8
  88. package/lib/InputLabel/index.js +0 -3
  89. package/lib/InputSupports/InputSupports.js +0 -21
  90. package/lib/InputSupports/index.js +0 -3
  91. package/lib/InputSupports/useInputSupports.js +2 -6
  92. package/lib/Link/ChevronLink.js +7 -18
  93. package/lib/Link/InlinePressable.js +0 -10
  94. package/lib/Link/InlinePressable.native.js +5 -18
  95. package/lib/Link/Link.js +0 -8
  96. package/lib/Link/LinkBase.js +17 -47
  97. package/lib/Link/TextButton.js +3 -16
  98. package/lib/Link/index.js +0 -5
  99. package/lib/List/List.js +5 -21
  100. package/lib/List/ListItem.js +1 -11
  101. package/lib/List/ListItemBase.js +5 -34
  102. package/lib/List/ListItemContent.js +1 -14
  103. package/lib/List/ListItemMark.js +3 -23
  104. package/lib/List/PressableListItemBase.js +2 -28
  105. package/lib/List/index.js +0 -4
  106. package/lib/Listbox/GroupControl.js +0 -14
  107. package/lib/Listbox/Listbox.js +15 -40
  108. package/lib/Listbox/ListboxContext.js +0 -7
  109. package/lib/Listbox/ListboxGroup.js +7 -19
  110. package/lib/Listbox/ListboxItem.js +3 -17
  111. package/lib/Listbox/ListboxOverlay.js +4 -20
  112. package/lib/Listbox/PressableItem.js +3 -18
  113. package/lib/Listbox/index.js +0 -3
  114. package/lib/Modal/Modal.js +94 -45
  115. package/lib/Modal/ModalContent.js +184 -0
  116. package/lib/Modal/index.js +0 -3
  117. package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
  118. package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
  119. package/lib/MultiSelectFilter/index.js +0 -3
  120. package/lib/Notification/Notification.js +11 -38
  121. package/lib/Notification/index.js +0 -3
  122. package/lib/Pagination/PageButton.js +2 -22
  123. package/lib/Pagination/Pagination.js +21 -42
  124. package/lib/Pagination/SideButton.js +0 -24
  125. package/lib/Pagination/index.js +0 -3
  126. package/lib/Pagination/usePagination.js +4 -9
  127. package/lib/Progress/Progress.js +3 -17
  128. package/lib/Progress/ProgressBar.js +3 -25
  129. package/lib/Progress/ProgressBarBackground.js +0 -12
  130. package/lib/Progress/index.js +0 -4
  131. package/lib/QuickLinks/QuickLinks.js +1 -18
  132. package/lib/QuickLinks/QuickLinksCard.js +1 -11
  133. package/lib/QuickLinks/QuickLinksItem.js +3 -17
  134. package/lib/QuickLinks/index.js +0 -4
  135. package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
  136. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
  137. package/lib/QuickLinksFeature/index.js +0 -4
  138. package/lib/Radio/Radio.js +5 -39
  139. package/lib/Radio/RadioButton.js +7 -26
  140. package/lib/Radio/RadioGroup.js +6 -39
  141. package/lib/Radio/RadioInput.js +1 -11
  142. package/lib/Radio/RadioInput.native.js +0 -2
  143. package/lib/Radio/index.js +0 -4
  144. package/lib/RadioCard/RadioCard.js +5 -38
  145. package/lib/RadioCard/RadioCardGroup.js +25 -40
  146. package/lib/RadioCard/index.js +0 -4
  147. package/lib/Responsive/Responsive.js +1 -14
  148. package/lib/Responsive/index.js +0 -3
  149. package/lib/Search/Search.js +22 -45
  150. package/lib/Search/index.js +0 -3
  151. package/lib/Select/Group.js +0 -8
  152. package/lib/Select/Group.native.js +0 -6
  153. package/lib/Select/Item.js +0 -7
  154. package/lib/Select/Item.native.js +0 -2
  155. package/lib/Select/Picker.js +0 -8
  156. package/lib/Select/Picker.native.js +6 -22
  157. package/lib/Select/Select.js +9 -52
  158. package/lib/Select/index.js +0 -5
  159. package/lib/SideNav/Item.js +5 -29
  160. package/lib/SideNav/ItemContent.js +1 -14
  161. package/lib/SideNav/ItemsGroup.js +9 -31
  162. package/lib/SideNav/SideNav.js +9 -33
  163. package/lib/SideNav/index.js +0 -2
  164. package/lib/Skeleton/Skeleton.js +10 -42
  165. package/lib/Skeleton/index.js +0 -3
  166. package/lib/Skeleton/skeletonWebAnimation.js +0 -2
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
  168. package/lib/SkipLink/SkipLink.js +7 -27
  169. package/lib/SkipLink/index.js +0 -3
  170. package/lib/Spacer/Spacer.js +4 -20
  171. package/lib/Spacer/index.js +0 -3
  172. package/lib/StackView/StackView.js +3 -21
  173. package/lib/StackView/StackWrap.js +11 -21
  174. package/lib/StackView/StackWrap.native.js +0 -3
  175. package/lib/StackView/StackWrapBox.js +5 -21
  176. package/lib/StackView/StackWrapGap.js +1 -14
  177. package/lib/StackView/common.js +0 -6
  178. package/lib/StackView/getStackedContent.js +10 -21
  179. package/lib/StackView/index.js +0 -5
  180. package/lib/StepTracker/Step.js +3 -27
  181. package/lib/StepTracker/StepTracker.js +5 -32
  182. package/lib/StepTracker/index.js +0 -3
  183. package/lib/Tabs/Tabs.js +7 -30
  184. package/lib/Tabs/TabsItem.js +13 -38
  185. package/lib/Tabs/index.js +0 -3
  186. package/lib/Tags/Tags.js +9 -42
  187. package/lib/Tags/index.js +0 -3
  188. package/lib/TextInput/TextArea.js +11 -20
  189. package/lib/TextInput/TextInput.js +7 -16
  190. package/lib/TextInput/TextInputBase.js +12 -58
  191. package/lib/TextInput/index.js +0 -3
  192. package/lib/TextInput/propTypes.js +0 -8
  193. package/lib/ThemeProvider/ThemeProvider.js +10 -18
  194. package/lib/ThemeProvider/index.js +0 -9
  195. package/lib/ThemeProvider/useSetTheme.js +6 -9
  196. package/lib/ThemeProvider/useTheme.js +2 -7
  197. package/lib/ThemeProvider/useThemeTokens.js +1 -9
  198. package/lib/ThemeProvider/utils/index.js +0 -4
  199. package/lib/ThemeProvider/utils/styles.js +14 -35
  200. package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
  201. package/lib/Timeline/Timeline.js +11 -27
  202. package/lib/Timeline/index.js +0 -3
  203. package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
  204. package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
  205. package/lib/ToggleSwitch/index.js +0 -3
  206. package/lib/Tooltip/Backdrop.js +4 -11
  207. package/lib/Tooltip/Backdrop.native.js +1 -14
  208. package/lib/Tooltip/Tooltip.js +9 -37
  209. package/lib/Tooltip/Tooltip.native.js +14 -45
  210. package/lib/Tooltip/getTooltipPosition.js +26 -31
  211. package/lib/Tooltip/index.js +0 -5
  212. package/lib/Tooltip/shared.js +0 -10
  213. package/lib/TooltipButton/TooltipButton.js +5 -20
  214. package/lib/TooltipButton/index.js +0 -3
  215. package/lib/Typography/Typography.js +15 -38
  216. package/lib/Typography/index.js +0 -3
  217. package/lib/Validator/Validator.js +10 -58
  218. package/lib/Validator/index.js +0 -3
  219. package/lib/ViewportProvider/ViewportProvider.js +1 -13
  220. package/lib/ViewportProvider/index.js +0 -5
  221. package/lib/ViewportProvider/useViewport.js +0 -4
  222. package/lib/ViewportProvider/useViewportListener.js +3 -12
  223. package/lib/index.js +8 -71
  224. package/lib/utils/BaseView/BaseView.js +3 -17
  225. package/lib/utils/BaseView/BaseView.native.js +0 -3
  226. package/lib/utils/BaseView/index.js +0 -3
  227. package/lib/utils/a11y/index.js +0 -4
  228. package/lib/utils/a11y/semantics.js +14 -32
  229. package/lib/utils/a11y/textSize.js +1 -8
  230. package/lib/utils/animation/index.js +0 -2
  231. package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
  232. package/lib/utils/children.js +16 -28
  233. package/lib/utils/containUniqueFields.js +2 -5
  234. package/lib/utils/floating-ui/index.js +0 -1
  235. package/lib/utils/floating-ui/index.native.js +0 -1
  236. package/lib/utils/hasOwnProperty.js +0 -1
  237. package/lib/utils/htmlAttrs.js +2 -4
  238. package/lib/utils/index.js +0 -31
  239. package/lib/utils/info/index.js +0 -4
  240. package/lib/utils/info/platform/index.js +0 -4
  241. package/lib/utils/info/versions.js +0 -3
  242. package/lib/utils/input.js +12 -24
  243. package/lib/utils/pressability.js +7 -21
  244. package/lib/utils/props/a11yProps.js +19 -25
  245. package/lib/utils/props/clickProps.js +0 -4
  246. package/lib/utils/props/componentPropType.js +0 -14
  247. package/lib/utils/props/copyPropTypes.js +0 -4
  248. package/lib/utils/props/getPropSelector.js +11 -12
  249. package/lib/utils/props/handlerProps.js +2 -23
  250. package/lib/utils/props/hrefAttrsProp.js +0 -4
  251. package/lib/utils/props/index.js +0 -22
  252. package/lib/utils/props/inputSupportsProps.js +0 -9
  253. package/lib/utils/props/linkProps.js +2 -12
  254. package/lib/utils/props/paddingProp.js +0 -3
  255. package/lib/utils/props/pressProps.js +2 -8
  256. package/lib/utils/props/rectProp.js +0 -3
  257. package/lib/utils/props/responsiveProps.js +1 -5
  258. package/lib/utils/props/selectSystemProps.js +4 -6
  259. package/lib/utils/props/spacingProps.js +3 -10
  260. package/lib/utils/props/textInputProps.js +10 -31
  261. package/lib/utils/props/textProps.js +6 -11
  262. package/lib/utils/props/tokens.js +7 -26
  263. package/lib/utils/props/variantProp.js +0 -3
  264. package/lib/utils/props/viewProps.js +0 -5
  265. package/lib/utils/ssr.js +13 -33
  266. package/lib/utils/useCopy.js +3 -6
  267. package/lib/utils/useHash.js +5 -10
  268. package/lib/utils/useHash.native.js +0 -2
  269. package/lib/utils/useOverlaidPosition.js +6 -29
  270. package/lib/utils/useResponsiveProp.js +6 -13
  271. package/lib/utils/useSafeLayoutEffect.js +5 -10
  272. package/lib/utils/useScrollBlocking.js +3 -11
  273. package/lib/utils/useScrollBlocking.native.js +0 -2
  274. package/lib/utils/useSpacingScale.js +5 -8
  275. package/lib/utils/useUniqueId.js +0 -4
  276. package/lib/utils/withLinkRouter.js +13 -18
  277. package/lib-module/A11yInfoProvider/index.js +5 -9
  278. package/lib-module/A11yText/index.js +3 -4
  279. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  280. package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
  281. package/lib-module/ActivityIndicator/index.js +1 -5
  282. package/lib-module/ActivityIndicator/shared.js +2 -1
  283. package/lib-module/Autocomplete/Autocomplete.js +34 -59
  284. package/lib-module/Autocomplete/Loading.js +0 -2
  285. package/lib-module/BaseProvider/HydrationContext.js +4 -7
  286. package/lib-module/BaseProvider/index.js +0 -3
  287. package/lib-module/Box/Box.js +10 -24
  288. package/lib-module/Button/Button.js +4 -2
  289. package/lib-module/Button/ButtonBase.js +23 -35
  290. package/lib-module/Button/ButtonDropdown.js +7 -16
  291. package/lib-module/Button/ButtonGroup.js +15 -32
  292. package/lib-module/Button/ButtonLink.js +3 -2
  293. package/lib-module/Button/propTypes.js +0 -7
  294. package/lib-module/Card/Card.js +3 -2
  295. package/lib-module/Card/CardBase.js +5 -4
  296. package/lib-module/Card/PressableCardBase.js +7 -11
  297. package/lib-module/Carousel/Carousel.js +22 -60
  298. package/lib-module/Carousel/CarouselContext.js +0 -5
  299. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
  300. package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
  301. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
  302. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
  303. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
  304. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
  305. package/lib-module/Carousel/CarouselThumbnail.js +1 -7
  306. package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
  307. package/lib-module/Checkbox/Checkbox.js +5 -23
  308. package/lib-module/Checkbox/CheckboxButton.js +7 -17
  309. package/lib-module/Checkbox/CheckboxGroup.js +14 -31
  310. package/lib-module/Checkbox/CheckboxInput.js +1 -3
  311. package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
  312. package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
  313. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +206 -0
  314. package/lib-module/CheckboxCardGroup/index.js +2 -0
  315. package/lib-module/Divider/Divider.js +13 -11
  316. package/lib-module/ExpandCollapse/Accordion.js +1 -1
  317. package/lib-module/ExpandCollapse/Control.js +10 -17
  318. package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
  319. package/lib-module/ExpandCollapse/Panel.js +13 -23
  320. package/lib-module/Feedback/Feedback.js +13 -16
  321. package/lib-module/Fieldset/Fieldset.js +6 -25
  322. package/lib-module/Fieldset/FieldsetContainer.js +1 -1
  323. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
  324. package/lib-module/Fieldset/Legend.js +1 -1
  325. package/lib-module/Fieldset/Legend.native.js +1 -1
  326. package/lib-module/FlexGrid/Col/Col.js +10 -37
  327. package/lib-module/FlexGrid/FlexGrid.js +3 -17
  328. package/lib-module/FlexGrid/Row/Row.js +0 -25
  329. package/lib-module/FlexGrid/helpers/index.js +0 -3
  330. package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
  331. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
  332. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
  333. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
  334. package/lib-module/HorizontalScroll/itemPositions.js +11 -10
  335. package/lib-module/Icon/Icon.js +4 -8
  336. package/lib-module/Icon/IconText.js +6 -17
  337. package/lib-module/IconButton/IconButton.js +7 -20
  338. package/lib-module/InputLabel/InputLabel.js +4 -13
  339. package/lib-module/InputLabel/LabelContent.js +2 -1
  340. package/lib-module/InputLabel/LabelContent.native.js +0 -1
  341. package/lib-module/InputSupports/InputSupports.js +0 -9
  342. package/lib-module/InputSupports/useInputSupports.js +2 -4
  343. package/lib-module/Link/ChevronLink.js +7 -7
  344. package/lib-module/Link/InlinePressable.js +0 -2
  345. package/lib-module/Link/InlinePressable.native.js +4 -12
  346. package/lib-module/Link/LinkBase.js +17 -25
  347. package/lib-module/Link/TextButton.js +3 -5
  348. package/lib-module/List/List.js +5 -9
  349. package/lib-module/List/ListItem.js +1 -1
  350. package/lib-module/List/ListItemBase.js +5 -17
  351. package/lib-module/List/ListItemContent.js +1 -4
  352. package/lib-module/List/ListItemMark.js +3 -16
  353. package/lib-module/List/PressableListItemBase.js +2 -6
  354. package/lib-module/Listbox/GroupControl.js +0 -2
  355. package/lib-module/Listbox/Listbox.js +15 -23
  356. package/lib-module/Listbox/ListboxContext.js +0 -2
  357. package/lib-module/Listbox/ListboxGroup.js +6 -4
  358. package/lib-module/Listbox/ListboxItem.js +2 -1
  359. package/lib-module/Listbox/ListboxOverlay.js +3 -4
  360. package/lib-module/Listbox/PressableItem.js +2 -7
  361. package/lib-module/Modal/Modal.js +94 -25
  362. package/lib-module/Modal/ModalContent.js +175 -0
  363. package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
  364. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
  365. package/lib-module/Notification/Notification.js +11 -22
  366. package/lib-module/Pagination/PageButton.js +2 -6
  367. package/lib-module/Pagination/Pagination.js +21 -21
  368. package/lib-module/Pagination/SideButton.js +3 -8
  369. package/lib-module/Pagination/usePagination.js +4 -8
  370. package/lib-module/Progress/Progress.js +3 -7
  371. package/lib-module/Progress/ProgressBar.js +3 -11
  372. package/lib-module/Progress/ProgressBarBackground.js +0 -2
  373. package/lib-module/QuickLinks/QuickLinks.js +1 -6
  374. package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
  375. package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
  376. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
  377. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
  378. package/lib-module/Radio/Radio.js +5 -22
  379. package/lib-module/Radio/RadioButton.js +8 -10
  380. package/lib-module/Radio/RadioGroup.js +6 -25
  381. package/lib-module/Radio/RadioInput.js +1 -3
  382. package/lib-module/Radio/RadioInput.native.js +0 -1
  383. package/lib-module/RadioCard/RadioCard.js +5 -21
  384. package/lib-module/RadioCard/RadioCardGroup.js +25 -27
  385. package/lib-module/Responsive/Responsive.js +1 -6
  386. package/lib-module/Search/Search.js +22 -31
  387. package/lib-module/Select/Group.js +0 -3
  388. package/lib-module/Select/Group.native.js +0 -3
  389. package/lib-module/Select/Item.js +0 -3
  390. package/lib-module/Select/Item.native.js +0 -1
  391. package/lib-module/Select/Picker.native.js +8 -10
  392. package/lib-module/Select/Select.js +10 -35
  393. package/lib-module/SideNav/Item.js +5 -16
  394. package/lib-module/SideNav/ItemContent.js +1 -2
  395. package/lib-module/SideNav/ItemsGroup.js +9 -19
  396. package/lib-module/SideNav/SideNav.js +9 -22
  397. package/lib-module/Skeleton/Skeleton.js +10 -25
  398. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
  399. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
  400. package/lib-module/SkipLink/SkipLink.js +7 -9
  401. package/lib-module/Spacer/Spacer.js +4 -7
  402. package/lib-module/StackView/StackView.js +3 -7
  403. package/lib-module/StackView/StackWrap.js +13 -13
  404. package/lib-module/StackView/StackWrap.native.js +2 -1
  405. package/lib-module/StackView/StackWrapBox.js +5 -8
  406. package/lib-module/StackView/StackWrapGap.js +1 -1
  407. package/lib-module/StackView/getStackedContent.js +10 -10
  408. package/lib-module/StepTracker/Step.js +3 -14
  409. package/lib-module/StepTracker/StepTracker.js +5 -13
  410. package/lib-module/Tabs/Tabs.js +7 -16
  411. package/lib-module/Tabs/TabsItem.js +13 -16
  412. package/lib-module/Tags/Tags.js +9 -26
  413. package/lib-module/TextInput/TextArea.js +11 -8
  414. package/lib-module/TextInput/TextInput.js +7 -5
  415. package/lib-module/TextInput/TextInputBase.js +13 -39
  416. package/lib-module/TextInput/propTypes.js +3 -7
  417. package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
  418. package/lib-module/ThemeProvider/useSetTheme.js +6 -7
  419. package/lib-module/ThemeProvider/useTheme.js +2 -5
  420. package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
  421. package/lib-module/ThemeProvider/utils/styles.js +15 -27
  422. package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
  423. package/lib-module/Timeline/Timeline.js +11 -17
  424. package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
  425. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
  426. package/lib-module/Tooltip/Backdrop.js +4 -7
  427. package/lib-module/Tooltip/Backdrop.native.js +1 -4
  428. package/lib-module/Tooltip/Tooltip.js +9 -18
  429. package/lib-module/Tooltip/Tooltip.native.js +14 -23
  430. package/lib-module/Tooltip/getTooltipPosition.js +26 -30
  431. package/lib-module/Tooltip/shared.js +0 -6
  432. package/lib-module/TooltipButton/TooltipButton.js +5 -8
  433. package/lib-module/Typography/Typography.js +14 -22
  434. package/lib-module/Validator/Validator.js +10 -42
  435. package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
  436. package/lib-module/ViewportProvider/useViewportListener.js +6 -8
  437. package/lib-module/index.js +1 -0
  438. package/lib-module/utils/BaseView/BaseView.js +3 -4
  439. package/lib-module/utils/BaseView/BaseView.native.js +0 -1
  440. package/lib-module/utils/a11y/semantics.js +14 -27
  441. package/lib-module/utils/a11y/textSize.js +1 -2
  442. package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
  443. package/lib-module/utils/children.js +17 -19
  444. package/lib-module/utils/containUniqueFields.js +2 -4
  445. package/lib-module/utils/htmlAttrs.js +2 -1
  446. package/lib-module/utils/info/index.js +2 -1
  447. package/lib-module/utils/info/platform/index.js +4 -1
  448. package/lib-module/utils/info/versions.js +2 -1
  449. package/lib-module/utils/input.js +11 -19
  450. package/lib-module/utils/pressability.js +8 -7
  451. package/lib-module/utils/props/a11yProps.js +22 -20
  452. package/lib-module/utils/props/clickProps.js +0 -1
  453. package/lib-module/utils/props/componentPropType.js +0 -13
  454. package/lib-module/utils/props/getPropSelector.js +12 -8
  455. package/lib-module/utils/props/handlerProps.js +2 -19
  456. package/lib-module/utils/props/hrefAttrsProp.js +2 -2
  457. package/lib-module/utils/props/inputSupportsProps.js +0 -6
  458. package/lib-module/utils/props/linkProps.js +2 -3
  459. package/lib-module/utils/props/pressProps.js +2 -2
  460. package/lib-module/utils/props/responsiveProps.js +1 -3
  461. package/lib-module/utils/props/selectSystemProps.js +4 -5
  462. package/lib-module/utils/props/spacingProps.js +4 -3
  463. package/lib-module/utils/props/textInputProps.js +13 -27
  464. package/lib-module/utils/props/textProps.js +9 -7
  465. package/lib-module/utils/props/tokens.js +10 -13
  466. package/lib-module/utils/props/variantProp.js +1 -1
  467. package/lib-module/utils/props/viewProps.js +0 -1
  468. package/lib-module/utils/ssr.js +14 -18
  469. package/lib-module/utils/useCopy.js +3 -5
  470. package/lib-module/utils/useHash.js +5 -9
  471. package/lib-module/utils/useHash.native.js +0 -1
  472. package/lib-module/utils/useOverlaidPosition.js +6 -25
  473. package/lib-module/utils/useResponsiveProp.js +6 -7
  474. package/lib-module/utils/useSafeLayoutEffect.js +5 -7
  475. package/lib-module/utils/useScrollBlocking.js +3 -10
  476. package/lib-module/utils/useSpacingScale.js +4 -4
  477. package/lib-module/utils/useUniqueId.js +0 -2
  478. package/lib-module/utils/withLinkRouter.js +13 -10
  479. package/package.json +2 -2
  480. package/src/Checkbox/CheckboxGroup.jsx +10 -8
  481. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +231 -0
  482. package/src/CheckboxCardGroup/index.js +3 -0
  483. package/src/Modal/Modal.jsx +98 -5
  484. package/src/Modal/ModalContent.jsx +171 -0
  485. package/src/RadioCard/RadioCardGroup.jsx +23 -2
  486. package/src/index.js +1 -0
@@ -8,16 +8,17 @@ import { a11yProps, clickProps, focusHandlerProps, getTokenNames, getTokensSetPr
8
8
  import CardBase from './CardBase';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
11
- const tokenKeys = [...getTokenNames('Card'), // Outer border tokens. TODO: centralise common token sets like these as part of
11
+ const tokenKeys = [...getTokenNames('Card'),
12
+ // Outer border tokens. TODO: centralise common token sets like these as part of
12
13
  // https://github.com/telus/universal-design-system/issues/782
13
14
  'outerBorderColor', 'outerBorderWidth', 'outerBorderGap'];
14
15
  export const selectPressableCardTokens = tokens => Object.fromEntries(tokenKeys.map(key => [key, tokens[key]]));
16
+
15
17
  /**
16
18
  * A pressable themeless base component that handles pressable states and passes tokens
17
19
  * based on these to an outer border and a base Card component. Not intended to be used in
18
20
  * apps or sites directly: build themed components on top of this.
19
21
  */
20
-
21
22
  const PressableCardBase = /*#__PURE__*/forwardRef((_ref, ref) => {
22
23
  let {
23
24
  children,
@@ -41,15 +42,11 @@ const PressableCardBase = /*#__PURE__*/forwardRef((_ref, ref) => {
41
42
  inactive,
42
43
  viewport
43
44
  };
44
-
45
45
  const getCardState = pressableState => resolvePressableState(pressableState, additionalState);
46
-
47
46
  const getTokens = pressableState => validateThemeTokens(resolvePressableTokens(tokens, pressableState, additionalState), getTokensSetPropType(tokenKeys, {
48
47
  requireAll: true
49
48
  }), 'PressableCard');
50
-
51
49
  const getCardTokens = pressableState => selectTokens('Card', getTokens(pressableState));
52
-
53
50
  const getOuterBorderStyle = pressableState => {
54
51
  const {
55
52
  flex,
@@ -75,17 +72,14 @@ const PressableCardBase = /*#__PURE__*/forwardRef((_ref, ref) => {
75
72
  })
76
73
  };
77
74
  };
78
-
79
75
  const handleChange = linkProps.handleHref({
80
76
  href,
81
77
  onPress
82
78
  });
83
-
84
79
  const handleKeyDown = event => {
85
80
  // The expected keyboard shortcut for selecting a focused item is the Space key
86
81
  if ((event === null || event === void 0 ? void 0 : event.key) === ' ') handleChange(event);
87
82
  };
88
-
89
83
  return /*#__PURE__*/_jsx(Pressable, {
90
84
  ref: ref,
91
85
  href: href,
@@ -93,7 +87,8 @@ const PressableCardBase = /*#__PURE__*/forwardRef((_ref, ref) => {
93
87
  onKeyDown: handleKeyDown,
94
88
  hrefAttrs: hrefAttrs,
95
89
  style: getOuterBorderStyle,
96
- ...selectProps({ ...rest,
90
+ ...selectProps({
91
+ ...rest,
97
92
  accessibilityRole
98
93
  }),
99
94
  children: pressableState => /*#__PURE__*/_jsx(CardBase, {
@@ -103,7 +98,8 @@ const PressableCardBase = /*#__PURE__*/forwardRef((_ref, ref) => {
103
98
  });
104
99
  });
105
100
  PressableCardBase.displayName = 'PressableCardBase';
106
- PressableCardBase.propTypes = { ...selectedSystemPropTypes,
101
+ PressableCardBase.propTypes = {
102
+ ...selectedSystemPropTypes,
107
103
  children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
108
104
  tokens: getTokensSetPropType(tokenKeys, {
109
105
  requireAll: true,
@@ -32,26 +32,22 @@ const staticStyles = StyleSheet.create({
32
32
  left: 0
33
33
  }
34
34
  });
35
-
36
35
  const selectContainerStyles = width => ({
37
36
  backgroundColor: 'transparent',
38
37
  overflow: 'hidden',
39
38
  width
40
39
  });
41
-
42
40
  const selectSwipeAreaStyles = (count, width) => ({
43
41
  width: width * count,
44
42
  justifyContent: 'space-between',
45
43
  flexDirection: 'row'
46
44
  });
47
-
48
45
  const selectPreviousNextNavigationButtonStyles = (previousNextNavigationButtonWidth, previousNextNavigationPosition, spaceBetweenSlideAndPreviousNextNavigation, isFirstSlide, isLastSlide, areStylesAppliedOnPreviousButton) => {
49
46
  const styles = {
50
47
  zIndex: 1,
51
48
  position: 'absolute'
52
49
  };
53
50
  const dynamicPositionProperty = areStylesAppliedOnPreviousButton ? 'left' : 'right';
54
-
55
51
  if (isFirstSlide) {
56
52
  styles.visibility = areStylesAppliedOnPreviousButton ? 'hidden' : 'visible';
57
53
  } else if (isLastSlide) {
@@ -59,7 +55,6 @@ const selectPreviousNextNavigationButtonStyles = (previousNextNavigationButtonWi
59
55
  } else {
60
56
  styles.visibility = 'visible';
61
57
  }
62
-
63
58
  if (previousNextNavigationPosition === 'edge') {
64
59
  styles[dynamicPositionProperty] = -1 * (previousNextNavigationButtonWidth / 2);
65
60
  } else if (previousNextNavigationPosition === 'inside') {
@@ -67,11 +62,10 @@ const selectPreviousNextNavigationButtonStyles = (previousNextNavigationButtonWi
67
62
  } else if (previousNextNavigationPosition === 'outside') {
68
63
  styles[dynamicPositionProperty] = -1 * (spaceBetweenSlideAndPreviousNextNavigation + previousNextNavigationButtonWidth);
69
64
  }
70
-
71
65
  return styles;
72
66
  };
73
-
74
67
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
68
+
75
69
  /**
76
70
  * Carousel is a general-purpose content slider that can be used to render content in terms of slides.
77
71
 
@@ -126,7 +120,6 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
126
120
  - `spaceBetweenSlideAndPreviousNextNavigation` - Horizontal space between slide and previous/next navigational buttons
127
121
  - `spaceBetweenSlideAndPanelNavigation` - Vertical space between slide area and panel navigation area
128
122
  */
129
-
130
123
  const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
131
124
  let {
132
125
  tokens,
@@ -185,13 +178,13 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
185
178
  dictionary,
186
179
  copy
187
180
  });
188
- let childrenArray = unpackFragment(children); // if `Carousel` only has one `Carousel.Item`, convert this to a single-item array
189
-
181
+ let childrenArray = unpackFragment(children);
182
+ // if `Carousel` only has one `Carousel.Item`, convert this to a single-item array
190
183
  if (!Array.isArray(childrenArray)) {
191
184
  childrenArray = [childrenArray];
192
185
  }
193
-
194
- const systemProps = selectProps({ ...rest,
186
+ const systemProps = selectProps({
187
+ ...rest,
195
188
  accessibilityRole,
196
189
  accessibilityLabel,
197
190
  accessibilityValue: {
@@ -215,7 +208,6 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
215
208
  const animatedY = React.useRef(0);
216
209
  const isFirstSlide = !activeIndex;
217
210
  const isLastSlide = activeIndex + 1 >= children.length;
218
-
219
211
  const onContainerLayout = _ref2 => {
220
212
  let {
221
213
  nativeEvent: {
@@ -226,13 +218,13 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
226
218
  }
227
219
  }
228
220
  } = _ref2;
229
- return setContainerLayout(prevState => ({ ...prevState,
221
+ return setContainerLayout(prevState => ({
222
+ ...prevState,
230
223
  x,
231
224
  y,
232
225
  width
233
226
  }));
234
227
  };
235
-
236
228
  const onPreviousNextNavigationButtonLayout = _ref3 => {
237
229
  let {
238
230
  nativeEvent: {
@@ -243,7 +235,6 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
243
235
  } = _ref3;
244
236
  return setPreviousNextNavigationButtonWidth(width);
245
237
  };
246
-
247
238
  const updateOffset = React.useCallback(() => {
248
239
  animatedX.current = containerLayout.width * activeIndex * -1;
249
240
  animatedY.current = 0;
@@ -261,10 +252,8 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
261
252
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
262
253
  args[_key] = arguments[_key];
263
254
  }
264
-
265
255
  return handleAnimationEnd(toIndex, ...args);
266
256
  };
267
-
268
257
  if (reduceMotionEnabled) {
269
258
  Animated.timing(pan, {
270
259
  toValue,
@@ -272,7 +261,8 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
272
261
  useNativeDriver: false
273
262
  }).start(handleAnimationEndToIndex);
274
263
  } else {
275
- Animated.spring(pan, { ...springConfig,
264
+ Animated.spring(pan, {
265
+ ...springConfig,
276
266
  toValue,
277
267
  useNativeDriver: false
278
268
  }).start(handleAnimationEndToIndex);
@@ -286,7 +276,6 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
286
276
  };
287
277
  let skipChanges = !delta;
288
278
  let calcDelta = delta;
289
-
290
279
  if (activeIndex <= 0 && delta < 0) {
291
280
  skipChanges = true;
292
281
  calcDelta = children.length + delta;
@@ -294,14 +283,11 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
294
283
  skipChanges = true;
295
284
  calcDelta = -1 * activeIndex + delta - 1;
296
285
  }
297
-
298
286
  const index = activeIndex + calcDelta;
299
-
300
287
  if (skipChanges) {
301
288
  animate(toValue, index);
302
289
  return calcDelta;
303
290
  }
304
-
305
291
  setActiveIndex(index);
306
292
  toValue.x = containerLayout.width * -1 * calcDelta;
307
293
  animate(toValue, index);
@@ -310,7 +296,6 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
310
296
  }, [containerLayout.width, activeIndex, animate, children.length, onIndexChanged]);
311
297
  const fixOffsetAndGo = React.useCallback(delta => {
312
298
  var _firstFocusRef$curren;
313
-
314
299
  updateOffset();
315
300
  handleAnimationStart(activeIndex);
316
301
  updateIndex(delta);
@@ -324,11 +309,9 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
324
309
  if (childrenArray.length === 1) {
325
310
  return false;
326
311
  }
327
-
328
312
  if (Platform.OS === 'web') {
329
313
  return !!(viewport === 'xs' || viewport === 'sm');
330
314
  }
331
-
332
315
  return true;
333
316
  }, [viewport, childrenArray.length]);
334
317
  const panResponder = React.useMemo(() => PanResponder.create({
@@ -338,7 +321,6 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
338
321
  if (!isSwipeAllowed()) {
339
322
  return false;
340
323
  }
341
-
342
324
  handleAnimationStart(activeIndex);
343
325
  return Math.abs(gestureState.dx) > minDistanceToCapture;
344
326
  },
@@ -350,7 +332,6 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
350
332
  }),
351
333
  onPanResponderRelease: (_, gesture) => {
352
334
  const correction = gesture.moveX - gesture.x0;
353
-
354
335
  if (Math.abs(correction) < containerLayout.width * minDistanceForAction) {
355
336
  animate({
356
337
  x: 0,
@@ -395,33 +376,33 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
395
376
  const goTo = React.useCallback(function () {
396
377
  let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
397
378
  const delta = index - activeIndex;
398
-
399
379
  if (delta) {
400
380
  fixOffsetAndGo(delta);
401
381
  }
402
- }, [fixOffsetAndGo, activeIndex]); // @TODO: - these are Allium-theme variants and won't have any effect in themes that don't implement them.
382
+ }, [fixOffsetAndGo, activeIndex]);
383
+
384
+ // @TODO: - these are Allium-theme variants and won't have any effect in themes that don't implement them.
403
385
  // Normally we avoid setting variants of subcomponents, however this could be re-considered.
404
386
  // Related discussion - https://github.com/telus/universal-design-system/issues/1549
405
-
406
387
  const previousNextIconButtonVariants = {
407
388
  size: previousNextIconSize,
408
389
  raised: !(variant !== null && variant !== void 0 && variant.inverse) && true,
409
390
  inverse: variant === null || variant === void 0 ? void 0 : variant.inverse
410
391
  };
411
392
  const getCopyWithPlaceholders = React.useCallback(copyKey => {
412
- const copyText = getCopy(copyKey).replace(/%\{title\}/g, title).replace(/%\{itemLabel\}/g, itemLabel).replace(/%\{stepNumber\}/g, activeIndex + 1).replace(/%\{stepCount\}/g, childrenArray.length); // First word might be a lowercase placeholder: capitalize the first letter
393
+ const copyText = getCopy(copyKey).replace(/%\{title\}/g, title).replace(/%\{itemLabel\}/g, itemLabel).replace(/%\{stepNumber\}/g, activeIndex + 1).replace(/%\{stepCount\}/g, childrenArray.length);
413
394
 
395
+ // First word might be a lowercase placeholder: capitalize the first letter
414
396
  return `${copyText[0].toUpperCase()}${copyText.slice(1)}`;
415
397
  }, [activeIndex, childrenArray.length, itemLabel, getCopy, title]);
416
398
  const activePanelNavigation = tabs && showPanelTabs ? /*#__PURE__*/_jsx(CarouselTabsPanel, {
417
399
  items: tabs
418
400
  }) : panelNavigation;
419
401
  const isFirstFocusContainer = Boolean(refocus && !skipLinkHref);
420
-
421
402
  const containerRef = element => {
422
403
  // Apply both firstFocusRef to the container
423
- firstFocusRef.current = element; // Also apply forwarded ref if there is one (which could be a function ref)
424
-
404
+ firstFocusRef.current = element;
405
+ // Also apply forwarded ref if there is one (which could be a function ref)
425
406
  if (ref) {
426
407
  if (typeof ref === 'object') {
427
408
  // eslint-disable-next-line no-param-reassign
@@ -430,10 +411,9 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
430
411
  ref(element);
431
412
  }
432
413
  }
433
- }; // If container isn't used for focus, give it a label of title if none is passed in,
414
+ };
415
+ // If container isn't used for focus, give it a label of title if none is passed in,
434
416
  // otherwise read the current position on focus
435
-
436
-
437
417
  const containerAccessibilityLabel = systemProps.accessibilityLabel ?? isFirstFocusContainer ? `${title ? `${title} ` : ''}${getCopyWithPlaceholders('stepTrackerLabel')}` : title;
438
418
  const containerProps = {
439
419
  accessibilityLabel: containerAccessibilityLabel,
@@ -473,7 +453,8 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
473
453
  ref: firstFocusRef,
474
454
  href: skipLinkHref,
475
455
  children: getCopyWithPlaceholders('skipLink')
476
- }), !isFirstFocusContainer && /*#__PURE__*/_jsx(A11yText // Read the current slide position to screen readers on slide.
456
+ }), !isFirstFocusContainer && /*#__PURE__*/_jsx(A11yText
457
+ // Read the current slide position to screen readers on slide.
477
458
  // If it's set to refocus and doesn't have a SkipLink to focus to, focus this.
478
459
  , {
479
460
  accessibilityLiveRegion: !skipLinkHref && refocus ? undefined : 'polite',
@@ -518,20 +499,18 @@ const Carousel = /*#__PURE__*/React.forwardRef((_ref, ref) => {
518
499
  }), showPanelNavigation ? activePanelNavigation : null]
519
500
  });
520
501
  });
521
- Carousel.propTypes = { ...selectedSystemPropTypes,
502
+ Carousel.propTypes = {
503
+ ...selectedSystemPropTypes,
522
504
  tokens: getTokensPropType('Carousel'),
523
505
  variant: variantProp.propType,
524
-
525
506
  /**
526
507
  * Prop related to StepTracker Variants
527
508
  */
528
509
  stepTrackerVariant: variantProp.propType,
529
-
530
510
  /**
531
511
  * Slides to render in Carousel. Wrap individual slides in `Carousel.Item`
532
512
  */
533
513
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
534
-
535
514
  /**
536
515
  * Lowercase language-appropriate user-facing description of what each Carousel slide represents.
537
516
  * This is used when generating item labels. For example, if a carousel contains offers,
@@ -539,24 +518,20 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
539
518
  * accessible labels such as "Summer offer 1 of 3" and "Show summer offer 2 of 3".
540
519
  */
541
520
  itemLabel: PropTypes.string,
542
-
543
521
  /**
544
522
  * `inside` renders the previous and next buttons inside the slide
545
523
  * `outside` renders the previous and next buttons outside the slide
546
524
  * `edge` renders the previous and next buttons at the edge of the slide
547
525
  */
548
526
  previousNextNavigationPosition: PropTypes.oneOf(['inside', 'outside', 'edge']),
549
-
550
527
  /**
551
528
  * Defines the size of the `IconButton` which is being used to render next and previous buttons
552
529
  */
553
530
  previousNextIconSize: PropTypes.oneOf(['default', 'small', 'large']),
554
-
555
531
  /**
556
532
  * Carousel uses `Animated.spring` to animate slide changes, use this option to pass custom animation configuration
557
533
  */
558
534
  springConfig: PropTypes.object,
559
-
560
535
  /**
561
536
  * An array of objects containing information on the thumbnails to be rendered as navigation panel
562
537
  */
@@ -565,18 +540,15 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
565
540
  alt: PropTypes.string,
566
541
  src: PropTypes.string
567
542
  })),
568
-
569
543
  /**
570
544
  * Minimal part of slide width must be swiped for changing index.
571
545
  * Otherwise animation restore current slide. Default value 0.2 means that 20% must be swiped for change index
572
546
  */
573
547
  minDistanceForAction: PropTypes.number,
574
-
575
548
  /**
576
549
  * Initiate animation after swipe this distance.
577
550
  */
578
551
  minDistanceToCapture: PropTypes.number,
579
-
580
552
  /**
581
553
  * Called when active index changed
582
554
  * This function is also provided with a parameter indicating changed index (either 1, or -1)
@@ -594,20 +566,17 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
594
566
  * Caution: Always consider wrapping your callback for `onIndexChanged` in `useCallback` in order to avoid bugs and performance issues
595
567
  */
596
568
  onIndexChanged: PropTypes.func,
597
-
598
569
  /**
599
570
  * If this is a complex carousel with a lot of focusable content, pass a href for a skip link. Typically, this will be an anchor link
600
571
  * with the ID of a focusable element immediately after the Carousel, e.g. `'#section-2-heading'`.
601
572
  */
602
573
  skipLinkHref: PropTypes.string,
603
-
604
574
  /**
605
575
  * If provided, defaults the navigation panel to a CarouselTabsPanel element passing each item as props for one tab.
606
576
  *
607
577
  * Be careful to ensure that the order of each element in the items array matches the order of each child in the Carousel.
608
578
  */
609
579
  tabs: PropTypes.arrayOf(PropTypes.shape(CarouselTabsPanelItem.propTypes || {})),
610
-
611
580
  /**
612
581
  * If true, whenever a new slide comes into view, the focus of the Carousel switches to the start.
613
582
  *
@@ -616,7 +585,6 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
616
585
  * If skipLinkHref is passed, the focus target will be the SkipLink; if not, it'll be an empty element before the slide content.
617
586
  */
618
587
  refocus: PropTypes.bool,
619
-
620
588
  /**
621
589
  * Use this to render a custom panel navigation element instead of the default StepTracker's based navigation
622
590
  * You can make use of `useCarousel` within your custom panel navigation component to hook into various Carousel states such as:
@@ -632,7 +600,6 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
632
600
  * ```
633
601
  */
634
602
  panelNavigation: PropTypes.element,
635
-
636
603
  /**
637
604
  * When slide animation start
638
605
  * This function is also provided with a parameter indicating the current slide index before animation starts
@@ -650,7 +617,6 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
650
617
  * Caution: Always consider wrapping your callback for `onAnimationStart` in `useCallback` in order to avoid bugs and performance issues
651
618
  */
652
619
  onAnimationStart: PropTypes.func,
653
-
654
620
  /**
655
621
  * When slide animation end with parameter of current index (after animation ends)
656
622
  * This function is also provided with a parameter indicating the updated slide index after animation ends
@@ -668,7 +634,6 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
668
634
  * Caution: Always consider wrapping your callback for `onAnimationEnd` in `useCallback` in order to avoid bugs and performance issues
669
635
  */
670
636
  onAnimationEnd: PropTypes.func,
671
-
672
637
  /**
673
638
  * Use this to override the default text for panel navigation
674
639
  */
@@ -680,17 +645,14 @@ Carousel.propTypes = { ...selectedSystemPropTypes,
680
645
  stepTrackerLabel: PropTypes.string.isRequired
681
646
  })
682
647
  }),
683
-
684
648
  /**
685
649
  * Provide custom accessibilityRole for Carousel container
686
650
  */
687
651
  accessibilityRole: PropTypes.string,
688
-
689
652
  /**
690
653
  * Provide custom accessibilityLabel for Carousel container
691
654
  */
692
655
  accessibilityLabel: PropTypes.string,
693
-
694
656
  /**
695
657
  * HTML tag to use for the Carousel item's immediate parent. Defaults to `'ul'` so that
696
658
  * assistive technology tools know to intepret the carousel as a list.
@@ -3,7 +3,6 @@ import PropTypes from 'prop-types';
3
3
  import { getTokensPropType } from '../utils';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  const CarouselContext = /*#__PURE__*/React.createContext();
6
-
7
6
  const CarouselProvider = _ref => {
8
7
  let {
9
8
  activeIndex,
@@ -31,17 +30,13 @@ const CarouselProvider = _ref => {
31
30
  children: children
32
31
  });
33
32
  };
34
-
35
33
  function useCarousel() {
36
34
  const context = React.useContext(CarouselContext);
37
-
38
35
  if (context === undefined) {
39
36
  throw new Error(`'useCarousel' must be used within a 'CarouselProvider'`);
40
37
  }
41
-
42
38
  return context;
43
39
  }
44
-
45
40
  CarouselProvider.propTypes = {
46
41
  children: PropTypes.arrayOf(PropTypes.element).isRequired,
47
42
  activeIndex: PropTypes.number.isRequired,
@@ -4,13 +4,13 @@ import Platform from "react-native-web/dist/exports/Platform";
4
4
  import StyleSheet from "react-native-web/dist/exports/StyleSheet";
5
5
  import { PropTypes } from 'prop-types';
6
6
  import { useCarousel } from '../CarouselContext';
7
+
7
8
  /**
8
9
  * Focus target so that when a new slide is shown, the user can tab into
9
10
  * its content using the keyboard.
10
11
  *
11
12
  * @TODO rework this after integrating with SkipLink when available.
12
13
  */
13
-
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  const CarouselFirstFocus = /*#__PURE__*/forwardRef((_ref, ref) => {
16
16
  let {
@@ -18,17 +18,19 @@ const CarouselFirstFocus = /*#__PURE__*/forwardRef((_ref, ref) => {
18
18
  } = _ref;
19
19
  const {
20
20
  getCopyWithPlaceholders
21
- } = useCarousel(); // TODO: integrate skip link description if behaving as skip link.
22
- // Consider moving this content to aria-live area while only the skip link is focused.
21
+ } = useCarousel();
23
22
 
23
+ // TODO: integrate skip link description if behaving as skip link.
24
+ // Consider moving this content to aria-live area while only the skip link is focused.
24
25
  const accessibilityLabel = `${title}, ${getCopyWithPlaceholders('stepTrackerLabel')}`;
25
26
  const accessibilityRole = Platform.select({
26
27
  web: 'link',
27
28
  // The focused item will ultimately be a skip link.
28
29
  default: 'button' // 'link' role usually denotes opening browser on Native.
29
-
30
30
  });
31
- return /*#__PURE__*/_jsx(Pressable // TODO: integrate skip link functionality, jump focus to after Carousel
31
+
32
+ return /*#__PURE__*/_jsx(Pressable
33
+ // TODO: integrate skip link functionality, jump focus to after Carousel
32
34
  , {
33
35
  onPress: undefined,
34
36
  ref: ref,
@@ -6,11 +6,11 @@ import { layoutTags, getA11yPropsFromHtmlTag, selectSystemProps, a11yProps, view
6
6
  import { useCarousel } from '../CarouselContext';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
9
+
9
10
  /**
10
11
  * `Carousel.Item` is used to wrap the content of an individual slide and is suppsoed to be the
11
12
  * only top-level component passed to the `Carousel`
12
13
  */
13
-
14
14
  const CarouselItem = _ref => {
15
15
  let {
16
16
  children,
@@ -23,19 +23,18 @@ const CarouselItem = _ref => {
23
23
  width,
24
24
  activeIndex
25
25
  } = useCarousel();
26
- const selectedProps = selectProps({ ...rest,
26
+ const selectedProps = selectProps({
27
+ ...rest,
27
28
  ...getA11yPropsFromHtmlTag(tag, rest.accessibilityRole)
28
29
  });
29
30
  const focusabilityProps = activeIndex === elementIndex ? {} : a11yProps.nonFocusableProps;
30
31
  const style = {
31
32
  width
32
33
  };
33
-
34
34
  if (hidden && Platform.OS === 'web') {
35
35
  // On web, visibility: hidden makes all children non-focusable. It doesn't exist on native.
36
36
  style.visibility = 'hidden';
37
37
  }
38
-
39
38
  return /*#__PURE__*/_jsx(View, {
40
39
  style: style,
41
40
  ...selectedProps,
@@ -43,26 +42,22 @@ const CarouselItem = _ref => {
43
42
  children: children
44
43
  });
45
44
  };
46
-
47
- CarouselItem.propTypes = { ...selectedSystemPropTypes,
45
+ CarouselItem.propTypes = {
46
+ ...selectedSystemPropTypes,
48
47
  variant: variantProp.propType,
49
-
50
48
  /**
51
49
  * Index of the current slide
52
50
  * Don't pass this prop when using `Carousel.Item` as it is already being passed by `Carousel` top-level component
53
51
  */
54
52
  elementIndex: PropTypes.number,
55
-
56
53
  /**
57
54
  * Provide custom accessibilityLabelledBy for Carousel slide
58
55
  */
59
56
  accessibilityLabelledBy: PropTypes.string,
60
-
61
57
  /**
62
58
  * Content of the slide
63
59
  */
64
60
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
65
-
66
61
  /**
67
62
  * Sets the HTML tag of the outer container. By default `'li'` so that assistive technology sees
68
63
  * the Carousel as a list of items.
@@ -71,7 +66,6 @@ CarouselItem.propTypes = { ...selectedSystemPropTypes,
71
66
  * `Carousel` or `Carousel.Item` is overriden, the other should be too, to avoid producing invalid HTML.
72
67
  */
73
68
  tag: PropTypes.oneOf(layoutTags),
74
-
75
69
  /**
76
70
  * Function to set carousel content background color when slide is being display
77
71
  */
@@ -4,7 +4,6 @@ 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
-
8
7
  const CarouselStepTracker = _ref => {
9
8
  let {
10
9
  variant
@@ -47,7 +46,6 @@ const CarouselStepTracker = _ref => {
47
46
  })
48
47
  });
49
48
  };
50
-
51
49
  CarouselStepTracker.propTypes = {
52
50
  variant: variantProp.propType
53
51
  };
@@ -1,13 +1,12 @@
1
1
  var _CarouselTabs$propTyp, _CarouselTabs$propTyp2;
2
-
3
2
  import React, { forwardRef } from 'react';
4
3
  import PropTypes from 'prop-types';
5
4
  import { useResponsiveProp } from '../../utils';
6
5
  import Carousel from '../Carousel';
6
+
7
7
  /**
8
8
  * @deprecated Please use Carousel and pass the `tabs` prop.
9
9
  */
10
-
11
10
  import { jsx as _jsx } from "react/jsx-runtime";
12
11
  const CarouselTabs = /*#__PURE__*/forwardRef((_ref, ref) => {
13
12
  let {
@@ -44,8 +43,8 @@ CarouselTabs.propTypes = {
44
43
  content: PropTypes.node.isRequired
45
44
  })),
46
45
  ...Carousel.propTypes
47
- }; // CarouselTabs doesn't require `children` prop, it uses `items` instead.
46
+ };
47
+ // CarouselTabs doesn't require `children` prop, it uses `items` instead.
48
48
  // eslint-disable-next-line react/forbid-foreign-prop-types
49
-
50
49
  if ((_CarouselTabs$propTyp = CarouselTabs.propTypes) !== null && _CarouselTabs$propTyp !== void 0 && _CarouselTabs$propTyp.children) (_CarouselTabs$propTyp2 = CarouselTabs.propTypes) === null || _CarouselTabs$propTyp2 === void 0 ? true : delete _CarouselTabs$propTyp2.children;
51
50
  export default CarouselTabs;
@@ -6,11 +6,9 @@ import { useCarousel } from '../CarouselContext';
6
6
  import CarouselTabsPanelItem from './CarouselTabsPanelItem';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
-
10
9
  const selectTabPanelStyle = () => ({
11
10
  backgroundColor: 'transparent'
12
11
  });
13
-
14
12
  const CarouselTabsPanel = /*#__PURE__*/forwardRef((_ref, ref) => {
15
13
  let {
16
14
  items
@@ -22,15 +20,17 @@ const CarouselTabsPanel = /*#__PURE__*/forwardRef((_ref, ref) => {
22
20
  const nextFocusRef = useRef();
23
21
  const firstTabRef = useRef();
24
22
  const [isInverse, setIsInverse] = useState(false);
25
- const lastTabSelected = activeIndex === items.length - 1; // Get current select tab style
23
+ const lastTabSelected = activeIndex === items.length - 1;
26
24
 
25
+ // Get current select tab style
27
26
  useEffect(() => {
28
27
  const [selectedVariantIsInverse] = items.filter((_, index) => index === activeIndex);
29
28
  setIsInverse(selectedVariantIsInverse === null || selectedVariantIsInverse === void 0 ? void 0 : selectedVariantIsInverse.inverse);
30
- }, [items, activeIndex]); // TODO: figure out a better cross-brand way to specify subcomponent variants.
29
+ }, [items, activeIndex]);
30
+
31
+ // TODO: figure out a better cross-brand way to specify subcomponent variants.
31
32
  // For now, this picks an Allium variant, and does nothing in brands that lack it.
32
33
  // See similar comment in Carousel and https://github.com/telus/universal-design-system/issues/1549
33
-
34
34
  const dividerVariant = {
35
35
  decorative: true,
36
36
  inverse: isInverse
@@ -52,8 +52,9 @@ const CarouselTabsPanel = /*#__PURE__*/forwardRef((_ref, ref) => {
52
52
  ...panelItemProps
53
53
  } = _ref2;
54
54
  const selected = index === activeIndex;
55
- const isNext = index === activeIndex + 1; // Selected item should be always unfocusable and unpressable
55
+ const isNext = index === activeIndex + 1;
56
56
 
57
+ // Selected item should be always unfocusable and unpressable
57
58
  const handlePress = selected ? undefined : event => {
58
59
  if (typeof onPress === 'function') onPress(event, index);
59
60
  goTo(index);