@hero-design/rn 7.1.3-alpha6 → 7.2.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 (433) hide show
  1. package/.eslintrc.json +0 -6
  2. package/babel.config.js +0 -14
  3. package/es/index.js +2871 -9221
  4. package/jest-setup.ts +0 -1
  5. package/jest.config.js +2 -4
  6. package/lib/index.js +2916 -9248
  7. package/package.json +5 -7
  8. package/playground/components/BottomNavigation.tsx +7 -4
  9. package/playground/components/Card.tsx +141 -107
  10. package/playground/components/FAB.tsx +1 -4
  11. package/playground/components/Tabs.tsx +3 -4
  12. package/playground/index.tsx +42 -34
  13. package/src/components/Badge/StyledBadge.tsx +19 -19
  14. package/src/components/Badge/__tests__/Badge.spec.tsx +9 -18
  15. package/src/components/Badge/__tests__/__snapshots__/Badge.spec.tsx.snap +56 -108
  16. package/src/components/Badge/index.tsx +2 -4
  17. package/src/components/BottomNavigation/StyledBottomNavigation.tsx +42 -47
  18. package/src/components/BottomNavigation/__tests__/__snapshots__/{BottomNavigation.spec.tsx.snap → index.spec.tsx.snap} +130 -96
  19. package/src/components/BottomNavigation/__tests__/{BottomNavigation.spec.tsx → index.spec.tsx} +4 -4
  20. package/src/components/BottomNavigation/index.tsx +21 -21
  21. package/src/components/Button/IconButton.tsx +5 -5
  22. package/src/components/Button/__tests__/__snapshots__/index.spec.tsx.snap +7 -4
  23. package/src/components/Button/__tests__/index.spec.tsx +6 -12
  24. package/src/components/Card/StyledCard.tsx +6 -6
  25. package/src/components/Card/__tests__/StyledCard.spec.tsx +2 -7
  26. package/src/components/Card/__tests__/__snapshots__/StyledCard.spec.tsx.snap +8 -11
  27. package/src/components/Card/__tests__/__snapshots__/{Card.spec.tsx.snap → index.spec.tsx.snap} +2 -8
  28. package/src/components/Card/__tests__/index.spec.tsx +35 -0
  29. package/src/components/Divider/StyledDivider.tsx +18 -60
  30. package/src/components/Divider/__tests__/StyledDivider.spec.tsx +5 -10
  31. package/src/components/Divider/__tests__/__snapshots__/StyledDivider.spec.tsx.snap +106 -70
  32. package/src/components/Divider/index.tsx +1 -1
  33. package/src/components/FAB/ActionGroup/ActionItem.tsx +2 -4
  34. package/src/components/FAB/ActionGroup/StyledActionGroup.tsx +36 -37
  35. package/src/components/FAB/ActionGroup/StyledActionItem.tsx +26 -24
  36. package/src/components/FAB/ActionGroup/__tests__/__snapshots__/index.spec.tsx.snap +270 -244
  37. package/src/components/FAB/ActionGroup/__tests__/index.spec.tsx +29 -33
  38. package/src/components/FAB/ActionGroup/index.tsx +1 -5
  39. package/src/components/FAB/AnimatedFABIcon.tsx +1 -1
  40. package/src/components/FAB/FAB.tsx +5 -9
  41. package/src/components/FAB/StyledFAB.tsx +22 -0
  42. package/src/components/FAB/__tests__/AnimatedFABIcon.spec.tsx +3 -6
  43. package/src/components/FAB/__tests__/StyledFAB.spec.tsx +24 -0
  44. package/src/components/FAB/__tests__/__snapshots__/AnimatedFABIcon.spec.tsx.snap +14 -10
  45. package/src/components/FAB/__tests__/__snapshots__/StyledFAB.spec.tsx.snap +72 -0
  46. package/src/components/FAB/__tests__/__snapshots__/index.spec.tsx.snap +16 -17
  47. package/src/components/FAB/__tests__/index.spec.tsx +21 -26
  48. package/src/components/Icon/HeroIcon/index.tsx +5 -7
  49. package/src/components/Icon/__tests__/__snapshots__/{Icon.spec.tsx.snap → index.spec.tsx.snap} +21 -12
  50. package/src/components/Icon/__tests__/index.spec.tsx +25 -0
  51. package/src/components/Icon/index.tsx +1 -1
  52. package/src/components/Tabs/StyledTabs.tsx +44 -46
  53. package/src/components/Tabs/__tests__/__snapshots__/{Tabs.spec.tsx.snap → index.spec.tsx.snap} +85 -59
  54. package/src/components/Tabs/__tests__/{Tabs.spec.tsx → index.spec.tsx} +4 -4
  55. package/src/components/Tabs/index.tsx +33 -25
  56. package/src/components/Typography/Text/StyledText.tsx +19 -64
  57. package/src/components/Typography/Text/__tests__/__snapshots__/StyledText.spec.tsx.snap +90 -63
  58. package/src/emotion.d.ts +6 -0
  59. package/src/index.ts +8 -6
  60. package/src/testHelpers/renderWithTheme.tsx +2 -1
  61. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +60 -48
  62. package/src/theme/components/badge.ts +14 -5
  63. package/src/theme/components/bottomNavigation.ts +3 -3
  64. package/src/theme/components/card.ts +2 -2
  65. package/src/theme/components/divider.ts +6 -6
  66. package/src/theme/components/fab.ts +19 -17
  67. package/src/theme/components/tabs.ts +4 -4
  68. package/src/theme/components/typography.ts +4 -4
  69. package/src/theme/global/borders.ts +8 -2
  70. package/src/theme/global/colors.ts +3 -1
  71. package/src/theme/global/index.ts +31 -17
  72. package/src/theme/global/scale.ts +18 -0
  73. package/src/theme/global/space.ts +23 -13
  74. package/src/theme/global/typography.ts +71 -27
  75. package/src/theme/index.ts +27 -14
  76. package/src/types.ts +7 -0
  77. package/testUtils/setup.ts +11 -0
  78. package/tsconfig.json +1 -5
  79. package/types/src/components/Badge/StyledBadge.d.ts +16 -5
  80. package/types/src/components/Badge/index.d.ts +1 -1
  81. package/types/src/components/BottomNavigation/StyledBottomNavigation.d.ts +43 -9
  82. package/types/src/components/{Typography/Text/__test__ → BottomNavigation/__tests__}/index.spec.d.ts +0 -0
  83. package/types/src/components/BottomNavigation/index.d.ts +16 -11
  84. package/types/src/components/Button/IconButton.d.ts +5 -5
  85. package/types/src/components/Card/StyledCard.d.ts +7 -1
  86. package/types/src/components/{BottomNavigation/__tests__/BottomNavigation.spec.d.ts → Card/__tests__/index.spec.d.ts} +0 -0
  87. package/types/src/components/Divider/StyledDivider.d.ts +8 -2
  88. package/types/src/components/Divider/index.d.ts +1 -1
  89. package/types/src/components/FAB/ActionGroup/StyledActionGroup.d.ts +25 -7
  90. package/types/src/components/FAB/ActionGroup/StyledActionItem.d.ts +11 -2
  91. package/types/src/components/FAB/ActionGroup/index.d.ts +1 -1
  92. package/types/src/components/FAB/FAB.d.ts +4 -4
  93. package/types/src/components/FAB/StyledFAB.d.ts +14 -0
  94. package/types/src/components/{Card/__tests__/Card.spec.d.ts → FAB/__tests__/StyledFAB.spec.d.ts} +0 -0
  95. package/types/src/components/Icon/HeroIcon/index.d.ts +8 -2
  96. package/types/src/components/{FAB/__tests__/FABButton.spec.d.ts → Icon/__tests__/index.spec.d.ts} +0 -0
  97. package/types/src/components/Icon/index.d.ts +1 -1
  98. package/types/src/components/Icon/utils.d.ts +1 -1
  99. package/types/src/components/Tabs/StyledTabs.d.ts +43 -11
  100. package/types/src/components/{FAB/__tests__/StyledFABContainer.spec.d.ts → Tabs/__tests__/index.spec.d.ts} +0 -0
  101. package/types/src/components/Tabs/index.d.ts +15 -10
  102. package/types/src/components/Typography/Text/StyledText.d.ts +8 -2
  103. package/types/src/index.d.ts +6 -5
  104. package/types/src/theme/components/badge.d.ts +10 -3
  105. package/types/src/theme/components/bottomNavigation.d.ts +6 -3
  106. package/types/src/theme/components/card.d.ts +2 -2
  107. package/types/src/theme/components/divider.d.ts +6 -6
  108. package/types/src/theme/components/fab.d.ts +19 -17
  109. package/types/src/theme/components/tabs.d.ts +4 -4
  110. package/types/src/theme/components/typography.d.ts +4 -4
  111. package/types/src/theme/global/borders.d.ts +4 -3
  112. package/types/src/theme/global/colors.d.ts +2 -2
  113. package/types/src/theme/global/index.d.ts +10 -45
  114. package/types/src/theme/global/scale.d.ts +8 -0
  115. package/types/src/theme/global/space.d.ts +8 -7
  116. package/types/src/theme/global/typography.d.ts +9 -16
  117. package/types/src/theme/index.d.ts +2 -2
  118. package/types/src/types.d.ts +5 -0
  119. package/.expo/README.md +0 -15
  120. package/.expo/packager-info.json +0 -10
  121. package/.expo/settings.json +0 -10
  122. package/.expo/web/cache/development/babel-loader/015cd4023bdd8e0e3e1de310046d3b16.json +0 -1
  123. package/.expo/web/cache/development/babel-loader/0255192076dea2c7675549fa263a6722.json +0 -1
  124. package/.expo/web/cache/development/babel-loader/02c646fdcaa4819674f8e44dc29cc0aa.json +0 -1
  125. package/.expo/web/cache/development/babel-loader/02e944ba6b7532c77b5ecd94f5a52945.json +0 -1
  126. package/.expo/web/cache/development/babel-loader/06168282f87d39982c04c3b7725abef8.json +0 -1
  127. package/.expo/web/cache/development/babel-loader/064867cdc71ec7f38308957641ec0e5c.json +0 -1
  128. package/.expo/web/cache/development/babel-loader/06ca002e730e83bc0dc273752554bb0c.json +0 -1
  129. package/.expo/web/cache/development/babel-loader/07e86d93ebd8574948f718d80ecb1fad.json +0 -1
  130. package/.expo/web/cache/development/babel-loader/081a940d3ae9e0d20d13c22cc43c0a46.json +0 -1
  131. package/.expo/web/cache/development/babel-loader/085466d1c040fb7ef5d00248adeb9f1d.json +0 -1
  132. package/.expo/web/cache/development/babel-loader/08b94b37dd81e6f1b9909d84cc376c2e.json +0 -1
  133. package/.expo/web/cache/development/babel-loader/0a25801a974b0000e0a99da16c026d5c.json +0 -1
  134. package/.expo/web/cache/development/babel-loader/0a97090e9243b34fc136fda2ec55c961.json +0 -1
  135. package/.expo/web/cache/development/babel-loader/0c15db912477ec22c24f92d59cd33999.json +0 -1
  136. package/.expo/web/cache/development/babel-loader/0c784bc417f84aadf97818fbd4054b3f.json +0 -1
  137. package/.expo/web/cache/development/babel-loader/0eb233e1ecf7aa8cefdf1146268e2ef1.json +0 -1
  138. package/.expo/web/cache/development/babel-loader/0fa0699844293bd83681296074c82f83.json +0 -1
  139. package/.expo/web/cache/development/babel-loader/121bdee5f5cb95d16d99e4c933ebf864.json +0 -1
  140. package/.expo/web/cache/development/babel-loader/124896b4a24d61a32b980cbe17dfd86d.json +0 -1
  141. package/.expo/web/cache/development/babel-loader/15499f3a2f57c5182f92a767b52ccaa7.json +0 -1
  142. package/.expo/web/cache/development/babel-loader/15b64eb35bbb00e9b7d2e1ba5de504aa.json +0 -1
  143. package/.expo/web/cache/development/babel-loader/16f046b2bba77cc6b20c53ab67a8845c.json +0 -1
  144. package/.expo/web/cache/development/babel-loader/18296da1d79a9b7ed67aa73b3674c98d.json +0 -1
  145. package/.expo/web/cache/development/babel-loader/183bf8d5b8b0a24f311560391b75fb28.json +0 -1
  146. package/.expo/web/cache/development/babel-loader/18e69c8d4e2278d3ed0a2a9cf9459979.json +0 -1
  147. package/.expo/web/cache/development/babel-loader/19f6c3fb7aa14dc1a42f5d75d2b0e267.json +0 -1
  148. package/.expo/web/cache/development/babel-loader/1a87e69c2765213ad342b5f454c0a058.json +0 -1
  149. package/.expo/web/cache/development/babel-loader/1ae9718a5291beb1a34921e74351868d.json +0 -1
  150. package/.expo/web/cache/development/babel-loader/1be8f9a2939f282c2218a492c2083516.json +0 -1
  151. package/.expo/web/cache/development/babel-loader/1c33ab505b1f55675a070b3f19ab5fc6.json +0 -1
  152. package/.expo/web/cache/development/babel-loader/1c53ddb06e14036617c6be6b6ec02e93.json +0 -1
  153. package/.expo/web/cache/development/babel-loader/1ce0f519e92a6f10348175e6fa42fd6a.json +0 -1
  154. package/.expo/web/cache/development/babel-loader/1e150d4ac2c661fd694b6cddce785558.json +0 -1
  155. package/.expo/web/cache/development/babel-loader/1e64bc6f174a20385a44365e77cb71ff.json +0 -1
  156. package/.expo/web/cache/development/babel-loader/2168be4a82a7d5b116dd8fd18bd5ab62.json +0 -1
  157. package/.expo/web/cache/development/babel-loader/21dae0abf6ef0400ef25dfc87d1f4671.json +0 -1
  158. package/.expo/web/cache/development/babel-loader/2286dc8cd20eaa8051a3400057edd5ae.json +0 -1
  159. package/.expo/web/cache/development/babel-loader/22b0965d8ed07fcd7d323d92eb56a91d.json +0 -1
  160. package/.expo/web/cache/development/babel-loader/243541d6511909b66a90d2824fc71f14.json +0 -1
  161. package/.expo/web/cache/development/babel-loader/24781a54910c0940c738ec301eff4318.json +0 -1
  162. package/.expo/web/cache/development/babel-loader/24b80d0446b9c88886cd1f951632ab91.json +0 -1
  163. package/.expo/web/cache/development/babel-loader/24d40521282cac7bb526f9a7a3ab4de2.json +0 -1
  164. package/.expo/web/cache/development/babel-loader/260bba3675ce84e0a277a65fdb52f235.json +0 -1
  165. package/.expo/web/cache/development/babel-loader/266b79a5977223dbee00bdc2732e5697.json +0 -1
  166. package/.expo/web/cache/development/babel-loader/26879ba706c68b0226a1242f3c28c0e2.json +0 -1
  167. package/.expo/web/cache/development/babel-loader/2746a8c85fca2064b7728ecfc2d7e022.json +0 -1
  168. package/.expo/web/cache/development/babel-loader/28308843667ee35631612116de8ee705.json +0 -1
  169. package/.expo/web/cache/development/babel-loader/2af2c923d4fe0c7736be88b0e2fac2c0.json +0 -1
  170. package/.expo/web/cache/development/babel-loader/2b00b74ce36325af2dd1ecb817f0b69e.json +0 -1
  171. package/.expo/web/cache/development/babel-loader/2bf696f8a70361680c8d88ae78227b2c.json +0 -1
  172. package/.expo/web/cache/development/babel-loader/2fbe5d411c533de433abd361bfba9e2f.json +0 -1
  173. package/.expo/web/cache/development/babel-loader/308a319d3e13964a95b184dd7e7483a7.json +0 -1
  174. package/.expo/web/cache/development/babel-loader/30a3d4b4e5bc9d62a22ea1c05d50e3d7.json +0 -1
  175. package/.expo/web/cache/development/babel-loader/3297de3af524b87977cccb0d51c6fdb7.json +0 -1
  176. package/.expo/web/cache/development/babel-loader/335055e2588a3f703b6681b513053069.json +0 -1
  177. package/.expo/web/cache/development/babel-loader/33b1a3e46b0a9c62db1005f57d2ae76d.json +0 -1
  178. package/.expo/web/cache/development/babel-loader/342f4f51d784f91793e41c4c463ba640.json +0 -1
  179. package/.expo/web/cache/development/babel-loader/34fbec758cf381ee3d274245596e884e.json +0 -1
  180. package/.expo/web/cache/development/babel-loader/36b241618bf067485a740d2052476b6b.json +0 -1
  181. package/.expo/web/cache/development/babel-loader/377d170e62cdfc5531aca97043caa939.json +0 -1
  182. package/.expo/web/cache/development/babel-loader/383c6c820117d99d43918fdc5646ef07.json +0 -1
  183. package/.expo/web/cache/development/babel-loader/38845b2c5c1d2ac8c34919b0420e217a.json +0 -1
  184. package/.expo/web/cache/development/babel-loader/3a1b5dd13338d9b8323cc65ac0ee9084.json +0 -1
  185. package/.expo/web/cache/development/babel-loader/3b6cafaec7bd951cb292d35b7b777e16.json +0 -1
  186. package/.expo/web/cache/development/babel-loader/3dde711133a24dc39a127890207efc14.json +0 -1
  187. package/.expo/web/cache/development/babel-loader/3e411553708caef8421aca4ca7a50a79.json +0 -1
  188. package/.expo/web/cache/development/babel-loader/3e4bf0afe3180d43e6259fdc9e2cf018.json +0 -1
  189. package/.expo/web/cache/development/babel-loader/3f45c156aeb578585b9367e9f769213a.json +0 -1
  190. package/.expo/web/cache/development/babel-loader/401d9d9024ed8c80f8875e3a561ebe52.json +0 -1
  191. package/.expo/web/cache/development/babel-loader/4119e38050883976b0b6604154ff74b1.json +0 -1
  192. package/.expo/web/cache/development/babel-loader/43053f3b8cae10481352c2e2515e9d3a.json +0 -1
  193. package/.expo/web/cache/development/babel-loader/43908b6386757cbdce634000cdb05be5.json +0 -1
  194. package/.expo/web/cache/development/babel-loader/45b0b2f0892e55f6766ea3f6eedfedc8.json +0 -1
  195. package/.expo/web/cache/development/babel-loader/4641f770b3a3c0e9d65049d69666f14a.json +0 -1
  196. package/.expo/web/cache/development/babel-loader/464cf321c96f5d3a11c6e7c9ce022d89.json +0 -1
  197. package/.expo/web/cache/development/babel-loader/4884e4300b99f1c73a01bc4da1e69e2e.json +0 -1
  198. package/.expo/web/cache/development/babel-loader/49889d761f9b1b6827a7b9a4c2b63949.json +0 -1
  199. package/.expo/web/cache/development/babel-loader/49e011b42b0e8b3a01cad47999ddd5f4.json +0 -1
  200. package/.expo/web/cache/development/babel-loader/4a2372960ee87388844ee5eacf8a4e5d.json +0 -1
  201. package/.expo/web/cache/development/babel-loader/4d27b44a4344eb5d6a82f929b034fcb6.json +0 -1
  202. package/.expo/web/cache/development/babel-loader/4d6224362744b0eda6e64e9096c88e5e.json +0 -1
  203. package/.expo/web/cache/development/babel-loader/4d7371ca965d4e8d8e3b9fe29d72cb56.json +0 -1
  204. package/.expo/web/cache/development/babel-loader/4decc31212afed6aecb648cd482d8f58.json +0 -1
  205. package/.expo/web/cache/development/babel-loader/4dfa2b3056c60bce932123f61e4bc6d2.json +0 -1
  206. package/.expo/web/cache/development/babel-loader/4e008a6aedd78b935cba6d0b3d6bc7ae.json +0 -1
  207. package/.expo/web/cache/development/babel-loader/4e822161a7bda4d88f0867695e1ecfd9.json +0 -1
  208. package/.expo/web/cache/development/babel-loader/4f1e0269842359fe96d27c5b9bfd1ac4.json +0 -1
  209. package/.expo/web/cache/development/babel-loader/4fb1f40f3a67457861766892e335a81d.json +0 -1
  210. package/.expo/web/cache/development/babel-loader/507a1917d95e59163a96e7784d5288a7.json +0 -1
  211. package/.expo/web/cache/development/babel-loader/50e87c60a46b4cdf0487b5edc043be30.json +0 -1
  212. package/.expo/web/cache/development/babel-loader/530461df12ae0b0f45c0d457547c372e.json +0 -1
  213. package/.expo/web/cache/development/babel-loader/5339c25a34fe42823b7a1d2e1cdc6546.json +0 -1
  214. package/.expo/web/cache/development/babel-loader/536ca6a6eed1bcdac31786e72dedea80.json +0 -1
  215. package/.expo/web/cache/development/babel-loader/53cd7a6341558d4da20796dc5ebd58bb.json +0 -1
  216. package/.expo/web/cache/development/babel-loader/540b224b100181005e79f2dadb1edbf8.json +0 -1
  217. package/.expo/web/cache/development/babel-loader/542c478f2a9a2ca89b6b87961cb48922.json +0 -1
  218. package/.expo/web/cache/development/babel-loader/54749024a5585009dc5b67e1b0d9dbdc.json +0 -1
  219. package/.expo/web/cache/development/babel-loader/5566a5cf483f5a29e31e71e44bd4ee31.json +0 -1
  220. package/.expo/web/cache/development/babel-loader/56014c53cc4a460aedbf6b315b7a83d1.json +0 -1
  221. package/.expo/web/cache/development/babel-loader/592bfc0572fc2bceb23e0650a747eaa8.json +0 -1
  222. package/.expo/web/cache/development/babel-loader/5a57cc696da8aefee15249d630caa27a.json +0 -1
  223. package/.expo/web/cache/development/babel-loader/5b2adce8bdaf8fa5bdaf1455f271e3c8.json +0 -1
  224. package/.expo/web/cache/development/babel-loader/5b306fddfa1f5d9e99d311532bd0139c.json +0 -1
  225. package/.expo/web/cache/development/babel-loader/5bbe045789809b2f64e2bd58eb420aa3.json +0 -1
  226. package/.expo/web/cache/development/babel-loader/5d7aefda6066de8bdbb1bcb007d1b5db.json +0 -1
  227. package/.expo/web/cache/development/babel-loader/5d82ac4048edb6410bf53e83cbcbb922.json +0 -1
  228. package/.expo/web/cache/development/babel-loader/5e11b649fa3602e096c920767cb436e3.json +0 -1
  229. package/.expo/web/cache/development/babel-loader/5e6d5abccf648c1a866e21ad2a09adfd.json +0 -1
  230. package/.expo/web/cache/development/babel-loader/5f5b8027c4d87d9e0feea8462780e8ad.json +0 -1
  231. package/.expo/web/cache/development/babel-loader/5fb192b131f2f50d41e33fe34dbbc297.json +0 -1
  232. package/.expo/web/cache/development/babel-loader/604249a15ce1c8e541864121ac7ac587.json +0 -1
  233. package/.expo/web/cache/development/babel-loader/61137d04349f30b618be58175ad9d350.json +0 -1
  234. package/.expo/web/cache/development/babel-loader/61ce8c3d59dde8eac802f308f9acc828.json +0 -1
  235. package/.expo/web/cache/development/babel-loader/6391d65a84100349eba3acb527e6b030.json +0 -1
  236. package/.expo/web/cache/development/babel-loader/6500ab6cfd39dbfff785d348bf367be8.json +0 -1
  237. package/.expo/web/cache/development/babel-loader/655221527a35c47d0109d3c96a8da168.json +0 -1
  238. package/.expo/web/cache/development/babel-loader/65568c39c8b15c78a96d4caf9941129b.json +0 -1
  239. package/.expo/web/cache/development/babel-loader/657adfbea82cd6254f7ac85151e6ea52.json +0 -1
  240. package/.expo/web/cache/development/babel-loader/66c4915ff6ebfde747894fd3f427b9c7.json +0 -1
  241. package/.expo/web/cache/development/babel-loader/6b558032ef2af0092093a0e2315e3b37.json +0 -1
  242. package/.expo/web/cache/development/babel-loader/6cc8c7be4e8e8792ad698f10623c9b11.json +0 -1
  243. package/.expo/web/cache/development/babel-loader/6e14a5e499ef7e25ca0cccb6269e2f5a.json +0 -1
  244. package/.expo/web/cache/development/babel-loader/70d42954cfcb018f13bad222cfdd26c2.json +0 -1
  245. package/.expo/web/cache/development/babel-loader/70e5d0fb55302845630dc7022fcab612.json +0 -1
  246. package/.expo/web/cache/development/babel-loader/7187c947a3186dfc0857f64da0908ecf.json +0 -1
  247. package/.expo/web/cache/development/babel-loader/71ff258c6f6d9b34829e45fd9452dd3a.json +0 -1
  248. package/.expo/web/cache/development/babel-loader/72447ee2c89506d47319627069907f4b.json +0 -1
  249. package/.expo/web/cache/development/babel-loader/72bfb7460b7b81f7f3bbddc81fc8e7dc.json +0 -1
  250. package/.expo/web/cache/development/babel-loader/731d03a0a67ecaf9a9383d41beae7fd4.json +0 -1
  251. package/.expo/web/cache/development/babel-loader/741251e4d56c2c8722a5b9a0bc8b36dd.json +0 -1
  252. package/.expo/web/cache/development/babel-loader/747257270c398282d135060092b5ffc4.json +0 -1
  253. package/.expo/web/cache/development/babel-loader/74852aa6ce6f71235218eb6f1a120430.json +0 -1
  254. package/.expo/web/cache/development/babel-loader/74afe49311fab37261730b1ea83897a1.json +0 -1
  255. package/.expo/web/cache/development/babel-loader/7535495406e9daac2cf50eddcbcf984f.json +0 -1
  256. package/.expo/web/cache/development/babel-loader/76a96c09b41232a1027eb57667bed4cd.json +0 -1
  257. package/.expo/web/cache/development/babel-loader/77b71e7070039d3b0809426997ec6355.json +0 -1
  258. package/.expo/web/cache/development/babel-loader/79febcd0920ccdc7d95510faa84cd785.json +0 -1
  259. package/.expo/web/cache/development/babel-loader/7a05a01c29184e51101a5896e6771068.json +0 -1
  260. package/.expo/web/cache/development/babel-loader/7b67bf87b7a24ce1bd0d21be94d39712.json +0 -1
  261. package/.expo/web/cache/development/babel-loader/7c10bbaa16fc3f92c14dc81ed9a103e2.json +0 -1
  262. package/.expo/web/cache/development/babel-loader/7e1434686597dbe27bbdf28db628678b.json +0 -1
  263. package/.expo/web/cache/development/babel-loader/8168bf7926790fd88c46d02691141eb3.json +0 -1
  264. package/.expo/web/cache/development/babel-loader/8261d9b6445c3ae4f3db3b5a87a32bfd.json +0 -1
  265. package/.expo/web/cache/development/babel-loader/82711d1d11135fe3c5f761ef84546cca.json +0 -1
  266. package/.expo/web/cache/development/babel-loader/82a952063dc4a552385e994d051987da.json +0 -1
  267. package/.expo/web/cache/development/babel-loader/840477709eff8cb91896d04291047917.json +0 -1
  268. package/.expo/web/cache/development/babel-loader/84f16ae9077a77a1f938db11c92e5cb0.json +0 -1
  269. package/.expo/web/cache/development/babel-loader/8611b6dbd6285e6aa281a8560c089b32.json +0 -1
  270. package/.expo/web/cache/development/babel-loader/877250c4b852a8c68a5787f00473bade.json +0 -1
  271. package/.expo/web/cache/development/babel-loader/878c86d46f1cc1c2e575715bb753a6c2.json +0 -1
  272. package/.expo/web/cache/development/babel-loader/89b0b1e82520bf4a83fb46a5d5e3051f.json +0 -1
  273. package/.expo/web/cache/development/babel-loader/8ace816b6b5d313af06a110d8fffdd29.json +0 -1
  274. package/.expo/web/cache/development/babel-loader/8c4251482b1bb231323018ad7f762c79.json +0 -1
  275. package/.expo/web/cache/development/babel-loader/8c852e6d1a4869af48b20deea5689c8e.json +0 -1
  276. package/.expo/web/cache/development/babel-loader/8cc22acf99bb15df0804268c9936a316.json +0 -1
  277. package/.expo/web/cache/development/babel-loader/8cda840d3c6065c9f5d94109ac5ceac8.json +0 -1
  278. package/.expo/web/cache/development/babel-loader/8da5a65a25b8617cc4b0f363b54f17a9.json +0 -1
  279. package/.expo/web/cache/development/babel-loader/8ed28a112dbd10ae72c4404ed767005a.json +0 -1
  280. package/.expo/web/cache/development/babel-loader/8f496b2cd6790e83bab10d24aae43247.json +0 -1
  281. package/.expo/web/cache/development/babel-loader/9066a94a8de4a1e5823cfd03c3c65c22.json +0 -1
  282. package/.expo/web/cache/development/babel-loader/91ebd1694a594c00836231f13fcb5ab8.json +0 -1
  283. package/.expo/web/cache/development/babel-loader/954de33d98429fe08ac02c788703effd.json +0 -1
  284. package/.expo/web/cache/development/babel-loader/954fcaa67e62fee1d0e55770c29643a9.json +0 -1
  285. package/.expo/web/cache/development/babel-loader/95633d8353ddde580626714ebeff4a3e.json +0 -1
  286. package/.expo/web/cache/development/babel-loader/95b1ef2ed750aa97d708fa5d1da11701.json +0 -1
  287. package/.expo/web/cache/development/babel-loader/95d8acbfa7ec33bf53408384561f8f59.json +0 -1
  288. package/.expo/web/cache/development/babel-loader/961bc9fd17fd516ae1093a6bea77b236.json +0 -1
  289. package/.expo/web/cache/development/babel-loader/96afd45a8ee5c316e8d2cdeab372d2d1.json +0 -1
  290. package/.expo/web/cache/development/babel-loader/96f2624d06f0d9c15f72fe52998bb3b5.json +0 -1
  291. package/.expo/web/cache/development/babel-loader/972f4e43ba279ed169c44d25e0badb76.json +0 -1
  292. package/.expo/web/cache/development/babel-loader/9800ddc64188c0c913c560451b4f20f9.json +0 -1
  293. package/.expo/web/cache/development/babel-loader/9a44846903f5dd2ed5c6ca62986c4d7b.json +0 -1
  294. package/.expo/web/cache/development/babel-loader/9afeae36f511af6858fe68f7e94de5fc.json +0 -1
  295. package/.expo/web/cache/development/babel-loader/9b9e501c7e3b15da22d1b1519d390a93.json +0 -1
  296. package/.expo/web/cache/development/babel-loader/9ba221ab0e27ecfc06fa08f1bd338d91.json +0 -1
  297. package/.expo/web/cache/development/babel-loader/9dc84383648386cdd64384268aaba4cd.json +0 -1
  298. package/.expo/web/cache/development/babel-loader/9ed0c292f501200dbab3287f89b74285.json +0 -1
  299. package/.expo/web/cache/development/babel-loader/9ff02f1934b1011e9f1702444f6ade8b.json +0 -1
  300. package/.expo/web/cache/development/babel-loader/a00673b61f03f25ca7d5dda9ec7f1684.json +0 -1
  301. package/.expo/web/cache/development/babel-loader/a11f1fec9b3c8224ec8a3561e9d39607.json +0 -1
  302. package/.expo/web/cache/development/babel-loader/a138071c6b457813fa75f80257c00948.json +0 -1
  303. package/.expo/web/cache/development/babel-loader/a13f4194bebf279521f1219c7f0edfe5.json +0 -1
  304. package/.expo/web/cache/development/babel-loader/a20bc8b3ff9c6f0a6d0505119c7c8e4b.json +0 -1
  305. package/.expo/web/cache/development/babel-loader/a2499bb844484b72ab0bd9e19b577a2a.json +0 -1
  306. package/.expo/web/cache/development/babel-loader/a3690c2af258782c6e54d70965e2d702.json +0 -1
  307. package/.expo/web/cache/development/babel-loader/a3b408c4e99dbfe5166c61130962d530.json +0 -1
  308. package/.expo/web/cache/development/babel-loader/a3d400d230600d4606a39b88b1a50ce9.json +0 -1
  309. package/.expo/web/cache/development/babel-loader/a576aa09c4387662d5041dc16e071e7d.json +0 -1
  310. package/.expo/web/cache/development/babel-loader/aadddefc328de2a87f9585c8b9cf1ddb.json +0 -1
  311. package/.expo/web/cache/development/babel-loader/abfcdee9f49c8512a556c8d96aab05b0.json +0 -1
  312. package/.expo/web/cache/development/babel-loader/af2abfdb26938b4671383c19a474c162.json +0 -1
  313. package/.expo/web/cache/development/babel-loader/afe4775e080557f919d69bece91f9b2e.json +0 -1
  314. package/.expo/web/cache/development/babel-loader/b03a4c4f01d00d65481849a79f542339.json +0 -1
  315. package/.expo/web/cache/development/babel-loader/b161867d1c22ab0db168cb41f31e3821.json +0 -1
  316. package/.expo/web/cache/development/babel-loader/b1a28b49b320580ad2d46a362b06190e.json +0 -1
  317. package/.expo/web/cache/development/babel-loader/b21a05f75cdf7d99468ea135e93764b4.json +0 -1
  318. package/.expo/web/cache/development/babel-loader/b23f758a73c6ba11c5cbddc73adfe6a0.json +0 -1
  319. package/.expo/web/cache/development/babel-loader/b2cc4b4fb8a4d19be9c69abaa2a93cb6.json +0 -1
  320. package/.expo/web/cache/development/babel-loader/b300fad9fcb11f4867e14c4aace9b942.json +0 -1
  321. package/.expo/web/cache/development/babel-loader/b33a1081489cf7b79984ef0a745448a8.json +0 -1
  322. package/.expo/web/cache/development/babel-loader/b436db3f88511bc5455c31bd368082c4.json +0 -1
  323. package/.expo/web/cache/development/babel-loader/b4c9da64b6d0ba5eb3caf414ca166637.json +0 -1
  324. package/.expo/web/cache/development/babel-loader/b56dceadf60beadf0d3374143c0b1603.json +0 -1
  325. package/.expo/web/cache/development/babel-loader/b76d9d60e417624f1df89b5add1d2db8.json +0 -1
  326. package/.expo/web/cache/development/babel-loader/b790b246d8bb0a38f5796cf5799b17f2.json +0 -1
  327. package/.expo/web/cache/development/babel-loader/b89ff8b3e2ec84a11907141f5e517bfe.json +0 -1
  328. package/.expo/web/cache/development/babel-loader/b955a4568536fcc96a9f4110da577064.json +0 -1
  329. package/.expo/web/cache/development/babel-loader/bab60f8582caa8ab641521aa39541ff7.json +0 -1
  330. package/.expo/web/cache/development/babel-loader/baf8ec42b5295bf9b71564fe06dff559.json +0 -1
  331. package/.expo/web/cache/development/babel-loader/bbad1fdb8bad7c28c7859a0f188d3a7b.json +0 -1
  332. package/.expo/web/cache/development/babel-loader/be1eb03dbd5cd69bbffa7ae2a6e9d668.json +0 -1
  333. package/.expo/web/cache/development/babel-loader/be2fcf3973e484a6a56e37129b5eaaf7.json +0 -1
  334. package/.expo/web/cache/development/babel-loader/bf8cf6088e983893d5b4c8bc034427e4.json +0 -1
  335. package/.expo/web/cache/development/babel-loader/bfcb86bceac05155e5308c18bdd3fe08.json +0 -1
  336. package/.expo/web/cache/development/babel-loader/c172563a78f317bdf0e36e24dde3452d.json +0 -1
  337. package/.expo/web/cache/development/babel-loader/c46ad8673d03b7db6d8a2c93ed6b3802.json +0 -1
  338. package/.expo/web/cache/development/babel-loader/c59a0c339fabfd6318413aa25031c201.json +0 -1
  339. package/.expo/web/cache/development/babel-loader/c62e34d8d462d6191e1dc14c5395d52b.json +0 -1
  340. package/.expo/web/cache/development/babel-loader/c74e4bc2f5768aff42dd3c55d81749c8.json +0 -1
  341. package/.expo/web/cache/development/babel-loader/c75a76b3e08859524b69d60f8bf1df0f.json +0 -1
  342. package/.expo/web/cache/development/babel-loader/c88179e7d8d1ca25305bfc867939f5a3.json +0 -1
  343. package/.expo/web/cache/development/babel-loader/caf356c64a9f318b905731a25c8caf91.json +0 -1
  344. package/.expo/web/cache/development/babel-loader/ccaedd363abc01c405579524b8bbaf35.json +0 -1
  345. package/.expo/web/cache/development/babel-loader/cd79d69eeae7dbcdc442f692ce8a9272.json +0 -1
  346. package/.expo/web/cache/development/babel-loader/cd9063bacb890d6d5a2e981754ccf164.json +0 -1
  347. package/.expo/web/cache/development/babel-loader/ce2f3ca01216078ce7e5a74516dbfc4c.json +0 -1
  348. package/.expo/web/cache/development/babel-loader/ce604f4f65dfe84b11bbec60230afff1.json +0 -1
  349. package/.expo/web/cache/development/babel-loader/cff5797fff55ca8e98d3118c9e7250d6.json +0 -1
  350. package/.expo/web/cache/development/babel-loader/d00c274746869d9a4c810f940808ca3e.json +0 -1
  351. package/.expo/web/cache/development/babel-loader/d139c5fbc81478cca93e6b4a926b7fad.json +0 -1
  352. package/.expo/web/cache/development/babel-loader/d226ab1782131db078fc56761777579a.json +0 -1
  353. package/.expo/web/cache/development/babel-loader/d3c10e924f2ce49ca4e0a8bc4d800047.json +0 -1
  354. package/.expo/web/cache/development/babel-loader/d6f1318a1043ef95ef641a9314445194.json +0 -1
  355. package/.expo/web/cache/development/babel-loader/d96467b93e0c8535e1d5dac15bda0d22.json +0 -1
  356. package/.expo/web/cache/development/babel-loader/da79a62f9b35ea1114a46be959df1c0c.json +0 -1
  357. package/.expo/web/cache/development/babel-loader/dbd0371650c94f023fc4464f7a30c068.json +0 -1
  358. package/.expo/web/cache/development/babel-loader/ded9ef4c8d70487402a7ed05aaa42bef.json +0 -1
  359. package/.expo/web/cache/development/babel-loader/e267b9a10da82d7c9d27a0a6d2f15d6b.json +0 -1
  360. package/.expo/web/cache/development/babel-loader/e3203299dd14cd528fb01e684c97f030.json +0 -1
  361. package/.expo/web/cache/development/babel-loader/e3403556a7bef19920ff892e7ae71a33.json +0 -1
  362. package/.expo/web/cache/development/babel-loader/e4d3d45445df8599087f3f379416f83e.json +0 -1
  363. package/.expo/web/cache/development/babel-loader/e50007c2b54696bab5256823bd8b75b9.json +0 -1
  364. package/.expo/web/cache/development/babel-loader/e505af1d2b9f766ae21c2c653bc1f0eb.json +0 -1
  365. package/.expo/web/cache/development/babel-loader/e529cbcc9a784bb39cb3f93b5916cdea.json +0 -1
  366. package/.expo/web/cache/development/babel-loader/e5e73e920ce1cc98aec12c63b7239f4f.json +0 -1
  367. package/.expo/web/cache/development/babel-loader/e5f18619a8f76be87191ef677841e2a4.json +0 -1
  368. package/.expo/web/cache/development/babel-loader/e6eb03aca0506d39f23ca4f3c83aa516.json +0 -1
  369. package/.expo/web/cache/development/babel-loader/e9a8c10622926d4b2e69ab52bd21997d.json +0 -1
  370. package/.expo/web/cache/development/babel-loader/eada955a7a1f7eccb8daa2d3e2e00359.json +0 -1
  371. package/.expo/web/cache/development/babel-loader/eb765434dad51366d5e994157844242b.json +0 -1
  372. package/.expo/web/cache/development/babel-loader/ebb9e1b4c723d0cd4d0ebac704bdbd2e.json +0 -1
  373. package/.expo/web/cache/development/babel-loader/ed91f60f62296cb2284d70d9f8e8607e.json +0 -1
  374. package/.expo/web/cache/development/babel-loader/edb4691fac98a028668fb1f0afd0471c.json +0 -1
  375. package/.expo/web/cache/development/babel-loader/ef239f9c50d12e0a9514accb8a19aa62.json +0 -1
  376. package/.expo/web/cache/development/babel-loader/efa1697210dffc161da37a2bf66914eb.json +0 -1
  377. package/.expo/web/cache/development/babel-loader/f0f1a470b5e186d352c84c767337086f.json +0 -1
  378. package/.expo/web/cache/development/babel-loader/f232ab08dc4147d3925c210ac21902cf.json +0 -1
  379. package/.expo/web/cache/development/babel-loader/f24954a77b038f86faabed1c01850607.json +0 -1
  380. package/.expo/web/cache/development/babel-loader/f260775a30a227263e75172591c552dd.json +0 -1
  381. package/.expo/web/cache/development/babel-loader/f3ec90f50a726109daca5a9d5c2e70d1.json +0 -1
  382. package/.expo/web/cache/development/babel-loader/f546bb0d85ea302b502ca4c8f7f2375e.json +0 -1
  383. package/.expo/web/cache/development/babel-loader/f58eea2525ec523b6cfef3cee01b55cd.json +0 -1
  384. package/.expo/web/cache/development/babel-loader/f6e983c3ec14d5a79e2fa722aaf4bea5.json +0 -1
  385. package/.expo/web/cache/development/babel-loader/f75a9c98751a201f9b7c208e0cbc1f19.json +0 -1
  386. package/.expo/web/cache/development/babel-loader/f7a3bc17fcdef31de4f4fc1152872eca.json +0 -1
  387. package/.expo/web/cache/development/babel-loader/f7b6d4fe4161fc5d6562a61b0b11f7e2.json +0 -1
  388. package/.expo/web/cache/development/babel-loader/f8c5e9dacf5878f90c86883e982f0227.json +0 -1
  389. package/.expo/web/cache/development/babel-loader/f8f784315a22e068136d73f99db42e30.json +0 -1
  390. package/.expo/web/cache/development/babel-loader/f9f931f3f27e2b3dff7fd9fb4fcf4bf3.json +0 -1
  391. package/.expo/web/cache/development/babel-loader/fa9d8fc1d56b04d006c0c18688a640fe.json +0 -1
  392. package/.expo/web/cache/development/babel-loader/fc660bf5528c70224ec6c3295a4f1a5e.json +0 -1
  393. package/.expo/web/cache/development/babel-loader/fd8b9e4327116ec3a3a6444e0ae6837d.json +0 -1
  394. package/.expo/web/cache/development/babel-loader/fdd2ca3ec9b54d1f53453b6d8632c0f5.json +0 -1
  395. package/.expo/web/cache/development/babel-loader/ff2eab785490c90e174666553fff7e66.json +0 -1
  396. package/.expo/web/cache/development/babel-loader/ffe419731db23fbdcca1bddb7cadae71.json +0 -1
  397. package/.expo/xcodebuild-error.log +0 -4
  398. package/.expo/xcodebuild.log +0 -20
  399. package/.tool-versions +0 -2
  400. package/src/components/Card/__tests__/Card.spec.tsx +0 -36
  401. package/src/components/FAB/StyledFABContainer.tsx +0 -14
  402. package/src/components/FAB/StyledFABIcon.tsx +0 -9
  403. package/src/components/FAB/__tests__/StyledFABContainer.spec.tsx +0 -18
  404. package/src/components/FAB/__tests__/StyledFABIcon.spec.tsx +0 -16
  405. package/src/components/FAB/__tests__/__snapshots__/StyledFABContainer.spec.tsx.snap +0 -46
  406. package/src/components/FAB/__tests__/__snapshots__/StyledFABIcon.spec.tsx.snap +0 -21
  407. package/src/components/Icon/__tests__/Icon.spec.tsx +0 -36
  408. package/src/styled-components.ts +0 -14
  409. package/src/styled.d.ts +0 -7
  410. package/types/components/Card/StyledView.d.ts +0 -12
  411. package/types/components/Card/index.d.ts +0 -0
  412. package/types/index.d.ts +0 -4
  413. package/types/src/components/FAB/FABButton.d.ts +0 -30
  414. package/types/src/components/FAB/MenuList/MenuItem.d.ts +0 -15
  415. package/types/src/components/FAB/MenuList/StyleBackDrop.d.ts +0 -5
  416. package/types/src/components/FAB/MenuList/StyledHeaderText.d.ts +0 -3
  417. package/types/src/components/FAB/MenuList/StyledMenuItem.d.ts +0 -4
  418. package/types/src/components/FAB/MenuList/__tests__/index.spec.d.ts +0 -1
  419. package/types/src/components/FAB/MenuList/index.d.ts +0 -27
  420. package/types/src/components/FAB/StyledFABContainer.d.ts +0 -3
  421. package/types/src/components/FAB/StyledFABIcon.d.ts +0 -3
  422. package/types/src/components/FAB/__tests__/StyledFABIcon.spec.d.ts +0 -1
  423. package/types/src/components/Icon/__tests__/Icon.spec.d.ts +0 -1
  424. package/types/src/components/Tabs/__tests__/Tabs.spec.d.ts +0 -1
  425. package/types/src/components/Typography/Text/__test__/StyledText.spec.d.ts +0 -1
  426. package/types/src/styled-components.d.ts +0 -6
  427. package/types/styled-components.d.ts +0 -6
  428. package/types/theme/components/exampleComponent.d.ts +0 -14
  429. package/types/theme/global/colors.d.ts +0 -24
  430. package/types/theme/global/index.d.ts +0 -58
  431. package/types/theme/global/space.d.ts +0 -12
  432. package/types/theme/global/typography.d.ts +0 -21
  433. package/types/theme/index.d.ts +0 -11
