@telus-uds/components-base 0.0.2-prerelease.7 → 0.0.2-prerelease.8

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 (349) hide show
  1. package/.ultra.cache.json +1 -1
  2. package/CHANGELOG.md +27 -0
  3. package/__fixtures__/Accessible.js +33 -0
  4. package/__fixtures__/Accessible.native.js +32 -0
  5. package/__fixtures__/testTheme.js +429 -29
  6. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  7. package/__tests__/Button/ButtonGroup.test.jsx +2 -2
  8. package/__tests__/Checkbox/CheckboxGroup.test.jsx +247 -0
  9. package/__tests__/Icon/Icon.test.jsx +3 -3
  10. package/__tests__/Modal/Modal.test.jsx +47 -0
  11. package/__tests__/Notification/Notification.test.jsx +20 -0
  12. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  13. package/__tests__/Progress/Progress.test.jsx +79 -0
  14. package/__tests__/Radio/RadioGroup.test.jsx +221 -0
  15. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  16. package/__tests__/RadioCard/RadioCardGroup.test.jsx +247 -0
  17. package/__tests__/Search/Search.test.jsx +72 -0
  18. package/__tests__/Skeleton/Skeleton.test.jsx +1 -1
  19. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  20. package/__tests__/Tabs/Tabs.test.jsx +200 -0
  21. package/__tests__/Tags/Tags.test.jsx +1 -1
  22. package/__tests__/utils/input.test.js +58 -0
  23. package/__tests__/utils/useCopy.test.js +14 -3
  24. package/babel.config.js +20 -0
  25. package/jest.config.js +1 -1
  26. package/lib/A11yInfoProvider/index.js +54 -26
  27. package/lib/A11yText/index.js +37 -14
  28. package/lib/ActivityIndicator/Spinner.js +78 -0
  29. package/lib/ActivityIndicator/Spinner.native.js +121 -87
  30. package/lib/ActivityIndicator/index.js +28 -12
  31. package/lib/ActivityIndicator/shared.js +27 -12
  32. package/lib/BaseProvider/index.js +34 -11
  33. package/lib/Box/Box.js +54 -31
  34. package/lib/Box/index.js +13 -2
  35. package/lib/Button/Button.js +32 -11
  36. package/lib/Button/ButtonBase.js +85 -78
  37. package/lib/Button/ButtonGroup.js +94 -70
  38. package/lib/Button/ButtonLink.js +38 -15
  39. package/lib/Button/index.js +31 -4
  40. package/lib/Button/propTypes.js +32 -9
  41. package/lib/Card/Card.js +36 -41
  42. package/lib/Card/CardBase.js +78 -0
  43. package/lib/Card/PressableCardBase.js +137 -0
  44. package/lib/Card/index.js +40 -2
  45. package/lib/Checkbox/Checkbox.js +139 -103
  46. package/lib/Checkbox/CheckboxGroup.js +231 -0
  47. package/lib/Checkbox/CheckboxInput.js +74 -0
  48. package/lib/Checkbox/CheckboxInput.native.js +9 -1
  49. package/lib/Checkbox/index.js +21 -2
  50. package/lib/Divider/Divider.js +50 -24
  51. package/lib/Divider/index.js +13 -2
  52. package/lib/ExpandCollapse/Accordion.js +20 -7
  53. package/lib/ExpandCollapse/Control.js +50 -27
  54. package/lib/ExpandCollapse/ExpandCollapse.js +41 -24
  55. package/lib/ExpandCollapse/Panel.js +75 -37
  56. package/lib/ExpandCollapse/index.js +25 -7
  57. package/lib/Feedback/Feedback.js +69 -40
  58. package/lib/Feedback/index.js +13 -2
  59. package/lib/Fieldset/Fieldset.js +160 -0
  60. package/lib/Fieldset/FieldsetContainer.js +41 -0
  61. package/lib/Fieldset/FieldsetContainer.native.js +33 -0
  62. package/lib/Fieldset/Legend.js +33 -0
  63. package/lib/Fieldset/Legend.native.js +43 -0
  64. package/lib/Fieldset/cssReset.js +21 -0
  65. package/lib/Fieldset/index.js +13 -0
  66. package/lib/FlexGrid/Col/Col.js +67 -38
  67. package/lib/FlexGrid/Col/index.js +13 -2
  68. package/lib/FlexGrid/FlexGrid.js +70 -45
  69. package/lib/FlexGrid/Row/Row.js +48 -27
  70. package/lib/FlexGrid/Row/index.js +13 -2
  71. package/lib/FlexGrid/helpers/index.js +9 -1
  72. package/lib/FlexGrid/index.js +13 -2
  73. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  74. package/lib/Icon/Icon.js +46 -44
  75. package/lib/Icon/IconText.js +49 -21
  76. package/lib/Icon/index.js +31 -4
  77. package/lib/InputLabel/InputLabel.js +70 -36
  78. package/lib/InputLabel/LabelContent.js +31 -0
  79. package/lib/InputLabel/LabelContent.native.js +9 -1
  80. package/lib/InputLabel/index.js +13 -2
  81. package/lib/InputSupports/InputSupports.js +62 -48
  82. package/lib/InputSupports/index.js +13 -2
  83. package/lib/InputSupports/propTypes.js +19 -8
  84. package/lib/InputSupports/useInputSupports.js +41 -0
  85. package/lib/Link/ChevronLink.js +33 -16
  86. package/lib/Link/InlinePressable.js +50 -0
  87. package/lib/Link/InlinePressable.native.js +34 -11
  88. package/lib/Link/Link.js +25 -9
  89. package/lib/Link/LinkBase.js +87 -57
  90. package/lib/Link/TextButton.js +32 -13
  91. package/lib/Link/index.js +39 -5
  92. package/lib/List/List.js +51 -23
  93. package/lib/List/ListItem.js +70 -40
  94. package/lib/List/index.js +13 -2
  95. package/lib/Modal/Modal.js +226 -0
  96. package/lib/Modal/dictionary.js +16 -0
  97. package/lib/Modal/index.js +13 -0
  98. package/lib/Notification/Notification.js +200 -0
  99. package/lib/Notification/dictionary.js +15 -0
  100. package/lib/Notification/index.js +13 -0
  101. package/lib/Pagination/PageButton.js +47 -25
  102. package/lib/Pagination/Pagination.js +70 -40
  103. package/lib/Pagination/SideButton.js +63 -37
  104. package/lib/Pagination/dictionary.js +9 -2
  105. package/lib/Pagination/index.js +13 -2
  106. package/lib/Pagination/usePagination.js +12 -2
  107. package/lib/Progress/Progress.js +99 -0
  108. package/lib/Progress/ProgressBar.js +146 -0
  109. package/lib/Progress/ProgressBarBackground.js +57 -0
  110. package/lib/Progress/index.js +16 -0
  111. package/lib/Radio/Radio.js +110 -109
  112. package/lib/Radio/RadioButton.js +141 -0
  113. package/lib/Radio/RadioGroup.js +233 -0
  114. package/lib/Radio/RadioInput.js +76 -0
  115. package/lib/Radio/RadioInput.native.js +9 -1
  116. package/lib/Radio/index.js +21 -2
  117. package/lib/RadioCard/RadioCard.js +240 -0
  118. package/lib/RadioCard/RadioCardGroup.js +251 -0
  119. package/lib/RadioCard/index.js +21 -0
  120. package/lib/Search/Search.js +243 -0
  121. package/lib/Search/dictionary.js +19 -0
  122. package/lib/Search/index.js +13 -0
  123. package/lib/Select/Group.js +33 -0
  124. package/lib/Select/Group.native.js +16 -5
  125. package/lib/Select/Item.js +29 -0
  126. package/lib/Select/Item.native.js +14 -4
  127. package/lib/Select/Picker.js +79 -0
  128. package/lib/Select/Picker.native.js +52 -24
  129. package/lib/Select/Select.js +110 -82
  130. package/lib/Select/index.js +19 -6
  131. package/lib/SideNav/Item.js +54 -33
  132. package/lib/SideNav/ItemContent.js +41 -15
  133. package/lib/SideNav/ItemsGroup.js +46 -27
  134. package/lib/SideNav/SideNav.js +92 -69
  135. package/lib/SideNav/index.js +15 -1
  136. package/lib/Skeleton/Skeleton.js +55 -37
  137. package/lib/Skeleton/index.js +13 -2
  138. package/lib/Skeleton/skeleton.constant.js +12 -0
  139. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  140. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  141. package/lib/Spacer/Spacer.js +31 -12
  142. package/lib/Spacer/index.js +13 -2
  143. package/lib/StackView/StackView.js +49 -27
  144. package/lib/StackView/StackWrap.js +33 -10
  145. package/lib/StackView/StackWrap.native.js +13 -2
  146. package/lib/StackView/StackWrapBox.js +46 -24
  147. package/lib/StackView/StackWrapGap.js +43 -22
  148. package/lib/StackView/common.js +19 -4
  149. package/lib/StackView/getStackedContent.js +49 -19
  150. package/lib/StackView/index.js +29 -5
  151. package/lib/StepTracker/Step.js +245 -0
  152. package/lib/StepTracker/StepTracker.js +197 -0
  153. package/lib/StepTracker/dictionary.js +17 -0
  154. package/lib/StepTracker/index.js +13 -0
  155. package/lib/Tabs/HorizontalScroll.js +199 -0
  156. package/lib/Tabs/ScrollViewEnd.js +66 -0
  157. package/lib/Tabs/ScrollViewEnd.native.js +41 -0
  158. package/lib/Tabs/Tabs.js +117 -0
  159. package/lib/Tabs/TabsItem.js +234 -0
  160. package/lib/Tabs/TabsScrollButton.js +121 -0
  161. package/lib/Tabs/dictionary.js +18 -0
  162. package/lib/Tabs/index.js +13 -0
  163. package/lib/Tabs/itemPositions.js +128 -0
  164. package/lib/Tags/Tags.js +130 -97
  165. package/lib/Tags/index.js +13 -2
  166. package/lib/TextInput/TextArea.js +51 -24
  167. package/lib/TextInput/TextInput.js +40 -19
  168. package/lib/TextInput/TextInputBase.js +78 -55
  169. package/lib/TextInput/index.js +23 -3
  170. package/lib/TextInput/propTypes.js +18 -7
  171. package/lib/ThemeProvider/ThemeProvider.js +38 -14
  172. package/lib/ThemeProvider/index.js +61 -6
  173. package/lib/ThemeProvider/useSetTheme.js +14 -5
  174. package/lib/ThemeProvider/useTheme.js +13 -4
  175. package/lib/ThemeProvider/useThemeTokens.js +32 -16
  176. package/lib/ThemeProvider/utils/index.js +31 -2
  177. package/lib/ThemeProvider/utils/styles.js +52 -16
  178. package/lib/ThemeProvider/utils/theme-tokens.js +94 -16
  179. package/lib/ToggleSwitch/ToggleSwitch.js +75 -51
  180. package/lib/ToggleSwitch/index.js +13 -2
  181. package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +22 -18
  182. package/lib/Tooltip/Backdrop.native.js +39 -15
  183. package/lib/Tooltip/Tooltip.js +112 -70
  184. package/lib/Tooltip/dictionary.js +9 -2
  185. package/lib/Tooltip/getTooltipPosition.js +9 -1
  186. package/lib/Tooltip/index.js +13 -2
  187. package/lib/TooltipButton/TooltipButton.js +57 -38
  188. package/lib/TooltipButton/index.js +13 -2
  189. package/lib/Typography/Typography.js +57 -27
  190. package/lib/Typography/index.js +13 -2
  191. package/lib/ViewportProvider/ViewportProvider.js +34 -13
  192. package/lib/ViewportProvider/index.js +28 -3
  193. package/lib/ViewportProvider/useViewport.js +15 -3
  194. package/lib/ViewportProvider/useViewportListener.js +24 -10
  195. package/lib/index.js +509 -33
  196. package/lib/utils/a11y/index.js +18 -1
  197. package/lib/utils/a11y/textSize.js +23 -7
  198. package/lib/utils/animation/index.js +15 -2
  199. package/lib/utils/animation/useVerticalExpandAnimation.js +28 -11
  200. package/lib/utils/children.js +87 -0
  201. package/lib/utils/index.js +163 -10
  202. package/lib/utils/info/index.js +18 -6
  203. package/lib/utils/info/platform/index.js +19 -7
  204. package/lib/utils/info/platform/platform.android.js +8 -1
  205. package/lib/utils/info/platform/platform.ios.js +8 -1
  206. package/lib/utils/info/platform/platform.js +8 -0
  207. package/lib/utils/info/platform/platform.native.js +8 -1
  208. package/lib/utils/info/versions.js +15 -4
  209. package/lib/utils/input.js +51 -33
  210. package/lib/utils/pressability.js +38 -10
  211. package/lib/utils/propTypes.js +217 -125
  212. package/lib/utils/useCopy.js +40 -5
  213. package/lib/utils/useHash.js +48 -0
  214. package/lib/utils/useHash.native.js +15 -0
  215. package/lib/utils/useResponsiveProp.js +21 -9
  216. package/lib/utils/useSpacingScale.js +21 -9
  217. package/lib/utils/useUniqueId.js +13 -4
  218. package/package.json +7 -6
  219. package/release-context.json +4 -4
  220. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +0 -0
  221. package/src/Box/Box.jsx +11 -4
  222. package/src/Button/Button.jsx +3 -2
  223. package/src/Button/ButtonBase.jsx +27 -36
  224. package/src/Button/ButtonGroup.jsx +2 -2
  225. package/src/Button/ButtonLink.jsx +3 -2
  226. package/src/Button/propTypes.js +12 -2
  227. package/src/Card/Card.jsx +4 -30
  228. package/src/Card/CardBase.jsx +57 -0
  229. package/src/Card/PressableCardBase.jsx +112 -0
  230. package/src/Card/index.js +3 -0
  231. package/src/Checkbox/Checkbox.jsx +10 -11
  232. package/src/Checkbox/CheckboxGroup.jsx +196 -0
  233. package/src/Checkbox/{CheckboxInput.web.jsx → CheckboxInput.jsx} +0 -0
  234. package/src/Checkbox/index.js +2 -0
  235. package/src/ExpandCollapse/Control.jsx +1 -1
  236. package/src/Feedback/Feedback.jsx +1 -1
  237. package/src/Fieldset/Fieldset.jsx +129 -0
  238. package/src/Fieldset/FieldsetContainer.jsx +22 -0
  239. package/src/Fieldset/FieldsetContainer.native.jsx +16 -0
  240. package/src/Fieldset/Legend.jsx +16 -0
  241. package/src/Fieldset/Legend.native.jsx +22 -0
  242. package/src/Fieldset/cssReset.js +14 -0
  243. package/src/Fieldset/index.js +3 -0
  244. package/src/Icon/Icon.jsx +14 -23
  245. package/src/Icon/IconText.jsx +2 -2
  246. package/src/Icon/index.js +2 -2
  247. package/src/InputLabel/InputLabel.jsx +9 -2
  248. package/src/InputLabel/{LabelContent.web.jsx → LabelContent.jsx} +0 -0
  249. package/src/InputSupports/InputSupports.jsx +7 -18
  250. package/src/InputSupports/useInputSupports.js +30 -0
  251. package/src/Link/{InlinePressable.web.jsx → InlinePressable.jsx} +0 -0
  252. package/src/Link/LinkBase.jsx +14 -12
  253. package/src/Modal/Modal.jsx +185 -0
  254. package/src/Modal/dictionary.js +9 -0
  255. package/src/Modal/index.js +3 -0
  256. package/src/Notification/Notification.jsx +149 -0
  257. package/src/Notification/dictionary.js +8 -0
  258. package/src/Notification/index.js +3 -0
  259. package/src/Progress/Progress.jsx +77 -0
  260. package/src/Progress/ProgressBar.jsx +110 -0
  261. package/src/Progress/ProgressBarBackground.jsx +34 -0
  262. package/src/Progress/index.js +6 -0
  263. package/src/Radio/Radio.jsx +19 -56
  264. package/src/Radio/RadioButton.jsx +131 -0
  265. package/src/Radio/RadioGroup.jsx +198 -0
  266. package/src/Radio/{RadioInput.web.jsx → RadioInput.jsx} +0 -0
  267. package/src/Radio/index.js +2 -0
  268. package/src/RadioCard/RadioCard.jsx +191 -0
  269. package/src/RadioCard/RadioCardGroup.jsx +211 -0
  270. package/src/RadioCard/index.js +5 -0
  271. package/src/Search/Search.jsx +204 -0
  272. package/src/Search/dictionary.js +12 -0
  273. package/src/Search/index.js +3 -0
  274. package/src/Select/{Group.web.jsx → Group.jsx} +0 -0
  275. package/src/Select/{Item.web.jsx → Item.jsx} +0 -0
  276. package/src/Select/{Picker.web.jsx → Picker.jsx} +0 -0
  277. package/src/Select/Select.jsx +12 -22
  278. package/src/SideNav/Item.jsx +2 -2
  279. package/src/Skeleton/Skeleton.jsx +17 -20
  280. package/src/Skeleton/skeleton.constant.js +3 -0
  281. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  282. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  283. package/src/StackView/StackView.jsx +10 -3
  284. package/src/StackView/StackWrap.jsx +9 -1
  285. package/src/StackView/StackWrapBox.jsx +4 -3
  286. package/src/StackView/StackWrapGap.jsx +3 -3
  287. package/src/StackView/getStackedContent.jsx +8 -2
  288. package/src/StepTracker/Step.jsx +202 -0
  289. package/src/StepTracker/StepTracker.jsx +163 -0
  290. package/src/StepTracker/dictionary.js +10 -0
  291. package/src/StepTracker/index.js +3 -0
  292. package/src/Tabs/HorizontalScroll.jsx +165 -0
  293. package/src/Tabs/ScrollViewEnd.jsx +53 -0
  294. package/src/Tabs/ScrollViewEnd.native.jsx +24 -0
  295. package/src/Tabs/Tabs.jsx +89 -0
  296. package/src/Tabs/TabsItem.jsx +204 -0
  297. package/src/Tabs/TabsScrollButton.jsx +100 -0
  298. package/src/Tabs/dictionary.js +11 -0
  299. package/src/Tabs/index.js +3 -0
  300. package/src/Tabs/itemPositions.js +101 -0
  301. package/src/Tags/Tags.jsx +2 -1
  302. package/src/TextInput/TextInputBase.jsx +12 -22
  303. package/src/ThemeProvider/useThemeTokens.js +2 -2
  304. package/src/ThemeProvider/utils/styles.js +18 -5
  305. package/src/ThemeProvider/utils/theme-tokens.js +46 -5
  306. package/src/ToggleSwitch/ToggleSwitch.jsx +2 -3
  307. package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
  308. package/src/Tooltip/Tooltip.jsx +1 -1
  309. package/src/TooltipButton/TooltipButton.jsx +23 -27
  310. package/src/Typography/Typography.jsx +6 -5
  311. package/src/index.js +20 -2
  312. package/src/utils/children.jsx +66 -0
  313. package/src/utils/index.js +3 -0
  314. package/src/utils/info/platform/platform.js +1 -0
  315. package/src/utils/info/versions.js +2 -2
  316. package/src/utils/input.js +20 -12
  317. package/src/utils/pressability.js +4 -0
  318. package/src/utils/propTypes.js +98 -34
  319. package/src/utils/useCopy.js +30 -4
  320. package/src/utils/useHash.js +34 -0
  321. package/src/utils/useHash.native.js +6 -0
  322. package/stories/A11yText/A11yText.stories.jsx +4 -8
  323. package/stories/Checkbox/Checkbox.stories.jsx +24 -1
  324. package/stories/Icon/Icon.stories.jsx +6 -5
  325. package/stories/Modal/Modal.stories.jsx +29 -0
  326. package/stories/Notification/Notification.stories.jsx +82 -0
  327. package/stories/Progress/Progress.stories.jsx +93 -0
  328. package/stories/Radio/Radio.stories.jsx +23 -36
  329. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  330. package/stories/Search/Search.stories.jsx +16 -0
  331. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  332. package/stories/Tabs/Tabs.stories.jsx +97 -0
  333. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +0 -0
  334. package/__fixtures__/accessible.icon.svg +0 -6
  335. package/babel.config.json +0 -8
  336. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  337. package/lib/Checkbox/CheckboxInput.web.js +0 -57
  338. package/lib/InputLabel/LabelContent.web.js +0 -17
  339. package/lib/Link/InlinePressable.web.js +0 -32
  340. package/lib/Radio/RadioInput.web.js +0 -59
  341. package/lib/Select/Group.web.js +0 -18
  342. package/lib/Select/Item.web.js +0 -15
  343. package/lib/Select/Picker.web.js +0 -63
  344. package/lib/config/svgr-icons-web.js +0 -9
  345. package/lib/config/svgr-icons.js +0 -52
  346. package/lib/utils/info/platform/platform.web.js +0 -1
  347. package/src/config/svgr-icons-web.js +0 -11
  348. package/src/config/svgr-icons.js +0 -46
  349. package/src/utils/info/platform/platform.web.js +0 -1
