@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
@@ -29,6 +29,7 @@ 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
34
  * A group of Cards that behave as a radio button group. Use when users select a single choice from mutually
34
35
  * exclusive options with need to show additional information for each option. The whole cards are each
@@ -79,6 +80,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
79
80
  * />
80
81
  * ```
81
82
  */
83
+
82
84
  const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
83
85
  tokens,
84
86
  radioCardTokens,
@@ -94,7 +96,8 @@ const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
94
96
  onChange,
95
97
  readOnly,
96
98
  name: inputGroupName,
97
- inactive
99
+ inactive,
100
+ ...rest
98
101
  }, ref) => {
99
102
  const viewport = (0, _ViewportProvider.useViewport)();
100
103
  const {
@@ -128,9 +131,8 @@ const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
128
131
  inactive: inactive || readOnly,
129
132
  validation: validation,
130
133
  accessibilityRole: "radiogroup",
131
- children: ({
132
- a11yProps
133
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(StackContainer, {
134
+ ...selectProps(rest),
135
+ children: props => /*#__PURE__*/(0, _jsxRuntime.jsx)(StackContainer, {
134
136
  space: space,
135
137
  accessibilityRole: "radiogroup",
136
138
  children: items.map(({
@@ -156,7 +158,7 @@ const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
156
158
  tokens: radioCardTokens,
157
159
  variant: variant,
158
160
  readOnly: readOnly,
159
- ...a11yProps,
161
+ ...props,
160
162
  children: content
161
163
  }, cardId);
162
164
  })
@@ -164,7 +166,8 @@ const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
164
166
  });
165
167
  });
166
168
  RadioCardGroup.displayName = 'RadioCardGroup';
167
- RadioCardGroup.propTypes = {
169
+ RadioCardGroup.propTypes = { ...selectedSystemPropTypes,
170
+
168
171
  /**
169
172
  * Optional theme token overrides for the outer RadioCardGroup component
170
173
  */
@@ -35,6 +35,8 @@ 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]);
39
+
38
40
  const selectInputTokens = ({
39
41
  searchTokens,
40
42
  buttonTokens,
@@ -97,7 +99,8 @@ const Search = /*#__PURE__*/(0, _react.forwardRef)(({
97
99
  accessibilityLabel,
98
100
  copy = 'en',
99
101
  tokens,
100
- variant
102
+ variant,
103
+ ...rest
101
104
  }, ref) => {
102
105
  const [value, setValue] = (0, _react.useState)(initialValue);
103
106
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Search', tokens, variant);
@@ -138,6 +141,7 @@ const Search = /*#__PURE__*/(0, _react.forwardRef)(({
138
141
  const isEmpty = value === '';
139
142
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
140
143
  style: staticStyles.container,
144
+ ...selectProps(rest),
141
145
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, {
142
146
  ref: ref,
143
147
  tokens: appearances => selectInputTokens({
@@ -186,7 +190,8 @@ const Search = /*#__PURE__*/(0, _react.forwardRef)(({
186
190
  });
187
191
  });
188
192
  Search.displayName = 'Search';
189
- Search.propTypes = {
193
+ Search.propTypes = { ...selectedSystemPropTypes,
194
+
190
195
  /**
191
196
  * Use this to set the initial value of the search input.
192
197
  * Updating `initialValue` will **not** update the actual value.
@@ -23,8 +23,6 @@ var _Picker = _interopRequireDefault(require("./Picker"));
23
23
 
24
24
  var _InputSupports = _interopRequireDefault(require("../InputSupports"));
25
25
 
26
- var _propTypes2 = _interopRequireDefault(require("../InputSupports/propTypes"));
27
-
28
26
  var _jsxRuntime = require("react/jsx-runtime");
29
27
 
30
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -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.inputSupportsProps, _utils.viewProps]);
35
+
36
36
  const selectInputStyles = ({
37
37
  backgroundColor,
38
38
  color,
@@ -221,9 +221,9 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)(({
221
221
  const handleMouseOut = () => setIsHovered(false);
222
222
 
223
223
  const {
224
- props: supportsProps
225
- } = _propTypes2.default.select(rest);
226
-
224
+ props: supportsProps,
225
+ ...selectedProps
226
+ } = selectProps(rest);
227
227
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Select', tokens, variant, {
228
228
  focus: isFocused,
229
229
  hover: isHovered,
@@ -235,9 +235,10 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)(({
235
235
  validationIcon: ValidationIconComponent
236
236
  } = themeTokens;
237
237
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
238
+ ...selectedProps,
238
239
  children: ({
239
- a11yProps,
240
- inputId
240
+ inputId,
241
+ ...props
241
242
  }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
242
243
  style: selectOuterBorderStyles(themeTokens),
243
244
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.default, {
@@ -254,7 +255,7 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)(({
254
255
  label: placeholder,
255
256
  value: ''
256
257
  } : undefined,
257
- ...a11yProps,
258
+ ...props,
258
259
  nativeID: inputId,
259
260
  testID: testID,
260
261
  children: children
@@ -277,7 +278,7 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)(({
277
278
  });
278
279
  });
279
280
  Select.displayName = 'Select';
280
- Select.propTypes = { ..._propTypes2.default.types,
281
+ Select.propTypes = { ...selectedSystemPropTypes,
281
282
 
282
283
  /**
283
284
  * Initial value for the uncontrolled version.
@@ -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.linkProps, _utils.viewProps]);
29
+
28
30
  function selectItemStyles({
29
31
  backgroundColor,
30
32
  borderColor,
@@ -78,14 +80,13 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)(({
78
80
  rest
79
81
  } = _utils.hrefAttrsProp.bundle(props);
80
82
 
81
- const linkPropSet = _utils.linkProps.select({
83
+ const selectedProps = selectProps({
82
84
  accessibilityRole,
83
85
  href,
84
86
  onPress: handlePress,
85
87
  hrefAttrs,
86
88
  ...rest
87
89
  });
88
-
89
90
  const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItem', tokens, variant);
90
91
 
91
92
  const getAppearanceState = ({
@@ -101,11 +102,10 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)(({
101
102
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
102
103
  ref: ref,
103
104
  style: getPressableStyle,
104
- ...linkPropSet,
105
105
  accessibilityState: {
106
106
  selected: isActive
107
107
  },
108
- testID: testID,
108
+ ...selectedProps,
109
109
  children: pressableState => {
110
110
  const themeTokens = getTokens(getAppearanceState(pressableState));
111
111
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ItemContent.default, {
@@ -116,7 +116,8 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)(({
116
116
  });
117
117
  });
118
118
  Item.displayName = 'Item';
119
- Item.propTypes = {
119
+ Item.propTypes = { ...selectedSystemPropTypes,
120
+
120
121
  /**
121
122
  * Text content of the `Item`.
122
123
  */
@@ -154,8 +155,7 @@ Item.propTypes = {
154
155
  */
155
156
  isExpanded: _propTypes.default.bool,
156
157
  tokens: (0, _utils.getTokensPropType)('SideNavItem'),
157
- variant: _utils.variantProp.propType,
158
- ..._utils.a11yProps.types
158
+ variant: _utils.variantProp.propType
159
159
  };
160
160
  var _default = Item;
161
161
  exports.default = _default;
@@ -34,20 +34,22 @@ function selectBorderStyles(tokens) {
34
34
  borderBottomColor: tokens.borderColor
35
35
  };
36
36
  }
37
+
38
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
37
39
  /**
38
40
  ## Usage Criteria
39
41
  - Use in conjunction with a large amount of educational / informational content
40
42
  - Allow the user to navigate between options frequently and efficiently
41
43
  */
42
44
 
43
-
44
45
  const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
45
46
  children,
46
47
  variant = {},
47
48
  tokens,
48
49
  accordion = true,
49
50
  itemTokens,
50
- groupTokens
51
+ groupTokens,
52
+ ...rest
51
53
  }, ref) => {
52
54
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('SideNav', tokens, variant);
53
55
  const [active, setActive] = (0, _react.useState)({
@@ -70,6 +72,7 @@ const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
70
72
  ref: ref,
71
73
  maxOpen: accordion ? 1 : null,
72
74
  style: selectBorderStyles(themeTokens),
75
+ ...selectProps(rest),
73
76
  children: ({
74
77
  openIds,
75
78
  onToggle
@@ -128,7 +131,8 @@ const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
128
131
  });
129
132
  });
130
133
  SideNav.displayName = 'SideNav';
131
- SideNav.propTypes = {
134
+ SideNav.propTypes = { ...selectedSystemPropTypes,
135
+
132
136
  /**
133
137
  * Specifies the structure and links of the `SideNav`. It may only consist of `SideNav.Item` and `SideNav.ItemsGroup`.
134
138
  */
@@ -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 selectSkeletonStyles = ({
35
37
  color,
36
38
  radius,
@@ -68,7 +70,8 @@ const Skeleton = /*#__PURE__*/(0, _react.forwardRef)(({
68
70
  size,
69
71
  characters,
70
72
  lines,
71
- shape = 'line'
73
+ shape = 'line',
74
+ ...rest
72
75
  }, ref) => {
73
76
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Skeleton', tokens, variant);
74
77
  const skeletonHeight = (0, _utils.useSpacingScale)(size || themeTokens.size);
@@ -121,11 +124,12 @@ const Skeleton = /*#__PURE__*/(0, _react.forwardRef)(({
121
124
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.default, {
122
125
  space: themeTokens.spaceBetweenLines,
123
126
  ref: ref,
127
+ ...selectProps(rest),
124
128
  children: lines > 1 ? [...Array(lines)].map((_, index) => renderSkeleton(index)) : renderSkeleton()
125
129
  });
126
130
  });
127
131
  Skeleton.displayName = 'Skeleton';
128
- Skeleton.propTypes = {
132
+ Skeleton.propTypes = { ...selectedSystemPropTypes,
129
133
  tokens: (0, _utils.getTokensPropType)('Skeleton'),
130
134
  variant: _utils.variantProp.propType,
131
135
  size: _propTypes.default.number,
@@ -24,9 +24,11 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
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
26
  /**
27
- * @typedef {import('../utils/propTypes.js').SpacingValue} SpacingValue
28
- * @typedef {import('../utils/propTypes.js').SpacingObject} SpacingObject
27
+ * @typedef {import('../utils/props/spacingProps.js').SpacingValue} SpacingValue
28
+ * @typedef {import('../utils/props/spacingProps.js').SpacingObject} SpacingObject
29
29
  */
30
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
31
+
30
32
  const selectSizeStyle = (size, direction) => ({
31
33
  // Only apply space in one direction at a time, else large spacers will increase the
32
34
  // 'across' size of the parent and mess up siblings with styles like `alignItems: stretch`.
@@ -77,20 +79,19 @@ const selectSizeStyle = (size, direction) => ({
77
79
  const Spacer = /*#__PURE__*/(0, _react.forwardRef)(({
78
80
  space = 1,
79
81
  direction = 'column',
80
- testID,
81
- dataSet
82
+ ...rest
82
83
  }, ref) => {
83
84
  const size = (0, _utils.useSpacingScale)(space);
84
85
  const sizeStyle = selectSizeStyle(size, direction);
85
86
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
86
87
  ref: ref,
87
- testID: testID,
88
88
  style: [staticStyles.stretch, sizeStyle],
89
- dataSet: dataSet
89
+ ...selectProps(rest)
90
90
  });
91
91
  });
92
92
  Spacer.displayName = 'Spacer';
93
- Spacer.propTypes = {
93
+ Spacer.propTypes = { ...selectedSystemPropTypes,
94
+
94
95
  /**
95
96
  * The size of the spacer according to the theme's spacing scale.
96
97
  * Either a number corresponding to a position on the theme's spacing scale (1 is smallest, 2 is second smallest, etc),
@@ -104,19 +105,7 @@ Spacer.propTypes = {
104
105
  * - `'column'` (default) applies space vertically; has a fixed height and not width.
105
106
  * - `'row'` applies space horizontally; has a fixed width and not height.
106
107
  */
107
- direction: _propTypes.default.oneOf(['column', 'row']),
108
-
109
- /**
110
- * @ignore
111
- */
112
- dataSet: _propTypes.default.object,
113
-
114
- /**
115
- * @ignore
116
- * In tests, the only way to select Spacers is with testID prop and getByTestId, since they have no content,
117
- * no accessibility role, and there is no equivalent of nextSibling in React Native Testing Library.
118
- */
119
- testID: _propTypes.default.string
108
+ direction: _propTypes.default.oneOf(['column', 'row'])
120
109
  };
121
110
 
122
111
  const staticStyles = _StyleSheet.default.create({
@@ -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
  /**
35
36
  * StackView evenly spaces its children, by default placing `Spacer` components between them.
36
37
  *
@@ -73,6 +74,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
73
74
  * It applies no accessibility props of its own, unless `divider` prop is passed (`Divider` has a
74
75
  * semantic role but only on web, not within native apps).
75
76
  */
77
+
76
78
  const StackView = /*#__PURE__*/(0, _react.forwardRef)(({
77
79
  space = 1,
78
80
  divider,
@@ -86,10 +88,9 @@ const StackView = /*#__PURE__*/(0, _react.forwardRef)(({
86
88
  }, ref) => {
87
89
  const viewport = (0, _ViewportProvider.useViewport)();
88
90
  const direction = (0, _utils.useResponsiveProp)(directionProp, 'column');
89
- const props = { ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
90
- ..._utils.a11yProps.select(rest),
91
- ..._utils.viewProps.select(rest)
92
- };
91
+ const selectedProps = selectProps({ ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
92
+ ...rest
93
+ });
93
94
  const content = (0, _getStackedContent.default)(children, {
94
95
  direction,
95
96
  divider,
@@ -101,14 +102,13 @@ const StackView = /*#__PURE__*/(0, _react.forwardRef)(({
101
102
  const flexStyles = (0, _common.selectFlexStyles)(themeTokens);
102
103
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
103
104
  ref: ref,
104
- ...props,
105
+ ...selectedProps,
105
106
  style: [flexStyles, _common.staticStyles[direction]],
106
107
  children: content
107
108
  });
108
109
  });
109
110
  StackView.displayName = 'StackView';
110
- StackView.propTypes = { ..._utils.a11yProps.propTypes,
111
- ..._utils.viewProps.types,
111
+ StackView.propTypes = { ...selectedSystemPropTypes,
112
112
  tokens: (0, _utils.getTokensPropType)('StackView'),
113
113
  variant: _utils.variantProp.propType,
114
114
 
@@ -29,6 +29,7 @@ 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
  const offsetSides = {
33
34
  row: 'marginBottom',
34
35
  column: 'marginRight'
@@ -71,10 +72,9 @@ const StackWrapBox = /*#__PURE__*/(0, _react.forwardRef)(({
71
72
  viewport
72
73
  });
73
74
  const flexStyles = (0, _common.selectFlexStyles)(themeTokens);
74
- const props = { ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
75
- ..._utils.a11yProps.select(rest),
76
- ..._utils.viewProps.select(rest)
77
- }; // Mimic CSS `gap` using box spacing on the side after a wrapped row then offsetting it on the last row.
75
+ const selectedProps = selectProps({ ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
76
+ ...rest
77
+ }); // Mimic CSS `gap` using box spacing on the side after a wrapped row then offsetting it on the last row.
78
78
 
79
79
  const gapSize = (0, _utils.useSpacingScale)(gap);
80
80
  const offsetStyle = {
@@ -91,14 +91,13 @@ const StackWrapBox = /*#__PURE__*/(0, _react.forwardRef)(({
91
91
  });
92
92
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
93
93
  ref: ref,
94
- ...props,
94
+ ...selectedProps,
95
95
  style: [flexStyles, _common.staticStyles.wrap, _common.staticStyles[direction], offsetStyle],
96
96
  children: content
97
97
  });
98
98
  });
99
99
  StackWrapBox.displayName = 'StackWrapBox';
100
- StackWrapBox.propTypes = { ..._utils.a11yProps.propTypes,
101
- ..._utils.viewProps.types,
100
+ StackWrapBox.propTypes = { ...selectedSystemPropTypes,
102
101
  tokens: (0, _utils.getTokensPropType)('StackView'),
103
102
 
104
103
  /**
@@ -29,6 +29,7 @@ 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] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
32
33
  /**
33
34
  * The primary implementation of StackWrap.
34
35
  *
@@ -39,6 +40,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
39
40
  * - The `space` between items is the same as the `gap` between wrapped rows (this is the
40
41
  * default if `gap` prop is undefined)
41
42
  */
43
+
42
44
  const StackWrapGap = /*#__PURE__*/(0, _react.forwardRef)(({
43
45
  space = 1,
44
46
  tokens,
@@ -55,10 +57,9 @@ const StackWrapGap = /*#__PURE__*/(0, _react.forwardRef)(({
55
57
  viewport
56
58
  });
57
59
  const flexStyles = (0, _common.selectFlexStyles)(themeTokens);
58
- const props = { ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
59
- ..._utils.a11yProps.select(rest),
60
- ..._utils.viewProps.select(rest)
61
- };
60
+ const selectedProps = selectProps({ ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
61
+ ...rest
62
+ });
62
63
  const size = (0, _utils.useSpacingScale)(space);
63
64
  const gapStyle = {
64
65
  gap: size
@@ -69,7 +70,7 @@ const StackWrapGap = /*#__PURE__*/(0, _react.forwardRef)(({
69
70
  });
70
71
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
71
72
  ref: ref,
72
- ...props,
73
+ ...selectedProps,
73
74
  style: [flexStyles, _common.staticStyles.wrap, _common.staticStyles[direction], gapStyle],
74
75
  children: content
75
76
  });
@@ -24,7 +24,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
24
  /**
25
25
  * @typedef {import('react').ReactChildren} ReactChildren
26
26
  * @typedef {import('react').ReactElement} ReactElement
27
- * @typedef {import('../utils/propTypes.js').SpacingValue} SpacingValue
27
+ * @typedef {import('../utils/props/spacingProps.js').SpacingValue} SpacingValue
28
28
  */
29
29
 
30
30
  /**
@@ -27,6 +27,8 @@ var _jsxRuntime = require("react/jsx-runtime");
27
27
 
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
29
 
30
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
31
+
30
32
  const selectCompletedIconTokens = ({
31
33
  completedIconColor,
32
34
  completedIconSize
@@ -149,7 +151,8 @@ const Step = ({
149
151
  status = 0,
150
152
  stepCount = 0,
151
153
  stepIndex = 0,
152
- tokens
154
+ tokens,
155
+ ...rest
153
156
  }) => {
154
157
  const {
155
158
  completedIcon,
@@ -170,7 +173,8 @@ const Step = ({
170
173
  },
171
174
  accessibilityLabel: label,
172
175
  accessibilityLevel: 2,
173
- accessibilityCurrent: status === stepIndex ? 'true' : 'false',
176
+ accessibilityCurrent: status === stepIndex,
177
+ ...selectProps(rest),
174
178
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
175
179
  direction: "row",
176
180
  space: 0,
@@ -208,7 +212,7 @@ const Step = ({
208
212
  });
209
213
  };
210
214
 
211
- Step.propTypes = {
215
+ Step.propTypes = { ...selectedSystemPropTypes,
212
216
  label: _propTypes.default.string.isRequired,
213
217
  name: _propTypes.default.string.isRequired,
214
218
  status: _propTypes.default.number.isRequired,
@@ -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 _ViewportProvider = require("../ViewportProvider");
27
25
 
28
26
  var _useCopy = _interopRequireDefault(require("../utils/useCopy"));
@@ -39,6 +37,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
39
37
 
40
38
  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; }
41
39
 
40
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
41
+
42
42
  const selectContainerStyles = ({
43
43
  containerPaddingBottom,
44
44
  containerPaddingLeft,
@@ -126,7 +126,7 @@ const StepTracker = /*#__PURE__*/(0, _react.forwardRef)(({
126
126
  });
127
127
  const stepTrackerLabel = getCopy('stepTrackerLabel').replace('%{stepNumber}', current < steps.length ? current + 1 : steps.length).replace('%{stepCount}', steps.length).replace('%{stepLabel}', current < steps.length ? steps[current] : steps[steps.length - 1]);
128
128
  if (!steps.length) return null;
129
- const accessibilityProps = {
129
+ const selectedProps = selectProps({
130
130
  accessibilityLabel: stepTrackerLabel,
131
131
  accessibilityLevel: 1,
132
132
  accessibilityRole: 'progressbar',
@@ -136,12 +136,12 @@ const StepTracker = /*#__PURE__*/(0, _react.forwardRef)(({
136
136
  now: current,
137
137
  text: steps[current]
138
138
  },
139
- ..._propTypes2.a11yProps.select(rest)
140
- };
139
+ ...rest
140
+ });
141
141
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
142
142
  ref: ref,
143
143
  style: selectContainerStyles(themeTokens),
144
- ...accessibilityProps,
144
+ ...selectedProps,
145
145
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
146
146
  space: 0,
147
147
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
@@ -167,7 +167,7 @@ const StepTracker = /*#__PURE__*/(0, _react.forwardRef)(({
167
167
  });
168
168
  });
169
169
  StepTracker.displayName = 'StepTracker';
170
- StepTracker.propTypes = {
170
+ StepTracker.propTypes = { ...selectedSystemPropTypes,
171
171
  current: _propTypes.default.number,
172
172
  copy: _propTypes.default.oneOf(['en', 'fr']),
173
173
  dictionary: _propTypes.default.shape({
package/lib/Tabs/Tabs.js CHANGED
@@ -29,6 +29,7 @@ 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
  const {
33
34
  selectHorizontalScrollTokens,
34
35
  useItemPositions
@@ -46,7 +47,10 @@ const Tabs = /*#__PURE__*/(0, _react.forwardRef)(({
46
47
  value,
47
48
  initialValue,
48
49
  onChange,
49
- items = []
50
+ items = [],
51
+ LinkRouter,
52
+ linkRouterProps,
53
+ ...rest
50
54
  }, ref) => {
51
55
  const {
52
56
  space,
@@ -75,6 +79,7 @@ const Tabs = /*#__PURE__*/(0, _react.forwardRef)(({
75
79
  tokens: selectHorizontalScrollTokens(themeTokens),
76
80
  scrollButtonTokens: scrollButtonTokens,
77
81
  accessibilityRole: "tablist",
82
+ ...selectProps(rest),
78
83
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.default, {
79
84
  space: space,
80
85
  direction: "row",
@@ -82,7 +87,9 @@ const Tabs = /*#__PURE__*/(0, _react.forwardRef)(({
82
87
  href,
83
88
  label,
84
89
  id,
85
- ref: itemRef
90
+ ref: itemRef,
91
+ LinkRouter: ItemLinkRouter = LinkRouter,
92
+ linkRouterProps: itemLinkRouterProps
86
93
  }, index) => {
87
94
  const itemId = id ?? label;
88
95
  const isSelected = Boolean(currentValue && currentValue === itemId);
@@ -98,6 +105,10 @@ const Tabs = /*#__PURE__*/(0, _react.forwardRef)(({
98
105
  selected: isSelected,
99
106
  itemPositions: itemPositions,
100
107
  index: index,
108
+ LinkRouter: ItemLinkRouter,
109
+ linkRouterProps: { ...linkRouterProps,
110
+ ...itemLinkRouterProps
111
+ },
101
112
  children: label
102
113
  }, itemId);
103
114
  })
@@ -105,8 +116,9 @@ const Tabs = /*#__PURE__*/(0, _react.forwardRef)(({
105
116
  });
106
117
  });
107
118
  Tabs.displayName = 'Tabs';
108
- Tabs.propTypes = {
109
- items: _propTypes.default.arrayOf(_propTypes.default.shape({
119
+ Tabs.propTypes = { ...selectedSystemPropTypes,
120
+ ..._utils.withLinkRouter.PropTypes,
121
+ items: _propTypes.default.arrayOf(_propTypes.default.shape({ ..._utils.withLinkRouter.PropTypes,
110
122
  href: _propTypes.default.string,
111
123
  label: _propTypes.default.string,
112
124
  id: _propTypes.default.string,