@telus-uds/components-base 1.8.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 (365) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/component-docs.json +682 -675
  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 +33 -31
  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 +27 -25
  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 +27 -23
  27. package/lib/Feedback/Feedback.js +48 -35
  28. package/lib/Fieldset/Fieldset.js +16 -15
  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 +37 -30
  46. package/lib/InputLabel/LabelContent.js +12 -9
  47. package/lib/InputLabel/LabelContent.native.js +9 -6
  48. package/lib/InputSupports/InputSupports.js +11 -10
  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 +46 -33
  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 +28 -26
  70. package/lib/Radio/RadioInput.js +12 -10
  71. package/lib/RadioCard/RadioCard.js +15 -14
  72. package/lib/RadioCard/RadioCardGroup.js +28 -26
  73. package/lib/Search/Search.js +51 -31
  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 +60 -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 +89 -73
  111. package/lib/ToggleSwitch/ToggleSwitchGroup.js +36 -34
  112. package/lib/Tooltip/Backdrop.js +4 -3
  113. package/lib/Tooltip/Backdrop.native.js +5 -4
  114. package/lib/Tooltip/Tooltip.js +81 -65
  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 +6 -5
  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 +15 -12
  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 +11 -10
  144. package/src/Pagination/Pagination.jsx +3 -0
  145. package/src/Search/Search.jsx +11 -0
  146. package/src/Select/Item.native.jsx +0 -7
  147. package/lib-module/A11yInfoProvider/index.js +0 -62
  148. package/lib-module/A11yText/index.js +0 -55
  149. package/lib-module/ActivityIndicator/Spinner.js +0 -76
  150. package/lib-module/ActivityIndicator/Spinner.native.js +0 -143
  151. package/lib-module/ActivityIndicator/index.js +0 -40
  152. package/lib-module/ActivityIndicator/shared.js +0 -12
  153. package/lib-module/BaseProvider/index.js +0 -26
  154. package/lib-module/Box/Box.js +0 -243
  155. package/lib-module/Box/index.js +0 -2
  156. package/lib-module/Button/Button.js +0 -25
  157. package/lib-module/Button/ButtonBase.js +0 -254
  158. package/lib-module/Button/ButtonGroup.js +0 -245
  159. package/lib-module/Button/ButtonLink.js +0 -39
  160. package/lib-module/Button/index.js +0 -4
  161. package/lib-module/Button/propTypes.js +0 -36
  162. package/lib-module/Card/Card.js +0 -83
  163. package/lib-module/Card/CardBase.js +0 -62
  164. package/lib-module/Card/PressableCardBase.js +0 -113
  165. package/lib-module/Card/index.js +0 -4
  166. package/lib-module/Checkbox/Checkbox.js +0 -332
  167. package/lib-module/Checkbox/CheckboxGroup.js +0 -231
  168. package/lib-module/Checkbox/CheckboxInput.js +0 -58
  169. package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
  170. package/lib-module/Checkbox/index.js +0 -3
  171. package/lib-module/Divider/Divider.js +0 -123
  172. package/lib-module/Divider/index.js +0 -2
  173. package/lib-module/ExpandCollapse/Accordion.js +0 -15
  174. package/lib-module/ExpandCollapse/Control.js +0 -130
  175. package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -94
  176. package/lib-module/ExpandCollapse/Panel.js +0 -159
  177. package/lib-module/ExpandCollapse/index.js +0 -7
  178. package/lib-module/Feedback/Feedback.js +0 -144
  179. package/lib-module/Feedback/index.js +0 -2
  180. package/lib-module/Fieldset/Fieldset.js +0 -152
  181. package/lib-module/Fieldset/FieldsetContainer.js +0 -29
  182. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -20
  183. package/lib-module/Fieldset/Legend.js +0 -21
  184. package/lib-module/Fieldset/Legend.native.js +0 -28
  185. package/lib-module/Fieldset/cssReset.js +0 -14
  186. package/lib-module/Fieldset/index.js +0 -2
  187. package/lib-module/FlexGrid/Col/Col.js +0 -275
  188. package/lib-module/FlexGrid/Col/index.js +0 -2
  189. package/lib-module/FlexGrid/FlexGrid.js +0 -147
  190. package/lib-module/FlexGrid/Row/Row.js +0 -183
  191. package/lib-module/FlexGrid/Row/index.js +0 -2
  192. package/lib-module/FlexGrid/helpers/index.js +0 -18
  193. package/lib-module/FlexGrid/index.js +0 -2
  194. package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
  195. package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -170
  196. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -77
  197. package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -47
  198. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -24
  199. package/lib-module/HorizontalScroll/dictionary.js +0 -11
  200. package/lib-module/HorizontalScroll/index.js +0 -11
  201. package/lib-module/HorizontalScroll/itemPositions.js +0 -106
  202. package/lib-module/Icon/Icon.js +0 -61
  203. package/lib-module/Icon/IconText.js +0 -81
  204. package/lib-module/Icon/index.js +0 -4
  205. package/lib-module/IconButton/IconButton.js +0 -115
  206. package/lib-module/IconButton/index.js +0 -2
  207. package/lib-module/InputLabel/InputLabel.js +0 -141
  208. package/lib-module/InputLabel/LabelContent.js +0 -24
  209. package/lib-module/InputLabel/LabelContent.native.js +0 -16
  210. package/lib-module/InputLabel/index.js +0 -2
  211. package/lib-module/InputSupports/InputSupports.js +0 -95
  212. package/lib-module/InputSupports/index.js +0 -2
  213. package/lib-module/InputSupports/useInputSupports.js +0 -31
  214. package/lib-module/Link/ChevronLink.js +0 -51
  215. package/lib-module/Link/InlinePressable.js +0 -37
  216. package/lib-module/Link/InlinePressable.native.js +0 -85
  217. package/lib-module/Link/Link.js +0 -27
  218. package/lib-module/Link/LinkBase.js +0 -223
  219. package/lib-module/Link/TextButton.js +0 -34
  220. package/lib-module/Link/index.js +0 -5
  221. package/lib-module/List/List.js +0 -55
  222. package/lib-module/List/ListItem.js +0 -223
  223. package/lib-module/List/index.js +0 -5
  224. package/lib-module/Modal/Modal.js +0 -208
  225. package/lib-module/Modal/dictionary.js +0 -9
  226. package/lib-module/Modal/index.js +0 -2
  227. package/lib-module/Notification/Notification.js +0 -196
  228. package/lib-module/Notification/dictionary.js +0 -8
  229. package/lib-module/Notification/index.js +0 -2
  230. package/lib-module/Pagination/PageButton.js +0 -65
  231. package/lib-module/Pagination/Pagination.js +0 -140
  232. package/lib-module/Pagination/SideButton.js +0 -103
  233. package/lib-module/Pagination/dictionary.js +0 -18
  234. package/lib-module/Pagination/index.js +0 -2
  235. package/lib-module/Pagination/usePagination.js +0 -72
  236. package/lib-module/Progress/Progress.js +0 -85
  237. package/lib-module/Progress/ProgressBar.js +0 -134
  238. package/lib-module/Progress/ProgressBarBackground.js +0 -41
  239. package/lib-module/Progress/index.js +0 -4
  240. package/lib-module/Radio/Radio.js +0 -274
  241. package/lib-module/Radio/RadioButton.js +0 -128
  242. package/lib-module/Radio/RadioGroup.js +0 -241
  243. package/lib-module/Radio/RadioInput.js +0 -60
  244. package/lib-module/Radio/RadioInput.native.js +0 -6
  245. package/lib-module/Radio/index.js +0 -3
  246. package/lib-module/RadioCard/RadioCard.js +0 -218
  247. package/lib-module/RadioCard/RadioCardGroup.js +0 -248
  248. package/lib-module/RadioCard/index.js +0 -3
  249. package/lib-module/Search/Search.js +0 -241
  250. package/lib-module/Search/dictionary.js +0 -12
  251. package/lib-module/Search/index.js +0 -2
  252. package/lib-module/Select/Group.js +0 -20
  253. package/lib-module/Select/Group.native.js +0 -14
  254. package/lib-module/Select/Item.js +0 -17
  255. package/lib-module/Select/Item.native.js +0 -9
  256. package/lib-module/Select/Picker.js +0 -67
  257. package/lib-module/Select/Picker.native.js +0 -110
  258. package/lib-module/Select/Select.js +0 -316
  259. package/lib-module/Select/index.js +0 -6
  260. package/lib-module/SideNav/Item.js +0 -139
  261. package/lib-module/SideNav/ItemContent.js +0 -45
  262. package/lib-module/SideNav/ItemsGroup.js +0 -115
  263. package/lib-module/SideNav/SideNav.js +0 -133
  264. package/lib-module/SideNav/index.js +0 -1
  265. package/lib-module/Skeleton/Skeleton.js +0 -163
  266. package/lib-module/Skeleton/index.js +0 -2
  267. package/lib-module/Skeleton/skeleton.constant.js +0 -3
  268. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
  269. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -24
  270. package/lib-module/Spacer/Spacer.js +0 -97
  271. package/lib-module/Spacer/index.js +0 -2
  272. package/lib-module/StackView/StackView.js +0 -124
  273. package/lib-module/StackView/StackWrap.js +0 -48
  274. package/lib-module/StackView/StackWrap.native.js +0 -3
  275. package/lib-module/StackView/StackWrapBox.js +0 -114
  276. package/lib-module/StackView/StackWrapGap.js +0 -58
  277. package/lib-module/StackView/common.js +0 -32
  278. package/lib-module/StackView/getStackedContent.js +0 -123
  279. package/lib-module/StackView/index.js +0 -5
  280. package/lib-module/StepTracker/Step.js +0 -229
  281. package/lib-module/StepTracker/StepTracker.js +0 -175
  282. package/lib-module/StepTracker/dictionary.js +0 -10
  283. package/lib-module/StepTracker/index.js +0 -2
  284. package/lib-module/Tabs/Tabs.js +0 -113
  285. package/lib-module/Tabs/TabsItem.js +0 -215
  286. package/lib-module/Tabs/index.js +0 -2
  287. package/lib-module/Tags/Tags.js +0 -245
  288. package/lib-module/Tags/index.js +0 -2
  289. package/lib-module/TextInput/TextArea.js +0 -88
  290. package/lib-module/TextInput/TextInput.js +0 -68
  291. package/lib-module/TextInput/TextInputBase.js +0 -233
  292. package/lib-module/TextInput/index.js +0 -3
  293. package/lib-module/TextInput/propTypes.js +0 -37
  294. package/lib-module/ThemeProvider/ThemeProvider.js +0 -35
  295. package/lib-module/ThemeProvider/index.js +0 -6
  296. package/lib-module/ThemeProvider/useSetTheme.js +0 -22
  297. package/lib-module/ThemeProvider/useTheme.js +0 -14
  298. package/lib-module/ThemeProvider/useThemeTokens.js +0 -105
  299. package/lib-module/ThemeProvider/utils/index.js +0 -2
  300. package/lib-module/ThemeProvider/utils/styles.js +0 -174
  301. package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -151
  302. package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -234
  303. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -218
  304. package/lib-module/ToggleSwitch/index.js +0 -3
  305. package/lib-module/Tooltip/Backdrop.js +0 -52
  306. package/lib-module/Tooltip/Backdrop.native.js +0 -43
  307. package/lib-module/Tooltip/Tooltip.js +0 -332
  308. package/lib-module/Tooltip/dictionary.js +0 -8
  309. package/lib-module/Tooltip/getTooltipPosition.js +0 -164
  310. package/lib-module/Tooltip/index.js +0 -2
  311. package/lib-module/TooltipButton/TooltipButton.js +0 -71
  312. package/lib-module/TooltipButton/index.js +0 -2
  313. package/lib-module/Typography/Typography.js +0 -120
  314. package/lib-module/Typography/index.js +0 -2
  315. package/lib-module/ViewportProvider/ViewportProvider.js +0 -28
  316. package/lib-module/ViewportProvider/index.js +0 -3
  317. package/lib-module/ViewportProvider/useViewport.js +0 -3
  318. package/lib-module/ViewportProvider/useViewportListener.js +0 -43
  319. package/lib-module/index.js +0 -48
  320. package/lib-module/utils/a11y/index.js +0 -2
  321. package/lib-module/utils/a11y/semantics.js +0 -154
  322. package/lib-module/utils/a11y/textSize.js +0 -34
  323. package/lib-module/utils/animation/index.js +0 -2
  324. package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -61
  325. package/lib-module/utils/children.js +0 -118
  326. package/lib-module/utils/containUniqueFields.js +0 -26
  327. package/lib-module/utils/index.js +0 -16
  328. package/lib-module/utils/info/index.js +0 -7
  329. package/lib-module/utils/info/platform/index.js +0 -11
  330. package/lib-module/utils/info/platform/platform.android.js +0 -1
  331. package/lib-module/utils/info/platform/platform.ios.js +0 -1
  332. package/lib-module/utils/info/platform/platform.js +0 -1
  333. package/lib-module/utils/info/platform/platform.native.js +0 -4
  334. package/lib-module/utils/info/versions.js +0 -5
  335. package/lib-module/utils/input.js +0 -180
  336. package/lib-module/utils/pressability.js +0 -97
  337. package/lib-module/utils/props/a11yProps.js +0 -140
  338. package/lib-module/utils/props/clickProps.js +0 -25
  339. package/lib-module/utils/props/componentPropType.js +0 -63
  340. package/lib-module/utils/props/copyPropTypes.js +0 -2
  341. package/lib-module/utils/props/getPropSelector.js +0 -6
  342. package/lib-module/utils/props/handlerProps.js +0 -59
  343. package/lib-module/utils/props/hrefAttrsProp.js +0 -30
  344. package/lib-module/utils/props/index.js +0 -19
  345. package/lib-module/utils/props/inputSupportsProps.js +0 -59
  346. package/lib-module/utils/props/linkProps.js +0 -43
  347. package/lib-module/utils/props/paddingProp.js +0 -9
  348. package/lib-module/utils/props/pressProps.js +0 -42
  349. package/lib-module/utils/props/rectProp.js +0 -9
  350. package/lib-module/utils/props/responsiveProps.js +0 -30
  351. package/lib-module/utils/props/selectSystemProps.js +0 -24
  352. package/lib-module/utils/props/spacingProps.js +0 -56
  353. package/lib-module/utils/props/textInputProps.js +0 -194
  354. package/lib-module/utils/props/textProps.js +0 -59
  355. package/lib-module/utils/props/tokens.js +0 -120
  356. package/lib-module/utils/props/variantProp.js +0 -18
  357. package/lib-module/utils/props/viewProps.js +0 -22
  358. package/lib-module/utils/ssr.js +0 -35
  359. package/lib-module/utils/useCopy.js +0 -42
  360. package/lib-module/utils/useHash.js +0 -44
  361. package/lib-module/utils/useHash.native.js +0 -7
  362. package/lib-module/utils/useResponsiveProp.js +0 -47
  363. package/lib-module/utils/useSpacingScale.js +0 -123
  364. package/lib-module/utils/useUniqueId.js +0 -12
  365. package/lib-module/utils/withLinkRouter.js +0 -82
