@telus-uds/components-base 1.3.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 (342) hide show
  1. package/.turbo/turbo-build.log +5 -2
  2. package/CHANGELOG.json +38 -0
  3. package/CHANGELOG.md +15 -2
  4. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +35 -0
  5. package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +287 -0
  6. package/babel.config.js +27 -5
  7. package/component-docs.json +88 -424
  8. package/lib/A11yText/index.js +5 -4
  9. package/lib/ActivityIndicator/Spinner.js +46 -37
  10. package/lib/ActivityIndicator/Spinner.native.js +26 -15
  11. package/lib/Box/Box.js +4 -4
  12. package/lib/Button/ButtonBase.js +7 -8
  13. package/lib/Card/Card.js +5 -4
  14. package/lib/Card/PressableCardBase.js +6 -11
  15. package/lib/Checkbox/Checkbox.js +4 -6
  16. package/lib/Divider/Divider.js +12 -11
  17. package/lib/ExpandCollapse/Control.js +7 -7
  18. package/lib/ExpandCollapse/ExpandCollapse.js +6 -2
  19. package/lib/ExpandCollapse/Panel.js +6 -7
  20. package/lib/Feedback/Feedback.js +6 -5
  21. package/lib/Fieldset/Fieldset.js +1 -3
  22. package/lib/HorizontalScroll/HorizontalScroll.js +5 -6
  23. package/lib/IconButton/IconButton.js +6 -6
  24. package/lib/InputLabel/InputLabel.js +7 -2
  25. package/lib/InputSupports/InputSupports.js +2 -2
  26. package/lib/Link/LinkBase.js +5 -6
  27. package/lib/List/List.js +4 -6
  28. package/lib/List/ListItem.js +6 -2
  29. package/lib/Modal/Modal.js +6 -2
  30. package/lib/Notification/Notification.js +7 -2
  31. package/lib/Pagination/Pagination.js +8 -3
  32. package/lib/Progress/Progress.js +5 -4
  33. package/lib/Progress/ProgressBar.js +8 -7
  34. package/lib/Radio/Radio.js +4 -6
  35. package/lib/Radio/RadioButton.js +6 -3
  36. package/lib/Radio/RadioGroup.js +7 -2
  37. package/lib/RadioCard/RadioCard.js +4 -4
  38. package/lib/RadioCard/RadioCardGroup.js +9 -6
  39. package/lib/Search/Search.js +7 -2
  40. package/lib/Select/Select.js +10 -9
  41. package/lib/SideNav/Item.js +7 -7
  42. package/lib/SideNav/SideNav.js +7 -3
  43. package/lib/Skeleton/Skeleton.js +6 -2
  44. package/lib/Spacer/Spacer.js +7 -18
  45. package/lib/StackView/StackView.js +7 -7
  46. package/lib/StackView/StackWrapBox.js +6 -7
  47. package/lib/StackView/StackWrapGap.js +6 -5
  48. package/lib/StepTracker/Step.js +7 -3
  49. package/lib/StepTracker/StepTracker.js +7 -7
  50. package/lib/Tabs/Tabs.js +6 -2
  51. package/lib/Tabs/TabsItem.js +6 -5
  52. package/lib/Tags/Tags.js +5 -6
  53. package/lib/TextInput/TextArea.js +13 -14
  54. package/lib/TextInput/TextInput.js +13 -14
  55. package/lib/TextInput/TextInputBase.js +5 -3
  56. package/lib/ToggleSwitch/ToggleSwitch.js +10 -9
  57. package/lib/ToggleSwitch/ToggleSwitchGroup.js +5 -7
  58. package/lib/Tooltip/Tooltip.js +7 -2
  59. package/lib/TooltipButton/TooltipButton.js +7 -2
  60. package/lib/Typography/Typography.js +8 -6
  61. package/lib/index.js +7 -0
  62. package/lib/utils/children.js +5 -1
  63. package/lib/utils/index.js +14 -0
  64. package/lib/utils/props/index.js +9 -0
  65. package/lib/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -3
  66. package/lib/utils/ssr.js +51 -0
  67. package/lib-module/A11yInfoProvider/index.js +62 -0
  68. package/lib-module/A11yText/index.js +55 -0
  69. package/lib-module/ActivityIndicator/Spinner.js +76 -0
  70. package/lib-module/ActivityIndicator/Spinner.native.js +143 -0
  71. package/lib-module/ActivityIndicator/index.js +40 -0
  72. package/lib-module/ActivityIndicator/shared.js +12 -0
  73. package/lib-module/BaseProvider/index.js +26 -0
  74. package/lib-module/Box/Box.js +243 -0
  75. package/lib-module/Box/index.js +2 -0
  76. package/lib-module/Button/Button.js +25 -0
  77. package/lib-module/Button/ButtonBase.js +254 -0
  78. package/lib-module/Button/ButtonGroup.js +164 -0
  79. package/lib-module/Button/ButtonLink.js +39 -0
  80. package/lib-module/Button/index.js +4 -0
  81. package/lib-module/Button/propTypes.js +36 -0
  82. package/lib-module/Card/Card.js +83 -0
  83. package/lib-module/Card/CardBase.js +62 -0
  84. package/lib-module/Card/PressableCardBase.js +113 -0
  85. package/lib-module/Card/index.js +4 -0
  86. package/lib-module/Checkbox/Checkbox.js +321 -0
  87. package/lib-module/Checkbox/CheckboxGroup.js +218 -0
  88. package/lib-module/Checkbox/CheckboxInput.js +58 -0
  89. package/lib-module/Checkbox/CheckboxInput.native.js +6 -0
  90. package/lib-module/Checkbox/index.js +3 -0
  91. package/lib-module/Divider/Divider.js +123 -0
  92. package/lib-module/Divider/index.js +2 -0
  93. package/lib-module/ExpandCollapse/Accordion.js +15 -0
  94. package/lib-module/ExpandCollapse/Control.js +130 -0
  95. package/lib-module/ExpandCollapse/ExpandCollapse.js +94 -0
  96. package/lib-module/ExpandCollapse/Panel.js +158 -0
  97. package/lib-module/ExpandCollapse/index.js +7 -0
  98. package/lib-module/Feedback/Feedback.js +144 -0
  99. package/lib-module/Feedback/index.js +2 -0
  100. package/lib-module/Fieldset/Fieldset.js +145 -0
  101. package/lib-module/Fieldset/FieldsetContainer.js +29 -0
  102. package/lib-module/Fieldset/FieldsetContainer.native.js +20 -0
  103. package/lib-module/Fieldset/Legend.js +21 -0
  104. package/lib-module/Fieldset/Legend.native.js +28 -0
  105. package/lib-module/Fieldset/cssReset.js +14 -0
  106. package/lib-module/Fieldset/index.js +2 -0
  107. package/lib-module/FlexGrid/Col/Col.js +265 -0
  108. package/lib-module/FlexGrid/Col/index.js +2 -0
  109. package/lib-module/FlexGrid/FlexGrid.js +147 -0
  110. package/lib-module/FlexGrid/Row/Row.js +177 -0
  111. package/lib-module/FlexGrid/Row/index.js +2 -0
  112. package/lib-module/FlexGrid/helpers/index.js +18 -0
  113. package/lib-module/FlexGrid/index.js +2 -0
  114. package/lib-module/FlexGrid/providers/GutterContext.js +3 -0
  115. package/lib-module/HorizontalScroll/HorizontalScroll.js +171 -0
  116. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +102 -0
  117. package/lib-module/HorizontalScroll/ScrollViewEnd.js +47 -0
  118. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +24 -0
  119. package/lib-module/HorizontalScroll/dictionary.js +11 -0
  120. package/lib-module/HorizontalScroll/index.js +11 -0
  121. package/lib-module/HorizontalScroll/itemPositions.js +106 -0
  122. package/lib-module/Icon/Icon.js +61 -0
  123. package/lib-module/Icon/IconText.js +81 -0
  124. package/lib-module/Icon/index.js +4 -0
  125. package/lib-module/IconButton/IconButton.js +115 -0
  126. package/lib-module/IconButton/index.js +2 -0
  127. package/lib-module/InputLabel/InputLabel.js +131 -0
  128. package/lib-module/InputLabel/LabelContent.js +24 -0
  129. package/lib-module/InputLabel/LabelContent.native.js +16 -0
  130. package/lib-module/InputLabel/index.js +2 -0
  131. package/lib-module/InputSupports/InputSupports.js +88 -0
  132. package/lib-module/InputSupports/index.js +2 -0
  133. package/lib-module/InputSupports/useInputSupports.js +31 -0
  134. package/lib-module/Link/ChevronLink.js +51 -0
  135. package/lib-module/Link/InlinePressable.js +37 -0
  136. package/lib-module/Link/InlinePressable.native.js +85 -0
  137. package/lib-module/Link/Link.js +27 -0
  138. package/lib-module/Link/LinkBase.js +210 -0
  139. package/lib-module/Link/TextButton.js +43 -0
  140. package/lib-module/Link/index.js +5 -0
  141. package/lib-module/List/List.js +55 -0
  142. package/lib-module/List/ListItem.js +213 -0
  143. package/lib-module/List/index.js +5 -0
  144. package/lib-module/Modal/Modal.js +208 -0
  145. package/lib-module/Modal/dictionary.js +9 -0
  146. package/lib-module/Modal/index.js +2 -0
  147. package/lib-module/Notification/Notification.js +196 -0
  148. package/lib-module/Notification/dictionary.js +8 -0
  149. package/lib-module/Notification/index.js +2 -0
  150. package/lib-module/Pagination/PageButton.js +65 -0
  151. package/lib-module/Pagination/Pagination.js +140 -0
  152. package/lib-module/Pagination/SideButton.js +103 -0
  153. package/lib-module/Pagination/dictionary.js +18 -0
  154. package/lib-module/Pagination/index.js +2 -0
  155. package/lib-module/Pagination/usePagination.js +72 -0
  156. package/lib-module/Progress/Progress.js +85 -0
  157. package/lib-module/Progress/ProgressBar.js +134 -0
  158. package/lib-module/Progress/ProgressBarBackground.js +41 -0
  159. package/lib-module/Progress/index.js +4 -0
  160. package/lib-module/Radio/Radio.js +263 -0
  161. package/lib-module/Radio/RadioButton.js +128 -0
  162. package/lib-module/Radio/RadioGroup.js +225 -0
  163. package/lib-module/Radio/RadioInput.js +60 -0
  164. package/lib-module/Radio/RadioInput.native.js +6 -0
  165. package/lib-module/Radio/index.js +3 -0
  166. package/lib-module/RadioCard/RadioCard.js +218 -0
  167. package/lib-module/RadioCard/RadioCardGroup.js +232 -0
  168. package/lib-module/RadioCard/index.js +3 -0
  169. package/lib-module/Search/Search.js +233 -0
  170. package/lib-module/Search/dictionary.js +12 -0
  171. package/lib-module/Search/index.js +2 -0
  172. package/lib-module/Select/Group.js +20 -0
  173. package/lib-module/Select/Group.native.js +14 -0
  174. package/lib-module/Select/Item.js +17 -0
  175. package/lib-module/Select/Item.native.js +9 -0
  176. package/lib-module/Select/Picker.js +67 -0
  177. package/lib-module/Select/Picker.native.js +110 -0
  178. package/lib-module/Select/Select.js +317 -0
  179. package/lib-module/Select/index.js +6 -0
  180. package/lib-module/SideNav/Item.js +139 -0
  181. package/lib-module/SideNav/ItemContent.js +45 -0
  182. package/lib-module/SideNav/ItemsGroup.js +115 -0
  183. package/lib-module/SideNav/SideNav.js +133 -0
  184. package/lib-module/SideNav/index.js +1 -0
  185. package/lib-module/Skeleton/Skeleton.js +117 -0
  186. package/lib-module/Skeleton/index.js +2 -0
  187. package/lib-module/Skeleton/skeleton.constant.js +3 -0
  188. package/lib-module/Skeleton/skeletonWebAnimation.js +18 -0
  189. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +24 -0
  190. package/lib-module/Spacer/Spacer.js +97 -0
  191. package/lib-module/Spacer/index.js +2 -0
  192. package/lib-module/StackView/StackView.js +124 -0
  193. package/lib-module/StackView/StackWrap.js +48 -0
  194. package/lib-module/StackView/StackWrap.native.js +3 -0
  195. package/lib-module/StackView/StackWrapBox.js +114 -0
  196. package/lib-module/StackView/StackWrapGap.js +58 -0
  197. package/lib-module/StackView/common.js +32 -0
  198. package/lib-module/StackView/getStackedContent.js +123 -0
  199. package/lib-module/StackView/index.js +5 -0
  200. package/lib-module/StepTracker/Step.js +229 -0
  201. package/lib-module/StepTracker/StepTracker.js +175 -0
  202. package/lib-module/StepTracker/dictionary.js +10 -0
  203. package/lib-module/StepTracker/index.js +2 -0
  204. package/lib-module/Tabs/Tabs.js +113 -0
  205. package/lib-module/Tabs/TabsItem.js +215 -0
  206. package/lib-module/Tabs/index.js +2 -0
  207. package/lib-module/Tags/Tags.js +238 -0
  208. package/lib-module/Tags/index.js +2 -0
  209. package/lib-module/TextInput/TextArea.js +88 -0
  210. package/lib-module/TextInput/TextInput.js +60 -0
  211. package/lib-module/TextInput/TextInputBase.js +233 -0
  212. package/lib-module/TextInput/index.js +3 -0
  213. package/lib-module/TextInput/propTypes.js +31 -0
  214. package/lib-module/ThemeProvider/ThemeProvider.js +35 -0
  215. package/lib-module/ThemeProvider/index.js +6 -0
  216. package/lib-module/ThemeProvider/useSetTheme.js +22 -0
  217. package/lib-module/ThemeProvider/useTheme.js +14 -0
  218. package/lib-module/ThemeProvider/useThemeTokens.js +105 -0
  219. package/lib-module/ThemeProvider/utils/index.js +2 -0
  220. package/lib-module/ThemeProvider/utils/styles.js +174 -0
  221. package/lib-module/ThemeProvider/utils/theme-tokens.js +151 -0
  222. package/lib-module/ToggleSwitch/ToggleSwitch.js +224 -0
  223. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +202 -0
  224. package/lib-module/ToggleSwitch/index.js +3 -0
  225. package/lib-module/Tooltip/Backdrop.js +52 -0
  226. package/lib-module/Tooltip/Backdrop.native.js +43 -0
  227. package/lib-module/Tooltip/Tooltip.js +332 -0
  228. package/lib-module/Tooltip/dictionary.js +8 -0
  229. package/lib-module/Tooltip/getTooltipPosition.js +164 -0
  230. package/lib-module/Tooltip/index.js +2 -0
  231. package/lib-module/TooltipButton/TooltipButton.js +71 -0
  232. package/lib-module/TooltipButton/index.js +2 -0
  233. package/lib-module/Typography/Typography.js +118 -0
  234. package/lib-module/Typography/index.js +2 -0
  235. package/lib-module/ViewportProvider/ViewportProvider.js +28 -0
  236. package/lib-module/ViewportProvider/index.js +3 -0
  237. package/lib-module/ViewportProvider/useViewport.js +3 -0
  238. package/lib-module/ViewportProvider/useViewportListener.js +43 -0
  239. package/lib-module/index.js +48 -0
  240. package/lib-module/utils/a11y/index.js +2 -0
  241. package/lib-module/utils/a11y/semantics.js +154 -0
  242. package/lib-module/utils/a11y/textSize.js +34 -0
  243. package/lib-module/utils/animation/index.js +2 -0
  244. package/lib-module/utils/animation/useVerticalExpandAnimation.js +49 -0
  245. package/lib-module/utils/children.js +118 -0
  246. package/lib-module/utils/index.js +15 -0
  247. package/lib-module/utils/info/index.js +7 -0
  248. package/lib-module/utils/info/platform/index.js +11 -0
  249. package/lib-module/utils/info/platform/platform.android.js +1 -0
  250. package/lib-module/utils/info/platform/platform.ios.js +1 -0
  251. package/lib-module/utils/info/platform/platform.js +1 -0
  252. package/lib-module/utils/info/platform/platform.native.js +4 -0
  253. package/lib-module/utils/info/versions.js +5 -0
  254. package/lib-module/utils/input.js +180 -0
  255. package/lib-module/utils/pressability.js +97 -0
  256. package/lib-module/utils/props/a11yProps.js +140 -0
  257. package/lib-module/utils/props/clickProps.js +25 -0
  258. package/lib-module/utils/props/componentPropType.js +63 -0
  259. package/lib-module/utils/props/copyPropTypes.js +2 -0
  260. package/lib-module/utils/props/getPropSelector.js +6 -0
  261. package/lib-module/utils/props/hrefAttrsProp.js +30 -0
  262. package/lib-module/utils/props/index.js +16 -0
  263. package/lib-module/utils/props/inputSupportsProps.js +54 -0
  264. package/lib-module/utils/props/linkProps.js +47 -0
  265. package/lib-module/utils/props/paddingProp.js +9 -0
  266. package/lib-module/utils/props/pressProps.js +42 -0
  267. package/lib-module/utils/props/rectProp.js +9 -0
  268. package/lib-module/utils/props/responsiveProps.js +30 -0
  269. package/lib-module/utils/props/selectSystemProps.js +24 -0
  270. package/lib-module/utils/props/spacingProps.js +56 -0
  271. package/lib-module/utils/props/tokens.js +120 -0
  272. package/lib-module/utils/props/variantProp.js +18 -0
  273. package/lib-module/utils/props/viewProps.js +22 -0
  274. package/lib-module/utils/ssr.js +35 -0
  275. package/lib-module/utils/useCopy.js +42 -0
  276. package/lib-module/utils/useHash.js +44 -0
  277. package/lib-module/utils/useHash.native.js +7 -0
  278. package/lib-module/utils/useResponsiveProp.js +47 -0
  279. package/lib-module/utils/useSpacingScale.js +123 -0
  280. package/lib-module/utils/useUniqueId.js +12 -0
  281. package/lib-module/utils/withLinkRouter.js +82 -0
  282. package/package.json +9 -5
  283. package/src/A11yText/index.jsx +7 -3
  284. package/src/ActivityIndicator/Spinner.jsx +56 -44
  285. package/src/ActivityIndicator/Spinner.native.jsx +20 -12
  286. package/src/Box/Box.jsx +10 -9
  287. package/src/Button/ButtonBase.jsx +9 -8
  288. package/src/Card/Card.jsx +7 -4
  289. package/src/Card/PressableCardBase.jsx +12 -12
  290. package/src/Checkbox/Checkbox.jsx +12 -5
  291. package/src/Divider/Divider.jsx +17 -10
  292. package/src/ExpandCollapse/Control.jsx +12 -7
  293. package/src/ExpandCollapse/ExpandCollapse.jsx +13 -3
  294. package/src/ExpandCollapse/Panel.jsx +15 -5
  295. package/src/Feedback/Feedback.jsx +13 -3
  296. package/src/Fieldset/Fieldset.jsx +1 -1
  297. package/src/HorizontalScroll/HorizontalScroll.jsx +12 -5
  298. package/src/IconButton/IconButton.jsx +12 -8
  299. package/src/InputLabel/InputLabel.jsx +16 -2
  300. package/src/InputSupports/InputSupports.jsx +1 -1
  301. package/src/Link/LinkBase.jsx +10 -9
  302. package/src/List/List.jsx +12 -5
  303. package/src/List/ListItem.jsx +16 -2
  304. package/src/Modal/Modal.jsx +63 -50
  305. package/src/Notification/Notification.jsx +17 -3
  306. package/src/Pagination/Pagination.jsx +10 -3
  307. package/src/Progress/Progress.jsx +5 -3
  308. package/src/Progress/ProgressBar.jsx +8 -6
  309. package/src/Radio/Radio.jsx +13 -5
  310. package/src/Radio/RadioButton.jsx +13 -3
  311. package/src/Radio/RadioGroup.jsx +14 -2
  312. package/src/RadioCard/RadioCard.jsx +9 -6
  313. package/src/RadioCard/RadioCardGroup.jsx +16 -4
  314. package/src/Search/Search.jsx +15 -3
  315. package/src/Select/Select.jsx +21 -7
  316. package/src/SideNav/Item.jsx +15 -7
  317. package/src/SideNav/SideNav.jsx +13 -2
  318. package/src/Skeleton/Skeleton.jsx +55 -43
  319. package/src/Spacer/Spacer.jsx +8 -16
  320. package/src/StackView/StackView.jsx +13 -12
  321. package/src/StackView/StackWrapBox.jsx +12 -12
  322. package/src/StackView/StackWrapGap.jsx +9 -7
  323. package/src/StepTracker/Step.jsx +7 -4
  324. package/src/StepTracker/StepTracker.jsx +8 -8
  325. package/src/Tabs/Tabs.jsx +16 -3
  326. package/src/Tabs/TabsItem.jsx +13 -9
  327. package/src/Tags/Tags.jsx +20 -5
  328. package/src/TextInput/TextArea.jsx +20 -8
  329. package/src/TextInput/TextInput.jsx +20 -8
  330. package/src/TextInput/TextInputBase.jsx +13 -3
  331. package/src/ToggleSwitch/ToggleSwitch.jsx +16 -5
  332. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +14 -6
  333. package/src/Tooltip/Tooltip.jsx +13 -3
  334. package/src/TooltipButton/TooltipButton.jsx +6 -4
  335. package/src/Typography/Typography.jsx +10 -6
  336. package/src/index.js +1 -1
  337. package/src/utils/children.jsx +2 -1
  338. package/src/utils/index.js +1 -0
  339. package/src/utils/props/index.js +1 -0
  340. package/src/{InputSupports/propTypes.js → utils/props/inputSupportsProps.js} +2 -4
  341. package/src/utils/ssr.js +35 -0
  342. package/release-context.json +0 -7
