@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
@@ -20,6 +20,7 @@ const spaceSides = {
20
20
  row: 'right',
21
21
  column: 'bottom'
22
22
  };
23
+
23
24
  /**
24
25
  * An alternative fallback implementation of `StackWrap` that doesn't use CSS `gap`.
25
26
  *
@@ -32,7 +33,6 @@ const spaceSides = {
32
33
  * Unlike the cleaner and more side-effect-free CSS gap StackWrap implementation, this renders a Box (View)
33
34
  * between the container and the stacked children, and requires a negative margin on the container.
34
35
  */
35
-
36
36
  const StackWrapBox = /*#__PURE__*/forwardRef((_ref, ref) => {
37
37
  let {
38
38
  space = 1,
@@ -55,8 +55,9 @@ const StackWrapBox = /*#__PURE__*/forwardRef((_ref, ref) => {
55
55
  accessibilityRole,
56
56
  ...getA11yPropsFromHtmlTag(tag, accessibilityRole),
57
57
  ...rest
58
- }); // Mimic CSS `gap` using box spacing on the side after a wrapped row then offsetting it on the last row.
58
+ });
59
59
 
60
+ // Mimic CSS `gap` using box spacing on the side after a wrapped row then offsetting it on the last row.
60
61
  const gapSize = useSpacingScale(gap);
61
62
  const offsetStyle = {
62
63
  [offsetSides[direction]]: -1 * gapSize
@@ -78,28 +79,25 @@ const StackWrapBox = /*#__PURE__*/forwardRef((_ref, ref) => {
78
79
  });
79
80
  });
80
81
  StackWrapBox.displayName = 'StackWrapBox';
