@hero-design/rn 7.1.1 → 7.1.3-alpha2

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 (368) hide show
  1. package/.eslintrc.json +4 -3
  2. package/.expo/packager-info.json +2 -2
  3. package/.expo/web/cache/development/babel-loader/015cd4023bdd8e0e3e1de310046d3b16.json +1 -0
  4. package/.expo/web/cache/development/babel-loader/0255192076dea2c7675549fa263a6722.json +1 -0
  5. package/.expo/web/cache/development/babel-loader/02c646fdcaa4819674f8e44dc29cc0aa.json +1 -0
  6. package/.expo/web/cache/development/babel-loader/02e944ba6b7532c77b5ecd94f5a52945.json +1 -0
  7. package/.expo/web/cache/development/babel-loader/06168282f87d39982c04c3b7725abef8.json +1 -0
  8. package/.expo/web/cache/development/babel-loader/064867cdc71ec7f38308957641ec0e5c.json +1 -0
  9. package/.expo/web/cache/development/babel-loader/06ca002e730e83bc0dc273752554bb0c.json +1 -0
  10. package/.expo/web/cache/development/babel-loader/07e86d93ebd8574948f718d80ecb1fad.json +1 -0
  11. package/.expo/web/cache/development/babel-loader/081a940d3ae9e0d20d13c22cc43c0a46.json +1 -0
  12. package/.expo/web/cache/development/babel-loader/085466d1c040fb7ef5d00248adeb9f1d.json +1 -0
  13. package/.expo/web/cache/development/babel-loader/08b94b37dd81e6f1b9909d84cc376c2e.json +1 -0
  14. package/.expo/web/cache/development/babel-loader/0a25801a974b0000e0a99da16c026d5c.json +1 -0
  15. package/.expo/web/cache/development/babel-loader/0a97090e9243b34fc136fda2ec55c961.json +1 -0
  16. package/.expo/web/cache/development/babel-loader/0c15db912477ec22c24f92d59cd33999.json +1 -0
  17. package/.expo/web/cache/development/babel-loader/0c784bc417f84aadf97818fbd4054b3f.json +1 -0
  18. package/.expo/web/cache/development/babel-loader/0eb233e1ecf7aa8cefdf1146268e2ef1.json +1 -0
  19. package/.expo/web/cache/development/babel-loader/0fa0699844293bd83681296074c82f83.json +1 -0
  20. package/.expo/web/cache/development/babel-loader/121bdee5f5cb95d16d99e4c933ebf864.json +1 -0
  21. package/.expo/web/cache/development/babel-loader/124896b4a24d61a32b980cbe17dfd86d.json +1 -0
  22. package/.expo/web/cache/development/babel-loader/15499f3a2f57c5182f92a767b52ccaa7.json +1 -0
  23. package/.expo/web/cache/development/babel-loader/15b64eb35bbb00e9b7d2e1ba5de504aa.json +1 -0
  24. package/.expo/web/cache/development/babel-loader/16f046b2bba77cc6b20c53ab67a8845c.json +1 -0
  25. package/.expo/web/cache/development/babel-loader/18296da1d79a9b7ed67aa73b3674c98d.json +1 -0
  26. package/.expo/web/cache/development/babel-loader/183bf8d5b8b0a24f311560391b75fb28.json +1 -0
  27. package/.expo/web/cache/development/babel-loader/18e69c8d4e2278d3ed0a2a9cf9459979.json +1 -0
  28. package/.expo/web/cache/development/babel-loader/19f6c3fb7aa14dc1a42f5d75d2b0e267.json +1 -0
  29. package/.expo/web/cache/development/babel-loader/1a87e69c2765213ad342b5f454c0a058.json +1 -0
  30. package/.expo/web/cache/development/babel-loader/1ae9718a5291beb1a34921e74351868d.json +1 -0
  31. package/.expo/web/cache/development/babel-loader/1be8f9a2939f282c2218a492c2083516.json +1 -0
  32. package/.expo/web/cache/development/babel-loader/1c33ab505b1f55675a070b3f19ab5fc6.json +1 -0
  33. package/.expo/web/cache/development/babel-loader/1c53ddb06e14036617c6be6b6ec02e93.json +1 -0
  34. package/.expo/web/cache/development/babel-loader/1ce0f519e92a6f10348175e6fa42fd6a.json +1 -0
  35. package/.expo/web/cache/development/babel-loader/1e150d4ac2c661fd694b6cddce785558.json +1 -0
  36. package/.expo/web/cache/development/babel-loader/1e64bc6f174a20385a44365e77cb71ff.json +1 -0
  37. package/.expo/web/cache/development/babel-loader/2168be4a82a7d5b116dd8fd18bd5ab62.json +1 -0
  38. package/.expo/web/cache/development/babel-loader/21dae0abf6ef0400ef25dfc87d1f4671.json +1 -0
  39. package/.expo/web/cache/development/babel-loader/2286dc8cd20eaa8051a3400057edd5ae.json +1 -0
  40. package/.expo/web/cache/development/babel-loader/22b0965d8ed07fcd7d323d92eb56a91d.json +1 -0
  41. package/.expo/web/cache/development/babel-loader/243541d6511909b66a90d2824fc71f14.json +1 -0
  42. package/.expo/web/cache/development/babel-loader/24781a54910c0940c738ec301eff4318.json +1 -0
  43. package/.expo/web/cache/development/babel-loader/24b80d0446b9c88886cd1f951632ab91.json +1 -0
  44. package/.expo/web/cache/development/babel-loader/24d40521282cac7bb526f9a7a3ab4de2.json +1 -0
  45. package/.expo/web/cache/development/babel-loader/260bba3675ce84e0a277a65fdb52f235.json +1 -0
  46. package/.expo/web/cache/development/babel-loader/266b79a5977223dbee00bdc2732e5697.json +1 -0
  47. package/.expo/web/cache/development/babel-loader/26879ba706c68b0226a1242f3c28c0e2.json +1 -0
  48. package/.expo/web/cache/development/babel-loader/2746a8c85fca2064b7728ecfc2d7e022.json +1 -0
  49. package/.expo/web/cache/development/babel-loader/28308843667ee35631612116de8ee705.json +1 -0
  50. package/.expo/web/cache/development/babel-loader/2af2c923d4fe0c7736be88b0e2fac2c0.json +1 -0
  51. package/.expo/web/cache/development/babel-loader/2b00b74ce36325af2dd1ecb817f0b69e.json +1 -0
  52. package/.expo/web/cache/development/babel-loader/2bf696f8a70361680c8d88ae78227b2c.json +1 -0
  53. package/.expo/web/cache/development/babel-loader/2fbe5d411c533de433abd361bfba9e2f.json +1 -0
  54. package/.expo/web/cache/development/babel-loader/308a319d3e13964a95b184dd7e7483a7.json +1 -0
  55. package/.expo/web/cache/development/babel-loader/30a3d4b4e5bc9d62a22ea1c05d50e3d7.json +1 -0
  56. package/.expo/web/cache/development/babel-loader/3297de3af524b87977cccb0d51c6fdb7.json +1 -0
  57. package/.expo/web/cache/development/babel-loader/335055e2588a3f703b6681b513053069.json +1 -0
  58. package/.expo/web/cache/development/babel-loader/33b1a3e46b0a9c62db1005f57d2ae76d.json +1 -0
  59. package/.expo/web/cache/development/babel-loader/342f4f51d784f91793e41c4c463ba640.json +1 -0
  60. package/.expo/web/cache/development/babel-loader/34fbec758cf381ee3d274245596e884e.json +1 -0
  61. package/.expo/web/cache/development/babel-loader/36b241618bf067485a740d2052476b6b.json +1 -0
  62. package/.expo/web/cache/development/babel-loader/377d170e62cdfc5531aca97043caa939.json +1 -0
  63. package/.expo/web/cache/development/babel-loader/383c6c820117d99d43918fdc5646ef07.json +1 -0
  64. package/.expo/web/cache/development/babel-loader/38845b2c5c1d2ac8c34919b0420e217a.json +1 -0
  65. package/.expo/web/cache/development/babel-loader/3a1b5dd13338d9b8323cc65ac0ee9084.json +1 -0
  66. package/.expo/web/cache/development/babel-loader/3b6cafaec7bd951cb292d35b7b777e16.json +1 -0
  67. package/.expo/web/cache/development/babel-loader/3dde711133a24dc39a127890207efc14.json +1 -0
  68. package/.expo/web/cache/development/babel-loader/3e411553708caef8421aca4ca7a50a79.json +1 -0
  69. package/.expo/web/cache/development/babel-loader/3e4bf0afe3180d43e6259fdc9e2cf018.json +1 -0
  70. package/.expo/web/cache/development/babel-loader/3f45c156aeb578585b9367e9f769213a.json +1 -0
  71. package/.expo/web/cache/development/babel-loader/401d9d9024ed8c80f8875e3a561ebe52.json +1 -0
  72. package/.expo/web/cache/development/babel-loader/4119e38050883976b0b6604154ff74b1.json +1 -0
  73. package/.expo/web/cache/development/babel-loader/43053f3b8cae10481352c2e2515e9d3a.json +1 -0
  74. package/.expo/web/cache/development/babel-loader/43908b6386757cbdce634000cdb05be5.json +1 -0
  75. package/.expo/web/cache/development/babel-loader/45b0b2f0892e55f6766ea3f6eedfedc8.json +1 -0
  76. package/.expo/web/cache/development/babel-loader/4641f770b3a3c0e9d65049d69666f14a.json +1 -0
  77. package/.expo/web/cache/development/babel-loader/464cf321c96f5d3a11c6e7c9ce022d89.json +1 -0
  78. package/.expo/web/cache/development/babel-loader/4884e4300b99f1c73a01bc4da1e69e2e.json +1 -0
  79. package/.expo/web/cache/development/babel-loader/49889d761f9b1b6827a7b9a4c2b63949.json +1 -0
  80. package/.expo/web/cache/development/babel-loader/49e011b42b0e8b3a01cad47999ddd5f4.json +1 -0
  81. package/.expo/web/cache/development/babel-loader/4a2372960ee87388844ee5eacf8a4e5d.json +1 -0
  82. package/.expo/web/cache/development/babel-loader/4d27b44a4344eb5d6a82f929b034fcb6.json +1 -0
  83. package/.expo/web/cache/development/babel-loader/4d6224362744b0eda6e64e9096c88e5e.json +1 -0
  84. package/.expo/web/cache/development/babel-loader/4d7371ca965d4e8d8e3b9fe29d72cb56.json +1 -0
  85. package/.expo/web/cache/development/babel-loader/4decc31212afed6aecb648cd482d8f58.json +1 -0
  86. package/.expo/web/cache/development/babel-loader/4dfa2b3056c60bce932123f61e4bc6d2.json +1 -0
  87. package/.expo/web/cache/development/babel-loader/4e008a6aedd78b935cba6d0b3d6bc7ae.json +1 -0
  88. package/.expo/web/cache/development/babel-loader/4e822161a7bda4d88f0867695e1ecfd9.json +1 -0
  89. package/.expo/web/cache/development/babel-loader/4f1e0269842359fe96d27c5b9bfd1ac4.json +1 -0
  90. package/.expo/web/cache/development/babel-loader/4fb1f40f3a67457861766892e335a81d.json +1 -0
  91. package/.expo/web/cache/development/babel-loader/507a1917d95e59163a96e7784d5288a7.json +1 -0
  92. package/.expo/web/cache/development/babel-loader/50e87c60a46b4cdf0487b5edc043be30.json +1 -0
  93. package/.expo/web/cache/development/babel-loader/530461df12ae0b0f45c0d457547c372e.json +1 -0
  94. package/.expo/web/cache/development/babel-loader/5339c25a34fe42823b7a1d2e1cdc6546.json +1 -0
  95. package/.expo/web/cache/development/babel-loader/536ca6a6eed1bcdac31786e72dedea80.json +1 -0
  96. package/.expo/web/cache/development/babel-loader/53cd7a6341558d4da20796dc5ebd58bb.json +1 -0
  97. package/.expo/web/cache/development/babel-loader/540b224b100181005e79f2dadb1edbf8.json +1 -0
  98. package/.expo/web/cache/development/babel-loader/542c478f2a9a2ca89b6b87961cb48922.json +1 -0
  99. package/.expo/web/cache/development/babel-loader/54749024a5585009dc5b67e1b0d9dbdc.json +1 -0
  100. package/.expo/web/cache/development/babel-loader/5566a5cf483f5a29e31e71e44bd4ee31.json +1 -0
  101. package/.expo/web/cache/development/babel-loader/56014c53cc4a460aedbf6b315b7a83d1.json +1 -0
  102. package/.expo/web/cache/development/babel-loader/592bfc0572fc2bceb23e0650a747eaa8.json +1 -0
  103. package/.expo/web/cache/development/babel-loader/5a57cc696da8aefee15249d630caa27a.json +1 -0
  104. package/.expo/web/cache/development/babel-loader/5b2adce8bdaf8fa5bdaf1455f271e3c8.json +1 -0
  105. package/.expo/web/cache/development/babel-loader/5b306fddfa1f5d9e99d311532bd0139c.json +1 -0
  106. package/.expo/web/cache/development/babel-loader/5bbe045789809b2f64e2bd58eb420aa3.json +1 -0
  107. package/.expo/web/cache/development/babel-loader/5d7aefda6066de8bdbb1bcb007d1b5db.json +1 -0
  108. package/.expo/web/cache/development/babel-loader/5d82ac4048edb6410bf53e83cbcbb922.json +1 -0
  109. package/.expo/web/cache/development/babel-loader/5e11b649fa3602e096c920767cb436e3.json +1 -0
  110. package/.expo/web/cache/development/babel-loader/5e6d5abccf648c1a866e21ad2a09adfd.json +1 -0
  111. package/.expo/web/cache/development/babel-loader/5f5b8027c4d87d9e0feea8462780e8ad.json +1 -0
  112. package/.expo/web/cache/development/babel-loader/5fb192b131f2f50d41e33fe34dbbc297.json +1 -0
  113. package/.expo/web/cache/development/babel-loader/604249a15ce1c8e541864121ac7ac587.json +1 -0
  114. package/.expo/web/cache/development/babel-loader/61137d04349f30b618be58175ad9d350.json +1 -0
  115. package/.expo/web/cache/development/babel-loader/61ce8c3d59dde8eac802f308f9acc828.json +1 -0
  116. package/.expo/web/cache/development/babel-loader/6391d65a84100349eba3acb527e6b030.json +1 -0
  117. package/.expo/web/cache/development/babel-loader/6500ab6cfd39dbfff785d348bf367be8.json +1 -0
  118. package/.expo/web/cache/development/babel-loader/655221527a35c47d0109d3c96a8da168.json +1 -0
  119. package/.expo/web/cache/development/babel-loader/65568c39c8b15c78a96d4caf9941129b.json +1 -0
  120. package/.expo/web/cache/development/babel-loader/657adfbea82cd6254f7ac85151e6ea52.json +1 -0
  121. package/.expo/web/cache/development/babel-loader/66c4915ff6ebfde747894fd3f427b9c7.json +1 -0
  122. package/.expo/web/cache/development/babel-loader/6b558032ef2af0092093a0e2315e3b37.json +1 -0
  123. package/.expo/web/cache/development/babel-loader/6cc8c7be4e8e8792ad698f10623c9b11.json +1 -0
  124. package/.expo/web/cache/development/babel-loader/6e14a5e499ef7e25ca0cccb6269e2f5a.json +1 -0
  125. package/.expo/web/cache/development/babel-loader/70d42954cfcb018f13bad222cfdd26c2.json +1 -0
  126. package/.expo/web/cache/development/babel-loader/70e5d0fb55302845630dc7022fcab612.json +1 -0
  127. package/.expo/web/cache/development/babel-loader/7187c947a3186dfc0857f64da0908ecf.json +1 -0
  128. package/.expo/web/cache/development/babel-loader/71ff258c6f6d9b34829e45fd9452dd3a.json +1 -0
  129. package/.expo/web/cache/development/babel-loader/72447ee2c89506d47319627069907f4b.json +1 -0
  130. package/.expo/web/cache/development/babel-loader/72bfb7460b7b81f7f3bbddc81fc8e7dc.json +1 -0
  131. package/.expo/web/cache/development/babel-loader/731d03a0a67ecaf9a9383d41beae7fd4.json +1 -0
  132. package/.expo/web/cache/development/babel-loader/741251e4d56c2c8722a5b9a0bc8b36dd.json +1 -0
  133. package/.expo/web/cache/development/babel-loader/747257270c398282d135060092b5ffc4.json +1 -0
  134. package/.expo/web/cache/development/babel-loader/74852aa6ce6f71235218eb6f1a120430.json +1 -0
  135. package/.expo/web/cache/development/babel-loader/74afe49311fab37261730b1ea83897a1.json +1 -0
  136. package/.expo/web/cache/development/babel-loader/7535495406e9daac2cf50eddcbcf984f.json +1 -0
  137. package/.expo/web/cache/development/babel-loader/76a96c09b41232a1027eb57667bed4cd.json +1 -0
  138. package/.expo/web/cache/development/babel-loader/77b71e7070039d3b0809426997ec6355.json +1 -0
  139. package/.expo/web/cache/development/babel-loader/79febcd0920ccdc7d95510faa84cd785.json +1 -0
  140. package/.expo/web/cache/development/babel-loader/7a05a01c29184e51101a5896e6771068.json +1 -0
  141. package/.expo/web/cache/development/babel-loader/7b67bf87b7a24ce1bd0d21be94d39712.json +1 -0
  142. package/.expo/web/cache/development/babel-loader/7c10bbaa16fc3f92c14dc81ed9a103e2.json +1 -0
  143. package/.expo/web/cache/development/babel-loader/7e1434686597dbe27bbdf28db628678b.json +1 -0
  144. package/.expo/web/cache/development/babel-loader/8168bf7926790fd88c46d02691141eb3.json +1 -0
  145. package/.expo/web/cache/development/babel-loader/8261d9b6445c3ae4f3db3b5a87a32bfd.json +1 -0
  146. package/.expo/web/cache/development/babel-loader/82711d1d11135fe3c5f761ef84546cca.json +1 -0
  147. package/.expo/web/cache/development/babel-loader/82a952063dc4a552385e994d051987da.json +1 -0
  148. package/.expo/web/cache/development/babel-loader/840477709eff8cb91896d04291047917.json +1 -0
  149. package/.expo/web/cache/development/babel-loader/84f16ae9077a77a1f938db11c92e5cb0.json +1 -0
  150. package/.expo/web/cache/development/babel-loader/8611b6dbd6285e6aa281a8560c089b32.json +1 -0
  151. package/.expo/web/cache/development/babel-loader/877250c4b852a8c68a5787f00473bade.json +1 -0
  152. package/.expo/web/cache/development/babel-loader/878c86d46f1cc1c2e575715bb753a6c2.json +1 -0
  153. package/.expo/web/cache/development/babel-loader/89b0b1e82520bf4a83fb46a5d5e3051f.json +1 -0
  154. package/.expo/web/cache/development/babel-loader/8ace816b6b5d313af06a110d8fffdd29.json +1 -0
  155. package/.expo/web/cache/development/babel-loader/8c4251482b1bb231323018ad7f762c79.json +1 -0
  156. package/.expo/web/cache/development/babel-loader/8c852e6d1a4869af48b20deea5689c8e.json +1 -0
  157. package/.expo/web/cache/development/babel-loader/8cc22acf99bb15df0804268c9936a316.json +1 -0
  158. package/.expo/web/cache/development/babel-loader/8cda840d3c6065c9f5d94109ac5ceac8.json +1 -0
  159. package/.expo/web/cache/development/babel-loader/8da5a65a25b8617cc4b0f363b54f17a9.json +1 -0
  160. package/.expo/web/cache/development/babel-loader/8ed28a112dbd10ae72c4404ed767005a.json +1 -0
  161. package/.expo/web/cache/development/babel-loader/8f496b2cd6790e83bab10d24aae43247.json +1 -0
  162. package/.expo/web/cache/development/babel-loader/9066a94a8de4a1e5823cfd03c3c65c22.json +1 -0
  163. package/.expo/web/cache/development/babel-loader/91ebd1694a594c00836231f13fcb5ab8.json +1 -0
  164. package/.expo/web/cache/development/babel-loader/954de33d98429fe08ac02c788703effd.json +1 -0
  165. package/.expo/web/cache/development/babel-loader/954fcaa67e62fee1d0e55770c29643a9.json +1 -0
  166. package/.expo/web/cache/development/babel-loader/95633d8353ddde580626714ebeff4a3e.json +1 -0
  167. package/.expo/web/cache/development/babel-loader/95b1ef2ed750aa97d708fa5d1da11701.json +1 -0
  168. package/.expo/web/cache/development/babel-loader/95d8acbfa7ec33bf53408384561f8f59.json +1 -0
  169. package/.expo/web/cache/development/babel-loader/961bc9fd17fd516ae1093a6bea77b236.json +1 -0
  170. package/.expo/web/cache/development/babel-loader/96afd45a8ee5c316e8d2cdeab372d2d1.json +1 -0
  171. package/.expo/web/cache/development/babel-loader/96f2624d06f0d9c15f72fe52998bb3b5.json +1 -0
  172. package/.expo/web/cache/development/babel-loader/972f4e43ba279ed169c44d25e0badb76.json +1 -0
  173. package/.expo/web/cache/development/babel-loader/9800ddc64188c0c913c560451b4f20f9.json +1 -0
  174. package/.expo/web/cache/development/babel-loader/9a44846903f5dd2ed5c6ca62986c4d7b.json +1 -0
  175. package/.expo/web/cache/development/babel-loader/9afeae36f511af6858fe68f7e94de5fc.json +1 -0
  176. package/.expo/web/cache/development/babel-loader/9b9e501c7e3b15da22d1b1519d390a93.json +1 -0
  177. package/.expo/web/cache/development/babel-loader/9ba221ab0e27ecfc06fa08f1bd338d91.json +1 -0
  178. package/.expo/web/cache/development/babel-loader/9dc84383648386cdd64384268aaba4cd.json +1 -0
  179. package/.expo/web/cache/development/babel-loader/9ed0c292f501200dbab3287f89b74285.json +1 -0
  180. package/.expo/web/cache/development/babel-loader/9ff02f1934b1011e9f1702444f6ade8b.json +1 -0
  181. package/.expo/web/cache/development/babel-loader/a00673b61f03f25ca7d5dda9ec7f1684.json +1 -0
  182. package/.expo/web/cache/development/babel-loader/a11f1fec9b3c8224ec8a3561e9d39607.json +1 -0
  183. package/.expo/web/cache/development/babel-loader/a138071c6b457813fa75f80257c00948.json +1 -0
  184. package/.expo/web/cache/development/babel-loader/a13f4194bebf279521f1219c7f0edfe5.json +1 -0
  185. package/.expo/web/cache/development/babel-loader/a20bc8b3ff9c6f0a6d0505119c7c8e4b.json +1 -0
  186. package/.expo/web/cache/development/babel-loader/a2499bb844484b72ab0bd9e19b577a2a.json +1 -0
  187. package/.expo/web/cache/development/babel-loader/a3690c2af258782c6e54d70965e2d702.json +1 -0
  188. package/.expo/web/cache/development/babel-loader/a3b408c4e99dbfe5166c61130962d530.json +1 -0
  189. package/.expo/web/cache/development/babel-loader/a3d400d230600d4606a39b88b1a50ce9.json +1 -0
  190. package/.expo/web/cache/development/babel-loader/a576aa09c4387662d5041dc16e071e7d.json +1 -0
  191. package/.expo/web/cache/development/babel-loader/aadddefc328de2a87f9585c8b9cf1ddb.json +1 -0
  192. package/.expo/web/cache/development/babel-loader/abfcdee9f49c8512a556c8d96aab05b0.json +1 -0
  193. package/.expo/web/cache/development/babel-loader/af2abfdb26938b4671383c19a474c162.json +1 -0
  194. package/.expo/web/cache/development/babel-loader/afe4775e080557f919d69bece91f9b2e.json +1 -0
  195. package/.expo/web/cache/development/babel-loader/b03a4c4f01d00d65481849a79f542339.json +1 -0
  196. package/.expo/web/cache/development/babel-loader/b161867d1c22ab0db168cb41f31e3821.json +1 -0
  197. package/.expo/web/cache/development/babel-loader/b1a28b49b320580ad2d46a362b06190e.json +1 -0
  198. package/.expo/web/cache/development/babel-loader/b21a05f75cdf7d99468ea135e93764b4.json +1 -0
  199. package/.expo/web/cache/development/babel-loader/b23f758a73c6ba11c5cbddc73adfe6a0.json +1 -0
  200. package/.expo/web/cache/development/babel-loader/b2cc4b4fb8a4d19be9c69abaa2a93cb6.json +1 -0
  201. package/.expo/web/cache/development/babel-loader/b300fad9fcb11f4867e14c4aace9b942.json +1 -0
  202. package/.expo/web/cache/development/babel-loader/b33a1081489cf7b79984ef0a745448a8.json +1 -0
  203. package/.expo/web/cache/development/babel-loader/b436db3f88511bc5455c31bd368082c4.json +1 -0
  204. package/.expo/web/cache/development/babel-loader/b4c9da64b6d0ba5eb3caf414ca166637.json +1 -0
  205. package/.expo/web/cache/development/babel-loader/b56dceadf60beadf0d3374143c0b1603.json +1 -0
  206. package/.expo/web/cache/development/babel-loader/b76d9d60e417624f1df89b5add1d2db8.json +1 -0
  207. package/.expo/web/cache/development/babel-loader/b790b246d8bb0a38f5796cf5799b17f2.json +1 -0
  208. package/.expo/web/cache/development/babel-loader/b89ff8b3e2ec84a11907141f5e517bfe.json +1 -0
  209. package/.expo/web/cache/development/babel-loader/b955a4568536fcc96a9f4110da577064.json +1 -0
  210. package/.expo/web/cache/development/babel-loader/bab60f8582caa8ab641521aa39541ff7.json +1 -0
  211. package/.expo/web/cache/development/babel-loader/baf8ec42b5295bf9b71564fe06dff559.json +1 -0
  212. package/.expo/web/cache/development/babel-loader/bbad1fdb8bad7c28c7859a0f188d3a7b.json +1 -0
  213. package/.expo/web/cache/development/babel-loader/be1eb03dbd5cd69bbffa7ae2a6e9d668.json +1 -0
  214. package/.expo/web/cache/development/babel-loader/be2fcf3973e484a6a56e37129b5eaaf7.json +1 -0
  215. package/.expo/web/cache/development/babel-loader/bf8cf6088e983893d5b4c8bc034427e4.json +1 -0
  216. package/.expo/web/cache/development/babel-loader/bfcb86bceac05155e5308c18bdd3fe08.json +1 -0
  217. package/.expo/web/cache/development/babel-loader/c172563a78f317bdf0e36e24dde3452d.json +1 -0
  218. package/.expo/web/cache/development/babel-loader/c46ad8673d03b7db6d8a2c93ed6b3802.json +1 -0
  219. package/.expo/web/cache/development/babel-loader/c59a0c339fabfd6318413aa25031c201.json +1 -0
  220. package/.expo/web/cache/development/babel-loader/c62e34d8d462d6191e1dc14c5395d52b.json +1 -0
  221. package/.expo/web/cache/development/babel-loader/c74e4bc2f5768aff42dd3c55d81749c8.json +1 -0
  222. package/.expo/web/cache/development/babel-loader/c75a76b3e08859524b69d60f8bf1df0f.json +1 -0
  223. package/.expo/web/cache/development/babel-loader/c88179e7d8d1ca25305bfc867939f5a3.json +1 -0
  224. package/.expo/web/cache/development/babel-loader/caf356c64a9f318b905731a25c8caf91.json +1 -0
  225. package/.expo/web/cache/development/babel-loader/ccaedd363abc01c405579524b8bbaf35.json +1 -0
  226. package/.expo/web/cache/development/babel-loader/cd79d69eeae7dbcdc442f692ce8a9272.json +1 -0
  227. package/.expo/web/cache/development/babel-loader/cd9063bacb890d6d5a2e981754ccf164.json +1 -0
  228. package/.expo/web/cache/development/babel-loader/ce2f3ca01216078ce7e5a74516dbfc4c.json +1 -0
  229. package/.expo/web/cache/development/babel-loader/ce604f4f65dfe84b11bbec60230afff1.json +1 -0
  230. package/.expo/web/cache/development/babel-loader/cff5797fff55ca8e98d3118c9e7250d6.json +1 -0
  231. package/.expo/web/cache/development/babel-loader/d00c274746869d9a4c810f940808ca3e.json +1 -0
  232. package/.expo/web/cache/development/babel-loader/d139c5fbc81478cca93e6b4a926b7fad.json +1 -0
  233. package/.expo/web/cache/development/babel-loader/d226ab1782131db078fc56761777579a.json +1 -0
  234. package/.expo/web/cache/development/babel-loader/d3c10e924f2ce49ca4e0a8bc4d800047.json +1 -0
  235. package/.expo/web/cache/development/babel-loader/d6f1318a1043ef95ef641a9314445194.json +1 -0
  236. package/.expo/web/cache/development/babel-loader/d96467b93e0c8535e1d5dac15bda0d22.json +1 -0
  237. package/.expo/web/cache/development/babel-loader/da79a62f9b35ea1114a46be959df1c0c.json +1 -0
  238. package/.expo/web/cache/development/babel-loader/dbd0371650c94f023fc4464f7a30c068.json +1 -0
  239. package/.expo/web/cache/development/babel-loader/ded9ef4c8d70487402a7ed05aaa42bef.json +1 -0
  240. package/.expo/web/cache/development/babel-loader/e267b9a10da82d7c9d27a0a6d2f15d6b.json +1 -0
  241. package/.expo/web/cache/development/babel-loader/e3203299dd14cd528fb01e684c97f030.json +1 -0
  242. package/.expo/web/cache/development/babel-loader/e3403556a7bef19920ff892e7ae71a33.json +1 -0
  243. package/.expo/web/cache/development/babel-loader/e4d3d45445df8599087f3f379416f83e.json +1 -0
  244. package/.expo/web/cache/development/babel-loader/e50007c2b54696bab5256823bd8b75b9.json +1 -0
  245. package/.expo/web/cache/development/babel-loader/e505af1d2b9f766ae21c2c653bc1f0eb.json +1 -0
  246. package/.expo/web/cache/development/babel-loader/e529cbcc9a784bb39cb3f93b5916cdea.json +1 -0
  247. package/.expo/web/cache/development/babel-loader/e5e73e920ce1cc98aec12c63b7239f4f.json +1 -0
  248. package/.expo/web/cache/development/babel-loader/e5f18619a8f76be87191ef677841e2a4.json +1 -0
  249. package/.expo/web/cache/development/babel-loader/e6eb03aca0506d39f23ca4f3c83aa516.json +1 -0
  250. package/.expo/web/cache/development/babel-loader/e9a8c10622926d4b2e69ab52bd21997d.json +1 -0
  251. package/.expo/web/cache/development/babel-loader/eada955a7a1f7eccb8daa2d3e2e00359.json +1 -0
  252. package/.expo/web/cache/development/babel-loader/eb765434dad51366d5e994157844242b.json +1 -0
  253. package/.expo/web/cache/development/babel-loader/ebb9e1b4c723d0cd4d0ebac704bdbd2e.json +1 -0
  254. package/.expo/web/cache/development/babel-loader/ed91f60f62296cb2284d70d9f8e8607e.json +1 -0
  255. package/.expo/web/cache/development/babel-loader/edb4691fac98a028668fb1f0afd0471c.json +1 -0
  256. package/.expo/web/cache/development/babel-loader/ef239f9c50d12e0a9514accb8a19aa62.json +1 -0
  257. package/.expo/web/cache/development/babel-loader/efa1697210dffc161da37a2bf66914eb.json +1 -0
  258. package/.expo/web/cache/development/babel-loader/f0f1a470b5e186d352c84c767337086f.json +1 -0
  259. package/.expo/web/cache/development/babel-loader/f232ab08dc4147d3925c210ac21902cf.json +1 -0
  260. package/.expo/web/cache/development/babel-loader/f24954a77b038f86faabed1c01850607.json +1 -0
  261. package/.expo/web/cache/development/babel-loader/f260775a30a227263e75172591c552dd.json +1 -0
  262. package/.expo/web/cache/development/babel-loader/f3ec90f50a726109daca5a9d5c2e70d1.json +1 -0
  263. package/.expo/web/cache/development/babel-loader/f546bb0d85ea302b502ca4c8f7f2375e.json +1 -0
  264. package/.expo/web/cache/development/babel-loader/f58eea2525ec523b6cfef3cee01b55cd.json +1 -0
  265. package/.expo/web/cache/development/babel-loader/f6e983c3ec14d5a79e2fa722aaf4bea5.json +1 -0
  266. package/.expo/web/cache/development/babel-loader/f75a9c98751a201f9b7c208e0cbc1f19.json +1 -0
  267. package/.expo/web/cache/development/babel-loader/f7a3bc17fcdef31de4f4fc1152872eca.json +1 -0
  268. package/.expo/web/cache/development/babel-loader/f7b6d4fe4161fc5d6562a61b0b11f7e2.json +1 -0
  269. package/.expo/web/cache/development/babel-loader/f8c5e9dacf5878f90c86883e982f0227.json +1 -0
  270. package/.expo/web/cache/development/babel-loader/f8f784315a22e068136d73f99db42e30.json +1 -0
  271. package/.expo/web/cache/development/babel-loader/f9f931f3f27e2b3dff7fd9fb4fcf4bf3.json +1 -0
  272. package/.expo/web/cache/development/babel-loader/fa9d8fc1d56b04d006c0c18688a640fe.json +1 -0
  273. package/.expo/web/cache/development/babel-loader/fc660bf5528c70224ec6c3295a4f1a5e.json +1 -0
  274. package/.expo/web/cache/development/babel-loader/fd8b9e4327116ec3a3a6444e0ae6837d.json +1 -0
  275. package/.expo/web/cache/development/babel-loader/fdd2ca3ec9b54d1f53453b6d8632c0f5.json +1 -0
  276. package/.expo/web/cache/development/babel-loader/ff2eab785490c90e174666553fff7e66.json +1 -0
  277. package/.expo/web/cache/development/babel-loader/ffe419731db23fbdcca1bddb7cadae71.json +1 -0
  278. package/.expo/xcodebuild-error.log +4 -0
  279. package/.expo/xcodebuild.log +20 -0
  280. package/.tool-versions +2 -0
  281. package/assets/fonts/be-vietnam-pro-light.ttf +0 -0
  282. package/assets/fonts/be-vietnam-pro-regular.ttf +0 -0
  283. package/assets/fonts/be-vietnam-pro-semibold.ttf +0 -0
  284. package/es/index.js +485 -127
  285. package/lib/index.js +485 -126
  286. package/package.json +4 -3
  287. package/playground/components/BottomNavigation.tsx +69 -0
  288. package/playground/components/Card.tsx +131 -70
  289. package/playground/components/FAB.tsx +30 -28
  290. package/playground/components/Typography.tsx +4 -2
  291. package/playground/index.tsx +16 -6
  292. package/rollup.config.js +1 -1
  293. package/src/components/Badge/StyledBadge.tsx +1 -1
  294. package/src/components/Badge/__tests__/__snapshots__/Badge.spec.tsx.snap +4 -4
  295. package/src/components/BottomNavigation/StyledBottomNavigation.tsx +58 -0
  296. package/src/components/BottomNavigation/__tests__/BottomNavigation.spec.tsx +95 -0
  297. package/src/components/BottomNavigation/__tests__/__snapshots__/BottomNavigation.spec.tsx.snap +315 -0
  298. package/src/components/BottomNavigation/index.tsx +169 -0
  299. package/src/components/FAB/ActionGroup/ActionItem.tsx +28 -0
  300. package/src/components/FAB/ActionGroup/StyledActionGroup.tsx +59 -0
  301. package/src/components/FAB/ActionGroup/StyledActionItem.tsx +29 -0
  302. package/src/components/FAB/ActionGroup/__tests__/__snapshots__/index.spec.tsx.snap +1019 -0
  303. package/src/components/FAB/ActionGroup/__tests__/index.spec.tsx +76 -0
  304. package/src/components/FAB/ActionGroup/index.tsx +120 -0
  305. package/src/components/FAB/FAB.tsx +54 -0
  306. package/src/components/FAB/StyledFABIcon.tsx +1 -1
  307. package/src/components/FAB/__tests__/__snapshots__/AnimatedFABIcon.spec.tsx.snap +2 -2
  308. package/src/components/FAB/__tests__/__snapshots__/StyledFABContainer.spec.tsx.snap +1 -1
  309. package/src/components/FAB/__tests__/__snapshots__/StyledFABIcon.spec.tsx.snap +1 -1
  310. package/src/components/FAB/__tests__/__snapshots__/index.spec.tsx.snap +7 -7
  311. package/src/components/FAB/__tests__/index.spec.tsx +5 -5
  312. package/src/components/FAB/index.tsx +5 -55
  313. package/src/components/Icon/utils.ts +6 -0
  314. package/src/components/Typography/Text/StyledText.tsx +8 -4
  315. package/src/components/Typography/Text/__tests__/__snapshots__/StyledText.spec.tsx.snap +9 -9
  316. package/src/components/Typography/Text/index.tsx +2 -2
  317. package/src/index.ts +2 -0
  318. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +58 -12
  319. package/src/theme/components/badge.ts +5 -5
  320. package/src/theme/components/bottomNavigation.ts +23 -0
  321. package/src/theme/components/fab.ts +33 -2
  322. package/src/theme/components/typography.ts +8 -7
  323. package/src/theme/global/index.ts +2 -2
  324. package/src/theme/global/typography.ts +11 -8
  325. package/src/theme/index.ts +3 -0
  326. package/src/utils/helpers.ts +4 -0
  327. package/types/components/Card/StyledView.d.ts +12 -0
  328. package/types/components/Card/index.d.ts +0 -0
  329. package/types/index.d.ts +4 -0
  330. package/types/playground/components/BottomNavigation.d.ts +2 -0
  331. package/types/src/components/BottomNavigation/StyledBottomNavigation.d.ts +17 -0
  332. package/types/src/components/BottomNavigation/__tests__/BottomNavigation.spec.d.ts +1 -0
  333. package/types/src/components/BottomNavigation/index.d.ts +40 -0
  334. package/types/src/components/FAB/ActionGroup/ActionItem.d.ts +12 -0
  335. package/types/src/components/FAB/ActionGroup/StyledActionGroup.d.ts +12 -0
  336. package/types/src/components/FAB/ActionGroup/StyledActionItem.d.ts +4 -0
  337. package/types/src/components/FAB/ActionGroup/__tests__/index.spec.d.ts +1 -0
  338. package/types/src/components/FAB/ActionGroup/index.d.ts +27 -0
  339. package/types/src/components/FAB/FAB.d.ts +30 -0
  340. package/types/src/components/FAB/FABButton.d.ts +30 -0
  341. package/types/src/components/FAB/MenuList/MenuItem.d.ts +15 -0
  342. package/types/src/components/FAB/MenuList/StyleBackDrop.d.ts +5 -0
  343. package/types/src/components/FAB/MenuList/StyledHeaderText.d.ts +3 -0
  344. package/types/src/components/FAB/MenuList/StyledMenuItem.d.ts +4 -0
  345. package/types/src/components/FAB/MenuList/__tests__/index.spec.d.ts +1 -0
  346. package/types/src/components/FAB/MenuList/index.d.ts +27 -0
  347. package/types/src/components/FAB/__tests__/FABButton.spec.d.ts +1 -0
  348. package/types/src/components/FAB/index.d.ts +4 -30
  349. package/types/src/components/Icon/utils.d.ts +2 -0
  350. package/types/src/components/Typography/Text/StyledText.d.ts +1 -1
  351. package/types/src/components/Typography/Text/__test__/StyledText.spec.d.ts +1 -0
  352. package/types/src/components/Typography/Text/__test__/index.spec.d.ts +1 -0
  353. package/types/src/components/Typography/Text/index.d.ts +2 -2
  354. package/types/src/index.d.ts +2 -1
  355. package/types/src/theme/components/bottomNavigation.d.ts +17 -0
  356. package/types/src/theme/components/fab.d.ts +28 -1
  357. package/types/src/theme/components/typography.d.ts +1 -0
  358. package/types/src/theme/global/index.d.ts +4 -0
  359. package/types/src/theme/global/typography.d.ts +4 -0
  360. package/types/src/theme/index.d.ts +2 -0
  361. package/types/src/utils/helpers.d.ts +2 -0
  362. package/types/styled-components.d.ts +6 -0
  363. package/types/theme/components/exampleComponent.d.ts +14 -0
  364. package/types/theme/global/colors.d.ts +24 -0
  365. package/types/theme/global/index.d.ts +58 -0
  366. package/types/theme/global/space.d.ts +12 -0
  367. package/types/theme/global/typography.d.ts +21 -0
  368. package/types/theme/index.d.ts +11 -0
