@telus-uds/components-base 1.1.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/.turbo/turbo-build.log +8 -0
  2. package/CHANGELOG.json +38 -0
  3. package/CHANGELOG.md +35 -2
  4. package/__fixtures__/Accessible.js +4 -2
  5. package/__fixtures__/Accessible.native.js +5 -2
  6. package/__fixtures__/testTheme.js +9 -0
  7. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +35 -0
  8. package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +287 -0
  9. package/__tests__/FlexGrid/Col.test.jsx +6 -10
  10. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +1 -0
  11. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +10 -0
  12. package/__tests__/ToggleSwitch/ToggleSwitchGroup.test.jsx +192 -0
  13. package/__tests__/utils/props.test.js +36 -0
  14. package/__tests__/utils/semantics.test.jsx +1 -10
  15. package/babel.config.js +27 -5
  16. package/component-docs.json +638 -1145
  17. package/generate-component-docs.js +3 -0
  18. package/lib/A11yText/index.js +6 -5
  19. package/lib/ActivityIndicator/Spinner.js +46 -37
  20. package/lib/ActivityIndicator/Spinner.native.js +26 -15
  21. package/lib/ActivityIndicator/index.js +3 -3
  22. package/lib/Box/Box.js +8 -8
  23. package/lib/Button/Button.js +2 -2
  24. package/lib/Button/ButtonBase.js +25 -12
  25. package/lib/Button/ButtonGroup.js +10 -12
  26. package/lib/Button/ButtonLink.js +4 -4
  27. package/lib/Button/propTypes.js +4 -2
  28. package/lib/Card/Card.js +6 -5
  29. package/lib/Card/CardBase.js +6 -9
  30. package/lib/Card/PressableCardBase.js +15 -14
  31. package/lib/Checkbox/Checkbox.js +4 -8
  32. package/lib/Divider/Divider.js +14 -13
  33. package/lib/ExpandCollapse/Control.js +7 -7
  34. package/lib/ExpandCollapse/ExpandCollapse.js +6 -2
  35. package/lib/ExpandCollapse/Panel.js +6 -7
  36. package/lib/Feedback/Feedback.js +6 -5
  37. package/lib/Fieldset/Fieldset.js +1 -3
  38. package/lib/FlexGrid/FlexGrid.js +4 -4
  39. package/lib/FlexGrid/helpers/index.js +1 -4
  40. package/lib/HorizontalScroll/HorizontalScroll.js +5 -6
  41. package/lib/IconButton/IconButton.js +14 -9
  42. package/lib/InputLabel/InputLabel.js +7 -2
  43. package/lib/InputSupports/InputSupports.js +2 -2
  44. package/lib/Link/LinkBase.js +21 -15
  45. package/lib/List/List.js +4 -6
  46. package/lib/List/ListItem.js +6 -2
  47. package/lib/Modal/Modal.js +6 -2
  48. package/lib/Notification/Notification.js +7 -2
  49. package/lib/Pagination/PageButton.js +3 -1
  50. package/lib/Pagination/Pagination.js +22 -5
  51. package/lib/Pagination/SideButton.js +3 -1
  52. package/lib/Progress/Progress.js +5 -4
  53. package/lib/Progress/ProgressBar.js +8 -7
  54. package/lib/Radio/Radio.js +4 -8
  55. package/lib/Radio/RadioButton.js +6 -3
  56. package/lib/Radio/RadioGroup.js +7 -2
  57. package/lib/RadioCard/RadioCard.js +4 -4
  58. package/lib/RadioCard/RadioCardGroup.js +9 -6
  59. package/lib/Search/Search.js +7 -2
  60. package/lib/Select/Select.js +10 -9
  61. package/lib/SideNav/Item.js +7 -7
  62. package/lib/SideNav/SideNav.js +7 -3
  63. package/lib/Skeleton/Skeleton.js +6 -2
  64. package/lib/Spacer/Spacer.js +9 -20
  65. package/lib/StackView/StackView.js +7 -7
  66. package/lib/StackView/StackWrapBox.js +6 -7
  67. package/lib/StackView/StackWrapGap.js +6 -5
  68. package/lib/StackView/getStackedContent.js +1 -1
  69. package/lib/StepTracker/Step.js +7 -3
  70. package/lib/StepTracker/StepTracker.js +7 -7
  71. package/lib/Tabs/Tabs.js +16 -4
  72. package/lib/Tabs/TabsItem.js +18 -11
  73. package/lib/Tags/Tags.js +11 -12
  74. package/lib/TextInput/TextArea.js +13 -14
  75. package/lib/TextInput/TextInput.js +13 -14
  76. package/lib/TextInput/TextInputBase.js +5 -3
  77. package/lib/ThemeProvider/useThemeTokens.js +3 -3
  78. package/lib/ThemeProvider/utils/theme-tokens.js +3 -3
  79. package/lib/ToggleSwitch/ToggleSwitch.js +106 -43
  80. package/lib/ToggleSwitch/ToggleSwitchGroup.js +228 -0
  81. package/lib/ToggleSwitch/index.js +14 -4
  82. package/lib/Tooltip/Tooltip.js +7 -2
  83. package/lib/TooltipButton/TooltipButton.js +7 -2
  84. package/lib/Typography/Typography.js +8 -6
  85. package/lib/index.js +20 -8
  86. package/lib/utils/a11y/semantics.js +4 -3
  87. package/lib/utils/children.js +5 -1
  88. package/lib/utils/index.js +28 -5
  89. package/lib/utils/pressability.js +2 -2
  90. package/lib/utils/props/a11yProps.js +153 -0
  91. package/lib/utils/props/clickProps.js +36 -0
  92. package/lib/utils/props/componentPropType.js +70 -0
  93. package/lib/utils/props/copyPropTypes.js +14 -0
  94. package/lib/utils/props/getPropSelector.js +13 -0
  95. package/lib/utils/props/hrefAttrsProp.js +41 -0
  96. package/lib/utils/props/index.js +158 -0
  97. package/lib/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -3
  98. package/lib/utils/props/linkProps.js +64 -0
  99. package/lib/utils/props/paddingProp.js +20 -0
  100. package/lib/utils/props/pressProps.js +57 -0
  101. package/lib/utils/props/rectProp.js +20 -0
  102. package/lib/utils/props/responsiveProps.js +40 -0
  103. package/lib/utils/props/selectSystemProps.js +31 -0
  104. package/lib/utils/props/spacingProps.js +71 -0
  105. package/lib/utils/props/tokens.js +145 -0
  106. package/lib/utils/props/variantProp.js +28 -0
  107. package/lib/utils/props/viewProps.js +34 -0
  108. package/lib/utils/ssr.js +51 -0
  109. package/lib/utils/useResponsiveProp.js +1 -1
  110. package/lib/utils/useSpacingScale.js +4 -4
  111. package/lib/utils/withLinkRouter.js +98 -0
  112. package/lib-module/A11yInfoProvider/index.js +62 -0
  113. package/lib-module/A11yText/index.js +55 -0
  114. package/lib-module/ActivityIndicator/Spinner.js +76 -0
  115. package/lib-module/ActivityIndicator/Spinner.native.js +143 -0
  116. package/lib-module/ActivityIndicator/index.js +40 -0
  117. package/lib-module/ActivityIndicator/shared.js +12 -0
  118. package/lib-module/BaseProvider/index.js +26 -0
  119. package/lib-module/Box/Box.js +243 -0
  120. package/lib-module/Box/index.js +2 -0
  121. package/lib-module/Button/Button.js +25 -0
  122. package/lib-module/Button/ButtonBase.js +254 -0
  123. package/lib-module/Button/ButtonGroup.js +164 -0
  124. package/lib-module/Button/ButtonLink.js +39 -0
  125. package/lib-module/Button/index.js +4 -0
  126. package/lib-module/Button/propTypes.js +36 -0
  127. package/lib-module/Card/Card.js +83 -0
  128. package/lib-module/Card/CardBase.js +62 -0
  129. package/lib-module/Card/PressableCardBase.js +113 -0
  130. package/lib-module/Card/index.js +4 -0
  131. package/lib-module/Checkbox/Checkbox.js +321 -0
  132. package/lib-module/Checkbox/CheckboxGroup.js +218 -0
  133. package/lib-module/Checkbox/CheckboxInput.js +58 -0
  134. package/lib-module/Checkbox/CheckboxInput.native.js +6 -0
  135. package/lib-module/Checkbox/index.js +3 -0
  136. package/lib-module/Divider/Divider.js +123 -0
  137. package/lib-module/Divider/index.js +2 -0
  138. package/lib-module/ExpandCollapse/Accordion.js +15 -0
  139. package/lib-module/ExpandCollapse/Control.js +130 -0
  140. package/lib-module/ExpandCollapse/ExpandCollapse.js +94 -0
  141. package/lib-module/ExpandCollapse/Panel.js +158 -0
  142. package/lib-module/ExpandCollapse/index.js +7 -0
  143. package/lib-module/Feedback/Feedback.js +144 -0
  144. package/lib-module/Feedback/index.js +2 -0
  145. package/lib-module/Fieldset/Fieldset.js +145 -0
  146. package/lib-module/Fieldset/FieldsetContainer.js +29 -0
  147. package/lib-module/Fieldset/FieldsetContainer.native.js +20 -0
  148. package/lib-module/Fieldset/Legend.js +21 -0
  149. package/lib-module/Fieldset/Legend.native.js +28 -0
  150. package/lib-module/Fieldset/cssReset.js +14 -0
  151. package/lib-module/Fieldset/index.js +2 -0
  152. package/lib-module/FlexGrid/Col/Col.js +265 -0
  153. package/lib-module/FlexGrid/Col/index.js +2 -0
  154. package/lib-module/FlexGrid/FlexGrid.js +147 -0
  155. package/lib-module/FlexGrid/Row/Row.js +177 -0
  156. package/lib-module/FlexGrid/Row/index.js +2 -0
  157. package/lib-module/FlexGrid/helpers/index.js +18 -0
  158. package/lib-module/FlexGrid/index.js +2 -0
  159. package/lib-module/FlexGrid/providers/GutterContext.js +3 -0
  160. package/lib-module/HorizontalScroll/HorizontalScroll.js +171 -0
  161. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +102 -0
  162. package/lib-module/HorizontalScroll/ScrollViewEnd.js +47 -0
  163. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +24 -0
  164. package/lib-module/HorizontalScroll/dictionary.js +11 -0
  165. package/lib-module/HorizontalScroll/index.js +11 -0
  166. package/lib-module/HorizontalScroll/itemPositions.js +106 -0
  167. package/lib-module/Icon/Icon.js +61 -0
  168. package/lib-module/Icon/IconText.js +81 -0
  169. package/lib-module/Icon/index.js +4 -0
  170. package/lib-module/IconButton/IconButton.js +115 -0
  171. package/lib-module/IconButton/index.js +2 -0
  172. package/lib-module/InputLabel/InputLabel.js +131 -0
  173. package/lib-module/InputLabel/LabelContent.js +24 -0
  174. package/lib-module/InputLabel/LabelContent.native.js +16 -0
  175. package/lib-module/InputLabel/index.js +2 -0
  176. package/lib-module/InputSupports/InputSupports.js +88 -0
  177. package/lib-module/InputSupports/index.js +2 -0
  178. package/lib-module/InputSupports/useInputSupports.js +31 -0
  179. package/lib-module/Link/ChevronLink.js +51 -0
  180. package/lib-module/Link/InlinePressable.js +37 -0
  181. package/lib-module/Link/InlinePressable.native.js +85 -0
  182. package/lib-module/Link/Link.js +27 -0
  183. package/lib-module/Link/LinkBase.js +210 -0
  184. package/lib-module/Link/TextButton.js +43 -0
  185. package/lib-module/Link/index.js +5 -0
  186. package/lib-module/List/List.js +55 -0
  187. package/lib-module/List/ListItem.js +213 -0
  188. package/lib-module/List/index.js +5 -0
  189. package/lib-module/Modal/Modal.js +208 -0
  190. package/lib-module/Modal/dictionary.js +9 -0
  191. package/lib-module/Modal/index.js +2 -0
  192. package/lib-module/Notification/Notification.js +196 -0
  193. package/lib-module/Notification/dictionary.js +8 -0
  194. package/lib-module/Notification/index.js +2 -0
  195. package/lib-module/Pagination/PageButton.js +65 -0
  196. package/lib-module/Pagination/Pagination.js +140 -0
  197. package/lib-module/Pagination/SideButton.js +103 -0
  198. package/lib-module/Pagination/dictionary.js +18 -0
  199. package/lib-module/Pagination/index.js +2 -0
  200. package/lib-module/Pagination/usePagination.js +72 -0
  201. package/lib-module/Progress/Progress.js +85 -0
  202. package/lib-module/Progress/ProgressBar.js +134 -0
  203. package/lib-module/Progress/ProgressBarBackground.js +41 -0
  204. package/lib-module/Progress/index.js +4 -0
  205. package/lib-module/Radio/Radio.js +263 -0
  206. package/lib-module/Radio/RadioButton.js +128 -0
  207. package/lib-module/Radio/RadioGroup.js +225 -0
  208. package/lib-module/Radio/RadioInput.js +60 -0
  209. package/lib-module/Radio/RadioInput.native.js +6 -0
  210. package/lib-module/Radio/index.js +3 -0
  211. package/lib-module/RadioCard/RadioCard.js +218 -0
  212. package/lib-module/RadioCard/RadioCardGroup.js +232 -0
  213. package/lib-module/RadioCard/index.js +3 -0
  214. package/lib-module/Search/Search.js +233 -0
  215. package/lib-module/Search/dictionary.js +12 -0
  216. package/lib-module/Search/index.js +2 -0
  217. package/lib-module/Select/Group.js +20 -0
  218. package/lib-module/Select/Group.native.js +14 -0
  219. package/lib-module/Select/Item.js +17 -0
  220. package/lib-module/Select/Item.native.js +9 -0
  221. package/lib-module/Select/Picker.js +67 -0
  222. package/lib-module/Select/Picker.native.js +110 -0
  223. package/lib-module/Select/Select.js +317 -0
  224. package/lib-module/Select/index.js +6 -0
  225. package/lib-module/SideNav/Item.js +139 -0
  226. package/lib-module/SideNav/ItemContent.js +45 -0
  227. package/lib-module/SideNav/ItemsGroup.js +115 -0
  228. package/lib-module/SideNav/SideNav.js +133 -0
  229. package/lib-module/SideNav/index.js +1 -0
  230. package/lib-module/Skeleton/Skeleton.js +117 -0
  231. package/lib-module/Skeleton/index.js +2 -0
  232. package/lib-module/Skeleton/skeleton.constant.js +3 -0
  233. package/lib-module/Skeleton/skeletonWebAnimation.js +18 -0
  234. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +24 -0
  235. package/lib-module/Spacer/Spacer.js +97 -0
  236. package/lib-module/Spacer/index.js +2 -0
  237. package/lib-module/StackView/StackView.js +124 -0
  238. package/lib-module/StackView/StackWrap.js +48 -0
  239. package/lib-module/StackView/StackWrap.native.js +3 -0
  240. package/lib-module/StackView/StackWrapBox.js +114 -0
  241. package/lib-module/StackView/StackWrapGap.js +58 -0
  242. package/lib-module/StackView/common.js +32 -0
  243. package/lib-module/StackView/getStackedContent.js +123 -0
  244. package/lib-module/StackView/index.js +5 -0
  245. package/lib-module/StepTracker/Step.js +229 -0
  246. package/lib-module/StepTracker/StepTracker.js +175 -0
  247. package/lib-module/StepTracker/dictionary.js +10 -0
  248. package/lib-module/StepTracker/index.js +2 -0
  249. package/lib-module/Tabs/Tabs.js +113 -0
  250. package/lib-module/Tabs/TabsItem.js +215 -0
  251. package/lib-module/Tabs/index.js +2 -0
  252. package/lib-module/Tags/Tags.js +238 -0
  253. package/lib-module/Tags/index.js +2 -0
  254. package/lib-module/TextInput/TextArea.js +88 -0
  255. package/lib-module/TextInput/TextInput.js +60 -0
  256. package/lib-module/TextInput/TextInputBase.js +233 -0
  257. package/lib-module/TextInput/index.js +3 -0
  258. package/lib-module/TextInput/propTypes.js +31 -0
  259. package/lib-module/ThemeProvider/ThemeProvider.js +35 -0
  260. package/lib-module/ThemeProvider/index.js +6 -0
  261. package/lib-module/ThemeProvider/useSetTheme.js +22 -0
  262. package/lib-module/ThemeProvider/useTheme.js +14 -0
  263. package/lib-module/ThemeProvider/useThemeTokens.js +105 -0
  264. package/lib-module/ThemeProvider/utils/index.js +2 -0
  265. package/lib-module/ThemeProvider/utils/styles.js +174 -0
  266. package/lib-module/ThemeProvider/utils/theme-tokens.js +151 -0
  267. package/lib-module/ToggleSwitch/ToggleSwitch.js +224 -0
  268. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +202 -0
  269. package/lib-module/ToggleSwitch/index.js +3 -0
  270. package/lib-module/Tooltip/Backdrop.js +52 -0
  271. package/lib-module/Tooltip/Backdrop.native.js +43 -0
  272. package/lib-module/Tooltip/Tooltip.js +332 -0
  273. package/lib-module/Tooltip/dictionary.js +8 -0
  274. package/lib-module/Tooltip/getTooltipPosition.js +164 -0
  275. package/lib-module/Tooltip/index.js +2 -0
  276. package/lib-module/TooltipButton/TooltipButton.js +71 -0
  277. package/lib-module/TooltipButton/index.js +2 -0
  278. package/lib-module/Typography/Typography.js +118 -0
  279. package/lib-module/Typography/index.js +2 -0
  280. package/lib-module/ViewportProvider/ViewportProvider.js +28 -0
  281. package/lib-module/ViewportProvider/index.js +3 -0
  282. package/lib-module/ViewportProvider/useViewport.js +3 -0
  283. package/lib-module/ViewportProvider/useViewportListener.js +43 -0
  284. package/lib-module/index.js +48 -0
  285. package/lib-module/utils/a11y/index.js +2 -0
  286. package/lib-module/utils/a11y/semantics.js +154 -0
  287. package/lib-module/utils/a11y/textSize.js +34 -0
  288. package/lib-module/utils/animation/index.js +2 -0
  289. package/lib-module/utils/animation/useVerticalExpandAnimation.js +49 -0
  290. package/lib-module/utils/children.js +118 -0
  291. package/lib-module/utils/index.js +15 -0
  292. package/lib-module/utils/info/index.js +7 -0
  293. package/lib-module/utils/info/platform/index.js +11 -0
  294. package/lib-module/utils/info/platform/platform.android.js +1 -0
  295. package/lib-module/utils/info/platform/platform.ios.js +1 -0
  296. package/lib-module/utils/info/platform/platform.js +1 -0
  297. package/lib-module/utils/info/platform/platform.native.js +4 -0
  298. package/lib-module/utils/info/versions.js +5 -0
  299. package/lib-module/utils/input.js +180 -0
  300. package/lib-module/utils/pressability.js +97 -0
  301. package/lib-module/utils/props/a11yProps.js +140 -0
  302. package/lib-module/utils/props/clickProps.js +25 -0
  303. package/lib-module/utils/props/componentPropType.js +63 -0
  304. package/lib-module/utils/props/copyPropTypes.js +2 -0
  305. package/lib-module/utils/props/getPropSelector.js +6 -0
  306. package/lib-module/utils/props/hrefAttrsProp.js +30 -0
  307. package/lib-module/utils/props/index.js +16 -0
  308. package/lib-module/utils/props/inputSupportsProps.js +54 -0
  309. package/lib-module/utils/props/linkProps.js +47 -0
  310. package/lib-module/utils/props/paddingProp.js +9 -0
  311. package/lib-module/utils/props/pressProps.js +42 -0
  312. package/lib-module/utils/props/rectProp.js +9 -0
  313. package/lib-module/utils/props/responsiveProps.js +30 -0
  314. package/lib-module/utils/props/selectSystemProps.js +24 -0
  315. package/lib-module/utils/props/spacingProps.js +56 -0
  316. package/lib-module/utils/props/tokens.js +120 -0
  317. package/lib-module/utils/props/variantProp.js +18 -0
  318. package/lib-module/utils/props/viewProps.js +22 -0
  319. package/lib-module/utils/ssr.js +35 -0
  320. package/lib-module/utils/useCopy.js +42 -0
  321. package/lib-module/utils/useHash.js +44 -0
  322. package/lib-module/utils/useHash.native.js +7 -0
  323. package/lib-module/utils/useResponsiveProp.js +47 -0
  324. package/lib-module/utils/useSpacingScale.js +123 -0
  325. package/lib-module/utils/useUniqueId.js +12 -0
  326. package/lib-module/utils/withLinkRouter.js +82 -0
  327. package/package.json +9 -5
  328. package/src/A11yText/index.jsx +7 -3
  329. package/src/ActivityIndicator/Spinner.jsx +56 -44
  330. package/src/ActivityIndicator/Spinner.native.jsx +20 -12
  331. package/src/ActivityIndicator/index.jsx +1 -1
  332. package/src/Box/Box.jsx +15 -13
  333. package/src/Button/Button.jsx +1 -1
  334. package/src/Button/ButtonBase.jsx +20 -12
  335. package/src/Button/ButtonGroup.jsx +17 -8
  336. package/src/Button/ButtonLink.jsx +1 -1
  337. package/src/Button/propTypes.js +2 -1
  338. package/src/Card/Card.jsx +7 -4
  339. package/src/Card/CardBase.jsx +6 -5
  340. package/src/Card/PressableCardBase.jsx +16 -14
  341. package/src/Checkbox/Checkbox.jsx +12 -7
  342. package/src/Divider/Divider.jsx +19 -12
  343. package/src/ExpandCollapse/Control.jsx +12 -7
  344. package/src/ExpandCollapse/ExpandCollapse.jsx +13 -3
  345. package/src/ExpandCollapse/Panel.jsx +15 -5
  346. package/src/Feedback/Feedback.jsx +13 -3
  347. package/src/Fieldset/Fieldset.jsx +1 -1
  348. package/src/FlexGrid/FlexGrid.jsx +11 -5
  349. package/src/FlexGrid/helpers/index.js +1 -3
  350. package/src/HorizontalScroll/HorizontalScroll.jsx +12 -5
  351. package/src/IconButton/IconButton.jsx +18 -12
  352. package/src/InputLabel/InputLabel.jsx +16 -2
  353. package/src/InputSupports/InputSupports.jsx +1 -1
  354. package/src/Link/LinkBase.jsx +15 -12
  355. package/src/List/List.jsx +12 -5
  356. package/src/List/ListItem.jsx +16 -2
  357. package/src/Modal/Modal.jsx +63 -50
  358. package/src/Notification/Notification.jsx +17 -3
  359. package/src/Pagination/PageButton.jsx +3 -2
  360. package/src/Pagination/Pagination.jsx +38 -4
  361. package/src/Pagination/SideButton.jsx +2 -2
  362. package/src/Progress/Progress.jsx +5 -3
  363. package/src/Progress/ProgressBar.jsx +8 -6
  364. package/src/Radio/Radio.jsx +13 -7
  365. package/src/Radio/RadioButton.jsx +13 -3
  366. package/src/Radio/RadioGroup.jsx +14 -2
  367. package/src/RadioCard/RadioCard.jsx +9 -6
  368. package/src/RadioCard/RadioCardGroup.jsx +16 -4
  369. package/src/Search/Search.jsx +15 -3
  370. package/src/Select/Select.jsx +21 -7
  371. package/src/SideNav/Item.jsx +15 -7
  372. package/src/SideNav/SideNav.jsx +13 -2
  373. package/src/Skeleton/Skeleton.jsx +55 -43
  374. package/src/Spacer/Spacer.jsx +10 -18
  375. package/src/StackView/StackView.jsx +13 -12
  376. package/src/StackView/StackWrapBox.jsx +12 -12
  377. package/src/StackView/StackWrapGap.jsx +9 -7
  378. package/src/StackView/getStackedContent.jsx +1 -1
  379. package/src/StepTracker/Step.jsx +7 -4
  380. package/src/StepTracker/StepTracker.jsx +8 -8
  381. package/src/Tabs/Tabs.jsx +63 -23
  382. package/src/Tabs/TabsItem.jsx +22 -14
  383. package/src/Tags/Tags.jsx +16 -7
  384. package/src/TextInput/TextArea.jsx +20 -8
  385. package/src/TextInput/TextInput.jsx +20 -8
  386. package/src/TextInput/TextInputBase.jsx +13 -3
  387. package/src/ThemeProvider/useThemeTokens.js +3 -3
  388. package/src/ThemeProvider/utils/theme-tokens.js +3 -3
  389. package/src/ToggleSwitch/ToggleSwitch.jsx +104 -41
  390. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +211 -0
  391. package/src/ToggleSwitch/index.js +2 -1
  392. package/src/Tooltip/Tooltip.jsx +13 -3
  393. package/src/TooltipButton/TooltipButton.jsx +6 -4
  394. package/src/Typography/Typography.jsx +10 -6
  395. package/src/index.js +2 -2
  396. package/src/utils/a11y/semantics.js +3 -2
  397. package/src/utils/children.jsx +2 -1
  398. package/src/utils/index.js +3 -1
  399. package/src/utils/pressability.js +1 -1
  400. package/src/utils/props/a11yProps.js +151 -0
  401. package/src/utils/props/clickProps.js +31 -0
  402. package/src/utils/props/componentPropType.js +67 -0
  403. package/src/utils/props/copyPropTypes.js +3 -0
  404. package/src/utils/props/getPropSelector.js +14 -0
  405. package/src/utils/props/hrefAttrsProp.js +25 -0
  406. package/src/utils/props/index.js +16 -0
  407. package/src/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -4
  408. package/src/utils/props/linkProps.js +43 -0
  409. package/src/utils/props/paddingProp.js +10 -0
  410. package/src/utils/props/pressProps.js +45 -0
  411. package/src/utils/props/rectProp.js +10 -0
  412. package/src/utils/props/responsiveProps.js +30 -0
  413. package/src/utils/props/selectSystemProps.js +25 -0
  414. package/src/utils/props/spacingProps.js +58 -0
  415. package/src/utils/props/tokens.js +150 -0
  416. package/src/utils/props/variantProp.js +20 -0
  417. package/src/utils/props/viewProps.js +23 -0
  418. package/src/utils/ssr.js +35 -0
  419. package/src/utils/useResponsiveProp.js +1 -1
  420. package/src/utils/useSpacingScale.js +4 -4
  421. package/src/utils/withLinkRouter.jsx +68 -0
  422. package/stories/TextInput/TextArea.stories.jsx +1 -0
  423. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +5 -1
  424. package/stories/ToggleSwitch/ToggleSwitchGroup.stories.jsx +81 -0
  425. package/.ultra.cache.json +0 -1
  426. package/lib/utils/a11y/propTypes.js +0 -61
  427. package/lib/utils/a11y/propTypes.native.js +0 -47
  428. package/lib/utils/propTypes.js +0 -541
  429. package/release-context.json +0 -7
  430. package/src/utils/a11y/propTypes.js +0 -61
  431. package/src/utils/a11y/propTypes.native.js +0 -39
  432. package/src/utils/propTypes.js +0 -531