package/lib/Link/index.js CHANGED
@@ -1,5 +1,39 @@
1
- import ChevronLink from './ChevronLink';
2
- import Link from './Link';
3
- import LinkBase from './LinkBase';
4
- import TextButton from './TextButton';
5
- export { ChevronLink, Link, LinkBase, TextButton };
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ChevronLink", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ChevronLink.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "Link", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Link.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "LinkBase", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _LinkBase.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "TextButton", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _TextButton.default;
28
+ }
29
+ });
30
+
31
+ var _ChevronLink = _interopRequireDefault(require("./ChevronLink"));
32
+
33
+ var _Link = _interopRequireDefault(require("./Link"));
34
+
35
+ var _LinkBase = _interopRequireDefault(require("./LinkBase"));
36
+
37
+ var _TextButton = _interopRequireDefault(require("./TextButton"));
38
+
39
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
package/lib/List/List.js CHANGED
@@ -1,14 +1,36 @@
1
- import React, { cloneElement, Children } from 'react';
2
- import { View, Platform } from 'react-native';
3
- import PropTypes from 'prop-types';
4
- import { getTokensPropType, variantProp, componentPropType } from '../utils';
5
- import { a11yProps } from '../utils/propTypes';
6
- import ListItem from './ListItem';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
11
+
12
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _propTypes2 = require("../utils/propTypes");
19
+
20
+ var _ListItem = _interopRequireDefault(require("./ListItem"));
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
7
30
  /**
8
31
  * A Unordered List component has a child a ListItem that
9
32
  * allows icon, dividers and customized typography
10
33
  */