81
- StackWrapBox.propTypes = { ...selectedSystemPropTypes,
82
+ StackWrapBox.propTypes = {
83
+ ...selectedSystemPropTypes,
82
84
  tokens: getTokensPropType('StackView'),
83
-
84
85
  /**
85
86
  * Sets the `flexDirection` of the container
86
87
  */
87
88
  direction: responsiveProps.getTypeOptionallyByViewport(PropTypes.oneOf(['column', 'row', 'row-reverse', 'column-reverse'])),
88
-
89
89
  /**
90
90
  * The size of the space between items according to the theme's spacing scale.
91
91
  * Either a number corresponding to a position on the theme's spacing scale (1 is smallest, 2 is second smallest, etc),
92
92
  * or, a SpacingObject with viewport keys and options (see `useSpacingScale` for details).
93
93
  */
94
94
  space: spacingProps.types.spacingValue,
95
-
96
95
  /**
97
96
  * The size of the space between lines of content, according to the theme's spacing scale. By default, matches `space`.
98
97
  * Either a number corresponding to a position on the theme's spacing scale (1 is smallest, 2 is second smallest, etc),
99
98
  * or, a SpacingObject with viewport keys and options (see `useSpacingScale` for details).
100
99
  */
101
100
  gap: spacingProps.types.spacingValue,
102
-
103
101
  /**
104
102
  * Optional semantic HTML tag, to apply to the container on web. Does not change styling.
105
103
  *
@@ -107,7 +105,6 @@ StackWrapBox.propTypes = { ...selectedSystemPropTypes,
107
105
  * is not defined, the accessibilityRole will default to "heading".
108
106
  */
109
107
  tag: PropTypes.oneOf(layoutTags),
110
-
111
108
  /**
112
109
  * A StackWrap may take any children, but will have no effect if it is only passed one child or is passed children
113
110
  * wrapped in a component. If necessary, children may be wrapped in one React Fragment.
@@ -8,6 +8,7 @@ import getStackedContent from './getStackedContent';
8
8
  import { staticStyles, selectFlexStyles } from './common';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const [selectProps] = selectSystemProps([a11yProps, viewProps]);
11
+
11
12
  /**
12
13
  * The primary implementation of StackWrap.
13
14
  *
@@ -18,7 +19,6 @@ const [selectProps] = selectSystemProps([a11yProps, viewProps]);
18
19
  * - The `space` between items is the same as the `gap` between wrapped rows (this is the
19
20
  * default if `gap` prop is undefined)
20
21
  */
21
-
22
22
  const StackWrapGap = /*#__PURE__*/forwardRef((_ref, ref) => {
23
23
  let {
24
24
  space = 1,
@@ -2,6 +2,7 @@ import React, { Children, Fragment } from 'react';
2
2
  import Box from '../Box';
3
3
  import Divider from '../Divider';
4
4
  import Spacer from '../Spacer';
5
+
5
6
  /**
6
7
  * @typedef {import('react').ReactChildren} ReactChildren
7
8
  * @typedef {import('react').ReactElement} ReactElement
@@ -28,10 +29,8 @@ import Spacer from '../Spacer';
28
29
  * @param {boolean} [options.preserveFragments]
29
30
  * @returns {ReactElement[]}
30
31
  */
31
-
32
32
  import { createElement as _createElement } from "react";
33
33
  import { jsx as _jsx } from "react/jsx-runtime";
34
-
35
34
  const getStackedContent = (children, _ref) => {
36
35
  let {
37
36
  divider,
@@ -43,8 +42,9 @@ const getStackedContent = (children, _ref) => {
43
42
  const boxProps = box && typeof box === 'object' ? box : {
44
43
  space
45
44
  };
46
- const dividerProps = divider && typeof divider === 'object' ? divider : {}; // Avoid surprises if children contains comments, nulls, or is a variable wrapped as a fragment
45
+ const dividerProps = divider && typeof divider === 'object' ? divider : {};
47
46
 
47
+ // Avoid surprises if children contains comments, nulls, or is a variable wrapped as a fragment
48
48
  const topLevelChildren = preserveFragments ? children : unpackFragment(children);
49
49
  const validChildren = Children.toArray(topLevelChildren).filter(Boolean);
50
50
  const content = validChildren.reduce((newChildren, child, index) => {
@@ -53,7 +53,8 @@ const getStackedContent = (children, _ref) => {
53
53
  /*#__PURE__*/
54
54
  // If wrapped in Box, that Box needs a key.
55
55
  // If possible, use an existing content key; use an index-based key only if necessary.
56
- _createElement(Box, { ...boxProps,
56
+ _createElement(Box, {
57
+ ...boxProps,
57
58
  key: child.key || boxID,
58
59
  testID: boxID
59
60
  }, child) : child;
@@ -76,6 +77,7 @@ const getStackedContent = (children, _ref) => {
76
77
  }, []);
77
78
  return content;
78
79
  };
80
+
79
81
  /**
80
82
  * Unpacks top-level fragments, so that common compositional patterns such as the following examples
81
83
  * can be iterated as flat siblings (as if they were `<Child1 /><Child2 /><Child3 />`):
@@ -108,17 +110,15 @@ const getStackedContent = (children, _ref) => {
108
110
  * @param {ReactChildren} child
109
111
  * @returns {ReactChildren}
110
112
  */
111
-
112
-
113
113
  const unpackFragment = child => {
114
114
  var _child$props;
115
-
116
115
  // If this level is a set of top-level siblings rather than one child, check each in turn
117
- if (Children.count(child) > 1) return Children.map(child, unpackFragment); // When a fragment is found, unpack its children to the top level and check them
116
+ if (Children.count(child) > 1) return Children.map(child, unpackFragment);
118
117
 
119
- if ((child === null || child === void 0 ? void 0 : child.type) === Fragment) return unpackFragment((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children); // Stop unpacking as soon as any non-fragment child is found
118
+ // When a fragment is found, unpack its children to the top level and check them
119
+ if ((child === null || child === void 0 ? void 0 : child.type) === Fragment) return unpackFragment((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children);
120
120
 
121
+ // Stop unpacking as soon as any non-fragment child is found
121
122
  return child;
122
123
  };
123
-
124
124
  export default getStackedContent;
@@ -10,7 +10,6 @@ import { applyTextStyles, useTheme } from '../ThemeProvider';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
13
-
14
13
  const selectCompletedIconTokens = _ref => {
15
14
  let {
16
15
  completedIconColor,
@@ -21,7 +20,6 @@ const selectCompletedIconTokens = _ref => {
21
20
  color: completedIconColor
22
21
  };
23
22
  };
24
-
25
23
  const selectConnectorStyles = (_ref2, isCompleted) => {
26
24
  let {
27
25
  connectorColor,
@@ -40,7 +38,6 @@ const selectConnectorStyles = (_ref2, isCompleted) => {
40
38
  })
41
39
  };
42
40
  };
43
-
44
41
  const selectCurrentInnerStyles = _ref3 => {
45
42
  let {
46
43
  knobCurrentInnerColor,
@@ -53,7 +50,6 @@ const selectCurrentInnerStyles = _ref3 => {
53
50
  width: knobCurrentInnerSize
54
51
  };
55
52
  };
56
-
57
53
  const selectKnobStyles = (_ref4, isCompleted, isCurrent) => {
58
54
  let {
59
55
  knobBackgroundColor,
@@ -93,7 +89,6 @@ const selectKnobStyles = (_ref4, isCompleted, isCurrent) => {
93
89
  })
94
90
  };
95
91
  };
96
-
97
92
  const selectLabelContainerStyles = _ref5 => {
98
93
  let {
99
94
  labelDirection,
@@ -110,7 +105,6 @@ const selectLabelContainerStyles = _ref5 => {
110
105
  gap: labelGap
111
106
  };
112
107
  };
113
-
114
108
  const selectStepLabelStyles = (_ref6, themeOptions, isCurrent) => {
115
109
  let {
116
110
  stepLabelColor,
@@ -129,7 +123,6 @@ const selectStepLabelStyles = (_ref6, themeOptions, isCurrent) => {
129
123
  themeOptions
130
124
  });
131
125
  };
132
-
133
126
  const selectLabelStyles = (_ref7, themeOptions, isCurrent) => {
134
127
  let {
135
128
  labelColor,
@@ -149,23 +142,19 @@ const selectLabelStyles = (_ref7, themeOptions, isCurrent) => {
149
142
  themeOptions
150
143
  });
151
144
  };
152
-
153
145
  const getStepTestID = (isCompleted, isCurrent) => {
154
146
  let testID = 'StepTracker-Step';
155
-
156
147
  if (isCompleted) {
157
148
  testID += '-Completed';
158
149
  } else if (isCurrent) {
159
150
  testID += '-Current';
160
151
  }
161
-
162
152
  return testID;
163
153
  };
154
+
164
155
  /**
165
156
  * A single step of a StepTracker.
166
157
  */
167
-
168
-
169
158
  const Step = _ref8 => {
170
159
  let {
171
160
  label,
@@ -238,8 +227,8 @@ const Step = _ref8 => {
238
227
  })]
239
228
  });
240
229
  };
241
-
242
- Step.propTypes = { ...selectedSystemPropTypes,
230
+ Step.propTypes = {
231
+ ...selectedSystemPropTypes,
243
232
  label: PropTypes.string.isRequired,
244
233
  name: PropTypes.string.isRequired,
245
234
  status: PropTypes.number.isRequired,
@@ -13,7 +13,6 @@ import defaultDictionary from './dictionary';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
15
15
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
16
-
17
16
  const selectContainerStyles = _ref => {
18
17
  let {
19
18
  containerPaddingBottom,
@@ -28,7 +27,6 @@ const selectContainerStyles = _ref => {
28
27
  paddingTop: containerPaddingTop
29
28
  };
30
29
  };
31
-
32
30
  const selectStepTrackerLabelContainerStyles = _ref2 => {
33
31
  let {
34
32
  labelMarginTop
@@ -37,7 +35,6 @@ const selectStepTrackerLabelContainerStyles = _ref2 => {
37
35
  marginTop: labelMarginTop
38
36
  };
39
37
  };
40
-
41
38
  const selectStepTrackerLabelStyles = (_ref3, themeOptions) => {
42
39
  let {
43
40
  labelColor,
@@ -55,6 +52,7 @@ const selectStepTrackerLabelStyles = (_ref3, themeOptions) => {
55
52
  themeOptions
56
53
  });
57
54
  };
55
+
58
56
  /**
59
57
  * StepTracker component shows the current position in a sequence of steps.
60
58
  *
@@ -87,8 +85,6 @@ const selectStepTrackerLabelStyles = (_ref3, themeOptions) => {
87
85
  * - `accessibilityValue.text` (`aria-valuetext`): `<Current Step Label>`,
88
86
  *
89
87
  */
90
-
91
-
92
88
  const StepTracker = /*#__PURE__*/forwardRef((_ref4, ref) => {
93
89
  let {
94
90
  current = 0,
@@ -114,9 +110,7 @@ const StepTracker = /*#__PURE__*/forwardRef((_ref4, ref) => {
114
110
  copy
115
111
  });
116
112
  const stepTrackerLabel = showStepTrackerLabel ? (typeof copy === 'string' ? getCopy(textStepTrackerLabel ?? 1).stepTrackerLabel : getCopy('stepTrackerLabel')).replace('%{stepNumber}', current < steps.length ? current + 1 : steps.length).replace('%{stepCount}', steps.length).replace('%{stepLabel}', current < steps.length ? steps[current] : steps[steps.length - 1]) : '';
117
-
118
113
  const getStepLabel = index => themeTokens.showStepLabel ? (typeof copy === 'string' ? getCopy(textStepTrackerLabel ?? 1).stepLabel : getCopy('stepLabel')).replace('%{stepNumber}', index + 1) : '';
119
-
120
114
  const {
121
115
  themeOptions
122
116
  } = useTheme();
@@ -161,24 +155,23 @@ const StepTracker = /*#__PURE__*/forwardRef((_ref4, ref) => {
161
155
  })
162
156
  });
163
157
  });
164
- StepTracker.displayName = 'StepTracker'; // If a language dictionary entry is provided, it must contain every key
158
+ StepTracker.displayName = 'StepTracker';
165
159
 
160
+ // If a language dictionary entry is provided, it must contain every key
166
161
  const dictionaryContentShape = PropTypes.shape({
167
162
  stepLabel: PropTypes.string.isRequired,
168
163
  stepTrackerLabel: PropTypes.string.isRequired
169
164
  });
170
- StepTracker.propTypes = { ...selectedSystemPropTypes,
171
-
165
+ StepTracker.propTypes = {
166
+ ...selectedSystemPropTypes,
172
167
  /**
173
168
  * The current step, 0-based number
174
169
  */
175
170
  current: PropTypes.number,
176
-
177
171
  /**
178
172
  * The language to use for the labels
179
173
  */
180
174
  copy: PropTypes.oneOfType([PropTypes.oneOf(['en', 'fr']), dictionaryContentShape]),
181
-
182
175
  /**
183
176
  * Custom dictionary containing the labels to use for the steps
184
177
  */
@@ -186,7 +179,6 @@ StepTracker.propTypes = { ...selectedSystemPropTypes,
186
179
  en: dictionaryContentShape,
187
180
  fr: dictionaryContentShape
188
181
  }),
189
-
190
182
  /**
191
183
  * An array of strings defining the step titles
192
184
  */
@@ -14,20 +14,16 @@ const {
14
14
  selectHorizontalScrollTokens,
15
15
  useItemPositions
16
16
  } = horizontalScrollUtils;
17
-
18
17
  const getDefaultTabItemAccessibilityRole = parentRole => {
19
18
  switch (parentRole) {
20
19
  case 'tablist':
21
20
  return 'tab';
22
-
23
21
  case 'navigation':
24
22
  return 'link';
25
-
26
23
  default:
27
24
  return undefined;
28
25
  }
29
26
  };
30
-
31
27
  const getStackViewTokens = variant => {
32
28
  const equalWidth = variant === null || variant === void 0 ? void 0 : variant.equalWidth;
33
29
  return Platform.select({
@@ -38,6 +34,7 @@ const getStackViewTokens = variant => {
38
34
  default: {}
39
35
  });
40
36
  };
37
+
41
38
  /**
42
39
  * Tabs renders a horizontally-scrolling menu of selectable buttons which may link
43
40
  * to a page or control what content is displayed on this page.
@@ -46,8 +43,6 @@ const getStackViewTokens = variant => {
46
43
  * `navigation`as the `accessibilityRole` to te Tabs component, this will cause
47
44
  * TabItems to default to a role of link and obtain aria-current behaviour.
48
45
  */
49
-
50
-
51
46
  const Tabs = /*#__PURE__*/forwardRef((_ref, ref) => {
52
47
  let {
53
48
  tokens,
@@ -115,12 +110,10 @@ const Tabs = /*#__PURE__*/forwardRef((_ref, ref) => {
115
110
  } = _ref3;
116
111
  const itemId = id ?? label;
117
112
  const isSelected = Boolean(currentValue && currentValue === itemId);
118
-
119
113
  const handlePress = event => {
120
114
  if (typeof onPress === 'function') onPress(event);
121
115
  setValue(itemId, event);
122
116
  };
123
-
124
117
  const itemProps = selectItemProps(itemRest);
125
118
  return /*#__PURE__*/_jsx(TabsItem, {
126
119
  ref: itemRef,
@@ -134,7 +127,8 @@ const Tabs = /*#__PURE__*/forwardRef((_ref, ref) => {
134
127
  index: index,
135
128
  accessibilityRole: accessibilityRole,
136
129
  LinkRouter: ItemLinkRouter,
137
- linkRouterProps: { ...linkRouterProps,
130
+ linkRouterProps: {
131
+ ...linkRouterProps,
138
132
  ...itemLinkRouterProps
139
133
  },
140
134
  ...itemProps,
@@ -145,37 +139,34 @@ const Tabs = /*#__PURE__*/forwardRef((_ref, ref) => {
145
139
  });
146
140
  });
147
141
  Tabs.displayName = 'Tabs';
148
- Tabs.propTypes = { ...selectedSystemPropTypes,
142
+ Tabs.propTypes = {
143
+ ...selectedSystemPropTypes,
149
144
  ...withLinkRouter.PropTypes,
150
-
151
145
  /**
152
146
  * Array of `TabsItem`s
153
147
  */
154
- items: PropTypes.arrayOf(PropTypes.shape({ ...selectedItemPropTypes,
148
+ items: PropTypes.arrayOf(PropTypes.shape({
149
+ ...selectedItemPropTypes,
155
150
  ...withLinkRouter.PropTypes,
156
151
  href: PropTypes.string,
157
152
  label: PropTypes.string,
158
153
  id: PropTypes.string,
159
154
  ref: ABBPropTypes.ref()
160
155
  })),
161
-
162
156
  /**
163
157
  * `id` property of the current tab in the items array
164
158
  */
165
159
  value: PropTypes.string,
166
160
  initialValue: PropTypes.string,
167
-
168
161
  /**
169
162
  * Callback for when the selected tab changes
170
163
  */
171
164
  onChange: PropTypes.func,
172
165
  tokens: getTokensPropType('Tabs'),
173
-
174
166
  /**
175
167
  * Custom tokens for `TabsItem`
176
168
  */
177
169
  itemTokens: getTokensPropType('TabsItem'),
178
-
179
170
  /**
180
171
  * Custom tokens for `HorizontalScrollButton`
181
172
  */
@@ -16,7 +16,6 @@ const {
16
16
  itemPositionsPropType,
17
17
  getItemPositionLayoutHandler
18
18
  } = horizontalScrollUtils;
19
-
20
19
  const selectHighlightBarStyles = _ref => {
21
20
  let {
22
21
  highlightColor,
@@ -36,7 +35,6 @@ const selectHighlightBarStyles = _ref => {
36
35
  zIndex: 1 + highlightBarBorderWidth
37
36
  };
38
37
  };
39
-
40
38
  const selectHighlightTriangleStyles = _ref2 => {
41
39
  let {
42
40
  highlightColor,
@@ -57,7 +55,6 @@ const selectHighlightTriangleStyles = _ref2 => {
57
55
  }
58
56
  };
59
57
  };
60
-
61
58
  const selectContainerStyles = _ref3 => {
62
59
  let {
63
60
  backgroundColor,
@@ -76,14 +73,13 @@ const selectContainerStyles = _ref3 => {
76
73
  paddingVertical: paddingVertical - borderWidth
77
74
  };
78
75
  };
76
+
79
77
  /**
80
78
  * Item within a Tabs component representing one tab of content. May be rendered as a link
81
79
  * or as a "menuitem" button depending on whether 'href' is passed.
82
80
  *
83
81
  * This is rendered automatically by `Tabs` and isn't intended be used directly.
84
82
  */
85
-
86
-
87
83
  const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
88
84
  let {
89
85
  href,
@@ -110,11 +106,9 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
110
106
  themeOptions
111
107
  } = useTheme();
112
108
  const getTokens = useThemeTokensCallback('TabsItem', tokens, variant);
113
-
114
109
  const resolveTokens = pressableState => resolvePressableTokens(getTokens, pressableState, {
115
110
  selected
116
111
  });
117
-
118
112
  const getPressableStyle = pressableState => {
119
113
  const {
120
114
  maxWidth
@@ -125,9 +119,9 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
125
119
  outline: 'none'
126
120
  }];
127
121
  };
122
+ const handleLayout = getItemPositionLayoutHandler(itemPositions.positions, index);
128
123
 
129
- const handleLayout = getItemPositionLayoutHandler(itemPositions.positions, index); // On press, update the selection, call any press handler, and open any href in platform-appropriate way
130
-
124
+ // On press, update the selection, call any press handler, and open any href in platform-appropriate way
131
125
  const openHref = href && linkProps.handleHref({
132
126
  href
133
127
  });
@@ -146,14 +140,15 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
146
140
  if (selected) {
147
141
  const position = itemPositions.positions[index];
148
142
  const scrollEnd = itemPositions.scrollOffset + itemPositions.containerWidth;
149
-
150
- if ( // is off the right edge, or
151
- scrollEnd && (position === null || position === void 0 ? void 0 : position.end) > scrollEnd || // is off the left edge
143
+ if (
144
+ // is off the right edge, or
145
+ scrollEnd && (position === null || position === void 0 ? void 0 : position.end) > scrollEnd ||
146
+ // is off the left edge
152
147
  typeof (position === null || position === void 0 ? void 0 : position.start) === 'number' && position.start < itemPositions.scrollOffset) {
153
148
  itemPositions.scrollTo(position.start);
154
149
  }
155
- } // itemPositions is a ref object so this should only re-run when `selected` (or `index`) change
156
-
150
+ }
151
+ // itemPositions is a ref object so this should only re-run when `selected` (or `index`) change
157
152
  }, [selected, index, itemPositions]);
158
153
  return /*#__PURE__*/_jsx(Pressable, {
159
154
  ref: ref,
@@ -174,7 +169,8 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
174
169
  const hasHighlightTriangle = Boolean(themeTokens.highlightTriangleSize);
175
170
  const highlightTriangleStyle = hasHighlightTriangle && selectHighlightTriangleStyles(themeTokens);
176
171
  const containerStyles = selectContainerStyles(themeTokens);
177
- const textStyles = applyTextStyles({ ...selectTokens('Typography', themeTokens),
172
+ const textStyles = applyTextStyles({
173
+ ...selectTokens('Typography', themeTokens),
178
174
  themeOptions,
179
175
  textAlign
180
176
  });
@@ -201,7 +197,8 @@ const TabsItem = /*#__PURE__*/forwardRef((_ref4, ref) => {
201
197
  });
202
198
  });
203
199
  TabsItem.displayName = 'TabsItem';
204
- TabsItem.propTypes = { ...selectedSystemPropTypes,
200
+ TabsItem.propTypes = {
201
+ ...selectedSystemPropTypes,
205
202
  tokens: getTokensPropType('TabsItem'),
206
203
  variant: variantProp.propType,
207
204
  onPress: PropTypes.func,
@@ -14,7 +14,6 @@ import { getPressHandlersWithArgs } from '../utils/pressability';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
16
16
  const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, pressProps, viewProps]);
17
-
18
17
  const separateIconTextTokens = (_ref, returnRest) => {
19
18
  let {
20
19
  icon,
@@ -54,11 +53,8 @@ const separateIconTextTokens = (_ref, returnRest) => {
54
53
  }
55
54
  };
56
55
  };
57
-
58
56
  const selectIconTextTokens = tokens => separateIconTextTokens(tokens, false);
59
-
60
57
  const selectNonIconTextTokens = tokens => separateIconTextTokens(tokens, true);
61
-
62
58
  const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
63
59
  let {
64
60
  variant,
@@ -86,10 +82,9 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
86
82
  space
87
83
  } = themeTokens;
88
84
  const getItemTokens = useThemeTokensCallback('TagsItem', tokens, variant);
89
-
90
- const getButtonTokens = buttonState => // Remove icon-text-related tokens, since we want to handle them ourselves, not use ButtonBase's handling
85
+ const getButtonTokens = buttonState =>
86
+ // Remove icon-text-related tokens, since we want to handle them ourselves, not use ButtonBase's handling
91
87
  selectTokens('Button', selectNonIconTextTokens(getItemTokens(buttonState)));
92
-
93
88
  const {
94
89
  currentValues,
95
90
  toggleOneValue
@@ -106,11 +101,9 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
106
101
  });
107
102
  const itemA11yRole = 'checkbox';
108
103
  const uniqueFields = ['id', 'label'];
109
-
110
104
  if (!containUniqueFields(items, uniqueFields)) {
111
105
  throw new Error(`Tags items must have unique ${uniqueFields.join(', ')}`);
112
106
  }
113
-
114
107
  return /*#__PURE__*/_jsx(StackWrap, {
115
108
  ref: ref,
116
109
  ...selectedProps,
@@ -124,19 +117,18 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
124
117
  ref: itemRef,
125
118
  ...itemRest
126
119
  } = _ref3;
127
- const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
120
+ const isSelected = currentValues.includes(id);
128
121
 
122
+ // Pass an object of relevant component state as first argument for any passed-in press handlers
129
123
  const pressHandlers = getPressHandlersWithArgs(rest, [{
130
124
  id,
131
125
  label,
132
126
  currentValues
133
127
  }]);
134
-
135
128
  const handlePress = event => {
136
129
  if (pressHandlers.onPress) pressHandlers.onPress(event);
137
130
  toggleOneValue(id, event);
138
131
  };
139
-
140
132
  const itemProps = selectItemProps({
141
133
  accessibilityState: {
142
134
  checked: isSelected
@@ -163,6 +155,7 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
163
155
  // - Icon: https://github.com/telus/universal-design-system/issues/327
164
156
  // - IconButton: https://github.com/telus/universal-design-system/issues/281
165
157
  // - Token sets: https://github.com/telus/universal-design-system/issues/782
158
+
166
159
  const itemTokens = getItemTokens(buttonState);
167
160
  const {
168
161
  iconTokens,
@@ -178,12 +171,10 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
178
171
  tokens: iconTokens
179
172
  })
180
173
  }) : null;
181
-
182
174
  const textContent = /*#__PURE__*/_jsx(Text, {
183
175
  style: textStyles,
184
176
  children: label
185
177
  });
186
-
187
178
  return getStackedContent(iconPosition === 'left' ? [iconContent, textContent] : [textContent, iconContent], {
188
179
  space: iconSpace,
189
180
  direction: 'row'
@@ -194,51 +185,45 @@ const Tags = /*#__PURE__*/forwardRef((_ref2, ref) => {
194
185
  });
195
186
  });
196
187
  Tags.displayName = 'Tags';
197
- Tags.propTypes = { ...selectedSystemPropTypes,
188
+ Tags.propTypes = {
189
+ ...selectedSystemPropTypes,
198
190
  tokens: getTokensPropType('Tags'),
199
191
  variant: variantProp.propType,
200
-
201
192
  /**
202
193
  * If provided, sets a maximum number of items a user may select at once.
203
194
  */
204
195
  maxValues: PropTypes.number,
205
-
206
196
  /**
207
197
  * The options a user may select
208
198
  */
209
- items: PropTypes.arrayOf(PropTypes.shape({ ...selectedItemPropTypes,
210
-
199
+ items: PropTypes.arrayOf(PropTypes.shape({
200
+ ...selectedItemPropTypes,
211
201
  /**
212
202
  * The text displayed to the user in the button, describing this option,
213
203
  * passed to the button as its child.
214
204
  */
215
205
  label: PropTypes.string.isRequired,
216
-
217
206
  /**
218
207
  * An optional accessibility label may be passed to ButtonGroup Buttons
219
208
  * which is applied as normal for a React Native accessibilityLabel prop.
220
209
  */
221
210
  accessibilityLabel: PropTypes.string,
222
-
223
211
  /**
224
212
  * An optional unique string may be provided to identify this option,
225
213
  * which will be used in code and passed to any onChange function.
226
214
  * If not provided, the label is used.
227
215
  */
228
216
  id: PropTypes.string,
229
-
230
217
  /**
231
218
  * An optional ref for one individual Tag button in the tags
232
219
  */
233
220
  ref: ABBPropTypes.ref()
234
221
  })),
235
-
236
222
  /**
237
223
  * If provided, this function is called when the current selection is changed
238
224
  * and is passed an array of the `id`s of all currently selected `items`.
239
225
  */
240
226
  onChange: PropTypes.func,
241
-
242
227
  /**
243
228
  * If the selected item(s) in the button group are to be controlled externally by
244
229
  * a parent component, pass an array of strings as well as an `onChange` handler.
@@ -246,14 +231,12 @@ Tags.propTypes = { ...selectedSystemPropTypes,
246
231
  * expects its state to be handled via `onChange` and so doesn't handle it itself.
247
232
  */
248
233
  values: PropTypes.arrayOf(PropTypes.string),
249
-
250
234
  /**
251
235
  * If `values` is not passed, making the ButtonGroup an "uncontrolled" component
252
236
  * managing its own selected state, a default set of selections may be provided.
253
237
  * Changing the `initialValues` does not change the user's selections.
254
238
  */
255
239
  initialValues: PropTypes.arrayOf(PropTypes.string),
256
-
257
240
  /**
258
241
  * AccesibilityRole for the Tags
259
242
  */