@telus-uds/components-base 1.66.0 → 1.67.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/CHANGELOG.md +23 -3
  2. package/lib/A11yInfoProvider/index.js +5 -20
  3. package/lib/A11yText/index.js +3 -17
  4. package/lib/ActivityIndicator/Spinner.js +2 -9
  5. package/lib/ActivityIndicator/Spinner.native.js +4 -27
  6. package/lib/ActivityIndicator/index.js +1 -13
  7. package/lib/ActivityIndicator/shared.js +0 -3
  8. package/lib/Autocomplete/Autocomplete.js +34 -85
  9. package/lib/Autocomplete/Loading.js +0 -10
  10. package/lib/Autocomplete/Suggestions.js +0 -11
  11. package/lib/Autocomplete/index.js +0 -3
  12. package/lib/BaseProvider/HydrationContext.js +4 -18
  13. package/lib/BaseProvider/index.js +0 -12
  14. package/lib/Box/Box.js +10 -35
  15. package/lib/Box/index.js +0 -3
  16. package/lib/Button/Button.js +4 -13
  17. package/lib/Button/ButtonBase.js +23 -55
  18. package/lib/Button/ButtonDropdown.js +7 -32
  19. package/lib/Button/ButtonGroup.js +15 -48
  20. package/lib/Button/ButtonLink.js +3 -17
  21. package/lib/Button/index.js +0 -5
  22. package/lib/Button/propTypes.js +0 -15
  23. package/lib/Card/Card.js +3 -14
  24. package/lib/Card/CardBase.js +5 -16
  25. package/lib/Card/PressableCardBase.js +7 -30
  26. package/lib/Card/index.js +0 -7
  27. package/lib/Carousel/Carousel.js +22 -115
  28. package/lib/Carousel/CarouselContext.js +0 -14
  29. package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
  30. package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
  31. package/lib/Carousel/CarouselItem/index.js +0 -3
  32. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
  33. package/lib/Carousel/CarouselStepTracker/index.js +0 -3
  34. package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
  35. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
  36. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
  37. package/lib/Carousel/CarouselTabs/index.js +0 -3
  38. package/lib/Carousel/CarouselThumbnail.js +1 -16
  39. package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
  40. package/lib/Carousel/index.js +0 -5
  41. package/lib/Checkbox/Checkbox.js +5 -44
  42. package/lib/Checkbox/CheckboxButton.js +7 -33
  43. package/lib/Checkbox/CheckboxGroup.js +14 -45
  44. package/lib/Checkbox/CheckboxInput.js +1 -11
  45. package/lib/Checkbox/CheckboxInput.native.js +0 -2
  46. package/lib/Checkbox/index.js +0 -4
  47. package/lib/CheckboxCard/CheckboxCard.js +4 -37
  48. package/lib/CheckboxCard/index.js +0 -3
  49. package/lib/CheckboxCardGroup/CheckboxCardGroup.js +216 -0
  50. package/lib/CheckboxCardGroup/index.js +10 -0
  51. package/lib/Divider/Divider.js +13 -24
  52. package/lib/Divider/index.js +0 -3
  53. package/lib/ExpandCollapse/Accordion.js +1 -9
  54. package/lib/ExpandCollapse/Control.js +10 -32
  55. package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
  56. package/lib/ExpandCollapse/Panel.js +13 -38
  57. package/lib/ExpandCollapse/index.js +0 -5
  58. package/lib/Feedback/Feedback.js +13 -30
  59. package/lib/Feedback/index.js +0 -3
  60. package/lib/Fieldset/Fieldset.js +6 -37
  61. package/lib/Fieldset/FieldsetContainer.js +1 -10
  62. package/lib/Fieldset/FieldsetContainer.native.js +0 -8
  63. package/lib/Fieldset/Legend.js +1 -10
  64. package/lib/Fieldset/Legend.native.js +1 -13
  65. package/lib/Fieldset/index.js +0 -3
  66. package/lib/FlexGrid/Col/Col.js +10 -53
  67. package/lib/FlexGrid/Col/index.js +0 -3
  68. package/lib/FlexGrid/FlexGrid.js +3 -34
  69. package/lib/FlexGrid/Row/Row.js +0 -38
  70. package/lib/FlexGrid/Row/index.js +0 -3
  71. package/lib/FlexGrid/helpers/index.js +0 -4
  72. package/lib/FlexGrid/index.js +0 -3
  73. package/lib/FlexGrid/providers/GutterContext.js +0 -4
  74. package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
  75. package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
  76. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
  77. package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
  78. package/lib/HorizontalScroll/index.js +0 -7
  79. package/lib/HorizontalScroll/itemPositions.js +8 -19
  80. package/lib/Icon/Icon.js +4 -17
  81. package/lib/Icon/IconText.js +5 -25
  82. package/lib/Icon/index.js +0 -6
  83. package/lib/IconButton/IconButton.js +5 -37
  84. package/lib/IconButton/index.js +0 -3
  85. package/lib/InputLabel/InputLabel.js +4 -28
  86. package/lib/InputLabel/LabelContent.js +2 -8
  87. package/lib/InputLabel/LabelContent.native.js +0 -8
  88. package/lib/InputLabel/index.js +0 -3
  89. package/lib/InputSupports/InputSupports.js +0 -21
  90. package/lib/InputSupports/index.js +0 -3
  91. package/lib/InputSupports/useInputSupports.js +2 -6
  92. package/lib/Link/ChevronLink.js +7 -18
  93. package/lib/Link/InlinePressable.js +0 -10
  94. package/lib/Link/InlinePressable.native.js +5 -18
  95. package/lib/Link/Link.js +0 -8
  96. package/lib/Link/LinkBase.js +17 -47
  97. package/lib/Link/TextButton.js +3 -16
  98. package/lib/Link/index.js +0 -5
  99. package/lib/List/List.js +5 -21
  100. package/lib/List/ListItem.js +1 -11
  101. package/lib/List/ListItemBase.js +5 -34
  102. package/lib/List/ListItemContent.js +1 -14
  103. package/lib/List/ListItemMark.js +3 -23
  104. package/lib/List/PressableListItemBase.js +2 -28
  105. package/lib/List/index.js +0 -4
  106. package/lib/Listbox/GroupControl.js +0 -14
  107. package/lib/Listbox/Listbox.js +15 -40
  108. package/lib/Listbox/ListboxContext.js +0 -7
  109. package/lib/Listbox/ListboxGroup.js +7 -19
  110. package/lib/Listbox/ListboxItem.js +3 -17
  111. package/lib/Listbox/ListboxOverlay.js +4 -20
  112. package/lib/Listbox/PressableItem.js +3 -18
  113. package/lib/Listbox/index.js +0 -3
  114. package/lib/Modal/Modal.js +94 -45
  115. package/lib/Modal/ModalContent.js +184 -0
  116. package/lib/Modal/index.js +0 -3
  117. package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
  118. package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
  119. package/lib/MultiSelectFilter/index.js +0 -3
  120. package/lib/Notification/Notification.js +11 -38
  121. package/lib/Notification/index.js +0 -3
  122. package/lib/Pagination/PageButton.js +2 -22
  123. package/lib/Pagination/Pagination.js +21 -42
  124. package/lib/Pagination/SideButton.js +0 -24
  125. package/lib/Pagination/index.js +0 -3
  126. package/lib/Pagination/usePagination.js +4 -9
  127. package/lib/Progress/Progress.js +3 -17
  128. package/lib/Progress/ProgressBar.js +3 -25
  129. package/lib/Progress/ProgressBarBackground.js +0 -12
  130. package/lib/Progress/index.js +0 -4
  131. package/lib/QuickLinks/QuickLinks.js +1 -18
  132. package/lib/QuickLinks/QuickLinksCard.js +1 -11
  133. package/lib/QuickLinks/QuickLinksItem.js +3 -17
  134. package/lib/QuickLinks/index.js +0 -4
  135. package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
  136. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
  137. package/lib/QuickLinksFeature/index.js +0 -4
  138. package/lib/Radio/Radio.js +5 -39
  139. package/lib/Radio/RadioButton.js +7 -26
  140. package/lib/Radio/RadioGroup.js +6 -39
  141. package/lib/Radio/RadioInput.js +1 -11
  142. package/lib/Radio/RadioInput.native.js +0 -2
  143. package/lib/Radio/index.js +0 -4
  144. package/lib/RadioCard/RadioCard.js +5 -38
  145. package/lib/RadioCard/RadioCardGroup.js +25 -40
  146. package/lib/RadioCard/index.js +0 -4
  147. package/lib/Responsive/Responsive.js +1 -14
  148. package/lib/Responsive/index.js +0 -3
  149. package/lib/Search/Search.js +22 -45
  150. package/lib/Search/index.js +0 -3
  151. package/lib/Select/Group.js +0 -8
  152. package/lib/Select/Group.native.js +0 -6
  153. package/lib/Select/Item.js +0 -7
  154. package/lib/Select/Item.native.js +0 -2
  155. package/lib/Select/Picker.js +0 -8
  156. package/lib/Select/Picker.native.js +6 -22
  157. package/lib/Select/Select.js +9 -52
  158. package/lib/Select/index.js +0 -5
  159. package/lib/SideNav/Item.js +5 -29
  160. package/lib/SideNav/ItemContent.js +1 -14
  161. package/lib/SideNav/ItemsGroup.js +9 -31
  162. package/lib/SideNav/SideNav.js +9 -33
  163. package/lib/SideNav/index.js +0 -2
  164. package/lib/Skeleton/Skeleton.js +10 -42
  165. package/lib/Skeleton/index.js +0 -3
  166. package/lib/Skeleton/skeletonWebAnimation.js +0 -2
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
  168. package/lib/SkipLink/SkipLink.js +7 -27
  169. package/lib/SkipLink/index.js +0 -3
  170. package/lib/Spacer/Spacer.js +4 -20
  171. package/lib/Spacer/index.js +0 -3
  172. package/lib/StackView/StackView.js +3 -21
  173. package/lib/StackView/StackWrap.js +11 -21
  174. package/lib/StackView/StackWrap.native.js +0 -3
  175. package/lib/StackView/StackWrapBox.js +5 -21
  176. package/lib/StackView/StackWrapGap.js +1 -14
  177. package/lib/StackView/common.js +0 -6
  178. package/lib/StackView/getStackedContent.js +10 -21
  179. package/lib/StackView/index.js +0 -5
  180. package/lib/StepTracker/Step.js +3 -27
  181. package/lib/StepTracker/StepTracker.js +5 -32
  182. package/lib/StepTracker/index.js +0 -3
  183. package/lib/Tabs/Tabs.js +7 -30
  184. package/lib/Tabs/TabsItem.js +13 -38
  185. package/lib/Tabs/index.js +0 -3
  186. package/lib/Tags/Tags.js +9 -42
  187. package/lib/Tags/index.js +0 -3
  188. package/lib/TextInput/TextArea.js +11 -20
  189. package/lib/TextInput/TextInput.js +7 -16
  190. package/lib/TextInput/TextInputBase.js +12 -58
  191. package/lib/TextInput/index.js +0 -3
  192. package/lib/TextInput/propTypes.js +0 -8
  193. package/lib/ThemeProvider/ThemeProvider.js +10 -18
  194. package/lib/ThemeProvider/index.js +0 -9
  195. package/lib/ThemeProvider/useSetTheme.js +6 -9
  196. package/lib/ThemeProvider/useTheme.js +2 -7
  197. package/lib/ThemeProvider/useThemeTokens.js +1 -9
  198. package/lib/ThemeProvider/utils/index.js +0 -4
  199. package/lib/ThemeProvider/utils/styles.js +14 -35
  200. package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
  201. package/lib/Timeline/Timeline.js +11 -27
  202. package/lib/Timeline/index.js +0 -3
  203. package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
  204. package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
  205. package/lib/ToggleSwitch/index.js +0 -3
  206. package/lib/Tooltip/Backdrop.js +4 -11
  207. package/lib/Tooltip/Backdrop.native.js +1 -14
  208. package/lib/Tooltip/Tooltip.js +9 -37
  209. package/lib/Tooltip/Tooltip.native.js +14 -45
  210. package/lib/Tooltip/getTooltipPosition.js +26 -31
  211. package/lib/Tooltip/index.js +0 -5
  212. package/lib/Tooltip/shared.js +0 -10
  213. package/lib/TooltipButton/TooltipButton.js +5 -20
  214. package/lib/TooltipButton/index.js +0 -3
  215. package/lib/Typography/Typography.js +15 -38
  216. package/lib/Typography/index.js +0 -3
  217. package/lib/Validator/Validator.js +10 -58
  218. package/lib/Validator/index.js +0 -3
  219. package/lib/ViewportProvider/ViewportProvider.js +1 -13
  220. package/lib/ViewportProvider/index.js +0 -5
  221. package/lib/ViewportProvider/useViewport.js +0 -4
  222. package/lib/ViewportProvider/useViewportListener.js +3 -12
  223. package/lib/index.js +8 -71
  224. package/lib/utils/BaseView/BaseView.js +3 -17
  225. package/lib/utils/BaseView/BaseView.native.js +0 -3
  226. package/lib/utils/BaseView/index.js +0 -3
  227. package/lib/utils/a11y/index.js +0 -4
  228. package/lib/utils/a11y/semantics.js +14 -32
  229. package/lib/utils/a11y/textSize.js +1 -8
  230. package/lib/utils/animation/index.js +0 -2
  231. package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
  232. package/lib/utils/children.js +16 -28
  233. package/lib/utils/containUniqueFields.js +2 -5
  234. package/lib/utils/floating-ui/index.js +0 -1
  235. package/lib/utils/floating-ui/index.native.js +0 -1
  236. package/lib/utils/hasOwnProperty.js +0 -1
  237. package/lib/utils/htmlAttrs.js +2 -4
  238. package/lib/utils/index.js +0 -31
  239. package/lib/utils/info/index.js +0 -4
  240. package/lib/utils/info/platform/index.js +0 -4
  241. package/lib/utils/info/versions.js +0 -3
  242. package/lib/utils/input.js +12 -24
  243. package/lib/utils/pressability.js +7 -21
  244. package/lib/utils/props/a11yProps.js +19 -25
  245. package/lib/utils/props/clickProps.js +0 -4
  246. package/lib/utils/props/componentPropType.js +0 -14
  247. package/lib/utils/props/copyPropTypes.js +0 -4
  248. package/lib/utils/props/getPropSelector.js +11 -12
  249. package/lib/utils/props/handlerProps.js +2 -23
  250. package/lib/utils/props/hrefAttrsProp.js +0 -4
  251. package/lib/utils/props/index.js +0 -22
  252. package/lib/utils/props/inputSupportsProps.js +0 -9
  253. package/lib/utils/props/linkProps.js +2 -12
  254. package/lib/utils/props/paddingProp.js +0 -3
  255. package/lib/utils/props/pressProps.js +2 -8
  256. package/lib/utils/props/rectProp.js +0 -3
  257. package/lib/utils/props/responsiveProps.js +1 -5
  258. package/lib/utils/props/selectSystemProps.js +4 -6
  259. package/lib/utils/props/spacingProps.js +3 -10
  260. package/lib/utils/props/textInputProps.js +10 -31
  261. package/lib/utils/props/textProps.js +6 -11
  262. package/lib/utils/props/tokens.js +7 -26
  263. package/lib/utils/props/variantProp.js +0 -3
  264. package/lib/utils/props/viewProps.js +0 -5
  265. package/lib/utils/ssr.js +13 -33
  266. package/lib/utils/useCopy.js +3 -6
  267. package/lib/utils/useHash.js +5 -10
  268. package/lib/utils/useHash.native.js +0 -2
  269. package/lib/utils/useOverlaidPosition.js +6 -29
  270. package/lib/utils/useResponsiveProp.js +6 -13
  271. package/lib/utils/useSafeLayoutEffect.js +5 -10
  272. package/lib/utils/useScrollBlocking.js +3 -11
  273. package/lib/utils/useScrollBlocking.native.js +0 -2
  274. package/lib/utils/useSpacingScale.js +5 -8
  275. package/lib/utils/useUniqueId.js +0 -4
  276. package/lib/utils/withLinkRouter.js +13 -18
  277. package/lib-module/A11yInfoProvider/index.js +5 -9
  278. package/lib-module/A11yText/index.js +3 -4
  279. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  280. package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
  281. package/lib-module/ActivityIndicator/index.js +1 -5
  282. package/lib-module/ActivityIndicator/shared.js +2 -1
  283. package/lib-module/Autocomplete/Autocomplete.js +34 -59
  284. package/lib-module/Autocomplete/Loading.js +0 -2
  285. package/lib-module/BaseProvider/HydrationContext.js +4 -7
  286. package/lib-module/BaseProvider/index.js +0 -3
  287. package/lib-module/Box/Box.js +10 -24
  288. package/lib-module/Button/Button.js +4 -2
  289. package/lib-module/Button/ButtonBase.js +23 -35
  290. package/lib-module/Button/ButtonDropdown.js +7 -16
  291. package/lib-module/Button/ButtonGroup.js +15 -32
  292. package/lib-module/Button/ButtonLink.js +3 -2
  293. package/lib-module/Button/propTypes.js +0 -7
  294. package/lib-module/Card/Card.js +3 -2
  295. package/lib-module/Card/CardBase.js +5 -4
  296. package/lib-module/Card/PressableCardBase.js +7 -11
  297. package/lib-module/Carousel/Carousel.js +22 -60
  298. package/lib-module/Carousel/CarouselContext.js +0 -5
  299. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
  300. package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
  301. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
  302. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
  303. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
  304. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
  305. package/lib-module/Carousel/CarouselThumbnail.js +1 -7
  306. package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
  307. package/lib-module/Checkbox/Checkbox.js +5 -23
  308. package/lib-module/Checkbox/CheckboxButton.js +7 -17
  309. package/lib-module/Checkbox/CheckboxGroup.js +14 -31
  310. package/lib-module/Checkbox/CheckboxInput.js +1 -3
  311. package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
  312. package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
  313. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +206 -0
  314. package/lib-module/CheckboxCardGroup/index.js +2 -0
  315. package/lib-module/Divider/Divider.js +13 -11
  316. package/lib-module/ExpandCollapse/Accordion.js +1 -1
  317. package/lib-module/ExpandCollapse/Control.js +10 -17
  318. package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
  319. package/lib-module/ExpandCollapse/Panel.js +13 -23
  320. package/lib-module/Feedback/Feedback.js +13 -16
  321. package/lib-module/Fieldset/Fieldset.js +6 -25
  322. package/lib-module/Fieldset/FieldsetContainer.js +1 -1
  323. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
  324. package/lib-module/Fieldset/Legend.js +1 -1
  325. package/lib-module/Fieldset/Legend.native.js +1 -1
  326. package/lib-module/FlexGrid/Col/Col.js +10 -37
  327. package/lib-module/FlexGrid/FlexGrid.js +3 -17
  328. package/lib-module/FlexGrid/Row/Row.js +0 -25
  329. package/lib-module/FlexGrid/helpers/index.js +0 -3
  330. package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
  331. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
  332. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
  333. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
  334. package/lib-module/HorizontalScroll/itemPositions.js +11 -10
  335. package/lib-module/Icon/Icon.js +4 -8
  336. package/lib-module/Icon/IconText.js +6 -17
  337. package/lib-module/IconButton/IconButton.js +7 -20
  338. package/lib-module/InputLabel/InputLabel.js +4 -13
  339. package/lib-module/InputLabel/LabelContent.js +2 -1
  340. package/lib-module/InputLabel/LabelContent.native.js +0 -1
  341. package/lib-module/InputSupports/InputSupports.js +0 -9
  342. package/lib-module/InputSupports/useInputSupports.js +2 -4
  343. package/lib-module/Link/ChevronLink.js +7 -7
  344. package/lib-module/Link/InlinePressable.js +0 -2
  345. package/lib-module/Link/InlinePressable.native.js +4 -12
  346. package/lib-module/Link/LinkBase.js +17 -25
  347. package/lib-module/Link/TextButton.js +3 -5
  348. package/lib-module/List/List.js +5 -9
  349. package/lib-module/List/ListItem.js +1 -1
  350. package/lib-module/List/ListItemBase.js +5 -17
  351. package/lib-module/List/ListItemContent.js +1 -4
  352. package/lib-module/List/ListItemMark.js +3 -16
  353. package/lib-module/List/PressableListItemBase.js +2 -6
  354. package/lib-module/Listbox/GroupControl.js +0 -2
  355. package/lib-module/Listbox/Listbox.js +15 -23
  356. package/lib-module/Listbox/ListboxContext.js +0 -2
  357. package/lib-module/Listbox/ListboxGroup.js +6 -4
  358. package/lib-module/Listbox/ListboxItem.js +2 -1
  359. package/lib-module/Listbox/ListboxOverlay.js +3 -4
  360. package/lib-module/Listbox/PressableItem.js +2 -7
  361. package/lib-module/Modal/Modal.js +94 -25
  362. package/lib-module/Modal/ModalContent.js +175 -0
  363. package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
  364. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
  365. package/lib-module/Notification/Notification.js +11 -22
  366. package/lib-module/Pagination/PageButton.js +2 -6
  367. package/lib-module/Pagination/Pagination.js +21 -21
  368. package/lib-module/Pagination/SideButton.js +3 -8
  369. package/lib-module/Pagination/usePagination.js +4 -8
  370. package/lib-module/Progress/Progress.js +3 -7
  371. package/lib-module/Progress/ProgressBar.js +3 -11
  372. package/lib-module/Progress/ProgressBarBackground.js +0 -2
  373. package/lib-module/QuickLinks/QuickLinks.js +1 -6
  374. package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
  375. package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
  376. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
  377. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
  378. package/lib-module/Radio/Radio.js +5 -22
  379. package/lib-module/Radio/RadioButton.js +8 -10
  380. package/lib-module/Radio/RadioGroup.js +6 -25
  381. package/lib-module/Radio/RadioInput.js +1 -3
  382. package/lib-module/Radio/RadioInput.native.js +0 -1
  383. package/lib-module/RadioCard/RadioCard.js +5 -21
  384. package/lib-module/RadioCard/RadioCardGroup.js +25 -27
  385. package/lib-module/Responsive/Responsive.js +1 -6
  386. package/lib-module/Search/Search.js +22 -31
  387. package/lib-module/Select/Group.js +0 -3
  388. package/lib-module/Select/Group.native.js +0 -3
  389. package/lib-module/Select/Item.js +0 -3
  390. package/lib-module/Select/Item.native.js +0 -1
  391. package/lib-module/Select/Picker.native.js +8 -10
  392. package/lib-module/Select/Select.js +10 -35
  393. package/lib-module/SideNav/Item.js +5 -16
  394. package/lib-module/SideNav/ItemContent.js +1 -2
  395. package/lib-module/SideNav/ItemsGroup.js +9 -19
  396. package/lib-module/SideNav/SideNav.js +9 -22
  397. package/lib-module/Skeleton/Skeleton.js +10 -25
  398. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
  399. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
  400. package/lib-module/SkipLink/SkipLink.js +7 -9
  401. package/lib-module/Spacer/Spacer.js +4 -7
  402. package/lib-module/StackView/StackView.js +3 -7
  403. package/lib-module/StackView/StackWrap.js +13 -13
  404. package/lib-module/StackView/StackWrap.native.js +2 -1
  405. package/lib-module/StackView/StackWrapBox.js +5 -8
  406. package/lib-module/StackView/StackWrapGap.js +1 -1
  407. package/lib-module/StackView/getStackedContent.js +10 -10
  408. package/lib-module/StepTracker/Step.js +3 -14
  409. package/lib-module/StepTracker/StepTracker.js +5 -13
  410. package/lib-module/Tabs/Tabs.js +7 -16
  411. package/lib-module/Tabs/TabsItem.js +13 -16
  412. package/lib-module/Tags/Tags.js +9 -26
  413. package/lib-module/TextInput/TextArea.js +11 -8
  414. package/lib-module/TextInput/TextInput.js +7 -5
  415. package/lib-module/TextInput/TextInputBase.js +13 -39
  416. package/lib-module/TextInput/propTypes.js +3 -7
  417. package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
  418. package/lib-module/ThemeProvider/useSetTheme.js +6 -7
  419. package/lib-module/ThemeProvider/useTheme.js +2 -5
  420. package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
  421. package/lib-module/ThemeProvider/utils/styles.js +15 -27
  422. package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
  423. package/lib-module/Timeline/Timeline.js +11 -17
  424. package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
  425. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
  426. package/lib-module/Tooltip/Backdrop.js +4 -7
  427. package/lib-module/Tooltip/Backdrop.native.js +1 -4
  428. package/lib-module/Tooltip/Tooltip.js +9 -18
  429. package/lib-module/Tooltip/Tooltip.native.js +14 -23
  430. package/lib-module/Tooltip/getTooltipPosition.js +26 -30
  431. package/lib-module/Tooltip/shared.js +0 -6
  432. package/lib-module/TooltipButton/TooltipButton.js +5 -8
  433. package/lib-module/Typography/Typography.js +14 -22
  434. package/lib-module/Validator/Validator.js +10 -42
  435. package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
  436. package/lib-module/ViewportProvider/useViewportListener.js +6 -8
  437. package/lib-module/index.js +1 -0
  438. package/lib-module/utils/BaseView/BaseView.js +3 -4
  439. package/lib-module/utils/BaseView/BaseView.native.js +0 -1
  440. package/lib-module/utils/a11y/semantics.js +14 -27
  441. package/lib-module/utils/a11y/textSize.js +1 -2
  442. package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
  443. package/lib-module/utils/children.js +17 -19
  444. package/lib-module/utils/containUniqueFields.js +2 -4
  445. package/lib-module/utils/htmlAttrs.js +2 -1
  446. package/lib-module/utils/info/index.js +2 -1
  447. package/lib-module/utils/info/platform/index.js +4 -1
  448. package/lib-module/utils/info/versions.js +2 -1
  449. package/lib-module/utils/input.js +11 -19
  450. package/lib-module/utils/pressability.js +8 -7
  451. package/lib-module/utils/props/a11yProps.js +22 -20
  452. package/lib-module/utils/props/clickProps.js +0 -1
  453. package/lib-module/utils/props/componentPropType.js +0 -13
  454. package/lib-module/utils/props/getPropSelector.js +12 -8
  455. package/lib-module/utils/props/handlerProps.js +2 -19
  456. package/lib-module/utils/props/hrefAttrsProp.js +2 -2
  457. package/lib-module/utils/props/inputSupportsProps.js +0 -6
  458. package/lib-module/utils/props/linkProps.js +2 -3
  459. package/lib-module/utils/props/pressProps.js +2 -2
  460. package/lib-module/utils/props/responsiveProps.js +1 -3
  461. package/lib-module/utils/props/selectSystemProps.js +4 -5
  462. package/lib-module/utils/props/spacingProps.js +4 -3
  463. package/lib-module/utils/props/textInputProps.js +13 -27
  464. package/lib-module/utils/props/textProps.js +9 -7
  465. package/lib-module/utils/props/tokens.js +10 -13
  466. package/lib-module/utils/props/variantProp.js +1 -1
  467. package/lib-module/utils/props/viewProps.js +0 -1
  468. package/lib-module/utils/ssr.js +14 -18
  469. package/lib-module/utils/useCopy.js +3 -5
  470. package/lib-module/utils/useHash.js +5 -9
  471. package/lib-module/utils/useHash.native.js +0 -1
  472. package/lib-module/utils/useOverlaidPosition.js +6 -25
  473. package/lib-module/utils/useResponsiveProp.js +6 -7
  474. package/lib-module/utils/useSafeLayoutEffect.js +5 -7
  475. package/lib-module/utils/useScrollBlocking.js +3 -10
  476. package/lib-module/utils/useSpacingScale.js +4 -4
  477. package/lib-module/utils/useUniqueId.js +0 -2
  478. package/lib-module/utils/withLinkRouter.js +13 -10
  479. package/package.json +2 -2
  480. package/src/Checkbox/CheckboxGroup.jsx +10 -8
  481. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +231 -0
  482. package/src/CheckboxCardGroup/index.js +3 -0
  483. package/src/Modal/Modal.jsx +98 -5
  484. package/src/Modal/ModalContent.jsx +171 -0
  485. package/src/RadioCard/RadioCardGroup.jsx +23 -2
  486. package/src/index.js +1 -0
