@hero-design/rn 8.44.0-alpha.0 → 8.44.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 (275) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +30 -0
  3. package/assets/fonts/hero-icons-mobile.ttf +0 -0
  4. package/es/index.js +2773 -2662
  5. package/jest-setup.ts +2 -0
  6. package/lib/assets/fonts/hero-icons-mobile.ttf +0 -0
  7. package/lib/index.js +2776 -2666
  8. package/package.json +23 -24
  9. package/rollup.config.js +0 -1
  10. package/src/components/Accordion/__tests__/__snapshots__/AccordionItem.spec.tsx.snap +564 -384
  11. package/src/components/Accordion/__tests__/__snapshots__/StyledAccordion.spec.tsx.snap +76 -20
  12. package/src/components/Accordion/__tests__/__snapshots__/index.spec.tsx.snap +791 -605
  13. package/src/components/Alert/__tests__/__snapshots__/index.spec.tsx.snap +848 -567
  14. package/src/components/Attachment/__tests__/__snapshots__/index.spec.tsx.snap +172 -110
  15. package/src/components/Avatar/AvatarStack/__tests__/__snapshots__/StyledAvatarStack.spec.tsx.snap +138 -70
  16. package/src/components/Avatar/AvatarStack/__tests__/__snapshots__/index.spec.tsx.snap +745 -581
  17. package/src/components/Avatar/__tests__/__snapshots__/StyledAvatar.spec.tsx.snap +158 -57
  18. package/src/components/Avatar/__tests__/__snapshots__/index.spec.tsx.snap +273 -153
  19. package/src/components/Badge/__tests__/__snapshots__/Badge.spec.tsx.snap +391 -223
  20. package/src/components/Badge/__tests__/__snapshots__/Status.spec.tsx.snap +119 -63
  21. package/src/components/BottomNavigation/__tests__/__snapshots__/index.spec.tsx.snap +306 -242
  22. package/src/components/BottomSheet/__tests__/__snapshots__/index.spec.tsx.snap +317 -183
  23. package/src/components/Box/__tests__/__snapshots__/index.spec.tsx.snap +1042 -454
  24. package/src/components/Button/LoadingIndicator/StyledLoadingIndicator.tsx +6 -10
  25. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/StyledLoadingIndicator.spec.tsx.snap +400 -140
  26. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/index.spec.tsx.snap +1090 -880
  27. package/src/components/Button/StyledButton.tsx +4 -0
  28. package/src/components/Button/UtilityButton/__tests__/__snapshots__/index.spec.tsx.snap +196 -106
  29. package/src/components/Button/__tests__/__snapshots__/Button.spec.tsx.snap +1675 -1125
  30. package/src/components/Button/__tests__/__snapshots__/IconButton.spec.tsx.snap +71 -26
  31. package/src/components/Button/__tests__/__snapshots__/StyledButton.spec.tsx.snap +1651 -665
  32. package/src/components/Calendar/__tests__/__snapshots__/CalendarRowItem.spec.tsx.snap +555 -330
  33. package/src/components/Card/DataCard/__tests__/__snapshots__/StyledDataCard.spec.tsx.snap +265 -69
  34. package/src/components/Card/DataCard/__tests__/__snapshots__/index.spec.tsx.snap +205 -65
  35. package/src/components/Card/__tests__/__snapshots__/StyledCard.spec.tsx.snap +36 -8
  36. package/src/components/Card/__tests__/__snapshots__/index.spec.tsx.snap +292 -124
  37. package/src/components/Carousel/CardCarousel.tsx +10 -7
  38. package/src/components/Carousel/__tests__/__snapshots__/CardCarousel.spec.tsx.snap +486 -406
  39. package/src/components/Carousel/__tests__/__snapshots__/StyledCardCarousel.spec.tsx.snap +197 -70
  40. package/src/components/Carousel/__tests__/__snapshots__/StyledCarousel.spec.tsx.snap +41 -13
  41. package/src/components/Carousel/__tests__/__snapshots__/index.spec.tsx.snap +1742 -1526
  42. package/src/components/Carousel/__tests__/index.spec.tsx +50 -3
  43. package/src/components/Carousel/index.tsx +16 -22
  44. package/src/components/Checkbox/__tests__/__snapshots__/StyledCheckbox.spec.tsx.snap +404 -112
  45. package/src/components/Checkbox/__tests__/__snapshots__/index.spec.tsx.snap +574 -334
  46. package/src/components/Chip/StyledChip.tsx +121 -0
  47. package/src/components/Chip/__tests__/__snapshots__/index.spec.tsx.snap +1483 -0
  48. package/src/components/Chip/__tests__/index.spec.tsx +136 -0
  49. package/src/components/Chip/index.tsx +82 -0
  50. package/src/components/Collapse/__tests__/__snapshots__/StyledCollapse.spec.tsx.snap +73 -17
  51. package/src/components/Collapse/__tests__/__snapshots__/index.spec.tsx.snap +94 -38
  52. package/src/components/Collapse/index.tsx +1 -1
  53. package/src/components/ContentNavigator/__tests__/__snapshots__/StyledContentNavigator.spec.tsx.snap +37 -9
  54. package/src/components/ContentNavigator/__tests__/__snapshots__/index.spec.tsx.snap +424 -268
  55. package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.spec.tsx.snap +586 -466
  56. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerAndroid.spec.tsx.snap +200 -160
  57. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerCalendar.spec.tsx.snap +192 -152
  58. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerIOS.spec.tsx.snap +471 -389
  59. package/src/components/Divider/__tests__/__snapshots__/StyledDivider.spec.tsx.snap +464 -128
  60. package/src/components/Drawer/DragableDrawer/__tests__/__snapshots__/index.spec.tsx.snap +97 -69
  61. package/src/components/Drawer/__tests__/__snapshots__/index.spec.tsx.snap +327 -192
  62. package/src/components/Empty/__tests__/__snapshots__/index.spec.tsx.snap +169 -113
  63. package/src/components/Error/StyledError.tsx +2 -1
  64. package/src/components/Error/__tests__/__snapshots__/index.spec.tsx.snap +390 -262
  65. package/src/components/Error/__tests__/index.spec.tsx +9 -6
  66. package/src/components/FAB/ActionGroup/__tests__/__snapshots__/index.spec.tsx.snap +860 -723
  67. package/src/components/FAB/__tests__/__snapshots__/AnimatedFABIcon.spec.tsx.snap +98 -42
  68. package/src/components/FAB/__tests__/__snapshots__/StyledFAB.spec.tsx.snap +199 -99
  69. package/src/components/FAB/__tests__/__snapshots__/index.spec.tsx.snap +293 -185
  70. package/src/components/HeroDesignProvider/__tests__/__snapshots__/index.spec.tsx.snap +45 -17
  71. package/src/components/Icon/HeroIcon/glyphMap.json +1 -1
  72. package/src/components/Icon/IconList.ts +3 -0
  73. package/src/components/Icon/__tests__/__snapshots__/index.spec.tsx.snap +158 -46
  74. package/src/components/Image/__tests__/__snapshots__/index.spec.tsx.snap +164 -52
  75. package/src/components/List/__tests__/__snapshots__/BasicListItem.spec.tsx.snap +242 -170
  76. package/src/components/List/__tests__/__snapshots__/ListItem.spec.tsx.snap +760 -588
  77. package/src/components/List/__tests__/__snapshots__/StyledBasicListItem.spec.tsx.snap +272 -128
  78. package/src/components/List/__tests__/__snapshots__/StyledListItem.spec.tsx.snap +477 -193
  79. package/src/components/Modal/__tests__/__snapshots__/index.spec.tsx.snap +169 -0
  80. package/src/components/Modal/__tests__/index.spec.tsx +99 -0
  81. package/src/components/Modal/index.tsx +178 -82
  82. package/src/components/PageControl/__tests__/__snapshots__/index.spec.tsx.snap +84 -41
  83. package/src/components/PageControl/index.tsx +1 -0
  84. package/src/components/PinInput/__tests__/StyledPinInput.spec.tsx +9 -4
  85. package/src/components/PinInput/__tests__/__snapshots__/PinCell.spec.tsx.snap +293 -153
  86. package/src/components/PinInput/__tests__/__snapshots__/StyledPinInput.spec.tsx.snap +15 -48
  87. package/src/components/PinInput/__tests__/__snapshots__/index.spec.tsx.snap +809 -697
  88. package/src/components/Portal/__tests__/PortalHost.spec.tsx +12 -14
  89. package/src/components/Portal/__tests__/__snapshots__/index.spec.tsx.snap +43 -15
  90. package/src/components/Progress/__tests__/__snapshots__/index.spec.js.snap +743 -603
  91. package/src/components/Radio/__tests__/__snapshots__/Radio.spec.tsx.snap +188 -116
  92. package/src/components/Radio/__tests__/__snapshots__/RadioGroup.spec.tsx.snap +257 -205
  93. package/src/components/Rate/__tests__/__snapshots__/index.spec.tsx.snap +864 -600
  94. package/src/components/RefreshControl/__tests__/__snapshots__/index.spec.tsx.snap +128 -44
  95. package/src/components/RichTextEditor/__tests__/EditorToolbar.spec.tsx +5 -2
  96. package/src/components/RichTextEditor/__tests__/RichTextEditor.spec.tsx +3 -3
  97. package/src/components/RichTextEditor/__tests__/__snapshots__/EditorToolbar.spec.tsx.snap +413 -266
  98. package/src/components/RichTextEditor/__tests__/__snapshots__/MentionList.spec.tsx.snap +64 -35
  99. package/src/components/RichTextEditor/__tests__/__snapshots__/RichTextEditor.spec.tsx.snap +371 -297
  100. package/src/components/SectionHeading/__tests__/__snapshots__/StyledHeading.spec.tsx.snap +158 -46
  101. package/src/components/SectionHeading/__tests__/__snapshots__/index.spec.tsx.snap +394 -226
  102. package/src/components/Select/MultiSelect/__tests__/__snapshots__/Option.spec.tsx.snap +93 -57
  103. package/src/components/Select/MultiSelect/__tests__/__snapshots__/OptionList.spec.tsx.snap +2387 -2151
  104. package/src/components/Select/MultiSelect/__tests__/__snapshots__/index.spec.tsx.snap +621 -28
  105. package/src/components/Select/MultiSelect/__tests__/index.spec.tsx +7 -6
  106. package/src/components/Select/SingleSelect/__tests__/__snapshots__/Option.spec.tsx.snap +73 -37
  107. package/src/components/Select/SingleSelect/__tests__/__snapshots__/OptionList.spec.tsx.snap +2321 -2085
  108. package/src/components/Select/SingleSelect/__tests__/__snapshots__/index.spec.tsx.snap +473 -23
  109. package/src/components/Skeleton/__tests__/__snapshots__/index.spec.tsx.snap +490 -294
  110. package/src/components/Slider/__tests__/__snapshots__/index.spec.tsx.snap +117 -33
  111. package/src/components/Spinner/__tests__/__snapshots__/AnimatedSpinner.spec.tsx.snap +105 -77
  112. package/src/components/Spinner/__tests__/__snapshots__/StyledSpinner.spec.tsx.snap +1308 -636
  113. package/src/components/Spinner/__tests__/__snapshots__/index.spec.tsx.snap +121 -93
  114. package/src/components/Success/StyledSuccess.tsx +2 -1
  115. package/src/components/Success/__tests__/__snapshots__/index.spec.tsx.snap +388 -258
  116. package/src/components/Success/__tests__/index.spec.tsx +9 -6
  117. package/src/components/Swipeable/__tests__/__snapshots__/SwipeableAction.spec.tsx.snap +210 -75
  118. package/src/components/Swipeable/__tests__/__snapshots__/index.spec.tsx.snap +58 -30
  119. package/src/components/Swipeable/index.tsx +3 -3
  120. package/src/components/Switch/SelectorSwitch/__tests__/__snapshots__/Option.spec.tsx.snap +226 -114
  121. package/src/components/Switch/SelectorSwitch/__tests__/__snapshots__/index.spec.tsx.snap +146 -109
  122. package/src/components/Switch/__tests__/__snapshots__/StyledSwitch.spec.tsx.snap +202 -62
  123. package/src/components/Switch/__tests__/__snapshots__/index.spec.tsx.snap +132 -68
  124. package/src/components/Tabs/__tests__/SceneView.spec.tsx +7 -7
  125. package/src/components/Tabs/__tests__/__snapshots__/SceneView.spec.tsx.snap +206 -94
  126. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabs.spec.tsx.snap +2217 -1962
  127. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabsHeader.spec.tsx.snap +523 -455
  128. package/src/components/Tabs/__tests__/__snapshots__/TabWithBadge.spec.tsx.snap +121 -65
  129. package/src/components/Tabs/__tests__/__snapshots__/index.spec.tsx.snap +1641 -1398
  130. package/src/components/Tag/__tests__/__snapshots__/Tag.spec.tsx.snap +554 -274
  131. package/src/components/TextInput/__tests__/__snapshots__/StyledTextInput.spec.tsx.snap +1542 -646
  132. package/src/components/TextInput/__tests__/__snapshots__/index.spec.tsx.snap +3177 -2701
  133. package/src/components/TimePicker/__tests__/__snapshots__/TimePickerAndroid.spec.tsx.snap +390 -310
  134. package/src/components/TimePicker/__tests__/__snapshots__/TimePickerIOS.spec.tsx.snap +662 -540
  135. package/src/components/Toast/__tests__/__snapshots__/Toast.spec.tsx.snap +871 -573
  136. package/src/components/Toast/__tests__/__snapshots__/ToastContainer.spec.tsx.snap +180 -68
  137. package/src/components/Toolbar/__tests__/__snapshots__/ToolbarGroup.spec.tsx.snap +582 -426
  138. package/src/components/Toolbar/__tests__/__snapshots__/ToolbarItem.spec.tsx.snap +683 -363
  139. package/src/components/Typography/Body/__tests__/__snapshots__/StyledBody.tsx.snap +704 -256
  140. package/src/components/Typography/Body/__tests__/__snapshots__/index.spec.tsx.snap +855 -323
  141. package/src/components/Typography/Caption/__tests__/__snapshots__/StyledCaption.spec.tsx.snap +430 -150
  142. package/src/components/Typography/Caption/__tests__/__snapshots__/index.spec.tsx.snap +572 -208
  143. package/src/components/Typography/Label/__tests__/__snapshots__/StyledLabel.tsx.snap +328 -104
  144. package/src/components/Typography/Label/__tests__/__snapshots__/index.spec.tsx.snap +462 -154
  145. package/src/components/Typography/Text/__tests__/__snapshots__/StyledText.spec.tsx.snap +900 -340
  146. package/src/components/Typography/Title/__tests__/__snapshots__/StyledTitle.tsx.snap +880 -320
  147. package/src/components/Typography/Title/__tests__/__snapshots__/index.spec.tsx.snap +1035 -391
  148. package/src/index.ts +2 -2
  149. package/src/testHelpers/renderWithTheme.tsx +2 -2
  150. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +38 -1
  151. package/src/theme/components/button.ts +0 -1
  152. package/src/theme/components/chip.ts +47 -0
  153. package/src/theme/getTheme.ts +3 -0
  154. package/testUtils/setup.tsx +0 -18
  155. package/tsconfig.json +4 -1
  156. package/types/components/Accordion/AccordionItem.d.ts +2 -1
  157. package/types/components/Accordion/index.d.ts +1 -1
  158. package/types/components/Attachment/index.d.ts +2 -1
  159. package/types/components/Avatar/Avatar.d.ts +2 -1
  160. package/types/components/Avatar/AvatarStack/index.d.ts +2 -2
  161. package/types/components/Avatar/index.d.ts +3 -2
  162. package/types/components/Badge/StyledBadge.d.ts +0 -4
  163. package/types/components/BottomSheet/Footer.d.ts +2 -1
  164. package/types/components/BottomSheet/Header.d.ts +2 -1
  165. package/types/components/BottomSheet/ScrollView.d.ts +1 -0
  166. package/types/components/BottomSheet/StyledBottomSheet.d.ts +0 -4
  167. package/types/components/Box/index.d.ts +2 -1
  168. package/types/components/Button/IconButton.d.ts +2 -1
  169. package/types/components/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +3 -3
  170. package/types/components/Button/LoadingIndicator/index.d.ts +2 -1
  171. package/types/components/Button/UtilityButton/index.d.ts +2 -1
  172. package/types/components/Calendar/CalendarRowItem.d.ts +2 -1
  173. package/types/components/Calendar/StyledCalendar.d.ts +1 -1
  174. package/types/components/Calendar/index.d.ts +2 -1
  175. package/types/components/Carousel/CardCarousel.d.ts +1 -1
  176. package/types/components/Carousel/CarouselItem.d.ts +2 -1
  177. package/types/components/Carousel/index.d.ts +2 -2
  178. package/types/components/Checkbox/index.d.ts +2 -1
  179. package/types/components/Chip/StyledChip.d.ts +31 -0
  180. package/types/components/Chip/index.d.ts +27 -0
  181. package/types/components/Collapse/StyledCollapse.d.ts +0 -2
  182. package/types/components/Collapse/index.d.ts +2 -1
  183. package/types/components/ContentNavigator/index.d.ts +2 -1
  184. package/types/components/DatePicker/DatePickerAndroid.d.ts +2 -1
  185. package/types/components/DatePicker/DatePickerCalendar.d.ts +2 -1
  186. package/types/components/DatePicker/DatePickerIOS.d.ts +2 -1
  187. package/types/components/DatePicker/index.d.ts +2 -1
  188. package/types/components/Divider/index.d.ts +2 -1
  189. package/types/components/Drawer/StyledDrawer.d.ts +0 -6
  190. package/types/components/Error/StyledError.d.ts +3 -9
  191. package/types/components/FAB/ActionGroup/ActionItem.d.ts +2 -1
  192. package/types/components/FAB/ActionGroup/StyledActionGroup.d.ts +0 -4
  193. package/types/components/FAB/AnimatedFABIcon.d.ts +2 -1
  194. package/types/components/HeroDesignProvider/index.d.ts +2 -1
  195. package/types/components/Icon/AnimatedIcon.d.ts +2 -1
  196. package/types/components/Icon/IconList.d.ts +1 -1
  197. package/types/components/Icon/index.d.ts +3 -2
  198. package/types/components/Icon/utils.d.ts +1 -1
  199. package/types/components/Image/index.d.ts +1 -0
  200. package/types/components/Modal/index.d.ts +12 -8
  201. package/types/components/PageControl/StyledPageControl.d.ts +0 -2
  202. package/types/components/PageControl/index.d.ts +2 -1
  203. package/types/components/PinInput/PinCell.d.ts +2 -1
  204. package/types/components/Portal/PortalHost.d.ts +1 -1
  205. package/types/components/Portal/PortalProvider.d.ts +1 -1
  206. package/types/components/Portal/index.d.ts +2 -2
  207. package/types/components/Progress/ProgressBar.d.ts +1 -0
  208. package/types/components/Progress/StyledProgressBar.d.ts +0 -2
  209. package/types/components/Progress/index.d.ts +1 -0
  210. package/types/components/Rate/StyledRate.d.ts +0 -2
  211. package/types/components/Rate/index.d.ts +2 -1
  212. package/types/components/RefreshControl/index.d.ts +2 -1
  213. package/types/components/RichTextEditor/EditorToolbar.d.ts +2 -1
  214. package/types/components/RichTextEditor/MentionList.d.ts +2 -1
  215. package/types/components/RichTextEditor/index.d.ts +2 -2
  216. package/types/components/Select/BaseOptionList.d.ts +1 -1
  217. package/types/components/Select/Footer.d.ts +2 -1
  218. package/types/components/Select/MultiSelect/Option.d.ts +2 -1
  219. package/types/components/Select/MultiSelect/OptionList.d.ts +2 -1
  220. package/types/components/Select/MultiSelect/index.d.ts +1 -1
  221. package/types/components/Select/SingleSelect/Option.d.ts +2 -1
  222. package/types/components/Select/SingleSelect/OptionList.d.ts +1 -1
  223. package/types/components/Select/SingleSelect/StyledSingleSelect.d.ts +2 -1
  224. package/types/components/Select/SingleSelect/index.d.ts +1 -1
  225. package/types/components/Select/helpers.d.ts +1 -2
  226. package/types/components/Select/index.d.ts +2 -1
  227. package/types/components/Skeleton/index.d.ts +2 -1
  228. package/types/components/Slider/index.d.ts +2 -1
  229. package/types/components/Spinner/AnimatedSpinner.d.ts +2 -1
  230. package/types/components/Success/StyledSuccess.d.ts +3 -7
  231. package/types/components/Swipeable/SwipeableAction.d.ts +2 -2
  232. package/types/components/Swipeable/index.d.ts +3 -3
  233. package/types/components/Switch/SelectorSwitch/Option.d.ts +2 -1
  234. package/types/components/Switch/SelectorSwitch/StyledSelectorSwitch.d.ts +0 -6
  235. package/types/components/Switch/StyledSwitch.d.ts +0 -2
  236. package/types/components/Tabs/ActiveTabIndicator.d.ts +2 -1
  237. package/types/components/Tabs/SceneView.d.ts +1 -1
  238. package/types/components/Tabs/ScrollableTabs.d.ts +2 -1
  239. package/types/components/Tabs/ScrollableTabsHeader.d.ts +2 -1
  240. package/types/components/Tabs/StyledScrollableTabs.d.ts +0 -4
  241. package/types/components/Tabs/StyledTabs.d.ts +0 -4
  242. package/types/components/Tabs/TabWithBadge.d.ts +2 -2
  243. package/types/components/Tabs/index.d.ts +2 -1
  244. package/types/components/TextInput/StyledTextInput.d.ts +1 -1
  245. package/types/components/TextInput/index.d.ts +1 -1
  246. package/types/components/TimePicker/TimePickerAndroid.d.ts +2 -1
  247. package/types/components/TimePicker/TimePickerIOS.d.ts +2 -1
  248. package/types/components/TimePicker/index.d.ts +2 -1
  249. package/types/components/Toast/StyledToast.d.ts +0 -2
  250. package/types/components/Toast/Toast.d.ts +1 -0
  251. package/types/components/Toast/ToastProvider.d.ts +2 -1
  252. package/types/components/Toast/index.d.ts +1 -1
  253. package/types/components/Toolbar/ToolbarGroup.d.ts +2 -1
  254. package/types/components/Toolbar/ToolbarItem.d.ts +2 -1
  255. package/types/components/Toolbar/index.d.ts +3 -2
  256. package/types/components/Typography/Body/index.d.ts +2 -1
  257. package/types/components/Typography/Caption/index.d.ts +2 -1
  258. package/types/components/Typography/Label/index.d.ts +2 -1
  259. package/types/components/Typography/Text/index.d.ts +2 -1
  260. package/types/components/Typography/Title/index.d.ts +2 -1
  261. package/types/index.d.ts +2 -2
  262. package/types/testHelpers/renderWithTheme.d.ts +1 -0
  263. package/types/theme/ThemeSwitcher.d.ts +2 -2
  264. package/types/theme/components/button.d.ts +0 -1
  265. package/types/theme/components/chip.d.ts +40 -0
  266. package/types/theme/getTheme.d.ts +2 -0
  267. package/.turbo/turbo-publish:npm.log +0 -0
  268. package/src/components/Modal/ModalContentWrapper.tsx +0 -112
  269. package/src/components/Modal/ModalPresenter/ModalPresenter.tsx +0 -135
  270. package/src/components/Modal/ModalPresenter/index.tsx +0 -9
  271. package/src/components/Modal/ModalProvider.tsx +0 -8
  272. package/types/components/Modal/ModalContentWrapper.d.ts +0 -16
  273. package/types/components/Modal/ModalPresenter/ModalPresenter.d.ts +0 -34
  274. package/types/components/Modal/ModalPresenter/index.d.ts +0 -3
  275. package/types/components/Modal/ModalProvider.d.ts +0 -5
