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

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 (445) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.ultra.cache.json +1 -1
  3. package/CHANGELOG.md +71 -0
  4. package/README.md +4 -2
  5. package/__fixtures__/Accessible.js +33 -0
  6. package/__fixtures__/Accessible.native.js +32 -0
  7. package/__fixtures__/test-utils.js +25 -0
  8. package/__fixtures__/testTheme.js +438 -31
  9. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  10. package/__tests__/Button/ButtonGroup.test.jsx +6 -7
  11. package/__tests__/Checkbox/Checkbox.test.jsx +2 -2
  12. package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
  13. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
  14. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
  15. package/__tests__/Icon/Icon.test.jsx +3 -3
  16. package/__tests__/IconButton/IconButton.test.jsx +52 -0
  17. package/__tests__/Link/LinkBase.test.jsx +0 -14
  18. package/__tests__/Modal/Modal.test.jsx +47 -0
  19. package/__tests__/Notification/Notification.test.jsx +20 -0
  20. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  21. package/__tests__/Progress/Progress.test.jsx +79 -0
  22. package/__tests__/Radio/Radio.test.jsx +2 -2
  23. package/__tests__/Radio/RadioGroup.test.jsx +220 -0
  24. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  25. package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
  26. package/__tests__/Search/Search.test.jsx +73 -0
  27. package/__tests__/Select/Select.test.jsx +3 -2
  28. package/__tests__/Skeleton/Skeleton.test.jsx +1 -1
  29. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  30. package/__tests__/Tabs/Tabs.test.jsx +40 -0
  31. package/__tests__/Tags/Tags.test.jsx +5 -6
  32. package/__tests__/TextInput/TextArea.test.jsx +3 -2
  33. package/__tests__/TextInput/TextInputBase.test.jsx +10 -5
  34. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
  35. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
  36. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
  37. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
  38. package/__tests__/utils/children.test.jsx +128 -0
  39. package/__tests__/utils/input.test.js +59 -1
  40. package/__tests__/utils/semantics.test.jsx +43 -0
  41. package/__tests__/utils/useCopy.test.js +14 -3
  42. package/babel.config.js +20 -0
  43. package/jest.config.js +6 -3
  44. package/lib/A11yInfoProvider/index.js +54 -26
  45. package/lib/A11yText/index.js +45 -17
  46. package/lib/ActivityIndicator/Spinner.js +81 -0
  47. package/lib/ActivityIndicator/Spinner.native.js +129 -91
  48. package/lib/ActivityIndicator/index.js +28 -12
  49. package/lib/ActivityIndicator/shared.js +27 -12
  50. package/lib/BaseProvider/index.js +34 -11
  51. package/lib/Box/Box.js +153 -35
  52. package/lib/Box/index.js +13 -2
  53. package/lib/Button/Button.js +38 -16
  54. package/lib/Button/ButtonBase.js +93 -79
  55. package/lib/Button/ButtonGroup.js +112 -73
  56. package/lib/Button/ButtonLink.js +45 -19
  57. package/lib/Button/index.js +31 -4
  58. package/lib/Button/propTypes.js +32 -9
  59. package/lib/Card/Card.js +38 -41
  60. package/lib/Card/CardBase.js +86 -0
  61. package/lib/Card/PressableCardBase.js +141 -0
  62. package/lib/Card/index.js +40 -2
  63. package/lib/Checkbox/Checkbox.js +158 -111
  64. package/lib/Checkbox/CheckboxGroup.js +241 -0
  65. package/lib/Checkbox/CheckboxInput.js +74 -0
  66. package/lib/Checkbox/CheckboxInput.native.js +9 -1
  67. package/lib/Checkbox/index.js +21 -2
  68. package/lib/Divider/Divider.js +59 -28
  69. package/lib/Divider/index.js +13 -2
  70. package/lib/ExpandCollapse/Accordion.js +26 -7
  71. package/lib/ExpandCollapse/Control.js +60 -31
  72. package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
  73. package/lib/ExpandCollapse/Panel.js +83 -44
  74. package/lib/ExpandCollapse/index.js +25 -7
  75. package/lib/Feedback/Feedback.js +77 -43
  76. package/lib/Feedback/index.js +13 -2
  77. package/lib/Fieldset/Fieldset.js +165 -0
  78. package/lib/Fieldset/FieldsetContainer.js +46 -0
  79. package/lib/Fieldset/FieldsetContainer.native.js +38 -0
  80. package/lib/Fieldset/Legend.js +38 -0
  81. package/lib/Fieldset/Legend.native.js +48 -0
  82. package/lib/Fieldset/cssReset.js +21 -0
  83. package/lib/Fieldset/index.js +13 -0
  84. package/lib/FlexGrid/Col/Col.js +73 -41
  85. package/lib/FlexGrid/Col/index.js +13 -2
  86. package/lib/FlexGrid/FlexGrid.js +99 -49
  87. package/lib/FlexGrid/Row/Row.js +58 -30
  88. package/lib/FlexGrid/Row/index.js +13 -2
  89. package/lib/FlexGrid/helpers/index.js +9 -1
  90. package/lib/FlexGrid/index.js +13 -2
  91. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  92. package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
  93. package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
  94. package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
  95. package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
  96. package/lib/HorizontalScroll/dictionary.js +18 -0
  97. package/lib/HorizontalScroll/index.js +35 -0
  98. package/lib/HorizontalScroll/itemPositions.js +128 -0
  99. package/lib/Icon/Icon.js +57 -48
  100. package/lib/Icon/IconText.js +54 -25
  101. package/lib/Icon/index.js +31 -4
  102. package/lib/IconButton/IconButton.js +140 -0
  103. package/lib/IconButton/index.js +13 -0
  104. package/lib/InputLabel/InputLabel.js +102 -40
  105. package/lib/InputLabel/LabelContent.js +41 -0
  106. package/lib/InputLabel/LabelContent.native.js +32 -6
  107. package/lib/InputLabel/index.js +13 -2
  108. package/lib/InputSupports/InputSupports.js +71 -52
  109. package/lib/InputSupports/index.js +13 -2
  110. package/lib/InputSupports/propTypes.js +19 -8
  111. package/lib/InputSupports/useInputSupports.js +41 -0
  112. package/lib/Link/ChevronLink.js +44 -20
  113. package/lib/Link/InlinePressable.js +56 -0
  114. package/lib/Link/InlinePressable.native.js +39 -15
  115. package/lib/Link/Link.js +36 -13
  116. package/lib/Link/LinkBase.js +98 -61
  117. package/lib/Link/TextButton.js +41 -17
  118. package/lib/Link/index.js +39 -5
  119. package/lib/List/List.js +55 -26
  120. package/lib/List/ListItem.js +79 -41
  121. package/lib/List/index.js +13 -2
  122. package/lib/Modal/Modal.js +231 -0
  123. package/lib/Modal/dictionary.js +16 -0
  124. package/lib/Modal/index.js +13 -0
  125. package/lib/Notification/Notification.js +216 -0
  126. package/lib/Notification/dictionary.js +15 -0
  127. package/lib/Notification/index.js +13 -0
  128. package/lib/Pagination/PageButton.js +61 -28
  129. package/lib/Pagination/Pagination.js +78 -43
  130. package/lib/Pagination/SideButton.js +73 -42
  131. package/lib/Pagination/dictionary.js +9 -2
  132. package/lib/Pagination/index.js +13 -2
  133. package/lib/Pagination/usePagination.js +12 -2
  134. package/lib/Progress/Progress.js +104 -0
  135. package/lib/Progress/ProgressBar.js +157 -0
  136. package/lib/Progress/ProgressBarBackground.js +61 -0
  137. package/lib/Progress/index.js +16 -0
  138. package/lib/Radio/Radio.js +116 -114
  139. package/lib/Radio/RadioButton.js +152 -0
  140. package/lib/Radio/RadioGroup.js +244 -0
  141. package/lib/Radio/RadioInput.js +76 -0
  142. package/lib/Radio/RadioInput.native.js +9 -1
  143. package/lib/Radio/index.js +21 -2
  144. package/lib/RadioCard/RadioCard.js +244 -0
  145. package/lib/RadioCard/RadioCardGroup.js +252 -0
  146. package/lib/RadioCard/index.js +21 -0
  147. package/lib/Search/Search.js +254 -0
  148. package/lib/Search/dictionary.js +19 -0
  149. package/lib/Search/index.js +13 -0
  150. package/lib/Select/Group.js +33 -0
  151. package/lib/Select/Group.native.js +16 -5
  152. package/lib/Select/Item.js +29 -0
  153. package/lib/Select/Item.native.js +14 -4
  154. package/lib/Select/Picker.js +84 -0
  155. package/lib/Select/Picker.native.js +73 -30
  156. package/lib/Select/Select.js +155 -85
  157. package/lib/Select/index.js +19 -6
  158. package/lib/SideNav/Item.js +63 -37
  159. package/lib/SideNav/ItemContent.js +41 -15
  160. package/lib/SideNav/ItemsGroup.js +55 -31
  161. package/lib/SideNav/SideNav.js +100 -73
  162. package/lib/SideNav/index.js +15 -1
  163. package/lib/Skeleton/Skeleton.js +64 -46
  164. package/lib/Skeleton/index.js +13 -2
  165. package/lib/Skeleton/skeleton.constant.js +12 -0
  166. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  168. package/lib/Spacer/Spacer.js +49 -18
  169. package/lib/Spacer/index.js +13 -2
  170. package/lib/StackView/StackView.js +72 -31
  171. package/lib/StackView/StackWrap.js +43 -13
  172. package/lib/StackView/StackWrap.native.js +13 -2
  173. package/lib/StackView/StackWrapBox.js +77 -29
  174. package/lib/StackView/StackWrapGap.js +56 -26
  175. package/lib/StackView/common.js +23 -6
  176. package/lib/StackView/getStackedContent.js +47 -17
  177. package/lib/StackView/index.js +29 -5
  178. package/lib/StepTracker/Step.js +245 -0
  179. package/lib/StepTracker/StepTracker.js +202 -0
  180. package/lib/StepTracker/dictionary.js +17 -0
  181. package/lib/StepTracker/index.js +13 -0
  182. package/lib/Tabs/Tabs.js +124 -0
  183. package/lib/Tabs/TabsItem.js +238 -0
  184. package/lib/Tabs/index.js +13 -0
  185. package/lib/Tags/Tags.js +148 -99
  186. package/lib/Tags/index.js +13 -2
  187. package/lib/TextInput/TextArea.js +57 -28
  188. package/lib/TextInput/TextInput.js +50 -23
  189. package/lib/TextInput/TextInputBase.js +90 -63
  190. package/lib/TextInput/index.js +23 -3
  191. package/lib/TextInput/propTypes.js +18 -7
  192. package/lib/ThemeProvider/ThemeProvider.js +46 -18
  193. package/lib/ThemeProvider/index.js +61 -6
  194. package/lib/ThemeProvider/useSetTheme.js +19 -5
  195. package/lib/ThemeProvider/useTheme.js +13 -4
  196. package/lib/ThemeProvider/useThemeTokens.js +32 -16
  197. package/lib/ThemeProvider/utils/index.js +31 -2
  198. package/lib/ThemeProvider/utils/styles.js +50 -14
  199. package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
  200. package/lib/ToggleSwitch/ToggleSwitch.js +85 -56
  201. package/lib/ToggleSwitch/index.js +13 -2
  202. package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
  203. package/lib/Tooltip/Backdrop.native.js +39 -15
  204. package/lib/Tooltip/Tooltip.js +117 -74
  205. package/lib/Tooltip/dictionary.js +9 -2
  206. package/lib/Tooltip/getTooltipPosition.js +9 -1
  207. package/lib/Tooltip/index.js +13 -2
  208. package/lib/TooltipButton/TooltipButton.js +57 -38
  209. package/lib/TooltipButton/index.js +13 -2
  210. package/lib/Typography/Typography.js +87 -41
  211. package/lib/Typography/index.js +13 -2
  212. package/lib/ViewportProvider/ViewportProvider.js +34 -13
  213. package/lib/ViewportProvider/index.js +28 -3
  214. package/lib/ViewportProvider/useViewport.js +15 -3
  215. package/lib/ViewportProvider/useViewportListener.js +24 -10
  216. package/lib/index.js +539 -33
  217. package/lib/utils/a11y/index.js +31 -1
  218. package/lib/utils/a11y/semantics.js +173 -0
  219. package/lib/utils/a11y/textSize.js +23 -7
  220. package/lib/utils/animation/index.js +15 -2
  221. package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
  222. package/lib/utils/children.js +134 -0
  223. package/lib/utils/index.js +163 -10
  224. package/lib/utils/info/index.js +18 -6
  225. package/lib/utils/info/platform/index.js +19 -7
  226. package/lib/utils/info/platform/platform.android.js +8 -1
  227. package/lib/utils/info/platform/platform.ios.js +8 -1
  228. package/lib/utils/info/platform/platform.js +8 -0
  229. package/lib/utils/info/platform/platform.native.js +8 -1
  230. package/lib/utils/info/versions.js +15 -4
  231. package/lib/utils/input.js +53 -25
  232. package/lib/utils/pressability.js +38 -10
  233. package/lib/utils/propTypes.js +287 -141
  234. package/lib/utils/useCopy.js +40 -5
  235. package/lib/utils/useHash.js +52 -0
  236. package/lib/utils/useHash.native.js +15 -0
  237. package/lib/utils/useResponsiveProp.js +21 -9
  238. package/lib/utils/useSpacingScale.js +19 -9
  239. package/lib/utils/useUniqueId.js +12 -3
  240. package/package.json +14 -9
  241. package/release-context.json +4 -4
  242. package/src/A11yText/index.jsx +6 -4
  243. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
  244. package/src/ActivityIndicator/Spinner.native.jsx +5 -3
  245. package/src/Box/Box.jsx +132 -39
  246. package/src/Button/Button.jsx +10 -6
  247. package/src/Button/ButtonBase.jsx +99 -99
  248. package/src/Button/ButtonGroup.jsx +81 -69
  249. package/src/Button/ButtonLink.jsx +21 -15
  250. package/src/Button/propTypes.js +12 -2
  251. package/src/Card/Card.jsx +5 -31
  252. package/src/Card/CardBase.jsx +59 -0
  253. package/src/Card/PressableCardBase.jsx +119 -0
  254. package/src/Card/index.js +3 -0
  255. package/src/Checkbox/Checkbox.jsx +121 -112
  256. package/src/Checkbox/CheckboxGroup.jsx +206 -0
  257. package/src/Checkbox/{CheckboxInput.web.jsx → CheckboxInput.jsx} +0 -0
  258. package/src/Checkbox/index.js +2 -0
  259. package/src/Divider/Divider.jsx +7 -4
  260. package/src/ExpandCollapse/Accordion.jsx +3 -2
  261. package/src/ExpandCollapse/Control.jsx +40 -43
  262. package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
  263. package/src/ExpandCollapse/Panel.jsx +69 -63
  264. package/src/Feedback/Feedback.jsx +36 -33
  265. package/src/Fieldset/Fieldset.jsx +136 -0
  266. package/src/Fieldset/FieldsetContainer.jsx +31 -0
  267. package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
  268. package/src/Fieldset/Legend.jsx +21 -0
  269. package/src/Fieldset/Legend.native.jsx +27 -0
  270. package/src/Fieldset/cssReset.js +14 -0
  271. package/src/Fieldset/index.js +3 -0
  272. package/src/FlexGrid/Col/Col.jsx +139 -132
  273. package/src/FlexGrid/FlexGrid.jsx +79 -51
  274. package/src/FlexGrid/Row/Row.jsx +55 -48
  275. package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
  276. package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
  277. package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
  278. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
  279. package/src/HorizontalScroll/dictionary.js +11 -0
  280. package/src/HorizontalScroll/index.js +17 -0
  281. package/src/HorizontalScroll/itemPositions.js +101 -0
  282. package/src/Icon/Icon.jsx +43 -50
  283. package/src/Icon/IconText.jsx +23 -18
  284. package/src/Icon/index.js +2 -2
  285. package/src/IconButton/IconButton.jsx +114 -0
  286. package/src/IconButton/index.js +3 -0
  287. package/src/InputLabel/InputLabel.jsx +57 -35
  288. package/src/InputLabel/LabelContent.jsx +21 -0
  289. package/src/InputLabel/LabelContent.native.jsx +11 -2
  290. package/src/InputSupports/InputSupports.jsx +29 -45
  291. package/src/InputSupports/useInputSupports.js +30 -0
  292. package/src/Link/ChevronLink.jsx +26 -16
  293. package/src/Link/{InlinePressable.web.jsx → InlinePressable.jsx} +5 -3
  294. package/src/Link/InlinePressable.native.jsx +5 -3
  295. package/src/Link/Link.jsx +22 -16
  296. package/src/Link/LinkBase.jsx +76 -65
  297. package/src/Link/TextButton.jsx +30 -23
  298. package/src/List/List.jsx +5 -4
  299. package/src/List/ListItem.jsx +77 -82
  300. package/src/Modal/Modal.jsx +190 -0
  301. package/src/Modal/dictionary.js +9 -0
  302. package/src/Modal/index.js +3 -0
  303. package/src/Notification/Notification.jsx +164 -0
  304. package/src/Notification/dictionary.js +8 -0
  305. package/src/Notification/index.js +3 -0
  306. package/src/Pagination/PageButton.jsx +42 -35
  307. package/src/Pagination/Pagination.jsx +88 -92
  308. package/src/Pagination/SideButton.jsx +44 -41
  309. package/src/Progress/Progress.jsx +78 -0
  310. package/src/Progress/ProgressBar.jsx +123 -0
  311. package/src/Progress/ProgressBarBackground.jsx +36 -0
  312. package/src/Progress/index.js +6 -0
  313. package/src/Radio/Radio.jsx +82 -112
  314. package/src/Radio/RadioButton.jsx +142 -0
  315. package/src/Radio/RadioGroup.jsx +209 -0
  316. package/src/Radio/{RadioInput.web.jsx → RadioInput.jsx} +0 -0
  317. package/src/Radio/index.js +2 -0
  318. package/src/RadioCard/RadioCard.jsx +198 -0
  319. package/src/RadioCard/RadioCardGroup.jsx +218 -0
  320. package/src/RadioCard/index.js +5 -0
  321. package/src/Search/Search.jsx +225 -0
  322. package/src/Search/dictionary.js +12 -0
  323. package/src/Search/index.js +3 -0
  324. package/src/Select/{Group.web.jsx → Group.jsx} +0 -0
  325. package/src/Select/{Item.web.jsx → Item.jsx} +0 -0
  326. package/src/Select/Picker.jsx +74 -0
  327. package/src/Select/Picker.native.jsx +56 -49
  328. package/src/Select/Select.jsx +125 -92
  329. package/src/SideNav/Item.jsx +54 -47
  330. package/src/SideNav/ItemsGroup.jsx +50 -43
  331. package/src/SideNav/SideNav.jsx +68 -60
  332. package/src/Skeleton/Skeleton.jsx +25 -32
  333. package/src/Skeleton/skeleton.constant.js +3 -0
  334. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  335. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  336. package/src/Spacer/Spacer.jsx +11 -4
  337. package/src/StackView/StackView.jsx +54 -23
  338. package/src/StackView/StackWrap.jsx +16 -7
  339. package/src/StackView/StackWrapBox.jsx +63 -28
  340. package/src/StackView/StackWrapGap.jsx +46 -24
  341. package/src/StackView/common.jsx +3 -2
  342. package/src/StackView/getStackedContent.jsx +8 -2
  343. package/src/StepTracker/Step.jsx +202 -0
  344. package/src/StepTracker/StepTracker.jsx +174 -0
  345. package/src/StepTracker/dictionary.js +10 -0
  346. package/src/StepTracker/index.js +3 -0
  347. package/src/Tabs/Tabs.jsx +97 -0
  348. package/src/Tabs/TabsItem.jsx +212 -0
  349. package/src/Tabs/index.js +3 -0
  350. package/src/Tags/Tags.jsx +115 -102
  351. package/src/TextInput/TextArea.jsx +5 -4
  352. package/src/TextInput/TextInput.jsx +5 -4
  353. package/src/TextInput/TextInputBase.jsx +95 -98
  354. package/src/ThemeProvider/ThemeProvider.jsx +11 -7
  355. package/src/ThemeProvider/useSetTheme.js +4 -0
  356. package/src/ThemeProvider/useThemeTokens.js +2 -2
  357. package/src/ThemeProvider/utils/styles.js +18 -5
  358. package/src/ThemeProvider/utils/theme-tokens.js +74 -5
  359. package/src/ToggleSwitch/ToggleSwitch.jsx +50 -52
  360. package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
  361. package/src/Tooltip/Tooltip.jsx +135 -131
  362. package/src/TooltipButton/TooltipButton.jsx +23 -27
  363. package/src/Typography/Typography.jsx +71 -47
  364. package/src/index.js +23 -2
  365. package/src/utils/a11y/index.js +1 -0
  366. package/src/utils/a11y/semantics.js +162 -0
  367. package/src/utils/children.jsx +119 -0
  368. package/src/utils/index.js +3 -0
  369. package/src/utils/info/platform/platform.js +1 -0
  370. package/src/utils/info/versions.js +2 -2
  371. package/src/utils/input.js +36 -25
  372. package/src/utils/pressability.js +4 -0
  373. package/src/utils/propTypes.js +199 -72
  374. package/src/utils/useCopy.js +30 -4
  375. package/src/utils/useHash.js +39 -0
  376. package/src/utils/useHash.native.js +6 -0
  377. package/stories/A11yText/A11yText.stories.jsx +6 -10
  378. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
  379. package/stories/Box/Box.stories.jsx +1 -1
  380. package/stories/Button/Button.stories.jsx +2 -2
  381. package/stories/Button/ButtonGroup.stories.jsx +1 -1
  382. package/stories/Button/ButtonLink.stories.jsx +1 -1
  383. package/stories/Card/Card.stories.jsx +1 -1
  384. package/stories/Checkbox/Checkbox.stories.jsx +24 -1
  385. package/stories/Divider/Divider.stories.jsx +1 -1
  386. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
  387. package/stories/Feedback/Feedback.stories.jsx +1 -1
  388. package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
  389. package/stories/FlexGrid/02 Row.stories.jsx +1 -1
  390. package/stories/FlexGrid/03 Col.stories.jsx +1 -1
  391. package/stories/Icon/Icon.stories.jsx +27 -7
  392. package/stories/IconButton/IconButton.stories.jsx +50 -0
  393. package/stories/InputLabel/InputLabel.stories.jsx +1 -1
  394. package/stories/Link/ChevronLink.stories.jsx +1 -1
  395. package/stories/Link/Link.stories.jsx +17 -21
  396. package/stories/Link/TextButton.stories.jsx +1 -1
  397. package/stories/List/List.stories.jsx +1 -1
  398. package/stories/Modal/Modal.stories.jsx +29 -0
  399. package/stories/Notification/Notification.stories.jsx +82 -0
  400. package/stories/Pagination/Pagination.stories.jsx +1 -1
  401. package/stories/Progress/Progress.stories.jsx +93 -0
  402. package/stories/Radio/Radio.stories.jsx +23 -36
  403. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  404. package/stories/Search/Search.stories.jsx +16 -0
  405. package/stories/Select/Select.stories.jsx +1 -1
  406. package/stories/SideNav/SideNav.stories.jsx +1 -1
  407. package/stories/SideNav/SideNavItem.stories.jsx +1 -1
  408. package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
  409. package/stories/Skeleton/Skeleton.stories.jsx +2 -2
  410. package/stories/Spacer/Spacer.stories.jsx +1 -1
  411. package/stories/StackView/StackView.stories.jsx +1 -1
  412. package/stories/StackView/StackWrap.stories.jsx +1 -1
  413. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  414. package/stories/Tabs/Tabs.stories.jsx +97 -0
  415. package/stories/Tags/Tags.stories.jsx +1 -1
  416. package/stories/TextInput/TextArea.stories.jsx +1 -1
  417. package/stories/TextInput/TextInput.stories.jsx +1 -1
  418. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
  419. package/stories/Tooltip/Tooltip.stories.jsx +1 -1
  420. package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
  421. package/stories/Typography/Typography.stories.jsx +1 -1
  422. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
  423. package/stories/supports.jsx +37 -3
  424. package/__fixtures__/accessible.icon.svg +0 -6
  425. package/babel.config.json +0 -8
  426. package/docs/Contributing.stories.mdx +0 -9
  427. package/docs/Fonts.stories.mdx +0 -104
  428. package/docs/Icons.stories.mdx +0 -144
  429. package/docs/Introduction.stories.mdx +0 -9
  430. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  431. package/lib/Checkbox/CheckboxInput.web.js +0 -57
  432. package/lib/InputLabel/LabelContent.web.js +0 -17
  433. package/lib/Link/InlinePressable.web.js +0 -32
  434. package/lib/Radio/RadioInput.web.js +0 -59
  435. package/lib/Select/Group.web.js +0 -18
  436. package/lib/Select/Item.web.js +0 -15
  437. package/lib/Select/Picker.web.js +0 -63
  438. package/lib/config/svgr-icons-web.js +0 -9
  439. package/lib/config/svgr-icons.js +0 -52
  440. package/lib/utils/info/platform/platform.web.js +0 -1
  441. package/src/InputLabel/LabelContent.web.jsx +0 -13
  442. package/src/Select/Picker.web.jsx +0 -67
  443. package/src/config/svgr-icons-web.js +0 -11
  444. package/src/config/svgr-icons.js +0 -46
  445. 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 = _interopRequireWildcard(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"));
31
+
32
+ var _jsxRuntime = require("react/jsx-runtime");
22
33
 
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+
36
+ 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); }
37
+
38
+ 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; }
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 = ({
@@ -51,31 +68,12 @@ const selectDescriptionStyles = ({
51
68
  labelMarginLeft = 0
52
69
  }) => ({
53
70
  marginLeft: descriptionMarginLeft ?? containerPaddingLeft + inputSize + labelMarginLeft,
54
- ...applyTextStyles({
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,
@@ -125,7 +123,7 @@ const selectLabelStyles = ({
125
123
  */
126
124
 
127
125
 
128
- const Radio = ({
126
+ const Radio = /*#__PURE__*/(0, _react.forwardRef)(({
129
127
  checked,
130
128
  defaultChecked,
131
129
  description,
@@ -133,159 +131,163 @@ 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,
140
138
  variant,
141
139
  ...rest
142
- }) => {
140
+ }, ref) => {
143
141
  const {
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,
156
154
  ...variant
157
155
  });
158
156
 
159
- const handleChange = () => {
157
+ const handleChange = event => {
160
158
  if (!inactive && !isChecked) {
161
- setIsChecked(true);
159
+ setIsChecked(true, event);
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 = event => {
164
+ // The expected keyboard shortcut for activating a radio is the Space key
165
+ if ((event === null || event === void 0 ? void 0 : event.key) === ' ') handleChange(event);
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 ?? uniqueId;
172
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
173
+ ref: ref,
174
174
  disabled: inactive,
175
+ onKeyDown: handleKeyDown,
175
176
  onPress: handleChange,
176
177
  accessibilityRole: "radio",
177
178
  accessibilityState: {
178
179
  checked: isChecked,
179
180
  disabled: inactive
180
- }
181
- }, accessibilityProps), ({
182
- focused: focus,
183
- hovered: hover,
184
- pressed
185
- }) => {
186
- const stateTokens = getTokens({
187
- focus,
188
- hover,
181
+ },
182
+ ...accessibilityProps,
183
+ children: ({
184
+ focused: focus,
185
+ hovered: hover,
189
186
  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));
187
+ }) => {
188
+ const stateTokens = getTokens({
189
+ focus,
190
+ hover,
191
+ pressed
192
+ });
193
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
194
+ space: 0,
195
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
196
+ style: [staticStyles.container, selectContainerStyles(stateTokens)],
197
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RadioButton.default, {
198
+ tokens: (0, _RadioButton.selectRadioButtonTokens)(stateTokens),
199
+ isControlled: isControlled,
200
+ isChecked: isChecked,
201
+ inactive: inactive,
202
+ defaultChecked: defaultChecked,
203
+ inputId: inputId,
204
+ handleChange: handleChange,
205
+ name: inputName,
206
+ value: value
207
+ }), Boolean(label) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
208
+ style: selectLabelStyles(stateTokens),
209
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LabelContent.default, {
210
+ forId: inputId,
211
+ children: label
212
+ })
213
+ })]
214
+ }), Boolean(description) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
215
+ style: selectDescriptionStyles(getTokens()),
216
+ children: description
217
+ })]
218
+ });
219
+ }
216
220
  });
