@hero-design/rn 8.22.0 → 8.24.0-alpha.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 (319) hide show
  1. package/.turbo/turbo-build.log +9 -9
  2. package/.turbo/turbo-build:types.log +2 -0
  3. package/.turbo/turbo-lint.log +146 -0
  4. package/.turbo/turbo-publish:npm.log +9 -0
  5. package/.turbo/turbo-test.log +451 -0
  6. package/.turbo/turbo-type-check.log +1 -0
  7. package/es/index.js +527 -165
  8. package/lib/assets/fonts/hero-icons-mobile.ttf +0 -0
  9. package/lib/index.js +527 -164
  10. package/package.json +5 -5
  11. package/src/components/Alert/index.tsx +6 -0
  12. package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.spec.tsx.snap +21 -9
  13. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerAndroid.spec.tsx.snap +7 -3
  14. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerCalendar.spec.tsx.snap +7 -3
  15. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerIOS.spec.tsx.snap +7 -3
  16. package/src/components/Empty/__tests__/__snapshots__/index.spec.tsx.snap +2 -2
  17. package/src/components/Error/__tests__/__snapshots__/index.spec.tsx.snap +5 -5
  18. package/src/components/List/ListItem.tsx +12 -8
  19. package/src/components/RichTextEditor/RichTextEditor.tsx +10 -7
  20. package/src/components/RichTextEditor/__tests__/__snapshots__/RichTextEditor.spec.tsx.snap +10 -8
  21. package/src/components/Select/MultiSelect/__tests__/__snapshots__/index.spec.tsx.snap +37 -16
  22. package/src/components/Select/SingleSelect/__tests__/__snapshots__/index.spec.tsx.snap +37 -16
  23. package/src/components/Success/StyledSuccess.tsx +87 -0
  24. package/src/components/Success/__tests__/__snapshots__/index.spec.tsx.snap +497 -0
  25. package/src/components/Success/__tests__/index.spec.tsx +78 -0
  26. package/src/components/Success/index.tsx +129 -0
  27. package/src/components/Tabs/ScrollableTabs.tsx +10 -149
  28. package/src/components/Tabs/ScrollableTabsHeader.tsx +214 -0
  29. package/src/components/Tabs/ScrollableTabsV2/SceneView.tsx +61 -0
  30. package/src/components/Tabs/ScrollableTabsV2/ScrollableTabsV2.tsx +120 -0
  31. package/src/components/Tabs/ScrollableTabsV2/__tests__/SceneView.spec.tsx +76 -0
  32. package/src/components/Tabs/ScrollableTabsV2/__tests__/ScrollableTabsV2.spec.tsx +166 -0
  33. package/src/components/Tabs/ScrollableTabsV2/__tests__/__snapshots__/SceneView.spec.tsx.snap +161 -0
  34. package/src/components/Tabs/ScrollableTabsV2/__tests__/__snapshots__/ScrollableTabsV2.spec.tsx.snap +2497 -0
  35. package/src/components/Tabs/ScrollableTabsV2/index.tsx +5 -0
  36. package/src/components/Tabs/__tests__/ScrollableTabsHeader.spec.tsx +80 -0
  37. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabsHeader.spec.tsx.snap +587 -0
  38. package/src/components/Tabs/index.tsx +2 -0
  39. package/src/components/Tag/StyledTag.tsx +1 -1
  40. package/src/components/Tag/__tests__/Tag.spec.tsx +22 -71
  41. package/src/components/Tag/__tests__/__snapshots__/Tag.spec.tsx.snap +106 -53
  42. package/src/components/TextInput/StyledTextInput.tsx +40 -29
  43. package/src/components/TextInput/__tests__/StyledTextInput.spec.tsx +48 -57
  44. package/src/components/TextInput/__tests__/__snapshots__/StyledTextInput.spec.tsx.snap +84 -58
  45. package/src/components/TextInput/__tests__/__snapshots__/index.spec.tsx.snap +587 -70
  46. package/src/components/TextInput/__tests__/index.spec.tsx +45 -4
  47. package/src/components/TextInput/index.tsx +31 -16
  48. package/src/components/TimePicker/__tests__/__snapshots__/TimePickerAndroid.spec.tsx.snap +14 -6
  49. package/src/components/TimePicker/__tests__/__snapshots__/TimePickerIOS.spec.tsx.snap +14 -6
  50. package/src/index.ts +2 -0
  51. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +41 -6
  52. package/src/theme/components/empty.ts +1 -1
  53. package/src/theme/components/error.ts +1 -1
  54. package/src/theme/components/success.ts +40 -0
  55. package/src/theme/components/tag.ts +1 -1
  56. package/src/theme/components/textInput.ts +10 -4
  57. package/src/theme/getTheme.ts +3 -0
  58. package/src/utils/hooks.ts +1 -1
  59. package/testUtils/setup.tsx +6 -0
  60. package/types/components/Accordion/AccordionItem.d.ts +0 -0
  61. package/types/components/Accordion/StyledAccordion.d.ts +0 -0
  62. package/types/components/Accordion/index.d.ts +0 -0
  63. package/types/components/Alert/StyledAlert.d.ts +0 -0
  64. package/types/components/Alert/index.d.ts +0 -0
  65. package/types/components/Attachment/StyledAttachment.d.ts +0 -0
  66. package/types/components/Attachment/index.d.ts +0 -0
  67. package/types/components/Avatar/Avatar.d.ts +0 -0
  68. package/types/components/Avatar/AvatarStack/StyledAvatarStack.d.ts +0 -0
  69. package/types/components/Avatar/AvatarStack/index.d.ts +0 -0
  70. package/types/components/Avatar/AvatarStack/utils.d.ts +0 -0
  71. package/types/components/Avatar/StyledAvatar.d.ts +0 -0
  72. package/types/components/Avatar/index.d.ts +0 -0
  73. package/types/components/Badge/Status.d.ts +0 -0
  74. package/types/components/Badge/StyledBadge.d.ts +0 -0
  75. package/types/components/Badge/index.d.ts +0 -0
  76. package/types/components/BottomNavigation/StyledBottomNavigation.d.ts +0 -0
  77. package/types/components/BottomNavigation/index.d.ts +0 -0
  78. package/types/components/BottomSheet/BottomSheetContext.d.ts +0 -0
  79. package/types/components/BottomSheet/Footer.d.ts +0 -0
  80. package/types/components/BottomSheet/Header.d.ts +0 -0
  81. package/types/components/BottomSheet/ScrollView.d.ts +0 -0
  82. package/types/components/BottomSheet/StyledBottomSheet.d.ts +0 -0
  83. package/types/components/BottomSheet/index.d.ts +0 -0
  84. package/types/components/Box/StyledBox.d.ts +0 -0
  85. package/types/components/Box/config.d.ts +0 -0
  86. package/types/components/Box/index.d.ts +0 -0
  87. package/types/components/Box/types.d.ts +0 -0
  88. package/types/components/Button/Button.d.ts +0 -0
  89. package/types/components/Button/IconButton.d.ts +0 -0
  90. package/types/components/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +0 -0
  91. package/types/components/Button/LoadingIndicator/index.d.ts +0 -0
  92. package/types/components/Button/StyledButton.d.ts +0 -0
  93. package/types/components/Button/UtilityButton/StyledUtilityButton.d.ts +0 -0
  94. package/types/components/Button/UtilityButton/index.d.ts +0 -0
  95. package/types/components/Button/index.d.ts +0 -0
  96. package/types/components/Calendar/CalendarRowItem.d.ts +0 -0
  97. package/types/components/Calendar/StyledCalendar.d.ts +0 -0
  98. package/types/components/Calendar/helpers.d.ts +0 -0
  99. package/types/components/Calendar/index.d.ts +0 -0
  100. package/types/components/Card/DataCard/StyledDataCard.d.ts +0 -0
  101. package/types/components/Card/DataCard/index.d.ts +0 -0
  102. package/types/components/Card/StyledCard.d.ts +0 -0
  103. package/types/components/Card/index.d.ts +0 -0
  104. package/types/components/Carousel/CardCarousel.d.ts +0 -0
  105. package/types/components/Carousel/CarouselItem.d.ts +0 -0
  106. package/types/components/Carousel/StyledCardCarousel.d.ts +0 -0
  107. package/types/components/Carousel/StyledCarousel.d.ts +0 -0
  108. package/types/components/Carousel/contants.d.ts +0 -0
  109. package/types/components/Carousel/index.d.ts +0 -0
  110. package/types/components/Carousel/types.d.ts +0 -0
  111. package/types/components/Checkbox/StyledCheckbox.d.ts +0 -0
  112. package/types/components/Checkbox/index.d.ts +0 -0
  113. package/types/components/Collapse/StyledCollapse.d.ts +0 -0
  114. package/types/components/Collapse/index.d.ts +0 -0
  115. package/types/components/ContentNavigator/StyledContentNavigator.d.ts +0 -0
  116. package/types/components/ContentNavigator/index.d.ts +0 -0
  117. package/types/components/DatePicker/DatePickerAndroid.d.ts +0 -0
  118. package/types/components/DatePicker/DatePickerCalendar.d.ts +0 -0
  119. package/types/components/DatePicker/DatePickerIOS.d.ts +0 -0
  120. package/types/components/DatePicker/StyledDatePicker.d.ts +0 -0
  121. package/types/components/DatePicker/index.d.ts +0 -0
  122. package/types/components/DatePicker/types.d.ts +0 -0
  123. package/types/components/Divider/StyledDivider.d.ts +0 -0
  124. package/types/components/Divider/index.d.ts +0 -0
  125. package/types/components/Drawer/DragableDrawer/helpers.d.ts +0 -0
  126. package/types/components/Drawer/DragableDrawer/index.d.ts +0 -0
  127. package/types/components/Drawer/StyledDrawer.d.ts +0 -0
  128. package/types/components/Drawer/index.d.ts +0 -0
  129. package/types/components/Empty/StyledEmpty.d.ts +0 -0
  130. package/types/components/Empty/index.d.ts +0 -0
  131. package/types/components/Error/StyledError.d.ts +0 -0
  132. package/types/components/Error/index.d.ts +0 -0
  133. package/types/components/FAB/ActionGroup/ActionItem.d.ts +0 -0
  134. package/types/components/FAB/ActionGroup/StyledActionGroup.d.ts +0 -0
  135. package/types/components/FAB/ActionGroup/StyledActionItem.d.ts +0 -0
  136. package/types/components/FAB/ActionGroup/index.d.ts +0 -0
  137. package/types/components/FAB/AnimatedFABIcon.d.ts +0 -0
  138. package/types/components/FAB/FAB.d.ts +0 -0
  139. package/types/components/FAB/StyledFAB.d.ts +0 -0
  140. package/types/components/FAB/index.d.ts +0 -0
  141. package/types/components/Icon/AnimatedIcon.d.ts +0 -0
  142. package/types/components/Icon/HeroIcon/index.d.ts +0 -0
  143. package/types/components/Icon/IconList.d.ts +0 -0
  144. package/types/components/Icon/index.d.ts +0 -0
  145. package/types/components/Icon/utils.d.ts +0 -0
  146. package/types/components/Image/index.d.ts +0 -0
  147. package/types/components/List/BasicListItem.d.ts +0 -0
  148. package/types/components/List/ListItem.d.ts +0 -0
  149. package/types/components/List/StyledBasicListItem.d.ts +0 -0
  150. package/types/components/List/StyledListItem.d.ts +0 -0
  151. package/types/components/List/index.d.ts +0 -0
  152. package/types/components/PageControl/StyledPageControl.d.ts +0 -0
  153. package/types/components/PageControl/index.d.ts +0 -0
  154. package/types/components/PinInput/PinCell.d.ts +0 -0
  155. package/types/components/PinInput/StyledPinInput.d.ts +0 -0
  156. package/types/components/PinInput/index.d.ts +0 -0
  157. package/types/components/Progress/ProgressBar.d.ts +0 -0
  158. package/types/components/Progress/ProgressCircle.d.ts +0 -0
  159. package/types/components/Progress/StyledProgressBar.d.ts +0 -0
  160. package/types/components/Progress/StyledProgressCircle.d.ts +0 -0
  161. package/types/components/Progress/__tests__/index.spec.d.ts +0 -0
  162. package/types/components/Progress/constants.d.ts +0 -0
  163. package/types/components/Progress/index.d.ts +0 -0
  164. package/types/components/Progress/types.d.ts +0 -0
  165. package/types/components/Radio/Radio.d.ts +0 -0
  166. package/types/components/Radio/RadioGroup.d.ts +0 -0
  167. package/types/components/Radio/StyledRadio.d.ts +0 -0
  168. package/types/components/Radio/index.d.ts +0 -0
  169. package/types/components/Radio/types.d.ts +0 -0
  170. package/types/components/RefreshControl/index.d.ts +0 -0
  171. package/types/components/RichTextEditor/EditorEvent.d.ts +0 -0
  172. package/types/components/RichTextEditor/EditorToolbar.d.ts +0 -0
  173. package/types/components/RichTextEditor/MentionList.d.ts +0 -0
  174. package/types/components/RichTextEditor/RichTextEditor.d.ts +0 -0
  175. package/types/components/RichTextEditor/StyledRichTextEditor.d.ts +0 -0
  176. package/types/components/RichTextEditor/StyledToolbar.d.ts +0 -0
  177. package/types/components/RichTextEditor/__mocks__/heroEditorApp.d.ts +0 -0
  178. package/types/components/RichTextEditor/constants.d.ts +0 -0
  179. package/types/components/RichTextEditor/heroEditorApp.d.ts +0 -0
  180. package/types/components/RichTextEditor/index.d.ts +0 -0
  181. package/types/components/RichTextEditor/types.d.ts +0 -0
  182. package/types/components/RichTextEditor/utils/events.d.ts +0 -0
  183. package/types/components/RichTextEditor/utils/rnWebView.d.ts +0 -0
  184. package/types/components/SectionHeading/StyledHeading.d.ts +0 -0
  185. package/types/components/SectionHeading/index.d.ts +0 -0
  186. package/types/components/Select/BaseOptionList.d.ts +0 -0
  187. package/types/components/Select/Footer.d.ts +0 -0
  188. package/types/components/Select/MultiSelect/Option.d.ts +0 -0
  189. package/types/components/Select/MultiSelect/OptionList.d.ts +0 -0
  190. package/types/components/Select/MultiSelect/index.d.ts +0 -0
  191. package/types/components/Select/SingleSelect/Option.d.ts +0 -0
  192. package/types/components/Select/SingleSelect/OptionList.d.ts +0 -0
  193. package/types/components/Select/SingleSelect/StyledSingleSelect.d.ts +0 -0
  194. package/types/components/Select/SingleSelect/index.d.ts +0 -0
  195. package/types/components/Select/StyledSelect.d.ts +0 -0
  196. package/types/components/Select/helpers.d.ts +0 -0
  197. package/types/components/Select/index.d.ts +0 -0
  198. package/types/components/Select/types.d.ts +0 -0
  199. package/types/components/Skeleton/StyledSkeleton.d.ts +0 -0
  200. package/types/components/Skeleton/index.d.ts +0 -0
  201. package/types/components/Slider/index.d.ts +0 -0
  202. package/types/components/Spinner/AnimatedSpinner.d.ts +0 -0
  203. package/types/components/Spinner/StyledSpinner.d.ts +0 -0
  204. package/types/components/Spinner/index.d.ts +0 -0
  205. package/types/components/Success/StyledSuccess.d.ts +54 -0
  206. package/types/components/Success/index.d.ts +42 -0
  207. package/types/components/Swipeable/StyledSwipeable.d.ts +0 -0
  208. package/types/components/Swipeable/SwipeableAction.d.ts +0 -0
  209. package/types/components/Swipeable/index.d.ts +0 -0
  210. package/types/components/Switch/SelectorSwitch/Option.d.ts +0 -0
  211. package/types/components/Switch/SelectorSwitch/StyledSelectorSwitch.d.ts +0 -0
  212. package/types/components/Switch/SelectorSwitch/index.d.ts +0 -0
  213. package/types/components/Switch/StyledSwitch.d.ts +0 -0
  214. package/types/components/Switch/index.d.ts +0 -0
  215. package/types/components/Tabs/ActiveTabIndicator.d.ts +0 -0
  216. package/types/components/Tabs/SceneView.d.ts +9 -0
  217. package/types/components/Tabs/ScrollableTabs.d.ts +0 -0
  218. package/types/components/Tabs/ScrollableTabsHeader.d.ts +35 -0
  219. package/types/components/Tabs/ScrollableTabsV2/SceneView.d.ts +10 -0
  220. package/types/components/Tabs/ScrollableTabsV2/ScrollableTabsV2.d.ts +9 -0
  221. package/types/components/Tabs/ScrollableTabsV2/index.d.ts +4 -0
  222. package/types/components/Tabs/StyledScrollableTabs.d.ts +0 -0
  223. package/types/components/Tabs/StyledTabs.d.ts +0 -0
  224. package/types/components/Tabs/TabWithBadge.d.ts +0 -0
  225. package/types/components/Tabs/index.d.ts +3 -0
  226. package/types/components/Tabs/utils.d.ts +0 -0
  227. package/types/components/Tag/StyledTag.d.ts +0 -0
  228. package/types/components/Tag/index.d.ts +0 -0
  229. package/types/components/TextInput/StyledTextInput.d.ts +12 -7
  230. package/types/components/TextInput/index.d.ts +12 -4
  231. package/types/components/TimePicker/StyledTimePicker.d.ts +0 -0
  232. package/types/components/TimePicker/TimePickerAndroid.d.ts +0 -0
  233. package/types/components/TimePicker/TimePickerIOS.d.ts +0 -0
  234. package/types/components/TimePicker/index.d.ts +0 -0
  235. package/types/components/TimePicker/types.d.ts +0 -0
  236. package/types/components/Toast/StyledToast.d.ts +0 -0
  237. package/types/components/Toast/Toast.d.ts +0 -0
  238. package/types/components/Toast/ToastContainer.d.ts +0 -0
  239. package/types/components/Toast/ToastContext.d.ts +0 -0
  240. package/types/components/Toast/ToastProvider.d.ts +0 -0
  241. package/types/components/Toast/index.d.ts +0 -0
  242. package/types/components/Toast/types.d.ts +0 -0
  243. package/types/components/Toolbar/StyledToolbar.d.ts +0 -0
  244. package/types/components/Toolbar/ToolbarGroup.d.ts +0 -0
  245. package/types/components/Toolbar/ToolbarItem.d.ts +0 -0
  246. package/types/components/Toolbar/index.d.ts +0 -0
  247. package/types/components/Typography/Text/StyledText.d.ts +0 -0
  248. package/types/components/Typography/Text/index.d.ts +0 -0
  249. package/types/components/Typography/index.d.ts +0 -0
  250. package/types/index.d.ts +2 -1
  251. package/types/testHelpers/renderWithTheme.d.ts +0 -0
  252. package/types/theme/ThemeProvider.d.ts +0 -0
  253. package/types/theme/ThemeSwitcher.d.ts +0 -0
  254. package/types/theme/components/accordion.d.ts +0 -0
  255. package/types/theme/components/alert.d.ts +0 -0
  256. package/types/theme/components/attachment.d.ts +0 -0
  257. package/types/theme/components/avatar.d.ts +0 -0
  258. package/types/theme/components/badge.d.ts +0 -0
  259. package/types/theme/components/bottomNavigation.d.ts +0 -0
  260. package/types/theme/components/bottomSheet.d.ts +0 -0
  261. package/types/theme/components/button.d.ts +0 -0
  262. package/types/theme/components/calendar.d.ts +0 -0
  263. package/types/theme/components/card.d.ts +0 -0
  264. package/types/theme/components/cardCarousel.d.ts +0 -0
  265. package/types/theme/components/carousel.d.ts +0 -0
  266. package/types/theme/components/checkbox.d.ts +0 -0
  267. package/types/theme/components/contentNavigator.d.ts +0 -0
  268. package/types/theme/components/datePicker.d.ts +0 -0
  269. package/types/theme/components/divider.d.ts +0 -0
  270. package/types/theme/components/drawer.d.ts +0 -0
  271. package/types/theme/components/empty.d.ts +0 -0
  272. package/types/theme/components/error.d.ts +0 -0
  273. package/types/theme/components/fab.d.ts +0 -0
  274. package/types/theme/components/icon.d.ts +0 -0
  275. package/types/theme/components/image.d.ts +0 -0
  276. package/types/theme/components/list.d.ts +0 -0
  277. package/types/theme/components/pageControl.d.ts +0 -0
  278. package/types/theme/components/pinInput.d.ts +0 -0
  279. package/types/theme/components/progress.d.ts +0 -0
  280. package/types/theme/components/radio.d.ts +0 -0
  281. package/types/theme/components/refreshControl.d.ts +0 -0
  282. package/types/theme/components/richTextEditor.d.ts +0 -0
  283. package/types/theme/components/sectionHeading.d.ts +0 -0
  284. package/types/theme/components/select.d.ts +0 -0
  285. package/types/theme/components/skeleton.d.ts +0 -0
  286. package/types/theme/components/slider.d.ts +0 -0
  287. package/types/theme/components/spinner.d.ts +0 -0
  288. package/types/theme/components/success.d.ts +32 -0
  289. package/types/theme/components/swipeable.d.ts +0 -0
  290. package/types/theme/components/switch.d.ts +0 -0
  291. package/types/theme/components/tabs.d.ts +0 -0
  292. package/types/theme/components/tag.d.ts +0 -0
  293. package/types/theme/components/textInput.d.ts +5 -0
  294. package/types/theme/components/timePicker.d.ts +0 -0
  295. package/types/theme/components/toast.d.ts +0 -0
  296. package/types/theme/components/toolbar.d.ts +0 -0
  297. package/types/theme/components/typography.d.ts +0 -0
  298. package/types/theme/getTheme.d.ts +2 -0
  299. package/types/theme/global/borders.d.ts +0 -0
  300. package/types/theme/global/colors/eBens.d.ts +0 -0
  301. package/types/theme/global/colors/global.d.ts +0 -0
  302. package/types/theme/global/colors/globalDark.d.ts +0 -0
  303. package/types/theme/global/colors/jobs.d.ts +0 -0
  304. package/types/theme/global/colors/swag.d.ts +0 -0
  305. package/types/theme/global/colors/swagDark.d.ts +0 -0
  306. package/types/theme/global/colors/types.d.ts +0 -0
  307. package/types/theme/global/colors/wallet.d.ts +0 -0
  308. package/types/theme/global/colors/work.d.ts +0 -0
  309. package/types/theme/global/index.d.ts +0 -0
  310. package/types/theme/global/scale.d.ts +0 -0
  311. package/types/theme/global/sizes.d.ts +0 -0
  312. package/types/theme/global/space.d.ts +0 -0
  313. package/types/theme/global/typography.d.ts +0 -0
  314. package/types/theme/index.d.ts +0 -0
  315. package/types/types.d.ts +0 -0
  316. package/types/utils/functions.d.ts +0 -0
  317. package/types/utils/helpers.d.ts +0 -0
  318. package/types/utils/hooks.d.ts +0 -0
  319. package/types/utils/scale.d.ts +0 -0
