@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
@@ -10,6 +10,7 @@ import Fieldset from '../Fieldset';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
12
12
  const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
13
+
13
14
  /**
14
15
  * A group of Radios that behave as a radio group. Use when users select a single choice from mutually
15
16
  * exclusive options.
@@ -58,7 +59,6 @@ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, f
58
59
  * />
59
60
  * ```
60
61
  */
61
-
62
62
  const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
63
63
  let {
64
64
  copy = 'en',
@@ -81,9 +81,9 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
81
81
  ...rest
82
82
  } = _ref;
83
83
  const viewport = useViewport();
84
+
84
85
  /* showIcon passes a boolean to displayIcon
85
86
  */
86
-
87
87
  const {
88
88
  space,
89
89
  fieldSpace,
@@ -115,11 +115,9 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
115
115
  readOnly: readOnly || inactive
116
116
  });
117
117
  const uniqueFields = ['id', 'label'];
118
-
119
118
  if (!containUniqueFields(items, uniqueFields)) {
120
119
  throw new Error(`RadioGroup items must have unique ${uniqueFields.join(', ')}`);
121
120
  }
122
-
123
121
  const radios = items.map((_ref2, index) => {
124
122
  let {
125
123
  label,
@@ -131,12 +129,10 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
131
129
  } = _ref2;
132
130
  const radioId = id || `Radio[${index}]`;
133
131
  const isChecked = currentValue === radioId;
134
-
135
132
  const handleChange = (newCheckedState, event) => {
136
133
  if (typeof itemOnChange === 'function') itemOnChange(newCheckedState, event);
137
134
  if (newCheckedState) setValue(radioId, event);
138
135
  };
139
-
140
136
  return /*#__PURE__*/_jsx(Radio, {
141
137
  ref: itemRef,
142
138
  id: radioId,
@@ -175,97 +171,82 @@ const RadioGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
175
171
  });
176
172
  });
177
173
  RadioGroup.displayName = 'RadioGroup';
