@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,11 +1,34 @@
1
- import React, { useState } from 'react';
2
- import { Platform } from 'react-native';
3
- import { getTokensPropType, variantProp } from '../utils';
4
- import InputSupports from '../InputSupports';
5
- import TextInputBase from './TextInputBase';
6
- import { useThemeTokens } from '../ThemeProvider';
7
- import inputSupportProps from '../InputSupports/propTypes';
8
- import textInputPropTypes from './propTypes';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
11
+
12
+ var _utils = require("../utils");
13
+
14
+ var _InputSupports = _interopRequireDefault(require("../InputSupports"));
15
+
16
+ var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _propTypes = _interopRequireDefault(require("../InputSupports/propTypes"));
21
+
22
+ var _propTypes2 = _interopRequireDefault(require("./propTypes"));
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
+
9
32
  /**
10
33
  * Use to collect long-form information such as product feedback or support queries.
11
34
  * Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
@@ -30,14 +53,13 @@ import textInputPropTypes from './propTypes';
30
53
  * or an indicator that the field is optional.
31
54
  * It is a more usable and accessible option than the HTML `placeholder` attribute.
32
55
  */
33
-
34
- function TextArea({
56
+ const TextArea = /*#__PURE__*/(0, _react.forwardRef)(({
35
57
  tokens,
36
58
  variant = {},
37
59
  ...remainingProps
38
- }) {
39
- const themeTokens = useThemeTokens('TextArea', tokens, variant);
40
- const [inputHeight, setInputHeight] = useState(); // adjust the text area's height as new lines are added to the content
60
+ }, ref) => {
61
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('TextArea', tokens, variant);
62
+ const [inputHeight, setInputHeight] = (0, _react.useState)(); // adjust the text area's height as new lines are added to the content
41
63
 
42
64
  const onHeightChange = ({
43
65
  nativeEvent: {
@@ -47,7 +69,7 @@ function TextArea({
47
69
  }
48
70
  }) => {
49
71
  // on native this is happens out of the box
50
- if (Platform.OS === 'web') {
72
+ if (_Platform.default.OS === 'web') {
51
73
  setInputHeight(height);
52
74
  }
53
75
  };
@@ -55,7 +77,8 @@ function TextArea({
55
77
  const {
56
78
  props: supportsProps,
57
79
  rest
58
- } = inputSupportProps.select(remainingProps);
80
+ } = _propTypes.default.select(remainingProps);
81
+
59
82
  const inputProps = { ...rest,
60
83
  variant: { ...variant,
61
84
  validation: supportsProps.validation
@@ -65,18 +88,24 @@ function TextArea({
65
88
  height: inputHeight,
66
89
  tokens: themeTokens
67
90
  };
68
- return /*#__PURE__*/React.createElement(InputSupports, supportsProps, ({
69
- a11yProps,
70
- inputId
71
- }) => /*#__PURE__*/React.createElement(TextInputBase, Object.assign({}, inputProps, a11yProps, {
72
- nativeID: inputId
73
- })));
74
- }
75
-
76
- TextArea.propTypes = { ...inputSupportProps.types,
77
- ...textInputPropTypes,
78
- tokens: getTokensPropType('TextArea', 'TextInput'),
91
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
92
+ children: ({
93
+ a11yProps,
94
+ inputId
95
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, {
96
+ ref: ref,
97
+ ...inputProps,
98
+ ...a11yProps,
99
+ nativeID: inputId
100
+ })
101
+ });
102
+ });
103
+ TextArea.displayName = 'TextArea';
104
+ TextArea.propTypes = { ..._propTypes.default.types,
105
+ ..._propTypes2.default,
106
+ tokens: (0, _utils.getTokensPropType)('TextArea', 'TextInput'),
79
107
  // TODO: support both TextArea and TextInput tokens
80
- variant: variantProp.propType
108
+ variant: _utils.variantProp.propType
81
109
  };
82
- export default TextArea;
110
+ var _default = TextArea;
111
+ exports.default = _default;
@@ -1,9 +1,30 @@
1
- import React from 'react';
2
- import { getTokensPropType, variantProp } from '../utils';
3
- import InputSupports from '../InputSupports';
4
- import TextInputBase from './TextInputBase';
5
- import inputSupportProps from '../InputSupports/propTypes';
6
- import textInputPropTypes from './propTypes';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _utils = require("../utils");
11
+
12
+ var _InputSupports = _interopRequireDefault(require("../InputSupports"));
13
+
14
+ var _TextInputBase = _interopRequireDefault(require("./TextInputBase"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("../InputSupports/propTypes"));
17
+
18
+ var _propTypes2 = _interopRequireDefault(require("./propTypes"));
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
7
28
  /**
8
29
  * A basic text input component. Use in forms or individually to receive user's input.
9
30
  * Due to React Native's implementation of `TextInput` it's not possible to access the current value by passing a ref.
@@ -22,33 +43,39 @@ import textInputPropTypes from './propTypes';
22
43
  * supported props and <a href="https://reactnative.dev/docs/textinput" target="_blank">React Native Web documentation</a> for
23
44
  * their implementation on the web.
24
45
  */
25
-
26
- function TextInput({
46
+ const TextInput = /*#__PURE__*/(0, _react.forwardRef)(({
27
47
  tokens,
28
48
  variant = {},
29
49
  ...remainingProps
30
- }) {
50
+ }, ref) => {
31
51
  const {
32
52
  props: supportsProps,
33
53
  rest
34
- } = inputSupportProps.select(remainingProps);
54
+ } = _propTypes.default.select(remainingProps);
55
+
35
56
  const inputProps = { ...rest,
36
57
  tokens,
37
58
  variant: { ...variant,
38
59
  validation: supportsProps.validation
39
60
  }
40
61
  };
41
- return /*#__PURE__*/React.createElement(InputSupports, supportsProps, ({
42
- a11yProps,
43
- inputId
44
- }) => /*#__PURE__*/React.createElement(TextInputBase, Object.assign({}, inputProps, a11yProps, {
45
- nativeID: inputId
46
- })));
47
- }
48
-
49
- TextInput.propTypes = { ...inputSupportProps.types,
50
- ...textInputPropTypes,
51
- tokens: getTokensPropType('TextInput'),
52
- variant: variantProp.propType
62
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputSupports.default, { ...supportsProps,
63
+ children: ({
64
+ a11yProps,
65
+ inputId
66
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInputBase.default, {
67
+ ref: ref,
68
+ ...inputProps,
69
+ ...a11yProps,
70
+ nativeID: inputId
71
+ })
72
+ });
73
+ });
74
+ TextInput.displayName = 'TextInput';
75
+ TextInput.propTypes = { ..._propTypes.default.types,
76
+ ..._propTypes2.default,
77
+ tokens: (0, _utils.getTokensPropType)('TextInput'),
78
+ variant: _utils.variantProp.propType
53
79
  };
54
- export default TextInput;
80
+ var _default = TextInput;
81
+ exports.default = _default;
@@ -1,8 +1,33 @@
1
- import React, { useState } from 'react';
2
- import { Platform, StyleSheet, TextInput as NativeTextInput, View } from 'react-native';
3
- import PropTypes from 'prop-types';
4
- import { applyTextStyles, useThemeTokens } from '../ThemeProvider';
5
- import { getTokensPropType, useInputValue, variantProp } from '../utils';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
11
+
12
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
13
+
14
+ var _TextInput = _interopRequireDefault(require("react-native-web/dist/cjs/exports/TextInput"));
15
+
16
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
17
+
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _ThemeProvider = require("../ThemeProvider");
21
+
22
+ var _utils = require("../utils");
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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; }
6
31
 
7
32
  const selectInputStyles = ({
8
33
  backgroundColor,
@@ -29,7 +54,7 @@ const selectInputStyles = ({
29
54
  // jump around if the border width changes (avoiding NaN and negative padding)
30
55
  const offsetBorder = value => typeof value === 'number' ? Math.max(0, value - borderWidth) : value;
31
56
 
32
- const textStyles = applyTextStyles({
57
+ const textStyles = (0, _ThemeProvider.applyTextStyles)({
33
58
  fontName,
34
59
  fontSize,
35
60
  lineHeight,
@@ -45,7 +70,8 @@ const selectInputStyles = ({
45
70
 
46
71
  const minHeight = linesToHeight(minLines);
47
72
  const maxHeight = linesToHeight(maxLines);
48
- const webStyles = Platform.select({
73
+
74
+ const webStyles = _Platform.default.select({
49
75
  web: {
50
76
  outline: 'none',
51
77
  cursor: inactive ? 'not-allowed' : undefined,
@@ -53,6 +79,7 @@ const selectInputStyles = ({
53
79
 
54
80
  }
55
81
  });
82
+
56
83
  const paddingWithIcon = iconSize + paddingRight;
57
84
  return {
58
85
  backgroundColor,
@@ -75,25 +102,17 @@ const selectInputStyles = ({
75
102
 
76
103
  const selectOuterBorderStyles = ({
77
104
  outerBackgroundColor,
78
- outerBorderWidth = 0,
105
+ outerBorderWidth,
79
106
  outerBorderColor,
80
- outerBorderRadius = 0
81
- }) => {
82
- // Use negative margins so that the outer border doesn't expand the input's bounding box
83
- const margin = -1 * outerBorderWidth; // Account for the border width since we style it as an outline
84
-
85
- const borderRadius = outerBorderRadius + outerBorderWidth;
86
- return {
87
- background: outerBackgroundColor,
88
- borderWidth: outerBorderWidth,
89
- borderColor: outerBorderColor,
90
- borderRadius,
91
- marginTop: margin,
92
- marginBottom: margin,
93
- marginLeft: margin,
94
- marginRight: margin
95
- };
96
- };
107
+ borderRadius
108
+ }) => ({
109
+ background: outerBackgroundColor,
110
+ ...(0, _ThemeProvider.applyOuterBorder)({
111
+ outerBorderColor,
112
+ outerBorderWidth,
113
+ borderRadius
114
+ })
115
+ });
97
116
 
98
117
  const selectIconTokens = ({
99
118
  iconSize,
@@ -111,7 +130,7 @@ const selectIconContainerStyles = ({
111
130
  paddingBottom
112
131
  });
113
132
 
114
- function TextInputBase({
133
+ const TextInputBase = /*#__PURE__*/(0, _react.forwardRef)(({
115
134
  value,
116
135
  height,
117
136
  initialValue,
@@ -126,8 +145,8 @@ function TextInputBase({
126
145
  tokens,
127
146
  variant = {},
128
147
  ...remainingProps
129
- }) {
130
- const [isFocused, setIsFocused] = useState(false);
148
+ }, ref) => {
149
+ const [isFocused, setIsFocused] = (0, _react.useState)(false);
131
150
 
132
151
  const handleFocus = event => {
133
152
  setIsFocused(true);
@@ -139,7 +158,7 @@ function TextInputBase({
139
158
  if (typeof onBlur === 'function') onBlur(event);
140
159
  };
141
160
 
142
- const [isHovered, setIsHovered] = useState(false);
161
+ const [isHovered, setIsHovered] = (0, _react.useState)(false);
143
162
 
144
163
  const handleMouseOver = event => {
145
164
  setIsHovered(true);
@@ -155,16 +174,19 @@ function TextInputBase({
155
174
  currentValue,
156
175
  setValue,
157
176
  isControlled
158
- } = useInputValue({
177
+ } = (0, _utils.useInputValue)({
159
178
  value,
160
179
  initialValue,
161
180
  onChange,
162
181
  readOnly
163
182
  });
164
183
 
165
- const handleChangeText = text => {
166
- setValue(text);
167
- if (typeof onChangeText === 'function') onChangeText(text);
184
+ const handleChangeText = event => {
185
+ var _event$nativeEvent, _event$target;
186
+
187
+ const text = ((_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.text) || ((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value);
188
+ setValue(text, event);
189
+ if (typeof onChangeText === 'function') onChangeText(text, event);
168
190
  };
169
191
 
170
192
  const states = {
@@ -172,7 +194,7 @@ function TextInputBase({
172
194
  hover: isHovered,
173
195
  inactive
174
196
  };
175
- const themeTokens = useThemeTokens('TextInput', tokens, variant, states);
197
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('TextInput', tokens, variant, states);
176
198
  const {
177
199
  icon: IconComponent
178
200
  } = themeTokens;
@@ -182,7 +204,7 @@ function TextInputBase({
182
204
  onBlur: handleBlur,
183
205
  onMouseOver: handleMouseOver,
184
206
  onMouseOut: handleMouseOut,
185
- onChangeText: handleChangeText,
207
+ onChange: handleChangeText,
186
208
  defaultValue: initialValue,
187
209
  // currentValue is being updated even if the input is not controlled, passing it down to the
188
210
  // Input could lead to changing its state from uncontrolled to controlled
@@ -191,36 +213,41 @@ function TextInputBase({
191
213
  const nativeInputStyle = selectInputStyles({ ...themeTokens,
192
214
  height
193
215
  }, inactive);
194
- return /*#__PURE__*/React.createElement(View, {
195
- style: selectOuterBorderStyles(themeTokens)
196
- }, /*#__PURE__*/React.createElement(NativeTextInput, Object.assign({
197
- style: nativeInputStyle
198
- }, inputProps)), IconComponent && /*#__PURE__*/React.createElement(View, {
199
- pointerEvents: "none" // avoid hijacking input press events
200
- ,
201
- style: [staticStyles.iconContainer, selectIconContainerStyles(themeTokens)]
202
- }, /*#__PURE__*/React.createElement(IconComponent, {
203
- tokens: selectIconTokens(themeTokens)
204
- })));
205
- }
206
-
216
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
217
+ style: selectOuterBorderStyles(themeTokens),
218
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TextInput.default, {
219
+ ref: ref,
220
+ style: nativeInputStyle,
221
+ ...inputProps
222
+ }), IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
223
+ pointerEvents: "none" // avoid hijacking input press events
224
+ ,
225
+ style: [staticStyles.iconContainer, selectIconContainerStyles(themeTokens)],
226
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, { ...selectIconTokens(themeTokens)
227
+ })
228
+ })]
229
+ });
230
+ });
231
+ TextInputBase.displayName = 'TextInputBase';
207
232
  TextInputBase.propTypes = {
208
- value: PropTypes.string,
209
- height: PropTypes.number,
210
- initialValue: PropTypes.string,
211
- inactive: PropTypes.bool,
212
- readOnly: PropTypes.bool,
213
- onChange: PropTypes.func,
214
- onChangeText: PropTypes.func,
215
- onFocus: PropTypes.func,
216
- onBlur: PropTypes.func,
217
- onMouseOver: PropTypes.func,
218
- onMouseOut: PropTypes.func,
219
- tokens: getTokensPropType('TextInput', 'TextArea'),
220
- variant: variantProp.propType
233
+ value: _propTypes.default.string,
234
+ height: _propTypes.default.number,
235
+ initialValue: _propTypes.default.string,
236
+ inactive: _propTypes.default.bool,
237
+ readOnly: _propTypes.default.bool,
238
+ onChange: _propTypes.default.func,
239
+ onChangeText: _propTypes.default.func,
240
+ onFocus: _propTypes.default.func,
241
+ onBlur: _propTypes.default.func,
242
+ onMouseOver: _propTypes.default.func,
243
+ onMouseOut: _propTypes.default.func,
244
+ tokens: (0, _utils.getTokensPropType)('TextInput', 'TextArea'),
245
+ variant: _utils.variantProp.propType
221
246
  };
222
- export default TextInputBase;
223
- const staticStyles = StyleSheet.create({
247
+ var _default = TextInputBase;
248
+ exports.default = _default;
249
+
250
+ const staticStyles = _StyleSheet.default.create({
224
251
  iconContainer: {
225
252
  position: 'absolute',
226
253
  right: 0,
@@ -1,3 +1,23 @@
1
- import TextInput from './TextInput';
2
- import TextArea from './TextArea';
3
- export { TextInput, TextArea };
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TextInput", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _TextInput.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "TextArea", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _TextArea.default;
16
+ }
17
+ });
18
+
19
+ var _TextInput = _interopRequireDefault(require("./TextInput"));
20
+
21
+ var _TextArea = _interopRequireDefault(require("./TextArea"));
22
+
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,31 +1,42 @@
1
- import PropTypes from 'prop-types';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
2
12
  const textInputPropTypes = {
3
13
  /**
4
14
  * If the input's state is to be controlled by a parent component, use this prop
5
15
  * together with the `onChange` to pass down and update the lifted state.
6
16
  */
7
- value: PropTypes.string,
17
+ value: _propTypes.default.string,
8
18
 
9
19
  /**
10
20
  * Use this to set the initial value of an uncontrolled input.
11
21
  * Updating `initialValue` will **not** update the actual value.
12
22
  */
13
- initialValue: PropTypes.string,
23
+ initialValue: _propTypes.default.string,
14
24
 
15
25
  /**
16
26
  * Disables all user interactions with the input.
17
27
  */
18
- inactive: PropTypes.bool,
28
+ inactive: _propTypes.default.bool,
19
29
 
20
30
  /**
21
31
  * Makes it impossible to change the input's value.
22
32
  */
23
- readOnly: PropTypes.bool,
33
+ readOnly: _propTypes.default.bool,
24
34
 
25
35
  /**
26
36
  * Use to react upon input's value changes. Required when the `value` prop is set.
27
37
  * Will receive the input's value as an argument.
28
38
  */
29
- onChange: PropTypes.func
39
+ onChange: _propTypes.default.func
30
40
  };
31
- export default textInputPropTypes;
41
+ var _default = textInputPropTypes;
42
+ exports.default = _default;
@@ -1,28 +1,56 @@
1
- import React, { createContext, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- export const uninitialisedError = new Error('Theme context used outside of ThemeProvider');
4
- export const ThemeContext = /*#__PURE__*/createContext(uninitialisedError);
5
- export const ThemeSetterContext = /*#__PURE__*/createContext(uninitialisedError); // TODO: develop this as theme metadata is added
6
- // https://github.com/telus/universal-design-system/issues/92
1
+ "use strict";
7
2
 
8
- export const themeType = PropTypes.object;
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.ThemeSetterContext = exports.ThemeContext = exports.uninitialisedError = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _utils = require("./utils");
13
+
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ const uninitialisedError = new Error('Theme context used outside of ThemeProvider');
23
+ exports.uninitialisedError = uninitialisedError;
24
+ const ThemeContext = /*#__PURE__*/(0, _react.createContext)(uninitialisedError);
25
+ exports.ThemeContext = ThemeContext;
26
+ const ThemeSetterContext = /*#__PURE__*/(0, _react.createContext)(uninitialisedError);
27
+ exports.ThemeSetterContext = ThemeSetterContext;
9
28
 
10
29
  const ThemeProvider = ({
11
30
  children,
12
31
  defaultTheme
13
32
  }) => {
14
- const [theme, setTheme] = useState(defaultTheme);
15
- return /*#__PURE__*/React.createElement(ThemeSetterContext.Provider, {
16
- value: setTheme
17
- }, /*#__PURE__*/React.createElement(ThemeContext.Provider, {
18
- value: theme
19
- }, children));
33
+ const [theme, setTheme] = (0, _react.useState)(defaultTheme); // Validate the theme tokens version on every render.
34
+ // This will intentionally break the application when attempting to use an invalid theme.
35
+ // This will surface an incompatibility quickly rather than allowing the potential for strange bugs due to missing or incompatible tokens.
36
+
37
+ (0, _utils.validateThemeTokensVersion)(theme);
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ThemeSetterContext.Provider, {
39
+ value: setTheme,
40
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ThemeContext.Provider, {
41
+ value: theme,
42
+ children: children
43
+ })
44
+ });
20
45
  };
21
46
 
22
47
  ThemeProvider.propTypes = {
23
- // TODO: implement a custom propType that validates schema version
24
- // https://github.com/telus/universal-design-system/issues/92
25
- children: PropTypes.node.isRequired,
26
- defaultTheme: themeType.isRequired
48
+ children: _propTypes.default.node.isRequired,
49
+ defaultTheme: _propTypes.default.shape({
50
+ metadata: _propTypes.default.shape({
51
+ themeTokensVersion: _propTypes.default.string.isRequired
52
+ }).isRequired
53
+ }).isRequired
27
54
  };
28
- export default ThemeProvider;
55
+ var _default = ThemeProvider;
56
+ exports.default = _default;