@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,29 +1,47 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Pressable, StyleSheet, Text, View } from 'react-native';
4
- import RadioInput from './RadioInput'; // @todo move `LabelContent` outside of the `InputLabel` and fix
5
- // the issue with the cursor not being pointer on Web
6
-
7
- import RadioLabel from '../InputLabel/LabelContent';
8
- import { applyShadowToken, applyTextStyles, useThemeTokensCallback } from '../ThemeProvider';
9
- import { getTokensPropType, useInputValue, useUniqueId, variantProp } from '../utils';
10
- import { a11yProps } from '../utils/propTypes';
11
- import StackView from '../StackView';
1
+ "use strict";
12
2
 
13
- const selectCheckedStyles = ({
14
- checkedBackgroundColor,
15
- checkedSize
16
- }) => ({
17
- backgroundColor: checkedBackgroundColor,
18
- borderRadius: checkedSize / 2,
19
- height: checkedSize,
20
- width: checkedSize
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
21
5
  });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
13
+
14
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
+
16
+ var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
17
+
18
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
19
+
20
+ var _LabelContent = _interopRequireDefault(require("../InputLabel/LabelContent"));
21
+
22
+ var _RadioButton = _interopRequireWildcard(require("./RadioButton"));
23
+
24
+ var _ThemeProvider = require("../ThemeProvider");
25
+
26
+ var _utils = require("../utils");
27
+
28
+ var _propTypes2 = require("../utils/propTypes");
29
+
30
+ var _StackView = _interopRequireDefault(require("../StackView"));
22
31
 
