@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,8 +1,29 @@
1
- import React from 'react';
2
- import { Pressable, Text, View, StyleSheet, Platform } from 'react-native';
3
- import { applyTextStyles, applyShadowToken } from '../ThemeProvider/utils';
4
- import buttonPropTypes from './propTypes';
5
- import { a11yProps, getCursorStyle, hrefAttrsProp, linkProps, resolvePressableState, resolvePressableTokens } 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 _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
11
+
12
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
13
+
14
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
+
16
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
17
+
18
+ var _utils = require("../ThemeProvider/utils");
19
+
20
+ var _propTypes = _interopRequireDefault(require("./propTypes"));
21
+
22
+ var _utils2 = 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 getOuterBorderOffset = ({
8
29
  outerBorderGap = 0,
@@ -14,17 +35,19 @@ const selectOuterContainerStyles = ({
14
35
  opacity,
15
36
  outerBorderColor,
16
37
  outerBorderWidth,
17
- outerBorderGap = 0,
18
- outerBorderRadius = 0,
38
+ outerBorderGap,
39
+ borderRadius,
19
40
  outerBackgroundColor
20
41
  }) => ({
21
42
  alignSelf,
22
- padding: outerBorderGap,
23
- borderWidth: outerBorderWidth,
24
- borderColor: outerBorderColor,
25
- borderRadius: outerBorderRadius + outerBorderGap,
26
43
  backgroundColor: outerBackgroundColor,
27
- opacity
44
+ opacity,
45
+ ...(0, _utils.applyOuterBorder)({
46
+ outerBorderGap,
47
+ outerBorderWidth,
48
+ outerBorderColor,
49
+ borderRadius
50
+ })
28
51
  });
29
52
 
30
53
  const selectOuterWidthStyles = ({
@@ -38,14 +61,12 @@ const selectOuterWidthStyles = ({
38
61
  outerBorderGap,
39
62
  outerBorderWidth
40
63
  });
41
- const widthStyles = {
42
- margin: 0 - outerBorderOffset
43
- };
64
+ const widthStyles = {};
44
65
 
45
66
  if (!width) {
46
67
  return { ...widthStyles,
47
68
  // Wrap content, stopping a flex parent's default align-items: stretch stretching focus ring beyond content
48
- ...Platform.select({
69
+ ..._Platform.default.select({
49
70
  // width: fit-content isn't supported on Firefox; can't cascade props like CSS `width: fit-content; width: --moz-fit-content;`
50
71
  web: {
51
72
  display: 'inline-flex'
@@ -61,8 +82,8 @@ const selectOuterWidthStyles = ({
61
82
  } // Ensure the negative margin doesn't make element off-centre
62
83
 
63
84
 
64
- if (Platform.OS === 'web') {
65
- widthStyles.width = `calc(${width} + ${outerBorderOffset * 2}px)`;
85
+ if (_Platform.default.OS === 'web') {
86
+ widthStyles.width = "calc(".concat(width, " + ").concat(outerBorderOffset * 2, "px)");
66
87
  return widthStyles;
67
88
  } // Can't use calc() on native but (unlike on web) flexGrow fills the container width here
68
89
 
@@ -99,7 +120,7 @@ const selectInnerContainerStyles = ({
99
120
  paddingBottom: offsetBorder(paddingBottom),
100
121
  backgroundColor,
101
122
  minWidth,
102
- ...applyShadowToken(shadow)
123
+ ...(0, _utils.applyShadowToken)(shadow)
103
124
  };
104
125
  };
105
126
 
@@ -120,7 +141,7 @@ const selectTextStyles = ({
120
141
  fontName,
121
142
  fontWeight,
122
143
  textAlign
123
- }) => applyTextStyles({
144
+ }) => (0, _utils.applyTextStyles)({
124
145
  fontSize,
125
146
  color,
126
147
  lineHeight,
@@ -132,36 +153,16 @@ const selectTextStyles = ({
132
153
  const selectWebOnlyStyles = (inactive, themeTokens, {
133
154
  accessibilityRole
134
155
  }) => {
135
- return Platform.select({
156
+ return _Platform.default.select({
136
157
  web: {
137
158
  // if it would overflow the container, wraps instead
138
- maxWidth: `calc(100% + ${getOuterBorderOffset(themeTokens) * 2}px)`,
159
+ maxWidth: "calc(100% + ".concat(getOuterBorderOffset(themeTokens) * 2, "px)"),
139
160
  outline: 'none',
140
161
  // removes the default browser :focus outline
141
- ...getCursorStyle(inactive, accessibilityRole)
162
+ ...(0, _utils2.getCursorStyle)(inactive, accessibilityRole)
142
163
  },
143
164
  default: {}
144
165
  });
145
- }; // TODO: see if this can be made into a generalised utility, ideally when
146
- // there is a stable, generic, generalised approach to within-component text
147
-
148
-
149
- const resolveChildren = (children, {
150
- textStyles,
151
- state
152
- }) => {
153
- switch (typeof children) {
154
- case 'function':
155
- return children(state);
156
-
157
- case 'string':
158
- return /*#__PURE__*/React.createElement(Text, {
159
- style: textStyles
160
- }, children);
161
-
162
- default:
163
- return children;
164
- }
165
166
  };
166
167
 
167
168
  const ButtonBase = ({
@@ -181,54 +182,58 @@ const ButtonBase = ({
181
182
  selected
182
183
  };
183
184
 
184
- const resolveTokens = pressableState => resolvePressableTokens(tokens, pressableState, extraButtonState);
185
+ const resolveButtonTokens = pressableState => (0, _utils2.resolvePressableTokens)(tokens, pressableState, extraButtonState);
185
186
 
186
- const a11y = a11yProps.select(rest);
187
+ const a11y = _utils2.a11yProps.select(rest);
187
188
 
188
189
  const getPressableStyle = pressableState => {
189
- const themeTokens = resolveTokens(pressableState);
190
+ const themeTokens = resolveButtonTokens(pressableState);
190
191
  return [staticStyles.row, selectWebOnlyStyles(inactive, themeTokens, a11y), selectOuterContainerStyles(themeTokens), selectOuterWidthStyles(themeTokens)];
191
192
  };
192
193
 
193
- return /*#__PURE__*/React.createElement(Pressable, Object.assign({
194
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
194
195
  href: href,
195
- onPress: linkProps.handleHref({
196
+ onPress: _utils2.linkProps.handleHref({
196
197
  href,
197
198
  onPress
198
199
  }),
199
200
  style: getPressableStyle,
200
- disabled: inactive
201
- }, hrefAttrsProp.spread(hrefAttrs), a11y), pressableState => {
202
- const themeTokens = resolveTokens(pressableState);
203
- const containerStyles = selectInnerContainerStyles(themeTokens);
204
- const borderStyles = selectBorderStyles(themeTokens);
205
- const textStyles = [selectTextStyles(themeTokens), staticStyles.text]; // If the container has a width set, fill it instead of sizing from content.
206
- // If in future we support text alignments other than center, add here.
207
-
208
- const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
209
- return /*#__PURE__*/React.createElement(View, {
210
- style: [containerStyles, borderStyles, stretchStyles, staticStyles.row, Platform.select({
211
- web: {
212
- maxWidth: '100%',
213
- // ensure overflowing content wraps
214
- // TODO: https://github.com/telus/universal-design-system/issues/487
215
- transition: 'background-color 200ms, border-color 200ms'
216
- }
217
- })]
218
- }, resolveChildren(children, {
219
- state: { ...resolvePressableState(pressableState, extraButtonState),
220
- textStyles
221
- },
222
- textStyles
223
- }));
201
+ disabled: inactive,
202
+ hrefAttrs: hrefAttrs,
203
+ ...a11y,
204
+ children: pressableState => {
205
+ const themeTokens = resolveButtonTokens(pressableState);
206
+ const containerStyles = selectInnerContainerStyles(themeTokens);
207
+ const borderStyles = selectBorderStyles(themeTokens);
208
+ const textStyles = [selectTextStyles(themeTokens), staticStyles.text]; // If the container has a width set, fill it instead of sizing from content.
209
+ // If in future we support text alignments other than center, add here.
210
+
211
+ const stretchStyles = themeTokens.width ? staticStyles.stretch : staticStyles.align;
212
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
213
+ style: [containerStyles, borderStyles, stretchStyles, staticStyles.row, _Platform.default.select({
214
+ web: {
215
+ maxWidth: '100%',
216
+ // ensure overflowing content wraps
217
+ // TODO: https://github.com/telus/universal-design-system/issues/487
218
+ transition: 'background-color 200ms, border-color 200ms'
219
+ }
220
+ })],
221
+ children: (0, _utils2.wrapStringsInText)(typeof children === 'function' ? children({ ...(0, _utils2.resolvePressableState)(pressableState, extraButtonState),
222
+ textStyles
223
+ }) : children, {
224
+ style: textStyles
225
+ })
226
+ });
227
+ }
224
228
  });
225
229
  };
226
230
 
227
- ButtonBase.propTypes = { ...a11yProps.types,
228
- ...buttonPropTypes,
229
- ...linkProps.types
231
+ ButtonBase.propTypes = { ..._utils2.a11yProps.types,
232
+ ..._propTypes.default,
233
+ ..._utils2.linkProps.types
230
234
  };
231
- const staticStyles = StyleSheet.create({
235
+
236
+ const staticStyles = _StyleSheet.default.create({
232
237
  row: {
233
238
  // Apply all button alignment horizontally; no vertical stacking within a button
234
239
  flexDirection: 'row'
@@ -236,7 +241,7 @@ const staticStyles = StyleSheet.create({
236
241
  text: {
237
242
  flexGrow: 1,
238
243
  // On native but not web, flexShrink here wraps text prematurely
239
- ...Platform.select({
244
+ ..._Platform.default.select({
240
245
  // TODO: https://github.com/telus/universal-design-system/issues/487
241
246
  web: {
242
247
  transition: 'color 200ms'
@@ -252,4 +257,6 @@ const staticStyles = StyleSheet.create({
252
257
  justifyContent: 'center'
253
258
  }
254
259
  });
255
- export default ButtonBase;
260
+
261
+ var _default = ButtonBase;
262
+ exports.default = _default;
@@ -1,13 +1,33 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Platform } from 'react-native';
4
- import ButtonBase from './ButtonBase';
5
- import { StackWrap } from '../StackView';
6
- import { useViewport } from '../ViewportProvider';
7
- import { useThemeTokens, useThemeTokensCallback } from '../ThemeProvider';
8
- import { a11yProps, pressProps, variantProp, getTokensPropType, selectTokens } from '../utils/propTypes';
9
- import { useMultipleInputValues } from '../utils/input';
10
- import { getPressHandlersWithArgs } from '../utils/pressability';
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 _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
+
14
+ var _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
15
+
16
+ var _StackView = require("../StackView");
17
+
18
+ var _ViewportProvider = require("../ViewportProvider");
19
+
20
+ var _ThemeProvider = require("../ThemeProvider");
21
+
22
+ var _propTypes2 = require("../utils/propTypes");
23
+
24
+ var _input = require("../utils/input");
25
+
26
+ var _pressability = require("../utils/pressability");
27
+
28
+ var _jsxRuntime = require("react/jsx-runtime");
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
31
 
12
32
  const ButtonGroup = ({
13
33
  variant,
@@ -19,121 +39,124 @@ const ButtonGroup = ({
19
39
  onChange,
20
40
  readOnly = false,
21
41
  inactive = false,
22
- accessibilityRole = maxValues === 1 ? 'radioGroup' // radioGroup is cross-platform; only web aria has generic groups
23
- : Platform.select({
42
+ accessibilityRole = maxValues === 1 ? 'radiogroup' // radiogroup is cross-platform; only web aria has generic groups
43
+ : _Platform.default.select({
24
44
  web: 'group',
25
45
  default: 'none'
26
46
  }),
27
47
  ...rest
28
48
  }) => {
29
- const viewport = useViewport();
30
- const themeTokens = useThemeTokens('ButtonGroup', tokens, variant, {
49
+ const viewport = (0, _ViewportProvider.useViewport)();
50
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('ButtonGroup', tokens, variant, {
31
51
  viewport
32
52
  });
33
- const stackTokens = selectTokens('StackView', themeTokens);
53
+ const stackTokens = (0, _propTypes2.selectTokens)('StackView', themeTokens);
34
54
  const {
35
55
  direction,
36
56
  space
37
57
  } = themeTokens;
38
- const getButtonTokens = useThemeTokensCallback('ButtonGroupItem', tokens, variant);
58
+ const getButtonTokens = (0, _ThemeProvider.useThemeTokensCallback)('ButtonGroupItem', tokens, variant);
39
59
  const {
40
60
  currentValues,
41
61
  toggleOneValue
42
- } = useMultipleInputValues({
62
+ } = (0, _input.useMultipleInputValues)({
43
63
  initialValues,
44
64
  values,
45
65
  maxValues,
46
66
  onChange,
47
67
  readOnly
48
68
  });
49
- const a11y = a11yProps.select({
69
+
70
+ const a11y = _propTypes2.a11yProps.select({
50
71
  accessibilityRole,
51
72
  ...rest
52
73
  });
53
- const itemA11yRole = a11y.accessibilityRole === 'radioGroup' ? 'radio' : 'checkbox';
54
- return /*#__PURE__*/React.createElement(StackWrap, Object.assign({}, a11y, {
74
+
75
+ const itemA11yRole = a11y.accessibilityRole === 'radiogroup' ? 'radio' : 'checkbox';
76
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.StackWrap, { ...a11y,
55
77
  space: space,
56
78
  direction: direction,
57
- tokens: stackTokens
58
- }), items.map(({
59
- label,
60
- id = label,
61
- accessibilityLabel
62
- }, index) => {
63
- const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
64
-
65
- const pressHandlers = getPressHandlersWithArgs(rest, [{
66
- id,
79
+ tokens: stackTokens,
80
+ children: items.map(({
67
81
  label,
68
- currentValues
69
- }]);
70
-
71
- const handlePress = () => {
72
- if (pressHandlers.onPress) pressHandlers.onPress();
73
- toggleOneValue(id);
74
- };
75
-
76
- const itemA11y = {
77
- accessibilityState: {
78
- checked: isSelected
79
- },
80
- accessibilityRole: itemA11yRole,
81
- accessibilityLabel,
82
- ...a11yProps.getPositionInSet(items.length, index)
83
- }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
84
- // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
85
-
86
- return /*#__PURE__*/React.createElement(ButtonBase, Object.assign({
87
- key: id
88
- }, pressHandlers, {
89
- onPress: handlePress,
90
- tokens: getButtonTokens,
91
- selected: isSelected,
92
- inactive: inactive
93
- }, itemA11y), label);
94
- }));
82
+ id = label,
83
+ accessibilityLabel
84
+ }, index) => {
85
+ const isSelected = currentValues.includes(id); // Pass an object of relevant component state as first argument for any passed-in press handlers
86
+
87
+ const pressHandlers = (0, _pressability.getPressHandlersWithArgs)(rest, [{
88
+ id,
89
+ label,
90
+ currentValues
91
+ }]);
92
+
93
+ const handlePress = () => {
94
+ if (pressHandlers.onPress) pressHandlers.onPress();
95
+ toggleOneValue(id);
96
+ };
97
+
98
+ const itemA11y = {
99
+ accessibilityState: {
100
+ checked: isSelected
101
+ },
102
+ accessibilityRole: itemA11yRole,
103
+ accessibilityLabel,
104
+ ..._propTypes2.a11yProps.getPositionInSet(items.length, index)
105
+ }; // Ensure button is direct child of group as MacOS voiceover only applies "X of Y" to
106
+ // "radio" if it's a direct child of "radiogroup", even if aria-posinset etc exists
107
+
108
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, { ...pressHandlers,
109
+ onPress: handlePress,
110
+ tokens: getButtonTokens,
111
+ selected: isSelected,
112
+ inactive: inactive,
113
+ ...itemA11y,
114
+ children: label
115
+ }, id);
116
+ })
117
+ });
95
118
  };
96
119
 
97
- ButtonGroup.propTypes = { ...a11yProps.propTypes,
98
- ...pressProps.propTypes,
99
- tokens: getTokensPropType('ButtonGroup'),
100
- variant: variantProp.propType,
120
+ ButtonGroup.propTypes = { ..._propTypes2.a11yProps.propTypes,
121
+ ..._propTypes2.pressProps.propTypes,
122
+ tokens: (0, _propTypes2.getTokensPropType)('ButtonGroup'),
123
+ variant: _propTypes2.variantProp.propType,
101
124
 
102
125
  /**
103
126
  * The maximum number of items a user may select at once. Defaults to 1 and behaves
104
127
  * like radio buttons. To have no limit and allow any number of selections, pass `null`.
105
128
  */
106
- maxValues: PropTypes.number,
129
+ maxValues: _propTypes.default.number,
107
130
 
108
131
  /**
109
132
  * The options a user may select
110
133
  */
111
- items: PropTypes.arrayOf(PropTypes.shape({
134
+ items: _propTypes.default.arrayOf(_propTypes.default.shape({
112
135
  /**
113
136
  * The text displayed to the user in the button, describing this option,
114
137
  * passed to the button as its child.
115
138
  */
116
- label: PropTypes.string.isRequired,
139
+ label: _propTypes.default.string.isRequired,
117
140
 
118
141
  /**
119
142
  * An optional accessibility label may be passed to ButtonGroup Buttons
120
143
  * which is applied as normal for a React Native accessibilityLabel prop.
121
144
  */
122
- accessibilityLabel: PropTypes.string,
145
+ accessibilityLabel: _propTypes.default.string,
123
146
 
124
147
  /**
125
148
  * An optional unique string may be provided to identify this option,
126
149
  * which will be used in code and passed to any onChange function.
127
150
  * If not provided, the label is used.
128
151
  */
129
- id: PropTypes.string
152
+ id: _propTypes.default.string
130
153
  })),
131
154
 
132
155
  /**
133
156
  * If provided, this function is called when the current selection is changed
134
157
  * and is passed an array of the `id`s of all currently selected `items`.
135
158
  */
136
- onChange: PropTypes.func,
159
+ onChange: _propTypes.default.func,
137
160
 
138
161
  /**
139
162
  * If the selected item(s) in the button group are to be controlled externally by
@@ -141,13 +164,14 @@ ButtonGroup.propTypes = { ...a11yProps.propTypes,
141
164
  * Passing an array for "values" makes the ButtonGroup a "controlled" component that
142
165
  * expects its state to be handled via `onChange` and so doesn't handle it itself.
143
166
  */
144
- values: PropTypes.arrayOf(PropTypes.string),
167
+ values: _propTypes.default.arrayOf(_propTypes.default.string),
145
168
 
146
169
  /**
147
170
  * If `values` is not passed, making the ButtonGroup an "uncontrolled" component
148
171
  * managing its own selected state, a default set of selections may be provided.
149
172
  * Changing the `initialValues` does not change the user's selections.
150
173
  */
151
- initialValues: PropTypes.arrayOf(PropTypes.string)
174
+ initialValues: _propTypes.default.arrayOf(_propTypes.default.string)
152
175
  };
153
- export default ButtonGroup;
176
+ var _default = ButtonGroup;
177
+ exports.default = _default;
@@ -1,13 +1,32 @@
1
- import React from 'react';
2
- import ButtonBase from './ButtonBase';
3
- import buttonPropTypes from './propTypes';
4
- import { a11yProps, hrefAttrsProp, linkProps } from '../utils/propTypes';
5
- import { useThemeTokensCallback } from '../ThemeProvider';
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 _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
11
+
12
+ var _propTypes = _interopRequireWildcard(require("./propTypes"));
13
+
14
+ var _propTypes2 = require("../utils/propTypes");
15
+
16
+ var _ThemeProvider = require("../ThemeProvider");
17
+
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
6
26
  /**
7
27
  * `ButtonLink` is a component with the semantics and behaviour of a link, but with the visual appearance of a button.
8
28
  * ButtonLink is a block-level component and should not be used inline.
9
29
  */
10
-
11
30
  const ButtonLink = ({
12
31
  accessibilityRole = 'link',
13
32
  tokens,
@@ -17,17 +36,21 @@ const ButtonLink = ({
17
36
  const {
18
37
  hrefAttrs,
19
38
  rest
20
- } = hrefAttrsProp.bundle(props);
21
- const getTokens = useThemeTokensCallback('Button', tokens, variant);
22
- return /*#__PURE__*/React.createElement(ButtonBase, Object.assign({
39
+ } = _propTypes2.hrefAttrsProp.bundle(props);
40
+
41
+ const getTokens = (0, _ThemeProvider.useThemeTokensCallback)('Button', tokens, variant);
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonBase.default, {
23
43
  accessibilityRole: accessibilityRole,
24
44
  tokens: getTokens,
25
- hrefAttrs: hrefAttrs
26
- }, rest));
45
+ hrefAttrs: hrefAttrs,
46
+ ...rest
47
+ });
27
48
  };
28
49
 
29
- ButtonLink.propTypes = { ...a11yProps.types,
30
- ...buttonPropTypes,
31
- ...linkProps.types
50
+ ButtonLink.propTypes = { ..._propTypes2.a11yProps.types,
51
+ ..._propTypes.default,
52
+ ..._propTypes2.linkProps.types,
53
+ children: _propTypes.textAndA11yText
32
54
  };
33
- export default ButtonLink;
55
+ var _default = ButtonLink;
56
+ exports.default = _default;
@@ -1,4 +1,31 @@
1
- import Button from './Button';
2
- import ButtonLink from './ButtonLink';
3
- import ButtonGroup from './ButtonGroup';
4
- export { Button, ButtonGroup, ButtonLink };
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Button", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Button.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ButtonLink", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _ButtonLink.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "ButtonGroup", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _ButtonGroup.default;
22
+ }
23
+ });
24
+
25
+ var _Button = _interopRequireDefault(require("./Button"));
26
+
27
+ var _ButtonLink = _interopRequireDefault(require("./ButtonLink"));
28
+
29
+ var _ButtonGroup = _interopRequireDefault(require("./ButtonGroup"));
30
+
31
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,27 +1,50 @@
1
- import PropTypes from 'prop-types';
2
- import { variantProp } from '../utils/propTypes';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.textAndA11yText = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _airbnbPropTypes = _interopRequireDefault(require("airbnb-prop-types"));
11
+
12
+ var _propTypes2 = require("../utils/propTypes");
13
+
14
+ var _A11yText = _interopRequireDefault(require("../A11yText"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ const textAndA11yText = _airbnbPropTypes.default.childrenOf(_propTypes.default.oneOfType([_airbnbPropTypes.default.elementType(_A11yText.default), _propTypes.default.string]));
19
+
20
+ exports.textAndA11yText = textAndA11yText;
3
21
  const buttonPropTypes = {
4
22
  /**
5
23
  * If true, prevents the button from being pressed, changes the cursor (on web) and accessibility
6
24
  * attributes to communicate this to the user, and applies `inactive: true` appearances from the theme
7
25
  */
8
- inactive: PropTypes.bool,
26
+ inactive: _propTypes.default.bool,
9
27
 
10
28
  /**
11
29
  * Alias for `inactive`
12
30
  */
13
- disabled: PropTypes.bool,
31
+ disabled: _propTypes.default.bool,
14
32
 
15
33
  /**
16
- * Button's children must be either a text string, or a render function which is passed an object of
34
+ * Button's children must be either:
35
+ * - One or more text strings and / or A11yText components
36
+ * - A render function with contents that responds to current button state by being passed an object of:
37
+ * ```
17
38
  * { hovered<bool>, focused<bool>, pressed<bool>, inactive<bool>, selected<bool>, textStyles<RNStyle> }
39
+ * ```
18
40
  */
19
- children: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,
41
+ children: _propTypes.default.oneOfType([_propTypes.default.func, textAndA11yText]).isRequired,
20
42
 
21
43
  /**
22
44
  * Function called when the button is pressed. Required unless the button has a href.
23
45
  */
24
- onPress: PropTypes.func,
25
- variant: variantProp.propType
46
+ onPress: _propTypes.default.func,
47
+ variant: _propTypes2.variantProp.propType
26
48
  };
27
- export default buttonPropTypes;
49
+ var _default = buttonPropTypes;
50
+ exports.default = _default;