@telus-uds/components-base 1.65.0 → 1.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/CHANGELOG.md +22 -2
  2. package/lib/A11yInfoProvider/index.js +5 -20
  3. package/lib/A11yText/index.js +3 -17
  4. package/lib/ActivityIndicator/Spinner.js +2 -9
  5. package/lib/ActivityIndicator/Spinner.native.js +4 -27
  6. package/lib/ActivityIndicator/index.js +1 -13
  7. package/lib/ActivityIndicator/shared.js +0 -3
  8. package/lib/Autocomplete/Autocomplete.js +34 -85
  9. package/lib/Autocomplete/Loading.js +0 -10
  10. package/lib/Autocomplete/Suggestions.js +0 -11
  11. package/lib/Autocomplete/index.js +0 -3
  12. package/lib/BaseProvider/HydrationContext.js +4 -18
  13. package/lib/BaseProvider/index.js +0 -12
  14. package/lib/Box/Box.js +10 -35
  15. package/lib/Box/index.js +0 -3
  16. package/lib/Button/Button.js +4 -13
  17. package/lib/Button/ButtonBase.js +23 -55
  18. package/lib/Button/ButtonDropdown.js +7 -32
  19. package/lib/Button/ButtonGroup.js +15 -48
  20. package/lib/Button/ButtonLink.js +3 -17
  21. package/lib/Button/index.js +0 -5
  22. package/lib/Button/propTypes.js +0 -15
  23. package/lib/Card/Card.js +3 -14
  24. package/lib/Card/CardBase.js +5 -16
  25. package/lib/Card/PressableCardBase.js +7 -30
  26. package/lib/Card/index.js +0 -7
  27. package/lib/Carousel/Carousel.js +22 -115
  28. package/lib/Carousel/CarouselContext.js +0 -14
  29. package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
  30. package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
  31. package/lib/Carousel/CarouselItem/index.js +0 -3
  32. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
  33. package/lib/Carousel/CarouselStepTracker/index.js +0 -3
  34. package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
  35. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
  36. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
  37. package/lib/Carousel/CarouselTabs/index.js +0 -3
  38. package/lib/Carousel/CarouselThumbnail.js +1 -16
  39. package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
  40. package/lib/Carousel/index.js +0 -5
  41. package/lib/Checkbox/Checkbox.js +5 -44
  42. package/lib/Checkbox/CheckboxButton.js +7 -33
  43. package/lib/Checkbox/CheckboxGroup.js +5 -37
  44. package/lib/Checkbox/CheckboxInput.js +1 -11
  45. package/lib/Checkbox/CheckboxInput.native.js +0 -2
  46. package/lib/Checkbox/index.js +0 -4
  47. package/lib/CheckboxCard/CheckboxCard.js +4 -37
  48. package/lib/CheckboxCard/index.js +0 -3
  49. package/lib/CheckboxCardGroup/CheckboxCardGroup.js +215 -0
  50. package/lib/CheckboxCardGroup/index.js +10 -0
  51. package/lib/Divider/Divider.js +13 -24
  52. package/lib/Divider/index.js +0 -3
  53. package/lib/ExpandCollapse/Accordion.js +1 -9
  54. package/lib/ExpandCollapse/Control.js +10 -32
  55. package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
  56. package/lib/ExpandCollapse/Panel.js +13 -38
  57. package/lib/ExpandCollapse/index.js +0 -5
  58. package/lib/Feedback/Feedback.js +13 -30
  59. package/lib/Feedback/index.js +0 -3
  60. package/lib/Fieldset/Fieldset.js +6 -37
  61. package/lib/Fieldset/FieldsetContainer.js +1 -10
  62. package/lib/Fieldset/FieldsetContainer.native.js +0 -8
  63. package/lib/Fieldset/Legend.js +1 -10
  64. package/lib/Fieldset/Legend.native.js +1 -13
  65. package/lib/Fieldset/index.js +0 -3
  66. package/lib/FlexGrid/Col/Col.js +10 -53
  67. package/lib/FlexGrid/Col/index.js +0 -3
  68. package/lib/FlexGrid/FlexGrid.js +3 -34
  69. package/lib/FlexGrid/Row/Row.js +0 -38
  70. package/lib/FlexGrid/Row/index.js +0 -3
  71. package/lib/FlexGrid/helpers/index.js +0 -4
  72. package/lib/FlexGrid/index.js +0 -3
  73. package/lib/FlexGrid/providers/GutterContext.js +0 -4
  74. package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
  75. package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
  76. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
  77. package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
  78. package/lib/HorizontalScroll/index.js +0 -7
  79. package/lib/HorizontalScroll/itemPositions.js +8 -19
  80. package/lib/Icon/Icon.js +4 -17
  81. package/lib/Icon/IconText.js +5 -25
  82. package/lib/Icon/index.js +0 -6
  83. package/lib/IconButton/IconButton.js +5 -37
  84. package/lib/IconButton/index.js +0 -3
  85. package/lib/InputLabel/InputLabel.js +4 -28
  86. package/lib/InputLabel/LabelContent.js +2 -8
  87. package/lib/InputLabel/LabelContent.native.js +0 -8
  88. package/lib/InputLabel/index.js +0 -3
  89. package/lib/InputSupports/InputSupports.js +0 -21
  90. package/lib/InputSupports/index.js +0 -3
  91. package/lib/InputSupports/useInputSupports.js +2 -6
  92. package/lib/Link/ChevronLink.js +7 -18
  93. package/lib/Link/InlinePressable.js +0 -10
  94. package/lib/Link/InlinePressable.native.js +5 -18
  95. package/lib/Link/Link.js +0 -8
  96. package/lib/Link/LinkBase.js +17 -47
  97. package/lib/Link/TextButton.js +3 -16
  98. package/lib/Link/index.js +0 -5
  99. package/lib/List/List.js +5 -21
  100. package/lib/List/ListItem.js +1 -11
  101. package/lib/List/ListItemBase.js +5 -34
  102. package/lib/List/ListItemContent.js +1 -14
  103. package/lib/List/ListItemMark.js +3 -23
  104. package/lib/List/PressableListItemBase.js +2 -28
  105. package/lib/List/index.js +0 -4
  106. package/lib/Listbox/GroupControl.js +0 -14
  107. package/lib/Listbox/Listbox.js +15 -40
  108. package/lib/Listbox/ListboxContext.js +0 -7
  109. package/lib/Listbox/ListboxGroup.js +7 -19
  110. package/lib/Listbox/ListboxItem.js +3 -17
  111. package/lib/Listbox/ListboxOverlay.js +4 -20
  112. package/lib/Listbox/PressableItem.js +3 -18
  113. package/lib/Listbox/index.js +0 -3
  114. package/lib/Modal/Modal.js +94 -45
  115. package/lib/Modal/ModalContent.js +184 -0
  116. package/lib/Modal/index.js +0 -3
  117. package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
  118. package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
  119. package/lib/MultiSelectFilter/index.js +0 -3
  120. package/lib/Notification/Notification.js +11 -38
  121. package/lib/Notification/index.js +0 -3
  122. package/lib/Pagination/PageButton.js +2 -22
  123. package/lib/Pagination/Pagination.js +21 -42
  124. package/lib/Pagination/SideButton.js +0 -24
  125. package/lib/Pagination/index.js +0 -3
  126. package/lib/Pagination/usePagination.js +4 -9
  127. package/lib/Progress/Progress.js +3 -17
  128. package/lib/Progress/ProgressBar.js +3 -25
  129. package/lib/Progress/ProgressBarBackground.js +0 -12
  130. package/lib/Progress/index.js +0 -4
  131. package/lib/QuickLinks/QuickLinks.js +1 -18
  132. package/lib/QuickLinks/QuickLinksCard.js +1 -11
  133. package/lib/QuickLinks/QuickLinksItem.js +3 -17
  134. package/lib/QuickLinks/index.js +0 -4
  135. package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
  136. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
  137. package/lib/QuickLinksFeature/index.js +0 -4
  138. package/lib/Radio/Radio.js +5 -39
  139. package/lib/Radio/RadioButton.js +7 -26
  140. package/lib/Radio/RadioGroup.js +6 -39
  141. package/lib/Radio/RadioInput.js +1 -11
  142. package/lib/Radio/RadioInput.native.js +0 -2
  143. package/lib/Radio/index.js +0 -4
  144. package/lib/RadioCard/RadioCard.js +5 -38
  145. package/lib/RadioCard/RadioCardGroup.js +7 -38
  146. package/lib/RadioCard/index.js +0 -4
  147. package/lib/Responsive/Responsive.js +1 -14
  148. package/lib/Responsive/index.js +0 -3
  149. package/lib/Search/Search.js +22 -45
  150. package/lib/Search/index.js +0 -3
  151. package/lib/Select/Group.js +0 -8
  152. package/lib/Select/Group.native.js +0 -6
  153. package/lib/Select/Item.js +0 -7
  154. package/lib/Select/Item.native.js +0 -2
  155. package/lib/Select/Picker.js +0 -8
  156. package/lib/Select/Picker.native.js +6 -22
  157. package/lib/Select/Select.js +9 -52
  158. package/lib/Select/index.js +0 -5
  159. package/lib/SideNav/Item.js +5 -29
  160. package/lib/SideNav/ItemContent.js +1 -14
  161. package/lib/SideNav/ItemsGroup.js +9 -31
  162. package/lib/SideNav/SideNav.js +9 -33
  163. package/lib/SideNav/index.js +0 -2
  164. package/lib/Skeleton/Skeleton.js +10 -42
  165. package/lib/Skeleton/index.js +0 -3
  166. package/lib/Skeleton/skeletonWebAnimation.js +0 -2
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
  168. package/lib/SkipLink/SkipLink.js +7 -27
  169. package/lib/SkipLink/index.js +0 -3
  170. package/lib/Spacer/Spacer.js +4 -20
  171. package/lib/Spacer/index.js +0 -3
  172. package/lib/StackView/StackView.js +3 -21
  173. package/lib/StackView/StackWrap.js +11 -21
  174. package/lib/StackView/StackWrap.native.js +0 -3
  175. package/lib/StackView/StackWrapBox.js +5 -21
  176. package/lib/StackView/StackWrapGap.js +1 -14
  177. package/lib/StackView/common.js +0 -6
  178. package/lib/StackView/getStackedContent.js +10 -21
  179. package/lib/StackView/index.js +0 -5
  180. package/lib/StepTracker/Step.js +3 -27
  181. package/lib/StepTracker/StepTracker.js +5 -32
  182. package/lib/StepTracker/index.js +0 -3
  183. package/lib/Tabs/Tabs.js +7 -30
  184. package/lib/Tabs/TabsItem.js +13 -38
  185. package/lib/Tabs/index.js +0 -3
  186. package/lib/Tags/Tags.js +9 -42
  187. package/lib/Tags/index.js +0 -3
  188. package/lib/TextInput/TextArea.js +11 -20
  189. package/lib/TextInput/TextInput.js +7 -16
  190. package/lib/TextInput/TextInputBase.js +106 -69
  191. package/lib/TextInput/index.js +0 -3
  192. package/lib/TextInput/propTypes.js +4 -7
  193. package/lib/ThemeProvider/ThemeProvider.js +10 -18
  194. package/lib/ThemeProvider/index.js +0 -9
  195. package/lib/ThemeProvider/useSetTheme.js +6 -9
  196. package/lib/ThemeProvider/useTheme.js +2 -7
  197. package/lib/ThemeProvider/useThemeTokens.js +1 -9
  198. package/lib/ThemeProvider/utils/index.js +0 -4
  199. package/lib/ThemeProvider/utils/styles.js +14 -35
  200. package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
  201. package/lib/Timeline/Timeline.js +11 -27
  202. package/lib/Timeline/index.js +0 -3
  203. package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
  204. package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
  205. package/lib/ToggleSwitch/index.js +0 -3
  206. package/lib/Tooltip/Backdrop.js +4 -11
  207. package/lib/Tooltip/Backdrop.native.js +1 -14
  208. package/lib/Tooltip/Tooltip.js +9 -37
  209. package/lib/Tooltip/Tooltip.native.js +14 -45
  210. package/lib/Tooltip/getTooltipPosition.js +26 -31
  211. package/lib/Tooltip/index.js +0 -5
  212. package/lib/Tooltip/shared.js +0 -10
  213. package/lib/TooltipButton/TooltipButton.js +5 -20
  214. package/lib/TooltipButton/index.js +0 -3
  215. package/lib/Typography/Typography.js +15 -38
  216. package/lib/Typography/index.js +0 -3
  217. package/lib/Validator/Validator.js +10 -58
  218. package/lib/Validator/index.js +0 -3
  219. package/lib/ViewportProvider/ViewportProvider.js +1 -13
  220. package/lib/ViewportProvider/index.js +0 -5
  221. package/lib/ViewportProvider/useViewport.js +0 -4
  222. package/lib/ViewportProvider/useViewportListener.js +3 -12
  223. package/lib/index.js +8 -71
  224. package/lib/utils/BaseView/BaseView.js +3 -17
  225. package/lib/utils/BaseView/BaseView.native.js +0 -3
  226. package/lib/utils/BaseView/index.js +0 -3
  227. package/lib/utils/a11y/index.js +0 -4
  228. package/lib/utils/a11y/semantics.js +14 -32
  229. package/lib/utils/a11y/textSize.js +1 -8
  230. package/lib/utils/animation/index.js +0 -2
  231. package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
  232. package/lib/utils/children.js +16 -28
  233. package/lib/utils/containUniqueFields.js +2 -5
  234. package/lib/utils/floating-ui/index.js +0 -1
  235. package/lib/utils/floating-ui/index.native.js +0 -1
  236. package/lib/utils/hasOwnProperty.js +0 -1
  237. package/lib/utils/htmlAttrs.js +2 -4
  238. package/lib/utils/index.js +0 -31
  239. package/lib/utils/info/index.js +0 -4
  240. package/lib/utils/info/platform/index.js +0 -4
  241. package/lib/utils/info/versions.js +0 -3
  242. package/lib/utils/input.js +12 -24
  243. package/lib/utils/pressability.js +7 -21
  244. package/lib/utils/props/a11yProps.js +19 -25
  245. package/lib/utils/props/clickProps.js +0 -4
  246. package/lib/utils/props/componentPropType.js +0 -14
  247. package/lib/utils/props/copyPropTypes.js +0 -4
  248. package/lib/utils/props/getPropSelector.js +11 -12
  249. package/lib/utils/props/handlerProps.js +2 -23
  250. package/lib/utils/props/hrefAttrsProp.js +0 -4
  251. package/lib/utils/props/index.js +0 -22
  252. package/lib/utils/props/inputSupportsProps.js +0 -9
  253. package/lib/utils/props/linkProps.js +2 -12
  254. package/lib/utils/props/paddingProp.js +0 -3
  255. package/lib/utils/props/pressProps.js +2 -8
  256. package/lib/utils/props/rectProp.js +0 -3
  257. package/lib/utils/props/responsiveProps.js +1 -5
  258. package/lib/utils/props/selectSystemProps.js +4 -6
  259. package/lib/utils/props/spacingProps.js +3 -10
  260. package/lib/utils/props/textInputProps.js +11 -31
  261. package/lib/utils/props/textProps.js +6 -11
  262. package/lib/utils/props/tokens.js +7 -26
  263. package/lib/utils/props/variantProp.js +0 -3
  264. package/lib/utils/props/viewProps.js +0 -5
  265. package/lib/utils/ssr.js +13 -33
  266. package/lib/utils/useCopy.js +3 -6
  267. package/lib/utils/useHash.js +5 -10
  268. package/lib/utils/useHash.native.js +0 -2
  269. package/lib/utils/useOverlaidPosition.js +6 -29
  270. package/lib/utils/useResponsiveProp.js +6 -13
  271. package/lib/utils/useSafeLayoutEffect.js +5 -10
  272. package/lib/utils/useScrollBlocking.js +3 -11
  273. package/lib/utils/useScrollBlocking.native.js +0 -2
  274. package/lib/utils/useSpacingScale.js +5 -8
  275. package/lib/utils/useUniqueId.js +0 -4
  276. package/lib/utils/withLinkRouter.js +13 -18
  277. package/lib-module/A11yInfoProvider/index.js +5 -9
  278. package/lib-module/A11yText/index.js +3 -4
  279. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  280. package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
  281. package/lib-module/ActivityIndicator/index.js +1 -5
  282. package/lib-module/ActivityIndicator/shared.js +2 -1
  283. package/lib-module/Autocomplete/Autocomplete.js +34 -59
  284. package/lib-module/Autocomplete/Loading.js +0 -2
  285. package/lib-module/BaseProvider/HydrationContext.js +4 -7
  286. package/lib-module/BaseProvider/index.js +0 -3
  287. package/lib-module/Box/Box.js +10 -24
  288. package/lib-module/Button/Button.js +4 -2
  289. package/lib-module/Button/ButtonBase.js +23 -35
  290. package/lib-module/Button/ButtonDropdown.js +7 -16
  291. package/lib-module/Button/ButtonGroup.js +15 -32
  292. package/lib-module/Button/ButtonLink.js +3 -2
  293. package/lib-module/Button/propTypes.js +0 -7
  294. package/lib-module/Card/Card.js +3 -2
  295. package/lib-module/Card/CardBase.js +5 -4
  296. package/lib-module/Card/PressableCardBase.js +7 -11
  297. package/lib-module/Carousel/Carousel.js +22 -60
  298. package/lib-module/Carousel/CarouselContext.js +0 -5
  299. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
  300. package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
  301. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
  302. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
  303. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
  304. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
  305. package/lib-module/Carousel/CarouselThumbnail.js +1 -7
  306. package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
  307. package/lib-module/Checkbox/Checkbox.js +5 -23
  308. package/lib-module/Checkbox/CheckboxButton.js +7 -17
  309. package/lib-module/Checkbox/CheckboxGroup.js +5 -23
  310. package/lib-module/Checkbox/CheckboxInput.js +1 -3
  311. package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
  312. package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
  313. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +205 -0
  314. package/lib-module/CheckboxCardGroup/index.js +2 -0
  315. package/lib-module/Divider/Divider.js +13 -11
  316. package/lib-module/ExpandCollapse/Accordion.js +1 -1
  317. package/lib-module/ExpandCollapse/Control.js +10 -17
  318. package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
  319. package/lib-module/ExpandCollapse/Panel.js +13 -23
  320. package/lib-module/Feedback/Feedback.js +13 -16
  321. package/lib-module/Fieldset/Fieldset.js +6 -25
  322. package/lib-module/Fieldset/FieldsetContainer.js +1 -1
  323. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
  324. package/lib-module/Fieldset/Legend.js +1 -1
  325. package/lib-module/Fieldset/Legend.native.js +1 -1
  326. package/lib-module/FlexGrid/Col/Col.js +10 -37
  327. package/lib-module/FlexGrid/FlexGrid.js +3 -17
  328. package/lib-module/FlexGrid/Row/Row.js +0 -25
  329. package/lib-module/FlexGrid/helpers/index.js +0 -3
  330. package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
  331. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
  332. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
  333. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
  334. package/lib-module/HorizontalScroll/itemPositions.js +11 -10
  335. package/lib-module/Icon/Icon.js +4 -8
  336. package/lib-module/Icon/IconText.js +6 -17
  337. package/lib-module/IconButton/IconButton.js +7 -20
  338. package/lib-module/InputLabel/InputLabel.js +4 -13
  339. package/lib-module/InputLabel/LabelContent.js +2 -1
  340. package/lib-module/InputLabel/LabelContent.native.js +0 -1
  341. package/lib-module/InputSupports/InputSupports.js +0 -9
  342. package/lib-module/InputSupports/useInputSupports.js +2 -4
  343. package/lib-module/Link/ChevronLink.js +7 -7
  344. package/lib-module/Link/InlinePressable.js +0 -2
  345. package/lib-module/Link/InlinePressable.native.js +4 -12
  346. package/lib-module/Link/LinkBase.js +17 -25
  347. package/lib-module/Link/TextButton.js +3 -5
  348. package/lib-module/List/List.js +5 -9
  349. package/lib-module/List/ListItem.js +1 -1
  350. package/lib-module/List/ListItemBase.js +5 -17
  351. package/lib-module/List/ListItemContent.js +1 -4
  352. package/lib-module/List/ListItemMark.js +3 -16
  353. package/lib-module/List/PressableListItemBase.js +2 -6
  354. package/lib-module/Listbox/GroupControl.js +0 -2
  355. package/lib-module/Listbox/Listbox.js +15 -23
  356. package/lib-module/Listbox/ListboxContext.js +0 -2
  357. package/lib-module/Listbox/ListboxGroup.js +6 -4
  358. package/lib-module/Listbox/ListboxItem.js +2 -1
  359. package/lib-module/Listbox/ListboxOverlay.js +3 -4
  360. package/lib-module/Listbox/PressableItem.js +2 -7
  361. package/lib-module/Modal/Modal.js +94 -25
  362. package/lib-module/Modal/ModalContent.js +175 -0
  363. package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
  364. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
  365. package/lib-module/Notification/Notification.js +11 -22
  366. package/lib-module/Pagination/PageButton.js +2 -6
  367. package/lib-module/Pagination/Pagination.js +21 -21
  368. package/lib-module/Pagination/SideButton.js +3 -8
  369. package/lib-module/Pagination/usePagination.js +4 -8
  370. package/lib-module/Progress/Progress.js +3 -7
  371. package/lib-module/Progress/ProgressBar.js +3 -11
  372. package/lib-module/Progress/ProgressBarBackground.js +0 -2
  373. package/lib-module/QuickLinks/QuickLinks.js +1 -6
  374. package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
  375. package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
  376. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
  377. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
  378. package/lib-module/Radio/Radio.js +5 -22
  379. package/lib-module/Radio/RadioButton.js +8 -10
  380. package/lib-module/Radio/RadioGroup.js +6 -25
  381. package/lib-module/Radio/RadioInput.js +1 -3
  382. package/lib-module/Radio/RadioInput.native.js +0 -1
  383. package/lib-module/RadioCard/RadioCard.js +5 -21
  384. package/lib-module/RadioCard/RadioCardGroup.js +7 -25
  385. package/lib-module/Responsive/Responsive.js +1 -6
  386. package/lib-module/Search/Search.js +22 -31
  387. package/lib-module/Select/Group.js +0 -3
  388. package/lib-module/Select/Group.native.js +0 -3
  389. package/lib-module/Select/Item.js +0 -3
  390. package/lib-module/Select/Item.native.js +0 -1
  391. package/lib-module/Select/Picker.native.js +8 -10
  392. package/lib-module/Select/Select.js +10 -35
  393. package/lib-module/SideNav/Item.js +5 -16
  394. package/lib-module/SideNav/ItemContent.js +1 -2
  395. package/lib-module/SideNav/ItemsGroup.js +9 -19
  396. package/lib-module/SideNav/SideNav.js +9 -22
  397. package/lib-module/Skeleton/Skeleton.js +10 -25
  398. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
  399. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
  400. package/lib-module/SkipLink/SkipLink.js +7 -9
  401. package/lib-module/Spacer/Spacer.js +4 -7
  402. package/lib-module/StackView/StackView.js +3 -7
  403. package/lib-module/StackView/StackWrap.js +13 -13
  404. package/lib-module/StackView/StackWrap.native.js +2 -1
  405. package/lib-module/StackView/StackWrapBox.js +5 -8
  406. package/lib-module/StackView/StackWrapGap.js +1 -1
  407. package/lib-module/StackView/getStackedContent.js +10 -10
  408. package/lib-module/StepTracker/Step.js +3 -14
  409. package/lib-module/StepTracker/StepTracker.js +5 -13
  410. package/lib-module/Tabs/Tabs.js +7 -16
  411. package/lib-module/Tabs/TabsItem.js +13 -16
  412. package/lib-module/Tags/Tags.js +9 -26
  413. package/lib-module/TextInput/TextArea.js +11 -8
  414. package/lib-module/TextInput/TextInput.js +7 -5
  415. package/lib-module/TextInput/TextInputBase.js +107 -51
  416. package/lib-module/TextInput/propTypes.js +7 -6
  417. package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
  418. package/lib-module/ThemeProvider/useSetTheme.js +6 -7
  419. package/lib-module/ThemeProvider/useTheme.js +2 -5
  420. package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
  421. package/lib-module/ThemeProvider/utils/styles.js +15 -27
  422. package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
  423. package/lib-module/Timeline/Timeline.js +11 -17
  424. package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
  425. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
  426. package/lib-module/Tooltip/Backdrop.js +4 -7
  427. package/lib-module/Tooltip/Backdrop.native.js +1 -4
  428. package/lib-module/Tooltip/Tooltip.js +9 -18
  429. package/lib-module/Tooltip/Tooltip.native.js +14 -23
  430. package/lib-module/Tooltip/getTooltipPosition.js +26 -30
  431. package/lib-module/Tooltip/shared.js +0 -6
  432. package/lib-module/TooltipButton/TooltipButton.js +5 -8
  433. package/lib-module/Typography/Typography.js +14 -22
  434. package/lib-module/Validator/Validator.js +10 -42
  435. package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
  436. package/lib-module/ViewportProvider/useViewportListener.js +6 -8
  437. package/lib-module/index.js +1 -0
  438. package/lib-module/utils/BaseView/BaseView.js +3 -4
  439. package/lib-module/utils/BaseView/BaseView.native.js +0 -1
  440. package/lib-module/utils/a11y/semantics.js +14 -27
  441. package/lib-module/utils/a11y/textSize.js +1 -2
  442. package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
  443. package/lib-module/utils/children.js +17 -19
  444. package/lib-module/utils/containUniqueFields.js +2 -4
  445. package/lib-module/utils/htmlAttrs.js +2 -1
  446. package/lib-module/utils/info/index.js +2 -1
  447. package/lib-module/utils/info/platform/index.js +4 -1
  448. package/lib-module/utils/info/versions.js +2 -1
  449. package/lib-module/utils/input.js +11 -19
  450. package/lib-module/utils/pressability.js +8 -7
  451. package/lib-module/utils/props/a11yProps.js +22 -20
  452. package/lib-module/utils/props/clickProps.js +0 -1
  453. package/lib-module/utils/props/componentPropType.js +0 -13
  454. package/lib-module/utils/props/getPropSelector.js +12 -8
  455. package/lib-module/utils/props/handlerProps.js +2 -19
  456. package/lib-module/utils/props/hrefAttrsProp.js +2 -2
  457. package/lib-module/utils/props/inputSupportsProps.js +0 -6
  458. package/lib-module/utils/props/linkProps.js +2 -3
  459. package/lib-module/utils/props/pressProps.js +2 -2
  460. package/lib-module/utils/props/responsiveProps.js +1 -3
  461. package/lib-module/utils/props/selectSystemProps.js +4 -5
  462. package/lib-module/utils/props/spacingProps.js +4 -3
  463. package/lib-module/utils/props/textInputProps.js +14 -27
  464. package/lib-module/utils/props/textProps.js +9 -7
  465. package/lib-module/utils/props/tokens.js +10 -13
  466. package/lib-module/utils/props/variantProp.js +1 -1
  467. package/lib-module/utils/props/viewProps.js +0 -1
  468. package/lib-module/utils/ssr.js +14 -18
  469. package/lib-module/utils/useCopy.js +3 -5
  470. package/lib-module/utils/useHash.js +5 -9
  471. package/lib-module/utils/useHash.native.js +0 -1
  472. package/lib-module/utils/useOverlaidPosition.js +6 -25
  473. package/lib-module/utils/useResponsiveProp.js +6 -7
  474. package/lib-module/utils/useSafeLayoutEffect.js +5 -7
  475. package/lib-module/utils/useScrollBlocking.js +3 -10
  476. package/lib-module/utils/useSpacingScale.js +4 -4
  477. package/lib-module/utils/useUniqueId.js +0 -2
  478. package/lib-module/utils/withLinkRouter.js +13 -10
  479. package/package.json +2 -2
  480. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +230 -0
  481. package/src/CheckboxCardGroup/index.js +3 -0
  482. package/src/Modal/Modal.jsx +98 -5
  483. package/src/Modal/ModalContent.jsx +171 -0
  484. package/src/TextInput/TextInputBase.jsx +67 -12
  485. package/src/TextInput/propTypes.js +4 -0
  486. package/src/index.js +1 -0
  487. package/src/utils/props/textInputProps.js +1 -0
