@telus-uds/components-base 1.65.0 → 1.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/CHANGELOG.md +22 -2
  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 +5 -37
  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 +215 -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 +7 -38
  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 +106 -69
  191. package/lib/TextInput/index.js +0 -3
  192. package/lib/TextInput/propTypes.js +4 -7
  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 +11 -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 +5 -23
  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 +205 -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 +7 -25
  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 +107 -51
  416. package/lib-module/TextInput/propTypes.js +7 -6
  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 +14 -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/CheckboxCardGroup/CheckboxCardGroup.jsx +230 -0
  481. package/src/CheckboxCardGroup/index.js +3 -0
  482. package/src/Modal/Modal.jsx +98 -5
  483. package/src/Modal/ModalContent.jsx +171 -0
  484. package/src/TextInput/TextInputBase.jsx +67 -12
  485. package/src/TextInput/propTypes.js +4 -0
  486. package/src/index.js +1 -0
  487. package/src/utils/props/textInputProps.js +1 -0
@@ -4,14 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  const doAction = (action, event) => {
11
9
  var _window, _window$location;
12
-
13
10
  return typeof action === 'function' && action((_window = window) === null || _window === void 0 ? void 0 : (_window$location = _window.location) === null || _window$location === void 0 ? void 0 : _window$location.hash, event);
14
11
  };
12
+
15
13
  /**
16
14
  * @typedef {import('react').SyntheticEvent} SyntheticEvent
17
15
  */
@@ -27,27 +25,24 @@ const doAction = (action, event) => {
27
25
  * @param {(hash: string, event?: SyntheticEvent) => void} action - a function to act on the current hash on load and when it changes
28
26
  * @returns
29
27
  */
30
-
31
-
32
28
  const useHash = function (action) {
33
29
  let isReady = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
34
- const [isDone, setIsDone] = (0, _react.useState)(false); // Do the action just once when ready after component mount, from hash on page load
35
-
30
+ const [isDone, setIsDone] = (0, _react.useState)(false);
31
+ // Do the action just once when ready after component mount, from hash on page load
36
32
  const isToDo = isReady && !isDone;
37
33
  (0, _react.useEffect)(() => {
38
34
  if (isToDo) {
39
35
  setIsDone(true);
40
36
  doAction(action);
41
37
  }
42
- }, [isToDo, action]); // Bind the action for each hash change; do re-bind if the function changes.
38
+ }, [isToDo, action]);
43
39
 
40
+ // Bind the action for each hash change; do re-bind if the function changes.
44
41
  (0, _react.useEffect)(() => {
45
42
  const handleChange = event => doAction(action, event);
46
-
47
43
  window.addEventListener('hashchange', handleChange);
48
44
  return () => window.removeEventListener('hashchange', handleChange);
49
45
  }, [action]);
50
46
  };
51
-
52
47
  var _default = useHash;
53
48
  exports.default = _default;
@@ -4,12 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  /**
9
8
  * No URL hashes on Native, so do a no-op. Remembering scenes for reloads
10
9
  * is handled at OS level and deep links have completely different usage.
11
10
  */
12
11
  const useHash = () => {};
13
-
14
12
  var _default = useHash;
