@telus-uds/components-base 1.7.1 → 1.8.2

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 (509) hide show
  1. package/CHANGELOG.md +41 -2
  2. package/component-docs.json +944 -691
  3. package/lib/A11yInfoProvider/index.js +4 -3
  4. package/lib/A11yText/index.js +6 -5
  5. package/lib/ActivityIndicator/Spinner.js +7 -6
  6. package/lib/ActivityIndicator/Spinner.native.js +8 -6
  7. package/lib/ActivityIndicator/index.js +6 -5
  8. package/lib/ActivityIndicator/shared.js +1 -1
  9. package/lib/BaseProvider/index.js +13 -10
  10. package/lib/Box/Box.js +20 -19
  11. package/lib/Button/Button.js +7 -6
  12. package/lib/Button/ButtonBase.js +95 -77
  13. package/lib/Button/ButtonGroup.js +140 -65
  14. package/lib/Button/ButtonLink.js +9 -7
  15. package/lib/Button/index.js +4 -4
  16. package/lib/Button/propTypes.js +1 -1
  17. package/lib/Card/Card.js +8 -7
  18. package/lib/Card/CardBase.js +35 -31
  19. package/lib/Card/PressableCardBase.js +14 -12
  20. package/lib/Checkbox/Checkbox.js +96 -82
  21. package/lib/Checkbox/CheckboxGroup.js +30 -28
  22. package/lib/Checkbox/CheckboxInput.js +12 -10
  23. package/lib/Divider/Divider.js +8 -7
  24. package/lib/ExpandCollapse/Control.js +42 -36
  25. package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
  26. package/lib/ExpandCollapse/Panel.js +29 -24
  27. package/lib/Feedback/Feedback.js +48 -35
  28. package/lib/Fieldset/Fieldset.js +22 -14
  29. package/lib/Fieldset/FieldsetContainer.js +16 -13
  30. package/lib/Fieldset/FieldsetContainer.native.js +11 -8
  31. package/lib/Fieldset/Legend.js +10 -7
  32. package/lib/Fieldset/Legend.native.js +10 -7
  33. package/lib/FlexGrid/Col/Col.js +17 -16
  34. package/lib/FlexGrid/FlexGrid.js +15 -14
  35. package/lib/FlexGrid/Row/Row.js +13 -12
  36. package/lib/HorizontalScroll/HorizontalScroll.js +25 -20
  37. package/lib/HorizontalScroll/HorizontalScrollButton.js +18 -14
  38. package/lib/HorizontalScroll/ScrollViewEnd.js +6 -5
  39. package/lib/HorizontalScroll/ScrollViewEnd.native.js +12 -9
  40. package/lib/HorizontalScroll/itemPositions.js +19 -13
  41. package/lib/Icon/Icon.js +10 -9
  42. package/lib/Icon/IconText.js +8 -7
  43. package/lib/Icon/index.js +5 -5
  44. package/lib/IconButton/IconButton.js +50 -42
  45. package/lib/InputLabel/InputLabel.js +44 -30
  46. package/lib/InputLabel/LabelContent.js +12 -9
  47. package/lib/InputLabel/LabelContent.native.js +9 -6
  48. package/lib/InputSupports/InputSupports.js +17 -9
  49. package/lib/InputSupports/useInputSupports.js +7 -6
  50. package/lib/Link/ChevronLink.js +9 -8
  51. package/lib/Link/InlinePressable.js +13 -10
  52. package/lib/Link/InlinePressable.native.js +20 -16
  53. package/lib/Link/Link.js +10 -9
  54. package/lib/Link/LinkBase.js +96 -78
  55. package/lib/Link/TextButton.js +9 -8
  56. package/lib/List/List.js +9 -7
  57. package/lib/List/ListItem.js +99 -74
  58. package/lib/Modal/Modal.js +72 -59
  59. package/lib/Notification/Notification.js +47 -34
  60. package/lib/Pagination/PageButton.js +11 -10
  61. package/lib/Pagination/Pagination.js +39 -28
  62. package/lib/Pagination/SideButton.js +21 -18
  63. package/lib/Pagination/usePagination.js +5 -4
  64. package/lib/Progress/Progress.js +23 -19
  65. package/lib/Progress/ProgressBar.js +23 -19
  66. package/lib/Progress/ProgressBarBackground.js +4 -3
  67. package/lib/Radio/Radio.js +79 -68
  68. package/lib/Radio/RadioButton.js +63 -53
  69. package/lib/Radio/RadioGroup.js +39 -30
  70. package/lib/Radio/RadioInput.js +12 -10
  71. package/lib/RadioCard/RadioCard.js +15 -14
  72. package/lib/RadioCard/RadioCardGroup.js +34 -25
  73. package/lib/Search/Search.js +52 -32
  74. package/lib/Select/Group.js +5 -4
  75. package/lib/Select/Group.native.js +4 -3
  76. package/lib/Select/Item.js +10 -7
  77. package/lib/Select/Item.native.js +1 -9
  78. package/lib/Select/Picker.js +16 -15
  79. package/lib/Select/Picker.native.js +49 -38
  80. package/lib/Select/Select.js +134 -113
  81. package/lib/SideNav/Item.js +39 -33
  82. package/lib/SideNav/ItemContent.js +15 -12
  83. package/lib/SideNav/ItemsGroup.js +13 -11
  84. package/lib/SideNav/SideNav.js +19 -16
  85. package/lib/Skeleton/Skeleton.js +106 -44
  86. package/lib/Skeleton/skeleton.constant.js +1 -1
  87. package/lib/Spacer/Spacer.js +6 -5
  88. package/lib/StackView/StackView.js +12 -11
  89. package/lib/StackView/StackWrap.js +2 -2
  90. package/lib/StackView/StackWrapBox.js +12 -11
  91. package/lib/StackView/StackWrapGap.js +11 -10
  92. package/lib/StackView/common.js +14 -11
  93. package/lib/StackView/getStackedContent.js +8 -7
  94. package/lib/StackView/index.js +1 -1
  95. package/lib/StepTracker/Step.js +122 -103
  96. package/lib/StepTracker/StepTracker.js +48 -38
  97. package/lib/Tabs/Tabs.js +29 -24
  98. package/lib/Tabs/TabsItem.js +79 -68
  99. package/lib/Tags/Tags.js +67 -61
  100. package/lib/TextInput/TextArea.js +26 -20
  101. package/lib/TextInput/TextInput.js +20 -15
  102. package/lib/TextInput/TextInputBase.js +74 -62
  103. package/lib/TextInput/index.js +4 -4
  104. package/lib/ThemeProvider/ThemeProvider.js +6 -5
  105. package/lib/ThemeProvider/index.js +5 -5
  106. package/lib/ThemeProvider/useSetTheme.js +6 -3
  107. package/lib/ThemeProvider/useThemeTokens.js +7 -2
  108. package/lib/ThemeProvider/utils/styles.js +48 -41
  109. package/lib/ThemeProvider/utils/theme-tokens.js +26 -12
  110. package/lib/ToggleSwitch/ToggleSwitch.js +95 -72
  111. package/lib/ToggleSwitch/ToggleSwitchGroup.js +42 -33
  112. package/lib/Tooltip/Backdrop.js +4 -3
  113. package/lib/Tooltip/Backdrop.native.js +5 -4
  114. package/lib/Tooltip/Tooltip.js +82 -66
  115. package/lib/Tooltip/getTooltipPosition.js +29 -18
  116. package/lib/TooltipButton/TooltipButton.js +28 -21
  117. package/lib/Typography/Typography.js +37 -33
  118. package/lib/ViewportProvider/ViewportProvider.js +4 -3
  119. package/lib/ViewportProvider/useViewportListener.js +6 -3
  120. package/lib/index.js +54 -54
  121. package/lib/utils/a11y/semantics.js +5 -2
  122. package/lib/utils/a11y/textSize.js +8 -6
  123. package/lib/utils/animation/useVerticalExpandAnimation.js +32 -18
  124. package/lib/utils/children.js +2 -1
  125. package/lib/utils/index.js +10 -10
  126. package/lib/utils/input.js +22 -17
  127. package/lib/utils/pressability.js +36 -22
  128. package/lib/utils/props/clickProps.js +2 -1
  129. package/lib/utils/props/getPropSelector.js +6 -3
  130. package/lib/utils/props/handlerProps.js +25 -19
  131. package/lib/utils/props/hrefAttrsProp.js +14 -11
  132. package/lib/utils/props/index.js +12 -12
  133. package/lib/utils/props/inputSupportsProps.js +21 -11
  134. package/lib/utils/props/linkProps.js +7 -6
  135. package/lib/utils/props/pressProps.js +1 -1
  136. package/lib/utils/props/tokens.js +27 -13
  137. package/lib/utils/ssr.js +6 -2
  138. package/lib/utils/useCopy.js +6 -4
  139. package/lib/utils/useHash.js +2 -1
  140. package/lib/utils/useResponsiveProp.js +1 -1
  141. package/lib/utils/useUniqueId.js +2 -1
  142. package/lib/utils/withLinkRouter.js +6 -5
  143. package/package.json +18 -12
  144. package/src/Button/ButtonGroup.jsx +106 -41
  145. package/src/Checkbox/Checkbox.jsx +7 -4
  146. package/src/Checkbox/CheckboxGroup.jsx +3 -3
  147. package/src/ExpandCollapse/Panel.jsx +3 -1
  148. package/src/Fieldset/Fieldset.jsx +6 -0
  149. package/src/InputLabel/InputLabel.jsx +17 -2
  150. package/src/InputSupports/InputSupports.jsx +9 -1
  151. package/src/Notification/Notification.jsx +1 -1
  152. package/src/Pagination/Pagination.jsx +3 -0
  153. package/src/Radio/Radio.jsx +5 -1
  154. package/src/Radio/RadioGroup.jsx +11 -5
  155. package/src/RadioCard/RadioCard.jsx +5 -1
  156. package/src/RadioCard/RadioCardGroup.jsx +6 -0
  157. package/src/Search/Search.jsx +12 -1
  158. package/src/Select/Item.native.jsx +0 -7
  159. package/src/Skeleton/Skeleton.jsx +56 -3
  160. package/src/ToggleSwitch/ToggleSwitch.jsx +6 -0
  161. package/src/ToggleSwitch/ToggleSwitchGroup.jsx +6 -0
  162. package/src/Tooltip/Tooltip.jsx +1 -1
  163. package/src/utils/animation/useVerticalExpandAnimation.js +25 -12
  164. package/src/utils/props/inputSupportsProps.js +6 -1
  165. package/src/utils/props/tokens.js +21 -19
  166. package/.storybook/main.js +0 -4
  167. package/.storybook/preview.js +0 -37
  168. package/.turbo/turbo-build.log +0 -8
  169. package/.turbo/turbo-lint.log +0 -13
  170. package/CHANGELOG.json +0 -250
  171. package/__fixtures__/Accessible.js +0 -35
  172. package/__fixtures__/Accessible.native.js +0 -35
  173. package/__fixtures__/Theme.jsx +0 -13
  174. package/__fixtures__/Viewport.jsx +0 -17
  175. package/__fixtures__/test-utils.js +0 -25
  176. package/__fixtures__/testTheme.js +0 -1830
  177. package/__tests__/A11yText/A11yText.test.jsx +0 -34
  178. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +0 -68
  179. package/__tests__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +0 -287
  180. package/__tests__/Box/Box.test.jsx +0 -111
  181. package/__tests__/Button/Button.test.jsx +0 -86
  182. package/__tests__/Button/ButtonBase.test.jsx +0 -82
  183. package/__tests__/Button/ButtonGroup.test.jsx +0 -347
  184. package/__tests__/Button/ButtonLink.test.jsx +0 -61
  185. package/__tests__/Card/Card.test.jsx +0 -63
  186. package/__tests__/Checkbox/Checkbox.test.jsx +0 -94
  187. package/__tests__/Checkbox/CheckboxGroup.test.jsx +0 -246
  188. package/__tests__/Divider/Divider.test.jsx +0 -91
  189. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +0 -109
  190. package/__tests__/Feedback/Feedback.test.jsx +0 -42
  191. package/__tests__/FlexGrid/Col.test.jsx +0 -256
  192. package/__tests__/FlexGrid/FlexGrid.test.jsx +0 -136
  193. package/__tests__/FlexGrid/Row.test.jsx +0 -273
  194. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +0 -165
  195. package/__tests__/Icon/Icon.test.jsx +0 -61
  196. package/__tests__/IconButton/IconButton.test.jsx +0 -52
  197. package/__tests__/InputSupports/InputSupports.test.jsx +0 -50
  198. package/__tests__/Link/Link.test.jsx +0 -63
  199. package/__tests__/Link/TextButton.test.jsx +0 -35
  200. package/__tests__/List/List.test.jsx +0 -60
  201. package/__tests__/Modal/Modal.test.jsx +0 -47
  202. package/__tests__/Notification/Notification.test.jsx +0 -20
  203. package/__tests__/Pagination/Pagination.test.jsx +0 -160
  204. package/__tests__/Progress/Progress.test.jsx +0 -79
  205. package/__tests__/Radio/Radio.test.jsx +0 -87
  206. package/__tests__/Radio/RadioGroup.test.jsx +0 -220
  207. package/__tests__/RadioCard/RadioCard.test.jsx +0 -87
  208. package/__tests__/RadioCard/RadioCardGroup.test.jsx +0 -246
  209. package/__tests__/Search/Search.test.jsx +0 -73
  210. package/__tests__/Select/Select.test.jsx +0 -94
  211. package/__tests__/SideNav/SideNav.test.jsx +0 -110
  212. package/__tests__/Skeleton/Skeleton.test.jsx +0 -61
  213. package/__tests__/Spacer/Spacer.test.jsx +0 -63
  214. package/__tests__/StackView/StackView.test.jsx +0 -216
  215. package/__tests__/StackView/StackWrap.test.jsx +0 -47
  216. package/__tests__/StackView/getStackedContent.test.jsx +0 -295
  217. package/__tests__/StepTracker/StepTracker.test.jsx +0 -94
  218. package/__tests__/Tabs/Tabs.test.jsx +0 -40
  219. package/__tests__/Tags/Tags.test.jsx +0 -327
  220. package/__tests__/TextInput/TextArea.test.jsx +0 -35
  221. package/__tests__/TextInput/TextInputBase.test.jsx +0 -125
  222. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +0 -77
  223. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +0 -514
  224. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +0 -41
  225. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +0 -82
  226. package/__tests__/ToggleSwitch/ToggleSwitchGroup.test.jsx +0 -192
  227. package/__tests__/Tooltip/Tooltip.test.jsx +0 -65
  228. package/__tests__/Tooltip/getTooltipPosition.test.js +0 -79
  229. package/__tests__/Typography/typography.test.jsx +0 -90
  230. package/__tests__/utils/children.test.jsx +0 -128
  231. package/__tests__/utils/containUniqueFields.test.js +0 -25
  232. package/__tests__/utils/input.test.js +0 -375
  233. package/__tests__/utils/props.test.js +0 -36
  234. package/__tests__/utils/semantics.test.jsx +0 -34
  235. package/__tests__/utils/useCopy.test.js +0 -42
  236. package/__tests__/utils/useResponsiveProp.test.jsx +0 -202
  237. package/__tests__/utils/useSpacingScale.test.jsx +0 -273
  238. package/__tests__/utils/useUniqueId.test.js +0 -31
  239. package/babel.config.js +0 -35
  240. package/generate-component-docs.js +0 -72
  241. package/jest.config.js +0 -32
  242. package/lib-module/A11yInfoProvider/index.js +0 -62
  243. package/lib-module/A11yText/index.js +0 -55
  244. package/lib-module/ActivityIndicator/Spinner.js +0 -76
  245. package/lib-module/ActivityIndicator/Spinner.native.js +0 -143
  246. package/lib-module/ActivityIndicator/index.js +0 -40
  247. package/lib-module/ActivityIndicator/shared.js +0 -12
  248. package/lib-module/BaseProvider/index.js +0 -26
  249. package/lib-module/Box/Box.js +0 -243
  250. package/lib-module/Box/index.js +0 -2
  251. package/lib-module/Button/Button.js +0 -25
  252. package/lib-module/Button/ButtonBase.js +0 -254
  253. package/lib-module/Button/ButtonGroup.js +0 -173
  254. package/lib-module/Button/ButtonLink.js +0 -39
  255. package/lib-module/Button/index.js +0 -4
  256. package/lib-module/Button/propTypes.js +0 -36
  257. package/lib-module/Card/Card.js +0 -83
  258. package/lib-module/Card/CardBase.js +0 -62
  259. package/lib-module/Card/PressableCardBase.js +0 -113
  260. package/lib-module/Card/index.js +0 -4
  261. package/lib-module/Checkbox/Checkbox.js +0 -332
  262. package/lib-module/Checkbox/CheckboxGroup.js +0 -231
  263. package/lib-module/Checkbox/CheckboxInput.js +0 -58
  264. package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
  265. package/lib-module/Checkbox/index.js +0 -3
  266. package/lib-module/Divider/Divider.js +0 -123
  267. package/lib-module/Divider/index.js +0 -2
  268. package/lib-module/ExpandCollapse/Accordion.js +0 -15
  269. package/lib-module/ExpandCollapse/Control.js +0 -130
  270. package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -94
  271. package/lib-module/ExpandCollapse/Panel.js +0 -158
  272. package/lib-module/ExpandCollapse/index.js +0 -7
  273. package/lib-module/Feedback/Feedback.js +0 -144
  274. package/lib-module/Feedback/index.js +0 -2
  275. package/lib-module/Fieldset/Fieldset.js +0 -145
  276. package/lib-module/Fieldset/FieldsetContainer.js +0 -29
  277. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -20
  278. package/lib-module/Fieldset/Legend.js +0 -21
  279. package/lib-module/Fieldset/Legend.native.js +0 -28
  280. package/lib-module/Fieldset/cssReset.js +0 -14
  281. package/lib-module/Fieldset/index.js +0 -2
  282. package/lib-module/FlexGrid/Col/Col.js +0 -275
  283. package/lib-module/FlexGrid/Col/index.js +0 -2
  284. package/lib-module/FlexGrid/FlexGrid.js +0 -147
  285. package/lib-module/FlexGrid/Row/Row.js +0 -183
  286. package/lib-module/FlexGrid/Row/index.js +0 -2
  287. package/lib-module/FlexGrid/helpers/index.js +0 -18
  288. package/lib-module/FlexGrid/index.js +0 -2
  289. package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
  290. package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -170
  291. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -77
  292. package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -47
  293. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -24
  294. package/lib-module/HorizontalScroll/dictionary.js +0 -11
  295. package/lib-module/HorizontalScroll/index.js +0 -11
  296. package/lib-module/HorizontalScroll/itemPositions.js +0 -106
  297. package/lib-module/Icon/Icon.js +0 -61
  298. package/lib-module/Icon/IconText.js +0 -81
  299. package/lib-module/Icon/index.js +0 -4
  300. package/lib-module/IconButton/IconButton.js +0 -115
  301. package/lib-module/IconButton/index.js +0 -2
  302. package/lib-module/InputLabel/InputLabel.js +0 -134
  303. package/lib-module/InputLabel/LabelContent.js +0 -24
  304. package/lib-module/InputLabel/LabelContent.native.js +0 -16
  305. package/lib-module/InputLabel/index.js +0 -2
  306. package/lib-module/InputSupports/InputSupports.js +0 -88
  307. package/lib-module/InputSupports/index.js +0 -2
  308. package/lib-module/InputSupports/useInputSupports.js +0 -31
  309. package/lib-module/Link/ChevronLink.js +0 -51
  310. package/lib-module/Link/InlinePressable.js +0 -37
  311. package/lib-module/Link/InlinePressable.native.js +0 -85
  312. package/lib-module/Link/Link.js +0 -27
  313. package/lib-module/Link/LinkBase.js +0 -223
  314. package/lib-module/Link/TextButton.js +0 -34
  315. package/lib-module/Link/index.js +0 -5
  316. package/lib-module/List/List.js +0 -55
  317. package/lib-module/List/ListItem.js +0 -223
  318. package/lib-module/List/index.js +0 -5
  319. package/lib-module/Modal/Modal.js +0 -208
  320. package/lib-module/Modal/dictionary.js +0 -9
  321. package/lib-module/Modal/index.js +0 -2
  322. package/lib-module/Notification/Notification.js +0 -196
  323. package/lib-module/Notification/dictionary.js +0 -8
  324. package/lib-module/Notification/index.js +0 -2
  325. package/lib-module/Pagination/PageButton.js +0 -65
  326. package/lib-module/Pagination/Pagination.js +0 -140
  327. package/lib-module/Pagination/SideButton.js +0 -103
  328. package/lib-module/Pagination/dictionary.js +0 -18
  329. package/lib-module/Pagination/index.js +0 -2
  330. package/lib-module/Pagination/usePagination.js +0 -72
  331. package/lib-module/Progress/Progress.js +0 -85
  332. package/lib-module/Progress/ProgressBar.js +0 -134
  333. package/lib-module/Progress/ProgressBarBackground.js +0 -41
  334. package/lib-module/Progress/index.js +0 -4
  335. package/lib-module/Radio/Radio.js +0 -274
  336. package/lib-module/Radio/RadioButton.js +0 -128
  337. package/lib-module/Radio/RadioGroup.js +0 -234
  338. package/lib-module/Radio/RadioInput.js +0 -60
  339. package/lib-module/Radio/RadioInput.native.js +0 -6
  340. package/lib-module/Radio/index.js +0 -3
  341. package/lib-module/RadioCard/RadioCard.js +0 -218
  342. package/lib-module/RadioCard/RadioCardGroup.js +0 -241
  343. package/lib-module/RadioCard/index.js +0 -3
  344. package/lib-module/Search/Search.js +0 -241
  345. package/lib-module/Search/dictionary.js +0 -12
  346. package/lib-module/Search/index.js +0 -2
  347. package/lib-module/Select/Group.js +0 -20
  348. package/lib-module/Select/Group.native.js +0 -14
  349. package/lib-module/Select/Item.js +0 -17
  350. package/lib-module/Select/Item.native.js +0 -9
  351. package/lib-module/Select/Picker.js +0 -67
  352. package/lib-module/Select/Picker.native.js +0 -110
  353. package/lib-module/Select/Select.js +0 -316
  354. package/lib-module/Select/index.js +0 -6
  355. package/lib-module/SideNav/Item.js +0 -139
  356. package/lib-module/SideNav/ItemContent.js +0 -45
  357. package/lib-module/SideNav/ItemsGroup.js +0 -115
  358. package/lib-module/SideNav/SideNav.js +0 -133
  359. package/lib-module/SideNav/index.js +0 -1
  360. package/lib-module/Skeleton/Skeleton.js +0 -117
  361. package/lib-module/Skeleton/index.js +0 -2
  362. package/lib-module/Skeleton/skeleton.constant.js +0 -3
  363. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
  364. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -24
  365. package/lib-module/Spacer/Spacer.js +0 -97
  366. package/lib-module/Spacer/index.js +0 -2
  367. package/lib-module/StackView/StackView.js +0 -124
  368. package/lib-module/StackView/StackWrap.js +0 -48
  369. package/lib-module/StackView/StackWrap.native.js +0 -3
  370. package/lib-module/StackView/StackWrapBox.js +0 -114
  371. package/lib-module/StackView/StackWrapGap.js +0 -58
  372. package/lib-module/StackView/common.js +0 -32
  373. package/lib-module/StackView/getStackedContent.js +0 -123
  374. package/lib-module/StackView/index.js +0 -5
  375. package/lib-module/StepTracker/Step.js +0 -229
  376. package/lib-module/StepTracker/StepTracker.js +0 -175
  377. package/lib-module/StepTracker/dictionary.js +0 -10
  378. package/lib-module/StepTracker/index.js +0 -2
  379. package/lib-module/Tabs/Tabs.js +0 -113
  380. package/lib-module/Tabs/TabsItem.js +0 -215
  381. package/lib-module/Tabs/index.js +0 -2
  382. package/lib-module/Tags/Tags.js +0 -245
  383. package/lib-module/Tags/index.js +0 -2
  384. package/lib-module/TextInput/TextArea.js +0 -88
  385. package/lib-module/TextInput/TextInput.js +0 -68
  386. package/lib-module/TextInput/TextInputBase.js +0 -233
  387. package/lib-module/TextInput/index.js +0 -3
  388. package/lib-module/TextInput/propTypes.js +0 -37
  389. package/lib-module/ThemeProvider/ThemeProvider.js +0 -35
  390. package/lib-module/ThemeProvider/index.js +0 -6
  391. package/lib-module/ThemeProvider/useSetTheme.js +0 -22
  392. package/lib-module/ThemeProvider/useTheme.js +0 -14
  393. package/lib-module/ThemeProvider/useThemeTokens.js +0 -105
  394. package/lib-module/ThemeProvider/utils/index.js +0 -2
  395. package/lib-module/ThemeProvider/utils/styles.js +0 -174
  396. package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -151
  397. package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -227
  398. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -211
  399. package/lib-module/ToggleSwitch/index.js +0 -3
  400. package/lib-module/Tooltip/Backdrop.js +0 -52
  401. package/lib-module/Tooltip/Backdrop.native.js +0 -43
  402. package/lib-module/Tooltip/Tooltip.js +0 -332
  403. package/lib-module/Tooltip/dictionary.js +0 -8
  404. package/lib-module/Tooltip/getTooltipPosition.js +0 -164
  405. package/lib-module/Tooltip/index.js +0 -2
  406. package/lib-module/TooltipButton/TooltipButton.js +0 -71
  407. package/lib-module/TooltipButton/index.js +0 -2
  408. package/lib-module/Typography/Typography.js +0 -120
  409. package/lib-module/Typography/index.js +0 -2
  410. package/lib-module/ViewportProvider/ViewportProvider.js +0 -28
  411. package/lib-module/ViewportProvider/index.js +0 -3
  412. package/lib-module/ViewportProvider/useViewport.js +0 -3
  413. package/lib-module/ViewportProvider/useViewportListener.js +0 -43
  414. package/lib-module/index.js +0 -48
  415. package/lib-module/utils/a11y/index.js +0 -2
  416. package/lib-module/utils/a11y/semantics.js +0 -154
  417. package/lib-module/utils/a11y/textSize.js +0 -34
  418. package/lib-module/utils/animation/index.js +0 -2
  419. package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -49
  420. package/lib-module/utils/children.js +0 -118
  421. package/lib-module/utils/containUniqueFields.js +0 -26
  422. package/lib-module/utils/index.js +0 -16
  423. package/lib-module/utils/info/index.js +0 -7
  424. package/lib-module/utils/info/platform/index.js +0 -11
  425. package/lib-module/utils/info/platform/platform.android.js +0 -1
  426. package/lib-module/utils/info/platform/platform.ios.js +0 -1
  427. package/lib-module/utils/info/platform/platform.js +0 -1
  428. package/lib-module/utils/info/platform/platform.native.js +0 -4
  429. package/lib-module/utils/info/versions.js +0 -5
  430. package/lib-module/utils/input.js +0 -180
  431. package/lib-module/utils/pressability.js +0 -97
  432. package/lib-module/utils/props/a11yProps.js +0 -140
  433. package/lib-module/utils/props/clickProps.js +0 -25
  434. package/lib-module/utils/props/componentPropType.js +0 -63
  435. package/lib-module/utils/props/copyPropTypes.js +0 -2
  436. package/lib-module/utils/props/getPropSelector.js +0 -6
  437. package/lib-module/utils/props/handlerProps.js +0 -59
  438. package/lib-module/utils/props/hrefAttrsProp.js +0 -30
  439. package/lib-module/utils/props/index.js +0 -19
  440. package/lib-module/utils/props/inputSupportsProps.js +0 -52
  441. package/lib-module/utils/props/linkProps.js +0 -43
  442. package/lib-module/utils/props/paddingProp.js +0 -9
  443. package/lib-module/utils/props/pressProps.js +0 -42
  444. package/lib-module/utils/props/rectProp.js +0 -9
  445. package/lib-module/utils/props/responsiveProps.js +0 -30
  446. package/lib-module/utils/props/selectSystemProps.js +0 -24
  447. package/lib-module/utils/props/spacingProps.js +0 -56
  448. package/lib-module/utils/props/textInputProps.js +0 -194
  449. package/lib-module/utils/props/textProps.js +0 -59
  450. package/lib-module/utils/props/tokens.js +0 -120
  451. package/lib-module/utils/props/variantProp.js +0 -18
  452. package/lib-module/utils/props/viewProps.js +0 -22
  453. package/lib-module/utils/ssr.js +0 -35
  454. package/lib-module/utils/useCopy.js +0 -42
  455. package/lib-module/utils/useHash.js +0 -44
  456. package/lib-module/utils/useHash.native.js +0 -7
  457. package/lib-module/utils/useResponsiveProp.js +0 -47
  458. package/lib-module/utils/useSpacingScale.js +0 -123
  459. package/lib-module/utils/useUniqueId.js +0 -12
  460. package/lib-module/utils/withLinkRouter.js +0 -82
  461. package/stories/A11yText/A11yText.stories.jsx +0 -71
  462. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +0 -22
  463. package/stories/Box/Box.stories.jsx +0 -143
  464. package/stories/Button/Button.stories.jsx +0 -72
  465. package/stories/Button/ButtonGroup.stories.jsx +0 -81
  466. package/stories/Button/ButtonLink.stories.jsx +0 -30
  467. package/stories/Card/Card.stories.jsx +0 -62
  468. package/stories/Checkbox/Checkbox.stories.jsx +0 -94
  469. package/stories/Divider/Divider.stories.jsx +0 -68
  470. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +0 -112
  471. package/stories/Feedback/Feedback.stories.jsx +0 -96
  472. package/stories/FlexGrid/01 FlexGrid.stories.jsx +0 -54
  473. package/stories/FlexGrid/02 Row.stories.jsx +0 -41
  474. package/stories/FlexGrid/03 Col.stories.jsx +0 -141
  475. package/stories/Icon/Icon.stories.jsx +0 -79
  476. package/stories/IconButton/IconButton.stories.jsx +0 -50
  477. package/stories/InputLabel/InputLabel.stories.jsx +0 -39
  478. package/stories/Link/ChevronLink.stories.jsx +0 -48
  479. package/stories/Link/Link.stories.jsx +0 -90
  480. package/stories/Link/TextButton.stories.jsx +0 -79
  481. package/stories/List/List.stories.jsx +0 -117
  482. package/stories/Modal/Modal.stories.jsx +0 -54
  483. package/stories/Notification/Notification.stories.jsx +0 -82
  484. package/stories/Pagination/Pagination.stories.jsx +0 -64
  485. package/stories/Progress/Progress.stories.jsx +0 -93
  486. package/stories/Radio/Radio.stories.jsx +0 -100
  487. package/stories/RadioCard/RadioCard.stories.jsx +0 -98
  488. package/stories/Search/Search.stories.jsx +0 -66
  489. package/stories/Select/Select.stories.jsx +0 -55
  490. package/stories/SideNav/SideNav.stories.jsx +0 -42
  491. package/stories/SideNav/SideNavItem.stories.jsx +0 -9
  492. package/stories/SideNav/SideNavItemsGroup.stories.jsx +0 -17
  493. package/stories/Skeleton/Skeleton.stories.jsx +0 -36
  494. package/stories/Spacer/Spacer.stories.jsx +0 -38
  495. package/stories/StackView/StackView.stories.jsx +0 -75
  496. package/stories/StackView/StackWrap.stories.jsx +0 -64
  497. package/stories/StepTracker/StepTracker.stories.jsx +0 -71
  498. package/stories/Tabs/Tabs.stories.jsx +0 -97
  499. package/stories/Tags/Tags.stories.jsx +0 -69
  500. package/stories/TextInput/TextArea.stories.jsx +0 -101
  501. package/stories/TextInput/TextInput.stories.jsx +0 -141
  502. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +0 -64
  503. package/stories/ToggleSwitch/ToggleSwitchGroup.stories.jsx +0 -81
  504. package/stories/Tooltip/Tooltip.stories.jsx +0 -81
  505. package/stories/TooltipButton/TooltipButton.stories.jsx +0 -11
  506. package/stories/Typography/Typography.stories.jsx +0 -49
  507. package/stories/platform-supports.jsx +0 -32
  508. package/stories/platform-supports.native.jsx +0 -3
  509. package/stories/supports.jsx +0 -236