@@ -4,45 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectHorizontalScrollTokens = exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
-
14
10
  var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
-
16
11
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
17
-
18
12
  var _ThemeProvider = require("../ThemeProvider");
19
-
20
13
  var _utils = require("../utils");
21
-
22
14
  var _ScrollViewEnd = _interopRequireDefault(require("./ScrollViewEnd"));
23
-
24
15
  var _itemPositions = require("./itemPositions");
25
-
26
16
  var _jsxRuntime = require("react/jsx-runtime");
27
-
28
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
30
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
34
20
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
35
21
  const tokenKeys = ['nextIcon', 'previousIcon', 'gutter', 'borderBottomWidth', 'borderBottomColor', 'buttonClearance'];
36
-
37
22
  const selectHorizontalScrollTokens = (themeTokens, prefix) => (0, _utils.selectTokens)(tokenKeys, themeTokens, prefix);
23
+
38
24
  /**
39
25
  * Base component that scrolls horizontally and displays left and right buttons if
40
26
  * there is content to the left and the right which can be scrolled to.
41
27
  *
42
28
  * @TODO revisit `ScrollButton` after IconButton is stable.
43
29
  */
44
-
45
-
46
30
  exports.selectHorizontalScrollTokens = selectHorizontalScrollTokens;
47
31
  const HorizontalScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
