@telus-uds/components-base 0.0.2-prerelease.6 → 1.0.0

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 (458) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.ultra.cache.json +1 -1
  3. package/CHANGELOG.md +85 -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 +851 -57
  9. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  10. package/__tests__/Button/ButtonBase.test.jsx +2 -31
  11. package/__tests__/Button/ButtonGroup.test.jsx +6 -7
  12. package/__tests__/Checkbox/Checkbox.test.jsx +94 -0
  13. package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
  14. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
  15. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
  16. package/__tests__/Icon/Icon.test.jsx +3 -3
  17. package/__tests__/IconButton/IconButton.test.jsx +52 -0
  18. package/__tests__/InputSupports/InputSupports.test.jsx +50 -0
  19. package/__tests__/Link/LinkBase.test.jsx +0 -14
  20. package/__tests__/List/List.test.jsx +60 -0
  21. package/__tests__/Modal/Modal.test.jsx +47 -0
  22. package/__tests__/Notification/Notification.test.jsx +20 -0
  23. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  24. package/__tests__/Progress/Progress.test.jsx +79 -0
  25. package/__tests__/Radio/Radio.test.jsx +87 -0
  26. package/__tests__/Radio/RadioGroup.test.jsx +220 -0
  27. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  28. package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
  29. package/__tests__/Search/Search.test.jsx +73 -0
  30. package/__tests__/Select/Select.test.jsx +94 -0
  31. package/__tests__/Skeleton/Skeleton.test.jsx +61 -0
  32. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  33. package/__tests__/Tabs/Tabs.test.jsx +40 -0
  34. package/__tests__/Tags/Tags.test.jsx +327 -0
  35. package/__tests__/TextInput/TextArea.test.jsx +35 -0
  36. package/__tests__/TextInput/{TextInput.test.jsx → TextInputBase.test.jsx} +29 -50
  37. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
  38. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
  39. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
  40. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
  41. package/__tests__/utils/children.test.jsx +128 -0
  42. package/__tests__/utils/input.test.js +59 -1
  43. package/__tests__/utils/semantics.test.jsx +43 -0
  44. package/__tests__/utils/useCopy.test.js +14 -3
  45. package/babel.config.js +20 -0
  46. package/jest.config.js +8 -3
  47. package/lib/A11yInfoProvider/index.js +54 -26
  48. package/lib/A11yText/index.js +45 -17
  49. package/lib/ActivityIndicator/Spinner.js +81 -0
  50. package/lib/ActivityIndicator/Spinner.native.js +129 -91
  51. package/lib/ActivityIndicator/index.js +28 -12
  52. package/lib/ActivityIndicator/shared.js +27 -12
  53. package/lib/BaseProvider/index.js +34 -11
  54. package/lib/Box/Box.js +152 -35
  55. package/lib/Box/index.js +13 -2
  56. package/lib/Button/Button.js +41 -12
  57. package/lib/Button/ButtonBase.js +125 -97
  58. package/lib/Button/ButtonGroup.js +112 -89
  59. package/lib/Button/ButtonLink.js +48 -17
  60. package/lib/Button/index.js +31 -4
  61. package/lib/Button/propTypes.js +32 -9
  62. package/lib/Card/Card.js +38 -41
  63. package/lib/Card/CardBase.js +85 -0
  64. package/lib/Card/PressableCardBase.js +141 -0
  65. package/lib/Card/index.js +40 -2
  66. package/lib/Checkbox/Checkbox.js +355 -0
  67. package/lib/Checkbox/CheckboxGroup.js +241 -0
  68. package/lib/Checkbox/CheckboxInput.js +74 -0
  69. package/lib/Checkbox/CheckboxInput.native.js +14 -0
  70. package/lib/Checkbox/index.js +21 -0
  71. package/lib/Divider/Divider.js +59 -28
  72. package/lib/Divider/index.js +13 -2
  73. package/lib/ExpandCollapse/Accordion.js +26 -7
  74. package/lib/ExpandCollapse/Control.js +60 -31
  75. package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
  76. package/lib/ExpandCollapse/Panel.js +83 -44
  77. package/lib/ExpandCollapse/index.js +25 -7
  78. package/lib/Feedback/Feedback.js +90 -39
  79. package/lib/Feedback/index.js +13 -2
  80. package/lib/Fieldset/Fieldset.js +165 -0
  81. package/lib/Fieldset/FieldsetContainer.js +46 -0
  82. package/lib/Fieldset/FieldsetContainer.native.js +38 -0
  83. package/lib/Fieldset/Legend.js +38 -0
  84. package/lib/Fieldset/Legend.native.js +48 -0
  85. package/lib/Fieldset/cssReset.js +21 -0
  86. package/lib/Fieldset/index.js +13 -0
  87. package/lib/FlexGrid/Col/Col.js +73 -41
  88. package/lib/FlexGrid/Col/index.js +13 -2
  89. package/lib/FlexGrid/FlexGrid.js +99 -49
  90. package/lib/FlexGrid/Row/Row.js +58 -30
  91. package/lib/FlexGrid/Row/index.js +13 -2
  92. package/lib/FlexGrid/helpers/index.js +9 -1
  93. package/lib/FlexGrid/index.js +13 -2
  94. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  95. package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
  96. package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
  97. package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
  98. package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
  99. package/lib/HorizontalScroll/dictionary.js +18 -0
  100. package/lib/HorizontalScroll/index.js +35 -0
  101. package/lib/HorizontalScroll/itemPositions.js +128 -0
  102. package/lib/Icon/Icon.js +62 -50
  103. package/lib/Icon/IconText.js +101 -0
  104. package/lib/Icon/index.js +31 -3
  105. package/lib/IconButton/IconButton.js +140 -0
  106. package/lib/IconButton/index.js +13 -0
  107. package/lib/InputLabel/InputLabel.js +102 -40
  108. package/lib/InputLabel/LabelContent.js +41 -0
  109. package/lib/InputLabel/LabelContent.native.js +32 -6
  110. package/lib/InputLabel/index.js +13 -2
  111. package/lib/InputSupports/InputSupports.js +109 -0
  112. package/lib/InputSupports/index.js +13 -0
  113. package/lib/InputSupports/propTypes.js +66 -0
  114. package/lib/InputSupports/useInputSupports.js +41 -0
  115. package/lib/Link/ChevronLink.js +58 -31
  116. package/lib/Link/InlinePressable.js +56 -0
  117. package/lib/Link/InlinePressable.native.js +102 -0
  118. package/lib/Link/Link.js +39 -15
  119. package/lib/Link/LinkBase.js +126 -150
  120. package/lib/Link/TextButton.js +53 -18
  121. package/lib/Link/index.js +39 -4
  122. package/lib/List/List.js +81 -0
  123. package/lib/List/ListItem.js +245 -0
  124. package/lib/List/index.js +13 -0
  125. package/lib/Modal/Modal.js +231 -0
  126. package/lib/Modal/dictionary.js +16 -0
  127. package/lib/Modal/index.js +13 -0
  128. package/lib/Notification/Notification.js +216 -0
  129. package/lib/Notification/dictionary.js +15 -0
  130. package/lib/Notification/index.js +13 -0
  131. package/lib/Pagination/PageButton.js +58 -48
  132. package/lib/Pagination/Pagination.js +78 -43
  133. package/lib/Pagination/SideButton.js +79 -58
  134. package/lib/Pagination/dictionary.js +9 -2
  135. package/lib/Pagination/index.js +13 -2
  136. package/lib/Pagination/usePagination.js +12 -2
  137. package/lib/Progress/Progress.js +104 -0
  138. package/lib/Progress/ProgressBar.js +157 -0
  139. package/lib/Progress/ProgressBarBackground.js +61 -0
  140. package/lib/Progress/index.js +16 -0
  141. package/lib/Radio/Radio.js +293 -0
  142. package/lib/Radio/RadioButton.js +152 -0
  143. package/lib/Radio/RadioGroup.js +244 -0
  144. package/lib/Radio/RadioInput.js +76 -0
  145. package/lib/Radio/RadioInput.native.js +14 -0
  146. package/lib/Radio/index.js +21 -0
  147. package/lib/RadioCard/RadioCard.js +244 -0
  148. package/lib/RadioCard/RadioCardGroup.js +252 -0
  149. package/lib/RadioCard/index.js +21 -0
  150. package/lib/Search/Search.js +254 -0
  151. package/lib/Search/dictionary.js +19 -0
  152. package/lib/Search/index.js +13 -0
  153. package/lib/Select/Group.js +33 -0
  154. package/lib/Select/Group.native.js +25 -0
  155. package/lib/Select/Item.js +29 -0
  156. package/lib/Select/Item.native.js +19 -0
  157. package/lib/Select/Picker.js +84 -0
  158. package/lib/Select/Picker.native.js +130 -0
  159. package/lib/Select/Select.js +342 -0
  160. package/lib/Select/index.js +19 -0
  161. package/lib/SideNav/Item.js +63 -37
  162. package/lib/SideNav/ItemContent.js +41 -15
  163. package/lib/SideNav/ItemsGroup.js +55 -31
  164. package/lib/SideNav/SideNav.js +100 -73
  165. package/lib/SideNav/index.js +15 -1
  166. package/lib/Skeleton/Skeleton.js +137 -0
  167. package/lib/Skeleton/index.js +13 -0
  168. package/lib/Skeleton/skeleton.constant.js +12 -0
  169. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  170. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  171. package/lib/Spacer/Spacer.js +49 -18
  172. package/lib/Spacer/index.js +13 -2
  173. package/lib/StackView/StackView.js +71 -31
  174. package/lib/StackView/StackWrap.js +43 -13
  175. package/lib/StackView/StackWrap.native.js +13 -2
  176. package/lib/StackView/StackWrapBox.js +76 -29
  177. package/lib/StackView/StackWrapGap.js +56 -26
  178. package/lib/StackView/common.js +23 -6
  179. package/lib/StackView/getStackedContent.js +47 -17
  180. package/lib/StackView/index.js +29 -5
  181. package/lib/StepTracker/Step.js +245 -0
  182. package/lib/StepTracker/StepTracker.js +202 -0
  183. package/lib/StepTracker/dictionary.js +17 -0
  184. package/lib/StepTracker/index.js +13 -0
  185. package/lib/Tabs/Tabs.js +124 -0
  186. package/lib/Tabs/TabsItem.js +238 -0
  187. package/lib/Tabs/index.js +13 -0
  188. package/lib/Tags/Tags.js +266 -0
  189. package/lib/Tags/index.js +13 -0
  190. package/lib/TextInput/TextArea.js +111 -0
  191. package/lib/TextInput/TextInput.js +50 -304
  192. package/lib/TextInput/TextInputBase.js +256 -0
  193. package/lib/TextInput/index.js +23 -2
  194. package/lib/TextInput/propTypes.js +42 -0
  195. package/lib/ThemeProvider/ThemeProvider.js +46 -18
  196. package/lib/ThemeProvider/index.js +61 -6
  197. package/lib/ThemeProvider/useSetTheme.js +19 -5
  198. package/lib/ThemeProvider/useTheme.js +13 -4
  199. package/lib/ThemeProvider/useThemeTokens.js +86 -19
  200. package/lib/ThemeProvider/utils/index.js +31 -2
  201. package/lib/ThemeProvider/utils/styles.js +50 -14
  202. package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
  203. package/lib/ToggleSwitch/ToggleSwitch.js +86 -57
  204. package/lib/ToggleSwitch/index.js +13 -2
  205. package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
  206. package/lib/Tooltip/Backdrop.native.js +39 -15
  207. package/lib/Tooltip/Tooltip.js +117 -74
  208. package/lib/Tooltip/dictionary.js +9 -2
  209. package/lib/Tooltip/getTooltipPosition.js +9 -1
  210. package/lib/Tooltip/index.js +13 -2
  211. package/lib/TooltipButton/TooltipButton.js +57 -38
  212. package/lib/TooltipButton/index.js +13 -2
  213. package/lib/Typography/Typography.js +86 -55
  214. package/lib/Typography/index.js +13 -2
  215. package/lib/ViewportProvider/ViewportProvider.js +34 -13
  216. package/lib/ViewportProvider/index.js +28 -3
  217. package/lib/ViewportProvider/useViewport.js +15 -3
  218. package/lib/ViewportProvider/useViewportListener.js +24 -10
  219. package/lib/index.js +539 -26
  220. package/lib/utils/a11y/index.js +31 -0
  221. package/lib/utils/a11y/semantics.js +173 -0
  222. package/lib/utils/a11y/textSize.js +49 -0
  223. package/lib/utils/animation/index.js +15 -2
  224. package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
  225. package/lib/utils/children.js +134 -0
  226. package/lib/utils/index.js +163 -7
  227. package/lib/utils/info/index.js +19 -0
  228. package/lib/utils/info/platform/index.js +23 -0
  229. package/lib/utils/info/platform/platform.android.js +8 -0
  230. package/lib/utils/info/platform/platform.ios.js +8 -0
  231. package/lib/utils/info/platform/platform.js +8 -0
  232. package/lib/utils/info/platform/platform.native.js +11 -0
  233. package/lib/utils/info/versions.js +16 -0
  234. package/lib/utils/input.js +53 -25
  235. package/lib/utils/pressability.js +120 -0
  236. package/lib/utils/propTypes.js +338 -132
  237. package/lib/utils/useCopy.js +40 -5
  238. package/lib/utils/useHash.js +52 -0
  239. package/lib/utils/useHash.native.js +15 -0
  240. package/lib/utils/useResponsiveProp.js +21 -9
  241. package/lib/utils/useSpacingScale.js +19 -9
  242. package/lib/utils/useUniqueId.js +12 -3
  243. package/package.json +16 -10
  244. package/release-context.json +4 -4
  245. package/src/A11yText/index.jsx +6 -4
  246. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
  247. package/src/ActivityIndicator/Spinner.native.jsx +5 -3
  248. package/src/Box/Box.jsx +131 -39
  249. package/src/Button/Button.jsx +13 -6
  250. package/src/Button/ButtonBase.jsx +134 -125
  251. package/src/Button/ButtonGroup.jsx +85 -86
  252. package/src/Button/ButtonLink.jsx +22 -7
  253. package/src/Button/propTypes.js +12 -2
  254. package/src/Card/Card.jsx +5 -31
  255. package/src/Card/CardBase.jsx +58 -0
  256. package/src/Card/PressableCardBase.jsx +119 -0
  257. package/src/Card/index.js +3 -0
  258. package/src/Checkbox/Checkbox.jsx +284 -0
  259. package/src/Checkbox/CheckboxGroup.jsx +206 -0
  260. package/src/Checkbox/CheckboxInput.jsx +55 -0
  261. package/src/Checkbox/CheckboxInput.native.jsx +6 -0
  262. package/src/Checkbox/index.js +5 -0
  263. package/src/Divider/Divider.jsx +7 -4
  264. package/src/ExpandCollapse/Accordion.jsx +3 -2
  265. package/src/ExpandCollapse/Control.jsx +40 -43
  266. package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
  267. package/src/ExpandCollapse/Panel.jsx +69 -63
  268. package/src/Feedback/Feedback.jsx +42 -30
  269. package/src/Fieldset/Fieldset.jsx +136 -0
  270. package/src/Fieldset/FieldsetContainer.jsx +31 -0
  271. package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
  272. package/src/Fieldset/Legend.jsx +21 -0
  273. package/src/Fieldset/Legend.native.jsx +27 -0
  274. package/src/Fieldset/cssReset.js +14 -0
  275. package/src/Fieldset/index.js +3 -0
  276. package/src/FlexGrid/Col/Col.jsx +139 -132
  277. package/src/FlexGrid/FlexGrid.jsx +79 -51
  278. package/src/FlexGrid/Row/Row.jsx +55 -48
  279. package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
  280. package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
  281. package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
  282. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
  283. package/src/HorizontalScroll/dictionary.js +11 -0
  284. package/src/HorizontalScroll/index.js +17 -0
  285. package/src/HorizontalScroll/itemPositions.js +101 -0
  286. package/src/Icon/Icon.jsx +46 -49
  287. package/src/Icon/IconText.jsx +68 -0
  288. package/src/Icon/index.js +3 -2
  289. package/src/IconButton/IconButton.jsx +114 -0
  290. package/src/IconButton/index.js +3 -0
  291. package/src/InputLabel/InputLabel.jsx +57 -35
  292. package/src/InputLabel/LabelContent.jsx +21 -0
  293. package/src/InputLabel/LabelContent.native.jsx +11 -2
  294. package/src/InputSupports/InputSupports.jsx +70 -0
  295. package/src/InputSupports/index.js +3 -0
  296. package/src/InputSupports/propTypes.js +44 -0
  297. package/src/InputSupports/useInputSupports.js +30 -0
  298. package/src/Link/ChevronLink.jsx +34 -21
  299. package/src/Link/InlinePressable.jsx +39 -0
  300. package/src/Link/InlinePressable.native.jsx +75 -0
  301. package/src/Link/Link.jsx +23 -13
  302. package/src/Link/LinkBase.jsx +98 -170
  303. package/src/Link/TextButton.jsx +37 -16
  304. package/src/Link/index.js +2 -1
  305. package/src/List/List.jsx +48 -0
  306. package/src/List/ListItem.jsx +182 -0
  307. package/src/List/index.js +3 -0
  308. package/src/Modal/Modal.jsx +190 -0
  309. package/src/Modal/dictionary.js +9 -0
  310. package/src/Modal/index.js +3 -0
  311. package/src/Notification/Notification.jsx +164 -0
  312. package/src/Notification/dictionary.js +8 -0
  313. package/src/Notification/index.js +3 -0
  314. package/src/Pagination/PageButton.jsx +42 -49
  315. package/src/Pagination/Pagination.jsx +88 -92
  316. package/src/Pagination/SideButton.jsx +58 -66
  317. package/src/Progress/Progress.jsx +78 -0
  318. package/src/Progress/ProgressBar.jsx +123 -0
  319. package/src/Progress/ProgressBarBackground.jsx +36 -0
  320. package/src/Progress/index.js +6 -0
  321. package/src/Radio/Radio.jsx +240 -0
  322. package/src/Radio/RadioButton.jsx +142 -0
  323. package/src/Radio/RadioGroup.jsx +209 -0
  324. package/src/Radio/RadioInput.jsx +57 -0
  325. package/src/Radio/RadioInput.native.jsx +6 -0
  326. package/src/Radio/index.js +5 -0
  327. package/src/RadioCard/RadioCard.jsx +198 -0
  328. package/src/RadioCard/RadioCardGroup.jsx +218 -0
  329. package/src/RadioCard/index.js +5 -0
  330. package/src/Search/Search.jsx +225 -0
  331. package/src/Search/dictionary.js +12 -0
  332. package/src/Search/index.js +3 -0
  333. package/src/Select/Group.jsx +15 -0
  334. package/src/Select/Group.native.jsx +14 -0
  335. package/src/Select/Item.jsx +11 -0
  336. package/src/Select/Item.native.jsx +10 -0
  337. package/src/Select/Picker.jsx +74 -0
  338. package/src/Select/Picker.native.jsx +102 -0
  339. package/src/Select/Select.jsx +298 -0
  340. package/src/Select/index.js +8 -0
  341. package/src/SideNav/Item.jsx +54 -47
  342. package/src/SideNav/ItemsGroup.jsx +50 -43
  343. package/src/SideNav/SideNav.jsx +68 -60
  344. package/src/Skeleton/Skeleton.jsx +94 -0
  345. package/src/Skeleton/index.js +3 -0
  346. package/src/Skeleton/skeleton.constant.js +3 -0
  347. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  348. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  349. package/src/Spacer/Spacer.jsx +11 -4
  350. package/src/StackView/StackView.jsx +53 -23
  351. package/src/StackView/StackWrap.jsx +16 -7
  352. package/src/StackView/StackWrapBox.jsx +62 -28
  353. package/src/StackView/StackWrapGap.jsx +46 -24
  354. package/src/StackView/common.jsx +3 -2
  355. package/src/StackView/getStackedContent.jsx +8 -2
  356. package/src/StepTracker/Step.jsx +202 -0
  357. package/src/StepTracker/StepTracker.jsx +174 -0
  358. package/src/StepTracker/dictionary.js +10 -0
  359. package/src/StepTracker/index.js +3 -0
  360. package/src/Tabs/Tabs.jsx +97 -0
  361. package/src/Tabs/TabsItem.jsx +212 -0
  362. package/src/Tabs/index.js +3 -0
  363. package/src/Tags/Tags.jsx +219 -0
  364. package/src/Tags/index.js +3 -0
  365. package/src/TextInput/TextArea.jsx +79 -0
  366. package/src/TextInput/TextInput.jsx +18 -284
  367. package/src/TextInput/TextInputBase.jsx +217 -0
  368. package/src/TextInput/index.js +2 -1
  369. package/src/TextInput/propTypes.js +29 -0
  370. package/src/ThemeProvider/ThemeProvider.jsx +11 -7
  371. package/src/ThemeProvider/useSetTheme.js +4 -0
  372. package/src/ThemeProvider/useThemeTokens.js +56 -5
  373. package/src/ThemeProvider/utils/styles.js +18 -5
  374. package/src/ThemeProvider/utils/theme-tokens.js +74 -5
  375. package/src/ToggleSwitch/ToggleSwitch.jsx +51 -53
  376. package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
  377. package/src/Tooltip/Tooltip.jsx +135 -131
  378. package/src/TooltipButton/TooltipButton.jsx +23 -27
  379. package/src/Typography/Typography.jsx +72 -59
  380. package/src/index.js +31 -3
  381. package/src/utils/a11y/index.js +2 -0
  382. package/src/utils/a11y/semantics.js +162 -0
  383. package/src/utils/a11y/textSize.js +30 -0
  384. package/src/utils/children.jsx +119 -0
  385. package/src/utils/index.js +6 -0
  386. package/src/utils/info/index.js +8 -0
  387. package/src/utils/info/platform/index.js +11 -0
  388. package/src/utils/info/platform/platform.android.js +1 -0
  389. package/src/utils/info/platform/platform.ios.js +1 -0
  390. package/src/utils/info/platform/platform.js +1 -0
  391. package/src/utils/info/platform/platform.native.js +4 -0
  392. package/src/utils/info/versions.js +6 -0
  393. package/src/utils/input.js +36 -25
  394. package/src/utils/pressability.js +96 -0
  395. package/src/utils/propTypes.js +291 -90
  396. package/src/utils/useCopy.js +30 -4
  397. package/src/utils/useHash.js +39 -0
  398. package/src/utils/useHash.native.js +6 -0
  399. package/stories/A11yText/A11yText.stories.jsx +6 -10
  400. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
  401. package/stories/Box/Box.stories.jsx +1 -1
  402. package/stories/Button/Button.stories.jsx +7 -2
  403. package/stories/Button/ButtonGroup.stories.jsx +1 -1
  404. package/stories/Button/ButtonLink.stories.jsx +1 -1
  405. package/stories/Card/Card.stories.jsx +1 -1
  406. package/stories/Checkbox/Checkbox.stories.jsx +94 -0
  407. package/stories/Divider/Divider.stories.jsx +1 -1
  408. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
  409. package/stories/Feedback/Feedback.stories.jsx +5 -6
  410. package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
  411. package/stories/FlexGrid/02 Row.stories.jsx +1 -1
  412. package/stories/FlexGrid/03 Col.stories.jsx +1 -1
  413. package/stories/Icon/Icon.stories.jsx +27 -7
  414. package/stories/IconButton/IconButton.stories.jsx +50 -0
  415. package/stories/InputLabel/InputLabel.stories.jsx +1 -1
  416. package/stories/Link/ChevronLink.stories.jsx +1 -1
  417. package/stories/Link/Link.stories.jsx +28 -18
  418. package/stories/Link/TextButton.stories.jsx +1 -1
  419. package/stories/List/List.stories.jsx +117 -0
  420. package/stories/Modal/Modal.stories.jsx +29 -0
  421. package/stories/Notification/Notification.stories.jsx +82 -0
  422. package/stories/Pagination/Pagination.stories.jsx +1 -1
  423. package/stories/Progress/Progress.stories.jsx +93 -0
  424. package/stories/Radio/Radio.stories.jsx +100 -0
  425. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  426. package/stories/Search/Search.stories.jsx +16 -0
  427. package/stories/Select/Select.stories.jsx +55 -0
  428. package/stories/SideNav/SideNav.stories.jsx +1 -1
  429. package/stories/SideNav/SideNavItem.stories.jsx +1 -1
  430. package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
  431. package/stories/Skeleton/Skeleton.stories.jsx +36 -0
  432. package/stories/Spacer/Spacer.stories.jsx +1 -1
  433. package/stories/StackView/StackView.stories.jsx +1 -1
  434. package/stories/StackView/StackWrap.stories.jsx +1 -1
  435. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  436. package/stories/Tabs/Tabs.stories.jsx +97 -0
  437. package/stories/Tags/Tags.stories.jsx +69 -0
  438. package/stories/TextInput/TextArea.stories.jsx +100 -0
  439. package/stories/TextInput/TextInput.stories.jsx +1 -1
  440. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
  441. package/stories/Tooltip/Tooltip.stories.jsx +1 -1
  442. package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
  443. package/stories/Typography/Typography.stories.jsx +1 -1
  444. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
  445. package/stories/supports.jsx +38 -4
  446. package/__fixtures__/accessible.icon.svg +0 -6
  447. package/babel.config.json +0 -8
  448. package/docs/Contributing.stories.mdx +0 -9
  449. package/docs/Fonts.stories.mdx +0 -104
  450. package/docs/Icons.stories.mdx +0 -144
  451. package/docs/Introduction.stories.mdx +0 -9
  452. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  453. package/lib/InputLabel/LabelContent.web.js +0 -17
  454. package/lib/config/svgr-icons-web.js +0 -9
  455. package/lib/config/svgr-icons.js +0 -52
  456. package/src/InputLabel/LabelContent.web.jsx +0 -13
  457. package/src/config/svgr-icons-web.js +0 -11
  458. package/src/config/svgr-icons.js +0 -46