217
- };
218
-
219
- Radio.propTypes = { ...a11yProps.propTypes,
221
+ });
222
+ Radio.displayName = 'Radio';
223
+ Radio.propTypes = { ..._propTypes2.a11yProps.propTypes,
220
224
 
221
225
  /**
222
226
  * Use `checked` for controlled Radio. For uncontrolled Radio, use the `defaultChecked` prop.
223
227
  */
224
- checked: PropTypes.bool,
228
+ checked: _propTypes.default.bool,
225
229
 
226
230
  /**
227
231
  * Use `defaultChecked` to provide the initial value for an uncontrolled Radio.
228
232
  */
229
- defaultChecked: PropTypes.bool,
233
+ defaultChecked: _propTypes.default.bool,
230
234
 
231
235
  /**
232
236
  * An optional radio button description.
233
237
  */
234
- description: PropTypes.string,
238
+ description: _propTypes.default.string,
235
239
 
236
240
  /**
237
241
  * Radio button ID.
238
242
  */
239
- id: PropTypes.string,
243
+ id: _propTypes.default.string,
240
244
 
241
245
  /**
242
246
  * Whether the corresponding input is disabled or active.
243
247
  */
244
- inactive: PropTypes.bool,
248
+ inactive: _propTypes.default.bool,
245
249
 
246
250
  /**
247
251
  * The label.
248
252
  */
249
- label: PropTypes.string,
253
+ label: _propTypes.default.string,
250
254
 
251
255
  /**
252
256
  * Associate this radio button with a group (set as the name attribute).
253
257
  */
254
- name: PropTypes.string,
258
+ name: _propTypes.default.string,
255
259
 
256
260
  /**
257
261
  * Whether the underlying input triggered a validation error or not.
258
262
  */
259
- error: PropTypes.bool,
263
+ error: _propTypes.default.bool,
260
264
 
261
265
  /**
262
266
  * The value. Must be unique within the group.
263
267
  */
264
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),
268
+ value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]),
265
269
 
