@hero-design/rn 8.35.0-alpha.4 → 8.35.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 (370) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.turbo/turbo-build.log +2 -2
  3. package/.turbo/turbo-publish:npm.log +0 -9
  4. package/es/index.js +539 -637
  5. package/jest.config.js +1 -1
  6. package/lib/index.js +549 -647
  7. package/package.json +9 -9
  8. package/src/components/Attachment/__tests__/__snapshots__/index.spec.tsx.snap +1 -1
  9. package/src/components/Badge/__tests__/__snapshots__/Badge.spec.tsx.snap +3 -3
  10. package/src/components/Badge/__tests__/__snapshots__/Status.spec.tsx.snap +1 -1
  11. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/StyledLoadingIndicator.spec.tsx.snap +2 -2
  12. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/index.spec.tsx.snap +6 -6
  13. package/src/components/Button/UtilityButton/__tests__/__snapshots__/index.spec.tsx.snap +2 -2
  14. package/src/components/Button/__tests__/__snapshots__/Button.spec.tsx.snap +4 -4
  15. package/src/components/Button/__tests__/__snapshots__/StyledButton.spec.tsx.snap +6 -6
  16. package/src/components/Calendar/__tests__/index.spec.tsx +29 -0
  17. package/src/components/Calendar/index.tsx +10 -1
  18. package/src/components/Carousel/__tests__/__snapshots__/index.spec.tsx.snap +75 -74
  19. package/src/components/Carousel/index.tsx +1 -1
  20. package/src/components/DatePicker/DatePickerCalendar.tsx +23 -14
  21. package/src/components/FAB/ActionGroup/__tests__/__snapshots__/index.spec.tsx.snap +1 -1
  22. package/src/components/FAB/__tests__/__snapshots__/StyledFAB.spec.tsx.snap +1 -1
  23. package/src/components/FAB/index.tsx +0 -4
  24. package/src/components/Icon/__tests__/__snapshots__/index.spec.tsx.snap +1 -1
  25. package/src/components/PinInput/__tests__/__snapshots__/PinCell.spec.tsx.snap +4 -4
  26. package/src/components/PinInput/__tests__/__snapshots__/index.spec.tsx.snap +12 -12
  27. package/src/components/Portal/PortalHost.tsx +24 -0
  28. package/src/components/Portal/PortalProvider.tsx +29 -0
  29. package/src/components/Portal/__tests__/PortalHost.spec.tsx +50 -0
  30. package/src/components/Portal/__tests__/PortalProvider.spec.tsx +24 -0
  31. package/src/components/Portal/__tests__/index.spec.tsx +29 -0
  32. package/src/components/Portal/__tests__/reducer.spec.tsx +110 -0
  33. package/src/components/Portal/constants.ts +10 -0
  34. package/src/components/Portal/contexts.ts +14 -0
  35. package/src/components/Portal/index.tsx +42 -0
  36. package/src/components/Portal/reducer.ts +106 -0
  37. package/src/components/Portal/types.tsx +31 -0
  38. package/src/components/Portal/usePortal.ts +50 -0
  39. package/src/components/Portal/usePortalState.ts +11 -0
  40. package/src/components/Progress/StyledProgressBar.tsx +1 -0
  41. package/src/components/Progress/__tests__/__snapshots__/index.spec.js.snap +46 -44
  42. package/src/components/RichTextEditor/__tests__/__snapshots__/RichTextEditor.spec.tsx.snap +6 -6
  43. package/src/components/SectionHeading/__tests__/__snapshots__/index.spec.tsx.snap +1 -1
  44. package/src/components/Skeleton/__tests__/__snapshots__/index.spec.tsx.snap +7 -7
  45. package/src/components/Swipeable/__tests__/__snapshots__/index.spec.tsx.snap +5 -0
  46. package/src/components/Swipeable/index.tsx +6 -1
  47. package/src/components/Switch/SelectorSwitch/StyledSelectorSwitch.tsx +4 -7
  48. package/src/components/Switch/SelectorSwitch/__tests__/__snapshots__/Option.spec.tsx.snap +3 -3
  49. package/src/components/Switch/SelectorSwitch/__tests__/__snapshots__/index.spec.tsx.snap +9 -9
  50. package/src/components/Switch/SelectorSwitch/index.tsx +7 -15
  51. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabs.spec.tsx.snap +21 -21
  52. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabsHeader.spec.tsx.snap +6 -6
  53. package/src/components/Tabs/__tests__/__snapshots__/TabWithBadge.spec.tsx.snap +2 -2
  54. package/src/components/Tabs/__tests__/__snapshots__/index.spec.tsx.snap +9 -9
  55. package/src/components/Tag/StyledTag.tsx +6 -35
  56. package/src/components/Tag/__tests__/Tag.spec.tsx +13 -13
  57. package/src/components/Tag/__tests__/__snapshots__/Tag.spec.tsx.snap +40 -79
  58. package/src/components/Tag/index.tsx +8 -6
  59. package/src/components/TextInput/__tests__/__snapshots__/StyledTextInput.spec.tsx.snap +7 -7
  60. package/src/components/TextInput/__tests__/__snapshots__/index.spec.tsx.snap +20 -20
  61. package/src/components/Toolbar/__tests__/__snapshots__/ToolbarItem.spec.tsx.snap +1 -1
  62. package/src/components/Typography/Body/__tests__/__snapshots__/StyledBody.tsx.snap +1 -1
  63. package/src/components/Typography/Body/__tests__/__snapshots__/index.spec.tsx.snap +2 -2
  64. package/src/components/Typography/Caption/__tests__/__snapshots__/StyledCaption.spec.tsx.snap +1 -1
  65. package/src/components/Typography/Caption/__tests__/__snapshots__/index.spec.tsx.snap +2 -2
  66. package/src/components/Typography/Label/__tests__/__snapshots__/StyledLabel.tsx.snap +1 -1
  67. package/src/components/Typography/Label/__tests__/__snapshots__/index.spec.tsx.snap +2 -2
  68. package/src/components/Typography/Text/__tests__/__snapshots__/StyledText.spec.tsx.snap +1 -1
  69. package/src/components/Typography/Title/__tests__/__snapshots__/StyledTitle.tsx.snap +3 -3
  70. package/src/components/Typography/Title/__tests__/__snapshots__/index.spec.tsx.snap +4 -4
  71. package/src/index.ts +2 -2
  72. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +49 -46
  73. package/src/theme/components/button.ts +1 -1
  74. package/src/theme/components/progress.ts +2 -2
  75. package/src/theme/components/swipeable.ts +5 -1
  76. package/src/theme/components/switch.ts +4 -4
  77. package/src/theme/components/tabs.ts +1 -1
  78. package/src/theme/components/tag.ts +2 -2
  79. package/src/theme/components/typography.ts +2 -2
  80. package/src/theme/global/colors/__tests__/__snapshots__/eBens.spec.ts.snap +7 -7
  81. package/src/theme/global/colors/__tests__/__snapshots__/global.spec.ts.snap +5 -5
  82. package/src/theme/global/colors/__tests__/__snapshots__/jobs.spec.ts.snap +6 -6
  83. package/src/theme/global/colors/__tests__/__snapshots__/swag.spec.ts.snap +6 -6
  84. package/src/theme/global/colors/__tests__/__snapshots__/wallet.spec.ts.snap +7 -7
  85. package/src/theme/global/colors/__tests__/__snapshots__/work.spec.ts.snap +5 -5
  86. package/src/theme/global/colors/eBens.ts +2 -2
  87. package/src/theme/global/colors/global.ts +5 -5
  88. package/src/theme/global/colors/jobs.ts +1 -1
  89. package/src/theme/global/colors/swag.ts +1 -1
  90. package/src/theme/global/colors/wallet.ts +2 -2
  91. package/types/components/Accordion/AccordionItem.d.ts +0 -0
  92. package/types/components/Accordion/StyledAccordion.d.ts +0 -0
  93. package/types/components/Accordion/index.d.ts +0 -0
  94. package/types/components/Alert/StyledAlert.d.ts +0 -0
  95. package/types/components/Alert/index.d.ts +0 -0
  96. package/types/components/Attachment/StyledAttachment.d.ts +0 -0
  97. package/types/components/Attachment/index.d.ts +0 -0
  98. package/types/components/Avatar/Avatar.d.ts +0 -0
  99. package/types/components/Avatar/AvatarStack/StyledAvatarStack.d.ts +0 -0
  100. package/types/components/Avatar/AvatarStack/index.d.ts +0 -0
  101. package/types/components/Avatar/AvatarStack/utils.d.ts +0 -0
  102. package/types/components/Avatar/StyledAvatar.d.ts +0 -0
  103. package/types/components/Avatar/index.d.ts +0 -0
  104. package/types/components/Badge/Status.d.ts +0 -0
  105. package/types/components/Badge/StyledBadge.d.ts +0 -0
  106. package/types/components/Badge/index.d.ts +0 -0
  107. package/types/components/BottomNavigation/StyledBottomNavigation.d.ts +0 -0
  108. package/types/components/BottomNavigation/index.d.ts +0 -0
  109. package/types/components/BottomSheet/BottomSheetContext.d.ts +0 -0
  110. package/types/components/BottomSheet/Footer.d.ts +0 -0
  111. package/types/components/BottomSheet/Header.d.ts +0 -0
  112. package/types/components/BottomSheet/ScrollView.d.ts +0 -0
  113. package/types/components/BottomSheet/StyledBottomSheet.d.ts +0 -0
  114. package/types/components/BottomSheet/index.d.ts +0 -0
  115. package/types/components/Box/StyledBox.d.ts +0 -0
  116. package/types/components/Box/config.d.ts +0 -0
  117. package/types/components/Box/index.d.ts +0 -0
  118. package/types/components/Box/types.d.ts +0 -0
  119. package/types/components/Button/Button.d.ts +0 -0
  120. package/types/components/Button/IconButton.d.ts +0 -0
  121. package/types/components/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +0 -0
  122. package/types/components/Button/LoadingIndicator/index.d.ts +0 -0
  123. package/types/components/Button/StyledButton.d.ts +0 -0
  124. package/types/components/Button/UtilityButton/StyledUtilityButton.d.ts +0 -0
  125. package/types/components/Button/UtilityButton/index.d.ts +0 -0
  126. package/types/components/Button/index.d.ts +0 -0
  127. package/types/components/Calendar/CalendarRowItem.d.ts +0 -0
  128. package/types/components/Calendar/StyledCalendar.d.ts +0 -0
  129. package/types/components/Calendar/helpers.d.ts +0 -0
  130. package/types/components/Calendar/index.d.ts +2 -1
  131. package/types/components/Card/DataCard/StyledDataCard.d.ts +0 -0
  132. package/types/components/Card/DataCard/index.d.ts +0 -0
  133. package/types/components/Card/StyledCard.d.ts +0 -0
  134. package/types/components/Card/index.d.ts +0 -0
  135. package/types/components/Carousel/CardCarousel.d.ts +0 -0
  136. package/types/components/Carousel/CarouselItem.d.ts +0 -0
  137. package/types/components/Carousel/StyledCardCarousel.d.ts +0 -0
  138. package/types/components/Carousel/StyledCarousel.d.ts +0 -0
  139. package/types/components/Carousel/contants.d.ts +0 -0
  140. package/types/components/Carousel/index.d.ts +0 -0
  141. package/types/components/Carousel/types.d.ts +0 -0
  142. package/types/components/Checkbox/StyledCheckbox.d.ts +0 -0
  143. package/types/components/Checkbox/index.d.ts +0 -0
  144. package/types/components/Collapse/StyledCollapse.d.ts +0 -0
  145. package/types/components/Collapse/index.d.ts +0 -0
  146. package/types/components/ContentNavigator/StyledContentNavigator.d.ts +0 -0
  147. package/types/components/ContentNavigator/index.d.ts +0 -0
  148. package/types/components/DatePicker/DatePickerAndroid.d.ts +0 -0
  149. package/types/components/DatePicker/DatePickerCalendar.d.ts +0 -0
  150. package/types/components/DatePicker/DatePickerIOS.d.ts +0 -0
  151. package/types/components/DatePicker/StyledDatePicker.d.ts +0 -0
  152. package/types/components/DatePicker/index.d.ts +0 -0
  153. package/types/components/DatePicker/types.d.ts +0 -0
  154. package/types/components/Divider/StyledDivider.d.ts +0 -0
  155. package/types/components/Divider/index.d.ts +0 -0
  156. package/types/components/Drawer/DragableDrawer/helpers.d.ts +0 -0
  157. package/types/components/Drawer/DragableDrawer/index.d.ts +0 -0
  158. package/types/components/Drawer/StyledDrawer.d.ts +0 -0
  159. package/types/components/Drawer/index.d.ts +0 -0
  160. package/types/components/Empty/StyledEmpty.d.ts +0 -0
  161. package/types/components/Empty/index.d.ts +0 -0
  162. package/types/components/Error/StyledError.d.ts +0 -0
  163. package/types/components/Error/index.d.ts +0 -0
  164. package/types/components/FAB/ActionGroup/ActionItem.d.ts +0 -0
  165. package/types/components/FAB/ActionGroup/StyledActionGroup.d.ts +0 -0
  166. package/types/components/FAB/ActionGroup/StyledActionItem.d.ts +0 -0
  167. package/types/components/FAB/ActionGroup/index.d.ts +0 -0
  168. package/types/components/FAB/AnimatedFABIcon.d.ts +0 -0
  169. package/types/components/FAB/FAB.d.ts +0 -0
  170. package/types/components/FAB/StyledFAB.d.ts +0 -0
  171. package/types/components/FAB/index.d.ts +0 -3
  172. package/types/components/Icon/AnimatedIcon.d.ts +0 -0
  173. package/types/components/Icon/HeroIcon/index.d.ts +0 -0
  174. package/types/components/Icon/IconList.d.ts +0 -0
  175. package/types/components/Icon/index.d.ts +0 -0
  176. package/types/components/Icon/utils.d.ts +0 -0
  177. package/types/components/Image/index.d.ts +0 -0
  178. package/types/components/List/BasicListItem.d.ts +0 -0
  179. package/types/components/List/ListItem.d.ts +0 -0
  180. package/types/components/List/StyledBasicListItem.d.ts +0 -0
  181. package/types/components/List/StyledListItem.d.ts +0 -0
  182. package/types/components/List/index.d.ts +0 -0
  183. package/types/components/PageControl/StyledPageControl.d.ts +0 -0
  184. package/types/components/PageControl/index.d.ts +0 -0
  185. package/types/components/PinInput/PinCell.d.ts +0 -0
  186. package/types/components/PinInput/StyledPinInput.d.ts +0 -0
  187. package/types/components/PinInput/index.d.ts +0 -0
  188. package/types/components/Portal/PortalHost.d.ts +5 -0
  189. package/types/components/Portal/PortalProvider.d.ts +7 -0
  190. package/types/components/Portal/constants.d.ts +8 -0
  191. package/types/components/Portal/contexts.d.ts +9 -0
  192. package/types/components/Portal/index.d.ts +13 -0
  193. package/types/components/Portal/reducer.d.ts +5 -0
  194. package/types/components/Portal/types.d.ts +22 -0
  195. package/types/components/Portal/usePortal.d.ts +8 -0
  196. package/types/components/Portal/usePortalState.d.ts +1 -0
  197. package/types/components/Progress/ProgressBar.d.ts +0 -0
  198. package/types/components/Progress/ProgressCircle.d.ts +0 -0
  199. package/types/components/Progress/StyledProgressBar.d.ts +0 -0
  200. package/types/components/Progress/StyledProgressCircle.d.ts +0 -0
  201. package/types/components/Progress/__tests__/index.spec.d.ts +0 -0
  202. package/types/components/Progress/constants.d.ts +0 -0
  203. package/types/components/Progress/index.d.ts +0 -0
  204. package/types/components/Progress/types.d.ts +0 -0
  205. package/types/components/Radio/Radio.d.ts +0 -0
  206. package/types/components/Radio/RadioGroup.d.ts +0 -0
  207. package/types/components/Radio/StyledRadio.d.ts +0 -0
  208. package/types/components/Radio/index.d.ts +0 -0
  209. package/types/components/Radio/types.d.ts +0 -0
  210. package/types/components/RefreshControl/index.d.ts +0 -0
  211. package/types/components/RichTextEditor/EditorEvent.d.ts +0 -0
  212. package/types/components/RichTextEditor/EditorToolbar.d.ts +0 -0
  213. package/types/components/RichTextEditor/MentionList.d.ts +0 -0
  214. package/types/components/RichTextEditor/RichTextEditor.d.ts +0 -0
  215. package/types/components/RichTextEditor/StyledRichTextEditor.d.ts +0 -0
  216. package/types/components/RichTextEditor/StyledToolbar.d.ts +0 -0
  217. package/types/components/RichTextEditor/__mocks__/heroEditorApp.d.ts +0 -0
  218. package/types/components/RichTextEditor/constants.d.ts +0 -0
  219. package/types/components/RichTextEditor/heroEditorApp.d.ts +0 -0
  220. package/types/components/RichTextEditor/index.d.ts +0 -0
  221. package/types/components/RichTextEditor/types.d.ts +0 -0
  222. package/types/components/RichTextEditor/utils/events.d.ts +0 -0
  223. package/types/components/RichTextEditor/utils/rnWebView.d.ts +0 -0
  224. package/types/components/SectionHeading/StyledHeading.d.ts +0 -0
  225. package/types/components/SectionHeading/index.d.ts +0 -0
  226. package/types/components/Select/BaseOptionList.d.ts +0 -0
  227. package/types/components/Select/Footer.d.ts +0 -0
  228. package/types/components/Select/MultiSelect/Option.d.ts +0 -0
  229. package/types/components/Select/MultiSelect/OptionList.d.ts +0 -0
  230. package/types/components/Select/MultiSelect/index.d.ts +0 -0
  231. package/types/components/Select/SingleSelect/Option.d.ts +0 -0
  232. package/types/components/Select/SingleSelect/OptionList.d.ts +0 -0
  233. package/types/components/Select/SingleSelect/StyledSingleSelect.d.ts +0 -0
  234. package/types/components/Select/SingleSelect/index.d.ts +0 -0
  235. package/types/components/Select/StyledSelect.d.ts +0 -0
  236. package/types/components/Select/helpers.d.ts +0 -0
  237. package/types/components/Select/index.d.ts +0 -0
  238. package/types/components/Select/types.d.ts +0 -0
  239. package/types/components/Skeleton/StyledSkeleton.d.ts +0 -0
  240. package/types/components/Skeleton/index.d.ts +0 -0
  241. package/types/components/Slider/index.d.ts +0 -0
  242. package/types/components/Spinner/AnimatedSpinner.d.ts +0 -0
  243. package/types/components/Spinner/StyledSpinner.d.ts +0 -0
  244. package/types/components/Spinner/index.d.ts +0 -0
  245. package/types/components/Success/StyledSuccess.d.ts +0 -0
  246. package/types/components/Success/index.d.ts +0 -0
  247. package/types/components/Swipeable/StyledSwipeable.d.ts +0 -0
  248. package/types/components/Swipeable/SwipeableAction.d.ts +0 -0
  249. package/types/components/Swipeable/index.d.ts +1 -1
  250. package/types/components/Switch/SelectorSwitch/Option.d.ts +0 -0
  251. package/types/components/Switch/SelectorSwitch/StyledSelectorSwitch.d.ts +0 -0
  252. package/types/components/Switch/SelectorSwitch/index.d.ts +0 -0
  253. package/types/components/Switch/StyledSwitch.d.ts +0 -0
  254. package/types/components/Switch/index.d.ts +0 -0
  255. package/types/components/Tabs/ActiveTabIndicator.d.ts +0 -0
  256. package/types/components/Tabs/SceneView.d.ts +0 -0
  257. package/types/components/Tabs/ScrollableTabs.d.ts +0 -0
  258. package/types/components/Tabs/ScrollableTabsHeader.d.ts +0 -0
  259. package/types/components/Tabs/StyledScrollableTabs.d.ts +0 -0
  260. package/types/components/Tabs/StyledTabs.d.ts +0 -0
  261. package/types/components/Tabs/TabWithBadge.d.ts +0 -0
  262. package/types/components/Tabs/index.d.ts +0 -0
  263. package/types/components/Tabs/useIsFocused.d.ts +0 -0
  264. package/types/components/Tabs/utils.d.ts +0 -0
  265. package/types/components/Tag/StyledTag.d.ts +1 -4
  266. package/types/components/Tag/index.d.ts +1 -0
  267. package/types/components/TextInput/StyledTextInput.d.ts +0 -0
  268. package/types/components/TextInput/index.d.ts +0 -0
  269. package/types/components/TimePicker/StyledTimePicker.d.ts +0 -0
  270. package/types/components/TimePicker/TimePickerAndroid.d.ts +0 -0
  271. package/types/components/TimePicker/TimePickerIOS.d.ts +0 -0
  272. package/types/components/TimePicker/index.d.ts +0 -0
  273. package/types/components/TimePicker/types.d.ts +0 -0
  274. package/types/components/Toast/StyledToast.d.ts +0 -0
  275. package/types/components/Toast/Toast.d.ts +0 -0
  276. package/types/components/Toast/ToastContainer.d.ts +0 -0
  277. package/types/components/Toast/ToastContext.d.ts +0 -0
  278. package/types/components/Toast/ToastProvider.d.ts +0 -0
  279. package/types/components/Toast/index.d.ts +0 -0
  280. package/types/components/Toast/types.d.ts +0 -0
  281. package/types/components/Toolbar/StyledToolbar.d.ts +0 -0
  282. package/types/components/Toolbar/ToolbarGroup.d.ts +0 -0
  283. package/types/components/Toolbar/ToolbarItem.d.ts +0 -0
  284. package/types/components/Toolbar/index.d.ts +0 -0
  285. package/types/components/Typography/Text/StyledText.d.ts +0 -0
  286. package/types/components/Typography/Text/index.d.ts +0 -0
  287. package/types/components/Typography/index.d.ts +0 -0
  288. package/types/index.d.ts +2 -2
  289. package/types/testHelpers/renderWithTheme.d.ts +0 -0
  290. package/types/theme/ThemeProvider.d.ts +0 -0
  291. package/types/theme/ThemeSwitcher.d.ts +0 -0
  292. package/types/theme/components/accordion.d.ts +0 -0
  293. package/types/theme/components/alert.d.ts +0 -0
  294. package/types/theme/components/attachment.d.ts +0 -0
  295. package/types/theme/components/avatar.d.ts +0 -0
  296. package/types/theme/components/badge.d.ts +0 -0
  297. package/types/theme/components/bottomNavigation.d.ts +0 -0
  298. package/types/theme/components/bottomSheet.d.ts +0 -0
  299. package/types/theme/components/button.d.ts +0 -0
  300. package/types/theme/components/calendar.d.ts +0 -0
  301. package/types/theme/components/card.d.ts +0 -0
  302. package/types/theme/components/cardCarousel.d.ts +0 -0
  303. package/types/theme/components/carousel.d.ts +0 -0
  304. package/types/theme/components/checkbox.d.ts +0 -0
  305. package/types/theme/components/contentNavigator.d.ts +0 -0
  306. package/types/theme/components/datePicker.d.ts +0 -0
  307. package/types/theme/components/divider.d.ts +0 -0
  308. package/types/theme/components/drawer.d.ts +0 -0
  309. package/types/theme/components/empty.d.ts +0 -0
  310. package/types/theme/components/error.d.ts +0 -0
  311. package/types/theme/components/fab.d.ts +0 -0
  312. package/types/theme/components/icon.d.ts +0 -0
  313. package/types/theme/components/image.d.ts +0 -0
  314. package/types/theme/components/list.d.ts +0 -0
  315. package/types/theme/components/pageControl.d.ts +0 -0
  316. package/types/theme/components/pinInput.d.ts +0 -0
  317. package/types/theme/components/progress.d.ts +0 -0
  318. package/types/theme/components/radio.d.ts +0 -0
  319. package/types/theme/components/refreshControl.d.ts +0 -0
  320. package/types/theme/components/richTextEditor.d.ts +0 -0
  321. package/types/theme/components/sectionHeading.d.ts +0 -0
  322. package/types/theme/components/select.d.ts +0 -0
  323. package/types/theme/components/skeleton.d.ts +0 -0
  324. package/types/theme/components/slider.d.ts +0 -0
  325. package/types/theme/components/spinner.d.ts +0 -0
  326. package/types/theme/components/success.d.ts +0 -0
  327. package/types/theme/components/swipeable.d.ts +3 -0
  328. package/types/theme/components/switch.d.ts +1 -1
  329. package/types/theme/components/tabs.d.ts +0 -0
  330. package/types/theme/components/tag.d.ts +1 -1
  331. package/types/theme/components/textInput.d.ts +0 -0
  332. package/types/theme/components/timePicker.d.ts +0 -0
  333. package/types/theme/components/toast.d.ts +0 -0
  334. package/types/theme/components/toolbar.d.ts +0 -0
  335. package/types/theme/components/typography.d.ts +0 -0
  336. package/types/theme/getTheme.d.ts +0 -0
  337. package/types/theme/global/borders.d.ts +0 -0
  338. package/types/theme/global/colors/eBens.d.ts +0 -0
  339. package/types/theme/global/colors/global.d.ts +0 -0
  340. package/types/theme/global/colors/globalDark.d.ts +0 -0
  341. package/types/theme/global/colors/jobs.d.ts +0 -0
  342. package/types/theme/global/colors/swag.d.ts +0 -0
  343. package/types/theme/global/colors/swagDark.d.ts +0 -0
  344. package/types/theme/global/colors/types.d.ts +0 -0
  345. package/types/theme/global/colors/wallet.d.ts +0 -0
  346. package/types/theme/global/colors/work.d.ts +0 -0
  347. package/types/theme/global/index.d.ts +0 -0
  348. package/types/theme/global/scale.d.ts +0 -0
  349. package/types/theme/global/sizes.d.ts +0 -0
  350. package/types/theme/global/space.d.ts +0 -0
  351. package/types/theme/global/typography.d.ts +0 -0
  352. package/types/theme/index.d.ts +0 -0
  353. package/types/types.d.ts +0 -0
  354. package/types/utils/functions.d.ts +0 -0
  355. package/types/utils/helpers.d.ts +0 -0
  356. package/types/utils/hooks.d.ts +0 -0
  357. package/types/utils/scale.d.ts +0 -0
  358. package/.tool-versions +0 -1
  359. package/.turbo/turbo-build:types.log +0 -9
  360. package/.turbo/turbo-lint.log +0 -163
  361. package/.turbo/turbo-test.log +0 -725
  362. package/.turbo/turbo-type-check.log +0 -1
  363. package/types/components/FAB/ActionGroup/FABModal.d.ts +0 -21
  364. package/types/components/FAB/ActionGroup/FABModalContentWrapper.d.ts +0 -18
  365. package/types/components/FAB/ActionGroup/FABProvider.d.ts +0 -5
  366. package/types/components/FAB/ActionGroup/ModalPresenter/ModalPresenter.d.ts +0 -34
  367. package/types/components/FAB/ActionGroup/ModalPresenter/index.d.ts +0 -3
  368. package/types/components/Tabs/ScrollableTabsV2/SceneView.d.ts +0 -10
  369. package/types/components/Tabs/ScrollableTabsV2/ScrollableTabsV2.d.ts +0 -9
  370. package/types/components/Tabs/ScrollableTabsV2/index.d.ts +0 -4
