@hero-design/rn 9.0.0-0 → 9.0.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 (668) hide show
  1. package/CHANGELOG.md +287 -0
  2. package/assets/fonts/hero-icons-mobile.ttf +0 -0
  3. package/es/index.js +17491 -14687
  4. package/jest-ci.config.js +17 -0
  5. package/jest-setup.ts +2 -0
  6. package/jest.config.js +1 -3
  7. package/lib/assets/fonts/hero-icons-mobile.ttf +0 -0
  8. package/lib/index.js +17376 -14565
  9. package/package.json +50 -40
  10. package/rollup.config.js +1 -0
  11. package/sonar-project.properties +11 -0
  12. package/src/components/Accordion/AccordionItem.tsx +1 -3
  13. package/src/components/Accordion/__tests__/AccordionItem.spec.tsx +5 -5
  14. package/src/components/Accordion/__tests__/__snapshots__/AccordionItem.spec.tsx.snap +580 -408
  15. package/src/components/Accordion/__tests__/__snapshots__/StyledAccordion.spec.tsx.snap +76 -20
  16. package/src/components/Accordion/__tests__/__snapshots__/index.spec.tsx.snap +818 -644
  17. package/src/components/Accordion/__tests__/index.spec.tsx +2 -2
  18. package/src/components/Alert/__tests__/__snapshots__/index.spec.tsx.snap +912 -644
  19. package/src/components/Alert/__tests__/index.spec.tsx +44 -2
  20. package/src/components/Alert/index.tsx +30 -4
  21. package/src/components/AnimatedScroller/AnimatedFAB.tsx +155 -0
  22. package/src/components/AnimatedScroller/AnimatedScrollable.tsx +70 -0
  23. package/src/components/AnimatedScroller/FlatListWithFAB.tsx +23 -0
  24. package/src/components/AnimatedScroller/ScrollViewWithFAB.tsx +21 -0
  25. package/src/components/AnimatedScroller/SectionListWithFAB.tsx +26 -0
  26. package/src/components/AnimatedScroller/__tests__/ScrollablesWithFAB.spec.tsx +193 -0
  27. package/src/components/AnimatedScroller/__tests__/__snapshots__/ScrollablesWithFAB.spec.tsx.snap +3462 -0
  28. package/src/components/AnimatedScroller/index.tsx +5 -0
  29. package/src/components/Attachment/__tests__/__snapshots__/index.spec.tsx.snap +178 -117
  30. package/src/components/Attachment/index.tsx +3 -1
  31. package/src/components/Avatar/AvatarStack/StyledAvatarStack.tsx +63 -9
  32. package/src/components/Avatar/AvatarStack/__tests__/StyledAvatarStack.spec.tsx +71 -9
  33. package/src/components/Avatar/AvatarStack/__tests__/__snapshots__/StyledAvatarStack.spec.tsx.snap +410 -73
  34. package/src/components/Avatar/AvatarStack/__tests__/__snapshots__/index.spec.tsx.snap +2904 -591
  35. package/src/components/Avatar/AvatarStack/__tests__/index.spec.tsx +140 -6
  36. package/src/components/Avatar/AvatarStack/index.tsx +94 -9
  37. package/src/components/Avatar/__tests__/__snapshots__/StyledAvatar.spec.tsx.snap +163 -62
  38. package/src/components/Avatar/__tests__/__snapshots__/index.spec.tsx.snap +288 -168
  39. package/src/components/Badge/StyledBadge.tsx +1 -4
  40. package/src/components/Badge/__tests__/Status.spec.tsx +1 -1
  41. package/src/components/Badge/__tests__/__snapshots__/Badge.spec.tsx.snap +397 -259
  42. package/src/components/Badge/__tests__/__snapshots__/Status.spec.tsx.snap +123 -68
  43. package/src/components/BottomNavigation/StyledBottomNavigation.tsx +1 -1
  44. package/src/components/BottomNavigation/__tests__/__snapshots__/index.spec.tsx.snap +332 -276
  45. package/src/components/BottomNavigation/index.tsx +4 -1
  46. package/src/components/BottomSheet/Header.tsx +1 -3
  47. package/src/components/BottomSheet/__tests__/__snapshots__/index.spec.tsx.snap +330 -197
  48. package/src/components/Box/__tests__/__snapshots__/index.spec.tsx.snap +1042 -454
  49. package/src/components/Button/Button.tsx +60 -25
  50. package/src/components/Button/LoadingIndicator/StyledLoadingIndicator.tsx +6 -9
  51. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/StyledLoadingIndicator.spec.tsx.snap +400 -140
  52. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/index.spec.tsx.snap +1090 -880
  53. package/src/components/Button/StyledButton.tsx +56 -59
  54. package/src/components/Button/UtilityButton/StyledUtilityButton.tsx +2 -4
  55. package/src/components/Button/UtilityButton/__tests__/__snapshots__/index.spec.tsx.snap +206 -122
  56. package/src/components/Button/__tests__/Button.spec.tsx +18 -0
  57. package/src/components/Button/__tests__/StyledButton.spec.tsx +12 -6
  58. package/src/components/Button/__tests__/__snapshots__/Button.spec.tsx.snap +1878 -1196
  59. package/src/components/Button/__tests__/__snapshots__/IconButton.spec.tsx.snap +74 -29
  60. package/src/components/Button/__tests__/__snapshots__/StyledButton.spec.tsx.snap +1734 -778
  61. package/src/components/Calendar/CalendarRowItem.tsx +5 -2
  62. package/src/components/Calendar/StyledCalendar.tsx +2 -2
  63. package/src/components/Calendar/__tests__/__snapshots__/CalendarRowItem.spec.tsx.snap +555 -335
  64. package/src/components/Calendar/__tests__/index.spec.tsx +76 -0
  65. package/src/components/Calendar/index.tsx +170 -59
  66. package/src/components/Card/DataCard/__tests__/__snapshots__/StyledDataCard.spec.tsx.snap +265 -69
  67. package/src/components/Card/DataCard/__tests__/__snapshots__/index.spec.tsx.snap +215 -75
  68. package/src/components/Card/__tests__/__snapshots__/StyledCard.spec.tsx.snap +36 -8
  69. package/src/components/Card/__tests__/__snapshots__/index.spec.tsx.snap +304 -142
  70. package/src/components/Card/__tests__/index.spec.tsx +1 -1
  71. package/src/components/Carousel/CardCarousel.tsx +23 -25
  72. package/src/components/Carousel/CarouselItem.tsx +39 -23
  73. package/src/components/Carousel/StyledCardCarousel.tsx +1 -16
  74. package/src/components/Carousel/StyledCarousel.tsx +8 -12
  75. package/src/components/Carousel/__tests__/CardCarousel.spec.tsx +18 -18
  76. package/src/components/Carousel/__tests__/__snapshots__/CardCarousel.spec.tsx.snap +370 -366
  77. package/src/components/Carousel/__tests__/__snapshots__/StyledCardCarousel.spec.tsx.snap +199 -72
  78. package/src/components/Carousel/__tests__/__snapshots__/StyledCarousel.spec.tsx.snap +41 -13
  79. package/src/components/Carousel/__tests__/__snapshots__/index.spec.tsx.snap +1621 -1861
  80. package/src/components/Carousel/__tests__/index.spec.tsx +107 -7
  81. package/src/components/Carousel/index.tsx +63 -35
  82. package/src/components/Carousel/types.ts +4 -4
  83. package/src/components/Checkbox/StyledCheckbox.tsx +24 -30
  84. package/src/components/Checkbox/__tests__/StyledCheckbox.spec.tsx +25 -16
  85. package/src/components/Checkbox/__tests__/__snapshots__/StyledCheckbox.spec.tsx.snap +432 -77
  86. package/src/components/Checkbox/__tests__/__snapshots__/index.spec.tsx.snap +598 -345
  87. package/src/components/Checkbox/__tests__/index.spec.tsx +24 -9
  88. package/src/components/Checkbox/index.tsx +60 -25
  89. package/src/components/Chip/StyledChip.tsx +121 -0
  90. package/src/components/Chip/__tests__/__snapshots__/index.spec.tsx.snap +1483 -0
  91. package/src/components/Chip/__tests__/index.spec.tsx +136 -0
  92. package/src/components/Chip/index.tsx +82 -0
  93. package/src/components/Collapse/__tests__/__snapshots__/StyledCollapse.spec.tsx.snap +74 -18
  94. package/src/components/Collapse/__tests__/__snapshots__/index.spec.tsx.snap +100 -44
  95. package/src/components/Collapse/index.tsx +1 -1
  96. package/src/components/ContentNavigator/StyledContentNavigator.tsx +1 -6
  97. package/src/components/ContentNavigator/__tests__/StyledContentNavigator.spec.tsx +1 -9
  98. package/src/components/ContentNavigator/__tests__/__snapshots__/StyledContentNavigator.spec.tsx.snap +37 -38
  99. package/src/components/ContentNavigator/__tests__/__snapshots__/index.spec.tsx.snap +449 -186
  100. package/src/components/ContentNavigator/__tests__/index.spec.tsx +16 -0
  101. package/src/components/ContentNavigator/index.tsx +30 -9
  102. package/src/components/DatePicker/DatePickerAndroid.tsx +8 -3
  103. package/src/components/DatePicker/DatePickerCalendar.tsx +44 -15
  104. package/src/components/DatePicker/DatePickerIOS.tsx +12 -23
  105. package/src/components/DatePicker/__tests__/DatePicker.spec.tsx +92 -0
  106. package/src/components/DatePicker/__tests__/DatePickerCalendar.spec.tsx +42 -0
  107. package/src/components/DatePicker/__tests__/DatePickerIOS.spec.tsx +6 -5
  108. package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.spec.tsx.snap +676 -508
  109. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerAndroid.spec.tsx.snap +230 -174
  110. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerCalendar.spec.tsx.snap +222 -166
  111. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerIOS.spec.tsx.snap +518 -423
  112. package/src/components/DatePicker/types.ts +8 -0
  113. package/src/components/DatePicker/useCalculateDate.tsx +34 -0
  114. package/src/components/Divider/__tests__/__snapshots__/StyledDivider.spec.tsx.snap +464 -128
  115. package/src/components/Drawer/DragableDrawer/__tests__/__snapshots__/index.spec.tsx.snap +99 -71
  116. package/src/components/Drawer/DragableDrawer/index.tsx +2 -2
  117. package/src/components/Drawer/__tests__/__snapshots__/index.spec.tsx.snap +327 -192
  118. package/src/components/Drawer/index.tsx +3 -3
  119. package/src/components/Empty/StyledEmpty.tsx +2 -6
  120. package/src/components/Empty/__tests__/__snapshots__/index.spec.tsx.snap +176 -134
  121. package/src/components/Empty/index.tsx +4 -2
  122. package/src/components/Error/StyledError.tsx +4 -9
  123. package/src/components/Error/__tests__/__snapshots__/index.spec.tsx.snap +431 -335
  124. package/src/components/Error/__tests__/index.spec.tsx +9 -6
  125. package/src/components/Error/index.tsx +6 -2
  126. package/src/components/FAB/ActionGroup/ActionItem.tsx +46 -15
  127. package/src/components/FAB/ActionGroup/StyledActionGroup.tsx +16 -18
  128. package/src/components/FAB/ActionGroup/StyledActionItem.tsx +1 -5
  129. package/src/components/FAB/ActionGroup/__tests__/__snapshots__/index.spec.tsx.snap +980 -1217
  130. package/src/components/FAB/ActionGroup/__tests__/index.spec.tsx +32 -22
  131. package/src/components/FAB/ActionGroup/index.tsx +135 -94
  132. package/src/components/FAB/AnimatedFABIcon.tsx +3 -5
  133. package/src/components/FAB/FAB.tsx +170 -28
  134. package/src/components/FAB/StyledFAB.tsx +26 -23
  135. package/src/components/FAB/__tests__/StyledFAB.spec.tsx +12 -2
  136. package/src/components/FAB/__tests__/__snapshots__/AnimatedFABIcon.spec.tsx.snap +102 -46
  137. package/src/components/FAB/__tests__/__snapshots__/StyledFAB.spec.tsx.snap +204 -52
  138. package/src/components/FAB/__tests__/__snapshots__/index.spec.tsx.snap +323 -180
  139. package/src/components/FAB/__tests__/index.spec.tsx +22 -2
  140. package/src/components/HeroDesignProvider/__tests__/__snapshots__/index.spec.tsx.snap +80 -0
  141. package/src/components/HeroDesignProvider/__tests__/index.spec.tsx +78 -0
  142. package/src/components/HeroDesignProvider/index.tsx +14 -0
  143. package/src/components/Icon/HeroIcon/glyphMap.json +1 -1
  144. package/src/components/Icon/IconList.ts +36 -0
  145. package/src/components/Icon/__tests__/__snapshots__/index.spec.tsx.snap +162 -50
  146. package/src/components/Image/__tests__/__snapshots__/index.spec.tsx.snap +172 -60
  147. package/src/components/List/BasicListItem.tsx +2 -6
  148. package/src/components/List/ListItem.tsx +3 -5
  149. package/src/components/List/StyledListItem.tsx +8 -7
  150. package/src/components/List/__tests__/ListItem.spec.tsx +4 -4
  151. package/src/components/List/__tests__/StyledBasicListItem.spec.tsx +3 -1
  152. package/src/components/List/__tests__/StyledListItem.spec.tsx +3 -1
  153. package/src/components/List/__tests__/__snapshots__/BasicListItem.spec.tsx.snap +264 -198
  154. package/src/components/List/__tests__/__snapshots__/ListItem.spec.tsx.snap +798 -635
  155. package/src/components/List/__tests__/__snapshots__/StyledBasicListItem.spec.tsx.snap +280 -140
  156. package/src/components/List/__tests__/__snapshots__/StyledListItem.spec.tsx.snap +485 -203
  157. package/src/components/Modal/__tests__/__snapshots__/index.spec.tsx.snap +169 -0
  158. package/src/components/Modal/__tests__/index.spec.tsx +99 -0
  159. package/src/components/Modal/index.tsx +217 -0
  160. package/src/components/PageControl/__tests__/__snapshots__/index.spec.tsx.snap +84 -41
  161. package/src/components/PageControl/index.tsx +7 -4
  162. package/src/components/PinInput/PinCell.tsx +3 -1
  163. package/src/components/PinInput/StyledPinInput.tsx +2 -7
  164. package/src/components/PinInput/__tests__/StyledPinInput.spec.tsx +9 -4
  165. package/src/components/PinInput/__tests__/__snapshots__/PinCell.spec.tsx.snap +298 -178
  166. package/src/components/PinInput/__tests__/__snapshots__/StyledPinInput.spec.tsx.snap +15 -48
  167. package/src/components/PinInput/__tests__/__snapshots__/index.spec.tsx.snap +873 -777
  168. package/src/components/PinInput/index.tsx +3 -1
  169. package/src/components/Portal/PortalHost.tsx +27 -0
  170. package/src/components/Portal/PortalProvider.tsx +35 -0
  171. package/src/components/Portal/__tests__/PortalHost.spec.tsx +48 -0
  172. package/src/components/Portal/__tests__/PortalProvider.spec.tsx +24 -0
  173. package/src/components/Portal/__tests__/__snapshots__/index.spec.tsx.snap +57 -0
  174. package/src/components/Portal/__tests__/index.spec.tsx +48 -0
  175. package/src/components/Portal/__tests__/reducer.spec.tsx +110 -0
  176. package/src/components/Portal/constants.ts +10 -0
  177. package/src/components/Portal/contexts.ts +14 -0
  178. package/src/components/Portal/index.tsx +66 -0
  179. package/src/components/Portal/reducer.ts +106 -0
  180. package/src/components/Portal/types.tsx +31 -0
  181. package/src/components/Portal/usePortal.ts +50 -0
  182. package/src/components/Portal/usePortalState.ts +11 -0
  183. package/src/components/Progress/ProgressCircle.tsx +1 -3
  184. package/src/components/Progress/StyledProgressBar.tsx +1 -0
  185. package/src/components/Progress/__tests__/__snapshots__/index.spec.js.snap +810 -671
  186. package/src/components/Radio/Radio.tsx +25 -6
  187. package/src/components/Radio/RadioGroup.tsx +13 -4
  188. package/src/components/Radio/StyledRadio.tsx +20 -3
  189. package/src/components/Radio/__tests__/Radio.spec.tsx +46 -13
  190. package/src/components/Radio/__tests__/RadioGroup.spec.tsx +40 -7
  191. package/src/components/Radio/__tests__/__snapshots__/Radio.spec.tsx.snap +565 -126
  192. package/src/components/Radio/__tests__/__snapshots__/RadioGroup.spec.tsx.snap +1079 -196
  193. package/src/components/Radio/types.ts +9 -1
  194. package/src/components/Rate/StyledRate.tsx +16 -0
  195. package/src/components/Rate/__tests__/__snapshots__/index.spec.tsx.snap +1006 -0
  196. package/src/components/Rate/__tests__/index.spec.tsx +47 -0
  197. package/src/components/Rate/index.tsx +90 -0
  198. package/src/components/RefreshControl/__tests__/__snapshots__/index.spec.tsx.snap +131 -47
  199. package/src/components/RichTextEditor/RichTextEditor.tsx +94 -47
  200. package/src/components/RichTextEditor/__tests__/EditorToolbar.spec.tsx +5 -2
  201. package/src/components/RichTextEditor/__tests__/RichTextEditor.spec.tsx +3 -3
  202. package/src/components/RichTextEditor/__tests__/__snapshots__/EditorToolbar.spec.tsx.snap +420 -273
  203. package/src/components/RichTextEditor/__tests__/__snapshots__/MentionList.spec.tsx.snap +66 -37
  204. package/src/components/RichTextEditor/__tests__/__snapshots__/RichTextEditor.spec.tsx.snap +451 -355
  205. package/src/components/SectionHeading/StyledHeading.tsx +21 -10
  206. package/src/components/SectionHeading/__tests__/StyledHeading.spec.tsx +6 -2
  207. package/src/components/SectionHeading/__tests__/__snapshots__/StyledHeading.spec.tsx.snap +165 -30
  208. package/src/components/SectionHeading/__tests__/__snapshots__/index.spec.tsx.snap +469 -169
  209. package/src/components/SectionHeading/__tests__/index.spec.tsx +15 -1
  210. package/src/components/SectionHeading/index.tsx +51 -32
  211. package/src/components/Select/MultiSelect/Option.tsx +3 -0
  212. package/src/components/Select/MultiSelect/__tests__/__snapshots__/Option.spec.tsx.snap +100 -64
  213. package/src/components/Select/MultiSelect/__tests__/__snapshots__/OptionList.spec.tsx.snap +2557 -2320
  214. package/src/components/Select/MultiSelect/__tests__/__snapshots__/index.spec.tsx.snap +2739 -911
  215. package/src/components/Select/MultiSelect/__tests__/index.spec.tsx +39 -22
  216. package/src/components/Select/MultiSelect/index.tsx +1 -1
  217. package/src/components/Select/SingleSelect/__tests__/__snapshots__/Option.spec.tsx.snap +78 -43
  218. package/src/components/Select/SingleSelect/__tests__/__snapshots__/OptionList.spec.tsx.snap +2460 -2228
  219. package/src/components/Select/SingleSelect/__tests__/__snapshots__/index.spec.tsx.snap +1356 -843
  220. package/src/components/Select/SingleSelect/__tests__/index.spec.tsx +5 -9
  221. package/src/components/Skeleton/__tests__/__snapshots__/index.spec.tsx.snap +525 -329
  222. package/src/components/Skeleton/index.tsx +3 -7
  223. package/src/components/Slider/__tests__/__snapshots__/index.spec.tsx.snap +117 -33
  224. package/src/components/Spinner/__tests__/__snapshots__/AnimatedSpinner.spec.tsx.snap +114 -86
  225. package/src/components/Spinner/__tests__/__snapshots__/StyledSpinner.spec.tsx.snap +1336 -664
  226. package/src/components/Spinner/__tests__/__snapshots__/index.spec.tsx.snap +129 -101
  227. package/src/components/Success/StyledSuccess.tsx +4 -7
  228. package/src/components/Success/__tests__/__snapshots__/index.spec.tsx.snap +560 -311
  229. package/src/components/Success/__tests__/index.spec.tsx +37 -9
  230. package/src/components/Success/index.tsx +7 -4
  231. package/src/components/Swipeable/__tests__/SwipeableAction.spec.tsx +2 -2
  232. package/src/components/Swipeable/__tests__/__snapshots__/SwipeableAction.spec.tsx.snap +219 -87
  233. package/src/components/Swipeable/__tests__/__snapshots__/index.spec.tsx.snap +158 -24
  234. package/src/components/Swipeable/__tests__/index.spec.tsx +12 -5
  235. package/src/components/Swipeable/index.tsx +42 -15
  236. package/src/components/Switch/SelectorSwitch/Option.tsx +1 -1
  237. package/src/components/Switch/SelectorSwitch/StyledSelectorSwitch.tsx +4 -7
  238. package/src/components/Switch/SelectorSwitch/__tests__/__snapshots__/Option.spec.tsx.snap +242 -131
  239. package/src/components/Switch/SelectorSwitch/__tests__/__snapshots__/index.spec.tsx.snap +152 -116
  240. package/src/components/Switch/SelectorSwitch/index.tsx +7 -15
  241. package/src/components/Switch/__tests__/__snapshots__/StyledSwitch.spec.tsx.snap +203 -63
  242. package/src/components/Switch/__tests__/__snapshots__/index.spec.tsx.snap +134 -70
  243. package/src/components/Tabs/SceneView.tsx +11 -6
  244. package/src/components/Tabs/ScrollableTabs.tsx +26 -8
  245. package/src/components/Tabs/{ScrollableTabsHeader.tsx → ScrollableTabsHeader/ScrollableTabsHeader.tsx} +74 -45
  246. package/src/components/Tabs/ScrollableTabsHeader/hooks/useInitHighlightedAnimation.ts +45 -0
  247. package/src/components/Tabs/ScrollableTabsHeader/hooks/useInitUnderlinedAnimation.ts +91 -0
  248. package/src/components/Tabs/StyledScrollableTabs.tsx +14 -9
  249. package/src/components/Tabs/StyledTabs.tsx +1 -9
  250. package/src/components/Tabs/__tests__/SceneView.spec.tsx +11 -11
  251. package/src/components/Tabs/__tests__/ScrollableTabsHeader.spec.tsx +7 -3
  252. package/src/components/Tabs/__tests__/__snapshots__/SceneView.spec.tsx.snap +219 -110
  253. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabs.spec.tsx.snap +2348 -2072
  254. package/src/components/Tabs/__tests__/__snapshots__/ScrollableTabsHeader.spec.tsx.snap +1134 -444
  255. package/src/components/Tabs/__tests__/__snapshots__/TabWithBadge.spec.tsx.snap +124 -73
  256. package/src/components/Tabs/__tests__/__snapshots__/index.spec.tsx.snap +1694 -1487
  257. package/src/components/Tabs/__tests__/useInitHighlightedAnimation.spec.tsx +56 -0
  258. package/src/components/Tabs/__tests__/useInitUnderlinedAnimation.spec.tsx +65 -0
  259. package/src/components/Tabs/index.tsx +9 -6
  260. package/src/components/Tag/StyledTag.tsx +7 -39
  261. package/src/components/Tag/__tests__/Tag.spec.tsx +18 -14
  262. package/src/components/Tag/__tests__/__snapshots__/Tag.spec.tsx.snap +572 -377
  263. package/src/components/Tag/index.tsx +8 -2
  264. package/src/components/TextInput/StyledTextInput.tsx +18 -49
  265. package/src/components/TextInput/__tests__/StyledTextInput.spec.tsx +2 -46
  266. package/src/components/TextInput/__tests__/__snapshots__/StyledTextInput.spec.tsx.snap +1001 -803
  267. package/src/components/TextInput/__tests__/__snapshots__/index.spec.tsx.snap +3774 -3075
  268. package/src/components/TextInput/__tests__/index.spec.tsx +151 -9
  269. package/src/components/TextInput/index.tsx +253 -105
  270. package/src/components/TimePicker/__tests__/__snapshots__/TimePickerAndroid.spec.tsx.snap +452 -347
  271. package/src/components/TimePicker/__tests__/__snapshots__/TimePickerIOS.spec.tsx.snap +741 -597
  272. package/src/components/Toast/StyledToast.tsx +1 -1
  273. package/src/components/Toast/Toast.tsx +6 -5
  274. package/src/components/Toast/ToastContainer.tsx +2 -0
  275. package/src/components/Toast/ToastContext.ts +20 -2
  276. package/src/components/Toast/ToastProvider.tsx +7 -4
  277. package/src/components/Toast/__tests__/Toast.spec.tsx +5 -1
  278. package/src/components/Toast/__tests__/__snapshots__/Toast.spec.tsx.snap +916 -631
  279. package/src/components/Toast/__tests__/__snapshots__/ToastContainer.spec.tsx.snap +180 -68
  280. package/src/components/Toolbar/StyledToolbar.tsx +1 -1
  281. package/src/components/Toolbar/ToolbarItem.tsx +4 -6
  282. package/src/components/Toolbar/__tests__/__snapshots__/ToolbarGroup.spec.tsx.snap +606 -456
  283. package/src/components/Toolbar/__tests__/__snapshots__/ToolbarItem.spec.tsx.snap +714 -401
  284. package/src/components/Typography/Body/StyledBody.tsx +46 -0
  285. package/src/components/Typography/Body/__tests__/StyledBody.tsx +56 -0
  286. package/src/components/Typography/Body/__tests__/__snapshots__/StyledBody.tsx.snap +801 -0
  287. package/src/components/Typography/Body/__tests__/__snapshots__/index.spec.tsx.snap +970 -0
  288. package/src/components/Typography/Body/__tests__/index.spec.tsx +54 -0
  289. package/src/components/Typography/Body/index.tsx +71 -0
  290. package/src/components/Typography/Caption/StyledCaption.tsx +17 -0
  291. package/src/components/Typography/Caption/__tests__/StyledCaption.spec.tsx +39 -0
  292. package/src/components/Typography/Caption/__tests__/__snapshots__/StyledCaption.spec.tsx.snap +491 -0
  293. package/src/components/Typography/Caption/__tests__/__snapshots__/index.spec.tsx.snap +651 -0
  294. package/src/components/Typography/Caption/__tests__/index.spec.tsx +46 -0
  295. package/src/components/Typography/Caption/index.tsx +61 -0
  296. package/src/components/Typography/Label/StyledLabel.tsx +14 -0
  297. package/src/components/Typography/Label/__tests__/StyledLabel.tsx +23 -0
  298. package/src/components/Typography/Label/__tests__/__snapshots__/StyledLabel.tsx.snap +377 -0
  299. package/src/components/Typography/Label/__tests__/__snapshots__/index.spec.tsx.snap +529 -0
  300. package/src/components/Typography/Label/__tests__/index.spec.tsx +32 -0
  301. package/src/components/Typography/Label/index.tsx +55 -0
  302. package/src/components/Typography/Text/__tests__/__snapshots__/StyledText.spec.tsx.snap +900 -340
  303. package/src/components/Typography/Text/index.tsx +19 -12
  304. package/src/components/Typography/Title/StyledTitle.tsx +20 -0
  305. package/src/components/Typography/Title/__tests__/StyledTitle.tsx +53 -0
  306. package/src/components/Typography/Title/__tests__/__snapshots__/StyledTitle.tsx.snap +1001 -0
  307. package/src/components/Typography/Title/__tests__/__snapshots__/index.spec.tsx.snap +1174 -0
  308. package/src/components/Typography/Title/__tests__/index.spec.tsx +55 -0
  309. package/src/components/Typography/Title/index.tsx +70 -0
  310. package/src/components/Typography/index.tsx +15 -0
  311. package/src/components/Typography/types.ts +18 -0
  312. package/src/index.ts +16 -0
  313. package/src/testHelpers/renderWithTheme.tsx +2 -2
  314. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +539 -345
  315. package/src/theme/components/badge.ts +15 -0
  316. package/src/theme/components/button.ts +17 -1
  317. package/src/theme/components/calendar.ts +2 -0
  318. package/src/theme/components/cardCarousel.ts +1 -8
  319. package/src/theme/components/carousel.ts +15 -1
  320. package/src/theme/components/checkbox.ts +5 -2
  321. package/src/theme/components/chip.ts +47 -0
  322. package/src/theme/components/empty.ts +12 -0
  323. package/src/theme/components/error.ts +16 -0
  324. package/src/theme/components/fab.ts +17 -11
  325. package/src/theme/components/list.ts +9 -5
  326. package/src/theme/components/pinInput.ts +15 -0
  327. package/src/theme/components/progress.ts +2 -2
  328. package/src/theme/components/radio.ts +8 -2
  329. package/src/theme/components/rate.ts +16 -0
  330. package/src/theme/components/sectionHeading.ts +2 -1
  331. package/src/theme/components/success.ts +12 -0
  332. package/src/theme/components/swipeable.ts +10 -1
  333. package/src/theme/components/switch.ts +4 -4
  334. package/src/theme/components/tabs.ts +3 -2
  335. package/src/theme/components/tag.ts +18 -2
  336. package/src/theme/components/textInput.ts +4 -4
  337. package/src/theme/components/toast.ts +5 -5
  338. package/src/theme/components/typography.ts +132 -1
  339. package/src/theme/getTheme.ts +24 -18
  340. package/src/theme/global/colors/__tests__/__snapshots__/eBens.spec.ts.snap +8 -8
  341. package/src/theme/global/colors/__tests__/__snapshots__/global.spec.ts.snap +6 -6
  342. package/src/theme/global/colors/__tests__/__snapshots__/globalDark.spec.ts.snap +1 -1
  343. package/src/theme/global/colors/__tests__/__snapshots__/jobs.spec.ts.snap +7 -7
  344. package/src/theme/global/colors/__tests__/__snapshots__/swag.spec.ts.snap +7 -7
  345. package/src/theme/global/colors/__tests__/__snapshots__/swagDark.spec.ts.snap +1 -1
  346. package/src/theme/global/colors/__tests__/__snapshots__/wallet.spec.ts.snap +8 -8
  347. package/src/theme/global/colors/__tests__/__snapshots__/work.spec.ts.snap +10 -10
  348. package/src/theme/global/colors/eBens.ts +2 -2
  349. package/src/theme/global/colors/global.ts +5 -5
  350. package/src/theme/global/colors/jobs.ts +1 -1
  351. package/src/theme/global/colors/swag.ts +1 -1
  352. package/src/theme/global/colors/wallet.ts +2 -2
  353. package/src/theme/global/colors/work.ts +4 -4
  354. package/src/theme/global/index.ts +3 -0
  355. package/src/theme/global/shadows.ts +19 -0
  356. package/src/theme/global/space.ts +2 -0
  357. package/src/types.ts +4 -0
  358. package/src/utils/helpers.ts +4 -1
  359. package/testUtils/setup.tsx +32 -2
  360. package/tsconfig.json +14 -3
  361. package/types/components/Accordion/AccordionItem.d.ts +2 -1
  362. package/types/components/Accordion/StyledAccordion.d.ts +5 -6
  363. package/types/components/Accordion/index.d.ts +1 -1
  364. package/types/components/Alert/StyledAlert.d.ts +5 -6
  365. package/types/components/Alert/index.d.ts +18 -2
  366. package/types/components/AnimatedScroller/AnimatedFAB.d.ts +12 -0
  367. package/types/components/AnimatedScroller/AnimatedScrollable.d.ts +16 -0
  368. package/types/components/AnimatedScroller/FlatListWithFAB.d.ts +12 -0
  369. package/types/components/AnimatedScroller/ScrollViewWithFAB.d.ts +12 -0
  370. package/types/components/AnimatedScroller/SectionListWithFAB.d.ts +12 -0
  371. package/types/components/AnimatedScroller/index.d.ts +4 -0
  372. package/types/components/Attachment/StyledAttachment.d.ts +4 -5
  373. package/types/components/Attachment/index.d.ts +2 -1
  374. package/types/components/Avatar/Avatar.d.ts +2 -1
  375. package/types/components/Avatar/AvatarStack/StyledAvatarStack.d.ts +15 -3
  376. package/types/components/Avatar/AvatarStack/index.d.ts +14 -2
  377. package/types/components/Avatar/AvatarStack/utils.d.ts +0 -0
  378. package/types/components/Avatar/StyledAvatar.d.ts +4 -5
  379. package/types/components/Avatar/index.d.ts +2 -2
  380. package/types/components/Badge/Status.d.ts +0 -0
  381. package/types/components/Badge/StyledBadge.d.ts +4 -9
  382. package/types/components/Badge/index.d.ts +0 -0
  383. package/types/components/BottomNavigation/StyledBottomNavigation.d.ts +8 -9
  384. package/types/components/BottomNavigation/index.d.ts +0 -0
  385. package/types/components/BottomSheet/BottomSheetContext.d.ts +0 -1
  386. package/types/components/BottomSheet/Footer.d.ts +2 -1
  387. package/types/components/BottomSheet/Header.d.ts +2 -1
  388. package/types/components/BottomSheet/ScrollView.d.ts +0 -0
  389. package/types/components/BottomSheet/StyledBottomSheet.d.ts +8 -13
  390. package/types/components/BottomSheet/index.d.ts +0 -0
  391. package/types/components/Box/StyledBox.d.ts +1 -2
  392. package/types/components/Box/config.d.ts +0 -0
  393. package/types/components/Box/index.d.ts +2 -1
  394. package/types/components/Box/types.d.ts +0 -1
  395. package/types/components/Button/Button.d.ts +3 -3
  396. package/types/components/Button/IconButton.d.ts +2 -1
  397. package/types/components/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +5 -6
  398. package/types/components/Button/LoadingIndicator/index.d.ts +2 -1
  399. package/types/components/Button/StyledButton.d.ts +16 -10
  400. package/types/components/Button/UtilityButton/StyledUtilityButton.d.ts +4 -5
  401. package/types/components/Button/UtilityButton/index.d.ts +2 -1
  402. package/types/components/Button/index.d.ts +0 -0
  403. package/types/components/Calendar/CalendarRowItem.d.ts +2 -1
  404. package/types/components/Calendar/StyledCalendar.d.ts +8 -9
  405. package/types/components/Calendar/helpers.d.ts +0 -0
  406. package/types/components/Calendar/index.d.ts +15 -1
  407. package/types/components/Card/DataCard/StyledDataCard.d.ts +2 -3
  408. package/types/components/Card/DataCard/index.d.ts +0 -0
  409. package/types/components/Card/StyledCard.d.ts +1 -2
  410. package/types/components/Card/index.d.ts +0 -0
  411. package/types/components/Carousel/CardCarousel.d.ts +2 -1
  412. package/types/components/Carousel/CarouselItem.d.ts +2 -1
  413. package/types/components/Carousel/StyledCardCarousel.d.ts +5 -12
  414. package/types/components/Carousel/StyledCarousel.d.ts +13 -14
  415. package/types/components/Carousel/contants.d.ts +0 -0
  416. package/types/components/Carousel/index.d.ts +2 -2
  417. package/types/components/Carousel/types.d.ts +4 -4
  418. package/types/components/Checkbox/StyledCheckbox.d.ts +12 -10
  419. package/types/components/Checkbox/index.d.ts +12 -1
  420. package/types/components/Chip/StyledChip.d.ts +30 -0
  421. package/types/components/Chip/index.d.ts +27 -0
  422. package/types/components/Collapse/StyledCollapse.d.ts +3 -6
  423. package/types/components/Collapse/index.d.ts +2 -1
  424. package/types/components/ContentNavigator/StyledContentNavigator.d.ts +2 -7
  425. package/types/components/ContentNavigator/index.d.ts +2 -1
  426. package/types/components/DatePicker/DatePickerAndroid.d.ts +2 -1
  427. package/types/components/DatePicker/DatePickerCalendar.d.ts +2 -1
  428. package/types/components/DatePicker/DatePickerIOS.d.ts +2 -2
  429. package/types/components/DatePicker/StyledDatePicker.d.ts +1 -2
  430. package/types/components/DatePicker/index.d.ts +2 -1
  431. package/types/components/DatePicker/types.d.ts +8 -0
  432. package/types/components/DatePicker/useCalculateDate.d.ts +4 -0
  433. package/types/components/Divider/StyledDivider.d.ts +1 -2
  434. package/types/components/Divider/index.d.ts +2 -1
  435. package/types/components/Drawer/DragableDrawer/helpers.d.ts +0 -0
  436. package/types/components/Drawer/DragableDrawer/index.d.ts +0 -0
  437. package/types/components/Drawer/StyledDrawer.d.ts +7 -14
  438. package/types/components/Drawer/index.d.ts +0 -0
  439. package/types/components/Empty/StyledEmpty.d.ts +5 -6
  440. package/types/components/Empty/index.d.ts +0 -0
  441. package/types/components/Error/StyledError.d.ts +15 -22
  442. package/types/components/Error/index.d.ts +0 -0
  443. package/types/components/FAB/ActionGroup/ActionItem.d.ts +7 -2
  444. package/types/components/FAB/ActionGroup/StyledActionGroup.d.ts +13 -17
  445. package/types/components/FAB/ActionGroup/StyledActionItem.d.ts +4 -5
  446. package/types/components/FAB/ActionGroup/index.d.ts +12 -1
  447. package/types/components/FAB/AnimatedFABIcon.d.ts +2 -1
  448. package/types/components/FAB/FAB.d.ts +8 -2
  449. package/types/components/FAB/StyledFAB.d.ts +11 -12
  450. package/types/components/FAB/index.d.ts +2 -2
  451. package/types/components/HeroDesignProvider/index.d.ts +4 -0
  452. package/types/components/Icon/AnimatedIcon.d.ts +2 -1
  453. package/types/components/Icon/HeroIcon/index.d.ts +1 -2
  454. package/types/components/Icon/IconList.d.ts +1 -1
  455. package/types/components/Icon/index.d.ts +3 -2
  456. package/types/components/Icon/utils.d.ts +1 -1
  457. package/types/components/Image/index.d.ts +0 -0
  458. package/types/components/List/BasicListItem.d.ts +0 -0
  459. package/types/components/List/ListItem.d.ts +0 -0
  460. package/types/components/List/StyledBasicListItem.d.ts +4 -5
  461. package/types/components/List/StyledListItem.d.ts +7 -8
  462. package/types/components/List/index.d.ts +0 -0
  463. package/types/components/Modal/index.d.ts +37 -0
  464. package/types/components/PageControl/StyledPageControl.d.ts +2 -5
  465. package/types/components/PageControl/index.d.ts +2 -1
  466. package/types/components/PinInput/PinCell.d.ts +2 -1
  467. package/types/components/PinInput/StyledPinInput.d.ts +12 -13
  468. package/types/components/PinInput/index.d.ts +0 -0
  469. package/types/components/Portal/PortalHost.d.ts +5 -0
  470. package/types/components/Portal/PortalProvider.d.ts +7 -0
  471. package/types/components/Portal/constants.d.ts +8 -0
  472. package/types/components/Portal/contexts.d.ts +9 -0
  473. package/types/components/Portal/index.d.ts +18 -0
  474. package/types/components/Portal/reducer.d.ts +5 -0
  475. package/types/components/Portal/types.d.ts +22 -0
  476. package/types/components/Portal/usePortal.d.ts +8 -0
  477. package/types/components/Portal/usePortalState.d.ts +1 -0
  478. package/types/components/Progress/ProgressBar.d.ts +0 -0
  479. package/types/components/Progress/ProgressCircle.d.ts +0 -0
  480. package/types/components/Progress/StyledProgressBar.d.ts +2 -5
  481. package/types/components/Progress/StyledProgressCircle.d.ts +6 -7
  482. package/types/components/Progress/__tests__/index.spec.d.ts +0 -0
  483. package/types/components/Progress/constants.d.ts +0 -0
  484. package/types/components/Progress/index.d.ts +0 -0
  485. package/types/components/Progress/types.d.ts +0 -0
  486. package/types/components/Radio/Radio.d.ts +15 -3
  487. package/types/components/Radio/RadioGroup.d.ts +5 -1
  488. package/types/components/Radio/StyledRadio.d.ts +14 -5
  489. package/types/components/Radio/index.d.ts +1 -2
  490. package/types/components/Radio/types.d.ts +3 -0
  491. package/types/components/Rate/StyledRate.d.ts +10 -0
  492. package/types/components/Rate/index.d.ts +29 -0
  493. package/types/components/RefreshControl/index.d.ts +2 -1
  494. package/types/components/RichTextEditor/EditorEvent.d.ts +1 -0
  495. package/types/components/RichTextEditor/EditorToolbar.d.ts +2 -1
  496. package/types/components/RichTextEditor/MentionList.d.ts +2 -1
  497. package/types/components/RichTextEditor/RichTextEditor.d.ts +2 -2
  498. package/types/components/RichTextEditor/StyledRichTextEditor.d.ts +2 -3
  499. package/types/components/RichTextEditor/StyledToolbar.d.ts +3 -4
  500. package/types/components/RichTextEditor/__mocks__/heroEditorApp.d.ts +0 -0
  501. package/types/components/RichTextEditor/constants.d.ts +0 -0
  502. package/types/components/RichTextEditor/heroEditorApp.d.ts +0 -0
  503. package/types/components/RichTextEditor/index.d.ts +2 -3
  504. package/types/components/RichTextEditor/types.d.ts +0 -0
  505. package/types/components/RichTextEditor/utils/events.d.ts +0 -0
  506. package/types/components/RichTextEditor/utils/rnWebView.d.ts +0 -0
  507. package/types/components/SectionHeading/StyledHeading.d.ts +7 -5
  508. package/types/components/SectionHeading/index.d.ts +7 -1
  509. package/types/components/Select/BaseOptionList.d.ts +1 -1
  510. package/types/components/Select/Footer.d.ts +2 -1
  511. package/types/components/Select/MultiSelect/Option.d.ts +2 -1
  512. package/types/components/Select/MultiSelect/OptionList.d.ts +2 -1
  513. package/types/components/Select/MultiSelect/index.d.ts +1 -1
  514. package/types/components/Select/SingleSelect/Option.d.ts +2 -1
  515. package/types/components/Select/SingleSelect/OptionList.d.ts +1 -1
  516. package/types/components/Select/SingleSelect/StyledSingleSelect.d.ts +1 -1
  517. package/types/components/Select/SingleSelect/index.d.ts +1 -1
  518. package/types/components/Select/StyledSelect.d.ts +3 -4
  519. package/types/components/Select/helpers.d.ts +1 -2
  520. package/types/components/Select/index.d.ts +1 -1
  521. package/types/components/Select/types.d.ts +0 -0
  522. package/types/components/Skeleton/StyledSkeleton.d.ts +2 -3
  523. package/types/components/Skeleton/index.d.ts +2 -1
  524. package/types/components/Slider/index.d.ts +2 -1
  525. package/types/components/Spinner/AnimatedSpinner.d.ts +2 -1
  526. package/types/components/Spinner/StyledSpinner.d.ts +4 -5
  527. package/types/components/Spinner/index.d.ts +0 -0
  528. package/types/components/Success/StyledSuccess.d.ts +14 -19
  529. package/types/components/Success/index.d.ts +1 -1
  530. package/types/components/Swipeable/StyledSwipeable.d.ts +1 -2
  531. package/types/components/Swipeable/SwipeableAction.d.ts +2 -2
  532. package/types/components/Swipeable/index.d.ts +8 -4
  533. package/types/components/Switch/SelectorSwitch/Option.d.ts +2 -1
  534. package/types/components/Switch/SelectorSwitch/StyledSelectorSwitch.d.ts +4 -11
  535. package/types/components/Switch/SelectorSwitch/index.d.ts +0 -0
  536. package/types/components/Switch/StyledSwitch.d.ts +2 -5
  537. package/types/components/Switch/index.d.ts +0 -0
  538. package/types/components/Tabs/ActiveTabIndicator.d.ts +2 -1
  539. package/types/components/Tabs/SceneView.d.ts +1 -1
  540. package/types/components/Tabs/ScrollableTabs.d.ts +5 -1
  541. package/types/components/Tabs/{ScrollableTabsHeader.d.ts → ScrollableTabsHeader/ScrollableTabsHeader.d.ts} +8 -3
  542. package/types/components/Tabs/ScrollableTabsHeader/hooks/useInitHighlightedAnimation.d.ts +9 -0
  543. package/types/components/Tabs/ScrollableTabsHeader/hooks/useInitUnderlinedAnimation.d.ts +10 -0
  544. package/types/components/Tabs/StyledScrollableTabs.d.ts +12 -20
  545. package/types/components/Tabs/StyledTabs.d.ts +8 -18
  546. package/types/components/Tabs/TabWithBadge.d.ts +2 -2
  547. package/types/components/Tabs/index.d.ts +2 -1
  548. package/types/components/Tabs/useIsFocused.d.ts +0 -0
  549. package/types/components/Tabs/utils.d.ts +0 -0
  550. package/types/components/Tag/StyledTag.d.ts +4 -8
  551. package/types/components/Tag/index.d.ts +1 -0
  552. package/types/components/TextInput/StyledTextInput.d.ts +22 -46
  553. package/types/components/TextInput/index.d.ts +31 -2
  554. package/types/components/TimePicker/StyledTimePicker.d.ts +1 -2
  555. package/types/components/TimePicker/TimePickerAndroid.d.ts +2 -1
  556. package/types/components/TimePicker/TimePickerIOS.d.ts +2 -1
  557. package/types/components/TimePicker/index.d.ts +2 -1
  558. package/types/components/TimePicker/types.d.ts +0 -0
  559. package/types/components/Toast/StyledToast.d.ts +6 -9
  560. package/types/components/Toast/Toast.d.ts +0 -0
  561. package/types/components/Toast/ToastContainer.d.ts +0 -0
  562. package/types/components/Toast/ToastContext.d.ts +1 -1
  563. package/types/components/Toast/ToastProvider.d.ts +2 -1
  564. package/types/components/Toast/index.d.ts +1 -2
  565. package/types/components/Toast/types.d.ts +0 -0
  566. package/types/components/Toolbar/StyledToolbar.d.ts +6 -7
  567. package/types/components/Toolbar/ToolbarGroup.d.ts +2 -1
  568. package/types/components/Toolbar/ToolbarItem.d.ts +2 -1
  569. package/types/components/Toolbar/index.d.ts +3 -2
  570. package/types/components/Typography/Body/StyledBody.d.ts +14 -0
  571. package/types/components/Typography/Body/__tests__/StyledBody.d.ts +1 -0
  572. package/types/components/Typography/Body/index.d.ts +33 -0
  573. package/types/components/Typography/Caption/StyledCaption.d.ts +12 -0
  574. package/types/components/Typography/Caption/index.d.ts +27 -0
  575. package/types/components/Typography/Label/StyledLabel.d.ts +11 -0
  576. package/types/components/Typography/Label/__tests__/StyledLabel.d.ts +1 -0
  577. package/types/components/Typography/Label/index.d.ts +23 -0
  578. package/types/components/Typography/Text/StyledText.d.ts +1 -2
  579. package/types/components/Typography/Text/index.d.ts +2 -1
  580. package/types/components/Typography/Title/StyledTitle.d.ts +14 -0
  581. package/types/components/Typography/Title/__tests__/StyledTitle.d.ts +1 -0
  582. package/types/components/Typography/Title/index.d.ts +33 -0
  583. package/types/components/Typography/index.d.ts +11 -0
  584. package/types/components/Typography/types.d.ts +6 -0
  585. package/types/index.d.ts +6 -1
  586. package/types/testHelpers/renderWithTheme.d.ts +0 -0
  587. package/types/theme/ThemeProvider.d.ts +0 -1
  588. package/types/theme/ThemeSwitcher.d.ts +2 -2
  589. package/types/theme/components/accordion.d.ts +0 -0
  590. package/types/theme/components/alert.d.ts +0 -0
  591. package/types/theme/components/attachment.d.ts +0 -0
  592. package/types/theme/components/avatar.d.ts +0 -0
  593. package/types/theme/components/badge.d.ts +15 -0
  594. package/types/theme/components/bottomNavigation.d.ts +0 -0
  595. package/types/theme/components/bottomSheet.d.ts +0 -0
  596. package/types/theme/components/button.d.ts +14 -0
  597. package/types/theme/components/calendar.d.ts +2 -0
  598. package/types/theme/components/card.d.ts +0 -0
  599. package/types/theme/components/cardCarousel.d.ts +0 -10
  600. package/types/theme/components/carousel.d.ts +15 -1
  601. package/types/theme/components/checkbox.d.ts +5 -2
  602. package/types/theme/components/chip.d.ts +40 -0
  603. package/types/theme/components/contentNavigator.d.ts +0 -0
  604. package/types/theme/components/datePicker.d.ts +0 -0
  605. package/types/theme/components/divider.d.ts +0 -0
  606. package/types/theme/components/drawer.d.ts +0 -0
  607. package/types/theme/components/empty.d.ts +11 -0
  608. package/types/theme/components/error.d.ts +15 -0
  609. package/types/theme/components/fab.d.ts +13 -7
  610. package/types/theme/components/icon.d.ts +0 -0
  611. package/types/theme/components/image.d.ts +0 -0
  612. package/types/theme/components/list.d.ts +11 -7
  613. package/types/theme/components/pageControl.d.ts +0 -0
  614. package/types/theme/components/pinInput.d.ts +15 -0
  615. package/types/theme/components/progress.d.ts +0 -0
  616. package/types/theme/components/radio.d.ts +7 -1
  617. package/types/theme/components/rate.d.ts +11 -0
  618. package/types/theme/components/refreshControl.d.ts +0 -0
  619. package/types/theme/components/richTextEditor.d.ts +0 -0
  620. package/types/theme/components/sectionHeading.d.ts +1 -0
  621. package/types/theme/components/select.d.ts +0 -0
  622. package/types/theme/components/skeleton.d.ts +0 -0
  623. package/types/theme/components/slider.d.ts +0 -0
  624. package/types/theme/components/spinner.d.ts +0 -0
  625. package/types/theme/components/success.d.ts +11 -0
  626. package/types/theme/components/swipeable.d.ts +7 -0
  627. package/types/theme/components/switch.d.ts +1 -1
  628. package/types/theme/components/tabs.d.ts +1 -0
  629. package/types/theme/components/tag.d.ts +16 -1
  630. package/types/theme/components/textInput.d.ts +2 -2
  631. package/types/theme/components/timePicker.d.ts +0 -0
  632. package/types/theme/components/toast.d.ts +1 -1
  633. package/types/theme/components/toolbar.d.ts +0 -0
  634. package/types/theme/components/typography.d.ts +122 -0
  635. package/types/theme/getTheme.d.ts +22 -18
  636. package/types/theme/global/borders.d.ts +0 -0
  637. package/types/theme/global/colors/eBens.d.ts +0 -0
  638. package/types/theme/global/colors/global.d.ts +0 -0
  639. package/types/theme/global/colors/globalDark.d.ts +0 -0
  640. package/types/theme/global/colors/jobs.d.ts +0 -0
  641. package/types/theme/global/colors/swag.d.ts +0 -0
  642. package/types/theme/global/colors/swagDark.d.ts +0 -0
  643. package/types/theme/global/colors/types.d.ts +0 -0
  644. package/types/theme/global/colors/wallet.d.ts +0 -0
  645. package/types/theme/global/colors/work.d.ts +0 -0
  646. package/types/theme/global/index.d.ts +12 -0
  647. package/types/theme/global/scale.d.ts +0 -0
  648. package/types/theme/global/shadows.d.ts +16 -0
  649. package/types/theme/global/sizes.d.ts +0 -0
  650. package/types/theme/global/space.d.ts +1 -0
  651. package/types/theme/global/typography.d.ts +0 -0
  652. package/types/theme/index.d.ts +0 -0
  653. package/types/types.d.ts +3 -1
  654. package/types/utils/functions.d.ts +0 -0
  655. package/types/utils/helpers.d.ts +1 -1
  656. package/types/utils/hooks.d.ts +0 -0
  657. package/types/utils/scale.d.ts +0 -0
  658. package/.turbo/turbo-build.log +0 -8
  659. package/.turbo/turbo-build:types.log +0 -1
  660. package/.turbo/turbo-lint.log +0 -153
  661. package/.turbo/turbo-publish:npm.log +0 -0
  662. package/.turbo/turbo-type-check.log +0 -1
  663. package/types/components/Carousel/CarouselPaginator/StyledCarouselPaginator.d.ts +0 -14
  664. package/types/components/Carousel/CarouselPaginator/index.d.ts +0 -7
  665. package/types/components/Select/StyledOptionList.d.ts +0 -12
  666. package/types/components/SwipeableV2/StyledSwipeable.d.ts +0 -15
  667. package/types/components/SwipeableV2/index.d.ts +0 -46
  668. package/types/theme/global/colors/legacySystemPalette.d.ts +0 -3