@@ -0,0 +1,5 @@
1
+ import ScrollableTabsV2, { useIsFocused } from './ScrollableTabsV2';
2
+
3
+ export default Object.assign(ScrollableTabsV2, {
4
+ useIsFocused,
5
+ });
@@ -0,0 +1,80 @@
1
+ import React from 'react';
2
+ import { Text } from 'react-native';
3
+ import { fireEvent } from '@testing-library/react-native';
4
+ import { SafeAreaProvider } from 'react-native-safe-area-context';
5
+ import type { ComponentProps } from 'react';
6
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
7
+ import ScrollableTabsHeader from '../ScrollableTabsHeader';
8
+ import type { TabType } from '..';
9
+
10
+ const TestTabsComponent = (
11
+ props: Omit<
12
+ ComponentProps<typeof ScrollableTabsHeader>,
13
+ 'selectedTabKey' | 'tabs'
14
+ >
15
+ ) => {
16
+ const tabs: TabType[] = [
17
+ {
18
+ key: 'work',
19
+ activeItem: 'Work',
20
+ component: <Text>Work Screen</Text>,
21
+ },
22
+ {
23
+ key: 'personal',
24
+ activeItem: 'speaker',
25
+ inactiveItem: 'speaker-outlined',
26
+ component: <Text>Personal Screen</Text>,
27
+ },
28
+ {
29
+ key: 'home',
30
+ activeItem: 'home',
31
+ inactiveItem: 'home-outlined',
32
+ component: <Text>Home Screen</Text>,
33
+ badge: {
34
+ type: 'status',
35
+ },
36
+ },
37
+ {
38
+ key: 'calendar',
39
+ activeItem: 'calendar',
40
+ inactiveItem: 'calendar-dates-outlined',
41
+ component: <Text>Calendar Screen</Text>,
42
+ badge: {
43
+ type: 'counter',
44
+ value: 50,
45
+ },
46
+ },
47
+ ];
48
+
49
+ return (
50
+ <SafeAreaProvider
51
+ initialMetrics={{
52
+ frame: { x: 0, y: 0, width: 0, height: 0 },
53
+ insets: { top: 0, left: 0, right: 0, bottom: 0 },
54
+ }}
55
+ >
56
+ <ScrollableTabsHeader {...props} tabs={tabs} selectedIndex={0} />
57
+ </SafeAreaProvider>
58
+ );
59
+ };
60
+
61
+ describe('ScrollableTabsHeader', () => {
62
+ it('renders correctly', () => {
63
+ const onTabPress = jest.fn();
64
+ const { getByTestId, getByText, toJSON } = renderWithTheme(
65
+ <TestTabsComponent onTabPress={onTabPress} />
66
+ );
67
+
68
+ expect(toJSON()).toMatchSnapshot();
69
+ expect(getByText('Work')).toBeDefined();
70
+ expect(getByTestId('hero-icon-speaker-outlined')).toBeDefined();
71
+ expect(getByTestId('hero-icon-home-outlined')).toBeDefined();
72
+ fireEvent.press(getByTestId('hero-icon-speaker-outlined'));
73
+ expect(onTabPress).toHaveBeenCalledWith('personal');
74
+ fireEvent.press(getByTestId('hero-icon-home-outlined'));
75
+ expect(onTabPress).toHaveBeenCalledWith('home');
76
+ fireEvent.press(getByTestId('hero-icon-calendar-dates-outlined'));
77
+ expect(onTabPress).toHaveBeenCalledWith('calendar');
78
+ expect(getByText('50')).toBeDefined();
79
+ });
80
+ });
@@ -0,0 +1,587 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ScrollableTabsHeader renders correctly 1`] = `
4
+ <RNCSafeAreaProvider
5
+ onInsetsChange={[Function]}
6
+ style={
7
+ Array [
8
+ Object {
9
+ "flex": 1,
10
+ },
11
+ undefined,
12
+ ]
13
+ }
14
+ >
15
+ <View
16
+ style={
17
+ Array [
18
+ Object {
19
+ "borderBottomColor": "#e8e9ea",
20
+ "borderBottomWidth": 1,
21
+ "paddingHorizontal": 0,
22
+ },
23
+ undefined,
24
+ ]
25
+ }
26
+ themeInsets={
27
+ Object {
28
+ "bottom": 0,
29
+ "left": 0,
30
+ "right": 0,
31
+ "top": 0,
32
+ }
33
+ }
34
+ >
35
+ <RCTScrollView
36
+ contentContainerStyle={
37
+ Object {
38
+ "paddingHorizontal": 8,
39
+ }
40
+ }
41
+ data={
42
+ Array [
43
+ Object {
44
+ "activeItem": "Work",
45
+ "component": <Text>
46
+ Work Screen
47
+ </Text>,
48
+ "key": "work",
49
+ },
50
+ Object {
51
+ "activeItem": "speaker",
52
+ "component": <Text>
53
+ Personal Screen
54
+ </Text>,
55
+ "inactiveItem": "speaker-outlined",
56
+ "key": "personal",
57
+ },
58
+ Object {
59
+ "activeItem": "home",
60
+ "badge": Object {
61
+ "type": "status",
62
+ },
63
+ "component": <Text>
64
+ Home Screen
65
+ </Text>,
66
+ "inactiveItem": "home-outlined",
67
+ "key": "home",
68
+ },
69
+ Object {
70
+ "activeItem": "calendar",
71
+ "badge": Object {
72
+ "type": "counter",
73
+ "value": 50,
74
+ },
75
+ "component": <Text>
76
+ Calendar Screen
77
+ </Text>,
78
+ "inactiveItem": "calendar-dates-outlined",
79
+ "key": "calendar",
80
+ },
81
+ ]
82
+ }
83
+ getItem={[Function]}
84
+ getItemCount={[Function]}
85
+ horizontal={true}
86
+ keyExtractor={[Function]}
87
+ onContentSizeChange={[Function]}
88
+ onLayout={[Function]}
89
+ onMomentumScrollBegin={[Function]}
90
+ onMomentumScrollEnd={[Function]}
91
+ onScroll={[Function]}
92
+ onScrollBeginDrag={[Function]}
93
+ onScrollEndDrag={[Function]}
94
+ onScrollToIndexFailed={[Function]}
95
+ removeClippedSubviews={false}
96
+ renderItem={[Function]}
97
+ scrollEventThrottle={50}
98
+ showsHorizontalScrollIndicator={false}
99
+ stickyHeaderIndices={Array []}
100
+ viewabilityConfigCallbackPairs={Array []}
101
+ >
102
+ <View>
103
+ <View
104
+ onLayout={[Function]}
105
+ style={
106
+ Array [
107
+ Object {
108
+ "flexDirection": "row",
109
+ },
110
+ null,
111
+ ]
112
+ }
113
+ >
114
+ <View
115
+ accessible={true}
116
+ collapsable={false}
117
+ focusable={true}
118
+ isFirstItem={true}
119
+ onClick={[Function]}
120
+ onResponderGrant={[Function]}
121
+ onResponderMove={[Function]}
122
+ onResponderRelease={[Function]}
123
+ onResponderTerminate={[Function]}
124
+ onResponderTerminationRequest={[Function]}
125
+ onStartShouldSetResponder={[Function]}
126
+ style={
127
+ Object {
128
+ "marginLeft": 0,
129
+ "paddingVertical": 8,
130
+ }
131
+ }
132
+ >
133
+ <View
134
+ style={
135
+ Array [
136
+ Object {
137
+ "bottom": 0,
138
+ "left": 0,
139
+ "paddingVertical": 8,
140
+ "position": "absolute",
141
+ "right": 0,
142
+ "top": 0,
143
+ },
144
+ undefined,
145
+ ]
146
+ }
147
+ >
148
+ <View
149
+ collapsable={false}
150
+ style={
151
+ Object {
152
+ "backgroundColor": "#ccd2d3",
153
+ "borderRadius": 8,
154
+ "flex": 1,
155
+ "transform": Array [
156
+ Object {
157
+ "scaleX": 1,
158
+ },
159
+ ],
160
+ }
161
+ }
162
+ themeActive={true}
163
+ />
164
+ </View>
165
+ <View
166
+ style={
167
+ Array [
168
+ Object {
169
+ "paddingHorizontal": 8,
170
+ "paddingVertical": 4,
171
+ },
172
+ undefined,
173
+ ]
174
+ }
175
+ >
176
+ <View>
177
+ <Text
178
+ allowFontScaling={false}
179
+ numberOfLines={1}
180
+ style={
181
+ Array [
182
+ Object {
183
+ "color": "#001f23",
184
+ "fontFamily": "BeVietnamPro-SemiBold",
185
+ "fontSize": 14,
186
+ "letterSpacing": 0.42,
187
+ "lineHeight": 22,
188
+ },
189
+ Object {
190
+ "color": "#001f23",
191
+ },
192
+ ]
193
+ }
194
+ themeFontSize="medium"
195
+ themeFontWeight="semi-bold"
196
+ themeIntent="body"
197
+ themeTypeface="neutral"
198
+ >
199
+ Work
200
+ </Text>
201
+ </View>
202
+ </View>
203
+ </View>
204
+ </View>
205
+ <View
206
+ onLayout={[Function]}
207
+ style={
208
+ Array [
209
+ Object {
210
+ "flexDirection": "row",
211
+ },
212
+ null,
213
+ ]
214
+ }
215
+ >
216
+ <View
217
+ accessible={true}
218
+ collapsable={false}
219
+ focusable={true}
220
+ isFirstItem={false}
221
+ onClick={[Function]}
222
+ onResponderGrant={[Function]}
223
+ onResponderMove={[Function]}
224
+ onResponderRelease={[Function]}
225
+ onResponderTerminate={[Function]}
226
+ onResponderTerminationRequest={[Function]}
227
+ onStartShouldSetResponder={[Function]}
228
+ style={
229
+ Object {
230
+ "marginLeft": 12,
231
+ "paddingVertical": 8,
232
+ }
233
+ }
234
+ >
235
+ <View
236
+ style={
237
+ Array [
238
+ Object {
239
+ "bottom": 0,
240
+ "left": 0,
241
+ "paddingVertical": 8,
242
+ "position": "absolute",
243
+ "right": 0,
244
+ "top": 0,
245
+ },
246
+ undefined,
247
+ ]
248
+ }
249
+ >
250
+ <View
251
+ collapsable={false}
252
+ style={
253
+ Object {
254
+ "backgroundColor": undefined,
255
+ "borderRadius": 8,
256
+ "flex": 1,
257
+ "transform": Array [
258
+ Object {
259
+ "scaleX": 0,
260
+ },
261
+ ],
262
+ }
263
+ }
264
+ themeActive={false}
265
+ />
266
+ </View>
267
+ <View
268
+ style={
269
+ Array [
270
+ Object {
271
+ "paddingHorizontal": 8,
272
+ "paddingVertical": 4,
273
+ },
274
+ undefined,
275
+ ]
276
+ }
277
+ >
278
+ <View>
279
+ <HeroIcon
280
+ name="speaker-outlined"
281
+ style={
282
+ Array [
283
+ Object {
284
+ "color": "#001f23",
285
+ "fontSize": 20,
286
+ },
287
+ Object {
288
+ "color": "#001f23",
289
+ },
290
+ ]
291
+ }
292
+ testID="hero-icon-speaker-outlined"
293
+ themeIntent="text"
294
+ themeSize="small"
295
+ />
296
+ </View>
297
+ </View>
298
+ </View>
299
+ </View>
300
+ <View
301
+ onLayout={[Function]}
302
+ style={
303
+ Array [
304
+ Object {
305
+ "flexDirection": "row",
306
+ },
307
+ null,
308
+ ]
309
+ }
310
+ >
311
+ <View
312
+ accessible={true}
313
+ collapsable={false}
314
+ focusable={true}
315
+ isFirstItem={false}
316
+ onClick={[Function]}
317
+ onResponderGrant={[Function]}
318
+ onResponderMove={[Function]}
319
+ onResponderRelease={[Function]}
320
+ onResponderTerminate={[Function]}
321
+ onResponderTerminationRequest={[Function]}
322
+ onStartShouldSetResponder={[Function]}
323
+ style={
324
+ Object {
325
+ "marginLeft": 12,
326
+ "paddingVertical": 8,
327
+ }
328
+ }
329
+ >
330
+ <View
331
+ style={
332
+ Array [
333
+ Object {
334
+ "bottom": 0,
335
+ "left": 0,
336
+ "paddingVertical": 8,
337
+ "position": "absolute",
338
+ "right": 0,
339
+ "top": 0,
340
+ },
341
+ undefined,
342
+ ]
343
+ }
344
+ >
345
+ <View
346
+ collapsable={false}
347
+ style={
348
+ Object {
349
+ "backgroundColor": undefined,
350
+ "borderRadius": 8,
351
+ "flex": 1,
352
+ "transform": Array [
353
+ Object {
354
+ "scaleX": 0,
355
+ },
356
+ ],
357
+ }
358
+ }
359
+ themeActive={false}
360
+ />
361
+ </View>
362
+ <View
363
+ style={
364
+ Array [
365
+ Object {
366
+ "paddingHorizontal": 8,
367
+ "paddingVertical": 4,
368
+ },
369
+ undefined,
370
+ ]
371
+ }
372
+ >
373
+ <View
374
+ style={
375
+ Object {
376
+ "paddingHorizontal": 4,
377
+ }
378
+ }
379
+ >
380
+ <HeroIcon
381
+ name="home-outlined"
382
+ style={
383
+ Array [
384
+ Object {
385
+ "color": "#001f23",
386
+ "fontSize": 20,
387
+ },
388
+ Object {
389
+ "color": "#001f23",
390
+ },
391
+ ]
392
+ }
393
+ testID="hero-icon-home-outlined"
394
+ themeIntent="text"
395
+ themeSize="small"
396
+ />
397
+ <View
398
+ collapsable={false}
399
+ style={
400
+ Object {
401
+ "backgroundColor": "#de350b",
402
+ "borderRadius": 999,
403
+ "height": 8,
404
+ "opacity": 1,
405
+ "position": "absolute",
406
+ "right": -2,
407
+ "top": -2,
408
+ "transform": Array [
409
+ Object {
410
+ "scale": 1,
411
+ },
412
+ ],
413
+ "width": 8,
414
+ }
415
+ }
416
+ themeIntent="danger"
417
+ />
418
+ </View>
419
+ </View>
420
+ </View>
421
+ </View>
422
+ <View
423
+ onLayout={[Function]}
424
+ style={
425
+ Array [
426
+ Object {
427
+ "flexDirection": "row",
428
+ },
429
+ null,
430
+ ]
431
+ }
432
+ >
433
+ <View
434
+ accessible={true}
435
+ collapsable={false}
436
+ focusable={true}
437
+ isFirstItem={false}
438
+ onClick={[Function]}
439
+ onResponderGrant={[Function]}
440
+ onResponderMove={[Function]}
441
+ onResponderRelease={[Function]}
442
+ onResponderTerminate={[Function]}
443
+ onResponderTerminationRequest={[Function]}
444
+ onStartShouldSetResponder={[Function]}
445
+ style={
446
+ Object {
447
+ "marginLeft": 12,
448
+ "paddingVertical": 8,
449
+ }
450
+ }
451
+ >
452
+ <View
453
+ style={
454
+ Array [
455
+ Object {
456
+ "bottom": 0,
457
+ "left": 0,
458
+ "paddingVertical": 8,
459
+ "position": "absolute",
460
+ "right": 0,
461
+ "top": 0,
462
+ },
463
+ undefined,
464
+ ]
465
+ }
466
+ >
467
+ <View
468
+ collapsable={false}
469
+ style={
470
+ Object {
471
+ "backgroundColor": undefined,
472
+ "borderRadius": 8,
473
+ "flex": 1,
474
+ "transform": Array [
475
+ Object {
476
+ "scaleX": 0,
477
+ },
478
+ ],
479
+ }
480
+ }
481
+ themeActive={false}
482
+ />
483
+ </View>
484
+ <View
485
+ style={
486
+ Array [
487
+ Object {
488
+ "paddingHorizontal": 8,
489
+ "paddingVertical": 4,
490
+ },
491
+ undefined,
492
+ ]
493
+ }
494
+ >
495
+ <View
496
+ style={
497
+ Array [
498
+ Object {
499
+ "alignItems": "center",
500
+ "flexDirection": "row",
501
+ },
502
+ undefined,
503
+ ]
504
+ }
505
+ >
506
+ <HeroIcon
507
+ name="calendar-dates-outlined"
508
+ style={
509
+ Array [
510
+ Object {
511
+ "color": "#001f23",
512
+ "fontSize": 20,
513
+ },
514
+ Object {
515
+ "color": "#001f23",
516
+ },
517
+ ]
518
+ }
519
+ testID="hero-icon-calendar-dates-outlined"
520
+ themeIntent="text"
521
+ themeSize="small"
522
+ />
523
+ <View
524
+ collapsable={false}
525
+ style={
526
+ Object {
527
+ "alignItems": "center",
528
+ "backgroundColor": "#4568fb",
529
+ "borderRadius": 999,
530
+ "height": 20,
531
+ "justifyContent": "center",
532
+ "marginLeft": 4,
533
+ "minWidth": 20,
534
+ "opacity": 1,
535
+ "paddingHorizontal": 8,
536
+ "transform": Array [
537
+ Object {
538
+ "scale": 1,
539
+ },
540
+ ],
541
+ }
542
+ }
543
+ themeIntent="info"
544
+ themePadding="wideContent"
545
+ >
546
+ <Text
547
+ allowFontScaling={false}
548
+ style={
549
+ Array [
550
+ Object {
551
+ "color": "#001f23",
552
+ "fontFamily": "BeVietnamPro-Regular",
553
+ "fontSize": 14,
554
+ "letterSpacing": 0.42,
555
+ "lineHeight": 22,
556
+ },
557
+ Array [
558
+ Object {
559
+ "color": "#ffffff",
560
+ "fontFamily": "BeVietnamPro-SemiBold",
561
+ "fontSize": 12,
562
+ "includeFontPadding": false,
563
+ "lineHeight": 20,
564
+ "textAlign": "center",
565
+ "textAlignVertical": "center",
566
+ },
567
+ undefined,
568
+ ],
569
+ ]
570
+ }
571
+ themeFontSize="medium"
572
+ themeFontWeight="regular"
573
+ themeIntent="body"
574
+ themeTypeface="neutral"
575
+ >
576
+ 50
577
+ </Text>
578
+ </View>
579
+ </View>
580
+ </View>
581
+ </View>
582
+ </View>
583
+ </View>
584
+ </RCTScrollView>
585
+ </View>
586
+ </RNCSafeAreaProvider>
587
+ `;
@@ -10,6 +10,7 @@ import { IconName } from '../Icon';
10
10
  import Typography from '../Typography';
11
11
  import ActiveTabIndicator from './ActiveTabIndicator';
12
12
  import ScrollableTabs from './ScrollableTabs';
13
+ import ScrollableTabsV2 from './ScrollableTabsV2';
13
14
  import {
14
15
  ContentWrapper,
15
16
  HeaderTab,
@@ -237,4 +238,5 @@ const Tabs = ({
237
238
 
238
239
  export default Object.assign(Tabs, {
239
240
  Scroll: ScrollableTabs,
241
+ ScrollV2: ScrollableTabsV2,
240
242
  });
@@ -14,7 +14,7 @@ type ThemeIntent =
14
14
  type ThemeVariant = 'filled' | 'outlined';
15
15
 
16
16
  const getFilledStyles = (themeIntent: ThemeIntent, theme: Theme) => ({
17
- textColor: theme.__hd__.tag.colors.text,
17
+ textColor: theme.__hd__.tag.colors[themeIntent],
18
18
  borderColor: theme.__hd__.tag.colors[`${themeIntent}Background`],
19
19
  backgroundColor: theme.__hd__.tag.colors[`${themeIntent}Background`],
20
20
  });