@@ -3,10 +3,19 @@ import { Animated, Platform } from 'react-native'
3
3
  import propTypes from 'prop-types'
4
4
  import StackView from '../StackView'
5
5
  import { useThemeTokens } from '../ThemeProvider'
6
- import { getTokensPropType, useSpacingScale, variantProp } from '../utils'
6
+ import {
7
+ a11yProps,
8
+ getTokensPropType,
9
+ selectSystemProps,
10
+ useSpacingScale,
11
+ variantProp,
12
+ viewProps
13
+ } from '../utils'
7
14
  import useSkeletonNativeAnimation from './useSkeletonNativeAnimation'
8
15
  import skeletonWebAnimation from './skeletonWebAnimation'
9
16
 
17
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
18
+
10
19
  const selectSkeletonStyles = ({ color, radius, fadeAnimation }) => ({
11
20
  backgroundColor: color,
12
21
  borderRadius: radius,
@@ -27,62 +36,65 @@ const selectSquareStyles = ({ radius }) => ({
27
36
  borderRadius: radius
28
37
  })
29
38
 
30
- const Skeleton = forwardRef(({ tokens, variant, size, characters, lines, shape = 'line' }, ref) => {
31
- const themeTokens = useThemeTokens('Skeleton', tokens, variant)
32
- const skeletonHeight = useSpacingScale(size || themeTokens.size)
33
- const nativeAnimation = useSkeletonNativeAnimation()
39
+ const Skeleton = forwardRef(
40
+ ({ tokens, variant, size, characters, lines, shape = 'line', ...rest }, ref) => {
41
+ const themeTokens = useThemeTokens('Skeleton', tokens, variant)
42
+ const skeletonHeight = useSpacingScale(size || themeTokens.size)
43
+ const nativeAnimation = useSkeletonNativeAnimation()
44
+
45
+ const getAnimationBaseOnPlatform = () => {
46
+ if (Platform.OS !== 'web') {
47
+ return nativeAnimation
48
+ }
34
49
 
35
- const getAnimationBaseOnPlatform = () => {
36
- if (Platform.OS !== 'web') {
37
- return nativeAnimation
50
+ return skeletonWebAnimation
38
51
  }
39
52
 
40
- return skeletonWebAnimation
41
- }
53
+ const getLineWidth = () => {
54
+ if (characters) {
55
+ return characters * themeTokens.baseWidth
56
+ }
42
57
 
43
- const getLineWidth = () => {
44
- if (characters) {
45
- return characters * themeTokens.baseWidth
58
+ return themeTokens.characters * themeTokens.baseWidth
46
59
  }
47
60
 
48
- return themeTokens.characters * themeTokens.baseWidth
49
- }
61
+ const getStyledBasedOnShape = () => {
62
+ if (shape === 'circle') {
63
+ return selectShapeStyles({ skeletonHeight })
64
+ }
50
65
 
51
- const getStyledBasedOnShape = () => {
52
- if (shape === 'circle') {
53
- return selectShapeStyles({ skeletonHeight })
54
- }
66
+ if (shape === 'box') {
67
+ return [
68
+ selectShapeStyles({ skeletonHeight }),
69
+ selectSquareStyles({ radius: themeTokens.squareRadius })
70
+ ]
71
+ }
55
72
 
56
- if (shape === 'box') {
57
- return [
58
- selectShapeStyles({ skeletonHeight }),
59
- selectSquareStyles({ radius: themeTokens.squareRadius })
60
- ]
73
+ return selectLineStyles({ skeletonHeight, lineWidth: getLineWidth() })
61
74
  }
62
75
 
63
- return selectLineStyles({ skeletonHeight, lineWidth: getLineWidth() })
76
+ const renderSkeleton = (index = 0) => (
77
+ <Animated.View
78
+ testID="skeleton"
79
+ key={`skeleton-${index + 1}`}
80
+ style={[
81
+ selectSkeletonStyles({ ...themeTokens, fadeAnimation: getAnimationBaseOnPlatform() }),
82
+ getStyledBasedOnShape()
83
+ ]}
84
+ />
85
+ )
86
+
87
+ return (
88
+ <StackView space={themeTokens.spaceBetweenLines} ref={ref} {...selectProps(rest)}>
89
+ {lines > 1 ? [...Array(lines)].map((_, index) => renderSkeleton(index)) : renderSkeleton()}
90
+ </StackView>
91
+ )
64
92
  }
65
-
66
- const renderSkeleton = (index = 0) => (
67
- <Animated.View
68
- testID="skeleton"
69
- key={`skeleton-${index + 1}`}
70
- style={[
71
- selectSkeletonStyles({ ...themeTokens, fadeAnimation: getAnimationBaseOnPlatform() }),
72
- getStyledBasedOnShape()
73
- ]}
74
- />
75
- )
76
-
77
- return (
78
- <StackView space={themeTokens.spaceBetweenLines} ref={ref}>
79
- {lines > 1 ? [...Array(lines)].map((_, index) => renderSkeleton(index)) : renderSkeleton()}
80
- </StackView>
81
- )
82
- })
93
+ )
83
94
  Skeleton.displayName = 'Skeleton'
84
95
 
85
96
  Skeleton.propTypes = {
97
+ ...selectedSystemPropTypes,
86
98
  tokens: getTokensPropType('Skeleton'),
87
99
  variant: variantProp.propType,
88
100
  size: propTypes.number,
@@ -1,13 +1,15 @@
1
1
  import React, { forwardRef } from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { StyleSheet, View } from 'react-native'
4
+ import { a11yProps, selectSystemProps, spacingProps, useSpacingScale, viewProps } from '../utils'
4
5
 
5
- import { useSpacingScale, spacingProps } from '../utils'
6
6
  /**
7
7
  * @typedef {import('../utils/props/spacingProps.js').SpacingValue} SpacingValue
8
8
  * @typedef {import('../utils/props/spacingProps.js').SpacingObject} SpacingObject
9
9
  */
10
10
 
11
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
12
+
11
13
  const selectSizeStyle = (size, direction) => ({
12
14
  // Only apply space in one direction at a time, else large spacers will increase the
13
15
  // 'across' size of the parent and mess up siblings with styles like `alignItems: stretch`.
@@ -54,16 +56,16 @@ const selectSizeStyle = (size, direction) => ({
54
56
  * Spacer has no content and is ignored by tools such as screen readers. Use `Divider` for
55
57
  * separations between elements that may be treated as semantically meaningful on web.
56
58
  */
57
- const Spacer = forwardRef(({ space = 1, direction = 'column', testID, dataSet }, ref) => {
59
+ const Spacer = forwardRef(({ space = 1, direction = 'column', ...rest }, ref) => {
58
60
  const size = useSpacingScale(space)
59
61
  const sizeStyle = selectSizeStyle(size, direction)
60
- return (
61
- <View ref={ref} testID={testID} style={[staticStyles.stretch, sizeStyle]} dataSet={dataSet} />
62
- )
62
+
63
+ return <View ref={ref} style={[staticStyles.stretch, sizeStyle]} {...selectProps(rest)} />
63
64
  })
64
65
  Spacer.displayName = 'Spacer'
65
66
 
66
67
  Spacer.propTypes = {
68
+ ...selectedSystemPropTypes,
67
69
  /**
68
70
  * The size of the spacer according to the theme's spacing scale.
69
71
  * Either a number corresponding to a position on the theme's spacing scale (1 is smallest, 2 is second smallest, etc),
@@ -76,17 +78,7 @@ Spacer.propTypes = {
76
78
  * - `'column'` (default) applies space vertically; has a fixed height and not width.
77
79
  * - `'row'` applies space horizontally; has a fixed width and not height.
78
80
  */
79
- direction: PropTypes.oneOf(['column', 'row']),
80
- /**
81
- * @ignore
82
- */
83
- dataSet: PropTypes.object,
84
- /**
85
- * @ignore
86
- * In tests, the only way to select Spacers is with testID prop and getByTestId, since they have no content,
87
- * no accessibility role, and there is no equivalent of nextSibling in React Native Testing Library.
88
- */
89
- testID: PropTypes.string
81
+ direction: PropTypes.oneOf(['column', 'row'])
90
82
  }
91
83
 
92
84
  const staticStyles = StyleSheet.create({
@@ -4,21 +4,24 @@ import { View } from 'react-native'
4
4
 
5
5
  import Divider from '../Divider'
6
6
  import {
7
- spacingProps,
8
7
  a11yProps,
8
+ getA11yPropsFromHtmlTag,
9
9
  getTokensPropType,
10
+ layoutTags,
10
11
  responsiveProps,
11
- variantProp,
12
- viewProps,
12
+ selectSystemProps,
13
+ spacingProps,
13
14
  useResponsiveProp,
14
- getA11yPropsFromHtmlTag,
15
- layoutTags
15
+ variantProp,
16
+ viewProps
16
17
  } from '../utils'
17
18
  import { useThemeTokens } from '../ThemeProvider'
18
19
  import { useViewport } from '../ViewportProvider'
19
20
  import getStackedContent from './getStackedContent'
20
21
  import { staticStyles, selectFlexStyles } from './common'
21
22
 
23
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
24
+
22
25
  /**
23
26
  * StackView evenly spaces its children, by default placing `Spacer` components between them.
24
27
  *
@@ -78,17 +81,16 @@ const StackView = forwardRef(
78
81
  ) => {
79
82
  const viewport = useViewport()
80
83
  const direction = useResponsiveProp(directionProp, 'column')
81
- const props = {
84
+ const selectedProps = selectProps({
82
85
  ...getA11yPropsFromHtmlTag(tag, accessibilityRole),
83
- ...a11yProps.select(rest),
84
- ...viewProps.select(rest)
85
- }
86
+ ...rest
87
+ })
86
88
  const content = getStackedContent(children, { direction, divider, space })
87
89
  const themeTokens = useThemeTokens('StackView', tokens, variant, { viewport })
88
90
  const flexStyles = selectFlexStyles(themeTokens)
89
91
 
90
92
  return (
91
- <View ref={ref} {...props} style={[flexStyles, staticStyles[direction]]}>
93
+ <View ref={ref} {...selectedProps} style={[flexStyles, staticStyles[direction]]}>
92
94
  {content}
93
95
  </View>
94
96
  )
@@ -97,8 +99,7 @@ const StackView = forwardRef(
97
99
  StackView.displayName = 'StackView'
98
100
 
99
101
  StackView.propTypes = {
100
- ...a11yProps.propTypes,
101
- ...viewProps.types,
102
+ ...selectedSystemPropTypes,
102
103
  tokens: getTokensPropType('StackView'),
103
104
  variant: variantProp.propType,
104
105
  /**
@@ -1,23 +1,25 @@
1
1
  import React, { forwardRef } from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { View } from 'react-native'
4
-
5
4
  import {
6
- spacingProps,
7
5
  a11yProps,
6
+ getA11yPropsFromHtmlTag,
8
7
  getTokensPropType,
8
+ layoutTags,
9
9
  responsiveProps,
10
+ selectSystemProps,
11
+ spacingProps,
10
12
  useSpacingScale,
11
13
  useResponsiveProp,
12
- viewProps,
13
- getA11yPropsFromHtmlTag,
14
- layoutTags
14
+ viewProps
15
15
  } from '../utils'
16
16
  import { useThemeTokens } from '../ThemeProvider'
17
17
  import { useViewport } from '../ViewportProvider'
18
18
  import getStackedContent from './getStackedContent'
19
19
  import { staticStyles, selectFlexStyles } from './common'
20
20
 
21
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
22
+
21
23
  const offsetSides = {
22
24
  row: 'marginBottom',
23
25
  column: 'marginRight'
@@ -64,11 +66,10 @@ const StackWrapBox = forwardRef(
64
66
  const direction = useResponsiveProp(directionProp, 'row')
65
67
  const themeTokens = useThemeTokens('StackView', tokens, variant, { viewport })
66
68
  const flexStyles = selectFlexStyles(themeTokens)
67
- const props = {
69
+ const selectedProps = selectProps({
68
70
  ...getA11yPropsFromHtmlTag(tag, accessibilityRole),
69
- ...a11yProps.select(rest),
70
- ...viewProps.select(rest)
71
- }
71
+ ...rest
72
+ })
72
73
 
73
74
  // Mimic CSS `gap` using box spacing on the side after a wrapped row then offsetting it on the last row.
74
75
  const gapSize = useSpacingScale(gap)
@@ -79,7 +80,7 @@ const StackWrapBox = forwardRef(
79
80
  return (
80
81
  <View
81
82
  ref={ref}
82
- {...props}
83
+ {...selectedProps}
83
84
  style={[flexStyles, staticStyles.wrap, staticStyles[direction], offsetStyle]}
84
85
  >
85
86
  {content}
@@ -90,8 +91,7 @@ const StackWrapBox = forwardRef(
90
91
  StackWrapBox.displayName = 'StackWrapBox'
91
92
 
92
93
  StackWrapBox.propTypes = {
93
- ...a11yProps.propTypes,
94
- ...viewProps.types,
94
+ ...selectedSystemPropTypes,
95
95
  tokens: getTokensPropType('StackView'),
96
96
  /**
97
97
  * Sets the `flexDirection` of the container
@@ -4,16 +4,19 @@ import { View } from 'react-native'
4
4
  import StackWrapBox from './StackWrapBox'
5
5
  import {
6
6
  a11yProps,
7
+ getA11yPropsFromHtmlTag,
8
+ selectSystemProps,
7
9
  useSpacingScale,
8
10
  useResponsiveProp,
9
- viewProps,
10
- getA11yPropsFromHtmlTag
11
+ viewProps
11
12
  } from '../utils'
12
13
  import { useThemeTokens } from '../ThemeProvider'
13
14
  import { useViewport } from '../ViewportProvider'
14
15
  import getStackedContent from './getStackedContent'
15
16
  import { staticStyles, selectFlexStyles } from './common'
16
17
 
18
+ const [selectProps] = selectSystemProps([a11yProps, viewProps])
19
+
17
20
  /**
18
21
  * The primary implementation of StackWrap.
19
22
  *
@@ -42,11 +45,10 @@ const StackWrapGap = forwardRef(
42
45
  const direction = useResponsiveProp(directionProp, 'row')
43
46
  const themeTokens = useThemeTokens('StackView', tokens, variant, { viewport })
44
47
  const flexStyles = selectFlexStyles(themeTokens)
45
- const props = {
48
+ const selectedProps = selectProps({
46
49
  ...getA11yPropsFromHtmlTag(tag, accessibilityRole),
47
- ...a11yProps.select(rest),
48
- ...viewProps.select(rest)
49
- }
50
+ ...rest
51
+ })
50
52
 
51
53
  const size = useSpacingScale(space)
52
54
  const gapStyle = { gap: size }
@@ -56,7 +58,7 @@ const StackWrapGap = forwardRef(
56
58
  return (
57
59
  <View
58
60
  ref={ref}
59
- {...props}
61
+ {...selectedProps}
60
62
  style={[flexStyles, staticStyles.wrap, staticStyles[direction], gapStyle]}
61
63
  >
62
64
  {content}
@@ -1,12 +1,13 @@
1
1
  import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { StyleSheet, Text, View } from 'react-native'
4
-
5
4
  import StackView from '../StackView'
6
5
  import Icon from '../Icon'
7
- import { getTokensPropType, variantProp } from '../utils'
6
+ import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps } from '../utils'
8
7
  import { applyTextStyles } from '../ThemeProvider'
9
8
 
9
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
10
+
10
11
  const selectCompletedIconTokens = ({ completedIconColor, completedIconSize }) => ({
11
12
  size: completedIconSize,
12
13
  color: completedIconColor
@@ -117,7 +118,7 @@ const getStepTestID = (isCompleted, isCurrent) => {
117
118
  /**
118
119
  * A single step of a StepTracker.
119
120
  */
120
- const Step = ({ label, name, status = 0, stepCount = 0, stepIndex = 0, tokens }) => {
121
+ const Step = ({ label, name, status = 0, stepCount = 0, stepIndex = 0, tokens, ...rest }) => {
121
122
  const { completedIcon, showStepLabel, showStepName, ...themeTokens } = tokens
122
123
  const isFirst = stepIndex === 0
123
124
  const isLast = stepIndex === stepCount - 1
@@ -131,7 +132,8 @@ const Step = ({ label, name, status = 0, stepCount = 0, stepIndex = 0, tokens })
131
132
  tokens={{ alignItems: 'stretch', flexGrow: 1 }}
132
133
  accessibilityLabel={label}
133
134
  accessibilityLevel={2}
134
- accessibilityCurrent={status === stepIndex ? 'true' : 'false'}
135
+ accessibilityCurrent={status === stepIndex}
136
+ {...selectProps(rest)}
135
137
  >
136
138
  <StackView direction="row" space={0} tokens={{ alignItems: 'center', flexGrow: 0 }}>
137
139
  <View
@@ -178,6 +180,7 @@ const Step = ({ label, name, status = 0, stepCount = 0, stepIndex = 0, tokens })
178
180
  }
179
181
 
180
182
  Step.propTypes = {
183
+ ...selectedSystemPropTypes,
181
184
  label: PropTypes.string.isRequired,
182
185
  name: PropTypes.string.isRequired,
183
186
  status: PropTypes.number.isRequired,
@@ -1,17 +1,16 @@
1
1
  import React, { forwardRef } from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import { StyleSheet, Text, View } from 'react-native'
4
-
5
4
  import StackView from '../StackView'
6
5
  import { applyTextStyles, useThemeTokens } from '../ThemeProvider'
7
- import { getTokensPropType, variantProp } from '../utils'
8
- import { a11yProps } from '../utils/props'
6
+ import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps } from '../utils'
9
7
  import { useViewport } from '../ViewportProvider'
10
8
  import useCopy from '../utils/useCopy'
11
-
12
9
  import Step from './Step'
13
10
  import defaultDictionary from './dictionary'
14
11
 
12
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
13
+
15
14
  const selectContainerStyles = ({
16
15
  containerPaddingBottom,
17
16
  containerPaddingLeft,
@@ -101,7 +100,7 @@ const StepTracker = forwardRef(
101
100
  .replace('%{stepCount}', steps.length)
102
101
  .replace('%{stepLabel}', current < steps.length ? steps[current] : steps[steps.length - 1])
103
102
  if (!steps.length) return null
104
- const accessibilityProps = {
103
+ const selectedProps = selectProps({
105
104
  accessibilityLabel: stepTrackerLabel,
106
105
  accessibilityLevel: 1,
107
106
  accessibilityRole: 'progressbar',
@@ -111,11 +110,11 @@ const StepTracker = forwardRef(
111
110
  now: current,
112
111
  text: steps[current]
113
112
  },
114
- ...a11yProps.select(rest)
115
- }
113
+ ...rest
114
+ })
116
115
 
117
116
  return (
118
- <View ref={ref} style={selectContainerStyles(themeTokens)} {...accessibilityProps}>
117
+ <View ref={ref} style={selectContainerStyles(themeTokens)} {...selectedProps}>
119
118
  <StackView space={0}>
120
119
  <View style={staticStyles.stepsContainer}>
121
120
  {steps.map((label, index) => {
@@ -150,6 +149,7 @@ const StepTracker = forwardRef(
150
149
  StepTracker.displayName = 'StepTracker'
151
150
 
152
151
  StepTracker.propTypes = {
152
+ ...selectedSystemPropTypes,
153
153
  current: PropTypes.number,
154
154
  copy: PropTypes.oneOf(['en', 'fr']),
155
155
  dictionary: PropTypes.shape({
package/src/Tabs/Tabs.jsx CHANGED
@@ -1,16 +1,26 @@
1
1
  import React, { forwardRef, useCallback } from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import ABBPropTypes from 'airbnb-prop-types'
4
-
5
4
  import { useThemeTokens } from '../ThemeProvider'
6
5
  import StackView from '../StackView'
7
- import { getTokensPropType, variantProp, useHash, useInputValue, withLinkRouter } from '../utils'
6
+ import {
7
+ a11yProps,
8
+ getTokensPropType,
9
+ selectSystemProps,
10
+ useHash,
11
+ useInputValue,
12
+ variantProp,
13
+ viewProps,
14
+ withLinkRouter
15
+ } from '../utils'
8
16
  import HorizontalScroll, {
9
17
  horizontalScrollUtils,
10
18
  HorizontalScrollButton
11
19
  } from '../HorizontalScroll'
12
20
  import TabsItem from './TabsItem'
13
21
 
22
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
23
+
14
24
  const { selectHorizontalScrollTokens, useItemPositions } = horizontalScrollUtils
15
25
 
16
26
  /**
@@ -29,7 +39,8 @@ const Tabs = forwardRef(
29
39
  onChange,
30
40
  items = [],
31
41
  LinkRouter,
32
- linkRouterProps
42
+ linkRouterProps,
43
+ ...rest
33
44
  },
34
45
  ref
35
46
  ) => {
@@ -58,6 +69,7 @@ const Tabs = forwardRef(
58
69
  tokens={selectHorizontalScrollTokens(themeTokens)}
59
70
  scrollButtonTokens={scrollButtonTokens}
60
71
  accessibilityRole="tablist"
72
+ {...selectProps(rest)}
61
73
  >
62
74
  <StackView space={space} direction="row">
63
75
  {items.map(
@@ -102,6 +114,7 @@ const Tabs = forwardRef(
102
114
  Tabs.displayName = 'Tabs'
103
115
 
104
116
  Tabs.propTypes = {
117
+ ...selectedSystemPropTypes,
105
118
  ...withLinkRouter.PropTypes,
106
119
  items: PropTypes.arrayOf(
107
120
  PropTypes.shape({
@@ -4,18 +4,22 @@ import { Platform, Pressable, StyleSheet, Text, View } from 'react-native'
4
4
 
5
5
  import { applyTextStyles, useThemeTokensCallback } from '../ThemeProvider'
6
6
  import {
7
+ a11yProps,
8
+ clickProps,
9
+ getTokensPropType,
10
+ linkProps,
7
11
  resolvePressableTokens,
12
+ selectSystemProps,
8
13
  selectTokens,
9
14
  variantProp,
10
- getTokensPropType,
11
- linkProps,
12
- a11yProps,
13
- clickProps,
15
+ viewProps,
14
16
  withLinkRouter
15
17
  } from '../utils'
16
18
  import Spacer from '../Spacer'
17
19
  import { horizontalScrollUtils } from '../HorizontalScroll'
18
20
 
21
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps])
22
+
19
23
  const { itemPositionsPropType, getItemPositionLayoutHandler } = horizontalScrollUtils
20
24
 
21
25
  const selectHighlightBarStyles = ({
@@ -115,11 +119,11 @@ const TabsItem = forwardRef(
115
119
  }
116
120
  : undefined
117
121
 
118
- const a11y = {
122
+ const selectedProps = selectProps({
119
123
  accessibilityRole,
120
124
  accessibilityState,
121
- ...a11yProps.select(rest)
122
- }
125
+ ...rest
126
+ })
123
127
 
124
128
  useEffect(() => {
125
129
  // If this is selected while off-screen, scroll it into view
@@ -145,7 +149,7 @@ const TabsItem = forwardRef(
145
149
  href={href}
146
150
  style={getPressableStyle}
147
151
  onLayout={handleLayout}
148
- {...a11y}
152
+ {...selectedProps}
149
153
  >
150
154
  {(pressableState) => {
151
155
  const { space, textAlign, ...themeTokens } = resolveTokens(pressableState)
@@ -185,7 +189,7 @@ const TabsItem = forwardRef(
185
189
  TabsItem.displayName = 'TabsItem'
186
190
 
187
191
  TabsItem.propTypes = {
188
- ...a11yProps.propTypes,
192
+ ...selectedSystemPropTypes,
189
193
  tokens: getTokensPropType('TabsItem'),
190
194
  variant: variantProp.propType,
191
195
  onPress: PropTypes.func,
package/src/Tags/Tags.jsx CHANGED
@@ -8,10 +8,20 @@ import Icon from '../Icon'
8
8
  import { StackWrap, getStackedContent } from '../StackView'
9
9
  import { useViewport } from '../ViewportProvider'
10
10
  import { useThemeTokens, useThemeTokensCallback } from '../ThemeProvider'
11
- import { a11yProps, pressProps, variantProp, getTokensPropType, selectTokens } from '../utils/props'
11
+ import {
12
+ a11yProps,
13
+ getTokensPropType,
14
+ pressProps,
15
+ selectSystemProps,
16
+ selectTokens,
17
+ variantProp,
18
+ viewProps
19
+ } from '../utils/props'
12
20
  import { useMultipleInputValues } from '../utils/input'
13
21
  import { getPressHandlersWithArgs } from '../utils/pressability'
14
22
 
23
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, pressProps, viewProps])
24
+
15
25
  const selectIconTextTokens = ({
16
26
  icon,
17
27
  iconPosition,
@@ -79,14 +89,20 @@ const Tags = forwardRef(
79
89
  readOnly
80
90
  })
81
91
 
82
- const a11y = a11yProps.select({
92
+ const selectedProps = selectProps({
83
93
  accessibilityRole,
84
94
  ...rest
85
95
  })
86
96
  const itemA11yRole = 'checkbox'
87
97
 
88
98
  return (
89
- <StackWrap ref={ref} {...a11y} space={space} direction={direction} tokens={stackTokens}>
99
+ <StackWrap
100
+ ref={ref}
101
+ {...selectedProps}
102
+ space={space}
103
+ direction={direction}
104
+ tokens={stackTokens}
105
+ >
90
106
  {items.map(({ label, id = label, accessibilityLabel, ref: itemRef }, index) => {
91
107
  const isSelected = currentValues.includes(id)
92
108
 
@@ -155,8 +171,7 @@ const Tags = forwardRef(
155
171
  Tags.displayName = 'Tags'
156
172
 
157
173
  Tags.propTypes = {
158
- ...a11yProps.propTypes,
159
- ...pressProps.propTypes,
174
+ ...selectedSystemPropTypes,
160
175
  tokens: getTokensPropType('Tags'),
161
176
  variant: variantProp.propType,
162
177
  /**