@@ -1,11 +1,12 @@
1
- import React from 'react';
2
1
  import { fireEvent } from '@testing-library/react-native';
2
+ import React from 'react';
3
3
  import { ImageResizeMode } from 'react-native';
4
- import renderWithTheme from '../../../testHelpers/renderWithTheme';
5
4
  import Carousel from '..';
6
- import Image from '../../Image';
7
5
  import { theme } from '../../..';
6
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
8
7
  import Button from '../../Button/Button';
8
+ import HeroDesignProvider from '../../HeroDesignProvider';
9
+ import Image from '../../Image';
9
10
 
10
11
  const carouselData = [
11
12
  {
@@ -112,4 +113,50 @@ describe('Carousel', () => {
112
113
  fireEvent.press(queryByText('Skip'));
113
114
  expect(onSkip).toBeCalled();
114
115
  });
116
+
117
+ it("pageControl' current index should change to 1 when scroll", async () => {
118
+ const onSkip = jest.fn();
119
+
120
+ const { rerender, getByTestId } = renderWithTheme(
121
+ <Carousel
122
+ testID="carousel"
123
+ items={carouselData}
124
+ renderActions={(_) => {
125
+ return <Button text="Skip" onPress={onSkip} />;
126
+ }}
127
+ />
128
+ );
129
+ const eventData = {
130
+ viewableItems: [
131
+ {
132
+ index: 0,
133
+ isViewable: false,
134
+ },
135
+ {
136
+ index: 1,
137
+ isViewable: true,
138
+ },
139
+ ],
140
+ };
141
+ fireEvent(
142
+ getByTestId('carousel_flatlist'),
143
+ 'onViewableItemsChanged',
144
+ eventData
145
+ );
146
+ rerender(
147
+ <HeroDesignProvider theme={theme}>
148
+ <Carousel
149
+ testID="carousel"
150
+ items={carouselData}
151
+ renderActions={(_) => {
152
+ return <Button text="Skip" onPress={onSkip} />;
153
+ }}
154
+ />
155
+ </HeroDesignProvider>
156
+ );
157
+
158
+ expect(getByTestId('page-control-indicator1')).toHaveAccessibilityState({
159
+ selected: true,
160
+ });
161
+ });
115
162
  });