@@ -1,21 +1,35 @@
1
- import { systemPalette } from './colors';
2
- import { space } from './space';
3
- import { fonts, fontSizes, lineHeights } from './typography';
4
- import { borderWidths } from './borders';
1
+ import { scale as defaultScale, Scale } from './scale';
2
+ import { systemPalette as defaultSystemPalette, SystemPalette } from './colors';
3
+ import { getFonts, getFontSizes, getLineHeights } from './typography';
4
+ import { getSpace } from './space';
5
+ import { getBorderWidths } from './borders';
5
6
 
6
- const globalTheme = {
7
- colors: {
8
- ...systemPalette,
9
- },
10
- space,
11
- fonts,
12
- fontSizes,
13
- lineHeights,
14
- borderWidths,
15
- };
7
+ const getGlobalTheme = (scale: Scale, systemPalette: SystemPalette) => {
8
+ const fonts = getFonts(scale.font);
9
+ const fontSizes = getFontSizes(scale.fontSize);
10
+ const lineHeights = getLineHeights(fontSizes);
11
+ const borderWidths = getBorderWidths(scale.borderWidth);
12
+ const space = getSpace(scale.space);
16
13
 
17
- type GlobalTheme = typeof globalTheme;
14
+ return {
15
+ colors: {
16
+ ...systemPalette,
17
+ },
18
+ fonts,
19
+ fontSizes,
20
+ lineHeights,
21
+ borderWidths,
22
+ space,
23
+ };
24
+ };
18
25
 