@@ -1,32 +1,56 @@
1
- import React from 'react';
2
- import { TouchableWithoutFeedback, Modal, StyleSheet, View } from 'react-native';
3
- 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 _react = _interopRequireDefault(require("react"));
9
+
10
+ var _TouchableWithoutFeedback = _interopRequireDefault(require("react-native-web/dist/cjs/exports/TouchableWithoutFeedback"));
11
+
12
+ var _Modal = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Modal"));
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 _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
4
24
  /**
5
25
  * The Native version of Backdrop utilizes React Native's Modal component for overlaying
6
26
  * the app's content, since this is the only reliable to do it. The only drawback of this
7
27
  * approach is that a press on the Backdrop will actually stop the press event from propagating,
8
28
  * i.e. anything rendered beneath the Backdrop can't be pressed until the Backdrop is closed.
9
29
  */
10
-
11
30
  function Backdrop({
12
31
  onPress,
13
32
  children
14
33
  }) {
15
- return /*#__PURE__*/React.createElement(Modal, {
16
- transparent: true
17
- }, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
18
- onPress: onPress
19
- }, /*#__PURE__*/React.createElement(View, {
20
- style: staticStyles.backdrop
21
- }, children)));
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.default, {
35
+ transparent: true,
36
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TouchableWithoutFeedback.default, {
37
+ onPress: onPress,
38
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
39
+ style: staticStyles.backdrop,
40
+ children: children
41
+ })
42
+ })
43
+ });
22
44
  }
