@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
@@ -1,36 +1,46 @@
1
- import PropTypes from 'prop-types';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
2
12
  const inputSupportProps = {
3
13
  types: {
4
14
  /**
5
15
  * The input label.
6
16
  */
7
- label: PropTypes.string,
17
+ label: _propTypes.default.string,
8
18
 
9
19
  /**
10
20
  * A short description of the expected input.
11
21
  */
12
- hint: PropTypes.string,
22
+ hint: _propTypes.default.string,
13
23
 
14
24
  /**
15
25
  * Position of the hint relative to label. Use `below` to display a larger hint below the label.
16
26
  */
17
- hintPosition: PropTypes.oneOf(['inline', 'below']),
27
+ hintPosition: _propTypes.default.oneOf(['inline', 'below']),
18
28
 
19
29
  /**
20
30
  * A detailed description of validation error/success or additional instructions.
21
31
  * Visual variant is determined based on the `validation` prop.
22
32
  */
23
- feedback: PropTypes.string,
33
+ feedback: _propTypes.default.string,
24
34
 
25
35
  /**
26
36
  * Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
27
37
  */
28
- tooltip: PropTypes.string,
38
+ tooltip: _propTypes.default.string,
29
39
 
30
40
  /**
31
41
  * Use to visually mark an input as valid or invalid.
32
42
  */
33
- validation: PropTypes.oneOf(['error', 'success'])
43
+ validation: _propTypes.default.oneOf(['error', 'success'])
34
44
  },
35
45
  select: ({
36
46
  label,
@@ -52,4 +62,5 @@ const inputSupportProps = {
52
62
  rest
53
63
  })
54
64
  };
55
- export default inputSupportProps;
65
+ var _default = inputSupportProps;
66
+ exports.default = _default;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _useUniqueId = _interopRequireDefault(require("../utils/useUniqueId"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const joinDefined = array => array.filter(item => item !== undefined).join(' ');
13
+
14
+ const useInputSupports = ({
15
+ label,
16
+ feedback,
17
+ validation,
18
+ hint
19
+ }) => {
20
+ const hasValidationError = validation === 'error';
21
+ const inputId = (0, _useUniqueId.default)('input');
22
+ const hintId = (0, _useUniqueId.default)('input-hint');
23
+ const feedbackId = (0, _useUniqueId.default)('input-feedback');
24
+ const a11yProps = {
25
+ accessibilityLabel: label,
26
+ accessibilityHint: joinDefined([!hasValidationError && feedback, hint]),
27
+ // native only -> replaced with describedBy on web
28
+ accessibilityDescribedBy: joinDefined([!hasValidationError && feedback && feedbackId, // feedback receives a11yRole=alert on error, so there's no need to include it here
29
+ hint && hintId]),
30
+ accessibilityInvalid: hasValidationError
31
+ };
32
+ return {
33
+ inputId,
34
+ hintId,
35
+ feedbackId,
36
+ a11yProps
37
+ };
38
+ };
39
+
40
+ var _default = useInputSupports;
41
+ exports.default = _default;
@@ -1,15 +1,30 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useThemeTokensCallback } from '../ThemeProvider';
4
- import { selectTokens, getTokensPropType } from '../utils';
5
- import LinkBase from './LinkBase';
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 _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ThemeProvider = require("../ThemeProvider");
13
+
14
+ var _utils = require("../utils");
15
+
16
+ var _LinkBase = _interopRequireDefault(require("./LinkBase"));
17
+
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
6
22
  /**
7
23
  * `ChevronLink` is a convenience wrapper around the `Link` component to enable "directional" links.
8
24
  * It effectively pre-binds left and right icons, and a directional translation of the icon on hover.
9
25
  *
10
26
  * ChevronLink is not intended to be deeply themable; variants passed to ChevronLink are forwarded to Link.
11
27
  */
12
-
13
28
  const ChevronLink = ({
14
29
  direction = 'right',
15
30
  children,
@@ -17,7 +32,7 @@ const ChevronLink = ({
17
32
  variant,
18
33
  ...linkProps
19
34
  }) => {
20
- const getChevronTokens = useThemeTokensCallback('ChevronLink', tokens, variant);
35
+ const getChevronTokens = (0, _ThemeProvider.useThemeTokensCallback)('ChevronLink', tokens, variant);
21
36
 
22
37
  const applyChevronTokens = linkState => {
23
38
  const {
@@ -26,21 +41,23 @@ const ChevronLink = ({
26
41
  iconDisplace,
27
42
  ...otherTokens
28
43
  } = getChevronTokens(linkState);
29
- return { ...selectTokens('Link', otherTokens),
44
+ return { ...(0, _utils.selectTokens)('Link', otherTokens),
30
45
  icon: direction === 'right' ? rightIcon : leftIcon,
31
46
  iconTranslateX: iconDisplace * (direction === 'right' ? 1 : -1) || 0
32
47
  };
33
48
  };
34
49
 
35
- const getTokens = useThemeTokensCallback('Link', applyChevronTokens, variant);
36
- return /*#__PURE__*/React.createElement(LinkBase, Object.assign({}, linkProps, {
50
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Link', applyChevronTokens, variant);
51
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinkBase.default, { ...linkProps,
37
52
  iconPosition: direction,
38
- tokens: getTokens
39
- }), children);
53
+ tokens: getTokens,
54
+ children: children
55
+ });
40
56
  };
41
57
 
42
- ChevronLink.propTypes = { ...LinkBase.propTypes,
43
- tokens: getTokensPropType('ChevronLink', 'Link'),
44
- direction: PropTypes.oneOf(['left', 'right'])
58
+ ChevronLink.propTypes = { ..._LinkBase.default.propTypes,
59
+ tokens: (0, _utils.getTokensPropType)('ChevronLink', 'Link'),
60
+ direction: _propTypes.default.oneOf(['left', 'right'])
45
61
  };
46
- export default ChevronLink;
62
+ var _default = ChevronLink;
63
+ exports.default = _default;
@@ -0,0 +1,50 @@
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 _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
11
+
12
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
13
+
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ /**
19
+ * @typedef {import('react-native').PressableProps} PressableProps
20
+ */
21
+
22
+ /**
23
+ * InlinePressable is an alternative to React Native's Pressable that works better when nested
24
+ * inline inside Text. It accepts the same props as React Native's Pressable.
25
+ *
26
+ * On Web it simply passes its props to Pressable and defaults to `inline-flex` instead of `flex`.
27
+ *
28
+ * @param {PressableProps} PressableProps
29
+ */
30
+ // React Native exports prop Types but not propTypes, use JSDoc types here rather than duplicate RN
31
+ // eslint-disable-next-line react/prop-types
32
+ const InlinePressable = ({
33
+ children,
34
+ style,
35
+ ...props
36
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
37
+ style: pressState => [staticStyles.inline, typeof style === 'function' ? style(pressState) : style],
38
+ ...props,
39
+ children: pressState => typeof children === 'function' ? children(pressState) : children
40
+ });
41
+
42
+ const staticStyles = _StyleSheet.default.create({
43
+ inline: {
44
+ // Stop Pressable defaulting to (block) flex
45
+ display: 'inline-flex'
46
+ }
47
+ });
48
+
49
+ var _default = InlinePressable;
50
+ exports.default = _default;
@@ -1,11 +1,30 @@
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 _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
11
+
12
+ var _TouchableWithoutFeedback = _interopRequireDefault(require("react-native-web/dist/cjs/exports/TouchableWithoutFeedback"));
13
+
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ 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); }
19
+
20
+ 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; }
21
+
1
22
  /* eslint-disable camelcase */
2
- import React, { useState } from 'react';
3
- import { Text, TouchableWithoutFeedback } from 'react-native';
23
+
4
24
  /**
5
25
  * @typedef {import('react-native').PressableProps} PressableProps
6
26
  */
7
27
  // TouchableWithoutFeedback and Pressable have similar but not identical props APIs
8
-
9
28
  const pressablePropsToTouchable = ({
10
29
  unstable_pressDelay,
11
30
  android_disableSound,
@@ -44,13 +63,13 @@ const InlinePressable = ({
44
63
  style,
45
64
  ...rest
46
65
  }) => {
47
- const [isFocused, setIsFocused] = useState(false);
66
+ const [isFocused, setIsFocused] = (0, _react.useState)(false);
48
67
 
49
68
  const handleFocus = () => setIsFocused(true);
50
69
 
51
70
  const handleBlur = () => setIsFocused(false);
52
71
 
53
- const [isPressed, setIsPressed] = useState(false);
72
+ const [isPressed, setIsPressed] = (0, _react.useState)(false);
54
73
 
55
74
  const handlePressIn = () => setIsPressed(true);
56
75
 
@@ -64,15 +83,19 @@ const InlinePressable = ({
64
83
 
65
84
  };
66
85
  const currentStyle = typeof style === 'function' ? style(pressState) : style;
67
- return /*#__PURE__*/React.createElement(TouchableWithoutFeedback, Object.assign({
86
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TouchableWithoutFeedback.default, {
68
87
  onPress: onPress,
69
88
  onPressIn: handlePressIn,
70
89
  onPressOut: handlePressOut,
71
90
  onFocus: handleFocus,
72
- onBlur: handleBlur
73
- }, pressablePropsToTouchable(rest)), /*#__PURE__*/React.createElement(Text, {
74
- style: currentStyle
75
- }, typeof children === 'function' ? children(pressState) : children));
91
+ onBlur: handleBlur,
92
+ ...pressablePropsToTouchable(rest),
93
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
94
+ style: currentStyle,
95
+ children: typeof children === 'function' ? children(pressState) : children
96
+ })
97
+ });
76
98
  };
77
99
 
78
- export default InlinePressable;
100
+ var _default = InlinePressable;
101
+ exports.default = _default;
package/lib/Link/Link.js CHANGED
@@ -1,6 +1,19 @@
1
- import React from 'react';
2
- import { useThemeTokensCallback } from '../ThemeProvider';
3
- import LinkBase from './LinkBase';
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 _ThemeProvider = require("../ThemeProvider");
11
+
12
+ var _LinkBase = _interopRequireDefault(require("./LinkBase"));
13
+
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4
17
 
5
18
  const Link = ({
6
19
  href,
@@ -10,13 +23,16 @@ const Link = ({
10
23
  tokens,
11
24
  ...linkProps
12
25
  }) => {
13
- const getTokens = useThemeTokensCallback('Link', tokens, variant);
14
- return /*#__PURE__*/React.createElement(LinkBase, Object.assign({
26
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Link', tokens, variant);
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinkBase.default, {
15
28
  href: href,
16
29
  accessibilityRole: accessibilityRole,
17
- tokens: getTokens
18
- }, linkProps), children);
30
+ tokens: getTokens,
31
+ ...linkProps,
32
+ children: children
33
+ });
19
34
  };
20
35
 
21
- Link.propTypes = LinkBase.propTypes;
22
- export default Link;
36
+ Link.propTypes = _LinkBase.default.propTypes;
37
+ var _default = Link;
38
+ exports.default = _default;
@@ -1,28 +1,51 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Text, Platform, StyleSheet } from 'react-native';
4
- import { a11yProps, hrefAttrsProp, variantProp, linkProps, getTokensPropType } from '../utils/propTypes';
5
- import { resolvePressableTokens } from '../utils/pressability';
6
- import InlinePressable from './InlinePressable';
7
- import { applyTextStyles } from '../ThemeProvider';
8
- import { IconText, iconComponentPropTypes } from '../Icon';
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 _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
13
+
14
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
15
+
16
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
17
+
18
+ var _propTypes2 = require("../utils/propTypes");
19
+
20
+ var _pressability = require("../utils/pressability");
21
+
22
+ var _InlinePressable = _interopRequireDefault(require("./InlinePressable"));
23
+
24
+ var _ThemeProvider = require("../ThemeProvider");
25
+
26
+ var _Icon = require("../Icon");
27
+
28
+ var _jsxRuntime = require("react/jsx-runtime");
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
31
 
10
32
  const selectOuterBorderStyles = ({
11
33
  outerBorderColor,
12
34
  outerBorderWidth,
13
35
  outerBorderGap,
14
- outerBorderRadius,
36
+ borderRadius,
15
37
  outerBorderOutline
16
38
  }) => // A view wrapper with a border on native messes up inline text alignment
17
39
  // so for now make focus styles strictly web-only
18
- Platform.OS === 'web' ? {
19
- margin: -1 * (outerBorderGap + outerBorderWidth) || 0,
20
- padding: outerBorderGap,
40
+ _Platform.default.OS === 'web' ? {
21
41
  // Allow theme to define outline, or, turn off outline and use border if rounded corners required
22
42
  outline: outerBorderOutline,
23
- borderWidth: outerBorderWidth,
24
- borderColor: outerBorderColor,
25
- borderRadius: outerBorderRadius,
43
+ ...(0, _ThemeProvider.applyOuterBorder)({
44
+ outerBorderColor,
45
+ outerBorderWidth,
46
+ outerBorderGap,
47
+ borderRadius
48
+ }),
26
49
  // Stops focus ring stretching horizontally if parent has display: block
27
50
  // width: fit-content isn't supported on Firefox; can't cascade props like CSS `width: fit-content; width: --moz-fit-content;`
28
51
  display: 'inline-flex'
@@ -36,7 +59,7 @@ const selectTextStyles = ({
36
59
  color,
37
60
  textDecorationLine: textLine,
38
61
  textDecorationStyle: textLineStyle,
39
- ...Platform.select({
62
+ ..._Platform.default.select({
40
63
  web: {
41
64
  // TODO: https://github.com/telus/universal-design-system/issues/487
42
65
  transition: 'color 200ms'
@@ -49,7 +72,7 @@ const selectBlockStyles = ({
49
72
  blockFontSize,
50
73
  blockLineHeight,
51
74
  blockFontName
52
- }) => applyTextStyles({
75
+ }) => (0, _ThemeProvider.applyTextStyles)({
53
76
  fontWeight: blockFontWeight,
54
77
  fontSize: blockFontSize,
55
78
  lineHeight: blockLineHeight,
@@ -106,83 +129,88 @@ const LinkBase = ({
106
129
  const {
107
130
  hrefAttrs,
108
131
  rest
109
- } = hrefAttrsProp.bundle(props);
110
- const linkPropSet = linkProps.select({
132
+ } = _propTypes2.hrefAttrsProp.bundle(props);
133
+
134
+ const linkPropSet = _propTypes2.linkProps.select({
111
135
  accessibilityRole,
112
136
  href,
113
- onPress: linkProps.handleHref({
137
+ onPress: _propTypes2.linkProps.handleHref({
114
138
  href,
115
139
  onPress
116
140
  }),
117
- ...hrefAttrsProp.spread(hrefAttrs),
141
+ hrefAttrs,
118
142
  ...rest
119
143
  });
120
144
 
121
- const resolveTokens = pressState => resolvePressableTokens(tokens, pressState, {
145
+ const resolveLinkTokens = pressState => (0, _pressability.resolvePressableTokens)(tokens, pressState, {
122
146
  iconPosition
123
147
  }); // On web, this makes focus rings wrap only the link, not the entire block
124
148
 
125
149
 
126
- const blockLeftStyle = Platform.OS === 'web' && staticStyles.blockLeft;
127
- return /*#__PURE__*/React.createElement(InlinePressable, Object.assign({}, linkPropSet, {
150
+ const blockLeftStyle = _Platform.default.OS === 'web' && staticStyles.blockLeft;
151
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InlinePressable.default, { ...linkPropSet,
128
152
  style: linkState => {
129
- const themeTokens = resolveTokens(linkState);
153
+ const themeTokens = resolveLinkTokens(linkState);
130
154
  const outerBorderStyles = selectOuterBorderStyles(themeTokens);
131
155
  const hasIcon = Boolean(icon || themeTokens.icon);
132
156
  return [outerBorderStyles, blockLeftStyle, hasIcon && staticStyles.rowContainer];
157
+ },
158
+ children: linkState => {
159
+ const themeTokens = resolveLinkTokens(linkState);
160
+ const textStyles = selectTextStyles(themeTokens);
161
+ const iconTokens = selectIconTokens(themeTokens); // TODO: may need to apply some smarter text inheritance here if inline to avoid native
162
+ // issues like double-application of line heights breaking align-items: baseline
163
+
164
+ const blockTextStyles = selectBlockStyles(themeTokens);
165
+ const IconComponent = icon || themeTokens.icon;
166
+ const {
167
+ iconSpace
168
+ } = themeTokens;
169
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconText, {
170
+ icon: IconComponent,
171
+ iconPosition: iconPosition,
172
+ space: iconSpace,
173
+ iconProps: { ...iconProps,
174
+ tokens: iconTokens
175
+ },
176
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
177
+ style: [textStyles, blockTextStyles, staticStyles.baseline],
178
+ children: children
179
+ })
180
+ });
133
181
  }
134
- }), linkState => {
135
- const themeTokens = resolveTokens(linkState);
136
- const textStyles = selectTextStyles(themeTokens);
137
- const iconTokens = selectIconTokens(themeTokens); // TODO: may need to apply some smarter text inheritance here if inline to avoid native
138
- // issues like double-application of line heights breaking align-items: baseline
139
-
140
- const blockTextStyles = selectBlockStyles(themeTokens);
141
- const IconComponent = icon || themeTokens.icon;
142
- const {
143
- iconSpace
144
- } = themeTokens;
145
- return /*#__PURE__*/React.createElement(IconText, {
146
- icon: IconComponent,
147
- iconPosition: iconPosition,
148
- space: iconSpace,
149
- iconProps: { ...iconProps,
150
- tokens: iconTokens
151
- }
152
- }, /*#__PURE__*/React.createElement(Text, {
153
- style: [textStyles, blockTextStyles, staticStyles.baseline]
154
- }, children));
155
182
  });
156
183
  };
157
184
 
158
- LinkBase.propTypes = { ...a11yProps.types,
159
- ...linkProps.types,
160
- tokens: getTokensPropType('Link'),
161
- variant: variantProp.propType,
185
+ LinkBase.propTypes = { ..._propTypes2.a11yProps.types,
186
+ ..._propTypes2.linkProps.types,
187
+ tokens: (0, _propTypes2.getTokensPropType)('Link'),
188
+ variant: _propTypes2.variantProp.propType,
162
189
 
163
190
  /**
164
191
  * Optional variant that may be passed down to the link's icon if there is one
165
192
  */
166
- iconProps: PropTypes.exact(iconComponentPropTypes),
193
+ iconProps: _propTypes.default.exact(_Icon.iconComponentPropTypes),
167
194
 
168
195
  /**
169
196
  * A function component for an SVG icon to render inside the link. Inherits size and color from
170
197
  * the link and any Typography the link is nested inside.
171
198
  */
172
- icon: PropTypes.func,
199
+ icon: _propTypes.default.func,
173
200
 
174
201
  /**
175
202
  * When `icon` is provided, use `iconPosition` to place the Icon to the left or right side of Link.
176
203
  */
177
- iconPosition: PropTypes.oneOf(['left', 'right']),
204
+ iconPosition: _propTypes.default.oneOf(['left', 'right']),
178
205
 
179
206
  /**
180
207
  * On Web if href is passed, React Native Web maps this object's props to
181
- * `rel`, `target` and (>= RNW 0.15.0) `download` attrs.
208
+ * `rel`, `target` and `download` attrs.
182
209
  */
183
- hrefAttrs: PropTypes.shape(hrefAttrsProp.types)
210
+ hrefAttrs: _propTypes.default.shape(_propTypes2.hrefAttrsProp.types)
184
211
  };
185
- const staticStyles = StyleSheet.create({
212
+
213
+ const staticStyles = _StyleSheet.default.create({
186
214
  blockLeft: {
187
215
  alignSelf: 'flex-start'
188
216
  },
@@ -195,4 +223,6 @@ const staticStyles = StyleSheet.create({
195
223
  alignSelf: 'baseline'
196
224
  }
197
225
  });
198
- export default LinkBase;
226
+
227
+ var _default = LinkBase;
228
+ exports.default = _default;
@@ -1,13 +1,29 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useThemeTokensCallback } from '../ThemeProvider';
4
- import LinkBase from './LinkBase';
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 _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _ThemeProvider = require("../ThemeProvider");
13
+
14
+ var _LinkBase = _interopRequireDefault(require("./LinkBase"));
15
+
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+
18
+ var _TextButton$propTypes;
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
5
22
  /**
6
23
  * `TextButton` is a button that looks like a Link. It uses the same theming and variants as
7
24
  * Link but has the accessibility role of a `Button`. It should be used for actions that
8
25
  * take place on the current page, or for navigation within an app.
9
26
  */
10
-
11
27
  const TextButton = ({
12
28
  onPress,
13
29
  children,
@@ -18,20 +34,23 @@ const TextButton = ({
18
34
  accessibilityRole = 'button',
19
35
  ...linkProps
20
36
  }) => {
21
- const getTokens = useThemeTokensCallback('Link', tokens, variant);
22
- return /*#__PURE__*/React.createElement(LinkBase, Object.assign({
37
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Link', tokens, variant);
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinkBase.default, {
23
39
  onPress: onPress,
24
40
  accessibilityRole: accessibilityRole,
25
- tokens: getTokens
26
- }, linkProps), children);
41
+ tokens: getTokens,
42
+ ...linkProps,
43
+ children: children
44
+ });
27
45
  };
28
46
 
29
- TextButton.propTypes = { ...LinkBase.propTypes,
30
- onPress: PropTypes.func.isRequired
47
+ TextButton.propTypes = { ..._LinkBase.default.propTypes,
48
+ onPress: _propTypes.default.func.isRequired
31
49
  }; // Remove incompatible Link prop (if this build includes propTypes)
32
50
  // TODO: test if this works with web navigation in omniplatform React Navigation
33
51
  // https://github.com/telus/universal-design-system/issues/665
34
52
  // eslint-disable-next-line react/forbid-foreign-prop-types
35
53
 
36
- if (TextButton.propTypes?.href) delete TextButton.propTypes.href;
37
- export default TextButton;
54
+ if ((_TextButton$propTypes = TextButton.propTypes) !== null && _TextButton$propTypes !== void 0 && _TextButton$propTypes.href) delete TextButton.propTypes.href;
55
+ var _default = TextButton;
56
+ exports.default = _default;