19
- export { GlobalTheme };
26
+ type GlobalTheme = ReturnType<typeof getGlobalTheme>;
20
27
 
21
- export default globalTheme;
28
+ export {
29
+ GlobalTheme,
30
+ Scale,
31
+ SystemPalette,
32
+ getGlobalTheme,
33
+ defaultScale,
34
+ defaultSystemPalette,
35
+ };
@@ -0,0 +1,18 @@
1
+ const BASE_BORDER_WIDTH = 1;
2
+
3
+ const BASE_SPACE = 8;
4
+
5
+ const BASE_FONT = 'BeVietnamPro';
6
+
7
+ const BASE_FONT_SIZE = 10;
8
+
9
+ const scale = {
10
+ borderWidth: BASE_BORDER_WIDTH,
11
+ space: BASE_SPACE,
12
+ font: BASE_FONT,
13
+ fontSize: BASE_FONT_SIZE,
14
+ };
15
+
16
+ type Scale = typeof scale;
17
+
18
+ export { scale, Scale };
@@ -1,17 +1,27 @@
1
1
  import { scale } from '../../utils/scale';
2
2
 
3
- const BASE = 8;
3
+ interface Space {
4
+ large: number;
5
+ medium: number;
6
+ small: number;
7
+ xlarge: number;
8
+ xsmall: number;
9
+ xxlarge: number;
10
+ xxsmall: number;
11
+ xxxlarge: number;
12
+ xxxxlarge: number;
13
+ }
4
14
 
