@telus-uds/components-base 1.65.0 → 1.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/CHANGELOG.md +22 -2
  2. package/lib/A11yInfoProvider/index.js +5 -20
  3. package/lib/A11yText/index.js +3 -17
  4. package/lib/ActivityIndicator/Spinner.js +2 -9
  5. package/lib/ActivityIndicator/Spinner.native.js +4 -27
  6. package/lib/ActivityIndicator/index.js +1 -13
  7. package/lib/ActivityIndicator/shared.js +0 -3
  8. package/lib/Autocomplete/Autocomplete.js +34 -85
  9. package/lib/Autocomplete/Loading.js +0 -10
  10. package/lib/Autocomplete/Suggestions.js +0 -11
  11. package/lib/Autocomplete/index.js +0 -3
  12. package/lib/BaseProvider/HydrationContext.js +4 -18
  13. package/lib/BaseProvider/index.js +0 -12
  14. package/lib/Box/Box.js +10 -35
  15. package/lib/Box/index.js +0 -3
  16. package/lib/Button/Button.js +4 -13
  17. package/lib/Button/ButtonBase.js +23 -55
  18. package/lib/Button/ButtonDropdown.js +7 -32
  19. package/lib/Button/ButtonGroup.js +15 -48
  20. package/lib/Button/ButtonLink.js +3 -17
  21. package/lib/Button/index.js +0 -5
  22. package/lib/Button/propTypes.js +0 -15
  23. package/lib/Card/Card.js +3 -14
  24. package/lib/Card/CardBase.js +5 -16
  25. package/lib/Card/PressableCardBase.js +7 -30
  26. package/lib/Card/index.js +0 -7
  27. package/lib/Carousel/Carousel.js +22 -115
  28. package/lib/Carousel/CarouselContext.js +0 -14
  29. package/lib/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +6 -18
  30. package/lib/Carousel/CarouselItem/CarouselItem.js +5 -20
  31. package/lib/Carousel/CarouselItem/index.js +0 -3
  32. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -9
  33. package/lib/Carousel/CarouselStepTracker/index.js +0 -3
  34. package/lib/Carousel/CarouselTabs/CarouselTabs.js +5 -15
  35. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -16
  36. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -22
  37. package/lib/Carousel/CarouselTabs/index.js +0 -3
  38. package/lib/Carousel/CarouselThumbnail.js +1 -16
  39. package/lib/Carousel/CarouselThumbnailNavigation.js +0 -15
  40. package/lib/Carousel/index.js +0 -5
  41. package/lib/Checkbox/Checkbox.js +5 -44
  42. package/lib/Checkbox/CheckboxButton.js +7 -33
  43. package/lib/Checkbox/CheckboxGroup.js +5 -37
  44. package/lib/Checkbox/CheckboxInput.js +1 -11
  45. package/lib/Checkbox/CheckboxInput.native.js +0 -2
  46. package/lib/Checkbox/index.js +0 -4
  47. package/lib/CheckboxCard/CheckboxCard.js +4 -37
  48. package/lib/CheckboxCard/index.js +0 -3
  49. package/lib/CheckboxCardGroup/CheckboxCardGroup.js +215 -0
  50. package/lib/CheckboxCardGroup/index.js +10 -0
  51. package/lib/Divider/Divider.js +13 -24
  52. package/lib/Divider/index.js +0 -3
  53. package/lib/ExpandCollapse/Accordion.js +1 -9
  54. package/lib/ExpandCollapse/Control.js +10 -32
  55. package/lib/ExpandCollapse/ExpandCollapse.js +3 -19
  56. package/lib/ExpandCollapse/Panel.js +13 -38
  57. package/lib/ExpandCollapse/index.js +0 -5
  58. package/lib/Feedback/Feedback.js +13 -30
  59. package/lib/Feedback/index.js +0 -3
  60. package/lib/Fieldset/Fieldset.js +6 -37
  61. package/lib/Fieldset/FieldsetContainer.js +1 -10
  62. package/lib/Fieldset/FieldsetContainer.native.js +0 -8
  63. package/lib/Fieldset/Legend.js +1 -10
  64. package/lib/Fieldset/Legend.native.js +1 -13
  65. package/lib/Fieldset/index.js +0 -3
  66. package/lib/FlexGrid/Col/Col.js +10 -53
  67. package/lib/FlexGrid/Col/index.js +0 -3
  68. package/lib/FlexGrid/FlexGrid.js +3 -34
  69. package/lib/FlexGrid/Row/Row.js +0 -38
  70. package/lib/FlexGrid/Row/index.js +0 -3
  71. package/lib/FlexGrid/helpers/index.js +0 -4
  72. package/lib/FlexGrid/index.js +0 -3
  73. package/lib/FlexGrid/providers/GutterContext.js +0 -4
  74. package/lib/HorizontalScroll/HorizontalScroll.js +17 -45
  75. package/lib/HorizontalScroll/HorizontalScrollButton.js +1 -17
  76. package/lib/HorizontalScroll/ScrollViewEnd.js +5 -13
  77. package/lib/HorizontalScroll/ScrollViewEnd.native.js +1 -10
  78. package/lib/HorizontalScroll/index.js +0 -7
  79. package/lib/HorizontalScroll/itemPositions.js +8 -19
  80. package/lib/Icon/Icon.js +4 -17
  81. package/lib/Icon/IconText.js +5 -25
  82. package/lib/Icon/index.js +0 -6
  83. package/lib/IconButton/IconButton.js +5 -37
  84. package/lib/IconButton/index.js +0 -3
  85. package/lib/InputLabel/InputLabel.js +4 -28
  86. package/lib/InputLabel/LabelContent.js +2 -8
  87. package/lib/InputLabel/LabelContent.native.js +0 -8
  88. package/lib/InputLabel/index.js +0 -3
  89. package/lib/InputSupports/InputSupports.js +0 -21
  90. package/lib/InputSupports/index.js +0 -3
  91. package/lib/InputSupports/useInputSupports.js +2 -6
  92. package/lib/Link/ChevronLink.js +7 -18
  93. package/lib/Link/InlinePressable.js +0 -10
  94. package/lib/Link/InlinePressable.native.js +5 -18
  95. package/lib/Link/Link.js +0 -8
  96. package/lib/Link/LinkBase.js +17 -47
  97. package/lib/Link/TextButton.js +3 -16
  98. package/lib/Link/index.js +0 -5
  99. package/lib/List/List.js +5 -21
  100. package/lib/List/ListItem.js +1 -11
  101. package/lib/List/ListItemBase.js +5 -34
  102. package/lib/List/ListItemContent.js +1 -14
  103. package/lib/List/ListItemMark.js +3 -23
  104. package/lib/List/PressableListItemBase.js +2 -28
  105. package/lib/List/index.js +0 -4
  106. package/lib/Listbox/GroupControl.js +0 -14
  107. package/lib/Listbox/Listbox.js +15 -40
  108. package/lib/Listbox/ListboxContext.js +0 -7
  109. package/lib/Listbox/ListboxGroup.js +7 -19
  110. package/lib/Listbox/ListboxItem.js +3 -17
  111. package/lib/Listbox/ListboxOverlay.js +4 -20
  112. package/lib/Listbox/PressableItem.js +3 -18
  113. package/lib/Listbox/index.js +0 -3
  114. package/lib/Modal/Modal.js +94 -45
  115. package/lib/Modal/ModalContent.js +184 -0
  116. package/lib/Modal/index.js +0 -3
  117. package/lib/MultiSelectFilter/ModalOverlay.js +1 -20
  118. package/lib/MultiSelectFilter/MultiSelectFilter.js +20 -69
  119. package/lib/MultiSelectFilter/index.js +0 -3
  120. package/lib/Notification/Notification.js +11 -38
  121. package/lib/Notification/index.js +0 -3
  122. package/lib/Pagination/PageButton.js +2 -22
  123. package/lib/Pagination/Pagination.js +21 -42
  124. package/lib/Pagination/SideButton.js +0 -24
  125. package/lib/Pagination/index.js +0 -3
  126. package/lib/Pagination/usePagination.js +4 -9
  127. package/lib/Progress/Progress.js +3 -17
  128. package/lib/Progress/ProgressBar.js +3 -25
  129. package/lib/Progress/ProgressBarBackground.js +0 -12
  130. package/lib/Progress/index.js +0 -4
  131. package/lib/QuickLinks/QuickLinks.js +1 -18
  132. package/lib/QuickLinks/QuickLinksCard.js +1 -11
  133. package/lib/QuickLinks/QuickLinksItem.js +3 -17
  134. package/lib/QuickLinks/index.js +0 -4
  135. package/lib/QuickLinksFeature/QuickLinksFeature.js +3 -20
  136. package/lib/QuickLinksFeature/QuickLinksFeatureItem.js +7 -30
  137. package/lib/QuickLinksFeature/index.js +0 -4
  138. package/lib/Radio/Radio.js +5 -39
  139. package/lib/Radio/RadioButton.js +7 -26
  140. package/lib/Radio/RadioGroup.js +6 -39
  141. package/lib/Radio/RadioInput.js +1 -11
  142. package/lib/Radio/RadioInput.native.js +0 -2
  143. package/lib/Radio/index.js +0 -4
  144. package/lib/RadioCard/RadioCard.js +5 -38
  145. package/lib/RadioCard/RadioCardGroup.js +7 -38
  146. package/lib/RadioCard/index.js +0 -4
  147. package/lib/Responsive/Responsive.js +1 -14
  148. package/lib/Responsive/index.js +0 -3
  149. package/lib/Search/Search.js +22 -45
  150. package/lib/Search/index.js +0 -3
  151. package/lib/Select/Group.js +0 -8
  152. package/lib/Select/Group.native.js +0 -6
  153. package/lib/Select/Item.js +0 -7
  154. package/lib/Select/Item.native.js +0 -2
  155. package/lib/Select/Picker.js +0 -8
  156. package/lib/Select/Picker.native.js +6 -22
  157. package/lib/Select/Select.js +9 -52
  158. package/lib/Select/index.js +0 -5
  159. package/lib/SideNav/Item.js +5 -29
  160. package/lib/SideNav/ItemContent.js +1 -14
  161. package/lib/SideNav/ItemsGroup.js +9 -31
  162. package/lib/SideNav/SideNav.js +9 -33
  163. package/lib/SideNav/index.js +0 -2
  164. package/lib/Skeleton/Skeleton.js +10 -42
  165. package/lib/Skeleton/index.js +0 -3
  166. package/lib/Skeleton/skeletonWebAnimation.js +0 -2
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +1 -9
  168. package/lib/SkipLink/SkipLink.js +7 -27
  169. package/lib/SkipLink/index.js +0 -3
  170. package/lib/Spacer/Spacer.js +4 -20
  171. package/lib/Spacer/index.js +0 -3
  172. package/lib/StackView/StackView.js +3 -21
  173. package/lib/StackView/StackWrap.js +11 -21
  174. package/lib/StackView/StackWrap.native.js +0 -3
  175. package/lib/StackView/StackWrapBox.js +5 -21
  176. package/lib/StackView/StackWrapGap.js +1 -14
  177. package/lib/StackView/common.js +0 -6
  178. package/lib/StackView/getStackedContent.js +10 -21
  179. package/lib/StackView/index.js +0 -5
  180. package/lib/StepTracker/Step.js +3 -27
  181. package/lib/StepTracker/StepTracker.js +5 -32
  182. package/lib/StepTracker/index.js +0 -3
  183. package/lib/Tabs/Tabs.js +7 -30
  184. package/lib/Tabs/TabsItem.js +13 -38
  185. package/lib/Tabs/index.js +0 -3
  186. package/lib/Tags/Tags.js +9 -42
  187. package/lib/Tags/index.js +0 -3
  188. package/lib/TextInput/TextArea.js +11 -20
  189. package/lib/TextInput/TextInput.js +7 -16
  190. package/lib/TextInput/TextInputBase.js +106 -69
  191. package/lib/TextInput/index.js +0 -3
  192. package/lib/TextInput/propTypes.js +4 -7
  193. package/lib/ThemeProvider/ThemeProvider.js +10 -18
  194. package/lib/ThemeProvider/index.js +0 -9
  195. package/lib/ThemeProvider/useSetTheme.js +6 -9
  196. package/lib/ThemeProvider/useTheme.js +2 -7
  197. package/lib/ThemeProvider/useThemeTokens.js +1 -9
  198. package/lib/ThemeProvider/utils/index.js +0 -4
  199. package/lib/ThemeProvider/utils/styles.js +14 -35
  200. package/lib/ThemeProvider/utils/theme-tokens.js +15 -43
  201. package/lib/Timeline/Timeline.js +11 -27
  202. package/lib/Timeline/index.js +0 -3
  203. package/lib/ToggleSwitch/ToggleSwitch.js +12 -43
  204. package/lib/ToggleSwitch/ToggleSwitchGroup.js +4 -38
  205. package/lib/ToggleSwitch/index.js +0 -3
  206. package/lib/Tooltip/Backdrop.js +4 -11
  207. package/lib/Tooltip/Backdrop.native.js +1 -14
  208. package/lib/Tooltip/Tooltip.js +9 -37
  209. package/lib/Tooltip/Tooltip.native.js +14 -45
  210. package/lib/Tooltip/getTooltipPosition.js +26 -31
  211. package/lib/Tooltip/index.js +0 -5
  212. package/lib/Tooltip/shared.js +0 -10
  213. package/lib/TooltipButton/TooltipButton.js +5 -20
  214. package/lib/TooltipButton/index.js +0 -3
  215. package/lib/Typography/Typography.js +15 -38
  216. package/lib/Typography/index.js +0 -3
  217. package/lib/Validator/Validator.js +10 -58
  218. package/lib/Validator/index.js +0 -3
  219. package/lib/ViewportProvider/ViewportProvider.js +1 -13
  220. package/lib/ViewportProvider/index.js +0 -5
  221. package/lib/ViewportProvider/useViewport.js +0 -4
  222. package/lib/ViewportProvider/useViewportListener.js +3 -12
  223. package/lib/index.js +8 -71
  224. package/lib/utils/BaseView/BaseView.js +3 -17
  225. package/lib/utils/BaseView/BaseView.native.js +0 -3
  226. package/lib/utils/BaseView/index.js +0 -3
  227. package/lib/utils/a11y/index.js +0 -4
  228. package/lib/utils/a11y/semantics.js +14 -32
  229. package/lib/utils/a11y/textSize.js +1 -8
  230. package/lib/utils/animation/index.js +0 -2
  231. package/lib/utils/animation/useVerticalExpandAnimation.js +5 -18
  232. package/lib/utils/children.js +16 -28
  233. package/lib/utils/containUniqueFields.js +2 -5
  234. package/lib/utils/floating-ui/index.js +0 -1
  235. package/lib/utils/floating-ui/index.native.js +0 -1
  236. package/lib/utils/hasOwnProperty.js +0 -1
  237. package/lib/utils/htmlAttrs.js +2 -4
  238. package/lib/utils/index.js +0 -31
  239. package/lib/utils/info/index.js +0 -4
  240. package/lib/utils/info/platform/index.js +0 -4
  241. package/lib/utils/info/versions.js +0 -3
  242. package/lib/utils/input.js +12 -24
  243. package/lib/utils/pressability.js +7 -21
  244. package/lib/utils/props/a11yProps.js +19 -25
  245. package/lib/utils/props/clickProps.js +0 -4
  246. package/lib/utils/props/componentPropType.js +0 -14
  247. package/lib/utils/props/copyPropTypes.js +0 -4
  248. package/lib/utils/props/getPropSelector.js +11 -12
  249. package/lib/utils/props/handlerProps.js +2 -23
  250. package/lib/utils/props/hrefAttrsProp.js +0 -4
  251. package/lib/utils/props/index.js +0 -22
  252. package/lib/utils/props/inputSupportsProps.js +0 -9
  253. package/lib/utils/props/linkProps.js +2 -12
  254. package/lib/utils/props/paddingProp.js +0 -3
  255. package/lib/utils/props/pressProps.js +2 -8
  256. package/lib/utils/props/rectProp.js +0 -3
  257. package/lib/utils/props/responsiveProps.js +1 -5
  258. package/lib/utils/props/selectSystemProps.js +4 -6
  259. package/lib/utils/props/spacingProps.js +3 -10
  260. package/lib/utils/props/textInputProps.js +11 -31
  261. package/lib/utils/props/textProps.js +6 -11
  262. package/lib/utils/props/tokens.js +7 -26
  263. package/lib/utils/props/variantProp.js +0 -3
  264. package/lib/utils/props/viewProps.js +0 -5
  265. package/lib/utils/ssr.js +13 -33
  266. package/lib/utils/useCopy.js +3 -6
  267. package/lib/utils/useHash.js +5 -10
  268. package/lib/utils/useHash.native.js +0 -2
  269. package/lib/utils/useOverlaidPosition.js +6 -29
  270. package/lib/utils/useResponsiveProp.js +6 -13
  271. package/lib/utils/useSafeLayoutEffect.js +5 -10
  272. package/lib/utils/useScrollBlocking.js +3 -11
  273. package/lib/utils/useScrollBlocking.native.js +0 -2
  274. package/lib/utils/useSpacingScale.js +5 -8
  275. package/lib/utils/useUniqueId.js +0 -4
  276. package/lib/utils/withLinkRouter.js +13 -18
  277. package/lib-module/A11yInfoProvider/index.js +5 -9
  278. package/lib-module/A11yText/index.js +3 -4
  279. package/lib-module/ActivityIndicator/Spinner.js +2 -2
  280. package/lib-module/ActivityIndicator/Spinner.native.js +4 -6
  281. package/lib-module/ActivityIndicator/index.js +1 -5
  282. package/lib-module/ActivityIndicator/shared.js +2 -1
  283. package/lib-module/Autocomplete/Autocomplete.js +34 -59
  284. package/lib-module/Autocomplete/Loading.js +0 -2
  285. package/lib-module/BaseProvider/HydrationContext.js +4 -7
  286. package/lib-module/BaseProvider/index.js +0 -3
  287. package/lib-module/Box/Box.js +10 -24
  288. package/lib-module/Button/Button.js +4 -2
  289. package/lib-module/Button/ButtonBase.js +23 -35
  290. package/lib-module/Button/ButtonDropdown.js +7 -16
  291. package/lib-module/Button/ButtonGroup.js +15 -32
  292. package/lib-module/Button/ButtonLink.js +3 -2
  293. package/lib-module/Button/propTypes.js +0 -7
  294. package/lib-module/Card/Card.js +3 -2
  295. package/lib-module/Card/CardBase.js +5 -4
  296. package/lib-module/Card/PressableCardBase.js +7 -11
  297. package/lib-module/Carousel/Carousel.js +22 -60
  298. package/lib-module/Carousel/CarouselContext.js +0 -5
  299. package/lib-module/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +7 -5
  300. package/lib-module/Carousel/CarouselItem/CarouselItem.js +5 -11
  301. package/lib-module/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -2
  302. package/lib-module/Carousel/CarouselTabs/CarouselTabs.js +3 -4
  303. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanel.js +7 -6
  304. package/lib-module/Carousel/CarouselTabs/CarouselTabsPanelItem.js +2 -10
  305. package/lib-module/Carousel/CarouselThumbnail.js +1 -7
  306. package/lib-module/Carousel/CarouselThumbnailNavigation.js +0 -2
  307. package/lib-module/Checkbox/Checkbox.js +5 -23
  308. package/lib-module/Checkbox/CheckboxButton.js +7 -17
  309. package/lib-module/Checkbox/CheckboxGroup.js +5 -23
  310. package/lib-module/Checkbox/CheckboxInput.js +1 -3
  311. package/lib-module/Checkbox/CheckboxInput.native.js +0 -1
  312. package/lib-module/CheckboxCard/CheckboxCard.js +4 -21
  313. package/lib-module/CheckboxCardGroup/CheckboxCardGroup.js +205 -0
  314. package/lib-module/CheckboxCardGroup/index.js +2 -0
  315. package/lib-module/Divider/Divider.js +13 -11
  316. package/lib-module/ExpandCollapse/Accordion.js +1 -1
  317. package/lib-module/ExpandCollapse/Control.js +10 -17
  318. package/lib-module/ExpandCollapse/ExpandCollapse.js +3 -9
  319. package/lib-module/ExpandCollapse/Panel.js +13 -23
  320. package/lib-module/Feedback/Feedback.js +13 -16
  321. package/lib-module/Fieldset/Fieldset.js +6 -25
  322. package/lib-module/Fieldset/FieldsetContainer.js +1 -1
  323. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -1
  324. package/lib-module/Fieldset/Legend.js +1 -1
  325. package/lib-module/Fieldset/Legend.native.js +1 -1
  326. package/lib-module/FlexGrid/Col/Col.js +10 -37
  327. package/lib-module/FlexGrid/FlexGrid.js +3 -17
  328. package/lib-module/FlexGrid/Row/Row.js +0 -25
  329. package/lib-module/FlexGrid/helpers/index.js +0 -3
  330. package/lib-module/HorizontalScroll/HorizontalScroll.js +17 -27
  331. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +1 -3
  332. package/lib-module/HorizontalScroll/ScrollViewEnd.js +5 -4
  333. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -1
  334. package/lib-module/HorizontalScroll/itemPositions.js +11 -10
  335. package/lib-module/Icon/Icon.js +4 -8
  336. package/lib-module/Icon/IconText.js +6 -17
  337. package/lib-module/IconButton/IconButton.js +7 -20
  338. package/lib-module/InputLabel/InputLabel.js +4 -13
  339. package/lib-module/InputLabel/LabelContent.js +2 -1
  340. package/lib-module/InputLabel/LabelContent.native.js +0 -1
  341. package/lib-module/InputSupports/InputSupports.js +0 -9
  342. package/lib-module/InputSupports/useInputSupports.js +2 -4
  343. package/lib-module/Link/ChevronLink.js +7 -7
  344. package/lib-module/Link/InlinePressable.js +0 -2
  345. package/lib-module/Link/InlinePressable.native.js +4 -12
  346. package/lib-module/Link/LinkBase.js +17 -25
  347. package/lib-module/Link/TextButton.js +3 -5
  348. package/lib-module/List/List.js +5 -9
  349. package/lib-module/List/ListItem.js +1 -1
  350. package/lib-module/List/ListItemBase.js +5 -17
  351. package/lib-module/List/ListItemContent.js +1 -4
  352. package/lib-module/List/ListItemMark.js +3 -16
  353. package/lib-module/List/PressableListItemBase.js +2 -6
  354. package/lib-module/Listbox/GroupControl.js +0 -2
  355. package/lib-module/Listbox/Listbox.js +15 -23
  356. package/lib-module/Listbox/ListboxContext.js +0 -2
  357. package/lib-module/Listbox/ListboxGroup.js +6 -4
  358. package/lib-module/Listbox/ListboxItem.js +2 -1
  359. package/lib-module/Listbox/ListboxOverlay.js +3 -4
  360. package/lib-module/Listbox/PressableItem.js +2 -7
  361. package/lib-module/Modal/Modal.js +94 -25
  362. package/lib-module/Modal/ModalContent.js +175 -0
  363. package/lib-module/MultiSelectFilter/ModalOverlay.js +1 -4
  364. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +20 -42
  365. package/lib-module/Notification/Notification.js +11 -22
  366. package/lib-module/Pagination/PageButton.js +2 -6
  367. package/lib-module/Pagination/Pagination.js +21 -21
  368. package/lib-module/Pagination/SideButton.js +3 -8
  369. package/lib-module/Pagination/usePagination.js +4 -8
  370. package/lib-module/Progress/Progress.js +3 -7
  371. package/lib-module/Progress/ProgressBar.js +3 -11
  372. package/lib-module/Progress/ProgressBarBackground.js +0 -2
  373. package/lib-module/QuickLinks/QuickLinks.js +1 -6
  374. package/lib-module/QuickLinks/QuickLinksCard.js +1 -3
  375. package/lib-module/QuickLinks/QuickLinksItem.js +3 -2
  376. package/lib-module/QuickLinksFeature/QuickLinksFeature.js +5 -9
  377. package/lib-module/QuickLinksFeature/QuickLinksFeatureItem.js +9 -13
  378. package/lib-module/Radio/Radio.js +5 -22
  379. package/lib-module/Radio/RadioButton.js +8 -10
  380. package/lib-module/Radio/RadioGroup.js +6 -25
  381. package/lib-module/Radio/RadioInput.js +1 -3
  382. package/lib-module/Radio/RadioInput.native.js +0 -1
  383. package/lib-module/RadioCard/RadioCard.js +5 -21
  384. package/lib-module/RadioCard/RadioCardGroup.js +7 -25
  385. package/lib-module/Responsive/Responsive.js +1 -6
  386. package/lib-module/Search/Search.js +22 -31
  387. package/lib-module/Select/Group.js +0 -3
  388. package/lib-module/Select/Group.native.js +0 -3
  389. package/lib-module/Select/Item.js +0 -3
  390. package/lib-module/Select/Item.native.js +0 -1
  391. package/lib-module/Select/Picker.native.js +8 -10
  392. package/lib-module/Select/Select.js +10 -35
  393. package/lib-module/SideNav/Item.js +5 -16
  394. package/lib-module/SideNav/ItemContent.js +1 -2
  395. package/lib-module/SideNav/ItemsGroup.js +9 -19
  396. package/lib-module/SideNav/SideNav.js +9 -22
  397. package/lib-module/Skeleton/Skeleton.js +10 -25
  398. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -1
  399. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +1 -3
  400. package/lib-module/SkipLink/SkipLink.js +7 -9
  401. package/lib-module/Spacer/Spacer.js +4 -7
  402. package/lib-module/StackView/StackView.js +3 -7
  403. package/lib-module/StackView/StackWrap.js +13 -13
  404. package/lib-module/StackView/StackWrap.native.js +2 -1
  405. package/lib-module/StackView/StackWrapBox.js +5 -8
  406. package/lib-module/StackView/StackWrapGap.js +1 -1
  407. package/lib-module/StackView/getStackedContent.js +10 -10
  408. package/lib-module/StepTracker/Step.js +3 -14
  409. package/lib-module/StepTracker/StepTracker.js +5 -13
  410. package/lib-module/Tabs/Tabs.js +7 -16
  411. package/lib-module/Tabs/TabsItem.js +13 -16
  412. package/lib-module/Tags/Tags.js +9 -26
  413. package/lib-module/TextInput/TextArea.js +11 -8
  414. package/lib-module/TextInput/TextInput.js +7 -5
  415. package/lib-module/TextInput/TextInputBase.js +107 -51
  416. package/lib-module/TextInput/propTypes.js +7 -6
  417. package/lib-module/ThemeProvider/ThemeProvider.js +10 -9
  418. package/lib-module/ThemeProvider/useSetTheme.js +6 -7
  419. package/lib-module/ThemeProvider/useTheme.js +2 -5
  420. package/lib-module/ThemeProvider/useThemeTokens.js +1 -2
  421. package/lib-module/ThemeProvider/utils/styles.js +15 -27
  422. package/lib-module/ThemeProvider/utils/theme-tokens.js +15 -20
  423. package/lib-module/Timeline/Timeline.js +11 -17
  424. package/lib-module/ToggleSwitch/ToggleSwitch.js +13 -26
  425. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +4 -23
  426. package/lib-module/Tooltip/Backdrop.js +4 -7
  427. package/lib-module/Tooltip/Backdrop.native.js +1 -4
  428. package/lib-module/Tooltip/Tooltip.js +9 -18
  429. package/lib-module/Tooltip/Tooltip.native.js +14 -23
  430. package/lib-module/Tooltip/getTooltipPosition.js +26 -30
  431. package/lib-module/Tooltip/shared.js +0 -6
  432. package/lib-module/TooltipButton/TooltipButton.js +5 -8
  433. package/lib-module/Typography/Typography.js +14 -22
  434. package/lib-module/Validator/Validator.js +10 -42
  435. package/lib-module/ViewportProvider/ViewportProvider.js +1 -3
  436. package/lib-module/ViewportProvider/useViewportListener.js +6 -8
  437. package/lib-module/index.js +1 -0
  438. package/lib-module/utils/BaseView/BaseView.js +3 -4
  439. package/lib-module/utils/BaseView/BaseView.native.js +0 -1
  440. package/lib-module/utils/a11y/semantics.js +14 -27
  441. package/lib-module/utils/a11y/textSize.js +1 -2
  442. package/lib-module/utils/animation/useVerticalExpandAnimation.js +8 -11
  443. package/lib-module/utils/children.js +17 -19
  444. package/lib-module/utils/containUniqueFields.js +2 -4
  445. package/lib-module/utils/htmlAttrs.js +2 -1
  446. package/lib-module/utils/info/index.js +2 -1
  447. package/lib-module/utils/info/platform/index.js +4 -1
  448. package/lib-module/utils/info/versions.js +2 -1
  449. package/lib-module/utils/input.js +11 -19
  450. package/lib-module/utils/pressability.js +8 -7
  451. package/lib-module/utils/props/a11yProps.js +22 -20
  452. package/lib-module/utils/props/clickProps.js +0 -1
  453. package/lib-module/utils/props/componentPropType.js +0 -13
  454. package/lib-module/utils/props/getPropSelector.js +12 -8
  455. package/lib-module/utils/props/handlerProps.js +2 -19
  456. package/lib-module/utils/props/hrefAttrsProp.js +2 -2
  457. package/lib-module/utils/props/inputSupportsProps.js +0 -6
  458. package/lib-module/utils/props/linkProps.js +2 -3
  459. package/lib-module/utils/props/pressProps.js +2 -2
  460. package/lib-module/utils/props/responsiveProps.js +1 -3
  461. package/lib-module/utils/props/selectSystemProps.js +4 -5
  462. package/lib-module/utils/props/spacingProps.js +4 -3
  463. package/lib-module/utils/props/textInputProps.js +14 -27
  464. package/lib-module/utils/props/textProps.js +9 -7
  465. package/lib-module/utils/props/tokens.js +10 -13
  466. package/lib-module/utils/props/variantProp.js +1 -1
  467. package/lib-module/utils/props/viewProps.js +0 -1
  468. package/lib-module/utils/ssr.js +14 -18
  469. package/lib-module/utils/useCopy.js +3 -5
  470. package/lib-module/utils/useHash.js +5 -9
  471. package/lib-module/utils/useHash.native.js +0 -1
  472. package/lib-module/utils/useOverlaidPosition.js +6 -25
  473. package/lib-module/utils/useResponsiveProp.js +6 -7
  474. package/lib-module/utils/useSafeLayoutEffect.js +5 -7
  475. package/lib-module/utils/useScrollBlocking.js +3 -10
  476. package/lib-module/utils/useSpacingScale.js +4 -4
  477. package/lib-module/utils/useUniqueId.js +0 -2
  478. package/lib-module/utils/withLinkRouter.js +13 -10
  479. package/package.json +2 -2
  480. package/src/CheckboxCardGroup/CheckboxCardGroup.jsx +230 -0
  481. package/src/CheckboxCardGroup/index.js +3 -0
  482. package/src/Modal/Modal.jsx +98 -5
  483. package/src/Modal/ModalContent.jsx +171 -0
  484. package/src/TextInput/TextInputBase.jsx +67 -12
  485. package/src/TextInput/propTypes.js +4 -0
  486. package/src/index.js +1 -0
  487. package/src/utils/props/textInputProps.js +1 -0