48
32
  let {
@@ -59,15 +43,14 @@ const HorizontalScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
59
43
  borderBottomWidth,
60
44
  borderBottomColor,
61
45
  buttonClearance = 0
62
- } = (0, _ThemeProvider.validateThemeTokens)((0, _ThemeProvider.resolveThemeTokens)(tokens), // Allow missing icons
46
+ } = (0, _ThemeProvider.validateThemeTokens)((0, _ThemeProvider.resolveThemeTokens)(tokens),
47
+ // Allow missing icons
63
48
  (0, _utils.getTokensSetPropType)(tokenKeys, {
64
49
  partial: true
65
50
  }), 'HorizontalScroll');
66
51
  const [containerWidth, setContainerWidth] = (0, _react.useState)(0);
67
52
  const [contentWidth, setContentWidth] = (0, _react.useState)(0);
68
-
69
53
  const handleContentWidth = width => setContentWidth(width);
70
-
71
54
  const handleContainerLayout = _ref2 => {
72
55
  let {
73
56
  nativeEvent: {
@@ -77,12 +60,11 @@ const HorizontalScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
77
60
  }
78
61
  } = _ref2;
79
62
  return setContainerWidth(width);
80
- }; // Update the scroll position only when scrolling actions ends to minimally rerender
81
- // and update which buttons are conditionally rendered.
82
-
63
+ };
83
64
 