5
- const space = {
6
- xxsmall: scale(BASE * 0.25),
7
- xsmall: scale(BASE * 0.5),
8
- small: scale(BASE),
9
- medium: scale(BASE * 2),
10
- large: scale(BASE * 3),
11
- xlarge: scale(BASE * 4),
12
- xxlarge: scale(BASE * 5),
13
- xxxlarge: scale(BASE * 6),
14
- xxxxlarge: scale(BASE * 7),
15
- };
15
+ const getSpace = (baseSpace: number): Space => ({
16
+ xxsmall: scale(baseSpace * 0.25),
17
+ xsmall: scale(baseSpace * 0.5),
18
+ small: scale(baseSpace),
19
+ medium: scale(baseSpace * 2),
20
+ large: scale(baseSpace * 3),
21
+ xlarge: scale(baseSpace * 4),
22
+ xxlarge: scale(baseSpace * 5),
23
+ xxxlarge: scale(baseSpace * 6),
24
+ xxxxlarge: scale(baseSpace * 7),
25
+ });
16
26
 
17
- export { space };
27
+ export { Space, getSpace };
@@ -1,35 +1,79 @@
1
1
  import { scale } from '../../utils/scale';
2
2
 
3
- const BASE = 16;
3
+ interface Fonts {
4
+ light: string;
5
+ regular: string;
6
+ semiBold: string;
7
+ }
4
8
 