32
+ var _jsxRuntime = require("react/jsx-runtime");
33
+
34
+ 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); }
35
+
36
+ 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; }
37
+
38
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
+
40
+ // @todo move `LabelContent` outside of the `InputLabel` and fix
41
+ // the issue with the cursor not being pointer on Web
23
42
  const selectContainerStyles = ({
24
43
  containerBackgroundColor,
25
44
  containerBorderRadius,
26
- containerMarginBottom,
27
45
  containerOpacity,
28
46
  containerPaddingBottom,
29
47
  containerPaddingLeft,
@@ -33,13 +51,12 @@ const selectContainerStyles = ({
33
51
  }) => ({
34
52
  backgroundColor: containerBackgroundColor,
35
53
  borderRadius: containerBorderRadius,
36
- marginBottom: containerMarginBottom,
37
54
  opacity: containerOpacity,
38
55
  paddingBottom: containerPaddingBottom,
39
56
  paddingLeft: containerPaddingLeft,
40
57
  paddingRight: containerPaddingRight,
41
58
  paddingTop: containerPaddingTop,
42
- ...applyShadowToken(containerShadow)
59
+ ...(0, _ThemeProvider.applyShadowToken)(containerShadow)
43
60
  });
44
61
 
45
62
  const selectDescriptionStyles = ({
@@ -50,32 +67,13 @@ const selectDescriptionStyles = ({
50
67
  inputSize,
51
68
  labelMarginLeft = 0
52
69
  }) => ({
53
- marginLeft: descriptionMarginLeft ?? containerPaddingLeft + inputSize + labelMarginLeft,
54
- ...applyTextStyles({
70
+ marginLeft: descriptionMarginLeft !== null && descriptionMarginLeft !== void 0 ? descriptionMarginLeft : containerPaddingLeft + inputSize + labelMarginLeft,
71
+ ...(0, _ThemeProvider.applyTextStyles)({
55
72
  fontSize: descriptionFontSize,
56
73
  lineHeight: descriptionLineHeight
57
74
  })
58
75
  });
59
76
 
60
- const selectInputStyles = ({
61
- inputBackgroundColor,
62
- inputBorderColor,
63
- inputBorderWidth,
64
- inputOutlineColor,
65
- inputOutlineWidth,
66
- inputSize
67
- }) => ({
68
- borderColor: inputBorderColor,
69
- borderRadius: inputSize / 2,
70
- borderWidth: inputBorderWidth,
71
- backgroundColor: inputBackgroundColor,
72
- height: inputSize,
73
- outlineStyle: 'solid',
74
- outlineColor: inputOutlineColor,
75
- outlineWidth: inputOutlineWidth,
76
- width: inputSize
77
- });
78
-
79
77
  const selectLabelStyles = ({
80
78
  labelColor,
81
79
  labelFontName,
@@ -83,7 +81,7 @@ const selectLabelStyles = ({
83
81
  labelFontWeight,
84
82
  labelMarginLeft,
85
83
  labelLineHeight
86
- }) => applyTextStyles({
84
+ }) => (0, _ThemeProvider.applyTextStyles)({
87
85
  color: labelColor,
88
86
  fontName: labelFontName,
89
87
  fontWeight: labelFontWeight,
@@ -133,7 +131,7 @@ const Radio = ({
133
131
  id,
134
132
  inactive,
135
133
  label,
136
- name,
134
+ name: inputName,
137
135
  onChange,
138
136
  tokens,
139
137
  value,
@@ -144,12 +142,12 @@ const Radio = ({
144
142
  currentValue: isChecked,
145
143
  setValue: setIsChecked,
146
144
  isControlled
147
- } = useInputValue({
145
+ } = (0, _utils.useInputValue)({
148
146
  value: checked,
149
147
  initialValue: defaultChecked,
150
148
  onChange
151
149
  }, 'useRadioValue');
152
- const getTokens = useThemeTokensCallback('Radio', tokens, {
150
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Radio', tokens, {
153
151
  checked: isChecked,
154
152
  inactive,
155
153
  error,
@@ -162,130 +160,133 @@ const Radio = ({
162
160
  }
163
161
  };
164
162
 
165
- const accessibilityProps = a11yProps.select(rest);
166
- const uniqueId = useUniqueId('radio');
167
- const inputId = id ?? uniqueId; // @todo our current version of React Native Web doesn't include
168
- // keyboard support on `Pressable` (which starts with 0.15.3), so
169
- // the complete accessibility of the `Radio` component on Web
170
- // (namely, change on key pressed) is pending RNW upgrade
171
- // (see https://github.com/necolas/react-native-web/issues/1950)
163
+ const handleKeyDown = e => {
164
+ // The expected keyboard shortcut for activating a radio is the Space key
165
+ if ((e === null || e === void 0 ? void 0 : e.key) === ' ') handleChange();
166
+ };
167
+
168
+ const accessibilityProps = _propTypes2.a11yProps.select(rest);
172
169
 
173
- return /*#__PURE__*/React.createElement(Pressable, Object.assign({
170
+ const uniqueId = (0, _utils.useUniqueId)('radio');
171
+ const inputId = id !== null && id !== void 0 ? id : uniqueId;
172
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
174
173
  disabled: inactive,
174
+ onKeyDown: handleKeyDown,
175
175
  onPress: handleChange,
176
176
  accessibilityRole: "radio",
177
177
  accessibilityState: {
178
178
  checked: isChecked,
179
179
  disabled: inactive
180
- }
181
- }, accessibilityProps), ({
182
- focused: focus,
183
- hovered: hover,
184
- pressed
185
- }) => {
186
- const stateTokens = getTokens({
187
- focus,
188
- hover,
180
+ },
181
+ ...accessibilityProps,
182
+ children: ({
183
+ focused: focus,
184
+ hovered: hover,
189
185
  pressed
190
- });
191
- return /*#__PURE__*/React.createElement(StackView, {
192
- space: 0
193
- }, /*#__PURE__*/React.createElement(View, {
194
- style: [staticStyles.container, selectContainerStyles(stateTokens)]
195
- }, /*#__PURE__*/React.createElement(View, {
196
- style: StyleSheet.flatten([staticStyles.defaultInputStyles, selectInputStyles(stateTokens, isChecked)]),
197
- testID: "Radio-Input"
198
- }, /*#__PURE__*/React.createElement(RadioInput, {
199
- checked: isChecked,
200
- defaultChecked: defaultChecked,
201
- disabled: inactive,
202
- id: inputId,
203
- isControlled: isControlled,
204
- name: name,
205
- value: value
206
- }), isChecked && /*#__PURE__*/React.createElement(View, {
207
- style: selectCheckedStyles(stateTokens),
208
- testID: "Radio-Checked"
209
- })), Boolean(label) && /*#__PURE__*/React.createElement(Text, {
210
- style: selectLabelStyles(stateTokens)
211
- }, /*#__PURE__*/React.createElement(RadioLabel, {
212
- forId: inputId
213
- }, label))), Boolean(description) && /*#__PURE__*/React.createElement(Text, {
214
- style: selectDescriptionStyles(getTokens())
215
- }, description));
186
+ }) => {
187
+ const stateTokens = getTokens({
188
+ focus,
189
+ hover,
190
+ pressed
191
+ });
192
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
193
+ space: 0,
194
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
195
+ style: [staticStyles.container, selectContainerStyles(stateTokens)],
196
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RadioButton.default, {
197
+ tokens: (0, _RadioButton.selectRadioButtonTokens)(stateTokens),
198
+ isControlled: isControlled,
199
+ isChecked: isChecked,
200
+ inactive: inactive,
201
+ defaultChecked: defaultChecked,
202
+ inputId: inputId,
203
+ handleChange: handleChange,
204
+ name: inputName,
205
+ value: value
206
+ }), Boolean(label) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
207
+ style: selectLabelStyles(stateTokens),
208
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LabelContent.default, {
209
+ forId: inputId,
210
+ children: label
211
+ })
212
+ })]
213
+ }), Boolean(description) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
214
+ style: selectDescriptionStyles(getTokens()),
215
+ children: description
216
+ })]
217
+ });
218
+ }
216
219
  });
217
220
  };
218
221
 
219
- Radio.propTypes = { ...a11yProps.propTypes,
222
+ Radio.propTypes = { ..._propTypes2.a11yProps.propTypes,
220
223
 
221
224
  /**
222
225
  * Use `checked` for controlled Radio. For uncontrolled Radio, use the `defaultChecked` prop.
223
226
  */
224
- checked: PropTypes.bool,
227
+ checked: _propTypes.default.bool,
225
228
 
226
229
  /**
227
230
  * Use `defaultChecked` to provide the initial value for an uncontrolled Radio.
228
231
  */
229
- defaultChecked: PropTypes.bool,
232
+ defaultChecked: _propTypes.default.bool,
230
233
 
231
234
  /**
232
235
  * An optional radio button description.
233
236
  */
234
- description: PropTypes.string,
237
+ description: _propTypes.default.string,
235
238
 
236
239
  /**
237
240
  * Radio button ID.
238
241
  */
239
- id: PropTypes.string,
242
+ id: _propTypes.default.string,
240
243
 
241
244
  /**
242
245
  * Whether the corresponding input is disabled or active.
243
246
  */
244
- inactive: PropTypes.bool,
247
+ inactive: _propTypes.default.bool,
245
248
 
246
249
  /**
247
250
  * The label.
248
251
  */
249
- label: PropTypes.string,
252
+ label: _propTypes.default.string,
250
253
 
251
254
  /**
252
255
  * Associate this radio button with a group (set as the name attribute).
253
256
  */
254
- name: PropTypes.string,
257
+ name: _propTypes.default.string,
255
258
 
256
259
  /**
257
260
  * Whether the underlying input triggered a validation error or not.
258
261
  */
259
- error: PropTypes.bool,
262
+ error: _propTypes.default.bool,
260
263
 
261
264
  /**
262
265
  * The value. Must be unique within the group.
263
266
  */
264
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),
267
+ value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]),
265
268
 
266
269
  /**
267
270
  * Callback called when a controlled radio button gets interacted with.
268
271
  */
269
- onChange: PropTypes.func,
272
+ onChange: _propTypes.default.func,
270
273
 
271
274
  /**
272
275
  * Radio tokens.
273
276
  */
274
- tokens: getTokensPropType('Radio'),
277
+ tokens: (0, _utils.getTokensPropType)('Radio'),
275
278
 
276
279
  /**
277
280
  * Radio variant.
278
281
  */
279
- variant: variantProp.propType
282
+ variant: _utils.variantProp.propType
280
283
  };