@@ -4,47 +4,34 @@ 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 _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
13
-
14
10
  var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
-
16
11
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
17
-
18
12
  var _portal = require("@gorhom/portal");
19
-
20
13
  var _ThemeProvider = require("../ThemeProvider");
21
-
22
14
  var _Card = _interopRequireDefault(require("../Card"));
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
  /* eslint-disable react/require-default-props */
20
+
33
21
  const staticStyles = _StyleSheet.default.create({
34
22
  positioner: {
35
23
  flex: 1,
36
24
  // Grow to maxWidth when possible, shrink when not possible
37
25
  position: 'absolute',
38
26
  zIndex: 1000000000000000 // Position on top of all the other overlays, including backdrops and modals
39
-
40
27
  },
28
+
41
29
  hidden: {
42
30
  // Use opacity not visibility to hide the dropdown during positioning
43
31
  // so on web, children may be focused from the first render
44
32
  opacity: 0
45
33
  }
46
34
  });
47
-
48
35
  const paddingVertical = 0;
49
36
  const paddingHorizontal = 0;
50
37
  const DropdownOverlay = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
@@ -76,17 +63,16 @@ const DropdownOverlay = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
76
63
  })
77
64
  });
78
65
  });
79
-
80
66
  const withPortal = Overlay => {
81
67
  // eslint-disable-next-line react/display-name, react/no-multi-comp
82
68
  return props => {
83
69
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_portal.Portal, {
84
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Overlay, { ...props
70
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Overlay, {
71
+ ...props
85
72
  })
86
73
  });
87
74
  };