5
- const fonts = {
6
- light: 'Be Vietnam Pro Light',
7
- regular: 'Be Vietnam Pro Regular',
8
- semiBold: 'Be Vietnam Pro SemiBold',
9
- };
9
+ interface FontSizes {
10
+ xxxxxlarge: number;
11
+ xxxxlarge: number;
12
+ xxxlarge: number;
13
+ xxlarge: number;
14
+ xlarge: number;
15
+ large: number;
16
+ medium: number;
17
+ small: number;
18
+ xsmall: number;
19
+ }
20
+
21
+ type LineHeights = FontSizes;
22
+
23
+ // Hero design web typo scale is following
24
+ // https://www.ibm.com/design/language/typography/type-specs-ui#scales
25
+ const genFontSize = (prev: number, at: number): number =>
26
+ prev + Math.floor(Math.abs((at - 2) / 4) + 1) * 2;
10
27
 
11
- const fontSizes = {
12
- xxxxxlarge: scale(BASE * 2), // 32
13
- xxxxlarge: scale(BASE * 1.75), // 28
14
- xxxlarge: scale(BASE * 1.5), // 24
15
- xxlarge: scale(BASE * 1.25), // 20
16
- xlarge: scale(BASE * 1.125), // 18
17
- large: scale(BASE), // 16
18
- medium: scale(BASE * 0.875), // 14
19
- small: scale(BASE * 0.75), // 12
20
- xsmall: scale(BASE * 0.625), // 10
28
+ const getFonts = (baseFont: string): Fonts => ({
29
+ light: `${baseFont}-Light`,
30
+ regular: `${baseFont}-Regular`,
31
+ semiBold: `${baseFont}-SemiBold`,
32
+ });
33
+
34
+ const getFontSizes = (baseFontSize: number): FontSizes => {
35
+ const fontSizes = Array.from(new Array(9));
36
+ fontSizes.forEach((_, index) => {
37
+ if (index === 0) {
38
+ fontSizes[0] = baseFontSize;
39
+ } else {
40
+ fontSizes[index] = genFontSize(fontSizes[index - 1], index);
41
+ }
42
+ return undefined;
43
+ });
44
+ return {
45
+ xxxxxlarge: scale(fontSizes[8]), // 32
46
+ xxxxlarge: scale(fontSizes[7]), // 28
47
+ xxxlarge: scale(fontSizes[6]), // 24
48
+ xxlarge: scale(fontSizes[5]), // 20
49
+ xlarge: scale(fontSizes[4]), // 18
50
+ large: scale(fontSizes[3]), // 16
51
+ medium: scale(fontSizes[2]), // 14
52
+ small: scale(fontSizes[1]), // 12
53
+ xsmall: scale(fontSizes[0]), // 10
54
+ };
21
55
  };
22
56
 
23
- const lineHeights = {
24
- xxxxxlarge: fontSizes.xxxxxlarge + 8,
25
- xxxxlarge: fontSizes.xxxxlarge + 8,
26
- xxxlarge: fontSizes.xxxlarge + 8,
27
- xxlarge: fontSizes.xxlarge + 8,
28
- xlarge: fontSizes.xlarge + 8,
29
- large: fontSizes.large + 8,
30
- medium: fontSizes.medium + 8,
31
- small: fontSizes.small + 8,
32
- xsmall: fontSizes.xsmall + 8,
57
+ const getLineHeights = (fontSizes: FontSizes): LineHeights => {
58
+ const additionalSpace = 8;
59
+ return {
60
+ xxxxxlarge: fontSizes.xxxxxlarge + additionalSpace,
61
+ xxxxlarge: fontSizes.xxxxlarge + additionalSpace,
62
+ xxxlarge: fontSizes.xxxlarge + additionalSpace,
63
+ xxlarge: fontSizes.xxlarge + additionalSpace,
64
+ xlarge: fontSizes.xlarge + additionalSpace,
65
+ large: fontSizes.large + additionalSpace,
66
+ medium: fontSizes.medium + additionalSpace,
67
+ small: fontSizes.small + additionalSpace,
68
+ xsmall: fontSizes.xsmall + additionalSpace,
69
+ };
33
70
  };
34
71
 
35
- export { fonts, fontSizes, lineHeights };
72
+ export {
73
+ Fonts,
74
+ FontSizes,
75
+ LineHeights,
76
+ getFonts,
77
+ getFontSizes,
78
+ getLineHeights,
79
+ };
@@ -1,4 +1,11 @@
1
- import globalTheme, { GlobalTheme } from './global';
1
+ import {
2
+ GlobalTheme,
3
+ Scale,
4
+ SystemPalette,
5
+ getGlobalTheme,
6
+ defaultScale,
7
+ defaultSystemPalette,
8
+ } from './global';
2
9
 
3
10
  import getBadgeTheme from './components/badge';
4
11
  import getBottomNavigationTheme from './components/bottomNavigation';
@@ -22,19 +29,25 @@ type Theme = GlobalTheme & {
22
29
  };
23
30
  };
24
31
 
25
- const getTheme = (theme: GlobalTheme = globalTheme): Theme => ({
26
- ...theme,
27
- __hd__: {
28
- badge: getBadgeTheme(theme),
29
- bottomNavigation: getBottomNavigationTheme(theme),
30
- card: getCardTheme(theme),
31
- divider: getDividerTheme(theme),
32
- icon: getIconTheme(theme),
33
- tabs: getTabsTheme(theme),
34
- typography: getTypographyTheme(theme),
35
- fab: getFABTheme(theme),
36
- },
37
- });
32
+ const getTheme = (
33
+ scale: Scale = defaultScale,
34
+ systemPallete: SystemPalette = defaultSystemPalette
35
+ ): Theme => {
36
+ const globalTheme = getGlobalTheme(scale, systemPallete);
37
+ return {
38
+ ...globalTheme,
39
+ __hd__: {
40
+ badge: getBadgeTheme(globalTheme),
41
+ bottomNavigation: getBottomNavigationTheme(globalTheme),
42
+ card: getCardTheme(globalTheme),
43
+ divider: getDividerTheme(globalTheme),
44
+ icon: getIconTheme(globalTheme),
45
+ tabs: getTabsTheme(globalTheme),
46
+ typography: getTypographyTheme(globalTheme),
47
+ fab: getFABTheme(globalTheme),
48
+ },
49
+ };
50
+ };
38
51
 
39
52
  const theme = getTheme();
40
53
 
package/src/types.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { BottomNavigationTabType } from './components/BottomNavigation';
2
+ import { IconName } from './components/Icon';
3
+ import { TabType } from './components/Tabs';
4
+
5
+ import { Theme } from './theme';
6
+
7
+ export type { BottomNavigationTabType, IconName, TabType, Theme };
@@ -2,6 +2,17 @@ jest.mock('react-native-vector-icons', () => ({
2
2
  createIconSetFromIcoMoon: jest.fn(() => 'HeroIcon'),
3
3
  }));
4
4
 
5
+ jest.mock('react-native', () => {
6
+ const RN = jest.requireActual('react-native');
7
+
8
+ RN.Animated.timing = () => ({
9
+ start: () => jest.fn(),
10
+ stop: () => jest.fn(),
11
+ });
12
+
13
+ return RN;
14
+ });
15
+
5
16
  jest.mock('../src/utils/scale', () => ({
6
17
  scale: jest.fn(size => size),
7
18
  }));
package/tsconfig.json CHANGED
@@ -12,11 +12,7 @@
12
12
  "noImplicitThis": true,
13
13
  "noUnusedLocals": true,
14
14
  "skipLibCheck": true,
15
- "types": ["jest", "styled-components", "styled-components-react-native"],
16
- "baseUrl": ".",
17
- "paths": {
18
- "styled-components-native": ["./src/styled-components.ts"]
19
- }
15
+ "types": ["jest"],
20
16
  },