@@ -102,7 +102,7 @@ exports[`PinCell renders correctly when focused is false, state is error 1`] = `
102
102
  Array [
103
103
  Object {
104
104
  "alignItems": "center",
105
- "borderColor": "#de350b",
105
+ "borderColor": "#cb300a",
106
106
  "borderRadius": 8,
107
107
  "borderWidth": 1,
108
108
  "height": 48,
@@ -128,7 +128,7 @@ exports[`PinCell renders correctly when focused is false, state is error 1`] = `
128
128
  },
129
129
  Array [
130
130
  Object {
131
- "color": "#de350b",
131
+ "color": "#cb300a",
132
132
  },
133
133
  undefined,
134
134
  ],
@@ -198,7 +198,7 @@ exports[`PinCell renders correctly when focused is true, state is error 1`] = `
198
198
  Array [
199
199
  Object {
200
200
  "alignItems": "center",
201
- "borderColor": "#de350b",
201
+ "borderColor": "#cb300a",
202
202
  "borderRadius": 8,
203
203
  "borderWidth": 2,
204
204
  "height": 48,
@@ -224,7 +224,7 @@ exports[`PinCell renders correctly when focused is true, state is error 1`] = `
224
224
  },
225
225
  Array [
226
226
  Object {
227
- "color": "#de350b",
227
+ "color": "#cb300a",
228
228
  },
229
229
  undefined,
230
230
  ],