65
+ // Update the scroll position only when scrolling actions ends to minimally rerender
66
+ // and update which buttons are conditionally rendered.
84
67
  const [scrollOffset, setScrollOffset] = (0, _react.useState)(0);
85
-
86
68
  const handleScrollEnd = _ref3 => {
87
69
  let {
88
70
  nativeEvent: {
@@ -93,22 +75,18 @@ const HorizontalScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
93
75
  } = _ref3;
94
76
  setScrollOffset(x);
95
77
  };
96
-
97
78
  const scrollMax = Math.max(0, contentWidth - containerWidth);
98
79
  const showNextButton = scrollOffset < scrollMax;
99
80
  const showPreviousButton = scrollOffset > 0;
100
81
  const scrollRef = (0, _react.useRef)(null);
101
-
102
82
  const scrollTo = targetX => {
103
83
  var _scrollRef$current;
104
-
105
84
  if (typeof ((_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollTo) === 'function') {
106
85
  const x = (0, _itemPositions.getItemPositionScrollTarget)(targetX, scrollMax, itemPositions.positions, buttonClearance);
107
86
  scrollRef.current.scrollTo({
108
87
  x,
109
88
  animated: true
110
89
  });
111
-
112
90
  if (_Platform.default.OS === 'android') {
113
91
  // React Native calls onScrollMomentumEnd after scrollTo for iOS, but not Android.
114
92
  // See https://github.com/facebook/react-native/issues/26661
@@ -116,38 +94,33 @@ const HorizontalScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
116
94
  setTimeout(() => setScrollOffset(x), 300);
117
95
  }
118
96
  }
119
- }; // Make scrollTo and relevant co-ordinates available to any component with an interest in itemPositions.
97
+ };
98
+ // Make scrollTo and relevant co-ordinates available to any component with an interest in itemPositions.
120
99
  // ItemPositions is a mutable ref object intended to have its properties mutated without any rerenders.
121
-
122
100
  /* eslint-disable-next-line no-param-reassign */
123
-
124
-
125
101
  itemPositions.scrollTo = scrollTo;
126
102
  /* eslint-disable-next-line no-param-reassign */
127
-
128
103
  itemPositions.containerWidth = containerWidth;
129
104
  /* eslint-disable-next-line no-param-reassign */
130
-
131
105
  itemPositions.contentWidth = contentWidth;
132
106
  /* eslint-disable-next-line no-param-reassign */
133
-
134
107
  itemPositions.scrollOffset = scrollOffset;
135
108
  const hasWidths = itemPositions.contentWidth > 0 && itemPositions.contentWidth > 0;
136
109
  (0, _react.useEffect)(() => {
137
- if (hasWidths) itemPositions.setIsReady(true); // itemPositions is a ref object so this should occur only when elements' widths are set in state
138
- }, [hasWidths, itemPositions]); // When scrolling, allow clearance around scroll buttons, so e.g. this...
110
+ if (hasWidths) itemPositions.setIsReady(true);
111
+ // itemPositions is a ref object so this should occur only when elements' widths are set in state
112
+ }, [hasWidths, itemPositions]);
113
+
114
+ // When scrolling, allow clearance around scroll buttons, so e.g. this...
139
115
  // (<-) Item 5 Item 6 Item 7 Item 8 It(->)
