@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
@@ -37,6 +37,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
37
37
 
38
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; }
39
39
 
40
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
41
+
40
42
  const selectContainerStyles = ({
41
43
  containerPaddingLeft,
42
44
  containerPaddingRight,
@@ -119,7 +121,8 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)(({
119
121
  maxWidth,
120
122
  tokens,
121
123
  variant,
122
- copy
124
+ copy,
125
+ ...rest
123
126
  }, ref) => {
124
127
  const viewport = (0, _ViewportProvider.useViewport)();
125
128
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Modal', tokens, variant, {
@@ -150,6 +153,7 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)(({
150
153
 
151
154
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.default, {
152
155
  transparent: true,
156
+ ...selectProps(rest),
153
157
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
154
158
  style: [staticStyles.positioningContainer],
155
159
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
@@ -182,7 +186,7 @@ const Modal = /*#__PURE__*/(0, _react.forwardRef)(({
182
186
  });
183
187
  });
184
188
  Modal.displayName = 'Modal';
185
- Modal.propTypes = {
189
+ Modal.propTypes = { ...selectedSystemPropTypes,
186
190
  children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.arrayOf(_propTypes.default.node)]),
187
191
  copy: _utils.copyPropTypes,
188
192
  isOpen: _propTypes.default.bool,
@@ -9,8 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
11
 
12
- var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
13
-
14
12
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
15
13
 
16
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -33,6 +31,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
33
31
 
34
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
33
 
34
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
35
+
36
36
  const selectContainerStyles = tokens => ({ ...tokens
37
37
  });
38
38
 
@@ -124,7 +124,8 @@ const Notification = /*#__PURE__*/(0, _react.forwardRef)(({
124
124
  dismissible,
125
125
  copy = 'en',
126
126
  tokens,
127
- variant
127
+ variant,
128
+ ...rest
128
129
  }, ref) => {
129
130
  const [isDismissed, setIsDismissed] = (0, _react.useState)(false);
130
131
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Notification', tokens, variant, {
@@ -140,10 +141,11 @@ const Notification = /*#__PURE__*/(0, _react.forwardRef)(({
140
141
  }
141
142
 
142
143
  const textStyles = selectTextStyles(themeTokens);
143
- const content = typeof children === 'string' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
144
- style: textStyles,
145
- children: children
146
- }) : children;
144
+ const content = (0, _utils.wrapStringsInText)(typeof children === 'function' ? children({
145
+ textStyles
146
+ }) : children, {
147
+ style: textStyles
148
+ });
147
149
  const {
148
150
  icon: IconComponent,
149
151
  dismissIcon: DismissIconComponent
@@ -155,6 +157,7 @@ const Notification = /*#__PURE__*/(0, _react.forwardRef)(({
155
157
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
156
158
  ref: ref,
157
159
  style: [staticStyles.container, selectContainerStyles(themeTokens)],
160
+ ...selectProps(rest),
158
161
  children: [IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
159
162
  style: selectIconContainerStyles(themeTokens),
160
163
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, { ...selectIconProps(themeTokens)
@@ -178,7 +181,8 @@ const Notification = /*#__PURE__*/(0, _react.forwardRef)(({
178
181
  });
179
182
  });
180
183
  Notification.displayName = 'Notification';
181
- Notification.propTypes = {
184
+ Notification.propTypes = { ...selectedSystemPropTypes,
185
+
182
186
  /**
183
187
  * Content of the `Notification`.
184
188
  */
@@ -35,6 +35,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
35
 
36
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
37
 
38
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
39
+
38
40
  const selectTextStyles = ({
39
41
  color,
40
42
  fontName,
@@ -57,7 +59,8 @@ const Pagination = /*#__PURE__*/(0, _react.forwardRef)(({
57
59
  sideButtonVariant,
58
60
  sideButtonTokens,
59
61
  LinkRouter,
60
- linkRouterProps
62
+ linkRouterProps,
63
+ ...rest
61
64
  }, ref) => {
62
65
  const viewport = (0, _ViewportProvider.useViewport)();
63
66
  const {
@@ -98,7 +101,7 @@ const Pagination = /*#__PURE__*/(0, _react.forwardRef)(({
98
101
  tokens: sideButtonTokens,
99
102
  LinkRouter: LinkRouter,
100
103
  linkRouterProps: linkRouterProps
101
- }), ...items.map((child, itemIndex) => {
104
+ }), ...items.map((_child, itemIndex) => {
102
105
  const buttonLabel = `${itemIndex + 1}`;
103
106
  const itemProps = getItemProps(itemIndex);
104
107
  const ItemLinkRouter = itemProps.LinkRouter ?? LinkRouter;
@@ -135,6 +138,7 @@ const Pagination = /*#__PURE__*/(0, _react.forwardRef)(({
135
138
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
136
139
  style: staticStyles.container,
137
140
  ref: ref,
141
+ ...selectProps(rest),
138
142
  children: buttons // keep the keys in-line with the page numbers regardless of which buttons are actually rendered
139
143
  .map((element, index) => [element, `page-${index + 1}`]).filter(([element]) => element !== null).map(([element, key]) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
140
144
  right: gap,
@@ -144,7 +148,8 @@ const Pagination = /*#__PURE__*/(0, _react.forwardRef)(({
144
148
  });
145
149
  _PageButton.default.displayName = 'PageButton';
146
150
  Pagination.PageButton = _PageButton.default;
147
- Pagination.propTypes = { ..._utils.withLinkRouter.propTypes,
151
+ Pagination.propTypes = { ...selectedSystemPropTypes,
152
+ ..._utils.withLinkRouter.propTypes,
148
153
  children: (0, _utils.componentPropType)('PageButton'),
149
154
  copy: _utils.copyPropTypes,
150
155
  variant: _utils.variantProp.propType,
@@ -11,8 +11,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
13
13
 
14
- var _propTypes2 = require("../utils/propTypes");
15
-
16
14
  var _ThemeProvider = require("../ThemeProvider");
17
15
 
18
16
  var _utils = require("../utils");
@@ -25,6 +23,8 @@ 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.viewProps]);
27
+
28
28
  const selectProgressStyles = ({
29
29
  backgroundColor,
30
30
  borderWidth,
@@ -79,12 +79,13 @@ const Progress = /*#__PURE__*/(0, _react.forwardRef)(({
79
79
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
80
80
  ref: ref,
81
81
  style: selectProgressStyles(themeTokens),
82
- ..._propTypes2.a11yProps.select(rest),
82
+ ...selectProps(rest),
83
83
  children: children
84
84
  });
85
85
  });
86
86
  Progress.displayName = 'Progress';
87
- Progress.propTypes = {
87
+ Progress.propTypes = { ...selectedSystemPropTypes,
88
+
88
89
  /**
89
90
  * Use the `children` prop to supply one or several `ProgressBar`s.
90
91
  */
@@ -17,8 +17,6 @@ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Vi
17
17
 
18
18
  var _ProgressBarBackground = _interopRequireDefault(require("./ProgressBarBackground"));
19
19
 
20
- var _propTypes2 = require("../utils/propTypes");
21
-
22
20
  var _ThemeProvider = require("../ThemeProvider");
23
21
 
24
22
  var _utils = require("../utils");
@@ -31,6 +29,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
29
 
32
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
31
 
32
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
33
+
34
34
  const selectBarStyles = ({
35
35
  backgroundColor,
36
36
  borderRadius,
@@ -94,7 +94,7 @@ const ProgressBar = /*#__PURE__*/(0, _react.forwardRef)(({
94
94
  throw new Error('ProgressBar: `percentage` cannot exceed 100');
95
95
  }
96
96
 
97
- const accessibilityProps = {
97
+ const selectedProps = selectProps({
98
98
  accessibilityRole: 'progressbar',
99
99
  accessibilityValue: {
100
100
  min: 0,
@@ -102,19 +102,20 @@ const ProgressBar = /*#__PURE__*/(0, _react.forwardRef)(({
102
102
  now: percentage,
103
103
  text: `${percentage}%`
104
104
  },
105
- ..._propTypes2.a11yProps.select(rest)
106
- };
105
+ ...rest
106
+ });
107
107
  return percentage > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
108
108
  ref: ref,
109
109
  style: [staticStyles.bar, selectBarStyles(themeTokens, percentage)],
110
- ...accessibilityProps,
110
+ ...selectedProps,
111
111
  children: children ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProgressBarBackground.default, {
112
112
  variant: variant
113
113
  })
114
114
  }) : null;
115
115
  });
116
116
  ProgressBar.displayName = 'ProgressBar';
117
- ProgressBar.propTypes = {
117
+ ProgressBar.propTypes = { ...selectedSystemPropTypes,
118
+
118
119
  /**
119
120
  * Optional children that can be used to customize the progress bar filling.
120
121
  */
@@ -25,8 +25,6 @@ var _ThemeProvider = require("../ThemeProvider");
25
25
 
26
26
  var _utils = require("../utils");
27
27
 
28
- var _propTypes2 = require("../utils/propTypes");
29
-
30
28
  var _StackView = _interopRequireDefault(require("../StackView"));
31
29
 
32
30
  var _jsxRuntime = require("react/jsx-runtime");
@@ -37,6 +35,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
37
35
 
38
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; }
39
37
 
38
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
39
+
40
40
  const selectContainerStyles = ({
41
41
  containerBackgroundColor,
42
42
  containerBorderRadius,
@@ -163,8 +163,6 @@ const Radio = /*#__PURE__*/(0, _react.forwardRef)(({
163
163
  if ((event === null || event === void 0 ? void 0 : event.key) === ' ') handleChange(event);
164
164
  };
165
165
 
166
- const accessibilityProps = _propTypes2.a11yProps.select(rest);
167
-
168
166
  const uniqueId = (0, _utils.useUniqueId)('radio');
169
167
  const inputId = id ?? uniqueId;
170
168
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
@@ -177,7 +175,7 @@ const Radio = /*#__PURE__*/(0, _react.forwardRef)(({
177
175
  checked: isChecked,
178
176
  disabled: inactive
179
177
  },
180
- ...accessibilityProps,
178
+ ...selectProps(rest),
181
179
  children: ({
182
180
  focused: focus,
183
181
  hovered: hover,
@@ -218,7 +216,7 @@ const Radio = /*#__PURE__*/(0, _react.forwardRef)(({
218
216
  });
219
217
  });
220
218
  Radio.displayName = 'Radio';
221
- Radio.propTypes = { ..._propTypes2.a11yProps.propTypes,
219
+ Radio.propTypes = { ...selectedSystemPropTypes,
222
220
 
223
221
  /**
224
222
  * Use `checked` for controlled Radio. For uncontrolled Radio, use the `defaultChecked` prop.
@@ -29,8 +29,9 @@ 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
- // TODO: roll out a standard approach to token sets
32
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]); // TODO: roll out a standard approach to token sets
33
33
  // https://github.com/telus/universal-design-system/issues/782
34
+
34
35
  const tokenKeys = ['checkedBackgroundColor', 'checkedSize', 'inputBackgroundColor', 'inputBorderColor', 'inputBorderWidth', 'inputOutlineColor', 'inputOutlineWidth', 'inputSize', 'outerBorderColor', 'outerBorderWidth', 'outerBorderGap', 'inputSize'];
35
36
 
36
37
  const selectRadioButtonTokens = (themeTokens, prefix) => (0, _utils.selectTokens)(tokenKeys, themeTokens, prefix);
@@ -99,13 +100,15 @@ const RadioButton = /*#__PURE__*/(0, _react.forwardRef)(({
99
100
  isControlled,
100
101
  handleChange,
101
102
  name: inputName,
102
- value
103
+ value,
104
+ ...rest
103
105
  }, ref) => {
104
106
  const themeTokens = (0, _ThemeProvider.validateThemeTokens)((0, _ThemeProvider.resolveThemeTokens)(tokens, {
105
107
  checked: isChecked
106
108
  }), (0, _utils.getTokensSetPropType)(tokenKeys), 'RadioButton');
107
109
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
108
110
  style: selectOuterBorderStyles(themeTokens),
111
+ ...selectProps(rest),
109
112
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
110
113
  style: [staticStyles.defaultInputStyles, selectInputStyles(themeTokens, isChecked)],
111
114
  testID: "Radio-Input",
@@ -127,7 +130,7 @@ const RadioButton = /*#__PURE__*/(0, _react.forwardRef)(({
127
130
  });
128
131
  });
129
132
  RadioButton.displayName = 'RadioButton';
130
- RadioButton.propTypes = {
133
+ RadioButton.propTypes = { ...selectedSystemPropTypes,
131
134
  isChecked: _propTypes.default.bool,
132
135
  tokens: (0, _utils.getTokensSetPropType)(tokenKeys, {
133
136
  allowFunction: true
@@ -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
  * A group of Radios that behave as a radio group. Use when users select a single choice from mutually
36
37
  * exclusive options.
@@ -79,6 +80,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
79
80
  * />
80
81
  * ```
81
82
  */
83
+
82
84
  const RadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
83
85
  tokens,
84
86
  radioTokens,
@@ -94,7 +96,8 @@ const RadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
94
96
  onChange,
95
97
  readOnly,
96
98
  name: inputGroupName,
97
- inactive
99
+ inactive,
100
+ ...rest
98
101
  }, ref) => {
99
102
  const viewport = (0, _ViewportProvider.useViewport)();
100
103
  const {
@@ -149,6 +152,7 @@ const RadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
149
152
  inactive: inactive,
150
153
  validation: validation,
151
154
  accessibilityRole: "radiogroup",
155
+ ...selectProps(rest),
152
156
  children: (0, _StackView.getStackedContent)(radios, {
153
157
  space,
154
158
  direction: 'column'
@@ -156,7 +160,8 @@ const RadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
156
160
  });
157
161
  });
158
162
  RadioGroup.displayName = 'RadioGroup';
159
- RadioGroup.propTypes = {
163
+ RadioGroup.propTypes = { ...selectedSystemPropTypes,
164
+
160
165
  /**
161
166
  * Optional theme token overrides for the outer RadioGroup component
162
167
  */
@@ -33,6 +33,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
33
33
 
34
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
35
 
36
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
36
37
  /**
37
38
  * A Card that behaves like a radio button. Use when users select a single choice from mutually exclusive options
38
39
  * with need to show additional information for each option. The whole card is interactive as one item.
@@ -68,6 +69,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
68
69
  * accessibility role `'radio'` and accessibility state that depends on the other props (`checked`, `inactive`)
69
70
  * or the internal state in case of uncontrolled radio button.
70
71
  */
72
+
71
73
  const RadioCard = /*#__PURE__*/(0, _react.forwardRef)(({
72
74
  tokens,
73
75
  variant,
@@ -98,8 +100,6 @@ const RadioCard = /*#__PURE__*/(0, _react.forwardRef)(({
98
100
  }
99
101
  };
100
102
 
101
- const a11y = _utils.a11yProps.select(rest);
102
-
103
103
  const uniqueId = (0, _utils.useUniqueId)('RadioCard');
104
104
  const inputId = id ?? uniqueId;
105
105
  const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('RadioCard', tokens, variant);
@@ -117,7 +117,7 @@ const RadioCard = /*#__PURE__*/(0, _react.forwardRef)(({
117
117
  checked: isChecked,
118
118
  disabled: inactive
119
119
  },
120
- ...a11y,
120
+ ...selectProps(rest),
121
121
  children: cardState => {
122
122
  const {
123
123
  radioSpace,
@@ -161,7 +161,7 @@ const RadioCard = /*#__PURE__*/(0, _react.forwardRef)(({
161
161
  });
162
162
  });
163
163
  RadioCard.displayName = 'RadioCard';
164
- RadioCard.propTypes = { ..._utils.a11yProps.propTypes,
164
+ RadioCard.propTypes = { ...selectedSystemPropTypes,
165
165
 
166
166
  /**
167
167
  * Content to be displayed at the top of the card alongside the radio button
@@ -29,6 +29,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
29
 
30
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
32
33
  /**
33
34
  * A group of Cards that behave as a radio button group. Use when users select a single choice from mutually
34
35
  * exclusive options with need to show additional information for each option. The whole cards are each
@@ -79,6 +80,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
79
80
  * />
80
81
  * ```
81
82
  */
83
+
82
84
  const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
83
85
  tokens,
84
86
  radioCardTokens,
@@ -94,7 +96,8 @@ const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
94
96
  onChange,
95
97
  readOnly,
96
98
  name: inputGroupName,
97
- inactive
99
+ inactive,
100
+ ...rest
98
101
  }, ref) => {
99
102
  const viewport = (0, _ViewportProvider.useViewport)();
100
103
  const {
@@ -128,9 +131,8 @@ const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
128
131
  inactive: inactive || readOnly,
129
132
  validation: validation,
130
133
  accessibilityRole: "radiogroup",
131
- children: ({
132
- a11yProps
133
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(StackContainer, {
134
+ ...selectProps(rest),
135
+ children: props => /*#__PURE__*/(0, _jsxRuntime.jsx)(StackContainer, {
134
136
  space: space,
135
137
  accessibilityRole: "radiogroup",
136
138
  children: items.map(({
@@ -156,7 +158,7 @@ const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
156
158
  tokens: radioCardTokens,
157
159
  variant: variant,
158
160
  readOnly: readOnly,
159
- ...a11yProps,
161
+ ...props,
160
162
  children: content
161
163
  }, cardId);
162
164
  })
@@ -164,7 +166,8 @@ const RadioCardGroup = /*#__PURE__*/(0, _react.forwardRef)(({
164
166
  });
165
167
  });
166
168
  RadioCardGroup.displayName = 'RadioCardGroup';
167
- RadioCardGroup.propTypes = {
169
+ RadioCardGroup.propTypes = { ...selectedSystemPropTypes,
170
+
168
171
  /**
169
172
  * Optional theme token overrides for the outer RadioCardGroup component
170
173
  */
@@ -35,6 +35,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
35
 
36
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
37
 
38
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
39
+
38
40
  const selectInputTokens = ({
39
41
  searchTokens,
40
42
  buttonTokens,
@@ -97,7 +99,8 @@ const Search = /*#__PURE__*/(0, _react.forwardRef)(({
97
99
  accessibilityLabel,
98
100
  copy = 'en',
99
101
  tokens,
100
- variant
102
+ variant,
103
+ ...rest
101
104
  }, ref) => {
102
105
  const [value, setValue] = (0, _react.useState)(initialValue);
103
106
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Search', tokens, variant);
@@ -138,6 +141,7 @@ const Search = /*#__PURE__*/(0, _react.forwardRef)(({
138
141
  const isEmpty = value === '';
139
142
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
140
143
  style: staticStyles.container,
144
+ ...selectProps(rest),
141
145
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, {
142
146
  ref: ref,
143
147
  tokens: appearances => selectInputTokens({
@@ -186,7 +190,8 @@ const Search = /*#__PURE__*/(0, _react.forwardRef)(({
186
190
  });
187
191
  });
188
192
  Search.displayName = 'Search';
189
- Search.propTypes = {
193
+ Search.propTypes = { ...selectedSystemPropTypes,
194
+
190
195
  /**
191
196
  * Use this to set the initial value of the search input.
192
197
  * Updating `initialValue` will **not** update the actual value.
@@ -23,8 +23,6 @@ var _Picker = _interopRequireDefault(require("./Picker"));
23
23
 
24
24
  var _InputSupports = _interopRequireDefault(require("../InputSupports"));
25
25
 
26
- var _propTypes2 = _interopRequireDefault(require("../InputSupports/propTypes"));
27
-
28
26
  var _jsxRuntime = require("react/jsx-runtime");
29
27
 
30
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -33,6 +31,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
33
31
 
34
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
33
 
34
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.inputSupportsProps, _utils.viewProps]);
35
+
36
36
  const selectInputStyles = ({
37
37
  backgroundColor,
38
38
  color,
@@ -221,9 +221,9 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)(({
221
221
  const handleMouseOut = () => setIsHovered(false);
222
222
 
223
223
  const {
224
- props: supportsProps
225
- } = _propTypes2.default.select(rest);
226
-
224
+ props: supportsProps,
225
+ ...selectedProps
226
+ } = selectProps(rest);
227
227
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('Select', tokens, variant, {
228
228
  focus: isFocused,
229
229
  hover: isHovered,
@@ -235,9 +235,10 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)(({
235
235
  validationIcon: ValidationIconComponent
236
236
  } = themeTokens;
237
237
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
238
+ ...selectedProps,
238
239
  children: ({
239
- a11yProps,
240
- inputId
240
+ inputId,
241
+ ...props
241
242
  }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
242
243
  style: selectOuterBorderStyles(themeTokens),
243
244
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.default, {
@@ -254,7 +255,7 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)(({
254
255
  label: placeholder,
255
256
  value: ''
256
257
  } : undefined,
257
- ...a11yProps,
258
+ ...props,
258
259
  nativeID: inputId,
259
260
  testID: testID,
260
261
  children: children
@@ -277,7 +278,7 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)(({
277
278
  });
278
279
  });
279
280
  Select.displayName = 'Select';
280
- Select.propTypes = { ..._propTypes2.default.types,
281
+ Select.propTypes = { ...selectedSystemPropTypes,
281
282
 
282
283
  /**
283
284
  * Initial value for the uncontrolled version.
@@ -25,6 +25,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
25
 
26
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
27
 
28
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.linkProps, _utils.viewProps]);
29
+
28
30
  function selectItemStyles({
29
31
  backgroundColor,
30
32
  borderColor,
@@ -78,14 +80,13 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)(({
78
80
  rest
79
81
  } = _utils.hrefAttrsProp.bundle(props);
80
82
 
81
- const linkPropSet = _utils.linkProps.select({
83
+ const selectedProps = selectProps({
82
84
  accessibilityRole,
83
85
  href,
84
86
  onPress: handlePress,
85
87
  hrefAttrs,
86
88
  ...rest
87
89
  });
88
-
89
90
  const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItem', tokens, variant);
90
91
 
91
92
  const getAppearanceState = ({
@@ -101,11 +102,10 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)(({
101
102
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
102
103
  ref: ref,
103
104
  style: getPressableStyle,
104
- ...linkPropSet,
105
105
  accessibilityState: {
106
106
  selected: isActive
107
107
  },
108
- testID: testID,
108
+ ...selectedProps,
109
109
  children: pressableState => {
110
110
  const themeTokens = getTokens(getAppearanceState(pressableState));
111
111
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ItemContent.default, {
@@ -116,7 +116,8 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)(({
116
116
  });
117
117
  });
118
118
  Item.displayName = 'Item';
119
- Item.propTypes = {
119
+ Item.propTypes = { ...selectedSystemPropTypes,
120
+
120
121
  /**
121
122
  * Text content of the `Item`.
122
123
  */
@@ -154,8 +155,7 @@ Item.propTypes = {
154
155
  */
155
156
  isExpanded: _propTypes.default.bool,
156
157
  tokens: (0, _utils.getTokensPropType)('SideNavItem'),
157
- variant: _utils.variantProp.propType,
158
- ..._utils.a11yProps.types
158
+ variant: _utils.variantProp.propType
159
159
  };
160
160
  var _default = Item;
161
161
  exports.default = _default;
@@ -34,20 +34,22 @@ function selectBorderStyles(tokens) {
34
34
  borderBottomColor: tokens.borderColor
35
35
  };
36
36
  }
37
+
38
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.viewProps]);
37
39
  /**
38
40
  ## Usage Criteria
39
41
  - Use in conjunction with a large amount of educational / informational content
40
42
  - Allow the user to navigate between options frequently and efficiently
41
43
  */
42
44
 
43
-
44
45
  const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
45
46
  children,
46
47
  variant = {},
47
48
  tokens,
48
49
  accordion = true,
49
50
  itemTokens,
50
- groupTokens
51
+ groupTokens,
52
+ ...rest
51
53
  }, ref) => {
52
54
  const themeTokens = (0, _ThemeProvider.useThemeTokens)('SideNav', tokens, variant);
53
55
  const [active, setActive] = (0, _react.useState)({
@@ -70,6 +72,7 @@ const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
70
72
  ref: ref,
71
73
  maxOpen: accordion ? 1 : null,
72
74
  style: selectBorderStyles(themeTokens),
75
+ ...selectProps(rest),
73
76
  children: ({
74
77
  openIds,
75
78
  onToggle
@@ -128,7 +131,8 @@ const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
128
131
  });
129
132
  });
130
133
  SideNav.displayName = 'SideNav';
131
- SideNav.propTypes = {
134
+ SideNav.propTypes = { ...selectedSystemPropTypes,
135
+
132
136
  /**
133
137
  * Specifies the structure and links of the `SideNav`. It may only consist of `SideNav.Item` and `SideNav.ItemsGroup`.
134
138
  */