@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
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
-
10
8
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
11
-
12
9
  var _getPropSelector = _interopRequireDefault(require("./getPropSelector"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  // These are the props accepted specifically on React Native (Web) `Text` elements.
17
12
  // They are generally concerned with the behaviour of multiline text.
18
13
  const crossPlatform = {
@@ -21,17 +16,16 @@ const crossPlatform = {
21
16
  * On native, ellipsis behaviour may be changed with `ellipsizeMode` prop.
22
17
  */
23
18
  numberOfLines: _propTypes.default.number,
24
-
25
19
  /**
26
20
  * Default is true on web and false on native
27
21
  */
28
22
  selectable: _propTypes.default.bool
29
23
  };
24
+
30
25
  /**
31
26
  * See React Native docs for latest details on these.
32
27
  * https://reactnative.dev/docs/text
33
28
  */
34
-
35
29
  const nativeOnly = {
36
30
  ellipsizeMode: _propTypes.default.string,
37
31
  maxFontSizeMultiplier: _propTypes.default.number,
@@ -40,10 +34,10 @@ const nativeOnly = {
40
34
  suppressHighlighting: _propTypes.default.bool,
41
35
  textBreakStrategy: _propTypes.default.string
42
36
  };
37
+
43
38
  /**
44
39
  * These set HTML attributes of the same name.
45
40
  */
46
-
47
41
  const webOnly = {
48
42
  dir: _propTypes.default.oneOf(['auto', 'ltr', 'rtl']),
49
43
  lang: _propTypes.default.string
@@ -53,16 +47,17 @@ var _default = {
53
47
  * Set of prop types specific to React Native and React Native Web `Text`,
54
48
  * which largely revolve around the behaviour of multiline non-pressable text.
55
49
  */
56
- types: { ...crossPlatform,
50
+ types: {
51
+ ...crossPlatform,
57
52
  ...webOnly,
58
53
  ...nativeOnly
59
54
  },
60
-
61
55
  /**
62
56
  * Filters a props object, returning only props specific to `Text` elements
63
57
  * on the current platform. Does not include props applicable to `Text` and `View`.
64
58
  */
65
- select: (0, _getPropSelector.default)({ ...crossPlatform,
59
+ select: (0, _getPropSelector.default)({
60
+ ...crossPlatform,
66
61
  ..._Platform.default.select({
67
62
  web: webOnly,
68
63
  default: nativeOnly
@@ -4,29 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectTokens = exports.getTokensSetPropType = exports.getTokensPropType = exports.getTokenNames = void 0;
7
-
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
-
10
8
  var _systemThemeTokens = require("@telus-uds/system-theme-tokens");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Tokens can be primitive values (e.g. `'rgba(0,0,0,0'`, `12`), or objects of such values,
15
11
  // such as tokens that describe shadow (e.g. shadow: { inset: true, color: 'rgba(...)' ... }),
16
12
  // or components (e.g. Icon tokens)
17
13
  const tokenValue = _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool, _propTypes.default.elementType]);
18
-
19
14
  const tokenValueType = _propTypes.default.oneOfType([tokenValue, _propTypes.default.objectOf(tokenValue)]);
20
-
21
15
  const getTokenNames = componentName => {
22
16
  const componentTokenSchema = _systemThemeTokens.components[componentName];
23
-
24
17
  if (!componentTokenSchema) {
25
18
  throw new Error(`No "${componentName}" tokenKeys in @telus-uds/system-theme-tokens`);
26
19
  }
27
-
28
20
  return Object.keys(componentTokenSchema);
29
21
  };
22
+
30
23
  /**
31
24
  * Returns the subset of a set of tokens that may be accepted by the `tokens` prop of a named component
32
25
  * or by a provided array of tokens. A prefix may be provided, for example:
@@ -56,28 +49,26 @@ const getTokenNames = componentName => {
56
49
  * @param {string} [prefix] - if provided, matches keys in the source object with this as the first camelCase item
57
50
  * @returns {object} - subset of theme tokens
58
51
  */
59
-
60
-
61
52
  exports.getTokenNames = getTokenNames;
62
-
63
53
  const selectTokens = (specifier, tokens, prefix) => {
64
54
  const tokenNames = typeof specifier === 'string' ? getTokenNames(specifier) : specifier;
65
55
  const filteredTokens = tokenNames.reduce((validTokens, key) => {
66
56
  const prefixedKey = prefix ? `${prefix}${key[0].toUpperCase()}${key.slice(1)}` : key;
67
57
  const token = tokens[prefixedKey];
68
- return token !== undefined ? { ...validTokens,
58
+ return token !== undefined ? {
59
+ ...validTokens,
69
60
  [key]: token
70
61
  } : validTokens;
71
62
  }, {});
72
63
  return filteredTokens;
73
64
  };
65
+
74
66
  /**
75
67
  * @typedef {string|number|boolean|{[key: string]:string|number|boolean}} TokenValue
76
68
  * @typedef {{[key: string]: TokenValue}} TokensSet
77
69
  * @typedef {(AppearanceSet) => TokensSet} TokensGetter
78
70
  * @typedef {TokensSet|TokensGetter} TokensProp
79
71
  */
80
-
81
72
  /**
82
73
  * 'tokens' is an optional object prop on all themable components. Its keys must match the
83
74
  * token keys in the component's theme schema.
@@ -99,20 +90,15 @@ const selectTokens = (specifier, tokens, prefix) => {
99
90
  * tokens: getTokensPropType('Component1', 'Component2')
100
91
  * }
101
92
  */
102
-
103
-
104
93
  exports.selectTokens = selectTokens;
105
-
106
94
  const getTokensPropType = function () {
107
95
  for (var _len = arguments.length, componentsNames = new Array(_len), _key = 0; _key < _len; _key++) {
108
96
  componentsNames[_key] = arguments[_key];
109
97
  }
110
-
111
98
  return (props, propName, componentName) => {
112
99
  _propTypes.default.checkPropTypes({
113
100
  [propName]: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func])
114
101
  }, props, propName, componentName);
115
-
116
102
  if (typeof props[propName] !== 'function') {
117
103
  _propTypes.default.checkPropTypes({
118
104
  [propName]: _propTypes.default.exact(Object.fromEntries(componentsNames.flatMap(component => getTokenNames(component).map(key => [key, tokenValueType]))))
@@ -120,6 +106,7 @@ const getTokensPropType = function () {
120
106
  }
121
107
  };
122
108
  };
109
+
123
110
  /**
124
111
  * Get a proptypes validator for a set of tokens that is not based on a component in the theme schema.
125
112
  *
@@ -134,26 +121,20 @@ const getTokensPropType = function () {
134
121
  * @param {boolean} [options.allowFunction] - if true, allows functions as well as tokens objects
135
122
  * @returns
136
123
  */
137
-
138
-
139
124
  exports.getTokensPropType = getTokensPropType;
140
-
141
125
  const getTokensSetPropType = function (componentTokenKeys) {
142
126
  let {
143
127
  partial = false,
144
128
  allowFunction = false
145
129
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
146
-
147
- const tokensObjectValidator = _propTypes.default.exact(Object.fromEntries(componentTokenKeys.map(key => [key, partial ? tokenValueType : // Some theme tokens can validly resolve to `null`, but .isRequired treats null as undefined
130
+ const tokensObjectValidator = _propTypes.default.exact(Object.fromEntries(componentTokenKeys.map(key => [key, partial ? tokenValueType :
131
+ // Some theme tokens can validly resolve to `null`, but .isRequired treats null as undefined
148
132
  function (props, propName) {
149
133
  for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
150
134
  args[_key2 - 2] = arguments[_key2];
151
135
  }
152
-
153
136
  return props[propName] !== null && tokenValueType.isRequired(props, propName, ...args);
154
137
  }])));
155
-
156
138
  return allowFunction ? _propTypes.default.oneOfType([tokensObjectValidator, _propTypes.default.func]) : tokensObjectValidator;
157
139
  };
158
-
159
140
  exports.getTokensSetPropType = getTokensSetPropType;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  /**
13
10
  * @typedef {{[key: string]: string|number|boolean}} AppearanceSet
14
11
  * @typedef {AppearanceSet} VariantProp
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
-
10
8
  var _getPropSelector = _interopRequireDefault(require("./getPropSelector"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  const viewPropTypes = {
15
11
  pointerEvents: _propTypes.default.oneOf(['all', 'none', 'box-only', 'box-none']),
16
12
  onLayout: _propTypes.default.func,
@@ -24,7 +20,6 @@ var _default = {
24
20
  * that renders a single View.
25
21
  */
26
22
  types: viewPropTypes,
27
-
28
23
  /**
29
24
  * Filters a props object, returning only cross-platform View props that are potentially
30
25
  * relevant to any basic layout component that renders one View.
package/lib/utils/ssr.js CHANGED
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ssrStyles = exports.getSSRStyles = exports.getReactNativeWebSSRStyles = exports.default = void 0;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _AppRegistry = _interopRequireDefault(require("react-native-web/dist/cjs/exports/AppRegistry"));
11
-
12
9
  var _jsxRuntime = require("react/jsx-runtime");
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  /** @typedef {import('react').ComponentType} ReactComponent */
17
-
18
12
  /** @typedef {import('react').ReactElement} ReactElement */
19
13
 
20
14
  /**
@@ -59,10 +53,8 @@ const ssrStyles = function () {
59
53
  renderedByRNW = false,
60
54
  WrapperComponent
61
55
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
62
-
63
- _AppRegistry.default.registerComponent(appName, () => App); // AppRegistry.getApplication renders the app in a container, and collects styles.
64
-
65
-
56
+ _AppRegistry.default.registerComponent(appName, () => App);
57
+ // AppRegistry.getApplication renders the app in a container, and collects styles.
66
58
  const {
67
59
  element,
68
60
  getStyleElement
@@ -70,34 +62,32 @@ const ssrStyles = function () {
70
62
  WrapperComponent,
71
63
  initialProps: props
72
64
  });
73
-
74
- let renderedApp = // React Native Web's AppRegistry.getApplication assumes the app is rendered using
65
+ let renderedApp =
66
+ // React Native Web's AppRegistry.getApplication assumes the app is rendered using
75
67
  // AppRegistry.runApplication and wraps it in <AppContainer>, which wraps the entire app
76
68
  // in two outer containers resembling <View style={{ flex: 1 }} pointerEvents="box-none">.
77
69
  // So, use that IF user says AppRegistry.runApplication will do the client-side render.
78
- renderedByRNW && element || // If the live app is not rendered using AppRegistry.runApplication, we need to
70
+ renderedByRNW && element ||
71
+ // If the live app is not rendered using AppRegistry.runApplication, we need to
79
72
  // re-render it without the <AppContainer> wrapper, to avoid SSR mismatch errors.
80
73
  // Default to this as many platforms (e.g. NextJS) will use their own renderers.
81
74
  WrapperComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(WrapperComponent, {
82
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, { ...props
75
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
76
+ ...props
83
77
  })
84
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(App, { ...props
78
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
79
+ ...props
85
80
  });
86
-
87
81
  const getRNWStyle = () => getStyleElement({
88
82
  key: 'react-native-stylesheet'
89
83
  });
90
-
91
84
  styleGetters.push(getRNWStyle);
92
-
93
85
  if (typeof collectStyles === 'function') {
94
86
  renderedApp = collectStyles(renderedApp);
95
87
  }
96
-
97
88
  hasAppRendered = true;
98
89
  return renderedApp;
99
90
  },
100
-
101
91
  /**
102
92
  * Turns styles collected during renderApp into an array of React elements of
103
93
  * HTML <style> tags ready for insertion into the SSR HTML's <head>.
@@ -109,16 +99,13 @@ const ssrStyles = function () {
109
99
  */
110
100
  getStyles: function () {
111
101
  if (!hasAppRendered) throw new Error('Called getStyles before renderApp in ssrStyles');
112
-
113
102
  for (var _len = arguments.length, existingStyles = new Array(_len), _key = 0; _key < _len; _key++) {
114
103
  existingStyles[_key] = arguments[_key];
115
104
  }
116
-
117
105
  return [...existingStyles, ...styleGetters.flatMap(getter => getter())];
118
106
  }
119
107
  };
120
108
  };
121
-
122
109
  exports.ssrStyles = ssrStyles;
123
110
  var _default = ssrStyles;
124
111
  /**
@@ -131,20 +118,16 @@ var _default = ssrStyles;
131
118
  * @param {string} [appName]
132
119
  * @returns {ReactElement[]}
133
120
  */
134
-
135
121
  exports.default = _default;
136
-
137
122
  const getReactNativeWebSSRStyles = function (AppRoot) {
138
123
  let appName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'app';
139
-
140
124
  _AppRegistry.default.registerComponent(appName, () => AppRoot);
141
-
142
125
  const {
143
126
  getStyleElement
144
127
  } = _AppRegistry.default.getApplication(appName);
145
-
146
128
  return [getStyleElement()];
147
129
  };
130
+
148
131
  /**
149
132
  * @deprecated - use ssrStyles instead
150
133
  *
@@ -156,15 +139,12 @@ const getReactNativeWebSSRStyles = function (AppRoot) {
156
139
  * @param {ReactElement[]} [existingStyles]
157
140
  * @returns {ReactElement[]}
158
141
  */
159
-
160
-
161
142
  exports.getReactNativeWebSSRStyles = getReactNativeWebSSRStyles;
162
-
163
143
  const getSSRStyles = function (AppRoot) {
164
144
  let appName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'app';
165
145
  let existingStyles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
166
- return [...existingStyles, ...getReactNativeWebSSRStyles(AppRoot, appName) // if any other CSS-in-JS is added e.g. styled-components generate and add its styles here
146
+ return [...existingStyles, ...getReactNativeWebSSRStyles(AppRoot, appName)
147
+ // if any other CSS-in-JS is added e.g. styled-components generate and add its styles here
167
148
  ];
168
149
  };
169
-
170
150
  exports.getSSRStyles = getSSRStyles;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.DEFAULT_COPY = void 0;
7
7
  const DEFAULT_COPY = 'en';
8
+
8
9
  /**
9
10
  * Extract translations from a keyed dictionary for a given language.
10
11
  * Returns a getter.
@@ -32,22 +33,18 @@ const DEFAULT_COPY = 'en';
32
33
  * @param {'en'|'fr'|object} copy - language
33
34
  * @return {function(string): string}
34
35
  */
35
-
36
36
  exports.DEFAULT_COPY = DEFAULT_COPY;
37
-
38
37
  function useCopy(_ref) {
39
38
  let {
40
39
  dictionary,
41
40
  copy = DEFAULT_COPY
42
41
  } = _ref;
43
-
44
42
  if (typeof copy === 'string') {
45
43
  return key => key ? dictionary[copy][key] : dictionary[copy];
46
- } // support overriding the entire copy dictionary with an object for a single language
47
-
44
+ }
48
45
 
46
+ // support overriding the entire copy dictionary with an object for a single language
49
47
  return key => copy[key];
50
48
  }
51
-
52
49
  var _default = useCopy;
53
50
  exports.default = _default;
@@ -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;