@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,208 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
3
- import TouchableWithoutFeedback from "react-native-web/dist/exports/TouchableWithoutFeedback";
4
- import View from "react-native-web/dist/exports/View";
5
- import NativeModal from "react-native-web/dist/exports/Modal";
6
- import Platform from "react-native-web/dist/exports/Platform";
7
- import PropTypes from 'prop-types';
8
- import { applyShadowToken, useThemeTokens } from '../ThemeProvider';
9
- import { a11yProps, copyPropTypes, getTokensPropType, selectSystemProps, useCopy, variantProp, viewProps, selectTokens } from '../utils';
10
- import { useViewport } from '../ViewportProvider';
11
- import IconButton from '../IconButton';
12
- import dictionary 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
- containerPaddingLeft,
19
- containerPaddingRight,
20
- containerPaddingTop,
21
- containerPaddingBottom,
22
- maxWidth,
23
- height
24
- }) => ({
25
- height,
26
- maxWidth,
27
- paddingLeft: containerPaddingLeft,
28
- paddingRight: containerPaddingRight,
29
- paddingTop: containerPaddingTop,
30
- paddingBottom: containerPaddingBottom
31
- });
32
-
33
- const selectModalStyles = ({
34
- backgroundColor,
35
- borderRadius,
36
- height,
37
- paddingLeft,
38
- paddingRight,
39
- paddingTop,
40
- paddingBottom,
41
- shadow
42
- }) => ({
43
- backgroundColor,
44
- borderRadius,
45
- height,
46
- paddingLeft,
47
- paddingRight,
48
- paddingTop,
49
- paddingBottom,
50
- ...applyShadowToken(shadow)
51
- });
52
-
53
- const selectBackdropStyles = ({
54
- backdropColor,
55
- backdropOpacity
56
- }) => ({
57
- backgroundColor: backdropColor,
58
- opacity: backdropOpacity
59
- });
60
-
61
- const selectCloseButtonContainerStyles = ({
62
- paddingRight,
63
- paddingTop
64
- }) => ({
65
- paddingRight,
66
- paddingTop
67
- });
68
- /**
69
- * A modal window is a secondary window that opens on top of the main one.
70
- * Users have to interact with it before they can carry out their task and return to the main window.
71
- * Use to reveal additional information to a user after they have performed an explicit interaction.
72
- * They are a strongly discouraged pattern; it's preferred to have all relevant information within a page,
73
- * and irrelevant information either linked externally or omitted.
74
- *
75
- * - Must only appear after a customer interaction, not on page load or any other circumstance
76
- * - Open a modal based on explicit customer action e.g. clicking on a button/link/form field
77
- * - Only one modal should be "current" at any time
78
- * - Read [WebAIM's documentation](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/dialog.html) to create accessible modals
79
- * - Don’t use modals to reinforce or repeat information already available in the parent page or view
80
- * - Don’t use modals consecutively
81
- */
82
-
83
-
84
- const Modal = /*#__PURE__*/forwardRef(({
85
- children,
86
- isOpen,
87
- onClose,
88
- maxWidth,
89
- tokens,
90
- variant,
91
- copy,
92
- closeButton,
93
- ...rest
94
- }, ref) => {
95
- const viewport = useViewport();
96
- const themeTokens = useThemeTokens('Modal', tokens, variant, {
97
- viewport,
98
- maxWidth
99
- });
100
- const {
101
- closeIcon: CloseIconComponent
102
- } = themeTokens;
103
- const getCopy = useCopy({
104
- dictionary,
105
- copy
106
- });
107
- const closeLabel = getCopy('closeButton');
108
-
109
- const handleClose = () => {
110
- if (typeof onClose === 'function') onClose();
111
- };
112
-
113
- const handleKeyUp = event => {
114
- if (event.key === 'Escape') onClose();
115
- }; // Show the custom react node passed to `closedButton` or the default close button if `closeButton` is `undefined`.
116
- // Hide the close button if `closeButton` is `null`.
117
-
118
-
119
- const showCloseButton = closeButton !== null;
120
-
121
- if (!isOpen) {
122
- return null;
123
- }
124
-
125
- return /*#__PURE__*/_jsx(NativeModal, {
126
- transparent: true,
127
- ...selectProps(rest),
128
- children: /*#__PURE__*/_jsxs(View, {
129
- style: [staticStyles.positioningContainer],
130
- children: [/*#__PURE__*/_jsx(View, {
131
- style: [staticStyles.sizingContainer, selectContainerStyles(themeTokens)],
132
- pointerEvents: "box-none" // don't capture backdrop press events
133
- ,
134
- children: /*#__PURE__*/_jsxs(View, {
135
- ref: ref,
136
- style: [staticStyles.modal, selectModalStyles(themeTokens)],
137
- onKeyUp: handleKeyUp,
138
- children: [showCloseButton && /*#__PURE__*/_jsx(View, {
139
- style: [staticStyles.closeButtonContainer, selectCloseButtonContainerStyles(themeTokens)],
140
- children: closeButton || /*#__PURE__*/_jsx(IconButton, {
141
- onPress: handleClose,
142
- icon: CloseIconComponent,
143
- accessibilityRole: "button",
144
- accessibilityLabel: closeLabel,
145
- tokens: selectTokens('IconButton', themeTokens, 'close')
146
- })
147
- }), children]
148
- })
149
- }), /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
150
- onPress: handleClose,
151
- children: /*#__PURE__*/_jsx(View, {
152
- style: [staticStyles.backdrop, selectBackdropStyles(themeTokens)]
153
- })
154
- })]
155
- })
156
- });
157
- });
158
- Modal.displayName = 'Modal';
159
- Modal.propTypes = { ...selectedSystemPropTypes,
160
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
161
- copy: copyPropTypes,
162
- isOpen: PropTypes.bool,
163
- onClose: PropTypes.func,
164
- maxWidth: PropTypes.bool,
165
- tokens: getTokensPropType('Modal'),
166
- variant: variantProp.propType,
167
-
168
- /**
169
- * Pass a react node to override the default close button or pass `null` to hide the close button.
170
- */
171
- closeButton: PropTypes.node
172
- };
173
- export default Modal;
174
- const staticStyles = StyleSheet.create({
175
- backdrop: {
176
- position: 'absolute',
177
- top: 0,
178
- left: 0,
179
- right: 0,
180
- bottom: 0,
181
- zIndex: -1,
182
- ...Platform.select({
183
- web: {
184
- cursor: 'pointer'
185
- }
186
- })
187
- },
188
- positioningContainer: {
189
- flexBasis: '100%',
190
- alignItems: 'center',
191
- justifyContent: 'center'
192
- },
193
- sizingContainer: {
194
- maxHeight: '100%',
195
- // so that the container can expand up to the full viewport height
196
- width: '100%' // ensure that the modal actually expands to the set maxWidth
197
-
198
- },
199
- modal: {
200
- maxHeight: '100%' // so that the modal can expand vertically up to the sizing container's height (exclusive of its vertical padding)
201
-
202
- },
203
- closeButtonContainer: {
204
- position: 'absolute',
205
- top: 0,
206
- right: 0
207
- }
208
- });
@@ -1,9 +0,0 @@
1
- export default {
2
- en: {
3
- // English text from TDS Community `Modal`
4
- closeButton: 'Close'
5
- },
6
- fr: {
7
- closeButton: 'Fermer'
8
- }
9
- };
@@ -1,2 +0,0 @@
1
- import Modal from './Modal';
2
- export default Modal;
@@ -1,196 +0,0 @@
1
- import React, { forwardRef, useState } from 'react';
2
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
3
- import View from "react-native-web/dist/exports/View";
4
- import PropTypes from 'prop-types';
5
- import { applyTextStyles, useThemeTokens } from '../ThemeProvider';
6
- import { a11yProps, getTokensPropType, selectSystemProps, selectTokens, variantProp, viewProps, wrapStringsInText } from '../utils';
7
- import ButtonBase from '../Button/ButtonBase';
8
- import useCopy from '../utils/useCopy';
9
- import dictionary from './dictionary';
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 selectContainerStyles = tokens => ({ ...tokens
15
- });
16
-
17
- const selectTextStyles = tokens => applyTextStyles(selectTokens('Typography', tokens));
18
-
19
- const selectIconProps = ({
20
- iconSize,
21
- iconColor
22
- }) => ({
23
- size: iconSize,
24
- color: iconColor
25
- });
26
-
27
- const selectIconContainerStyles = ({
28
- iconGap
29
- }) => ({
30
- paddingRight: iconGap
31
- });
32
-
33
- const selectDismissIconProps = ({
34
- dismissIconSize,
35
- dismissIconColor
36
- }) => ({
37
- size: dismissIconSize,
38
- color: dismissIconColor
39
- });
40
-
41
- const selectDismissButtonContainerStyles = ({
42
- dismissButtonGap
43
- }) => ({
44
- paddingLeft: dismissButtonGap
45
- });
46
- /**
47
- * A banner that highlights important messages:
48
- * - Status message to show there is an error or outage of services
49
- * - Confirmation message in response to user action
50
- * - Account information letting the user know they have almost used all their data
51
- *
52
- * ## Usage criteria
53
- * - Use simple text content only, such as bold test or links. Don’t use other complex components or paragraphs
54
- * - Show notifications before the content that the message is related to, otherwise show at the top of the main content
55
- * - Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
56
- * - When showing multiple notifications, show them in order of importance from top to bottom
57
- * - Use variants to visually show the type of message contained within the Notification.
58
- * - The icon and colour will indicate meaning and importance
59
- *
60
- * ### Variants
61
- * - Use `variant.style` to set the visual style of the notification
62
- * - Use `dismissible` prop to enable dismissible functionality
63
- * - Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
64
- *
65
- * ### When to use the system prop?
66
- * - Use `system` to show system-based messages coming from the application
67
- * - Don’t use `system` when the message is in response to user action
68
- *
69
- * ## Variants
70
- *
71
- * #### Success
72
- * Use the success variant to provide feedback of a successful operation. The message will include an icon to indicate meaning and importance.
73
- *
74
- * #### Warning
75
- * Use the warning variant to provide feedback of a warning; users would still be able to proceed forward.
76
- * The message will include an icon to indicate meaning and importance.
77
- *
78
- * #### Error
79
- * Use the error variant to provide feedback of a failed operation. The message will include an icon to indicate meaning and importance.
80
- *
81
- * #### Dismissible
82
- * Dismissible notifications should only be used for default or success notifications where there is no action needed from the user.
83
- * If the information is passive then it should be dismissible as indicated by an interactive close button on the far right.
84
- * If the notification requires an action then make the option(s) clear with a `ChevronLink` or `Link`.
85
- *
86
- * Use the `dismissible` prop to allow users to dismiss the Notification at any time. Once dismissed, the Notification is removed from the DOM.
87
- *
88
- * Please note:
89
- *
90
- * - Default and Success variants are dismissible
91
- * - Error and Warning variants are not dismissible
92
- *
93
- * #### System message
94
- * Use full-width `Notifications` to show system-based messages coming from the application, not in response to user action.
95
- * Show system notifications at the top of the page, below the navigation, and expands the full-width of the viewport
96
- */
97
-
98
-
99
- const Notification = /*#__PURE__*/forwardRef(({
100
- children,
101
- system,
102
- dismissible,
103
- copy = 'en',
104
- tokens,
105
- variant,
106
- ...rest
107
- }, ref) => {
108
- const [isDismissed, setIsDismissed] = useState(false);
109
- const themeTokens = useThemeTokens('Notification', tokens, variant, {
110
- system
111
- });
112
- const getCopy = useCopy({
113
- dictionary,
114
- copy
115
- });
116
-
117
- if (isDismissed) {
118
- return null;
119
- }
120
-
121
- const textStyles = selectTextStyles(themeTokens);
122
- const content = wrapStringsInText(typeof children === 'function' ? children({
123
- textStyles
124
- }) : children, {
125
- style: textStyles
126
- });
127
- const {
128
- icon: IconComponent,
129
- dismissIcon: DismissIconComponent
130
- } = themeTokens;
131
-
132
- const onDismissPress = () => setIsDismissed(true); // TODO: replace the dismiss button with IconButton when implemented (https://github.com/telus/universal-design-system/issues/281)
133
-
134
-
135
- return /*#__PURE__*/_jsxs(View, {
136
- ref: ref,
137
- style: [staticStyles.container, selectContainerStyles(themeTokens)],
138
- ...selectProps(rest),
139
- children: [IconComponent && /*#__PURE__*/_jsx(View, {
140
- style: selectIconContainerStyles(themeTokens),
141
- children: /*#__PURE__*/_jsx(IconComponent, { ...selectIconProps(themeTokens)
142
- })
143
- }), /*#__PURE__*/_jsx(View, {
144
- style: staticStyles.contentContainer,
145
- children: content && typeof content === 'function' ? content({
146
- textStyles,
147
- variant
148
- }) : content
149
- }), dismissible && DismissIconComponent && /*#__PURE__*/_jsx(View, {
150
- style: selectDismissButtonContainerStyles(themeTokens),
151
- children: /*#__PURE__*/_jsx(ButtonBase, {
152
- onPress: onDismissPress,
153
- accessibilityRole: "button",
154
- accessibilityLabel: getCopy('dismiss'),
155
- children: () => /*#__PURE__*/_jsx(DismissIconComponent, { ...selectDismissIconProps(themeTokens)
156
- })
157
- })
158
- })]
159
- });
160
- });
161
- Notification.displayName = 'Notification';
162
- Notification.propTypes = { ...selectedSystemPropTypes,
163
-
164
- /**
165
- * Content of the `Notification`.
166
- */
167
- children: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]),
168
-
169
- /**
170
- * Use `system` prop to set the visual style of the notification and denote an announcement from the system or application
171
- */
172
- system: PropTypes.bool,
173
-
174
- /**
175
- * Use the `dismissible` prop to allow users to dismiss the Notification at any time.
176
- */
177
- dismissible: PropTypes.bool,
178
-
179
- /**
180
- * Select English or French copy for the accessible label of the dismiss button.
181
- */
182
- copy: PropTypes.oneOfType([PropTypes.oneOf(['en', 'fr']), PropTypes.shape({
183
- dismiss: PropTypes.string
184
- })]),
185
- tokens: getTokensPropType('Notification'),
186
- variant: variantProp.propType
187
- };
188
- export default Notification;
189
- const staticStyles = StyleSheet.create({
190
- container: {
191
- flexDirection: 'row'
192
- },
193
- contentContainer: {
194
- flex: 1
195
- }
196
- });
@@ -1,8 +0,0 @@
1
- export default {
2
- en: {
3
- dismiss: 'Close'
4
- },
5
- fr: {
6
- dismiss: 'Fermer'
7
- }
8
- };
@@ -1,2 +0,0 @@
1
- import Notification from './Notification';
2
- export default Notification;
@@ -1,65 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import ButtonBase from '../Button/ButtonBase';
4
- import { useThemeTokensCallback } from '../ThemeProvider';
5
- import { a11yProps, copyPropTypes, getTokensPropType, hrefAttrsProp, linkProps, selectTokens, variantProp, withLinkRouter } from '../utils';
6
- import useCopy from '../utils/useCopy';
7
- import dictionary from './dictionary';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- const PageButton = /*#__PURE__*/forwardRef(({
10
- label,
11
- onPress,
12
- href,
13
- isActive,
14
- copy,
15
- variant,
16
- tokens,
17
- ...props
18
- }, ref) => {
19
- const getTokens = useThemeTokensCallback('PaginationPageButton', tokens, variant);
20
- const getCopy = useCopy({
21
- dictionary,
22
- copy
23
- });
24
-
25
- const getButtonTokens = buttonState => selectTokens('Button', getTokens(buttonState));
26
-
27
- const activeProps = isActive ? {
28
- selected: true,
29
- ...a11yProps.nonFocusableProps,
30
- // a brute fix for the focus state being stuck on an active item since it becomes non-focusable
31
- // (see https://github.com/telus/universal-design-system/pull/577#issuecomment-931344107)
32
- key: 'active-item'
33
- } : {};
34
- const accessibilityRole = href !== undefined ? 'link' : 'button';
35
- const activeLabel = isActive ? ` ${getCopy('currentLabel')}` : '';
36
- const accessibilityLabel = `${getCopy('goToLabel')} ${label}${activeLabel}`;
37
- const {
38
- hrefAttrs,
39
- rest
40
- } = hrefAttrsProp.bundle(props);
41
- const buttonProps = {
42
- accessibilityRole,
43
- accessibilityLabel,
44
- onPress,
45
- href,
46
- hrefAttrs,
47
- ...rest
48
- };
49
- return /*#__PURE__*/_jsx(ButtonBase, {
50
- ref: ref,
51
- ...buttonProps,
52
- tokens: getButtonTokens,
53
- ...activeProps,
54
- children: label
55
- });
56
- });
57
- PageButton.displayName = 'PageButton';
58
- PageButton.propTypes = { ...linkProps.types,
59
- label: PropTypes.string,
60
- isActive: PropTypes.bool,
61
- copy: copyPropTypes,
62
- variant: variantProp.propType,
63
- tokens: getTokensPropType('PaginationPageButton')
64
- };
65
- export default withLinkRouter(PageButton);
@@ -1,140 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import View from "react-native-web/dist/exports/View";
3
- import Text from "react-native-web/dist/exports/Text";
4
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
5
- import { a11yProps, componentPropType, copyPropTypes, getTokensPropType, selectSystemProps, variantProp, viewProps, withLinkRouter } from '../utils';
6
- import { applyTextStyles, useThemeTokens } from '../ThemeProvider';
7
- import { useViewport } from '../ViewportProvider';
8
- import Box from '../Box';
9
- import usePagination from './usePagination';
10
- import PageButton from './PageButton';
11
- import SideButton from './SideButton';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]);
14
-
15
- const selectTextStyles = ({
16
- color,
17
- fontName,
18
- fontSize,
19
- fontWeight,
20
- lineHeight
21
- }) => applyTextStyles({
22
- color,
23
- fontName,
24
- fontSize,
25
- fontWeight,
26
- lineHeight
27
- });
28
-
29
- const Pagination = /*#__PURE__*/forwardRef(({
30
- children,
31
- copy = 'en',
32
- variant,
33
- tokens,
34
- sideButtonVariant,
35
- sideButtonTokens,
36
- LinkRouter,
37
- linkRouterProps,
38
- ...rest
39
- }, ref) => {
40
- const viewport = useViewport();
41
- const {
42
- truncateAbove,
43
- gap,
44
- ...themeTokens
45
- } = useThemeTokens('Pagination', tokens, variant, {
46
- viewport
47
- });
48
- const items = React.Children.toArray(children);
49
- const {
50
- isItemActive,
51
- getItemProps,
52
- showPrevious,
53
- showNext,
54
- nextItemProps,
55
- previousItemProps,
56
- shouldRenderButton,
57
- shouldRenderEllipsis
58
- } = usePagination({
59
- items,
60
- truncateAbove
61
- });
62
- const ellipsisTextStyles = selectTextStyles(themeTokens);
63
-
64
- if (items.length === 0) {
65
- return null;
66
- } // TODO: replace with a spacing component when https://github.com/telus/universal-design-system/pull/531 is implemented
67
- // concatenate all items to easily wrap them in identical spacing components
68
-
69
-
70
- const buttons = [showPrevious && /*#__PURE__*/_jsx(SideButton, { ...previousItemProps,
71
- direction: "previous",
72
- copy: copy,
73
- variant: sideButtonVariant,
74
- tokens: sideButtonTokens,
75
- LinkRouter: LinkRouter,
76
- linkRouterProps: linkRouterProps
77
- }), ...items.map((_child, itemIndex) => {
78
- const buttonLabel = `${itemIndex + 1}`;
79
- const itemProps = getItemProps(itemIndex);
80
- const ItemLinkRouter = itemProps.LinkRouter ?? LinkRouter;
81
- const itemLinkRouterProps = { ...linkRouterProps,
82
- ...itemProps.linkRouterProps
83
- };
84
-
85
- if (shouldRenderButton(itemIndex)) {
86
- return /*#__PURE__*/_jsx(PageButton, { ...itemProps,
87
- LinkRouter: ItemLinkRouter,
88
- linkRouterProps: itemLinkRouterProps,
89
- label: buttonLabel,
90
- copy: copy,
91
- isActive: isItemActive(itemIndex)
92
- });
93
- }
94
-
95
- if (shouldRenderEllipsis(itemIndex)) {
96
- return /*#__PURE__*/_jsx(Text, {
97
- style: ellipsisTextStyles,
98
- children: "..."
99
- });
100
- }
101
-
102
- return null;
103
- }), showNext && /*#__PURE__*/_jsx(SideButton, { ...nextItemProps,
104
- direction: "next",
105
- copy: copy,
106
- variant: sideButtonVariant,
107
- tokens: sideButtonTokens,
108
- LinkRouter: LinkRouter,
109
- linkRouterProps: linkRouterProps
110
- })];
111
- return /*#__PURE__*/_jsx(View, {
112
- style: staticStyles.container,
113
- ref: ref,
114
- ...selectProps(rest),
115
- children: buttons // keep the keys in-line with the page numbers regardless of which buttons are actually rendered
116
- .map((element, index) => [element, `page-${index + 1}`]).filter(([element]) => element !== null).map(([element, key]) => /*#__PURE__*/_jsx(Box, {
117
- right: gap,
118
- children: element
119
- }, key))
120
- });
121
- });
122
- PageButton.displayName = 'PageButton';
123
- Pagination.PageButton = PageButton;
124
- Pagination.propTypes = { ...selectedSystemPropTypes,
125
- ...withLinkRouter.propTypes,
126
- children: componentPropType('PageButton'),
127
- copy: copyPropTypes,
128
- variant: variantProp.propType,
129
- tokens: getTokensPropType('Pagination'),
130
- sideButtonVariant: variantProp.propType,
131
- sideButtonTokens: getTokensPropType('PaginationSideButton')
132
- };
133
- const staticStyles = StyleSheet.create({
134
- container: {
135
- flexDirection: 'row',
136
- flexWrap: 'wrap',
137
- alignItems: 'center'
138
- }
139
- });
140
- export default Pagination;