@@ -19,8 +19,6 @@ var _ThemeProvider = require("../ThemeProvider");
19
19
 
20
20
  var _utils = require("../utils");
21
21
 
22
- var _propTypes2 = require("../utils/propTypes");
23
-
24
22
  var _CardBase = _interopRequireDefault(require("./CardBase"));
25
23
 
26
24
  var _jsxRuntime = require("react/jsx-runtime");
@@ -31,6 +29,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
29
 
32
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
31
 
32
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
34
33
  const tokenKeys = [...(0, _utils.getTokenNames)('Card'), // Outer border tokens. TODO: centralise common token sets like these as part of
35
34
  // https://github.com/telus/universal-design-system/issues/782
36
35
  'outerBorderColor', 'outerBorderWidth', 'outerBorderGap'];
@@ -52,16 +51,15 @@ const PressableCardBase = /*#__PURE__*/(0, _react.forwardRef)(({
52
51
  inactive,
53
52
  href,
54
53
  hrefAttrs,
55
- onPress,
56
54
  accessibilityRole = href ? 'link' : undefined,
57
- ...rest
55
+ ...rawRest
58
56
  }, ref) => {
59
- const viewport = (0, _ViewportProvider.useViewport)();
60
-
61
- const a11y = _propTypes2.a11yProps.select({ ...rest,
62
- accessibilityRole
63
- });
57
+ const {
58
+ onPress,
59
+ ...rest
60
+ } = _utils.clickProps.toPressProps(rawRest);
64
61
 
62
+ const viewport = (0, _ViewportProvider.useViewport)();
65
63
  const additionalState = {
66
64
  checked,
67
65
  validation,
@@ -120,7 +118,9 @@ const PressableCardBase = /*#__PURE__*/(0, _react.forwardRef)(({
120
118
  onKeyDown: handleKeyDown,
121
119
  hrefAttrs: hrefAttrs,
122
120
  style: getOuterBorderStyle,
123
- ...a11y,
121
+ ...selectProps({ ...rest,
122
+ accessibilityRole
123
+ }),
124
124
  children: pressableState => /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardBase.default, {
125
125
  tokens: getCardTokens(pressableState),
126
126
  children: typeof children === 'function' ? children(getCardState(pressableState)) : children
@@ -128,14 +128,15 @@ const PressableCardBase = /*#__PURE__*/(0, _react.forwardRef)(({
128
128
  });
129
129
  });
130
130
  PressableCardBase.displayName = 'PressableCardBase';
131
- PressableCardBase.propTypes = {
131
+ PressableCardBase.propTypes = { ...selectedSystemPropTypes,
132
132
  children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.node]),
133
133
  tokens: (0, _utils.getTokensSetPropType)(tokenKeys, {
134
134
  requireAll: true,
135
135
  allowFunction: true
136
136
  }),
137
- variant: _utils.variantProp.propType,
138
- ..._propTypes2.a11yProps.types
137
+ variant: _utils.variantProp.propType
139
138
  };
140
- var _default = PressableCardBase;
139
+
140
+ var _default = (0, _utils.withLinkRouter)(PressableCardBase);
141
+
141
142
  exports.default = _default;
@@ -31,8 +31,6 @@ var _ThemeProvider = require("../ThemeProvider");
31
31
 
32
32
  var _utils = require("../utils");
33
33
 
34
- var _propTypes2 = require("../utils/propTypes");
35
-
36
34
  var _useUniqueId = _interopRequireDefault(require("../utils/useUniqueId"));
37
35
 
38
36
  var _jsxRuntime = require("react/jsx-runtime");
@@ -43,8 +41,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
43
41
 
44
42
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
43
 
46
- // @todo move `LabelContent` outside of the `InputLabel` and fix
47
- // the issue with the cursor not being pointer on Web
44
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
45
+
48
46
  const selectInputStyles = ({
49
47
  iconBackgroundColor,
50
48
  inputBorderColor,
@@ -202,8 +200,6 @@ const Checkbox = /*#__PURE__*/(0, _react.forwardRef)(({
202
200
  if ((event === null || event === void 0 ? void 0 : event.key) === ' ') handleChange(event);
203
201
  };
204
202
 
205
- const accessibilityProps = _propTypes2.a11yProps.select(rest);
206
-
207
203
  const uniqueId = (0, _useUniqueId.default)('checkbox');
208
204
  const inputId = id ?? uniqueId;
209
205
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
@@ -221,7 +217,7 @@ const Checkbox = /*#__PURE__*/(0, _react.forwardRef)(({
221
217
  checked: isChecked,
222
218
  disabled: inactive
223
219
  },
224
- ...accessibilityProps,
220
+ ...selectProps(rest),
225
221
  children: ({
226
222
  focused: focus,
227
223
  hovered: hover,
@@ -275,7 +271,7 @@ const Checkbox = /*#__PURE__*/(0, _react.forwardRef)(({
275
271
  });
276
272
  });
277
273
  Checkbox.displayName = 'Checkbox';
278
- Checkbox.propTypes = { ..._propTypes2.a11yProps.propTypes,
274
+ Checkbox.propTypes = { ...selectedSystemPropTypes,
279
275
 
280
276
  /**
281
277
  * Use `checked` for controlled Checkbox. For uncontrolled Checkbox, use the `defaultChecked` prop.
@@ -29,9 +29,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
29
 
30
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
32
33
  /**
33
- * @typedef {import('../utils/propTypes.js').SpacingIndex} SpacingIndex
34
- * @typedef {import('../utils/propTypes.js').SpacingObject} SpacingObject
34
+ * @typedef {import('../utils/props/spacingProps.js').SpacingIndex} SpacingIndex
35
+ * @typedef {import('../utils/props/spacingProps.js').SpacingObject} SpacingObject
35
36
  */
36
37
 
37
38
  /**
@@ -70,12 +71,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
70
71
  *
71
72
  * For accessibility purposes a divider component will be described with ARIA attributes, i.e. `role="separator"` and `aria-orientation="vertical/horizontal"`.
72
73
  */
74
+
73
75
  const Divider = /*#__PURE__*/(0, _react.forwardRef)(({
74
76
  variant,
75
77
  vertical = false,
76
78
  space,
77
79
  tokens,
78
- testID
80
+ ...rest
79
81
  }, ref) => {
80
82
  const {
81
83
  color,
@@ -94,11 +96,17 @@ const Divider = /*#__PURE__*/(0, _react.forwardRef)(({
94
96
  accessibilityRole: 'separator'
95
97
  } : // There are no such equivalent attributes for native
96
98
  {};
99
+ const {
100
+ testID,
101
+ ...selectedProps
102
+ } = selectProps({ ...a11y,
103
+ ...rest
104
+ });
97
105
  const divider = /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
98
106
  ref: ref,
99
107
  style: [styles.divider, borderStyles],
100
108
  testID: testID,
101
- ...a11y
109
+ ...selectedProps
102
110
  });
103
111
  if (!space) return divider;
104
112
  const spacerProps = {
@@ -114,7 +122,7 @@ const Divider = /*#__PURE__*/(0, _react.forwardRef)(({
114
122
  });
115
123
  });
116
124
  Divider.displayName = 'Divider';
117
- Divider.propTypes = {
125
+ Divider.propTypes = { ...selectedSystemPropTypes,
118
126
  tokens: (0, _utils.getTokensPropType)('Divider'),
119
127
  space: _utils.spacingProps.types.spacingValue,
120
128
  variant: _utils.variantProp.propType,
@@ -123,14 +131,7 @@ Divider.propTypes = {
123
131
  * By default, the divider is a horizontal line the full width of its parent.
124
132
  * With `vertical` prop and when inside a container with { flexDirection: row }, draws a full height vertical line.
125
133
  */
126
- vertical: _propTypes.default.bool,
127
-
128
- /**
129
- * @ignore
130
- * In tests, the only way to select dividers is with testID prop and getByTestId, since they have no content,
131
- * no accessibility role on native, and there is no equivalent of nextSibling in React Native Testing Library.
132
- */
133
- testID: _propTypes.default.string
134
+ vertical: _propTypes.default.bool
134
135
  };
135
136
 
136
137
  const styles = _StyleSheet.default.create({
@@ -25,6 +25,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
25
 
26
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
27
 
28
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
29
+
28
30
  function selectContainerStyles({
29
31
  backgroundColor,
30
32
  borderColor,
@@ -77,15 +79,13 @@ const ExpandCollapseControl = /*#__PURE__*/(0, _react.forwardRef)(({
77
79
  tokens,
78
80
  accessibilityRole = 'button',
79
81
  variant,
80
- rest
82
+ ...rest
81
83
  }, ref) => {
82
84
  const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('ExpandCollapseControl', tokens, variant);
83
-
84
- const a11y = _utils.a11yProps.select({ ...rest,
85
+ const selectedProps = selectProps({ ...rest,
85
86
  accessibilityRole
86
87
  });
87
-
88
- a11y.accessibilityState = { ...(a11y.accessibilityState || {}),
88
+ selectedProps.accessibilityState = { ...(selectedProps.accessibilityState || {}),
89
89
  expanded: isExpanded
90
90
  };
91
91
 
@@ -106,7 +106,7 @@ const ExpandCollapseControl = /*#__PURE__*/(0, _react.forwardRef)(({
106
106
 
107
107
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
108
108
  ref: ref,
109
- ...a11y,
109
+ ...selectedProps,
110
110
  onPress: onPress,
111
111
  style: getPressableStyle,
112
112
  children: pressableState => {
@@ -125,7 +125,7 @@ const ExpandCollapseControl = /*#__PURE__*/(0, _react.forwardRef)(({
125
125
  });
126
126
  });
127
127
  ExpandCollapseControl.displayName = 'ExpandCollapseControl';
128
- ExpandCollapseControl.propTypes = { ..._utils.a11yProps.propTypes,
128
+ ExpandCollapseControl.propTypes = { ...selectedSystemPropTypes,
129
129
  tokens: (0, _utils.getTokensPropType)('ExpandCollapseControl'),
130
130
  variant: _utils.variantProp.propType,
131
131
 
@@ -23,6 +23,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
23
23
 
24
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
25
 
26
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
27
+
26
28
  function selectBorderStyles(tokens) {
27
29
  return {
28
30
  borderBottomWidth: tokens.borderWidth,
@@ -46,7 +48,8 @@ const ExpandCollapse = /*#__PURE__*/(0, _react.forwardRef)(({
46
48
  maxOpen,
47
49
  open,
48
50
  initialOpen,
49
- onChange
51
+ onChange,
52
+ ...rest
50
53
  }, ref) => {
51
54
  const {
52
55
  currentValues: openIds,
@@ -64,6 +67,7 @@ const ExpandCollapse = /*#__PURE__*/(0, _react.forwardRef)(({
64
67
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
65
68
  ref: ref,
66
69
  style: selectBorderStyles(themeTokens),
70
+ ...selectProps(rest),
67
71
  children: typeof children === 'function' ? children({
68
72
  openIds,
69
73
  onToggle,
@@ -74,7 +78,7 @@ const ExpandCollapse = /*#__PURE__*/(0, _react.forwardRef)(({
74
78
  });
75
79
  });
76
80
  ExpandCollapse.displayName = 'ExpandCollapse';
77
- ExpandCollapse.propTypes = {
81
+ ExpandCollapse.propTypes = { ...selectedSystemPropTypes,
78
82
  variant: _utils.variantProp.propType,
79
83
  tokens: (0, _utils.getTokensPropType)('ExpandCollapse'),
80
84
 
@@ -31,7 +31,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
31
 
32
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
33
 
34
- // just void functions for now, since there are no style tokens for a panel or control at this point
34
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]); // just void functions for now, since there are no style tokens for a panel or control at this point
35
+
35
36
  const selectGroupStyles = () => {};
36
37
 
37
38
  const selectContainerStyles = ({
@@ -71,10 +72,8 @@ const ExpandCollapsePanel = /*#__PURE__*/(0, _react.forwardRef)(({
71
72
  }, ref) => {
72
73
  const [containerHeight, setContainerHeight] = (0, _react.useState)(null);
73
74
  const isExpanded = openIds.includes(panelId);
74
-
75
- const a11y = _utils.a11yProps.select(rest);
76
-
77
- a11y.accessibilityState = { ...(a11y.accessibilityState || {}),
75
+ const selectedProps = selectProps(rest);
76
+ selectedProps.accessibilityState = { ...(selectedProps.accessibilityState || {}),
78
77
  expanded: isExpanded
79
78
  };
80
79
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('ExpandCollapsePanel', tokens, variant, {
@@ -112,7 +111,7 @@ const ExpandCollapsePanel = /*#__PURE__*/(0, _react.forwardRef)(({
112
111
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
113
112
  ref: ref,
114
113
  style: selectGroupStyles(themeTokens),
115
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Control.default, { ...a11y,
114
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Control.default, { ...selectedProps,
116
115
  isExpanded: isExpanded,
117
116
  tokens: controlTokens,
118
117
  onPress: handleControlPress,
@@ -132,7 +131,7 @@ const ExpandCollapsePanel = /*#__PURE__*/(0, _react.forwardRef)(({
132
131
  });
133
132
  });
134
133
  ExpandCollapsePanel.displayName = 'ExpandCollapsePanel';
135
- ExpandCollapsePanel.propTypes = {
134
+ ExpandCollapsePanel.propTypes = { ...selectedSystemPropTypes,
136
135
  variant: _utils.variantProp.propType,
137
136
  tokens: (0, _utils.getTokensPropType)('ExpandCollapsePanel'),
138
137
 
@@ -29,6 +29,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
29
 
30
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
33
+
32
34
  const selectStyles = tokens => (0, _utils.selectTokens)('Feedback', tokens);
33
35
 
34
36
  const selectTitleTextStyles = ({
@@ -102,17 +104,15 @@ const Feedback = /*#__PURE__*/(0, _react.forwardRef)(({
102
104
  style: contentTextStyles,
103
105
  children: children
104
106
  }) : children;
105
-
106
- const accessibilityProps = _utils.a11yProps.select({
107
+ const selectedProps = selectProps({
107
108
  accessibilityRole: validation === 'error' ? 'alert' : undefined,
108
109
  ...rest
109
110
  });
110
-
111
111
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
112
112
  ref: ref,
113
113
  style: selectStyles(themeTokens),
114
- ...accessibilityProps,
115
114
  nativeID: id,
115
+ ...selectedProps,
116
116
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
117
117
  space: space,
118
118
  children: [title !== undefined && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
@@ -133,7 +133,8 @@ const Feedback = /*#__PURE__*/(0, _react.forwardRef)(({
133
133
  });
134
134
  });
135
135
  Feedback.displayName = 'Feedback';
136
- Feedback.propTypes = {
136
+ Feedback.propTypes = { ...selectedSystemPropTypes,
137
+
137
138
  /**
138
139
  * Emphasized summary of the feedback. If an icon is set, it is rendered next to the title.
139
140
  */
@@ -81,9 +81,7 @@ const Fieldset = /*#__PURE__*/(0, _react.forwardRef)(({
81
81
  // fieldset / feedback / etc, wrap resolved children in a fragment, and stack with `preserveFragments`.
82
82
 
83
83
  const childContent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
84
- children: typeof children === 'function' ? children({
85
- a11yProps
86
- }) : children
84
+ children: typeof children === 'function' ? children(a11yProps) : children
87
85
  });
88
86
  const orderedContent = feedbackPosition === 'bottom' ? [legendContent, feedbackContent, childContent] : [legendContent, childContent, feedbackContent];
89
87
  const stackedContent = (0, _StackView.getStackedContent)(orderedContent, {
@@ -35,9 +35,11 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
35
 
36
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
37
 
38
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
38
39
  /**
39
40
  * A mobile-first flexbox grid.
40
41
  */
42
+
41
43
  const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)(({
42
44
  limitWidth = true,
43
45
  gutter = true,
@@ -86,8 +88,7 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)(({
86
88
  }
87
89
 
88
90
  const props = { ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
89
- ..._utils.a11yProps.select(rest),
90
- ..._utils.viewProps.select(rest)
91
+ ...selectProps(rest)
91
92
  };
92
93
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GutterContext.default.Provider, {
93
94
  value: gutter,
@@ -113,8 +114,7 @@ const styles = _StyleSheet.default.create({
113
114
  }
114
115
  });
115
116
 
116
- FlexGrid.propTypes = { ..._utils.a11yProps.propTypes,
117
- ..._utils.viewProps.types,
117
+ FlexGrid.propTypes = { ...selectedSystemPropTypes,
118
118
 
119
119
  /**
120
120
  * Whether or not to give the grid a fixed width. This also centres the grid horizontally.
@@ -8,11 +8,8 @@ exports.default = void 0;
8
8
  const applyInheritance = sizes => {
9
9
  let prevSize;
10
10
  return sizes.map((size, index) => {
11
- if (size) {
12
- prevSize = size;
13
- }
14
-
15
11
  if (size !== undefined) {
12
+ prevSize = size;
16
13
  return size;
17
14
  }
18
15
 
@@ -31,6 +31,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
31
 
32
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
33
 
34
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
34
35
  const tokenKeys = ['nextIcon', 'previousIcon', 'gutter', 'borderBottomWidth', 'borderBottomColor', 'buttonClearance'];
35
36
 
36
37
  const selectHorizontalScrollTokens = (themeTokens, prefix) => (0, _utils.selectTokens)(tokenKeys, themeTokens, prefix);
@@ -38,7 +39,7 @@ const selectHorizontalScrollTokens = (themeTokens, prefix) => (0, _utils.selectT
38
39
  * Base component that scrolls horizontally and displays left and right buttons if
39
40
  * there is content to the left and the right which can be scrolled to.
40
41
  *
41
- * @TODO revist `ScrollButton` after IconButton is stable.
42
+ * @TODO revisit `ScrollButton` after IconButton is stable.
42
43
  */
43
44
 
44
45
 
@@ -138,9 +139,7 @@ const HorizontalScroll = /*#__PURE__*/(0, _react.forwardRef)(({
138
139
 
139
140
  const scrollNext = () => scrollTo(scrollOffset + scrollDistance);
140
141
 
141
- const scrollPrevious = () => scrollTo(scrollOffset - scrollDistance);
142
-
143
- const a11y = _utils.a11yProps.select(rest); // On Web, being scrollable in one direction prevents overflow: visible in the other direction.
142
+ const scrollPrevious = () => scrollTo(scrollOffset - scrollDistance); // On Web, being scrollable in one direction prevents overflow: visible in the other direction.
144
143
  // Apply a fixed margin gutter that tab highlight effects can overhang without getting trimmed.
145
144
 
146
145
 
@@ -159,7 +158,7 @@ const HorizontalScroll = /*#__PURE__*/(0, _react.forwardRef)(({
159
158
  borderBottomWidth,
160
159
  borderBottomColor
161
160
  }],
162
- ...a11y,
161
+ ...selectProps(rest),
163
162
  children: children
164
163
  }), showPreviousButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(ScrollButton, {
165
164
  icon: previousIcon,
@@ -188,7 +187,7 @@ const staticStyles = _StyleSheet.default.create({
188
187
  }
189
188
  });
190
189
 
191
- HorizontalScroll.propTypes = {
190
+ HorizontalScroll.propTypes = { ...selectedSystemPropTypes,
192
191
  itemPositions: _itemPositions.itemPositionsPropType,
193
192
  ScrollButton: _propTypes.default.elementType,
194
193
  tokens: (0, _utils.getTokensSetPropType)(tokenKeys, {
@@ -21,8 +21,6 @@ var _ThemeProvider = require("../ThemeProvider");
21
21
 
22
22
  var _utils = require("../utils");
23
23
 
24
- var _propTypes2 = require("../utils/propTypes");
25
-
26
24
  var _Icon = _interopRequireDefault(require("../Icon"));
27
25
 
28
26
  var _jsxRuntime = require("react/jsx-runtime");
@@ -33,6 +31,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
33
31
 
34
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
33
 
34
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
35
+
36
36
  const selectOuterStyle = ({
37
37
  backgroundColor,
38
38
  borderRadius,
@@ -83,11 +83,15 @@ const IconButton = /*#__PURE__*/(0, _react.forwardRef)(({
83
83
  icon: IconComponent,
84
84
  href,
85
85
  hrefAttrs,
86
- onPress,
87
86
  accessibilityRole = href ? 'link' : 'button',
88
- ...rest
87
+ ...rawRest
89
88
  }, ref) => {
90
- const a11y = _propTypes2.a11yProps.select({ ...rest,
89
+ const {
90
+ onPress,
91
+ ...rest
92
+ } = _utils.clickProps.toPressProps(rawRest);
93
+
94
+ const selectedProps = selectProps({ ...rest,
91
95
  accessibilityRole
92
96
  });
93
97
 
@@ -106,14 +110,14 @@ const IconButton = /*#__PURE__*/(0, _react.forwardRef)(({
106
110
  onPress: handlePress,
107
111
  hrefAttrs: hrefAttrs,
108
112
  style: getOuterStyle,
109
- ...a11y,
113
+ ...selectedProps,
110
114
  children: pressableState => {
111
115
  const themeTokens = getTokens((0, _utils.resolvePressableState)(pressableState));
112
116
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
113
117
  style: selectInnerStyle(themeTokens),
114
118
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
115
119
  icon: IconComponent,
116
- title: a11y.accessibilityLabel,
120
+ title: selectedProps.accessibilityLabel,
117
121
  tokens: (0, _utils.selectTokens)('Icon', themeTokens, 'icon')
118
122
  })
119
123
  });
@@ -121,7 +125,7 @@ const IconButton = /*#__PURE__*/(0, _react.forwardRef)(({
121
125
  });
122
126
  });
123
127
  IconButton.displayName = 'IconButton';
124
- IconButton.propTypes = { ..._propTypes2.a11yProps.types,
128
+ IconButton.propTypes = { ...selectedSystemPropTypes,
125
129
  variant: _utils.variantProp.propType,
126
130
  tokens: (0, _utils.getTokensPropType)('IconButton'),
127
131
  icon: _propTypes.default.elementType.isRequired,
@@ -136,5 +140,6 @@ const staticStyles = _StyleSheet.default.create({
136
140
  }
137
141
  });
138
142
 
139
- var _default = IconButton;
143
+ var _default = (0, _utils.withLinkRouter)(IconButton);
144
+
140
145
  exports.default = _default;
@@ -31,6 +31,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
31
 
32
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
33
 
34
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
35
+
34
36
  const selectLabelStyles = tokens => (0, _ThemeProvider.applyTextStyles)((0, _utils.selectTokens)('Typography', tokens));
35
37
 
36
38
  const selectHintStyles = ({
@@ -61,7 +63,8 @@ const InputLabel = /*#__PURE__*/(0, _react.forwardRef)(({
61
63
  hintId,
62
64
  tooltip,
63
65
  tokens,
64
- variant
66
+ variant,
67
+ ...rest
65
68
  }, ref) => {
66
69
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('InputLabel', tokens, variant);
67
70
  const hasTooltip = tooltip !== undefined;
@@ -69,6 +72,7 @@ const InputLabel = /*#__PURE__*/(0, _react.forwardRef)(({
69
72
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
70
73
  ref: ref,
71
74
  style: [staticStyles.container, !isHintInline && staticStyles.containerWithHintBelow],
75
+ ...selectProps(rest),
72
76
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
73
77
  style: [selectLabelStyles(themeTokens), selectGapStyles(themeTokens), staticStyles.label],
74
78
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LabelContent.default, {
@@ -92,7 +96,8 @@ const InputLabel = /*#__PURE__*/(0, _react.forwardRef)(({
92
96
  });
93
97
  });
94
98
  InputLabel.displayName = 'InputLabel';
95
- InputLabel.propTypes = {
99
+ InputLabel.propTypes = { ...selectedSystemPropTypes,
100
+
96
101
  /**
97
102
  * The input label.
98
103
  */
@@ -61,8 +61,8 @@ const InputSupports = /*#__PURE__*/(0, _react.forwardRef)(({
61
61
  tooltip: tooltip,
62
62
  forId: inputId
63
63
  }), typeof children === 'function' ? children({
64
- a11yProps,
65
- inputId
64
+ inputId,
65
+ ...a11yProps
66
66
  }) : children, feedback && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Feedback.default, {
67
67
  id: feedbackId,
68
68
  title: feedback,