@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
@@ -24,7 +24,6 @@ const {
24
24
  Col,
25
25
  Row
26
26
  } = FlexGrid;
27
-
28
27
  const selectSubTitleTokens = _ref => {
29
28
  let {
30
29
  subtitleColor
@@ -33,7 +32,6 @@ const selectSubTitleTokens = _ref => {
33
32
  color: subtitleColor
34
33
  };
35
34
  };
36
-
37
35
  const selectDividerToknes = _ref2 => {
38
36
  let {
39
37
  dividerColor,
@@ -48,7 +46,6 @@ const selectDividerToknes = _ref2 => {
48
46
  weight
49
47
  };
50
48
  };
51
-
52
49
  const MultiSelectFilter = _ref3 => {
53
50
  let {
54
51
  label,
@@ -87,9 +84,7 @@ const MultiSelectFilter = _ref3 => {
87
84
  const [maxWidth, setMaxWidth] = useState(false);
88
85
  const themeTokens = useThemeTokens('ButtonDropdown', tokens, variant);
89
86
  const getItemTokens = useThemeTokensCallback('ButtonDropdown', tokens, variant);
90
-
91
87
  const getButtonTokens = buttonState => selectTokens('Button', getItemTokens(buttonState));
92
-
93
88
  const getCopy = useCopy({
94
89
  dictionary,
95
90
  copy
@@ -116,48 +111,42 @@ const MultiSelectFilter = _ref3 => {
116
111
  subHeaderLineHeight,
117
112
  minHeight,
118
113
  minWidth
119
- } = useThemeTokens('MultiSelectFilter', tokens, { ...variant,
114
+ } = useThemeTokens('MultiSelectFilter', tokens, {
115
+ ...variant,
120
116
  maxHeight,
121
117
  maxWidth
122
118
  }, {
123
119
  viewport
124
120
  });
125
121
  const uniqueFields = ['id', 'label'];
126
-
127
122
  if (!containUniqueFields(items, uniqueFields)) {
128
123
  throw new Error(`MultiSelectFilter items must have unique ${uniqueFields.join(', ')}`);
129
- } // Pass an object of relevant component state as first argument for any passed-in press handlers
130
-
131
-
124
+ }
125
+ // Pass an object of relevant component state as first argument for any passed-in press handlers
132
126
  const pressHandlers = getPressHandlersWithArgs(rest, [{
133
127
  id,
134
128
  label,
135
129
  currentValues
136
130
  }]);
137
-
138
131
  const handleChange = event => {
139
132
  if (pressHandlers.onPress) pressHandlers === null || pressHandlers === void 0 ? void 0 : pressHandlers.onPress(event);
140
133
  setIsOpen(!isOpen);
141
134
  };
142
-
143
135
  const onApply = e => {
144
136
  setValues(e);
145
137
  setIsOpen(false);
146
138
  onConfirm(e);
147
139
  };
148
-
149
140
  const onClear = () => {
150
141
  setCheckedIds(() => []);
151
142
  setValues([]);
152
143
  setIsOpen(false);
153
144
  onCancel();
154
145
  };
155
-
156
146
  const onClose = () => {
157
147
  setIsOpen(false);
158
148
  onCancel();
159
149
  };
160
-
161
150
  const {
162
151
  align,
163
152
  offsets
@@ -213,7 +202,8 @@ const MultiSelectFilter = _ref3 => {
213
202
  onClose: onClose,
214
203
  children: [/*#__PURE__*/_jsx(Row, {
215
204
  children: /*#__PURE__*/_jsx(Typography, {
216
- tokens: { ...headerStyles,
205
+ tokens: {
206
+ ...headerStyles,
217
207
  lineHeight: headerLineHeight
218
208
  },
219
209
  children: getCopy('filterByLabel').replace(/%\{filterCategory\}/g, label.toLowerCase())
@@ -223,7 +213,8 @@ const MultiSelectFilter = _ref3 => {
223
213
  space: 5
224
214
  }), /*#__PURE__*/_jsx(Row, {
225
215
  children: /*#__PURE__*/_jsx(Typography, {
226
- tokens: { ...subeHeaderStyles,
216
+ tokens: {
217
+ ...subeHeaderStyles,
227
218
  lineHeight: subHeaderLineHeight
228
219
  },
229
220
  children: subtitle
@@ -247,7 +238,8 @@ const MultiSelectFilter = _ref3 => {
247
238
  }, i))
248
239
  })
249
240
  }), /*#__PURE__*/_jsx(Divider, {
250
- variant: selectDividerToknes({ ...themeTokens,
241
+ variant: selectDividerToknes({
242
+ ...themeTokens,
251
243
  width: 'full'
252
244
  }),
253
245
  space: 4
@@ -288,7 +280,8 @@ const MultiSelectFilter = _ref3 => {
288
280
  maxWidthSize: maxWidthSize,
289
281
  minHeight: minHeight,
290
282
  minWidth: minWidth,
291
- tokens: { ...tokens,
283
+ tokens: {
284
+ ...tokens,
292
285
  maxWidth
293
286
  },
294
287
  copy: copy,
@@ -298,7 +291,8 @@ const MultiSelectFilter = _ref3 => {
298
291
  children: /*#__PURE__*/_jsx(View, {
299
292
  style: styles.textContainerStyle,
300
293
  children: /*#__PURE__*/_jsx(Typography, {
301
- tokens: { ...headerStyles,
294
+ tokens: {
295
+ ...headerStyles,
302
296
  lineHeight: headerLineHeight
303
297
  },
304
298
  children: getCopy('filterByLabel').replace(/%\{filterCategory\}/g, label.toLowerCase())
@@ -309,7 +303,8 @@ const MultiSelectFilter = _ref3 => {
309
303
  space: 5
310
304
  }), /*#__PURE__*/_jsx(Row, {
311
305
  children: /*#__PURE__*/_jsx(Typography, {
312
- tokens: { ...subeHeaderStyles,
306
+ tokens: {
307
+ ...subeHeaderStyles,
313
308
  lineHeight: subHeaderLineHeight
314
309
  },
315
310
  children: subtitle
@@ -333,7 +328,8 @@ const MultiSelectFilter = _ref3 => {
333
328
  }, i))
334
329
  })
335
330
  }), /*#__PURE__*/_jsx(Divider, {
336
- variant: selectDividerToknes({ ...themeTokens,
331
+ variant: selectDividerToknes({
332
+ ...themeTokens,
337
333
  width: 'full'
338
334
  }),
339
335
  space: 4
@@ -369,14 +365,14 @@ const MultiSelectFilter = _ref3 => {
369
365
  })]
370
366
  });
371
367
  };
372
-
373
368
  MultiSelectFilter.displayName = 'MultiSelectFilter';
374
369
  const styles = StyleSheet.create({
375
370
  textContainerStyle: {
376
371
  marginRight: 52
377
372
  }
378
- }); // If a language dictionary entry is provided, it must contain every key
373
+ });
379
374
 
375
+ // If a language dictionary entry is provided, it must contain every key
380
376
  const dictionaryContentShape = PropTypes.shape({
381
377
  filterByLabel: PropTypes.string.isRequired,
382
378
  applyButtonLabel: PropTypes.string.isRequired,
@@ -387,28 +383,23 @@ MultiSelectFilter.propTypes = {
387
383
  * The text displayed to the user in a ButtonDropdown.
388
384
  */
389
385
  label: PropTypes.string.isRequired,
390
-
391
386
  /**
392
387
  * The text for the subtitle
393
388
  */
394
389
  subtitle: PropTypes.string,
395
-
396
390
  /**
397
391
  * An optional unique string may be provided to identify the ButtonDropdown.
398
392
  * If not provided, the label is used.
399
393
  */
400
394
  id: PropTypes.string,
401
-
402
395
  /**
403
396
  * Sets the variant for ButtonDropdown element.
404
397
  */
405
398
  variant: variantProp.propType,
406
-
407
399
  /**
408
400
  * Sets the tokens for MultiSelectFilter element.
409
401
  */
410
402
  tokens: getTokensPropType('MultiSelectFilter'),
411
-
412
403
  /**
413
404
  * The options a user may select.
414
405
  */
@@ -417,14 +408,12 @@ MultiSelectFilter.propTypes = {
417
408
  * The text displayed to the user with a checkbox, describing this option.
418
409
  */
419
410
  label: PropTypes.string.isRequired,
420
-
421
411
  /**
422
412
  * An optional unique string may be provided to identify this option.
423
413
  * If not provided, the label is used.
424
414
  */
425
415
  id: PropTypes.string
426
416
  })),
427
-
428
417
  /**
429
418
  * If the selected item(s) in the checkbox group(s) are to be controlled externally by
430
419
  * a parent component, pass an array of strings as well as an `onChange` handler.
@@ -432,45 +421,37 @@ MultiSelectFilter.propTypes = {
432
421
  * expects its state to be handled via `onChange` and so doesn't handle it itself.
433
422
  */
434
423
  values: PropTypes.arrayOf(PropTypes.string),
435
-
436
424
  /**
437
425
  * If `values` is not passed, making the MultiSelectFilter an "uncontrolled" component
438
426
  * managing its own selected state, a default set of selections may be provided.
439
427
  * Changing the `initialValues` does not change the user's selections.
440
428
  */
441
429
  initialValues: PropTypes.arrayOf(PropTypes.string),
442
-
443
430
  /**
444
431
  * If provided, sets a maximum number of items a user may select at once.
445
432
  */
446
433
  maxValues: PropTypes.number,
447
-
448
434
  /**
449
435
  * If provided sets maxHeight to be active
450
436
  */
451
437
  maxHeight: PropTypes.bool,
452
-
453
438
  /**
454
439
  * If provided, this function is called when the current selection is changed
455
440
  * and is passed an array of the `id`s of all currently selected `items`.
456
441
  */
457
442
  onChange: PropTypes.func,
458
-
459
443
  /**
460
444
  * If provided, this function is called when the selection is confirmed.
461
445
  */
462
446
  onConfirm: PropTypes.func,
463
-
464
447
  /**
465
448
  * If provided, this function is called when `MultiSelectFilter` is closed.
466
449
  * */
467
450
  onCancel: PropTypes.func,
468
-
469
451
  /**
470
452
  * Select English or French copy for the accessible label.
471
453
  */
472
454
  copy: PropTypes.oneOf(['en', 'fr']),
473
-
474
455
  /**
475
456
  * Custom dictionary containing the labels
476
457
  */
@@ -478,19 +459,16 @@ MultiSelectFilter.propTypes = {
478
459
  en: dictionaryContentShape,
479
460
  fr: dictionaryContentShape
480
461
  }),
481
-
482
462
  /**
483
463
  * If true, the ButtonDropdown cannot be selected by the user and simply show their current state.
484
464
  */
485
465
  readOnly: PropTypes.string,
486
-
487
466
  /**
488
467
  * If true, the MultiSelectFilter cannot be interacted with, ButtonDropdown is
489
468
  * set as `disabled` and if the theme supports `inactive` appearances rules, these
490
469
  * are applied.
491
470
  */
492
471
  inactive: PropTypes.string,
493
-
494
472
  /**
495
473
  * Sets the maximum number of items in one column. If number of items are more
496
474
  * than the `rowLimit`, they will be rendered in 2 columns.
@@ -11,14 +11,13 @@ import { useViewport } from '../ViewportProvider';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
13
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
14
-
15
- const selectContainerStyles = tokens => ({ ...tokens
14
+ const selectContainerStyles = tokens => ({
15
+ ...tokens
16
16
  });
17
-
18
- const selectTextStyles = (tokens, themeOptions) => applyTextStyles({ ...selectTokens('Typography', tokens),
17
+ const selectTextStyles = (tokens, themeOptions) => applyTextStyles({
18
+ ...selectTokens('Typography', tokens),
19
19
  themeOptions
20
20
  });
21
-
22
21
  const selectIconProps = _ref => {
23
22
  let {
24
23
  iconSize,
@@ -29,7 +28,6 @@ const selectIconProps = _ref => {
29
28
  color: iconColor
30
29
  };
31
30
  };
32
-
33
31
  const selectIconContainerStyles = _ref2 => {
34
32
  let {
35
33
  iconGap
@@ -39,7 +37,6 @@ const selectIconContainerStyles = _ref2 => {
39
37
  placeContent: 'center'
40
38
  };
41
39
  };
42
-
43
40
  const selectDismissIconProps = _ref3 => {
44
41
  let {
45
42
  dismissIconSize,
@@ -50,7 +47,6 @@ const selectDismissIconProps = _ref3 => {
50
47
  color: dismissIconColor
51
48
  };
52
49
  };
53
-
54
50
  const selectDismissButtonContainerStyles = _ref4 => {
55
51
  let {
56
52
  dismissButtonGap
@@ -60,10 +56,10 @@ const selectDismissButtonContainerStyles = _ref4 => {
60
56
  placeContent: 'center'
61
57
  };
62
58
  };
63
-
64
59
  const selectContentContainerStyle = maxWidth => ({
65
60
  width: maxWidth || '100%'
66
61
  });
62
+
67
63
  /**
68
64
  * A banner that highlights important messages:
69
65
  * - Status message to show there is an error or outage of services
@@ -115,8 +111,6 @@ const selectContentContainerStyle = maxWidth => ({
115
111
  * Use full-width `Notifications` to show system-based messages coming from the application, not in response to user action.
116
112
  * Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
117
113
  */
118
-
119
-
120
114
  const Notification = /*#__PURE__*/forwardRef((_ref5, ref) => {
121
115
  let {
122
116
  children,
@@ -141,11 +135,9 @@ const Notification = /*#__PURE__*/forwardRef((_ref5, ref) => {
141
135
  themeOptions
142
136
  } = useTheme();
143
137
  const contentMaxWidth = useResponsiveProp(themeOptions === null || themeOptions === void 0 ? void 0 : themeOptions.contentMaxWidth);
144
-
145
138
  if (isDismissed) {
146
139
  return null;
147
140
  }
148
-
149
141
  const textStyles = selectTextStyles(themeTokens, themeOptions);
150
142
  const content = wrapStringsInText(typeof children === 'function' ? children({
151
143
  textStyles,
@@ -158,9 +150,7 @@ const Notification = /*#__PURE__*/forwardRef((_ref5, ref) => {
158
150
  dismissIcon: DismissIconComponent,
159
151
  dismissIconColor
160
152
  } = themeTokens;
161
-
162
153
  const onDismissPress = () => setIsDismissed(true);
163
-
164
154
  return /*#__PURE__*/_jsx(View, {
165
155
  ref: ref,
166
156
  style: [staticStyles.container, selectContainerStyles(themeTokens)],
@@ -171,7 +161,8 @@ const Notification = /*#__PURE__*/forwardRef((_ref5, ref) => {
171
161
  style: staticStyles.contentContainer,
172
162
  children: [IconComponent && /*#__PURE__*/_jsx(View, {
173
163
  style: selectIconContainerStyles(themeTokens),
174
- children: /*#__PURE__*/_jsx(IconComponent, { ...selectIconProps(themeTokens)
164
+ children: /*#__PURE__*/_jsx(IconComponent, {
165
+ ...selectIconProps(themeTokens)
175
166
  })
176
167
  }), content && typeof content === 'function' ? content({
177
168
  textStyles,
@@ -189,7 +180,8 @@ const Notification = /*#__PURE__*/forwardRef((_ref5, ref) => {
189
180
  inverse: dismissIconColor === '#ffffff',
190
181
  size: 'small'
191
182
  },
192
- children: () => /*#__PURE__*/_jsx(DismissIconComponent, { ...selectDismissIconProps(themeTokens)
183
+ children: () => /*#__PURE__*/_jsx(DismissIconComponent, {
184
+ ...selectDismissIconProps(themeTokens)
193
185
  })
194
186
  })
195
187
  })]
@@ -197,23 +189,20 @@ const Notification = /*#__PURE__*/forwardRef((_ref5, ref) => {
197
189
  });
198
190
  });
199
191
  Notification.displayName = 'Notification';
200
- Notification.propTypes = { ...selectedSystemPropTypes,
201
-
192
+ Notification.propTypes = {
193
+ ...selectedSystemPropTypes,
202
194
  /**
203
195
  * Content of the `Notification`.
204
196
  */
205
197
  children: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]),
206
-
207
198
  /**
208
199
  * Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
209
200
  */
210
201
  system: PropTypes.bool,
211
-
212
202
  /**
213
203
  * Use the `dismissible` prop to allow users to dismiss the Notification at any time.
214
204
  */
215
205
  dismissible: PropTypes.bool,
216
-
217
206
  /**
218
207
  * Select English or French copy for the accessible label of the dismiss button.
219
208
  */
@@ -22,9 +22,7 @@ const PageButton = /*#__PURE__*/forwardRef((_ref, ref) => {
22
22
  dictionary,
23
23
  copy
24
24
  });
25
-
26
25
  const getButtonTokens = buttonState => selectTokens('Button', getTokens(buttonState));
27
-
28
26
  const activeProps = isActive ? {
29
27
  selected: true,
30
28
  ...a11yProps.nonFocusableProps,
@@ -56,18 +54,16 @@ const PageButton = /*#__PURE__*/forwardRef((_ref, ref) => {
56
54
  });
57
55
  });
58
56
  PageButton.displayName = 'PageButton';
59
- PageButton.propTypes = { ...linkProps.types,
60
-
57
+ PageButton.propTypes = {
58
+ ...linkProps.types,
61
59
  /**
62
60
  * To set custom label for the button
63
61
  */
64
62
  label: PropTypes.string,
65
-
66
63
  /**
67
64
  * To set `PageButton` to active state
68
65
  */
69
66
  isActive: PropTypes.bool,
70
-
71
67
  /**
72
68
  * To change the language for labels
73
69
  */
@@ -12,7 +12,6 @@ import SideButton from './SideButton';
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { createElement as _createElement } from "react";
14
14
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
15
-
16
15
  const selectTextStyles = (_ref, themeOptions) => {
17
16
  let {
18
17
  color,
@@ -30,7 +29,6 @@ const selectTextStyles = (_ref, themeOptions) => {
30
29
  themeOptions
31
30
  });
32
31
  };
33
-
34
32
  const Pagination = /*#__PURE__*/forwardRef((_ref2, ref) => {
35
33
  let {
36
34
  children,
@@ -94,14 +92,14 @@ const Pagination = /*#__PURE__*/forwardRef((_ref2, ref) => {
94
92
  borderColor
95
93
  }
96
94
  });
97
-
98
95
  if (items.length === 0) {
99
96
  return null;
100
- } // TODO: replace with a spacing component when https://github.com/telus/universal-design-system/pull/531 is implemented
101
- // concatenate all items to easily wrap them in identical spacing components
102
-
97
+ }
103
98
 
104
- const buttons = [showPrevious && /*#__PURE__*/_jsx(SideButton, { ...previousItemProps,
99
+ // TODO: replace with a spacing component when https://github.com/telus/universal-design-system/pull/531 is implemented
100
+ // concatenate all items to easily wrap them in identical spacing components
101
+ const buttons = [showPrevious && /*#__PURE__*/_jsx(SideButton, {
102
+ ...previousItemProps,
105
103
  direction: "previous",
106
104
  copy: copy,
107
105
  variant: sideButtonVariant,
@@ -112,12 +110,13 @@ const Pagination = /*#__PURE__*/forwardRef((_ref2, ref) => {
112
110
  const buttonLabel = `${itemIndex + 1}`;
113
111
  const itemProps = getItemProps(itemIndex);
114
112
  const ItemLinkRouter = itemProps.LinkRouter ?? LinkRouter;
115
- const itemLinkRouterProps = { ...linkRouterProps,
113
+ const itemLinkRouterProps = {
114
+ ...linkRouterProps,
116
115
  ...itemProps.linkRouterProps
117
116
  };
118
-
119
117
  if (shouldRenderButton(itemIndex)) {
120
- return /*#__PURE__*/_createElement(PageButton, { ...itemProps,
118
+ return /*#__PURE__*/_createElement(PageButton, {
119
+ ...itemProps,
121
120
  LinkRouter: ItemLinkRouter,
122
121
  linkRouterProps: itemLinkRouterProps,
123
122
  label: buttonLabel,
@@ -126,21 +125,22 @@ const Pagination = /*#__PURE__*/forwardRef((_ref2, ref) => {
126
125
  key: buttonLabel
127
126
  });
128
127
  }
129
-
130
128
  if (shouldRenderEllipsis(itemIndex)) {
131
129
  return /*#__PURE__*/_jsx(View, {
132
- style: { ...ellipisContainerStyles.container
130
+ style: {
131
+ ...ellipisContainerStyles.container
133
132
  },
134
133
  children: /*#__PURE__*/_jsx(Text, {
135
- style: { ...ellipsisTextStyles
134
+ style: {
135
+ ...ellipsisTextStyles
136
136
  },
137
137
  children: "..."
138
138
  })
139
139
  }, "...");
140
140
  }
141
-
142
141
  return null;
143
- }), showNext && /*#__PURE__*/_jsx(SideButton, { ...nextItemProps,
142
+ }), showNext && /*#__PURE__*/_jsx(SideButton, {
143
+ ...nextItemProps,
144
144
  direction: "next",
145
145
  copy: copy,
146
146
  variant: sideButtonVariant,
@@ -149,7 +149,8 @@ const Pagination = /*#__PURE__*/forwardRef((_ref2, ref) => {
149
149
  linkRouterProps: linkRouterProps
150
150
  })];
151
151
  return /*#__PURE__*/_jsx(View, {
152
- style: { ...staticStyles.container
152
+ style: {
153
+ ...staticStyles.container
153
154
  },
154
155
  ref: ref,
155
156
  ...selectProps(rest),
@@ -163,7 +164,8 @@ const Pagination = /*#__PURE__*/forwardRef((_ref2, ref) => {
163
164
  borderBottomWidth,
164
165
  ...staticStyles.container
165
166
  },
166
- children: buttons // keep the keys in-line with the page numbers regardless of which buttons are actually rendered
167
+ children: buttons
168
+ // keep the keys in-line with the page numbers regardless of which buttons are actually rendered
167
169
  .map((element, index) => [element, `page-${index + 1}`]).filter(_ref3 => {
168
170
  let [element] = _ref3;
169
171
  return element !== null;
@@ -180,22 +182,20 @@ const Pagination = /*#__PURE__*/forwardRef((_ref2, ref) => {
180
182
  Pagination.displayName = 'Pagination';
181
183
  PageButton.displayName = 'PageButton';
182
184
  Pagination.PageButton = PageButton;
183
- Pagination.propTypes = { ...selectedSystemPropTypes,
185
+ Pagination.propTypes = {
186
+ ...selectedSystemPropTypes,
184
187
  ...withLinkRouter.propTypes,
185
188
  children: componentPropType('PageButton'),
186
-
187
189
  /**
188
190
  * To change the language for labels
189
191
  */
190
192
  copy: copyPropTypes,
191
193
  variant: variantProp.propType,
192
194
  tokens: getTokensPropType('Pagination'),
193
-
194
195
  /**
195
196
  * When passed as `{{ compact: true }}`, `Pagination` does not render labels along side buttons
196
197
  */
197
198
  sideButtonVariant: variantProp.propType,
198
-
199
199
  /**
200
200
  * Custom tokens for `PaginationSideButton`
201
201
  */
@@ -7,12 +7,12 @@ import { useThemeTokensCallback } from '../ThemeProvider';
7
7
  import { useViewport } from '../ViewportProvider';
8
8
  import { copyPropTypes, hrefAttrsProp, linkProps, selectTokens, withLinkRouter } from '../utils';
9
9
  import dictionary from './dictionary';
10
- import useCopy from '../utils/useCopy'; // We need to drop the icon here since it gets rendered via children and not
10
+ import useCopy from '../utils/useCopy';
11
+
12
+ // We need to drop the icon here since it gets rendered via children and not
11
13
  // `ButtonBase` in order to tap into the state of the button; `displayLabel` flag
12
14
  // is also not needed
13
-
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
-
16
16
  const selectButtonTokens = _ref => {
17
17
  let {
18
18
  icon: _,
@@ -21,7 +21,6 @@ const selectButtonTokens = _ref => {
21
21
  } = _ref;
22
22
  return selectTokens('Button', rest);
23
23
  };
24
-
25
24
  const selectIconTokens = (_ref2, direction) => {
26
25
  let {
27
26
  color,
@@ -34,7 +33,6 @@ const selectIconTokens = (_ref2, direction) => {
34
33
  translateX: iconDisplace * (direction === 'previous' ? -1 : 1)
35
34
  };
36
35
  };
37
-
38
36
  const directionToSide = {
39
37
  previous: 'left',
40
38
  next: 'right'
@@ -64,11 +62,8 @@ const SideButton = /*#__PURE__*/forwardRef((_ref3, ref) => {
64
62
  icon,
65
63
  displayLabel
66
64
  } = getTokens(tokens, buttonVariant);
67
-
68
65
  const getButtonTokens = buttonState => selectButtonTokens(getTokens(buttonState));
69
-
70
66
  const getIconTokens = buttonState => selectIconTokens(getTokens(buttonState), direction);
71
-
72
67
  const label = direction === 'previous' ? getCopy('previousText') : getCopy('nextText');
73
68
  const accessibilityLabel = direction === 'previous' ? getCopy('previousLabel') : getCopy('nextLabel');
74
69
  const accessibilityRole = href !== undefined ? 'link' : 'button';
@@ -15,7 +15,6 @@ function usePagination(_ref) {
15
15
 
16
16
  const getItemProps = index => {
17
17
  var _items$index;
18
-
19
18
  const {
20
19
  onPress,
21
20
  href,
@@ -31,33 +30,31 @@ function usePagination(_ref) {
31
30
  tokens
32
31
  };
33
32
  };
34
-
35
33
  const windowSize = truncateAbove > 4 ? 3 : 1;
36
34
  const truncateEnabled = items.length > truncateAbove;
37
35
  const truncateWindowStart = windowSize;
38
- const truncateWindowEnd = items.length - 1 - windowSize; // basically how many items next to the currently active one do we want to render
36
+ const truncateWindowEnd = items.length - 1 - windowSize;
39
37
 
38
+ // basically how many items next to the currently active one do we want to render
40
39
  const activeWindowStart = activeItemIndex - (windowSize - 1) / 2;
41
40
  const activeWindowEnd = activeItemIndex + (windowSize - 1) / 2;
42
41
  const isFirstActive = activeItemIndex === 0;
43
- const isLastActive = activeItemIndex === items.length - 1; // start truncating when the active item is within the truncate window
42
+ const isLastActive = activeItemIndex === items.length - 1;
44
43
 
44
+ // start truncating when the active item is within the truncate window
45
45
  const isLeftTruncated = truncateEnabled && activeItemIndex >= truncateWindowStart;
46
46
  const isRightTruncated = truncateEnabled && activeItemIndex <= truncateWindowEnd;
47
-
48
47
  function shouldRenderEllipsis(itemIndex) {
49
48
  const isNextToFirst = itemIndex === 1;
50
49
  const isNextToLast = itemIndex === items.length - 2;
51
50
  return isLeftTruncated && isNextToFirst || isRightTruncated && isNextToLast;
52
51
  }
53
-
54
52
  function shouldRenderButton(itemIndex) {
55
53
  const isFirst = itemIndex === 0;
56
54
  const isLast = itemIndex === items.length - 1;
57
55
  const isInActiveWindow = itemIndex >= activeWindowStart && itemIndex <= activeWindowEnd;
58
56
  return isFirst || isLast || isInActiveWindow || !isLeftTruncated && itemIndex <= truncateWindowStart || !isRightTruncated && itemIndex >= truncateWindowEnd;
59
57
  }
60
-
61
58
  return {
62
59
  showPrevious: !isFirstActive,
63
60
  showNext: !isLastActive,
@@ -69,5 +66,4 @@ function usePagination(_ref) {
69
66
  previousItemProps: getItemProps(activeItemIndex - 1)
70
67
  };
71
68
  }
72
-
73
69
  export default usePagination;