88
75
  };
89
-
90
76
  DropdownOverlay.displayName = 'DropdownOverlay';
91
77
  DropdownOverlay.propTypes = {
92
78
  children: _propTypes.default.node.isRequired,
@@ -100,7 +86,5 @@ DropdownOverlay.propTypes = {
100
86
  minWidth: _propTypes.default.number,
101
87
  onLayout: _propTypes.default.func
102
88
  };
103
-
104
89
  var _default = _Platform.default.OS === 'web' ? withPortal(DropdownOverlay) : DropdownOverlay;
105
-
106
90
  exports.default = _default;
@@ -4,30 +4,19 @@ 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 _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
13
-
14
10
  var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
15
-
16
11
  var _utils = require("../utils");
17
-
18
12
  var _ListboxContext = require("./ListboxContext");
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
  /* eslint-disable react/require-default-props */
29
- const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.htmlAttrs]);
30
18
 
19
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.htmlAttrs]);
31
20
  const getItemStyles = _ref => {
32
21
  let {
33
22
  groupFontName,
@@ -71,7 +60,6 @@ const getItemStyles = _ref => {
71
60
  justifyContent: 'center'
72
61
  };
73
62
  };
74
-
75
63
  const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
76
64
  let {
77
65
  children,
@@ -90,7 +78,6 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
90
78
  selectedId,
91
79
  setSelectedId
92
80
  } = (0, _ListboxContext.useListboxContext)();
93
-
94
81
  const selectTextStyles = _ref3 => {
95
82
  let {
96
83
  groupFontName,
@@ -106,7 +93,6 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
106
93
  lineHeight: lineHeight * itemFontSize
107
94
  };
108
95
  };
109
-
110
96
  const resolveButtonTokens = pressableState => {
111
97
  const themeTokens = (0, _utils.resolvePressableTokens)(tokens, pressableState, {
112
98
  isChild,
@@ -114,7 +100,6 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
114
100
  });
115
101
  return themeTokens;
116
102
  };
117
-
118
103
  const handleKeyPress = event => {
119
104
  if (['Enter', ' '].includes(event === null || event === void 0 ? void 0 : event.key)) {
120
105
  onPress === null || onPress === void 0 ? void 0 : onPress(event);
@@ -124,7 +109,6 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
124
109
  prevItemRef.current.focus();
125
110
  }
126
111
  };
127
-
128
112
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
129
113
  isChild: isChild,
130
114
  style: pressableState => getItemStyles(resolveButtonTokens(pressableState)),
@@ -153,7 +137,8 @@ const PressableItem = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
153
137
  });