@@ -1,229 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
4
- import Text from "react-native-web/dist/exports/Text";
5
- import View from "react-native-web/dist/exports/View";
6
- import StackView from '../StackView';
7
- import Icon from '../Icon';
8
- import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps } from '../utils';
9
- import { applyTextStyles } from '../ThemeProvider';
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
13
-
14
- const selectCompletedIconTokens = ({
15
- completedIconColor,
16
- completedIconSize
17
- }) => ({
18
- size: completedIconSize,
19
- color: completedIconColor
20
- });
21
-
22
- const selectConnectorStyles = ({
23
- connectorColor,
24
- connectorHeight,
25
- connectorMinWidth,
26
- connectorCompletedHeight,
27
- connectorCompletedColor
28
- }, isCompleted) => ({
29
- backgroundColor: connectorColor,
30
- height: connectorHeight,
31
- minWidth: connectorMinWidth,
32
- ...(isCompleted && {
33
- height: connectorCompletedHeight,
34
- backgroundColor: connectorCompletedColor
35
- })
36
- });
37
-
38
- const selectCurrentInnerStyles = ({
39
- knobCurrentInnerColor,
40
- knobCurrentInnerSize
41
- }) => ({
42
- backgroundColor: knobCurrentInnerColor,
43
- borderRadius: knobCurrentInnerSize / 2,
44
- height: knobCurrentInnerSize,
45
- width: knobCurrentInnerSize
46
- });
47
-
48
- const selectKnobStyles = ({
49
- knobBackgroundColor,
50
- knobBorderColor,
51
- knobBorderWidth,
52
- knobCompletedBackgroundColor,
53
- knobCompletedBorderColor,
54
- knobCompletedPaddingLeft,
55
- knobCompletedPaddingTop,
56
- knobCurrentBackgroundColor,
57
- knobCurrentBorderColor,
58
- knobCurrentBorderWidth,
59
- knobCurrentPaddingLeft,
60
- knobCurrentPaddingTop,
61
- knobSize
62
- }, isCompleted, isCurrent) => ({
63
- backgroundColor: knobBackgroundColor,
64
- borderColor: knobBorderColor,
65
- borderRadius: knobSize / 2,
66
- borderWidth: knobBorderWidth,
67
- height: knobSize,
68
- width: knobSize,
69
- ...(isCompleted && {
70
- backgroundColor: knobCompletedBackgroundColor,
71
- borderColor: knobCompletedBorderColor,
72
- paddingLeft: knobCompletedPaddingLeft,
73
- paddingTop: knobCompletedPaddingTop
74
- }),
75
- ...(isCurrent && {
76
- backgroundColor: knobCurrentBackgroundColor,
77
- borderColor: knobCurrentBorderColor,
78
- borderWidth: knobCurrentBorderWidth,
79
- paddingLeft: knobCurrentPaddingLeft,
80
- paddingTop: knobCurrentPaddingTop
81
- })
82
- });
83
-
84
- const selectLabelContainerStyles = ({
85
- labelDirection,
86
- labelGap,
87
- labelMarginTop,
88
- labelPaddingLeft,
89
- labelPaddingRight
90
- }) => ({
91
- marginTop: labelMarginTop,
92
- paddingLeft: labelPaddingLeft,
93
- paddingRight: labelPaddingRight,
94
- flexDirection: labelDirection,
95
- gap: labelGap
96
- });
97
-
98
- const selectLabelStyles = ({
99
- labelColor,
100
- labelCurrentColor,
101
- labelCurrentFontWeight,
102
- labelFontSize,
103
- labelFontWeight,
104
- labelFontName,
105
- labelLineHeight
106
- }, isCurrent) => applyTextStyles({
107
- color: isCurrent ? labelCurrentColor : labelColor,
108
- fontSize: labelFontSize,
109
- lineHeight: labelLineHeight,
110
- fontWeight: isCurrent ? labelCurrentFontWeight : labelFontWeight,
111
- fontName: labelFontName
112
- });
113
-
114
- const getStepTestID = (isCompleted, isCurrent) => {
115
- let testID = 'StepTracker-Step';
116
-
117
- if (isCompleted) {
118
- testID += '-Completed';
119
- } else if (isCurrent) {
120
- testID += '-Current';
121
- }
122
-
123
- return testID;
124
- };
125
- /**
126
- * A single step of a StepTracker.
127
- */
128
-
129
-
130
- const Step = ({
131
- label,
132
- name,
133
- status = 0,
134
- stepCount = 0,
135
- stepIndex = 0,
136
- tokens,
137
- ...rest
138
- }) => {
139
- const {
140
- completedIcon,
141
- showStepLabel,
142
- showStepName,
143
- ...themeTokens
144
- } = tokens;
145
- const isFirst = stepIndex === 0;
146
- const isLast = stepIndex === stepCount - 1;
147
- const isCompleted = status > stepIndex;
148
- const isCurrent = status === stepIndex;
149
- const isActive = isCompleted || isCurrent;
150
- return /*#__PURE__*/_jsxs(StackView, {
151
- space: 0,
152
- tokens: {
153
- alignItems: 'stretch',
154
- flexGrow: 1
155
- },
156
- accessibilityLabel: label,
157
- accessibilityLevel: 2,
158
- accessibilityCurrent: status === stepIndex,
159
- ...selectProps(rest),
160
- children: [/*#__PURE__*/_jsxs(StackView, {
161
- direction: "row",
162
- space: 0,
163
- tokens: {
164
- alignItems: 'center',
165
- flexGrow: 0
166
- },
167
- children: [/*#__PURE__*/_jsx(View, {
168
- style: [staticStyles.connector, !isFirst && selectConnectorStyles(themeTokens, isActive)]
169
- }), /*#__PURE__*/_jsxs(View, {
170
- style: [staticStyles.knob, selectKnobStyles(themeTokens, isCompleted, isCurrent)],
171
- testID: getStepTestID(isCompleted, isCurrent),
172
- children: [isCompleted && completedIcon && /*#__PURE__*/_jsx(Icon, {
173
- icon: completedIcon,
174
- tokens: selectCompletedIconTokens(themeTokens)
175
- }), isCurrent && /*#__PURE__*/_jsx(View, {
176
- style: selectCurrentInnerStyles(themeTokens)
177
- })]
178
- }), /*#__PURE__*/_jsx(View, {
179
- style: [staticStyles.connector, !isLast && selectConnectorStyles(themeTokens, isCompleted)]
180
- })]
181
- }), showStepLabel && /*#__PURE__*/_jsxs(View, {
182
- style: [staticStyles.stepLabelContainer, selectLabelContainerStyles(tokens)],
183
- children: [showStepName && /*#__PURE__*/_jsx(Text, {
184
- style: [staticStyles.centeredText, selectLabelStyles(tokens, isCurrent)],
185
- children: name
186
- }), /*#__PURE__*/_jsx(StackView, {
187
- direction: "row",
188
- children: /*#__PURE__*/_jsx(Text, {
189
- style: [staticStyles.centeredText, tokens.labelDirection === 'column' && staticStyles.wrappingLabel, selectLabelStyles(tokens, isCurrent)],
190
- children: label
191
- })
192
- })]
193
- })]
194
- });
195
- };
196
-
197
- Step.propTypes = { ...selectedSystemPropTypes,
198
- label: PropTypes.string.isRequired,
199
- name: PropTypes.string.isRequired,
200
- status: PropTypes.number.isRequired,
201
- stepCount: PropTypes.number.isRequired,
202
- stepIndex: PropTypes.number.isRequired,
203
- tokens: getTokensPropType('StepTracker'),
204
- variant: variantProp.propType
205
- };
206
- export default Step;
207
- const staticStyles = StyleSheet.create({
208
- centeredText: {
209
- textAlign: 'center'
210
- },
211
- connector: {
212
- flex: 1,
213
- height: 1
214
- },
215
- completedKnob: {
216
- backgroundColor: 'transparent',
217
- textAlign: 'center'
218
- },
219
- knob: {
220
- borderWidth: 1
221
- },
222
- stepLabelContainer: {
223
- justifyContent: 'center'
224
- },
225
- wrappingLabel: {
226
- width: 0,
227
- flex: 1
228
- }
229
- });
@@ -1,175 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
4
- import Text from "react-native-web/dist/exports/Text";
5
- import View from "react-native-web/dist/exports/View";
6
- import StackView from '../StackView';
7
- import { applyTextStyles, useThemeTokens } from '../ThemeProvider';
8
- import { a11yProps, getTokensPropType, selectSystemProps, variantProp, viewProps } from '../utils';
9
- import { useViewport } from '../ViewportProvider';
10
- import useCopy from '../utils/useCopy';
11
- import Step from './Step';
12
- import defaultDictionary from './dictionary';
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- import { jsxs as _jsxs } from "react/jsx-runtime";
15
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
16
-
17
- const selectContainerStyles = ({
18
- containerPaddingBottom,
19
- containerPaddingLeft,
20
- containerPaddingRight,
21
- containerPaddingTop
22
- }) => ({
23
- paddingBottom: containerPaddingBottom,
24
- paddingLeft: containerPaddingLeft,
25
- paddingRight: containerPaddingRight,
26
- paddingTop: containerPaddingTop
27
- });
28
-
29
- const selectStepTrackerLabelContainerStyles = ({
30
- labelMarginTop
31
- }) => ({
32
- marginTop: labelMarginTop
33
- });
34
-
35
- const selectStepTrackerLabelStyles = ({
36
- labelColor,
37
- labelFontSize,
38
- labelFontWeight,
39
- labelFontName,
40
- labelLineHeight
41
- }) => applyTextStyles({
42
- color: labelColor,
43
- fontSize: labelFontSize,
44
- lineHeight: labelLineHeight,
45
- fontWeight: labelFontWeight,
46
- fontName: labelFontName
47
- });
48
- /**
49
- * StepTracker component shows the current position in a sequence of steps.
50
- *
51
- * ## Component API
52
- *
53
- * - `current` prop allows to control the current step, 0-based number;
54
- * - use `copy` and `dictionary` props to internationalize the labels;
55
- * - `steps` is and array of strings defining step titles;
56
- * - tokens and variant props define the appearance of the `StepTracker`:
57
- *
58
- * ## Usability and A11y guidelines
59
- *
60
- * Keep in mind that in its current implementation this is not an interactive
61
- * component and can’t be used to navigate between steps. The application
62
- * must provide its own navigation mechanism and state control. That is the
63
- * main reason the component assumes the `progressbar` role in terms of
64
- * accessibility. This also makes it extremely important to make sure you
65
- * set a11y on controls used to modify the state of the step tracker.
66
- *
67
- * You can pass standard a11y props to the `StepTracker` component, including
68
- * the ones that are specific to the `progressbar` role. By default the
69
- * following props are used:
70
- *
71
- * - `accessibilityRole` (`role`): `progressbar`,
72
- * - `accessibilityLabel` (`aria-label`): `Step I of N: <Current Step Label>`,
73
- * - `accessibilityLevel` (`aria-level`): 1,
74
- * - `accessibilityValue.min` (`aria-valuemin`): `0`,
75
- * - `accessibilityValue.max` (`aria-valuemax`): `steps.length - 1`,
76
- * - `accessibilityValue.now` (`aria-valuenow`): `current`,
77
- * - `accessibilityValue.text` (`aria-valuetext`): `<Current Step Label>`,
78
- *
79
- */
80
-
81
-
82
- const StepTracker = /*#__PURE__*/forwardRef(({
83
- current = 0,
84
- copy = 'en',
85
- dictionary = defaultDictionary,
86
- steps = [],
87
- tokens,
88
- variant,
89
- ...rest
90
- }, ref) => {
91
- const viewport = useViewport();
92
- const {
93
- showStepTrackerLabel,
94
- ...themeTokens
95
- } = useThemeTokens('StepTracker', tokens, variant, {
96
- viewport
97
- });
98
- const getCopy = useCopy({
99
- dictionary,
100
- copy
101
- });
102
- const stepTrackerLabel = getCopy('stepTrackerLabel').replace('%{stepNumber}', current < steps.length ? current + 1 : steps.length).replace('%{stepCount}', steps.length).replace('%{stepLabel}', current < steps.length ? steps[current] : steps[steps.length - 1]);
103
- if (!steps.length) return null;
104
- const selectedProps = selectProps({
105
- accessibilityLabel: stepTrackerLabel,
106
- accessibilityLevel: 1,
107
- accessibilityRole: 'progressbar',
108
- accessibilityValue: {
109
- min: 0,
110
- max: steps.length - 1,
111
- now: current,
112
- text: steps[current]
113
- },
114
- ...rest
115
- });
116
- return /*#__PURE__*/_jsx(View, {
117
- ref: ref,
118
- style: selectContainerStyles(themeTokens),
119
- ...selectedProps,
120
- children: /*#__PURE__*/_jsxs(StackView, {
121
- space: 0,
122
- children: [/*#__PURE__*/_jsx(View, {
123
- style: staticStyles.stepsContainer,
124
- children: steps.map((label, index) => {
125
- return /*#__PURE__*/_jsx(Step, {
126
- status: current,
127
- label: label,
128
- name: getCopy('stepLabel').replace('%{stepNumber}', index + 1),
129
- stepIndex: index,
130
- stepCount: steps.length,
131
- tokens: themeTokens
132
- }, label);
133
- })
134
- }), showStepTrackerLabel && /*#__PURE__*/_jsx(View, {
135
- style: [staticStyles.stepTrackerLabelContainer, selectStepTrackerLabelContainerStyles(themeTokens)],
136
- children: /*#__PURE__*/_jsx(Text, {
137
- style: selectStepTrackerLabelStyles(themeTokens),
138
- children: stepTrackerLabel
139
- })
140
- })]
141
- })
142
- });
143
- });
144
- StepTracker.displayName = 'StepTracker';
145
- StepTracker.propTypes = { ...selectedSystemPropTypes,
146
- current: PropTypes.number,
147
- copy: PropTypes.oneOf(['en', 'fr']),
148
- dictionary: PropTypes.shape({
149
- en: PropTypes.shape({
150
- stepLabel: PropTypes.string,
151
- stepTrackerLabel: PropTypes.string
152
- }),
153
- fr: PropTypes.shape({
154
- stepLabel: PropTypes.string,
155
- stepTrackerLabel: PropTypes.string
156
- })
157
- }),
158
- steps: PropTypes.arrayOf(PropTypes.string),
159
- tokens: getTokensPropType('StepTracker'),
160
- variant: variantProp.propType
161
- };
162
- export default StepTracker;
163
- const staticStyles = StyleSheet.create({
164
- stepsContainer: {
165
- alignItems: 'flex-start',
166
- flexDirection: 'row',
167
- justifyContent: 'space-evenly',
168
- flexGrow: 1
169
- },
170
- stepTrackerLabelContainer: {
171
- textAlign: 'center',
172
- flexDirection: 'row',
173
- justifyContent: 'center'
174
- }
175
- });
@@ -1,10 +0,0 @@
1
- export default {
2
- en: {
3
- stepLabel: 'Step %{stepNumber}',
4
- stepTrackerLabel: 'Step %{stepNumber} of %{stepCount}: %{stepLabel}'
5
- },
6
- fr: {
7
- stepLabel: 'Étape %{stepNumber}',
8
- stepTrackerLabel: 'Étape %{stepNumber} sur %{stepCount}: %{stepLabel}'
9
- }
10
- };
@@ -1,2 +0,0 @@
1
- import StepTracker from './StepTracker';
2
- export default StepTracker;
@@ -1,113 +0,0 @@
1
- import React, { forwardRef, useCallback } from 'react';
2
- import PropTypes from 'prop-types';
3
- import ABBPropTypes from 'airbnb-prop-types';
4
- import { useThemeTokens } from '../ThemeProvider';
5
- import StackView from '../StackView';
6
- import { a11yProps, getTokensPropType, selectSystemProps, useHash, useInputValue, variantProp, viewProps, withLinkRouter } from '../utils';
7
- import HorizontalScroll, { horizontalScrollUtils, HorizontalScrollButton } from '../HorizontalScroll';
8
- import TabsItem from './TabsItem';
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
11
- const {
12
- selectHorizontalScrollTokens,
13
- useItemPositions
14
- } = horizontalScrollUtils;
15
- /**
16
- * Tabs renders a horizontally-scrolling menu of selectable buttons which may link
17
- * to a page or control what content is displayed on this page.
18
- */
19
-
20
- const Tabs = /*#__PURE__*/forwardRef(({
21
- tokens,
22
- itemTokens,
23
- scrollButtonTokens,
24
- variant,
25
- value,
26
- initialValue,
27
- onChange,
28
- items = [],
29
- LinkRouter,
30
- linkRouterProps,
31
- ...rest
32
- }, ref) => {
33
- const {
34
- space,
35
- ...themeTokens
36
- } = useThemeTokens('Tabs', tokens, variant);
37
- const {
38
- currentValue,
39
- setValue
40
- } = useInputValue({
41
- value,
42
- initialValue,
43
- onChange
44
- });
45
- const [itemPositions, isPositioningReady] = useItemPositions();
46
- useHash(useCallback((hash, event) => {
47
- const hashItem = hash && items.find(({
48
- href
49
- }) => hash === href);
50
- const hashId = hashItem && (hashItem.id || hashItem.label);
51
- if (hashId) setTimeout(setValue(hashId, event), 500);
52
- }, [items, setValue]), isPositioningReady);
53
- return /*#__PURE__*/_jsx(HorizontalScroll, {
54
- ref: ref,
55
- ScrollButton: HorizontalScrollButton,
56
- itemPositions: itemPositions,
57
- tokens: selectHorizontalScrollTokens(themeTokens),
58
- scrollButtonTokens: scrollButtonTokens,
59
- accessibilityRole: "tablist",
60
- ...selectProps(rest),
61
- children: /*#__PURE__*/_jsx(StackView, {
62
- space: space,
63
- direction: "row",
64
- children: items.map(({
65
- href,
66
- label,
67
- id,
68
- ref: itemRef,
69
- LinkRouter: ItemLinkRouter = LinkRouter,
70
- linkRouterProps: itemLinkRouterProps
71
- }, index) => {
72
- const itemId = id ?? label;
73
- const isSelected = Boolean(currentValue && currentValue === itemId);
74
-
75
- const handlePress = event => setValue(itemId, event);
76
-
77
- return /*#__PURE__*/_jsx(TabsItem, {
78
- ref: itemRef,
79
- href: href,
80
- variant: variant,
81
- tokens: itemTokens,
82
- onPress: handlePress,
83
- selected: isSelected,
84
- itemPositions: itemPositions,
85
- index: index,
86
- LinkRouter: ItemLinkRouter,
87
- linkRouterProps: { ...linkRouterProps,
88
- ...itemLinkRouterProps
89
- },
90
- children: label
91
- }, itemId);
92
- })
93
- })
94
- });
95
- });
96
- Tabs.displayName = 'Tabs';
97
- Tabs.propTypes = { ...selectedSystemPropTypes,
98
- ...withLinkRouter.PropTypes,
99
- items: PropTypes.arrayOf(PropTypes.shape({ ...withLinkRouter.PropTypes,
100
- href: PropTypes.string,
101
- label: PropTypes.string,
102
- id: PropTypes.string,
103
- ref: ABBPropTypes.ref()
104
- })),
105
- value: PropTypes.string,
106
- initialValue: PropTypes.string,
107
- onChange: PropTypes.func,
108
- tokens: getTokensPropType('Tabs'),
109
- itemTokens: getTokensPropType('TabsItem'),
110
- scrollButtonTokens: getTokensPropType('HorizontalScrollButton'),
111
- variant: variantProp.propType
112
- };
113
- export default Tabs;