266
270
  /**
267
271
  * Callback called when a controlled radio button gets interacted with.
268
272
  */
269
- onChange: PropTypes.func,
273
+ onChange: _propTypes.default.func,
270
274
 
271
275
  /**
272
276
  * Radio tokens.
273
277
  */
274
- tokens: getTokensPropType('Radio'),
278
+ tokens: (0, _utils.getTokensPropType)('Radio'),
275
279
 
276
280
  /**
277
281
  * Radio variant.
278
282
  */
279
- variant: variantProp.propType
283
+ variant: _utils.variantProp.propType
280
284
  };
281
- export default Radio;
282
- const staticStyles = StyleSheet.create({
285
+ var _default = Radio;
286
+ exports.default = _default;
287
+
288
+ const staticStyles = _StyleSheet.default.create({
283
289
  container: {
284
290
  flexDirection: 'row',
285
291
  alignItems: 'center'
286
- },
287
- defaultInputStyles: {
288
- alignItems: 'center',
289
- justifyContent: 'center'
290
292
  }
291
293
  });
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.selectRadioButtonTokens = void 0;
7
+
8
+ var _react = _interopRequireWildcard(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 _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
+
16
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
17
+
18
+ var _RadioInput = _interopRequireDefault(require("./RadioInput"));
19
+
20
+ var _ThemeProvider = require("../ThemeProvider");
21
+
22
+ var _utils = require("../utils");
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ // TODO: roll out a standard approach to token sets
33
+ // https://github.com/telus/universal-design-system/issues/782
34
+ const tokenKeys = ['checkedBackgroundColor', 'checkedSize', 'inputBackgroundColor', 'inputBorderColor', 'inputBorderWidth', 'inputOutlineColor', 'inputOutlineWidth', 'inputSize', 'outerBorderColor', 'outerBorderWidth', 'outerBorderGap', 'inputSize'];
35
+
36
+ const selectRadioButtonTokens = (themeTokens, prefix) => (0, _utils.selectTokens)(tokenKeys, themeTokens, prefix);
37
+
38
+ exports.selectRadioButtonTokens = selectRadioButtonTokens;
39
+
40
+ const getBorderRadius = inputSize => inputSize / 2;
41
+
42
+ const selectCheckedStyles = ({
43
+ checkedBackgroundColor,
44
+ checkedSize
45
+ }) => ({
46
+ backgroundColor: checkedBackgroundColor,
47
+ borderRadius: checkedSize / 2,
48
+ height: checkedSize,
49
+ width: checkedSize
50
+ });
51
+
52
+ const selectInputStyles = ({
53
+ inputBackgroundColor,
54
+ inputBorderColor,
55
+ inputBorderWidth,
56
+ inputOutlineColor,
57
+ inputOutlineWidth,
58
+ inputSize
59
+ }) => ({
60
+ borderColor: inputBorderColor,
61
+ borderRadius: getBorderRadius(inputSize),
62
+ borderWidth: inputBorderWidth,
63
+ backgroundColor: inputBackgroundColor,
64
+ height: inputSize,
65
+ width: inputSize,
66
+ ..._Platform.default.select({
67
+ web: {
68
+ outlineStyle: 'solid',
69
+ outlineColor: inputOutlineColor,
70
+ outlineWidth: inputOutlineWidth
71
+ }
72
+ })
73
+ });
74
+
75
+ const selectOuterBorderStyles = ({
76
+ outerBorderColor,
77
+ outerBorderWidth,
78
+ outerBorderGap,
79
+ inputSize
80
+ }) => ({ ...(0, _ThemeProvider.applyOuterBorder)({
81
+ outerBorderColor,
82
+ outerBorderWidth,
83
+ outerBorderGap,
84
+ borderRadius: getBorderRadius(inputSize)
85
+ })
86
+ });
87
+ /**
88
+ * The visual toggle of a radio input. Is not interactive on its own, should be used inside
89
+ * an interactive parent that passes down props when interacted with.
90
+ */
91
+
92
+
93
+ const RadioButton = /*#__PURE__*/(0, _react.forwardRef)(({
94
+ isChecked,
95
+ tokens,
96
+ inactive,
97
+ defaultChecked,
98
+ inputId,
99
+ isControlled,
100
+ handleChange,
101
+ name: inputName,
102
+ value
103
+ }, ref) => {
104
+ const themeTokens = (0, _ThemeProvider.validateThemeTokens)((0, _ThemeProvider.resolveThemeTokens)(tokens, {
105
+ checked: isChecked
106
+ }), (0, _utils.getTokensSetPropType)(tokenKeys), 'RadioButton');
107
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
108
+ style: selectOuterBorderStyles(themeTokens),
109
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
110
+ style: [staticStyles.defaultInputStyles, selectInputStyles(themeTokens, isChecked)],
111
+ testID: "Radio-Input",
112
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RadioInput.default, {
113
+ ref: ref,
114
+ checked: isChecked,
115
+ defaultChecked: defaultChecked,
116
+ disabled: inactive,
117
+ id: inputId,
118
+ isControlled: isControlled,
119
+ onChange: handleChange,
120
+ name: inputName,
121
+ value: value
122
+ }), isChecked && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
123
+ style: selectCheckedStyles(themeTokens),
124
+ testID: "Radio-Checked"
125
+ })]
126
+ })
127
+ });
128
+ });
129
+ RadioButton.displayName = 'RadioButton';
130
+ RadioButton.propTypes = {
131
+ isChecked: _propTypes.default.bool,
132
+ tokens: (0, _utils.getTokensSetPropType)(tokenKeys, {
133
+ allowFunction: true
134
+ }),
135
+ inactive: _propTypes.default.bool,
136
+ defaultChecked: _propTypes.default.bool,
137
+ inputId: _propTypes.default.string,
138
+ isControlled: _propTypes.default.bool,
139
+ handleChange: _propTypes.default.func,
140
+ name: _propTypes.default.string,
141
+ value: _propTypes.default.bool
142
+ };
143
+
144
+ const staticStyles = _StyleSheet.default.create({
145
+ defaultInputStyles: {
146
+ alignItems: 'center',
147
+ justifyContent: 'center'
148
+ }
149
+ });
150
+
151
+ var _default = RadioButton;
152
+ exports.default = _default;