@@ -0,0 +1,205 @@
1
+ import React, { forwardRef } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { useViewport } from '../ViewportProvider';
4
+ import { useThemeTokens } from '../ThemeProvider';
5
+ import { a11yProps, containUniqueFields, focusHandlerProps, getTokensPropType, selectSystemProps, useMultipleInputValues, variantProp, viewProps } from '../utils';
6
+ import StackView, { StackWrap } from '../StackView';
7
+ import CheckboxCard from '../CheckboxCard';
8
+ import Fieldset from '../Fieldset';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
11
+ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
12
+ const CheckboxCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
13
+ let {
14
+ copy = 'en',
15
+ tokens,
16
+ checkboxCardTokens,
17
+ variant,
18
+ items = [],
19
+ legend,
20
+ tooltip,
21
+ hint,
22
+ hintPosition = 'inline',
23
+ validation,
24
+ feedback,
25
+ initialCheckedIds,
26
+ checkedIds,
27
+ onChange,
28
+ readOnly,
29
+ name: inputGroupName,
30
+ inactive,
31
+ ...rest
32
+ } = _ref;
33
+ const viewport = useViewport();
34
+ const {
35
+ space,
36
+ fieldSpace,
37
+ direction,
38
+ outlineWidth,
39
+ borderTopLeftRadius,
40
+ borderTopRightRadius,
41
+ borderBottomLeftRadius,
42
+ borderBottomRightRadius,
43
+ outlineOffset
44
+ } = useThemeTokens('CheckboxCardGroup', tokens, variant, {
45
+ viewport
46
+ });
47
+ const borderTokens = {
48
+ outlineWidth,
49
+ borderTopLeftRadius,
50
+ borderTopRightRadius,
51
+ borderBottomLeftRadius,
52
+ borderBottomRightRadius,
53
+ outlineOffset
54
+ };
55
+ const {
56
+ currentValues,
57
+ toggleOneValue
58
+ } = useMultipleInputValues({
59
+ value: checkedIds,
60
+ initialValues: initialCheckedIds,
61
+ onChange,
62
+ readOnly: readOnly || inactive
63
+ });
64
+ const StackContainer = direction === 'row' ? StackWrap : StackView;
65
+ // Needs 'checkboxgroup' role on direct parent of checkboxes for MacOS Voiceover's numbering to work,
66
+ // and also needs 'checkboxgroup' role on fieldset for correct description on focusing the set.
67
+ // TODO: test this on more web screen readers.
68
+
69
+ const uniqueFields = ['id'];
70
+ if (!containUniqueFields(items, uniqueFields)) {
71
+ throw new Error(`CheckboxCardGroup items must have unique ${uniqueFields.join(', ')}`);
72
+ }
73
+ return /*#__PURE__*/_jsx(Fieldset, {
74
+ copy: copy,
75
+ ref: ref,
76
+ name: inputGroupName,
77
+ legend: legend,
78
+ tooltip: tooltip,
79
+ hint: hint,
80
+ hintPosition: hintPosition,
81
+ space: fieldSpace,
82
+ feedback: feedback,
83
+ inactive: inactive || readOnly,
84
+ validation: validation,
85
+ tokens: borderTokens,
86
+ showErrorBorder: true,
87
+ showIcon: true,
88
+ accessibilityRole: "checkbox",
89
+ ...selectProps(rest),
90
+ children: checkboxCardProperties => /*#__PURE__*/_jsx(StackContainer, {
91
+ space: space,
92
+ accessibilityRole: "checkbox",
93
+ children: items.map((_ref2, index) => {
94
+ let {
95
+ title,
96
+ content,
97
+ id,
98
+ onChange: itemOnChange,
99
+ ...itemRest
100
+ } = _ref2;
101
+ const cardId = id || `CheckboxCard[${index}]`;
102
+ const handleChange = (newCheckedState, event) => {
103
+ if (typeof itemOnChange === 'function') itemOnChange(newCheckedState, event);
104
+ toggleOneValue(cardId, event);
105
+ };
106
+ return /*#__PURE__*/_jsx(CheckboxCard, {
107
+ id: cardId,
108
+ checked: currentValues.includes(cardId),
109
+ onChange: handleChange,
110
+ inactive: inactive,
111
+ title: title,
112
+ name: inputGroupName,
113
+ tokens: checkboxCardTokens,
114
+ variant: variant,
115
+ readOnly: readOnly,
116
+ ...selectItemProps(itemRest),
117
+ ...checkboxCardProperties,
118
+ children: content
119
+ }, cardId);
120
+ })
121
+ })
122
+ });
123
+ });
124
+ CheckboxCardGroup.displayName = 'CheckboxCardGroup';
125
+ CheckboxCardGroup.propTypes = {
126
+ ...selectedSystemPropTypes,
127
+ /**
128
+ * Whether the English or French copy will be used (e.g. for accessibility labels).
129
+ */
130
+ copy: PropTypes.oneOf(['en', 'fr']),
131
+ /**
132
+ * Optional theme token overrides for the outer CheckboxCardGroup component
133
+ */
134
+ tokens: getTokensPropType('CheckboxCardGroup'),
135
+ /**
136
+ * Optional theme token overrides for each inner CheckboxCard component
137
+ */
138
+ checkboxCardTokens: getTokensPropType('CheckboxCard'),
139
+ /**
140
+ * Theme variants, shared between both CheckboxCardGroup and CheckboxCard
141
+ */
142
+ variant: variantProp.propType,
143
+ /**
144
+ * Array of objects containing specifics for each CheckboxCard to be rendered in the group.
145
+ */
146
+ items: PropTypes.arrayOf(PropTypes.exact({
147
+ ...selectedItemPropTypes,
148
+ title: PropTypes.string,
149
+ content: PropTypes.node,
150
+ id: PropTypes.string,
151
+ onChange: PropTypes.func
152
+ })),
153
+ /**
154
+ * Main text used to describe this group, used in Fieldset's Legend element.
155
+ */
156
+ legend: PropTypes.string,
157
+ /**
158
+ * Optional additional text giving more detail to help a user make a choice.
159
+ */
160
+ hint: PropTypes.string,
161
+ /**
162
+ * Position of the hint relative to label. Use `below` to display a larger hint below the label.
163
+ */
164
+ hintPosition: PropTypes.oneOf(['inline', 'below']),
165
+ /**
166
+ * Optional tooltip text content to include alongside the legend and hint.
167
+ */
168
+ tooltip: PropTypes.string,
169
+ /**
170
+ * Current validation status of the group, passed to the feedback element if there is one.
171
+ */
172
+ validation: PropTypes.oneOf(['error', 'success']),
173
+ /**
174
+ * If provided, a Feedback element is rendered containing this text.
175
+ */
176
+ feedback: PropTypes.string,
177
+ /**
178
+ * If provided, the checkboxed with this ids are selected on first render.
179
+ */
180
+ initialCheckedIds: PropTypes.arrayOf(PropTypes.string),
181
+ /**
182
+ * If not undefined, the checkboxes with these ids is selected, and the
183
+ * element's selection state will be controlled by its parent using the `onChange` function.
184
+ */
185
+ checkedIds: PropTypes.arrayOf(PropTypes.string),
186
+ /**
187
+ * Function to call on change in selection state. Is required if the selection state is controlled
188
+ * by a parent using checkedId and the input is not readOnly.
189
+ */
190
+ onChange: PropTypes.func,
191
+ /**
192
+ * If true, the checkbox cards cannot be selected by the user and simply show their current state.
193
+ */
194
+ readOnly: PropTypes.bool,
195
+ /**
196
+ * If true, the checkbox card cannot be interacted with, elements are set as `disabled` and if the
197
+ * theme supports `inactive` appearances rules, these are applied.
198
+ */
199
+ inactive: PropTypes.bool,
200
+ /**
201
+ * On Web, this is passed to the `name` attribute of the fieldset and each checkbox input.
202
+ */
203
+ name: PropTypes.string
204
+ };
205
+ export default CheckboxCardGroup;
@@ -0,0 +1,2 @@
1
+ import CheckboxCardGroup from './CheckboxCardGroup';
2
+ export default CheckboxCardGroup;
@@ -10,6 +10,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { Fragment as _Fragment } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
13
+
13
14
  /**
14
15
  * @typedef {import('../utils/props/spacingProps.js').SpacingIndex} SpacingIndex
15
16
  * @typedef {import('../utils/props/spacingProps.js').SpacingObject} SpacingObject
@@ -51,7 +52,6 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
51
52
  *
52
53
  * For accessibility purposes a divider component will be described with ARIA attributes, i.e. `role="separator"` and `aria-orientation="vertical/horizontal"`.
53
54
  */