@@ -822,7 +822,7 @@ exports[`rendering renders correctly when there is error 1`] = `
822
822
  Array [
823
823
  Object {
824
824
  "alignItems": "center",
825
- "borderColor": "#de350b",
825
+ "borderColor": "#cb300a",
826
826
  "borderRadius": 8,
827
827
  "borderWidth": 1,
828
828
  "height": 48,
@@ -839,8 +839,8 @@ exports[`rendering renders correctly when there is error 1`] = `
839
839
  style={
840
840
  Array [
841
841
  Object {
842
- "backgroundColor": "#de350b",
843
- "borderColor": "#de350b",
842
+ "backgroundColor": "#cb300a",
843
+ "borderColor": "#cb300a",
844
844
  "borderRadius": 999,
845
845
  "borderWidth": 1,
846
846
  "height": 16,
@@ -868,7 +868,7 @@ exports[`rendering renders correctly when there is error 1`] = `
868
868
  Array [
869
869
  Object {
870
870
  "alignItems": "center",
871
- "borderColor": "#de350b",
871
+ "borderColor": "#cb300a",
872
872
  "borderRadius": 8,
873
873
  "borderWidth": 1,
874
874
  "height": 48,
@@ -885,8 +885,8 @@ exports[`rendering renders correctly when there is error 1`] = `
885
885
  style={
886
886
  Array [
887
887
  Object {
888
- "backgroundColor": "#de350b",
889
- "borderColor": "#de350b",
888
+ "backgroundColor": "#cb300a",
889
+ "borderColor": "#cb300a",
890
890
  "borderRadius": 999,
891
891
  "borderWidth": 1,
892
892
  "height": 16,
@@ -914,7 +914,7 @@ exports[`rendering renders correctly when there is error 1`] = `
914
914
  Array [
915
915
  Object {
916
916
  "alignItems": "center",
917
- "borderColor": "#de350b",
917
+ "borderColor": "#cb300a",
918
918
  "borderRadius": 8,
919
919
  "borderWidth": 1,
920
920
  "height": 48,
@@ -931,7 +931,7 @@ exports[`rendering renders correctly when there is error 1`] = `
931
931
  style={
932
932
  Array [
933
933
  Object {
934
- "borderColor": "#de350b",
934
+ "borderColor": "#cb300a",
935
935
  "borderRadius": 999,
936
936
  "borderWidth": 1,
937
937
  "height": 16,
@@ -959,7 +959,7 @@ exports[`rendering renders correctly when there is error 1`] = `
959
959
  Array [
960
960
  Object {
961
961
  "alignItems": "center",
962
- "borderColor": "#de350b",
962
+ "borderColor": "#cb300a",
963
963
  "borderRadius": 8,
964
964
  "borderWidth": 1,
965
965
  "height": 48,
@@ -976,7 +976,7 @@ exports[`rendering renders correctly when there is error 1`] = `
976
976
  style={
977
977
  Array [
978
978
  Object {
979
- "borderColor": "#de350b",
979
+ "borderColor": "#cb300a",
980
980
  "borderRadius": 999,
981
981
  "borderWidth": 1,
982
982
  "height": 16,
@@ -1007,7 +1007,7 @@ exports[`rendering renders correctly when there is error 1`] = `
1007
1007
  style={
1008
1008
  Array [
1009
1009
  Object {
1010
- "color": "#de350b",
1010
+ "color": "#cb300a",
1011
1011
  "fontSize": 16,
1012
1012
  },
1013
1013
  undefined,
@@ -1030,7 +1030,7 @@ exports[`rendering renders correctly when there is error 1`] = `
1030
1030
  },
1031
1031
  Array [
1032
1032
  Object {
1033
- "color": "#de350b",
1033
+ "color": "#cb300a",
1034
1034
  "paddingLeft": 4,
1035
1035
  },
1036
1036
  undefined,
@@ -0,0 +1,24 @@
1
+ import React, { memo, useEffect } from 'react';
2
+ import { usePortal } from './usePortal';
3
+ import { usePortalState } from './usePortalState';
4
+ import { PortalType } from './contexts';
5
+
6
+ export interface PortalHostProps {
7
+ name: string;
8
+ }
9
+ const PortalHostComponent = ({ name }: PortalHostProps) => {
10
+ const state = usePortalState(name);
11
+ const { registerHost, deregisterHost } = usePortal(name);
12
+
13
+ useEffect(() => {
14
+ registerHost();
15
+ return () => {
16
+ deregisterHost();
17
+ };
18
+ }, []);
19
+
20
+ return <>{state.map((item: PortalType) => item.node)}</>;
21
+ };
22
+
23
+ export const PortalHost = memo(PortalHostComponent);
24
+ PortalHost.displayName = 'PortalHost';
@@ -0,0 +1,29 @@
1
+ import React, { memo, useReducer } from 'react';
2
+ import type { ReactNode } from 'react';
3
+ import { PortalHost } from './PortalHost';
4
+ import { reducer } from './reducer';
5
+ import { INITIAL_STATE } from './constants';
6
+ import { PortalDispatchContext, PortalStateContext } from './contexts';
7
+
8
+ export interface PortalProviderProps {
9
+ rootHostName?: string;
10
+ children: ReactNode | ReactNode[];
11
+ }
12
+
13
+ const PortalProviderComponent = ({
14
+ rootHostName = 'root',
15
+ children,
16
+ }: PortalProviderProps) => {
17
+ const [state, dispatch] = useReducer(reducer, INITIAL_STATE);
18
+ return (
19
+ <PortalDispatchContext.Provider value={dispatch}>
20
+ <PortalStateContext.Provider value={state}>
21
+ {children}
22
+ <PortalHost name={rootHostName} />
23
+ </PortalStateContext.Provider>
24
+ </PortalDispatchContext.Provider>
25
+ );
26
+ };
27
+
28
+ export const PortalProvider = memo(PortalProviderComponent);
29
+ PortalProvider.displayName = 'PortalProvider';
@@ -0,0 +1,50 @@
1
+ import React, { useContext } from 'react';
2
+ import { waitFor } from '@testing-library/react-native';
3
+ import { PortalHost } from '../PortalHost';
4
+ import { PortalProvider } from '../PortalProvider';
5
+ import Typography from '../../Typography';
6
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
7
+ import { PortalStateContext } from '../contexts';
8
+ import theme, { ThemeProvider } from '../../../theme';
9
+
10
+ /*
11
+ * This component is used to test the PortalHost hook
12
+ */
13
+ const TestComponent = () => {
14
+ const state = useContext(PortalStateContext);
15
+
16
+ const text = 'host' in state! ? 'registered' : 'unregistered';
17
+ return <Typography.Body>{text}</Typography.Body>;
18
+ };
19
+
20
+ describe('PortalHost', () => {
21
+ it('should register portal when mount', async () => {
22
+ const { getByText } = renderWithTheme(
23
+ <PortalProvider>
24
+ <PortalHost name="host" />
25
+ <TestComponent />
26
+ </PortalProvider>
27
+ );
28
+
29
+ expect(getByText('registered')).toBeDefined();
30
+ });
31
+
32
+ it('should unregister portal when unmount', async () => {
33
+ const { getByText, rerender } = renderWithTheme(
34
+ <PortalProvider>
35
+ <PortalHost name="host" />
36
+ <TestComponent />
37
+ </PortalProvider>
38
+ );
39
+
40
+ rerender(
41
+ <ThemeProvider theme={theme}>
42
+ <PortalProvider>
43
+ <TestComponent />
44
+ </PortalProvider>
45
+ </ThemeProvider>
46
+ );
47
+
48
+ await waitFor(() => expect(getByText('unregistered')).toBeDefined());
49
+ });
50
+ });
@@ -0,0 +1,24 @@
1
+ import React, { useContext } from 'react';
2
+ import { PortalStateContext } from '../contexts';
3
+ import Typography from '../../Typography';
4
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
5
+ import { PortalProvider } from '../PortalProvider';
6
+
7
+ const TestComponent = () => {
8
+ const state = useContext(PortalStateContext);
9
+
10
+ const text = 'root' in state! ? 'registered' : 'unregistered';
11
+ return <Typography.Body>{text}</Typography.Body>;
12
+ };
13
+
14
+ describe('PortalProvider', () => {
15
+ it('should register root portal when mount', async () => {
16
+ const { getByText } = renderWithTheme(
17
+ <PortalProvider>
18
+ <TestComponent />
19
+ </PortalProvider>
20
+ );
21
+
22
+ expect(getByText('registered')).toBeDefined();
23
+ });
24
+ });
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { waitFor, within } from '@testing-library/react-native';
4
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
5
+ import { PortalHost } from '../PortalHost';
6
+ import { PortalProvider } from '../PortalProvider';
7
+ import Typography from '../../Typography';
8
+ import Portal from '..';
9
+
10
+ describe('Portal', () => {
11
+ it('should render Typography inside Portal.Host', async () => {
12
+ const { getByTestId } = renderWithTheme(
13
+ <PortalProvider>
14
+ <View testID="portal-wrapper">
15
+ <PortalHost name="host" />
16
+ </View>
17
+ <Portal hostName="host">
18
+ <Typography.Body>portal</Typography.Body>;
19
+ </Portal>
20
+ </PortalProvider>
21
+ );
22
+
23
+ await waitFor(() =>
24
+ expect(
25
+ within(getByTestId('portal-wrapper')).getByText('portal')
26
+ ).toBeDefined()
27
+ );
28
+ });
29
+ });
@@ -0,0 +1,110 @@
1
+ import React from 'react';
2
+ import Typography from '../../Typography';
3
+ import { ACTIONS, INITIAL_STATE } from '../constants';
4
+ import { reducer } from '../reducer';
5
+
6
+ describe('reducers', () => {
7
+ describe('registerHost', () => {
8
+ it('should return correct state', () => {
9
+ const newState = reducer(INITIAL_STATE, {
10
+ type: ACTIONS.REGISTER_HOST,
11
+ hostName: 'host',
12
+ });
13
+ expect(newState).toEqual({
14
+ host: [],
15
+ });
16
+ });
17
+ });
18
+
19
+ describe('deregisterHost', () => {
20
+ it('should return correct state', () => {
21
+ const newState = reducer(
22
+ {
23
+ removedHost: [],
24
+ host: [],
25
+ },
26
+ {
27
+ type: ACTIONS.DEREGISTER_HOST,
28
+ hostName: 'removedHost',
29
+ }
30
+ );
31
+ expect(newState).toEqual({
32
+ host: [],
33
+ });
34
+ });
35
+ });
36
+
37
+ describe('addUpdatePortal', () => {
38
+ it('should return correct state', () => {
39
+ const newState = reducer(
40
+ {
41
+ host: [],
42
+ },
43
+ {
44
+ type: ACTIONS.ADD_UPDATE_PORTAL,
45
+ hostName: 'host',
46
+ portalName: 'portal',
47
+ node: <Typography.Body>Portal</Typography.Body>,
48
+ }
49
+ );
50
+ expect(newState).toEqual({
51
+ host: [
52
+ {
53
+ name: 'portal',
54
+ node: <Typography.Body>Portal</Typography.Body>,
55
+ },
56
+ ],
57
+ });
58
+ });
59
+
60
+ it('should new portal when the portal is existing', () => {
61
+ const newState = reducer(
62
+ {
63
+ host: [
64
+ {
65
+ name: 'portal',
66
+ node: <Typography.Body>Old Portal</Typography.Body>,
67
+ },
68
+ ],
69
+ },
70
+ {
71
+ type: ACTIONS.ADD_UPDATE_PORTAL,
72
+ hostName: 'host',
73
+ portalName: 'portal',
74
+ node: <Typography.Body>New Portal</Typography.Body>,
75
+ }
76
+ );
77
+ expect(newState).toEqual({
78
+ host: [
79
+ {
80
+ name: 'portal',
81
+ node: <Typography.Body>New Portal</Typography.Body>,
82
+ },
83
+ ],
84
+ });
85
+ });
86
+ });
87
+
88
+ describe('removePortal', () => {
89
+ it('should return correct state', () => {
90
+ const newState = reducer(
91
+ {
92
+ host: [
93
+ {
94
+ name: 'portal',
95
+ node: <Typography.Body>Portal</Typography.Body>,
96
+ },
97
+ ],
98
+ },
99
+ {
100
+ type: ACTIONS.REMOVE_PORTAL,
101
+ hostName: 'host',
102
+ portalName: 'portal',
103
+ }
104
+ );
105
+ expect(newState).toEqual({
106
+ host: [],
107
+ });
108
+ });
109
+ });
110
+ });
@@ -0,0 +1,10 @@
1
+ enum ACTIONS {
2
+ REGISTER_HOST,
3
+ DEREGISTER_HOST,
4
+ ADD_UPDATE_PORTAL,
5
+ REMOVE_PORTAL,
6
+ }
7
+
8
+ const INITIAL_STATE = {};
9
+
10
+ export { ACTIONS, INITIAL_STATE };
@@ -0,0 +1,14 @@
1
+ import React, { createContext } from 'react';
2
+ import type { ReactNode } from 'react';
3
+ import { ActionTypes } from './types';
4
+
5
+ export interface PortalType {
6
+ name: string;
7
+ node: ReactNode;
8
+ }
9
+ export const PortalStateContext = createContext<Record<
10
+ string,
11
+ Array<PortalType>
12
+ > | null>(null);
13
+ export const PortalDispatchContext =
14
+ createContext<React.Dispatch<ActionTypes> | null>(null);
@@ -0,0 +1,42 @@
1
+ import { ReactNode, memo, useLayoutEffect, useMemo } from 'react';
2
+ // Fix issue no crypto in react-native
3
+ // https://stackoverflow.com/a/66852908
4
+ import { customAlphabet } from 'nanoid/non-secure';
5
+ import { usePortal } from './usePortal';
6
+ import { PortalProvider } from './PortalProvider';
7
+ import { PortalHost } from './PortalHost';
8
+
9
+ const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz0123456789', 10);
10
+
11
+ export interface PortalProps {
12
+ name?: string;
13
+ hostName?: string;
14
+ children?: ReactNode | ReactNode[];
15
+ }
16
+
17
+ const PortalComponent = ({ name, hostName, children }: PortalProps) => {
18
+ const { addPortal: addUpdatePortal, removePortal } = usePortal(hostName);
19
+
20
+ const nameOrRandom = useMemo(() => name || nanoid(), [name]);
21
+
22
+ useLayoutEffect(() => {
23
+ addUpdatePortal(nameOrRandom, children);
24
+ return () => {
25
+ removePortal(nameOrRandom);
26
+ };
27
+ }, [addUpdatePortal]);
28
+
29
+ useLayoutEffect(() => {
30
+ addUpdatePortal(nameOrRandom, children);
31
+ }, [children]);
32
+
33
+ return null;
34
+ };
35
+
36
+ const Portal = memo(PortalComponent);
37
+ Portal.displayName = 'Portal';
38
+
39
+ export default Object.assign(Portal, {
40
+ Provider: PortalProvider,
41
+ Host: PortalHost,
42
+ });
@@ -0,0 +1,106 @@
1
+ import { omit } from '../../utils/helpers';
2
+ import { ACTIONS } from './constants';
3
+ import { PortalType } from './contexts';
4
+ import type {
5
+ ActionTypes,
6
+ AddUpdatePortalAction,
7
+ RemovePortalAction,
8
+ } from './types';
9
+
10
+ type State = Record<string, Array<PortalType>>;
11
+
12
+ const registerHostIfNotExist = (state: State, hostName: string): State => {
13
+ if (!(hostName in state)) {
14
+ return {
15
+ ...state,
16
+ [hostName]: [],
17
+ };
18
+ }
19
+ return { ...state };
20
+ };
21
+
22
+ const deregisterHost = (state: State, hostName: string): State => {
23
+ return { ...omit([hostName], state) };
24
+ };
25
+
26
+ const addUpdatePortal = (
27
+ state: Record<string, Array<PortalType>>,
28
+ hostName: string,
29
+ portalName: string,
30
+ node: React.ReactNode
31
+ ) => {
32
+ const newState = registerHostIfNotExist(state, hostName);
33
+
34
+ const index = newState[hostName].findIndex(
35
+ (item) => item.name === portalName
36
+ );
37
+
38
+ if (index !== -1) {
39
+ return {
40
+ ...newState,
41
+ [hostName]: newState[hostName].map((item, i) => {
42
+ if (index === i) {
43
+ return {
44
+ ...item,
45
+ node,
46
+ };
47
+ }
48
+ return item;
49
+ }),
50
+ };
51
+ }
52
+
53
+ return {
54
+ ...newState,
55
+ [hostName]: [
56
+ ...newState[hostName],
57
+ {
58
+ name: portalName,
59
+ node,
60
+ },
61
+ ],
62
+ };
63
+ };
64
+
65
+ const removePortal = (
66
+ state: Record<string, Array<PortalType>>,
67
+ hostName: string,
68
+ portalName: string
69
+ ) => {
70
+ if (!(hostName in state)) {
71
+ return { ...state };
72
+ }
73
+
74
+ return {
75
+ ...state,
76
+ [hostName]: state[hostName].filter((item) => item.name !== portalName),
77
+ };
78
+ };
79
+
80
+ export const reducer = (
81
+ state: Record<string, Array<PortalType>>,
82
+ action: ActionTypes
83
+ ) => {
84
+ const { type } = action;
85
+ switch (type) {
86
+ case ACTIONS.REGISTER_HOST:
87
+ return registerHostIfNotExist(state, action.hostName);
88
+ case ACTIONS.DEREGISTER_HOST:
89
+ return deregisterHost(state, action.hostName);
90
+ case ACTIONS.ADD_UPDATE_PORTAL:
91
+ return addUpdatePortal(
92
+ state,
93
+ action.hostName,
94
+ (action as AddUpdatePortalAction).portalName,
95
+ (action as AddUpdatePortalAction).node
96
+ );
97
+ case ACTIONS.REMOVE_PORTAL:
98
+ return removePortal(
99
+ state,
100
+ action.hostName,
101
+ (action as RemovePortalAction).portalName
102
+ );
103
+ default:
104
+ return { ...state };
105
+ }
106
+ };
@@ -0,0 +1,31 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ACTIONS } from './constants';
3
+
4
+ export interface AddUpdatePortalAction {
5
+ type: ACTIONS;
6
+ hostName: string;
7
+ portalName: string;
8
+ node: ReactNode;
9
+ }
10
+
11
+ export interface RemovePortalAction {
12
+ type: ACTIONS;
13
+ hostName: string;
14
+ portalName: string;
15
+ }
16
+
17
+ export interface RegisterHostAction {
18
+ type: ACTIONS;
19
+ hostName: string;
20
+ }
21
+
22
+ export interface UnregisterHostAction {
23
+ type: ACTIONS;
24
+ hostName: string;
25
+ }
26
+
27
+ export type ActionTypes =
28
+ | AddUpdatePortalAction
29
+ | RemovePortalAction
30
+ | RegisterHostAction
31
+ | UnregisterHostAction;
@@ -0,0 +1,50 @@
1
+ import { ReactNode, useCallback, useContext } from 'react';
2
+ import { ACTIONS } from './constants';
3
+ import { PortalDispatchContext } from './contexts';
4
+
5
+ export const usePortal = (hostName = 'root') => {
6
+ const dispatch = useContext(PortalDispatchContext);
7
+
8
+ if (dispatch === null) {
9
+ throw new Error("You must add 'PortalProvider' to the root component.");
10
+ }
11
+
12
+ const registerHost = useCallback(() => {
13
+ dispatch({
14
+ type: ACTIONS.REGISTER_HOST,
15
+ hostName,
16
+ });
17
+ }, []);
18
+
19
+ const deregisterHost = useCallback(() => {
20
+ dispatch({
21
+ type: ACTIONS.DEREGISTER_HOST,
22
+ hostName,
23
+ });
24
+ }, []);
25
+
26
+ const addUpdatePortal = useCallback((name: string, node: ReactNode) => {
27
+ dispatch({
28
+ type: ACTIONS.ADD_UPDATE_PORTAL,
29
+ hostName,
30
+ portalName: name,
31
+ node,
32
+ });
33
+ }, []);
34
+
35
+ const removePortal = useCallback((name: string) => {
36
+ dispatch({
37
+ type: ACTIONS.REMOVE_PORTAL,
38
+ hostName,
39
+ portalName: name,
40
+ });
41
+ }, []);
42
+
43
+ return {
44
+ registerHost,
45
+ deregisterHost,
46
+ addPortal: addUpdatePortal,
47
+ updatePortal: addUpdatePortal,
48
+ removePortal,
49
+ };
50
+ };
@@ -0,0 +1,11 @@
1
+ import { useContext } from 'react';
2
+ import { PortalStateContext } from './contexts';
3
+
4
+ export const usePortalState = (hostName: string) => {
5
+ const state = useContext(PortalStateContext);
6
+ if (state === null) {
7
+ throw new Error("You must add 'PortalProvider' to the root component.");
8
+ }
9
+
10
+ return state[hostName] || [];
11
+ };
@@ -13,6 +13,7 @@ const StyledWrapper = styled(View)<ViewProps & { themeIntent: ThemeIntent }>(
13
13
  THEME_INTENT_MAP[themeIntent]
14
14
  ],
15
15
  overflow: 'hidden',
16
+ borderRadius: theme.__hd__.progress.radii.default,
16
17
  })
17
18
  );
18
19