281
- export default Radio;
282
- const staticStyles = StyleSheet.create({
284
+ var _default = Radio;
285
+ exports.default = _default;
286
+
287
+ const staticStyles = _StyleSheet.default.create({
283
288
  container: {
284
289
  flexDirection: 'row',
285
290
  alignItems: 'center'
286
- },
287
- defaultInputStyles: {
288
- alignItems: 'center',
289
- justifyContent: 'center'
290
291
  }
291
292
  });
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.selectRadioButtonTokens = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
13
+
14
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
15
+
16
+ var _RadioInput = _interopRequireDefault(require("./RadioInput"));
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _utils = require("../utils");
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ // TODO: roll out a standard approach to token sets
27
+ // https://github.com/telus/universal-design-system/issues/782
28
+ const tokenKeys = ['checkedBackgroundColor', 'checkedSize', 'inputBackgroundColor', 'inputBorderColor', 'inputBorderWidth', 'inputOutlineColor', 'inputOutlineWidth', 'inputSize', 'outerBorderColor', 'outerBorderWidth', 'outerBorderGap', 'inputSize'];
29
+
30
+ const selectRadioButtonTokens = (themeTokens, prefix) => (0, _utils.selectTokens)(tokenKeys, themeTokens, prefix);
31
+
32
+ exports.selectRadioButtonTokens = selectRadioButtonTokens;
33
+
34
+ const getBorderRadius = inputSize => inputSize / 2;
35
+
36
+ const selectCheckedStyles = ({
37
+ checkedBackgroundColor,
38
+ checkedSize
39
+ }) => ({
40
+ backgroundColor: checkedBackgroundColor,
41
+ borderRadius: checkedSize / 2,
42
+ height: checkedSize,
43
+ width: checkedSize
44
+ });
45
+
46
+ const selectInputStyles = ({
47
+ inputBackgroundColor,
48
+ inputBorderColor,
49
+ inputBorderWidth,
50
+ inputOutlineColor,
51
+ inputOutlineWidth,
52
+ inputSize
53
+ }) => ({
54
+ borderColor: inputBorderColor,
55
+ borderRadius: getBorderRadius(inputSize),
56
+ borderWidth: inputBorderWidth,
57
+ backgroundColor: inputBackgroundColor,
58
+ outlineStyle: 'solid',
59
+ outlineColor: inputOutlineColor,
60
+ outlineWidth: inputOutlineWidth,
61
+ height: inputSize,
62
+ width: inputSize
63
+ });
64
+
65
+ const selectOuterBorderStyles = ({
66
+ outerBorderColor,
67
+ outerBorderWidth,
68
+ outerBorderGap,
69
+ inputSize
70
+ }) => ({ ...(0, _ThemeProvider.applyOuterBorder)({
71
+ outerBorderColor,
72
+ outerBorderWidth,
73
+ outerBorderGap,
74
+ borderRadius: getBorderRadius(inputSize)
75
+ })
76
+ });
77
+ /**
78
+ * The visual toggle of a radio input. Is not interactive on its own, should be used inside
79
+ * an interactive parent that passes down props when interacted with.
80
+ */
81
+
82
+
83
+ const RadioButton = ({
84
+ isChecked,
85
+ tokens,
86
+ inactive,
87
+ defaultChecked,
88
+ inputId,
89
+ isControlled,
90
+ handleChange,
91
+ name: inputName,
92
+ value
93
+ }) => {
94
+ const themeTokens = (0, _ThemeProvider.validateThemeTokens)((0, _ThemeProvider.resolveThemeTokens)(tokens, {
95
+ checked: isChecked
96
+ }), (0, _utils.getTokensSetPropType)(tokenKeys), 'RadioButton');
97
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
98
+ style: selectOuterBorderStyles(themeTokens),
99
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
100
+ style: [staticStyles.defaultInputStyles, selectInputStyles(themeTokens, isChecked)],
101
+ testID: "Radio-Input",
102
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RadioInput.default, {
103
+ checked: isChecked,
104
+ defaultChecked: defaultChecked,
105
+ disabled: inactive,
106
+ id: inputId,
107
+ isControlled: isControlled,
108
+ onChange: handleChange,
109
+ name: inputName,
110
+ value: value
111
+ }), isChecked && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
112
+ style: selectCheckedStyles(themeTokens),
113
+ testID: "Radio-Checked"
114
+ })]
115
+ })
116
+ });
117
+ };
118
+
119
+ RadioButton.propTypes = {
120
+ isChecked: _propTypes.default.bool,
121
+ tokens: (0, _utils.getTokensSetPropType)(tokenKeys, {
122
+ allowFunction: true
123
+ }),
124
+ inactive: _propTypes.default.bool,
125
+ defaultChecked: _propTypes.default.bool,
126
+ inputId: _propTypes.default.string,
127
+ isControlled: _propTypes.default.bool,
128
+ handleChange: _propTypes.default.func,
129
+ name: _propTypes.default.string,
130
+ value: _propTypes.default.bool
131
+ };
132
+
133
+ const staticStyles = _StyleSheet.default.create({
134
+ defaultInputStyles: {
135
+ alignItems: 'center',
136
+ justifyContent: 'center'
137
+ }
138
+ });
139
+
140
+ var _default = RadioButton;
141
+ exports.default = _default;