140
116
  // ...doesn't scroll like this with Item 9 never being properly visible:
141
117
  // (<-)em 9 Item 10 Item 11 Item 12 Item (->)
142
-
143
118
  const scrollDistance = containerWidth - buttonClearance * 2;
144
-
145
119
  const scrollNext = () => scrollTo(scrollOffset + scrollDistance);
120
+ const scrollPrevious = () => scrollTo(scrollOffset - scrollDistance);
146
121
 
147
- const scrollPrevious = () => scrollTo(scrollOffset - scrollDistance); // On Web, being scrollable in one direction prevents overflow: visible in the other direction.
122
+ // On Web, being scrollable in one direction prevents overflow: visible in the other direction.
148
123
  // Apply a fixed margin gutter that tab highlight effects can overhang without getting trimmed.
149
-
150
-
151
124
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
152
125
  ref: ref,
153
126
  style: staticStyles.container,
@@ -178,7 +151,6 @@ const HorizontalScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
178
151
  });
179
152
  });
180
153
  HorizontalScroll.displayName = 'HorizontalScroll';
181
-
182
154
  const staticStyles = _StyleSheet.default.create({
183
155
  scrollContainer: {
184
156
  // Gives inner container width from content, allowing it to exceed its container's width
@@ -190,8 +162,8 @@ const staticStyles = _StyleSheet.default.create({
190
162
  justifyContent: 'center'
191
163
  }
192
164
  });
193
-
194
- HorizontalScroll.propTypes = { ...selectedSystemPropTypes,
165
+ HorizontalScroll.propTypes = {
166
+ ...selectedSystemPropTypes,
195
167
  itemPositions: _itemPositions.itemPositionsPropType,
196
168
  ScrollButton: _propTypes.default.elementType,
197
169
  tokens: (0, _utils.getTokensSetPropType)(tokenKeys, {
@@ -4,31 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
13
-
14
10
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
15
-
16
11
  var _utils = require("../utils");
17
-
18
12
  var _ThemeProvider = require("../ThemeProvider");
19
-
20
13
  var _IconButton = _interopRequireDefault(require("../IconButton"));
21
-
22
14
  var _dictionary = _interopRequireDefault(require("./dictionary"));
23
-
24
15
  var _jsxRuntime = require("react/jsx-runtime");
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
19
  const selectContainerStyles = _ref => {
33
20
  let {
34
21
  offset
@@ -37,6 +24,7 @@ const selectContainerStyles = _ref => {
37
24
  marginTop: offset ? -offset : 0
38
25
  };
39
26
  };
27
+
40
28
  /**
41
29
  * Button within a Tabs component showing users that content is available to the left or
42
30
  * right, scrolling a screen's worth of content left or right when pressed.
@@ -45,8 +33,6 @@ const selectContainerStyles = _ref => {
45
33
  *
46
34
  * @TODO when IconButton is complete and stable revisit this and update interaction state styles.
47
35
  */
48
-
49
-
50
36
  const HorizontalScrollButton = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
51
37
  let {
52
38
  direction = 'next',
@@ -79,7 +65,6 @@ const HorizontalScrollButton = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref)
79
65
  });
80
66
  });
81
67
  HorizontalScrollButton.displayName = 'HorizontalScrollButton';
82
-
83
68
  const staticStyles = _StyleSheet.default.create({
84
69
  absolute: {
85
70
  position: 'absolute'
@@ -91,7 +76,6 @@ const staticStyles = _StyleSheet.default.create({
91
76
  right: 0
92
77
  }
93
78
  });
94
-
95
79
  HorizontalScrollButton.propTypes = {
96
80
  tokens: (0, _utils.getTokensPropType)('HorizontalScrollButton'),
97
81
  variant: _utils.variantProp.propType,
@@ -4,24 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
13
-
14
10
  var _lodash = _interopRequireDefault(require("lodash.debounce"));
15
-
16
11
  var _jsxRuntime = require("react/jsx-runtime");
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
-
22
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
-
24
15
  const DEBOUNCE_MS = 100;
16
+
25
17
  /**
26
18
  * A wrapper for ScrollView that supports an `onScrollEnd` function.
27
19
  *
@@ -29,7 +21,6 @@ const DEBOUNCE_MS = 100;
29
21
  * so we need to work around it with debouncing on `onScroll`. See:
30
22
  * https://github.com/necolas/react-native-web/issues/1021
31
23
  */
32
-
33
24
  const ScrollViewEnd = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
34
25
  let {
35
26
  onScrollEnd,
@@ -39,14 +30,15 @@ const ScrollViewEnd = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
39
30
  // Return debounced function directly from useCallback so it has .cancel method etc.
40
31
  // Linter complains this stops it automatically scanning the deps, but we can check them manually.
41
32
  // eslint-disable-next-line react-hooks/exhaustive-deps
42
- const debounceScrollEnd = (0, _react.useCallback)((0, _lodash.default)(event => onScrollEnd(event), DEBOUNCE_MS), [onScrollEnd]); // Call any onScroll handler immediately, and any onScrollEnd handler after 100ms of no scrolling
33
+ const debounceScrollEnd = (0, _react.useCallback)((0, _lodash.default)(event => onScrollEnd(event), DEBOUNCE_MS), [onScrollEnd]);
43
34
 
35
+ // Call any onScroll handler immediately, and any onScrollEnd handler after 100ms of no scrolling
44
36
  const handleScroll = event => {
45
37
  if (typeof onScroll === 'function') onScroll(event);
46
38
  if (typeof onScrollEnd === 'function') debounceScrollEnd(event);
47
- }; // Cancel any lingering debounce timeouts on dismount
48
-
39
+ };
49
40
 
41
+ // Cancel any lingering debounce timeouts on dismount
50
42
  (0, _react.useEffect)(() => debounceScrollEnd.cancel);
51
43
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollView.default, {
52
44
  ref: ref,
@@ -4,27 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
13
-
14
10
  var _jsxRuntime = require("react/jsx-runtime");
15
-
16
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
12
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
-
20
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
-
22
14
  /**
23
15
  * A wrapper for ScrollView that supports an `onScrollEnd` function.
24
16
  *
25
17
  * React Native has two scroll end handlers, we want to treat them both the same.
26
- */
27
- const ScrollViewEnd = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
18
+ */const ScrollViewEnd = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
28
19
  let {
29
20
  onScrollEnd,
30
21
  ...props
@@ -10,19 +10,12 @@ Object.defineProperty(exports, "HorizontalScrollButton", {
10
10
  }
11
11
  });
12
12
  exports.horizontalScrollUtils = exports.default = void 0;
13
-
14
13
  var _HorizontalScroll = _interopRequireWildcard(require("./HorizontalScroll"));
15
-
16
14
  var _itemPositions = require("./itemPositions");
17
-
18
15
  var _HorizontalScrollButton = _interopRequireDefault(require("./HorizontalScrollButton"));
19
-
20
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
19
  var _default = _HorizontalScroll.default;
27
20
  exports.default = _default;
28
21
  const horizontalScrollUtils = {
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useItemPositions = exports.itemPositionsPropType = exports.getItemPositionScrollTarget = exports.getItemPositionLayoutHandler = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Utilities to assist scrolling a parent so that it snaps neatly to an appropriate child.
15
11
 
16
12
  /**
@@ -43,20 +39,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
43
39
  const getItemPositionScrollTarget = function (x, scrollMax, positions) {
44
40
  let buttonClearance = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
45
41
  if (x <= 0) return 0;
46
- if (x >= scrollMax) return scrollMax; // If not scrolling all the way to the start or end, stop
47
- // where the first item is not coverred by the scroll previous button
42
+ if (x >= scrollMax) return scrollMax;
48
43
 
44
+ // If not scrolling all the way to the start or end, stop
45
+ // where the first item is not coverred by the scroll previous button
49
46
  const targetItem = Object.values(positions).find(_ref => {
50
47
  let {
51
48
  start,
52
49
  end
53
50
  } = _ref;
54
51
  return start <= x && end > x;
55
- }); // If there's no target item we're landing at a gap between items
52
+ });
56
53
 
54
+ // If there's no target item we're landing at a gap between items
57
55
  const targetX = targetItem ? targetItem.start : x;
58
56
  return Math.max(0, targetX - buttonClearance);
59
57
  };
58
+
60
59
  /**
61
60
  * Returns a handler for React Native's `onLayout` which updates the values of
62
61
  * the ref object returned from `useItemPositions`.
@@ -65,10 +64,7 @@ const getItemPositionScrollTarget = function (x, scrollMax, positions) {
65
64
  * @param {number} index
66
65
  * @returns {function}
67
66
  */
68
-
69
-
70
67
  exports.getItemPositionScrollTarget = getItemPositionScrollTarget;
71
-
72
68
  const getItemPositionLayoutHandler = (positions, index) => {
73
69
  const handleLayout = _ref2 => {
74
70
  let {
@@ -79,16 +75,15 @@ const getItemPositionLayoutHandler = (positions, index) => {
79
75
  }
80
76
  }
81
77
  } = _ref2;
82
-
83
78
  /* eslint-disable-next-line no-param-reassign */
84
79
  positions[index] = {
85
80
  start: x,
86
81
  end: x + width
87
82
  };
88
83
  };
89
-
90
84
  return handleLayout;
91
85
  };
86
+
92
87
  /**
93
88
  * Wrapper for `useRef` which gives a mutable object in which item start/end coordinates,
94
89
  * scrollTo method and content/container widths may be set and updated without causing a re-render.
@@ -97,10 +92,7 @@ const getItemPositionLayoutHandler = (positions, index) => {
97
92
  * - current ref object `{ positions, contentWidth, containerWidth, scrollOffset, scrollTo, setIsReady }`
98
93
  * - boolean that updates to `true` (causing a re-render) after the first time `setIsReady` is called
99
94
  */
100
-
101
-
102
95
  exports.getItemPositionLayoutHandler = getItemPositionLayoutHandler;
103
-
104
96
  const useItemPositions = () => {
105
97
  const [isReady, setIsReady] = (0, _react.useState)(false);
106
98
  return [(0, _react.useRef)({
@@ -112,13 +104,11 @@ const useItemPositions = () => {
112
104
  setIsReady
113
105
  }).current, isReady];
114
106
  };
107
+
115
108
  /**
116
109
  * PropType for the ref object returned by `useItemPositions`
117
110
  */
118
-
119
-
120
111
  exports.useItemPositions = useItemPositions;
121
-
122
112
  const itemPositionsPropType = _propTypes.default.exact({
123
113
  positions: _propTypes.default.objectOf(_propTypes.default.shape({
124
114
  start: _propTypes.default.number,
@@ -130,5 +120,4 @@ const itemPositionsPropType = _propTypes.default.exact({
130
120
  scrollOffset: _propTypes.default.number,
131
121
  setIsReady: _propTypes.default.func
132
122
  });
133
-
134
123
  exports.itemPositionsPropType = itemPositionsPropType;
package/lib/Icon/Icon.js CHANGED
@@ -4,27 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.iconComponentPropTypes = exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
11
-
12
9
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
13
-
14
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
-
16
11
  var _ThemeProvider = require("../ThemeProvider");
17
-
18
12
  var _utils = require("../utils");
19
-
20
13
  var _jsxRuntime = require("react/jsx-runtime");
21
-
22
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
-
26
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
-
28
17
  const Icon = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
29
18
  let {
30
19
  icon: IconComponent,
@@ -43,7 +32,8 @@ const Icon = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
43
32
  color: themeTokens.color
44
33
  });
45
34
  return _Platform.default.OS === 'web' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
46
- ref: ref // eslint-disable-next-line react-native/no-inline-styles
35
+ ref: ref
36
+ // eslint-disable-next-line react-native/no-inline-styles
47
37
  ,
48
38
  style: {
49
39
  // TODO: systematise animations.
@@ -60,17 +50,14 @@ Icon.displayName = 'Icon';
60
50
  const iconComponentPropTypes = {
61
51
  variant: _utils.variantProp.propType,
62
52
  tokens: (0, _utils.getTokensPropType)('Icon'),
63
-
64
53
  /**
65
54
  * Descriptive label used in web SVG title tag for accessibility
66
55
  */
67
56
  accessibilityLabel: _propTypes.default.string,
68
-
69
57
  /**
70
58
  * controls whether the icon size should be proportionate to any accessibility-related font scaling.
71
59
  */
72
60
  scalesWithText: _propTypes.default.bool,
73
-
74
61
  /**
75
62
  * Custom style object to be applied to the icon component.
76
63
  * This is useful for overriding the default icon style but for cases where desires styles are not available as tokens.
@@ -83,8 +70,8 @@ const iconComponentPropTypes = {
83
70
  style: _propTypes.default.object
84
71
  };
85
72
  exports.iconComponentPropTypes = iconComponentPropTypes;
86
- Icon.propTypes = { ...iconComponentPropTypes,
87
-
73
+ Icon.propTypes = {
74
+ ...iconComponentPropTypes,
88
75
  /**
89
76
  * A valid UDS icon component imported from a UDS palette
90
77
  * (e.g.) `import { MyIcon } from @telus-uds/palette-<brand>/build/web/icons`
@@ -4,29 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
-
14
10
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
15
-
16
11
  var _Icon = _interopRequireWildcard(require("./Icon"));
17
-
18
12
  var _StackView = require("../StackView");
19
-
20
13
  var _utils = require("../utils");
21
-
22
14
  var _jsxRuntime = require("react/jsx-runtime");
23
-
24
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
30
18
  /**
31
19
  * Returns an icon and some text with a sized gap between them. This is a utility component
32
20
  * intended for use when creating components, not intended for use in applications on its own.
@@ -34,10 +22,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
34
22
  * IconText does not wrap its children, so should be used either:
35
23
  * - inline within a <Text> element
36
24
  * - within a container with `flexDirection: 'row'`
37
- */
38
- const IconText = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
25
+ */const IconText = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
39
26
  var _iconProps$tokens;
40
-
41
27
  let {
42
28
  space,
43
29
  iconPosition = 'left',
@@ -50,9 +36,10 @@ const IconText = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
50
36
  icon: IconComponent,
51
37
  scalesWithText: true,
52
38
  ...iconProps
53
- }); // Inline images on Android are always baseline-aligned which makes them look misaligned - offset it.
54
- // See abandoned issue https://github.com/facebook/react-native/issues/6529
39
+ });
55
40
 
41
+ // Inline images on Android are always baseline-aligned which makes them look misaligned - offset it.
42
+ // See abandoned issue https://github.com/facebook/react-native/issues/6529
56
43
  const size = (iconProps === null || iconProps === void 0 ? void 0 : (_iconProps$tokens = iconProps.tokens) === null || _iconProps$tokens === void 0 ? void 0 : _iconProps$tokens.size) ?? 0;
57
44
  const iconAdjustedAndriod = /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
58
45
  style: {
@@ -79,39 +66,32 @@ const IconText = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
79
66
  });
80
67
  IconText.displayName = 'IconText';
81
68
  IconText.propTypes = {
82
- /* eslint-disable react/no-unused-prop-types */
83
- // eslint is having hard time seeing these props through forwardRef
84
-
69
+ /* eslint-disable react/no-unused-prop-types */ // eslint is having hard time seeing these props through forwardRef
85
70
  /**
86
71
  * Amount of space to separate the text content and icon. Uses the themes's spacing scale
87
72
  * (see useSpacingScale for more info).
88
73
  */
89
74
  space: _utils.spacingProps.types.spacingValue,
90
-
91
75
  /**
92
76
  * Whether the icon should be to the left of the content or the right of the content.
93
77
  */
94
78
  iconPosition: _propTypes.default.oneOf(['left', 'right']),
95
-
96
79
  /**
97
80
  * A valid UDS icon component imported from a UDS palette.
98
81
  */
99
82
  icon: _propTypes.default.elementType,
100
-
101
83
  /**
102
84
  * Props that will be passed to the icon component. By default the icon's `scalesWithText`
103
85
  * prop will be set as "true" so that the icon continues to match the size of the text
104
86
  * if users use accessibility settings to increase text size.
105
87
  */
106
88
  iconProps: _propTypes.default.exact(_Icon.iconComponentPropTypes),
107
-
108
89
  /**
109
90
  * Content to be rendered alongside the Icon component. Usually this should be a
110
91
  * `<Typography>` component, or a component that renders `<Text>`.
111
92
  */
112
93
  children: _propTypes.default.node
113
94
  /* eslint-enable react/no-unused-prop-types */
114
-
115
95
  };
116
96
  var _default = IconText;
117
97
  exports.default = _default;
package/lib/Icon/index.js CHANGED
@@ -16,16 +16,10 @@ Object.defineProperty(exports, "iconComponentPropTypes", {
16
16
  return _Icon.iconComponentPropTypes;
17
17
  }
18
18
  });
19
-
20
19
  var _Icon = _interopRequireWildcard(require("./Icon"));
21
-
22
20
  var _IconText = _interopRequireDefault(require("./IconText"));
23
-
24
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
30
24
  var _default = _Icon.default;
31
25
  exports.default = _default;