178
- RadioGroup.propTypes = { ...selectedSystemPropTypes,
179
-
174
+ RadioGroup.propTypes = {
175
+ ...selectedSystemPropTypes,
180
176
  /**
181
177
  * Whether the English or French copy will be used (e.g. for accessibility labels).
182
178
  */
183
179
  copy: PropTypes.oneOf(['en', 'fr']),
184
-
185
180
  /**
186
181
  * Optional theme token overrides for the outer RadioGroup component
187
182
  */
188
183
  tokens: getTokensPropType('RadioGroup'),
189
-
190
184
  /**
191
185
  * Optional theme token overrides for each inner Radio component
192
186
  */
193
187
  radioTokens: getTokensPropType('Radio'),
194
-
195
188
  /**
196
189
  * Theme variants, shared between both RadioGroup and Radio
197
190
  */
198
191
  variant: variantProp.propType,
199
-
200
192
  /**
201
193
  * Array of objects containing specifics for each Radio to be rendered in the group.
202
194
  */
203
- items: PropTypes.arrayOf(PropTypes.exact({ ...selectedItemPropTypes,
195
+ items: PropTypes.arrayOf(PropTypes.exact({
196
+ ...selectedItemPropTypes,
204
197
  label: PropTypes.string,
205
198
  id: PropTypes.string,
206
199
  onChange: PropTypes.func,
207
200
  description: PropTypes.string,
208
201
  ref: ABBPropTypes.ref()
209
202
  })),
210
-
211
203
  /**
212
204
  * Main text used to describe this group, used in Fieldset's Legend element.
213
205
  */
214
206
  legend: PropTypes.string,
215
-
216
207
  /**
217
208
  * Optional additional text giving more detail to help a user make a choice.
218
209
  */
219
210
  hint: PropTypes.string,
220
-
221
211
  /**
222
212
  * Position of the hint relative to label. Use `below` to display a larger hint below the label.
223
213
  */
224
214
  hintPosition: PropTypes.oneOf(['inline', 'below']),
225
-
226
215
  /**
227
216
  * Optional tooltip text content to include alongside the legend and hint.
228
217
  */
229
218
  tooltip: PropTypes.string,
230
-
231
219
  /**
232
220
  * Current validation status of the group, passed to the feedback element if there is one.
233
221
  */
234
222
  validation: PropTypes.oneOf(['error', 'success']),
235
-
236
223
  /**
237
224
  * If provided, a Feedback element is rendered containing this text.
238
225
  */
239
226
  feedback: PropTypes.string,
240
-
241
227
  /**
242
228
  * If provided, the radio with this id is selected on first render.
243
229
  */
244
230
  initialCheckedId: PropTypes.string,
245
-
246
231
  /**
247
232
  * If not undefined, the radio with this id is selected (or none is selected if `null`), and the
248
233
  * element's selection state will be controlled by its parent using the `onChange` function.
249
234
  */
250
235
  checkedId: PropTypes.string,
251
-
252
236
  /**
253
237
  * Function to call on change in selection state. Is required if the selection state is controlled
254
238
  * by a parent using checkedId and the input is not readOnly.
255
239
  */
256
240
  onChange: PropTypes.func,
257
-
258
241
  /**
259
242
  * If true, the radios cannot be selected by the user and simply show their current state.
260
243
  */
261
244
  readOnly: PropTypes.bool,
262
-
263
245
  /**
264
246
  * If true, the radios cannot be interacted with, elements are set as `disabled` and if the
265
247
  * theme supports `inactive` appearances rules, these are applied.
266
248
  */
267
249
  inactive: PropTypes.bool,
268
-
269
250
  /**
270
251
  * On Web, this is passed to the `name` attribute of the fieldset and each radio input.
271
252
  */
@@ -1,9 +1,9 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+
3
4
  /**
4
5
  * On Web we need to include an actual input but hide it.
5
6
  */
6
-
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const RadioInput = /*#__PURE__*/forwardRef((_ref, ref) => {
9
9
  let {
@@ -16,14 +16,12 @@ const RadioInput = /*#__PURE__*/forwardRef((_ref, ref) => {
16
16
  onChange,
17
17
  value
18
18
  } = _ref;
19
-
20
19
  const handleClick = event => {
21
20
  // Cancel the click dispatched via the label tag, since it's already wrapped
22
21
  // in <Pressable>
23
22
  event.preventDefault();
24
23
  event.stopPropagation();
25
24
  };
26
-
27
25
  return /*#__PURE__*/_jsx("input", {
28
26
  checked: isControlled ? checked : undefined,
29
27
  defaultChecked: isControlled ? undefined : defaultChecked,
@@ -2,5 +2,4 @@
2
2
  * There's no radio button input on native platforms, so this is a noop.
3
3
  */
4
4
  const RadioInput = () => null;
5
-
6
5
  export default RadioInput;
@@ -11,6 +11,7 @@ import RadioButton, { selectRadioButtonTokens } from '../Radio/RadioButton';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
13
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
14
+
14
15
  /**
15
16
  * A Card that behaves like a radio button. Use when users select a single choice from mutually exclusive options
16
17
  * with need to show additional information for each option. The whole card is interactive as one item.
@@ -46,7 +47,6 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, foc
46
47
  * accessibility role `'radio'` and accessibility state that depends on the other props (`checked`, `inactive`)
47
48
  * or the internal state in case of uncontrolled radio button.
48
49
  */
49
-
50
50
  const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
51
51
  let {
52
52
  tokens,
@@ -71,19 +71,15 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
71
71
  initialValue: defaultChecked,
72
72
  onChange
73
73
  });
74
-
75
74
  const handleChange = event => {
76
75
  if (!inactive && !isChecked) {
77
76
  setIsChecked(true, event);
78
77
  }
79
78
  };
80
-
81
79
  const uniqueId = useUniqueId('RadioCard');
82
80
  const inputId = id ?? uniqueId;
83
81
  const getTokens = useThemeTokensCallback('RadioCard', tokens, variant);
84
-
85
82
  const getCardTokens = cardState => selectPressableCardTokens(getTokens(cardState));
86
-
87
83
  const {
88
84
  themeOptions
89
85
  } = useTheme();
@@ -110,7 +106,8 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
110
106
  } = getTokens(cardState);
111
107
  const radioTokens = selectRadioButtonTokens(themeTokens, 'radio');
112
108
  const titleTokens = selectTokens('Typography', themeTokens);
113
- const textStyle = applyTextStyles({ ...titleTokens,
109
+ const textStyle = applyTextStyles({
110
+ ...titleTokens,
114
111
  themeOptions
115
112
  });
116
113
  return /*#__PURE__*/_jsxs(StackView, {
@@ -147,73 +144,60 @@ const RadioCard = /*#__PURE__*/forwardRef((_ref, ref) => {
147
144
  });
148
145
  });
149
146
  RadioCard.displayName = 'RadioCard';
150
- RadioCard.propTypes = { ...selectedSystemPropTypes,
151
-
147
+ RadioCard.propTypes = {
148
+ ...selectedSystemPropTypes,
152
149
  /**
153
150
  * Content to be displayed at the top of the card alongside the radio button
154
151
  */
155
152
  title: PropTypes.string,
156
-
157
153
  /**
158
154
  * Additional content to be displayed below the button.
159
155
  */
160
156
  children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
161
-
162
157
  /**
163
158
  * Use `checked` for controlled Radio. For uncontrolled Radio, use the `defaultChecked` prop.
164
159
  */
165
160
  checked: PropTypes.bool,
166
-
167
161
  /**
168
162
  * Use `defaultChecked` to provide the initial value for an uncontrolled Radio.
169
163
  */
170
164
  defaultChecked: PropTypes.bool,
171
-
172
165
  /**
173
166
  * An optional radio button description.
174
167
  */
175
168
  description: PropTypes.string,
176
-
177
169
  /**
178
170
  * Radio card button ID.
179
171
  */
180
172
  id: PropTypes.string,
181
-
182
173
  /**
183
174
  * Whether the corresponding input is disabled or active.
184
175
  */
185
176
  inactive: PropTypes.bool,
186
-
187
177
  /**
188
178
  * The label.
189
179
  */
190
180
  label: PropTypes.string,
191
-
192
181
  /**
193
182
  * Associate this radio card with a group (set as the name attribute).
194
183
  */
195
184
  name: PropTypes.string,
196
-
197
185
  /**
198
186
  * Whether the underlying input triggered a validation error or not.
199
187
  */
200
188
  error: PropTypes.bool,
201
-
202
189
  /**
203
190
  * The value. Must be unique within the group.
204
191
  */
205
192
  value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),
206
-
207
193
  /**
208
194
  * Callback called when a controlled radio card gets interacted with.
209
195
  */
210
196
  onChange: PropTypes.func,
211
-
212
197
  /**
213
198
  * Radio card tokens.
214
199
  */
215
200
  tokens: getTokensPropType('RadioCard'),
216
-
217
201
  /**
218
202
  * Radio variant.
219
203
  */
@@ -9,6 +9,7 @@ import Fieldset from '../Fieldset';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
11
11
  const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
12
+
12
13
  /**
13
14
  * A group of Cards that behave as a radio button group. Use when users select a single choice from mutually
14
15
  * exclusive options with need to show additional information for each option. The whole cards are each
@@ -59,7 +60,6 @@ const [selectItemProps, selectedItemPropTypes] = selectSystemProps([a11yProps, f
59
60
  * />
60
61
  * ```
61
62
  */
62
-
63
63
  const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
64
64
  let {
65
65
  copy = 'en',
@@ -98,16 +98,15 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
98
98
  onChange,
99
99
  readOnly: readOnly || inactive
100
100
  });
101
- const StackContainer = direction === 'row' ? StackWrap : StackView; // Needs 'radiogroup' role on direct parent of radios for MacOS Voiceover's numbering to work,
101
+ const StackContainer = direction === 'row' ? StackWrap : StackView;
102
+ // Needs 'radiogroup' role on direct parent of radios for MacOS Voiceover's numbering to work,
102
103
  // and also needs 'radiogroup' role on fieldset for correct description on focusing the set.
103
104
  // TODO: test this on more web screen readers.
104
105
 
105
106
  const uniqueFields = ['id'];
106
-
107
107
  if (!containUniqueFields(items, uniqueFields)) {
108
108
  throw new Error(`RadioCardGroup items must have unique ${uniqueFields.join(', ')}`);
109
109
  }
110
-
111
110
  return /*#__PURE__*/_jsx(Fieldset, {
112
111
  copy: copy,
113
112
  ref: ref,
@@ -136,12 +135,10 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
136
135
  ...itemRest
137
136
  } = _ref2;
138
137
  const cardId = id || `RadioCard[${index}]`;
139
-
140
138
  const handleChange = (newCheckedState, event) => {
141
139
  if (typeof itemOnChange === 'function') itemOnChange(newCheckedState, event);
142
140
  if (newCheckedState) setValue(cardId, event);
143
141
  };
144
-
145
142
  return /*#__PURE__*/_jsx(RadioCard, {
146
143
  id: cardId,
147
144
  checked: currentValue === cardId,
@@ -161,96 +158,81 @@ const RadioCardGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
161
158
  });
162
159
  });
163
160
  RadioCardGroup.displayName = 'RadioCardGroup';
164
- RadioCardGroup.propTypes = { ...selectedSystemPropTypes,
165
-
161
+ RadioCardGroup.propTypes = {
162
+ ...selectedSystemPropTypes,
166
163
  /**
167
164
  * Whether the English or French copy will be used (e.g. for accessibility labels).
168
165
  */
169
166
  copy: PropTypes.oneOf(['en', 'fr']),
170
-
171
167
  /**
172
168
  * Optional theme token overrides for the outer RadioCardGroup component
173
169
  */
174
170
  tokens: getTokensPropType('RadioCardGroup'),
175
-
176
171
  /**
177
172
  * Optional theme token overrides for each inner RadioCard component
178
173
  */
179
174
  radioCardTokens: getTokensPropType('RadioCard'),
180
-
181
175
  /**
182
176
  * Theme variants, shared between both RadioCardGroup and RadioCard
183
177
  */
184
178
  variant: variantProp.propType,
185
-
186
179
  /**
187
180
  * Array of objects containing specifics for each RadioCard to be rendered in the group.
188
181
  */
189
- items: PropTypes.arrayOf(PropTypes.exact({ ...selectedItemPropTypes,
182
+ items: PropTypes.arrayOf(PropTypes.exact({
183
+ ...selectedItemPropTypes,
190
184
  title: PropTypes.string,
191
185
  content: PropTypes.node,
192
186
  id: PropTypes.string,
193
187
  onChange: PropTypes.func
194
188
  })),
195
-
196
189
  /**
197
190
  * Main text used to describe this group, used in Fieldset's Legend element.
198
191
  */
199
192
  legend: PropTypes.string,
200
-
201
193
  /**
202
194
  * Optional additional text giving more detail to help a user make a choice.
203
195
  */
204
196
  hint: PropTypes.string,
205
-
206
197
  /**
207
198
  * Position of the hint relative to label. Use `below` to display a larger hint below the label.
208
199
  */
209
200
  hintPosition: PropTypes.oneOf(['inline', 'below']),
210
-
211
201
  /**
212
202
  * Optional tooltip text content to include alongside the legend and hint.
213
203
  */
214
204
  tooltip: PropTypes.string,
215
-
216
205
  /**
217
206
  * Current validation status of the group, passed to the feedback element if there is one.
218
207
  */
219
208
  validation: PropTypes.oneOf(['error', 'success']),
220
-
221
209
  /**
222
210
  * If provided, a Feedback element is rendered containing this text.
223
211
  */
224
212
  feedback: PropTypes.string,
225
-
226
213
  /**
227
214
  * If provided, the radio card with this id is selected on first render.
228
215
  */
229
216
  initialCheckedId: PropTypes.string,
230
-
231
217
  /**
232
218
  * If not undefined, the radio card with this id is selected (or none is selected if `null`), and the
233
219
  * element's selection state will be controlled by its parent using the `onChange` function.
234
220
  */
235
221
  checkedId: PropTypes.string,
236
-
237
222
  /**
238
223
  * Function to call on change in selection state. Is required if the selection state is controlled
239
224
  * by a parent using checkedId and the input is not readOnly.
240
225
  */
241
226
  onChange: PropTypes.func,
242
-
243
227
  /**
244
228
  * If true, the radio cards cannot be selected by the user and simply show their current state.
245
229
  */
246
230
  readOnly: PropTypes.bool,
247
-
248
231
  /**
249
232
  * If true, the radio card cannot be interacted with, elements are set as `disabled` and if the
250
233
  * theme supports `inactive` appearances rules, these are applied.
251
234
  */
252
235
  inactive: PropTypes.bool,
253
-
254
236
  /**
255
237
  * On Web, this is passed to the `name` attribute of the fieldset and each radio input.
256
238
  */
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { viewports } from '@telus-uds/system-constants';
4
4
  import { useResponsiveProp } from '../utils';
5
+
5
6
  /**
6
7
  * Responsive conditionally renders children based on whether the viewport matches the provided
7
8
  * min and max viewports.
@@ -10,10 +11,8 @@ import { useResponsiveProp } from '../utils';
10
11
  * during first hydration on the client side; then if the viewport is not `xs`, it re-renders
11
12
  * after hydration. This may cause a layout shift on devices other than the narrowest.
12
13
  */
13
-
14
14
  import { Fragment as _Fragment } from "react/jsx-runtime";
15
15
  import { jsx as _jsx } from "react/jsx-runtime";
16
-
17
16
  const Responsive = _ref => {
18
17
  let {
19
18
  min = 'xs',
@@ -24,25 +23,21 @@ const Responsive = _ref => {
24
23
  const byViewports = {
25
24
  [min]: children
26
25
  };
27
-
28
26
  if (max && max !== 'xl') {
29
27
  // Stop returning children at the viewport one above 'max' or greater
30
28
  const maxIndex = viewports.keys.indexOf(max);
31
29
  const maxPlusOne = maxIndex >= 0 ? viewports.keys[maxIndex + 1] : null;
32
30
  if (maxPlusOne) byViewports[maxPlusOne] = null;
33
31
  }
34
-
35
32
  return /*#__PURE__*/_jsx(_Fragment, {
36
33
  children: useResponsiveProp(byViewports, null)
37
34
  });
38
35
  };
39
-
40
36
  Responsive.propTypes = {
41
37
  /**
42
38
  * To hide children of `Responsive` if the current viewport is smaller than `min`
43
39
  */
44
40
  min: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),
45
-
46
41
  /**
47
42
  * To hide children of `Responsive` if the current viewport is larger than `max`
48
43
  */
@@ -10,7 +10,6 @@ import dictionary from './dictionary';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  const [selectContainerProps, selectedContainerPropTypes] = selectSystemProps([a11yProps, viewProps]);
12
12
  const [selectInputProps, selectedInputPropTypes] = selectSystemProps([textInputHandlerProps, textInputProps]);
13
-
14
13
  const selectInputTokens = _ref => {
15
14
  let {
16
15
  searchTokens,
@@ -29,13 +28,12 @@ const selectInputTokens = _ref => {
29
28
  } = buttonTokens;
30
29
  const buttonWidth = paddingLeft + paddingRight + iconSize;
31
30
  const paddingWithButtons = inputPaddingRight + (submitButtonIcon ? buttonWidth : 0) + (clearButtonIcon ? buttonsGapSize + buttonWidth : 0);
32
- return { ...selectTokens('TextInput', searchTokens),
31
+ return {
32
+ ...selectTokens('TextInput', searchTokens),
33
33
  paddingRight: paddingWithButtons
34
34
  };
35
35
  };
36
-
37
36
  const selectButtonTokens = tokens => selectTokens('Button', tokens);
38
-
39
37
  const selectIconTokens = _ref2 => {
40
38
  let {
41
39
  iconSize,
@@ -46,6 +44,7 @@ const selectIconTokens = _ref2 => {
46
44
  size: iconSize
47
45
  };
48
46
  };
47
+
49
48
  /**
50
49
  * The `Search` component is a combination of a `TextInput` and 2 different kinds of custom buttons.
51
50
  * Use `Search` to feature autocomplete interactions.
@@ -59,8 +58,6 @@ const selectIconTokens = _ref2 => {
59
58
  * Use the following props to supply additional accessibility labels for the input - `accessibilityLabel`,
60
59
  * clear button - `clearButtonAccessibilityLabel`, and submit button - `submitButtonAccessibilityLabel`.
61
60
  */
62
-
63
-
64
61
  const Search = /*#__PURE__*/forwardRef((_ref3, ref) => {
65
62
  let {
66
63
  initialValue,
@@ -92,8 +89,9 @@ const Search = /*#__PURE__*/forwardRef((_ref3, ref) => {
92
89
  });
93
90
  const buttonTokens = useThemeTokens('SearchButton', tokens, variant);
94
91
  const getThemeTokens = useThemeTokensCallback('Search', tokens, variant);
95
- const getButtonTokens = useThemeTokensCallback('SearchButton', tokens, variant); // TODO: support overriding the a11y props using a custom dictionary
92
+ const getButtonTokens = useThemeTokensCallback('SearchButton', tokens, variant);
96
93
 
94
+ // TODO: support overriding the a11y props using a custom dictionary
97
95
  const getCopy = useCopy({
98
96
  dictionary,
99
97
  copy
@@ -103,39 +101,37 @@ const Search = /*#__PURE__*/forwardRef((_ref3, ref) => {
103
101
  buttonsGap,
104
102
  clearButtonIcon: ClearButtonIcon,
105
103
  submitButtonIcon: SubmitButtonIcon
106
- } = themeTokens; // get the actual gap value for the current viewport
104
+ } = themeTokens;
107
105
 
106
+ // get the actual gap value for the current viewport
108
107
  const buttonsGapSize = useSpacingScale(buttonsGap);
109
-
110
108
  const handleSubmit = event => {
111
109
  if (onSubmit !== undefined) {
112
110
  onSubmit(currentValue, event);
113
111
  }
114
112
  };
115
-
116
113
  const handleClear = event => {
117
114
  var _ref$current;
118
-
119
115
  setValue('', event);
120
116
  onClear === null || onClear === void 0 ? void 0 : onClear('', event);
121
117
  ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
122
118
  };
123
-
124
119
  const handleFocus = event => {
125
120
  if (onFocus !== undefined) onFocus(event);
126
121
  };
122
+ const isEmpty = currentValue === '';
127
123
 
128
- const isEmpty = currentValue === ''; // Accessibility label should always be present and correctly localised
129
-
130
- const a11yLabelText = accessibilityLabel || getCopy('accessibilityLabel'); // Placeholder is optional and may be unset by passing an empty string
131
-
124
+ // Accessibility label should always be present and correctly localised
125
+ const a11yLabelText = accessibilityLabel || getCopy('accessibilityLabel');
126
+ // Placeholder is optional and may be unset by passing an empty string
132
127
  const placeholderText = placeholder ?? a11yLabelText;
133
128
  const {
134
129
  nativeID,
135
130
  testID,
136
131
  ...containerProps
137
132
  } = selectContainerProps(rest);
138
- return /*#__PURE__*/_jsx(View, { ...containerProps,
133
+ return /*#__PURE__*/_jsx(View, {
134
+ ...containerProps,
139
135
  children: /*#__PURE__*/_jsx(TextInputBase, {
140
136
  nativeID: nativeID,
141
137
  testID: testID,
@@ -163,18 +159,22 @@ const Search = /*#__PURE__*/forwardRef((_ref3, ref) => {
163
159
  inactive: inactive,
164
160
  onPress: handleClear,
165
161
  tokens: appearances => selectButtonTokens(getButtonTokens(appearances)),
166
- children: buttonState => /*#__PURE__*/_jsx(ClearButtonIcon, { ...selectIconTokens(getButtonTokens(buttonState))
162
+ children: buttonState => /*#__PURE__*/_jsx(ClearButtonIcon, {
163
+ ...selectIconTokens(getButtonTokens(buttonState))
167
164
  })
168
165
  }, "clear"), SubmitButtonIcon && /*#__PURE__*/_jsx(ButtonBase, {
169
166
  accessibilityLabel: getCopy('submitButtonAccessibilityLabel'),
170
167
  accessibilityRole: "button",
171
168
  inactive: inactive,
172
169
  onPress: handleSubmit,
173
- tokens: buttonState => selectButtonTokens(getButtonTokens({ ...buttonState,
170
+ tokens: buttonState => selectButtonTokens(getButtonTokens({
171
+ ...buttonState,
174
172
  priority: 'high'
175
173
  })),
176
174
  nativeID: nativeSubmitBtnID,
177
- children: buttonState => /*#__PURE__*/_jsx(SubmitButtonIcon, { ...selectIconTokens(getButtonTokens({ ...buttonState,
175
+ children: buttonState => /*#__PURE__*/_jsx(SubmitButtonIcon, {
176
+ ...selectIconTokens(getButtonTokens({
177
+ ...buttonState,
178
178
  priority: 'high'
179
179
  }))
180
180
  })
@@ -183,54 +183,46 @@ const Search = /*#__PURE__*/forwardRef((_ref3, ref) => {
183
183
  });
184
184
  });
185
185
  Search.displayName = 'Search';
186
- Search.propTypes = { ...selectedContainerPropTypes,
186
+ Search.propTypes = {
187
+ ...selectedContainerPropTypes,
187
188
  ...selectedInputPropTypes,
188
-
189
189
  /**
190
190
  * Use this to set the initial value of the search input.
191
191
  * Updating `initialValue` will **not** update the actual value.
192
192
  */
193
193
  initialValue: PropTypes.string,
194
-
195
194
  /**
196
195
  * Label rendered in the search input when it has no value.
197
196
  */
198
197
  placeholder: PropTypes.string,
199
-
200
198
  /**
201
199
  * Disables all user interactions with the search input.
202
200
  */
203
201
  inactive: PropTypes.bool,
204
-
205
202
  /**
206
203
  * Use to react upon search input's value changes.
207
204
  * Will receive the searched value as an argument.
208
205
  */
209
206
  onChange: PropTypes.func,
210
-
211
207
  /**
212
208
  * Triggered when the search input is submitted,
213
209
  * either by pressing the submit button, "Enter" key on web,
214
210
  * or "Search" key in a mobile keyboard.
215
211
  */
216
212
  onSubmit: PropTypes.func,
217
-
218
213
  /**
219
214
  * Triggered when the clear button is pressed.
220
215
  */
221
216
  onClear: PropTypes.func,
222
-
223
217
  /**
224
218
  * Triggered when the search input is focused.
225
219
  */
226
220
  onFocus: PropTypes.func,
227
-
228
221
  /**
229
222
  *
230
223
  * Use to provide an accessible label for the input (visually hidden).
231
224
  */
232
225
  accessibilityLabel: PropTypes.string,
233
-
234
226
  /**
235
227
  * Select English or French copy for the accessible labels.
236
228
  * You may also pass in a custom dictionary object.
@@ -242,7 +234,6 @@ Search.propTypes = { ...selectedContainerPropTypes,
242
234
  })]),
243
235
  tokens: getTokensPropType('Search'),
244
236
  variant: variantProp.propType,
245
-
246
237
  /**
247
238
  * ID for Submit button element on web
248
239
  */