@telus-uds/components-base 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/.turbo/turbo-build.log +8 -0
  2. package/CHANGELOG.json +61 -0
  3. package/CHANGELOG.md +45 -2
  4. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +35 -0
  5. package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +287 -0
  6. package/__tests__/FlexGrid/Col.test.jsx +6 -10
  7. package/__tests__/utils/props.test.js +36 -0
  8. package/__tests__/utils/semantics.test.jsx +1 -10
  9. package/babel.config.js +27 -5
  10. package/component-docs.json +170 -494
  11. package/generate-component-docs.js +3 -0
  12. package/lib/A11yText/index.js +6 -5
  13. package/lib/ActivityIndicator/Spinner.js +46 -37
  14. package/lib/ActivityIndicator/Spinner.native.js +26 -15
  15. package/lib/ActivityIndicator/index.js +3 -3
  16. package/lib/Box/Box.js +8 -8
  17. package/lib/Button/Button.js +2 -2
  18. package/lib/Button/ButtonBase.js +7 -8
  19. package/lib/Button/ButtonGroup.js +10 -12
  20. package/lib/Button/ButtonLink.js +4 -4
  21. package/lib/Button/propTypes.js +4 -2
  22. package/lib/Card/Card.js +6 -5
  23. package/lib/Card/CardBase.js +6 -9
  24. package/lib/Card/PressableCardBase.js +6 -11
  25. package/lib/Checkbox/Checkbox.js +4 -6
  26. package/lib/Divider/Divider.js +14 -13
  27. package/lib/ExpandCollapse/Control.js +7 -7
  28. package/lib/ExpandCollapse/ExpandCollapse.js +6 -2
  29. package/lib/ExpandCollapse/Panel.js +6 -7
  30. package/lib/Feedback/Feedback.js +6 -5
  31. package/lib/Fieldset/Fieldset.js +1 -3
  32. package/lib/FlexGrid/FlexGrid.js +4 -4
  33. package/lib/FlexGrid/helpers/index.js +1 -4
  34. package/lib/HorizontalScroll/HorizontalScroll.js +5 -6
  35. package/lib/IconButton/IconButton.js +6 -6
  36. package/lib/InputLabel/InputLabel.js +7 -2
  37. package/lib/InputSupports/InputSupports.js +2 -2
  38. package/lib/Link/LinkBase.js +12 -13
  39. package/lib/List/List.js +4 -6
  40. package/lib/List/ListItem.js +6 -2
  41. package/lib/Modal/Modal.js +6 -2
  42. package/lib/Notification/Notification.js +12 -8
  43. package/lib/Pagination/Pagination.js +8 -3
  44. package/lib/Progress/Progress.js +5 -4
  45. package/lib/Progress/ProgressBar.js +8 -7
  46. package/lib/Radio/Radio.js +4 -6
  47. package/lib/Radio/RadioButton.js +6 -3
  48. package/lib/Radio/RadioGroup.js +7 -2
  49. package/lib/RadioCard/RadioCard.js +4 -4
  50. package/lib/RadioCard/RadioCardGroup.js +9 -6
  51. package/lib/Search/Search.js +7 -2
  52. package/lib/Select/Select.js +10 -9
  53. package/lib/SideNav/Item.js +7 -7
  54. package/lib/SideNav/SideNav.js +7 -3
  55. package/lib/Skeleton/Skeleton.js +6 -2
  56. package/lib/Spacer/Spacer.js +9 -20
  57. package/lib/StackView/StackView.js +7 -7
  58. package/lib/StackView/StackWrapBox.js +6 -7
  59. package/lib/StackView/StackWrapGap.js +6 -5
  60. package/lib/StackView/getStackedContent.js +1 -1
  61. package/lib/StepTracker/Step.js +7 -3
  62. package/lib/StepTracker/StepTracker.js +7 -7
  63. package/lib/Tabs/Tabs.js +6 -2
  64. package/lib/Tabs/TabsItem.js +6 -5
  65. package/lib/Tags/Tags.js +11 -12
  66. package/lib/TextInput/TextArea.js +13 -14
  67. package/lib/TextInput/TextInput.js +13 -14
  68. package/lib/TextInput/TextInputBase.js +5 -3
  69. package/lib/ThemeProvider/useThemeTokens.js +3 -3
  70. package/lib/ThemeProvider/utils/theme-tokens.js +3 -3
  71. package/lib/ToggleSwitch/ToggleSwitch.js +10 -9
  72. package/lib/ToggleSwitch/ToggleSwitchGroup.js +10 -12
  73. package/lib/Tooltip/Tooltip.js +7 -2
  74. package/lib/TooltipButton/TooltipButton.js +7 -2
  75. package/lib/Typography/Typography.js +8 -6
  76. package/lib/index.js +7 -0
  77. package/lib/utils/a11y/semantics.js +4 -3
  78. package/lib/utils/children.js +5 -1
  79. package/lib/utils/index.js +18 -4
  80. package/lib/utils/pressability.js +2 -2
  81. package/lib/utils/props/a11yProps.js +153 -0
  82. package/lib/utils/props/clickProps.js +36 -0
  83. package/lib/utils/props/componentPropType.js +70 -0
  84. package/lib/utils/props/copyPropTypes.js +14 -0
  85. package/lib/utils/props/getPropSelector.js +13 -0
  86. package/lib/utils/props/hrefAttrsProp.js +41 -0
  87. package/lib/utils/props/index.js +158 -0
  88. package/lib/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -3
  89. package/lib/utils/props/linkProps.js +64 -0
  90. package/lib/utils/props/paddingProp.js +20 -0
  91. package/lib/utils/props/pressProps.js +57 -0
  92. package/lib/utils/props/rectProp.js +20 -0
  93. package/lib/utils/props/responsiveProps.js +40 -0
  94. package/lib/utils/props/selectSystemProps.js +31 -0
  95. package/lib/utils/props/spacingProps.js +71 -0
  96. package/lib/utils/props/tokens.js +145 -0
  97. package/lib/utils/props/variantProp.js +28 -0
  98. package/lib/utils/props/viewProps.js +34 -0
  99. package/lib/utils/ssr.js +51 -0
  100. package/lib/utils/useResponsiveProp.js +1 -1
  101. package/lib/utils/useSpacingScale.js +4 -4
  102. package/lib-module/A11yInfoProvider/index.js +62 -0
  103. package/lib-module/A11yText/index.js +55 -0
  104. package/lib-module/ActivityIndicator/Spinner.js +76 -0
  105. package/lib-module/ActivityIndicator/Spinner.native.js +143 -0
  106. package/lib-module/ActivityIndicator/index.js +40 -0
  107. package/lib-module/ActivityIndicator/shared.js +12 -0
  108. package/lib-module/BaseProvider/index.js +26 -0
  109. package/lib-module/Box/Box.js +243 -0
  110. package/lib-module/Box/index.js +2 -0
  111. package/lib-module/Button/Button.js +25 -0
  112. package/lib-module/Button/ButtonBase.js +254 -0
  113. package/lib-module/Button/ButtonGroup.js +164 -0
  114. package/lib-module/Button/ButtonLink.js +39 -0
  115. package/lib-module/Button/index.js +4 -0
  116. package/lib-module/Button/propTypes.js +36 -0
  117. package/lib-module/Card/Card.js +83 -0
  118. package/lib-module/Card/CardBase.js +62 -0
  119. package/lib-module/Card/PressableCardBase.js +113 -0
  120. package/lib-module/Card/index.js +4 -0
  121. package/lib-module/Checkbox/Checkbox.js +321 -0
  122. package/lib-module/Checkbox/CheckboxGroup.js +218 -0
  123. package/lib-module/Checkbox/CheckboxInput.js +58 -0
  124. package/lib-module/Checkbox/CheckboxInput.native.js +6 -0
  125. package/lib-module/Checkbox/index.js +3 -0
  126. package/lib-module/Divider/Divider.js +123 -0
  127. package/lib-module/Divider/index.js +2 -0
  128. package/lib-module/ExpandCollapse/Accordion.js +15 -0
  129. package/lib-module/ExpandCollapse/Control.js +130 -0
  130. package/lib-module/ExpandCollapse/ExpandCollapse.js +94 -0
  131. package/lib-module/ExpandCollapse/Panel.js +158 -0
  132. package/lib-module/ExpandCollapse/index.js +7 -0
  133. package/lib-module/Feedback/Feedback.js +144 -0
  134. package/lib-module/Feedback/index.js +2 -0
  135. package/lib-module/Fieldset/Fieldset.js +145 -0
  136. package/lib-module/Fieldset/FieldsetContainer.js +29 -0
  137. package/lib-module/Fieldset/FieldsetContainer.native.js +20 -0
  138. package/lib-module/Fieldset/Legend.js +21 -0
  139. package/lib-module/Fieldset/Legend.native.js +28 -0
  140. package/lib-module/Fieldset/cssReset.js +14 -0
  141. package/lib-module/Fieldset/index.js +2 -0
  142. package/lib-module/FlexGrid/Col/Col.js +265 -0
  143. package/lib-module/FlexGrid/Col/index.js +2 -0
  144. package/lib-module/FlexGrid/FlexGrid.js +147 -0
  145. package/lib-module/FlexGrid/Row/Row.js +177 -0
  146. package/lib-module/FlexGrid/Row/index.js +2 -0
  147. package/lib-module/FlexGrid/helpers/index.js +18 -0
  148. package/lib-module/FlexGrid/index.js +2 -0
  149. package/lib-module/FlexGrid/providers/GutterContext.js +3 -0
  150. package/lib-module/HorizontalScroll/HorizontalScroll.js +171 -0
  151. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +102 -0
  152. package/lib-module/HorizontalScroll/ScrollViewEnd.js +47 -0
  153. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +24 -0
  154. package/lib-module/HorizontalScroll/dictionary.js +11 -0
  155. package/lib-module/HorizontalScroll/index.js +11 -0
  156. package/lib-module/HorizontalScroll/itemPositions.js +106 -0
  157. package/lib-module/Icon/Icon.js +61 -0
  158. package/lib-module/Icon/IconText.js +81 -0
  159. package/lib-module/Icon/index.js +4 -0
  160. package/lib-module/IconButton/IconButton.js +115 -0
  161. package/lib-module/IconButton/index.js +2 -0
  162. package/lib-module/InputLabel/InputLabel.js +131 -0
  163. package/lib-module/InputLabel/LabelContent.js +24 -0
  164. package/lib-module/InputLabel/LabelContent.native.js +16 -0
  165. package/lib-module/InputLabel/index.js +2 -0
  166. package/lib-module/InputSupports/InputSupports.js +88 -0
  167. package/lib-module/InputSupports/index.js +2 -0
  168. package/lib-module/InputSupports/useInputSupports.js +31 -0
  169. package/lib-module/Link/ChevronLink.js +51 -0
  170. package/lib-module/Link/InlinePressable.js +37 -0
  171. package/lib-module/Link/InlinePressable.native.js +85 -0
  172. package/lib-module/Link/Link.js +27 -0
  173. package/lib-module/Link/LinkBase.js +210 -0
  174. package/lib-module/Link/TextButton.js +43 -0
  175. package/lib-module/Link/index.js +5 -0
  176. package/lib-module/List/List.js +55 -0
  177. package/lib-module/List/ListItem.js +213 -0
  178. package/lib-module/List/index.js +5 -0
  179. package/lib-module/Modal/Modal.js +208 -0
  180. package/lib-module/Modal/dictionary.js +9 -0
  181. package/lib-module/Modal/index.js +2 -0
  182. package/lib-module/Notification/Notification.js +196 -0
  183. package/lib-module/Notification/dictionary.js +8 -0
  184. package/lib-module/Notification/index.js +2 -0
  185. package/lib-module/Pagination/PageButton.js +65 -0
  186. package/lib-module/Pagination/Pagination.js +140 -0
  187. package/lib-module/Pagination/SideButton.js +103 -0
  188. package/lib-module/Pagination/dictionary.js +18 -0
  189. package/lib-module/Pagination/index.js +2 -0
  190. package/lib-module/Pagination/usePagination.js +72 -0
  191. package/lib-module/Progress/Progress.js +85 -0
  192. package/lib-module/Progress/ProgressBar.js +134 -0
  193. package/lib-module/Progress/ProgressBarBackground.js +41 -0
  194. package/lib-module/Progress/index.js +4 -0
  195. package/lib-module/Radio/Radio.js +263 -0
  196. package/lib-module/Radio/RadioButton.js +128 -0
  197. package/lib-module/Radio/RadioGroup.js +225 -0
  198. package/lib-module/Radio/RadioInput.js +60 -0
  199. package/lib-module/Radio/RadioInput.native.js +6 -0
  200. package/lib-module/Radio/index.js +3 -0
  201. package/lib-module/RadioCard/RadioCard.js +218 -0
  202. package/lib-module/RadioCard/RadioCardGroup.js +232 -0
  203. package/lib-module/RadioCard/index.js +3 -0
  204. package/lib-module/Search/Search.js +233 -0
  205. package/lib-module/Search/dictionary.js +12 -0
  206. package/lib-module/Search/index.js +2 -0
  207. package/lib-module/Select/Group.js +20 -0
  208. package/lib-module/Select/Group.native.js +14 -0
  209. package/lib-module/Select/Item.js +17 -0
  210. package/lib-module/Select/Item.native.js +9 -0
  211. package/lib-module/Select/Picker.js +67 -0
  212. package/lib-module/Select/Picker.native.js +110 -0
  213. package/lib-module/Select/Select.js +317 -0
  214. package/lib-module/Select/index.js +6 -0
  215. package/lib-module/SideNav/Item.js +139 -0
  216. package/lib-module/SideNav/ItemContent.js +45 -0
  217. package/lib-module/SideNav/ItemsGroup.js +115 -0
  218. package/lib-module/SideNav/SideNav.js +133 -0
  219. package/lib-module/SideNav/index.js +1 -0
  220. package/lib-module/Skeleton/Skeleton.js +117 -0
  221. package/lib-module/Skeleton/index.js +2 -0
  222. package/lib-module/Skeleton/skeleton.constant.js +3 -0
  223. package/lib-module/Skeleton/skeletonWebAnimation.js +18 -0
  224. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +24 -0
  225. package/lib-module/Spacer/Spacer.js +97 -0
  226. package/lib-module/Spacer/index.js +2 -0
  227. package/lib-module/StackView/StackView.js +124 -0
  228. package/lib-module/StackView/StackWrap.js +48 -0
  229. package/lib-module/StackView/StackWrap.native.js +3 -0
  230. package/lib-module/StackView/StackWrapBox.js +114 -0
  231. package/lib-module/StackView/StackWrapGap.js +58 -0
  232. package/lib-module/StackView/common.js +32 -0
  233. package/lib-module/StackView/getStackedContent.js +123 -0
  234. package/lib-module/StackView/index.js +5 -0
  235. package/lib-module/StepTracker/Step.js +229 -0
  236. package/lib-module/StepTracker/StepTracker.js +175 -0
  237. package/lib-module/StepTracker/dictionary.js +10 -0
  238. package/lib-module/StepTracker/index.js +2 -0
  239. package/lib-module/Tabs/Tabs.js +113 -0
  240. package/lib-module/Tabs/TabsItem.js +215 -0
  241. package/lib-module/Tabs/index.js +2 -0
  242. package/lib-module/Tags/Tags.js +238 -0
  243. package/lib-module/Tags/index.js +2 -0
  244. package/lib-module/TextInput/TextArea.js +88 -0
  245. package/lib-module/TextInput/TextInput.js +60 -0
  246. package/lib-module/TextInput/TextInputBase.js +233 -0
  247. package/lib-module/TextInput/index.js +3 -0
  248. package/lib-module/TextInput/propTypes.js +31 -0
  249. package/lib-module/ThemeProvider/ThemeProvider.js +35 -0
  250. package/lib-module/ThemeProvider/index.js +6 -0
  251. package/lib-module/ThemeProvider/useSetTheme.js +22 -0
  252. package/lib-module/ThemeProvider/useTheme.js +14 -0
  253. package/lib-module/ThemeProvider/useThemeTokens.js +105 -0
  254. package/lib-module/ThemeProvider/utils/index.js +2 -0
  255. package/lib-module/ThemeProvider/utils/styles.js +174 -0
  256. package/lib-module/ThemeProvider/utils/theme-tokens.js +151 -0
  257. package/lib-module/ToggleSwitch/ToggleSwitch.js +224 -0
  258. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +202 -0
  259. package/lib-module/ToggleSwitch/index.js +3 -0
  260. package/lib-module/Tooltip/Backdrop.js +52 -0
  261. package/lib-module/Tooltip/Backdrop.native.js +43 -0
  262. package/lib-module/Tooltip/Tooltip.js +332 -0
  263. package/lib-module/Tooltip/dictionary.js +8 -0
  264. package/lib-module/Tooltip/getTooltipPosition.js +164 -0
  265. package/lib-module/Tooltip/index.js +2 -0
  266. package/lib-module/TooltipButton/TooltipButton.js +71 -0
  267. package/lib-module/TooltipButton/index.js +2 -0
  268. package/lib-module/Typography/Typography.js +118 -0
  269. package/lib-module/Typography/index.js +2 -0
  270. package/lib-module/ViewportProvider/ViewportProvider.js +28 -0
  271. package/lib-module/ViewportProvider/index.js +3 -0
  272. package/lib-module/ViewportProvider/useViewport.js +3 -0
  273. package/lib-module/ViewportProvider/useViewportListener.js +43 -0
  274. package/lib-module/index.js +48 -0
  275. package/lib-module/utils/a11y/index.js +2 -0
  276. package/lib-module/utils/a11y/semantics.js +154 -0
  277. package/lib-module/utils/a11y/textSize.js +34 -0
  278. package/lib-module/utils/animation/index.js +2 -0
  279. package/lib-module/utils/animation/useVerticalExpandAnimation.js +49 -0
  280. package/lib-module/utils/children.js +118 -0
  281. package/lib-module/utils/index.js +15 -0
  282. package/lib-module/utils/info/index.js +7 -0
  283. package/lib-module/utils/info/platform/index.js +11 -0
  284. package/lib-module/utils/info/platform/platform.android.js +1 -0
  285. package/lib-module/utils/info/platform/platform.ios.js +1 -0
  286. package/lib-module/utils/info/platform/platform.js +1 -0
  287. package/lib-module/utils/info/platform/platform.native.js +4 -0
  288. package/lib-module/utils/info/versions.js +5 -0
  289. package/lib-module/utils/input.js +180 -0
  290. package/lib-module/utils/pressability.js +97 -0
  291. package/lib-module/utils/props/a11yProps.js +140 -0
  292. package/lib-module/utils/props/clickProps.js +25 -0
  293. package/lib-module/utils/props/componentPropType.js +63 -0
  294. package/lib-module/utils/props/copyPropTypes.js +2 -0
  295. package/lib-module/utils/props/getPropSelector.js +6 -0
  296. package/lib-module/utils/props/hrefAttrsProp.js +30 -0
  297. package/lib-module/utils/props/index.js +16 -0
  298. package/lib-module/utils/props/inputSupportsProps.js +54 -0
  299. package/lib-module/utils/props/linkProps.js +47 -0
  300. package/lib-module/utils/props/paddingProp.js +9 -0
  301. package/lib-module/utils/props/pressProps.js +42 -0
  302. package/lib-module/utils/props/rectProp.js +9 -0
  303. package/lib-module/utils/props/responsiveProps.js +30 -0
  304. package/lib-module/utils/props/selectSystemProps.js +24 -0
  305. package/lib-module/utils/props/spacingProps.js +56 -0
  306. package/lib-module/utils/props/tokens.js +120 -0
  307. package/lib-module/utils/props/variantProp.js +18 -0
  308. package/lib-module/utils/props/viewProps.js +22 -0
  309. package/lib-module/utils/ssr.js +35 -0
  310. package/lib-module/utils/useCopy.js +42 -0
  311. package/lib-module/utils/useHash.js +44 -0
  312. package/lib-module/utils/useHash.native.js +7 -0
  313. package/lib-module/utils/useResponsiveProp.js +47 -0
  314. package/lib-module/utils/useSpacingScale.js +123 -0
  315. package/lib-module/utils/useUniqueId.js +12 -0
  316. package/lib-module/utils/withLinkRouter.js +82 -0
  317. package/package.json +9 -5
  318. package/src/A11yText/index.jsx +7 -3
  319. package/src/ActivityIndicator/Spinner.jsx +56 -44
  320. package/src/ActivityIndicator/Spinner.native.jsx +20 -12
  321. package/src/ActivityIndicator/index.jsx +1 -1
  322. package/src/Box/Box.jsx +15 -13
  323. package/src/Button/Button.jsx +1 -1
  324. package/src/Button/ButtonBase.jsx +9 -8
  325. package/src/Button/ButtonGroup.jsx +17 -8
  326. package/src/Button/ButtonLink.jsx +1 -1
  327. package/src/Button/propTypes.js +2 -1
  328. package/src/Card/Card.jsx +7 -4
  329. package/src/Card/CardBase.jsx +6 -5
  330. package/src/Card/PressableCardBase.jsx +12 -12
  331. package/src/Checkbox/Checkbox.jsx +12 -5
  332. package/src/Divider/Divider.jsx +19 -12
  333. package/src/ExpandCollapse/Control.jsx +12 -7
  334. package/src/ExpandCollapse/ExpandCollapse.jsx +13 -3
  335. package/src/ExpandCollapse/Panel.jsx +15 -5
  336. package/src/Feedback/Feedback.jsx +13 -3
  337. package/src/Fieldset/Fieldset.jsx +1 -1
  338. package/src/FlexGrid/FlexGrid.jsx +11 -5
  339. package/src/FlexGrid/helpers/index.js +1 -3
  340. package/src/HorizontalScroll/HorizontalScroll.jsx +12 -5
  341. package/src/IconButton/IconButton.jsx +12 -8
  342. package/src/InputLabel/InputLabel.jsx +16 -2
  343. package/src/InputSupports/InputSupports.jsx +1 -1
  344. package/src/Link/LinkBase.jsx +11 -10
  345. package/src/List/List.jsx +12 -5
  346. package/src/List/ListItem.jsx +16 -2
  347. package/src/Modal/Modal.jsx +63 -50
  348. package/src/Notification/Notification.jsx +23 -6
  349. package/src/Pagination/Pagination.jsx +10 -3
  350. package/src/Progress/Progress.jsx +5 -3
  351. package/src/Progress/ProgressBar.jsx +8 -6
  352. package/src/Radio/Radio.jsx +13 -5
  353. package/src/Radio/RadioButton.jsx +13 -3
  354. package/src/Radio/RadioGroup.jsx +14 -2
  355. package/src/RadioCard/RadioCard.jsx +9 -6
  356. package/src/RadioCard/RadioCardGroup.jsx +16 -4
  357. package/src/Search/Search.jsx +15 -3
  358. package/src/Select/Select.jsx +21 -7
  359. package/src/SideNav/Item.jsx +15 -7
  360. package/src/SideNav/SideNav.jsx +13 -2
  361. package/src/Skeleton/Skeleton.jsx +55 -43
  362. package/src/Spacer/Spacer.jsx +10 -18
  363. package/src/StackView/StackView.jsx +13 -12
  364. package/src/StackView/StackWrapBox.jsx +12 -12
  365. package/src/StackView/StackWrapGap.jsx +9 -7
  366. package/src/StackView/getStackedContent.jsx +1 -1
  367. package/src/StepTracker/Step.jsx +7 -4
  368. package/src/StepTracker/StepTracker.jsx +8 -8
  369. package/src/Tabs/Tabs.jsx +16 -3
  370. package/src/Tabs/TabsItem.jsx +13 -9
  371. package/src/Tags/Tags.jsx +16 -7
  372. package/src/TextInput/TextArea.jsx +20 -8
  373. package/src/TextInput/TextInput.jsx +20 -8
  374. package/src/TextInput/TextInputBase.jsx +13 -3
  375. package/src/ThemeProvider/useThemeTokens.js +3 -3
  376. package/src/ThemeProvider/utils/theme-tokens.js +3 -3
  377. package/src/ToggleSwitch/ToggleSwitch.jsx +12 -7
  378. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +14 -6
  379. package/src/Tooltip/Tooltip.jsx +13 -3
  380. package/src/TooltipButton/TooltipButton.jsx +6 -4
  381. package/src/Typography/Typography.jsx +10 -6
  382. package/src/index.js +1 -1
  383. package/src/utils/a11y/semantics.js +3 -2
  384. package/src/utils/children.jsx +2 -1
  385. package/src/utils/index.js +2 -1
  386. package/src/utils/pressability.js +1 -1
  387. package/src/utils/props/a11yProps.js +151 -0
  388. package/src/utils/props/clickProps.js +31 -0
  389. package/src/utils/props/componentPropType.js +67 -0
  390. package/src/utils/props/copyPropTypes.js +3 -0
  391. package/src/utils/props/getPropSelector.js +14 -0
  392. package/src/utils/props/hrefAttrsProp.js +25 -0
  393. package/src/utils/props/index.js +16 -0
  394. package/src/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -4
  395. package/src/utils/props/linkProps.js +43 -0
  396. package/src/utils/props/paddingProp.js +10 -0
  397. package/src/utils/props/pressProps.js +45 -0
  398. package/src/utils/props/rectProp.js +10 -0
  399. package/src/utils/props/responsiveProps.js +30 -0
  400. package/src/utils/props/selectSystemProps.js +25 -0
  401. package/src/utils/props/spacingProps.js +58 -0
  402. package/src/utils/props/tokens.js +150 -0
  403. package/src/utils/props/variantProp.js +20 -0
  404. package/src/utils/props/viewProps.js +23 -0
  405. package/src/utils/ssr.js +35 -0
  406. package/src/utils/useResponsiveProp.js +1 -1
  407. package/src/utils/useSpacingScale.js +4 -4
  408. package/.ultra.cache.json +0 -1
  409. package/lib/utils/a11y/propTypes.js +0 -61
  410. package/lib/utils/a11y/propTypes.native.js +0 -47
  411. package/lib/utils/propTypes.js +0 -566
  412. package/release-context.json +0 -7
  413. package/src/utils/a11y/propTypes.js +0 -61
  414. package/src/utils/a11y/propTypes.native.js +0 -39
  415. package/src/utils/propTypes.js +0 -561