154
138
  });
155
139
  PressableItem.displayName = 'PressableItem';
156
- PressableItem.propTypes = { ...selectedSystemPropTypes,
140
+ PressableItem.propTypes = {
141
+ ...selectedSystemPropTypes,
157
142
  href: _propTypes.default.string,
158
143
  isChild: _propTypes.default.bool,
159
144
  children: _propTypes.default.node.isRequired,
@@ -4,10 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _Listbox = _interopRequireDefault(require("./Listbox"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  var _default = _Listbox.default;
13
10
  exports.default = _default;
@@ -4,45 +4,26 @@ 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 _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
-
12
9
  var _TouchableWithoutFeedback = _interopRequireDefault(require("react-native-web/dist/cjs/exports/TouchableWithoutFeedback"));
13
-
14
10
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
15
-
16
11
  var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
17
-
18
12
  var _Modal = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Modal"));
19
-
20
13
  var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
21
-
22
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
23
-
24
15
  var _ThemeProvider = require("../ThemeProvider");
25
-
26
16
  var _utils = require("../utils");
27
-
28
17
  var _ViewportProvider = require("../ViewportProvider");
29
-
30
18
  var _IconButton = _interopRequireDefault(require("../IconButton"));
31
-
32
19
  var _dictionary = _interopRequireDefault(require("./dictionary"));
33
-
34
20
  var _useScrollBlocking = _interopRequireDefault(require("../utils/useScrollBlocking"));
35
-
21
+ var _ModalContent = _interopRequireDefault(require("./ModalContent"));
36
22
  var _jsxRuntime = require("react/jsx-runtime");
37
-
38
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
-
40
24
  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); }
41
-
42
25
  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; }
43
-
44
26
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
45
-
46
27
  const selectContainerStyles = _ref => {
47
28
  let {
48
29
  containerPaddingLeft,
@@ -61,7 +42,6 @@ const selectContainerStyles = _ref => {
61
42
  paddingBottom: containerPaddingBottom
62
43
  };
63
44
  };
64
-
65
45
  const selectModalStyles = _ref2 => {
66
46
  let {
67
47
  backgroundColor,
@@ -79,12 +59,12 @@ const selectModalStyles = _ref2 => {
79
59
  height,
80
60
  paddingLeft,
81
61
  paddingRight,
82
- paddingTop,
62
+ paddingTop: _Platform.default.OS !== 'web' ? 16 + paddingTop : paddingTop,
63
+ // the 16 additions are due to the border that is present in the mobile version
83
64
  paddingBottom,
84
65
  ...(0, _ThemeProvider.applyShadowToken)(shadow)
85
66
  };
86
67
  };
87
-
88
68
  const selectBackdropStyles = _ref3 => {
89
69
  let {
90
70
  backdropColor,
@@ -95,7 +75,6 @@ const selectBackdropStyles = _ref3 => {
95
75
  opacity: backdropOpacity
96
76
  };
97
77
  };
98
-
99
78
  const selectCloseButtonContainerStyles = _ref4 => {
100
79
  let {
101
80
  paddingRight,
@@ -103,9 +82,14 @@ const selectCloseButtonContainerStyles = _ref4 => {
103
82
  } = _ref4;
104
83
  return {
105
84
  paddingRight,
106
- paddingTop
85
+ paddingTop: _Platform.default.OS !== 'web' ? 24 + paddingTop : paddingTop // The 24 additions are due to the border that is present in the mobile version for the close button
107
86
  };
108
87
  };
88
+
89
+ const selectScrollViewStyles = () => ({
90
+ flex: 1
91
+ });
92
+
109
93
  /**
110
94
  * A modal window is a secondary window that opens on top of the main one.
111
95
  * Users have to interact with it before they can carry out their task and return to the main window.
@@ -120,8 +104,6 @@ const selectCloseButtonContainerStyles = _ref4 => {
120
104
  * - Don’t use modals to reinforce or repeat information already available in the parent page or view
121
105
  * - Don’t use modals consecutively
122
106
  */
123
-
124
-
125
107
  const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
126
108
  let {
127
109
  children,
@@ -129,9 +111,20 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
129
111
  onClose,
130
112
  maxWidth,
131
113
  tokens,
132
- variant,
133
114
  copy,
134
115
  closeButton,
116
+ onCancel = onClose,
117
+ onConfirm,
118
+ heading,
119
+ headingLevel,
120
+ subHeading,
121
+ subHeadingSize,
122
+ bodyText,
123
+ variant = {},
124
+ confirmButtonText,
125
+ confirmButtonVariant,
126
+ cancelButtonText,
127
+ cancelButtonType,
135
128
  ...rest
136
129
  } = _ref5;
137
130
  const viewport = (0, _ViewportProvider.useViewport)();
@@ -148,23 +141,19 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
148
141
  copy
149
142
  });
150
143
  const closeLabel = getCopy('closeButton');
151
-
152
144
  const handleClose = () => {
153
145
  if (typeof onClose === 'function') onClose();
154
146
  };
155
-
156
147
  const handleKeyUp = event => {
157
148
  if (event.key === 'Escape') onClose();
158
- }; // Show the custom react node passed to `closedButton` or the default close button if `closeButton` is `undefined`.
159
- // Hide the close button if `closeButton` is `null`.
160
-
149
+ };
161
150
 
151
+ // Show the custom react node passed to `closedButton` or the default close button if `closeButton` is `undefined`.
152
+ // Hide the close button if `closeButton` is `null`.
162
153
  const showCloseButton = closeButton !== null;
163
-
164
154
  if (!isOpen) {
165
155
  return null;
166
156
  }
167
-
168
157
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.default, {
169
158
  transparent: true,
170
159
  ...selectProps(rest),
@@ -187,7 +176,27 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
187
176
  accessibilityRole: "button",
188
177
  accessibilityLabel: closeLabel
189
178
  })
190
- }), children]
179
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ModalContent.default, {
180
+ tokens: tokens,
181
+ variant: variant,
182
+ onCancel: onCancel,
183
+ onConfirm: onConfirm,
184
+ heading: heading,
185
+ headingLevel: headingLevel,
186
+ subHeading: subHeading,
187
+ subHeadingSize: subHeadingSize,
188
+ bodyText: bodyText,
189
+ confirmButtonText: confirmButtonText,
190
+ confirmButtonVariant: confirmButtonVariant,
191
+ cancelButtonText: cancelButtonText,
192
+ cancelButtonType: cancelButtonType,
193
+ children: _Platform.default !== 'web' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollView.default, {
194
+ style: selectScrollViewStyles,
195
+ children: children
196
+ }) : {
197
+ children
198
+ }
199
+ })]
191
200
  })