11
-
12
34
  const List = ({
13
35
  children,
14
36
  showDivider,
@@ -16,16 +38,18 @@ const List = ({
16
38
  variant,
17
39
  ...rest
18
40
  }) => {
19
- const accessibilityRole = Platform.select({
41
+ const accessibilityRole = _Platform.default.select({
20
42
  web: 'list',
21
43
  default: 'none'
22
44
  });
23
- const a11y = a11yProps.select(rest);
24
- const items = Children.map(children, (child, index) => {
25
- if (child.type.name === ListItem.name) {
26
- return /*#__PURE__*/cloneElement(child, {
45
+
46
+ const a11y = _propTypes2.a11yProps.select(rest);
47
+
48
+ const items = _react.Children.map(children, (child, index) => {
49
+ if (child.type.name === _ListItem.default.name) {
50
+ return /*#__PURE__*/(0, _react.cloneElement)(child, {
27
51
  showDivider,
28
- isLastItem: index + 1 === Children.count(children),
52
+ isLastItem: index + 1 === _react.Children.count(children),
29
53
  tokens,
30
54
  variant
31
55
  });
@@ -33,20 +57,24 @@ const List = ({
33
57
 
34
58
  return child;
35
59
  });
36
- return /*#__PURE__*/React.createElement(View, Object.assign({
37
- accessibilityRole: accessibilityRole
38
- }, a11y), items);
60
+
61
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
62
+ accessibilityRole: accessibilityRole,
63
+ ...a11y,
64
+ children: items
65
+ });
39
66
  };
40
67
 
41
- List.Item = ListItem;
42
- List.propTypes = { ...a11yProps.types,
43
- tokens: getTokensPropType('List'),
44
- variant: variantProp.propType,
45
- children: componentPropType('ListItem'),
68
+ List.Item = _ListItem.default;
69
+ List.propTypes = { ..._propTypes2.a11yProps.types,
70
+ tokens: (0, _utils.getTokensPropType)('List'),
71
+ variant: _utils.variantProp.propType,
72
+ children: (0, _utils.componentPropType)('ListItem'),
46
73
 
47
74
  /**
48
75
  * In case it is not the last item allow display divider
49
76
  */
50
- showDivider: PropTypes.bool
77
+ showDivider: _propTypes.default.bool
51
78
  };
52
- export default List;
79
+ var _default = List;
80
+ exports.default = _default;
@@ -1,8 +1,29 @@
1
- import React from 'react';
2
- import { View, Platform, Text, StyleSheet } from 'react-native';
3
- import PropTypes from 'prop-types';
4
- import { useThemeTokens, applyTextStyles } from '../ThemeProvider';
5
- import { getTokensPropType, variantProp } from '../utils';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
11
+
12
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
+
14
+ var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
15
+
16
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
17
+
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _ThemeProvider = require("../ThemeProvider");
21
+
22
+ var _utils = require("../utils");
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
27
 
7
28
  const selectBulletStyles = ({
8
29
  itemBulletWidth,
@@ -43,7 +64,7 @@ const selectItemStyles = ({
43
64
  itemFontSize,
44
65
  itemLineHeight,
45
66
  itemFontName
46
- }) => applyTextStyles({
67
+ }) => (0, _ThemeProvider.applyTextStyles)({
47
68
  fontWeight: itemFontWeight,
48
69
  fontSize: itemFontSize,
49
70
  lineHeight: itemLineHeight,
@@ -81,7 +102,7 @@ const ListItem = ({
81
102
  children,
82
103
  isLastItem
83
104
  }) => {
84
- const themeTokens = useThemeTokens('List', tokens, variant);
105
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('List', tokens, variant);
85
106
  const itemStyles = selectItemStyles(themeTokens);
86
107
  const itemBlockStyles = selectItemBlockStyles(themeTokens);
87
108
  const dividerStyles = selectDividerStyles(themeTokens);
@@ -89,7 +110,8 @@ const ListItem = ({
89
110
  const itemBulletStyles = selectBulletStyles(themeTokens);
90
111
  const iconTokens = selectItemIconTokens(themeTokens);
91
112
  const sideItemContainerStyles = selectSideItemContainerStyles(themeTokens);
92
- const accessibilityRole = Platform.select({
113
+
114
+ const accessibilityRole = _Platform.default.select({
93
115
  web: 'listitem',
94
116
  default: 'item'
95
117
  });
@@ -104,12 +126,15 @@ const ListItem = ({
104
126
 
105
127
  const renderItem = () => {
106
128
  if (areChildrenStrings()) {
107
- return /*#__PURE__*/React.createElement(Text, {
108
- style: itemStyles
109
- }, children);
129
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
130
+ style: itemStyles,
131
+ children: children
132
+ });
110
133
  }
111
134
 
112
- return /*#__PURE__*/React.createElement(View, null, children);
135
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
136
+ children: children
137
+ });
113
138
  };
114
139
  /**
115
140
  * Function responsible returning styling, in case the item is the last shouldn't
@@ -137,34 +162,37 @@ const ListItem = ({
137
162
 
138
163
 
139
164
  const renderMarker = () => {
140
- const IconComponent = icon || /*#__PURE__*/React.createElement(React.Fragment, null);
165
+ const IconComponent = icon || /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
141
166
 
142
167
  if (icon) {
143
- return /*#__PURE__*/React.createElement(View, {
144
- style: [sideItemContainerStyles, areChildrenStrings() ? staticStyles.centeredIcons : undefined]
145
- }, /*#__PURE__*/React.createElement(IconComponent, {
146
- tokens: { ...iconTokens,
147
- size: iconSize || iconTokens.size,
148
- color: iconColor || iconTokens.color
149
- }
150
- }));
168
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
169
+ style: [sideItemContainerStyles, areChildrenStrings() ? staticStyles.centeredIcons : undefined],
170
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, {
171
+ tokens: { ...iconTokens,
172
+ size: iconSize || iconTokens.size,
173
+ color: iconColor || iconTokens.color
174
+ }
175
+ })
176
+ });
151
177
  }
152
178
 
153
- return /*#__PURE__*/React.createElement(View, {
154
- style: [sideItemContainerStyles, itemBulletContainerStyles]
155
- }, /*#__PURE__*/React.createElement(View, {
156
- style: itemBulletStyles,
157
- testID: "unordered-item-bullet"
158
- }));
179
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
180
+ style: [sideItemContainerStyles, itemBulletContainerStyles],
181
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
182
+ style: itemBulletStyles,
183
+ testID: "unordered-item-bullet"
184
+ })
185
+ });
159
186
  };
160
187
 
161
- return /*#__PURE__*/React.createElement(View, {
188
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
162
189
  style: [staticStyles.itemContainer, getContainerStyle()],
163
- accessibilityRole: accessibilityRole
164
- }, renderMarker(), renderItem());
190
+ accessibilityRole: accessibilityRole,
191
+ children: [renderMarker(), renderItem()]
192
+ });
165
193
  };
166
194
 
167
- const staticStyles = StyleSheet.create({
195
+ const staticStyles = _StyleSheet.default.create({
168
196
  itemContainer: {
169
197
  flexDirection: 'row'
170
198
  },
@@ -172,36 +200,38 @@ const staticStyles = StyleSheet.create({
172
200
  justifyContent: 'center'
173
201
  }
174
202
  });
203
+
175
204
  ListItem.propTypes = {
176
- tokens: getTokensPropType('List'),
177
- variant: variantProp.propType,
178
- children: PropTypes.node.isRequired,
205
+ tokens: (0, _utils.getTokensPropType)('List'),
206
+ variant: _utils.variantProp.propType,
207
+ children: _propTypes.default.node.isRequired,
179
208
 
180
209
  /**
181
210
  * Renders side item icon
182
211
  */
183
- icon: PropTypes.func,
212
+ icon: _propTypes.default.func,
184
213
 
185
214
  /**
186
215
  * Will set display icon color
187
216
  */
188
- iconColor: PropTypes.string,
217
+ iconColor: _propTypes.default.string,
189
218
 
190
219
  /**
191
220
  * Allow the user define the icon size if not defined the theme's file
192
221
  */
193
- iconSize: PropTypes.number,
222
+ iconSize: _propTypes.default.number,
194
223
 
195
224
  /**
196
225
  * @ignore
197
226
  * Defined by parent if it's last item on the list
198
227
  */
199
- isLastItem: PropTypes.bool,
228
+ isLastItem: _propTypes.default.bool,
200
229
 
201
230
  /**
202
231
  * @ignore
203
232
  * In case it is not the last item allow display divider
204
233
  */
205
- showDivider: PropTypes.bool
234
+ showDivider: _propTypes.default.bool
206
235
  };
207
- export default ListItem;
236
+ var _default = ListItem;
237
+ exports.default = _default;
package/lib/List/index.js CHANGED
@@ -1,2 +1,13 @@
1
- import List from './List';
2
- export default List;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _List = _interopRequireDefault(require("./List"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _List.default;
13
+ exports.default = _default;
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
+
12
+ var _TouchableWithoutFeedback = _interopRequireDefault(require("react-native-web/dist/cjs/exports/TouchableWithoutFeedback"));
13
+
14
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
15
+
16
+ var _Modal = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Modal"));
17
+
18
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _ThemeProvider = require("../ThemeProvider");
23
+
24
+ var _utils = require("../utils");
25
+
26
+ var _ViewportProvider = require("../ViewportProvider");
27
+
28
+ var _ButtonBase = _interopRequireDefault(require("../Button/ButtonBase"));
29
+
30
+ var _dictionary = _interopRequireDefault(require("./dictionary"));
31
+
32
+ var _jsxRuntime = require("react/jsx-runtime");
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+
36
+ const selectContainerStyles = ({
37
+ containerPaddingLeft,
38
+ containerPaddingRight,
39
+ containerPaddingTop,
40
+ containerPaddingBottom,
41
+ maxWidth,
42
+ height
43
+ }) => ({
44
+ height,
45
+ maxWidth,
46
+ paddingLeft: containerPaddingLeft,
47
+ paddingRight: containerPaddingRight,
48
+ paddingTop: containerPaddingTop,
49
+ paddingBottom: containerPaddingBottom
50
+ });
51
+
52
+ const selectModalStyles = ({
53
+ backgroundColor,
54
+ borderRadius,
55
+ height,
56
+ paddingLeft,
57
+ paddingRight,
58
+ paddingTop,
59
+ paddingBottom,
60
+ shadow
61
+ }) => ({
62
+ backgroundColor,
63
+ borderRadius,
64
+ height,
65
+ paddingLeft,
66
+ paddingRight,
67
+ paddingTop,
68
+ paddingBottom,
69
+ ...(0, _ThemeProvider.applyShadowToken)(shadow)
70
+ });
71
+
72
+ const selectBackdropStyles = ({
73
+ backdropColor,
74
+ backdropOpacity
75
+ }) => ({
76
+ backgroundColor: backdropColor,
77
+ opacity: backdropOpacity
78
+ });
79
+
80
+ const selectCloseButtonContainerStyles = ({
81
+ paddingRight,
82
+ paddingTop
83
+ }) => ({
84
+ paddingRight,
85
+ paddingTop
86
+ });
87
+
88
+ const selectCloseIconProps = ({
89
+ closeIconSize,
90
+ closeIconColor
91
+ }) => ({
92
+ size: closeIconSize,
93
+ color: closeIconColor
94
+ });
95
+ /**
96
+ * A modal window is a secondary window that opens on top of the main one.
97
+ * Users have to interact with it before they can carry out their task and return to the main window.
98
+ * Use to reveal additional information to a user after they have performed an explicit interaction.
99
+ * They are a strongly discouraged pattern; it's preferred to have all relevant information within a page,
100
+ * and irrelevant information either linked externally or omitted.
101
+ *
102
+ * - Must only appear after a customer interaction, not on page load or any other circumstance
103
+ * - Open a modal based on explicit customer action e.g. clicking on a button/link/form field
104
+ * - Only one modal should be "current" at any time
105
+ * - Read [WebAIM's documentation](https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/dialog.html) to create accessible modals
106
+ * - Don’t use modals to reinforce or repeat information already available in the parent page or view
107
+ * - Don’t use modals consecutively
108
+ */
109
+
110
+
111
+ const Modal = ({
112
+ children,
113
+ isOpen,
114
+ onClose,
115
+ maxWidth,
116
+ tokens,
117
+ variant,
118
+ copy
119
+ }) => {
120
+ const viewport = (0, _ViewportProvider.useViewport)();
121
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Modal', tokens, variant, {
122
+ viewport,
123
+ maxWidth
124
+ });
125
+ const {
126
+ closeIcon: CloseIconComponent
127
+ } = themeTokens;
128
+ const getCopy = (0, _utils.useCopy)({
129
+ dictionary: _dictionary.default,
130
+ copy
131
+ });
132
+ const closeLabel = getCopy('closeButton');
133
+
134
+ const handleClose = () => {
135
+ if (typeof onClose === 'function') onClose();
136
+ };
137
+
138
+ const handleKeyUp = event => {
139
+ if (event.key === 'Escape') onClose();
140
+ };
141
+
142
+ if (!isOpen) {
143
+ return null;
144
+ } // TODO: replace the close button with IconButton when implemented (https://github.com/telus/universal-design-system/issues/281)
145
+
146
+
147
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.default, {
148
+ transparent: true,
149
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
150
+ style: [staticStyles.positioningContainer],
151
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
152
+ style: [staticStyles.sizingContainer, selectContainerStyles(themeTokens)],
153
+ pointerEvents: "box-none" // don't capture backdrop press events
154
+ ,
155
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
156
+ style: [staticStyles.modal, selectModalStyles(themeTokens)],
157
+ onKeyUp: handleKeyUp,
158
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
159
+ style: [staticStyles.closeButtonContainer, selectCloseButtonContainerStyles(themeTokens)],
160
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
161
+ onPress: handleClose,
162
+ accessibilityRole: "button",
163
+ accessibilityLabel: closeLabel,
164
+ children: // TODO: add close button interactive states after IconButton is done
165
+ () => /*#__PURE__*/(0, _jsxRuntime.jsx)(CloseIconComponent, { ...selectCloseIconProps(themeTokens)
166
+ })
167
+ })
168
+ }), children]
169
+ })
170
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TouchableWithoutFeedback.default, {
171
+ onPress: handleClose,
172
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
173
+ style: [staticStyles.backdrop, selectBackdropStyles(themeTokens)]
174
+ })
175
+ })]
176
+ })
177
+ });
178
+ };
179
+
180
+ Modal.propTypes = {
181
+ children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.arrayOf(_propTypes.default.node)]),
182
+ copy: _utils.copyPropTypes,
183
+ isOpen: _propTypes.default.bool,
184
+ onClose: _propTypes.default.func,
185
+ maxWidth: _propTypes.default.bool,
186
+ tokens: (0, _utils.getTokensPropType)('Modal'),
187
+ variant: _utils.variantProp.propType
188
+ };
189
+ var _default = Modal;
190
+ exports.default = _default;
191
+
192
+ const staticStyles = _StyleSheet.default.create({
193
+ backdrop: {
194
+ position: 'absolute',
195
+ top: 0,
196
+ left: 0,
197
+ right: 0,
198
+ bottom: 0,
199
+ zIndex: -1,
200
+ ..._Platform.default.select({
201
+ web: {
202
+ cursor: 'pointer'
203
+ }
204
+ })
205
+ },
206
+ positioningContainer: {
207
+ flexBasis: '100%',
208
+ alignItems: 'center',
209
+ justifyContent: 'center'
210
+ },
211
+ sizingContainer: {
212
+ maxHeight: '100%',
213
+ // so that the container can expand up to the full viewport height
214
+ width: '100%' // ensure that the modal actually expands to the set maxWidth
215
+
216
+ },
217
+ modal: {
218
+ maxHeight: '100%' // so that the modal can expand vertically up to the sizing container's height (exclusive of its vertical padding)
219
+
220
+ },
221
+ closeButtonContainer: {
222
+ position: 'absolute',
223
+ top: 0,
224
+ right: 0
225
+ }
226
+ });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ en: {
9
+ // English text from TDS Community `Modal`
10
+ closeButton: 'Close'
11
+ },
12
+ fr: {
13
+ closeButton: 'Fermer'
14
+ }
15
+ };
16
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Modal = _interopRequireDefault(require("./Modal"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _Modal.default;
13
+ exports.default = _default;