21
17
  "include": ["src", "playground"],
22
18
  "exclude": ["node_modules"],
@@ -1,9 +1,20 @@
1
- import { View } from 'react-native';
1
+ /// <reference types="react" />
2
+ import { View, Text } from 'react-native';
2
3
  declare type ThemeIntent = 'success' | 'warning' | 'danger' | 'info';
3
- declare const StyledView: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {
4
+ declare const StyledView: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
5
+ theme?: import("@emotion/react").Theme | undefined;
6
+ as?: import("react").ElementType<any> | undefined;
7
+ } & {
4
8
  themeIntent: ThemeIntent;
5
- }, never>;
6
- declare const StyledText: import("styled-components").StyledComponent<({ children, fontSize, fontWeight, intent, ...nativeProps }: import("../Typography/Text").TextProps) => JSX.Element, import("../../theme").Theme, {
9
+ }, {}, {
10
+ ref?: import("react").Ref<View> | undefined;
11
+ }>;
12
+ declare const StyledText: import("@emotion/native").StyledComponent<import("react-native").TextProps & {
13
+ theme?: import("@emotion/react").Theme | undefined;
14
+ as?: import("react").ElementType<any> | undefined;
15
+ } & {
7
16
  themeIntent: ThemeIntent;
8
- }, never>;
17
+ }, {}, {
18
+ ref?: import("react").Ref<Text> | undefined;
19
+ }>;
9
20
  export { StyledView, StyledText };