@@ -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
@@ -48,7 +49,8 @@ const Tabs = /*#__PURE__*/(0, _react.forwardRef)(({
48
49
  onChange,
49
50
  items = [],
50
51
  LinkRouter,
51
- linkRouterProps
52
+ linkRouterProps,
53
+ ...rest
52
54
  }, ref) => {
53
55
  const {
54
56
  space,
@@ -77,6 +79,7 @@ const Tabs = /*#__PURE__*/(0, _react.forwardRef)(({
77
79
  tokens: selectHorizontalScrollTokens(themeTokens),
78
80
  scrollButtonTokens: scrollButtonTokens,
79
81
  accessibilityRole: "tablist",
82
+ ...selectProps(rest),
80
83
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.default, {
81
84
  space: space,
82
85
  direction: "row",
@@ -113,7 +116,8 @@ const Tabs = /*#__PURE__*/(0, _react.forwardRef)(({
113
116
  });
114
117
  });
115
118
  Tabs.displayName = 'Tabs';
116
- Tabs.propTypes = { ..._utils.withLinkRouter.PropTypes,
119
+ Tabs.propTypes = { ...selectedSystemPropTypes,
120
+ ..._utils.withLinkRouter.PropTypes,
117
121
  items: _propTypes.default.arrayOf(_propTypes.default.shape({ ..._utils.withLinkRouter.PropTypes,
118
122
  href: _propTypes.default.string,
119
123
  label: _propTypes.default.string,
@@ -35,6 +35,7 @@ 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
  const {
39
40
  itemPositionsPropType,
40
41
  getItemPositionLayoutHandler
@@ -148,11 +149,11 @@ const TabsItem = /*#__PURE__*/(0, _react.forwardRef)(({
148
149
  if (onPress) onPress(...args);
149
150
  if (openHref) openHref(...args);
150
151
  } : undefined;
151
- const a11y = {
152
+ const selectedProps = selectProps({
152
153
  accessibilityRole,
153
154
  accessibilityState,
154
- ..._utils.a11yProps.select(rest)
155
- };
155
+ ...rest
156
+ });
156
157
  (0, _react.useEffect)(() => {
157
158
  // If this is selected while off-screen, scroll it into view
158
159
  if (selected) {
@@ -173,7 +174,7 @@ const TabsItem = /*#__PURE__*/(0, _react.forwardRef)(({
173
174
  href: href,
174
175
  style: getPressableStyle,
175
176
  onLayout: handleLayout,
176
- ...a11y,
177
+ ...selectedProps,
177
178
  children: pressableState => {
178
179
  const {
179
180
  space,
@@ -211,7 +212,7 @@ const TabsItem = /*#__PURE__*/(0, _react.forwardRef)(({
211
212
  });
212
213
  });
213
214
  TabsItem.displayName = 'TabsItem';
214
- TabsItem.propTypes = { ..._utils.a11yProps.propTypes,
215
+ TabsItem.propTypes = { ...selectedSystemPropTypes,
215
216
  tokens: (0, _utils.getTokensPropType)('TabsItem'),
216
217
  variant: _utils.variantProp.propType,
217
218
  onPress: _propTypes.default.func,
package/lib/Tags/Tags.js CHANGED
@@ -27,7 +27,7 @@ var _ViewportProvider = require("../ViewportProvider");
27
27
 
28
28
  var _ThemeProvider = require("../ThemeProvider");
29
29
 
30
- var _propTypes2 = require("../utils/propTypes");
30
+ var _props = require("../utils/props");
31
31
 
32
32
  var _input = require("../utils/input");
33
33
 
@@ -41,6 +41,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
41
41
 
42
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; }
43
43
 
44
+ const [selectProps, selectedSystemPropTypes] = (0, _props.selectSystemProps)([_props.a11yProps, _props.pressProps, _props.viewProps]);
45
+
44
46
  const selectIconTextTokens = ({
45
47
  icon,
46
48
  iconPosition,
@@ -97,14 +99,14 @@ const Tags = /*#__PURE__*/(0, _react.forwardRef)(({
97
99
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Tags', tokens, variant, {
98
100
  viewport
99
101
  });
100
- const stackTokens = (0, _propTypes2.selectTokens)('StackView', themeTokens);
102
+ const stackTokens = (0, _props.selectTokens)('StackView', themeTokens);
101
103
  const {
102
104
  direction,
103
105
  space
104
106
  } = themeTokens;
105
107
  const getItemTokens = (0, _ThemeProvider.useThemeTokensCallback)('TagsItem', tokens, variant);
106
108
 
107
- const getButtonTokens = buttonState => (0, _propTypes2.selectTokens)('Button', getItemTokens(buttonState));
109
+ const getButtonTokens = buttonState => (0, _props.selectTokens)('Button', getItemTokens(buttonState));
108
110
 
109
111
  const {
110
112
  currentValues,
@@ -116,16 +118,14 @@ const Tags = /*#__PURE__*/(0, _react.forwardRef)(({
116
118
  onChange,
117
119
  readOnly
118
120
  });
119
-
120
- const a11y = _propTypes2.a11yProps.select({
121
+ const selectedProps = selectProps({
121
122
  accessibilityRole,
122
123
  ...rest
123
124
  });
124
-
125
125
  const itemA11yRole = 'checkbox';
126
126
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, {
127
127
  ref: ref,
128
- ...a11y,
128
+ ...selectedProps,
129
129
  space: space,
130
130
  direction: direction,
131
131
  tokens: stackTokens,
@@ -154,7 +154,7 @@ const Tags = /*#__PURE__*/(0, _react.forwardRef)(({
154
154
  },
155
155
  accessibilityRole: itemA11yRole,
156
156
  accessibilityLabel,
157
- ..._propTypes2.a11yProps.getPositionInSet(items.length, index)
157
+ ..._props.a11yProps.getPositionInSet(items.length, index)
158
158
  };
159
159
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
160
160
  ref: itemRef,
@@ -202,10 +202,9 @@ const Tags = /*#__PURE__*/(0, _react.forwardRef)(({
202
202
  });
203
203
  });
204
204
  Tags.displayName = 'Tags';
205
- Tags.propTypes = { ..._propTypes2.a11yProps.propTypes,
206
- ..._propTypes2.pressProps.propTypes,
207
- tokens: (0, _propTypes2.getTokensPropType)('Tags'),
208
- variant: _propTypes2.variantProp.propType,
205
+ Tags.propTypes = { ...selectedSystemPropTypes,
206
+ tokens: (0, _props.getTokensPropType)('Tags'),
207
+ variant: _props.variantProp.propType,
209
208
 
210
209
  /**
211
210
  * If provided, sets a maximum number of items a user may select at once.
@@ -17,9 +17,7 @@ var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
17
17
 
18
18
  var _ThemeProvider = require("../ThemeProvider");
19
19
 
20
- var _propTypes = _interopRequireDefault(require("../InputSupports/propTypes"));
21
-
22
- var _propTypes2 = _interopRequireDefault(require("./propTypes"));
20
+ var _propTypes = _interopRequireDefault(require("./propTypes"));
23
21
 
24
22
  var _jsxRuntime = require("react/jsx-runtime");
25
23
 
@@ -29,6 +27,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
27
 
30
28
  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
29
 
30
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.inputSupportsProps, _utils.viewProps]);
32
31
  /**
33
32
  * Use to collect long-form information such as product feedback or support queries.
34
33
  * Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
@@ -53,10 +52,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
53
52
  * or an indicator that the field is optional.
54
53
  * It is a more usable and accessible option than the HTML `placeholder` attribute.
55
54
  */
55
+
56
56
  const TextArea = /*#__PURE__*/(0, _react.forwardRef)(({
57
57
  tokens,
58
58
  variant = {},
59
- ...remainingProps
59
+ ...rest
60
60
  }, ref) => {
61
61
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('TextArea', tokens, variant);
62
62
  const [inputHeight, setInputHeight] = (0, _react.useState)(); // adjust the text area's height as new lines are added to the content
@@ -76,10 +76,9 @@ const TextArea = /*#__PURE__*/(0, _react.forwardRef)(({
76
76
 
77
77
  const {
78
78
  props: supportsProps,
79
- rest
80
- } = _propTypes.default.select(remainingProps);
81
-
82
- const inputProps = { ...rest,
79
+ ...selectedProps
80
+ } = selectProps(rest);
81
+ const inputProps = { ...selectedProps,
83
82
  variant: { ...variant,
84
83
  validation: supportsProps.validation
85
84
  },
@@ -90,19 +89,19 @@ const TextArea = /*#__PURE__*/(0, _react.forwardRef)(({
90
89
  };
91
90
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
92
91
  children: ({
93
- a11yProps,
94
- inputId
92
+ inputId,
93
+ ...props
95
94
  }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, {
96
95
  ref: ref,
97
96
  ...inputProps,
98
- ...a11yProps,
99
- nativeID: inputId
97
+ nativeID: inputId,
98
+ ...props
100
99
  })
101
100
  });
102
101
  });
103
102
  TextArea.displayName = 'TextArea';
104
- TextArea.propTypes = { ..._propTypes.default.types,
105
- ..._propTypes2.default,
103
+ TextArea.propTypes = { ...selectedSystemPropTypes,
104
+ ..._propTypes.default,
106
105
  tokens: (0, _utils.getTokensPropType)('TextArea', 'TextInput'),
107
106
  // TODO: support both TextArea and TextInput tokens
108
107
  variant: _utils.variantProp.propType
@@ -13,9 +13,7 @@ var _InputSupports = _interopRequireDefault(require("../InputSupports"));
13
13
 
14
14
  var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
15
15
 
16
- var _propTypes = _interopRequireDefault(require("../InputSupports/propTypes"));
17
-
18
- var _propTypes2 = _interopRequireDefault(require("./propTypes"));
16
+ var _propTypes = _interopRequireDefault(require("./propTypes"));
19
17
 
20
18
  var _jsxRuntime = require("react/jsx-runtime");
21
19
 
@@ -25,6 +23,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
23
 
26
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; }
27
25
 
26
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.inputSupportsProps, _utils.viewProps]);
28
27
  /**
29
28
  * A basic text input component. Use in forms or individually to receive user's input.
30
29
  * Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
@@ -43,17 +42,17 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
43
42
  * supported props and <a href="https://reactnative.dev/docs/textinput" target="_blank">React Native Web documentation</a> for
44
43
  * their implementation on the web.
45
44
  */
45
+
46
46
  const TextInput = /*#__PURE__*/(0, _react.forwardRef)(({
47
47
  tokens,
48
48
  variant = {},
49
- ...remainingProps
49
+ ...rest
50
50
  }, ref) => {
51
51
  const {
52
52
  props: supportsProps,
53
- rest
54
- } = _propTypes.default.select(remainingProps);
55
-
56
- const inputProps = { ...rest,
53
+ ...selectedProps
54
+ } = selectProps(rest);
55
+ const inputProps = { ...selectedProps,
57
56
  tokens,
58
57
  variant: { ...variant,
59
58
  validation: supportsProps.validation
@@ -61,19 +60,19 @@ const TextInput = /*#__PURE__*/(0, _react.forwardRef)(({
61
60
  };
62
61
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
63
62
  children: ({
64
- a11yProps,
65
- inputId
63
+ inputId,
64
+ ...props
66
65
  }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, {
67
66
  ref: ref,
68
67
  ...inputProps,
69
- ...a11yProps,
70
- nativeID: inputId
68
+ nativeID: inputId,
69
+ ...props
71
70
  })
72
71
  });
73
72
  });
74
73
  TextInput.displayName = 'TextInput';
75
- TextInput.propTypes = { ..._propTypes.default.types,
76
- ..._propTypes2.default,
74
+ TextInput.propTypes = { ...selectedSystemPropTypes,
75
+ ..._propTypes.default,
77
76
  tokens: (0, _utils.getTokensPropType)('TextInput'),
78
77
  variant: _utils.variantProp.propType
79
78
  };
@@ -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 selectInputStyles = ({
33
35
  backgroundColor,
34
36
  color,
@@ -144,7 +146,7 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)(({
144
146
  onMouseOut,
145
147
  tokens,
146
148
  variant = {},
147
- ...remainingProps
149
+ ...rest
148
150
  }, ref) => {
149
151
  const [isFocused, setIsFocused] = (0, _react.useState)(false);
150
152
 
@@ -198,7 +200,7 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)(({
198
200
  const {
199
201
  icon: IconComponent
200
202
  } = themeTokens;
201
- const inputProps = { ...remainingProps,
203
+ const inputProps = { ...selectProps(rest),
202
204
  editable: !inactive,
203
205
  onFocus: handleFocus,
204
206
  onBlur: handleBlur,
@@ -229,7 +231,7 @@ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)(({
229
231
  });
230
232
  });
231
233
  TextInputBase.displayName = 'TextInputBase';
232
- TextInputBase.propTypes = {
234
+ TextInputBase.propTypes = { ...selectedSystemPropTypes,
233
235
  value: _propTypes.default.string,
234
236
  height: _propTypes.default.number,
235
237
  initialValue: _propTypes.default.string,