15
13
  exports.default = _default;
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _Dimensions = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Dimensions"));
11
-
12
9
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  const adjustHorizontalToFit = (initialOffset, windowWidth, sourceWidth) => {
17
12
  const offset = Math.max(0, initialOffset);
18
13
  const otherEdgeOverflow = Math.max(0, offset + sourceWidth - windowWidth);
@@ -23,34 +18,29 @@ const adjustHorizontalToFit = (initialOffset, windowWidth, sourceWidth) => {
23
18
  if (tooWideBy) adjusted.width = Math.max(0, sourceWidth - tooWideBy);
24
19
  return adjusted;
25
20
  };
26
-
27
21
  const getPosition = _ref => {
28
22
  let {
29
23
  edge,
30
24
  fromEdge,
31
25
  sourceSize
32
26
  } = _ref;
33
-
34
27
  switch (edge) {
35
28
  case 'near':
36
29
  return fromEdge;
37
-
38
30
  case 'mid':
39
31
  return fromEdge + sourceSize / 2;
40
-
41
32
  case 'far':
42
33
  return fromEdge + sourceSize;
43
-
44
34
  default:
45
35
  return 0;
46
36
  }
47
37
  };
48
-
49
38
  const getEdgeType = (align, alignSide) => {
50
39
  const alignTo = align[alignSide];
51
40
  const edge = ['center', 'middle'].includes(alignTo) && 'mid' || (alignSide === alignTo ? 'near' : 'far');
52
41
  return edge;
53
42
  };
43
+
54
44
  /**
55
45
  * Based on UDS's private getTooltipPosition but generalised.
56
46
  *
@@ -61,8 +51,6 @@ const getEdgeType = (align, alignSide) => {
61
51
  * before it is shown, which makes it account for the width being limiting in styles, custom font
62
52
  * rendering, etc.
63
53
  */
64
-
65
-
66
54
  function getOverlaidPosition(_ref2) {
67
55
  let {
68
56
  sourceLayout,
@@ -77,8 +65,9 @@ function getOverlaidPosition(_ref2) {
77
65
  const {
78
66
  scrollX = 0,
79
67
  scrollY = 0
80
- } = typeof window === 'object' ? window : {}; // Will have top, bottom, left and/or right offsets depending on `align`
68
+ } = typeof window === 'object' ? window : {};
81
69
 
70
+ // Will have top, bottom, left and/or right offsets depending on `align`
82
71
  const positioning = {};
83
72
  if (align.top) positioning.top = getPosition({
84
73
  edge: getEdgeType(align, 'top'),
@@ -110,20 +99,18 @@ function getOverlaidPosition(_ref2) {
110
99
  fromEdge: windowDimensions.width - (sourceLayout.x + scrollX + sourceLayout.width - (offsets.horizontal ?? 0)),
111
100
  sourceSize: sourceLayout.width
112
101
  });
113
-
114
102
  if (!(align.left && align.right)) {
115
103
  // Check if the position and/or width need adjusting to fit on the screen
116
104
  const side = align.right ? 'right' : 'left';
117
105
  const adjusted = adjustHorizontalToFit(positioning[side], windowDimensions.width, sourceLayout.width);
118
106
  if (typeof adjusted.width === 'number') positioning.width = adjusted.width;
119
-
120
107
  if (typeof adjusted.offset === 'number') {
121
108
  positioning[side] = adjusted.offset;
122
109
  }
123
110
  }
124
-
125
111
  return positioning;
126
112
  }
113
+
127
114
  /**
128
115
  * Positions an element in a modal or portal so that it appears tooltip-like below the
129
116
  * target element.
@@ -132,8 +119,6 @@ function getOverlaidPosition(_ref2) {
132
119
  * a small task because UDS's tooltip logic only really works for short text - it might be
133
120
  * better to use a third-party library).
134
121
  */
135
-
136
-
137
122
  const useOverlaidPosition = _ref3 => {
138
123
  let {
139
124
  isShown = false,
@@ -146,8 +131,9 @@ const useOverlaidPosition = _ref3 => {
146
131
  } = _ref3;
147
132
  // Element in main document flow that the targetRef element is positioned around
148
133
  const sourceRef = (0, _react.useRef)(null);
149
- const [sourceLayout, setSourceLayout] = (0, _react.useState)(null); // Element in a modal or portal overlay positioned to appear adjacent to sourceRef
134
+ const [sourceLayout, setSourceLayout] = (0, _react.useState)(null);
150
135
 
136
+ // Element in a modal or portal overlay positioned to appear adjacent to sourceRef
151
137
  const targetRef = (0, _react.useRef)(null);
152
138
  const [targetDimensions, setTargetDimensions] = (0, _react.useState)(null);
153
139
  const [windowDimensions, setWindowDimensions] = (0, _react.useState)(null);
@@ -172,7 +158,6 @@ const useOverlaidPosition = _ref3 => {
172
158
  height
173
159
  };
174
160
  }
175
-
176
161
  return previousDimensions;
177
162
  });
178
163
  }, []);