@@ -10,7 +10,7 @@ interface BadgeProps extends ViewProps {
10
10
  */
11
11
  intent?: 'success' | 'warning' | 'danger' | 'info';
12
12
  /**
13
- * Addditional style.
13
+ * Additional style.
14
14
  */
15
15
  style?: StyleProp<ViewStyle>;
16
16
  /**
@@ -1,18 +1,52 @@
1
+ /// <reference types="react" />
1
2
  import { View } from 'react-native';
2
- declare const BottomNavigationTab: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {
3
+ declare const BottomNavigationTab: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
4
+ theme?: import("@emotion/react").Theme | undefined;
5
+ as?: import("react").ElementType<any> | undefined;
6
+ } & {
3
7
  themeVisibility?: boolean | undefined;
4
- }, never>;
5
- declare const BottomNavigationContainer: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {}, never>;
6
- declare const ContentWrapper: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {}, never>;
7
- declare const BottomBarWrapper: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {
8
+ }, {}, {
9
+ ref?: import("react").Ref<View> | undefined;
10
+ }>;
11
+ declare const BottomNavigationContainer: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
12
+ theme?: import("@emotion/react").Theme | undefined;
13
+ as?: import("react").ElementType<any> | undefined;
14
+ }, {}, {
15
+ ref?: import("react").Ref<View> | undefined;
16
+ }>;
17
+ declare const ContentWrapper: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
18
+ theme?: import("@emotion/react").Theme | undefined;
19
+ as?: import("react").ElementType<any> | undefined;
20
+ }, {}, {
21
+ ref?: import("react").Ref<View> | undefined;
22
+ }>;
23
+ declare const BottomBarWrapper: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
24
+ theme?: import("@emotion/react").Theme | undefined;
25
+ as?: import("react").ElementType<any> | undefined;
26
+ } & {
8
27
  themeInsets: {
9
28
  top: number;
10
29
  right: number;
11
30
  bottom: number;
12
31
  left: number;
13
32
  };
14
- }, never>;
15
- declare const BottomBar: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {}, never>;
16
- declare const BottomBarItem: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {}, never>;
17
- declare const StyledBottomBarText: import("styled-components").StyledComponent<({ children, fontSize, fontWeight, intent, ...nativeProps }: import("../Typography/Text").TextProps) => JSX.Element, import("../../theme").Theme, {}, never>;
33
+ }, {}, {
34
+ ref?: import("react").Ref<View> | undefined;
35
+ }>;
36
+ declare const BottomBar: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
37
+ theme?: import("@emotion/react").Theme | undefined;
38
+ as?: import("react").ElementType<any> | undefined;
39
+ }, {}, {
40
+ ref?: import("react").Ref<View> | undefined;
41
+ }>;
42
+ declare const BottomBarItem: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
43
+ theme?: import("@emotion/react").Theme | undefined;
44
+ as?: import("react").ElementType<any> | undefined;
45
+ }, {}, {
46
+ ref?: import("react").Ref<View> | undefined;
47
+ }>;
48
+ declare const StyledBottomBarText: import("@emotion/native").StyledComponent<import("../Typography/Text").TextProps & {
49
+ theme?: import("@emotion/react").Theme | undefined;
50
+ as?: import("react").ElementType<any> | undefined;
51
+ }, {}, {}>;
18
52
  export { BottomBar, BottomBarItem, BottomNavigationTab, BottomNavigationContainer, BottomBarWrapper, ContentWrapper, StyledBottomBarText, };
@@ -1,19 +1,18 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { StyleProp, ViewStyle, ViewProps } from 'react-native';
3
- import { IconProps } from '../Icon';
4
- declare type IconType = IconProps['icon'];
5
- export declare type Tab = {
3
+ import { IconName } from '../Icon';
4
+ export declare type BottomNavigationTabType = {
6
5
  key: string;
7
6
  title?: string;
8
- icon: IconType;
7
+ icon: IconName;
9
8
  component: ReactNode;
10
9
  testID?: string;
11
10
  };
12
- interface BottomNavigationType extends ViewProps {
11
+ interface BottomNavigationProps extends ViewProps {
13
12
  /**
14
- * Callback which is called on tab change, receiving id of upcoming active Tab.
13
+ * Callback which is called on tab press, receiving key of upcoming active Tab.
15
14
  */
16
- onChange: (key: string) => void;
15
+ onTabPress: (key: string) => void;
17
16
  /**
18
17
  * Whether inactive tabs should be removed and unmounted in React.
19
18
  * Defaults to `false`.
@@ -24,11 +23,17 @@ interface BottomNavigationType extends ViewProps {
24
23
  */
25
24
  selectedTabKey: string;
26
25
  /**
27
- * List of Tab to be rendered. Each Tab must have an unique id.
26
+ * List of Tabs to be rendered. Each Tab must have an unique key.
28
27
  */
29
- tabs: Tab[];
28
+ tabs: {
29
+ key: string;
30
+ title?: string;
31
+ icon: IconName;
32
+ component: ReactNode;
33
+ testID?: string;
34
+ }[];
30
35
  /**
31
- * Addditional style.
36
+ * Additional style.
32
37
  */
33
38
  style?: StyleProp<ViewStyle>;
34
39
  /**
@@ -36,5 +41,5 @@ interface BottomNavigationType extends ViewProps {
36
41
  */
37
42
  testID?: string;
38
43
  }