@@ -1,8 +1,8 @@
1
1
  import '@testing-library/jest-native/extend-expect';
2
- import React from 'react';
3
2
  import { fireEvent } from '@testing-library/react-native';
4
- import renderWithTheme from '../../../../testHelpers/renderWithTheme';
3
+ import React from 'react';
5
4
  import ActionGroup from '..';
5
+ import renderWithTheme from '../../../../testHelpers/renderWithTheme';
6
6
 
7
7
  describe('ActionGroup', () => {
8
8
  it.each`
@@ -10,11 +10,10 @@ describe('ActionGroup', () => {
10
10
  ${true}
11
11
  ${false}
12
12
  `('has active $active', ({ active }) => {
13
- const { toJSON, getByTestId, getByText } = renderWithTheme(
13
+ const { toJSON, getByTestId, queryByTestId } = renderWithTheme(
14
14
  <ActionGroup
15
15
  fabTitle="Shout out"
16
16
  active={active}
17
- headerTitle="What would you like to create?"
18
17
  items={[
19
18
  {
20
19
  icon: 'speaker',
@@ -39,30 +38,21 @@ describe('ActionGroup', () => {
39
38
 
40
39
  expect(toJSON()).toMatchSnapshot();
41
40
 
42
- expect(getByText('What would you like to create?')).toBeDefined();
43
- expect(getByText('Shout out')).toBeDefined();
44
- expect(getByTestId('speaker-action-item')).toBeDefined();
45
- expect(getByTestId('target-action-item')).toBeDefined();
46
- expect(getByTestId('plane-action-item')).toBeDefined();
47
- expect(getByTestId('health-bag-action-item')).toBeDefined();
48
-
49
41
  if (active) {
50
- // verify action group appears
51
- expect(getByTestId('action-group')).toHaveStyle({
52
- transform: [{ translateX: 0 }],
53
- });
54
- expect(getByTestId('back-drop')).toHaveProp('pointerEvents', 'auto');
42
+ // verify backdrop appears
43
+ expect(queryByTestId('back-drop')).toBeDefined();
44
+ expect(getByTestId('speaker-action-item')).toBeDefined();
45
+ expect(getByTestId('target-action-item')).toBeDefined();
46
+ expect(getByTestId('plane-action-item')).toBeDefined();
47
+ expect(getByTestId('health-bag-action-item')).toBeDefined();
55
48
  } else {
56
- // verify action group disappears
57
- expect(getByTestId('action-group')).toHaveStyle({
58
- transform: [{ translateX: 400 }],
59
- });
60
- expect(getByTestId('back-drop')).toHaveProp('pointerEvents', 'box-none');
49
+ // verify backdrop disappears
50
+ expect(queryByTestId('back-drop')).toBeNull();
61
51
  }
62
52
  });
63
53
 
64
54
  describe('when user presses', () => {
65
- it('calls onPress', () => {
55
+ it('calls onPress when active = false', () => {
66
56
  const onPressSpy = jest.fn();
67
57
  const { getByTestId } = renderWithTheme(
68
58
  <ActionGroup onPress={onPressSpy} />
@@ -70,5 +60,25 @@ describe('ActionGroup', () => {
70
60
  fireEvent(getByTestId('fab'), 'press');
71
61
  expect(onPressSpy).toBeCalledTimes(1);
72
62
  });
63
+
64
+ it('calls onPress when active = true', () => {
65
+ const onPressSpy = jest.fn();
66
+ const { getByTestId } = renderWithTheme(
67
+ <ActionGroup onPress={onPressSpy} active />
68
+ );
69
+ fireEvent(getByTestId('fab-in-portal'), 'press');
70
+ expect(onPressSpy).toBeCalledTimes(1);
71
+ });
72
+ });
73
+
74
+ describe('when user presses backdrop', () => {
75
+ it('calls onBackdropPress when active = true', () => {
76
+ const onBackdropPressSpy = jest.fn();
77
+ const { getByTestId } = renderWithTheme(
78
+ <ActionGroup onBackdropPress={onBackdropPressSpy} active />
79
+ );
80
+ fireEvent(getByTestId('back-drop'), 'press');
81
+ expect(onBackdropPressSpy).toBeCalledTimes(1);
82
+ });
73
83
  });
74
84
  });
@@ -1,39 +1,31 @@
1
- import React, { useEffect, useRef } from 'react';
2
- import { Animated, Easing, Platform, View } from 'react-native';
1
+ import React, { forwardRef, useRef } from 'react';
3
2
  import type { StyleProp, ViewStyle } from 'react-native';
3
+ import { Animated, Platform, Modal } from 'react-native';
4
+ import type { IconName } from '../../Icon';
5
+ import type { ActionItemProps } from './ActionItem';
4
6
  import ActionItem from './ActionItem';
5
7
  import {
8
+ StyledActionGroupContainer,
6
9
  StyledBackdrop,
7
10
  StyledContainer,
11
+ StyledContainerInModal,
8
12
  StyledFAB,
9
- StyledHeaderText,
10
- StyledActionGroupContainer,
11
13
  } from './StyledActionGroup';
12
- import type { IconName } from '../../Icon';
13
- import type { ActionItemProps } from './ActionItem';
14
14
 
15
- type ActionItemsContainerProps = {
16
- style?: StyleProp<ViewStyle>;
17
- items?: Array<ActionItemProps>;
18
- };
19
- const ActionItemsListComponent = ({
20
- style,
21
- items,
22
- }: ActionItemsContainerProps) => {
23
- return (
24
- <View style={style}>
25
- {items?.map((itemProp) => (
26
- <ActionItem
27
- key={itemProp.key || `${itemProp.icon}_${itemProp.title}`}
28
- {...itemProp}
29
- />
30
- ))}
31
- </View>
32
- );
15
+ import Box from '../../Box';
16
+ import { FABHandles } from '../FAB';
17
+ import { useDeprecation } from '../../../utils/hooks';
18
+ import { useTheme } from '../../../theme';
19
+
20
+ export type ActionGroupHandles = {
21
+ showFAB: () => void;
22
+ collapseFAB: () => void;
23
+ hideFAB: () => void;
33
24
  };
34
25
 
35
26
  export interface ActionGroupProps {
36
27
  /**
28
+ * @deprecated headerTitle will be removed in the next major release.
37
29
  * Title of the action group header.
38
30
  */
39
31
  headerTitle?: string;
@@ -42,7 +34,10 @@ export interface ActionGroupProps {
42
34
  * This function is called on pressing the FAB button.
43
35
  * */
44
36
  onPress?: () => void;
45
-
37
+ /**
38
+ * This function is called on pressing the FAB backdrop.
39
+ * */
40
+ onBackdropPress?: () => void;
46
41
  /**
47
42
  * Specify if the FAB button is in active state and the action group is shown.
48
43
  * */
@@ -66,87 +61,133 @@ export interface ActionGroupProps {
66
61
  /**
67
62
  * Action items of the action group.
68
63
  * */
69
-
70
64
  items?: Array<ActionItemProps>;
65
+
71
66
  /**
72
67
  * Testing id of the component.
73
68
  */
74
-
75
69
  testID?: string;
76
70
  }
77
- const ActionGroup = ({
78
- headerTitle,
79
- onPress,
80
- active,
81
- style,
82
- items,
83
- testID,
84
- fabTitle,
85
- fabIcon = 'add',
86
- }: ActionGroupProps) => {
87
- const tranlateXAnimation = useRef<Animated.Value>(
88
- new Animated.Value(active ? 1 : 0)
89
- );
90
- useEffect(() => {
91
- const animation = Animated.timing(tranlateXAnimation.current, {
92
- toValue: active ? 1 : 0,
93
- useNativeDriver: Platform.OS === 'ios' || Platform.OS === 'android',
94
- easing: Easing.inOut(Easing.cubic),
95
- });
96
-
97
- animation.start();
98
- }, [active]);
99
71
 
100
- const interpolatedTranlateXAnimation = tranlateXAnimation.current.interpolate(
72
+ const ActionGroup = forwardRef<ActionGroupHandles, ActionGroupProps>(
73
+ (
101
74
  {
102
- inputRange: [0, 1],
103
- outputRange: [400, 0],
104
- }
105
- );
106
- const interpolatedBackdropOpacityAnimation =
107
- tranlateXAnimation.current.interpolate({
108
- inputRange: [0, 1],
109
- outputRange: [0, 0.4],
110
- });
75
+ headerTitle,
76
+ onPress,
77
+ active,
78
+ style,
79
+ items,
80
+ testID,
81
+ fabTitle,
82
+ onBackdropPress,
83
+ fabIcon = 'add',
84
+ },
85
+ ref
86
+ ) => {
87
+ useDeprecation(
88
+ `FAB.ActionGroup's headerTitle prop will be removed in the next major release. Please remove it.`,
89
+ headerTitle !== undefined
90
+ );
111
91
 
112
- const interpolatedActionGroupOpacityAnimation =
113
- tranlateXAnimation.current.interpolate({
92
+ const theme = useTheme();
93
+ const fabRef = useRef<FABHandles>(null);
94
+ const animatedValue = useRef<Animated.Value>(
95
+ new Animated.Value(active ? 1 : 0)
96
+ );
97
+
98
+ React.useImperativeHandle(
99
+ ref,
100
+ () => ({
101
+ showFAB: () => fabRef.current?.show(),
102
+ collapseFAB: () => fabRef.current?.collapse(),
103
+ hideFAB: () => fabRef.current?.hide(),
104
+ }),
105
+ [fabRef]
106
+ );
107
+
108
+ React.useEffect(() => {
109
+ Animated.spring(animatedValue.current, {
110
+ toValue: active ? 1 : 0,
111
+ delay: 100,
112
+ useNativeDriver: Platform.OS !== 'web',
113
+ }).start();
114
+
115
+ if (active) {
116
+ fabRef.current?.collapse();
117
+ } else {
118
+ fabRef.current?.show();
119
+ }
120
+ }, [active]);
121
+
122
+ const actionGroupOpacity = animatedValue.current.interpolate({
114
123
  inputRange: [0, 1],
115
124
  outputRange: [0, 1],
116
125
  });
117
126
 
118
- return (
119
- <StyledContainer testID={testID} pointerEvents="box-none" style={style}>
120
- <StyledBackdrop
121
- pointerEvents={active ? 'auto' : 'box-none'}
122
- testID="back-drop"
123
- style={{ opacity: interpolatedBackdropOpacityAnimation }}
124
- />
125
- <StyledActionGroupContainer
126
- pointerEvents={active ? 'auto' : 'none'}
127
- testID="action-group"
128
- style={{
129
- opacity: interpolatedActionGroupOpacityAnimation,
130
- transform: [{ translateX: interpolatedTranlateXAnimation }],
131
- }}
132
- >
133
- {!!headerTitle && (
134
- <StyledHeaderText testID="header-text">
135
- {headerTitle}
136
- </StyledHeaderText>
137
- )}
138
- <ActionItemsListComponent items={items} />
139
- </StyledActionGroupContainer>
140
- <StyledFAB
141
- testID="fab"
142
- icon={fabIcon}
143
- onPress={onPress}
144
- animated
145
- active={active}
146
- title={fabTitle}
147
- />
148
- </StyledContainer>
149
- );
150
- };
127
+ return (
128
+ <StyledContainer testID={testID} pointerEvents="box-none" style={style}>
129
+ <Animated.View>
130
+ <StyledFAB
131
+ key="fab"
132
+ testID="fab"
133
+ icon={fabIcon}
134
+ onPress={onPress}
135
+ animated
136
+ active={active}
137
+ title={fabTitle}
138
+ ref={fabRef}
139
+ />
140
+ </Animated.View>
141
+ <Modal
142
+ visible={active}
143
+ animationType="fade"
144
+ transparent
145
+ statusBarTranslucent
146
+ >
147
+ <StyledContainerInModal testID={testID} style={[style]}>
148
+ <StyledBackdrop testID="back-drop" onPress={onBackdropPress} />
149
+ <StyledActionGroupContainer
150
+ testID="action-group"
151
+ pointerEvents="box-none"
152
+ style={{
153
+ opacity: actionGroupOpacity,
154
+ }}
155
+ >
156
+ <Box style={[style, { paddingBottom: 0 }]}>
157
+ {items?.map((itemProp, index) => (
158
+ <ActionItem
159
+ key={itemProp.key || `${itemProp.icon}_${itemProp.title}`}
160
+ {...itemProp}
161
+ index={active ? index : items.length - index}
162
+ active={active}
163
+ />
164
+ ))}
165
+ </Box>
166
+ </StyledActionGroupContainer>
167
+
168
+ {active && (
169
+ <StyledFAB
170
+ // This FAB is moved up a bit compared to the original FAB,
171
+ // set marginBottom to negative value to compensate for it
172
+ style={{
173
+ marginBottom: -theme.space.xxsmall,
174
+ }}
175
+ key="fab-in-portal"
176
+ testID="fab-in-portal"
177
+ icon={fabIcon}
178
+ onPress={onPress}
179
+ animated
180
+ active={active}
181
+ title={fabTitle}
182
+ />
183
+ )}
184
+ </StyledContainerInModal>
185
+ </Modal>
186
+ </StyledContainer>
187
+ );
188
+ }
189
+ );
190
+
191
+ ActionGroup.displayName = 'FAB.ActionGroup';
151
192
 
152
193
  export default ActionGroup;
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
- import { Animated, Easing, Platform, StyleSheet } from 'react-native';
3
- import { StyledFABIcon } from './StyledFAB';
2
+ import { Animated, Platform, StyleSheet } from 'react-native';
4
3
  import type { IconProps } from '../Icon';
4
+ import { StyledFABIcon } from './StyledFAB';
5
5
 
6
6
  const AnimatedIcons = Animated.createAnimatedComponent(StyledFABIcon);
7
7
 
@@ -14,11 +14,9 @@ const AnimatedFABIcon = ({ active, ...iconProps }: Props) => {
14
14
  new Animated.Value(active ? 1 : 0)
15
15
  );
16
16
  useEffect(() => {
17
- const animation = Animated.timing(rotateAnimation.current, {
17
+ const animation = Animated.spring(rotateAnimation.current, {
18
18
  toValue: active ? 1 : 0,
19
19
  useNativeDriver: Platform.OS === 'ios' || Platform.OS === 'android',
20
- easing: Easing.inOut(Easing.ease),
21
- duration: 300,
22
20
  });
23
21
 
24
22
  animation.start();
@@ -1,5 +1,13 @@
1
- import React from 'react';
2
- import type { StyleProp, ViewStyle } from 'react-native';
1
+ import React, { forwardRef } from 'react';
2
+ import {
3
+ Animated,
4
+ LayoutAnimation,
5
+ Platform,
6
+ StyleProp,
7
+ StyleSheet,
8
+ UIManager,
9
+ ViewStyle,
10
+ } from 'react-native';
3
11
  import { useTheme } from '../../theme';
4
12
  import type { IconName } from '../Icon';
5
13
  import { AnimatedFABIcon } from './AnimatedFABIcon';
@@ -10,6 +18,18 @@ import {
10
18
  StyledIconContainer,
11
19
  } from './StyledFAB';
12
20
 
21
+ export type FABHandles = {
22
+ show: () => void;
23
+ collapse: () => void;
24
+ hide: () => void;
25
+ };
26
+
27
+ if (Platform.OS === 'android') {
28
+ if (UIManager.setLayoutAnimationEnabledExperimental) {
29
+ UIManager.setLayoutAnimationEnabledExperimental(true);
30
+ }
31
+ }
32
+
13
33
  export interface FABProps {
14
34
  /**
15
35
  * Name of the Icon.
@@ -54,7 +74,6 @@ const IconOnlyContent = ({
54
74
  }: {
55
75
  icon: IconName;
56
76
  animated?: boolean;
57
-
58
77
  active?: boolean;
59
78
  }) => {
60
79
  if (animated) {
@@ -85,31 +104,154 @@ const IconWithTextContent = ({
85
104
  <StyledFABText>{title}</StyledFABText>
86
105
  </>
87
106
  );
88
- const FAB = ({
89
- onPress,
90
- title,
91
- icon,
92
- animated,
93
- testID,
94
- active,
95
- style,
96
- }: FABProps): JSX.Element => {
97
- const isIconOnly = !title;
98
- const theme = useTheme();
99
- return (
100
- <StyledFAB
101
- underlayColor={theme.__hd__.fab.colors.buttonPressedBackground}
102
- onPress={onPress}
103
- style={style}
104
- testID={testID}
105
- >
106
- {isIconOnly ? (
107
- <IconOnlyContent animated={animated} active={active} icon={icon} />
108
- ) : (
109
- <IconWithTextContent icon={icon} title={title} />
110
- )}
111
- </StyledFAB>
112
- );
107
+
108
+ const animateWidth = () => {
109
+ LayoutAnimation.configureNext({
110
+ duration: Platform.OS === 'ios' ? 200 : 400,
111
+ update: {
112
+ type: 'spring',
113
+ springDamping: Platform.OS === 'ios' ? 1 : 1.5,
114
+ },
115
+ });
113
116
  };
114
117
 
118
+ const FAB = forwardRef<FABHandles, FABProps>(
119
+ ({ onPress, title, icon, animated, testID, active, style }, ref) => {
120
+ const theme = useTheme();
121
+ const [displayState, setDisplayState] = React.useState({
122
+ hideTitle: false,
123
+ hideButton: false,
124
+ });
125
+ const isIconOnly = displayState.hideTitle || active || !title;
126
+
127
+ const animatedValues = {
128
+ opacity: React.useRef(new Animated.Value(1)).current,
129
+ width: React.useRef(new Animated.Value(1)).current,
130
+ translateY: React.useRef(new Animated.Value(0)).current,
131
+ };
132
+
133
+ const marginBottom = Number(StyleSheet.flatten(style)?.marginBottom) || 0;
134
+ const [buttonWidth, setButtonWidth] = React.useState(0);
135
+ const hasSetButtonWidth = buttonWidth > 0;
136
+
137
+ React.useImperativeHandle(
138
+ ref,
139
+ () => ({
140
+ show: () => {
141
+ Animated.spring(animatedValues.translateY, {
142
+ toValue: 0,
143
+ useNativeDriver: true,
144
+ }).start();
145
+
146
+ setDisplayState({
147
+ hideButton: false,
148
+ hideTitle: false,
149
+ });
150
+
151
+ animateWidth();
152
+
153
+ Animated.spring(animatedValues.opacity, {
154
+ toValue: 1,
155
+ useNativeDriver: true,
156
+ }).start();
157
+ },
158
+ collapse: () => {
159
+ Animated.parallel([
160
+ Animated.spring(animatedValues.opacity, {
161
+ toValue: 1,
162
+ useNativeDriver: true,
163
+ }),
164
+ Animated.spring(animatedValues.translateY, {
165
+ toValue: 0,
166
+ useNativeDriver: true,
167
+ }),
168
+ ]).start();
169
+
170
+ animateWidth();
171
+
172
+ setDisplayState({
173
+ hideButton: false,
174
+ hideTitle: true,
175
+ });
176
+ },
177
+ hide: () => {
178
+ Animated.stagger(20, [
179
+ Animated.spring(animatedValues.opacity, {
180
+ toValue: 0,
181
+ useNativeDriver: true,
182
+ }),
183
+ Animated.spring(animatedValues.translateY, {
184
+ toValue: 1,
185
+ useNativeDriver: true,
186
+ }),
187
+ ]).start(() => {
188
+ animateWidth();
189
+ setDisplayState((previousState) => ({
190
+ ...previousState,
191
+ hideButton: true,
192
+ }));
193
+ });
194
+ },
195
+ }),
196
+ []
197
+ );
198
+
199
+ return (
200
+ <StyledFAB
201
+ onLayout={(event) =>
202
+ !hasSetButtonWidth &&
203
+ !active &&
204
+ setButtonWidth(event.nativeEvent.layout.width)
205
+ }
206
+ underlayColor={theme.__hd__.fab.colors.buttonPressedBackground}
207
+ onPress={onPress}
208
+ style={[
209
+ style,
210
+ {
211
+ bottom: displayState.hideButton
212
+ ? -(marginBottom + theme.__hd__.fab.sizes.height * 2)
213
+ : StyleSheet.flatten(style)?.bottom,
214
+
215
+ transform: [
216
+ {
217
+ translateY: animatedValues.translateY.interpolate({
218
+ inputRange: [0, 1],
219
+ outputRange: [
220
+ 0,
221
+ marginBottom + theme.__hd__.fab.sizes.height * 2,
222
+ ],
223
+ }),
224
+ },
225
+ ],
226
+ },
227
+ ]}
228
+ testID={testID}
229
+ themeActive={active}
230
+ >
231
+ <Animated.View
232
+ style={{
233
+ flexDirection: 'row',
234
+ opacity: animatedValues.opacity.interpolate({
235
+ inputRange: [0, 1],
236
+ outputRange: [0, 1],
237
+ }),
238
+ }}
239
+ >
240
+ {isIconOnly ? (
241
+ <IconOnlyContent
242
+ animated={animated}
243
+ active={active}
244
+ icon={active ? 'add' : icon}
245
+ />
246
+ ) : (
247
+ <IconWithTextContent icon={icon} title={title} />
248
+ )}
249
+ </Animated.View>
250
+ </StyledFAB>
251
+ );
252
+ }
253
+ );
254
+
255
+ FAB.displayName = 'FAB';
256
+
115
257
  export default FAB;
@@ -1,27 +1,33 @@
1
1
  import styled from '@emotion/native';
2
- import type { TextProps, TouchableHighlightProps } from 'react-native';
3
- import { TouchableHighlight } from 'react-native';
2
+ import type { TextProps } from 'react-native';
3
+ import { Animated, TouchableHighlight } from 'react-native';
4
+ import Box from '../Box';
4
5
  import type { IconProps } from '../Icon';
5
6
  import Icon from '../Icon';
6
7
  import Typography from '../Typography';
7
- import Box from '../Box';
8
8
 
9
- const StyledFAB = styled(TouchableHighlight)<TouchableHighlightProps>(
10
- ({ theme }) => ({
11
- backgroundColor: theme.__hd__.fab.colors.buttonBackground,
12
- borderRadius: theme.radii.rounded,
13
- alignItems: 'center',
14
- justifyContent: 'center',
15
- alignSelf: 'flex-start',
16
- padding: theme.__hd__.fab.space.containerPadding,
17
- flexDirection: 'row',
18
- elevation: theme.__hd__.fab.shadows.elevation,
19
- shadowColor: theme.__hd__.fab.colors.shadow,
20
- shadowOffset: theme.__hd__.fab.shadows.offset,
21
- shadowRadius: theme.__hd__.fab.shadows.radius,
22
- shadowOpacity: theme.__hd__.fab.shadows.opacity,
23
- })
24
- );
9
+ const AnimatedTouchableHighlight =
10
+ Animated.createAnimatedComponent(TouchableHighlight);
11
+
12
+ const StyledFAB = styled(AnimatedTouchableHighlight)<{
13
+ themeActive?: boolean;
14
+ }>(({ theme, themeActive }) => ({
15
+ backgroundColor: themeActive
16
+ ? theme.__hd__.fab.colors.buttonActiveBackground
17
+ : theme.__hd__.fab.colors.buttonBackground,
18
+ borderRadius: theme.radii.rounded,
19
+ alignItems: 'center',
20
+ justifyContent: 'center',
21
+ alignSelf: 'flex-start',
22
+ padding: theme.__hd__.fab.space.containerPadding,
23
+ flexDirection: 'row',
24
+ elevation: theme.__hd__.fab.shadows.elevation,
25
+ shadowColor: theme.__hd__.fab.shadows.color,
26
+ shadowOffset: theme.__hd__.fab.shadows.offset,
27
+ shadowRadius: theme.__hd__.fab.shadows.radius,
28
+ shadowOpacity: theme.__hd__.fab.shadows.opacity,
29
+ height: theme.__hd__.fab.sizes.height,
30
+ }));
25
31
 
26
32
  const StyledFABIcon = styled(Icon)<IconProps>(({ theme }) => ({
27
33
  color: theme.__hd__.fab.colors.icon,
@@ -30,10 +36,7 @@ const StyledFABIcon = styled(Icon)<IconProps>(({ theme }) => ({
30
36
  textAlign: 'center',
31
37
  }));
32
38
 
33
- const StyledFABText = styled(Typography.Text)<TextProps>(({ theme }) => ({
34
- fontFamily: theme.__hd__.fab.fonts.title,
35
- fontSize: theme.__hd__.fab.fontSizes.title,
36
- lineHeight: theme.__hd__.fab.lineHeights.title,
39
+ const StyledFABText = styled(Typography.Body)<TextProps>(({ theme }) => ({
37
40
  color: theme.__hd__.fab.colors.titleText,
38
41
  textAlignVertical: 'center',
39
42
  textAlign: 'center',
@@ -6,8 +6,18 @@ import { StyledFAB, StyledFABIcon } from '../StyledFAB';
6
6
  describe('StyledFAB', () => {
7
7
  it('renders correctly', () => {
8
8
  const { toJSON } = renderWithTheme(
9
- <StyledFAB>
10
- <Typography.Text> button </Typography.Text>
9
+ <StyledFAB themeActive={false}>
10
+ <Typography.Body variant="small"> button </Typography.Body>
11
+ </StyledFAB>
12
+ );
13
+
14
+ expect(toJSON()).toMatchSnapshot();
15
+ });
16
+
17
+ it('renders correctly', () => {
18
+ const { toJSON } = renderWithTheme(
19
+ <StyledFAB themeActive>
20
+ <Typography.Body variant="small"> button </Typography.Body>
11
21
  </StyledFAB>
12
22
  );
13
23