23
45
 
24
- export default Backdrop;
46
+ var _default = Backdrop;
47
+ exports.default = _default;
25
48
  Backdrop.propTypes = {
26
- onPress: PropTypes.func,
27
- children: PropTypes.node
49
+ onPress: _propTypes.default.func,
50
+ children: _propTypes.default.node
28
51
  };
29
- const staticStyles = StyleSheet.create({
52
+
53
+ const staticStyles = _StyleSheet.default.create({
30
54
  backdrop: {
31
55
  flexBasis: '100%',
32
56
  backgroundColor: 'rgba(255, 255, 255, 0.5)' // to visually mark that the content beneath is not pressable
@@ -1,13 +1,47 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import { Dimensions, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
3
- import PropTypes from 'prop-types';
4
- import { applyShadowToken, applyTextStyles, useThemeTokens } from '../ThemeProvider';
5
- import { getTokensPropType, selectTokens, variantProp } from '../utils';
6
- import Backdrop from './Backdrop';
7
- import getTooltipPosition from './getTooltipPosition';
8
- import TooltipButton from '../TooltipButton';
9
- import useCopy from '../utils/useCopy';
10
- import dictionary from './dictionary';
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 _Dimensions = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Dimensions"));
11
+
12
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
+
14
+ var _Pressable = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Pressable"));
15
+
16
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
17
+
18
+ var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
19
+
20
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
21
+
22
+ var _propTypes = _interopRequireDefault(require("prop-types"));
23
+
24
+ var _ThemeProvider = require("../ThemeProvider");
25
+
26
+ var _utils = require("../utils");
27
+
28
+ var _Backdrop = _interopRequireDefault(require("./Backdrop"));
29
+
30
+ var _getTooltipPosition = _interopRequireDefault(require("./getTooltipPosition"));
31
+
32
+ var _TooltipButton = _interopRequireDefault(require("../TooltipButton"));
33
+
34
+ var _useCopy = _interopRequireDefault(require("../utils/useCopy"));
35
+
36
+ var _dictionary = _interopRequireDefault(require("./dictionary"));
37
+
38
+ var _jsxRuntime = require("react/jsx-runtime");
39
+
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
+
42
+ 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); }
43
+
44
+ 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; }
11
45
 
12
46
  const selectTooltipStyles = ({
13
47
  backgroundColor,
@@ -30,7 +64,7 @@ const selectTooltipShadowStyles = ({
30
64
  borderRadius
31
65
  }) => ({
32
66
  borderRadius,
33
- ...applyShadowToken(shadow)
67
+ ...(0, _ThemeProvider.applyShadowToken)(shadow)
34
68
  });
35
69
 
36
70
  const selectTooltipPositionStyles = ({
@@ -99,17 +133,16 @@ const selectArrowStyles = ({
99
133
  height: rectangleSide,
100
134
  borderBottomRightRadius: arrowBorderRadius,
101
135
  // this corner will be the arrow tip after rotation
102
- ...applyShadowToken(shadow),
136
+ ...(0, _ThemeProvider.applyShadowToken)(shadow),
103
137
  ...directionalStyles[position]
104
138
  };
105
139
  };
106
140
 
107
- const selectTextStyles = tokens => applyTextStyles(selectTokens('Typography', tokens));
141
+ const selectTextStyles = tokens => (0, _ThemeProvider.applyTextStyles)((0, _utils.selectTokens)('Typography', tokens));
108
142
 
109
- const defaultControl = (pressableState, variant) => /*#__PURE__*/React.createElement(TooltipButton, {
110
- variant: { ...pressableState,
111
- ...variant
112
- }
143
+ const defaultControl = (pressableState, variant) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipButton.default, {
144
+ pressableState: pressableState,
145
+ variant: variant
113
146
  });
114
147
  /**
115
148
  * Tooltip provides a descriptive and detailed explanation or instructions. It can be used next to an input label
@@ -128,36 +161,37 @@ const defaultControl = (pressableState, variant) => /*#__PURE__*/React.createEle
128
161
  */
129
162
 
130
163
 
131
- const Tooltip = ({
164
+ const Tooltip = /*#__PURE__*/(0, _react.forwardRef)(({
132
165
  children,
133
166
  content,
134
167
  position = 'auto',
135
168
  copy = 'en',
136
169
  tokens,
137
170
  variant
138
- }) => {
139
- const [isOpen, setIsOpen] = useState(false);
140
- const controlRef = useRef();
141
- const [controlLayout, setControlLayout] = useState(null);
142
- const [tooltipDimensions, setTooltipDimensions] = useState(null);
143
- const [windowDimensions, setWindowDimensions] = useState(Dimensions.get('window'));
144
- const [tooltipPosition, setTooltipPosition] = useState(null);
145
- const getCopy = useCopy({
146
- dictionary,
171
+ }, ref) => {
172
+ const [isOpen, setIsOpen] = (0, _react.useState)(false);
173
+ const controlRef = (0, _react.useRef)();
174
+ const [controlLayout, setControlLayout] = (0, _react.useState)(null);
175
+ const [tooltipDimensions, setTooltipDimensions] = (0, _react.useState)(null);
176
+ const [windowDimensions, setWindowDimensions] = (0, _react.useState)(_Dimensions.default.get('window'));
177
+ const [tooltipPosition, setTooltipPosition] = (0, _react.useState)(null);
178
+ const getCopy = (0, _useCopy.default)({
179
+ dictionary: _dictionary.default,
147
180
  copy
148
181
  });
149
- const themeTokens = useThemeTokens('Tooltip', tokens, variant);
182
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Tooltip', tokens, variant);
150
183
  const {
151
184
  arrowWidth,
152
185
  arrowOffset
153
186
  } = themeTokens;
154
- useEffect(() => {
155
- const subscription = Dimensions.addEventListener('change', ({
187
+ (0, _react.useEffect)(() => {
188
+ const subscription = _Dimensions.default.addEventListener('change', ({
156
189
  window
157
190
  }) => {
158
191
  setWindowDimensions(window);
159
192
  });
160
- return () => subscription?.remove();
193
+
194
+ return () => subscription === null || subscription === void 0 ? void 0 : subscription.remove();
161
195
  });
162
196
 
163
197
  const toggleIsOpen = () => setIsOpen(!isOpen);
@@ -184,7 +218,7 @@ const Tooltip = ({
184
218
  }) => {
185
219
  if (tooltipDimensions === null || tooltipDimensions.width !== width || tooltipDimensions.height !== height) {
186
220
  setTooltipDimensions({
187
- width: Platform.select({
221
+ width: _Platform.default.select({
188
222
  web: width + 0.3,
189
223
  // avoids often unnecessary line breaks due to subpixel rendering of fonts
190
224
  native: width
@@ -194,7 +228,7 @@ const Tooltip = ({
194
228
  }
195
229
  };
196
230
 
197
- useEffect(() => {
231
+ (0, _react.useEffect)(() => {
198
232
  if (isOpen) {
199
233
  controlRef.current.measureInWindow((x, y, width, height) => {
200
234
  setControlLayout({
@@ -210,15 +244,15 @@ const Tooltip = ({
210
244
  setTooltipPosition(null);
211
245
  }
212
246
  }, [isOpen]);
213
- useEffect(() => {
247
+ (0, _react.useEffect)(() => {
214
248
  setIsOpen(false);
215
249
  }, [windowDimensions]);
216
- useEffect(() => {
217
- if (tooltipPosition !== null && !tooltipPosition?.isNormalized || !isOpen || controlLayout === null || tooltipDimensions == null) {
250
+ (0, _react.useEffect)(() => {
251
+ if (tooltipPosition !== null && !(tooltipPosition !== null && tooltipPosition !== void 0 && tooltipPosition.isNormalized) || !isOpen || controlLayout === null || tooltipDimensions == null) {
218
252
  return;
219
253
  }
220
254
 
221
- const updatedPosition = getTooltipPosition(position, {
255
+ const updatedPosition = (0, _getTooltipPosition.default)(position, {
222
256
  controlLayout,
223
257
  tooltipDimensions,
224
258
  windowDimensions,
@@ -226,14 +260,14 @@ const Tooltip = ({
226
260
  arrowOffset
227
261
  }); // avoid ending up in an infinite normalization loop
228
262
 
229
- if (tooltipPosition?.isNormalized && updatedPosition.isNormalized) {
263
+ if (tooltipPosition !== null && tooltipPosition !== void 0 && tooltipPosition.isNormalized && updatedPosition.isNormalized) {
230
264
  return;
231
265
  }
232
266
 
233
267
  setTooltipPosition(updatedPosition);
234
268
  }, [isOpen, position, tooltipDimensions, controlLayout, windowDimensions, arrowWidth, arrowOffset, tooltipPosition]);
235
269
  const control = children !== undefined ? children : defaultControl;
236
- const pressableStyles = control === defaultControl ? Platform.select({
270
+ const pressableStyles = control === defaultControl ? _Platform.default.select({
237
271
  web: {
238
272
  outline: 'none'
239
273
  }
@@ -244,59 +278,68 @@ const Tooltip = ({
244
278
  left: 10,
245
279
  right: 10
246
280
  } : undefined;
247
- return /*#__PURE__*/React.createElement(View, {
248
- style: staticStyles.container
249
- }, /*#__PURE__*/React.createElement(Pressable, {
250
- onPress: toggleIsOpen,
251
- ref: controlRef,
252
- onBlur: close,
253
- style: pressableStyles,
254
- hitSlop: pressableHitSlop,
255
- accessibilityLabel: getCopy('a11yText'),
256
- accessibilityRole: "button"
257
- }, typeof control === 'function' ? pressableState => control(getPressableState(pressableState), variant) : control), isOpen && /*#__PURE__*/React.createElement(Backdrop, {
258
- onPress: close
259
- }, /*#__PURE__*/React.createElement(View, {
260
- style: [staticStyles.tooltip, selectTooltipShadowStyles(themeTokens), // applied separately so that it doesn't cover the arrow
261
- tooltipPosition && selectTooltipPositionStyles(tooltipPosition), (tooltipPosition === null || tooltipPosition?.isNormalized) && staticStyles.tooltipHidden // visually hide the tooltip until we have a final measurement
262
- ],
263
- onLayout: onTooltipLayout,
264
- accessibilityRole: "alert"
265
- }, /*#__PURE__*/React.createElement(View, {
266
- style: [staticStyles.arrow, tooltipPosition && selectArrowStyles(themeTokens, tooltipPosition)]
267
- }), /*#__PURE__*/React.createElement(View, {
268
- style: selectTooltipStyles(themeTokens)
269
- }, /*#__PURE__*/React.createElement(Text, {
270
- style: selectTextStyles(themeTokens)
271
- }, content)))));
272
- };
273
-
281
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
282
+ style: staticStyles.container,
283
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Pressable.default, {
284
+ onPress: toggleIsOpen,
285
+ ref: controlRef,
286
+ onBlur: close,
287
+ style: pressableStyles,
288
+ hitSlop: pressableHitSlop,
289
+ accessibilityLabel: getCopy('a11yText'),
290
+ accessibilityRole: "button",
291
+ children: typeof control === 'function' ? pressableState => control(getPressableState(pressableState), variant) : control
292
+ }), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Backdrop.default, {
293
+ onPress: close,
294
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
295
+ ref: ref,
296
+ style: [staticStyles.tooltip, selectTooltipShadowStyles(themeTokens), // applied separately so that it doesn't cover the arrow
297
+ tooltipPosition && selectTooltipPositionStyles(tooltipPosition), (tooltipPosition === null || (tooltipPosition === null || tooltipPosition === void 0 ? void 0 : tooltipPosition.isNormalized)) && staticStyles.tooltipHidden // visually hide the tooltip until we have a final measurement
298
+ ],
299
+ onLayout: onTooltipLayout,
300
+ accessibilityRole: "alert",
301
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
302
+ style: [staticStyles.arrow, tooltipPosition && selectArrowStyles(themeTokens, tooltipPosition)]
303
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
304
+ style: selectTooltipStyles(themeTokens),
305
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
306
+ style: selectTextStyles(themeTokens),
307
+ children: content
308
+ })
309
+ })]
310
+ })
311
+ })]
312
+ });
313
+ });
314
+ Tooltip.displayName = 'Tooltip';
274
315
  Tooltip.propTypes = {
275
316
  /**
276
317
  * Used to render the control (i.e. tooltip trigger). If a render function is used it will receive the
277
318
  * pressable state and tooltip variant as an argument.
278
319
  */
279
- children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
320
+ children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.node]),
280
321
 
281
322
  /**
282
323
  * The message. Can be raw text or text components.
283
324
  */
284
- content: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
325
+ content: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
285
326
 
286
327
  /**
287
328
  * Select english or french copy for the accessible label.
288
329
  */
289
- copy: PropTypes.oneOf(['en', 'fr']),
330
+ copy: _propTypes.default.oneOf(['en', 'fr']),
290
331
 
291
332
  /**
292
333
  * Use to place the tooltip in a specific location (only if it fits within viewport).
293
334
  */
294
- position: PropTypes.oneOf(['auto', 'above', 'right', 'below', 'left']),
295
- tokens: getTokensPropType('Tooltip'),
296
- variant: variantProp.propType
335
+ position: _propTypes.default.oneOf(['auto', 'above', 'right', 'below', 'left']),
336
+ tokens: (0, _utils.getTokensPropType)('Tooltip'),
337
+ variant: _utils.variantProp.propType
297
338
  };
298
- export default Tooltip;
299
- const staticStyles = StyleSheet.create({
339
+ var _default = Tooltip;
340
+ exports.default = _default;
341
+
342
+ const staticStyles = _StyleSheet.default.create({
300
343
  container: {
301
344
  alignItems: 'flex-start'
302
345
  },
@@ -1,8 +1,15 @@
1
- export default {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
2
8
  en: {
3
9
  a11yText: 'Reveal additional information.'
4
10
  },
5
11
  fr: {
6
12
  a11yText: 'Afficher des renseignements supplémentaires.'
7
13
  }
8
- };
14
+ };
15
+ exports.default = _default;
@@ -1,3 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
1
8
  function normalizePosition(position) {
2
9
  const {
3
10
  left,
@@ -161,4 +168,5 @@ function getTooltipPosition(position, {
161
168
  return normalizePosition(leastOverflowing.position === 'above' ? findRectByPosition('below', boundingRects) : leastOverflowing);
162
169
  }
163
170
 
164
- export default getTooltipPosition;
171
+ var _default = getTooltipPosition;
172
+ exports.default = _default;
@@ -1,2 +1,13 @@
1
- import Tooltip from './Tooltip';
2
- export default Tooltip;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Tooltip = _interopRequireDefault(require("./Tooltip"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _Tooltip.default;
13
+ exports.default = _default;
@@ -1,26 +1,25 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
- import { useThemeTokens } from '../ThemeProvider';
4
- import { getTokensPropType, variantProp } from '../utils';
5
-
6
- const selectOuterContainerStyles = ({
7
- outerBorderColor,
8
- outerBorderWidth = 0,
9
- outerBorderGap = 0,
10
- outerBorderRadius
11
- }) => {
12
- const outerBorderOffset = -1 * (outerBorderWidth + outerBorderGap);
13
- return {
14
- marginTop: outerBorderOffset,
15
- marginLeft: outerBorderOffset,
16
- marginRight: outerBorderOffset,
17
- marginBottom: outerBorderOffset,
18
- borderColor: outerBorderColor,
19
- borderWidth: outerBorderWidth,
20
- padding: outerBorderGap,
21
- borderRadius: outerBorderRadius
22
- };
23
- };
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _ThemeProvider = require("../ThemeProvider");
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _Icon = _interopRequireDefault(require("../Icon"));
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
23
 
25
24
  const selectInnerContainerStyles = ({
26
25
  borderRadius,
@@ -32,33 +31,53 @@ const selectInnerContainerStyles = ({
32
31
 
33
32
  const selectIconTokens = ({
34
33
  iconSize,
35
- iconColor,
36
- iconScale = 1
34
+ iconColor
35
+ /* iconScale = 1 */
36
+
37
37
  }) => ({
38
38
  size: iconSize,
39
- color: iconColor,
40
- scale: iconScale
39
+ color: iconColor // scale: iconScale TODO re-enable with icon component
40
+
41
41
  });
42
+ /**
43
+ * `TooltipButton` is a helper component used as a default control for the `Tooltip` component.
44
+ * In fact though, it isn't actually a pressable - it's meant to be used as pressable's content.
45
+ * Due to this any interaction states (e.g. pressed, hover, etc.) has to be passed down to it as a prop.
46
+ */
47
+
42
48
 
43
49
  const TooltipButton = ({
50
+ pressableState,
44
51
  tokens,
45
52
  variant
46
53
  }) => {
47
- const themeTokens = useThemeTokens('TooltipButton', tokens, variant);
54
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('TooltipButton', tokens, variant, pressableState);
48
55
  const {
49
56
  icon: IconComponent
50
57
  } = themeTokens;
51
- return /*#__PURE__*/React.createElement(View, {
52
- style: selectOuterContainerStyles(themeTokens)
53
- }, /*#__PURE__*/React.createElement(View, {
54
- style: selectInnerContainerStyles(themeTokens)
55
- }, IconComponent && /*#__PURE__*/React.createElement(IconComponent, {
56
- tokens: selectIconTokens(themeTokens)
57
- })));
58
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
59
+ style: (0, _ThemeProvider.applyOuterBorder)(themeTokens),
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
61
+ style: selectInnerContainerStyles(themeTokens),
62
+ children: IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
63
+ icon: IconComponent,
64
+ tokens: selectIconTokens(themeTokens)
65
+ })
66
+ })
67
+ });
58
68
  };
59
69
 
60
70
  TooltipButton.propTypes = {
61
- tokens: getTokensPropType('TooltipButton'),
62
- variant: variantProp.propType
71
+ /**
72
+ * Used as appearances when resolving theme tokens.
73
+ */
74
+ pressableState: _propTypes.default.shape({
75
+ pressed: _propTypes.default.bool,
76
+ hover: _propTypes.default.bool,
77
+ focus: _propTypes.default.bool
78
+ }),
79
+ tokens: (0, _utils.getTokensPropType)('TooltipButton'),
80
+ variant: _utils.variantProp.propType
63
81
  };
64
- export default TooltipButton;
82
+ var _default = TooltipButton;
83
+ exports.default = _default;
@@ -1,2 +1,13 @@
1
- import TooltipButton from './TooltipButton';
2
- export default TooltipButton;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _TooltipButton = _interopRequireDefault(require("./TooltipButton"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _TooltipButton.default;
13
+ exports.default = _default;