@@ -0,0 +1,95 @@
1
+ import React, { ComponentProps } from 'react';
2
+ import { Text } from 'react-native';
3
+ import { fireEvent } from '@testing-library/react-native';
4
+ import { SafeAreaProvider } from 'react-native-safe-area-context';
5
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
6
+ import BottomNavigation, { Tab } from '..';
7
+
8
+ const TestComponent = (
9
+ props: Omit<
10
+ ComponentProps<typeof BottomNavigation>,
11
+ 'selectedTabKey' | 'onChange' | 'tabs'
12
+ >
13
+ ) => {
14
+ const [selectedTabKey, setSelectedTabKey] = React.useState('home');
15
+ const tabs: Tab<string>[] = [
16
+ {
17
+ key: 'home',
18
+ title: 'Home',
19
+ icon: 'home',
20
+ component: <Text>Home Screen</Text>,
21
+ },
22
+ {
23
+ key: 'feed',
24
+ title: 'Feed',
25
+ icon: 'speaker-outlined',
26
+ component: <Text>Feed Screen</Text>,
27
+ },
28
+ {
29
+ key: 'alerts',
30
+ title: 'Alerts',
31
+ icon: 'bell-outlined',
32
+ component: <Text>Alerts Screen</Text>,
33
+ },
34
+ {
35
+ key: 'profile',
36
+ title: 'Profile',
37
+ icon: 'user-outlined',
38
+ component: <Text>Profile Screen</Text>,
39
+ },
40
+ ];
41
+
42
+ return (
43
+ <SafeAreaProvider
44
+ initialMetrics={{
45
+ frame: { x: 0, y: 0, width: 0, height: 0 },
46
+ insets: { top: 0, left: 0, right: 0, bottom: 0 },
47
+ }}
48
+ >
49
+ <BottomNavigation
50
+ {...props}
51
+ tabs={tabs}
52
+ selectedTabKey={selectedTabKey}
53
+ onChange={newTabKey => setSelectedTabKey(newTabKey)}
54
+ />
55
+ </SafeAreaProvider>
56
+ );
57
+ };
58
+
59
+ describe('BottomNavigation', () => {
60
+ it('renders correctly', () => {
61
+ const { getByText, toJSON } = renderWithTheme(<TestComponent />);
62
+
63
+ expect(toJSON()).toMatchSnapshot();
64
+ expect(getByText('Home')).toBeDefined();
65
+ fireEvent.press(getByText('Feed'));
66
+ fireEvent.press(getByText('Alerts'));
67
+ fireEvent.press(getByText('Profile'));
68
+
69
+ // All screens are rendered and component is not unmounted when switching screen.
70
+ expect(getByText('Home Screen')).toBeDefined();
71
+ expect(getByText('Feed Screen')).toBeDefined();
72
+ expect(getByText('Alerts Screen')).toBeDefined();
73
+ expect(getByText('Profile Screen')).toBeDefined();
74
+ });
75
+
76
+ it('renders correctly with renderActiveTabOnly is true', () => {
77
+ const { getByText, queryByText, getByTestId } = renderWithTheme(
78
+ <TestComponent renderActiveTabOnly />
79
+ );
80
+
81
+ // Can switch tab by clicking icon.
82
+ expect(getByText('Home Screen')).toBeDefined();
83
+ fireEvent.press(getByTestId('hero-icon-speaker-outlined'));
84
+ expect(getByText('Feed Screen')).toBeDefined();
85
+ fireEvent.press(getByTestId('hero-icon-bell-outlined'));
86
+ expect(getByText('Alerts Screen')).toBeDefined();
87
+ fireEvent.press(getByTestId('hero-icon-user-outlined'));
88
+ expect(getByText('Profile Screen')).toBeDefined();
89
+
90
+ // Only render selected screen, others are unmounted.
91
+ expect(queryByText('Home Screen')).toBeNull();
92
+ expect(queryByText('Feed Screen')).toBeNull();
93
+ expect(queryByText('Alerts Screen')).toBeNull();
94
+ });
95
+ });
@@ -0,0 +1,315 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`BottomNavigation renders correctly 1`] = `
4
+ <RNCSafeAreaProvider
5
+ onInsetsChange={[Function]}
6
+ style={
7
+ Array [
8
+ Object {
9
+ "flex": 1,
10
+ },
11
+ undefined,
12
+ ]
13
+ }
14
+ >
15
+ <View
16
+ style={
17
+ Object {
18
+ "flexBasis": 0,
19
+ "flexGrow": 1,
20
+ "flexShrink": 1,
21
+ "overflow": "hidden",
22
+ }
23
+ }
24
+ >
25
+ <View
26
+ style={
27
+ Object {
28
+ "flexBasis": 0,
29
+ "flexGrow": 1,
30
+ "flexShrink": 1,
31
+ }
32
+ }
33
+ >
34
+ <View
35
+ accessibilityElementsHidden={false}
36
+ collapsable={false}
37
+ importantForAccessibility="auto"
38
+ pointerEvents="auto"
39
+ removeClippedSubviews={false}
40
+ style={
41
+ Object {
42
+ "display": "flex",
43
+ "flexBasis": 0,
44
+ "flexGrow": 1,
45
+ "flexShrink": 1,
46
+ }
47
+ }
48
+ testID="route-screen-home"
49
+ themeVisibility={true}
50
+ >
51
+ <Text>
52
+ Home Screen
53
+ </Text>
54
+ </View>
55
+ </View>
56
+ <View
57
+ style={
58
+ Object {
59
+ "backgroundColor": "#ffffff",
60
+ "elevation": 10,
61
+ "height": 72,
62
+ "paddingBottom": 0,
63
+ "paddingLeft": 0,
64
+ "paddingRight": 0,
65
+ "shadowColor": "#292a2b",
66
+ "shadowOffset": Object {
67
+ "height": 3,
68
+ "width": 0,
69
+ },
70
+ "shadowOpacity": 0.27,
71
+ "shadowRadius": 4.65,
72
+ }
73
+ }
74
+ themeInsets={
75
+ Object {
76
+ "bottom": 0,
77
+ "left": 0,
78
+ "right": 0,
79
+ "top": 0,
80
+ }
81
+ }
82
+ >
83
+ <View
84
+ style={
85
+ Object {
86
+ "alignItems": "center",
87
+ "flexBasis": 0,
88
+ "flexDirection": "row",
89
+ "flexGrow": 1,
90
+ "flexShrink": 1,
91
+ "overflow": "hidden",
92
+ }
93
+ }
94
+ >
95
+ <View
96
+ accessible={true}
97
+ focusable={true}
98
+ onClick={[Function]}
99
+ onResponderGrant={[Function]}
100
+ onResponderMove={[Function]}
101
+ onResponderRelease={[Function]}
102
+ onResponderTerminate={[Function]}
103
+ onResponderTerminationRequest={[Function]}
104
+ onStartShouldSetResponder={[Function]}
105
+ style={
106
+ Object {
107
+ "alignItems": "center",
108
+ "flexBasis": 0,
109
+ "flexGrow": 1,
110
+ "flexShrink": 1,
111
+ }
112
+ }
113
+ >
114
+ <HeroIcon
115
+ name="home"
116
+ style={
117
+ Object {
118
+ "color": "#7622d7",
119
+ "fontSize": 24,
120
+ }
121
+ }
122
+ testID="hero-icon-home"
123
+ themeIntent="primary"
124
+ themeSize="medium"
125
+ />
126
+ <Text
127
+ numberOfLines={1}
128
+ style={
129
+ Array [
130
+ Object {
131
+ "color": "#7622d7",
132
+ "fontFamily": "Be Vietnam Pro SemiBold",
133
+ "fontSize": 12,
134
+ "letterSpacing": 0.36,
135
+ "lineHeight": 20,
136
+ },
137
+ Object {
138
+ "marginTop": 4,
139
+ },
140
+ ]
141
+ }
142
+ themeFontSize="small"
143
+ themeFontWeight="semi-bold"
144
+ themeIntent="primary"
145
+ >
146
+ Home
147
+ </Text>
148
+ </View>
149
+ <View
150
+ accessible={true}
151
+ focusable={true}
152
+ onClick={[Function]}
153
+ onResponderGrant={[Function]}
154
+ onResponderMove={[Function]}
155
+ onResponderRelease={[Function]}
156
+ onResponderTerminate={[Function]}
157
+ onResponderTerminationRequest={[Function]}
158
+ onStartShouldSetResponder={[Function]}
159
+ style={
160
+ Object {
161
+ "alignItems": "center",
162
+ "flexBasis": 0,
163
+ "flexGrow": 1,
164
+ "flexShrink": 1,
165
+ }
166
+ }
167
+ >
168
+ <HeroIcon
169
+ name="speaker-outlined"
170
+ style={
171
+ Object {
172
+ "color": "#292a2b",
173
+ "fontSize": 24,
174
+ }
175
+ }
176
+ testID="hero-icon-speaker-outlined"
177
+ themeIntent="text"
178
+ themeSize="medium"
179
+ />
180
+ <Text
181
+ numberOfLines={1}
182
+ style={
183
+ Array [
184
+ Object {
185
+ "color": "#292a2b",
186
+ "fontFamily": "Be Vietnam Pro SemiBold",
187
+ "fontSize": 12,
188
+ "letterSpacing": 0.36,
189
+ "lineHeight": 20,
190
+ },
191
+ Object {
192
+ "marginTop": 4,
193
+ },
194
+ ]
195
+ }
196
+ themeFontSize="small"
197
+ themeFontWeight="semi-bold"
198
+ themeIntent="body"
199
+ >
200
+ Feed
201
+ </Text>
202
+ </View>
203
+ <View
204
+ accessible={true}
205
+ focusable={true}
206
+ onClick={[Function]}
207
+ onResponderGrant={[Function]}
208
+ onResponderMove={[Function]}
209
+ onResponderRelease={[Function]}
210
+ onResponderTerminate={[Function]}
211
+ onResponderTerminationRequest={[Function]}
212
+ onStartShouldSetResponder={[Function]}
213
+ style={
214
+ Object {
215
+ "alignItems": "center",
216
+ "flexBasis": 0,
217
+ "flexGrow": 1,
218
+ "flexShrink": 1,
219
+ }
220
+ }
221
+ >
222
+ <HeroIcon
223
+ name="bell-outlined"
224
+ style={
225
+ Object {
226
+ "color": "#292a2b",
227
+ "fontSize": 24,
228
+ }
229
+ }
230
+ testID="hero-icon-bell-outlined"
231
+ themeIntent="text"
232
+ themeSize="medium"
233
+ />
234
+ <Text
235
+ numberOfLines={1}
236
+ style={
237
+ Array [
238
+ Object {
239
+ "color": "#292a2b",
240
+ "fontFamily": "Be Vietnam Pro SemiBold",
241
+ "fontSize": 12,
242
+ "letterSpacing": 0.36,
243
+ "lineHeight": 20,
244
+ },
245
+ Object {
246
+ "marginTop": 4,
247
+ },
248
+ ]
249
+ }
250
+ themeFontSize="small"
251
+ themeFontWeight="semi-bold"
252
+ themeIntent="body"
253
+ >
254
+ Alerts
255
+ </Text>
256
+ </View>
257
+ <View
258
+ accessible={true}
259
+ focusable={true}
260
+ onClick={[Function]}
261
+ onResponderGrant={[Function]}
262
+ onResponderMove={[Function]}
263
+ onResponderRelease={[Function]}
264
+ onResponderTerminate={[Function]}
265
+ onResponderTerminationRequest={[Function]}
266
+ onStartShouldSetResponder={[Function]}
267
+ style={
268
+ Object {
269
+ "alignItems": "center",
270
+ "flexBasis": 0,
271
+ "flexGrow": 1,
272
+ "flexShrink": 1,
273
+ }
274
+ }
275
+ >
276
+ <HeroIcon
277
+ name="user-outlined"
278
+ style={
279
+ Object {
280
+ "color": "#292a2b",
281
+ "fontSize": 24,
282
+ }
283
+ }
284
+ testID="hero-icon-user-outlined"
285
+ themeIntent="text"
286
+ themeSize="medium"
287
+ />
288
+ <Text
289
+ numberOfLines={1}
290
+ style={
291
+ Array [
292
+ Object {
293
+ "color": "#292a2b",
294
+ "fontFamily": "Be Vietnam Pro SemiBold",
295
+ "fontSize": 12,
296
+ "letterSpacing": 0.36,
297
+ "lineHeight": 20,
298
+ },
299
+ Object {
300
+ "marginTop": 4,
301
+ },
302
+ ]
303
+ }
304
+ themeFontSize="small"
305
+ themeFontWeight="semi-bold"
306
+ themeIntent="body"
307
+ >
308
+ Profile
309
+ </Text>
310
+ </View>
311
+ </View>
312
+ </View>
313
+ </View>
314
+ </RNCSafeAreaProvider>
315
+ `;
@@ -0,0 +1,169 @@
1
+ import React, { ComponentProps, ReactNode } from 'react';
2
+ import {
3
+ TouchableWithoutFeedback,
4
+ StyleProp,
5
+ ViewStyle,
6
+ ViewProps,
7
+ } from 'react-native';
8
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
9
+ import { useTheme } from 'styled-components-native';
10
+ import Icon from '../Icon';
11
+ import { isHeroIcon } from '../Icon/utils';
12
+ import Typography from '../Typography';
13
+ import {
14
+ BottomBar,
15
+ BottomBarItem,
16
+ BottomBarWrapper,
17
+ BottomNavigationContainer,
18
+ BottomNavigationTab,
19
+ ContentWrapper,
20
+ } from './StyledBottomNavigation';
21
+ import { isIOS } from '../../utils/helpers';
22
+
23
+ type IconType = ComponentProps<typeof Icon>['icon'];
24
+
25
+ export type Tab<V> = {
26
+ key: V;
27
+ title?: string;
28
+ icon: IconType;
29
+ component: ReactNode;
30
+ testID?: string;
31
+ };
32
+
33
+ interface BottomNavigationType<V extends string | number, T extends Tab<V>>
34
+ extends ViewProps {
35
+ /**
36
+ * Callback which is called on tab change, receiving id of upcoming active Tab.
37
+ */
38
+ onChange: (key: V) => void;
39
+ /**
40
+ * Whether inactive tabs should be removed and unmounted in React.
41
+ * Defaults to `false`.
42
+ */
43
+ renderActiveTabOnly?: boolean;
44
+ /**
45
+ * Current selected tab key.
46
+ */
47
+ selectedTabKey: V;
48
+ /**
49
+ * List of Tab to be rendered. Each Tab must have an unique id.
50
+ */
51
+ tabs: T[];
52
+ /**
53
+ * Addditional style.
54
+ */
55
+ style?: StyleProp<ViewStyle>;
56
+ /**
57
+ * Testing id of the component.
58
+ */
59
+ testID?: string;
60
+ }
61
+
62
+ const getInactiveIcon = (icon: IconType): IconType => {
63
+ const inactiveIcon = `${icon}-outlined`;
64
+ return isHeroIcon(inactiveIcon) ? inactiveIcon : icon;
65
+ };
66
+
67
+ const BottomNavigation = <V extends string | number, T extends Tab<V>>({
68
+ onChange,
69
+ renderActiveTabOnly = false,
70
+ selectedTabKey,
71
+ tabs,
72
+ ...nativeProps
73
+ }: BottomNavigationType<V, T>): JSX.Element => {
74
+ const theme = useTheme();
75
+ const insets = useSafeAreaInsets();
76
+
77
+ /**
78
+ * List of loaded tabs, tabs will be loaded when navigated to.
79
+ */
80
+ const [loaded, setLoaded] = React.useState([selectedTabKey]);
81
+
82
+ if (!loaded.includes(selectedTabKey)) {
83
+ // Set the current tab to be loaded if it was not loaded before
84
+ setLoaded(loadedState => [...loadedState, selectedTabKey]);
85
+ }
86
+
87
+ return (
88
+ <BottomNavigationContainer {...nativeProps}>
89
+ <ContentWrapper>
90
+ {tabs.map(tab => {
91
+ const { key, component } = tab;
92
+ const active = selectedTabKey === key;
93
+
94
+ if (renderActiveTabOnly && !active) {
95
+ return null;
96
+ }
97
+
98
+ if (!loaded.includes(key)) {
99
+ // Don't render a screen if we've never navigated to it
100
+ return null;
101
+ }
102
+
103
+ return (
104
+ <BottomNavigationTab
105
+ key={key}
106
+ testID={`route-screen-${selectedTabKey}`}
107
+ pointerEvents={active ? 'auto' : 'none'}
108
+ accessibilityElementsHidden={!active}
109
+ importantForAccessibility={
110
+ active ? 'auto' : 'no-hide-descendants'
111
+ }
112
+ collapsable={false}
113
+ removeClippedSubviews={
114
+ // On iOS, set removeClippedSubviews to true only when not focused
115
+ // This is an workaround for a bug where the clipped view never re-appears.
116
+ isIOS ? selectedTabKey !== key : true
117
+ }
118
+ themeVisibility={active}
119
+ >
120
+ {component}
121
+ </BottomNavigationTab>
122
+ );
123
+ })}
124
+ </ContentWrapper>
125
+ <BottomBarWrapper themeInsets={insets}>
126
+ <BottomBar>
127
+ {tabs.map(tab => {
128
+ const { key, icon, title, testID } = tab;
129
+ const active = selectedTabKey === key;
130
+ const inactiveIcon = getInactiveIcon(icon);
131
+
132
+ return (
133
+ <TouchableWithoutFeedback
134
+ key={key}
135
+ onPress={() => {
136
+ if (key !== selectedTabKey) {
137
+ onChange(key);
138
+ }
139
+ }}
140
+ testID={testID}
141
+ >
142
+ <BottomBarItem>
143
+ <Icon
144
+ icon={active ? icon : inactiveIcon}
145
+ intent={active ? 'primary' : 'text'}
146
+ testID={`hero-icon-${icon}`}
147
+ />
148
+ {title && (
149
+ <Typography.Text
150
+ fontSize="small"
151
+ fontWeight="semi-bold"
152
+ intent={active ? 'primary' : 'body'}
153
+ style={{ marginTop: theme.space.xsmall }}
154
+ numberOfLines={1}
155
+ >
156
+ {title}
157
+ </Typography.Text>
158
+ )}
159
+ </BottomBarItem>
160
+ </TouchableWithoutFeedback>
161
+ );
162
+ })}
163
+ </BottomBar>
164
+ </BottomBarWrapper>
165
+ </BottomNavigationContainer>
166
+ );
167
+ };
168
+
169
+ export default BottomNavigation;
@@ -0,0 +1,28 @@
1
+ import React, { ComponentProps } from 'react';
2
+ import { StyleProp, ViewStyle } from 'react-native';
3
+ import Icon from '../../Icon';
4
+ import { StyledActionItem, StyledActionItemText } from './StyledActionItem';
5
+
6
+ export interface ActionItemProps {
7
+ testID?: string;
8
+ title: string;
9
+ icon: ComponentProps<typeof Icon>['icon'];
10
+ onPress?: () => void;
11
+ style?: StyleProp<ViewStyle>;
12
+ }
13
+ const ActionItem = ({
14
+ icon,
15
+ title,
16
+ onPress,
17
+ style,
18
+ testID,
19
+ }: ActionItemProps) => (
20
+ <StyledActionItem style={style} onPress={onPress} testID={testID}>
21
+ <>
22
+ <Icon icon={icon} />
23
+ <StyledActionItemText>{title}</StyledActionItemText>
24
+ </>
25
+ </StyledActionItem>
26
+ );
27
+
28
+ export default ActionItem;
@@ -0,0 +1,59 @@
1
+ import { ComponentProps } from 'react';
2
+ import { Animated, View, ViewProps } from 'react-native';
3
+ import styled from 'styled-components-native';
4
+ import FAB from '../FAB';
5
+ import Typography from '../../Typography';
6
+ import { TextProps } from '../../Typography/Text';
7
+
8
+ const StyledContainer = styled(View)<ViewProps>`
9
+ position: absolute;
10
+ left: 0;
11
+ right: 0;
12
+ top: 0;
13
+ bottom: 0;
14
+ align-items: flex-end;
15
+ justify-content: flex-end;
16
+ `;
17
+
18
+ const StyledActionGroupContainer = styled(Animated.View)<
19
+ ComponentProps<typeof Animated.View>
20
+ >`
21
+ align-items: flex-end;
22
+ justify-content: flex-end;
23
+ width: 70%;
24
+ `;
25
+
26
+ const StyledFAB = styled(FAB)<{}>`
27
+ margin-right: ${({ theme }) => theme.space.large};
28
+ align-self: flex-end;
29
+ margin-top: ${({ theme }) => theme.space.large};
30
+ `;
31
+
32
+ const StyledBackdrop = styled(Animated.View)<
33
+ ComponentProps<typeof Animated.View>
34
+ >`
35
+ position: absolute;
36
+ left: 0;
37
+ right: 0;
38
+ top: 0;
39
+ bottom: 0;
40
+ background: ${({ theme }) => theme.__hd__.fab.colors.backdropBackground};
41
+ `;
42
+
43
+ const StyledHeaderText = styled(Typography.Text)<TextProps>`
44
+ font-size: ${({ theme }) => theme.__hd__.fab.fontSizes.header};
45
+ line-height: ${({ theme }) => theme.__hd__.fab.lineHeights.header};
46
+ font-family: ${({ theme }) => theme.__hd__.fab.fonts.header};
47
+ margin-right: ${({ theme }) => theme.__hd__.fab.space.headerTextMarginRight};
48
+ margin-bottom: ${({ theme }) =>
49
+ theme.__hd__.fab.space.headerTextMarginBottom};
50
+ text-align: right;
51
+ `;
52
+
53
+ export {
54
+ StyledHeaderText,
55
+ StyledBackdrop,
56
+ StyledContainer,
57
+ StyledActionGroupContainer,
58
+ StyledFAB,
59
+ };
@@ -0,0 +1,29 @@
1
+ import { TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
+ import styled from 'styled-components-native';
3
+ import Typography from '../../Typography';
4
+
5
+ const StyledActionItem = styled(TouchableOpacity)<TouchableOpacityProps>`
6
+ padding-left: ${({ theme }) => theme.__hd__.fab.space.actionItemPaddingLeft};
7
+ padding-right: ${({ theme }) =>
8
+ theme.__hd__.fab.space.actionItemPaddingRight};
9
+ padding-top: ${({ theme }) => theme.__hd__.fab.space.actionItemPaddingTop};
10
+ padding-bottom: ${({ theme }) =>
11
+ theme.__hd__.fab.space.actionItemPaddingBottom};
12
+ margin: ${({ theme }) => theme.__hd__.fab.space.actionItemMargin};
13
+ margin-right: ${({ theme }) => theme.__hd__.fab.space.actionItemMarginRight};
14
+ background: ${({ theme }) => theme.__hd__.fab.colors.actionItemBackground};
15
+ border-radius: ${({ theme }) => theme.__hd__.fab.radii.actionItem};
16
+ flex-direction: row;
17
+ align-items: center;
18
+ align-self: flex-end;
19
+ overflow: hidden;
20
+ `;
21
+
22
+ const StyledActionItemText = styled(Typography.Text)<TouchableOpacityProps>`
23
+ padding-left: ${({ theme }) =>
24
+ theme.__hd__.fab.space.actionItemTextPaddingLeft};
25
+ font-size: ${({ theme }) => theme.__hd__.fab.fontSizes.actionItemText};
26
+ line-height: ${({ theme }) => theme.__hd__.fab.lineHeights.actionItemText};
27
+ font-family: ${({ theme }) => theme.__hd__.fab.fonts.actionItemText};
28
+ `;
29
+ export { StyledActionItem, StyledActionItemText };