@@ -1,180 +0,0 @@
1
- import { useCallback, useRef, useState } from 'react';
2
- /**
3
- * @typedef {import('react').SyntheticEvent} Event
4
- */
5
-
6
- const pluralHooks = ['useMultipleInputValues'];
7
-
8
- const validateProps = ({
9
- value,
10
- onChange,
11
- readOnly,
12
- initialValue
13
- }, {
14
- isCurrentlyControlled,
15
- isControlled
16
- }, hookName) => {
17
- const s = pluralHooks.includes(hookName) ? 's' : '';
18
-
19
- const usageError = error => {
20
- // Errors inside hooks in React Native get incomplete stack traces pointing at parent component only.
21
- // Help devs out by telling them exactly which hook threw the error as well as why.
22
- throw new Error(`${hookName} ${error}.
23
-
24
- Consumers of this hook must be one of:
25
- 1. An "uncontrolled" component responding directly to user actions, with an optional \`initialValue${s}\` but no \`value${s}\` prop,
26
- 2. A "controlled" component where an always-defined \`value${s}\` prop is managed by an \`onChange\` handler, with no \`initialValue${s}\`,
27
- 3. A "read-only" component, with \`readOnly\` prop set as \`true\`.
28
- `);
29
- };
30
-
31
- if (value && !onChange && !readOnly) {
32
- usageError(`has \`value${s}\` prop without \`onChange\` or \`readOnly\``);
33
- }
34
-
35
- if (initialValue && value) {
36
- usageError(`has both \`initialValue${s}\` and \`value${s}\``);
37
- }
38
-
39
- if (isControlled && !isCurrentlyControlled) {
40
- usageError(`stopped receiving \`value${s}\` from parent after delegating state management`);
41
- }
42
-
43
- if (!isControlled && isCurrentlyControlled) {
44
- usageError(`started receiving \`value${s}\` from parent after starting managing own state`);
45
- }
46
- };
47
- /**
48
- * Hook used for controlling the input state of input components that have a singular value.
49
- * If `value` prop is passed in, this delegates state management to a parent using a passed-in `onChange` prop.
50
- * If `value` prop is undefined, the hook manages its own state.
51
- *
52
- * TODO: when implementing full UDS forms, integrate validation support etc and test alongside common forms
53
- * management tools such as Formik and React Hooks Form.
54
- *
55
- * @param {object} props
56
- * @param {string|number|null} [props.value] - for a controlled input, the active values as set by a parent
57
- * @param {string|number} [props.initialValue] - for an uncontrolled input, the default active values
58
- * @param {function} [props.onChange] - function called when values change (required for controlled inputs)
59
- * @param {boolean} [props.readOnly] - if true, stops the input values from changing
60
- *
61
- * @param {string} hookName - optional, used for tailoring error messages
62
- *
63
- * @returns {{
64
- * currentValue: string|number|null
65
- * setValue: (newValue: string|number|null|(oldValue: string|number) => string|number, event: Event) => void
66
- * resetValue: () => void
67
- * isControlled: bool
68
- * }}
69
- */
70
-
71
-
72
- export const useInputValue = (props = {}, hookName = 'useInputValue') => {
73
- const isCurrentlyControlled = props.value !== undefined;
74
- const [isControlled] = useState(isCurrentlyControlled);
75
- validateProps(props, {
76
- isControlled,
77
- isCurrentlyControlled
78
- }, hookName);
79
- const {
80
- value,
81
- initialValue,
82
- onChange,
83
- readOnly = false
84
- } = props;
85
- const [ownValue, setOwnValue] = useState(!isControlled && initialValue);
86
- const currentValue = isControlled ? value : ownValue; // Store the first valid value, for resetting input to default. If behaviour like Formik's `enableReinitialize`
87
- // is needed, add useEffect calling a set fn if !deepEqual(initializedValues, initialValues)
88
-
89
- const valueRef = useRef({
90
- initial: currentValue,
91
- value: currentValue
92
- }); // Make current value accessible inside useCallback without rememoizing every time the value changes
93
-
94
- valueRef.current.value = currentValue;
95
- const setValue = useCallback((arg, event) => {
96
- if (readOnly) return;
97
- const newValue = typeof arg === 'function' ? arg(valueRef.current.value) : arg;
98
- if (!isControlled) setOwnValue(newValue); // Call onChange handler if there's something for it to handle (event or a changed value)
99
-
100
- if (onChange && (event || valueRef.current.value !== newValue)) onChange(newValue, event);
101
- }, [isControlled, onChange, readOnly]);
102
- const resetValue = useCallback(event => setValue(valueRef.current.initial, event), [setValue]);
103
- return {
104
- currentValue,
105
- setValue,
106
- resetValue,
107
- isControlled
108
- };
109
- };
110
- /**
111
- * Hook used for controlling the input state of input components that have multiple named on/off states.
112
- * If `values` are passed in, this delegates state management to a parent using a passed-in `onChange` prop.
113
- * If `values` prop is not passed in, the hook manages its own state.
114
- *
115
- * TODO: when implementing full UDS forms, integrate validation support etc and test alongside common forms
116
- * management tools such as Formik and React Hooks Form.
117
- *
118
- * @param {object} props
119
- * @param {string[]|number[]} [props.values] - for a controlled input, the active values as set by a parent
120
- * @param {string[]|number[]} [props.initialValues] - for an uncontrolled input, the default active values
121
- * @param {number?} [props.maxValues] - maximum number of values that may be selected at once (no limit if null)
122
- * @param {function} [props.onChange] - function called when values change (required for controlled inputs)
123
- * @param {boolean} [props.readOnly] - if true, stops the input values from changing
124
- *
125
- * @param {string} componentName - optional, used in error messages
126
- *
127
- * @returns {{
128
- * currentValues: any
129
- * resetValues: () => void
130
- * setValues: (newValues: string[]|number[]|(oldValues: string[]|number[]) => string[]|number[], event: Event) => void
131
- * toggleOneValue: (value: string|number) => void
132
- * unsetValues: () => void
133
- * }}
134
- */
135
-
136
- export const useMultipleInputValues = ({
137
- values,
138
- initialValues,
139
- maxValues,
140
- onChange,
141
- readOnly
142
- } = {}) => {
143
- const {
144
- currentValue,
145
- setValue,
146
- resetValue
147
- } = useInputValue({
148
- readOnly,
149
- onChange,
150
- value: values,
151
- // if we're controlling our own state, always start with an array
152
- initialValue: initialValues ?? (values === undefined ? [] : undefined)
153
- }, 'useMultipleInputValues');
154
- const enforceMaxValues = useCallback(newValues => {
155
- if (!maxValues) return newValues;
156
- const excess = newValues.length - maxValues;
157
- return excess > 0 ? newValues.slice(excess) : newValues;
158
- }, [maxValues]);
159
- const currentValues = enforceMaxValues(currentValue);
160
- const setValues = useCallback((newValues, event) => {
161
- const validNewValues = enforceMaxValues(newValues);
162
- setValue(validNewValues, event);
163
- }, [setValue, enforceMaxValues]);
164
- const resetValues = resetValue;
165
- const unsetValues = useCallback(event => setValues([], event), [setValues]);
166
- const toggleOneValue = useCallback((newValue, event) => {
167
- if (readOnly) return; // This will only work with primitive values (e.g. strings, numbers), swap for .some() and
168
- // a deepEqual() function if there's any use case for toggling stored objects or arrays.
169
-
170
- const newValues = currentValues.includes(newValue) ? currentValues.filter(oldValue => oldValue !== newValue) : [...currentValues, newValue];
171
- setValues(newValues, event);
172
- }, [currentValues, readOnly, setValues]);
173
- return {
174
- currentValues,
175
- resetValues,
176
- setValues,
177
- toggleOneValue,
178
- unsetValues
179
- };
180
- };
@@ -1,97 +0,0 @@
1
- import Platform from "react-native-web/dist/exports/Platform";
2
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
3
- import pressProps from './props/pressProps';
4
- /**
5
- * @typedef {import('react').ReactNode} ReactNode
6
- */
7
- // These roles should result in cursor: pointer but don't in current RNW releases
8
-
9
- const shouldUseCursor = ['checkbox', 'radio', 'switch'];
10
- /**
11
- * React Native Web has some built-in logic for applying cursor styles based on accessibility roles;
12
- * however, it misses certain cases. This fills in known cases where widely used versions of RNW
13
- * fail to apply an expected cursor style.
14
- *
15
- * @param {object} props
16
- * @param {boolean} [props.inactive]
17
- * @param {boolean} [props.disabled]
18
- * @param {string} [props.accessibilityRole]
19
- * @returns
20
- */
21
-
22
- export const getCursorStyle = ({
23
- inactive,
24
- disabled,
25
- accessibilityRole
26
- }) => {
27
- if (Platform.OS !== 'web') return undefined;
28
- if (inactive || disabled) return staticStyles.notAllowed;
29
- if (shouldUseCursor.includes(accessibilityRole)) return staticStyles.pointer;
30
- return undefined; // allows React Native Web's built-in logic to apply
31
- };
32
- /**
33
- * @typedef {{ pressed: boolean, focused: boolean, hovered?: boolean }} PressableState
34
- */
35
-
36
- /**
37
- * Maps the state object given by the React Native `Pressable` component to the set of
38
- * equivalent appearance names used in UDS.
39
- *
40
- * @param {PressableState} pressableState - state object passed by React Native's `<Pressable>` into
41
- * render functions passed to its `style` or `children` props.
42
- * @param {object} [additionalState] - properties specific to the current component,
43
- * such as `inactive`, `selected`, etc.
44
- * @returns {object}
45
- */
46
-
47
- export const resolvePressableState = ({
48
- pressed = false,
49
- focused = false,
50
- hovered = false
51
- } = {}, additionalState) => ({ ...additionalState,
52
- focus: focused,
53
- hover: hovered,
54
- pressed
55
- });
56
- /**
57
- * Takes a UDS `tokens` prop and, if it is a function, resolves it based on a state
58
- * object passed from the React Native `Pressable` component and optional extra properties.
59
- *
60
- * @param {object|function} tokens - UDS system tokens prop
61
- * @param {PressableState} pressableState - state object passed by React Native's `<Pressable>`
62
- * @param {object} [additionalState] - properties specific to the current component
63
- * @returns {object} - resolved tokens object
64
- */
65
-
66
- export const resolvePressableTokens = (tokens, pressableState, additionalState) => {
67
- if (typeof tokens !== 'function') return tokens;
68
- const udsPressableState = resolvePressableState(pressableState, additionalState);
69
- return tokens(udsPressableState);
70
- };
71
- const staticStyles = StyleSheet.create(Platform.select({
72
- web: {
73
- notAllowed: {
74
- cursor: 'not-allowed'
75
- },
76
- pointer: {
77
- cursor: 'pointer'
78
- }
79
- },
80
- default: {}
81
- }));
82
- /**
83
- * From an object of props, extracts any platform-appropriate press handler functions and wraps
84
- * them in a function that passes in some provided args. Allows components containing a Pressable
85
- * to pass in press handlers that are then called with state or values that is otherwise internal.
86
- */
87
-
88
- export const getPressHandlersWithArgs = (pressableProps = {}, args = []) => {
89
- // Allow handlers to be passed down for blur, hover, focus, pressIn, etc
90
- const pressHandlers = Object.fromEntries(Object.entries(pressProps.selectHandlers(pressableProps)).map(([key, handler]) => ({
91
- [key]: (...defaultArgs) => {
92
- // Pass each handler data on this button and current selection
93
- handler(...args, ...defaultArgs);
94
- }
95
- })));
96
- return pressHandlers;
97
- };
@@ -1,140 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import Platform from "react-native-web/dist/exports/Platform";
3
- import getPropSelector from './getPropSelector'; // React Native exports a11y prop definitions as TypeScript Interfaces, but no longer exports PropTypes
4
- // so we have to define them ourselves.
5
-
6
- const nativeA11yPropTypes = {
7
- accessible: PropTypes.bool,
8
- focusable: PropTypes.bool,
9
- accessibilityElementsHidden: PropTypes.bool,
10
- accessibilityHint: PropTypes.string,
11
- // react-native-web ignores `accessibilityHint`
12
- accessibilityIgnoresInvertColors: PropTypes.bool,
13
- accessibilityLabel: PropTypes.string,
14
- accessibilityRole: PropTypes.string,
15
- accessibilityActions: PropTypes.arrayOf(PropTypes.shape({
16
- name: PropTypes.string.isRequired,
17
- label: PropTypes.string
18
- })),
19
- accessibilityLiveRegion: PropTypes.oneOf(['none', 'polite', 'assertive']),
20
- accessibilityState: PropTypes.shape({
21
- disabled: PropTypes.bool,
22
- selected: PropTypes.bool,
23
- checked: PropTypes.oneOf([true, false, 'mixed']),
24
- busy: PropTypes.bool,
25
- expanded: PropTypes.bool
26
- }),
27
- accessibilityValue: PropTypes.shape({
28
- min: PropTypes.number,
29
- max: PropTypes.number,
30
- now: PropTypes.number,
31
- text: PropTypes.string
32
- }),
33
- accessibilityViewIsModal: PropTypes.bool,
34
- importantForAccessibility: PropTypes.oneOf(['auto', 'yes', 'no', 'no-hide-descendants']),
35
- onAccessibilityAction: PropTypes.func,
36
- onAccessibilityEscape: PropTypes.func,
37
- onAccessibilityTap: PropTypes.func
38
- };
39
- const a11yPropTypes = { ...nativeA11yPropTypes,
40
- // React Native Web adds many a11y props that alias aria-* attributes
41
- // Types based on https://necolas.github.io/react-native-web/docs/accessibility/
42
- accessibilityActiveDescendant: PropTypes.string,
43
- accessibilityAtomic: PropTypes.bool,
44
- accessibilityAutoComplete: PropTypes.string,
45
- accessibilityBusy: PropTypes.bool,
46
- accessibilityChecked: PropTypes.oneOf([true, false, 'mixed']),
47
- accessibilityColumnCount: PropTypes.number,
48
- accessibilityColumnIndex: PropTypes.number,
49
- accessibilityColumnSpan: PropTypes.number,
50
- accessibilityControls: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
51
- accessibilityCurrent: PropTypes.oneOf([true, false, 'page', 'step', 'location', 'date', 'time']),
52
- accessibilityDescribedBy: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
53
- accessibilityDetails: PropTypes.string,
54
- accessibilityDisabled: PropTypes.bool,
55
- accessibilityErrorMessage: PropTypes.string,
56
- accessibilityExpanded: PropTypes.bool,
57
- accessibilityFlowTo: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
58
- accessibilityHasPopup: PropTypes.string,
59
- accessibilityHidden: PropTypes.bool,
60
- accessibilityInvalid: PropTypes.bool,
61
- accessibilityKeyShortcuts: PropTypes.string,
62
- accessibilityLabelledBy: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
63
- accessibilityLevel: PropTypes.number,
64
- accessibilityModal: PropTypes.bool,
65
- accessibilityMultiline: PropTypes.bool,
66
- accessibilityMultiSelectable: PropTypes.bool,
67
- accessibilityOrientation: PropTypes.oneOf(['horizontal', 'vertical']),
68
- accessibilityOwns: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
69
- accessibilityPlaceholder: PropTypes.string,
70
- accessibilityPosInSet: PropTypes.number,
71
- accessibilityPressed: PropTypes.bool,
72
- accessibilityReadOnly: PropTypes.bool,
73
- accessibilityRequired: PropTypes.bool,
74
- accessibilityRoleDescription: PropTypes.string,
75
- accessibilityRowCount: PropTypes.number,
76
- accessibilityRowIndex: PropTypes.number,
77
- accessibilityRowSpan: PropTypes.number,
78
- accessibilitySelected: PropTypes.bool,
79
- accessibilitySetSize: PropTypes.number,
80
- accessibilitySort: PropTypes.oneOf(['ascending', 'descending', 'none', 'other']),
81
- accessibilityValueMax: PropTypes.number,
82
- accessibilityValueMin: PropTypes.number,
83
- accessibilityValueNow: PropTypes.number,
84
- accessibilityValueText: PropTypes.string
85
- };
86
- export default {
87
- /**
88
- * Proptypes for recognised React Native accessiblity (a11y) props.
89
- * Spread this in the propTypes of components that accept React Native a11y props.
90
- */
91
- types: a11yPropTypes,
92
-
93
- /**
94
- * Filters a props object, returning only recognised React Native accessiblity (a11y) props.
95
- *
96
- * Where components accept React Native a11y props, pass { ...rest } from its props to this,
97
- * then spread the returned object into the component's props (usually its outer container).
98
- */
99
- select: getPropSelector(a11yPropTypes, /^aria-/),
100
-
101
- /**
102
- * Use this to disable focus for elements which are visually hidden but still rendered.
103
- */
104
- nonFocusableProps: {
105
- focusable: false,
106
- // for android, and for keyboard nav in web
107
- ...Platform.select({
108
- web: {
109
- accessibilityHidden: true // web screenreaders
110
-
111
- },
112
- android: {
113
- importantForAccessibility: 'no-hide-descendants'
114
- },
115
- ios: {
116
- accessibilityElementsHidden: true
117
- }
118
- })
119
- },
120
-
121
- /**
122
- * Generates an object of platform-appropriate a11y props describing an item that has an
123
- * ordered position in a set. Examples of usage by accessibility tools includes screenreaders
124
- * saying "Item X of Y" when this item is select.
125
- *
126
- * @param {number} itemsCount - the number of items in the set
127
- * @param {number} index - the current item's index in the set
128
- * @returns {object} - platform-applicable a11y props describing this position (if available)
129
- */
130
- getPositionInSet: (itemsCount, index) => Platform.select({
131
- web: {
132
- // accessibilityPosInSet etc exists in React Native Web main branch
133
- // but not in a release compatible with Expo etc; just use `aria-*`
134
- 'aria-setsize': itemsCount,
135
- 'aria-posinset': index + 1
136
- },
137
- // No equivalents exist on the native side
138
- default: {}
139
- })
140
- };
@@ -1,25 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- const clickHandlerMapping = {
3
- onClick: 'onPress',
4
- mouseDown: 'onPressIn',
5
- mouseUp: 'onPressOut'
6
- };
7
- export default {
8
- /**
9
- * Web-oriented HTML click handlers that may be mapped to React Native press handlers
10
- */
11
- types: Object.fromEntries(Object.keys(clickHandlerMapping).map(mouseName => [mouseName, PropTypes.func])),
12
-
13
- /**
14
- * Takes a set of props and converts HTML mouse click oriented event handlers to closest
15
- * equivalent React Native press event handler.
16
- *
17
- * Use this when a component that expects press-oriented props may need to support third-party
18
- * web-oriented tooling that injects web-oriented event handlers directly. For example, for
19
- * to support use with NextJS's 'next/link' component, which injects `onClick` prop into its child.
20
- */
21
- toPressProps: props => Object.fromEntries(Object.entries(props).map(([originalName, value]) => {
22
- const translatedName = clickHandlerMapping[originalName];
23
- return translatedName ? [translatedName, value] : [originalName, value];
24
- }))
25
- };
@@ -1,63 +0,0 @@
1
- /**
2
- * Returns a prop type validator which checks whether a prop is either a component or an array of
3
- * components of a given type, based on their `name` or `displayName` properties.
4
- * Use an array of strings for `passedName` to accept more than one component type.
5
- * For an array the validation fails on the first occurrence of an invalid element.
6
- *
7
- * @param {string|string[]} passedName
8
- * @return {function}
9
- */
10
- export default function componentPropType(passedName) {
11
- const passedNames = typeof passedName === 'string' ? [passedName] : passedName;
12
-
13
- const checkProp = (props, propName, componentName) => {
14
- var _props$propName$type, _props$propName$type2;
15
-
16
- if (props[propName] === undefined || props[propName] === null) {
17
- return undefined;
18
- }
19
-
20
- if (Array.isArray(props[propName])) {
21
- // Iterates through every child and try to find the first element that does not match the passed name
22
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean
23
- return props[propName].map((_, index) => checkProp(props[propName], index, componentName)).find(Boolean);
24
- }
25
-
26
- const nameInProp = ((_props$propName$type = props[propName].type) === null || _props$propName$type === void 0 ? void 0 : _props$propName$type.displayName) || ((_props$propName$type2 = props[propName].type) === null || _props$propName$type2 === void 0 ? void 0 : _props$propName$type2.name);
27
-
28
- if (!nameInProp || !passedNames.includes(nameInProp)) {
29
- const propDescription = nameInProp ? `Component ${nameInProp}` : typeof props[propName];
30
- return new Error(`${componentName}: ${propDescription} was passed to \`${propName}\` prop; should be ${passedNames.join(' or ')}`);
31
- }
32
-
33
- return undefined;
34
- };
35
-
36
- const checkRequired = (props, propName, componentName) => {
37
- if (props[propName] === undefined) {
38
- return new Error(`The prop \`${propName}\` is marked as required in \`${componentName}\`, but its value is ${props[propName]}.`);
39
- }
40
-
41
- return undefined;
42
- };
43
-
44
- const createValidate = isRequired => {
45
- if (isRequired) {
46
- return (props, propName, componentName) => {
47
- const checkForError = checkProp(props, propName, componentName);
48
-
49
- if (checkForError) {
50
- return checkForError;
51
- }
52
-
53
- return checkRequired(props, propName, componentName);
54
- };
55
- }
56
-
57
- return checkProp;
58
- };
59
-
60
- const validate = createValidate();
61
- validate.isRequired = createValidate(true);
62
- return validate;
63
- }
@@ -1,2 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- export default PropTypes.oneOf(['en', 'fr']);
@@ -1,6 +0,0 @@
1
- export default function getPropSelector(propTypes, regexp) {
2
- const keys = Object.keys(propTypes);
3
- return props => Object.entries(props).reduce((items, [key, value]) => keys.includes(key) || regexp && regexp.test(key) ? { ...items,
4
- [key]: value
5
- } : items, {});
6
- }
@@ -1,59 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- export const focusHandlerProps = {
3
- types: {
4
- /**
5
- * onBlur handler
6
- */
7
- onBlur: PropTypes.func,
8
-
9
- /**
10
- * onFocus handler
11
- */
12
- onFocus: PropTypes.func
13
- },
14
- select: ({
15
- onBlur,
16
- onFocus
17
- }) => ({
18
- onBlur,
19
- onFocus
20
- })
21
- };
22
- export const textInputHandlerProps = {
23
- types: {
24
- /**
25
- * onChange handler
26
- */
27
- onChange: PropTypes.func,
28
-
29
- /**
30
- * onChangeText handler
31
- */
32
- onChangeText: PropTypes.func,
33
-
34
- /**
35
- * onSubmit handler
36
- */
37
- onSubmit: PropTypes.func,
38
-
39
- /**
40
- * onSubmitEditing handler
41
- */
42
- onSubmitEditing: PropTypes.func
43
- },
44
- select: ({
45
- onChange,
46
- onChangeText,
47
- onSubmit,
48
- onSubmitEditing
49
- }) => ({
50
- onChange,
51
- onChangeText,
52
- onSubmit,
53
- onSubmitEditing
54
- })
55
- };
56
- export default {
57
- focusHandlerProps,
58
- textInputHandlerProps
59
- };
@@ -1,30 +0,0 @@
1
- import PropTypes from 'prop-types'; // Props related to HTML <a> anchor link attributes.
2
-
3
- const targetValues = ['_self', '_blank', '_parent', '_top'];
4
- export default {
5
- types: {
6
- // React Native Web >= 0.15.0 supports hrefAttrs prop with only these properties
7
- // and passes them to <a> if an element has a href prop or accessibilityRole "link"
8
- download: PropTypes.string,
9
- rel: PropTypes.string,
10
- target: PropTypes.oneOf(targetValues)
11
- },
12
-
13
- /**
14
- * Takes a props object, bundles any hrefAttrs props present into one object
15
- * and returns that keyed as `hrefAttrs` and non-hrefAttrs props keyed as `rest`
16
- */
17
- bundle: ({
18
- download,
19
- rel,
20
- target,
21
- ...rest
22
- }) => ({
23
- hrefAttrs: {
24
- download,
25
- rel,
26
- target
27
- },
28
- rest
29
- })
30
- };
@@ -1,19 +0,0 @@
1
- export * from './tokens';
2
- export * from './handlerProps';
3
- export { default as a11yProps } from './a11yProps';
4
- export { default as clickProps } from './clickProps';
5
- export { default as copyPropTypes } from './copyPropTypes';
6
- export { default as componentPropType } from './componentPropType';
7
- export { default as hrefAttrsProp } from './hrefAttrsProp';
8
- export { default as inputSupportsProps } from './inputSupportsProps';
9
- export { default as linkProps } from './linkProps';
10
- export { default as pressProps } from './pressProps';
11
- export { default as paddingProp } from './paddingProp';
12
- export { default as rectProp } from './rectProp';
13
- export { default as responsiveProps } from './responsiveProps';
14
- export { default as spacingProps } from './spacingProps';
15
- export { default as selectSystemProps } from './selectSystemProps';
16
- export { default as textInputProps } from './textInputProps';
17
- export { default as textProps } from './textProps';
18
- export { default as variantProp } from './variantProp';
19
- export { default as viewProps } from './viewProps';
@@ -1,52 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- export default {
3
- types: {
4
- /**
5
- * The input label.
6
- */
7
- label: PropTypes.string,
8
-
9
- /**
10
- * A short description of the expected input.
11
- */
12
- hint: PropTypes.string,
13
-
14
- /**
15
- * Position of the hint relative to label. Use `below` to display a larger hint below the label.
16
- */
17
- hintPosition: PropTypes.oneOf(['inline', 'below']),
18
-
19
- /**
20
- * A detailed description of validation error/success or additional instructions.
21
- * Visual variant is determined based on the `validation` prop.
22
- */
23
- feedback: PropTypes.string,
24
-
25
- /**
26
- * Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
27
- */
28
- tooltip: PropTypes.string,
29
-
30
- /**
31
- * Use to visually mark an input as valid or invalid.
32
- */
33
- validation: PropTypes.oneOf(['error', 'success'])
34
- },
35
- select: ({
36
- label,
37
- hint,
38
- hintPosition,
39
- feedback,
40
- tooltip,
41
- validation
42
- }) => ({
43
- supportsProps: {
44
- label,
45
- hint,
46
- hintPosition,
47
- feedback,
48
- tooltip,
49
- validation
50
- }
51
- })
52
- };