54
-
55
55
  const Divider = /*#__PURE__*/forwardRef((_ref, ref) => {
56
56
  let {
57
57
  variant,
@@ -71,52 +71,54 @@ const Divider = /*#__PURE__*/forwardRef((_ref, ref) => {
71
71
  borderBottomColor: color,
72
72
  borderBottomWidth: width
73
73
  };
74
- const a11y = Platform.OS === 'web' ? // There are aria attributes for dividers on web
74
+ const a11y = Platform.OS === 'web' ?
75
+ // There are aria attributes for dividers on web
75
76
  {
76
77
  // Early versions of React Native Web support 'aria-orientation' while
77
78
  // later versions only support accessibilityOrientation and map it. Supply both.
78
79
  'aria-orientation': vertical ? 'vertical' : 'horizontal',
79
80
  accessibilityOrientation: vertical ? 'vertical' : 'horizontal',
80
81
  accessibilityRole: 'separator'
81
- } : // There are no such equivalent attributes for native
82
+ } :
83
+ // There are no such equivalent attributes for native
82
84
  {};
83
85
  const {
84
86
  testID,
85
87
  ...selectedProps
86
- } = selectProps({ ...a11y,
88
+ } = selectProps({
89
+ ...a11y,
87
90
  ...rest
88
91
  });
89
-
90
92
  const divider = /*#__PURE__*/_jsx(View, {
91
93
  ref: ref,
92
94
  style: [styles.divider, borderStyles],
93
95
  testID: testID,
94
96
  ...selectedProps
95
97
  });
96
-
97
98
  if (!space) return divider;
98
99
  const spacerProps = {
99
100
  space,
100
101
  direction: vertical ? 'row' : 'column'
101
102
  };
102
103
  return /*#__PURE__*/_jsxs(_Fragment, {
103
- children: [/*#__PURE__*/_jsx(Spacer, { ...spacerProps,
104
+ children: [/*#__PURE__*/_jsx(Spacer, {
105
+ ...spacerProps,
104
106
  testID: testID ? `${testID}-Spacer-before` : undefined
105
- }), divider, /*#__PURE__*/_jsx(Spacer, { ...spacerProps,
107
+ }), divider, /*#__PURE__*/_jsx(Spacer, {
108
+ ...spacerProps,
106
109
  testID: testID ? `${testID}-Spacer-after` : undefined
107
110
  })]
108
111
  });
109
112
  });
110
113
  Divider.displayName = 'Divider';
111
- Divider.propTypes = { ...selectedSystemPropTypes,
114
+ Divider.propTypes = {
115
+ ...selectedSystemPropTypes,
112
116
  tokens: getTokensPropType('Divider'),
113
-
114
117
  /**
115
118
  * A number referring to a position on the space scale to create space on either side of the divider
116
119
  */
117
120
  space: spacingProps.types.spacingValue,
118
121
  variant: variantProp.propType,
119
-
120
122
  /**
121
123
  * By default, the divider is a horizontal line the full width of its parent.
122
124
  * With `vertical` prop and when inside a container with { flexDirection: row }, draws a full height vertical line.
@@ -1,9 +1,9 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import ExpandCollapse from './ExpandCollapse';
3
+
3
4
  /**
4
5
  * 'Accordion' is a shorthand for an ExpandCollapse where only one item may be open at a time
5
6
  */
6
-
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const Accordion = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(ExpandCollapse, {
9
9
  ref: ref,
@@ -10,7 +10,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { Fragment as _Fragment } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
13
-
14
13
  function selectContainerStyles(_ref) {
15
14
  let {
16
15
  backgroundColor,
@@ -46,9 +45,9 @@ function selectContainerStyles(_ref) {
46
45
  borderBottomLeftRadius,
47
46
  ...verticalAlignRow(verticalAlign, iconPosition === 'right')
48
47
  };
49
- } // TODO: use stack / spacer when available
50
-
48
+ }
51
49
 
50
+ // TODO: use stack / spacer when available
52
51
  function selectIconContainerStyles(_ref2) {
53
52
  let {
54
53
  iconGap,
@@ -61,7 +60,6 @@ function selectIconContainerStyles(_ref2) {
61
60
  paddingTop: iconPaddingTop
62
61
  };
63
62
  }
64
-
65
63
  function selectTextContainerStyles(_ref3) {
66
64
  let {
67
65
  textLine
@@ -71,14 +69,12 @@ function selectTextContainerStyles(_ref3) {
71
69
  flex: 1
72
70
  };
73
71
  }
74
-
75
72
  function selectIconTokens(tokens) {
76
73
  return {
77
74
  color: tokens.iconColor,
78
75
  size: tokens.iconSize
79
76
  };
80
77
  }
81
-
82
78
  const ExpandCollapseControl = /*#__PURE__*/forwardRef((_ref4, ref) => {
83
79
  let {
84
80
  onPress,
@@ -93,11 +89,11 @@ const ExpandCollapseControl = /*#__PURE__*/forwardRef((_ref4, ref) => {
93
89
  const selectedProps = selectProps({
94
90
  accessibilityRole,
95
91
  ...rest,
96
- accessibilityState: { ...(rest.accessibilityState || {}),
92
+ accessibilityState: {
93
+ ...(rest.accessibilityState || {}),
97
94
  expanded: isExpanded
98
95
  }
99
96
  });
100
-
101
97
  const getControlState = _ref5 => {
102
98
  let {
103
99
  pressed,
@@ -111,15 +107,13 @@ const ExpandCollapseControl = /*#__PURE__*/forwardRef((_ref4, ref) => {
111
107
  expanded: isExpanded
112
108
  };
113
109
  };
114
-
115
110
  const getControlTokens = pressableState => getTokens(getControlState(pressableState));
116
-
117
- const getPressableStyle = pressableState => ({ ...selectContainerStyles(getControlTokens(pressableState)),
111
+ const getPressableStyle = pressableState => ({
112
+ ...selectContainerStyles(getControlTokens(pressableState)),
118
113
  ...(Platform.OS === 'web' ? {
119
114
  outline: 'none'
120
115
  } : {})
121
116
  });
122
-
123
117
  return /*#__PURE__*/_jsx(Pressable, {
124
118
  ref: ref,
125
119
  ...selectedProps,
@@ -133,7 +127,8 @@ const ExpandCollapseControl = /*#__PURE__*/forwardRef((_ref4, ref) => {
133
127
  return /*#__PURE__*/_jsxs(_Fragment, {
134
128
  children: [IconComponent && /*#__PURE__*/_jsx(View, {
135
129
  style: [selectIconContainerStyles(themeTokens), staticStyles.bubblePointerEvents],
136
- children: /*#__PURE__*/_jsx(IconComponent, { ...selectIconTokens(themeTokens)
130
+ children: /*#__PURE__*/_jsx(IconComponent, {
131
+ ...selectIconTokens(themeTokens)
137
132
  })
138
133
  }), /*#__PURE__*/_jsx(View, {
139
134
  style: [selectTextContainerStyles(themeTokens), staticStyles.bubblePointerEvents],
@@ -149,21 +144,19 @@ const staticStyles = StyleSheet.create({
149
144
  pointerEvents: 'none'
150
145
  }
151
146
  });
152
- ExpandCollapseControl.propTypes = { ...selectedSystemPropTypes,
147
+ ExpandCollapseControl.propTypes = {
148
+ ...selectedSystemPropTypes,
153
149
  tokens: getTokensPropType('ExpandCollapseControl'),
154
150
  variant: variantProp.propType,
155
-
156
151
  /**
157
152
  * ExpandCollapseControl's children are the content within the button that opens or closes this panel. May
158
153
  * accept a render function that recieves the control state: { pressed, hover, focus, expanded }
159
154
  */
160
155
  children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
161
-
162
156
  /**
163
157
  * Whether the linked ExpandCollapsePanel is opened or closed. Allows themes to set `expanded` styles.
164
158
  */
165
159
  isExpanded: PropTypes.bool,
166
-
167
160
  /**
168
161
  * Function called when the ExpandCollapse is pressed.
169
162
  */
@@ -5,7 +5,6 @@ import { useThemeTokens } from '../ThemeProvider';
5
5
  import { a11yProps, getTokensPropType, selectSystemProps, useMultipleInputValues, variantProp, viewProps } from '../utils';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
8
-
9
8
  function selectBorderStyles(tokens) {
10
9
  return {
11
10
  borderBottomWidth: tokens.borderWidth,
@@ -13,6 +12,7 @@ function selectBorderStyles(tokens) {
13
12
  borderBottomColor: tokens.borderColor
14
13
  };
15
14
  }
15
+
16
16
  /**
17
17
  * Flexible base component for lists where some or all items are collapsible headers.
18
18
  *
@@ -20,8 +20,6 @@ function selectBorderStyles(tokens) {
20
20
  * <ExpandCollapse.Panel> children, and assign the panels explicit `panelId` props. The panels may be
21
21
  * nested (they do not need to be direct children), and non-interactive items may be included too.
22
22
  */
23
-
24
-
25
23
  const ExpandCollapse = /*#__PURE__*/forwardRef((_ref, ref) => {
26
24
  let {
27
25
  children,
@@ -60,33 +58,29 @@ const ExpandCollapse = /*#__PURE__*/forwardRef((_ref, ref) => {
60
58
  });
61
59
  });
62
60
  ExpandCollapse.displayName = 'ExpandCollapse';
63
- ExpandCollapse.propTypes = { ...selectedSystemPropTypes,
61
+ ExpandCollapse.propTypes = {
62
+ ...selectedSystemPropTypes,
64
63
  variant: variantProp.propType,
65
64
  tokens: getTokensPropType('ExpandCollapse'),
66
-
67
65
  /**
68
66
  * ExpandCollapse usually takes a render function to which it passes an object with properties
69
67
  * { openIds, onToggle, resetValues, setValues, unsetValues }. openIds (array of ids) and
70
68
  * onToggle (function) will usually be passed to `<ExpandCollapse.Panel>`
71
69
  */
72
70
  children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]).isRequired,
73
-
74
71
  /**
75
72
  * If set, enforces a specific maximum number of open items, closing already-open items when new
76
73
  * items are opened. By default, any number of items may be open at once.
77
74
  */
78
75
  maxOpen: PropTypes.number,
79
-
80
76
  /**
81
77
  * If passed, the item or items that are expanded will be controlled by a parent component
82
78
  */
83
79
  open: PropTypes.arrayOf(PropTypes.string),
84
-
85
80
  /**
86
81
  * Function called when which panels are currently open changes. Necessary if `open` is passed.
87
82
  */
88
83
  onChange: PropTypes.func,
89
-
90
84
  /**
91
85
  * Allows items with specified ids to be open by default on first load. Should not be used with `open`.
92
86
  */
@@ -10,8 +10,9 @@ import { useThemeTokens } from '../ThemeProvider';
10
10
  import { a11yProps, getTokensPropType, selectSystemProps, useVerticalExpandAnimation, variantProp, viewProps } from '../utils';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]); // just void functions for now, since there are no style tokens for a panel or control at this point
13
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
14
14
 
15
+ // just void functions for now, since there are no style tokens for a panel or control at this point
15
16
  const selectContainerStyles = _ref => {
16
17
  let {
17
18
  contentPaddingLeft,
@@ -27,7 +28,6 @@ const selectContainerStyles = _ref => {
27
28
  flex: 1
28
29
  };
29
30
  };
30
-
31
31
  const selectTextStyles = _ref2 => {
32
32
  let {
33
33
  contentPanelFontSize,
@@ -43,7 +43,6 @@ const selectTextStyles = _ref2 => {
43
43
  color: contentPanelFontColor
44
44
  };
45
45
  };
46
-
47
46
  const selectContentPanelStyles = _ref3 => {
48
47
  let {
49
48
  contentPanelBackgroundColor,
@@ -69,6 +68,7 @@ const selectContentPanelStyles = _ref3 => {
69
68
  marginBottom
70
69
  };
71
70
  };
71
+
72
72
  /**
73
73
  * An item in an `ExpandCollapse` which contains collapsible `children` and a `control` that opens
74
74
  * and closes the collapsible children when pressed.
@@ -79,8 +79,6 @@ const selectContentPanelStyles = _ref3 => {
79
79
  * The panel does not need to be a direct child of the `<ExpandCollapse>` (unless this is required
80
80
  * by the chosen accessibility props for a particular accessibility tools).
81
81
  */
82
-
83
-
84
82
  const ExpandCollapsePanel = /*#__PURE__*/forwardRef((_ref4, ref) => {
85
83
  let {
86
84
  openIds = [],
@@ -98,32 +96,30 @@ const ExpandCollapsePanel = /*#__PURE__*/forwardRef((_ref4, ref) => {
98
96
  } = _ref4;
99
97
  const [containerHeight, setContainerHeight] = useState(null);
100
98
  const isExpanded = openIds.includes(panelId);
101
- const selectedProps = selectProps({ ...rest,
102
- accessibilityState: { ...(rest.accessibilityState || {}),
99
+ const selectedProps = selectProps({
100
+ ...rest,
101
+ accessibilityState: {
102
+ ...(rest.accessibilityState || {}),
103
103
  expanded: isExpanded
104
104
  }
105
105
  });
106
106
  const themeTokens = useThemeTokens('ExpandCollapsePanel', tokens, variant, {
107
107
  expanded: isExpanded
108
108
  });
109
-
110
109
  const handleControlPress = event => {
111
110
  onToggle(panelId, event);
112
111
  if (onPress) onPress(panelId, event);
113
112
  };
114
-
115
113
  const onContainerLayout = event => {
116
114
  const {
117
115
  layout: {
118
116
  height = 0
119
117
  } = {}
120
118
  } = event.nativeEvent;
121
-
122
119
  if (Platform.OS === 'web' || Platform.OS !== 'web' && containerHeight === null) {
123
120
  setContainerHeight(height);
124
121
  }
125
122
  };
126
-
127
123
  const [animatedStyles, animatedRef] = useVerticalExpandAnimation({
128
124
  containerHeight,
129
125
  isExpanded,
@@ -139,7 +135,8 @@ const ExpandCollapsePanel = /*#__PURE__*/forwardRef((_ref4, ref) => {
139
135
  }) : /*#__PURE__*/_jsxs(View, {
140
136
  ref: ref,
141
137
  style: themeTokens,
142
- children: [/*#__PURE__*/_jsx(ExpandCollapseControl, { ...selectedProps,
138
+ children: [/*#__PURE__*/_jsx(ExpandCollapseControl, {
139
+ ...selectedProps,
143
140
  isExpanded: isExpanded,
144
141
  tokens: controlTokens,
145
142
  variant: variant,
@@ -159,7 +156,8 @@ const ExpandCollapsePanel = /*#__PURE__*/forwardRef((_ref4, ref) => {
159
156
  ...focusabilityProps,
160
157
  children: /*#__PURE__*/_jsx(View, {
161
158
  onLayout: onContainerLayout,
162
- style: { ...Platform.select({
159
+ style: {
160
+ ...Platform.select({
163
161
  default: {
164
162
  flex: 1
165
163
  },
@@ -175,52 +173,44 @@ const ExpandCollapsePanel = /*#__PURE__*/forwardRef((_ref4, ref) => {
175
173
  });
176
174
  });
177
175
  ExpandCollapsePanel.displayName = 'ExpandCollapsePanel';
178
- ExpandCollapsePanel.propTypes = { ...selectedSystemPropTypes,
176
+ ExpandCollapsePanel.propTypes = {
177
+ ...selectedSystemPropTypes,
179
178
  variant: variantProp.propType,
180
179
  tokens: getTokensPropType('ExpandCollapsePanel'),
181
-
182
180
  /**
183
181
  * Array of the ids of currently open groups
184
182
  */
185
183
  openIds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),
186
-
187
184
  /**
188
185
  * Unique name by which the ExpandCollapse controls this element.
189
186
  */
190
187
  panelId: PropTypes.string.isRequired,
191
-
192
188
  /**
193
189
  * Function to call on pressing the panel's control, which should open or close the panel.
194
190
  * If Panel is a direct child of `ExpandCollapse`, this prop will be provided by the ExpandCollapse parent.
195
191
  */
196
192
  onToggle: PropTypes.func,
197
-
198
193
  /**
199
194
  * Optional function to call on pressing the panel's control, in addition to opening or closing the panel.
200
195
  */
201
196
  onPress: PropTypes.func,
202
-
203
197
  /**
204
198
  * ExpandCollapsePanel's children are the content that is hidden or revealed on open or close, and may be any
205
199
  * single React element or a render function which takes this group's isExpanded state, onToggle function and panelId
206
200
  */
207
201
  children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
208
-
209
202
  /**
210
203
  * The content inside the control element that opens and closes the ExpandCollapse when pressed.
211
204
  */
212
205
  control: ExpandCollapseControl.propTypes.children,
213
-
214
206
  /**
215
207
  * Optional theme token overrides that may be passed to the ExpandCollapseControl element.
216
208
  */
217
209
  controlTokens: getTokensPropType('ExpandCollapseControl'),
218
-
219
210
  /**
220
211
  * An optional ref to be attached to the control
221
212
  */
222
213
  controlRef: ABBPropTypes.ref(),
223
-
224
214
  /**
225
215
  * A boolean prop to determine if the panel is a content panel or not. If true, the panel will not have a control
226
216
  */