192
201
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TouchableWithoutFeedback.default, {
193
202
  onPress: handleClose,
@@ -199,39 +208,79 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
199
208
  });
200
209
  });
201
210
  Modal.displayName = 'Modal';
202
- Modal.propTypes = { ...selectedSystemPropTypes,
211
+ Modal.propTypes = {
212
+ ...selectedSystemPropTypes,
203
213
  children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.arrayOf(_propTypes.default.node)]),
204
-
205
214
  /**
206
215
  * To define the locale of the copy
207
216
  */
208
217
  copy: _utils.copyPropTypes,
209
-
210
218
  /**
211
219
  * Setting this to `true` will open the `Modal`
212
220
  */
213
221
  isOpen: _propTypes.default.bool,
214
-
215
222
  /**
216
223
  * This function is triggered when the `Modal` is closed
217
224
  */
218
225
  onClose: _propTypes.default.func,
219
-
220
226
  /**
221
227
  * `max-width` is applied to the `Modal` container
222
228
  */
223
229
  maxWidth: _propTypes.default.bool,
224
230
  tokens: (0, _utils.getTokensPropType)('Modal'),
225
231
  variant: _utils.variantProp.propType,
226
-
227
232
  /**
228
233
  * Pass a react node to override the default close button or pass `null` to hide the close button.
229
234
  */
