@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,275 +0,0 @@
1
- import React, { forwardRef, useContext } from 'react';
2
- import PropTypes from 'prop-types';
3
- import Platform from "react-native-web/dist/exports/Platform";
4
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
5
- import View from "react-native-web/dist/exports/View";
6
- import { viewports } from '@telus-uds/system-constants';
7
- import GutterContext from '../providers/GutterContext';
8
- import { useViewport } from '../../ViewportProvider';
9
- import applyInheritance from '../helpers';
10
- import { responsiveProps } from '../../utils';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- const Col = /*#__PURE__*/forwardRef(({
13
- horizontalAlign,
14
- children,
15
- xs,
16
- sm,
17
- md,
18
- lg,
19
- xl,
20
- xsOffset,
21
- smOffset,
22
- mdOffset,
23
- lgOffset,
24
- xlOffset,
25
- flex,
26
- ...viewProps
27
- }, ref) => {
28
- const gutter = useContext(GutterContext);
29
- const viewPort = useViewport();
30
- const hiddenLevels = applyInheritance([xs, sm, md, lg, xl]);
31
-
32
- const getHorizontalAlignLevel = () => {
33
- if (typeof horizontalAlign === 'object') {
34
- return applyInheritance([horizontalAlign.xs, horizontalAlign.sm, horizontalAlign.md, horizontalAlign.lg, horizontalAlign.xl]);
35
- }
36
-
37
- if (typeof horizontalAlign === 'string') {
38
- return [horizontalAlign, horizontalAlign, horizontalAlign, horizontalAlign, horizontalAlign];
39
- }
40
-
41
- return ['inherit', 'inherit', 'inherit', 'inherit', 'inherit'];
42
- };
43
-
44
- const horizontalAlignLevel = getHorizontalAlignLevel();
45
-
46
- const toPercent = num => {
47
- return `${num / 12 * 100}%`;
48
- };
49
-
50
- const calculateWidth = value => {
51
- if (typeof value === 'undefined') {
52
- return {};
53
- }
54
-
55
- if (typeof value === 'number') {
56
- const percent = toPercent(value);
57
- return {
58
- maxWidth: percent,
59
- flexBasis: percent
60
- };
61
- }
62
-
63
- return {
64
- flexGrow: 1,
65
- flexBasis: 0,
66
- maxWidth: '100%'
67
- };
68
- };
69
-
70
- const calculateOffset = value => {
71
- if (typeof value === 'number') {
72
- const percent = toPercent(value);
73
- return {
74
- marginLeft: percent
75
- };
76
- }
77
-
78
- return {};
79
- };
80
-
81
- const sizeStyles = sizes => {
82
- const currViewport = Object.keys(sizes).find(key => key.startsWith(viewPort));
83
- const currSize = sizes[currViewport];
84
- return { ...calculateWidth(currSize)
85
- };
86
- };
87
-
88
- const offsetStyles = offsets => {
89
- const currViewport = Object.keys(offsets).find(key => key.startsWith(viewPort));
90
- const currOffset = offsets[currViewport];
91
- return { ...calculateOffset(currOffset)
92
- };
93
- };
94
-
95
- const gutterPadding = {
96
- paddingLeft: gutter ? 16 : 0,
97
- paddingRight: gutter ? 16 : 0
98
- };
99
- let hidingStyles = {}; // TODO: consider setting this to always 'flex' in a major release.
100
- // `display: block` is invalid in native apps.
101
- // See https://telusdigital.atlassian.net/browse/UDS1-92
102
-
103
- const shown = !flex && Platform.OS === 'web' ? 'block' : 'flex';
104
-
105
- if (viewPort === viewports.xs) {
106
- hidingStyles = {
107
- display: hiddenLevels[0] === 0 ? 'none' : shown,
108
- textAlign: horizontalAlignLevel[0]
109
- };
110
- }
111
-
112
- if (viewPort === viewports.sm) {
113
- hidingStyles = {
114
- display: hiddenLevels[1] === 0 ? 'none' : shown,
115
- textAlign: horizontalAlignLevel[1]
116
- };
117
- }
118
-
119
- if (viewPort === viewports.md) {
120
- hidingStyles = {
121
- display: hiddenLevels[2] === 0 ? 'none' : shown,
122
- textAlign: horizontalAlignLevel[2]
123
- };
124
- }
125
-
126
- if (viewPort === viewports.lg) {
127
- hidingStyles = {
128
- display: hiddenLevels[3] === 0 ? 'none' : shown,
129
- textAlign: horizontalAlignLevel[3]
130
- };
131
- }
132
-
133
- if (viewPort === viewports.xl) {
134
- hidingStyles = {
135
- display: hiddenLevels[4] === 0 ? 'none' : shown,
136
- textAlign: horizontalAlignLevel[4]
137
- };
138
- }
139
-
140
- const sizesArray = [xs, sm, md, lg, xl];
141
- const offSetsArray = [xsOffset, smOffset, mdOffset, lgOffset, xlOffset];
142
- const sizesWithIheritance = applyInheritance(sizesArray);
143
- const offsetsWithIheritance = applyInheritance(offSetsArray);
144
- const sizes = {
145
- xs: sizesWithIheritance[0],
146
- sm: sizesWithIheritance[1],
147
- md: sizesWithIheritance[2],
148
- lg: sizesWithIheritance[3],
149
- xl: sizesWithIheritance[4]
150
- };
151
- const offsets = {
152
- xs: offsetsWithIheritance[0],
153
- sm: offsetsWithIheritance[1],
154
- md: offsetsWithIheritance[2],
155
- lg: offsetsWithIheritance[3],
156
- xl: offsetsWithIheritance[4]
157
- };
158
- return /*#__PURE__*/_jsx(View, {
159
- ref: ref,
160
- ...viewProps,
161
- style: [styles.col, gutterPadding, offsetStyles(offsets), sizeStyles(sizes), { ...hidingStyles
162
- }],
163
- children: children
164
- });
165
- });
166
- Col.displayName = 'Col';
167
- const styles = StyleSheet.create({
168
- col: {
169
- flexGrow: 1,
170
- flexShrink: 0,
171
- flexBasis: 'auto',
172
- maxWidth: '100%'
173
- }
174
- });
175
- /*
176
- * We're disabling default props since passing undefined props to
177
- * the react-flexbox-grid component sets up blank classes that may cause
178
- * styling issues.
179
- */
180
-
181
- Col.propTypes = {
182
- /**
183
- * Specify number of columns within the 'xs' breakpoint range. `0` hides the column.
184
- *
185
- * `true` sets the column width automatically;
186
- * `false` disables the prop
187
- *
188
- */
189
- xs: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
190
-
191
- /**
192
- * Specify number of columns within the 'sm' breakpoint range. `0` hides the column.
193
- *
194
- * `true` sets the column width automatically;
195
- * `false` disables the prop
196
- *
197
- */
198
- sm: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
199
-
200
- /**
201
- * Specify number of columns within the 'md' breakpoint range. `0` hides the column.
202
- *
203
- * `true` sets the column width automatically;
204
- * `false` disables the prop
205
- *
206
- */
207
- md: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
208
-
209
- /**
210
- * Specify number of columns within the 'lg' breakpoint range. `0` hides the column.
211
- *
212
- * `true` sets the column width automatically;
213
- * `false` disables the prop
214
- *
215
- */
216
- lg: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
217
-
218
- /**
219
- * Specify number of columns after the 'xl' breakpoint. `0` hides the column.
220
- *
221
- * `true` sets the column width automatically;
222
- * `false` disables the prop
223
- *
224
- */
225
- xl: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, true, false]),
226
-
227
- /**
228
- * Offset the specified number of columns within the 'xs' breakpoint range. `0` hides the column.
229
- *
230
- */
231
- xsOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
232
-
233
- /**
234
- * Offset the specified number of columns within the 'sm' breakpoint range.
235
- *
236
- */
237
- smOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
238
-
239
- /**
240
- * Offset the specified number of columns within the 'md' breakpoint range.
241
- *
242
- */
243
- mdOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
244
-
245
- /**
246
- * Offset the specified number of columns within the 'lg' breakpoint range.
247
- *
248
- */
249
- lgOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
250
-
251
- /**
252
- * Offset the specified number of columns within the 'xl' breakpoint range.
253
- */
254
- xlOffset: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
255
-
256
- /**
257
- * The columns of the Grid. Will typically be `FlexGrid.Col` components.
258
- */
259
- children: PropTypes.node.isRequired,
260
-
261
- /**
262
- *
263
- * Align content horizontally within the column.
264
- *
265
- * Accepts a `PropType.string` following the [responsive prop](#/Layout?id=responsive) structure.
266
- */
267
- horizontalAlign: responsiveProps.getTypeOptionallyByViewport(PropTypes.oneOf(['left', 'center', 'right'])),
268
-
269
- /**
270
- * (web only) Stretches the column to fill vertical space using `display: flex`.
271
- * In native apps, FlexGrid.Col behaves as if this is always true (as do all `View`s).
272
- */
273
- flex: PropTypes.bool
274
- };
275
- export default Col;
@@ -1,2 +0,0 @@
1
- import Col from './Col';
2
- export default Col;
@@ -1,147 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import View from "react-native-web/dist/exports/View";
4
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
5
- import { viewports } from '@telus-uds/system-constants';
6
- import Row from './Row';
7
- import Col from './Col';
8
- import { useViewport } from '../ViewportProvider';
9
- import GutterContext from './providers/GutterContext';
10
- import applyInheritance from './helpers';
11
- import { a11yProps, viewProps, getA11yPropsFromHtmlTag, layoutTags, selectSystemProps } from '../utils';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
14
- /**
15
- * A mobile-first flexbox grid.
16
- */
17
-
18
- const FlexGrid = /*#__PURE__*/forwardRef(({
19
- limitWidth = true,
20
- gutter = true,
21
- outsideGutter = true,
22
- xsReverse,
23
- smReverse,
24
- mdReverse,
25
- lgReverse,
26
- xlReverse,
27
- tag,
28
- accessibilityRole,
29
- children,
30
- ...rest
31
- }, ref) => {
32
- const viewPort = useViewport();
33
- const reverseLevel = applyInheritance([xsReverse, smReverse, mdReverse, lgReverse, xlReverse]);
34
- const marginVertical = 0;
35
- const marginHorizontal = outsideGutter ? 'auto' : -16;
36
- const width = outsideGutter ? '100%' : 'auto';
37
- let flexDirection;
38
- let maxWidth;
39
-
40
- if (viewPort === viewports.xs) {
41
- // no maxWidth for xs
42
- flexDirection = reverseLevel[0] ? 'column-reverse' : 'column';
43
- }
44
-
45
- if (viewPort === viewports.sm) {
46
- maxWidth = limitWidth && viewports.map.get(viewports.sm);
47
- flexDirection = reverseLevel[1] ? 'column-reverse' : 'column';
48
- }
49
-
50
- if (viewPort === viewports.md) {
51
- maxWidth = limitWidth && viewports.map.get(viewports.md);
52
- flexDirection = reverseLevel[2] ? 'column-reverse' : 'column';
53
- }
54
-
55
- if (viewPort === viewports.lg) {
56
- maxWidth = limitWidth && viewports.map.get(viewports.lg);
57
- flexDirection = reverseLevel[3] ? 'column-reverse' : 'column';
58
- }
59
-
60
- if (viewPort === viewports.xl) {
61
- maxWidth = limitWidth && viewports.map.get(viewports.xl);
62
- flexDirection = reverseLevel[4] ? 'column-reverse' : 'column';
63
- }
64
-
65
- const props = { ...getA11yPropsFromHtmlTag(tag, accessibilityRole),
66
- ...selectProps(rest)
67
- };
68
- return /*#__PURE__*/_jsx(GutterContext.Provider, {
69
- value: gutter,
70
- children: /*#__PURE__*/_jsx(View, {
71
- ref: ref,
72
- ...props,
73
- style: [styles.grid, {
74
- marginHorizontal,
75
- marginVertical,
76
- width,
77
- flexDirection,
78
- maxWidth
79
- }],
80
- children: children
81
- })
82
- });
83
- });
84
- FlexGrid.displayName = 'FlexGrid';
85
- const styles = StyleSheet.create({
86
- grid: {
87
- flexWrap: 'wrap'
88
- }
89
- });
90
- FlexGrid.propTypes = { ...selectedSystemPropTypes,
91
-
92
- /**
93
- * Whether or not to give the grid a fixed width. This also centres the grid horizontally.
94
- */
95
- limitWidth: PropTypes.bool,
96
-
97
- /**
98
- * Whether or not to include gutters in between columns.
99
- */
100
- gutter: PropTypes.bool,
101
-
102
- /**
103
- * Whether or not to include gutter at the ends to the left and right of the FlexGrid
104
- */
105
- outsideGutter: PropTypes.bool,
106
-
107
- /**
108
- * Choose if the item order should be reversed from the 'xs' breakpoint. When you pass in false, the order will be normal from the xs breakpoint. By default, it inherits the behaviour set by the preceding prop.
109
- */
110
- xsReverse: PropTypes.bool,
111
-
112
- /**
113
- * Choose if the item order should be reversed from the 'sm' breakpoint. When you pass in false, the order will be normal from the sm breakpoint. By default, it inherits the behaviour set by the preceding prop.
114
- */
115
- smReverse: PropTypes.bool,
116
-
117
- /**
118
- * Choose if the item order should be reversed from the 'md' breakpoint. When you pass in false, the order will be normal from the md breakpoint. By default, it inherits the behaviour set by the preceding prop.
119
- */
120
- mdReverse: PropTypes.bool,
121
-
122
- /**
123
- * Choose if the item order should be reversed from the 'lg' breakpoint. When you pass in false, the order will be normal from the lg breakpoint. By default, it inherits the behaviour set by the preceding prop.
124
- */
125
- lgReverse: PropTypes.bool,
126
-
127
- /**
128
- * Choose if the item order should be reversed from the 'xl' breakpoint. When you pass in false, the order will be normal from the xl breakpoint. By default, it inherits the behaviour set by the preceding prop.
129
- */
130
- xlReverse: PropTypes.bool,
131
-
132
- /**
133
- * Optional semantic HTML tag, to apply to the container on web. Does not change styling.
134
- *
135
- * In native apps, if a header tag is provided ("h1", "h2" etc) and accessibilityRole prop
136
- * is not defined, the accessibilityRole will default to "heading".
137
- */
138
- tag: PropTypes.oneOf(layoutTags),
139
-
140
- /**
141
- * The rows and columns of the Grid. Will typically be `FlexGrid.Row` and `FlexGrid.Col` components.
142
- */
143
- children: PropTypes.node.isRequired
144
- };
145
- FlexGrid.Row = Row;
146
- FlexGrid.Col = Col;
147
- export default FlexGrid;
@@ -1,183 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import View from "react-native-web/dist/exports/View";
4
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
5
- import { viewports } from '@telus-uds/system-constants';
6
- import { useViewport } from '../../ViewportProvider';
7
- import applyInheritance from '../helpers';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
-
10
- const horizontalAlignStyles = horizontalAlign => {
11
- switch (horizontalAlign) {
12
- case 'start':
13
- return {
14
- justifyContent: 'flex-start',
15
- textAlign: 'left'
16
- };
17
-
18
- case 'center':
19
- return {
20
- justifyContent: 'center',
21
- textAlign: 'center'
22
- };
23
-
24
- case 'end':
25
- return {
26
- justifyContent: 'flex-end',
27
- textAlign: 'right'
28
- };
29
-
30
- default:
31
- return {};
32
- }
33
- };
34
-
35
- const verticalAlignStyles = verticalAlign => {
36
- switch (verticalAlign) {
37
- case 'top':
38
- return {
39
- alignItems: 'flex-start'
40
- };
41
-
42
- case 'middle':
43
- return {
44
- alignItems: 'center'
45
- };
46
-
47
- case 'bottom':
48
- return {
49
- alignItems: 'flex-end'
50
- };
51
-
52
- default:
53
- return {};
54
- }
55
- };
56
-
57
- const distributeStyles = distribute => {
58
- switch (distribute) {
59
- case 'between':
60
- return {
61
- justifyContent: 'space-between'
62
- };
63
-
64
- case 'around':
65
- return {
66
- justifyContent: 'space-around'
67
- };
68
-
69
- default:
70
- return {};
71
- }
72
- };
73
-
74
- const Row = /*#__PURE__*/forwardRef(({
75
- horizontalAlign,
76
- verticalAlign,
77
- distribute,
78
- xsReverse,
79
- smReverse,
80
- mdReverse,
81
- lgReverse,
82
- xlReverse,
83
- children,
84
- ...rest
85
- }, ref) => {
86
- const viewPort = useViewport();
87
- const reverseLevel = applyInheritance([xsReverse, smReverse, mdReverse, lgReverse, xlReverse]);
88
- let flexDirection = '';
89
- let flexWrap = '';
90
-
91
- if (viewPort === viewports.xs) {
92
- flexDirection = reverseLevel[0] ? 'row-reverse' : 'row';
93
- flexWrap = reverseLevel[0] ? 'wrap-reverse' : 'wrap';
94
- }
95
-
96
- if (viewPort === viewports.sm) {
97
- flexDirection = reverseLevel[1] ? 'row-reverse' : 'row';
98
- flexWrap = reverseLevel[1] ? 'wrap-reverse' : 'wrap';
99
- }
100
-
101
- if (viewPort === viewports.md) {
102
- flexDirection = reverseLevel[2] ? 'row-reverse' : 'row';
103
- flexWrap = reverseLevel[2] ? 'wrap-reverse' : 'wrap';
104
- }
105
-
106
- if (viewPort === viewports.lg) {
107
- flexDirection = reverseLevel[3] ? 'row-reverse' : 'row';
108
- flexWrap = reverseLevel[3] ? 'wrap-reverse' : 'wrap';
109
- }
110
-
111
- if (viewPort === viewports.xl) {
112
- flexDirection = reverseLevel[4] ? 'row-reverse' : 'row';
113
- flexWrap = reverseLevel[4] ? 'wrap-reverse' : 'wrap';
114
- }
115
-
116
- return /*#__PURE__*/_jsx(View, {
117
- ref: ref,
118
- ...rest,
119
- style: [styles.row, {
120
- flexDirection,
121
- flexWrap,
122
- ...horizontalAlignStyles(horizontalAlign),
123
- ...verticalAlignStyles(verticalAlign),
124
- ...distributeStyles(distribute)
125
- }],
126
- children: children
127
- });
128
- });
129
- Row.displayName = 'Row';
130
- const styles = StyleSheet.create({
131
- row: {
132
- width: '100%',
133
- marginVertical: 0,
134
- marginHorizontal: 'auto',
135
- flexGrow: 0,
136
- flexShrink: 1,
137
- flexBasis: 'auto',
138
- flexDirection: 'row'
139
- }
140
- });
141
- Row.propTypes = {
142
- /**
143
- * Align columns horizontally within their row.
144
- */
145
- horizontalAlign: PropTypes.oneOf(['start', 'center', 'end']),
146
-
147
- /**
148
- * Align columns vertically within their row.
149
- */
150
- verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom']),
151
-
152
- /**
153
- * Distribute empty space around columns.
154
- */
155
- distribute: PropTypes.oneOf(['around', 'between']),
156
-
157
- /**
158
- * Choose if the item order should be reversed from the 'xs' breakpoint. When you pass in false, the order will be normal from the xs breakpoint. By default, it inherits the behaviour set by the preceding prop.
159
- */
160
- xsReverse: PropTypes.bool,
161
-
162
- /**
163
- * Choose if the item order should be reversed from the 'sm' breakpoint. When you pass in false, the order will be normal from the sm breakpoint. By default, it inherits the behaviour set by the preceding prop.
164
- */
165
- smReverse: PropTypes.bool,
166
-
167
- /**
168
- * Choose if the item order should be reversed from the 'md' breakpoint. When you pass in false, the order will be normal from the md breakpoint. By default, it inherits the behaviour set by the preceding prop.
169
- */
170
- mdReverse: PropTypes.bool,
171
-
172
- /**
173
- * Choose if the item order should be reversed from the 'lg' breakpoint. When you pass in false, the order will be normal from the lg breakpoint. By default, it inherits the behaviour set by the preceding prop.
174
- */
175
- lgReverse: PropTypes.bool,
176
-
177
- /**
178
- * Choose if the item order should be reversed from the 'xl' breakpoint. When you pass in false, the order will be normal from the xl breakpoint. By default, it inherits the behaviour set by the preceding prop.
179
- */
180
- xlReverse: PropTypes.bool,
181
- children: PropTypes.node.isRequired
182
- };
183
- export default Row;
@@ -1,2 +0,0 @@
1
- import Row from './Row';
2
- export default Row;
@@ -1,18 +0,0 @@
1
- const applyInheritance = sizes => {
2
- let prevSize;
3
- return sizes.map((size, index) => {
4
- if (size !== undefined) {
5
- prevSize = size;
6
- return size;
7
- }
8
-
9
- if (index) {
10
- const value = prevSize;
11
- return value;
12
- }
13
-
14
- return undefined;
15
- });
16
- };
17
-
18
- export default applyInheritance;
@@ -1,2 +0,0 @@
1
- import FlexGrid from './FlexGrid';
2
- export default FlexGrid;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- const GutterContext = /*#__PURE__*/React.createContext(false);
3
- export default GutterContext;