39
- declare const BottomNavigation: ({ onChange, renderActiveTabOnly, selectedTabKey, tabs, ...nativeProps }: BottomNavigationType) => JSX.Element;
44
+ declare const BottomNavigation: ({ onTabPress, renderActiveTabOnly, selectedTabKey, tabs, ...nativeProps }: BottomNavigationProps) => JSX.Element;
40
45
  export default BottomNavigation;
@@ -1,14 +1,14 @@
1
1
  import { StyleProp, ViewStyle, TouchableOpacityProps } from 'react-native';
2
- import { IconProps } from '../Icon';
2
+ import { IconProps, IconName } from '../Icon';
3
3
  export interface IconButtonProps {
4
4
  /**
5
- * Set how far you can touch from the button
5
+ * Set how far you can touch from the button.
6
6
  */
7
7
  hitSlop?: TouchableOpacityProps['hitSlop'];
8
8
  /**
9
9
  * Name of the Icon.
10
10
  */
11
- icon: IconProps['icon'];
11
+ icon: IconName;
12
12
  /**
13
13
  * Intent of the Icon.
14
14
  */
@@ -22,11 +22,11 @@ export interface IconButtonProps {
22
22
  */
23
23
  size?: IconProps['size'];
24
24
  /**
25
- * Addditional style.
25
+ * Additional style.
26
26
  */
27
27
  style?: StyleProp<ViewStyle>;
28
28
  /**
29
- * Testing id of component
29
+ * Testing id of component.
30
30
  */
31
31
  testID?: string;
32
32
  }
@@ -1,3 +1,9 @@
1
+ /// <reference types="react" />
1
2
  import { View } from 'react-native';
2
- declare const StyledCard: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {}, never>;
3
+ declare const StyledCard: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
4
+ theme?: import("@emotion/react").Theme | undefined;
5
+ as?: import("react").ElementType<any> | undefined;
6
+ }, {}, {
7
+ ref?: import("react").Ref<View> | undefined;
8
+ }>;
3
9
  export { StyledCard };
@@ -1,7 +1,13 @@
1
+ /// <reference types="react" />
1
2
  import { View } from 'react-native';
2
3
  declare type MarginSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
3
- declare const StyledDivider: import("styled-components").StyledComponent<typeof View, import("../../theme").Theme, {
4
+ declare const StyledDivider: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
5
+ theme?: import("@emotion/react").Theme | undefined;
6
+ as?: import("react").ElementType<any> | undefined;
7
+ } & {
4
8
  themeMarginHorizontal?: MarginSize | undefined;
5
9
  themeMarginVertical?: MarginSize | undefined;
6
- }, never>;
10
+ }, {}, {
11
+ ref?: import("react").Ref<View> | undefined;
12
+ }>;
7
13
  export { StyledDivider };
@@ -9,7 +9,7 @@ interface DividerProps extends ViewProps {
9
9
  */
10
10
  marginVertical?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
11
11
  /**
12
- * Addditional style.
12
+ * Additional style.
13
13
  */
14
14
  style?: StyleProp<ViewStyle>;
15
15
  /**
@@ -1,12 +1,30 @@
1
+ /// <reference types="react" />
1
2
  import { Animated, View, ViewProps } from 'react-native';
2
3
  import { TextProps } from '../../Typography/Text';
3
- declare const StyledContainer: import("styled-components").StyledComponent<typeof View, import("../../../theme").Theme, ViewProps, never>;
4
- declare const StyledActionGroupContainer: import("styled-components").StyledComponent<Animated.AnimatedComponent<typeof View>, import("../../../theme").Theme, Animated.AnimatedProps<ViewProps & import("react").RefAttributes<View>> & {
4
+ declare const StyledContainer: import("@emotion/native").StyledComponent<ViewProps & {
5
+ theme?: import("@emotion/react").Theme | undefined;
6
+ as?: import("react").ElementType<any> | undefined;
7
+ }, {}, {
8
+ ref?: import("react").Ref<View> | undefined;
9
+ }>;
10
+ declare const StyledActionGroupContainer: import("@emotion/native").StyledComponent<Animated.AnimatedProps<ViewProps & import("react").RefAttributes<View>> & {
5
11
  children?: import("react").ReactNode;
6
- }, never>;
7
- declare const StyledFAB: import("styled-components").StyledComponent<({ onPress, icon, animated, testID, active, style }: import("../FAB").FABProps) => JSX.Element, import("../../../theme").Theme, {}, never>;
8
- declare const StyledBackdrop: import("styled-components").StyledComponent<Animated.AnimatedComponent<typeof View>, import("../../../theme").Theme, Animated.AnimatedProps<ViewProps & import("react").RefAttributes<View>> & {
12
+ } & {
13
+ theme?: import("@emotion/react").Theme | undefined;
14
+ as?: import("react").ElementType<any> | undefined;
15
+ }, {}, {}>;
16
+ declare const StyledFAB: import("@emotion/native").StyledComponent<import("../FAB").FABProps & {
17
+ theme?: import("@emotion/react").Theme | undefined;
18
+ as?: import("react").ElementType<any> | undefined;
19
+ }, {}, {}>;
20
+ declare const StyledBackdrop: import("@emotion/native").StyledComponent<Animated.AnimatedProps<ViewProps & import("react").RefAttributes<View>> & {
9
21
  children?: import("react").ReactNode;
10
- }, never>;
11
- declare const StyledHeaderText: import("styled-components").StyledComponent<({ children, fontSize, fontWeight, intent, ...nativeProps }: TextProps) => JSX.Element, import("../../../theme").Theme, TextProps, never>;
22
+ } & {
23
+ theme?: import("@emotion/react").Theme | undefined;
24
+ as?: import("react").ElementType<any> | undefined;
25
+ }, {}, {}>;
26
+ declare const StyledHeaderText: import("@emotion/native").StyledComponent<TextProps & {
27
+ theme?: import("@emotion/react").Theme | undefined;
28
+ as?: import("react").ElementType<any> | undefined;
29
+ }, {}, {}>;
12
30
  export { StyledHeaderText, StyledBackdrop, StyledContainer, StyledActionGroupContainer, StyledFAB, };
@@ -1,4 +1,13 @@
1
+ /// <reference types="react" />
1
2
  import { TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
- declare const StyledActionItem: import("styled-components").StyledComponent<typeof TouchableOpacity, import("../../../theme").Theme, TouchableOpacityProps, never>;
3
- declare const StyledActionItemText: import("styled-components").StyledComponent<({ children, fontSize, fontWeight, intent, ...nativeProps }: import("../../Typography/Text").TextProps) => JSX.Element, import("../../../theme").Theme, TouchableOpacityProps, never>;
3
+ declare const StyledActionItem: import("@emotion/native").StyledComponent<TouchableOpacityProps & {
4
+ theme?: import("@emotion/react").Theme | undefined;
5
+ as?: import("react").ElementType<any> | undefined;
6
+ }, {}, {
7
+ ref?: import("react").Ref<TouchableOpacity> | undefined;
8
+ }>;
9
+ declare const StyledActionItemText: import("@emotion/native").StyledComponent<import("../../Typography/Text").TextProps & {
10
+ theme?: import("@emotion/react").Theme | undefined;
11
+ as?: import("react").ElementType<any> | undefined;
12
+ } & TouchableOpacityProps, {}, {}>;
4
13
  export { StyledActionItem, StyledActionItemText };
@@ -11,7 +11,7 @@ export interface ActionGroupProps {
11
11
  * */
12
12
  active?: boolean;
13
13
  /**
14
- * Addditional style.
14
+ * Additional style.
15
15
  */
16
16
  style?: StyleProp<ViewStyle>;
17
17
  /**
@@ -1,13 +1,13 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
- import { IconProps } from '../Icon';
2
+ import { IconName } from '../Icon';
3
3
  export interface FABProps {
4
4
  /**
5
5
  * Name of the Icon.
6
6
  */
7
- icon: IconProps['icon'];
7
+ icon: IconName;
8
8
  /**
9
9
  * This function is called on pressing the button.
10
- * */
10
+ */
11
11
  onPress?: () => void;
12
12
  /**
13
13
  * Specify if the button is animated.
@@ -18,7 +18,7 @@ export interface FABProps {
18
18
  */
19
19
  active?: boolean;
20
20
  /**
21
- * Addditional style.
21
+ * Additional style.
22
22
  */
23
23
  style?: StyleProp<ViewStyle>;
24
24
  /**