230
- closeButton: _propTypes.default.node
235
+ closeButton: _propTypes.default.node,
236
+ /**
237
+ * Receive a string to set the heading of the modal.
238
+ */
239
+ heading: _propTypes.default.string,
240
+ /**
241
+ * Receive h3 or h4 to define the level of the heading.
242
+ */
243
+ headingLevel: _propTypes.default.oneOf(['h3', 'h4']),
244
+ /**
245
+ * Receive a string to set the sub heading of the modal.
246
+ */
247
+ subHeading: _propTypes.default.string,
248
+ /**
249
+ * Receive small, medium or large to set the size of the sub heading.
250
+ */
251
+ subHeadingSize: _propTypes.default.oneOf(['small', 'medium', 'large']),
252
+ /**
253
+ * Receive a string to set the bodyText of the modal.
254
+ */
255
+ bodyText: _propTypes.default.string,
256
+ /**
257
+ * Receive a string text for the confirm button.
258
+ */
259
+ confirmButtonText: _propTypes.default.string,
260
+ /**
261
+ * Receives a variant of button for the confirm button.
262
+ */
263
+ confirmButtonVariant: _propTypes.default.object,
264
+ /**
265
+ * Receive a function for the onConfirm event in the confirm button.
266
+ */
267
+ onConfirm: _propTypes.default.func,
268
+ /**
269
+ * Receive a string text for the cancel button.
270
+ */
271
+ cancelButtonText: _propTypes.default.string,
272
+ /**
273
+ * Receives a variant of button for the cancel button.
274
+ */
275
+ cancelButtonType: _propTypes.default.elementType,
276
+ // TODO: figure out a way of passing an icon to the TextButton
277
+ /**
278
+ * Receive a function for the onCancel event in the cancel button.
279
+ */
280
+ onCancel: _propTypes.default.func
231
281
  };
