@hero-design/rn 7.1.3-alpha5 → 7.1.3-alpha6

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