@@ -9,13 +9,12 @@ import React, {
9
9
  import {
10
10
  Animated,
11
11
  FlatList,
12
- NativeScrollEvent,
13
- NativeSyntheticEvent,
14
12
  StyleProp,
15
13
  useWindowDimensions,
16
14
  View,
17
15
  ViewProps,
18
16
  ViewStyle,
17
+ ViewToken,
19
18
  } from 'react-native';
20
19
 
21
20
  import { CarouselData } from './types';
@@ -87,6 +86,7 @@ const Carousel = ({
87
86
  selectedItemIndex = 0,
88
87
  style,
89
88
  shouldShowPagination = noop,
89
+ testID,
90
90
  pageControlPosition = 'top',
91
91
  ...nativeProps
92
92
  }: CarouselProps) => {
@@ -129,27 +129,20 @@ const Carousel = ({
129
129
  };
130
130
  }, [currentSlideIndex, carouselRef]);
131
131
 
132
- const handleMomentumScrollEnd = (
133
- event: NativeSyntheticEvent<NativeScrollEvent>
134
- ) => {
135
- // Calculate the current index based on the scroll position and container width
136
- const containerWidth = event.nativeEvent.layoutMeasurement.width;
137
- const scrollPosition = event.nativeEvent.contentOffset.x;
138
-
139
- /**
140
- * By rounding down, we ensure that any partial visibility of the next item does not affect the index value
141
- * This helps maintain consistent behavior and aligns with the desired functionality of considering the left-most visible item as the current item.
142
- */
143
- const index = Math.floor(scrollPosition / containerWidth);
144
-
145
- // Call the callback function with the current index
146
- internalOnItemIndexChange(index);
147
- };
148
-
149
132
  const viewConfig = useRef({ viewAreaCoveragePercentThreshold: 50 }).current;
150
-
133
+ const onViewCallBack = React.useCallback(
134
+ (info: { viewableItems: Array<ViewToken>; changed: Array<ViewToken> }) => {
135
+ const firstVisibleItem = info.viewableItems.find(
136
+ (view) => view.index != null && view.isViewable
137
+ );
138
+ if (firstVisibleItem) {
139
+ internalOnItemIndexChange(firstVisibleItem.index || 0);
140
+ }
141
+ },
142
+ [internalOnItemIndexChange]
143
+ );
151
144
  return (
152
- <View style={style} {...nativeProps}>
145
+ <View style={style} testID={testID} {...nativeProps}>
153
146
  <StyledBackDrop
154
147
  themeSlideBackground={items[currentSlideIndex].background}
155
148
  />
@@ -166,12 +159,13 @@ const Carousel = ({
166
159
 
167
160
  <StyledCarouselView>
168
161
  <FlatList
162
+ testID={testID ? `${testID}_flatlist` : undefined}
169
163
  horizontal
170
164
  showsHorizontalScrollIndicator={false}
171
165
  pagingEnabled
172
166
  bounces={false}
173
167
  data={items}
174
- onMomentumScrollEnd={handleMomentumScrollEnd}
168
+ onViewableItemsChanged={onViewCallBack}
175
169
  viewabilityConfig={viewConfig}
176
170
  scrollEventThrottle={32}
177
171
  ref={carouselRef}
@@ -3,167 +3,459 @@
3
3
  exports[`StyledCheckbox renders correctly when disabled is false and readonly is false 1`] = `
4
4
  <View
5
5
  style={
6
- [
7
- {
8
- "borderColor": "#001f23",
9
- "borderRadius": 4,
10
- "borderWidth": 2,
11
- "flex": 1,
12
- },
13
- undefined,
14
- ]
6
+ {
7
+ "flex": 1,
8
+ }
15
9
  }
16
- themeState="default"
17
- />
10
+ >
11
+ <View
12
+ style={
13
+ [
14
+ {
15
+ "borderColor": "#001f23",
16
+ "borderRadius": 4,
17
+ "borderWidth": 2,
18
+ "flex": 1,
19
+ },
20
+ undefined,
21
+ ]
22
+ }
23
+ themeState="default"
24
+ />
25
+ <View
26
+ pointerEvents="box-none"
27
+ position="bottom"
28
+ style={
29
+ [
30
+ {
31
+ "bottom": 0,
32
+ "elevation": 9999,
33
+ "flexDirection": "column-reverse",
34
+ "left": 0,
35
+ "paddingHorizontal": 24,
36
+ "paddingVertical": 16,
37
+ "position": "absolute",
38
+ "right": 0,
39
+ "top": 0,
40
+ },
41
+ undefined,
42
+ ]
43
+ }
44
+ />
45
+ </View>
18
46
  `;
19
47
 
20
48
  exports[`StyledCheckbox renders correctly when disabled is false and readonly is true 1`] = `
21
49
  <View
22
50
  style={
23
- [
24
- {
25
- "borderColor": "#808f91",
26
- "borderRadius": 4,
27
- "borderWidth": 2,
28
- "flex": 1,
29
- },
30
- undefined,
31
- ]
51
+ {
52
+ "flex": 1,
53
+ }
32
54
  }
33
- themeState="readonly"
34
- />
55
+ >
56
+ <View
57
+ style={
58
+ [
59
+ {
60
+ "borderColor": "#808f91",
61
+ "borderRadius": 4,
62
+ "borderWidth": 2,
63
+ "flex": 1,
64
+ },
65
+ undefined,
66
+ ]
67
+ }
68
+ themeState="readonly"
69
+ />
70
+ <View
71
+ pointerEvents="box-none"
72
+ position="bottom"
73
+ style={
74
+ [
75
+ {
76
+ "bottom": 0,
77
+ "elevation": 9999,
78
+ "flexDirection": "column-reverse",
79
+ "left": 0,
80
+ "paddingHorizontal": 24,
81
+ "paddingVertical": 16,
82
+ "position": "absolute",
83
+ "right": 0,
84
+ "top": 0,
85
+ },
86
+ undefined,
87
+ ]
88
+ }
89
+ />
90
+ </View>
35
91
  `;
36
92
 
37
93
  exports[`StyledCheckbox renders correctly when disabled is true and readonly is false 1`] = `
38
94
  <View
39
95
  style={
40
- [
41
- {
42
- "borderColor": "#bfc1c5",
43
- "borderRadius": 4,
44
- "borderWidth": 2,
45
- "flex": 1,
46
- },
47
- undefined,
48
- ]
96
+ {
97
+ "flex": 1,
98
+ }
49
99
  }
50
- themeState="disabled"
51
- />
100
+ >
101
+ <View
102
+ style={
103
+ [
104
+ {
105
+ "borderColor": "#bfc1c5",
106
+ "borderRadius": 4,
107
+ "borderWidth": 2,
108
+ "flex": 1,
109
+ },
110
+ undefined,
111
+ ]
112
+ }
113
+ themeState="disabled"
114
+ />
115
+ <View
116
+ pointerEvents="box-none"
117
+ position="bottom"
118
+ style={
119
+ [
120
+ {
121
+ "bottom": 0,
122
+ "elevation": 9999,
123
+ "flexDirection": "column-reverse",
124
+ "left": 0,
125
+ "paddingHorizontal": 24,
126
+ "paddingVertical": 16,
127
+ "position": "absolute",
128
+ "right": 0,
129
+ "top": 0,
130
+ },
131
+ undefined,
132
+ ]
133
+ }
134
+ />
135
+ </View>
52
136
  `;
53
137
 
54
138
  exports[`StyledCheckbox renders correctly when disabled is true and readonly is true 1`] = `
55
139
  <View
56
140
  style={
57
- [
58
- {
59
- "borderColor": "#bfc1c5",
60
- "borderRadius": 4,
61
- "borderWidth": 2,
62
- "flex": 1,
63
- },
64
- undefined,
65
- ]
141
+ {
142
+ "flex": 1,
143
+ }
66
144
  }
67
- themeState="disabled"
68
- />
145
+ >
146
+ <View
147
+ style={
148
+ [
149
+ {
150
+ "borderColor": "#bfc1c5",
151
+ "borderRadius": 4,
152
+ "borderWidth": 2,
153
+ "flex": 1,
154
+ },
155
+ undefined,
156
+ ]
157
+ }
158
+ themeState="disabled"
159
+ />
160
+ <View
161
+ pointerEvents="box-none"
162
+ position="bottom"
163
+ style={
164
+ [
165
+ {
166
+ "bottom": 0,
167
+ "elevation": 9999,
168
+ "flexDirection": "column-reverse",
169
+ "left": 0,
170
+ "paddingHorizontal": 24,
171
+ "paddingVertical": 16,
172
+ "position": "absolute",
173
+ "right": 0,
174
+ "top": 0,
175
+ },
176
+ undefined,
177
+ ]
178
+ }
179
+ />
180
+ </View>
69
181
  `;
70
182
 
71
183
  exports[`StyledWrapper renders correctly when disabled is false, readonly is false 1`] = `
72
184
  <View
73
- accessible={true}
74
- collapsable={false}
75
- focusable={false}
76
- onClick={[Function]}
77
- onResponderGrant={[Function]}
78
- onResponderMove={[Function]}
79
- onResponderRelease={[Function]}
80
- onResponderTerminate={[Function]}
81
- onResponderTerminationRequest={[Function]}
82
- onStartShouldSetResponder={[Function]}
83
185
  style={
84
186
  {
85
- "borderColor": "#001f23",
86
- "borderRadius": 8,
87
- "borderWidth": 1,
88
- "flexDirection": "row",
89
- "opacity": 1,
90
- "padding": 16,
187
+ "flex": 1,
91
188
  }
92
189
  }
93
- />
190
+ >
191
+ <View
192
+ accessibilityState={
193
+ {
194
+ "busy": undefined,
195
+ "checked": undefined,
196
+ "disabled": undefined,
197
+ "expanded": undefined,
198
+ "selected": undefined,
199
+ }
200
+ }
201
+ accessibilityValue={
202
+ {
203
+ "max": undefined,
204
+ "min": undefined,
205
+ "now": undefined,
206
+ "text": undefined,
207
+ }
208
+ }
209
+ accessible={true}
210
+ collapsable={false}
211
+ focusable={false}
212
+ onClick={[Function]}
213
+ onResponderGrant={[Function]}
214
+ onResponderMove={[Function]}
215
+ onResponderRelease={[Function]}
216
+ onResponderTerminate={[Function]}
217
+ onResponderTerminationRequest={[Function]}
218
+ onStartShouldSetResponder={[Function]}
219
+ style={
220
+ {
221
+ "borderColor": "#001f23",
222
+ "borderRadius": 8,
223
+ "borderWidth": 1,
224
+ "flexDirection": "row",
225
+ "opacity": 1,
226
+ "padding": 16,
227
+ }
228
+ }
229
+ />
230
+ <View
231
+ pointerEvents="box-none"
232
+ position="bottom"
233
+ style={
234
+ [
235
+ {
236
+ "bottom": 0,
237
+ "elevation": 9999,
238
+ "flexDirection": "column-reverse",
239
+ "left": 0,
240
+ "paddingHorizontal": 24,
241
+ "paddingVertical": 16,
242
+ "position": "absolute",
243
+ "right": 0,
244
+ "top": 0,
245
+ },
246
+ undefined,
247
+ ]
248
+ }
249
+ />
250
+ </View>
94
251
  `;
95
252
 
96
253
  exports[`StyledWrapper renders correctly when disabled is false, readonly is true 1`] = `
97
254
  <View
98
- accessible={true}
99
- collapsable={false}
100
- focusable={false}
101
- onClick={[Function]}
102
- onResponderGrant={[Function]}
103
- onResponderMove={[Function]}
104
- onResponderRelease={[Function]}
105
- onResponderTerminate={[Function]}
106
- onResponderTerminationRequest={[Function]}
107
- onStartShouldSetResponder={[Function]}
108
255
  style={
109
256
  {
110
- "borderColor": "#808f91",
111
- "borderRadius": 8,
112
- "borderWidth": 1,
113
- "flexDirection": "row",
114
- "opacity": 1,
115
- "padding": 16,
257
+ "flex": 1,
116
258
  }
117
259
  }
118
- />
260
+ >
261
+ <View
262
+ accessibilityState={
263
+ {
264
+ "busy": undefined,
265
+ "checked": undefined,
266
+ "disabled": undefined,
267
+ "expanded": undefined,
268
+ "selected": undefined,
269
+ }
270
+ }
271
+ accessibilityValue={
272
+ {
273
+ "max": undefined,
274
+ "min": undefined,
275
+ "now": undefined,
276
+ "text": undefined,
277
+ }
278
+ }
279
+ accessible={true}
280
+ collapsable={false}
281
+ focusable={false}
282
+ onClick={[Function]}
283
+ onResponderGrant={[Function]}
284
+ onResponderMove={[Function]}
285
+ onResponderRelease={[Function]}
286
+ onResponderTerminate={[Function]}
287
+ onResponderTerminationRequest={[Function]}
288
+ onStartShouldSetResponder={[Function]}
289
+ style={
290
+ {
291
+ "borderColor": "#808f91",
292
+ "borderRadius": 8,
293
+ "borderWidth": 1,
294
+ "flexDirection": "row",
295
+ "opacity": 1,
296
+ "padding": 16,
297
+ }
298
+ }
299
+ />
300
+ <View
301
+ pointerEvents="box-none"
302
+ position="bottom"
303
+ style={
304
+ [
305
+ {
306
+ "bottom": 0,
307
+ "elevation": 9999,
308
+ "flexDirection": "column-reverse",
309
+ "left": 0,
310
+ "paddingHorizontal": 24,
311
+ "paddingVertical": 16,
312
+ "position": "absolute",
313
+ "right": 0,
314
+ "top": 0,
315
+ },
316
+ undefined,
317
+ ]
318
+ }
319
+ />
320
+ </View>
119
321
  `;
120
322
 
121
323
  exports[`StyledWrapper renders correctly when disabled is true, readonly is false 1`] = `
122
324
  <View
123
- accessible={true}
124
- collapsable={false}
125
- focusable={false}
126
- onClick={[Function]}
127
- onResponderGrant={[Function]}
128
- onResponderMove={[Function]}
129
- onResponderRelease={[Function]}
130
- onResponderTerminate={[Function]}
131
- onResponderTerminationRequest={[Function]}
132
- onStartShouldSetResponder={[Function]}
133
325
  style={
134
326
  {
135
- "borderColor": "#bfc1c5",
136
- "borderRadius": 8,
137
- "borderWidth": 1,
138
- "flexDirection": "row",
139
- "opacity": 1,
140
- "padding": 16,
327
+ "flex": 1,
141
328
  }
142
329
  }
143
- />
330
+ >
331
+ <View
332
+ accessibilityState={
333
+ {
334
+ "busy": undefined,
335
+ "checked": undefined,
336
+ "disabled": undefined,
337
+ "expanded": undefined,
338
+ "selected": undefined,
339
+ }
340
+ }
341
+ accessibilityValue={
342
+ {
343
+ "max": undefined,
344
+ "min": undefined,
345
+ "now": undefined,
346
+ "text": undefined,
347
+ }
348
+ }
349
+ accessible={true}
350
+ collapsable={false}
351
+ focusable={false}
352
+ onClick={[Function]}
353
+ onResponderGrant={[Function]}
354
+ onResponderMove={[Function]}
355
+ onResponderRelease={[Function]}
356
+ onResponderTerminate={[Function]}
357
+ onResponderTerminationRequest={[Function]}
358
+ onStartShouldSetResponder={[Function]}
359
+ style={
360
+ {
361
+ "borderColor": "#bfc1c5",
362
+ "borderRadius": 8,
363
+ "borderWidth": 1,
364
+ "flexDirection": "row",
365
+ "opacity": 1,
366
+ "padding": 16,
367
+ }
368
+ }
369
+ />
370
+ <View
371
+ pointerEvents="box-none"
372
+ position="bottom"
373
+ style={
374
+ [
375
+ {
376
+ "bottom": 0,
377
+ "elevation": 9999,
378
+ "flexDirection": "column-reverse",
379
+ "left": 0,
380
+ "paddingHorizontal": 24,
381
+ "paddingVertical": 16,
382
+ "position": "absolute",
383
+ "right": 0,
384
+ "top": 0,
385
+ },
386
+ undefined,
387
+ ]
388
+ }
389
+ />
390
+ </View>
144
391
  `;
145
392
 
146
393
  exports[`StyledWrapper renders correctly when disabled is true, readonly is true 1`] = `
147
394
  <View
148
- accessible={true}
149
- collapsable={false}
150
- focusable={false}
151
- onClick={[Function]}
152
- onResponderGrant={[Function]}
153
- onResponderMove={[Function]}
154
- onResponderRelease={[Function]}
155
- onResponderTerminate={[Function]}
156
- onResponderTerminationRequest={[Function]}
157
- onStartShouldSetResponder={[Function]}
158
395
  style={
159
396
  {
160
- "borderColor": "#bfc1c5",
161
- "borderRadius": 8,
162
- "borderWidth": 1,
163
- "flexDirection": "row",
164
- "opacity": 1,
165
- "padding": 16,
397
+ "flex": 1,
166
398
  }
167
399
  }
168
- />
400
+ >
401
+ <View
402
+ accessibilityState={
403
+ {
404
+ "busy": undefined,
405
+ "checked": undefined,
406
+ "disabled": undefined,
407
+ "expanded": undefined,
408
+ "selected": undefined,
409
+ }
410
+ }
411
+ accessibilityValue={
412
+ {
413
+ "max": undefined,
414
+ "min": undefined,
415
+ "now": undefined,
416
+ "text": undefined,
417
+ }
418
+ }
419
+ accessible={true}
420
+ collapsable={false}
421
+ focusable={false}
422
+ onClick={[Function]}
423
+ onResponderGrant={[Function]}
424
+ onResponderMove={[Function]}
425
+ onResponderRelease={[Function]}
426
+ onResponderTerminate={[Function]}
427
+ onResponderTerminationRequest={[Function]}
428
+ onStartShouldSetResponder={[Function]}
429
+ style={
430
+ {
431
+ "borderColor": "#bfc1c5",
432
+ "borderRadius": 8,
433
+ "borderWidth": 1,
434
+ "flexDirection": "row",
435
+ "opacity": 1,
436
+ "padding": 16,
437
+ }
438
+ }
439
+ />
440
+ <View
441
+ pointerEvents="box-none"
442
+ position="bottom"
443
+ style={
444
+ [
445
+ {
446
+ "bottom": 0,
447
+ "elevation": 9999,
448
+ "flexDirection": "column-reverse",
449
+ "left": 0,
450
+ "paddingHorizontal": 24,
451
+ "paddingVertical": 16,
452
+ "position": "absolute",
453
+ "right": 0,
454
+ "top": 0,
455
+ },
456
+ undefined,
457
+ ]
458
+ }
459
+ />
460
+ </View>
169
461
  `;