@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
@@ -14,7 +14,6 @@ import dictionary from './dictionary';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
16
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
17
-
18
17
  const selectTooltipStyles = _ref => {
19
18
  let {
20
19
  backgroundColor,
@@ -33,7 +32,6 @@ const selectTooltipStyles = _ref => {
33
32
  borderRadius
34
33
  };
35
34
  };
36
-
37
35
  const selectTooltipShadowStyles = _ref2 => {
38
36
  let {
39
37
  shadow,
@@ -44,7 +42,6 @@ const selectTooltipShadowStyles = _ref2 => {
44
42
  ...applyShadowToken(shadow)
45
43
  };
46
44
  };
47
-
48
45
  const selectMobileTooltipPositionStyles = _ref3 => {
49
46
  let {
50
47
  top,
@@ -57,7 +54,6 @@ const selectMobileTooltipPositionStyles = _ref3 => {
57
54
  position
58
55
  };
59
56
  };
60
-
61
57
  const selectMobileArrowStyles = (_ref4, _ref5) => {
62
58
  let {
63
59
  backgroundColor,
@@ -93,13 +89,12 @@ const selectMobileArrowStyles = (_ref4, _ref5) => {
93
89
  [staticSide]: '-4px'
94
90
  };
95
91
  };
96
-
97
92
  const selectTextStyles = tokens => applyTextStyles(selectTokens('Typography', tokens));
98
-
99
93
  const defaultControl = (pressableState, variant) => /*#__PURE__*/_jsx(TooltipButton, {
100
94
  pressableState: pressableState,
101
95
  variant: variant
102
96
  });
97
+
103
98
  /**
104
99
  * Tooltip provides a descriptive and detailed explanation or instructions. It can be used next to an input label
105
100
  * to help a user fill it in, or as a standalone component.
@@ -115,8 +110,6 @@ const defaultControl = (pressableState, variant) => /*#__PURE__*/_jsx(TooltipBut
115
110
  * - You may use one when the information is useful only to a small percentage of users (ie. tech savvy people wouldn't need this info).
116
111
  * - Tooltips may also be useful when vertical space is an issue.
117
112
  */
118
-
119
-
120
113
  const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
121
114
  let {
122
115
  children,
@@ -140,8 +133,9 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
140
133
  right: 'right',
141
134
  below: 'bottom',
142
135
  left: 'left'
143
- }; // "AutoPlacement" can't be used with "flip"
136
+ };
144
137
 
138
+ // "AutoPlacement" can't be used with "flip"
145
139
  const additionalMiddleware = position !== 'auto' ? autoPlacement : flip;
146
140
  const {
147
141
  x,
@@ -164,14 +158,11 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
164
158
  copy
165
159
  });
166
160
  const themeTokens = useThemeTokens('Tooltip', tokens, variant);
167
-
168
161
  const toggleIsOpen = () => {
169
162
  onPress();
170
163
  setIsOpen(!isOpen);
171
164
  };
172
-
173
165
  const close = () => setIsOpen(false);
174
-
175
166
  const getPressableState = _ref7 => {
176
167
  let {
177
168
  pressed,
@@ -184,7 +175,6 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
184
175
  focus: focused
185
176
  };
186
177
  };
187
-
188
178
  const onTooltipLayout = _ref8 => {
189
179
  let {
190
180
  nativeEvent: {
@@ -194,7 +184,6 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
194
184
  }
195
185
  }
196
186
  } = _ref8;
197
-
198
187
  if (tooltipDimensions === null || tooltipDimensions.width !== width || tooltipDimensions.height !== height) {
199
188
  setTooltipDimensions({
200
189
  width: Platform.select({
@@ -206,7 +195,6 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
206
195
  });
207
196
  }
208
197
  };
209
-
210
198
  useEffect(() => {
211
199
  if (!isOpen) {
212
200
  setTooltipDimensions(null);
@@ -244,7 +232,8 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
244
232
  children: typeof control === 'function' ? pressableState => control(getPressableState(pressableState), variant) : control
245
233
  }), isOpen && /*#__PURE__*/_jsxs(View, {
246
234
  ref: floating,
247
- style: [selectTooltipShadowStyles(themeTokens), staticStyles.tooltip, // applied separately so that it doesn't cover the arrow
235
+ style: [selectTooltipShadowStyles(themeTokens), staticStyles.tooltip,
236
+ // applied separately so that it doesn't cover the arrow
248
237
  selectMobileTooltipPositionStyles({
249
238
  position: strategy,
250
239
  top: y ?? 0,
@@ -253,7 +242,8 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
253
242
  onLayout: onTooltipLayout,
254
243
  accessibilityRole: "alert",
255
244
  children: [/*#__PURE__*/_jsx(View, {
256
- style: [staticStyles.arrow, selectMobileArrowStyles(themeTokens, { ...arrowData,
245
+ style: [staticStyles.arrow, selectMobileArrowStyles(themeTokens, {
246
+ ...arrowData,
257
247
  placement
258
248
  })],
259
249
  ref: arrowRef
@@ -268,7 +258,8 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
268
258
  });
269
259
  });
270
260
  Tooltip.displayName = 'Tooltip';
271
- Tooltip.propTypes = { ...selectedSystemPropTypes,
261
+ Tooltip.propTypes = {
262
+ ...selectedSystemPropTypes,
272
263
  ...propTypes
273
264
  };
274
265
  export default Tooltip;
@@ -16,7 +16,6 @@ import dictionary from './dictionary';
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
18
18
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
19
-
20
19
  const selectTooltipStyles = _ref => {
21
20
  let {
22
21
  backgroundColor,
@@ -35,7 +34,6 @@ const selectTooltipStyles = _ref => {
35
34
  borderRadius
36
35
  };
37
36
  };
38
-
39
37
  const selectTooltipShadowStyles = _ref2 => {
40
38
  let {
41
39
  shadow,
@@ -46,7 +44,6 @@ const selectTooltipShadowStyles = _ref2 => {
46
44
  ...applyShadowToken(shadow)
47
45
  };
48
46
  };
49
-
50
47
  const selectTooltipPositionStyles = _ref3 => {
51
48
  let {
52
49
  top,
@@ -59,7 +56,6 @@ const selectTooltipPositionStyles = _ref3 => {
59
56
  width
60
57
  };
61
58
  };
62
-
63
59
  const selectArrowStyles = (_ref4, _ref5) => {
64
60
  let {
65
61
  backgroundColor,
@@ -73,13 +69,15 @@ const selectArrowStyles = (_ref4, _ref5) => {
73
69
  height: tooltipHeight
74
70
  } = _ref5;
75
71
  // the arrow width is actually a diagonal of the rectangle that we'll use as a tip
76
- const rectangleSide = Math.sqrt(arrowWidth * arrowWidth / 2); // position the arrow at the side and center of the tooltip - this happens before rotation
77
- // so we use the rectangle size as basis
72
+ const rectangleSide = Math.sqrt(arrowWidth * arrowWidth / 2);
78
73
 
74
+ // position the arrow at the side and center of the tooltip - this happens before rotation
75
+ // so we use the rectangle size as basis
79
76
  const verticalOffset = -1 * rectangleSide / 2;
80
- const horizontalOffset = rectangleSide / 2; // percentage-based absolute positioning doesn't act well on native, so we have to
81
- // calculate the pixel values
77
+ const horizontalOffset = rectangleSide / 2;
82
78
 
79
+ // percentage-based absolute positioning doesn't act well on native, so we have to
80
+ // calculate the pixel values
83
81
  const directionalStyles = {
84
82
  above: {
85
83
  bottom: verticalOffset,
@@ -120,13 +118,12 @@ const selectArrowStyles = (_ref4, _ref5) => {
120
118
  ...directionalStyles[position]
121
119
  };
122
120
  };
123
-
124
121
  const selectTextStyles = tokens => applyTextStyles(selectTokens('Typography', tokens));
125
-
126
122
  const defaultControl = (pressableState, variant) => /*#__PURE__*/_jsx(TooltipButton, {
127
123
  pressableState: pressableState,
128
124
  variant: variant
129
125
  });
126
+
130
127
  /**
131
128
  * Tooltip provides a descriptive and detailed explanation or instructions. It can be used next to an input label
132
129
  * to help a user fill it in, or as a standalone component.
@@ -142,8 +139,6 @@ const defaultControl = (pressableState, variant) => /*#__PURE__*/_jsx(TooltipBut
142
139
  * - You may use one when the information is useful only to a small percentage of users (ie. tech savvy people wouldn't need this info).
143
140
  * - Tooltips may also be useful when vertical space is an issue.
144
141
  */
145
-
146
-
147
142
  const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
148
143
  let {
149
144
  children,
@@ -181,14 +176,11 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
181
176
  });
182
177
  return () => subscription === null || subscription === void 0 ? void 0 : subscription.remove();
183
178
  });
184
-
185
179
  const toggleIsOpen = () => {
186
180
  onPress();
187
181
  setIsOpen(!isOpen);
188
182
  };
189
-
190
183
  const close = () => setIsOpen(false);
191
-
192
184
  const getPressableState = _ref8 => {
193
185
  let {
194
186
  pressed,
@@ -201,7 +193,6 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
201
193
  focus: focused
202
194
  };
203
195
  };
204
-
205
196
  const onTooltipLayout = _ref9 => {
206
197
  let {
207
198
  nativeEvent: {
@@ -211,7 +202,6 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
211
202
  }
212
203
  }
213
204
  } = _ref9;
214
-
215
205
  if (tooltipDimensions === null || tooltipDimensions.width !== width || tooltipDimensions.height !== height) {
216
206
  setTooltipDimensions({
217
207
  width: Platform.select({
@@ -223,7 +213,6 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
223
213
  });
224
214
  }
225
215
  };
226
-
227
216
  useEffect(() => {
228
217
  if (isOpen) {
229
218
  controlRef.current.measureInWindow((x, y, width, height) => {
@@ -247,19 +236,18 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
247
236
  if (tooltipPosition !== null && !(tooltipPosition !== null && tooltipPosition !== void 0 && tooltipPosition.isNormalized) || !isOpen || controlLayout === null || tooltipDimensions == null) {
248
237
  return;
249
238
  }
250
-
251
239
  const updatedPosition = getTooltipPosition(position, {
252
240
  controlLayout,
253
241
  tooltipDimensions,
254
242
  windowDimensions,
255
243
  arrowWidth,
256
244
  arrowOffset
257
- }); // avoid ending up in an infinite normalization loop
245
+ });
258
246
 
247
+ // avoid ending up in an infinite normalization loop
259
248
  if (tooltipPosition !== null && tooltipPosition !== void 0 && tooltipPosition.isNormalized && updatedPosition.isNormalized) {
260
249
  return;
261
250
  }
262
-
263
251
  setTooltipPosition(updatedPosition);
264
252
  }, [isOpen, position, tooltipDimensions, controlLayout, windowDimensions, arrowWidth, arrowOffset, tooltipPosition]);
265
253
  const control = children !== undefined ? children : defaultControl;
@@ -295,9 +283,11 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
295
283
  onPress: close,
296
284
  children: /*#__PURE__*/_jsxs(View, {
297
285
  ref: ref,
298
- style: [staticStyles.tooltip, selectTooltipShadowStyles(themeTokens), // applied separately so that it doesn't cover the arrow
286
+ style: [staticStyles.tooltip, selectTooltipShadowStyles(themeTokens),
287
+ // applied separately so that it doesn't cover the arrow
299
288
  tooltipPosition && selectTooltipPositionStyles(tooltipPosition), (tooltipPosition === null || (tooltipPosition === null || tooltipPosition === void 0 ? void 0 : tooltipPosition.isNormalized)) && staticStyles.tooltipHidden // visually hide the tooltip until we have a final measurement
300
289
  ],
290
+
301
291
  onLayout: onTooltipLayout,
302
292
  accessibilityRole: "alert",
303
293
  children: [/*#__PURE__*/_jsx(View, {
@@ -314,7 +304,8 @@ const Tooltip = /*#__PURE__*/forwardRef((_ref6, ref) => {
314
304
  });
315
305
  });
316
306
  Tooltip.displayName = 'NativeTooltip';
317
- Tooltip.propTypes = { ...selectedSystemPropTypes,
307
+ Tooltip.propTypes = {
308
+ ...selectedSystemPropTypes,
318
309
  ...propTypes
319
310
  };
320
311
  export default Tooltip;
@@ -6,48 +6,42 @@ function normalizePosition(position) {
6
6
  top,
7
7
  width,
8
8
  ...rest
9
- } = position; // adjust the coordinates so that it fits within the window
9
+ } = position;
10
10
 
11
+ // adjust the coordinates so that it fits within the window
11
12
  const normalized = {
12
13
  left: Math.max(0, left),
13
14
  right: Math.max(0, right),
14
15
  top: Math.max(0, top),
15
16
  bottom // since it's ok the make the document grow downwards - no need to normalize here
16
-
17
17
  };
18
18
 
19
- const getAbsoluteDiff = (value1, value2) => Math.abs(Math.abs(value1) - Math.abs(value2)); // adjust the width by whatever has been subtracted from left or right
20
-
19
+ const getAbsoluteDiff = (value1, value2) => Math.abs(Math.abs(value1) - Math.abs(value2));
21
20
 
21
+ // adjust the width by whatever has been subtracted from left or right
22
22
  normalized.width = width - Math.abs(getAbsoluteDiff(left, normalized.left) - getAbsoluteDiff(right, normalized.right));
23
-
24
23
  if (normalized.top !== top) {
25
24
  normalized.bottom += normalized.top - top;
26
25
  }
27
-
28
26
  const isNormalized = normalized.right !== right || normalized.left !== left || normalized.top !== top;
29
- return { ...normalized,
27
+ return {
28
+ ...normalized,
30
29
  ...rest,
31
30
  isNormalized
32
31
  };
33
32
  }
34
-
35
33
  function invertPosition(position) {
36
34
  switch (position) {
37
35
  case 'above':
38
36
  return 'below';
39
-
40
37
  case 'below':
41
38
  return 'above';
42
-
43
39
  case 'left':
44
40
  return 'right';
45
-
46
41
  default:
47
42
  return 'left';
48
43
  }
49
44
  }
50
-
51
45
  function findRectByPosition(position, rectsArray) {
52
46
  return rectsArray.find(_ref => {
53
47
  let {
@@ -56,6 +50,7 @@ function findRectByPosition(position, rectsArray) {
56
50
  return rectPosition === position;
57
51
  });
58
52
  }
53
+
59
54
  /**
60
55
  * Used for absolute positioning of the tooltip. Since the tooltip is always centered relatively
61
56
  * to the control (button) and we have a limited set of positions, an easy and consistent way
@@ -64,8 +59,6 @@ function findRectByPosition(position, rectsArray) {
64
59
  * before it is shown, which makes it account for the width being limiting in styles, custom font
65
60
  * rendering, etc.
66
61
  */
67
-
68
-
69
62
  function getTooltipPosition(position, _ref2) {
70
63
  let {
71
64
  controlLayout,
@@ -96,8 +89,9 @@ function getTooltipPosition(position, _ref2) {
96
89
  const verticalBounds = {
97
90
  top: controlY,
98
91
  bottom: windowHeight - (controlY + controlHeight / 2 + tooltipHeight / 2)
99
- }; // calculate absolute coordinates for each of the potential positions (relative to window)
92
+ };
100
93
 
94
+ // calculate absolute coordinates for each of the potential positions (relative to window)
101
95
  const boundingRects = [{
102
96
  position: 'above',
103
97
  ...horizontalBounds,
@@ -121,42 +115,44 @@ function getTooltipPosition(position, _ref2) {
121
115
  }].map(rect => {
122
116
  // an absolute value representing how much of the tooltip is overflowing the window on each side
123
117
  const windowOverflow = Math.abs(Math.min(rect.top, 0) - Math.min(rect.left, 0) - Math.min(rect.right, 0) - Math.min(rect.bottom, 0));
124
- return { ...rect,
118
+ return {
119
+ ...rect,
125
120
  ...tooltipDimensions,
126
121
  overflow: windowOverflow,
127
122
  isNormalized: false
128
123
  };
129
- }); // the 'position' prop overrides the automatic positioning
124
+ });
130
125
 
126
+ // the 'position' prop overrides the automatic positioning
131
127
  if (position !== 'auto') {
132
- let rect = findRectByPosition(position, boundingRects); // check if the suggested 'position' fits in window
128
+ let rect = findRectByPosition(position, boundingRects);
133
129
 
130
+ // check if the suggested 'position' fits in window
134
131
  if (rect.overflow === 0) {
135
132
  return rect;
136
- } // otherwise try the inverted position (e.g. left -> right)
137
-
133
+ }
138
134
 
135
+ // otherwise try the inverted position (e.g. left -> right)
139
136
  rect = findRectByPosition(invertPosition(position), boundingRects);
140
-
141
137
  if (rect.overflow === 0) {
142
138
  return rect;
143
139
  }
144
140
  }
145
-
146
141
  const inWindow = boundingRects.filter(_ref3 => {
147
142
  let {
148
143
  overflow
149
144
  } = _ref3;
150
145
  return overflow === 0;
151
- }); // pick the first position that fits in window
152
- // (these are sorted clockwise which makes them show where one would expect them to be)
146
+ });
153
147
 
148
+ // pick the first position that fits in window
149
+ // (these are sorted clockwise which makes them show where one would expect them to be)
154
150
  if (inWindow.length > 0) {
155
151
  return inWindow[0];
156
- } // if all positions would end up being out of window bounds, let's pick the one that is
157
- // the least overflowing and normalize its position to fit within window bounds
158
-
152
+ }
159
153
 
154
+ // if all positions would end up being out of window bounds, let's pick the one that is
155
+ // the least overflowing and normalize its position to fit within window bounds
160
156
  boundingRects.sort((_ref4, _ref5) => {
161
157
  let {
162
158
  overflow: overflowA
@@ -166,10 +162,10 @@ function getTooltipPosition(position, _ref2) {
166
162
  } = _ref5;
167
163
  return overflowA - overflowB;
168
164
  });
169
- const leastOverflowing = boundingRects[0]; // prefer 'below' over 'above', since we can always expand the document downwards,
170
- // and 'above' might cause issues on small viewports with large tooltips
165
+ const leastOverflowing = boundingRects[0];
171
166
 
167
+ // prefer 'below' over 'above', since we can always expand the document downwards,
168
+ // and 'above' might cause issues on small viewports with large tooltips
172
169
  return normalizePosition(leastOverflowing.position === 'above' ? findRectByPosition('below', boundingRects) : leastOverflowing);
173
170
  }
174
-
175
171
  export default getTooltipPosition;
@@ -6,32 +6,26 @@ const propTypes = {
6
6
  * pressable state and tooltip variant as an argument.
7
7
  */
8
8
  children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
9
-
10
9
  /**
11
10
  * The message. Can be raw text or text components.
12
11
  */
13
12
  content: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
14
-
15
13
  /**
16
14
  * Select English or French copy for the accessible label.
17
15
  */
18
16
  copy: PropTypes.oneOf(['en', 'fr']),
19
-
20
17
  /**
21
18
  * Use to place the tooltip in a specific location (only if it fits within viewport).
22
19
  */
23
20
  position: PropTypes.oneOf(['auto', 'above', 'right', 'below', 'left']),
24
-
25
21
  /**
26
22
  * Display tooltip icon button as an inline element.
27
23
  */
28
24
  inline: PropTypes.bool,
29
-
30
25
  /**
31
26
  * Callback function triggered when the tooltip is pressed.
32
27
  */
33
28
  onPress: PropTypes.func,
34
-
35
29
  /**
36
30
  * The `id` of the tooltip button.
37
31
  */
@@ -8,7 +8,6 @@ import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps
8
8
  import Icon from '../Icon';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
11
-
12
11
  const selectInnerContainerStyles = _ref => {
13
12
  let {
14
13
  borderRadius,
@@ -21,7 +20,6 @@ const selectInnerContainerStyles = _ref => {
21
20
  backgroundColor
22
21
  };
23
22
  };
24
-
25
23
  const selectIconTokens = _ref2 => {
26
24
  let {
27
25
  iconSize,
@@ -34,13 +32,12 @@ const selectIconTokens = _ref2 => {
34
32
  scale: iconScale
35
33
  };
36
34
  };
35
+
37
36
  /**
38
37
  * `TooltipButton` is a helper component used as a default control for the `Tooltip` component.
39
38
  * In fact though, it isn't actually a pressable - it's meant to be used as pressable's content.
40
39
  * Due to this any interaction states (e.g. pressed, hover, etc.) has to be passed down to it as a prop.
41
40
  */
42
-
43
-
44
41
  const TooltipButton = _ref3 => {
45
42
  let {
46
43
  pressableState,
@@ -66,17 +63,17 @@ const TooltipButton = _ref3 => {
66
63
  })
67
64
  });
68
65
  };
69
-
70
66
  const staticStyles = StyleSheet.create({
71
- bubblePointerEvents: { ...Platform.select({
67
+ bubblePointerEvents: {
68
+ ...Platform.select({
72
69
  web: {
73
70
  pointerEvents: 'none'
74
71
  }
75
72
  })
76
73
  }
77
74
  });
78
- TooltipButton.propTypes = { ...selectedSystemPropTypes,
79
-
75
+ TooltipButton.propTypes = {
76
+ ...selectedSystemPropTypes,
80
77
  /**
81
78
  * Used as appearances when resolving theme tokens.
82
79
  */
@@ -9,11 +9,9 @@ import { a11yProps, variantProp, getTokensPropType, getMaxFontMultiplier, headin
9
9
  /**
10
10
  * @typedef {import('../utils/a11y/semantics').TextTag} TextTag
11
11
  */
12
-
13
12
  import { jsx as _jsx } from "react/jsx-runtime";
14
13
  const [selectContainerProps, selectedContainerPropTypes] = selectSystemProps([a11yProps, viewProps]);
15
14
  const [selectTextProps, selectedTextPropTypes] = selectSystemProps([textProps]);
16
-
17
15
  const selectTextStyles = (_ref, themeOptions) => {
18
16
  let {
19
17
  fontWeight,
@@ -36,9 +34,9 @@ const selectTextStyles = (_ref, themeOptions) => {
36
34
  textTransform,
37
35
  letterSpacing
38
36
  });
39
- }; // General-purpose flexible theme-neutral base component for text
40
-
37
+ };
41
38
 
39
+ // General-purpose flexible theme-neutral base component for text
42
40
  const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
43
41
  let {
44
42
  children,
@@ -63,8 +61,10 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
63
61
  const {
64
62
  themeOptions
65
63
  } = useTheme();
66
- const resolvedTextProps = { ...selectTextProps(rest),
67
- style: selectTextStyles(align ? { ...themeTokens,
64
+ const resolvedTextProps = {
65
+ ...selectTextProps(rest),
66
+ style: selectTextStyles(align ? {
67
+ ...themeTokens,
68
68
  textAlign: align
69
69
  } : themeTokens, themeOptions),
70
70
  dataSet,
@@ -75,15 +75,14 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
75
75
  ...getA11yPropsFromHtmlTag(tag, accessibilityRole),
76
76
  ...selectContainerProps(rest)
77
77
  };
78
-
79
78
  const resetTagStyling = child => {
80
79
  if (typeof child === 'object' && ((child === null || child === void 0 ? void 0 : child.type) === 'sub' || (child === null || child === void 0 ? void 0 : child.type) === 'sup')) {
81
80
  var _child$props;
82
-
83
81
  const childStyles = (child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.style) || {};
84
82
  const supFontSize = childStyles.fontSize ?? superScriptFontSize;
85
83
  const sanitizedChild = /*#__PURE__*/React.cloneElement(child, {
86
- style: { ...childStyles,
84
+ style: {
85
+ ...childStyles,
87
86
  ...(supFontSize ? {
88
87
  fontSize: supFontSize
89
88
  } : {}),
@@ -92,20 +91,17 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
92
91
  });
93
92
  return sanitizedChild;
94
93
  }
95
-
96
94
  return child;
97
95
  };
98
-
99
96
  const sanitizeChildren = () => {
100
97
  if (Array.isArray(children)) {
101
98
  return children.map(resetTagStyling);
102
99
  }
103
-
104
100
  return resetTagStyling(children);
105
101
  };
106
-
107
102
  const textDecorationLine = strikeThrough ? 'line-through' : 'none';
108
- const textStyles = resolvedTextProps.style ? { ...resolvedTextProps.style,
103
+ const textStyles = resolvedTextProps.style ? {
104
+ ...resolvedTextProps.style,
109
105
  textDecorationLine
110
106
  } : {
111
107
  textDecorationLine
@@ -113,7 +109,8 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
113
109
  return block ? /*#__PURE__*/_jsx(View, {
114
110
  ref: ref,
115
111
  ...containerProps,
116
- children: /*#__PURE__*/_jsx(Text, { ...resolvedTextProps,
112
+ children: /*#__PURE__*/_jsx(Text, {
113
+ ...resolvedTextProps,
117
114
  style: textStyles,
118
115
  children: sanitizeChildren(children)
119
116
  })
@@ -126,16 +123,15 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
126
123
  });
127
124
  });
128
125
  Typography.displayName = 'Typography';
129
- Typography.propTypes = { ...selectedContainerPropTypes,
126
+ Typography.propTypes = {
127
+ ...selectedContainerPropTypes,
130
128
  ...selectedTextPropTypes,
131
129
  tokens: getTokensPropType('Typography'),
132
130
  variant: variantProp.propType,
133
-
134
131
  /**
135
132
  * Renders the text with "text-decoration: 'line-through'" applied.
136
133
  */
137
134
  strikeThrough: PropTypes.bool,
138
-
139
135
  /**
140
136
  * Renders the text as a semantic heading. If a html heading tag is provided, uses that tag on Web.
141
137
  *
@@ -146,7 +142,6 @@ Typography.propTypes = { ...selectedContainerPropTypes,
146
142
  * is not defined, the accessibilityRole will default to "heading".
147
143
  */
148
144
  heading: PropTypes.oneOf([...headingTags, true]),
149
-
150
145
  /**
151
146
  * Optional semantic HTML tag, to apply to the text on web. Does not change styling.
152
147
  *
@@ -156,18 +151,15 @@ Typography.propTypes = { ...selectedContainerPropTypes,
156
151
  * is not defined, the accessibilityRole will default to "heading".
157
152
  */
158
153
  tag: PropTypes.oneOf(textTags),
159
-
160
154
  /**
161
155
  * If true, forces the element to behave as a View block even if nested in other text
162
156
  */
163
157
  block: PropTypes.bool,
164
-
165
158
  /**
166
159
  * Works the same as css text-align, note that RN doesn't support "start" or "end" (see https://reactnative.dev/docs/text-style-props#textalign)
167
160
  * Justify is known to make text harder to read, especially for people with dyslexia (see https://developer.mozilla.org/en-US/docs/Web/CSS/text-align#accessibility_concerns)
168
161
  */
169
162
  align: PropTypes.oneOf(['auto', 'left', 'right', 'center', 'justify']),
170
-
171
163
  /**
172
164
  * Same children allowed as a React Native <Text> node
173
165
  */