@@ -180,7 +165,6 @@ const useOverlaidPosition = _ref3 => {
180
165
  (0, _react.useEffect)(() => {
181
166
  const handleDimensionsChange = _ref5 => {
182
167
  var _sourceRef$current;
183
-
184
168
  let {
185
169
  window
186
170
  } = _ref5;
@@ -195,12 +179,9 @@ const useOverlaidPosition = _ref3 => {
195
179
  });
196
180
  });
197
181
  };
198
-
199
182
  let subscription;
200
-
201
183
  const unsubscribe = () => {
202
184
  var _subscription;
203
-
204
185
  if (typeof ((_subscription = subscription) === null || _subscription === void 0 ? void 0 : _subscription.remove) === 'function') {
205
186
  // React Native >=0.65.0
206
187
  subscription.remove();
@@ -208,11 +189,9 @@ const useOverlaidPosition = _ref3 => {
208
189
  // React Native <0.65.0
209
190
  _Dimensions.default.remove('change', handleDimensionsChange);
210
191
  }
211
-
212
192
  setSourceLayout(null);
213
193
  setTargetDimensions(null);
214
194
  };
215
-
216
195
  if (readyToShow) {
217
196
  subscription = _Dimensions.default.addEventListener('change', handleDimensionsChange);
218
197
  handleDimensionsChange({
@@ -221,7 +200,6 @@ const useOverlaidPosition = _ref3 => {
221
200
  } else {
222
201
  unsubscribe();
223
202
  }
224
-
225
203
  return unsubscribe;
226
204
  }, [readyToShow]);
227
205
  const isReady = Boolean(isShown && sourceLayout && windowDimensions && targetDimensions);
@@ -240,6 +218,5 @@ const useOverlaidPosition = _ref3 => {
240
218
  isReady
241
219
  };
242
220
  };
243
-
244
221
  var _default = useOverlaidPosition;
245
222
  exports.default = _default;
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.resolveResponsiveProp = exports.default = void 0;
7
-
8
7
  var _systemConstants = require("@telus-uds/system-constants");
9
-
10
8
  var _ViewportProvider = require("../ViewportProvider");
11
-
12
9
  var _hasOwnProperty = _interopRequireDefault(require("./hasOwnProperty"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  const hasResponsiveProperties = objectProp => _systemConstants.viewports.keys.some(key => (0, _hasOwnProperty.default)(objectProp, key));
12
+
17
13
  /**
18
14
  * Resolves a prop which may be a responsive object with keys for viewports.
19
15
  *
@@ -24,16 +20,17 @@ const hasResponsiveProperties = objectProp => _systemConstants.viewports.keys.so
24
20
  * @param {*} [defaultValue]
25
21
  * @returns {*}
26
22
  */
27
-
28
-
29
23
  const resolveResponsiveProp = (prop, viewport, defaultValue) => {
30
24
  if (prop === undefined) return defaultValue;
31
25
  if (!prop || typeof prop !== 'object' || !hasResponsiveProperties(prop)) return prop;
32
- const value = _systemConstants.viewports.keys.includes(viewport) ? // If there's a current viewport, return the closest match at or below it
33
- _systemConstants.viewports.inherit(prop)[viewport] : // If no current viewport is available, default to smallest viewport
26
+ const value = _systemConstants.viewports.keys.includes(viewport) ?
27
+ // If there's a current viewport, return the closest match at or below it
28
+ _systemConstants.viewports.inherit(prop)[viewport] :
29
+ // If no current viewport is available, default to smallest viewport
34
30
  prop[_systemConstants.viewports.keys.find(key => (0, _hasOwnProperty.default)(prop, key))];
35
31
  return value === undefined ? defaultValue : value;
36
32
  };
33
+
37
34
  /**
38
35
  * Takes any value and, if that value is a responsive prop (an object with one or more
39
36
  * keys matching system viewport names), returns the value corresponding to the largest
@@ -48,14 +45,10 @@ const resolveResponsiveProp = (prop, viewport, defaultValue) => {
48
45
  * @param {*} [defaultValue] - default value to provide if no matches found for the current viewport
49
46
  * @returns {*}
50
47
  */
51
-
52
-
53
48
  exports.resolveResponsiveProp = resolveResponsiveProp;
54
-
55
49
  const useResponsiveProp = (prop, defaultValue) => {
56
50
  const viewport = (0, _ViewportProvider.useViewport)();
57
51
  return resolveResponsiveProp(prop, viewport, defaultValue);
58
52
  };
59
-
60
53
  var _default = useResponsiveProp;
61
54
  exports.default = _default;
@@ -4,35 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _HydrationContext = require("../BaseProvider/HydrationContext");
11
-
12
9
  const isSSR = typeof window === 'undefined';
13
-
14
10
  const noop = () => {};
11
+
15
12
  /**
16
13
  * useSafeLayoutEffect is a alternative to useLayoutEffect that avoids SSR hydration problems:
17
14
  * - In a client-side render, it uses useLayoutEffect to avoid flashing the pre-render UI to the user.
18
15
  * - During hydration from SSR, the provided function is skipped to avoid mismatches from server content.
19
16
  * - In SSR, it is a no-op function to avoid warnings about using useLayoutEffect in SSR
20
17
  */
21
-
22
-
23
18
  const useSafeLayoutEffect = isSSR ? noop // avoid React's fussy warnings by ensuring to never call useLayoutEffect on server
24
19
  : function (fn) {
25
20
  let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
26
- const isHydrating = (0, _HydrationContext.useHydrationContext)(); // Callback updates and effect re-runs when deps array content changes, like useEffect.
21
+ const isHydrating = (0, _HydrationContext.useHydrationContext)();
27
22
 
23
+ // Callback updates and effect re-runs when deps array content changes, like useEffect.
28
24
  /* eslint-disable-next-line react-hooks/exhaustive-deps */
29
-
30
25
  const callback = (0, _react.useCallback)(fn, deps);
31
26
  (0, _react.useLayoutEffect)(() => {
32
27
  // Do nothing before hydrating server-generated content, like useEffect. When hydration completes,
33
28
  // useHydrationContext provides false, re-rendering this hook and re-running the effect.
34
- if (isHydrating) return noop; // If there's no hydration in progress, behave like useLayoutEffect.
35
-
29
+ if (isHydrating) return noop;
30
+ // If there's no hydration in progress, behave like useLayoutEffect.
36
31
  return callback();
37
32
  }, [isHydrating, callback]);
38
33
  };
@@ -4,26 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  const addScrollBlocking = (preventScrolling, stopPropagation, ref) => {
11
9
  var _ref$current;
12
-
13
10
  document.body.addEventListener('touchmove', preventScrolling, {
14
11
  passive: false
15
12
  });
16
13
  (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.addEventListener('touchmove', stopPropagation);
17
14
  document.body.style.overflow = 'hidden';
18
15
  };
19
-
20
16
  const removeScrollBlocking = (preventScrolling, stopPropagation, ref) => {
21
17
  var _ref$current2;
22
-
23
18
  document.body.removeEventListener('touchmove', preventScrolling);
24
19
  (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.removeEventListener('touchmove', stopPropagation);
25
20
  document.body.style.overflow = 'inherit';
26
21
  };
22
+
27
23
  /**
28
24
  * Disables scrolling when passed `true` or an array where all items are `true`.
29
25
  *
@@ -33,8 +29,6 @@ const removeScrollBlocking = (preventScrolling, stopPropagation, ref) => {
33
29
  * @param {boolean | boolean[]} conditionProps
34
30
  * @returns
35
31
  */
36
-
37
-
38
32
  const useScrollBlocking = conditionProps => {
39
33
  // useRef refs are null on first render and don't trigger a re-render when they get their
40
34
  // element. Force re-run when ref mounts to ensure the stopPropagation listener is attached.
@@ -49,18 +43,16 @@ const useScrollBlocking = conditionProps => {
49
43
  const stopPropagation = (0, _react.useCallback)(event => event.stopPropagation(), []);
50
44
  (0, _react.useEffect)(() => {
51
45
  const cleanup = () => removeScrollBlocking(preventScrolling, stopPropagation, ref);
52
-
53
46
  if (conditionsMet) {
54
47
  addScrollBlocking(preventScrolling, stopPropagation, ref);
55
48
  } else {
56
49
  cleanup();
57
50
  }
58
-
59
- return cleanup; // preventScrolling and stopPropagation are stable callbacks with no deps, so this
51
+ return cleanup;
52
+ // preventScrolling and stopPropagation are stable callbacks with no deps, so this
60
53
  // will re-run when conditionsMet or refIsMounted flip between true and false.
61
54
  }, [preventScrolling, conditionsMet, stopPropagation, refIsMounted]);
62
55
  return callbackRef;
63
56
  };
64
-
65
57
  var _default = useScrollBlocking;
66
58
  exports.default = _default;
@@ -4,8 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  // This is a no-op to emphasize that the original hook is web-only
9
8
  var _default = () => {};
10
-
11
9
  exports.default = _default;
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _ViewportProvider = require("../ViewportProvider");
9
-
10
8
  var _ThemeProvider = require("../ThemeProvider");
11
-
12
9
  var _useResponsiveProp = require("./useResponsiveProp");
13
-
14
10
  /**
15
11
  * @typedef {import('@telus-uds/system-constants/viewports').Viewport} Viewport
16
12
  * @typedef {import('./props/spacingProps.js').SpacingValue} SpacingValue
@@ -18,6 +14,7 @@ var _useResponsiveProp = require("./useResponsiveProp");
18
14
  * @typedef {import('./props/spacingProps.js').SpacingObject} SpacingObject
19
15
  * @typedef {import('./props/spacingProps.js').SpacingOptions} SpacingOptions
20
16
  */
17
+
21
18
  const resolveSpacingOptions = space => {
22
19
  if (!(space !== null && space !== void 0 && space.options)) return {};
23
20
  const {
@@ -25,7 +22,9 @@ const resolveSpacingOptions = space => {
25
22
  variant,
26
23
  subtract = 0
27
24
  } = space.options;
28
- const overridden = typeof size === 'number'; // Might need an option that adapts the size value by current user's system font scale, so that
25
+ const overridden = typeof size === 'number';
26
+
27
+ // Might need an option that adapts the size value by current user's system font scale, so that
29
28
  // meaningful spacing between items doesn't disappear on the highest a11y font scale settings.
30
29
  // https://github.com/telus/universal-design-system/issues/583
31
30
 
@@ -38,6 +37,7 @@ const resolveSpacingOptions = space => {
38
37
  subtract
39
38
  };
40
39
  };
40
+
41
41
  /**
42
42
  * Pass a {@link SpacingValue}, which is one of:
43
43
  *
@@ -107,8 +107,6 @@ const resolveSpacingOptions = space => {
107
107
  * @param {SpacingValue} [spaceValue] - a {@link SpacingIndex} number, or a {@link SpacingObject}
108
108
  * @returns {number}
109
109
  */
110
-
111
-
112
110
  const useSpacingScale = spaceValue => {
113
111
  // In future, may need to consider window height as well as width, particularly for native apps,
114
112
  // e.g. to ensure designs don't look lost on large, tall, not-so-wide portrait screens.
@@ -128,6 +126,5 @@ const useSpacingScale = spaceValue => {
128
126
  });
129
127
  return Math.max(size - subtract, 0);
130
128
  };
131
-
132
129
  var _default = useSpacingScale;
133
130
  exports.default = _default;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  let id = 0;
11
-
12
9
  function useUniqueId() {
13
10
  let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
14
11
  const [uniqueId] = (0, _react.useState)(() => {
@@ -17,6 +14,5 @@ function useUniqueId() {
17
14
  });
18
15
  return uniqueId;
19
16
  }
20
-
21
17
  var _default = useUniqueId;
22
18
  exports.default = _default;
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _hasOwnProperty = _interopRequireDefault(require("./hasOwnProperty"));
13
-
14
10
  var _jsxRuntime = require("react/jsx-runtime");
15
-
16
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
12
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
-
20
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
-
22
14
  /**
23
15
  * Higher-order component that has no effect unless an additional prop `LinkRouter` is passed.
24
16
  * This may be used to provide custom wrappers for integrations with third party libraries.
@@ -46,15 +38,15 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
46
38
  * <Link href={href} LinkRouter={LinkLinkRouter} linkRouterProps={{ to, options }}>Some link</Link>
47
39
  * <IconButton icon={SomeIcon} LinkRouter={LinkLinkRouter} linkRouterProps={{ to, options }} ref={iconRef} />
48
40
  * ```
49
- */
50
- const withLinkRouter = Component => {
41
+ */const withLinkRouter = Component => {
51
42
  const wrappedComponent = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
52
43
  let {
53
44
  LinkRouter,
54
45
  linkRouterProps,
55
46
  ...props
56
47
  } = _ref;
57
- if (!LinkRouter) return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, { ...props,
48
+ if (!LinkRouter) return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {
49
+ ...props,
58
50
  ref: ref
59
51
  });
60
52
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkRouter, {
@@ -63,23 +55,27 @@ const withLinkRouter = Component => {
63
55
  ref: ref,
64
56
  ...props
65
57
  });
66
- }); // Ensure the returned component has appropriate outer properties set:
58
+ });
67
59
 
60
+ // Ensure the returned component has appropriate outer properties set:
68
61
  /* eslint-disable-next-line react/forbid-foreign-prop-types */
69
-
70
62
  const {
71
63
  displayName,
72
64
  name,
73
65
  propTypes,
74
66
  ...otherProperties
75
- } = Component; // Apply unique component name as a displayName
67
+ } = Component;
76
68
 
77
- wrappedComponent.displayName = Component.displayName || Component.name; // Apply proptypes including wrapper props - is safely { ...undefined, ...undefined } in prod
69
+ // Apply unique component name as a displayName
70
+ wrappedComponent.displayName = Component.displayName || Component.name;
78
71
 
79
- wrappedComponent.propTypes = { ...Component.propTypes,
72
+ // Apply proptypes including wrapper props - is safely { ...undefined, ...undefined } in prod
73
+ wrappedComponent.propTypes = {
74
+ ...Component.propTypes,
80
75
  ...withLinkRouter.propTypes
81
- }; // Forward any other properties explicitly set e.g. Component.SubComponent
76
+ };
82
77
 
78
+ // Forward any other properties explicitly set e.g. Component.SubComponent
83
79
  Object.keys(otherProperties).forEach(key => {
84
80
  // Skip internal React properties from wrappedComponent's forwardRef (render, $$typeof, etc)
85
81
  if ((0, _hasOwnProperty.default)(Component, key) && !(0, _hasOwnProperty.default)(wrappedComponent, key)) {
@@ -88,7 +84,6 @@ const withLinkRouter = Component => {
88
84
  });
89
85
  return wrappedComponent;
90
86
  };
91
-
92
87
  withLinkRouter.propTypes = {
93
88
  LinkRouter: _propTypes.default.elementType,
94
89
  linkRouterProps: _propTypes.default.object
@@ -5,7 +5,6 @@ import Platform from "react-native-web/dist/exports/Platform";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  const ScreenReaderContext = /*#__PURE__*/createContext(false);
7
7
  const ReducedMotionContext = /*#__PURE__*/createContext(false);
8
-
9
8
  const A11yInfoProvider = _ref => {
10
9
  let {
11
10
  children
@@ -18,22 +17,20 @@ const A11yInfoProvider = _ref => {
18
17
  // and "...after the Jest environment has been torn down" errors, so skip them.
19
18
  return () => {};
20
19
  }
21
-
22
20
  const motionSubscription = AccessibilityInfo.addEventListener('reduceMotionChanged', setReduceMotionEnabled);
23
-
24
21
  const setInitialA11yInfo = async () => {
25
- const [initialReduceMotionEnabled, initialScreenReaderEnabled] = await Promise.all([AccessibilityInfo.isReduceMotionEnabled(), AccessibilityInfo.isScreenReaderEnabled()]); // Browsers can't detect screen readers; in RNW isScreenReaderEnabled() is always `true`
26
- // https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/exports/AccessibilityInfo/index.js#L14
22
+ const [initialReduceMotionEnabled, initialScreenReaderEnabled] = await Promise.all([AccessibilityInfo.isReduceMotionEnabled(), AccessibilityInfo.isScreenReaderEnabled()]);
27
23
 
28
- setScreenReaderEnabled(Platform.OS !== 'web' && !!initialScreenReaderEnabled); // RNW does support isReduceMotionEnabled looking for 'prefers-reduced-motion' state
24
+ // Browsers can't detect screen readers; in RNW isScreenReaderEnabled() is always `true`
25
+ // https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/exports/AccessibilityInfo/index.js#L14
26
+ setScreenReaderEnabled(Platform.OS !== 'web' && !!initialScreenReaderEnabled);
29
27
 
28
+ // RNW does support isReduceMotionEnabled looking for 'prefers-reduced-motion' state
30
29
  setReduceMotionEnabled(!!initialReduceMotionEnabled);
31
30
  };
32
-
33
31
  if (AccessibilityInfo.isReduceMotionEnabled && AccessibilityInfo.isScreenReaderEnabled) {
34
32
  setInitialA11yInfo();
35
33
  }
36
-
37
34
  return () => {
38
35
  // From react-native 0.65, AccessibilityInfo.removeEventListener is deprecated for `remove` on addEventListener return value
39
36
  if (typeof (motionSubscription === null || motionSubscription === void 0 ? void 0 : motionSubscription.remove) === 'function') {
@@ -51,7 +48,6 @@ const A11yInfoProvider = _ref => {
51
48
  })
52
49
  });
53
50
  };
54
-
55
51
  A11yInfoProvider.propTypes = {
56
52
  children: PropTypes.node.isRequired
57
53
  };
@@ -6,13 +6,13 @@ import PropTypes from 'prop-types';
6
6
  import { a11yProps, selectSystemProps, viewProps } from '../utils/props';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
9
+
9
10
  /**
10
11
  * A11yText is a zero-size invisible element that adds text to be read by screen readers.
11
12
  *
12
13
  * It should be used to add selectable screen-reader-only text to the main document flow,
13
14
  * as a sibling to blocks of text like paragraphs and interactive elements like buttons.
14
15
  */
15
-
16
16
  const A11yText = /*#__PURE__*/forwardRef((_ref, ref) => {
17
17
  let {
18
18
  text,
@@ -36,13 +36,12 @@ const A11yText = /*#__PURE__*/forwardRef((_ref, ref) => {
36
36
  });
37
37
  });
38
38
  A11yText.displayName = 'A11yText';
39
- A11yText.propTypes = { ...selectedSystemPropTypes,
40
-
39
+ A11yText.propTypes = {
40
+ ...selectedSystemPropTypes,
41
41
  /**
42
42
  * Text to be read by screen readers
43
43
  */
44
44
  text: PropTypes.string.isRequired,
45
-
46
45
  /**
47
46
  * Whether text should be rendered as a heading
48
47
  */
@@ -18,9 +18,9 @@ const bezierProps = {
18
18
  calcMode: 'spline',
19
19
  keyTimes: '0; 0.5; 1',
20
20
  keySplines: `${BEZIER.join(', ')} ; ${BEZIER.join(', ')}`
21
- }; // We're using svg rather than css here to define the animation to avoid needing to introduce css injection mechanism
21
+ };
22
+ // We're using svg rather than css here to define the animation to avoid needing to introduce css injection mechanism
22
23
  // It's possible to replicate this functionality with RNW animations, but it snags on chrome at least, see https://github.com/telus/universal-design-system/pull/477 for details.
23
-
24
24
  const Spinner = /*#__PURE__*/forwardRef((_ref, ref) => {
25
25
  let {
26
26
  size,