232
282
  var _default = Modal;
233
283
  exports.default = _default;
234
-
235
284
  const staticStyles = _StyleSheet.default.create({
236
285
  backdrop: {
237
286
  position: 'absolute',
@@ -255,8 +304,8 @@ const staticStyles = _StyleSheet.default.create({
255
304
  maxHeight: '100%',
256
305
  // so that the container can expand up to the full viewport height
257
306
  width: '100%' // ensure that the modal actually expands to the set maxWidth
258
-
259
307
  },
308
+
260
309
  modal: {
261
310
  maxHeight: '100%',
262
311
  // so that the modal can expand vertically up to the sizing container's height (exclusive of its vertical padding)
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
9
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
10
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _Box = _interopRequireDefault(require("../Box"));
13
+ var _Button = require("../Button");
14
+ var _Link = require("../Link");
15
+ var _Spacer = _interopRequireDefault(require("../Spacer"));
16
+ var _Typography = _interopRequireDefault(require("../Typography"));
17
+ var _ThemeProvider = require("../ThemeProvider");
18
+ var _ViewportProvider = require("../ViewportProvider");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+ 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); }
22
+ 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
+ const ModalContent = _ref => {
24
+ let {
25
+ heading,
26
+ headingLevel = 'h3',
27
+ subHeading,
28
+ subHeadingSize = 'medium',
29
+ bodyText,
30
+ confirmButtonText,
31
+ confirmButtonVariant = {
32
+ priority: 'high'
33
+ },
34
+ onConfirm,
35
+ tokens,
36
+ variant,
37
+ cancelButtonText,
38
+ cancelButtonType: CancelButton = _Link.TextButton,
39
+ children,
40
+ onCancel
41
+ } = _ref;
42
+ const {
43
+ headingColor,
44
+ cancelButtonColor,
45
+ ...themeTokens
46
+ } = (0, _ThemeProvider.useThemeTokens)('Modal', tokens, variant);
47
+ const [scrollContainerHeight, setScrollContainerHeight] = (0, _react.useState)(0);
48
+ const [scrollContentHeight, setScrollContentHeight] = (0, _react.useState)(0);
49
+ const viewport = (0, _ViewportProvider.useViewport)();
50
+ const handleContainerLayout = _ref2 => {
51
+ let {
52
+ nativeEvent: {
53
+ layout: {
54
+ height
55
+ }
56
+ }
57
+ } = _ref2;
58
+ return setScrollContainerHeight(height);
59
+ };
60
+ const onContentSizeChange = (_, height) => setScrollContentHeight(height);
61
+ const isContentOverflowing = scrollContentHeight > scrollContainerHeight;
62
+ const hasConfirmButton = confirmButtonText !== undefined && onConfirm !== undefined;
63
+ const hasCancelButton = cancelButtonText !== undefined && onCancel !== undefined;
64
+ const hasHeadingSection = Boolean(heading || subHeading);
65
+ const selectFooterContainerStyles = _ref3 => {
66
+ let {
67
+ paddingLeft,
68
+ paddingRight,
69
+ paddingTop,
70
+ marginLeft,
71
+ marginRight,
72
+ borderColor,
73
+ gap,
74
+ direction,
75
+ hasBorder
76
+ } = _ref3;
77
+ return {
78
+ flexDirection: direction,
79
+ alignItems: 'center',
80
+ gap,
81
+ marginLeft: -marginLeft,
82
+ marginRight: -marginRight,
83
+ paddingLeft,
84
+ paddingRight,
85
+ paddingTop,
86
+ borderTopColor: hasBorder ? borderColor : 'transparent',
87
+ borderTopWidth: hasBorder ? 1 : 0
88
+ };
89
+ };
90
+ const headingStyles = {
91
+ flexDirection: 'column',
92
+ paddingTop: 8,
93
+ paddingRight: themeTokens.headingPaddingRight
94
+ };
95
+ const subheadingStyles = {
96
+ marginTop: themeTokens.subHeadingMarginTop
97
+ };
98
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
99
+ style: styles.modalContent,
100
+ children: [hasHeadingSection && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
101
+ style: headingStyles,
102
+ children: [heading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
103
+ variant: {
104
+ size: headingLevel
105
+ },
106
+ tokens: {
107
+ color: headingColor
108
+ },
109
+ heading: headingLevel,
110
+ children: heading
111
+ }), subHeading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
112
+ style: subheadingStyles,
113
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
114
+ variant: {
115
+ size: subHeadingSize
116
+ },
117
+ children: subHeading
118
+ })
119
+ }), Boolean(bodyText && hasHeadingSection) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
120
+ space: 3
121
+ })]
122
+ }), bodyText && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
123
+ scroll: {
124
+ onContentSizeChange,
125
+ showsVerticalScrollIndicator: true
126
+ },
127
+ onLayout: handleContainerLayout,
128
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
129
+ children: bodyText
130
+ })
131
+ }), children, (hasConfirmButton || hasCancelButton) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
132
+ style: [selectFooterContainerStyles({
133
+ ...themeTokens,
134
+ hasBorder: isContentOverflowing
135
+ })],
136
+ children: [hasConfirmButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, {
137
+ variant: confirmButtonVariant,
138
+ tokens: {
139
+ width: viewport === 'xs' || viewport === 'sm' ? '100%' : undefined
140
+ },
141
+ onPress: onConfirm,
142
+ children: confirmButtonText
143
+ }), hasCancelButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
144
+ style: styles.styledTextButtonContainer,
145
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CancelButton, {
146
+ tokens: {
147
+ color: cancelButtonColor
148
+ },
149
+ onPress: onCancel,
150
+ children: cancelButtonText
151
+ })
152
+ }) : null]
153
+ })]
154
+ });
155
+ };
156
+ const styles = _StyleSheet.default.create({
157
+ modalContent: {
158
+ flex: 1,
159
+ flexDirection: 'column',
160
+ minHeight: _Platform.default.OS === 'web' ? '100%' : 'auto'
161
+ },
162
+ styledTextButtonContainer: {
163
+ flex: 1
164
+ }
165
+ });
166
+ ModalContent.propTypes = {
167
+ tokens: _propTypes.default.object,
168
+ variant: _propTypes.default.object,
169
+ heading: _propTypes.default.string,
170
+ headingLevel: _propTypes.default.oneOf(['h3', 'h4']),
171
+ subHeading: _propTypes.default.string,
172
+ subHeadingSize: _propTypes.default.oneOf(['small', 'medium', 'large']),
173
+ bodyText: _propTypes.default.string,
174
+ confirmButtonText: _propTypes.default.string,
175
+ confirmButtonVariant: _propTypes.default.object,
176
+ onConfirm: _propTypes.default.func,
177
+ cancelButtonText: _propTypes.default.string,
178
+ cancelButtonType: _propTypes.default.elementType,
179
+ // TODO: figure out a way of passing an icon to the TextButton
180
+ children: _propTypes.default.node,
181
+ onCancel: _propTypes.default.func
182
+ };
183
+ var _default = ModalContent;
184
+ exports.default = _default;
@@ -4,10 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _Modal = _interopRequireDefault(require("./Modal"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  var _default = _Modal.default;
13
10
  exports.default = _default;